Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
pron
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
68 ms
·
961.
▲
by
pron
2y ago
We should separate the problem from the solution. The problem is that running tests may require relatively many integrity-busting flags. That is true. There are, however, better solutions than a global test-mode flag that, invariably, will
962.
▲
by
pron
2y ago
There's ongoing work, as part of Project Leyden, to cache certain computations -- either performed by the user code or the JVM -- from one run of the program to the next, including the caching of JIT-compiled machine code. The early pa
963.
▲
by
pron
2y ago
We've addressed that in the JEP. Serialization libraries have a special way to circumvent this (until we get Serialization 2.0), and mocking libraries may, indeed, need to set the flag, but they're rarely used in production, so if
964.
▲
by
pron
2y ago
C++ developers worry about all UB, but we don't worry about all of them to the same extent . MITRE's CWE Top 25 [1] lists out-of-bounds write as the second most dangerous weakness, out-of-bounds read as the sixth, and use after f
965.
▲
by
pron
2y ago
It is more common (and/or more necessary) to either write unsafe code or call out to unsafe code written in some other language in Rust than in Java. BTW, I wouldn't call a language that violates memory safety without an explicit
966.
▲
by
pron
2y ago
> We're essentially continuing to ship faulty software while hoping that tooling will protect us from the worst consequences. It is the consequences that give rise to the cost of a bug or the value of preventing it. > Couldn'
967.
▲
by
pron
2y ago
Most server software these days is already written in memory-safe languages yet still has security vulnerabilities. If you reduce the vulnerabilities due to memory safety issues by, say, 90%, then there's nothing special about them any
968.
▲
by
pron
2y ago
> True, but the Client x Server concerns seem to be overlapping now, across the board. Sure, which is why you're seeing this work. > While ART has had tiered compilation (C1/C2 in the OpenJDK world) for quite a while. I also
969.
▲
by
pron
2y ago
Just to be clear, the pause in ZGC is done as an optimisation of thread synchronisation (there's no GC work done in the pause). It's just as easy to do things without anything you would consider a pause, only it's less effici
970.
▲
by
pron
2y ago
The Leyden team are looking to do exactly what you're looking for. There will be further JEPs.
971.
▲
by
pron
2y ago
We call them low-latency GCs, but I was responding to a comment that called the same thing "pausless". However, even programs without any GC pauses can have pauses of a similar duration due to OS activity, so programs on regular O
972.
▲
by
pron
2y ago
Native Image does exactly that already, but producing an AOT-compiled-and-linked native executable is not the goal, it's just a means to some goal. The real question is what is it that you want to optimise? Is it startup/warmup ti
973.
▲
by
pron
2y ago
Both the requirements and the workload challenges of server-side applications differ greatly from client applications. The JDK has had a pauseless GC (i.e. <1ms pauses) for 18 months now. The need for fast startup and warmup in server-si
974.
▲
by
pron
2y ago
> If people misunderstand your message because you chose your words poorly, that's your fault. But nobody misunderstood a message, which was clearly communicated in the talk. The response was to a talk title , and titles often just
975.
▲
by
pron
2y ago
Because you're not writing a program. You're writing an abstract algorithm and this makes the algorithm slightly simpler to express without losing anything. If you don't like that, you can use a special error value instead ev
976.
▲
by
pron
2y ago
They could be, but using -∞ makes the abstraction simpler, and it's easy to map -∞ to an error when showing the conformance of the implementation to the abstraction.
977.
▲
by
pron
2y ago
> But in realistic use cases for max, I want to assume that it produces a finite number, and if the inputs are integral, I expect an integer to pop out. But that's his point. You're talking about a concrete concern about code,
978.
▲
by
pron
2y ago
> These fine-grained attempts at parsing the words to mean things other than how they are commonly used doesn't serve any purpose. Except we're talking about a talk title . Lamport explains what he means in the talk. What I re
979.
▲
by
pron
2y ago
You clearly have not watched the talk. His point isn't that "coders" aren't "programmers", but that coding — i.e. the act of writing code , i.e. text in a programming language, i.e. text that can be interpre
980.
▲
by
pron
2y ago
Sure, but once soundness starts trading off other properties that may be important even for that kind of correctness, it is not necessarily the best approach. You don't care what the cause of the exploitable remote execution vulnerab
981.
▲
by
pron
2y ago
I agree that good separate compilation is valuable, but having a full ABI for natively-aot-compiled languages is rather difficult once generics are involved. Even C++ doesn't have one (and if you think about it, even C punts on separat
982.
▲
by
pron
2y ago
I tend to agree, but writing code in a memory-safe language is not the goal. The relevant goal on that particular front (and it is not the only goal people have when writing programs) is to maximise the resulting program's correctness
983.
▲
by
pron
2y ago
Of course they count, but they never reached Zig's expressivity/simplicity ratio. For example, Oberon doesn't have generics. You could argue that Zig doesn't have dynamic dispatch as part of the language, but it's e
984.
▲
by
pron
2y ago
I've been doing low-level programming for over 30 years now, and Zig's use of comptime as a simplifying feature is nothing at all like C++'s or D's (it is more conceptually similar to the role macros play in Lisps). Deny
985.
▲
by
pron
2y ago
> It's interesting that so many replies in this thread (and indeed, most Zig threads) are along the lines of "yes, it doesn't do X today, but Zig could just add X". That wasn't my argument. > After all, you do
986.
▲
by
pron
2y ago
I would say these are more differences than issues, and that some of those presented as more fundamental ones are actually quite small. Suppose that instead of `fn foo (comptime T : type, ...) { typecheck(T); ...}` Zig introduced just a tin
987.
▲
by
pron
2y ago
Generics, interfaces/traits/concepts, macros, conditional compilation, const functions/constexpr. These are four or five different features in C++ or Rust, some of which are quite complex, all expressible as one simple constr
988.
▲
by
pron
2y ago
> One (maybe the) distinguishing feature between comptime in Zig and Rust macros seems to me to be access to type information. In Zig you have it[1] in Rust you don't and that makes a big difference. There are other differences. Fir
989.
▲
by
pron
2y ago
All OpenJDK distributions, from all vendors, are also licensed by Oracle (which develops OpenJDK) with the GPLv2+CPE licence. The vendors build Oracle's source code and host branded binaries. If you file an issue, unless it's a pr
990.
▲
by
pron
2y ago
My experience with LLM has been that if the question/search is basic or common (in any particular subject), the results are no better than an ordinary search, and if it isn't, the responses are too frequently wrong. The problem is
More ›