laurent.orseau
2021-1-27 09:51:08

@343519265 Thanks. Is it easy to tell whether we are “not inspecting continuation marks”? I’m hoping that @notjack’s https://docs.racket-lang.org/resyntax/index.html\|resyntax could handle such a case, say (to start with), a simple rule such as: (let ([v v-expr]) (if <expr-without-v> <expr-without-v> v)) --> (if <expr-without-v> <expr-without-v> v-expr)


laurent.orseau
2021-1-27 10:07:11

Oh and indeed we need to prove it’s single valued. Annoying. … or we allow this transformation in Racket? :slightly_smiling_face:


hectometrocuadrado
2021-1-27 11:02:53

Is there a physics 3D library in Racket?


hectometrocuadrado
2021-1-27 11:03:16

There are for graphics, sound, but not physics


soegaard2
2021-1-27 11:04:59

I believe there are a couple on http://pkgs.racket-lang.org\|pkgs.racket-lang.org. Can’t remember the names.


hectometrocuadrado
2021-1-27 11:20:09

And what about fluxus? https://www.pawfal.org/fluxus/\|https://www.pawfal.org/fluxus/

It looks very nice but it has a lot of dependencies.


soegaard2
2021-1-27 12:11:40

If v-expr contains side effects, it is problemativ to move v-expr.


soegaard2
2021-1-27 12:12:17

So a check for no side effects of v-expr is needed too.


laurent.orseau
2021-1-27 12:39:39

indeed. Chez has some tags about some forms of purity, like ’ivory and ’simple


laurent.orseau
2021-1-27 12:41:28

but probably these tags are only available during nanopass, so such an optimization would have to go there.


yilin.wei10
2021-1-27 14:40:44

Nix, is still first and foremost still a package manager ala pacman, yum etc… there’s no easy way to bootstrap a language onto Nix.


yilin.wei10
2021-1-27 14:41:25

There’s python which @artemchernyak already mentioned (not surprisingly since python scripts are already bundled in distros)


artemchernyak
2021-1-27 14:41:45

The Haskell community is the only community I’ve seen try really hard to do this. It somewhat works but requires a lot of config still.


yilin.wei10
2021-1-27 14:41:48

But there’s also Haskell which has /two/ infrastructures based on Nix.


artemchernyak
2021-1-27 14:41:57

jinx :slightly_smiling_face:


yilin.wei10
2021-1-27 14:42:26

There’s actually a similar translation layer for Cargo (now dead) and also Raco.


yilin.wei10
2021-1-27 14:43:13

Oh. The emacs, elisp one is really good as well.


artemchernyak
2021-1-27 14:43:57

If you want to see a guide on how to setup a Haskell project fully integrated with nix, https://github.com/Gabriel439/haskell-nix gives a great rundown. This can give you an idea on whether nix is a path you want to pursue.


yilin.wei10
2021-1-27 14:44:58

Like @artemchernyak I tend to use it as a more predictable version of VM’s/Docker because I run NixOS as well (in for a penny, in for a pound!)



yilin.wei10
2021-1-27 14:46:18

yilin.wei10
2021-1-27 14:47:41

Oh.


yilin.wei10
2021-1-27 14:47:53

Obviously C is great on Nix.


notjack
2021-1-27 20:28:36

really annoying case I hit recently: (let ([fp fp]) ... (set! fp ...) ...) ... fp ...


laurent.orseau
2021-1-27 20:30:49

haha, that should be forbidden :smile:


yilin.wei10
2021-1-27 22:17:03

Oh; I should probably say that the Nix docs are quite obtuse.


yilin.wei10
2021-1-27 22:17:15

yilin.wei10
2021-1-27 22:17:29

Why is nix-env having this different behavior? I don't know specifically by myself either, but the answers could be:


yilin.wei10
2021-1-27 22:19:41

The language is pretty good for it’s use case; if your familiar with lazy languages I don’t think you’ll have too much trouble.


artemchernyak
2021-1-27 22:19:43

Yeah… followed by

It may or may not make sense for you, or it's like that for historical reasons, but that's how it works currently


yilin.wei10
2021-1-27 22:21:10

I was debugging a Nix issue when I came across it, and I /think/ it was the closest I’ve ever been to flinging my computer across the room.


notjack
2021-1-27 22:52:34

discouraged maybe :p


notjack
2021-1-27 22:52:46

or forbidden in a different #lang


soegaard2
2021-1-27 22:53:56

Well, it is a nice way to prevent a module level variable in being tagged as mutable.


notjack
2021-1-27 22:54:43

so is using a different variable name


wu.tianyi1
2021-1-28 00:41:27

@wu.tianyi1 has joined the channel


wanpeebaw
2021-1-28 02:02:38

bmitchell33
2021-1-28 03:11:51

I only personally know of Pict3D: Functional 3D Scenes (http://racket-lang.org\|racket-lang.orghttp://next-pkg-build.racket-lang.org/doc/pict3d/index.html?hq=M%3A\|) for 3D (like you mentioned. I’d be interested in knowing if you find any physics libraries or bindings.



wanpeebaw
2021-1-28 05:51:16

Another take on language-oriented programming. > The assembler defines the language for describing the compiler and supervisor; the supervisor the language for job control; the compiler the language for application programs; the application program the language for its input. http://www.ultratechnology.com/f70c1.html