Recent posts

#1
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by ufko - December 20, 2025, 08:55:15 PM
TL;DR: From now on, set is the only way to assign or
mutate anything in Rebel. There is no separate
set ', setq, setf family.


Thanks for testing, Hapco.

You cloned a short transitional commit where the new
assignment semantics were already in place, but the
explicit error behavior was not yet implemented.

In Rebel, set is now the only assignment primitive.
Internally, set is equivalent to setf.

This means that assignments always operate on places.
Quoted symbols are not accepted as assignment targets.

Rebel v1.0 64-bit on BSD IPv4/6 UTF-8 libffi, options: rebel -h

> (set 'a '("hello" "there"))
ERR: quoted symbol used in function set

> (set a '("hello" "there"))
("hello" "there")
> a
("hello" "there")

Using (set 'a ...) is rejected by design. Everyone
who uses the (set 'sym ...) syntax in newLISP
has been doing it completely unnecessarily
the whole time.
Current versions emit a clear error in this case.

Until the new assignment semantics are fully documented,
the behavior of set can be considered equivalent to
the existing newLISP setf documentation.

Existing newLISP code that relies on the original
set 'symname, setq, or setf forms must be rewritten to
use the unified set form in order to run on Rebel.

As a temporary migration aid, it is possible to define
an alias for setf or setq, for example in
~/.init.rbl

(constant (global 'setf) set)
(constant (global 'setq) set)

Ufko
#2
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by hapco - December 20, 2025, 02:12:39 PM
Yes, this is (potentially) great!

There is this, though:

Rebel v1.0 64-bit on Linux IPv4/6 UTF-8 libffi, options: rebel -h

> (set 'a '("hello" "there"))
("hello" "there")
> a
nil
>


newLISP v.10.7.6 64-bit on Linux IPv4/6 UTF-8 libffi, options: newlisp -h

> (set 'a '("hello" "there"))
("hello" "there")
> a
("hello" "there")
>
#3
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by boris - December 14, 2025, 02:46:26 AM
Best Christmas present ever, exactly what I have wanted for a long time.
And can I just say the wiki is a model of clarity!
Built quickly with no errors and briefly tested on MX-Linux 23.6
#4
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by ufko - December 10, 2025, 11:56:10 AM
Thanks Carlos.
A real hardware test is important information for me!

One note about the current direction:


Rebel removes lambda completely.

If existing code uses lambda* symbols, you need to add your own aliases with
(constant (global ...)) or rewrite the scripts:

lambda is fn
lambda-macro is fn-macro
lambda? is fn?

define returns (fn ...),
define-macro returns (fn-macro ...),
macro returns (fn-macro ... expand ...),
macro? returns true for macros defined with define-macro or macro

Documentation will be updated later.
It is not a priority right now.

Ufko
#5
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by FossilizedCarlos - December 10, 2025, 08:39:23 AM
Quote from: ufko on November 22, 2025, 01:09:15 PMRebel is now fully 64‑bit clean and Unix-native.

For anyone interested in a lean,
Unix-focused swiss-knife interpreter,
this is the version to try :)

Builds and works fine on macOS 26.1  :)
#6
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by itistoday - December 01, 2025, 09:39:46 AM
That project seems relatively unknown and abandoned afaict
#7
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by vashushpanov - November 30, 2025, 10:58:06 PM
What You say about https://github.com/Solant/rebel/
May be You rename project to any another non-conflicting name.
Your project is very good and needs unique name.
#8
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by ufko - November 22, 2025, 01:09:15 PM
Hey guys!

Rebel is now fully 64‑bit clean and Unix-native.
All the archaic cruft has been removed.

Windows support removed
Emscripten support removed
Legacy platform shims removed

New -q flag has been added
Init file is now ~/.init.rbl
(rebel -h)

All other functionality remains unchanged.

QA tests (qa-dot, FFI) run cleanly here:
Github Workflows
You can see Rebel running QA (qa-dot) test
on Ubuntu and macOS

For anyone interested in a lean,
Unix-focused swiss-knife interpreter,
this is the version to try :)

If you have questions, discuss here:
https://github.com/ufko-org/rebel/discussions

U.
#9
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by ufko - November 17, 2025, 01:16:27 AM
Too bad you don't remember, maybe they're already solved by now :)
I've been using newLISP for a short time and hadn't worked with
any Lisp-like language before, so I'm a newbie, but those parens
really drew me in :D

My priorities are as follows:

1. fix all warnings under strict compilation, e.g., with -Wextra
2. create tests for built-in functions
3. create examples for new users
4. create/modify/rebrand documentation (markdown)

#10
newLISP newS / Re: Forked newLISP – Meet Rebe...
Last post by itistoday - November 16, 2025, 02:10:47 PM
I'd love to see some improvements to interacting with CLI programs. It's been a long time since I've done this but I remember that newLISP had issues when it came to managing the input / output of running programs, especially when combining piping data in to the program and getting data back out from both stdout and stderr, and handling errors.