What if the compiler is able to use that to determine that a whole code path is dead, and then significantly improve the surrounding function because of that?
Compilers optimise in multiple passes and removing things earlier can expose optimisation opportunities later that can affect other parts of the code too
You don’t want warnings for every piece of code in a library you’re not using or sanity check you added that isn’t supposed to be hit
And you can’t warn when you’re optimising based on undefined behaviour because you can’t know when it will happen, that is equivalent to the halting problem
If you warned whenever undefined behaviour could be happening then e.g. every single pointer deference would say “warning: compiling assuming pointer is not null or unaligned”
> I don’t mean this in a rude way but you should really read the posts I linked, it’s interesting and part 3 especially answers these questions
I have read the entire series. Both in the past and more recently.
> If you warned whenever undefined behaviour could be happening then e.g. every single pointer deference would say “warning: compiling assuming pointer is not null or unaligned”
I am not proposing that at all, I am proposing (which the series you link to does not preclude) that eliding code on the basis of UB can be determined by the compiler. If the compiler can determine that some code block needs to be elided, then the reason for that elision has already been determined, in which case it can issue a warning when "reason" == "pointer already used" when eliding the null check.
When your code can be completely reshaped by earlier passes and macro expansions and inlining I don’t think it’s feasibly to make a useful warning for that
If you include a library function with a null check that gets inlined you probably don’t want a bunch of warnings there for code you don’t even control
Right. But to take the first example, the value of initialised memory.
It's undefined so it doesn't have to be zeroed therefore increasing efficiency.
But it's also UB so if you do know that memory contains something, you can't take advantage of that because it's UB. Having it UB is fine. It's the compilers assuming UB can't happen and optimising it away.
Seems like the anti-clickbait title editing removed the “hundreds of”? This confused me because I thought “oh, they’ve stripped down a Docker image to only 1 megabyte, and then a full game engine adds 34MB more” (I missed the WASM on the first read)
When I had a jailbroken iPhone my bank app (HSBC) would detect it and show a warning but let you continue anyway at your own risk, which I thought was a reasonable compromise
I think the disk space and bandwidth are what make consent needed, because it’s implied that the browser may download small pieces of data but the user would not expect such a large file be downloaded so it should check with them
It works fine if scanned by a machine though (ticket gate, self checkout etc.)
I've used a third party app for this for a UK weekly pass train ticket you could only buy physically, but if you buy it on a train rather than at a station they can't print you a ticket with a magnetic strip and they have to give you one with a barcode (technically an Aztec code), which you can then scan onto your phone and use at the gate. But I kept the original ticket with me too and would use that if a person asked to inspect it
Can you really demand someone not have any references to your product? Surely people are allowed to refer to it to explain their fork's relation to the original, otherwise it would also be illegal to compare your product against competitors in advertising or to review anything
I guess it depends on whether it's likely to confuse people?
As we speak, the Mac version's website is peppered with statements like:
> Is Notepad++ available for Mac?
> Yes. Notepad++ is now natively available for macOS as a free download.
That's over the line. This isn't a few tweaks to get it to compile on a Mac, but a wholesale rewrites of big chunks of it. It's a fork of Notepad++, but it's not the Notepad++.
Saying “Awesome Notepad, a Notepad++ fork” as the tagline for a product would then be using Notepad++’s trademark for Awesome Notepads branding.
If it’s just mentioned in the documents then it because a question for the courts to decide if that’s sufficient use in advertising material. And what will likely usually happen is an undisclosed settlement.
But a lot of this depends on how it’s used, how litigious the trademark holder is, and what jurisdiction this is happening in.
Do you mean Ctrl + scroll wheel? I use that feature quite a lot, I like my font size small but it can be difficult to see for other people so being able to quickly scale it up is really useful
I use Ctrl + <number> to switch between different workspaces on Mac, and half of the time I come back to MS web pages or apps (like Teams) the font is either 9000+pt or then -3pt. Outlook takes the cake though, where for whatever reason they decided to support different font "zoom" levels in different parts. And everyone were dreaming of having the inbox menus in 1pt while having email with 1000pt, right?
Having a tool involved isn't the same as being entirely generated by a tool
For example, without any AI, if I generate a lookup table for the sine function in my code, that table may not be copyrightable because it was machine-generated, but it doesn't somehow make the rest of the code not copyrightable either
"Co-authored by" doesn't imply it was entirely machine-generated
No matter how good the LLM features are, I just want to turn my lights on and off and check the time. A perfect LLM could maybe perform on par with a simple deterministic command system for these tasks, but not better. All an LLM does is introduce the possibility that a command that worked fine yesterday will randomly not work
Also, one of my first interactions with this Alexa+ thing was “how long is it until 8:45am”, one of only a few commands I use it for to work out how much sleep I’m getting, and it proceeded to ask me what the current time was… I immediately turned it off after that
> All an LLM does is introduce the possibility that a command that worked fine yesterday will randomly not work
Aren't hallucinations part of GenAI? I would assume that "AI" voice recognition doesn't have that baked in, but I'm not working in either of those spaces so maybe I'm missing the details. So many things are being looped into the "AI" umbrella that would have just been called machine learning or pattern recognition a decade ago (e.g. "facial recognition" vs "AI" at a time when "AI" also means chatbots like ChatGPT).
The point is Amazon is adding an “Alexa+” mode that uses LLMs. The plain voice recognition + keyword matching or however the old version works is more reliable (I assume, I didn’t use the new mode much because it immediately failed at what I wanted)
Being able to assume certain things don't happen is powerful when you're writing optimisations, not doing that would have a real performance cost
reply