-
Notifications
You must be signed in to change notification settings - Fork 267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use a socket to communicate with the jit runtime process #4887
Conversation
Parameterizes various things by the ports they interact with. Without any arguments in `run` mode, it just uses stdin to read, and a dummy output to write. But when passed a port argument it will open a socket for those.
Avoids potential lock ups if the runtime process exits before connecting back. Also includes some error formatting to avoid empty lines and empty stack traces.
…-channel' into topic/jit-eval-side-channel
This comment was marked as outdated.
This comment was marked as outdated.
Something (my fault) is causing the jit tests not to actually run in CI — I don't see them actually running on any of these builds, it's just getting a false pass. I will take a look into it tonight or tomorrow. Sorry :-\ |
No worries. |
…runtime test results (#4889) Plus: * cache jit binaries even if tests fail * move checkout early enough to hash racket source
@dolio Ok I think I fixed the test harness 🤞 It's currently failing on a "contract violation" in a "cli args" test: ![]() ![]() |
The evaluated program can ask for command line arguments, but without intervention, it will receive all the flags from the call to the parent program. Previously none were expected, but now we have the port. So, as part of command line parsing, grab all the remaining args and install them as the whole list of arguments before starting evaluation.
Whitespace differences
Okay, took me a bit to figure that one out. The problem was that the evaluated program was getting the |
Ah — do you like the convention |
Oh I see what you did there. 👍 |
I think the racket |
This reworks the
run.native
command and the racket backing to use a TCP socket for communication of code and results. This makes it possible forrun.native
execution to make use of standard in (previously was occupied by communication of the code to the runtime) and for actual execution results to be reported by ucm.A little error message tweaking is included. I noticed that a lot of blank lines were being generated in some situations, so I switched to using
linesNonEmpty
.