编译了一个,有很多有意思的东西
Release Note在此。列举几处我比较有兴趣的:
- 基于 epoll/kqueue 的IO
- 可以生成 LLVM 代码
- 翻新了大量模块,特别是线程或异常阻塞有关的
- ghci 现在完整支持 import
- 支持 haskel 2010 ,但是新标准可能会与传统的 base 模块冲突,建议使用ghc/ghci时用以下命令屏蔽冲突模块:
ghci -package haskell2010 -hide-package base -hide-package array
- 现在支持 utf8 编码的源码文件,以及,甚至有一些 unicode 字符可以直接成为语法的一部分。
- GC 固定为两代回收
- 现在 ghc 可以向操作系统归还内存(至少 Python 和 Java 都还不能,C 的 free 在这方面也不是很有效)。
- 优化了 ghci 的沙盒
我在 ghci 里 :help 了一下,内容跟以前非常不同了。如下所示,有几个功能非常有爱,如:
- 可以支持多行
- 能够生成 etags 和 ctags
*Main> :help
Commands available from the prompt:
<statement> evaluate/run <statement>
: repeat last command
:{/n ..lines.. /n:}/n multiline command
:add [*]<module> ... add module(s) to the current target set
:browse[!] [[*]<mod>] display the names defined by module <mod>
(!: more details; *: all top-level names)
:cd <dir> change directory to <dir>
:cmd <expr> run the commands returned by <expr>::IO String
:ctags[!] [<file>] create tags file for Vi (default: "tags")
(!: use regex instead of line number)
:def <cmd> <expr> define a command :<cmd>
:edit <file> edit file
:edit edit last module
:etags [<file>] create tags file for Emacs (default: "TAGS")
:help, :? display this list of commands
:info [<name> ...] display information about the given names
:kind <type> show the kind of <type>
:load [*]<module> ... load module(s) and their dependents
:main [<arguments> ...] run the main function with the given arguments
:module [+/-] [*]<mod> ... set the context for expression evaluation
:quit exit GHCi
:reload reload the current module set
:run function [<arguments> ...] run the function with the given arguments
:type <expr> show the type of <expr>
:undef <cmd> undefine user-defined command :<cmd>
:!<command> run the shell command <command>
-- Commands for debugging:
:abandon at a breakpoint, abandon current computation
:back go back in the history (after :trace)
:break [<mod>] <l> [<col>] set a breakpoint at the specified location
:break <name> set a breakpoint on the specified function
:continue resume after a breakpoint
:delete <number> delete the specified breakpoint
:delete * delete all breakpoints
:force <expr> print <expr>, forcing unevaluated parts
:forward go forward in the history (after :back)
:history [<n>] after :trace, show the execution history
:list show the source code around current breakpoint
:list identifier show the source code for <identifier>
:list [<module>] <line> show the source code around line number <line>
:print [<name> ...] prints a value without forcing its computation
:sprint [<name> ...] simplifed version of :print
:step single-step after stopping at a breakpoint
:step <expr> single-step into <expr>
:steplocal single-step within the current top-level binding
:stepmodule single-step restricted to the current module
:trace trace after stopping at a breakpoint
:trace <expr> evaluate <expr> with tracing on (see :history)
-- Commands for changing settings:
:set <option> ... set options
:set args <arg> ... set the arguments returned by System.getArgs
:set prog <progname> set the value returned by System.getProgName
:set prompt <prompt> set the prompt used in GHCi
:set editor <cmd> set the command used for :edit
:set stop [<n>] <cmd> set the command to run when a breakpoint is hit
:unset <option> ... unset options
Options for ':set' and ':unset':
+r revert top-level expressions after each evaluation
+s print timing/memory stats after each evaluation
+t print type after evaluation
-<flags> most GHC command line flags can also be set here
(eg. -v2, -fglasgow-exts, etc.)
for GHCi-specific flags, see User's Guide,
Flag reference, Interactive-mode options
-- Commands for displaying information:
:show bindings show the current bindings made at the prompt
:show breaks show the active breakpoints
:show context show the breakpoint context
:show modules show the currently loaded modules
:show packages show the currently active package flags
:show languages show the currently active language flags
:show <setting> show value of <setting>, which is one of
[args, prog, prompt, editor, stop]
相关推荐
GHC 7.0.1,GHC 7.0.2,GHC 7.0.3,GHC 7.0.4, GHC 7.2.1,GHC 7.2.2, GHC 7.4.1,GHC 7.4.2, GHC 7.6.1,GHC 7.6.2,GHC 7.6.3, GHC 7.8.1,GHC 7.8.2,GHC 7.8.3,GHC 7.8.4 GHC 7.10.1,GHC 7.10.2,...
ghc-proposals, GHC和 GHC/haskell的编译器和语言变化 GHC建议这个库包含对 Haskell编译器( )的建议更改的规范。 of方案和of转向委员会的目的是扩大of的演化讨论。建议的时间线是什么?作者草拟了一份提案。什么是...
Mac GHC 8.6.3 64位 压缩包, GHC包括一个高效的Haskell编译器ghc,以及一个相似 python 交互环境的解释器 ghci 。GHC能够编译生成高效的可运行程序。
windows下的GHC,很好用。 windows下的GHC,很好用。
windows下的GHC,很好用。 windows下的GHC,很好用。 windows下的GHC,很好用。
windows下的GHC,很好用。 windows下的GHC,很好用。
Ghc编译器(windows)part4 Ghc编译器(windows)part4
Atom-haskell-ghc-mod.zip,haskell-ghc-mod atom packagehaskell ghc mod atom包,atom是一个用web技术构建的开源文本编辑器。
GHC磁条读写器程序712.zip
在不同版本的GHC之间快速切换ghc-version是用纯便携式外壳编写的脚本,可让您快速轻松地在GHC的不同版本之间进行切换。 如果您要开发可移植的Haskell代码,则这一点很重要。设置首先,请检查该存储库。 git clone ...
该软件包仍可与较早的GHC版本一起使用(GHC-Mod仍可在其中使用),但总体而言,其实用性值得怀疑。 因此,该存储库已弃用并存档。 如果您想讨论haskell-ghc-mod,请随时在上打开一个问题。 haskell-ghc-mod原子包 ...
GHC-----------------尖端的编译器与交互式环境
品牌:上海约瑟 名称:三相过电流过载继电器 型号:EIR-GHC-3B;EIR-GHL-3B 额定电压:110VAC;88~242VDC 功率消耗:不大于3W
ghc-generic-instances GHC 的派生实例。 GHC AST 的通用
$ git clone --recurse-submodules git@gitlab.haskell.org:ghc/ghc.git 注意:从Github克隆GHC需要特殊的设置。 请参阅。 有关 请参阅GHC团队的工作惯例。 鼓励初次贡献者通过发送合并请求开始。 建筑与安装 有关...
GHC提案该存储库包含有关对拟议更改的规范。 GHC提案程序和GHC指导委员会的目的是扩大对GHC演变的讨论。什么是提案? GHC提案是描述对编译器,GHC / Haskell语言或GHC.*模块命名空间中的库的拟议更改的文档。 这些...
ghc-grin:GHC的GRIN后端
haskell-ghc-mod原子包 该软件包主要用作后端。 Haskell ghc-mod打开通往ghc-modi的管道,并查询类型,信息并检查错误。 安装与配置 请参考官方文档站点 服务中心API 从1.0.0版本开始,haskell-ghc-mod提供...
VSCode的简单GHC(Haskell)集成 仅使用GHCi的简单Haskell支持。 (图标来自徽标)。 闪亮的徽章 相关和推荐的扩展 为GHC报告的丢失/冗余导入等任务提供了快速修复操作。 通过阅读它产生的诊断信息,它可以与此...