FrankHB 最近的时间轴更新
↓挽……
75 天前
FrankHB's repos on GitHub
C++ · 18 人关注
CppTemplateTutorial
中文的C++ Template的教学指南。与知名书籍C++ Templates不同,该系列教程将C++ Templates作为一门图灵完备的语言来讲授,以求帮助读者对Meta-Programming融会贯通。(正在施工中)
C++ · 4 人关注
nano-signal-slot
Pure C++11 Signals and Slots
3 人关注
Crash-Course-Computer-Science-Chinese
:computer: 计算机速成课 | Crash Course 字幕组 (全40集 2018-5-1 精校完成)
C++ · 2 人关注
NPLC
NPL console (main test repository for NPLA1 implementation of YSLib)
C++ · 0 人关注
Baka-MPlayer
The libmpv based media player
C++ · 0 人关注
Basilisk
The Basilisk web browser
0 人关注
co
An elegant and efficient C++ basic library for Linux, Windows and Mac.
C++ · 0 人关注
ConEmu
Customizable Windows terminal with tabs, splits, quake-style, hotkeys and more
C++ · 0 人关注
Corecat
Corecat: Core of The Cats Project
C++ · 0 人关注
CxxFunctionBenchmark
benchmark for various C++ function implementations
TeX · 0 人关注
draft
C++ standards drafts
Python · 0 人关注
english-please
Offer for repositories whose README are written in Chinese.
C++ · 0 人关注
fancy2d
0 人关注
feel
An open source cross-platform programming language focused on efficiency.
C++ · 0 人关注
function2
Improved and configurable drop-in replacement to std::function that supports move only types, multiple overloads and more
0 人关注
google-group-docs
Public text for Google groups discussion
HTML · 0 人关注
itoa-benchmark
C++ integer-to-string conversion benchmark
C · 0 人关注
LCUI
A simple graphical interface library
C · 0 人关注
libfat
FAT library for GBA, DS, Gamecube & Wii
C · 0 人关注
libnds
C library for Nintendo DS
C · 0 人关注
llmd
如果将markdown视作一门编程语言可以做哪些有趣的事情?
0 人关注
mdBook
Create book from markdown files. Like Gitbook but implemented in Rust
C++ · 0 人关注
MdCharm
MdCharm Source Code
C++ · 0 人关注
mingw-std-threads
Standard threads implementation currently still missing on MinGW GCC on Windows
C++ · 0 人关注
minicodecvt
C++上的简单编解码实现
C++ · 0 人关注
modern-cpp-tutorial
📚 C++11/14/17 On the Fly
C · 0 人关注
newlib
C++ · 0 人关注
nix
Nix, the purely functional package manager
C · 0 人关注
opensgx
OpenSGX
0 人关注
osdt-weekly
开源开发工具周刊
FrankHB

FrankHB

V2EX 第 34994 号会员,加入于 2013-02-28 10:06:28 +08:00
今日活跃度排名 490
FrankHB 最近回复了
49 分钟前
回复了 opiviqo 创建的主题 C++ 请教大佬们一个 c++的模板的问题。
问题不成立。
A<B>里的构造函数直接取决于 A 的定义,而不一定依赖 B 。你不给 A 的明确定义,这个问题就无解,上面的多数回答也就是在这个基础上瞎蒙(假定 A 的构造函数里会初始化 B )。
有没有依赖 B 的构造函数都是个问题,就更别说有没有依赖签名为(int, int)的这个重载了。
1 小时 17 分钟前
回复了 ligiggy 创建的主题 C++ C++动态内存管理问题求解
@FrankHB 最后一个 URL 有误,应为#L647 ,指局部 optimize("Os")生成 x86_64 代码中少了 15%的指令。
1 小时 20 分钟前
回复了 ligiggy 创建的主题 C++ C++动态内存管理问题求解
monotonic buffer 是只分配不管释放,除非最后整个干掉。如果不是严格需要单调行为,一般应该用 pool resource ,而不是放任让空间更加紧张。
不过这里 std::pmr 有个坑是不保证一定会释放,允许 pool resource 也实现成 monotonic ,算是 QoI 问题,虽然没见过实际实现这么贱的。我提过 issue 然而 WG21 那边没怎么鸟,我也懒得跟了。
因为这个原因和 C++11 依赖我用自己实现的兼容 std 的版本(以及某些实现的细碎 bug ),加了些扩展:github.com/FrankHB/YSLib/blob/master/YBase/include/ystdex/memory_resource.h

@ipwx 就跟智能指针不总是负责所有权一样,显然不是“只用不扔”。pool resource 就是主要改善局域性和减少碎片,不一定说的是不扔。反倒是默认不扔会有上面的可用性问题。
mmap 滥用一样可以有虚拟地址空间碎片。

@cs8425 mimalloc 是几个比较强的实现之一,不过多线程通常不如 snmalloc 。
mimalloc 预期的典型负载是动态语言运行时。对充分使用 C++ allocator (其实会因为复制 allocator 吃寄存器带宽的亏,先不管了)。一般表现和 MSVC 实现中的 pmr pool resource 类似。前者的优势主要是折腾的姿势多,但是这里似乎也用不到。
我实现的 pmr 也比较类似 MSVC ,还偷懒了一点(少了个 intrusive 结构,直接复用 vector )。不过针对负载调整( github.com/FrankHB/NPLC/blob/master/NBuilder/Interpreter.cpp#L389 )后基本能碾压 LD_PRELOAD mimalloc 了。
opt-in 了编译器相关的优化( github.com/FrankHB/YSLib/blob/master/YBase/source/ystdex/memory_resource.cpp#L267 )还能更快一点。
1 小时 40 分钟前
回复了 kgdb00 创建的主题 Linux gcc 为什么连这种代码都能编译通过?
@LANB0 所以不是你说的函数是指针么。如果是语法糖,那么只要没语法错误就能够直接替换。实际呢?
所谓语法糖就是能只需要遵从语法规则,在早期替换而不引起含义改变的严格意义上的“另一种写法”。任何引起语义规则介入影响正确性的,任何多引入未指定行为的,诸如此类,都不配叫“语法”糖。望周知。
5 天前
回复了 Ljcbaby 创建的主题 Windows Win 下 打开 EROFS img 工具
@Buges 不累,因为你所谓的理客中的姿势,我真一点都不需要装。
真说累,我倒是得更想装得不像天龙人一点,免得从能做的事的差距就诱使旁人理客中地想象到你为何不得不比我无能狂怒得多了。但我并不会因为比你多做一些事而愉悦,于是这样会显得我试图与你的平等对话是装的,而两边都是小丑。
何必呢?

你是不是想要说服反对你意见的人呢?大约你自己也不信能有多成功吧。
更容易让你容易陷入抑郁的是,与你一样想的信徒到处都有,不缺你一个,但你又没有能力团结他们来否定异教徒。

你对需求理解也是一开始就错得离谱。
我不清楚为什么评估工作量时有意无视结果,推测需求你却反过来根据别人事后的概括的优势去做不靠谱的逆向了。
这种不可靠是可以让你的主要结论归于虚无的,你却要用“工程经验”瞎猜,可真是大聪明了。
可能又只是你彻底外行不懂罢,以至以为工程问题只有技术合理问题了。
其实原始需求是什么根本找不到确切公开资料,反正搞不到一手需求文档(这可不开源)。但反过来“原始需求不是什么”却相对容易推断。很显然完整版需求不会只是你提的几个细节。阴谋论一点,原始需求其实真是个 KPI package 也说不定,而“读写缓存、可选压缩等功能”只是上面的负载(这当然比改注释的 KPI 高明多了)。至于为啥恰好是这几个?正是“工程经验”支持这种现象未必就是技术原因造成的,甚至可能只是纯粹的偶然。
其实是不是支持阴谋论我无所谓,因为(1)我不是当事涉众,不对这里的决策负责也不怕因此风评被害(理客中不需要装+1 );(2)查无实据,也拐不住你的“立场”问题上。
(2)也许对你不显然,所以多说一句:照你的思路类推理解,UNIX 一开始多出来的功能不也是改改 Multics 之流就能实现的么,那么新设计个 UNIX 重复造已有轮子又有什么用呢?不是 UNIX 设计者立场有问题,妄图分裂开发者社区,破坏 Bell Labs 和外部的大好合作局面?
当然我没钦定 erofs 能取代 squashfs ,但相对地,你也没什么技术经验能证明这一定不会发生。

这里我不会采取 biased 的立场是很自然的结果,因为两边都不是我的工作,对我也没有什么明确威胁。而一般来说,大众也会觉得多一些同类竞争扩大选择余地是好事(所以你的观点在这里又脱离了群众路线)。不过看起来你似乎觉得 erofs 对你有威胁让你以后的可用技术不安稳了(要真如此那评价还真是高啊)?
但那充其量也只是你的一个具体立场,这可不会让反对你观点的人的立场自动和你对立互补。要有跟你对立的立场,也是我尤其看不惯你这种胡搅蛮缠,禁止跟你不一样观点的人就必须相反地 biased 的脑补罢了。这种常识还望周知。

你对“自主可控”的妖魔化的执着倒是出乎我的意料了。我不是 big brother 本 brother ,不表示当局意见,宣传口上也另说,但是实际上管得着这东西的,我还真没见过(敢)像你这么自嗨的。虽然爱信不信,不过起码别把别人都当傻子。
(或者你说说你能脑补出想按你这样“自主可控”的东西现在具体确切包含哪些么?)
所以你强调的“广泛使用的场景中所指代的”(暂且不说“含义”)对我就只是个刺耳的笑话,偏偏你还绕不开了……我能说啥呢?
我只能说……“自主”“可控”本来就是有单独内涵的,你强行专名化这样毒害汉语的行径,以及眼里只有“宏大叙事”而否定任何个人对此的工作的态度,我坚决反对。
“诡辩不能改变客观事实”,原话奉还。

关于 RMS 的那些争议的评论成功体现了你不算 RMS 那些自由派里的正经人,只是碰到了一些皮毛的小鬼的事实。
要真是他们的同志,那真不该有你那么离谱的一些“立场”错误。
这说明你所谓的“自由”跟自由软件运动的自由根本也八竿子打不着。
我本也没指望这种近似钓鱼的提法能有什么成果,但你自己上钩就别怪我咯。

你要区别你无意的 bug 和有意的 adversary 是你的实现问题。这种实现明显浪费资源而低效,在我看来,算是近乎 feature of last sorts 。你只会依赖这种策略,是你比较初级或者说无能的一种表现。
我本不需要嘲讽奚落你而更应该同情你没有选择的余地,以至于都没有余裕对付意外的 bug 了(即便可能真的更危险)。但是你非得以“继续装看不懂”的方式反客为主、颠倒黑白,那我只能说:你大约更接近野蛮的猴子而不是文明的人类罢。
这不显而易见么?

至于 Web 的“标准的话语权”,你更找错人了。我黑 Web 好多年了……
要我说,Web 这种没法自然维护自由、自动被集体主义的玩意儿就不该作为标准,从成了事实标准起就直接都能当 enemy 了。或者你可以当这里有个破窗效应。
你现在才闻到了反乌托邦的味道,晚了。
就你这样的认识,也好讨要别人施舍的“自由”?你觉得你这样的觉悟不是比我更弃疗么?
而且不说“开源生态”先天内讧的基因,Web 还真代表不了几个有全局威胁性的开源生态。
Web 真烂了又咋地,整个扔了不行?至于 IANA/ICANN 那些,没那么好渗透,倒是不断被垄断企业通过应用业务方式架空了。
我现在不太热衷关心这整坨破烂,除了觉得没救,主要是因为 Google 在进一步做坏事上本事不够,光是基建方面,什么 Chromium OS 什么 Fuchsia 默认当作和 Go/Dart 一样已经寄了。相对来讲我更担心 Apple ,更甚于各种 big brother 之上。
这年头任何能被外部抢到话语权的团体比起水泼不进的垄断企业来讲,这方面都是弟弟。
5 天前
回复了 kgdb00 创建的主题 Linux gcc 为什么连这种代码都能编译通过?
好像没人直接回答标题的字面问题。

WG14 N2176
5.1.1.3 Diagnostics
1 A conforming implementation shall produce at least one diagnostic message (identified in an implementation-defined manner) if a preprocessing translation unit or translation unit contains a violation of any syntax rule or constraint, even if the behavior is also explicitly specified as undefined or implementation-defined. Diagnostic messages need not be produced in other circumstances. 9
9) The intent is that an implementation should identify the nature of, and where possible localize, each violation. Of course, an implementation is free to produce any number of diagnostics as long as a valid program is still correctly translated. It may also successfully translate an invalid program.

注意最后一句话。
5 天前
回复了 kgdb00 创建的主题 Linux gcc 为什么连这种代码都能编译通过?
@LANB0 你在说啥?函数是什么鬼指针,你 sizeof 试试?
又有几个语言有比 C 的得 [] 更加标准的源语言层面的纯语法糖而不是混了坨 unspecified 没法一一映射实现的?
5 天前
回复了 Ljcbaby 创建的主题 Windows Win 下 打开 EROFS img 工具
@Buges 关于 Web ,你有一点说的没错:Web 不是我自主可控的。起码出现终产者前,没有一个个人做得到。
从计算资源分配来看,不可控符合一般的伦理:骨干网和 Web 服务器里没我几乎没怎么投入资源去建设,我也没脸直接要求控制权。
但这里限制我自由的根本不是因为我缺少资源的所有权,而是侵害自由的实体对我合理利用资源的干预。
理想情况下,健全的网络应该具有自发维护访问自由内容的拓扑结构。现在呢……随便控制个跟你表面八竿子打不着的关键节点就能让你断网。
那么结论就是,不自由的一部分来自 Web 的天性;要鄙视不自由,就顺带把 Web 鄙视在内了。
那么为什么不自由的 Web 还能 dssq 变成无处不在的基建呢……是谁在容忍不自由的扩散?
(还记得我提过么,Web 不是没有替代品。)

顺便,我能修改 Chromium (虽然太屎了我没选择改这个),实现的是在我控制的计算设备上的自由。
Chromium 相对于其它同类项目更加被鄙视,一个重要原因恰恰就是在 Web 之外更加实际有效地剥夺用户的自由(其实要论对 W3C 和 TC39 之类的影响,该集中鄙视的是 Google 而非 Chromium 单独一个项目)。例如,假定多任务操作系统上 Chromium 就比其它应用更“高贵”而肆无忌惮地优先抢占内存。
这种直接伪装人畜无害地竞争计算资源的策略比个别恶意限制你访问还离谱多了,因为无差别恶心所有用户,而其中大部分人是没能力改变这种状况,甚至根本发现不了损失计算资源的原因,搞不好还会嘲讽捍卫自由者:“内存就是应该拿来用的!”
Web 不过是这种恶心状况的放大版罢了。这方面我只能建议你先扫自家门前雪罢。
(其实这种状况何止 Web ……Android:???)
5 天前
回复了 Ljcbaby 创建的主题 Windows Win 下 打开 EROFS img 工具
@Buges 首先,我拒不接受你所谓的立场之争的定性,特别是你还在扣别人“不懂”贼喊捉贼的同时。
如果非得认为有立场,那么情况就是——你在宣扬反智,以你狭隘的偏见来覆盖正常人对“立场”这个汉语词语的外延的理解;而我和许多其他人不用关心你的“立场”的其它具体内容,在这里就已经站在你的对立面上。
一般强调立场,同时蕴含着分歧的正当化。即便我并非要摁着你的头让你对不同的不当观点认错,你也应当明白不是所有观点不同都能让你轻描淡写地以“立场”糊弄过去。
不好意思,我一开始就对所谓的“立场”毫无兴趣;你应当认识到,你没有资格把你的这种狭隘强加于和你平等交流的正常人的观念之上。
你有意地把类似意识形态为纲的“立场”凌驾于其它分歧之上,贬损其它值得讨论的问题的价值,通俗点讲就是坏。
有人把你当作民科批判是比较轻描淡写的了;民科主要是指无知的蠢,但平均可没坏到你这个程度。

其次,你所谓的“装看不懂”的结论,应该就是你的立场论调的消极后果的体现。
我是在哪里装看不懂,看不懂了啥呢?
还有哪些方面,有你想到的而我没想到的东西呢?

第三,我不懂,那么你懂?
我反复强调过一些解决实际问题的目的出发工程常识的问题。
之前我早就简单说过这点,你仍然是一副所谓“刻意离题”的态度。
你的所谓“建立加密信道进行网络连接的人,屁股……”不是更加离大谱的题?
(老实说我得向 OP 道歉,没能解决主题而跑题了,不过 OP 看来也乐于看到你吃瘪,就先借地方不污染外面了。)
就先不说你坏了,这里只能认为你是真不懂。不是纸上谈兵,是外行瞎指挥。
什么叫“扩展的工作量必然小于完全重写”?你搞清楚原始需求了吗——里面有“扩展”什么?
你的观点充分体现出你在臆测。如果真够有常识,那么就该意识到已有的东西和没有的东西是两回事。除非需求不是直接明确要求扩展,那么扩展现有设施的复用或者另起炉灶的决策相对于需求就是实际细节,两者不是先验地互相可替代的。哪来的“必然”?
已知这里的需求明确就不是“以 squashfs 为基础扩展出新的 fs”(撑死就是扩展 Linux 的现有的更加基础的设施),新的工作和已有的 fs 是并行的。所以度量工作量根本和已有的同类工作无关,看的就是这件工作自身——要么是详细的设计和实现的计划,要么干脆就是看结果。你这么做了吗?
反过来,如果你直球钦点 erofs 缺少进步而接近无效劳动,乃至就是“垃圾”,我在这方面不会那么鄙视你。毕竟我还没空整体评审这些方案的不同,所以你大可以生造我不清楚的细节——但这方面的思路看来已经被其它回复堵死了。

第四,我没兴趣继续跑题,不过揭你逻辑的短很过瘾,那么继续。

> 这就叫“卡脖子”
> 这就叫自主可控
> tls 是不可控的
> ……这就叫自主可控

给出引用来源,或者不是你原创研究脑补的论据。

> 导致我们无法区分合法和非法流量

“我们”是谁?

> 开源社区是包容的

提醒你一下,这不是事实判断。有疑问可以另外解释。

> 被某实体设计和主导开发方向的代码越多的进入开源社区,某实体的话语权和可控程度就越高,这就是对开源生态的污染。

这是你的“合理推测”。不过你确定你所谓的某实体有能力做到什么程度呢?

> 在这里掰扯 RMS 那一套没有什么意义
看来你是反 RMS 咯?
我提 RMS 除了(口嗨)黑 RMS 外,主要就是拿来当对号入座的标靶。你亲口承认否定了自由软件运动的最主要流派的立场(这里是正儿八斤的“立场”),表明你其实就是叶公好龙或者小鬼,如此甚好。(反正我也不和 RMS 穿一条裤子。)

> “自由” by definition 就是不被任何实体“可控”

这就是你被害妄想式的捉急汉语水平了。
容我直接鄙视你一下:不由我“可控”,谁替我保证我的自由?只能指望物理定律吗?
你凭良心说,实际在跑的代码,里面你自己能看清楚的部分,不比别人(甭管这些人是什么立场,反正不可能是你的克隆体,更没义务和你的思想同步)替你亲自看过摸过的更“可控”?
哦,你要是没本事看懂,那倒是一样了。不过,这样的你准备损失多少热脸蹭“自由”的冷屁股呢?
当然,你还可以强辩,虽然自己看不懂改不掉管不了,但是别人和别人之间也是不一样的。你选择以“立场”决定哪些人更值得相信,那是有效接近自由的趋利避害。
逻辑上这没问题,不过至少我是有资本自然鄙视这些劣等方案的。
你能臆想出来的谁比谁更值得信任,很大程度就不是客观实在。大家都是 as-is ,谁需要在乎你?
说到底,你的概括“立场”的能力,撑死仅限识别有限的极个别的恶意,而且因为你不是什么重要的目标才正好能让你以为有效(虚假的接近“自由”的安全感)而沾沾自喜。
反过来,我原则上就不屑区分有没有被恶意针对;无意的 bug 一样会坑到我,而让我严重损失自由。直接按风险和后果排序,把可能的威胁一个个摁死,是更直接的做法。
标识恶意是一种维护自由的手段,本质上和其它更积极地追求自由的目的没有什么区别,但当不被明显针对时,积极排除恶意的性价比极其不划算。就像社工也是攻防手段的一种,跟利用密码学实现一些目的上本没什么高下,但作为防守方,当明显的低级错误被排除而不值得被针对后,无视弱口令风险而继续盯着这块不放,就极其愚蠢了。
那么在这里,到底是谁更能接近自由(你说的,不管怎么定义)?
6 天前
回复了 Ljcbaby 创建的主题 Windows Win 下 打开 EROFS img 工具
@Buges 1. 没有必要多讨论你的被害妄想。这个问题上有立场的话,差异也只是是不是反对你的立场。
(你要还硬认为这里有人是支持 KPI 项目的立场,那是另一个妄想了。)
2.明显是你没理解这个含义。
Linux 加个文件系统是“小小”的功能增加是不是你一家大言不惭我先不提(毕竟硬说的话你“小小”到一堆 return ENOSYS;技术上都能算加了文件系统的实现),变成微内核算颠覆性重写也没什么疑问,但是提供新的实现到底是小不小,根本上跟原有功能多大没关系,除非你证明新增的东西就是基本从原有功能抄了一份没加多少改动。你明显没支撑起你的观点,这是你基本的逻辑硬伤。
你的进一步的硬伤在于,没认清(或者有意混淆)是不是“小小”和你认为有没有价值这两回事。反正源码树就在那,是不是“小小”就没多少主观判断的余地。要按你的说法上纲上线,我就得怀疑你是根本不懂如何判断工作量的问题强行乱杠了。
3.明显就有问题。我一开始都没表态自由应该有什么内涵,只是直接跟现有的现象对号入座罢了。你表达的所谓理念不仅没完全分清楚自由和开源非自由,而且连“正统”的抠脚皮大汉式自由都算不上。(黑 RMS 是顺带。)你想欺负这里没人比你熟悉自由软件运动吗?

“某国”的价值观,某国是自然人?谁授权代表的?

至于自主可控,倒是你屁股问题了,显而易见。
不巧,我就认为自主可控的主语是我,因为光说软件,我还刚好真有单人直接“可控”地全生命周期地部署许多我日用的关键应用的能力——必要时我甚至大都能自己实现,阻碍我的只有物理原因;或者就算这个应用不是我自己写的,我至少比这里大多数人(应该包括你)都更能做得到更接近完全自主。
(讲个笑话,我都有本事以不输于原作者的深度审查许多你们用的开发技术的理论依据到实现,同时重新发明你能想到的绝大多数日用轮子,要是全栈到这个程度的我都做不到可控,这个星球上又有几个人能做得到? RMS 能?他先糊个 operational semantic 检查一下 C spec 的漏洞?)
正因为你根本就忽略了这种可能性,所以才先入为主地认为需要有某些组织和群体的保障才能保证可控,然后把我和某组织对立起来,却完全没注意到这两种“自主”算得上两个次元的东西。
不过,就算合二为一,你怎么就那么清楚,我完全没能力收割别人的成果呢?不过是比起我自己亲自“自主”,耗费资和信任成本的开销导致效率比较低罢了。
你所谓的理念,特别是提到的那个什么 reputation ,说白了也是这种机制:因为自己控制不了(我自然是不能完全控制每个我摸过的软件,而你怕是接近完全不能控制),所以选择相信有 reputation 的人干活承担风险。
这里于我的问题有两点:
那群人再怎么有 reputation ,也没义务配合我的需求;
代码又臭又长,神仙也救不了。
比开源“多”出来的“自由”的作用就是避免有人藏着掖着而已,同样不能解决这两点的根本困难。(而软件方面,我都不屑于管有藏起来的东西,控制不了隔离就是了,真有本事物理黑我的还用雕虫小技刻意恶心我?所以这种自由对我来说没多大用。)
你所谓的资源不如我能摸得到的东西,我干嘛觊觎你的屁股?你要在这里被害妄想我也没办法。

我不反对对自己本事不够自信的用户无脑走群众运动路线。不过,你走的路线现在看来也不是那么合群的了。
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4287 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 14ms · UTC 01:46 · PVG 09:46 · LAX 18:46 · JFK 21:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.