不死猫 发表于 2022-8-23 18:54:45

打造Lisp内部函数激活的最小文件,最少数据流加载Fas

本帖最后由 不死猫 于 2022-8-23 20:22 编辑

老猫最近在研究最小激活内部函数的方法,发现了不需要在Fas中传递变量和函数就能获取内部函数的方法。
原理:通过Fas返回值直接获取内部函数,实现最小字节生成。

使用范例:



(setq al-fas-load (getInternalFunc "al-fas-load"))
(setq make-string-input-stream (getInternalFunc "make-string-input-stream"))
=============

另外用最少字节做了一个在内存加载fas文件流函数,可以免生成fas文件,这个方法也可以用于在线文件的直接加载(不用下载加载再删除)。

注:下面这里面的函数用了刚才范例生成的两个函数

使用范例:
(setq type-of (getInternelFuncStream "type-of"))
=============
如果要一次性同时激活多个函数,可以做成一个表返回,然后从表中提取对应的内部函数。
这样可以减少带宽和服务器访问次数,速度更快。

还是以文件流为例

使用范例:

(setq re (getInternalFuncStream-s (list "printf" "shell")))
(foreach x re (print (eval x)))


aihuyujian 发表于 2022-8-23 19:16:10

虽然看不懂 还支持一下大神们的研究

mokson 发表于 2022-8-23 19:54:01

各路神仙都玩得炉火纯青了。

不死猫 发表于 2022-8-23 20:06:01

激活一个type-of只需要35个字节

雨的节奏 发表于 2022-8-23 20:25:49

这个早发现了,目前最大的难点是第一个内部函数的获取,是生成fas文件如何得到第一个内部函数,只要得到franf,什么都有了

不死猫 发表于 2022-8-23 21:10:50

本帖最后由 不死猫 于 2022-8-24 21:38 编辑

雨的节奏 发表于 2022-8-23 20:25
这个早发现了,目前最大的难点是第一个内部函数的获取,是生成fas文件如何得到第一个内部函数,只要得到fra ...

用我的方法重点看生成文件的字节数。
tranf的第一个fas文件现在只需要57个字节就可以了,高飞鸟更新了可以去验证下{:1_1:}
页: [1]
查看完整版本: 打造Lisp内部函数激活的最小文件,最少数据流加载Fas