Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
cwzwarich
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
61.
▲
by
cwzwarich
3y ago
Rust actually already does this to some degree, using LLVM’s noalias annotations (after many years of exposing latent LLVM bugs and having to disable them). There’s more that can be done here, see e.g. https://github.com/rus
62.
▲
by
cwzwarich
3y ago
The Rust compiler has several unsoundness bugs that are years old. If you trusted Rust language security in the kernel, these would all be security holes.
63.
▲
by
cwzwarich
3y ago
Even though AMD filed the patent a few years later, this was actually from NextGen, who AMD acquired: https://en.wikipedia.org/wiki/NexGen Here's an old BYTE article from 1994: https://halfhill.com/
64.
▲
by
cwzwarich
3y ago
Actually, you're both right. One of the explanations (albeit, not the only one) given for why boiled wine remains kosher if handled by non-Jews is that it's considered unacceptable for non-Jews to use in idolatrous rituals.
65.
▲
by
cwzwarich
3y ago
> Why is everything in craft brew now shipping in cans instead of bottles? When did that happen? - They block all light - They’re better sealed than bottles - They weigh less and are more compact than bottles - They don’t break - They’re
66.
▲
by
cwzwarich
3y ago
Unit propagation (a major component of CDCL-based SAT solvers) is P-complete, and thus has no effective parallel algorithm.
67.
▲
by
cwzwarich
4y ago
TL;DR: they bridged Elm with React, and when they started using Web Components there was an impedance mismatch between the bridges between Elm/React and WebComponents and the bridge between Elm and React, so they had to pick one of Elm
68.
▲
by
cwzwarich
4y ago
Anyone know what's new in this edition? Both the publisher's site and the author's site are light on details.
69.
▲
by
cwzwarich
4y ago
If you take this idea to its logical conclusion, you end up with Predictive LR(k) (or PLR(k)) grammars: https://link.springer.com/article/10.1007/BF01934444 These are essentially the LR(k) grammars that become LL(
70.
▲
by
cwzwarich
4y ago
> You can build highly sound-proof timber-framed walls, but most people don't because it's more expensive. Like everything in modern construction, the cheapest permissible option usually wins. Especially when reduced cost is th
71.
▲
by
cwzwarich
4y ago
As far as I can tell, the correct way to handle units of measurement in a programming language is by extending unification to abelian groups, as in Andrew Kennedy's work that was later implemented in F#: https://www.microsof
72.
▲
by
cwzwarich
4y ago
Rust's handling of numeric conversions is broken IMO. Implicit conversions to wider types that never overflow should be allowed, and the "as" operator shouldn't silently ignore overflow. I should also be allowed assume t
73.
▲
by
cwzwarich
4y ago
> The C abstract machine, despite looking a lot like a PDP-11, leaks the underlying memory and ordering semantics of the architecture being targeted. The result is that even seasoned C programmers regularly rely on architecture-specific
74.
▲
by
cwzwarich
4y ago
> I don't want to trust binaries built by strangers on the Internet if they hide their behaviors. If a binary really wanted to hide its behavior (at least to the same extent that it could with -fomit-frame-pointer), it could just ma
75.
▲
by
cwzwarich
4y ago
> GPUs today have a more VLIW-like architecture than CPUs Older GPUs seemed more VLIW-like because they were descended from fixed-function rendering pipelines and essentially just exposed the control signals via instruction encodings. Ov
76.
▲
by
cwzwarich
4y ago
Such architectures exist (e.g. for signal processing). They just aren't good for running general-purpose software.
77.
▲
by
cwzwarich
4y ago
I don’t work on x86 CPUs, but it’s my understanding that most “microcode updates” change the values of HW registers (or “chicken bits”) to disable problematic CPU optimizations rather than changing the literal microcode expansions of instru
78.
▲
by
cwzwarich
4y ago
> Hedge funds tracking parking lots with low orbit satellites have more insider information than any official channel. That's not an example of an insider abusing their inside position for their benefit, it's an example of a he
79.
▲
by
cwzwarich
4y ago
Does RISC-V accept changes to ratified specs beyond clarifications of existing intent?
80.
▲
by
cwzwarich
4y ago
The problem of the CPU reordering things only exists on architectures like Alpha. However, there's still the problem of the compiler reordering things (which exists on every architecture), and memory_order_consume was intended to solve
81.
▲
by
cwzwarich
4y ago
You can't express the equivalent of Linux's rcu_dereference primitive in a way that avoids data races without using memory_order_acquire (or memory_order_consume, which is treated like memory_order_acquire in all implementations,
82.
▲
by
cwzwarich
4y ago
The keyword to search for is "memory_order_consume", which was C++11's proposed solution to the problem that turned out to not work in practice. Here are some of the C++ WG documents describing the issues: https://
83.
▲
by
cwzwarich
4y ago
Although, somewhat amusingly, neither C++ nor Rust (which basically just copies the C++ atomics and memory model) can be used to correctly express RCU written within the language. The leading proposal for C++ (at least AFAICT) is to just ad
84.
▲
by
cwzwarich
4y ago
It would be nice if Rust could do this, but it breaks backwards compatibility. Some existing code depends on pointer values of &T being equal or not equal.
85.
▲
by
cwzwarich
4y ago
JITs also modify the code at the destination of the function pointer, which was likely also code at a different time (since it usually needs to be allocated from a separate heap that is marked executable). If the CPU prefetched/cached
86.
▲
by
cwzwarich
4y ago
All JITs use self-modifying code, and JITs are more popular now than even 15 years ago. Although you might make a distinction between modifying code that has already executed once, from the perspective of instruction/data consistency o
87.
▲
by
cwzwarich
4y ago
> Unlike Go's, rust's panics do not actually, universally, get "propagated up the call stack until they reach a "catch point", where they can be handled by the programmer". There's a compiler flag whic
88.
▲
by
cwzwarich
4y ago
Those abstractions are still leaky, e.g. it's entirely possible that an optimizing compiler could apply correct monoid laws and end up with a program that has vastly different space usage.
89.
▲
by
cwzwarich
4y ago
Were you testing on the same platform? The Microsoft ABI has callee-save XMM registers, whereas the Linux/macOS ABI does not. Regardless, it would be nice if more compilers could do interprocedural register allocation in cases where al
90.
▲
by
cwzwarich
4y ago
> Destroy someone's career and livelihood with unsubstantiated claims. Hans admitted cheating while playing games on Chess.com. Is alleging that he cheated more than he previously admitted destroying his career and livelihood?
More ›