Scheme

112 readers
1 users here now

A community for things relating to the scheme programming language https://www.scheme.org/

Looking for mods, if you want to mod the community feel free to dm Ategon

founded 2 years ago
MODERATORS
1
 
 

cross-posted from: https://feddit.org/post/16116378

One aspect of Guix I found to be really fascinating: That there is basically no conceptual difference between defining a package as a private build script, and using a package as part of the system.

Let me explain: Say you wrote a little program in Python which uses a C library (or a Rust library with C ABI) which is in the distribution. Then, in Guix you would put that librarie's name and needed version into a manifest.scm file which lists your dependency, and makes it available if you run guix shell in that folder. It does not matter whether you run the full Guix System, or just use Guix as s package manager.

Now, if you want to install your little python program as part of your system, you'll write an install script or package definition, which is nothing else than a litle piece of Scheme code which contains the name of your program, your dependency, and the information needed to call python's build tool.

The point I am making is now that the only thing which is different between your local package and a distributed package in Guix is that distributed packages are package definitions hosted in public git repos, called 'channels'. So, if you put your package's source into a github or codeberg repo, and the package definition into another repo, you now have published a package which is a part of Guix (in your own channel). Anybody who wants to install and run your package just needs your channel's URL and the packages name. It is a fully decentral system.

In short, in Guix you have built-in something like Arch's AUR, just in a much more elegant and clean manner - and in a fully decentralized way.

2
 
 

cross-posted from: https://lemmy.ml/post/33466232

Introducing Veritas v0.0.20: my new Lisp-powered (Guile Scheme) testing framework!

https://codeberg.org/jjba23/veritas

Born from my engineering experience and frustrations, I aim for incredible expressiveness. It is currently super early stages, also eager for other people to pitch in ideas before fully stabilizing the API. I also want to add many more capabilities for integration tests, containers and more.

veritas aims to be a simple and lightweight testing framework written in Scheme. Its main purpose is to help developers verify that their code behaves as expected. It achieves this by providing a clear structure for writing tests and producing easy-to-read feedback in various formats.

The framework is built around the concepts of "suites," which group related "tests," and "assertions," which perform the actual checks. I'd encourage you to peruse the test/ folder of this project to see real examples of how to use veritas.

The power of veritas lies in its simplicity, expressive embedded domain-specific language (EDSL), and some clever features that promote robust testing practices and correctness, like order randomization and concurrent testing.

3
 
 

I wrote a short blog post with my thoughts and experience on using Lisps and Scheme. Maybe you like it .

https://jointhefreeworld.org/blog/articles/lisps/scheme-and-lisps-are-great-for-production/index.html

It covers #scheme (a minimalistic #lisp) and implicitly #emacs and my text editor (which i use to make and publish the website too with #orgmode). #guix is also a great killer app for #guile

4
 
 

cross-posted from: https://lemmy.ml/post/32190347

With the idea of promoting the usage of Guix and of my favourite programming language Guile Scheme, I created a small project which is still in early stages, but I think with some more love and effort can be quite something.

https://jointhefreeworld.org/guile-show-hub/

The Guile ShowHub! Promoting all Guile projects out there! By reading from foss Guix project source code we can tap into a plethora of information, and leverage the homoiconicity of Lisp to directly analyze the source code and extract info.

5
 
 

Replacement of Guile's garbage collector

6
 
 

An up to date and online version of SICP, also available in PDF and epub format

7
 
 

cross-posted from: https://lemmy.ml/post/29897788

LucidPlan proudly announces version v0.4.0 of the project:

https://codeberg.org/jjba23/lucidplan

#foss #project #management for everyone ( #selfhosting )

work more #agile in your team thanks to a fast-paced no-nonsense-workflow and customizability, also thanks to being written in #lisp ( #guile #scheme ) and using #guix

This tool results of years of experience using proprietary systems like Jira/Trello, and experiencing the frustrations they bring.

find my live instance here:

https://lucidplan.jointhefreeworld.org/tickets/sss

8
 
 

fjärrinlägg från: https://lemmy.zip/post/28653528

I got my Emacs setup fully functional and now I'm doing a little bit of hacking on my config files. (Because that's what you do on Christmas eve, when the children has fallen asleep.)

However, even though I use Geiser and fancy rainbow parentheses (plus extra Christmas bling), I run into these stupid invalid specifier errors. And the compiler output is neither pretty nor helpful. It basically gives me a large chunk of unformatted code and says there's an invalid specifier somewhere.

Questions:

Is it possible to make Guile do a pretty print on the error output?

Is it possible to make Guile error messages more precise about the problem?

9
10
11
1
submitted 1 year ago* (last edited 1 year ago) by wargreymon2023@sopuli.xyz to c/scheme@programming.dev
 
 

He introduces but also criticizes the use of call/cc, 1. not being a function and looks like a function, 2. able to produce an union of types with it.

Is he correct? What do you think?

12
 
 

With Chez Scheme venturing into a compiler stack, Guile the GOTO helper, and OS infrastructure, Racket teaching, and Gambit continued awesomeness. What is left to Scheme to scheme?

You have one hour no more.