IRC channel logs

2020-10-03.log

back to list of logs

<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
<janneke>;)
<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