Guix for development (dthompson.us)
from paequ2@lemmy.today to programming@programming.dev on 25 Jul 23:56
https://lemmy.today/post/34281466

cross-posted from: lemmy.today/post/34279957

guix shell sees to it that all of the dependencies (listed in the inputs and native-inputs sections) are available within the shell session it creates by downloading (or building, if necessary) the entire dependency tree.

Should you want/need more isolation from the host system, guix shell has you covered. The --pure flag will clear out most existing environments variables, such as $PATH, so that the resulting environment does not contain pointers to places like /usr. For more Docker-like isolation, the --container flag can be used, which will run the new shell session within a set of Linux namespaces so that the host system is inaccessible.

#programming

threaded - newest

cecilkorik@lemmy.ca on 26 Jul 05:04 next collapse

Guh, someday I am going to have to learn that bracket-based syntax (lisp?) that keeps popping up on particularly interesting projects but I can never be bothered to learn.

chonkyninja@lemmy.world on 26 Jul 06:53 next collapse

It’s actually really easy.

Ephera@lemmy.ml on 26 Jul 08:09 next collapse

Yeah, the style of syntax originated in LISP. The technical name is S-expressions.

But yes, the basic syntax rules are extremely simple. It’s rather when you actually want to do something with that syntax that it takes some thinking…

frankenswine@lemmy.world on 26 Jul 14:11 next collapse

it’s as simple as

(command argument0 argument1 argument2)

meaning arguments 0, 1 and 2 are applied to command. when an expression is evaluated it dissolves into a value according to its context.

(+ 1 2 3)
; evaluates to 6 in a context where + actually means an addition or sum operation

(* 2 (+ 4 3))
; evaluates to 14 (i think)

the absolute killer feature is the elimination of idiotic, man-made madness excused with the term “operator precedence”

hono4kami@piefed.social on 26 Jul 16:57 collapse

Somehow it's not the bracket syntax that stopped me.

It's the amount of dialects LISP has. Way too many of it. I don't know where to start

JamonBear@sh.itjust.works on 26 Jul 07:41 next collapse

Archive of the wonderful article mentioned in the intro.

IanTwenty@lemmy.world on 26 Jul 08:42 collapse

This is similar using nix: devenv.sh

It has a few more features like git hooks and spinning up long-running processes like web servers