@chemoelectric@masto.ai You are probably right. I am mostly using sbcl and I think it supports most kinds of tail calls, at least I never had problems with that. I think abcl maybe doesn't support tail calls at all because of limitations of the JVM, but I'm not sure.
I think it's great that it's in the scheme standard and that scheme generally encourages a more functional style.
@eruwero@ieji.de Even Schemes for the Java VM do not do proper tail calls, at least unless you use an option. The same is true of one other that compiles to C but whose name I do not remember. But some will refuse to call such an implementation βSchemeβ. Most implementations do handle tail calls correctly.
This applies even to call-with-current-continuation. Sometimes this is very inefficient. In Guile it is very inefficient, but works. In CHICKEN or Chez Scheme it is efficient. (And Chez is FAST.)
@chemoelectric@masto.ai it's incredible IMO how fast some schemes or lisps in general (in particular SBCL) can be, even though they allow much more powerful abstractions. It's just that by default they focus on safety and sanity. Really shows that there is no real reason for using something like C++ :)
@eruwero@ieji.de (But I do not like Chez, because it is RβΆRS rather than Rβ·RS. In fact, RβΆRS is basically an attempt to make everybody be Chez Scheme. :) )
@eruwero@ieji.de SBCL supposedly supports all the optimizations. I havenβt really tested it. It is the go-to if you have a powerful enough system. But I noticed Maxima for Termux (a distro for Android phones) is built with ECL. Which makes a kind of sense, because ECL is meant for embedded systems--though I think thatβs supposed to be for the separate compilation aspect of ECL, not for how one uses it to compile Maxima.
@eruwero@ieji.de SBCL supposedly supports all the optimizations. I havenβt really tested it. It is the go-to if you have a powerful enough system. But I noticed Maxima for Termux (a distro for Android phones) is built with ECL. Which makes a kind of sense, because ECL is meant for embedded systems--though I think thatβs supposed to be for the separate compilation aspect of ECL, not for how one uses it to compile Maxima.
@eruwero@ieji.de I am not upset with NixOS BTW. Despite that Nix is not a Lisp, the difference is that Nix has a more complex syntax (which makes a Lisp-like macro system impractical--but check out the mixins in D: https://dlang.org/articles/mixin.html -- D is the only C derivative I kind of like).
I was able to set up an OpenVPN server with very little configuration.
I did a LOT of screaming at the screen along the way, but it was because there was so little documentation. I had to randomly find the best way.
@eruwero@ieji.de I am not upset with NixOS BTW. Despite that Nix is not a Lisp, the difference is that Nix has a more complex syntax (which makes a Lisp-like macro system impractical--but check out the mixins in D: https://dlang.org/articles/mixin.html -- D is the only C derivative I kind of like).
I was able to set up an OpenVPN server with very little configuration.
I did a LOT of screaming at the screen along the way, but it was because there was so little documentation. I had to randomly find the best way.
@eruwero@ieji.de Basically all I had to do was tell it to use nftables instead of iptables, and tell NixOS to do NAT for me.
I had been struggling with trying to get iptables and systemd (yuck! why canβt I just use ip route?) to do NAT and probably NixOS was trying to stop me from succeeding. :)
I have this server running on a mini PC with fast Ethernet that I got just for the purpose. Now I do not have to use the garbagy OpenVPN server that is in my Netgear router.
@eruwero@ieji.de Basically all I had to do was tell it to use nftables instead of iptables, and tell NixOS to do NAT for me.
I had been struggling with trying to get iptables and systemd (yuck! why canβt I just use ip route?) to do NAT and probably NixOS was trying to stop me from succeeding. :)
I have this server running on a mini PC with fast Ethernet that I got just for the purpose. Now I do not have to use the garbagy OpenVPN server that is in my Netgear router.
@chemoelectric@masto.ai the main reason I use guix instead of Nix is because it's one of the few fully free operating systems. Scheme as a configuration language is also great, I think it actually was what brought me to lisp. And that it doesn't use systemd is also a plus. But I'm sure Nix is great too, all the functional package management stuff is the same.
@chemoelectric@masto.ai the main reason I use guix instead of Nix is because it's one of the few fully free operating systems. Scheme as a configuration language is also great, I think it actually was what brought me to lisp. And that it doesn't use systemd is also a plus. But I'm sure Nix is great too, all the functional package management stuff is the same.