Welcome!

Thank you for your past work. Trying to emulate it concretized and motivated almost all of my high school and undergraduate math classes.

On 03/18/2015 02:59 PM, John Carmack wrote:
...

I have a specification for a VR related file format that is headed towards 
JSON, but I am seriously considering changing it to s-expressions and embedding 
a trivial (not Racket) Scheme for scripting.

What kind of Scheme did you have in mind?

It's not terribly hard to embed Racket, nor to create a "#lang" language that gives access to only the leanest parts of the language and libraries.

On the other hand, it's easy to write a Scheme interpreter. But you don't get the JIT, optimizer, and other goodies.

I'm teaching my son with Racket.  He has worked in a few different imperative 
languages prior.

If he's interested in 3D, he might like Pict3D, a 3D engine written in Racket that has a purely functional interface. (Most of the internals are purely functional as well.) Disclaimer: the API is stable, but I'm still expanding it, and I haven't used my own kids as guinea pigs yet.

I would be interested in hearing any guidance for high performance servers 
written in Racket.  GC delays in the tens of milliseconds will be problematic 
for at least part of this application, but I could split that part off into a 
separate server and still leave the other part in Racket if necessary.  The 
main benefit is currently development productivity, so obnoxious 
micro-architectural optimizations aren't useful, but broad strategic guidelines 
would be appreciated.

Listen to Jay. :) He doesn't use DrRacket, though, so he's left something out.

When you do performance testing and statistical profiling, it's fine to use DrRacket if you turn off debugging and (the other) profiling support, and uncheck "Preserve stacktrace" in the "Choose Language" dialog.

But when measuring GCs, run programs from the command line. DrRacket and its tools use a lot of heap. In their initial state, this adds about 10ms to minor collections and 500ms to major collections. Using Typed Racket will magnify the differences because its compile-time analysis is quite memory-heavy.

Neil ⊥

____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to