TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Racket-on-Chez Status

137 pointsby ausimianover 5 years ago

5 comments

jnxxover 5 years ago
What I wonder is whether the Chez base might massively improve Racket&#x27;s concurrency capabilities.<p>In Common Lisp, one has pthreads-like concurrency capabilities which seem very well suited for fine-grained parallelism as well as for server tasks. I am thinking in such things like parallel backtracking and optimization algorithms for robotic control or board games, for example.<p>However, threads are notoriously difficult to handle cleanly and safely in larger programs. Here, Clojure (which in my eyes is a very Scheme-like Lisp) offers a very elegant solution with its concurrency primitives of Futures, Atoms, Agents, and STM. After some experimenting, I believe they are very, very attractive for many concurrent server tasks (like a web server), but not that well suited for computing-intensive parallel algorithms like the ones I mentioned above, which I am highly interested in. Part of the reasons are that such algorithms can become quite GC-heavy. Also, the Clojure compiler has limits on how much primitive types can be passed as parameters in one functions. This means that a complex backtracking algorithm in Clojure can still be two orders of magnitude slower than in C (which is somewhat disappointing, but one has to remember that Clojure was not designed for this).<p>Racket has had, so far, only limited concurrency capabilities. It had Futures, however they could easily become blocked by GC. It also has Places, which are a very safe and clean solution of splitting parallel computations into separate processes. However, I think that places are not the first choice for heavily parallel algorithms with strong interdependencies.<p>Now, Racket can run on top of Chez, and Chez has fine-grained concurrency capabilities on top of pthreads, which seem to be on par with Common Lisp. Also, Racket has strong support for functional and side-effect free programming, including some data structures. In my impression, this seems to open a wide range of new possibilities, including providing look-alike primitives for Clojure&#x27;s Futures, Agents, and Atoms. I would be very interested to know more whether this impression is correct.
xvilkaover 5 years ago
Will it work on top of GNU Guile[1] as well? It became very fast since 3.0 version with the introduction of JIT[2].<p>[1] <a href="https:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;guile&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;guile&#x2F;</a><p>[2] <a href="https:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;guile&#x2F;news&#x2F;gnu-guile-300-released.html" rel="nofollow">https:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;guile&#x2F;news&#x2F;gnu-guile-300-releas...</a>
评论 #22384690 未加载
danieldkover 5 years ago
Question from someone who knows barely anything about the Scheme ecosystem:<p>It seems that the one of the motivations for starting this effort, besides performance, was to move away from a C code base. Is Chez Scheme primarily written in Scheme?
评论 #22384763 未加载
评论 #22381721 未加载
评论 #22383533 未加载
评论 #22381727 未加载
kamaalover 5 years ago
Is there an update on what Racket decided to do with the proposal to deprecate the existing language syntax?<p>Racket was a great tool to teach people lisp and initiate them into that paradigm.<p>Is the main syntax still good for long term use?
评论 #22381716 未加载
orsenthilover 5 years ago
Why is it called &quot;Chez&quot; scheme?
评论 #22383098 未加载