Lisp anyone? Common Lisp available on MorphOS
  • Order of the Butterfly
    Order of the Butterfly
    asrael22
    Posts: 450 from 2014/6/11
    From: Germany
    I'm a big fan of Lisps and Common Lisp specifically.
    The last half year I worked on a from-scratch Common Lisp implementation that takes m68k and PPC into consideration.

    I've written a blog post about it:
    https://nnamgreb.de/blog/Clamiga+-+Common+Lisp+for+the+Amiga

    The GitHub project is here:
    https://github.com/mdbergmann/cl-amiga



    Manfred

    [ Edited by asrael22 11.08.2026 - 15:40 ]
  • »11.08.26 - 14:40
    Profile
  • Butterfly
    Butterfly
    Tomo
    Posts: 94 from 2003/7/29
    From: Heesch, The Ne...
    In Beebase you can program in LISP. It is a nice program language for this purpose.
    With the help of LISP I can even make some excercise programs for my grandchildren.
    See for some examples my website: https://tommaaktmuziek.nl/Beebase.html
    Sorry for the Dutch language...

    I'm curious.

    Tom
  • »12.08.26 - 18:05
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    asrael22
    Posts: 450 from 2014/6/11
    From: Germany
    Thanks.
    Looks interesting, BeeBase seems successor of MUIBase database and uses Lisp as scripting language.
    The syntax looks a bit similar to Common Lisps.

    Maybe to clarify, there are many Lisps. It's like in C where there are many dialects of a C based language. Lisp usually just means that the language is based on S-expressions, meaning the syntax uses parenthesis, so something like "()" is an empty list. The whole syntax is nothing more than lists in fact. Then there are certain conventions that the first element of the list is a function name and the rest are arguments, etc.

    Common Lisp is a more general language and runtime. So you could create this database with it for example.
    Wikipedia gives a good introduction: https://en.wikipedia.org/wiki/Common_Lisp

    There are many things that are still lacking on the Amiga/MorphOS API bindings side of things, like currently there are only API bindings for basic Intuition, Screens, Gadgets and Sound.
    Latest changes add an ARexx port for editor integration and a nicer development workflow. So you don't need to go to the REPL, reload your source file manually. ARexx can do this.
    There should be also MUI bindings and many more things later.


    Manfred

    [ Edited by asrael22 13.08.2026 - 06:18 ]
  • »13.08.26 - 05:10
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    OlafSch
    Posts: 193 from 2011/11/16
    It is cool. It works also on Aros 68k too

    Just tested
  • »13.08.26 - 17:04
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    asrael22
    Posts: 450 from 2014/6/11
    From: Germany
    Wow, that's nice.
    How are you running AROS 68k?

    I'm currently working on native TLS support via AmiSSL (also works on MOS), OpenSSL on MOS later.
    When working I'll prep a new release.
  • »14.08.26 - 10:11
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    OlafSch
    Posts: 193 from 2011/11/16
    I am developing my distribution using winuae. Part of it are many script languages and also regular languages. There I have added it
  • »14.08.26 - 11:05
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    asrael22
    Posts: 450 from 2014/6/11
    From: Germany
    Released v0.7 with bunch of changes, i.e. TLS support built-in (based on AmiSSL). MorphOS build uses wide-characters by default.

    Common Lisp "Drakma" HTTP client now works with TLS (note this requires my "usocket" and "trivial-features" cloned to "PROGDIR:quicklisp/local-projects" folder, until those forks were submitted/accepted upstream).

    Code:

    COMMON-LISP-USER> (progn
    > (require "asdf")
    > (load "~/quicklisp/setup.lisp")
    > (load "lib/quicklisp-compat.lisp"))
    T

    COMMON-LISP-USER> (ql:quickload :drakma)
    To load "drakma":
    Load 1 ASDF system:
    drakma
    ; Loading "drakma"

    (:DRAKMA)

    COMMON-LISP-USER> (setf drakma:*header-stream* *standard-output*)
    #<CONSOLE-OUTPUT-STREAM>

    COMMON-LISP-USER> (drakma:http-request "https://aminet.net")
    GET / HTTP/1.1
    Host: aminet.net
    User-Agent: Drakma/2.0.10 (CL-Amiga 0.7.0; MorphOS; http://weitz.de/drakma/)
    Accept: */*
    Connection: close

    HTTP/1.1 200 OK
    Server: nginx/1.24.0 (Ubuntu)
    Date: Sun, 16 Aug 2026 12:14:02 GMT
    Content-Type: text/html;charset=UTF-8
    Content-Length: 74611
    Connection: close
    Vary: Accept-Encoding
    X-AN-Backend-Host: main-aminet;nginx
    Cache-Control: public
    X-Varnish: 5592974 5592501
    Age: 495
    Via: 1.1 varnish (Varnish/7.1)
    Accept-Ranges: bytes
    "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">n<html><head><title>Aminet - Latest packages, last 14 days</title>n
    ..."
  • »16.08.26 - 10:29
    Profile