TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Racket-on-Chez Status

137 点作者 ausimian超过 5 年前

5 条评论

jnxx超过 5 年前
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.
xvilka超过 5 年前
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 未加载
danieldk超过 5 年前
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 未加载
kamaal超过 5 年前
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 未加载
orsenthil超过 5 年前
Why is it called &quot;Chez&quot; scheme?
评论 #22383098 未加载