在OCAML和JavaScript平台上

2021-03-20 09:56:01

RepscriptNéeBacklescript是一种用于瞄准OCAML(以及理性)的最先进的杂志,但快速地远离父语言。 OCAML兼容性在我的渴望的愿望清单上很高,我' ve幻想幻想,项目的方向veeredinto。所以我把事情变成了自己的手。阅读!

Bucklescript项目已启动为JavaScript编译器的OCAML。 Lastyear,经过令人惊讶的公告和讨论,即我' LL在这个空间中选择没有Torehash,取消讨论他们' llbe追求项目的新方向,包括:

一个例子是rectionmove通过去除对OCAML对象系统的支持(它甚至删除了RESST#34中的OCAML编译器甚至拆除了OCOML编译器;模式")

几乎令人兴奋地关注"转录语法"其中缺乏在OCAML中存在的许多共级常见规则(例如,自定义infix运算符,奇怪的语法铭文和其他人)

我上面提到的,取消指向的方向与我的个人案件对齐。具体而言,I' m感兴趣的是与OCAML生态系统(毕竟Bucklescript在Affiants的肩部)和底部的兼容性的那样多的兼容性,以及与本机OCAML项目共享代码的可能性 - 这对于共享类型和共同的业务逻辑非常有用,我用我所有的项目。

自2020年夏天以来,我一直在维护自己的斗士墓地。一天前,我开始探索突破OCAML版本。而且你知道是什么?拒绝更新编译版本ISN'它根本努力(它只花了三天!)。

最终结果是JavaScript平台(保留Bucklescript的所有功能)的最终状态,从下游发出以下方式:

使用沙丘作为构建工具而不是(非常自定义,修补,过时的版本)ninja

原因被捆绑在编译器内的图书馆,而不是炮击refmt,这总是导致的原因比在Bucklescript 1中慢。

我们在最近的历史上获得了对OCAML的所有酷增强功能,包括Letop绑定和许多新的和改进的标准图书馆映射。

未来是什么样的?我不确定。我建立了对我有用的东西,我规划为自己的用例维持它。如果更多的人有兴趣,那么这可能会解锁一些非常有趣的事情:

远离AD-HOC BSCONFIG.JSON方式指定配置,以在OCAML社区中建立的内容

直接支持对OPAM包装(如今,在用户空间中有一些可能的升降)

如果这有任何声音对你有用,我喜欢你伸向我。 ithink那里有一个机会在这里制作一个非常棒的东西,这两个世界都是最喜欢的:我们最喜欢的Ocaml和最受欢迎的平台。

这个项目在这里生活。 在TheTime的写作中,您需要nix来获取正确的包以构建项目。 随着人们才有兴趣尝试项目,可以提升这种限制。 请在Twitter @_Anmonteiro上发一封留言,或以其他方式抓住我的TheOCaml /原因Discord服务器。 附录:此帖子的初始版本无法确认Bucklescriptauthors。 尽管我以推文形式修正,但从Twitter回复中提出了一个建议,并在此处添加了后者。 1 I'我将避免特别讨论这篇文章中的原因。 但是,放心' ll继续保持前进,因为我是一个维护者之一。 2,在我看来,在我看来,从未首先需要,并且可以通过检查依赖文件的Mifime(这也是我去年夏天在Bucklescript中实现的Monorepos)来实现的