sl

A read-only mirror of https://git.kyotam.com/sigrid. It updates only from there.

README.md

StreetLISP

StreetLISP logo

"Well, streetlisp sounds like yet another arrogant hacker Lisp."

Original logo drawn by pmjv.

builds.sr.ht status

Coverage report

Community

For development and support: #StreetLISP on Libera.Chat.

For contribution guidelines see CONTRIBUTING.md.

What's this?

A compact interpreter for a minimal lisp/scheme dialect. A street lisp.

This is a reanimation of https://github.com/lambdaconservatory/femtolisp with bigger plans.

Here you can see some of the syntax/naming differences between StreetLISP and other Scheme dialects.

There are no plans to turn this into Yet Another Scheme, which are already plenty to choose from. When it comes to general development directions, StreetLISP is moving towards being somewhere in between Common Lisp and Scheme, yet not striving to fit any specific standard. The goals are certain level of minimalism and less typing, useful standard library, good Unicode support, portability and interfacing with C of both POSIX-like operating systems and Plan 9. Eventually, hopefully, there will be experiments in cooperative/multithread computations with Erlang-style message passing between "processes".

Note: StreetLISP is in active development, thus should not be considered a stable software at this time.

< cinap_lenrek> maybe thats all you need
< cinap_lenrek> a street lisp
< cinap_lenrek> sl(1)

Supported OS: Unix-like operating systems (OpenBSD, NetBSD, Linux, etc), 9front.

Supported CPUs: any decent 32 or 64-bit, little or big endian.

Regularly tested on: Linux, OpenBSD, NetBSD, Alpine, Android, 9front.

Also runs on: Windows XP-…, MacOS 4.x-9.x, Mac OS X, Haiku, DOS.

Building

POSIX

git submodule update --init
mkdir -p build
# note: muon is an AI-slop-free alternative to meson
muon -C build build ..
muon -C build test

Plan 9

mk all test

MacOS 4.x-9.x (m68k or PowerPC)

Clone and build Retro68. This fork grabs the necessary patches for more things to work as expected:

git clone https://git.sr.ht/~ft/retro68
mkdir retro68-build
cd retro68-build
../retro68/build-toolchain.bash --ninja
# wait until everything builds, make sure it did not error out

Now build sl:

cd sl
export PATH="$PATH:$(pwd)/../retro68-build/toolchain/bin"
# for PowerPC:
meson setup build . -Dbuildtype=minsize --cross-file cross/powerpc-apple.txt
# for m68k:
meson setup build . -Dbuildtype=minsize --cross-file cross/m68k-apple.txt
ninja -C build

Either build/sl.dsk or build/sl.bin is the file to get on your Mac. Note the build type is explicitly set to minsize - higher optimization levels may be broken with latest GCC versions when compiling for m68k.

NOTE: this isn't a full-fledged port and is going to stay low priority unless somebody wants to spend time polishing it.

DOS

Build DJGPP cross-compiler, then:

export PATH=$PATH:path-to-djgpp-toolchain/bin
meson setup build . -Dbuildtype=minsize --cross-file cross/djgpp.txt
ninja -C build

Result is build/sl.exe.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t