- 积分
- 19528
- 明经币
- 个
- 注册时间
- 2015-8-18
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 你有种再说一遍 于 2025-7-10 01:16 编辑
之前只是思考了它的词法分析和语法分析,
LispCode to LispAST to CSharpAST to CSharpCode.
到写代码的时候才发现直接处理object/dynamic是不行的,
虽然可以编译,但是装箱拆箱这种问题严重拉低性能.
还是要做类型标记,如果无法区分类型就需要遍历类型...
而且我发现我是疯了才直接用Roslyn,那一坨代码跟屎似的.
现在我用上了SIMD编译,还差多核并行没有写,嘻嘻...
每个Lisp基础函数需要自己写一份C#函数,
这个工作量还是不小的,我甚至觉得应该放弃了...
虽然可以直接放到Lisp.Run执行,但是这样就没法优化和特化了.
真是纠结万分,甚至桌子有些隐藏函数...
我甚至没有这个函数表,靠帮助文档复刻感觉很奇怪...
还是考虑低程度兼容,你公开的我兼容,你不公开的我否决...
今天深入一点:
变量重名,
全局变量和局部变量处理方式是不同的.
唉?到底同不同呢?
栈帧自动捕获局部变量,实际上是自动捕获全局变量.
以及各种优化方式,
俗话说得好,没有FFI的语言是残废.
最重要当然是打通调用Win32API的通道,
难题是动态生成结构体.
https://www.cnblogs.com/JJBox/p/18973404
为什么这种东西是我做啊,
难道不是大朋,猫老师,高飞鸟他们的做吗?
难道国产CAD它们不应该做吗?主打一个差异化竞争啊.
而且做完之后貌似可以弄个编译裁剪,
裁剪掉CAD函数,就可以创建exe啦,
而且C#有AOT编译,这个exe还直接上高速.
嘻嘻 |
|