首页 > 代码库 > POPUSH中增加haskell支持的实现
POPUSH中增加haskell支持的实现
我是李映辉,在这次作业中和王程鹏一起负责实现popush项目中haskell的支持。刚刚接到这个任务的时候我在家里,当时我以为这个是最重的任务了,当时我已经做好了刷夜的思想准备。在中途王程鹏加入到了我们组,被安排和我一起结对编程,我才感觉到任务轻了一些。
由于我在家的时候不方便交流,所以我们约定等我回校以后再正式开始做作业,但是在这之前王程鹏还和学校的一些同学进行了一些交流,他的学校做的这些工作使得我们后来的工作变得异常顺利。
我们实现的过程非常的顺利:首先我们两个人讨论了一下解决的思路。王程鹏告诉我他认为程序应该是通过链接外部编译器编译目标文件的。所以我们所做的应该是在环境变量里添加ghci的路径,然后找到现有代码中实现对其他语言的支持的部分,并仿照这部分做一些针对性的修改以后应该就可以实现这个功能了。那次讨论以后我有其他事情先去处理了,然后过了一个小时,王程鹏过来告诉我说,他已经找到应该修改的地方了(幸福来得太突然了)。由于他的电脑上没有安装ghci,所以后来的工作都在我的电脑上进行。
最初按照王程鹏跟我说的方法在ruuner.js和data.js文件中做出相应的修改以后,我发现程序无法正确地编译。经过检查,发现我们把ghci写成了GHCi,修改以后程序便可以正确地编译了。不过,当我尝试在控制台中输入指令检测它能否运行时,却意外地发现无法从控制台中输入。我一开始以为是我没有配置好,但是我又用C语言程序测试以后发现控制台仍然无法输入。此时我初步确定是popush平台本身的问题,然后我想助教汇报了错误,并得了解决。后来再在控制台中输入函数名,函数就可以正确运行了。
事情到了这里还没完。这个时候在网页上还没有办法显示haskell文件的图标,于是我又去找显示haskell图标的方法,最终发现在popush\static\images\ext路径下添加hs.png图片并在popush\static\js\models\file.js中的ext2icon中添加hs到hs的映射即可解决这种问题。至此整个项目完全结束了。
我们是在windows平台上做出的改进,后来移植到linux平台下发现也可以正确使用。
完成这次作业的过程十分顺利,这里要感谢我的队友王程鹏。没有他做的前期工作,没有我们之间的讨论,这次作业不可能这么顺利。
POPUSH中增加haskell支持的实现