Oh, interesting. Yes the tail call optimization for my interpreter was one thing I need to hand-code. It will be a good learning experience.
> On Dec 13, 2019, at 9:05 AM, Anthony Carrico <acarr...@memebeam.org> wrote: > > On 12/13/19 12:26 AM, Nathaniel Griswold wrote: >> Could I just write llvm directly? (This is my first time using llvm) > > Sure. You should probably play around and write some llvm assembly procedures > by hand. > > I think the main issue with llvm is, or used to be, that you can "call with > arguments" (that is a normal C procedure call), but you can only jump within > a single procedure, so it isn't convenient to modularize state machines like > we can with tail calls in Racket. > > Some compilers create special llvm calling conventions to deal with this, but > it would be nice if there was a standard "jmp with arguments" instruction > (which cleaned up the stack) that you could use to escape into a stackless > mode of operation. > > -- > Anthony Carrico > > -- > You received this message because you are subscribed to the Google Groups > "Racket Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to racket-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-users/6e4191ed-2a54-0a49-f6cb-e5912fa24183%40memebeam.org. -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to racket-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/E30DDF0E-97CA-423F-9F09-5C1C664CBF91%40gmail.com.