duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
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 } 就够了

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就没有泄漏问题,有泄漏也不是你的问题
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
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这些元数据没有更新
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) 那样的功能点
Forwarded from 今天你想跑路了吗?? (周克庆 当前版本: 崇中媚华修复版)
[严肃医学向]关于鸡巴的使用原理

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接口去堆砌需要编译的脚本
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设计的
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>类「包装」
实现上并不是双指针
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都被开除了,可以“命名遮盖”不够清真,嘤嘤嘤

看到一条:以我浅显的水平纠错一波,如果不对还请大家指出:

1、C++的值类型可以存在栈区,也可以存在堆区、.data .bss等区

2、同上,引用类型是一种特殊的值类型

3、拷贝构造函数、移动构造函数,这都是“引用类型值传递机制”,不一定浅拷贝

4、勉强算他对吧,C++11以前只能复制指针

5、左值&代表某个内存区块的一个“别名”,编译器编译时可具体实现为指向这个内存块的指针,也可能使用栈顶指针偏移量等直接代替掉了。

6、&&引用最大的用处是区分移动、拷贝重载。当&&入参的函数接受到将亡值时(一般由std::move得来),等价于接收到了左值&;当入参接受到纯右值时,延长其生命周期至函数结束。