duangsuse::Echo
722 subscribers
4.29K photos
131 videos
583 files
6.52K links
import this:
美而不丑、明而不暗、短而不凡、长而不乱,扁平不宽,读而后码,行之天下,勿托地上天国。
异常勿吞,难过勿过,叹一真理。效率是很重要,盲目最是低效。
简明是可靠的先验,不是可靠的祭品。
知其变,守其恒,为天下式;穷其变,知不穷,得地上势。知变守恒却穷变知新,我认真理,我不认真。

技术相干订阅~
另外有 throws 闲杂频道 @dsuset
转载频道 @dsusep
极小可能会有批评zf的消息 如有不适可退出
suse小站(面向运气编程): https://WOJS.org/#/
Download Telegram
#saltedfish 今天主要看PHP
最近希望能多看会书 ~~如果我的tg被删的话~~ 🙈
duangsuse::Echo via @vote
大家目前是更喜欢用基于LLVM的编译器Clang呢, 还是更喜欢GNU编译器GCC呢 🌝 GCC – 17 👍👍👍👍👍👍👍 74% Clang – 5 👍👍 22% 人家用的可是高贵的TCC, 为什么没有呢? – 1 ▫️ 4% 👥 23 people voted so far.
#PL #Learn #C_lang
duangsuse认为:
如果是很小的程序, 可以用TCC. TCC生成的二进制里只有很少的非必要代码. 适合强迫症(
如果项目正常, 就用GCC. GCC的优化很重要, 当然, 你的patch选择权也是很重要的.
对于非移动(小存储容量)平台, 或者需要更高速度的, 可以使用clang.
duangsuse的感觉就是不要盲目崇拜基于LLVM的编译器... GCC,GNU binutils 也是很吼滴. 🐸
TCC还有一个编译Linux到内存然后直接跑起来的buff( 还没有编译过Linux内核的咸鱼们可以来体验一下廉价的内核编译 ~~虽然是全自动的~~.
只需一TCCBOOT, 一64MiB内存 x86机, 大约1s的二十倍时间即可体验.
TCC is distributed under the GNU Lesser General Public License.

tar -xf qemu_tccboot.tar.gz&&qemu-system-i386 -kernel tccboot -initrd initrd.img \--enable-kvm

https://bellard.org/tcc/tccboot.html
自己编译一遍然后再折腾什么才是蕞吼滴( 毕竟一个人的水平不能从"编译过Linux没" 看出 🙈
总算把那个开源共产主义怼跑了
#GFW #complain #China 位置:http://ftp.yzu.edu.tw/nongnu/tinycc/tcc-0.9.26.tar.bz2 [跟随至新的 URL]
—2017-10-18 09:11:06— http://ftp.yzu.edu.tw/nongnu/tinycc/tcc-0.9.26.tar.bz2
正在解析主机 ftp.yzu.edu.tw... 140.138.144.170
正在连接 ftp.yzu.edu.tw|140.138.144.170|:80... 失败:连接超时。
重试中。 666666 👍
Bad merge 🙈 #Gitting #Dev
#Learn Boom
#include<stdio.h>

extern void free();

int main() {
printf("Hello, world!\n");
char* a = "free me(but you can't) XD";
free(a);
return 0;
}

* Error in `./a.out': munmap_chunk(): invalid pointer: 0x00000000006004eb *
[1] 4399 abort (core dumped) ./a.out

duangsuse虽然还是个小白, 但是在想: 为什么Rust可以把常量区的静态字串free而C不行呢? 于是duangsuse遂认为是libc特意不让这麽做的, 于是就去edb调试了下( 越来越看不懂了... 最后只是知道我之前free的的确是那个char* a 🙈
加了个调试符号(
#funny (那么duangsuse连Rust入门书还没看完来学C干啥呢? 🙈
老像duangsuse这样连x64汇编都不会还想调试程序的话是不行的! 因为dse对[内存]和[寄存器], [指针]的概念就不理解(
#China #GFW 2.37MiB/s 我居然在感谢GFW 🌚
#Learn #lang #Lowlvl_backend
➜ tccboot git clone https://github.com/cisco/ChezScheme.git
正克隆到 'ChezScheme'...
remote: Counting objects: 4476, done.
remote: Total 4476 (delta 0), reused 0 (delta 0), pack-reused 4476
接收对象中: 100% (4476/4476), 906.56 MiB | 3.00 MiB/s, 完成.
处理 delta 中: 100% (2312/2312), 完成.
正在检出文件: 100% (558/558), 完成.
🌚 刚才突然一个脑洞, 看看 Chez-Scheme 这个被王垠吹得比任何其它编译器都好()的编译器, 能不能拿 现有内核的或再拿chez-scheme实现一个linux (大坑填不起, 写一个 即时编译生成到内存直接跑的BL 一看 TCC不足一M, CS有4M 我想 可能就没必要试了(虽然要试也没有时间啊, 🙈
看这源码体积就比GCC差三倍了
#Learn #Lowlvl_backend
围观Linux第一个发布. 我想这个内核肯定是干净的. 没有任何blob. 适合任何人拿作来学习之用. 当然前提是得有时间 🌚
https://mirrors.ustc.edu.cn/kernel.org/linux/kernel/v1.0/linux-1.0.tar.gz
—---------------------------------------------------------------------------—
Language Files Lines Code Comments Blanks
—---------------------------------------------------------------------------—
Assembly 19 5416 4585 0 831
Autoconf 1 139 122 17 0
C 282 141361 107211 17091 17059
C Header 205 23804 14978 5387 3439
Makefile 28 1664 1019 316 329
Shell 2 50 26 17 7
—---------------------------------------------------------------------------—
Total 537 172434 127941 22828 21665
—---------------------------------------------------------------------------—
#Learn #Lowlvl_backend Rust写的内核rustboot因为CI构建脚本拿Ruby写就成了Ruby写的内核, 而它64位的版本因为使用了Pure64装载kernel又被打上了拿汇编写的主要语言标签 完全服气 🌚
duangsuse::Echo
Photo
#Lowlvl_backend #Learn 恐怕到目前为止系统编程语言只有Rust是能保证可以不需要你深入了解, 现在的GNU/Linux无需更多配置即可编译的唯一语言了. 因为autoconf居然还分版本, 许多C的构建系统质量欠佳, 而且有的还不告诉你如何正确编译... 有的还把错误的代码放到发布里逼你为他们修复愚蠢的语法错误... 有的项目构建环境考虑的情况太少, 或者他们根本考虑不到别人的工作环境是什么样的, 所以duangsuse的所有项目都会给构建指南. 因为被这些只能看代码而无法编译的项目气到了 🌚
#complain #Learn #233 #Lowlvl_backend 于是我就写了几乎一个多小时这个( 然而水平还达不到, TCCBOOT我现在都不能正常编译完.. 🙈
#China #PL #IF #Dev 论台湾人看到"中文编程"会怎么样 — 看不懂 🌚