Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upChanges to LLVM `ExecutionEngine` wrapper #25627
Conversation
rust-highfive
assigned
huonw
May 19, 2015
This comment has been minimized.
This comment has been minimized.
|
r? @huonw (rust_highfive has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
|
I think that this will close #23050 but I want to confirm with Mac users of rusti once this lands. Also, I'm pretty sure that the use of LLVM |
This comment has been minimized.
This comment has been minimized.
|
The last part should be a |
This comment has been minimized.
This comment has been minimized.
|
@achanda: What I meant to say was that I'm not sure whether disabling a test for Windows is an acceptable solution. Windows is a supported platform for Rust. This API should work on Windows, if at all possible. @huonw or other core developer: Should I disable the test for Windows and have an issue filed for implementing Windows support? |
This comment has been minimized.
This comment has been minimized.
|
We haven't had JIT support in the compiler for quite some time now, so could you elaborate on why this is adding a test for it? I'd personally expect these wrappers to get removed. |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton: The I added a test because users of rusti have been experiencing an issue which is actually caused by the code that lives in |
This comment has been minimized.
This comment has been minimized.
rust-highfive
assigned
alexcrichton
and unassigned
huonw
May 27, 2015
This comment has been minimized.
This comment has been minimized.
|
@murarth yeah I'd believe that it's easier for the compiler to build in support for this, but this is an extra hunk of code for us to maintain and fix if it breaks. I also don't think the compiler should necessarily already contain support for all sorts of tools and just not expose them in a stable location. |
This comment has been minimized.
This comment has been minimized.
|
@alexcrichton: I'd be glad to put my name on it and be the one responsible for fixing it whenever it breaks. As it's basically a thin wrapper around the LLVM API, I don't anticipate much future breakage. As for stability concerns, the use of |
This comment has been minimized.
This comment has been minimized.
|
@murarth sure, but the problem with an API like this that I'm worried about is upgrading LLVM. It's fine to have support for extra features that don't block others, but supporting this would block an LLVM upgrade from otherwise happening (possibly). cc @rust-lang/compiler, there may be some other opinions about whether this should be supported from the compiler. |
This comment has been minimized.
This comment has been minimized.
|
I'd be keen to only support what the compiler directly needs. The @murarth is that possible? Or does that break some of your use cases? |
This comment has been minimized.
This comment has been minimized.
|
@nrc: It might be possible to use an external LLVM crate, but requiring an installation of LLVM is a pretty big dependency for a REPL. Also, I don't know what changes have been applied to Rust's LLVM fork and what problems may arise from interactions between Rust's LLVM and a mainline LLVM library. The use of If a full-featured REPL (which Rusti is not yet) is still a goal for Rust, it seems reasonable to me to provide support for such a thing at least until some future possible breakage actually happens. As long as the |
This comment has been minimized.
This comment has been minimized.
|
After thinking about this a bit more, I don't think using an external LLVM crate is an option at all. Doing so would require passing an LLVM Edit: The |
This comment has been minimized.
This comment has been minimized.
|
I started a Discourse thread on this. |
alexcrichton
added
the
T-compiler
label
Jun 2, 2015
This comment has been minimized.
This comment has been minimized.
|
r? @nrc |
rust-highfive
assigned
nrc
and unassigned
alexcrichton
Jun 2, 2015
This comment has been minimized.
This comment has been minimized.
|
@bors r+ |
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Jun 4, 2015
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
@bors: retry On Wed, Jun 3, 2015 at 10:46 PM, bors notifications@github.com wrote:
|
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Jun 4, 2015
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
Okay, that one's a real failure. |
This comment has been minimized.
This comment has been minimized.
|
@nrc: Fixed compile error on Windows (I think). |
This comment has been minimized.
This comment has been minimized.
|
@bors r+ |
This comment has been minimized.
This comment has been minimized.
|
|
bors
added a commit
that referenced
this pull request
Jun 7, 2015
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
That was the error I expected on Windows and I believed it's now solved, too. |
This comment has been minimized.
This comment has been minimized.
|
@bors r=nrc |
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
bors
added a commit
that referenced
this pull request
Jun 9, 2015
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
Never seen an error in the git stage before. Interesting. |
This comment has been minimized.
This comment has been minimized.
|
@bors: retry |
murarth commentedMay 19, 2015
RustJITMemoryManagerfrom public API.This was really sort of an implementation detail to begin with.
__morestackis linked to C++ wrapper code and this pointeris used when resolving the symbol for
ExecutionEnginecode.__morestack_addris also resolved forExecutionEnginecode.This function is sometimes referenced in LLVM-generated code,
but was not able to be resolved on Mac OS systems.
ExecutionEngineAPI.ExecutionEnginefunctionality.