[Testing] Alpine-based GitHub Action#362
Draft
Svetlitski wants to merge 7 commits intojanestreet:masterfrom
Draft
[Testing] Alpine-based GitHub Action#362Svetlitski wants to merge 7 commits intojanestreet:masterfrom
Svetlitski wants to merge 7 commits intojanestreet:masterfrom
Conversation
Signed-off-by: Kevin Svetlitski <ksvetlitski@janestreet.com>
This is useful for testing. Signed-off-by: Kevin Svetlitski <ksvetlitski@janestreet.com>
This is in preparation for writing the new backend. After we've made substantial changes to `src/new_trace_writer.ml`, you'll still be able to track the history by running: ```bash git blame -C -C src/new_trace_writer.ml ``` Yes, you need to pass `-C` *twice*: > -C ... when this option is given twice, the command additionally looks for copies from other files in the commit that creates the file. Signed-off-by: Kevin Svetlitski <ksvetlitski@janestreet.com>
The existing `Trace_writer` module works well enough (albeit not perfectly) most of the time. However, it is difficult to reason about, in large part because it writes the trace in a streaming fashion. That introduces significant additional complexity and book-keeping, and limits the ability of the trace-writer to make use of information discovered later in the trace (I believe the latter is why traces produced today often have the few frames closest to the root wrong). Because we want to extend the trace-writer in the near future, we're starting fresh with a different design that's easier to reason about. The new implementation currently exists alongside the original, but the goal is to eventually replace it entirely. Instead of writing the trace in a streaming fashion, we construct an internal representation of the trace in memory, and write out the trace in a separate, final pass once all of the events have been consumed. The module responsible for doing most of the heavy lifting is the new `Trace_segment`, which represents a continuous, **lossless, and error-free** segment of the trace; we create a new trace-segment whenever we encounter an error. **This PR does not represent a complete, finished product.** The code here does indeed work, and already produces better traces than the existing backend in several cases, but has several critical pieces missing: - [ ] Trace-segment stitching: At present we naively treat each trace-segment as disjoint. We need to add an additional "stitching" pass before the trace is written out, making a heuristic, best-effort attempt to join together adjacent trace-segments in a way that preserves control-flow continuity. - [ ] OCaml exception handling logic when OCaml-specific debug-info is *not* available - [ ] Golang support (are we keeping this?) It should also go without saying that while this code appears to work well on the traces I've tried it on, I would not at all be surprised if there are still bugs/edge-cases. Signed-off-by: Kevin Svetlitski <ksvetlitski@janestreet.com>
…tation to use Signed-off-by: Kevin Svetlitski <ksvetlitski@janestreet.com>
Use LLVM to symbolize including inlined frames, and add these to the trace. This is definitely still a work-in-progress, and also makes the traces *much* larger. Signed-off-by: Kevin Svetlitski <ksvetlitski@janestreet.com>
Signed-off-by: Kevin Svetlitski <ksvetlitski@janestreet.com>
f804539 to
babd49e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ignore this, just testing the GitHub Action after iterating on it locally
I love GitHub Actions /s 💀