https://www.reddit.com/r/rust/comments/1cdqdsi/comment/l1e722d/
For instance, the orphan rule is *absolutely* a problem. It affects ecosystem scaling in multiple ways. It means that if you have a library A providing a trait and a library B providing a type, either A has to add optional support for B or B has to add optional support for A, or someone has to hack around that with a newtype wrapper. Usually, whichever library is less popular ends up adding optional support for the more popular library. This is, for instance, one reason why it's *really really hard* to write a replacement for serde: you'd have to get every crate currently providing optional serde support to provide optional support for your library as well.
In other ecosystems, you'd either add quick-and-dirty support in your application, or you'd write (and perhaps publish) an A-B crate that implements support for using A and B together. This should be possible in Rust.
There are a few potential language solutions to that. The simplest, which would likely be fairly easy and would help many applications, would be "there can only be one implementation of a trait for a type", giving a compiler error if there's more than one.
Reddit
JoshTriplett's comment on "Lessons learned after 3 years of fulltime Rust game development, and why we're leaving Rust behind"
Explore this conversation and more from the rust community
这画图跟动画真棒,比黑板直观很多(
https://www.youtube.com/watch?v=6akmv1bsz1M
https://www.youtube.com/watch?v=6akmv1bsz1M
YouTube
Something Strange Happens When You Follow Einstein's Math
Einstein was wrong about black holes, what else? Use code veritasium at the link below to get an exclusive 60% off an annual Incogni plan: https://incogni.com/veritasium
A massive thank you to Prof. Geraint F. Lewis and Prof. Juan Maldacena for their expertise…
A massive thank you to Prof. Geraint F. Lewis and Prof. Juan Maldacena for their expertise…
边界条件之场
用上了阳间版本的依赖后 host stack 很快就跑通了 😌 测试 hid 键盘报文 Ctrl-Shift-C, Ctrl-Shift-V : ( 0000 0000 ) [ 00 00 00 00 00 00 ] ( 0000 0001 ) [ 00 00 00 00 00 00 ] ( 0000 0011 ) [ 00 00 00 00 00 00 ] ( 0000 0011 ) [ 06 00 00 00 00 00 ] ( 0000 0011 ) [ 00 00 00 00 00 00 ] (…
no_std rust (准确说是 no alloc) 难度比普通 rust 高好多 🫠没有
Vec 跟 VecDeque 还行,手动搓个 stack ring buffer 凑合。没有
Box 就很麻烦了,难以实现 list of owned trait objects 。用 &dyn Trait 的话 ownership 跟 lifetime 让人头大,用 enum 的话灵活性太差。真的很想依赖个 allocator crate 算了 🫠
边界条件之场
no_std rust (准确说是 no alloc) 难度比普通 rust 高好多 🫠 没有 Vec 跟 VecDeque 还行,手动搓个 stack ring buffer 凑合。 没有 Box 就很麻烦了,难以实现 list of owned trait objects 。用 &dyn Trait 的话 ownership 跟 lifetime 让人头大,用 enum 的话灵活性太差。 真的很想依赖个 allocator crate 算了 🫠
guiand.xyz
Storing unboxed trait objects in Rust
Trait objects generally need to be stored on the heap. But normal heap datastructures like Vec need an additional layer of Box to store trait objects. We can eliminate that.
边界条件之场
this is doable in safe stable rust?? 👀 https://guiand.xyz/blog-posts/unboxed-trait-objects.html
看了看
我还是用 enum 吧,简单直接,灵活性实际上也没问题(就是麻烦点
dynstack 的源码,虽然 no_std 但是 extern crate alloc; 🥴我还是用 enum 吧,简单直接,灵活性实际上也没问题(就是麻烦点
边界条件之场
啊呸,索尼你罪大恶极 🤮 #trash #sony #game https://t.iss.one/CE_Observe/32959
箭头之前不是说索尼对他们没有强控制关系吗,怎么强绑 psn 这种事还是发生了?实在是太吃屎 🤮
https://t.iss.one/CE_Observe/32981
https://t.iss.one/CE_Observe/32981
Telegram
每日消费电子观察
强绑 PSN 账号引差评潮:Steam 开始向游玩时长超两小时《绝地潜兵 2》玩家提供退款
============
游戏两天内增长了 10.8 万条差评,而目前V社客服目前已开始为相关政策不满的 Steam 玩家进行特殊退款
https://www.ithome.com/0/765/845.htm
============
游戏两天内增长了 10.8 万条差评,而目前V社客服目前已开始为相关政策不满的 Steam 玩家进行特殊退款
https://www.ithome.com/0/765/845.htm
边界条件之场
看了看 dynstack 的源码,虽然 no_std 但是 extern crate alloc; 🥴 我还是用 enum 吧,简单直接,灵活性实际上也没问题(就是麻烦点
不行,enum 问题很大 🥴 #rust
假设我有
现在我要一个
这个 enum 定义是合法的,但是使用时(在我的知识范围内)完全无法达成规避 trait object 的目的。因为我需要
假设我有
trait A ,为了解决 no alloc no owned trait object 的问题,再尝试定义一个 enum AHelper 包裹所有 impl A 的类型。现在我要一个
struct B<T: A> { field: T } , impl<T: A> A for B<T> ,尝试把 B 囊括进 AHelper:enum AHelper<T: A> {
B(B<T>)
}这个 enum 定义是合法的,但是使用时(在我的知识范围内)完全无法达成规避 trait object 的目的。因为我需要
T 类似 trait object ,没有 trait object 那就尝试用 AHelper 。然而用 AHelper 会导致 recursive type AHelper<AHelper<...>>> 。
边界条件之场
不行,enum 问题很大 🥴 #rust 假设我有 trait A ,为了解决 no alloc no owned trait object 的问题,再尝试定义一个 enum AHelper 包裹所有 impl A 的类型。 现在我要一个 struct B<T: A> { field: T } , impl<T: A> A for B<T> ,尝试把 B 囊括进 AHelper: enum AHelper<T: A> { B(B<T>) } 这个 enum 定义是合法的,但是使用时(在我的知识范围内)完全无法达成规避…
&dyn Trait 在我的使用场景下也没法用,因为我要在运行时 .clone() ,不能 own 的话 clone 完没地方存。或者需要给每个 impl Trait 的类型都准备一个 buffer 来存,可维护性和可拓展性感觉会很糟糕……想一想可能真的需要「依赖个 allocator crate 算了」🫠
但我是从 c binary link rust static lib,不了解 rust 这边额外跑个 allocator 会不会有什么问题
边界条件之场
hmmmmm, 实际上也用不了 trait object 🤔 有点棘手
为了使 trait object safe ,我可以把
不是个大问题,但不爽(
proceed 函数的 function generic const 改成 trait generic ,再扩散成某个 struct generic 。但那样会由于 struct init 的时候无法 infer 这些 generic const 而需要显式写出,导致之后调用 proceed 时无法随意传入 const 参数不同的变量。不是个大问题,但不爽(
边界条件之场
为了使 trait object safe ,我可以把 proceed 函数的 function generic const 改成 trait generic ,再扩散成某个 struct generic 。但那样会由于 struct init 的时候无法 infer 这些 generic const 而需要显式写出,导致之后调用 proceed 时无法随意传入 const 参数不同的变量。 不是个大问题,但不爽(
不打算让 trait object safe ,那就需要一个类似 trait object 但又不是 trait object 的东西。之前提到的
enum AHelper 存在 recursive type 问题,需要引入某种 indirection 来解决。我需要 owned indirection, Box 虽然没能被用于 trait object ,但这回应该没问题:enum AHelper {
B(B<Box<AHelper>>)
}
边界条件之场
不打算让 trait object safe ,那就需要一个类似 trait object 但又不是 trait object 的东西。之前提到的 enum AHelper 存在 recursive type 问题,需要引入某种 indirection 来解决。我需要 owned indirection, Box 虽然没能被用于 trait object ,但这回应该没问题: enum AHelper { B(B<Box<AHelper>>) }
实际上一开始还是有点问题。假设:
在这种情况下
#rust
trait A {}
struct H {}
impl A for H {}在这种情况下
H 有 impl A 但 Box<H> 不会自动有 impl A ,需要手动加个 impl A for Box<H> 。或者写个 blanket impl :impl<T: A> A for Box<T> {}#rust
Forwarded from 搞机日记 (路中南)
快一年了,继续和频道朋友们交代一些事情、简单聊聊。
1、在频道转私有的时候,原有的频道ID gcjiriji 被注册了,因此点击之前的频道链接会跳转去另一个频道,好像是个盗版影视的频道?在这里声明一下,这个频道与本频道以及路中南没有任何关系。
2、在停止这个频道之后,我另外维护了一个叫做「发电机房」的频道,断断续续也在更新和分享。这让我意识到我自己并不是一个很好的传播者,我依然持续探索,但是在分享的时候不想面面俱到、事无巨细。比如发现一个很好用的浏览器插件全平台上架唯独少了 iOS 平台,我会分享「可以从它的开源仓库里面提取出油猴脚本修改并且挂载到 Safari 里面」,但并不会详细介绍每一个步骤。后者是不利于传播的。
3、我对数码产品的消费越来越少。一方面是了解多了之后,对它背后的价值有更清晰的认识,而非为了营销词汇买单(这件事本身我认为是合理的,有的广告让人看了就想买);另一方面也意识到了自己的需求其实非常简单,无非就是刷刷网页和视频而已,这对于一台五年前的手机或平板来说依然是小意思。可能是因为过去胡乱消费带来的不快乐后果,我现在想做一个有消费责任感的人。
4、依然是双持党,意识到 iOS 的某些场景的确更具优势,比如银行App、通知推送、中文本地听写等等,但是另一些场景明显是 Android 更有优势,比如开放插件生态后的 Firefox(事实上光这一点就够了)、还在维护的各类 gcam mod、便利的文件管理、Termux等等。和之前一样,我不会偏向于一边倒,我会鼓励分阵营双持,能观察到不同公司的思考也挺有意思。
5、依然会零星接到一些询问购买 Pixel 的邮件,有些甚至是发到我工作邮箱的😂感谢肯定,Pixel 还算是(越来越昂贵的)有意思的设备,但是在大陆我会更倾向于港版系统的三星。去年,我为了 Sultan 内核购买了一台二手 Pixel 7 Pro,很好玩。
6、搞机后时代,我把很多精力放在了运动、饮食和健康上。换言之开始折腾自己的身体了。同时越来越意识到从青少年时期遗留下来的饮食/运动习惯、孱弱多病的身体对我工作和生活的影响,以及导致不健康肥胖(脂肪肝)。
(感谢远程工作让我能够有这样的精力研究这些。)
其实这方面的「玄学」和各执一词的研究非常多,尝试了生酮、间歇性断食、HIIT等等,在两年前我成功减重15kg、摆脱脂肪肝而后又逐渐反弹回去复得。可能真的自己试过才知道应该如何去坚持探索出的有效方法。尽可能远离含糖饮料、热量限制、摄入纤维、保持运动等等,里面门道还挺多的,找到自己有意思、能坚持的方法就可以。我印象很深刻好像是钟文泽说自己每天会运动一个小时,我现在差不多也接近这个值了。体重是一点没下去,但是自己能感受到身体一点点变健康,充满精力的同时有氧代谢能力也在慢慢上来。以往好像春季咳嗽一个月、冬季咳嗽一个月,这样的情况我不想再发生了。
说起来,跑步的时候听听播客,一个月下来真的听了好多呀,了解到不少有意思的信息和观点。搞得我都很想发表一些类似「一个个吹自己手机有AI能力但是怎么还没有赶上一年前能在 4GB RAM 上流畅本地运行带标点符号补全的中文听写啊?」这样的暴论。
7、感谢在这个过程中各位同事和朋友的交流和信息分享。
1、在频道转私有的时候,原有的频道ID gcjiriji 被注册了,因此点击之前的频道链接会跳转去另一个频道,好像是个盗版影视的频道?在这里声明一下,这个频道与本频道以及路中南没有任何关系。
gcjiriji 这串字母并非空穴来风,是小鹤双拼下搞机日记的拼写。2、在停止这个频道之后,我另外维护了一个叫做「发电机房」的频道,断断续续也在更新和分享。这让我意识到我自己并不是一个很好的传播者,我依然持续探索,但是在分享的时候不想面面俱到、事无巨细。比如发现一个很好用的浏览器插件全平台上架唯独少了 iOS 平台,我会分享「可以从它的开源仓库里面提取出油猴脚本修改并且挂载到 Safari 里面」,但并不会详细介绍每一个步骤。后者是不利于传播的。
3、我对数码产品的消费越来越少。一方面是了解多了之后,对它背后的价值有更清晰的认识,而非为了营销词汇买单(这件事本身我认为是合理的,有的广告让人看了就想买);另一方面也意识到了自己的需求其实非常简单,无非就是刷刷网页和视频而已,这对于一台五年前的手机或平板来说依然是小意思。可能是因为过去胡乱消费带来的不快乐后果,我现在想做一个有消费责任感的人。
4、依然是双持党,意识到 iOS 的某些场景的确更具优势,比如银行App、通知推送、中文本地听写等等,但是另一些场景明显是 Android 更有优势,比如开放插件生态后的 Firefox(事实上光这一点就够了)、还在维护的各类 gcam mod、便利的文件管理、Termux等等。和之前一样,我不会偏向于一边倒,我会鼓励分阵营双持,能观察到不同公司的思考也挺有意思。
5、依然会零星接到一些询问购买 Pixel 的邮件,有些甚至是发到我工作邮箱的😂感谢肯定,Pixel 还算是(越来越昂贵的)有意思的设备,但是在大陆我会更倾向于港版系统的三星。去年,我为了 Sultan 内核购买了一台二手 Pixel 7 Pro,很好玩。
6、搞机后时代,我把很多精力放在了运动、饮食和健康上。换言之开始折腾自己的身体了。同时越来越意识到从青少年时期遗留下来的饮食/运动习惯、孱弱多病的身体对我工作和生活的影响,以及导致不健康肥胖(脂肪肝)。
(感谢远程工作让我能够有这样的精力研究这些。)
其实这方面的「玄学」和各执一词的研究非常多,尝试了生酮、间歇性断食、HIIT等等,在两年前我成功减重15kg、摆脱脂肪肝而后又逐渐反弹回去复得。可能真的自己试过才知道应该如何去坚持探索出的有效方法。尽可能远离含糖饮料、热量限制、摄入纤维、保持运动等等,里面门道还挺多的,找到自己有意思、能坚持的方法就可以。我印象很深刻好像是钟文泽说自己每天会运动一个小时,我现在差不多也接近这个值了。体重是一点没下去,但是自己能感受到身体一点点变健康,充满精力的同时有氧代谢能力也在慢慢上来。以往好像春季咳嗽一个月、冬季咳嗽一个月,这样的情况我不想再发生了。
说起来,跑步的时候听听播客,一个月下来真的听了好多呀,了解到不少有意思的信息和观点。搞得我都很想发表一些类似「一个个吹自己手机有AI能力但是怎么还没有赶上一年前能在 4GB RAM 上流畅本地运行带标点符号补全的中文听写啊?」这样的暴论。
7、感谢在这个过程中各位同事和朋友的交流和信息分享。
Forwarded from Rachel 碎碎念 (Rachel 🐨)
南宫雪珊
如果用户空间在比较路径时没有执行与内核相同的步骤,会引入安全问题,导致本应拒绝访问的路径被绕过。
实测在受影响的设备上,通过零宽空格的方式,可以绕过系统对读取路径的限制,访问其他应用的分区存储
这就是我们 Android 的分区存储啊,真是分分又区区
测试设备:小米 13 / HyperOS EEA
这就是我们 Android 的分区存储啊,真是分分又区区
测试设备:小米 13 / HyperOS EEA
1.0.4.0.UMCEUXM💩1