Live data from Hacker News

Chez Scheme is now free

github.com

81–90 of 185 posts

Re: Chez Scheme is now free

#81
post #74

Earlier quoted context omitted.

I think a charitable reading would be that it was intended to convey something other than offense.

Of course. I don't think anyone is offended. But what was the intended meaning? Can you figure it out?

I take it as trying, apparently without success, to avoid stepping on a land mine.

Re: Chez Scheme is now free

#82
post #50
post #41

Earlier quoted context omitted.

I thought scheme was like the beatles - people universally only had good things to say about it.

I might not be getting a reference here, but FWIW, I had a recent experience with Scheme that was interesting. I did SICP nearly 19 years ago as a freshman, in 1997. And then a few months ago, I ported the metacircular-evaluator -- the "crown" of the course -- to femtolisp (the Lisp implementation underlying Julia). My thoughts were: 1) It sure is awkward to represent struct fields 1 2 3 as (cdr struct), (cadr struct…

Only global/dynamic environments should be hashed. If you're optimizing lexical environments from assoc to hashing, you're optimizing interpreted semantics instead of writing a compiler. The location of a lexical variable isn't a moving target; it sits at some statically fixed offset in some environment frame, and access to it is reduced to an indexing operation in the compiled code.

Hashing lexicals will not necessarily speed up an interpreter. It depends on what kind of code and how you do it. A lot of code has only a few lexicals at any binding level. If you construct a new hash table on each entry into a binding construct which has only a handful of variables, that could end up performing worse than the original assoc lists. You still have to cascade through multiple hash tables under that approach to resolve nesting. One hash table for an entire lexical scope leaves you with problems like how to resolve shadowing, and how to capture closures at different sub-nestings of that scope that have different lifetimes from containing scopes.

Re: Chez Scheme is now free

#83
post #78

Earlier quoted context omitted.

>There are legitimate reasons why scheme isnt a very practical language The operating system I currently run uses a Scheme program as its init system and a Scheme program as its package manager. Scheme is a practical language.

What operating system is it? Is the Scheme written in C or assembly language?

See GuixSD: https://www.gnu.org/software/guix/

Edit: remove useless commentary

Re: Chez Scheme is now free

#84

Earlier quoted context omitted.

We have a macro expander for pascal written in scheme (quick and dirty draft made by me that worked so well it stayed). We had some performance problems with some crazy recursive macros (it generates a _lot_ of code. Don't ask, I am not allowed to talk much about it), so I investigated porting it to chez. Instead I just switched to guile (scheme implementation) trunk and got a 3x speedup. Did some optimizing work and…

What Scheme implementation did the code originally use?

The Guile 2.0 branch. I don't know what magic optimisation dust they sprinkled over the upcoming 2.2, but it sure is fast.

We thought about using chicken, but it depends quite a lot on using syntax-case to deconstruct everything, and I didn't want to learn their implicit renaming stuff.

Apparently the 2.2 branch has full elisp support. Can't wait for Emacs to run on it.

Re: Chez Scheme is now free

#85
post #77

Earlier quoted context omitted.

>there is a reason that C is the foundation of computing rather than Lisp. I don't think anybody really thinks otherwise anymore. C is not the foundation of computing. Why would you say this? >Likewise, Scheme implementations have mutable hash tables, but they're written in C and not Scheme. A native code compiler written in Scheme would have its hash table implementation also written in Scheme. >I don't know how you…

C is the foundation of computing in the sense that essentially every programming language and operating system is written in C or C++, and those are the tools that enable every other piece of software. More precisely, I would say that C is the foundation of software; it's how we stopped throwing out our programs when we changed computers. The first portable operating system kernels were written in C. I guess I could…

In the 1980s Scheme was not performant enough. C was how you got tolerably fast programs. A lot of research, notably in garbage collection, has made Scheme much more performant since then. Additionally, computer hardware has improved to the point where people write useful programs in languages that are dramatically slower than Scheme, e.g. PHP, Python, Ruby.

You are conflating minimalism with the Scheme language because Scheme is often used to illustrate minimalism. Vectors and hash tables are not "all this other stuff", they're part of the language spec[1]. You're also throwing Lisp in there even though minimalism is not a central theme of Lisp.

[1] When you did SICP hash tables were not part of the language spec although implementations generally had them; they got standardized in 2007 with R6RS. But vectors were in the language spec since at least 1985.

Re: Chez Scheme is now free

#86
post #83
post #78

Earlier quoted context omitted.

What operating system is it? Is the Scheme written in C or assembly language?

See GuixSD: https://www.gnu.org/software/guix/ Edit: remove useless commentary

I also use GNU Guix and Shepherd on top of Ubuntu at work. Shepherd manages all of my user daemons (mostly Ruby web application servers) and Guix as an RVM (and other such tool) replacement. Is that practical enough?

Re: Chez Scheme is now free

#87
post #42
post #30

Earlier quoted context omitted.

OberonSystem can build the whole compiler, OS, and applications in around 3 seconds.

>OberonSystem can build the whole compiler, OS, and applications in around 3 seconds. I'm not usually given to short, low-content comments here on HN, but: wow!

Staying on the low-content theme . . . that's just how awesome Wirth et al are.

Re: Chez Scheme is now free

#88

Earlier quoted context omitted.

What Scheme implementation did the code originally use?

The Guile 2.0 branch. I don't know what magic optimisation dust they sprinkled over the upcoming 2.2, but it sure is fast. We thought about using chicken, but it depends quite a lot on using syntax-case to deconstruct everything, and I didn't want to learn their implicit renaming stuff. Apparently the 2.2 branch has full elisp support. Can't wait for Emacs to run on it.

Ah, that makes sense! Guile 2.2 has a completely rewritten compiler and virtual machine. I'm happy to see some real-world instances of it greatly improving performance.

Re: Chez Scheme is now free

#89
post #83

Earlier quoted context omitted.

See GuixSD: https://www.gnu.org/software/guix/ Edit: remove useless commentary

I also use GNU Guix and Shepherd on top of Ubuntu at work. Shepherd manages all of my user daemons (mostly Ruby web application servers) and Guix as an RVM (and other such tool) replacement. Is that practical enough?

Sure I agree that both are examples of real software written in scheme.

Re: Chez Scheme is now free

#90
post #30

I used Chez Scheme for many years and loved its lightning fast compile times. For example, I'm not aware of any other full-scale compiler that can compile itself as fast as Chez can.

OberonSystem can build the whole compiler, OS, and applications in around 3 seconds.

I think we got plan9 down to about 45 seconds, all os and userspace
Post reply on HN