Open rrnewton opened 9 years ago
Ryan: what's here that's not in python.
Need to sell the work much harder in response to this question.
me: what do you give me over python?
spenser: get typed racket, macro system, ... racket may be easier to optimize...
Sam: rephrasing, what technology is here that's not in JITs for other languages (python, lua, Java, etc).
Spenser: here we apply this to a language without explicit loops.
LuaJit will detect any back-edge in a branch as a loop. (Does that then cover function calls? I guess so.)
the part of the answer that's missing: Python does not do tail call optimization, so recursive functions in PyPy will not be compiled to loops.
Ken is proposing
could somebody write down Ken's question? I can't hear it on the microphone
He's saying something about visualizing the callgraph... but I missed part of it because I went to get snacks ;-).
I'm editing them into the comment above
Feedback: @ccshan: had trouble understanding notions of loops. Terminology such as "back edge" confusing. Be more pictorial about the callgraph. append
example has cycle in callgraph in CPS.
@rrnewton wants to know "Which technology is new" -- and what about call/cc and contract optimizations? Hammering home that novelty is good.
Feedback: @rrnewton: Hinted at the novelty of CEK. Also emphasize novelty of call/cc
and contracts.
On the comparison with other Scheme compilers: is this an apples to apples comparison? Like, checking for fixnum overflow, checking bounds on vector references, etc? This is a bit tricky with Scheme compilers, since they don't agree on much.
@vollmerm Yes, it basically is. Pycket doesn't handle Ctrl-C quite as well as the others, which is a little unfair, but that's it. Fixnums/vectors/etc are all the same.
Practice talk -- 23:10 total time.