C u r s i n g C o m p i l e r s S t e p h a n - - PowerPoint PPT Presentation

c u r s i n g c o m p i l e r s
SMART_READER_LITE
LIVE PREVIEW

C u r s i n g C o m p i l e r s S t e p h a n - - PowerPoint PPT Presentation

C u r s i n g C o m p i l e r s S t e p h a n B e r g m a n n O c t o b e r 2 0 1 7 < s b e r g > b t w , I t h i n k I ' l l d o a p r o s a n d c o n s o f


slide-1
SLIDE 1

C u r s i n g C

  • m

p i l e r s

S t e p h a n B e r g m a n n O c t

  • b

e r 2 1 7

slide-2
SLIDE 2
  • <

s b e r g > b t w , I t h i n k I ' l l d

  • a

“ p r

  • s

a n d c

  • n

s

  • f

f a s c i s t t

  • l

c h a i n s ” t a l k a t L O C

  • n
  • <

t h

  • r

s t e n > s b e r g : s

  • u

n d s f u n i n d e e d

  • s

p e c i a l a t t i r e r e q u i r e d f

  • r

a t t e n d a n c e ?

  • r

j u s t b r i n g s u p p l y

  • f

s

  • f

t v e g e t a b l e s ? : )

  • <

s b e r g > t h

  • r

s t e n , I ' l l c

  • n

c e n t r a t e

  • n

t h e p r

  • s

, s

  • t

h e r e ' l l b e n

  • u

s e f

  • r

r

  • t

t e n t

  • m

a t

  • e

s

  • <

t h

  • r

s t e n > d a m n

  • <

b u

  • v

j a g a > a f a s c i s t t

  • l

c h a i n i s c h a r a c t e r i z e d b y d i c t a t

  • r

i a l p

  • w

e r a n d f

  • r

c i b l e s u p p r e s s i

  • n
  • f
  • p

p

  • s

i t i

  • n
slide-3
SLIDE 3

W h a t t h e F u c k

W h y d

  • e

s G e r r i t c

  • m

p l a i n a b

  • u

t m y c h a n g e ? ”

I t c

  • m

p i l e d j u s t fi n e h e r e ! ”

W h

  • r

e m

  • v

e d t h a t c

  • d

e I w a s s t i l l w

  • r

k i n g

  • n

? ”

I t i s n ’ t s u p p

  • s

e d t

  • b

e u n u s e d ! ”

slide-4
SLIDE 4

l

  • p

l u g i n

b a d s t a t i c s c s t y l e c a s t e x t e r n v a r l

  • p

v a r t

  • s

m a l l p t r v e c t

  • r

s a l b

  • l

s t a t i c m e t h

  • d

s u n n e c e s s a r y

  • v

e r r i d e b l

  • c

k b l

  • c

k d a t a m e m b e r s h a d

  • w

f a i l e d d y n c a s t n u l l p t r r a n g e d f

  • r

c

  • p

y s a l l

  • g

a r e a s s t r i n g c

  • n

c a t u n n e c e s s a r y p a r e n c a s t t

  • v
  • i

d d e r e f n u l l p t r fi n a l p r

  • t

e c t

  • s

l e n d i a n r e d u n d a n t c a s t s a l u n i c

  • d

e l i t e r a l s t r i n g c

  • n

s t a n t u n

  • a

n y c h a r r i g h t s h i f t d l l p r i v a t e fl a t t e n

  • v

e r r i d e r e d u n d a n t c

  • p

y s f x p

  • l

i t e m s t r i n g s t a t i c u n r e f f u n c h e c k c

  • n

fi g m a c r

  • s

d y n c a s t v i s i b i l i t y f p c

  • m

p a r i s

  • n
  • v

e r r i d e p a r a m r e d u n d a n t i n l i n e s i m p l i f y b

  • l

s u b t l e z e r

  • i

n i t u n u s e d v a r i a b l e c h e c k c

  • m

m a

  • p

e r a t

  • r

d y n e x c s p e c i m p l i c i t b

  • l

c

  • n

v e r s i

  • n

p a s s p a r a m s b y r e f r e d u n d a n t p

  • i

n t e r

  • p

s s t a t i c a c c e s s u n i c

  • d

e t

  • c

h a r v c l w i d g e t s c

  • n

s t s t r i n g v a r e x p r e s s i

  • n

a l w a y s z e r

  • i

n l i n e v i s i b l e p a s s s t u f f b y r e f r e f c

  • u

n t i n g s t a t i c a n

  • n

y m

  • u

s u n n e c e s s a r y c a t c h t h r

  • w

w e a k

  • b

j e c t c p p u n i t a s s e r t e q u a l s e x t e r n a n d n

  • t

d e fi n e d l i t e r a l t

  • b
  • l

c

  • n

v e r s i

  • n

p r i v a t e b a s e r e s e r v e d i d

  • 6

1 p l u g i n s t h a t a r e e n a b l e d b y d e f a u l t :

slide-5
SLIDE 5

l

  • p

l u g i n

b a d s t a t i c s c s t y l e c a s t e x t e r n v a r l

  • p

v a r t

  • s

m a l l p t r v e c t

  • r

s a l b

  • l

s t a t i c m e t h

  • d

s u n n e c e s s a r y

  • v

e r r i d e b l

  • c

k b l

  • c

k d a t a m e m b e r s h a d

  • w

f a i l e d d y n c a s t n u l l p t r r a n g e d f

  • r

c

  • p

y s a l l

  • g

a r e a s s t r i n g c

  • n

c a t u n n e c e s s a r y p a r e n c a s t t

  • v
  • i

d d e r e f n u l l p t r fi n a l p r

  • t

e c t

  • s

l e n d i a n r e d u n d a n t c a s t s a l u n i c

  • d

e l i t e r a l s t r i n g c

  • n

s t a n t u n

  • a

n y c h a r r i g h t s h i f t d l l p r i v a t e fl a t t e n

  • v

e r r i d e r e d u n d a n t c

  • p

y s f x p

  • l

i t e m s t r i n g s t a t i c u n r e f f u n c h e c k c

  • n

fi g m a c r

  • s

d y n c a s t v i s i b i l i t y f p c

  • m

p a r i s

  • n
  • v

e r r i d e p a r a m r e d u n d a n t i n l i n e s i m p l i f y b

  • l

s u b t l e z e r

  • i

n i t u n u s e d v a r i a b l e c h e c k c

  • m

m a

  • p

e r a t

  • r

d y n e x c s p e c i m p l i c i t b

  • l

c

  • n

v e r s i

  • n

p a s s p a r a m s b y r e f r e d u n d a n t p

  • i

n t e r

  • p

s s t a t i c a c c e s s u n i c

  • d

e t

  • c

h a r v c l w i d g e t s c

  • n

s t s t r i n g v a r e x p r e s s i

  • n

a l w a y s z e r

  • i

n l i n e v i s i b l e p a s s s t u f f b y r e f r e f c

  • u

n t i n g s t a t i c a n

  • n

y m

  • u

s u n n e c e s s a r y c a t c h t h r

  • w

w e a k

  • b

j e c t c p p u n i t a s s e r t e q u a l s e x t e r n a n d n

  • t

d e fi n e d l i t e r a l t

  • b
  • l

c

  • n

v e r s i

  • n

p r i v a t e b a s e r e s e r v e d i d

  • 6

1 p l u g i n s t h a t a r e e n a b l e d b y d e f a u l t :

slide-6
SLIDE 6

s t a t i c m e t h

  • d

s + s t a t i c a c c e s s

  • s

t r u c t S { i n t f ( ) { r e t u r n ; } / / l

  • p

l u g i n : s t a t i c m e t h

  • d

s } ; i n t g ( S * s ) { r e t u r n s

  • >

f ( ) ; }

  • s

t r u c t S { s t a t i c i n t f ( ) { r e t u r n ; } } ; i n t g ( S * s ) { r e t u r n s

  • >

f ( ) ; } / / l

  • p

l u g i n : s t a t i c a c c e s s

  • s

t r u c t S { s t a t i c i n t f ( ) { r e t u r n ; } } ; i n t g ( ) { r e t u r n S : : f ( ) ; }

slide-7
SLIDE 7

s t a t i c m e t h

  • d

s + s t a t i c a c c e s s

  • s

t r u c t S { i n t f ( ) { ( v

  • i

d ) t h i s ; / / l

  • p

l u g i n : s t a t i c m e t h

  • d

s r e t u r n ; } } ; i n t g ( S * s ) { r e t u r n s

  • >

f ( ) ; }

  • .

. . n

  • t

u n l i k e i n t e = s

  • m

e F n ( ) ; a s s e r t ( e ! = ) ; ( v

  • i

d ) e ;

slide-8
SLIDE 8

u n r e f f u n

  • c

l a s s T e s t { v

  • i

d t e s t 1 ( ) { … } v

  • i

d t e s t 2 ( ) { … } v

  • i

d t e s t 3 ( ) { … } C P P U N I T _ T E S T _ S U I T E ( T e s t ) ; C P P U N I T _ T E S T ( t e s t 1 ) ; C P P U N I T _ T E S T ( t e s t 2 ) ; C P P U N I T _ T E S T ( t e s t 3 ) ; C P P U N I T _ T E S T _ S U I T E _ E N D ( ) ; } ;

slide-9
SLIDE 9

u n r e f f u n

  • C

P P U N I T _ T E S T _ S U I T E ( T e s t ) ; C P P U N I T _ T E S T ( t e s t 1 ) ; C P P U N I T _ T E S T ( t e s t 2 ) ; C P P U N I T _ T E S T ( t e s t 3 ) ; C P P U N I T _ T E S T ( t e s t 4 ) ; C P P U N I T _ T E S T ( t e s t 5 ) ; C P P U N I T _ T E S T ( t e s t 6 ) ; C P P U N I T _ T E S T ( t e s t 7 ) ; C P P U N I T _ T E S T ( t e s t 8 ) ; C P P U N I T _ T E S T ( t e s t 9 ) ; C P P U N I T _ T E S T ( t e s t 1 ) ; C P P U N I T _ T E S T _ S U I T E _ E N D ( ) ;

  • t

e m p

  • r

a r i l y

  • d

i s a b l e

  • w

e r r

  • r
slide-10
SLIDE 10

T h e c

  • d

e i s w i t h y

  • u
  • I

f i t d

  • e

s n ’ t s u i t e y

  • u

r n e e d s , c h a n g e i t

  • [

l

  • p

l u g i n : f

  • ]

→ c

  • m

p i l e r p l u g i n s / c l a n g / f

  • .

c x x

  • M

a n y p l u g i n s h a v e w h i t e l i s t s i n t h e c

  • d

e

  • E

i t h e r b a s e d

  • n

s p e c i fi c i d e n t i fi e r s ,

  • r
  • n

s

  • u

r c e fi l e s / h i e r a r c h i e s

slide-11
SLIDE 11

W e ’ r e n

  • t

t h e

  • n

l y p i g h e a d s

  • s

t r u c t S { c h a r b [ 3 ] ; } ; c h a r b u f [ 2 ] ; v

  • i

d f ( s t r u c t S c

  • n

s t * s ) { a s s e r t ( s t r l e n ( s

  • >

b ) = = 1 ) ; s n p r i n t f ( b u f , s i z e

  • f

( b u f ) , " %s " , s

  • >

b ) ; }

  • g

c c

  • W

a l l

  • c

t e s t . c

  • w

a r n i n g : ‘ s n p r i n t f ’

  • u

t p u t m a y b e t r u n c a t e d b e f

  • r

e t h e l a s t f

  • r

m a t c h a r a c t e r [

  • W

f

  • r

m a t

  • t

r u n c a t i

  • n

= ]

slide-12
SLIDE 12

W e ’ r e n

  • t

t h e

  • n

l y p i g h e a d s

  • s

t r u c t S { c h a r b [ 3 ] ; } ; c h a r b u f [ 2 ] ; v

  • i

d f ( s t r u c t S c

  • n

s t * s ) { a s s e r t ( s t r l e n ( s

  • >

b ) = = 1 ) ; ( v

  • i

d ) s n p r i n t f ( b u f , s i z e

  • f

( b u f ) , " %s " , s

  • >

b ) ; }

  • g

c c

  • W

a l l

  • c

t e s t . c

  • w

a r n i n g : ‘ s n p r i n t f ’

  • u

t p u t m a y b e t r u n c a t e d b e f

  • r

e t h e l a s t f

  • r

m a t c h a r a c t e r [

  • W

f

  • r

m a t

  • t

r u n c a t i

  • n

= ]

slide-13
SLIDE 13

W e ’ r e n

  • t

t h e

  • n

l y p i g h e a d s

  • s

t r u c t S { c h a r b [ 3 ] ; } ; c h a r b u f [ 2 ] ; v

  • i

d f ( s t r u c t S c

  • n

s t * s ) { a s s e r t ( s t r l e n ( s

  • >

b ) = = 1 ) ; i n t d u mmy = s n p r i n t f ( b u f , s i z e

  • f

( b u f ) , " %s " , s

  • >

b ) ; ( v

  • i

d ) d u mmy ; }

  • g

c c

  • W

a l l

  • c

t e s t . c

slide-14
SLIDE 14

W e ’ r e n

  • t

t h e

  • n

l y p i g h e a d s

  • s

t r u c t S { c h a r b [ 3 ] ; } ; c h a r b u f [ 2 ] ; v

  • i

d f ( s t r u c t S c

  • n

s t * s ) { a s s e r t ( s t r l e n ( s

  • >

b ) = = 1 ) ; i n t d u mmy = s n p r i n t f ( b u f , s i z e

  • f

( b u f ) , " %s " , s

  • >

b ) ; ( v

  • i

d ) d u mmy ; }

  • g

c c

  • W

a l l

  • O
  • c

t e s t . c

  • w

a r n i n g : ‘ s n p r i n t f ’

  • u

t p u t m a y b e t r u n c a t e d b e f

  • r

e t h e l a s t f

  • r

m a t c h a r a c t e r [

  • W

f

  • r

m a t

  • t

r u n c a t i

  • n

= ]

  • G

C C 7 b u g 8 3 5 4

slide-15
SLIDE 15

S

  • m

e t i m e s I f e e l s

  • h

a p p y S

  • m

e t i m e s I f e e l s

  • s

a d B u t m

  • s

t l y y

  • u

j u s t m a k e m e m a d L

  • u

R e e d