Commit Graph

81 Commits

Author SHA1 Message Date
bjorn3
5baeed06bb Better incompatible declaration error (#605)
* Better incompatible declaration error

* Change display of IncompatibleSignature error
2018-11-14 10:41:56 -08:00
Dan Gohman
14dfc0d1b6 Bump version to 0.23.0. 2018-11-07 16:18:04 -08:00
Dan Gohman
38e8667f97 Adjust whitespace to match the upstream exception text.
This is a whitespace-only change.
2018-11-07 16:07:51 -08:00
Dan Gohman
d4f8eb7453 Introduce a TargetFrontendConfig type. (#570)
* Introduce a `TargetFrontendConfig` type.

`TargetFrontendConfig` is information specific to the target which is
provided to frontends to allow them to produce Cranelift IR for the
target. Currently this includes the pointer size and the default calling
convention.

The default calling convention is now inferred from the target, rather
than being a setting. cranelift-native is now just a provider of target
information, rather than also being a provider of settings, which gives
it a clearer role.

And instead of having cranelift-frontend routines require the whole
`TargetIsa`, just require the `TargetFrontendConfig`, and add a way to
get the `TargetFrontendConfig` from a `Module`.

Fixes #529.
Fixes #555.
2018-11-02 13:51:42 -07:00
Benjamin Bouvier
0b3d3ac880 Remove logging levels restrictions (#538)
* Fixes #537: Remove release mode logging levels restrictions;

* Add information about log's logging levels in the README;
2018-10-02 10:45:23 -07:00
Dan Gohman
ab99720959 Bump version to 0.22.0 2018-09-21 21:39:41 -07:00
Dan Gohman
cb6b1a76db Add a use std::vec::Vec; to fix the no_std build. 2018-09-21 21:14:06 -07:00
Dan Gohman
8d6a8e9069 Remove Module's finalize_function and finalize_data. (#519)
* Remove `Module`'s `finalize_function` and `finalize_data`.

Remove the ability to finalize individiual functions and data objects,
and instead just provide a way to finalize everything that's been
defined but not yet finalized. This allows SimpleJIT to share an
allocation between multiple functions without having to worry about
individual functions being finalized and needing to be published
without the other functions in the same allocation.

Users of the return values of `Module`'s `finalize_function` and
`finalize_data` should now use `get_finalized_function` and
`get_finalized_data` to obtain these values.
2018-09-21 20:13:33 -07:00
Dan Gohman
53a0c6c67f Update to the rustfmt in rust 1.29, which is now stable. 2018-09-13 12:59:25 -07:00
Dan Gohman
f2177deec1 Improve assertion messages in Module finalization.
When an object being finalized references an object declared as needing
a definition, the definition needs to be available. Add asserts to catch
this specific case.
2018-09-12 16:07:43 -07:00
Dan Gohman
b4c7451ae5 Bump version to 0.21.1 2018-09-10 10:00:45 -07:00
Dan Gohman
f3c46ad2a2 Add more documentation about Module and Backend. 2018-09-05 15:19:37 -07:00
Dan Gohman
e8878ba504 Bump version to 0.21.0 2018-09-04 22:04:22 -07:00
Dan Gohman
ca9da7702e Reorganize the global value kinds. (#490)
* Reorganize the global value kinds.

This:
 - renames "deref" global values to "load" and gives it a offset that works
   like the "load" instructions' does
 - adds an explicit "iadd_imm" global value kind, which replaces the
   builtin iadd in "vmctx" and "deref" global values.
 - also renames "globalsym" to "symbol"
2018-09-04 21:09:04 -07:00
Dan Gohman
c836a96e30 Bump cranelift-entity version to 0.20.1. 2018-08-28 20:19:09 -07:00
Dan Gohman
7fa0a38793 Bump version to 0.20.0 2018-08-28 16:37:52 -07:00
Dan Gohman
d2943ec32d Add a minimal SimpleJIT example program.
This minimally demonstrates usage of the API, and serves as a very small
testcase to test that the basic JIT mechanisms are working.
2018-08-28 16:13:23 -07:00
Dan Gohman
9ada394d11 [SimpleJIT] When finalizing multiple functions, make them all executable at the end. (#474)
Add `publish()` function to cranelift-module's `Backend` trait, which
allows `finalize_all()` to defer making memory executable until it
has finished all of the patching it needs to do.
2018-08-28 15:27:52 -07:00
Dan Gohman
e60477092a Add a make_signature function for making callable signatures.
The `Module` can create signatures with the appropriate calling
convention.
2018-08-28 13:19:59 -07:00
Dan Gohman
2c9b7fd73a Add "no-std" category to crates supporting no-std.
And add "wasm" category to cranelift-wasm.
2018-08-22 12:51:54 -07:00
Dan Gohman
77eb38c41f [Module] Remove DataDescription's writable field.
It was redundant, as data object declarations also have a writable
field, so just use that, avoiding the need for users to declare the
same thing twice.

Fixes #456.
2018-08-20 16:17:46 -07:00
Dan Gohman
ad170c7412 Update to log 0.4.4. 2018-08-17 12:04:01 -07:00
Dan Gohman
6a07c72867 Bump version to 0.19.0 2018-08-14 12:55:34 -07:00
bjorn3
3f0103f936 Prevent finalize being called more than once per func/data (fixes #407) 2018-08-14 10:57:59 -07:00
Dan Gohman
cc4bf1c7fb Deny unstable_features in "std" builds. 2018-08-13 12:51:49 -07:00
Benjamin Bouvier
a044f58cea Fixes #404: Use log.rs and a file-per-thread logger instead of the dbg! macro; 2018-08-13 12:51:14 -07:00
Dan Gohman
cd02010a78 Bump version to 0.18.1 2018-08-02 20:10:23 -07:00
Dan Gohman
c4a056a7a0 Bump version to 0.18.0 2018-08-02 18:34:22 -07:00
Dan Gohman
cd75176f10 Update to the rustfmt in rust 1.28, which is now stable.
Also, rustfmt's --write-mode=check is now named --check.
2018-08-02 09:55:40 -07:00
bjorn3
5389b7784e Check signature compatibility in declare_function (fixes #427) 2018-08-01 14:23:59 -07:00
Dan Gohman
d6d1e7253d Bump version to 0.17.0 2018-07-23 16:57:51 -07:00
Dan Gohman
6cb03a873d Bump version to 0.17.0-alpha 2018-07-23 16:15:53 -07:00
Dan Gohman
45ef3149f1 Update hashmap_core to 0.1.9. 2018-07-19 11:08:53 -07:00
Dan Gohman
c068721964 Bump version to 0.16.1 2018-07-18 13:33:15 -07:00
Dan Gohman
ce27b2a74f Bump version to 0.16.0 2018-07-17 15:49:04 -07:00
Dan Gohman
17db4e6be8 Add a LICENSE file to each crate.
The individual crates are published separately from the main repository
on crates.io. To ensure that a copy of the LICENSE file accompanies all
published copies of the code, give each crate its own LICENSE file.
2018-07-17 12:48:27 -07:00
Dan Gohman
a28a3c3ea9 Bump version to 0.15.0 2018-07-14 07:27:35 -07:00
Dan Gohman
262689908e Bump version to 0.14.0 2018-07-13 09:26:46 -07:00
Dan Gohman
401c872c52 Update more paths for the CraneStation/cranelift rename. 2018-07-13 09:22:15 -07:00
Dan Gohman
f4dbd38a4c Rename Cretonne to Cranelift! 2018-07-13 09:15:16 -07:00
Dan Gohman
19a636af96 Change Cretonne's license to "Apache-2.0 WITH LLVM-exception".
This adds the "LLVM-exception" to Cretonne's existing Apache-2.0
license.

https://spdx.org/licenses/LLVM-exception.html
2018-07-13 07:25:32 -07:00
Benjamin Bouvier
0616a960d6 [clippy] A few fixes in module/src/module.rs;
- use Self more to indicate the current type;
- explicitly clone one Option;
- invert !is_none to is_some;
2018-07-11 13:47:25 -07:00
Dan Gohman
b616644495 Document that cretonne-module is an optional part of Cretonne. 2018-07-07 13:37:40 -07:00
Dan Gohman
112ae6df56 Bump version to 0.13.0 2018-07-02 15:48:18 -07:00
Dan Gohman
b17d1617ca Update to hashmap_core 0.1.8. 2018-07-02 15:09:30 -07:00
Dan Gohman
cc94adca3b Update to the rustfmt in rust 1.27, which is now stable. (#377) 2018-06-26 13:06:16 -07:00
Dan Gohman
0349270b58 Bump version to 0.12.0 2018-06-16 07:50:27 -07:00
Lachlan Sneff
3686fc2fc7 Fix typos caused by find-and-replace 2018-06-15 18:33:30 -07:00
Lachlan Sneff
5c320a0d30 Change GlobalVar to GlobalValue 2018-06-15 18:33:30 -07:00
Dan Gohman
49cc693d64 Update to hashmap_core 0.1.7. 2018-06-15 10:35:13 -07:00