Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
dzaima
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
6 ms
·
31.
▲
by
dzaima
3mo ago
Rather depends on definitions; GPL does contain: > The "source code" for a work means the preferred form of the work for making modifications to it. With that definition, there's definitely space for arguing that the AI to
32.
▲
by
dzaima
3mo ago
FYI, your "8‿64 •bit._cast -⟜@ raw" in bqn/util.bqn results in passing to •bit._cast integers in the range 0..255, whereas it expects integers ¯128..127 (and does arbitrary platform-specific things on integers outside that fo
33.
▲
by
dzaima
3mo ago
Perhaps some early things in the pipeline could be easier with a saner language, but I can't imagine it affecting much of the core optimizations, which'd all benefit from being ran on some messy low-level intermediate form equival
34.
▲
by
dzaima
3mo ago
Formal proofs for specific instruction sequence substitution (e.g. LLVM's instcombine) are simple-ish enough via just throwing SMT at it, ...as long as the source pattern and target replacement are in a format from which both the compi
35.
▲
by
dzaima
3mo ago
..except, if you want to add logging/metrics/other logic, it's quite possible you'll want it to be conditional on the boolean anyway, bringing branching back, now mixed with the non-branching code. And even if you don&#x
36.
▲
by
dzaima
3mo ago
Such source-level warnings do exist in various forms in various languages, with various levels of fixed analysis done for determining them. Tying such in with optimizations largely just does not work, given that functions with an unused ret
37.
▲
by
dzaima
3mo ago
Note that glibc does provide a malloc_usable_size to query the size of a malloc'd block; not standard though of course. A problem with just directly exposing such is it makes precise sanitizing impossible, as you'd have to tolerat
38.
▲
by
dzaima
3mo ago
Not that I know of; and such would necessarily have false-positives (...or, rather, entirely consist of potential false-positives) because you may actually want the re-read.
39.
▲
by
dzaima
3mo ago
The crappiness of shrink-wrapping in gcc and clang (but especially clang) annoys me a lot. It feels like there should be a quite decent amount of general performance to be gained from properly pushing more into slow paths (or, not necessari
40.
▲
by
dzaima
3mo ago
Ampere Altra is for cloud/datacenters/servers where multithreaded throughput is approximately all that matters. Apple M series is for consumers.
41.
▲
by
dzaima
3mo ago
That'd only help for one object per address space. Main thing needing relocation - shared libraries - needs arbitrarily-many segment bases. And when you're not a library, relocation is just a mild probabalistic security improvemen
42.
▲
by
dzaima
3mo ago
OP links you to POSIX explicitly denoting it being implementation-defined - https://pubs.opengroup.org/onlinepubs/9699919799/utilities/e... , and https://pubs.opengroup.org/onlinepubs/9699
43.
▲
by
dzaima
3mo ago
ECMAScript has a pretty massive amount of fully-specified behavior though; the things that differ between those implementations is nearly-entirely limited to fresh additions like `require` or whatever. The echo thing would be like if ECMASc
44.
▲
by
dzaima
3mo ago
That seems to be be an entirely-different question - `echo "c:\\new"` still differs in behavior between bash and dash - dash parses backslashes in both the double-quoted string, and then echo does another backslash parsing pass, s
45.
▲
by
dzaima
4mo ago
> But this has never been a condition in the FOSS world, as far as I'm aware. I've only ever seen attribution requirements attach to redistribution of source, not usage of the software. AGPL requires that even users using the s
46.
▲
by
dzaima
4mo ago
> That's simply not correct within the applicable meaning of "derives" as understood in copyright law. Would be rather hard to write a definition that handles it properly back when LLMs didn't exist; not that laws par
47.
▲
by
dzaima
4mo ago
Kinda surprised that there's no discussion on that this basically just does not solve the non-canonicality problem. Forgetting to do the range check on the first_byte==255 case and just letting it do 64-bit wraparound is exactly as muc
48.
▲
by
dzaima
5mo ago
How different people approach workflows is fascinating. For example, your "not all that different from looking at all (recent) heads" implies that the number of (recent) heads isn't far off from number of (would-be-)branches
49.
▲
by
dzaima
5mo ago
> It is like writing out a plan for what I want to do. I usually don't have a plan for the end; certainly not what any specific commit would be; sure, I could make one (and either make my future self have to do extra work to figure
50.
▲
by
dzaima
5mo ago
But you probably haven't spent time writing commit messages before a branch is finished. Or, if you have, you've quite potentially just wasted time writing something that will be rewritten anyway as things change; replacing a ch
51.
▲
by
dzaima
5mo ago
In BQN, I've made https://codeberg.org/dzaima/bqn-smt/ (SMT engine bindings, plus various utilities, and a RISC-V & x86 superoptimizer of varying amounts of completeness); ~4KLoC (+1KLoC of tests). Might
52.
▲
by
dzaima
5mo ago
Even if you forbid "time travel", you can still technically optimize many things as if time travel happened anyway - e.g. want to time-travel back to before some memory store? just pretend that the store happened, but then after
53.
▲
by
dzaima
5mo ago
C does allow unconditional infinite loops (e.g. "while (1) { }" isn't UB) but still is UB if the controlling expression isn't constant (e.g. "while (two < 10) { }" is UB if two is a variable less than 10)
54.
▲
by
dzaima
5mo ago
Some alternative spellings: (¬∘∧⟜«' '=⊢)⊸/ (¬·«⊸∧' '=⊢)⊸/ {¬«⊸∧' '=x}⊸/ # should have double-struck x here (U+1D569), but hn removes it
55.
▲
by
dzaima
5mo ago
Presumably just set to a canonical crash in the lookup table of address-to-code; which'd still get you a crash, just not that of the directly-run invalid code.
56.
▲
by
dzaima
5mo ago
Only if it is all actually used at runtime; and presumably the vast majority of possible decoding starting points won't be.
57.
▲
by
dzaima
5mo ago
That's specific libraries, when using the default linker. You could construct that same behavior on desktop linux too. And you can avoid it equally well on Android - you can statically-link things just fine, you can use libraries you a
58.
▲
by
dzaima
6mo ago
eh, there have been a good amount of breaking changes. `-d`/`--destination` → `-o`/`--onto` (the former isn't yet deprecated though); deprecated `--allow-new` on push (or, forcibly making it the default for `--bookmark`); dep
59.
▲
by
dzaima
6mo ago
Don't necessarily need heavy parallel work, or even anything parallel, to make use of jj; it's very nice for even just manipulating one local sequence of commits (splitting commits up, reordering them, moving files/hunks/
60.
▲
by
dzaima
6mo ago
Then you run into the problem of infinite loops, which nothing can prevent (sans `main { exit(-1); }` or other forms of losing turing-completeness), and are worse than crashes - at least on crashes you can quickly restart the program (somet
More ›