Spritely team rocks.
https://spritely.institute/news/mandy-activitypub-on-goblins.html
Spritely team rocks.
https://spritely.institute/news/mandy-activitypub-on-goblins.html
Now, this is cool! Goblins actors and ActivityPub. Found this via Planet Scheme.
https://spritely.institute/news/mandy-activitypub-on-goblins.html
@ArneBab
Well that's no longer an alist, but a proper list works for me?
(define ls '(1 2 3))
(list-set! ls 0 42)
(display ls) (newline)
=>
(42 2 3)
So I thought maybe it's 2.2.4, nope:
(display (version)) (newline)
(define ls '(1 2 3))
(list-set! ls 0 42)
(display ls) (newline)
=>
3.0.9
(42 2 3)
> johncowan: What do people think of my "immutability redux" issue at
https://codeberg.org/scheme/r7rs/issues/296
<
That seems fine. I do occasionally make mutable structures by '(), so I'd have to change them to list, but that's probably saner anyway.
Like, I do this (but more complex):
> (define ls '((foo . 1) (bar . 2)) )
((foo . 1) (bar . 2))
> (set-cdr! (assoc 'foo ls) 42)
> ls
((foo . 42) (bar . 2))
In this, I'd have to write
(define ls (list (cons 'foo 1) (cons 'bar 2)) )

My current ideas: 1. Any type that has lexical syntax always returns an immutable object when constructed using that lexical syntax. 2. Types that don't have lexical syntax may be constructed using procedures that return mutable or immutable objects. In the cases of pairs/lists, strings, and ve...
Lightweight and easily extendable / embeddable Lisp dialect with deterministic performance made in Nim. https://github.com/bk20x/M/tree/devel
This is a really fun #scheme #lisp implementation and the author is super cool and loves to talk shop. Been waiting for a lisp/scheme written in for nim c

Lightweight and easily extendable / embeddable Lisp dialect with deterministic performance made in Nim. - GitHub - bk20x/M: Lightweight and easily extendable / embeddable Lisp dialect with determi...
Released Guile-DSV 0.9.0:
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.9.0
In the new version:
"scm->dsv" and "scm->dsv-string" procedures were re-written to use a simple FSM with concurrent processing of table rows.
This gives Guile-DSV much better performance. For example, given a
test table with 1'000'000 rows and 10 columns, "scm->dsv" finished in 55s on
Ryzen 9 5950X w/ 128GB of RAM, while the same task took 3649s on the same
machine when Guile-DSV 0.8.1 is used.
I spent last few days optimizing Guile-DSV (https://github.com/artyom-poptsov/guile-dsv)
For one, I replaced old "DSV builder" with new code based on Guile-SMC; secondly, I also used Guile-Fibers/Threads to better utilize capabilities of modern CPUs.
So here are some results: according to my benchmark, it took around 55s to print 1'000'000 rows, 10 columns table, on Ryzen 9 5950X.
For comparison: it took 3649s for Guile-DSV 0.8.1 to process the same amount of data.
Nice.