abcdw, (edited ) We sneakily released Arei Guile Scheme IDE 0.9.5 a couple weeks ago. Mostly because there is not much user-visible new functionality, we just keep polishing sharp edges before 1.0 release.
To keep you updated: Yesterday I implemented extensions resolution mechanism, Nikita is cleaning up session handling on Emacs side and a couple more things left to do.
While we are getting ready for 1.0, @lil started to work on Hoot support!
abcdw, (edited ) @graywolf Answering your question in Guile's IRC about record introspection: to obtain fields of a record-type there is record-type-fields function.
You can go even further and get a list of fields from record itself.
(record-type-fields (record-type-descriptor (%make-some-record 1 2 3)))r6rs records introspection have a bit more consistent naming:
(use-modules (rnrs records inspection))
(record-type-fields (record-rtd (%make-record 1 2 3)))
shegeley, I was missing #clojure -alike data structures (immutable vectors and hash-tables) and basic operations on them (get, get-in, assoc, assoc-in, update, update-in) and a basic atom operations (ref, reset!, swap!) a lot in #Guile #Scheme.
So much that I have to write a library for it https://github.com/shegeley/clojureism
:lisp: :clojure:
abcdw, Telling about dynamic/lexical scope in Scheme, fluids, parameters, dynamic-state's and their life in multi-threaded environment in 9 minutes.
Let me know what other questions about Scheme you have.
mirkoh, @abcdw Thanks!, this is really useful (great short video format). I haven't done any multi-threading programming yet, but I think the first examples should be useful to create some debugging helpers.
abcdw, @mirkoh Thank you for feedback, it's quite helpful! :)
luis_felipe, 📢 «Looking for Guile Trainings / Consultant»
«Basic information about the project:
The software is a GUI client for lighting control systems. Its written in C++ using QT and guile.
We will publish it under a GPL compatible license, (probably GPLv3).
There are no NDAs or other restrictive agreements in place.»
More information:
https://lists.gnu.org/archive/html/guile-user/2024-05/msg00125.html
(I'm not related to the offering, but maybe you're interested)
ekaitz_zarraga, @luis_felipe Should we collab to make a website for guile jobs or something like that?
Like a job aggregator or something...
daviwil, @ekaitz_zarraga @luis_felipe Guile is functional, I would call it a job reducer
futurile, 📢 Curious about the the transactional deployment model #nix invented? Intrigued by functional programming #scheme #guile? Looking for tips on #guix? David Wilson (@daviwil) will be giving a talk TOMORROW (Wednesday 29th) at 17:00 UTC - Register here!
https://libreplanet.org/wiki/Group:Guix/PatchReviewSessions2024
daviwil, I just opened registration for the June iteration of the "Hands-On Guile Scheme for Beginners" course!
This is an 8-week course that is a mixture of on-demand learning content, live Q&A sessions, practical exercises, and a private forum where I answer all your questions.
This iteration officially begins on June 8th, full details and schedule can be found here:
https://systemcrafters.net/courses/hands-on-guile-scheme-beginners/
Come learn Scheme and functional programming with us!
dgr,
daviwil, @dgr I'm starting to plan that now! Will probably send out a survey soon to figure out what people are most interested in learning
daviwil,
crmsnbleyd, @daviwil you need to make games full time because this looks so good (half-serious)
daviwil, @crmsnbleyd Thanks! Can't take credit for the art, this is from kenney.nl. Need to work on my pixel art skills!
krevedkokun, time to make a game I think #guile #scheme #lispgamejam #ecs
daviwil, Streaming Day 4 of my Spring Lisp Game Jam project right now!
Today I'll start implementing a minimal, Scheme-like scripting language for the monsters in the game. We'll finally start to see it become somewhat playable!
Check out the game here:
https://fluxharmonic.itch.io/lambda-dungeon
https://codeberg.org/daviwil/lambda-dungeonJoin us on YouTube:
Restream is not cooperating today so the Twitch stream is down!
PaniczGodek, @daviwil FWIW I have an implementation of A* for Guile here:
https://github.com/plande/grand-scheme/blob/master/grand/graph.scm (called "optimal-path")
It uses some of the (grand scheme) syntax, namely the matching variant of lambda, matching variant of the and-let* form and the "is" predicate combinator, all of which are defined here:
https://github.com/plande/grand-scheme/blob/master/grand/syntax.scm
(be careful though, because it shadows some of the core bindings, including lambda and define)
daviwil, @PaniczGodek nice, thanks for sharing that! The implementation looks really interesting
ramin_hal9001, To anyone writing programs in #Scheme right now, this is just a reminder that you can search through a huge cluster of Scheme libraries indexed by procedure name, including all SRFIs, at the https://index.scheme.org/ website. If you need code to do something, try searching by keyword to see if someone has already written it. Most APIs listed there even have Haskell-like types and are tagged as "pure" if they are pure.
daviwil, @ramin_hal9001 nice! I wasn't aware of this site
daviwil, Streaming Day 3 of my Spring Lisp Game Jam project right now!
Today I'll start building the interactive script editor that will enable you to edit the logic scripts for the game's monsters. This will be my first attempt at writing DOM-manipulating UI code in Hoot so it should be fun!
Check out the game here:
https://fluxharmonic.itch.io/lambda-dungeon
https://codeberg.org/daviwil/lambda-dungeonJoin us on YouTube or Twitch:
etenil, These are your father's parentheses. An elegant weapon... For a more civilised age.
daviwil, Streaming Day 2 of my Spring Lisp Game Jam project right now!
We'll continue building out the game world by adding a few game objects and possibly wiring up their basic logic. If we have time, we might start working on the interactive editor!
The project code can be found on Codeberg:
https://codeberg.org/daviwil/lambda-dungeon
Join us on YouTube or Twitch:
Alexjgriffith, @daviwil it also looks like the GC wasm features hoot depends on have been mainlined by all the major browsers so people won't have to run nightly versions to run the games this time around
daviwil, @Alexjgriffith yep! Major improvement. The games seem to work in mobile browsers now too, at least on my phone
daviwil, Dave Thompson @dthompson is now live streaming work on his Spring Lisp Game Jam entry!
If you want to see what a real Hoot hacker's game code looks like, check this out :)
luis_felipe, @daviwil @dthompson The streaming feels like an episode of The Joy of Painting with Bob Ross, plus City Pop BGM. I like it 🙂
daviwil, @luis_felipe @dthompson soothing vibe!
daviwil, Kicking off my Spring Lisp Game Jam project right now! I'll be using Guile Hoot to build a hackable dungeon crawler.
This will be a multi-day effort, so today will be focused on getting everything started off in style!
Join us on YouTube or Twitch:
ArneBab, German define-typed for #guile in 17 lines of code: https://www.draketo.de/software/guile-snippets#define-typed
abcdw, All the basics of Arei Scheme IDE in 5 minutes. Overview of functionality avaliable in 0.9.4.
mpv https://youtu.be/ygeph9Uet9A
olav, @abcdw looks fantastic and great intro!
I'll definitely try this for my guixing
looks like home coming from CIDER
abcdw, @olav Thank you!
We implement nREPL protocol, so yes, it's definitely something comming from a CIDER :)
abcdw, We released Arei Guile IDE 0.9.4. It's already available in Guix.
https://git.sr.ht/~abcdw/emacs-arei/refs/0.9.4
https://git.sr.ht/~abcdw/guile-ares-rs/refs/0.9.4It has eldoc and xref (go to definition) features, better completion and a few other improvements.
Big kudos to @krevedkokun for implementing them.
We are working hard towards 1.0, which will be even more exciting:
https://todo.sr.ht/~abcdw/tickets?search=label%3Amilestone-arei-1.0
abcdw, What "Clownshoes semantics" means?
I was tracing the issue and stumbled upon this phrase in the comment in Guile source code, I'm really puzzled.
https://git.savannah.gnu.org/cgit/guile.git/tree/module/ice-9/suspendable-ports.scm?h=0e9ccaf47#n742
abcdw, Implementing run-project-tests for SRFI-64 test suits.
https://youtu.be/pDBOKTK9SL8
https://yewtu.be/watch?v=pDBOKTK9SL8
abcdw, @ekaitz_zarraga oh, ok :)
For now I miss custom asserts with custom error messages, for example cecking if a list is a subset of another and if not showing the set difference and other similiar use cases.
abcdw, (edited ) @ekaitz_zarraga I suspect, there is a chance that I will find some other critical problems, but don't have time at the moment to design another testing framework and just hope SRFI-64 will serve me well enough :)
louis, "Scheme and Common Lisp differ mostly in the communities they cater to. Scheme programmers like to talk about how great it is to have a short specification; Common Lisp programmers like to write programs."
- Let Over Lambda, Doug Hoyte
nthcdr, @louis Smalltalk syntax fits on a postcard they happily say. The distinction of what is core language, what is standard library and what is auxiliary is just fighting over the position of an invisible slider.
To get stuff done you are either reinventing everything or reusing something regardless of the length of your specification. In fact if your specification is short you just failed to document your standard library, no?
krevedkokun,
daviwil, @krevedkokun nice!
krevedkokun,
abcdw, There are a few cool commits landed on guix master today:
- chez-scheme: Update to 10.0.0.
- racket: Update to 8.12.
- chez-scheme: Bootstrap from source.
- Add librewolf.