#LispLang

Mille e Una Avventura1001avventura@mastodon.uno
2025-12-13

Dimenticate il familiare prompt del BASIC. In questo episodio di Mille e Una Avventura, diventiamo archeologi digitali per disseppellire i linguaggi di programmazione esoterici e di nicchia che hanno spinto al limite i computer del passato e che possono ispirare i vostri progetti retro oggi. #retrocomputing #lisplang #commodore64 youtube.com/watch?v=03O7vl5EXqc

2025-09-03
Why rewriting Emacs is hard,” by @kana

Yes it is, I can tell you from experience. Of course, I was never under any illusion that it would be easy.

@kana , a.k.a. “Gudzpoz,” wrote a blog post which was shared on Lobste.rs, and they kindly mention my own Emacs clone Schemacs, though they refer to the old name of it “Gypsum” because they are citing my EmacsConf 2024 presentation done before the name changed.

It is a pretty good post going over some of the odd details about how Emacs edits text, e.g. the character range is from 0x0 to 0x3FFFFFF rather than the Unicode standard range from 0x0 to 0x10FFFF, issues with using a gap buffer as opposed to a “rope” data structure, attaching metadata (text properties) to strings to render different colors and faces, and issues with Emacs’s own unique flavor of regular expressions in which the \= symbol indicates matching on the point in the buffer. (I did not know about that last one!)

Apparently, they know these things because they are also working on their own clone of Emacs in Java for the JVM called Juicemacs (the name “Juice” upholding the theme of Java-based applications being named after drinks), and I deduce that their approach is to read through the Emacs C source code to ensure better compatibility. This is now the fourth modern Emacs+EmacsLisp clone that is still under active development that I know of, fascinating work!

My approach is to clone Emacs well enough to get it to pass regression tests, and I don’t read the C source code, I do black-box testing (because those tests become regression tests for my own source code).

Also, the goal with the Schemacs project is more to provide a Scheme-based Emacs that is backward-compatible with GNU Emacs. You use Schemacs because you want to program it in Scheme, not Emacs Lisp, but Emacs Lisp is there for you so you can still use your Emacs config. As a result, I will ignore a lot of these fussy details of the GNU Emacs implementation unless it is going to prevent regression tests from passing.

#tech #software #Emacs #GNUEmacs #Schemacs #EmacsLisp #Lisp #Java #Scheme #R7RS #SchemeLang #LispLang #JavaLang

Mille e Una Avventura1001avventura@mastodon.uno
2025-08-21

Abbiamo mostrato interpreti Lisp eseguiti dal MOS 6510 del C64. Ora, invece, proviamo un emulatore del processore MOS 6502 scritto in Lisp. Scopriamo assieme se funziona! #6502 #lisplang #commodore64 youtube.com/watch?v=jYqWtzN9ZW4

Mille e Una Avventura1001avventura@mastodon.uno
2025-08-20

Grazie a Ready64 scopriamo questa nuovissima implementazione del linguaggio Lisp/Scheme per computer con poca memoria. Dopo aver dato un'occhiata ad altre implementazioni, proviamo assieme questo LISPirito per il Commodore 64. #lisplang #commodore64 #retrocomputing youtube.com/watch?v=bGGmn70KxJU

2025-01-07

“i don’t like lisp because of the parentheses” is a take i have less and less sympathy for over time. what, do you find this.kinda.bullshit() aesthetically inspiring? it’s all code. cope

@garbados for me the whole “because parentheses” take is incredibly ignorant and infuriating because the parentheses in Lisp is not just an arbitrary syntactic choice, it is a very important feature of the language: its elegant, minimalist syntax.

It is because of the parentheses and the prefix notation that the language is so tiny, and so minimal. It is because of parentheses that you can extend the language itself to include features like infix notation, or type checking, if you really need them. It is because of parentheses that we don’t see people designing entirely new programming languages that compile to Lisp just to add features like type checking. If JavaScript had been a real Lisp (as the original author intended), there would have never been any need for TypeScript, CoffeeScript, PureScript, ClojureScript, or whatever else.

The fact that people are never taught to appreciate the minimalist elegance of Lisp syntax has wasted, without exaggeration, many billions, possibly even trillions, of software engineering man-hours over the years.

#tech #software #lisp #LispLang

2025-01-06

The question pretty much says it all: I have a string containing the source code for a valid Elisp expression, and I would like to evaluate it.

@xameer it’s funny, because the answer to this question for Emacs Lisp is the same as most other Lisp dialects, and as far as I know, has been the same answer since 1958:

(eval (read "..."))

To take it a step further and make a read-eval-print loop, it is simply:

(while (not (eq :quit (prin1 (eval (read))))))

Or equivalently:

(defalias 'print 'prin1)
(defmacro loop (expr) `(while (not (eq :quit ,expr))))

(loop (print (eval (read)))) ;; enter ":quit" to quit the loop

Hence the name “REPL”.

#computer #software #lisp #LispLang

2024-12-12
Learning about LambdaMOO

So a lot of people in the Lisp programmer community seem to really like this old “Multi-User Dungeon” (MUD) originally developed at Xerox PARC back in the early 90s, and I thought I would start reading through the programmers manual. I mean, it is called “Lambda” MOO, and Lisp people love it, so it must be a functional programming language like Lisp right?

My face when I find that it is a C-like object oriented programming language:

#tech #software #Lisp #LispLang #FunctionalProgramming #LambdaMOO #MultiUserDungeon

"My disappointment is immeasurable and my day is ruined."
Lenslens_r
2024-06-29

I got bored and wrote a build system with a LISP syntax

```lisp
(executable
lbs
(include-directories inc)
(sources src/main.cpp)
(flags -Wall -Wextra -Wpedantic -Werror))
```

github.com/LensPlaysGames/lisp

2024-05-20

Homoiconic #Python.

A homoiconic programming language does not distinguish code from data. This is a feature #Lisp is famous for and was used to implement itself. The article shows how to implement a Lisp like language based on Python lists using Python's code == data feature.

Lisp: (f (g x))
Python: ['f', ['g', ['x']]]

aljamal.substack.com/p/homoico

#ProgrammingLanguage #compsci #ComputerScience #LispLang

2024-05-13

How To Explore Lisp Metaprogramming Techniques

Updated: A shallow article about metaprogramming that may be actually AI generated. Neverthesess, some basic principles are explained.

marketsplash.com/lisp-metaprog

#Lisp #LispLang #Programming #MetaProgrammingn

2024-03-03

Steel Bank Common Lisp (#SBCL) version 2.4.2 for #MSWindows can now be installed via the #Chocolatey package manager.

community.chocolatey.org/packa

#Lisp #CommonLisp #Lisplang #PackageManager

2022-12-09
2022-12-09
2022-12-01

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst