abcdw, to random
@abcdw@fosstodon.org avatar

Lack of a built-in associative array/map in Scheme regularly hits and bothers me. It's so generic and so useful, maybe we will add it in r8rs?

Alists doesn't work here not only for performance reason, but because we can't distinguish empty list and empty alist.

#scheme #lisp #guile

civodul, to random
@civodul@toot.aquilenet.fr avatar

The 🐑 0.10.0 is out!
https://lists.gnu.org/archive/html/guix-devel/2023-05/msg00180.html

It’s a major overhaul of the internals leading to (I think!) a more pleasant user experience.

abbienormal, to guix Italian

This whole thread

And it just scratches the surface


https://merveilles.town/@csepp/110630712415216894

daviwil, to scheme
@daviwil@fosstodon.org avatar

In this video, I'll give you 5 reasons why I think you should learn Scheme this year! Regardless if you are a programming beginner or an expert hacker, there is a lot to be gained from learning this language.

Would love to hear your thoughts!

https://www.youtube.com/watch?v=3eXK9YZ0NjU

daviwil, to emacs
@daviwil@fosstodon.org avatar

If you've got questions about Emacs, Guix, Guile, or other related topics and want a friendly place to ask them, come check out the new System Crafters Forum!

https://forum.systemcrafters.net

Things are a little bare for now, so feel free to come introduce yourself and tell us about something cool you've been working on lately :)

More information in the news post: https://systemcrafters.net/news/new-system-crafters-forum/

ArneBab, to random German
@ArneBab@rollenspiel.social avatar

There’s a paid internship offer with the Greens in Brussels that needs and skills: https://www.greens-efa.eu/en/get-involved/work-with-us — I thought you may be interested. Deadline for application: 31 May, 23:59 CET — info about needed skills is from an email of a green elected: Internal toolchain development, debugging or maintenance, using Guile Scheme, Guix, PHP (Drupal / CiviCRM), bash, postgres, sqlite and similar technologies

abcdw, to scheme
@abcdw@fosstodon.org avatar

One more reason why it's hard to use alists as associative data structure: There is no built-in destructuring capabilities for it. It seems (ice-9 match) is no help here. Situation becomes even worse if we have a nested data structure.

Going to stack a bunch of let+assoc-ref's I guess.

avp, to scheme
@avp@fosstodon.org avatar

I'm pleased to announce Guile-PNG version 0.7.2:
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.7.2

Guile-PNG is a pure Scheme PNG (RFC 2083) format parser for GNU Guile.

The library allows to create, read process and write PNG images.

abcdw, to guix
@abcdw@fosstodon.org avatar

One of the most popular distributions based on GNU Guix turned 3000 commits, wow!

https://sr.ht/~abcdw/rde/
https://github.com/abcdw/rde

rml, to random
@rml@functional.cafe avatar

"I tried #SBCL, and something I noticed was that for any simple function, #lisp takes a moment to compile, which isn't acceptable for a #shell"

Is this really the case?? Doesn't sound right at all.

#Guile and #Chez both feel faster than #bash, for example.

https://www.youtube.com/watch?v=dCbTw9UOuS8

abcdw, to emacs
@abcdw@fosstodon.org avatar

I fought FOMO (fear of missing out) so hard that I missed my Q&A for EmacsConf 2023 (:

The talk was about Guile Scheme IDE:
https://emacsconf.org/2023/talks/scheme/

I would really love to hear your feedback and questions, so if you have some, post it here or reach me out via https://trop.in/contact

Kudos to @sachac and the organizers team for making such a great conference.

ramin_hal9001, to random
@ramin_hal9001@emacs.ch avatar

"Oh good, finally some free time! Now I can try writing that code in that I have been wanting write for months!" I say to myself.

(Opens new ".scm" file, M-x geiser-guile<RET>)

"...There. Now I will just open the Guile info-docs in and oh yes, there is the section on HTTP servers..."

(4 hours later...)

  • 40 sections down the reference manual rabbit hole
  • 10 tabs open at Akku
  • 0 lines of code written

"Oh, cool. the guile-lib package has an asynchronous message queue! I can use that... Hmm, it seems there are a few different efforts on Akku to pull in a bunch of portable code into a single library. I had better bookmark these... oh, wow, Guile 3.0 has SRFI-171 (Transducers) built-in now! Amazing! I need to rewrite that algorithm I wrote last time to use Transducers... Oh wow, so when you parse XML you don't need to parse the whole structure into memory, you can use Oleg Kiselyov's SSAX framework and just supply callbacks that are triggered as each part of the tree is parsed, discarding the parts you don't need... so now how do you... oh, NOW I get it! So the (cond ((VALUE GUARD => LAMBDA))) syntax specified in SRFI-61 lets you test the value then applies it to a function if the test passes! So you can combine that with things like Transducers and SSAX to create super-advanced queries over various data structures... now this is starting to make sense..." (falls asleep at desk)

rml, to random
@rml@functional.cafe avatar

When @spritelyinst closes in on their work on 's wasm compiler (maybe later this year?!), it'll certainly become the easiest way to target optimized . Tree-IL has gotta be the simplest intermediate language to compile to, and you get all the optimizations Guile offers for free.

Considering Robin Templeton, the author of Guile's compiler, is one of the engineers behind it, I can't help but speculate that this will put in the browser within reach. If I can handle my org-agenda online by 2025, I will cry.

It's called because it allows just a few friends to plot a CONSpiracy to build amazing things.

daviwil, to scheme
@daviwil@fosstodon.org avatar

Lambda Dungeon is starting to look pretty good!

abcdw, to guix
@abcdw@fosstodon.org avatar

We develop rde on sourcehut, but there is a mirror on github and recently I realized that it has 185 stars already:
https://github.com/abcdw/rde

How many it is?

Do you know other small to medium sized projects, which only mirrors on github?

alephoto85, (edited ) to programmazione
@alephoto85@livellosegreto.it avatar

[LISP/SCHEME] Guile Hacker Handbook in Italiano.

@programmazione

Amicɜ, da qualche mese mi sto interessando alla famiglia di linguaggi Lisp/Scheme e, nel processo di ricerca, mi sono imbattuto e ho tradotto l'handbook di @jeko

È molto interessante, in continuo aggiornamento ed è orientato alla Test Driven Development.

Spero possa esservi utile!

Se trovate qualche errore o avete feedback sulla traduzione scrivetemi pure.

Grazie 🙏

https://jeko.frama.io/it/index.html

abcdw, to scheme
@abcdw@fosstodon.org avatar

The best way to get all available stuff from textual port I found so far is:
(define (read-all-chars-as-string port)
(let loop ((chars '()))
(if (char-ready? port)
(loop (cons (read-char port) chars))
(reverse-list->string chars))))

ramin_hal9001, to Lisp
@ramin_hal9001@emacs.ch avatar

The Scheme language's small size isn't necessarily a strength

So I was reading through part of the EmacsWiki and in the article on the Scheme programming language there are references to this ancient online debate from August of the year 2000 at the comp.lang.lisp Usenet group started by the late Erik Naggum, who was apparently a somewhat opinionated and inflammatory individual, who brought up the Scheme/Common Lisp debate on comment thread about someone being confused about how the CASE clause works.

The Scheme language standard at the time was R5RS, Naggum's argument is a common refrain from Scheme fans such as myself, and he was arguing with Kent Pitman ( @kentpitman ) who was one of the sub-committee chairs of the Common Lisp X3J13 standardization process, and is the editor and maintainer of the Common Lisp HyperSpec, an online form of the Common Lisp specification. Kent Pittman's reply I thought was very well-reasoned, and worth re-posting here (quote):

I just absolutely don't believe the Scheme standard is fairly cited as a model of a "better" standard. It is enormously vague on numerous matters of consequence. It omits really essential functionality that would be needed to write any seriously portable programs. It was stagnant for years on quibbles over some of the silliest syntax details. In my opinion, it's a toy language. There are real commercial Scheme implementations, but only by the sheer will of those implementers who've gone beyond the so-called standard and written in the things that the standard ought to have said in order to make the language finally useful. It achieves its "prettiness" and its "smallness" on the back of just plain leaving stuff out where it would appear to "clutter", and whatever you think of CL, I personally reject any claim that the Scheme is a model of improvement.

(end quote)

I wouldn't go so far as to call Scheme a "toy language" because the parts of the standard that are well-defined are solid and very useful. But yes, it seems the only useful implementations do solve these problems not addressed by the standard in completely different ways that makes it very difficult to write a Scheme program on one implementation that runs on another. Try to write one program that runs on MIT Scheme, Guile, Chez, Racket, Bigloo, Cyclone, Stklos, and Gambit. Try to even compute what set of SRFI (language extensions) are common to all of them. Most Scheme programmers have to pick just one implementation and stick to it without much hope of ever porting their programs to other implementations. It is possible to do it, easier than porting a program from Python to C++, but still not at all as easy as running the same Common Lisp program on SBCL, ECL, ABCL, or Franz.

So I do agree with @kentpitman that there are some pretty important details left up to the implementers simply because none of them could agree on what to do and punted the issue rather than resolve it. Later (after the aforementioned Usenet debate) R6RS would try to solve these issues, but that standard was mostly rejected by the larger part of the Scheme community due to a lack of consensus. Much of that work lives on in the SRFIs, while Chez Scheme (R. Kent Dybvig) seems to be sticking to R6RS and is one of the most well-respected Scheme implementations, and a kind of flagship of that standard.

I still have hope for R7RS-large though, which might end up being even larger than X3J13 when all is said and done. Unfortunately, recently John Cowan, chair of the R7RS-large standardization committee threw his hands up in resignation a few months ago after almost 10 years of trying to hammer-out consensus over details of the new R7RS-large standard. Daphne Preston Kendal ( @dpk ) has taken over and is fully capable of continuing the work.

It might be interesting if some Schemers could get together and write a new fully R7RS-compliant Scheme-to-Scheme compiler in R7RS-small Scheme, with all of the COND-EXPAND expressions in place to run on all of the major R7RS-compatible Scheme implementations. This compiler would simply translate its input into code that the host Scheme compiler can compile, deferring low-level implementation details to the host. The compiler should be one massive file that you could just load into any Scheme compiler and it just works. Then this compiler maybe, just maybe could become The Scheme Standard. A good starting point would be the work of Marc Nieper-Wißkirchen who has written Rapid Scheme which compiles R7RS Scheme to another host Scheme, but it only supports Chibi and Larceny as the hosts.

abcdw, to random
@abcdw@fosstodon.org avatar
rml, to random
@rml@functional.cafe avatar

#guix tip of the day:
upstream server issues got you retriggering a command until the download succeeds? fire up a #guile repl and have it automate the process for you with just a few lines of #scheme.

abcdw, (edited ) to random
@abcdw@fosstodon.org avatar

New Guile REPL in one minute.

A brief demo of guile-ares-rs (previously known as guile-nrepl) dealing with continuations and infinite recursion.

https://youtu.be/27Nqj-oTq5U

The source code:
https://git.sr.ht/~abcdw/guile-ares-rs
https://github.com/abcdw/guile-ares-rs

abcdw, to scheme
@abcdw@fosstodon.org avatar

Fun fact: After calling join-thread, you still can get #f from thread-exited?

abcdw, (edited ) to guix
@abcdw@fosstodon.org avatar

Plan to stream about management of elixir projects with Guix in one hour and a half.

Will talk about transitive package management in general and why it's better not to package language-specific packages with Guix, will learn by example and clean up some tools we've made during the last month for Elixir in particular.

Hope the connection will be good (:

https://youtu.be/DWMvb9b_M8k
https://trop.in/stream

#guix #elixir #erlang #scheme #guile

abcdw, to guix
@abcdw@fosstodon.org avatar

We have enough funds on RDE's opencollective, so we can setup a CI and substitute server and maybe some other infrastructure/project-related services in foreseable future.

Thank you very much everyone for help and support! <3

Let me know what else you miss.

https://opencollective.com/rde

ArneBab, (edited ) to random German
@ArneBab@rollenspiel.social avatar

define-typed: a static type syntax-rules macro for #Guile to create API contracts and help the JIT compiler create more optimized code:

https://www.draketo.de/software/guile-snippets#define-typed

Improved thanks to feedback from Vivien and Zelphir in the Guile User mailing list.

Just 26 lines to get argument and return value typing without changing Guile.

I love the flexibility of #Scheme ❤️

#freesoftware #gnu #programming #coding #code

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • thenastyranch
  • rosin
  • GTA5RPClips
  • osvaldo12
  • love
  • Youngstown
  • slotface
  • khanakhh
  • everett
  • kavyap
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • provamag3
  • magazineikmin
  • InstantRegret
  • normalnudes
  • tacticalgear
  • cubers
  • ethstaker
  • modclub
  • cisconetworking
  • Durango
  • anitta
  • Leos
  • tester
  • JUstTest
  • All magazines