Benjamin Bannier
Benjamin Bannier
Broadly speaking optimizations implemented in Spicy are currently not flow-sensitive. Instead they follow a pattern of collecting information about variables, functions and types, and then checking the code for uses....
Using the filter or not in the following example should not make a difference, however the version with connected filter throws an error from generated code. ```ruby # @TEST-EXEC: echo...
On the branch [topic/bbannier/wireshark](https://github.com/zeek/spicy/tree/topic/bbannier/wireshark) we have a prototype for Wireshark integration. This is outdated since both our as well as the Wireshark APIs have moved on. We should build out...
Given the following grammar ```ruby module foo; public type Messages = unit { : (Message &synchronize)[]; }; type Message = unit { a: b"A"; b: b"B"; c: b"C"; }; #...
This is a tracking ticket for tasks optimizing unused data in generated code. - [ ] #1409 - [x] #2030 - [x] #1425
This PR adds optimizations related to dead code removal. For that we add detection of whether a function is side effect-free and elimination of dead stores. Marking a store as...
Spicy-generated parser operate on `Stream`s, so in order to parse anything we always need to append input data to the `Stream` a parser operates on. `Stream`s consist of `Chunk`s which...
For a large internal parser the changes in this PR lead to speedups of up to 8-10% when interfaced with Zeek. I am not 100% certain that this is not...
This is a follow-up to #1620 where we found that missing move constructors where potentially leaving measurable performance gains on the table. In this patch I aggressively implement [rule of...