Draft
Conversation
…ALIZE_LLVM is enabled
… with a different pc than code? Otherwise, we disable OSR in the compiler client when not in dry-run
…t looks like the pir.check assertions aren't true (don't know if this is intended...)
…he big hash (and doesn't work)
…lly sources all tests
…ove it before or did this just not throw an error before
0f7bdf1 to
2ccc60e
Compare
…les, so that we can correctly deserialize proxies within them
…and also garbage-collected better
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.
This is the current branch with the compiler server.
Typical usage is to run one instance of Ř (the server) with
PIR_SERVER_ADDR=tcp://*:$PORTand another (the client) withPIR_CLIENT_ADDR=tcp://localhost:$PORT. The client will have a REPL (or you can give it args like-f $FILE), and the server will wait for requests and compile them.You can read more flags at
documentation/compiler-server.mdand there are extra flags indocumentation/debugging.md.There are 2 new
externaldependencies,xxhashandzeromq. There are some small inline dependencies inutils. Thesanitizegitlab test now downloads and installs a new version of LLVM (16) because the old one can't linkxxhashfor some reason, which requireslibtinfo5(via apt) andzlib(needs to be downloaded from the site and built from source).There's also quite a lot of extra stuff. There's a new serialization API which is more flexible and uses
ByteBuffers/unordered_mapinstead of R objects. There's also the Ř object graph printer, which is controlled byPIR_PRINT_INTERNED_RIR_OBJECTSandPIR_PRINT_INTERNED_RIR_OBJECTS_FREQUENCY(this is where the massive code insertion count is, because it's counting the lines added by cytoscape.On the other hand, almost all of the changes should only be applied if you use one of the new flags:
PIR_SERVER_ADDR/PIR_CLIENT_ADDRbut alsoRIR_SERIALIZE_CHAOS,PIR_DEBUG_SERIALIZE_LLVM, andPIR_PRINT_INTERNED_RIR_OBJECTS. Running Ř without these flags allegedly shouldn't have any semantic changes or performance regressions.I did make a few changes like replacing some
LENGTH/XLENGTHwithRAW_LENGTHso that the R write barrier works, but these functions should be the same unless you compilecustom-rwith--enable-strict-barrier(TESTING_WRITE_BARRIER).