tu-lang 一款 0 依赖,支持动态、静态的编程语言,已实现自举

2023-05-16 17:32:13 +08:00
 poulsen

仓库地址: https://github.com/tu-lang/tu

现在 tulang 终于迈出了第一步,已实现自举,已自举实现了 compiler,std,runtime ,覆盖了上百个测试用例

tu  [options] file.tu        
    build *.tu              编译 tulang 代码成汇编后进行链接生成二进制可执行文件
    -s  *.tu|dir            编译为 tulang 代码为 linux-amd64 汇编文件
    -c  *.s |dir            编译汇编为 elf&pecoff 跨平台可重定向 cpu 指令集文件
    -o  *.o |dir            链接 elf&pecofff 可重定向文件生成最终执行程序
    -d                      开启 trace 日志打印编译详细过程
    -gcc                    支持通过 gcc 链接生成最终可执行程序
    -g                      编译 tu 文件时带上 debug 段信息,支持栈回溯
    -std                    编译 runtime&std 相关内置库代码

到现在为止真正的实现了 0 依赖,坚持写了 4-5 年了,终于可以到试用测试阶段了,之前一直没有宣传过,今天也是第一次在这个论坛发帖,也算是激励一下自己吧

多年来就一直想不清楚一个问题:国内大牛这么多,为什么都在卷高级的优化,到现在为止都没有一个能用的上的真正意义的普通国产编程语言。

毕业多年来就一直想自己做一款对程序员友好的语言,感觉现在的语言为了高性能、安全,往越来越极端的方向走,现在工作中就是用的 rust ,简直折磨人,和当初用 php 时比起来,我认为动态语言才是更符合未来的方向,

但动态语言性能差,而且都是解释型,扩展差,通常通过写 c 语言动态库来实现增加一些底层的特性,最明显的就是 php 生态有个 swoole 扩展,就是写了一套 epoll 网络异步框架动态库,给 php 用,实际用起来效果也够用了,性能也比较好,但这种方式就是有点折磨人

所以我写 tulang 的目标本来就没有很大,只想走动态语言的方向,同时支持静态写法(自己写底层,自己写 syscall), 平时主要的就写写动态语法,没有心智负担,遇到性能问题的时候 就用静态语法写,也非常方便

还有一个目标就是,像 php ,python 这种都依赖 c ,gcc ,没有实现自举,环境依赖非常严重,所以 tulang 也要有自举,自己汇编自己链接,100%原汁原味

最后欢迎大家试用,可以一起优化和做生态,我也会继续做下去,希望有一天能正式发生产版,成为国内的通用编程语言,也谢谢大家的 star

4755 次点击
所在节点    程序员
54 条回复
8520ccc
2023-05-19 09:51:41 +08:00
star 支持一下!
clino
2023-05-19 11:54:58 +08:00
”compiler 纯动态语法,asmer 纯静态语法,linker 动静混合语法“
需要文档来理解一下。
先赞一个!
clino
2023-05-19 11:56:54 +08:00
RbtreeNode* left 这是支持指针吗?
会不会像 c/c++那样不稳定或引入安全问题?
alexsunxl
2023-05-19 12:04:51 +08:00
@xujinhui1 动态有动态的优势,静态有静态的优势,不能一概而论,偏底层还是需要 c ,c++,rust 这些压榨机器性能的。
TanLian
2023-05-19 12:10:03 +08:00
这门语言的卖点是啥呢?是性能还是安全性还是别的什么
admpubcom
2023-05-19 12:48:18 +08:00
大佬厉害👍。这个中文名是叫土语吗🐶
ohwind
2023-05-19 13:59:45 +08:00
license 是什么,没有明确许可用起来不放心啊。另外,动态静态用途不一需求不一,不知道你的是怎么实现的动态转动态,是编译成静态时塞一个 runtime ?如果确实是同时兼顾动态静态类型,能编译成机器码,还能和动态语言一样 gc ,那确实挺行的。
clino
2023-05-19 14:39:14 +08:00
建议能 make install 到用户目录,现在好像只能 sudo install 到系统里?
Nazz
2023-05-19 15:33:02 +08:00
可以在开发的时候解释执行, 部署的时候静态链接编译吗?
lijiangang886
2023-05-19 17:02:29 +08:00
有一说一这年头编程语言真不值钱,值钱的是能解决某领域内痛点并且在发展到一定体量之前不会被其他语言迅速吸收其痛点特性然后抄死的语言,只要符合这个条件,什么垃圾都能火,比如 PHP ,不符合的,哪怕语法特性再优雅都白扯
ChrisCyler
2023-05-19 17:10:43 +08:00
不管怎么样,star 支持一下
xgdgsc
2023-05-20 10:15:47 +08:00
同感,动态语言可选静态是最好的,所以非常喜欢 julia, 现在就是 julia 编译 https://github.com/JuliaLang/PackageCompiler.jl 出来非常大, 楼主有相关知识的话,给 julia 的静态编译 https://github.com/tshort/StaticCompiler.jl 做点贡献应该也是不错的选择, 能够覆盖更大的用户面.
tianshunovel2
2023-05-20 13:35:43 +08:00
支持楼主!
但是我感觉评论区的某些发言有些好笑。
楼主想怎么做就怎么做,这是人类的自由,这是楼主的自由。
竟然有人说楼主这样宣传如何如何没有意义,这么做如何如何不正确,笑死,他人的人生意义是你我可以决定的。
怪不得国内创新少,因为有太多人给你定指标定规范,你不能这样,不能那样,不能宣传国产,必须国际化,最后就是给你套上各种形式的加锁让你与他人赛跑,然后还嘲笑你的笨拙!
楼主不需要他人指导怎么实现意义,请在技术上给予其反馈和联系。
veike
277 天前
老哥项目没动静了啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/940481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX