3,108 karma · joined February 21, 2007
Who recommends 4g of salt as a minimum?
Well, unsigned overflow is also a potential bug, and it's defined behavior. So if you want useful integer overflow diagnostics, you already need to break the C/C++ spec.
Of course, the correct way to model this in a programming language is to distinguish between bitvectors with defined twos-complement operations and fixed-range integers.
> “When polls said only about half of all Americans would take a vaccine, I was saying herd immunity would take 70 to 75 percent,” Dr. Fauci said. “Then, when newer surveys said 60 percent or more would take it, I thought, ‘I can nudge this up a bit,’ so I went to 80, 85.”
https://hal-lara.archives-ouvertes.fr/hal-02102286/file/RR20...
http://math.bu.edu/people/aki/14.pdf
He was drawn to logic by discussions with Feferman and worked unsuccessfully on other problems in logic before moving to independence questions in set theory.
The problem with structured approaches to incremental parsing is that you rarely want incremental parsing alone. You’re going to want to do something else with the resulting parse tree (name resolution, type checking, compilation, etc.) and no structured approach to incremental parsing will help you there. Once you’re stuck writing an incremental type checker by hand, you probably have the right framework for also writing an incremental parser.
Rust has additional complications, e.g. the macro system and the fact that the language is defined by a single implementation.
The parsing literature can be a bit difficult to navigate because the field is effectively dead for research purposes. However, other models of errors have been considered. Tim Wagner's PhD thesis is the best discussion of the application of LR parsing techniques in IDEs, and this paper extracted from it discusses error recovery in particular:
http://harmonia.cs.berkeley.edu/papers/twagner-er.pdf
In the non-interactive context, Richter's work on error recovery by substring parsing is also very interesting, in that it doesn't cause spurious errors when attempting to recover from errors, and it only depends on the language and not the grammar or parsing technique used:
https://dl.acm.org/doi/10.1145/3916.4019
For LR grammars (and many other grammars), the necessary substring parsing can be done in linear time using variations of the GLR algorithm.
https://pdf.sciencedirectassets.com/272990/1-s2.0-S157106610...
A lot of people don't realize that the concepts of abstract groups, vector spaces, linear transformations, etc. were not particularly obvious to people, and a lot of results were developed in specific contexts that were later realized to be more general. After the development of abstract algebra, these subjects morphed into something much closer to the standard algebra curriculum we see today.
If your employer is sufficiently broad, the California Labor Code basically prohibits side projects or moonlighting:
https://leginfo.legislature.ca.gov/faces/codes_displaySectio...
Benchmarks?
At Mozilla, we had people working on the same project in North America, Western Europe, and Australasia. The meetings alternated between inconveniencing Europe / Australasia, but the additional latency of having all 3 timezones involved in decisions really slowed things down.