IRC channel logs

2024-01-09.log

back to list of logs

<oriansj>muurkha: indeed. Although I can't say that I have ever seen FORTH interpreters written in FORTH. They are usually written in another language (generally assembly) and then expanded in FORTH.
<oriansj>same is true for BASIC
<muurkha>oriansj: most FORTH interpreters are written in FORTH, using the FORTH as a macro assembler
<muurkha>the exceptions like jonesforth are, I think, more readable
<muurkha>but the vast majority of the hundreds of FORTHs that have been written, and I think literally all the historically important ones, have been written in FORTH
<muurkha>polyForth, FIG-FORTH, F-83, colorForth, Muench and Ting's eForth model, Pygmy Forth, and bigForth are all written in FORTH, for example
<muurkha>bigForth and colorForth are unusual in this list because they're native-code compilers, so they don't need parts to be written in assembly, except in the sense that the output from any compiler is written in assembly
<muurkha>I think Win32Forth is also written in Forth, but I can't remember. that would be an exception to 'all the historically important ones' if not
<muurkha>the FORTHs I've seen that are *not* written in FORTH are pfe, jonesforth, and gforth
<GoogulatorMobile>muurkha: more importantly it's not just 0.26 and all releases since then, but also all the intermediate commits
<GoogulatorMobile>Including 2.x, which was also lost
<GoogulatorMobile>And we also have development history for the gap Guix currently has
<GoogulatorMobile>Unfortunately the clisp build of Yale Haskell has some serious issues - but it turns out, we do have another free Common Lisp implementation supported by Yale Haskell out of the box (CMU CL, which is now public domain)
<GoogulatorMobile>And there's a bootstrap path of clisp (GPL, written in C, not self-hosted) -> SBCL (MIT - derivative of CMU CL, might itself be able to run Yale Haskell) -> CMU CL
<GoogulatorMobile>Yale Haskell 2.05 does appear to support recursive modules, which are the major reason why Hugs can't bootstrap GHC
<GoogulatorMobile>So maybe HBC won't even be needed
<muurkha>GoogulatorMobile: that's fantastic!
<muurkha>it's surprising that clisp is buggy; it has a good reputation. I suppose you aren't using a contemporary version of clisp, because I think there wasn't one, but a recent version?
<Googulator>It's not that clisp is buggy - the problem is that Yale Haskell never officially supported it.
<Googulator>And it seems rekado's port of Yale Haskell to clisp is rather brittle.
<Googulator>CMU CL, OTOH, is one of the first-party supported platforms in Yale Haskell.
<Googulator>Of course, the problem could well be coming from the fact that I'm trying to compile Yale Haskell on an x86-64 system, an issue that shouldn't come up at all once I move to bootstrapping inside LB.
<Googulator>(LB is 32-bit currently)
<Googulator>The same clisp has no trouble compiling SBCL.
<muurkha>interesting, I guess I was assuming without justification that Yale Haskell was written in portable Common Lisp
<pder>Googulator: I tried current LB master and Fiwix hangs a little bit earlier. The last line I see is "kexec-fiwix: jumping to trampoline.."
<Googulator>hmm, so Fiwix basically doesn't even start?
<pder>It appears that way. Let me verify my environment is clean and I will try again
<Googulator>Try booting a regular 32-bit Linux under the same version of qemu - if it boots, please post the e820 map as reported in dmesg
<pder>Googulator: looks like this time it worked.
<pder>This was after doing a git clean and reseting my branch to master
<matrix_bridge><Andrius Štikonas> Perhaps you had too many files there and exceeded some limit
<pder>Googulator: second test worked as well
<pder>I spoke too soon. I ran the test on the wrong machine. I am still getting the hang before booting Fiwix
<pder>Let me trying booting linux in this version of qemu and post the e820 map
<matrix_bridge><Jeremiah Orians> muurkha: fig-forth has all of its implementation written in assembly.
<Googulator>rekado: is there something magical needed to get the package cl-yale-haskell work on Guix?
<matrix_bridge><Jeremiah Orians> And if you just use FORTH as a macro assembler to implement your FORTH, doesn’t that kind of prove the point?
<Googulator>For me, it's segfaulting on a simple Hello World.
<stikonas>Googulator: do you know if traps work fine with subshells in our bashes?
<stikonas>it would probably be much cleaner if src_* functions were all "local"
<stikonas>i.e. variables set there wouldn't propagate back