dnaugsuz:
#code https://pastebin.com/LqSNNbfC
从昨晚只搞出个 py 缩进解析 🤪
不想写了,还有正事要弄
说起来也没用支持双向替换和中文的 gcc -E 啊
真是垃圾
https://t.iss.one/dsuse/18843
社区库也有个版本。 这算法可以用于loads h1标题树、+-*/、 缩进块
还挺有用的,只是递归有点烧脑
不可否认的是,虽然json在描述xml和csv这样的结构时效率低得逆天
它还是巨无霸格式
说明什么? js的框架本身是屎山
我是说csv的固定格式。
它的情况是,可能有几个巨无霸键,里面是 [{}, ..] 的形式
CSV不能胜任,是因为它没有TOML那样的 [key] 赋值
如果真是那样的话,很可能我就直接把 n行m个格子存在一起,然后 def iterator() 了
我就是这么想的,JSON 和 BENC 混在一起,补上有必要的压缩
我的范式叫 Quine_馈硬, 意思是在runtime用reflect拼接代码,缓存为字面。 将首次运行视为编译期
举个 echoVars (u) 的例子,在js里 Object.entries {K,V } 就够了
})
$${} 表示直接eval, ${} 为escape JSON
当然在JS里这没什么稀奇, 我的意思是,这可以移植到任何「编译期」的编程语言, 配上我的反射框架
就像 template<> 一样,比如 it: Pair 时就生成一个 Vars_Pair 来handle
编程语法可能只是骗人的
taichi-lang.org 就是用py语法写GPU函数
那是瓜豆自己的毛病,DSL本身不需要冷启动
有没有人注意到这个其实把 if A: B 解释为 (if A B) 的 sexp 了😁
我觉得存储、编译时 OOP 区别对待函数名的链,还不如sexp正规呢
jvm没有那么抽象,都是J2EE搞的鬼
java生态背大锅
我之前视图缓存进程变量树了
结果证明, 就是生态的问题,JVM简直飞速
说过了就是办公室政治
这可是伟大的java,怎么能想上就上呢😁
懒得用瓜豆
宁可用PWA+JSON 函数桥
这种程度的元编程还不至于需要JVM代码自己执行
完全可以让jvm只负责“云计算”,js做业务逻辑
js也有办公室政治, 就是那个 npm 依赖图
随便一个 is-string 都要打上v1 v2 的,还没有全局依赖,因为各种API破坏性更改
比较有共感的是它们的 trimIndent() 都不是内置的,都要可能被供应链攻击。
让人感觉js实在是走到头了
DOM拖着多么一个恐怖的、两极分化的开发者社区
一边连 typeof 都不会用,另一边可以随便推广它们的私货给初学者,并且掩盖原生API本来有的能力
瓜豆这个名字起得好,
因为基于它的项目都是写800行西瓜一样大的代码, 结果做到 memo Counter 那样豆粒大的功能点……
不知道为什么,感觉编程脚本小子越来越多了, 连JVM里都有
明明我才是一直在写脚本的,呵呵
但确实是简单的IR,栈机,双地址op居多
https://craftinginterpreters.com/a-virtual-machine.html
https://github.com/yannvanhalewyn/Simple-VM/blob/master/src/vm/Bytecode.java
https://github.com/jtulach/bck2brwsr 这个应用学WASM的
不能, javabc 没有保留基本块,反编译麻烦
如果你愿意把所有 for(i=0..9) 搞成 inc(0,9, i=> 的形式当我没说
我觉得没必要在多数时候用控制流
之前javabc甚至不支持 lambda as func (lang.invoke) ,只能用SAM内部类模拟变量捕获
我至今觉得这是一个比较有坑的设计
void 就是禁止在 f()+1 这种地方乱调用,怎么能搞成一切都有值?
如果某个f()可能是null, 直接在上面调用反而会NPE,所以有 ?. !!
这样是正常的功能点
也没有很危险, Cookie 怎么管理回调怎么用就行了
发出去的Pin一下, 那边注册一个Cleanup
Rc只要用weak就没有泄漏问题,有泄漏也不是你的问题
#code https://pastebin.com/LqSNNbfC
从昨晚只搞出个 py 缩进解析 🤪
不想写了,还有正事要弄
说起来也没用支持双向替换和中文的 gcc -E 啊
真是垃圾
https://t.iss.one/dsuse/18843
社区库也有个版本。 这算法可以用于loads h1标题树、+-*/、 缩进块
还挺有用的,只是递归有点烧脑
不可否认的是,虽然json在描述xml和csv这样的结构时效率低得逆天
它还是巨无霸格式
说明什么? js的框架本身是屎山
我是说csv的固定格式。
它的情况是,可能有几个巨无霸键,里面是 [{}, ..] 的形式
CSV不能胜任,是因为它没有TOML那样的 [key] 赋值
如果真是那样的话,很可能我就直接把 n行m个格子存在一起,然后 def iterator() 了
我就是这么想的,JSON 和 BENC 混在一起,补上有必要的压缩
我的范式叫 Quine_馈硬, 意思是在runtime用reflect拼接代码,缓存为字面。 将首次运行视为编译期
举个 echoVars (u) 的例子,在js里 Object.entries {K,V } 就够了
Vars_=it=> Quine_($=>{
for(k in it) $say(${k}+"=", it.$${k})})
$${} 表示直接eval, ${} 为escape JSON
当然在JS里这没什么稀奇, 我的意思是,这可以移植到任何「编译期」的编程语言, 配上我的反射框架
就像 template<> 一样,比如 it: Pair 时就生成一个 Vars_Pair 来handle
编程语法可能只是骗人的
taichi-lang.org 就是用py语法写GPU函数
那是瓜豆自己的毛病,DSL本身不需要冷启动
有没有人注意到这个其实把 if A: B 解释为 (if A B) 的 sexp 了😁
我觉得存储、编译时 OOP 区别对待函数名的链,还不如sexp正规呢
jvm没有那么抽象,都是J2EE搞的鬼
java生态背大锅
我之前视图缓存进程变量树了
结果证明, 就是生态的问题,JVM简直飞速
说过了就是办公室政治
这可是伟大的java,怎么能想上就上呢😁
懒得用瓜豆
宁可用PWA+JSON 函数桥
这种程度的元编程还不至于需要JVM代码自己执行
完全可以让jvm只负责“云计算”,js做业务逻辑
js也有办公室政治, 就是那个 npm 依赖图
随便一个 is-string 都要打上v1 v2 的,还没有全局依赖,因为各种API破坏性更改
比较有共感的是它们的 trimIndent() 都不是内置的,都要可能被供应链攻击。
让人感觉js实在是走到头了
DOM拖着多么一个恐怖的、两极分化的开发者社区
一边连 typeof 都不会用,另一边可以随便推广它们的私货给初学者,并且掩盖原生API本来有的能力
瓜豆这个名字起得好,
因为基于它的项目都是写800行西瓜一样大的代码, 结果做到 memo Counter 那样豆粒大的功能点……
不知道为什么,感觉编程脚本小子越来越多了, 连JVM里都有
明明我才是一直在写脚本的,呵呵
但确实是简单的IR,栈机,双地址op居多
https://craftinginterpreters.com/a-virtual-machine.html
https://github.com/yannvanhalewyn/Simple-VM/blob/master/src/vm/Bytecode.java
https://github.com/jtulach/bck2brwsr 这个应用学WASM的
不能, javabc 没有保留基本块,反编译麻烦
如果你愿意把所有 for(i=0..9) 搞成 inc(0,9, i=> 的形式当我没说
我觉得没必要在多数时候用控制流
之前javabc甚至不支持 lambda as func (lang.invoke) ,只能用SAM内部类模拟变量捕获
我至今觉得这是一个比较有坑的设计
void 就是禁止在 f()+1 这种地方乱调用,怎么能搞成一切都有值?
listOf(break,return,throw Error()) is List<Nothing> 如果某个f()可能是null, 直接在上面调用反而会NPE,所以有 ?. !!
这样是正常的功能点
也没有很危险, Cookie 怎么管理回调怎么用就行了
发出去的Pin一下, 那边注册一个Cleanup
Rc只要用weak就没有泄漏问题,有泄漏也不是你的问题
Pastebin
py Tabs - Pastebin.com
Pastebin.com is the number one paste tool since 2002. Pastebin is a website where you can store text online for a set period of time.
dnaugsuz:
是跨平台的libc没有封装新进程+cd命令吗
posix也是群神人
不是觉得 (fork()==ROOT)? chkChild 很酷吗😁😁
父子进程好像就是env、内存和fd共享一下
没有js原型链那么强大的能力
如果只是为了共享env, fork() 可以说是小丑设计了
根本没人玩
说的也是…… 没有把 .so 对象复制一份,创建线程局部变量树
概念是好的,只是被一切皆str的接口执行坏了😅
设想一下,侵入式调度器最原始的操作,当然就是克隆一份对象分时一起跑,所以fork()是优雅的, 很好的嵌入了C生态 ,而execve却不好解释
前提是它能包揽app的状态管理,而且没有线程隔离问题。 C语言没这个概念
牛逼,mmap一个PROT_EXEC的,代码注入了
对了,有没有人玩 AOP 的
pyjs 里应该能直接写代码来fork一个 import 类吧
jvm里好像有bytebudy
是跨平台的libc没有封装新进程+cd命令吗
posix也是群神人
不是觉得 (fork()==ROOT)? chkChild 很酷吗😁😁
父子进程好像就是env、内存和fd共享一下
没有js原型链那么强大的能力
如果只是为了共享env, fork() 可以说是小丑设计了
根本没人玩
说的也是…… 没有把 .so 对象复制一份,创建线程局部变量树
概念是好的,只是被一切皆str的接口执行坏了😅
设想一下,侵入式调度器最原始的操作,当然就是克隆一份对象分时一起跑,所以fork()是优雅的, 很好的嵌入了C生态 ,而execve却不好解释
前提是它能包揽app的状态管理,而且没有线程隔离问题。 C语言没这个概念
牛逼,mmap一个PROT_EXEC的,代码注入了
对了,有没有人玩 AOP 的
pyjs 里应该能直接写代码来fork一个 import 类吧
jvm里好像有bytebudy
isekiのChannel:
一个是所谓的 ANSI 一个是 UTF-16 吧
dnaugsuz:
可是它不酷啊😁
你这不就是把 yield 变成了 f.call( callback) 那么不魔法的事情了
逆天win32,手动 template<> 了属于是
好标准的面条…… 不就是dup个调用栈,再把print这些回环邦好
是不是它把stdo调成FIFO模式了,必须有个人read才能continue
不过fork+exec 确实有优点缺点
坏在90% 都没有case,而且线程局部麻烦
好在可以AOP,替换函数、 chdir 什么的
初学者可能会疑惑fork有什么用,能不能直接 get stdout
诶,突然意识到 UNIX 调用栈 signal 是不是就是一种注册回调
只是由OS去调用,和 onunload() 的区别只是支持暂停掉 while(1)
本质上是暂停。 硬件没实现无所谓
我发现把 while(1) 这个恶棍禁止掉, 只缝合回调/async状态机
许多多进程问题就很好理解了, 比如stdio write(buf) 其实就是yield
这个就和yinwang说的道理是一样的
OS管理4片: 时间 内存 进程 闪存、 网 线 板3种口
时间可以用闭包回调栈轮转
内存可以用GC Rc
进程就是个API/ABI问题
闪存、文件系统没有也不严重
就不能系统级的应用 ptmalloc, jemalloc 这些非GNU实现吗
gc也只能在安全区操作堆资源吧
为什么会卡死
我能想到的事情就是,凭空多了一个stack的变量树, 但是Rc这些元数据没有更新
一个是所谓的 ANSI 一个是 UTF-16 吧
dnaugsuz:
可是它不酷啊😁
你这不就是把 yield 变成了 f.call( callback) 那么不魔法的事情了
逆天win32,手动 template<> 了属于是
好标准的面条…… 不就是dup个调用栈,再把print这些回环邦好
是不是它把stdo调成FIFO模式了,必须有个人read才能continue
不过fork+exec 确实有优点缺点
坏在90% 都没有case,而且线程局部麻烦
好在可以AOP,替换函数、 chdir 什么的
初学者可能会疑惑fork有什么用,能不能直接 get stdout
诶,突然意识到 UNIX 调用栈 signal 是不是就是一种注册回调
只是由OS去调用,和 onunload() 的区别只是支持暂停掉 while(1)
本质上是暂停。 硬件没实现无所谓
我发现把 while(1) 这个恶棍禁止掉, 只缝合回调/async状态机
许多多进程问题就很好理解了, 比如stdio write(buf) 其实就是yield
这个就和yinwang说的道理是一样的
OS管理4片: 时间 内存 进程 闪存、 网 线 板3种口
时间可以用闭包回调栈轮转
内存可以用GC Rc
进程就是个API/ABI问题
闪存、文件系统没有也不严重
就不能系统级的应用 ptmalloc, jemalloc 这些非GNU实现吗
gc也只能在安全区操作堆资源吧
为什么会卡死
我能想到的事情就是,凭空多了一个stack的变量树, 但是Rc这些元数据没有更新
dnaugsuz:
这个命名好傻逼啊,是人能手写的?
直接叫 [Bytes Val]?
c里任何结构都是指针
明显不看词频
还真是起承转合,大战三百回合才搞出来
可惜这些都是H5自带的
kt呢,牺牲首屏延迟
JNA 的技术力都没有
在py里如果FFI要这么麻烦,就没有今天的py了
调用个 /path/ argv 的事,都要凑字数
好好思考一下就会发现这有多荒谬
不懂一些生态是怎么活下来的
A对B 的完成了,可以调用B的生态
B对A完成了,可以回调所传入的参数
Stream:
我认为这两种方式其实是等价的
没有谁比谁更高一说
dnaugsuz:
并不是。两边都需要
比如,js调用java 需要桥接、序列化
java使用js值也需要强转
js调用http需要用 url/body/HEADER 的格式规范
http调用js也需要,同样是统一用json。
和jsjava唯一区别在要不要 make compiler happy ,对接的都是json模型
iseki 肯定知道,就为了在KN SDK 上调用个 getstdout
他花了几个晚上?
这七八个小时实现的,无非是 cat $(echo 1) 那样的功能点
这个命名好傻逼啊,是人能手写的?
直接叫 [Bytes Val]?
c里任何结构都是指针
明显不看词频
还真是起承转合,大战三百回合才搞出来
可惜这些都是H5自带的
kt呢,牺牲首屏延迟
JNA 的技术力都没有
在py里如果FFI要这么麻烦,就没有今天的py了
调用个 /path/ argv 的事,都要凑字数
好好思考一下就会发现这有多荒谬
不懂一些生态是怎么活下来的
A对B 的完成了,可以调用B的生态
B对A完成了,可以回调所传入的参数
Stream:
我认为这两种方式其实是等价的
没有谁比谁更高一说
dnaugsuz:
并不是。两边都需要
比如,js调用java 需要桥接、序列化
java使用js值也需要强转
js调用http需要用 url/body/HEADER 的格式规范
http调用js也需要,同样是统一用json。
和jsjava唯一区别在要不要 make compiler happy ,对接的都是json模型
iseki 肯定知道,就为了在KN SDK 上调用个 getstdout
他花了几个晚上?
这七八个小时实现的,无非是 cat $(echo 1) 那样的功能点
Forwarded from 今天你想跑路了吗?? (周克庆 当前版本: 崇中媚华修复版)
[严肃医学向]关于鸡巴的使用原理
1.精子完整生成的周期是64-72天,可以透过饮食作息改变精子品质跟生成数量,但不能靠外力改变生产周期。
精子没有射完一说,因为每次射精都是2-5ml,由于生理机制,『库存』不会一次清空。
饮食作息影响睪固酮(如烟酒则危害),睪固酮影响精子产生效率,同时影响性欲与活力。比如健身完,睪固酮短期间上升,会马上想找女朋友。
2..敏感度原理,性刺激反应源于大脑的多巴胺系统,射精时分泌。反覆奖励会使大脑麻痹迟钝→刺激降低。射精时会同时分泌『催乳素』,会使人冷静冷却,降低性欲,即进入圣人模式的原因。
为什么五天没射精,看到路上的短裙美女牛牛就要炸,而天天射精的反应不会那么剧烈?
因为精子自然生成积累之后,附睪膨胀,产生压力(就像膀胱积累尿),神经系统会传达到大脑,大脑『改变认识』也改变了对外界刺激的『敏感度』。 (此乃现象学所言,知觉不是物自身(美女),而是主体建构,主体官能改变,影响客体认知)
生理→神经→大脑→外界。
由于构造主导方式不同,精子不存在压力太大就会『膛炸』(像憋尿),多余的精子会化成胺基酸被分解与吸收。 (也会触发梦遗)
3.为什么么频繁射精会导致不适感?
次要原因:多巴胺与催产素释放过度后,大脑会调整神经反应,变得迟钝,所以射到最后『不太爽』
主要原因:鸡巴会随着摩擦次数,增加角质,变得更粗糙。而由于频繁射精,身体的润滑分泌物,生产供给不上需求,所以你撸起来会很『干』,反之三天没撸,就会很『丝滑』。
比如你两天撸六次后,你会获得一只磨砂纸般的干鸡巴。 (会随着不使用时间自动修复)
润滑油可以替代分泌物功能,但目前没有修复鸡巴表面的产品。
4.射精与发炎
射精是一整套肌肉与腺体的协调收缩组成。
每次射精时:前列腺、精囊、输精管、尿道球腺等会同步挤压 → 把精液推送进尿道,同时会阴肌群(特别是球海绵体肌、提肛肌)收缩 → 造成射出压力
如果频繁射精,会导致肌肉疲劳﹑神经负荷,最后鸡巴整组系统发炎。 具体就是灼热感。
5.射精与健康
射精与睡眠能否无关,该失眠还是失眠。
射精会导致身体虚吗?不会,最直接的危害是,鸡巴系统发炎红肿。所以还是要适量。
非性爱,射精最大的危害是,多巴胺成瘾。不是想撸而撸(生理自然压力释放),而是为了撸而撸,
单纯为了『爽一把』,这就是为什么频繁玩鸡巴会把人『玩废』与空虚感。
因为人体多巴胺机制是跷跷板,你太爽之后就会用痛苦平衡你,最简单的例子就是吸毒过程与醒来的巨大痛苦空虚感。
换句话说你鸡巴玩得越过头,副作用的痛苦虚无感就越强。你做别的事情就变得启动困难。
6.结语。同样是射精,但做爱在生理深度、激素反应、心理满足与性功能维持方面,都明显优于自慰。
更多嚴肅醫學請關注:[魔鄧肯武士 (@MordenkainenV) / X]
1.精子完整生成的周期是64-72天,可以透过饮食作息改变精子品质跟生成数量,但不能靠外力改变生产周期。
精子没有射完一说,因为每次射精都是2-5ml,由于生理机制,『库存』不会一次清空。
饮食作息影响睪固酮(如烟酒则危害),睪固酮影响精子产生效率,同时影响性欲与活力。比如健身完,睪固酮短期间上升,会马上想找女朋友。
2..敏感度原理,性刺激反应源于大脑的多巴胺系统,射精时分泌。反覆奖励会使大脑麻痹迟钝→刺激降低。射精时会同时分泌『催乳素』,会使人冷静冷却,降低性欲,即进入圣人模式的原因。
为什么五天没射精,看到路上的短裙美女牛牛就要炸,而天天射精的反应不会那么剧烈?
因为精子自然生成积累之后,附睪膨胀,产生压力(就像膀胱积累尿),神经系统会传达到大脑,大脑『改变认识』也改变了对外界刺激的『敏感度』。 (此乃现象学所言,知觉不是物自身(美女),而是主体建构,主体官能改变,影响客体认知)
生理→神经→大脑→外界。
由于构造主导方式不同,精子不存在压力太大就会『膛炸』(像憋尿),多余的精子会化成胺基酸被分解与吸收。 (也会触发梦遗)
3.为什么么频繁射精会导致不适感?
次要原因:多巴胺与催产素释放过度后,大脑会调整神经反应,变得迟钝,所以射到最后『不太爽』
主要原因:鸡巴会随着摩擦次数,增加角质,变得更粗糙。而由于频繁射精,身体的润滑分泌物,生产供给不上需求,所以你撸起来会很『干』,反之三天没撸,就会很『丝滑』。
比如你两天撸六次后,你会获得一只磨砂纸般的干鸡巴。 (会随着不使用时间自动修复)
润滑油可以替代分泌物功能,但目前没有修复鸡巴表面的产品。
4.射精与发炎
射精是一整套肌肉与腺体的协调收缩组成。
每次射精时:前列腺、精囊、输精管、尿道球腺等会同步挤压 → 把精液推送进尿道,同时会阴肌群(特别是球海绵体肌、提肛肌)收缩 → 造成射出压力
如果频繁射精,会导致肌肉疲劳﹑神经负荷,最后鸡巴整组系统发炎。 具体就是灼热感。
5.射精与健康
射精与睡眠能否无关,该失眠还是失眠。
射精会导致身体虚吗?不会,最直接的危害是,鸡巴系统发炎红肿。所以还是要适量。
非性爱,射精最大的危害是,多巴胺成瘾。不是想撸而撸(生理自然压力释放),而是为了撸而撸,
单纯为了『爽一把』,这就是为什么频繁玩鸡巴会把人『玩废』与空虚感。
因为人体多巴胺机制是跷跷板,你太爽之后就会用痛苦平衡你,最简单的例子就是吸毒过程与醒来的巨大痛苦空虚感。
换句话说你鸡巴玩得越过头,副作用的痛苦虚无感就越强。你做别的事情就变得启动困难。
6.结语。同样是射精,但做爱在生理深度、激素反应、心理满足与性功能维持方面,都明显优于自慰。
更多嚴肅醫學請關注:[魔鄧肯武士 (@MordenkainenV) / X]
Black: tput setaf 0
Red: tput setaf 1
Green: tput setaf 2
Yellow: tput setaf 3
Blue: tput setaf 4
Magenta: tput setaf 5
Cyan: tput setaf 6
White: tput setaf 7
FBG() {
local sb="" s="$*" cv fg
for (( i=0; i<${#s}; i++ )); do
cv="${s:$i:1}"
[[ -z ${map[$cv]} ]] && sb+=$cv || sb+="\$(FG ${map[$cv]})"
done
w "w $sb \$I"
}
FBG() { u=$(node -p '((ks,v)=>"w "+process.argv[1].replace(/\b(.)(-?) /g, (_,cv,b,i)=>(i=ks.indexOf(cv))==-1? cv : `$(${b?"B":"F"}${process.env.g?"g":"G"} ${v[i]})` ) +" $I")("BYGRPZWI", [..."🟦🟨🟩🟥🟪⬛️⬜️🏙"])' "$*"); eval $u; w $u; }
isekiのChannel:
你是讨厌这个 CPointer<IntVar> 这个语法还是什么
类型擦除不能随便改,大家已经习惯了 pointerOf(List<Int>) == pointerOf(List<Number>) 你把类型擦除改了,这指针还能一样吗
八重 狐狐子:
今日编程界传来噩耗:native 语言泛型是类型擦除
dnaugsuz:
只有Lambda和 T? 吗
extfun, 函数式, DSL 依然硬伤
但是一看kt的编译时间就嫌弃
Sherlock Holo:
比 cargo b -r 还慢?
dnaugsuz:
你还知道加 -r
这个模板不抽象吗
为什么不能和 #define 或者外部codegen一样简单
然并暖, 所有的App依然会用py,包括在AI里
C++ 最终会被manba out
不就是一个和haskell一样的模式匹配吗,用那些冷门方法表示数据
还不如直接codegen, 无脑跟拼SQL似的
compiler不happy随便它,懂软件开发的是我,我可懒得make 「它」们happy
为了一个0开销抽象搞得那么抽象的template<>
直接UNIX化,所有都拼接字符串也不至于
你都用C++了还简单
C++作者本Stroustrup 知道C++长什么彼阳吗
用C++等于是完全放弃了优雅性,为了调用几个libc接口去堆砌需要编译的脚本
你是讨厌这个 CPointer<IntVar> 这个语法还是什么
类型擦除不能随便改,大家已经习惯了 pointerOf(List<Int>) == pointerOf(List<Number>) 你把类型擦除改了,这指针还能一样吗
八重 狐狐子:
今日编程界传来噩耗:native 语言泛型是类型擦除
dnaugsuz:
只有Lambda和 T? 吗
extfun, 函数式, DSL 依然硬伤
但是一看kt的编译时间就嫌弃
Sherlock Holo:
比 cargo b -r 还慢?
dnaugsuz:
你还知道加 -r
这个模板不抽象吗
为什么不能和 #define 或者外部codegen一样简单
然并暖, 所有的App依然会用py,包括在AI里
C++ 最终会被manba out
不就是一个和haskell一样的模式匹配吗,用那些冷门方法表示数据
还不如直接codegen, 无脑跟拼SQL似的
compiler不happy随便它,懂软件开发的是我,我可懒得make 「它」们happy
为了一个0开销抽象搞得那么抽象的template<>
直接UNIX化,所有都拼接字符串也不至于
你都用C++了还简单
C++作者本Stroustrup 知道C++长什么彼阳吗
用C++等于是完全放弃了优雅性,为了调用几个libc接口去堆砌需要编译的脚本
dnaugsuz:
差不多嘛, 都是data+func双指针
C++的是继承 rs是trait组合
八重 狐狐子:
go那个组合 我觉得是好文明
dnaugsuz:
rs的真好,rs的enum也很好,总之就是比OOP好
rs的码可揉起码不抽象, pat match+recursive 就纯粹贴出来,还支持AST (虽然有点 overdesign)
因为把一堆比json字面还原始的 token 捏成DSL是很考验功力的
开放让大家随便撮语法糖可能不是好事
反正就是干爆C++,爽就完了
这都是 brrowr checker的锅
以后有算法优化的
如果没有comptime Rc ,rust有什么核心竞争力呢
这样不清真,还是双指针好
只有一个data,你要调几个fn就加几个&dyn,没有原型链和虚表
Rust最好的特性是可以生成impl Debug ,用这种方法取代了到处都是 this=data+type 的OOP
其实OOP instanceof范式也就那样了
isekiのChannel:
*_cast 的时候指针 this 就得改值了吧
八重 狐狐子:
除非两个一样名的函数
你要指定一下调用哪个类的
dnaugsuz:
名字一样签名不一样
或者子类不一样
市面上就只有这个lang主推内存变量树静态管理的
八重 狐狐子:
如果 java 没有那堆社区库,他还有什么优势呢
dnaugsuz:
那还真是,java就是个json后处理器罢了
JVM T[]没有这种问题啊,即便inline取代擦除,T1: T 也兼容 T1[]: T[] 的,哪怕赋值会炸
C++是一个有comptime的语言, 你是调用了一个编译期函数,所以 this.(type) 是透明的
即调即改就行
parent 的本质是一堆virtual函数啊, child 有另外一堆,这是不冲突的
直接用rust想,假设它们是两个独立接口,只是实现 T1 检查器要求实现T (T1: T) 不就行了
哦, 你是说多线程问题,还是递归问题
如果只是单次调用函数,它的参数怎么变也都可以return时改回来
Java默认了 T1[]:T[] ,只是在写入时会炸,OK
Go这些人对泛型的理解是正确的, 除了 dict,list,func ,基本上很难用到, JVM擦除这么多年也不影响生态
从OOP的角度讲,天才也是一种猪鼻,所以 天才[]是可以当牛马使唤的,条件是那个位置不能用add(),in位置不向下兼容,长衫不能脱
OOP这个东西就是为了让一切 toStr设计的
差不多嘛, 都是data+func双指针
C++的是继承 rs是trait组合
八重 狐狐子:
go那个组合 我觉得是好文明
dnaugsuz:
rs的真好,rs的enum也很好,总之就是比OOP好
rs的码可揉起码不抽象, pat match+recursive 就纯粹贴出来,还支持AST (虽然有点 overdesign)
因为把一堆比json字面还原始的 token 捏成DSL是很考验功力的
开放让大家随便撮语法糖可能不是好事
反正就是干爆C++,爽就完了
这都是 brrowr checker的锅
以后有算法优化的
如果没有comptime Rc ,rust有什么核心竞争力呢
这样不清真,还是双指针好
只有一个data,你要调几个fn就加几个&dyn,没有原型链和虚表
Rust最好的特性是可以生成impl Debug ,用这种方法取代了到处都是 this=data+type 的OOP
其实OOP instanceof范式也就那样了
isekiのChannel:
*_cast 的时候指针 this 就得改值了吧
八重 狐狐子:
除非两个一样名的函数
你要指定一下调用哪个类的
dnaugsuz:
名字一样签名不一样
或者子类不一样
市面上就只有这个lang主推内存变量树静态管理的
八重 狐狐子:
如果 java 没有那堆社区库,他还有什么优势呢
dnaugsuz:
那还真是,java就是个json后处理器罢了
JVM T[]没有这种问题啊,即便inline取代擦除,T1: T 也兼容 T1[]: T[] 的,哪怕赋值会炸
C++是一个有comptime的语言, 你是调用了一个编译期函数,所以 this.(type) 是透明的
即调即改就行
parent 的本质是一堆virtual函数啊, child 有另外一堆,这是不冲突的
直接用rust想,假设它们是两个独立接口,只是实现 T1 检查器要求实现T (T1: T) 不就行了
哦, 你是说多线程问题,还是递归问题
如果只是单次调用函数,它的参数怎么变也都可以return时改回来
Java默认了 T1[]:T[] ,只是在写入时会炸,OK
Go这些人对泛型的理解是正确的, 除了 dict,list,func ,基本上很难用到, JVM擦除这么多年也不影响生态
从OOP的角度讲,天才也是一种猪鼻,所以 天才[]是可以当牛马使唤的,条件是那个位置不能用add(),in位置不向下兼容,长衫不能脱
OOP这个东西就是为了让一切 toStr设计的
dnaugsuz:
那以后要升级有什么门槛吗,ABI问题?
看起来KN的市场不是裸机和性能这一块
本身JVM做 int=>Int 的 pointer tagging 就够愚蠢的了,当然JS也有
isekiのChannel:
为什么不去用 Rust Go C++ 呢,我也说服不了自己(
dnaugsuz:
反正我不喜欢一切二进制体积大的SDK
包管理做得一塌糊涂,什么hellowrold 2MB
办公室政治玩的好,和Linux社区合作一下不会,自己学 msvcrt shim 也懒得做
要不要依赖管理不是体积问题,是复用率和软件质量的问题
只有app级别的东西能把整个框架静态打包进去
扒拿码,偷窃别人c代码的意思😁
MemorySegment不就是rs slice
你也说了只是<T>类「包装」
实现上并不是双指针
那以后要升级有什么门槛吗,ABI问题?
看起来KN的市场不是裸机和性能这一块
本身JVM做 int=>Int 的 pointer tagging 就够愚蠢的了,当然JS也有
isekiのChannel:
为什么不去用 Rust Go C++ 呢,我也说服不了自己(
dnaugsuz:
反正我不喜欢一切二进制体积大的SDK
包管理做得一塌糊涂,什么hellowrold 2MB
办公室政治玩的好,和Linux社区合作一下不会,自己学 msvcrt shim 也懒得做
要不要依赖管理不是体积问题,是复用率和软件质量的问题
只有app级别的东西能把整个框架静态打包进去
扒拿码,偷窃别人c代码的意思😁
MemorySegment不就是rs slice
你也说了只是<T>类「包装」
实现上并不是双指针
duangsues.is_a? SaltedFish
isekiのChannel: 你是讨厌这个 CPointer<IntVar> 这个语法还是什么 类型擦除不能随便改,大家已经习惯了 pointerOf(List<Int>) == pointerOf(List<Number>) 你把类型擦除改了,这指针还能一样吗 八重 狐狐子: 今日编程界传来噩耗:native 语言泛型是类型擦除 dnaugsuz: 只有Lambda和 T? 吗 extfun, 函数式, DSL 依然硬伤 但是一看kt的编译时间就嫌弃 Sherlock Holo: 比 cargo…
八重 狐狐子:
jvm的包装可不一样 他自己带一些runtime的 结构展开都不一样
class MyInt { public int i; }
和
int i;
是两码事 你不能直接用MyInt cast 成 int
dnaugsuz:
谁都发钱=谁都没发
接口也一样,什么都能干=什么用没有=死代码消除
如果你的 int i 不是mut,也没有trait,那这不就是 int 一元组么
你说的Any其实就是怎么去 toStr 一个void_p的问题
那这个也不可能啊,必须有tagging开销
boxed types确实有GC问题,而且也有接口类型tag
我刚刚说的是Rust,零开销抽象
比如如果是局部,可以unbox
在我看来封装C API 好像不是特别困难的事,就是sizeof==1 2 4 8 这样,然后\0流式字符串
不知道KN为什么做的这么艰难,
jvm的 T.value 或许比这个封装好
这个CValues 明显是把classes视为受GC剪枝+FFI引用的变量树的
并不是单纯的一个参数值,或者接口
isekiのChannel:
JVM 乃至 KT 这边似乎都在有意弱化值类型和引用类型的区别
dnaugsuz:
本来就只应该有值类型
只要不mut,就没有引用了
我说的只差一点,只要整个变量树不mut,不“一键”equals,就不存在值和引用
而且引用的语意本来是和Vue ref() 一样的单更改多赋值,不是什么单内存地址的概念
>这个不关键,可以参考王垠说的,把 Java 中的值类型看作 inline 免链接
>主要是能不能反引用,赋值
和语意相关的只有值和容器,只是做状态转移也不需要引用/相等性。&ref本来是和Vue ref() 一样的单更改多赋值的,才有价值
就是教授一些和App毫无瓜葛的无聊细节
最绷不住的是 CRUD boys 拿这俩词文字游戏就算了(他们都懒得区分两个“局部函数”是否应该相等)
FP bros 也在拿值类型开玩笑,比如把伪递归、修改参数、解构拷贝 的过度工程视为 purly functional 的一样🙉
LISP都被开除了,可以“命名遮盖”不够清真,嘤嘤嘤
jvm的包装可不一样 他自己带一些runtime的 结构展开都不一样
class MyInt { public int i; }
和
int i;
是两码事 你不能直接用MyInt cast 成 int
dnaugsuz:
谁都发钱=谁都没发
接口也一样,什么都能干=什么用没有=死代码消除
如果你的 int i 不是mut,也没有trait,那这不就是 int 一元组么
你说的Any其实就是怎么去 toStr 一个void_p的问题
那这个也不可能啊,必须有tagging开销
boxed types确实有GC问题,而且也有接口类型tag
我刚刚说的是Rust,零开销抽象
比如如果是局部,可以unbox
在我看来封装C API 好像不是特别困难的事,就是sizeof==1 2 4 8 这样,然后\0流式字符串
不知道KN为什么做的这么艰难,
jvm的 T.value 或许比这个封装好
这个CValues 明显是把classes视为受GC剪枝+FFI引用的变量树的
并不是单纯的一个参数值,或者接口
isekiのChannel:
JVM 乃至 KT 这边似乎都在有意弱化值类型和引用类型的区别
dnaugsuz:
本来就只应该有值类型
只要不mut,就没有引用了
我说的只差一点,只要整个变量树不mut,不“一键”equals,就不存在值和引用
而且引用的语意本来是和Vue ref() 一样的单更改多赋值,不是什么单内存地址的概念
>这个不关键,可以参考王垠说的,把 Java 中的值类型看作 inline 免链接
>主要是能不能反引用,赋值
和语意相关的只有值和容器,只是做状态转移也不需要引用/相等性。&ref本来是和Vue ref() 一样的单更改多赋值的,才有价值
就是教授一些和App毫无瓜葛的无聊细节
最绷不住的是 CRUD boys 拿这俩词文字游戏就算了(他们都懒得区分两个“局部函数”是否应该相等)
FP bros 也在拿值类型开玩笑,比如把伪递归、修改参数、解构拷贝 的过度工程视为 purly functional 的一样🙉
LISP都被开除了,可以“命名遮盖”不够清真,嘤嘤嘤
看到一条:以我浅显的水平纠错一波,如果不对还请大家指出:
1、C++的值类型可以存在栈区,也可以存在堆区、.data .bss等区
2、同上,引用类型是一种特殊的值类型
3、拷贝构造函数、移动构造函数,这都是“引用类型值传递机制”,不一定浅拷贝
4、勉强算他对吧,C++11以前只能复制指针
5、左值&代表某个内存区块的一个“别名”,编译器编译时可具体实现为指向这个内存块的指针,也可能使用栈顶指针偏移量等直接代替掉了。
6、&&引用最大的用处是区分移动、拷贝重载。当&&入参的函数接受到将亡值时(一般由std::move得来),等价于接收到了左值&;当入参接受到纯右值时,延长其生命周期至函数结束。