4 ms·
IIRC, this was a high performance scheme developed at Indiana University that was closed source for a long time. Good on Cisco for open sourcing it. I'm inter
by FraaJad 10y ago
IIRC, this was a high performance scheme developed at Indiana University that was closed source for a long time.
Good on Cisco for open sourcing it.
I'm interested to hear what regular scheme programmers feel about this news.
- hga 10y agoAnd aside from the JVM implementations and some works in progress the last time I checked, the only one with native instead of green threading.
- dfox 10y agoWell, dfsch is currently not work in progress, because there is no meaningful progress :) But it was originally intended as scheme interpreter with native threading without GIL. Last version has GIL-style global lock, but interpreter threads can run user code without ever acquiring that lock. (In essence: the lock protect structures that cannot be proven to not be shared between threads, which are not required to interpret output of dfsch's compiler for most inputs)
- davexunit 10y agoGNU Guile has pthreads.
- groovy2shoes 10y agoI know Gauche uses pthreads because I got a linker error about it one time ;) Also, does Gambit not support native threads? That's surprising considering Marc Feeley did quite a bit of research on multiprocessing in Scheme, and he wrote the SRFI for threads.
- jbclements 10y agoRacket has native threads, called "places".
- hga 10y agoNot in the shared memory way I mean (which I did not make clear), per http://docs.racket-lang.org/guide/parallelism.html http://docs.racket-lang.org/guide/parallelism.html The racket/place library provides support for performance improvement through parallelism with the place form. The place form creates a place, which is effectively a new Racket instance that can run in parallel to other places, including the initial place. The full power of the Racket language is available at each place, but places can communicate only through message passing—using the place-channel-put and place-channel-get functions on a limited set of values—which helps ensure the safety and independence of parallel computations. Compare to current Guile, where the documentation says sharing a hash table without using a mutex will not corrupt memory, but probably won't give you the results you desire.
- mathattack 10y agoIt's massively strange that this was closed source while at a public university, and open source under a public company.
- brudgers 10y agoUS universities have entire departments devoted to technology licensing. The default to secrecy may be an artifact of their historic reliance on defense agency funding for technical projects and the bureaucratic staffing for paperwork heavy processes. On the other hand, there's an intellectual idea that for many companies, existing software should perhaps be seen as a liability in double entry accounting due to it's need for ongoing maintenance, upgrades, potential for catastrophic failure, and the cost associated with alterations for new business processes. Companies offload some of those costs by open sourcing and allowing developers to happily "give back" to their bottom line.
- jordigh 10y agoCan you explain that a bit more? How does a company offload costs by freeing their software? Surely they're not expecting to rely on public contributions to reduce maintenance costs, are they?
- brudgers 10y agoEven at its most basic, an arbitrary developer filing a bug report is potentially less costly to handle than a customer experiencing a failure...it can be ignored and maybe the developer submits a patch. On a longer timeline, hiring developers experienced in the technology from the open source community saves on the cost of training them for a proprietary code base. Ideally, the open source community develops new features, identifies and patchs bugs, writes tests and libraries, etc. adding value realized by the company's paying customers. In the meantime the company still can devote staff to its business priorities and ignore those of the larger community: e.g. no `map` in go-lang and no `react new myapp` at the CLI for React. To put it another way, why would a business open source code for anything other than business reasons?
- 10y ago
- sesquipedalian 10y agoI'm very excited about this. I've been using Chez as my performance benchmark target for my own Scheme implementation.
- groovy2shoes 10y agoScheme user here. I'm very excited about this, and I think I just changed my vacation plans for next week :D
- kkylin 10y agoCan't say (yet). I've used a number of implementations: Gambit, MIT Scheme, PLT/Racket, and played around with Chicken. But never Chez, because it wasn't free.