slides: add a title to the slides windows, looks a little more polished that way
parent
8a2cf5d67b
commit
ea5ceabca7
|
@ -5,61 +5,49 @@ IN: chicago-talk
|
|||
|
||||
CONSTANT: chicago-slides
|
||||
{
|
||||
{ $slide "factor"
|
||||
{ $slide "factor"
|
||||
{ $url "http://factorcode.org" }
|
||||
}
|
||||
{ $slide "goals"
|
||||
"high level language"
|
||||
"expressive and extensible"
|
||||
"reasonable performance"
|
||||
"interactive development with arbitrary redefinition"
|
||||
"standalone app deployment (strip out compiler and REPL)"
|
||||
}
|
||||
{ $slide "challenges"
|
||||
|
||||
{ $url "http://factorcode.org" }
|
||||
|
||||
}
|
||||
{ $slide "goals"
|
||||
|
||||
"high level language"
|
||||
"expressive and extensible"
|
||||
"reasonable performance"
|
||||
"interactive development with arbitrary redefinition"
|
||||
"standalone app deployment (strip out compiler and REPL)"
|
||||
|
||||
}
|
||||
{ $slide "challenges"
|
||||
|
||||
"higher-order functions"
|
||||
"dynamic typing"
|
||||
"memory allocation"
|
||||
"float boxing/unboxing"
|
||||
"integer overflow checks"
|
||||
"user-defined abstractions"
|
||||
|
||||
}
|
||||
{ $slide "implementation"
|
||||
|
||||
"VM: 12 kloc of C, library: >100 kloc of Factor"
|
||||
"generational copying garbage collection, card marking write barrier"
|
||||
"full continuations, tail calls"
|
||||
"simple non-optimizing “bootstrap” compiler"
|
||||
"optimizing compiler"
|
||||
|
||||
}
|
||||
{ $slide "optimizing compiler"
|
||||
|
||||
"about 12,000 lines of Factor code"
|
||||
"targets x86-32, x86-64, PowerPC"
|
||||
"factor code ⇒ high-level SSA ⇒ low-level SSA ⇒ machine code"
|
||||
|
||||
}
|
||||
{ $slide "high-level optimizer"
|
||||
|
||||
"macro expansion, defunctionalization"
|
||||
"type and interval inference, sparse conditional constant propagation, method inlining"
|
||||
"escape analysis and tuple unboxing"
|
||||
|
||||
}
|
||||
{ $slide "low-level optimizer"
|
||||
|
||||
"alias analysis, value numbering, write barrier elimination"
|
||||
"linear scan register allocation"
|
||||
|
||||
}
|
||||
"higher-order functions"
|
||||
"dynamic typing"
|
||||
"memory allocation"
|
||||
"float boxing/unboxing"
|
||||
"integer overflow checks"
|
||||
"user-defined abstractions"
|
||||
}
|
||||
{ $slide "implementation"
|
||||
"VM: 12 kloc of C, library: >100 kloc of Factor"
|
||||
"generational copying garbage collection, card marking write barrier"
|
||||
"full continuations, tail calls"
|
||||
"simple non-optimizing “bootstrap” compiler"
|
||||
"optimizing compiler"
|
||||
}
|
||||
{ $slide "optimizing compiler"
|
||||
"about 12,000 lines of Factor code"
|
||||
"targets x86-32, x86-64, PowerPC"
|
||||
"factor code ⇒ high-level SSA ⇒ low-level SSA ⇒ machine code"
|
||||
}
|
||||
{ $slide "high-level optimizer"
|
||||
"macro expansion, defunctionalization"
|
||||
"type and interval inference, sparse conditional constant propagation, method inlining"
|
||||
"escape analysis and tuple unboxing"
|
||||
}
|
||||
{ $slide "low-level optimizer"
|
||||
"alias analysis, value numbering, write barrier elimination"
|
||||
"linear scan register allocation"
|
||||
}
|
||||
}
|
||||
|
||||
: chicago-talk ( -- ) chicago-slides slides-window ;
|
||||
: chicago-talk ( -- )
|
||||
chicago-slides "Chicago talk" slides-window ;
|
||||
|
||||
MAIN: chicago-talk
|
||||
|
|
|
@ -307,6 +307,6 @@ CONSTANT: galois-slides
|
|||
}
|
||||
}
|
||||
|
||||
: galois-talk ( -- ) galois-slides slides-window ;
|
||||
: galois-talk ( -- ) galois-slides "Galois talk" slides-window ;
|
||||
|
||||
MAIN: galois-talk
|
||||
|
|
|
@ -564,6 +564,7 @@ CONSTANT: google-slides
|
|||
{ $slide "Questions?" }
|
||||
}
|
||||
|
||||
: google-talk ( -- ) google-slides slides-window ;
|
||||
: google-talk ( -- )
|
||||
google-slides "Google Tech talk" slides-window ;
|
||||
|
||||
MAIN: google-talk
|
||||
|
|
|
@ -353,6 +353,6 @@ CONSTANT: jvm-summit-slides
|
|||
}
|
||||
|
||||
: jvm-summit-talk ( -- )
|
||||
jvm-summit-slides slides-window ;
|
||||
jvm-summit-slides "JVM Summit talk" slides-window ;
|
||||
|
||||
MAIN: jvm-summit-talk
|
||||
|
|
|
@ -177,6 +177,7 @@ CONSTANT: minneapolis-slides
|
|||
{ $slide "Questions?" }
|
||||
}
|
||||
|
||||
: minneapolis-talk ( -- ) minneapolis-slides slides-window ;
|
||||
: minneapolis-talk ( -- )
|
||||
minneapolis-slides "Minneapolis talk" slides-window ;
|
||||
|
||||
MAIN: minneapolis-talk
|
||||
|
|
|
@ -336,6 +336,7 @@ var price = (order == null ? null : order.price);" }
|
|||
}
|
||||
}
|
||||
|
||||
: otug-talk ( -- ) otug-slides slides-window ;
|
||||
: otug-talk ( -- )
|
||||
otug-slides "OTUG talk" slides-window ;
|
||||
|
||||
MAIN: otug-talk
|
||||
|
|
|
@ -123,5 +123,5 @@ SYNTAX: STRIP-TEASE:
|
|||
{ T{ key-down f f "f" } [ toggle-fullscreen ] }
|
||||
} set-gestures
|
||||
|
||||
: slides-window ( slides -- )
|
||||
'[ _ <slides> "Slides" open-window ] with-ui ;
|
||||
: slides-window ( slides title -- )
|
||||
'[ _ <slides> _ open-window ] with-ui ;
|
||||
|
|
|
@ -529,6 +529,7 @@ xyz
|
|||
}
|
||||
}
|
||||
|
||||
: tc-lisp-talk ( -- ) tc-lisp-slides slides-window ;
|
||||
: tc-lisp-talk ( -- )
|
||||
tc-lisp-slides "TC Lisp talk" slides-window ;
|
||||
|
||||
MAIN: tc-lisp-talk
|
||||
|
|
|
@ -487,6 +487,6 @@ CONSTANT: vpri-slides
|
|||
}
|
||||
}
|
||||
|
||||
: vpri-talk ( -- ) vpri-slides slides-window ;
|
||||
: vpri-talk ( -- ) vpri-slides "VPRI talk" slides-window ;
|
||||
|
||||
MAIN: vpri-talk
|
||||
|
|
Loading…
Reference in New Issue