Masthash

#guile

I have a software tool that I use at $dayjob quite a bit. I'm impressed in general with its capabilities, but I don't like that it has it's own bespoke programming language and read-eval-print-loop. I would much rather it provide its features in the form of an embedded domain-specific language inside #guile e.g. so that I don't have to recall its syntax quirks or jump through strange hoops to do what is natural in a Real Programming Language™.

Currently contemplating whether to jump down that rabbit hole...

anyone having trouble with guile packages like artanis not being available for import?

both guile and artanis have been installed via guix and i have the "art" command readily available in my terminal, but the moment i drop into a guile repl i don't get to "use-module" the library. (just an error that there is no module)

#guile #artanis #guix

Paul SomeoneElse
2 days ago

#guix #akku #guile

How does Akku relate to Guix ?

Perk
4 days ago

Let’s get back into it! Learning all that #Guile tech and grinding matchups🫡

http://Twitch.tv/PerkFGC

#FGC #StreeetFighter6

blake shaw
1 week ago

@ramin_hal9001 @louis @screwtape
fwiw I'm looking at the #guix #ECL installation rn, and running
$ guix shell ecl
[env]$ cd $GUIX_ENVIRONMENT/bin
[env]$ du -h ecl
4.0K ecl

thats extremely impressive. I don't know if thats because the ecl binary primarily calls libraries (perhaps for fine grain modularity), or if its actually that small.

fwiw, with all it's deps included:
[env]$ cd $GUIX_ENVIRONMENT
[env]$ du . -h
20K ./lib/pkgconfig
180K ./lib
48K ./include
24K ./share/info
24K ./share/doc
20K ./share/man/man3
24K ./share/man
76K ./share
8.0K ./etc
-------------------------
320K .

in comparison:
$ guix shell chez-scheme
[env]$ cd $GUIX_ENVIRONMENT/bin
[env]$ du -h scheme
308K #scheme

[env]$ cd $GUIX_ENVIRONMENT
[env]$ du . -h
312K ./bin
8.0K ./etc
776K ./lib/csv9.5.8/examples
3.3M ./lib/csv9.5.8/ta6le
4.0M ./lib/csv9.5.8
4.0M ./lib
12K ./share/doc/chez-scheme-9.5.8
12K ./share/doc
12K ./share/man/man1
12K ./share/man
24K ./share
4.4M .

and the #guile binary is tiny, but its dynamically linked & the full install is ~55MiB on guix

blake shaw
1 week ago

When @spritelyinst closes in on their work on #Guile's wasm compiler (maybe later this year?!), it'll certainly become the easiest way to target optimized #wasm. 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 #elisp compiler, is one of the engineers behind it, I can't help but speculate that this will put #emacs in the browser within reach. If I can handle my org-agenda online by 2025, I will cry.

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

Gergely Nagy 🐁
1 week ago

A new #Debian stable is out soon, and I should be upgrading. Since I'll be upgrading anyway, I'm also pondering - yet again - about switching to #NixOS.

While I'm not a fan of the nix language, and would much prefer #Guix's #Guile, I am dependent on systemd, and am not going to part with that.

Maybe I'll have another go at trying to figure out how to make nixos do the things I want to do.

Andrew Tropin
1 week ago

Tonight a few friends sent me a message that #rde is on a front page of Hacker News. Is it something good?

https://news.ycombinator.com/item?id=36131210

https://trop.in/rde

#guix #nix #hn #hackernews #scheme #lisp #guile

Message in matrix about rde being on front page of hackernews
Andrew Tropin
1 week ago

Guile is coming closer to web assembly. Impressive results.

https://spritely.institute/news/scheme-to-wasm-lambdas-recursion.html

#guile #scheme #wasm #hoot

(((o))) Acoustic Mirror
1 week ago

guile-gemini: An implementation of the #gemini protocol for GNU #Guile, using #fibers and gnutls.

https://github.com/flatwhatson/guile-gemini

Zelphir Kaltstahl
1 week ago

How does guile-fibers make it possible to send non-string data via its channels, like in the slightly adapted example code of https://notabug.org/ZelphirKaltstahl/guile-examples/src/76b36632323ef6f66548c7e8659f530685cd18bb/fibers/send-non-string-data.scm ? Is dark magic at work, transferring pointers to memory regions? Does fibers somehow automatically find a suitable serialization format and serializes data and deserializes it later?

#guile #fibers #coding #programming

blake shaw
2 weeks ago

@amcooper i would recommend Scheme, starting with #guile.

Arne Babenhauserheide
2 weeks ago

Yes, I have completed a (smaller) project without going to the internet. → https://medium.com/p/dfe9e44ee555

(followed by: I call BS on your call of BS ☺ — but only for those tools that actually *ship* good documentation, and those are rare.)

#guile #scheme #programming #freesoftware

Andrew Tropin
2 weeks ago

Preparing the last stream in the series related to scheme static sites generators:

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

#scheme #guile #lisp #haunt

Indieterminacy
3 weeks ago

@zwol @civodul ... well NixOS set out explicitly to do something New And Different, ... Guix merely approached it better #Guile

Arrgh, I hope people arent feeling bad. OS developers and packagers have to do lots of patient and arduous work and yet its the bits above these layers which get all the shiny toys and then get to complain.

Its all ants and grasshoppers, really. If people arent happy with how their operating system is working they should shop around or step up and fill leadership gaps

Andrew Tropin
3 weeks ago

Migrated my website to Haunt. A lot of work ahead, but I already can start writing blog posts.

#scheme #lisp #guile #ssg #haunt

Russell
4 weeks ago

What #scheme and/or #guile feeds and blogs should we be following?

Andrew Tropin
4 weeks ago

rde Meetup #3 is [re]scheduled for May 27.

We plan to explore guile and rde future work plans, meow and modal editing, project documentation.

https://lists.sr.ht/~abcdw/rde-announce/%3C871qjmjaow.fsf%40trop.in%3E

Join IRC/matrix for more interesting talks:
https://trop.in/rde/manual#Chat

#rde #guix #guile #irc #matrix #meetup

blake shaw
4 weeks ago

I'm just now catching Andrew Whatson's talk on #PreScheme from #fosdem this year, and I just can't get over the fact that he was able to implement a working, reasonably fast systems programming language with Hindley-Milner type inference in his free time over the course of a few months. And I was in the #GuileSteel irc when the discourse first started, it was probably less than a month before he got it working. I even try it then and it seemed great for something that went up that quick. What other programming languages make rapid prototyping #compilers feasible without relying on massive frameworks like #LLVM or #Truffle/#Graal?

And even then...

https://fosdem.org/2023/schedule/event/prescheme/

#guile #guix

Arne Babenhauserheide
1 month ago

There’s a paid internship offer with the Greens in Brussels that needs #Guix and #Guile 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 #job

blake shaw
1 month ago

5 minute attempt at something like #clojure's defn in #scheme

#guile #guix

clojure defn with syntax-case in scheme
David Wilson
1 month ago

Today I'm spending some time writing up an outline for a new guide and video series about Guile Scheme!

The goal is to teach anyone (even programming beginners, if possible) how to use Scheme as a language for building personal tools (scripts, etc) and managing their system via Guix. Guix itself won't be covered in depth, but the features of the language used commonly in Guix will be!

What would you like to see covered in such a series?

#gnu #guile #scheme #guix

Andrew Tropin
1 month ago

Implemented bencode encoding/decoding in Guile Scheme.

TDD is a pleasure, when you have proper tools and can [re]run specific test groups instantly.

https://git.sr.ht/~abcdw/guile-nrepl/tree/257353b1/item/src/bencode.scm

#guile #scheme #lisp #tdd #emacs

The source code for bencode scheme tools in the left emacs window and the result of tests execution in the right.
blake shaw
1 month ago

#Lisp(s) are the only programming environments that enable a prototype-to-production development cycle for non-trivial projects in a way that is predictable.

#clojure #commonlisp #janet #guile #scheme

blake shaw
1 month ago

Fun fact: #guilescript's .gs file extension stands for "Gerry Sussman"

#guile #scheme #lisp

Andrew Tropin
1 month ago

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

Andrew Tropin
1 month ago

Tomorrow I continue to explore Haunt (Static Site Generator by @dthompson written in Scheme), will migrate my current pages to it and make a foundation for the blog:

https://youtu.be/7jKxC99F9eQ
https://trop.in/stream

#scheme #guile #lisp #haunt #emacs

Arne Babenhauserheide
1 month ago

Dryads Sun came in at position 7 in the #game #jam for #blind gamers! https://itch.io/jam/games-for-blind-gamers-2/rate/2043845

All games in the jam: https://itch.io/jam/games-for-blind-gamers-2/results

#Guile #scheme #wisp #rpg #webdev #freesoftware #FOSS

If you want to write a game like Dryads Sun yourself, just clone https://hg.sr.ht/~arnebab/dryads-sun — the game is free licensed under AGPL and the tooling under LGPL (so unfree games are possible, though that’s not what I write).

Everthink Canus Minor M0SayIC
1 month ago

I think the tags I put on this imgur business day should be seen. #guile $fgc #shermieneko #shermie #shermieorochi

David Wilson
1 month ago

🔴 Today on #SystemCrafters Live, we'll experiment with a Wayland compositor called `dwl-guile` which is meant to be used with GNU Guix and configured with Guile Scheme!

Do we now have a modern, REPL-hackable window management experience built on Wayland? Let's find out!

Join us on YouTube or Twitch:

- https://youtube.com/live/wHbH0VGJ6TQ
- https://twitch.tv/SystemCrafters

Stream time in your time zone: https://time.is/compare/1800_in_Athens

#gnu #guix #guile #scheme #wayland #linux #freesoftware

Arne Babenhauserheide
1 month ago

@w96k And if you add doctest-style (just write the test at the top of the function), then test-driven development becomes the natural thing to do.

For #Guile #Scheme: https://hg.sr.ht/~arnebab/wisp/browse/examples/doctests.scm

blake shaw
1 month ago

@nilmethod sbcl is generally faster than most schemes (but chez certainly gives it a run for its money), but #guile and #chez are incredibly fast in terms of start up and compile times. I read somewhere that chez bootstraps #idris in about 2 minutes, for example (I think #haskell took over 20 minutes when it was the implementation language).

blake shaw
1 month ago

"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"
- Ilya Sher, author of #NGS ("next generation shell") on #InferencePodcast

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

Andrew Tropin
1 month ago

Do someone with Guile FFI experience want to help me to get started with guile-tree-sitter? (:

Just share some FFI best practices and/or highlight overall direction/approach will be enough.

#guile #lisp #treesitter #ffi

blake shaw
1 month ago

I wonder if the GC interface #whippet will bring to #guile will put tooling for reproducible benchmarks within reach 👀

blake shaw
1 month ago

@PaniczGodek oh really? to me they are like the bread and butter. when you build good records and structure your programs around them, your flexibility increases dramatically as you have these quasi-"intermediate representations" that are extensible and easy + performant to handle. many schemes use records as their fundamental underlying data representation, including #guile and I believe #chez as well. and I think #r6rs record protocols make them both extremely extensible and parametric, as well as #guix's define-record-type* lazy records which serve a similar purpose with a lot less cognitive overhead.

lots of cool record systems out there, I'm interested in understanding the tradeoffs of #gauche's approach in particular, which is to implement records within a #clos-like object system, which seems to allow you to work with generic methods on record-types (which is something that GOOPs is not very good at, for example). what approach did you go with for your record system?

blake shaw
1 month ago

#Stage0 of the #guix full source bootstrap is commented well enough that you can get a sense of what's going on fwiw

https://git.savannah.nongnu.org/cgit/stage0.git/tree/stage0/stage0_monitor.hex0

#mes #hex0 #guile #scheme

Barry Schwartz 🫖
2 months ago

I don’t think I had ever mixed #ATS and #Guile before in a way where the program actually starts in ATS. It took me a while to figure out that I had to put a call to scm_init_guile() in the garbage collection initialization function. Alternatives exist, but this seems the best of them, short of actually starting in straight C or Scheme.

Jason Self
3 months ago

@cwebber Congratulations on the progress with the guile port of terminal-phase! It's always exciting to see advancements in free software development. Keep up the great work! #freesoftware #guile #terminalphase

Jeko
3 months ago

🚀 New chapter added to the Guile Hacker Handbook ! 🚀

This is a book to learn Guile in a #TestDrivenLearning style 👽

⬇️ Check it out ⬇️
🇫🇷 🇬🇧 jeko.frama.io

The Guile app tutorial is making a new step forward.

How do you feel about the « Fix it! » experiment ?

#gnu #guile #scheme #lisp #testDrivenDevelopment #tdd #fuctionalprogramming #learnToCode #CodeNewbie #100DaysOfCode

Konrad Hinsen
3 months ago

@rgb @t73fde There are at least two systems that use s-expression-based markup coupled with an s-expression-based programming language:

- Scribble: https://docs.racket-lang.org/scribble/
- Skribilo: https://www.nongnu.org/skribilo/

#Lisp #Scheme #Racket #Guile

Andrew Tropin
3 months ago

Skeemed throught Scheme Primer.

Good introductionary material by @cwebber: easy to read, practical, no bs, covers all necessary fundamentals, shows how to implement Scheme evaluator in Scheme.

https://spritely.institute/static/papers/scheme-primer.pdf

#scheme #guile #lisp

Andrew Tropin
3 months ago

After a few years of rde development and contributions to Guix, I finally started to learn Scheme 😄

#rde #guix #scheme #guile

(hollaback/cc)
4 months ago

Well this is good news

@wingo to lead Guile → WASM project!

https://spritely.institute/news/andy-wingo-leads-g2W.html

#guile #scheme #wasm

Andrew Tropin
4 months ago

I guess during last a few weeks my Lisp preference list changed from:

Clojure, Scheme, Common Lisp, Emacs Lisp.

to

Scheme, Clojure, Common Lisp, Emacs Lisp.

I still find Clojure much more pleasant and elegant out of the box, but Scheme seems more and more future-proof to me.

#clojure #guile #scheme #lisp #emacs #commonlisp

aeva
4 months ago

Is #guile cross platform? The docs only mention using it on Linux, and I only see official binaries for Linux...?

David Wilson
4 months ago

🔴 On today's #SystemCrafters stream we'll discuss how we might improve the experience of getting started with Guix Home!

I have a few ideas for improvements I'd like to investigate, but I'm more interested to hear your thoughts if you've tried Guix Home already!

Join us LIVE at 4PM UTC on YouTube or Twitch:

- https://youtu.be/zZCfDXlbkXo
- https://twitch.tv/SystemCrafters

#gnu #guix #guile #scheme #linux #freesoftware

(((o))) Acoustic Mirror
4 months ago

#Guix enthusiasts should call themselves "Geeks". "Guix Geeks". Or "Geeks Guix"... "Geeks Geeks".... "Guix Guix"... "Guix²".

Maybe "Guix Geeks" is fine.

#fosdem #programmerhumour #dadjokes #guile #scheme #guix

@cwebber @spritelyinst

Good idea, opens a lot of possibilities but will it be up-streamed to gnu

#guile #scheme

David Wilson
5 months ago

🔴 On today's #SystemCrafters stream, we'll take a look at the Sway compositor for Wayland and discuss the benefits of using it.

We'll also spend some time writing a Guile Scheme library that will enable us to configure Sway interactively at the REPL!

Join us LIVE at 4PM UTC on YouTube or Twitch:

- https://youtu.be/zx_wItkicKE
- https://twitch.tv/SystemCrafters

#emacs #guix #guile #gnu #linux #freesoftware #sway #wayland

David Wilson
5 months ago

🔴 On today's #SystemCrafters stream, we'll attempt to build a custom Guix distribution with a pre-configured desktop environment.

We'll try it out by building a VM image that enables you to boot directly into the default configuration!

Join us LIVE at 4PM UTC on YouTube or Twitch:

- https://youtu.be/yiPC4GotNXA
- https://twitch.tv/SystemCrafters

#emacs #guix #guile #gnu #linux #freesoftware

Arne Babenhauserheide
5 months ago

@aconchillo And the generated #Javascript actually looks sane! #guile @daviwil

compiled javascript version: 
var fib = function fib(n) {
  return (n<=1 ? 1 : (fib((n-2))+fib((n-1))));
};
var computeFibonacci = function computeFibonacci() {
  return (function () {
    var elem = document.getElementById("number");
    var n = elem.value;
    return alert(("Fibonacci of "+n+" is "+fib(n)));
  })();
};
Scheme source-code:

(define js-fibonacci
  '(begin
     (define (fib n)
       (if (<= n 1)
           1
           (+ (fib (- n 2)) (fib (- n 1)))))

     (define (computeFibonacci)
       (let ((elem (js-invoke document 'getElementById "number"))
             (n (js-ref elem 'value)))
         (alert (+ "Fibonacci of " n " is " (fib n)))))))

(define js-script
  (receive (js _)
      (gs:compile js-fibonacci)
    js))
David Wilson
5 months ago

🔴 On today's #SystemCrafters stream, we'll experiment with a workflow for hacking Guix Home services in the Guile REPL!

I'll be working on a home service to deploy my Emacs configuration with per-machine customizations, should be fun!

Join us LIVE at 4PM UTC on YouTube or Twitch:

- https://youtu.be/KNXOZtbfslY
- https://twitch.tv/SystemCrafters

#emacs #guix #guile #gnu #linux #freesoftware

David Wilson
5 months ago

Anyone know if there's been work done to compile #Guile apps for the browser via Emscripten or WASM?

David Wilson
5 months ago

I've had a lot of fun working on my own Scheme compiler this year but I'm starting to wonder if my time would be better spent hacking on #Guile #Scheme instead.

The compiler and runtime are mature and battle-tested, the tooling is excellent (#Guix, Geiser), lots of useful libraries, and the community is filled with smart, creative people.

I'm now considering spending a couple of months experimenting with Guile to see if I can quickly accomplish some of the things I had in mind with Mesche...

Luis Felipe
5 months ago

Today (actually, yesterday) I release Guile Probá 0.2.0, a set of testing tools for GNU Guile projects with SRFI 64-based test suites.

https://luis-felipe.gitlab.io/guile-proba/

It comes with a command-line interface that allows you to run test suites with test discovery:

$ proba run TESTS_DIR

It is also a library with helpers for testing.

You can install it on any GNU/Linux device using GNU Guix.

I hope you find it useful.

#gnu #guile #guix #srfi64 #testing

Foreground: Guile Probá's logo, version number and summary. The whole thing reads "Guile Probá version 0.2.0. Testing tools for GNU Guile projects using SRFI 64-based test suites".

The logo includes a car wheel. The rim design is composed of eight lowercase lambda letters and the GNU Guile logo on the center.

Background: A dusk in the desert. Three pyramids in the distance. Two birds in the sky.
Screenshot displaying the results of running a test suite on the command-line with "proba run tests" command. It reads:

TEST SUITE

✖ FAIL: Return a shiny new robot.
Group: [procedure] make-robot
File: tests/test-things.scm:28
Expected value: "🤖"
Actual value: "💩"

TOTAL TESTS: 4
PASSED: 3
FAILED: 1
XPASSED: 0
XFAILED: 0

(Full log in "/tmp/guile-proba-test-suite.log")
Screenshot displaying the results of running a test suite on a GNU Guile REPL (Read-Eval-Print Loop) with the "run" command. It reads:

TEST SUITE

✖ FAIL: Return a shiny new robot.
Group: [procedure] make-robot
File: tests/test-things.scm:28
Expected value: "🤖"
Actual value: "💩"

TOTAL TESTS: 4
PASSED: 3
FAILED: 1
XPASSED: 0
XFAILED: 0

(Full log in "/tmp/guile-proba-test-suite.log")