And the reason for this is that there is no branch needed at the end of the borrow, to check for refCount=0? (Or, is this at least one of the reasons?) I'm wondering about the performance impact for this... There's also the code size impact.
654 karma · joined June 19, 2018
And the reason for this is that there is no branch needed at the end of the borrow, to check for refCount=0? (Or, is this at least one of the reasons?) I'm wondering about the performance impact for this... There's also the code size impact.
That seems like a disavantage, but actually most data is bit-addressable in one way or the other; even strings, if you look at the UTF-8 representation.
What I'm a bit worried is the number of levels: it seems to be 1 level per bit in the key. And "a tree node is typically 20-bytes long on a 32-bit system". So that is 20 bytes per bit in the key. I wonder if the memory usage could be reduced in a simple way. For example using larger "pages" that contain arrays.
In my view, improving "long range" compression has the biggest potential. There are many, many algorithms and implementations for very short range (huffman, arithmetic, ANS) and short range (LZ, BWT), but not that much research has gone into "long range" yet. There's deduplication, and large-window LZ / BWT.. but not much more yet. What is missing is efficietly (and with little memory) finding similarities on multi-GB data sets. I think sorting by similarity would help there. Or did I miss research in this area?
The problem (for the scammer) is to find out, efficiently, _who_ would give (a lot of) money. In the past, they sent email that had typos - I think on purpose: the probability that someone would send money is higher if he doesn't detect that.
With AI, this got _much_ easier, and scales much better: you can generate very convincing text, images, videos and interact with many, many potential victims. The story itself, it seems, doesn't need to be too convincing.
We currently call spent batteries "empty" but in this case spent = "full" (of oxygen).
I could imagine people want a programming language that is: memory safe, without GC pauses. A bit slower by default than C / Rust, but with the _option_ to make it as fast. Then easier to learn, less vendor lock-in than Swift, and a modern syntax (no null pointers etc).
I don't think such a language exists currently.
He experimenting hours and was proud of what he did. He wanted to show it to as many as possible, so he ignored what the teacher said. He was interrogated. Why more than one hour? It could have taken less then 10 minutes if you ask the teacher. Why was he handcuffed later? The police clearly wanted to make a statement or show.
If each arena maintains a counter of live objects, then the arena can be dropped if it reaches zero.
I'm working on my own programming language and want to support multiple allocators. Usually languages just support one OR the other, safely.
But yes, buffering the entries and then sorting them does make sense. That way, each cache line is only accessed once, and prefetch works well. We have used radix sorting for the binary fuse filter https://arxiv.org/abs/2201.01174 . For the blocked Bloom filter I'm not sure if it will help however, due to the added complexity. In my tests, it didn't help. There is the "prefetch" operation but we had mixed results with that (buffering and sorting was faster).
With a good implementation it would be roughly 10 times faster, eg a SIMD implementation. For example here https://github.com/FastFilter/fastfilter_cpp/blob/master/src... (there are others)
I remember when I lived in the United States, you basically had "fat free" (with lots of sugar) and "greek" (with a little bit of fat, in addition to the sugar). That was 20 years ago, so it might have changed since then.
I'm arguing that this is not the case in reality, and asked for concrete examples... So again I ask for a concrete example... For memory corruption, there are plenty of examples.
For parsing, I know one example that lead to problems. Interestingly, it was about using a state machine that was then modified (manually) and the result was broken. Here I argue that using a handwritten parser, instead of a state machine that is then manually modified, would not have resulted in this problem. Also, there was no randomized testing / fuzz testing, which is also a problem. This issue is still open: https://issues.apache.org/jira/browse/OAK-5367
Could you give a concrete, real-life example of this? I have written many recursive-descent parsers and never ran into this problem (Apache Jackrabbit Oak SQL and XPath parser, H2 database engine, PointBase Micro database engine, HypersonicSQL, NewSQL, Regex parsers, GraphQL parsers, and currently the Bau programming language).
I have often heard that Bison / Yacc / ANTLR etc are "superior", but mostly from people that didn't actually have to write and maintain production-quality parsers. I do have experience with the above parser generators, eg. for university projects, and Apache Jackrabbit (2.x). I remember that in each case, the parser generators had some "limitations" that caused problems down the line. Then I had to spend more time trying to work around the parser generator limitations than actually doing productive work.
This may sound harsh, but well that's my experience... I would love to hear from people that had a different experience for non-trivial projects...
I have updated my StackOverflow answer at https://stackoverflow.com/questions/664014/what-integer-hash...
As the article says, there are many "large" solar panel projects planned in Switzerland, specially in the mountains, where the snow will reflect the light and increase electricity production in winter (where electricity is the most expensive). But it takes a very long time (sometimes many, many years) until those projects are approved, if they are approved at all. This is known to be a problem, and government did try to speed this up, but it still is far too slow. (I'm Swiss.)
Yes, it is inconvenient (and likely more expensive) if you can't charge the car at home, or at work. Cities have electric street lights, but curb-side EV charging is rare so far. I guess that will change.
Heating the battery does need some energy, but heating the interior of the car (for the passengers) needs more. But driving needs most energy, of course. Electric cars typically have a heat pump by the way. Gas cars don't need that because they can use the waste heat of the engine, which is otherwise lost.
The diagrams for the H2 database [1], and Apache Jackrabbit Oak [2], do have links. (I wrote the generator for those.)
[1] https://h2database.com/html/grammar.html [2] https://jackrabbit.apache.org/oak/docs/query/grammar-sql2.ht...