Bylx666 / key-lang

目标是最精致的编程语言
https://docs.subkey.top
Mozilla Public License 2.0
111 stars 4 forks source link

优化代码审查 #12

Open ealinye opened 6 months ago

ealinye commented 6 months ago

很荣幸看到您没有经过rustfmt格式化,也没有经过rust官方的lint:clippy的代码,也很抱歉没有带上你所说的“脑子”

对于您的代码有没有通过cargo check我是存疑的,或许你的那一行allow已经很好地掩护了你的屎

我承认我是一个傻逼,你给我喂的屎我全部吃了,不仅如此,我还对你的代码不断f8 ,ctrl . 修复一个个warn

别被吹上天了,这个语言作为一个废物还是很不错的,起码它跑起来了不是吗?虽然对于其他人来说这只是你拉在github上的一坨屎,但是您仍然可以认为它就是最精致的语言呐

对了,给你看看我很可能不是VSCode的VSCode很可能删掉那行遮羞布的输出

image

你知道什么是clippy吗?链接挂给你,好好了解一下

同时您滥用static mut的设计模式也是非常优秀的,看到我的pr中使用的addr_of_mut了吗?在rust2024,对static mut的&mu将会触发一个编译错误,但是不使用clippy的您是不会在代码无法编译之前意识到这一点的

既然您已经使用了nightly工具链,可否恳请您花一点点时间使用miri看看你的代码有没有ub呢?看到*mut 时我可是眼前一亮啊,仿佛正在观看一段精美的C代码!

有时间多看看书,不只是准备高考,同时也多学习一些你不知道的东西充实一下你自己,起码得让你意识到这个项目时一坨屎

另外,提升一下你令人窒息的英语水品吧

Bylx666 commented 6 months ago

一丝不挂地表达出自己的优越, 我认可你的勇气. 这说到底是我给自己写的东西, 一开始就没抱多大期望有很多人给我改代码.

说到底你所谓的"优化"或许只是你的一厢情愿罢了. 用Rust贴近汇编的思维方式并不可耻, 懒得写生命周期, "滥用"static mut同样是我自己的选择.

我不会关闭该issue, 我也不反对你说的问题. 这一切是我咎由自取, 我会将此issue挂起, 在有所谓的"优化"的准备时拿来参考.

十分感谢你的直言不讳.

limuy2022 commented 6 months ago

中肯的评价(

ealinye commented 6 months ago

一丝不挂地表达出自己的优越, 我认可你的勇气. 这说到底是我给自己写的东西, 一开始就没抱多大期望有很多人给我改代码.

说到底你所谓的"优化"或许只是你的一厢情愿罢了. 用Rust贴近汇编的思维方式并不可耻, 懒得写生命周期, "滥用"static mut同样是我自己的选择.

我不会关闭该issue, 我也不反对你说的问题. 这一切是我咎由自取, 我会将此issue挂起, 在有所谓的"优化"的准备时拿来参考.

十分感谢你的直言不讳.

我的优越是您赋予的,对于您认可我的"勇气"这件事我感到非常诧异,难道对你这种完全不尊重其他人,没有进行格式化的胡乱排版的代码,对这种没有通过clippy,不符合rust代码规范的代码提出意见也是"勇气"?我倒是很羡慕你可以沉浸在你自己的世界里,也很羡慕你可以享受在外行的崇拜,和自我满意中高潮的快乐

你开心就好,我也没指望你这个狂傲的人可以听进来自社区的意见,更是从来不对你可能会去了解代码规范,去了解什么叫代码审查,去了解如何尊重别人抱有任何希望。你满意就行了,虽然你的代码不符合社区的规范(不通过clippy lint,胡乱unsafe且没有通过miri的测试,没有格式化……不对,和你扯这些干什么呢?你都不知道clippy,lint,miri这些东西是什么呢)

希望你能够继续高潮下去,言尽于此

Bylx666 commented 6 months ago

你都给我看笑了, 希望你在1年之后回来看你的的发言不会脸红

TabNahida commented 6 months ago

Having a fight? Let me see what is happening. Interesting, isn't it. From my perspective, Rust is a programming language for safety. If you do not follow the programming guidelines, why don't you use C++. C++ is good programming language without strict rules, especially from other C++ programmers. Yet, it is still a good project. Many improvements should be done before upload a video on internet. And what I mean is English... It is my first time that I think its better to understand the meaning with my translator on.

TabNahida commented 6 months ago

你都给我看笑了, 希望你在1年之后回来看你的的发言不会脸红

And I think she would not. But still you should check your grammar, in both, please.

ealinye commented 6 months ago

你都给我看笑了, 希望你在1年之后回来看你的的发言不会脸红

你都给我看笑了, 希望你在1年之后回来看你的的发言和代码不会脸红🤣🤣🤣

ealinye commented 6 months ago

你都给我看笑了, 希望你在1年之后回来看你的的发言不会脸红

You are right, but your code is still a big shit without any improvement for two days. non of issus i report you fixed because you have never spent any time to know what i said, about lint, clippy, ub, miri… You are beliving in yourself and take no adive from community. My code is as bad as this two years ago, but it had improved by taking with other and learn from blogs… If i see my code what is written by me two year ago, i will also say that IT'S SHIT.Feeling ashamed for my taking?lol,you will if you improve yourself in the feature, but i think it will not happen.

Jedsek commented 6 months ago

why you close this issue?

Jedsek commented 6 months ago

You have said you would never close this issue && what he said is right,so why you close this issue?

Jedsek commented 6 months ago

Please reopen this issue

Bylx666 commented 6 months ago

把话说干净就好了, 我只是看不惯他的语气而已

Jedsek commented 6 months ago

把话说干净就好了, 我只是看不惯他的语气而已

yeah,It's great to take advice from others

Bylx666 commented 6 months ago

看得出来你的语气有所悔改. 我会再次关闭该issue, 创建一个新的clippy pass的issue. 该次争吵希望你能认识到自己语气上的问题, 我宣告该次争论到此为止.

limuy2022 commented 6 months ago

你不应该使用高高在上的语气,他的语气就算再不好也是确确实实的帮你改正错误,他甚至为你提了个pr,而你只是一直在嘴硬,甚至因此拒绝改正自己的错误,适当听取他人建议才有利于提升自己

zhleyai commented 6 months ago

Hey, kid, you can take this as a hobby, but you can’t take it as a career, otherwise you will starve to death. My team members and I conducted a preliminary review of the code. This is completely a hobby, and it can’t even be said to be a project. It is a simple REDME, without a future list, and does not meet the requirements of Software design pattern, and Compilers: Principles. I hope you can get admission to the university. Notices can improve one's own quality and knowledge

WenSimEHRP commented 6 months ago

看得出来你的语气有所悔改. 我会再次关闭该issue, 创建一个新的clippy pass的issue. 该次争吵希望你能认识到自己语气上的问题, 我宣告该次争论到此为止.

From your attitude I can tell that you just want to show off. You've kept on rejecting others' kind improvements and responded like you don't give a shit.

It is you who should change the tone. They have been trying to solve the problem so much, even too much. Anyone would not like your educated response.

If you don't want others to change your code just write it in the readme file, or better, make the repo private so that nobody could see it. What exactly are you trying to do?


Also, some minor improvements to your sentence. I'm pretty sure that this sentence won't pass the HSK check.

- 看得出来你的语气有所悔改. 我会再次关闭该issue, 创建一个新的`clippy pass`的issue. 该次争吵希望你能认识到自己语气上的问题, 我宣告该次争论到此为止.
+ 看得出来你有所悔改。我会再次关闭该issue并创建一个新的`clippy pass` issue。希望你能认识到自己在该次争吵中语气上的问题,我宣告该次争论到此为止。
TabNahida commented 6 months ago

看得出来你的语气有所悔改. 我会再次关闭该issue, 创建一个新的clippy pass的issue. 该次争吵希望你能认识到自己语气上的问题, 我宣告该次争论到此为止.

From your attitude I can tell that you just want to show off. You've kept on rejecting others' kind improvements and responded like you don't give a shit.

It is you who should change the tone. They have been trying to solve the problem so much, even too much. Anyone would not like your educated response.

If you don't want others to change your code just write it in the readme file, or better, make the repo private so that nobody could see it. What exactly are you trying to do?

Also, some minor improvements to your sentence. I'm pretty sure that this sentence won't pass the HSK check.

- 看得出来你的语气有所悔改. 我会再次关闭该issue, 创建一个新的`clippy pass`的issue. 该次争吵希望你能认识到自己语气上的问题, 我宣告该次争论到此为止.
+ 看得出来你有所悔改。我会再次关闭该issue并创建一个新的`clippy pass` issue。希望你能认识到自己在该次争吵中语气上的问题,我宣告该次争论到此为止。

I think many cannot pass HSK. I have seen once HSK in my school. School classmates told me that the Chinese grammar is usually be ignored for local. The is not important. However, I do not understand why he use English punctuation in Chinese sentences.

lisonge commented 6 months ago

话说你们学 rust 的高中生一个个咋这么强

我在高中的时候还在被窝里打胶

Bylx666 commented 6 months ago

十分感谢各位对我的耐心批评和指导. 经过一段时间反思, 我理解并决定承认了我的两点错误:

  1. 我的仓库的issue区域属于我的客厅, 无论客人态度如何, 我不该意气用事以牙还牙. 不论其参考价值如何, 我不该发出自己没有完全把握的发言.
  2. 我的作品不论是否有人来读源码, 我应当负起对其的责任心, 至少应当整理好她的基本仪容仪表. 我至少应当将我的代码整理得清晰顺畅, 暂且不论实现如何, 也不该将一份完全没有经过自我审视的代码开源并过大宣传.

clippy和fmt这些应当只是我的代码实现的审查底线, 而不是我作品的优化目标之一. 我承认我的这些过错, 并对我伤害过的人道歉.

起初我认为这只是一场无聊的网暴, 但大家都十分耐心并详细地指出了我的问题并给了我不少选择. 我十分感激各位的耐心, 希望大家不会厌恶看到一位少年的成长.

我并没有想到我送给自己的成人礼会以这样的形式由我自己查收, 但我认为这是一次不错的经历. 我对大家的态度由一开始的费解和感到无聊, 到现在的理解和感激, 我想一定少不了大家对我成长的期待.

最后再次感谢大家的耐心!

hadesxiong commented 6 months ago

后生可畏,激励我一个大龄社畜也要好好学习。

rookie-luochao commented 6 months ago

不管争论结果怎么样,后生可畏,都只是高中,大龄码畜也要继续好好学习了

supermanmsc commented 6 months ago

一丝不挂地表达出自己的优越, 我认可你的勇气. 这说到底是我给自己写的东西, 一开始就没抱多大期望有很多人给我改代码.

说到底你所谓的"优化"或许只是你的一厢情愿罢了. 用Rust贴近汇编的思维方式并不可耻, 懒得写生命周期, "滥用"static mut同样是我自己的选择.

我不会关闭该issue, 我也不反对你说的问题. 这一切是我咎由自取, 我会将此issue挂起, 在有所谓的"优化"的准备时拿来参考.

十分感谢你的直言不讳.

我支持作者, 开源是作者的选择, 代码如何写也是个人选择, 跟任何人无关, 我也觉得你这个评级很傻x

image

你会用rustfmt, 会用 vscode 一定很牛吧, 可这些东西对一个写编译器的人, 会不屑一顾,
先辈们为了在arm上快速的做除法, 也会搞一些莫名其妙的数字. 加解密库里, 这种幻数更是很多. 这能说明什么呢? 说明他们不会vscode吧.....

搞计算机的人, 都应该是个侠客吧, 也会练武术,
会用vscode只是会点花招, 会算法数据结构, 也算会内功, 会编译原理,系统内核,硬件原理,也算会心法.

不在一个层次的人, 没法交流 提议作者不要理他.

WenSimEHRP commented 6 months ago

不在一个层次的人, 没法交流 提议作者不要理他.

I guess you are bringing up another fight. How's that good for you or the author? You are not going to take any responsibility for that, right? Why would you convince the author to do so even if they had already apologized?

我支持作者, 开源是作者的选择, 代码如何写也是个人选择, 跟任何人无关, 我也觉得你这个评级很傻x

Look, if a piece of code couldn't even meet the barebones of a language... Then what is the point of sharing it online? Just to show off and tell the community "look I have a compiler!" And ashame themselves?

You wrote "...how the code is written is also a personal choice." I just... Cannot really understand what you mean by that. The PR is about code formatting, not changing the algorithm or stuff. If it is the latter then of course the author could say "it is a personal choice" and reject the changes. But how a piece of code is formatted determines how other people could understand the code, and it is even related to its stability. True, in the license it says "absolutely no warrenty" but putting such things online is not taking the responsibility of their own work, and is also being irresponsible to the community.

I suggest you to go over the whole conflict first and then provide suggestions. If you have already done that I have nothing to say then.

先辈们为了在arm上快速的做除法, 也会搞一些莫名其妙的数字. 加解密库里, 这种幻数更是很多. 这能说明什么呢? 说明他们不会vscode吧.....

How is that related to the question? Those are just random examples and they are absolutely off-topic. How's the problem related to vscode?

||And why are you using English punctuations? Is that a personal choice or you are taught to do so?||

else05 commented 6 months ago

字太多了,没细看,无脑的说一句,我还是鼓励一下,作为一个高中生已经站在线上准备起跑了,并不是坏事,成长是一个过程,老程序员也没必要拿着多年的工作积累和一个刚起步的人对线,不对等的,好比说是18岁了和小你10岁的人比身高,

AurevoirXavier commented 6 months ago

谁还没有一个 17 岁呢?

说实话,看起来年龄都不大,既然是学做长辈的样子,那么也请学着包容一些。 每个人的 GitHub Profile 都看了一遍,起码仓库作者确实做了些东西放了出来。

Rust 这门语言真的邪门,高傲从核心开发组开始不停地向下传染。


一码归一码,有错就接受吧。 聚焦在问题上,而不是聚焦在解决提出问题的人身上。


愿意花心思去阅读代码提出 issue,也不要相爱相杀了最后。

ice1000 commented 6 months ago

感觉黑的过头了,用这些特性或者不开 clippy 也没什么不好的。

PhotonQuantum commented 6 months ago

事实上原实现是可以通过 miri 检查的,虽然存在潜在的内存泄漏,但是内存泄漏是内存安全的

static mut GLOBAL_STR: &str = "Hello, world!";

fn main() {
    // Read from stdin
    let mut buf = String::new();
    std::io::stdin()
        .read_line(&mut buf)
        .expect("Failed to read from stdin");

    // Replace content in GLOBAL_STR with buf
    let mut old_str = unsafe { &mut GLOBAL_STR };
    println!("old_str: {}", old_str);
    *old_str = buf.leak();
    // Oops: old_str leaked!

    // Print new GLOBAL_STR.
    println!("GLOBAL_STR: {}", unsafe { GLOBAL_STR });
}
$ MIRIFLAGS="-Zmiri-disable-isolation" cargo +nightly miri run

当然这里还是建议用 UnsafeCell 包裹一下避免 static mut 的使用,个人认为 rust 的 static mut 设计本身就是个败笔

#![feature(sync_unsafe_cell)]

use std::cell::SyncUnsafeCell;

static GLOBAL_STR: SyncUnsafeCell<&str> = SyncUnsafeCell::new("Hello, world!");

unsafe impl<T> Sync for AssertSync<T> {}

fn main() {
    // read from stdin
    let mut buf = String::new();
    std::io::stdin()
        .read_line(&mut buf)
        .expect("Failed to read from stdin");

    // replace content in GLOBAL_STR with buf
    unsafe {
        // SAFETY: only one thread is running this code
        let global_str_mut = &mut *GLOBAL_STR.get();
        let old_str = std::mem::replace(global_str_mut, buf.leak());
        println!("old_str: {}", old_str);
    }
    // old_str leaked! although this is memory safe...

    // print GLOBAL_STR
    // SAFETY: only one exclusive reference to GLOBAL_STR created.
    println!("GLOBAL_STR: {}", unsafe { *GLOBAL_STR.get() });
}

同样可以通过 miri 检查

不过其实最好的实现方法是针对每次执行建立一个独立的执行环境结构体,可参考 rhai 的实现 https://github.com/rhaiscript/rhai/blob/390d55a6e78ecaad987c25bd70a5f3bdf161dcaa/src/engine.rs#L88

或者参考 miri 的实现,其程序运行状态整个被包裹在 Machine 中,例如本项目中的 LINE(应该是程序计数器 Program Counter?)在 miri 实现中的对应为 Machine -> Thread -> Frame -> loc https://doc.rust-lang.org/nightly/nightly-rustc/rustc_const_eval/interpret/struct.Frame.html#structfield.loc

这样就可以尽可能避免全局变量,同时采用结构体包裹虚拟机可以通过 &mut self 的方式独占引用,避免掉很多 rust 的生命周期及同步原语的麻烦

liaoxuewei commented 6 months ago

你都给我看笑了, 希望你在1年之后回来看你的的发言不会脸红

为什么那么多人反对作者?奇怪了!

transtone commented 6 months ago

image

在紧张的高中,应对高考之余还能有闲暇编码回帖,已经超过大多数同龄人了。 千里之行始于足下。开创语言,迈入成年,请从尊重文字,尊重承诺开始吧。

AurevoirXavier commented 6 months ago

为什么那么多人反对作者?奇怪了!

都是小圈子,观察一下互相点赞的。

yongrongwang commented 6 months ago

代码如何写也是个人选择, 跟任何人无关

就这种态度,你不适合跟别人一起做项目,你的代码大概率没人愿意看

NeroBlackstone commented 6 months ago

😅rust果然编程语言原神

lizyChy0329 commented 6 months ago

楼主怕不是小时候被驴子踢过下脑袋

qinsg commented 6 months ago

支持一下项目的作者。只能讲后生可畏啊。想想我自己17岁还没接触计算机呢。加油!

dylech30th commented 6 months ago

作为一个玩具性质的开源项目代码写的随便一点是什么不能容忍的问题吗? 如果真要讨论的话能不能集中在更有价值的话题上,而不是代码写的好不好看这么做以后招不招同事待见这种我不仔细看还以为是什么经典老程序员在这训斥我不遵守公司的 Java 规范呢

shaokeyibb commented 6 months ago

你要觉得人家写的不好你可以提 pr,没必要拉上来个 issue 搁这儿秀你的优越感,真以为自己比别人懂点就可以理直气壮的开喷?

ghost commented 6 months ago

你要觉得人家写的不好你可以提 pr,没必要拉上来个 issue 搁这儿秀你的优越感,真以为自己比别人懂点就可以理直气壮的开喷?

你了解事件经过吗?#12是在PR被拒绝了发出的

ghost commented 6 months ago

如果你也拉黑了这个账号,那这件事会显得很戏剧 image

ghost commented 6 months ago

字太多了,没细看,无脑的说一句,我还是鼓励一下,作为一个高中生已经站在线上准备起跑了,并不是坏事,成长是一个过程,老程序员也没必要拿着多年的工作积累和一个刚起步的人对线,不对等的,好比说是18岁了和小你10岁的人比身高,

谢谢,我15

hughdazz commented 6 months ago

issue作者虽然学会了rustfmt、cargo check、vscode等,却没有学会尊重。

Decodetalkers commented 6 months ago

只是人家的个人项目,你觉得有问题提pr就是,个人项目对项目风格有绝对的所有权,任何人没有资格评价啊,而且clippy也只是建议,也可以关掉clippy,如果觉得这种风格是必要的。你迟早会遇到必须关闭clippy的情况的

zhicheng233 commented 6 months ago

你们说的对但该项目使用MPL 协议Bylx666不需要对该项目做任何保证 还有这就是rust圈嘛,畏惧了,咱还是乖乖地待在Java吧

MIDE-589 commented 6 months ago

30年前,我在同样年轻的时候,也试着发明一种编程语言。当时除了C语言我没有别的选择,我承认我当时干得糟糕透了,一些极其简单的功能却要消耗我大量的时间,而当时甚至连互联网都没有。最后我不得不放弃。如今我依然没有开发一种编程语言的实力。 年轻真好,可以勇敢地做一些以后再也不敢去尝试的事,可以有大把的时间去学习,可以尽情嘲笑我们这些为柴米油盐发愁的老家伙们,我真心羡慕你们。 年老也真好,至少我可以有机会接触那些简单而朴实的软硬件环境,知道它们运作的底层机理——好吧,其实是不得不学。

Jedsek commented 6 months ago

就是毫无价值的 发明这个语言干什么?已经有很多语言了,而且还不遵循rust规范🌝但是 那个发布issue的人也是闲着没事干 不喜欢就不理他不就行了🌝

@twhice @Bylx666

就是毫无价值的 写代码干什么?已经有很多代码了,而且还不如别人写的🌝但是 这个发布评论的人也是闲着没事干 不喜欢就不理他们不就行了🌝

@xianquu

zhicheng233 commented 6 months ago

我的评价是写着来给自己玩玩可以,不过原作者似乎确实过度宣传了 ,会误导新人,更何况该项目是MPL协议,只能说这次双方都很抽象


发件人: Jedsek @.> 发送时间: 2024年5月7日 20:44 收件人: Bylx666/key-lang @.> 抄送: 志成zhi_cheng @.>; Comment @.> 主题: Re: [Bylx666/key-lang] 优化代码审查 (Issue #12)

就是毫无价值的 发明这个语言干什么?已经有很多语言了,而且还不遵循rust规范🌝但是 那个发布issue的人也是闲着没事干 不喜欢就不理他不就行了🌝

@twhicehttps://github.com/twhice @Bylx666https://github.com/Bylx666

就是毫无价值的 写代码干什么?已经有很多代码了,而且还不如别人写的🌝但是 这个发布评论的人也是闲着没事干 不喜欢就不理他们不就行了🌝

@xianquuhttps://github.com/xianquu

— Reply to this email directly, view it on GitHubhttps://github.com/Bylx666/key-lang/issues/12#issuecomment-2098322252, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ARBBJEBKVHOLEUC7VYJFPTLZBDEEJAVCNFSM6AAAAABG5ATV6GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAOJYGMZDEMRVGI. You are receiving this because you commented.Message ID: @.***>

TabNahida commented 6 months ago

30年前,我在同样年轻的时候,也试着发明一种编程语言。当时除了C语言我没有别的选择,我承认我当时干得糟糕透了,一些极其简单的功能却要消耗我大量的时间,而当时甚至连互联网都没有。最后我不得不放弃。如今我依然没有开发一种编程语言的实力。 年轻真好,可以勇敢地做一些以后再也不敢去尝试的事,可以有大把的时间去学习,可以尽情嘲笑我们这些为柴米油盐发愁的老家伙们,我真心羡慕你们。 年老也真好,至少我可以有机会接触那些简单而朴实的软硬件环境,知道它们运作的底层机理——好吧,其实是不得不学。

老前辈阿,现在方便多了有LLVM,或许你现在如果想的话可以尝试自己写一个语法解析器,然后用你熟悉的C语言做后端。现在的vlang就是这样做的。

TabNahida commented 6 months ago

😅rust果然编程语言原神

You're right, but Genshin Impact is a new open-world adventure developed by HoYoverse itself. The game takes place in a fantasy world called Teyvat, where those chosen by the gods are granted the "Vision" , the power of the guiding elements. You will play a mysterious character named "Traveler", in the free travel to meet different personalities, unique abilities of the companions, together with them to defeat the enemy, find lost relatives -- and gradually discover the truth of the "Allogene".

NaturalSelect commented 6 months ago

说个实话,我不知道你在破防啥,既然你有open pull request的权利,repository的所有者也有权利拒绝它。

如果你确实需要你的commit,可以自己维护一个fork而不是来这里阴阳怪气。

zhleyai commented 6 months ago

这两个人一个十七,一个十五来着

--------------原始邮件-------------- 发件人:"zhangjh @.>; 发送时间:2024年5月7日(星期二) 晚上10:32 收件人:"Bylx666/key-lang" @.>; 抄送:"ZhleYai @.>;"Comment @.>; 主题:Re: [Bylx666/key-lang] 优化代码审查 (Issue #12)

傻逼是真的多啊,满18岁了吗。。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>