Prototype work towards building a post-scarcity software system
Find a file
2019-02-05 11:02:04 +00:00
include This isn't working, but I think it's progress. 2017-09-13 12:50:20 +01:00
lisp It works! 2019-01-28 18:46:24 +00:00
notes Still broken, but I believe we're moving in the right direction. 2019-01-24 10:12:08 +00:00
src #8: keywords as functions on associations working 2019-02-05 11:02:04 +00:00
unit-tests Made the slurp unit test more robust. 2019-01-28 19:00:29 +00:00
utils_src Various fixes while trying to make defun! work 2018-12-28 22:41:00 +00:00
.gitignore It works! 2019-01-28 18:46:24 +00:00
Doxyfile Mostly fixing and standardising documentation. 2019-01-20 20:37:44 +00:00
LICENSE Initial commit 2017-01-02 11:07:48 +00:00
Makefile Tactical commit whilst converting to URL_FILE 2019-01-24 19:36:00 +00:00
README.md Noticed that my notes files weren't being rendered by github 2018-12-29 16:39:20 +00:00
unit-tests.sh Added more unit tests. 2017-01-07 11:13:06 +00:00
where-does-it-break.sh Much investigation of bignum problems 2019-01-19 16:28:15 +00:00

Post Scarcity Software System, version 0

Very Nearly a Big Lisp Environment

tl,dr: look at the wiki.

State of play

Version 0.0.4

Has working rational number arithmetic, as well as integer and real number arithmetic. The stack is now in vector space, but vector space is not yet properly garbage collected. defun does not yet work, so although Lisp functions can be defined the syntax is pretty clunky. So you can start to do things with this, but you should probably wait for at least a 0.1.0 release!

Introduction

Long ago when the world was young, I worked on Xerox Dandelion and Daybreak machines which ran Interlisp-D, and Acorn Cambridge Workstation and Archimedes machines which ran Cambridge Lisp (derived from Portable Standard Lisp). At the same time, Lisp Machines Inc, Symbolics, Thinking Machines, Texas Instruments and probably various other companies I've either forgotten or didn't know about built other varieties of dedicated Lisp machines which ran Lisp right down to the metal, with no operating system under them. Those machines were not only far superior to any other contemporary machines; they were also far superior to any machines we've built since. But they were expensive, and UNIX machines with the same raw compute power became very much cheaper; and so they died.

But in the meantime hardware has become vastly more powerful while software has hardly advanced at all. We don't have software which will run efficiently on the machines of the future, we don't have tools to build it, and it often seems to me we're not even thinking about it.

Ten years ago I wrote an essay on what software would look like if we treated our computers as though their power was unlimited (which, compared to what we had at the start of my career, it pretty much is); two years ago I wrote about the hardware architecture which might in future support that hardware.

What I'm trying to do now is write a detailed low level specification of the underpinnings of the software system, and begin a trial implementation. Version 0 will run as a user-space program on UNIX, but very much with the intention that a later version will run on top of either a micro-kernel or perhaps even just a BIOS. However I've no real plans to build post scarcity hardware - I lack the skills. What I'm aiming for is to be able to run on 64 bit, multiple processor hardware.

Although I describe it as a 'Lisp environment', for reasons explained in Post Scarcity Software that doesn't mean you will program it in Lisp. It means that the underlying representation of things in the system is Lispy, not Unixy.

License

Copyright © 2017 Simon Brooke

Distributed under the terms of the GNU General Public License v2