开源之夏2025:Scheme-langserver有偿招募在读学生贡献代码!

目前,墨干已经将“Scheme-langserver兼容Goldfish Scheme+R7RS”项目在“开源之夏2025”上线, 作为该项目的导师,我希望借助论坛的力量召集在读本科生/研究生踊跃报名参与。此处在读包括本科生、研究生以及已经录取但尚未入学的学生。

参与项目的学生将获得什么?

  1. 我作为Scheme-langserver的开源开发者,每周至少两次通过email方式指导你在任务中遇到的问题。墨干也将组织在线途径(飞书等)随时答疑;
  2. 完成项目的学生将获得税前12000RMB的奖金;
  3. 综合往年情况,我有一定信心帮助学生拿到2025年的最佳质量奖,帮助学生获得在技术社区、公共话语中的曝光度

基本情况

Scheme-langserver兼容Goldfish Scheme+R7RS”项目

Goldfish Scheme是墨干理工套件生态的一部分。Scheme-langserver是专为Scheme语言设计的LSP(Language Server Protocol)服务器,使用一些非常简单的Abstract Interpretation、Partial Evaluation和Type Inference技术为开发者提供现代集成开发环境(IDE)的核心功能,如代码补全、定义跳转、类型推断等。 本项目的目标是让Scheme-langserver服务墨干理工套件生态,这包括:

  1. 兼容R7RS-small标准;
  2. 兼容Goldfish Scheme的集合库(liii lang)和标准库,特别是集合库、标准库和一些独特的语法;
  3. 增强fault tolerance能力,这意味着要建立一个测试集以充分探及边缘情况。

更多详情请参考此页面

Scheme-langserver

Scheme-langserver是一款使用Chez Scheme编写的、用于R6RS标准Scheme编程的语言服务器(Language Server)。其核心功能是使用一些静态分析技术(如简单的Abstract Interpretation和Partial Evaluation)通过LSP协议(Language Server Protocol)向编辑器提供IDE服务,如auto-complete,goto definition,type inference等。下面这个视频展示了Scheme-langserver+Magic-scheme在VScode下的使用效果。

比较特别的是,Scheme-langserver对Scheme代码的处理采取了一种近似方法(论文已经发在European Lisp Symposium 2025,但尚未放出),打破了Scheme其他语言服务器由于Interactive Programming传统导致的一些限制。如let在未完成的情况下,不可在其body中补全局部变量。尽管tree-sitter也可以实现类似效果,但tree-sitter实际上是对“同名”的S表达式做处理,而不考虑identifier的有效性问题。此外Scheme-langserver额外实现的type inference能够在语言缺少类型标注的情况下有效提高自动推荐质量。

墨干

墨干的收费版本为三鲤理工套件,已经获得天使轮投资。他们决定通过“开源之夏2025”为完成项目的学生提供税前12000元人民币的奖金。其核心产品为墨干理工套件,包含三大自由软件产品:

中文名 英文名 产品定位 状态
墨干 Mogan Research 墨干是结构化的科技编辑器平台——GNU TeXmacs的发行版之一 成熟
墨码 Mogan Code 基于GNU TeXmacs内核的代码编辑器 研发中
墨板 Mogan Beamer 基于GNU TeXmacs内核的幻灯片产品 研发中

GNU TeXmacs 是法国国家科学研究中心的数学家 Joris van der Hoeven 从上世纪九十年代末开始研发的一款结构化编辑器,旨在利用直观易用的图形界面编写高质量的技术文档,效果可达到与 LaTeX 相同的水准。目前它的主要用户集中于大学生、中小学教师及高校科研人员。

Goldfish Scheme

Goldfish Scheme是一个 Scheme 解释器,它作为插件内置在墨干理工套件中,Goldfish Scheme本身不提供REPL的实现,墨干理工套件中提供了Goldfish Scheme的结构化REPL。

它在语言上的特性包括:

  1. 兼容 R7RS-small 标准;
  2. 提供类似 Scala 的函数式集合库;
  3. 提供类似 Python 的功能丰富的标准库;
  4. 小巧且快速。

难点

  1. 畏难情绪,以为abstract interpretation、静态分析、 partial evaluation什么的很难,实际上我们的任务针对Goldfish scheme的情况做了优化,根据你的工作量和能力可以调整难度;
  2. Scheme语言的各方面设施不是很完善,甚至编译Scheme-langserver并使用对很多人来说都存在困难。但是请相信,只要你用Linux、Windows WSL,这些问题都没有难到哪里去,它只是比较复合2000年代的编程习惯而已——我们正是在解决这个问题;
  3. 工作量和期望的平衡。我可以承诺,我反对做无用功,在你智力的付出足够的情况下,你会发现整个工作量并不是很大。但同时,我们的能力毕竟是有限,本质上只是帮助学生焕发出他原本的能力,而不是托举成功。谁也不像董小姐有个好爹。

Final

Emacs-china社区作为中国计算机社区的一个小小的分支,在精神上是某种灯塔,在这里的朋友代表着某种正待喷薄的力量。《大学》说:“一家仁,一国兴仁;一家让,一国兴让;一人贪戾,一国作乱;其机如此。此谓一言偾事,一人定国。”诚如是,再次恳请朋友们的指导和帮助!

8 个赞

很不错 支持 scheme商业化进展

2 个赞

目前我研究生在读,出于提升项目经验的目的,我对参与此类项目非常感兴趣。尽管我目前在 Lisp/Scheme 方面的知识还比较有限,仅仅掌握了 Elisp 和 Clojure 的基础用法,且未曾了解过LSP Server实现方面的知识,但我对这类语言充满兴趣,并且有信心在您和团队的指导下快速学习、尽快胜任项目任务。不过我还不太确定项目的整体难度是否适合我当前的水平,也希望能了解我这样的背景是否符合您团队的需求。

3 个赞

给我写邮件吧!ufo5260987423 at 163 dot com

有两点信息必须附上:

  1. 你的专业背景。因为本项目实际上没有什么专业限制,谁都能参加,这样最重要的就是我们沟通的顺畅;
  2. 你的在线联系方式,比如微信。(飞书也不是不行啦)
1 个赞

感谢,已发