* Initial skeleton. * Add basic faerie support. This adds enough functionality to enable simple .o file writing through faerie. This included adding the functionality to Module to support RelocSink implementations. * Add basic SimpleJIT support. This adds enough functionality to enable a simple program to be jitted and executed. * Make declare_func_in_func take a Function instead of a Context. It only needs the Function, and sometimes it's useful to call it from places that don't have a full Context. * Temporarily disable local and exported global variables in the Faerie backend. Faerie assumes these variables use pc-relative offset instructions, and Cretonne is not yet emitting those instructions. * FaerieBackend depends on PIC. Faerie itself only supports PIC objects for now, so add an assert to Cretonne to check that it's using a PIC target flag. * SimpleJIT support for data objects. * Preliminary faerie support for data objects. * Support for data objects in faerie using the new colocated flag. * Unit tests for DataContext and friends. * Add a Module::consume() function. This consumes the Module and returns the contained Backend, so that users can call Backend-specific functions with it. For example, the Faerie backend has functions to write an object file. * Update the new crates to version 0.4.4. * Make FaerieBackend own its TargetIsa. This simplifies its interface, as it eliminates a lifetime parameter. While we may eventually want to look into allowing multiple clients to share a TargetIsa, it isn't worth the complexity for FaerieBackend right now. * Don't try to protect faerie from multiple declarations. Let faerie decide for itself whether it wants to consider two declarations to be compatible. * Use debug_assert_eq rather than debug_assert with ==. * Fix FaerieRelocSink's reloc_external to handle data object names. * Relax the asserts in get_function_definition and get_data_definition. These functions don't require definable symbols, but they do require that definable symbols be defined. This is needed for the simplejit backend. * Add a function to the faerie backend to retrieve the artifact name. * Sync up with cretonne changes.
42 lines
1.4 KiB
TOML
42 lines
1.4 KiB
TOML
[package]
|
|
name = "cretonne-tools"
|
|
authors = ["The Cretonne Project Developers"]
|
|
version = "0.4.4"
|
|
description = "Binaries for testing the Cretonne libraries"
|
|
license = "Apache-2.0"
|
|
documentation = "https://cretonne.readthedocs.io/"
|
|
repository = "https://github.com/cretonne/cretonne"
|
|
publish = false
|
|
|
|
[[bin]]
|
|
name = "cton-util"
|
|
path = "src/cton-util.rs"
|
|
|
|
[dependencies]
|
|
cretonne-codegen = { path = "lib/codegen", version = "0.4.4" }
|
|
cretonne-reader = { path = "lib/reader", version = "0.4.4" }
|
|
cretonne-frontend = { path = "lib/frontend", version = "0.4.4" }
|
|
cretonne-wasm = { path = "lib/wasm", version = "0.4.4" }
|
|
cretonne-native = { path = "lib/native", version = "0.4.4" }
|
|
cretonne-filetests = { path = "lib/filetests", version = "0.4.4" }
|
|
cretonne-module = { path = "lib/module", version = "0.4.4" }
|
|
cretonne-faerie = { path = "lib/faerie", version = "0.4.4" }
|
|
cretonne-simplejit = { path = "lib/simplejit", version = "0.4.4" }
|
|
cretonne = { path = "lib/umbrella", version = "0.4.4" }
|
|
filecheck = "0.2.1"
|
|
docopt = "0.8.0"
|
|
serde = "1.0.8"
|
|
serde_derive = "1.0.8"
|
|
tempdir = "0.3.5"
|
|
term = "0.5.1"
|
|
|
|
[workspace]
|
|
|
|
# Enable debug assertions and parallel compilation when building cretonne-tools
|
|
# since they are for testing and development mostly. This doesn't affect the
|
|
# flags used to build the cretonne-* crates when used as a dependency.
|
|
[profile.release]
|
|
opt-level = 2
|
|
debug-assertions = true
|
|
codegen-units = 4
|