作为Haskell的新手,我正在寻找可以学习和学习的开源Haskell应用程序.
特别是,我正在寻找显示以下内容的开源项目:
你会推荐什么样的开源项目作为现代Haskell编程的典范?
Literate Haskell是否支持索引函数名,类型类和变量引用?是否有一个我可以在Literate Haskell源上运行的过滤器,它将执行此操作,并为我提供一个很好的PDF手册或一个超链接的HTML文档.
这些是noweb和CWEB的一个非常好的功能,我认为它会刺激Literate Haskell的广泛采用.
例如,查看用CWEB编写的单词计数程序.项目#4中第一页上的代码块使用了该代码的使用位置.LHS不支持块,但我想知道代码的使用位置:
评论func.
func = id
用于:(XYZf,ABCg,第1.5节)
func2 = indefined
用于:(ABCx,第2.1节)
此外,还有一个索引,它汇总了所有函数名称和变量,以及它们在文档中引用的位置以及其他函数等.
我已经addr2line为函数地址工作了:
$ nm -S executable | grep main
08048742 000000a0 T main
$ addr2line -e executable 08048742
/home/blablabla/src/main.c:80
Run Code Online (Sandbox Code Playgroud)
不幸的是,它仅在我提供函数的地址时才有效,当传递数据符号的地址(例如crc表的地址)时,它永远无法解析文件/行号:
$ nm -S executable | grep tableCRC
080491bc 00000200 r tableCRC
$ addr2line -e executable 080491bc
??:0
Run Code Online (Sandbox Code Playgroud)
我猜这种调试信息不包含在数据中,因为这个功能可能用于分析回溯,但是可能有一个编译器/链接器选项来强制这个?
我想使用输出addr2line来生成有关文件或模块使用的内存大小的详细信息(而不是'size'工具报告的全局编号).