<OriansJ`>anyone have an idea of how to shoe horn tail calls into mes-m2? ***ChanServ sets mode: +o rekado
<OriansJ`>janneke: does mescc absolutely need tail calls? <janneke>OriansJ`: if you put it that black and white, then i don't think so <OriansJ`>janneke: good, since I can't figure out a simple way to do tail calls without making mes-m2 harder to understand <OriansJ`>since I have perhaps made the requirements for mes-m2 a little too aggressive and am having to pair it back to a core which would enable others to help <janneke>OriansJ`: simple is much better, mes is too complex (it's great that "it works") <OriansJ`>janneke: true but complexity is unavoidable once one implements a certain level of functionality. <OriansJ`>The only way to reduce that in MesCC would be to break it into a C preprocessor and a C state machine. Then perhaps integrate the slow-utils scheme implementations of M1 and hex2; thus making MesCC have no external dependencies. <OriansJ`>but that would be slightly tedious work with only having the marginal benefit of easier to maintain code. <yanmaani>OriansJ`: Couldn't you have a multi-tiered implementation? <yanmaani>So, have a preprocessor, and then have a #ifdef TAILCALLS <yanmaani>and implement the stuff inside the guards without tail calls <yanmaani>to compile it, you build a tailcall-less version, then use it to compile itself <OriansJ`>yanmaani: in theory yes. however mes-m2 has only 1 (maybe 2) jobs to do: run MesCC well enough to bootstrap GCC (possibly run a scheme capable of bootstrapping guile psyntax.pp) <OriansJ`>janneke: I still could use your help with the MesCC half of mes-m2 <OriansJ`>specificly getting guile -L module/ -e main -s scripts/mescc.scm -c mes.c -o foo.S to work <OriansJ`>as I still need a static target to get mes-m2 to run