经过近十天的努力,Popush部署与Haskell支持部分的实验终于完成。完成情况如下:
1. Popush部署实验
由肖翱和陈键负责。
Popush在windows和linux下均已部署好。详情略。
2. Popush小优化
由岳一飞负责。
修改思路为:在register-view.js中向服务器发出register信息后延迟50ms根据页面元素的变化情况判断是否注册成功,若注册成功则发送login消息跳转到主页,否则留在登录页面。
修改部分:
<span style="font-size:14px;">...
app.socket.emit('register', {
name: name,
password: pass,
});
setTimeout(function(){autoLogin(name, pass);}, 50);
function autoLogin(name, pass){
if($('#login-view-2').length > 0){
app.socket.emit('login', {
name: name,
password: pass,
});
}
}</span>
测试结果:
1. 使用符合格式的新用户名和密码进行注册,注册后自动进入登录后的个人主页。
2. 使用不合格式的新用户名和密码进行注册,注册不成功,显示相应格式错误的消息提示。
3. 使用已存在的用户名和错误密码进行注册,显示此用户名已存在的消息提示。
4. 使用已存在的用户名和正确密码进行注册,显示此用户名已存在的消息提示。
3. Haskell语言支持
由何汶铬负责。
需要修改两个js文件:runner.js和data.js。
(1)data.js
在app.RunableExt数组中加入'hs'元素。
在app.languageMap中添加'hs':'hs';app.modeMap中添加'hs':'text/x-haskell'。
修改后能够在编辑hs文件时语法高亮,并能点击运行按钮。
(2) runner.js
在变量定义的位置添加
<span style="font-size:14px;"> var HASKELL = '../../bin/ghc';</span>
对于两个swith(type)分别添加case'hs'的情况。
linux下为:
<span style="font-size:14px;"> that.script = [
{cmd:'ghc', args:['-o', that.name + '.out', that.name]},
{cmd:A, args:['0', that.name + '.out'], start:true}
];</span>
非linux下为:
<span style="font-size:14px;">that.script = [
{cmd:'ghc', args:['-o', that.name + '.out', that.name]},
{cmd:'./' + that.name + '.out', args:[], start:true}
];</span>
修改后,能够编译haskell代码并输出结果到控制台。
测试结果:
(1)编写错误的haskell代码,将有编译错误提示。
(2)编写haskell程序输出"hello world",能够在控制台正确输出。