幻の上帝吧 关注:328贴子:3,165
Alpha 3 released.


IP属地:北京1楼2017-08-10 15:59回复
    项目维护地址:
    主发布版本库: http://bitbucket.org/frankhb/yslib
    hg-git 镜像 1 :https://github.com/FrankHB/YSLib
    hg-git 镜像 3 :http://git.oschina.net/FrankHB/YSLib
    GoogleCode 已废弃。
    GitCafe 已废弃。
    待合并测试项目:
    https://gitcafe.com/FrankHB/YDTest
    https://github.com/FrankHB/NPLC
    项目 wiki : http://bitbucket.org/frankhb/yslib
    V0.8 已于 2017-08-10 发布。
    上一发布版本:
    https://tieba.baidu.com/p/4701412006


    IP属地:北京2楼2017-08-10 16:02
    回复
      另见 https://bitbucket.org/FrankHB/yslib/wiki/Releases.zh-CN.md


      IP属地:北京3楼2017-08-10 16:02
      回复
        NEWS
        Milestone in 3yr.
        2018-03-21 01:07:24 +0800
        YSLib b821r3 NPLA1 baseline interpreter正式支持proper tail call(0)。适用direct recursive和mutual recursive。
        支持first-class side effect(1),支持first-class environment(2),支持determinstic destruction(3),支持可移植的C++互操作(4),不需要GC(5)。因为是CESK-style machine,可以随时加上first-class continuation(6)虽然现在懒……
        (0)吊打完全没PTC概念的C/C++/Rust等语言,以及被迫强行annotate、只支持direct的Clojure等语言。
        (1)吊打所有纯函数式语言。
        (2)吊打Kernel/Klisp以外的几乎所有其它语言。
        (3)吊打C++/Rust以外的大部分其它语言。
        (4)吊打所有启用保守GC和体系结构优化的语言实现。
        (5)吊打C/C++/Rust以外的大部分语言。
        (6)吊打所有和Scheme不够像的语言。
        (-1)emmm……性能……不过反正比我见过的活人写的作业强。没优化AST,略弱于Klisp,当baseline够用。
        另外由于C++运行时过于辣鸡,决定省略削除activation record frame时的non-trivially destructible object判断。不保证嵌套guard存活。该问题容易变通:保证非tail context中使用即可。


        IP属地:北京本楼含有高级字体4楼2018-03-21 01:37
        回复
          上面漏了中间步骤:支持TCO,但不支持PTC。
          该性质已经吊打所有限制一等活动记录大小的语言(如Python,以及除SML/NJ以外的绝大多数“编译型实现”),或者直接不保证可移植的语言(C和C++)。实现工作量主要是手动转换CEK/CESK-style abstract mactine需要的异步实现。(1080hr.)
          从PTC到TCO本来算是trivial的,但因为一等环境和不要求环境保存引用且拒绝依赖GC,远远比其它类似Scheme的实现来得麻烦。不过也就这样。(72hr.)


          IP属地:北京5楼2018-03-21 01:45
          回复
            最近几个版本Linux上不设置LD_LOAD_LIBRARY就没法用,发现LIB_RPATH没设置上,然后还是不行……重新编译搞了半天,最后直接看编译命令行发现原因是从shell迁移时,-rpath的参数用的双引号,在NPLA1脚本中是单引号,拼出来的命令多了\\转义……都smg问题……


            IP属地:北京6楼2018-11-07 18:31
            回复
              最近几个版本Linux上不设置LD_LOAD_LIBRARY就没法用,发现LIB_RPATH没设置上,然后还是不行……重新编译搞了半天,最后直接看编译命令行发现原因是从shell迁移时,-rpath的参数用的双引号,在NPLA1脚本中是单引号,拼出来的命令多了\\转义……都smg问题……


              IP属地:北京7楼2018-11-07 18:31
              回复
                备忘:近期 NPLA1 更新要点:
                Session 支持可替换的 lexer/tokenizer ;
                Session 和 REPLContext 支持 source location ;
                ContextNode 等支持 current action inspection / continuation marks 。


                IP属地:北京8楼2020-06-06 10:34
                回复
                  移除 composed action 后性能有所下降……还得考虑 SRFI-157 类似的只在 non tail context 使用,其它情形照旧压缩?


                  IP属地:北京9楼2020-06-06 10:36
                  回复
                    估计性能问题和直接的 action frame allocation 有关,需要验证,dt、、、


                    IP属地:北京10楼2020-06-06 10:37
                    收起回复
                      multiclient test


                      IP属地:北京来自Android客户端11楼2020-06-06 10:39
                      回复
                        保存的 backtrace 受到生存期限制,有点 dt ……


                        IP属地:北京13楼2020-06-08 08:53
                        收起回复
                          Continuation names added.


                          IP属地:北京14楼2020-06-12 19:48
                          回复
                            A1 cont & reducer sep.


                            IP属地:北京来自Android客户端15楼2020-06-13 13:33
                            回复