Discussion:
[Lisp-cn] hysh: shell in lisp
huang ying
2015-04-05 12:32:13 UTC
Permalink
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊

https://github.com/hying-caritas/hysh

倧家有兎趣的垌望倚提意见。

还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台

本人CL新手还请各䜍䞍吝赐教

Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
HackerGene
2015-04-08 12:12:43 UTC
Permalink
Cool~ Stared 
陀了这里蟃奜的平台应该是千人QQ矀了
39128390
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
Regards.

-HackerGene.

HomePage: http://www.hackergene.com
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
huang ying
2015-04-10 01:27:22 UTC
Permalink
非垞感谢䜠的Star和信息。
Post by HackerGene
Cool~ Stared 
陀了这里蟃奜的平台应该是千人QQ矀了
39128390
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
Regards.
-HackerGene.
HomePage: http://www.hackergene.com
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Xiaofeng Yang
2015-04-13 15:24:37 UTC
Permalink
赞䞀䞪~ clisp as a login shell, heard of it ?

threading对于CL来诎是䞪埈糟糕的䞜西CL的讟计是按照纯粹sequential来的。本身被讟计䞺䞀䞪亀互匏系统从启劚䞀盎按顺序工䜜到退出。

learn more CL, and understand it in deep !

Best regards,
Xiaofeng Yang
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
huang ying
2015-04-14 02:11:14 UTC
Permalink
Post by Xiaofeng Yang
赞䞀䞪~ clisp as a login shell, heard of it ?
呵呵没听懂是赞HYSH还是赞clisp.

之前圚眑䞊搜到过把clisp做shell的文章http://www.clisp.org/clash.html䞍过我觉埗和HYSH还是埈䞍盞同的。这篇文章里是通过reader
macro去调甚倖郚凜数或者shell command line。HYSH是试囟甚CL写shell command
line䞍只是盎接调甚倖郚呜什也包括pipelineIO重定向等等。
Post by Xiaofeng Yang
threading对于CL来诎是䞪埈糟糕的䞜西CL的讟计是按照纯粹sequential来的。本身被讟计䞺䞀䞪亀互匏系统从启劚䞀盎按顺序工䜜到退出。
threading是比蟃晚出现的抂念对于蟃早的语蚀来诎郜没有从倎考虑过。比劂也可以诎threading对于C来诎是䞪埈糟糕的䞜西C语蚀的讟计是按照纯粹sequential来的比劂去看C库里的䞀些党局变量errno之类的。

后来圚发展过皋䞭threading的问题还是有可胜解决的。我看lisp machine的介绍䞭郜是支持threading的比劂
http://en.wikipedia.org/wiki/Lisp_machine,
https://en.wikipedia.org/wiki/Genera_%28operating_system%29
。SLIME也是采甚倚线皋的方匏写的。

CL-USER> (sb-thread:list-all-threads)
(#<SB-THREAD:THREAD "new-repl-thread" RUNNING {10051C65B3}>
#<SB-THREAD:THREAD "auto-flush-thread" RUNNING {1005B67DF3}>
#<SB-THREAD:THREAD "swank-indentation-cache-thread" RUNNING {1005A582F3}>
#<SB-THREAD:THREAD "reader-thread" RUNNING {1005A58123}>
#<SB-THREAD:THREAD "control-thread" RUNNING {1005A511F3}>
#<SB-THREAD:THREAD "Swank Sentinel" RUNNING {10057B3663}>
#<SB-THREAD:THREAD "main thread" RUNNING {10039CEF33}>)

圚这䞪版本之前我写过䞀䞪单线皋的版本基于fork/exec。䜆我发现fork和threading之闎有些死锁问题(sbcl提䟛的fork诎䞍支持圚threading的环境䞋fork)。而slime是采甚倚线皋方匏写的。所以我觉埗盞对于fork/exec的solution,
threading的solution曎奜些。

圓然HYSH并䞍区制䜿甚threading劂果䞍甚CL做pipeline里的filter的话是䞍需芁䜿甚threading的。
Post by Xiaofeng Yang
learn more CL, and understand it in deep !
呵呵蟹写蟹孊。

Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Xiaofeng Yang
2015-04-15 17:00:40 UTC
Permalink
Best regards,
Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
赞䞀䞪~ clisp as a login shell, heard of it ?
呵呵没听懂是赞HYSH还是赞clisp.
​赞䜠的劳劚成果啊​
Post by huang ying
之前圚眑䞊搜到过把clisp做shell的文章http://www.clisp.org/clash.html䞍过我觉埗和HYSH还是埈䞍盞同的。这篇文章里是通过reader
macro去调甚倖郚凜数或者shell command line。HYSH是试囟甚CL写shell command
line䞍只是盎接调甚倖郚呜什也包括pipelineIO重定向等等。
其实䜠就想做䞀䞪
​ bash对吧​
Post by huang ying
Post by Xiaofeng Yang
threading对于CL来诎是䞪埈糟糕的䞜西CL的讟计是按照纯粹sequential来的。本身被讟计䞺䞀䞪亀互匏系统从启劚䞀盎按顺序工䜜到退出。
threading是比蟃晚出现的抂念对于蟃早的语蚀来诎郜没有从倎考虑过。比劂也可以诎threading对于C来诎是䞪埈糟糕的䞜西C语蚀的讟计是按照纯粹sequential来的比劂去看C库里的䞀些党局变量errno之类的。
​
​C是70幎代的语蚀CL是84幎的。2011幎C语蚀出了新版本支持倚线皋。​2004幎CL出最后䞀䞪版本的标准组委䌚也跟着解散䞍䌚再变了。


问题来了C的简单讟计顶倚也就是䞀些党局变量之类的打打架这些其实无䌀倧雅。

那么CL呢到倄各种倍杂的党局讟计。

经兞案䟋之䞀是所谓的binding。
比方诎(let ((x 1))
...foo...)那么工䜜过皋是这样子的进入...foo...之前䌚保存圓前的x的倌然后将x绑定到1再执行...foo...退出时再把x重新返回原来的倌。那么倚线皋的情况呢这种事情留埅实现者自己去想办法。

binding只是埈简单的䞀䞪䟋子䞍过已经是到了“她的圱响我看䞍到”的地步了倍杂的䞜西还埈倚。CL的特点之䞀就是䜠写的每䞀䞪字的代码基本䞊郜䌚受党局圱响也䌚去圱响党局。这䜿埗CL讟计者芁么䞍支持倚线皋芁么小心讟计倚线皋的方匏并䞔小心讟计各种党局圱响然后䞺线皋垊䞊沉重的党局包袱毕竟党局圱响莯穿始终。䞺了䜿埗讟计和䜿甚䞊曎加简单和笊合盎觉CL实现通垞每䞪线皋郜芁垊䞊埈倚额倖的信息以让甚户甚起来感觉就像圚甚单线皋写皋序。

errno至少还是看埗到的并䞔C里面这类䞜西埈少䞔䞍䌚有什么看䞍到的䞜西䜠想诎“信号”吗。



奜吧再诎点䜠胜看埗到的党局变量。我随䟿局䞀䞪䟋子䞍借䜠可胜䞍䌚知道它䞀盎圚圱响䜠䞀方面䜠䞍䌚这么甚及䞀方面实现已经垮䜠考虑了这䞪问题圓然每䞀家郜䞍同的做法。比方诎*readtable×这莧盎接圱响䜠的代码是怎样的语法。(read)䌚根据这䞪变量来解析䜠的代码。(read)按照䞀䞪特定的算法来运䜜(read)里可以再调甚(read)并䞔每次根据*readtable×来确定内容而䞔䜠还无法指定别的对象。那么倚线皋的情况呢可胜读着读着䜠的代码䞭途语法被换了然后理解成别的了也可胜这䞪变量被做成thread-local了圱响䞍到䜠䜆是每䞀䞪线皋就芁倚䞀分空闎占甚于是就重量级起来了圓然还可胜是别的情况。*readtable×还䞍是䞀䞪简单的䞜西比方诎讟眮各种reader
macro那么改的是这䞪对象的内郚。每䞀䞪小劚䜜郜圚圱响实际的语法。

诎道这里我回想起䞀䞪尟递園的䟋子clojure那蟹问了埈倚次。
(defun f ()
; 及䞀䞪线皋圚这里重新执行(defun f ..)
(f))

泚意这里defun其实盞圓于(setf (symbol-function 'f) (lambda () ...))。

这种情况敢尟递園䌘化掉吗单线皋的情况敢!CL标准让䜠可以安心䌘化clojure貌䌌䞍行因䞺䜠䞍可以这样䞭途改吊则没意义䜆是标准里面仅限于描述单线皋的情况。劂果倚线皋呢实现自己去想办法。每䞀种实现圚这里䌚有䞍同的方匏。而swank的倚线皋eval方匏䜿埗埈倚(defun...)被圚䞍同线皋里执行。

我就䞍继续展匀了芁䞍䞍甚睡觉了这些䟋子䞍是䞉倩䞉倜胜列䞟玩的。
Post by huang ying
后来圚发展过皋䞭threading的问题还是有可胜解决的。我看lisp machine的介绍䞭郜是支持threading的比劂
http://en.wikipedia.org/wiki/Lisp_machine,
https://en.wikipedia.org/wiki/Genera_%28operating_system%29
。SLIME也是采甚倚线皋的方匏写的。
​䜠已经混淆抂念了 cl是cllisp machine是lisp machine䞀者没有关系 ​
slime分成䞀郚分䞀郚分是elisp写的elisp no
threading。及䞀郚分是swank这郚分有埈倚语蚀实现cl是䞀种䞻芁语蚀。衚面䞊swank支持倚线皋甚至每次郜是新建䞪线皋来eval䜆那只是抂念䞊的对于䞍支持的实现同样是单线皋的工䜜方匏。
Post by huang ying
CL-USER> (sb-thread:list-all-threads)
(#<SB-THREAD:THREAD "new-repl-thread" RUNNING {10051C65B3}>
#<SB-THREAD:THREAD "auto-flush-thread" RUNNING {1005B67DF3}>
#<SB-THREAD:THREAD "swank-indentation-cache-thread" RUNNING {1005A582F3}>
#<SB-THREAD:THREAD "reader-thread" RUNNING {1005A58123}>
#<SB-THREAD:THREAD "control-thread" RUNNING {1005A511F3}>
#<SB-THREAD:THREAD "Swank Sentinel" RUNNING {10057B3663}>
#<SB-THREAD:THREAD "main thread" RUNNING {10039CEF33}>)
圚这䞪版本之前我写过䞀䞪单线皋的版本基于fork/exec。䜆我发现fork和threading之闎有些死锁问题(sbcl提䟛的fork诎䞍支持圚threading的环境䞋fork)。而slime是采甚倚线皋方匏写的。所以我觉埗盞对于fork/exec的solution,
threading的solution曎奜些。
圓然HYSH并䞍区制䜿甚threading劂果䞍甚CL做pipeline里的filter的话是䞍需芁䜿甚threading的。
Post by Xiaofeng Yang
learn more CL, and understand it in deep !
呵呵蟹写蟹孊。
䞍深入䜠埈隟理解我诎的䞜西。
Post by huang ying
Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Liutos
2015-04-16 01:51:17 UTC
Permalink
楌䞊倪区期埅对CL的坑的曎倚爆料~\(≧▜≊)/~
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
赞䞀䞪~ clisp as a login shell, heard of it ?
呵呵没听懂是赞HYSH还是赞clisp.
​赞䜠的劳劚成果啊​
Post by huang ying
之前圚眑䞊搜到过把clisp做shell的文章http://www.clisp.org/clash.html䞍过我觉埗和HYSH还是埈䞍盞同的。这篇文章里是通过reader
macro去调甚倖郚凜数或者shell command line。HYSH是试囟甚CL写shell command
line䞍只是盎接调甚倖郚呜什也包括pipelineIO重定向等等。
其实䜠就想做䞀䞪
​ bash对吧​
Post by huang ying
Post by Xiaofeng Yang
threading对于CL来诎是䞪埈糟糕的䞜西CL的讟计是按照纯粹sequential来的。本身被讟计䞺䞀䞪亀互匏系统从启劚䞀盎按顺序工䜜到退出。
threading是比蟃晚出现的抂念对于蟃早的语蚀来诎郜没有从倎考虑过。比劂也可以诎threading对于C来诎是䞪埈糟糕的䞜西C语蚀的讟计是按照纯粹sequential来的比劂去看C库里的䞀些党局变量errno之类的。
​
​C是70幎代的语蚀CL是84幎的。2011幎C语蚀出了新版本支持倚线皋。​2004幎CL出最后䞀䞪版本的标准组委䌚也跟着解散䞍䌚再变了。
问题来了C的简单讟计顶倚也就是䞀些党局变量之类的打打架这些其实无䌀倧雅。
那么CL呢到倄各种倍杂的党局讟计。
经兞案䟋之䞀是所谓的binding。
比方诎(let ((x 1))
...foo...)那么工䜜过皋是这样子的进入...foo...之前䌚保存圓前的x的倌然后将x绑定到1再执行...foo...退出时再把x重新返回原来的倌。那么倚线皋的情况呢这种事情留埅实现者自己去想办法。
binding只是埈简单的䞀䞪䟋子䞍过已经是到了“她的圱响我看䞍到”的地步了倍杂的䞜西还埈倚。CL的特点之䞀就是䜠写的每䞀䞪字的代码基本䞊郜䌚受党局圱响也䌚去圱响党局。这䜿埗CL讟计者芁么䞍支持倚线皋芁么小心讟计倚线皋的方匏并䞔小心讟计各种党局圱响然后䞺线皋垊䞊沉重的党局包袱毕竟党局圱响莯穿始终。䞺了䜿埗讟计和䜿甚䞊曎加简单和笊合盎觉CL实现通垞每䞪线皋郜芁垊䞊埈倚额倖的信息以让甚户甚起来感觉就像圚甚单线皋写皋序。
errno至少还是看埗到的并䞔C里面这类䞜西埈少䞔䞍䌚有什么看䞍到的䞜西䜠想诎“信号”吗。
奜吧再诎点䜠胜看埗到的党局变量。我随䟿局䞀䞪䟋子䞍借䜠可胜䞍䌚知道它䞀盎圚圱响䜠䞀方面䜠䞍䌚这么甚及䞀方面实现已经垮䜠考虑了这䞪问题圓然每䞀家郜䞍同的做法。比方诎*readtable×这莧盎接圱响䜠的代码是怎样的语法。(read)䌚根据这䞪变量来解析䜠的代码。(read)按照䞀䞪特定的算法来运䜜(read)里可以再调甚(read)并䞔每次根据*readtable×来确定内容而䞔䜠还无法指定别的对象。那么倚线皋的情况呢可胜读着读着䜠的代码䞭途语法被换了然后理解成别的了也可胜这䞪变量被做成thread-local了圱响䞍到䜠䜆是每䞀䞪线皋就芁倚䞀分空闎占甚于是就重量级起来了圓然还可胜是别的情况。*readtable×还䞍是䞀䞪简单的䞜西比方诎讟眮各种reader
macro那么改的是这䞪对象的内郚。每䞀䞪小劚䜜郜圚圱响实际的语法。
诎道这里我回想起䞀䞪尟递園的䟋子clojure那蟹问了埈倚次。
(defun f ()
; 及䞀䞪线皋圚这里重新执行(defun f ..)
(f))
泚意这里defun其实盞圓于(setf (symbol-function 'f) (lambda () ...))。
这种情况敢尟递園䌘化掉吗单线皋的情况敢!CL标准让䜠可以安心䌘化clojure貌䌌䞍行因䞺䜠䞍可以这样䞭途改吊则没意义䜆是标准里面仅限于描述单线皋的情况。劂果倚线皋呢实现自己去想办法。每䞀种实现圚这里䌚有䞍同的方匏。而swank的倚线皋eval方匏䜿埗埈倚(defun...)被圚䞍同线皋里执行。
我就䞍继续展匀了芁䞍䞍甚睡觉了这些䟋子䞍是䞉倩䞉倜胜列䞟玩的。
Post by huang ying
后来圚发展过皋䞭threading的问题还是有可胜解决的。我看lisp machine的介绍䞭郜是支持threading的比劂
http://en.wikipedia.org/wiki/Lisp_machine,
https://en.wikipedia.org/wiki/Genera_%28operating_system%29
。SLIME也是采甚倚线皋的方匏写的。
​䜠已经混淆抂念了 cl是cllisp machine是lisp machine䞀者没有关系 ​
slime分成䞀郚分䞀郚分是elisp写的elisp no
threading。及䞀郚分是swank这郚分有埈倚语蚀实现cl是䞀种䞻芁语蚀。衚面䞊swank支持倚线皋甚至每次郜是新建䞪线皋来eval䜆那只是抂念䞊的对于䞍支持的实现同样是单线皋的工䜜方匏。
Post by huang ying
CL-USER> (sb-thread:list-all-threads)
(#<SB-THREAD:THREAD "new-repl-thread" RUNNING {10051C65B3}>
#<SB-THREAD:THREAD "auto-flush-thread" RUNNING {1005B67DF3}>
#<SB-THREAD:THREAD "swank-indentation-cache-thread" RUNNING {1005A582F3}>
#<SB-THREAD:THREAD "reader-thread" RUNNING {1005A58123}>
#<SB-THREAD:THREAD "control-thread" RUNNING {1005A511F3}>
#<SB-THREAD:THREAD "Swank Sentinel" RUNNING {10057B3663}>
#<SB-THREAD:THREAD "main thread" RUNNING {10039CEF33}>)
圚这䞪版本之前我写过䞀䞪单线皋的版本基于fork/exec。䜆我发现fork和threading之闎有些死锁问题(sbcl提䟛的fork诎䞍支持圚threading的环境䞋fork)。而slime是采甚倚线皋方匏写的。所以我觉埗盞对于fork/exec的solution,
threading的solution曎奜些。
圓然HYSH并䞍区制䜿甚threading劂果䞍甚CL做pipeline里的filter的话是䞍需芁䜿甚threading的。
Post by Xiaofeng Yang
learn more CL, and understand it in deep !
呵呵蟹写蟹孊。
䞍深入䜠埈隟理解我诎的䞜西。
Post by huang ying
Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
Liutos Love Linux LaTeX Lisp Ling

我的GitHub䞻页https://github.com/Liutos
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
huang ying
2015-04-16 02:15:54 UTC
Permalink
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
赞䞀䞪~ clisp as a login shell, heard of it ?
呵呵没听懂是赞HYSH还是赞clisp.
​赞䜠的劳劚成果啊​
非垞感谢
Post by Xiaofeng Yang
Post by huang ying
之前圚眑䞊搜到过把clisp做shell的文章http://www.clisp.org/clash.html䞍过我觉埗和HYSH还是埈䞍盞同的。这篇文章里是通过reader
macro去调甚倖郚凜数或者shell command line。HYSH是试囟甚CL写shell command
line䞍只是盎接调甚倖郚呜什也包括pipelineIO重定向等等。
其实䜠就想做䞀䞪
​ bash对吧​
对我的工䜜生掻䞭䌚经垞甚到bash script现圚打算甚Lisp就想改甚Lisp实现这些script的功胜。
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
threading对于CL来诎是䞪埈糟糕的䞜西CL的讟计是按照纯粹sequential来的。本身被讟计䞺䞀䞪亀互匏系统从启劚䞀盎按顺序工䜜到退出。
threading是比蟃晚出现的抂念对于蟃早的语蚀来诎郜没有从倎考虑过。比劂也可以诎threading对于C来诎是䞪埈糟糕的䞜西C语蚀的讟计是按照纯粹sequential来的比劂去看C库里的䞀些党局变量errno之类的。
​
​C是70幎代的语蚀CL是84幎的。2011幎C语蚀出了新版本支持倚线皋。​2004幎CL出最后䞀䞪版本的标准组委䌚也跟着解散䞍䌚再变了。
ANSI
CL䞍䌚再变了。SBCL之类的瀟区的CL应该还䌚发展。只芁还有瀟区CL就还䌚发展圓然可胜䌚改䞪名字。圓然劂果瀟区郜没有了就没有必芁再甚这䞪语蚀了。
问题来了C的简单讟计顶倚也就是䞀些党局变量之类的打打架这些其实无䌀倧雅。
Post by Xiaofeng Yang
那么CL呢到倄各种倍杂的党局讟计。
经兞案䟋之䞀是所谓的binding。
比方诎(let ((x 1))
...foo...)那么工䜜过皋是这样子的进入...foo...之前䌚保存圓前的x的倌然后将x绑定到1再执行...foo...退出时再把x重新返回原来的倌。那么倚线皋的情况呢这种事情留埅实现者自己去想办法。
binding只是埈简单的䞀䞪䟋子䞍过已经是到了“她的圱响我看䞍到”的地步了倍杂的䞜西还埈倚。CL的特点之䞀就是䜠写的每䞀䞪字的代码基本䞊郜䌚受党局圱响也䌚去圱响党局。这䜿埗CL讟计者芁么䞍支持倚线皋芁么小心讟计倚线皋的方匏并䞔小心讟计各种党局圱响然后䞺线皋垊䞊沉重的党局包袱毕竟党局圱响莯穿始终。䞺了䜿埗讟计和䜿甚䞊曎加简单和笊合盎觉CL实现通垞每䞪线皋郜芁垊䞊埈倚额倖的信息以让甚户甚起来感觉就像圚甚单线皋写皋序。
所谓线皋的党局包袱我的理解就是thread-local的状态信息。圚C语蚀里最重芁的thread-local状态信息就是execution
stack。CL里陀了execution stack之倖可胜还需芁其他的信息。
Post by Xiaofeng Yang
errno至少还是看埗到的并䞔C里面这类䞜西埈少䞔䞍䌚有什么看䞍到的䞜西䜠想诎“信号”吗。
奜吧再诎点䜠胜看埗到的党局变量。我随䟿局䞀䞪䟋子䞍借䜠可胜䞍䌚知道它䞀盎圚圱响䜠䞀方面䜠䞍䌚这么甚及䞀方面实现已经垮䜠考虑了这䞪问题圓然每䞀家郜䞍同的做法。比方诎*readtable×这莧盎接圱响䜠的代码是怎样的语法。(read)䌚根据这䞪变量来解析䜠的代码。(read)按照䞀䞪特定的算法来运䜜(read)里可以再调甚(read)并䞔每次根据*readtable×来确定内容而䞔䜠还无法指定别的对象。那么倚线皋的情况呢可胜读着读着䜠的代码䞭途语法被换了然后理解成别的了也可胜这䞪变量被做成thread-local了圱响䞍到䜠䜆是每䞀䞪线皋就芁倚䞀分空闎占甚于是就重量级起来了
重量䞀点我本人倒是没倚少问题。反正CL单线皋也重量的埈。HYSH䟝赖于bordeaux-threads (
https://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation)其䞭对dynamic
variable的线皋闎亀互有明确规定HYSH䜿甚了这些规定。对于䞍支持borderaux-threads的实现我只胜衚瀺无胜䞺力了:-)
Post by Xiaofeng Yang
圓然还可胜是别的情况。*readtable×还䞍是䞀䞪简单的䞜西比方诎讟眮各种reader
macro那么改的是这䞪对象的内郚。每䞀䞪小劚䜜郜圚圱响实际的语法。
诎道这里我回想起䞀䞪尟递園的䟋子clojure那蟹问了埈倚次。
(defun f ()
; 及䞀䞪线皋圚这里重新执行(defun f ..)
(f))
泚意这里defun其实盞圓于(setf (symbol-function 'f) (lambda () ...))。
这种情况敢尟递園䌘化掉吗单线皋的情况敢!CL标准让䜠可以安心䌘化clojure貌䌌䞍行因䞺䜠䞍可以这样䞭途改吊则没意义䜆是标准里面仅限于描述单线皋的情况。劂果倚线皋呢实现自己去想办法。每䞀种实现圚这里䌚有䞍同的方匏。而swank的倚线皋eval方匏䜿埗埈倚(defun...)被圚䞍同线皋里执行。
每䞀种实现䌚有䞍同的方匏。诎明圚实现层面这䞪问题是可以解决的。䜆是圚标准层面解决这䞪问题困隟的埈。也就是诎可以写出圚䞀䞪或几䞪实现䞊胜正确工䜜的倚线皋皋序䜆埈隟写出跚所有CL实现的倍杂的倚线皋皋序。

䞪人来讲我䞍是埈关心CL标准只芁我关心的少数几䞪CL实现可以正垞工䜜就可以了。看来我应该圚我的README里加䞊CL实现盞关信息。
Post by Xiaofeng Yang
我就䞍继续展匀了芁䞍䞍甚睡觉了这些䟋子䞍是䞉倩䞉倜胜列䞟玩的。
我有倚幎䜿甚C语蚀䜜倚线皋猖皋的经验。其实圚简单的C语蚀里猖皋里倚线皋也䞍容易。语蚀本身考虑的埈少䜆是应甚芁考虑埈倚各种共享的党局状态䜿甚层层叠叠的锁保技还芁考虑死锁问题。劂果考虑锁的实现还有考虑memory
order, cache协议, atomic operation等等䞀系列的问题。
Post by Xiaofeng Yang
Post by huang ying
后来圚发展过皋䞭threading的问题还是有可胜解决的。我看lisp machine的介绍䞭郜是支持threading的比劂
http://en.wikipedia.org/wiki/Lisp_machine,
https://en.wikipedia.org/wiki/Genera_%28operating_system%29
。SLIME也是采甚倚线皋的方匏写的。
​䜠已经混淆抂念了 cl是cllisp machine是lisp machine䞀者没有关系 ​
这䞪历史我看过䞀点。Lisp Machine公叞圚CL的制定过皋䞭发挥了盞圓倧的圱响力。有了CL之后 From lisp machine page
of wikipedia: The operating systems were written in Lisp Machine Lisp
<http://en.wikipedia.org/wiki/Lisp_Machine_Lisp>, InterLisp
<http://en.wikipedia.org/wiki/InterLisp> (Xerox) and later partly in Common
Lisp <http://en.wikipedia.org/wiki/Common_Lisp>.
Post by Xiaofeng Yang
slime分成䞀郚分䞀郚分是elisp写的elisp no
threading。及䞀郚分是swank这郚分有埈倚语蚀实现cl是䞀种䞻芁语蚀。衚面䞊swank支持倚线皋甚至每次郜是新建䞪线皋来eval䜆那只是抂念䞊的对于䞍支持的实现同样是单线皋的工䜜方匏。
Post by huang ying
CL-USER> (sb-thread:list-all-threads)
(#<SB-THREAD:THREAD "new-repl-thread" RUNNING {10051C65B3}>
#<SB-THREAD:THREAD "auto-flush-thread" RUNNING {1005B67DF3}>
#<SB-THREAD:THREAD "swank-indentation-cache-thread" RUNNING {1005A582F3}>
#<SB-THREAD:THREAD "reader-thread" RUNNING {1005A58123}>
#<SB-THREAD:THREAD "control-thread" RUNNING {1005A511F3}>
#<SB-THREAD:THREAD "Swank Sentinel" RUNNING {10057B3663}>
#<SB-THREAD:THREAD "main thread" RUNNING {10039CEF33}>)
圚这䞪版本之前我写过䞀䞪单线皋的版本基于fork/exec。䜆我发现fork和threading之闎有些死锁问题(sbcl提䟛的fork诎䞍支持圚threading的环境䞋fork)。而slime是采甚倚线皋方匏写的。所以我觉埗盞对于fork/exec的solution,
threading的solution曎奜些。
圓然HYSH并䞍区制䜿甚threading劂果䞍甚CL做pipeline里的filter的话是䞍需芁䜿甚threading的。
Post by Xiaofeng Yang
learn more CL, and understand it in deep !
呵呵蟹写蟹孊。
䞍深入䜠埈隟理解我诎的䞜西。
目前䞺止还奜。通读过hyperspec前几章对理解䜠的话有垮助。

Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Post by huang ying
Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Xiaofeng Yang
2015-04-17 13:19:29 UTC
Permalink
Best regards,
Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
赞䞀䞪~ clisp as a login shell, heard of it ?
呵呵没听懂是赞HYSH还是赞clisp.
​赞䜠的劳劚成果啊​
非垞感谢
Post by Xiaofeng Yang
Post by huang ying
之前圚眑䞊搜到过把clisp做shell的文章http://www.clisp.org/clash.html䞍过我觉埗和HYSH还是埈䞍盞同的。这篇文章里是通过reader
macro去调甚倖郚凜数或者shell command line。HYSH是试囟甚CL写shell command
line䞍只是盎接调甚倖郚呜什也包括pipelineIO重定向等等。
其实䜠就想做䞀䞪
​ bash对吧​
对我的工䜜生掻䞭䌚经垞甚到bash script现圚打算甚Lisp就想改甚Lisp实现这些script的功胜。
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
threading对于CL来诎是䞪埈糟糕的䞜西CL的讟计是按照纯粹sequential来的。本身被讟计䞺䞀䞪亀互匏系统从启劚䞀盎按顺序工䜜到退出。
threading是比蟃晚出现的抂念对于蟃早的语蚀来诎郜没有从倎考虑过。比劂也可以诎threading对于C来诎是䞪埈糟糕的䞜西C语蚀的讟计是按照纯粹sequential来的比劂去看C库里的䞀些党局变量errno之类的。
​
​C是70幎代的语蚀CL是84幎的。2011幎C语蚀出了新版本支持倚线皋。​2004幎CL出最后䞀䞪版本的标准组委䌚也跟着解散䞍䌚再变了。
ANSI
CL䞍䌚再变了。SBCL之类的瀟区的CL应该还䌚发展。只芁还有瀟区CL就还䌚发展圓然可胜䌚改䞪名字。圓然劂果瀟区郜没有了就没有必芁再甚这䞪语蚀了。
问题来了C的简单讟计顶倚也就是䞀些党局变量之类的打打架这些其实无䌀倧雅。
Post by Xiaofeng Yang
那么CL呢到倄各种倍杂的党局讟计。
经兞案䟋之䞀是所谓的binding。
比方诎(let ((x 1))
...foo...)那么工䜜过皋是这样子的进入...foo...之前䌚保存圓前的x的倌然后将x绑定到1再执行...foo...退出时再把x重新返回原来的倌。那么倚线皋的情况呢这种事情留埅实现者自己去想办法。
binding只是埈简单的䞀䞪䟋子䞍过已经是到了“她的圱响我看䞍到”的地步了倍杂的䞜西还埈倚。CL的特点之䞀就是䜠写的每䞀䞪字的代码基本䞊郜䌚受党局圱响也䌚去圱响党局。这䜿埗CL讟计者芁么䞍支持倚线皋芁么小心讟计倚线皋的方匏并䞔小心讟计各种党局圱响然后䞺线皋垊䞊沉重的党局包袱毕竟党局圱响莯穿始终。䞺了䜿埗讟计和䜿甚䞊曎加简单和笊合盎觉CL实现通垞每䞪线皋郜芁垊䞊埈倚额倖的信息以让甚户甚起来感觉就像圚甚单线皋写皋序。
所谓线皋的党局包袱我的理解就是thread-local的状态信息。圚C语蚀里最重芁的thread-local状态信息就是execution
stack。CL里陀了execution stack之倖可胜还需芁其他的信息。
​CL需芁非垞倚的信息。SBCL单䞪线皋基础信息䞺JVM​的奜几倍占甚量。CL的党局的䞜西过倚并䞍仅仅只是䞀些thread-local的䞜西比方诎bind这种䞜西就是语义䞊的圓然还有各种其它的䞜西。bind意味着倌被修改䞀䞪线皋同时圚bind和restore的时候是吊同时也改及䞀䞪线皋里的同䞀䞪笊号的倌呢bind之后对该变量赋倌呢等等等等。
Post by huang ying
Post by Xiaofeng Yang
errno至少还是看埗到的并䞔C里面这类䞜西埈少䞔䞍䌚有什么看䞍到的䞜西䜠想诎“信号”吗。
奜吧再诎点䜠胜看埗到的党局变量。我随䟿局䞀䞪䟋子䞍借䜠可胜䞍䌚知道它䞀盎圚圱响䜠䞀方面䜠䞍䌚这么甚及䞀方面实现已经垮䜠考虑了这䞪问题圓然每䞀家郜䞍同的做法。比方诎*readtable×这莧盎接圱响䜠的代码是怎样的语法。(read)䌚根据这䞪变量来解析䜠的代码。(read)按照䞀䞪特定的算法来运䜜(read)里可以再调甚(read)并䞔每次根据*readtable×来确定内容而䞔䜠还无法指定别的对象。那么倚线皋的情况呢可胜读着读着䜠的代码䞭途语法被换了然后理解成别的了也可胜这䞪变量被做成thread-local了圱响䞍到䜠䜆是每䞀䞪线皋就芁倚䞀分空闎占甚于是就重量级起来了
重量䞀点我本人倒是没倚少问题。反正CL单线皋也重量的埈。HYSH䟝赖于bordeaux-threads (
https://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation)其䞭对dynamic
variable的线皋闎亀互有明确规定HYSH䜿甚了这些规定。对于䞍支持borderaux-threads的实现我只胜衚瀺无胜䞺力了:-)
​䜠这就颠倒了。bordeaux-threads跟*readtable*没有任䜕关系它也无法规定dynamic
variable的行䞺。​bordeaux-threads䞍过是䞺跚CL提䟛䞀䞪标准接口简单诎就是䞪wrap层让倧家郜胜甚标准CL写皋序而已。具䜓怎么搞那郜是实现自己规定的。

​CL瀟区有䞪特点由于受限于工具倪匱所以通垞​郜芁写标准CL皋序以䟿䞀䞪实现䞍行了及䞀䞪实现顶䞊。比方诎写A实现的皋序埀埀䌚切换到B实现去调䞀调因䞺A的调试噚倪匱只胜切换到B。圚这种倧环境䞋就有了䞀堆以ANSI
CL䞺标准的实现并䞔有䞀堆类䌌bordeaux-threads这样子的仅䞺提䟛统䞀接口而存圚的库。
Post by huang ying
Post by Xiaofeng Yang
圓然还可胜是别的情况。*readtable×还䞍是䞀䞪简单的䞜西比方诎讟眮各种reader
macro那么改的是这䞪对象的内郚。每䞀䞪小劚䜜郜圚圱响实际的语法。
诎道这里我回想起䞀䞪尟递園的䟋子clojure那蟹问了埈倚次。
(defun f ()
; 及䞀䞪线皋圚这里重新执行(defun f ..)
(f))
泚意这里defun其实盞圓于(setf (symbol-function 'f) (lambda () ...))。
这种情况敢尟递園䌘化掉吗单线皋的情况敢!CL标准让䜠可以安心䌘化clojure貌䌌䞍行因䞺䜠䞍可以这样䞭途改吊则没意义䜆是标准里面仅限于描述单线皋的情况。劂果倚线皋呢实现自己去想办法。每䞀种实现圚这里䌚有䞍同的方匏。而swank的倚线皋eval方匏䜿埗埈倚(defun...)被圚䞍同线皋里执行。
每䞀种实现䌚有䞍同的方匏。诎明圚实现层面这䞪问题是可以解决的。䜆是圚标准层面解决这䞪问题困隟的埈。也就是诎可以写出圚䞀䞪或几䞪实现䞊胜正确工䜜的倚线皋皋序䜆埈隟写出跚所有CL实现的倍杂的倚线皋皋序。
​所以䜠芁绑定䜠的皋序到䞀䞪实现才行。​
Post by huang ying
䞪人来讲我䞍是埈关心CL标准只芁我关心的少数几䞪CL实现可以正垞工䜜就可以了。看来我应该圚我的README里加䞊CL实现盞关信息。
Post by Xiaofeng Yang
我就䞍继续展匀了芁䞍䞍甚睡觉了这些䟋子䞍是䞉倩䞉倜胜列䞟玩的。
我
​​
有
​​
倚幎䜿甚C语蚀䜜倚线皋猖皋的经验。其实圚简单的C语蚀里猖皋里倚线皋也䞍容易。语蚀本身考虑的埈少䜆是应甚芁考虑埈倚各种共享的党局状态䜿甚层层叠叠的锁保技还芁考虑死锁问题。劂果考虑锁的实现还有考虑memory
order, cache协议, atomic operation等等䞀系列的问题。
圚​这䞪瀟区诎​自己有“
​
有
​​
倚幎䜿甚C语蚀”的人通垞最后郜被证明虜然写埗倚䜆是氎平埈氎 最后矞愧隟圓䞊吊自尜 逃...
Post by huang ying
Post by Xiaofeng Yang
Post by huang ying
后来圚发展过皋䞭threading的问题还是有可胜解决的。我看lisp machine的介绍䞭郜是支持threading的比劂
http://en.wikipedia.org/wiki/Lisp_machine,
https://en.wikipedia.org/wiki/Genera_%28operating_system%29
。SLIME也是采甚倚线皋的方匏写的。
​䜠已经混淆抂念了 cl是cllisp machine是lisp machine䞀者没有关系 ​
这䞪历史我看过䞀点。Lisp Machine公叞圚CL的制定过皋䞭发挥了盞圓倧的圱响力。有了CL之后 From lisp machine page
of wikipedia: The operating systems were written in Lisp Machine Lisp
<http://en.wikipedia.org/wiki/Lisp_Machine_Lisp>, InterLisp
<http://en.wikipedia.org/wiki/InterLisp> (Xerox) and later partly in Common
Lisp <http://en.wikipedia.org/wiki/Common_Lisp>.
​䜠这䞪是想诎明啥呢  ​
Post by huang ying
slime分成䞀郚分䞀郚分是elisp写的elisp no
Post by Xiaofeng Yang
threading。及䞀郚分是swank这郚分有埈倚语蚀实现cl是䞀种䞻芁语蚀。衚面䞊swank支持倚线皋甚至每次郜是新建䞪线皋来eval䜆那只是抂念䞊的对于䞍支持的实现同样是单线皋的工䜜方匏。
Post by huang ying
CL-USER> (sb-thread:list-all-threads)
(#<SB-THREAD:THREAD "new-repl-thread" RUNNING {10051C65B3}>
#<SB-THREAD:THREAD "auto-flush-thread" RUNNING {1005B67DF3}>
#<SB-THREAD:THREAD "swank-indentation-cache-thread" RUNNING
{1005A582F3}>
#<SB-THREAD:THREAD "reader-thread" RUNNING {1005A58123}>
#<SB-THREAD:THREAD "control-thread" RUNNING {1005A511F3}>
#<SB-THREAD:THREAD "Swank Sentinel" RUNNING {10057B3663}>
#<SB-THREAD:THREAD "main thread" RUNNING {10039CEF33}>)
圚这䞪版本之前我写过䞀䞪单线皋的版本基于fork/exec。䜆我发现fork和threading之闎有些死锁问题(sbcl提䟛的fork诎䞍支持圚threading的环境䞋fork)。而slime是采甚倚线皋方匏写的。所以我觉埗盞对于fork/exec的solution,
threading的solution曎奜些。
圓然HYSH并䞍区制䜿甚threading劂果䞍甚CL做pipeline里的filter的话是䞍需芁䜿甚threading的。
Post by Xiaofeng Yang
learn more CL, and understand it in deep !
呵呵蟹写蟹孊。
䞍深入䜠埈隟理解我诎的䞜西。
目前䞺止还奜。通读过hyperspec前几章对理解䜠的话有垮助。
​赞~敎䞪读完对CL的理解又䌚埈䞍同。​
Post by huang ying
Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Post by huang ying
Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
huang ying
2015-04-19 12:25:15 UTC
Permalink
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
赞䞀䞪~ clisp as a login shell, heard of it ?
呵呵没听懂是赞HYSH还是赞clisp.
​赞䜠的劳劚成果啊​
非垞感谢
Post by Xiaofeng Yang
Post by huang ying
之前圚眑䞊搜到过把clisp做shell的文章http://www.clisp.org/clash.html䞍过我觉埗和HYSH还是埈䞍盞同的。这篇文章里是通过reader
macro去调甚倖郚凜数或者shell command line。HYSH是试囟甚CL写shell command
line䞍只是盎接调甚倖郚呜什也包括pipelineIO重定向等等。
其实䜠就想做䞀䞪
​ bash对吧​
对我的工䜜生掻䞭䌚经垞甚到bash script现圚打算甚Lisp就想改甚Lisp实现这些script的功胜。
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
threading对于CL来诎是䞪埈糟糕的䞜西CL的讟计是按照纯粹sequential来的。本身被讟计䞺䞀䞪亀互匏系统从启劚䞀盎按顺序工䜜到退出。
threading是比蟃晚出现的抂念对于蟃早的语蚀来诎郜没有从倎考虑过。比劂也可以诎threading对于C来诎是䞪埈糟糕的䞜西C语蚀的讟计是按照纯粹sequential来的比劂去看C库里的䞀些党局变量errno之类的。
​
​C是70幎代的语蚀CL是84幎的。2011幎C语蚀出了新版本支持倚线皋。​2004幎CL出最后䞀䞪版本的标准组委䌚也跟着解散䞍䌚再变了。
ANSI
CL䞍䌚再变了。SBCL之类的瀟区的CL应该还䌚发展。只芁还有瀟区CL就还䌚发展圓然可胜䌚改䞪名字。圓然劂果瀟区郜没有了就没有必芁再甚这䞪语蚀了。
问题来了C的简单讟计顶倚也就是䞀些党局变量之类的打打架这些其实无䌀倧雅。
Post by Xiaofeng Yang
那么CL呢到倄各种倍杂的党局讟计。
经兞案䟋之䞀是所谓的binding。
比方诎(let ((x 1))
...foo...)那么工䜜过皋是这样子的进入...foo...之前䌚保存圓前的x的倌然后将x绑定到1再执行...foo...退出时再把x重新返回原来的倌。那么倚线皋的情况呢这种事情留埅实现者自己去想办法。
binding只是埈简单的䞀䞪䟋子䞍过已经是到了“她的圱响我看䞍到”的地步了倍杂的䞜西还埈倚。CL的特点之䞀就是䜠写的每䞀䞪字的代码基本䞊郜䌚受党局圱响也䌚去圱响党局。这䜿埗CL讟计者芁么䞍支持倚线皋芁么小心讟计倚线皋的方匏并䞔小心讟计各种党局圱响然后䞺线皋垊䞊沉重的党局包袱毕竟党局圱响莯穿始终。䞺了䜿埗讟计和䜿甚䞊曎加简单和笊合盎觉CL实现通垞每䞪线皋郜芁垊䞊埈倚额倖的信息以让甚户甚起来感觉就像圚甚单线皋写皋序。
所谓线皋的党局包袱我的理解就是thread-local的状态信息。圚C语蚀里最重芁的thread-local状态信息就是execution
stack。CL里陀了execution stack之倖可胜还需芁其他的信息。
​CL需芁非垞倚的信息。SBCL单䞪线皋基础信息䞺JVM​的奜几倍占甚量。
第䞀䞪线皋差倚少之后每添加䞀䞪线皋需芁增加倚少。胜䞍胜提䟛䞀䞋信息来源我去孊习䞋。
Post by Xiaofeng Yang
CL的党局的䞜西过倚并䞍仅仅只是䞀些thread-local的䞜西比方诎bind这种䞜西就是语义䞊的圓然还有各种其它的䞜西。bind意味着倌被修改䞀䞪线皋同时圚bind和restore的时候是吊同时也改及䞀䞪线皋里的同䞀䞪笊号的倌呢bind之后对该变量赋倌呢等等等等。
劂果我的理解正确的话lexical scope variable的bind/restore圚语义䞊应该是thread
local的劂果声明䞺或被猖译噚刀断䞺dynamic extent的应该可以圚栈䞊分配释攟而栈肯定是thread
local的。考虑到lexical scope
closurebinding是可以圚线皋闎共享的䜆䞍是binding的建立和恢倍而是binding对应的倌。按我的理解这种情况应甚皋序自己应该䜜同步和互斥语蚀只芁提䟛盞应的机制就可以了。圚HYSH䞭对于可胜圚线皋闎共享的FD
stream对象我就䜿甚了锁和匕甚计数做保技。dynamic scope
variable的线皋闎行䞺奜像䞍同的实现倄理的方匏䞍同据我猜测根据bordeaux-threads䜿甚let建立的dynamic scope
variable binding䞺 thread local的应该是䞻流。
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
errno至少还是看埗到的并䞔C里面这类䞜西埈少䞔䞍䌚有什么看䞍到的䞜西䜠想诎“信号”吗。
奜吧再诎点䜠胜看埗到的党局变量。我随䟿局䞀䞪䟋子䞍借䜠可胜䞍䌚知道它䞀盎圚圱响䜠䞀方面䜠䞍䌚这么甚及䞀方面实现已经垮䜠考虑了这䞪问题圓然每䞀家郜䞍同的做法。比方诎*readtable×这莧盎接圱响䜠的代码是怎样的语法。(read)䌚根据这䞪变量来解析䜠的代码。(read)按照䞀䞪特定的算法来运䜜(read)里可以再调甚(read)并䞔每次根据*readtable×来确定内容而䞔䜠还无法指定别的对象。那么倚线皋的情况呢可胜读着读着䜠的代码䞭途语法被换了然后理解成别的了也可胜这䞪变量被做成thread-local了圱响䞍到䜠䜆是每䞀䞪线皋就芁倚䞀分空闎占甚于是就重量级起来了
重量䞀点我本人倒是没倚少问题。反正CL单线皋也重量的埈。HYSH䟝赖于bordeaux-threads (
https://trac.common-lisp.net/bordeaux-threads/wiki/ApiDocumentation)其䞭对dynamic
variable的线皋闎亀互有明确规定HYSH䜿甚了这些规定。对于䞍支持borderaux-threads的实现我只胜衚瀺无胜䞺力了:-)
​䜠这就颠倒了。bordeaux-threads跟*readtable*没有任䜕关系它也无法规定dynamic
variable的行䞺。​bordeaux-threads䞍过是䞺跚CL提䟛䞀䞪标准接口简单诎就是䞪wrap层让倧家郜胜甚标准CL写皋序而已。具䜓怎么搞那郜是实现自己规定的。
bordeaux-threads定义了䞀种specification。根据我的理解bordeaux-threads䞍仅仅是䞀䞪wrap层。它应该只胜圚笊合它的specification的语蚀实现䞊才胜完敎实现。劂果这䞪理解是正确的话HYSH䟝赖bordeaux-threads就可以支持笊合其规范的那些CL实现。对于其他实现陀非将来甚到吊则就䞍䌚支持了。最奜bordeaux-threads圚那些实现䞊根本没有这样甚户就䞍䌚困惑了。
Post by Xiaofeng Yang
​CL瀟区有䞪特点由于受限于工具倪匱所以通垞​郜芁写标准CL皋序以䟿䞀䞪实现䞍行了及䞀䞪实现顶䞊。比方诎写A实现的皋序埀埀䌚切换到B实现去调䞀调因䞺A的调试噚倪匱只胜切换到B。圚这种倧环境䞋就有了䞀堆以ANSI
CL䞺标准的实现并䞔有䞀堆类䌌bordeaux-threads这样子的仅䞺提䟛统䞀接口而存圚的库。
只支持䞀䞪实现是有䞀定的风险䜆是只写䞥栌服从ANSI
CL标准的皋序又倪受限了。我觉埗比蟃实际的策略是支持䞀郚分或几䞪CL实现。其他的只胜无视了。圓然劂果哪倩知道有䞪比蟃掻跃靠谱的匀源瀟区实现我就准倇无视所有其他实现了。就算是可移怍䞀般也䌚只圚䞀䞪语蚀实现䞊跑的最奜其他的语蚀实现就只胜是二等公民了或者功胜差点儿或者性胜差点儿。
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
圓然还可胜是别的情况。*readtable×还䞍是䞀䞪简单的䞜西比方诎讟眮各种reader
macro那么改的是这䞪对象的内郚。每䞀䞪小劚䜜郜圚圱响实际的语法。
诎道这里我回想起䞀䞪尟递園的䟋子clojure那蟹问了埈倚次。
(defun f ()
; 及䞀䞪线皋圚这里重新执行(defun f ..)
(f))
泚意这里defun其实盞圓于(setf (symbol-function 'f) (lambda () ...))。
这种情况敢尟递園䌘化掉吗单线皋的情况敢!CL标准让䜠可以安心䌘化clojure貌䌌䞍行因䞺䜠䞍可以这样䞭途改吊则没意义䜆是标准里面仅限于描述单线皋的情况。劂果倚线皋呢实现自己去想办法。每䞀种实现圚这里䌚有䞍同的方匏。而swank的倚线皋eval方匏䜿埗埈倚(defun...)被圚䞍同线皋里执行。
每䞀种实现䌚有䞍同的方匏。诎明圚实现层面这䞪问题是可以解决的。䜆是圚标准层面解决这䞪问题困隟的埈。也就是诎可以写出圚䞀䞪或几䞪实现䞊胜正确工䜜的倚线皋皋序䜆埈隟写出跚所有CL实现的倍杂的倚线皋皋序。
​所以䜠芁绑定䜠的皋序到䞀䞪实现才行。​
感觉HYSH所䜿甚的线皋盞关的语蚀特性䞍算倚所以支持䞀郚分或者几䞪语蚀实现问题䞍倧。我觉埗这䞍是问题。过分的远求可移怍圚实践䞭䞍是埈有意义。
Post by Xiaofeng Yang
Post by huang ying
䞪人来讲我䞍是埈关心CL标准只芁我关心的少数几䞪CL实现可以正垞工䜜就可以了。看来我应该圚我的README里加䞊CL实现盞关信息。
Post by Xiaofeng Yang
我就䞍继续展匀了芁䞍䞍甚睡觉了这些䟋子䞍是䞉倩䞉倜胜列䞟玩的。
我
​​
有
​​
倚幎䜿甚C语蚀䜜倚线皋猖皋的经验。其实圚简单的C语蚀里猖皋里倚线皋也䞍容易。语蚀本身考虑的埈少䜆是应甚芁考虑埈倚各种共享的党局状态䜿甚层层叠叠的锁保技还芁考虑死锁问题。劂果考虑锁的实现还有考虑memory
order, cache协议, atomic operation等等䞀系列的问题。
圚​这䞪瀟区诎​自己有“
​
有
​​
倚幎䜿甚C语蚀”的人通垞最后郜被证明虜然写埗倚䜆是氎平埈氎 最后矞愧隟圓䞊吊自尜 逃...
对于这䞪我就只胜“呵呵”了。

我诎自己倚幎䜿甚C语蚀并无卖匄之意。其实只是想诎我有甚C语蚀写倚线皋皋序的经验所以对于倚线皋猖皋有䞀些知识和抂念。而䞔对于C语蚀我还是胜诎道诎道的。
Post by Xiaofeng Yang
Post by huang ying
Post by Xiaofeng Yang
Post by huang ying
后来圚发展过皋䞭threading的问题还是有可胜解决的。我看lisp machine的介绍䞭郜是支持threading的比劂
http://en.wikipedia.org/wiki/Lisp_machine,
https://en.wikipedia.org/wiki/Genera_%28operating_system%29
。SLIME也是采甚倚线皋的方匏写的。
​䜠已经混淆抂念了 cl是cllisp machine是lisp machine䞀者没有关系 ​
这䞪历史我看过䞀点。Lisp Machine公叞圚CL的制定过皋䞭发挥了盞圓倧的圱响力。有了CL之后 From lisp machine
page of wikipedia: The operating systems were written in Lisp Machine
Lisp <http://en.wikipedia.org/wiki/Lisp_Machine_Lisp>, InterLisp
<http://en.wikipedia.org/wiki/InterLisp> (Xerox) and later partly in Common
Lisp <http://en.wikipedia.org/wiki/Common_Lisp>.
​䜠这䞪是想诎明啥呢  ​
我想诎明lisp machine或者诎lisp machine
lisp和CL之闎的关系可以算埗䞊玧密。我猜应该比Clojour和CL闎的关系芁玧密些。从这段历史来猜测CL的䞖界并非没有倚线皋支持的历史实践䞭multiple
thread是CL兞型的猖皋暡型。虜然CL标准䞭没有对倚线皋的描述。

还看过䞀本乊Lisp Hacker
(https://leanpub.com/lisphackers)䞻芁是对䞀些CL瀟区䞭人的访谈其䞭盞圓䞀批人对Lisp
Machine, Genera, Lisp
OS对于这种单语蚀单地址空闎倚线皋的语蚀环境盞圓讀同。所以我据歀掚测单语蚀单地址空闎倚线皋的猖皋暡型是Lisp的兞型猖皋暡型。是瀟区䞭盞圓䞀批人的讀同的猖皋暡型应该是支持的盞对蟃奜的猖皋暡型。圓然虜然Lisp
Machine对CL有非垞倧的圱响力䜆劂今的匀源的CL实现并非Lisp Machine
Lisp的盎接后代圚实践䞭也讞䞀些CL实现和䞀些CL库对threading支持还有这样那样的问题。劂果哪䜍胜共享䞀些这样的信息或这信息来源我也是䞍胜感激。䜆从Lisp
Machine和CL的枊源来看诎CL倩然埈隟或无法支持threading这䞪我还是深衚怀疑的。
Post by Xiaofeng Yang
slime分成䞀郚分䞀郚分是elisp写的elisp no
Post by huang ying
Post by Xiaofeng Yang
threading。及䞀郚分是swank这郚分有埈倚语蚀实现cl是䞀种䞻芁语蚀。衚面䞊swank支持倚线皋甚至每次郜是新建䞪线皋来eval䜆那只是抂念䞊的对于䞍支持的实现同样是单线皋的工䜜方匏。
Post by huang ying
CL-USER> (sb-thread:list-all-threads)
(#<SB-THREAD:THREAD "new-repl-thread" RUNNING {10051C65B3}>
#<SB-THREAD:THREAD "auto-flush-thread" RUNNING {1005B67DF3}>
#<SB-THREAD:THREAD "swank-indentation-cache-thread" RUNNING {1005A582F3}>
#<SB-THREAD:THREAD "reader-thread" RUNNING {1005A58123}>
#<SB-THREAD:THREAD "control-thread" RUNNING {1005A511F3}>
#<SB-THREAD:THREAD "Swank Sentinel" RUNNING {10057B3663}>
#<SB-THREAD:THREAD "main thread" RUNNING {10039CEF33}>)
圚这䞪版本之前我写过䞀䞪单线皋的版本基于fork/exec。䜆我发现fork和threading之闎有些死锁问题(sbcl提䟛的fork诎䞍支持圚threading的环境䞋fork)。而slime是采甚倚线皋方匏写的。所以我觉埗盞对于fork/exec的solution,
threading的solution曎奜些。
圓然HYSH并䞍区制䜿甚threading劂果䞍甚CL做pipeline里的filter的话是䞍需芁䜿甚threading的。
Post by Xiaofeng Yang
learn more CL, and understand it in deep !
呵呵蟹写蟹孊。
䞍深入䜠埈隟理解我诎的䞜西。
目前䞺止还奜。通读过hyperspec前几章对理解䜠的话有垮助。
​赞~敎䞪读完对CL的理解又䌚埈䞍同。​
过段时闎再重读几遍经兞的䞜西是芁倚读几遍。䞍过我也䌚读读SBCL的mannual和其他文档因䞺我的观点是只有spec还䞍借。实现特定的䞜西埀埀也埈有甚。

Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Post by huang ying
Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Post by huang ying
Best Regards,
Huang, Ying
Post by Xiaofeng Yang
Best regards,
Xiaofeng Yang
Post by huang ying
䞺了“甚”lisp我想甚common
lisp做䞀些Linux(Linux是日垞操䜜系统)䞋日垞䜿甚的脚本(代替之前的bash和python)。之前甚inferior-shell也了解过䞀点scsh后来有了䞀些自己的想法觉埗可以做䞀䞪曎lispy的design。就有了hysh项目建圚github䞊
https://github.com/hying-caritas/hysh
倧家有兎趣的垌望倚提意见。
还有䞀件事请教倧家的意见。我想收集曎倚的意见陀了这里哪里还是蟃奜的平台
本人CL新手还请各䜍䞍吝赐教
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn
---
悚收到歀邮件是因䞺悚订阅了Google眑䞊论坛䞊的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁查看曎倚选项请访问https://groups.google.com/d/optout。
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
huang ying
2015-04-20 00:55:18 UTC
Permalink
Post by huang ying
劂果我的理解正确的话lexical scope variable的bind/restore圚语义䞊应该是thread
local的劂果声明䞺或被猖译噚刀断䞺dynamic extent的应该可以圚栈䞊分配释攟而栈肯定是thread
local的。考虑到lexical scope
closurebinding是可以圚线皋闎共享的䜆䞍是binding的建立和恢倍而是binding对应的倌。
Sorry,
这䞪地方衚蟟的有歧义。binding本身圓然是可以圚䞍同的线皋闎共享的包括修改binding。我想衚蟟的是这䞪和let䞍同䟋劂䞍胜删陀䞀䞪binding。closure匕甚的lexical
scope variable就类䌌C语蚀䞭的党局变量需芁应甚皋序自己去保技这里并䞍䞀定芁CL做什么特殊的事。
Post by huang ying
按我的理解这种情况应甚皋序自己应该䜜同步和互斥语蚀只芁提䟛盞应的机制就可以了。圚HYSH䞭对于可胜圚线皋闎共享的FD
stream对象我就䜿甚了锁和匕甚计数做保技。dynamic scope
variable的线皋闎行䞺奜像䞍同的实现倄理的方匏䞍同据我猜测根据bordeaux-threads䜿甚let建立的dynamic scope
variable binding䞺 thread local的应该是䞻流。
Best Regards,
Huang, Ying
--
--
Lisp-cn(Lisp䞭文甚户组)
CLUG http://lisp.org.cn

---
悚收到歀邮件是因䞺悚订阅了 Google 眑䞊论坛的“Lisp-cn(Lisp䞭文甚户组)”矀组。
芁退订歀矀组并停止接收歀矀组的电子邮件请发送电子邮件到lisp-cn+***@googlegroups.com。
芁查看曎倚选项请访问 https://groups.google.com/d/optout。
Loading...