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…
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…
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…
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…
..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't…
Such source-level warnings do exist in various forms in various languages. Tying such in with optimizations largely just does not work, given that functions with an unused return value exist, being dead code after…
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…
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.
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…
Ampere Altra is for cloud/datacenters/servers where multithreaded throughput is approximately all that matters. Apple M series is for consumers.
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…
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/9699919799/utilities/e... literally…
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…
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…
> 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…
> 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…
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…
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…
> 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…
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;…
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 not fit your…
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…
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)
Some alternative spellings: (¬∘∧⟜«' '=⊢)⊸/ (¬·«⊸∧' '=⊢)⊸/ {¬«⊸∧' '=x}⊸/ # should have double-struck x here (U+1D569), but hn removes it
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.
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…
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…
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…
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…
..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't…
Such source-level warnings do exist in various forms in various languages. Tying such in with optimizations largely just does not work, given that functions with an unused return value exist, being dead code after…
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…
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.
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…
Ampere Altra is for cloud/datacenters/servers where multithreaded throughput is approximately all that matters. Apple M series is for consumers.
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…
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/9699919799/utilities/e... literally…
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…
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…
> 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…
> 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…
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…
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…
> 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…
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;…
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 not fit your…
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…
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)
Some alternative spellings: (¬∘∧⟜«' '=⊢)⊸/ (¬·«⊸∧' '=⊢)⊸/ {¬«⊸∧' '=x}⊸/ # should have double-struck x here (U+1D569), but hn removes it
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.