1. 3

    I’ll be working on Advent of Code solutions for days 6, 7, and 8. I’ve done days 1-5 in Forth, but want to implement vocabularies for some data structures before starting day 6. I also need to redo my day 3 and 4b solutions as they are brutally slow and very badly written.

    1. 1

      This seems quite reasonable; I’ll add optional support for it to my iOS gopher client soon.

      1. 2

        Work:

        • finish revamping the permissions in an internal app to allow finer grained control (python)

        Personal:

        • finish my gopher via http proxy server (forth)
        • try to get some sleep…
        1. 8

          This is my favorite forth. I think it’s a gem and the engineering that went into this is wonderful. The literate programs that make up the core of the forth really help to get an understanding of the system.

          1. 4

            Would be interested to understand what you and other postesrs who use it – consider to be ‘good use cases’, and the relevant size of applications/libraries written in forth for those use cases.

            My understanding/interest in Forth is around using it as a target for generated code (eg bytecodes), not as a human-accessible programming environment. I am likely too narrow in my understanding, so wanted to expand.

            1. 5

              Some sizes:

              • text editor: 9k source, 194k (binary), 77k is the image, 117k is the vm
              • http server: 6k source, 225k (binary), 108k for the image, 117k for the vm
              • gopher server: 5k source, 186k (binary), 69k for the image, 117k for the vm

              (The source files are large due to embedded commentary; I use a semi-literate format for writing sources)

              The standard system is compiled to a single binary combining the image file (with the actual language) and the vm (with any system-specific I/O extensions). This is 117k on my OpenBSD/amd64 system.

              A minimal system has a 40k image and 18k vm (separate files), but this lacks most I/O extensions.

              For completeness, an x86 multiboot compliant kernel with the vm and image totals 168k in size. This includes keyboard, text display, serial, parallel, cmos, ata drivers and a block editor.