Chicken Scheme 6.0

(code.call-cc.org)

202 points | by eatonphil 11 hours ago ago

24 comments

  • DASD 10 hours ago ago

    Folks may also be interested that this version, 6.0, supports Crunch(although Crunch itself has not been declared a 1.0 status, currently @ .993), which is a compiler for a statically typed subset of Scheme R7RS. (https://wiki.call-cc.org/eggref/6/crunch)

    • valorzard 8 hours ago ago

      CRUNCH is really cool, I helped make it work better on Windows (although it requires a bit of setup)

  • trescenzi 9 hours ago ago

    I started playing with Chicken over the weekend because I was looking for a scheme that you could build binaries of and that had a lively ecosystem. I've really enjoyed it. So far I've mostly played with web stuff. Built a wrapper around makemkvcon for ripping some dvds I've been meaning to rip that'll do a little bit of automatic naming of output using the tv db.

    I was slightly worried that I'd start using v5 and then v6 would come out but it looked like they'd been working on it for a while so I figured I'd have some time on v5. Turns out I was wrong!

  • orsenthil 10 hours ago ago

    For an introduction:

    CHICKEN is a compiler that translates Scheme source files into C, which in turn can be fed to a C compiler to generate a standalone executable. An interpreter is also available and can be used as a scripting environment or for testing programs before compilation.

    • rtpg 6 hours ago ago

      does this mean that you can't do `eval`-like things in "production" systems?

      • p_l 4 hours ago ago

        IIRC not compiled (you can include the interpreter).

        But then Scheme was always less EVAL-friendly of the lisps

        • shakna 3 hours ago ago

          I'm not seeing the less friendly... Eval, and sandboxing eval, are builtin features of the Scheme standard.

          • bandrami 42 minutes ago ago

            It has eval but it lacks reader macros (or at least it did thirty years ago) which is what makes eval useful on lisp2 systems.

  • zelphirkalt an hour ago ago

    I only used Chicken for a short time, because of a UTF-8 bug it had/has, but I always liked Chicken's docs. They seem to be written with care and often make things understandable. When I look up Scheme things and don't understand something, sometimes I specifically go for the Chicken Scheme docs, to see if I understand its explanation.

  • ziotom78 9 hours ago ago

    I was eagerly waiting for this release, which brings full Unicode support.

    Congratulations to the team, Chicken Scheme is a little gem!

  • rmunn 9 hours ago ago

    For those who use Chicken Scheme: what made you pick it over other Lisps? What are some things it does particularly well?

    • hellcow 6 hours ago ago

      The eggs are great. For instance I can be up and running building an SDL2 game or make a webserver quickly.

      It has good emacs support with geiser-chicken.

      Because it compiles down to C the FFI provides a lot of nice ergonomics beyond what I get with Chez Scheme.

      Error messages are actually useful with a stacktrace. Can't overstate this.

      It supports optional type definitions which reduces the number of tests I need.

      The docs are adequate, though I frequently add "MIT scheme" to my search queries. I wasn't able to get chicken-doc setup in NixOS, and the docs website has gone down on me a bunch lately. I wish Chicken had complete documentation available including its eggs in an offline format, like a PDF.

      • anta40 2 hours ago ago

        What about Gambit? Perhaps it's a better, optimizing compiler but the built-in library is rather minimalist?

    • whartung 8 hours ago ago

      The compiler. That’s the gem of the system.

      The generated C is reasonably portable, so you can run Scheme programs on systems that “don’t run Scheme”.

      • ziotom78 7 hours ago ago

        Absolutely. And eggs too [1]: these are libraries provided by the community, very easy to import and use.

        [1] https://wiki.call-cc.org/eggs

        • rmunn 7 hours ago ago

          What happens if you try to run Python eggs under Chicken? Do you get Roko's Basilisk? :-)

          • sph 6 hours ago ago

            Pythons are too cold to hatch Chicken eggs, and viceversa

    • atemerev an hour ago ago

      Self-contained, compact, compiled, fast, ready to use.

      SBCL is not compact and its "image" concept is not universally liked by everyone.

      Guile and Racket are not fast (nor compact).

      Chez Scheme is not "ready to use".

  • Decabytes 7 hours ago ago

    Why do people use chicken over gambit? Is it due to chicken’s larger ego system and eggs, or is there more?

  • danialsams 4 hours ago ago

    ngl this is a massive update full R7Rs support UTF-8 strings and they finally ditched blobs for bytevectors the closure reuse otpimization sounds interesting too ngl

  • anthk 2 hours ago ago

    Uhm. I'm divided. Common Lisp it's the weird cousin, bloated at first but in the end you get SBCL, ECL or CCL and almost everything will work the same. With Scheme, you need to instal SRFI's to complete SICP exercises and then there's R5RS and R7RS.

    You have no way to run Hypergiant under Guile. In Common Lisp, tons of packages for QuickLisp/UltraLisp will run on SBCL, CCL and ECL with ease.

    In the end Scheme+Dependencies can be more convoluted than a subset of Common Lisp (you can avoid CLOS if you don't need it for instance).

    • jeandrek 3 minutes ago ago

      I've never really heard of installing SRFIs (could be my ignorance); do you mean importing them? Or is installing SRFI implementations as their own packages really common? (Haven't really tried R7.)

      The anti-R6/R7 folks (or what I've heard) won't see a problem so long as you can use CL to build fancy serious software, which lets Scheme stay small and simple for education. (Of course ideally you'd be able to do any SICP exercise on a Scheme implementation out of the box, though.)

  • personjerry 8 hours ago ago

    Disappointed to learn this is unrelated to the Chicken chicken chicken https://www.youtube.com/watch?v=yL_-1d9OSdk