V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  msg7086  ›  全部回复第 157 页 / 共 1022 页
回复总数  20422
1 ... 153  154  155  156  157  158  159  160  161  162 ... 1022  
Python 不基于 C 语言。

你说的那些功能都是运行时,不是语言。
什么是语言?语法和文法是语言。剩下的都是运行时和第三方类库。
比如说 Ruby 就有 stdlib,里面有打印字符,有读取文件,有访问网站的函数,这些都是运行时类库。
C 也有 libc,里面也有各种运行时类库。C 语言离开了 C 运行时,一样是什么大事都干不了。

因为你也没说你到底想干嘛,所以我也不知道什么东西对你有价值。
比如说 Python 里,a = b + c 是把 b 和 c 加起来存进 a 里。
你今天一拍脑瓜说,我要实现一种新的语言,要写成 b + c => a 来做同样的事情。
那你就需要实现一门新的语言。

至于 llvm IR,本来就是中间语言。
也就是说,让你学 IR 不是让你去写 IR,而是让你开发一个编译器,把你的语言转译成 IR 然后交给 LLVM 再二次处理的。
也就是你最后一段说的,「用 c 语言开发一门语言」,这个开发就是要把你的 bb 语言转成 IR 。
2020-12-21 21:37:08 +08:00
回复了 TmacV2 创建的主题 问与答 菜鸡问个问题 委托不就是函数指针吗
啊?啥语言?
https://www.cloudlinux.com/extended-support-cloudlinux-os-6

有企业提供 6 的延长维护,请自己去联系付钱和转换事宜。
2020-12-21 01:31:15 +08:00
回复了 tlerbao 创建的主题 git 开源项目二开如何让 git 不分叉。
@YouLMAO 其实我不太明白你提 Apache PMC 和你提出的团队里用 Rebase 是对团队不负责任有什么关系。
在我看来,Good practice 应该是对团队负责任的行为,只不过是因为需要妥协一些现实中无法解决的情况(例如队友太菜)而不得不采取变通的措施。
从你前面的观点,即「用 Rebase 」→「对团队不负责任」这个论点来看,我觉得有两种可能。
1. 你觉得 Rebase 让版本历史保持清晰不属于 Good practice ;
2. 你觉得 Good practice 是对团队不负责任的行为。
你想说的是其中的哪个呢?

我司姑且不算很小,但是我不代表我司发言,所以就不报名号了。
但是我司要求每个 MR 都使用 Squash 方式合并,这样既不会有 Merge 也不会有 Rebase 。
说白了只是为了省事,省得培训每个员工罢了。
我自己的个人项目是不会去用这么 low standard 的做法的。
2020-12-20 23:38:04 +08:00
回复了 tlerbao 创建的主题 git 开源项目二开如何让 git 不分叉。
@tlerbao #11 你这个看上去不太对。
rebase 完以后应该是一条直线,像是:
e723 → 1219 → 你的项目的 4 次提交

你看我 7 楼贴的图,upstream (mainline) 到 mod (sb-master) 之间应该是一条线。
2020-12-20 23:33:15 +08:00
回复了 tlerbao 创建的主题 git 开源项目二开如何让 git 不分叉。
@YouLMAO 菜不是弃用一个优秀功能的理由。
Git 线好看怎么就是舍本逐末了。版本管理系统里,「版本管理」自然就包括对历史的把控。一个清晰的历史记录可以方便地追溯代码的变更,也方便把某个或者某组提交拿出来做 revert 或者 cherry pick 。
因为某些开发人员水平太菜,导致该 rebase 的地方滥用 merge,最后版本管理记录变成一大坨犬牙交错的屎山,这才叫舍本逐末,这才叫不负责任。
不懂可以去学,可以让同事教,没人会怪你的。

怎么不说因为有些人写不好 C++所以大家都去改用 VB6 呢。

当然,还有一种可能,你们团队太大了,不可避免地遇到坑队友而且没人愿意培训。
这种情况下最好的方法既不是 rebase 也不是 merge,而是 squash 。
我们团队现在就是推荐用 squash,虽然主线上一坨坨的 squash 谁都不知道里面到底有哪些东西,但是老板开心就好了呗,反正出问题也轮不到我背锅,我一点儿也不想操心。
2020-12-20 20:55:18 +08:00
回复了 pythonee 创建的主题 程序员 好久不装机了, 2020 年,现在装机的最好姿势是什么?
要用盗版就去某宝几块钱买一个激活码。要正版的话走正版代理商卖,几百吧。
2020-12-20 20:28:09 +08:00
回复了 tlerbao 创建的主题 git 开源项目二开如何让 git 不分叉。
2020-12-20 20:26:23 +08:00
回复了 tlerbao 创建的主题 git 开源项目二开如何让 git 不分叉。
首先,我相信你是在做类似 mod 一样的工作。
这样的话,你所有的修改,应该都是在 upstream 上追加,对不对。
那么假设有 upstream 版本 v1,然后你在上面加了一堆 commit 做成了 v1mod 。
看上去是这样:
v1
 ↳ v1mod

现在 upstream 更新到了 v2
v1 → ...... → v2
 ↳ v1mod

那这里就很简单啊,你签出 v2,然后把 v1mod 上所有的提交搬过去不就得了。
v1 → ...... → v2
 ↳ 旧 v1mod  ↳ 搬走的 v1mod


最后应该是类似这样的结构:
https://vip1.loli.net/2020/12/20/R9Juo3MjUqgidTy.png

你不如先看看你的下游分支是不是结构干净整洁。不整洁的分支历史是很难处理的。
2020-12-20 20:15:03 +08:00
回复了 tlerbao 创建的主题 git 开源项目二开如何让 git 不分叉。
你用 merge pull 当然会产生 merge 。用 rebase 就行了。
2020-12-20 08:53:16 +08:00
回复了 zxCoder 创建的主题 问与答 误操作把 window7 所在的盘格式化为 ext4 格式,无法启动
ext4 会写 superblock,分区数据肯定是被破坏了,重装系统然后从备份里恢复数据吧。
2020-12-20 08:50:53 +08:00
回复了 s609926202 创建的主题 汽车 新手,停车时习惯拉完手刹不挂 P 挡或 N 挡,怎么改正!
停车后拉手刹不换档那不就是前进档吗?前进档下车子前进不是很正常吗?
挂错档还要问怎么改正?改正方法不就是挂对档吗?
你每次挂错档给自己一个大嘴巴子,没几次就能记住了。
要么就像楼上有人说的,陪个几千块钱肉痛了就记住了。

停车挂 N 档然后拉手刹,这真的是基本操作了。基本操作做不对的话没人能救你。
我最近涂 Java 的时候涂出了 Ruby 味,结果被同事喷了一把,默默滚回 Java 风了。
2020-12-19 23:20:34 +08:00
回复了 geledelai1990000 创建的主题 程序员 git 脏分支新的修改如何 merge 到开发分支
Rebase 或者 Cherry-pick 或者提出文件然后 Commit 都可以。
本质上是把更改差分从一个分支搬到另一个分支,很多操作都可以实现这个结果。
rsync 主要是断点续传。
append-verify 我倒是不太清楚会不会有奇怪的作用(或者副作用)。
但是我感觉应该会有重复传送的现象。你可以再测量一下实际传送的流量。

服务器上起了几个 rsync 进程的话,应该和客户端 rsync 进程数相同。
不止是语言吧,还有运行时。你说的 print 是要真的有人写出来的。
你可以调用现有 C 运行时里的函数,也可以实现自己的版本。
2020-12-19 21:55:19 +08:00
回复了 goyhlol 创建的主题 YubiKey 有用 yubikey 的小伙伴来分享下体验吗?
@ysc3839 要用啊,登录核心服务的时候。就是平时握着笔记本的时候容易碰到金属触点,然后就……
2020-12-19 21:16:12 +08:00
回复了 goyhlol 创建的主题 YubiKey 有用 yubikey 的小伙伴来分享下体验吗?
@Biggoldfish 非常真实。所以我在犹豫要不要搞一个 yubi 滑盖。
2020-12-19 21:15:01 +08:00
回复了 hopboy 创建的主题 问与答 jqueryserver($_post['data']); 有风险吗?
本身没太大风险,但是如果遇上不知道怎么配置服务器的运维,那就是很大的风险了……
2020-12-19 19:44:25 +08:00
回复了 zvl0reqglvd 创建的主题 程序员 请教一个 C++问题,为什么加了 inline 反而效率降低了
gcc 带上优化编译出来是这样的。

main:
     vpbroadcastd    ymm1, DWORD PTR x[rip+399996]
     mov    eax, OFFSET FLAT:z
     mov    ecx, OFFSET FLAT:y+400000
.L3:
     mov    edx, OFFSET FLAT:y
.L2:
     vpbroadcastd    ymm0, DWORD PTR [rdx]
     add    rdx, 4
     cmp    rcx, rdx
     jne    .L2
     vpaddd   ymm0, ymm1, ymm0
     add    rax, 32
     vmovdqa YMMWORD PTR [rax-32], ymm0
     cmp    rax, OFFSET FLAT:z+400000
     jne    .L3
     xor    eax, eax
     vzeroupper
     ret
z:
    .zero   400000
y:
    .zero   400000
x:
    .zero   400000

打开 AVX2 以后会直接执行 VPADDD,不仅不会调用 calc,甚至不会调用普通的寄存器加法。
1 ... 153  154  155  156  157  158  159  160  161  162 ... 1022  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3219 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 93ms · UTC 13:21 · PVG 21:21 · LAX 05:21 · JFK 08:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.