home.social

#postscarcitysoftware — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #postscarcitysoftware, aggregated by home.social.

  1. @kf I feel your pain. I'm currently (re)writing the substrate of a #Lisp system in C. I am eagerly looking forward to the day (which will be soon -- hopefully as soon as next week) when I will be able to switch most of the work to Lisp. This is the fourth Lisp I've written, and this stage of the process is always the most gruelling.

    #PostScarcitySoftware

  2. @petealexharris Uh-huh. I really want, in #PostScarcitySoftware, for users to be able to type in any form of writing known to humanity, or at least to Unicode. I want it to Just Work™.

    For this reason, as well as because I want to know exactly how many bits I have to allocate to each character, char32_t seems the right solution.

    Except when it's not.

  3. I'm getting stack frames corrupted (or else I'm hitting the wrong stack frames) and I can't see why. My brain is far too messed up to deal with this level of shit just now!

    #PostScarcitySoftware
    #TheJoyOfSoftwareEngineering

  4. My monster, she lives.

    It has to be admitted, she can't do very much yet.

    #PostScarcitySoftware

  5. It's a week since my last #PostScarcitySoftware entry. The version of eval/apply copied from `0.0.6` still doesn't compile, let alone work. There are reasons. I've been ill — my brain really is fucked — and I've had urgent outdoor work.

    There is progress. I am cleaning up bits of old cruft as I go. But I don't think copying the old code was a good decision. If I had started a clean room implementation a week ago, I would now have a working evaluator. Certainly, I'd have a better one.

    #Lisp

  6. @screwlisp @kentpitman @amszmidt (I mean, currently I implement loop by doing a specialisation of try...catch. and while it works I do not consider it elegant!)

    #PostScarcitySoftware

  7. @vnikolov @screwlisp OK, I'm going to take it on faith for now that the value of (expt 1/2 3/4) is irrational, because I don't have the headspace at present to work the proof. But I'm surprised -- it violates my naive intuition.

    What I'm trying to do with #PostScarcitySoftware is to think about how the software for the hardware of the deep future will work.

    Actually, it probably won't, of course. Actually, we'll probably burn the planet in the near future. But it's a fun thought experiment.

  8. @vnikolov @screwlisp OK, I've not got further than basic peano arithmetic yet. #PostScarcitySoftware is a very big project and although yes of course one day it should have very sophisticated mathematics libraries, I'm nowhere near that. My naive expectation is that if I start something like exponentiation with integers and rationals, then the result should be an integer or a rational. I would be *satisfied* with a complex result, provided that the components were integer or rational.
    /Continued

  9. So yesterday, I decided to copy the versions of eval and apply from 0.0.6 (which, after all, do work — there are lots of problems with the 0.0.6 prototype but the interpreter is not one of them) into 0.1.0. But then last night I read the chapter in @cdegroot 's The Genius of Lisp and I'm back to wanting to reimplement them yet again. I'm not sure that this is wise.

    #PostScarcitySoftware

  10. OK, OK. So the version of eval/apply written in C is the :bootstrap version — which is to say, sufficient to get Lisp bootstrapped, and to run the compiler. One or both can then be replaced by new implementations written in #Lisp, to provide the :system versions. And any user should in principle be able to override the :system versions with their own versions (although troubling worries about security come into that).

    #PostScarcitySoftware
    /Continued

  11. There's a Common #Lisp cryptography library called 'Ironclad'. I'm going to need cryptography for #PostScarcitySoftware authentication, but Post Scarcity #Lisp is going to be a lot more like #Clojure than like CL, so I wondered whether anyone had ported Ironclad to Clojure.

    What I found instead was this rather delightful steampunk strategy game!

    github.com/mikera/ironclad

  12. In other news, I'm now posting my #PostScarcitySoftware development log on my blog, in case anyone is interested. Which, if you're sane, you won't be. #Lisp

    journeyman.cc/blog/posts-outpu

  13. @kirtai Yes. I don't love it nearly as much as I loved the #InterLisp Lyric (and previous) structure editor, but it's better than most modern tooling.

    It's that experience that I want to recreate either in the browser (which I'm confident I can do) or in an Electron app (which I'm exploring). The editor will communicate with the underlying #Lisp implementation probably over #nrepl; the idea is that it should be able to work with multiple Lisps, although my target is #PostScarcitySoftware .

  14. I did ten hours on #PostScarcitySoftware yesterday, and then slept a bit, and then woke up with an intention to rapid prototype a '#Lisp structure editor in the browser' idea I've been thinking on for a while. I did about five hours on that, and it's looking promising.

    I'm recovering from burnout, and my sleep discipline is dreadful; I ought to be taking it easy. But... there is something addictive in playing with new code.

    This works for many dialects of Lisp.

  15. Well,. the good news this morning is that i found a stupid bug in `cdr` which, once you've seen it, you can't unsee, so the seventh #PostScarcitySoftware #Lisp prototype is now completing initialisation and entering the REPL.

    The bad news is that there's an unterminating recursion in (I think) `read` which means that as soon as you type anything it crashes out of memory.

    But progress!

    git.journeyman.cc/simon/post-s

  16. CW: Madness

    As I emerge uncertainly from another sustained period of #madness, I realise (again) that I largely use the #PostScarcitySoftware project as self-prescribed anti-suicide therapy. It's sufficiently hard that it has my foggy brain working at full stretch, and sufficiently huge that there's always a next task to tackle. That I will never complete it is part of the point.

    Of course, I've written about this before. I've written about everything before.

    journeyman.cc/blog/posts-outpu

  17. @Kazinator yes, but you still need `eval` to evaluate the functions. The Lisp calling convention is entirely different to the C calling convention. If I build substrate layer `read` to invoke reader macros with C conventions, then

    a: I can't write new reader macros in Lisp; and
    b: when I do write a proper `read` function in Lisp, I'll have to rewrite all the reader macros.

    Whether this actually matters much depends on whether I can fit a compiler into this iteration...

    #PostScarcitySoftware

  18. My monster, it not only compiles, it now runs!

    It doesn't actually do anything useful, yet, but...

    I made the change which @prozacchiwawa suggested to the Makefile, which definitely helped...

    #PostScarcitySoftware

    git.journeyman.cc/simon/post-s

  19. Unexpected numerological finding. I'm allocating memory for objects in sizes that are powers of two, in order to be able to manage separate freelists for each size to make GC easier. My hashtables have a header overhead of 4 words. My namespaces need a write access control list and a mutex in addition, so an overhead of 6.

    It turns out that there are quite a lot more primes which are almost (- (expt 2 n) 4) for some n, than which are almost (- (expt 2 n) 6).

    #Lisp
    #PostScarcitySoftware

  20. OK, folks, I've written yet another incomprehensible essay on the intricacies of implementing a software environment for the hardware of the deep future.

    Read this only if you're incurably geeky, and, ideally, interested in #Lisp.

    #PostScarcitySoftware

    journeyman.cc/blog/posts-outpu

  21. @yogthos The inference engine I was working on for my thesis (and never completed), Wildwood, assigned objects to classes automatically based on their features; so that

    1. one object could be in many otherwise unrelated classes; and
    2. you could define a new class, and it would be automatically populated with every object already known to the system which met its criteria.

    I wrote about this idea in my first essay of the #PostScarcitySoftware project.

    journeyman.cc/blog/posts-outpu

  22. I've written another essay about my mad #PostScarcitySoftware #Lisp system.

    "We don't need to know, or have known, these people to build on their work. We don't have to, and cannot in detail, fully understand their work. There is simply too much of it, its complexity would overwhelm us.

    We don't know. We don't care. And that is a protective mechanism, a mechanism which is necessary in order to allow us to focus on our own task, if we are to produce excellent work."

    journeyman.cc/blog/posts-outpu