Commit Graph

33 Commits

Author SHA1 Message Date
alnyan 78b62c33fc alnyan/yggdrasil: remove compiler_builtins dependency 2026-03-28 01:06:48 +02:00
alnyan ace5825d96 alnyan/yggdrasil: build as std dependency 2024-03-16 17:55:49 +02:00
Amanieu d'Antras 96b062b409 Release 0.2.8 2023-10-06 11:25:38 +02:00
mulhern 33381c7de2 Exclude GitHub Workflows files from packaged crate 2023-08-03 15:05:28 -04:00
mulhern fd2bf61162 Exclude ci directory from packaged crate
I do not think there is compelling reason to release the ci support as
part of a Rust source code package. In addition, the crate, as it is
released now, gets flagged in some security scans due to the presence of
Dockerfiles which are considered to be following some unsafe practices.
Most Linux distros package using the vendored appraoch and provide a
vendor tarfile of an application's dependencies. Scanners will tend to
expect that the contents of the vendor tarfile will be source code.
These Dockerfiles are already being flagged by some scanners; other
contents of the ci directory may be flagged in future.
2023-08-03 09:31:56 -04:00
Yuki Okushi c3fe522ebc Prepare 0.2.7 release
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2023-05-13 15:16:59 +09:00
Amanieu d'Antras 4c8a973741 Bump to 0.2.6 2022-11-09 01:30:02 +00:00
Amanieu d'Antras 14a76eaf8d Bump to 0.2.5 2022-08-10 15:23:56 +01:00
Amanieu d'Antras d6d8a1610c Bump to 0.2.3 2022-07-30 01:43:36 +01:00
Amanieu d'Antras 1f7b8eb61c Bump to 0.2.2 2022-02-06 09:52:15 +00:00
Amanieu d'Antras 70119faaa4 Fix no-panic 2022-01-03 21:32:08 +01:00
Philipp Schuster 2baebb5c7c add "readme"-key to Cargo.toml in order for this crate to have a preview on crates.io 2021-03-28 12:24:08 +02:00
Alex Crichton 3d729b7a85 Bump to 0.2.1 2019-11-22 11:16:36 -08:00
Alex Crichton 8532fb1c75 Remove -nursery from urls 2019-09-25 11:20:49 -07:00
Lokathor 5e0eca75fb swap stable to be unstable, checked is now debug_assertions 2019-09-05 08:32:26 -06:00
gnzlbg b3f86d7737 Bump minor version to 0.2.0 2019-07-03 23:35:24 +02:00
gnzlbg f0d518231c Move benchmarks into its own crate 2019-07-02 08:22:03 +02:00
Benjamin Schultzer c345238ed2 Add benchmark suite
Signed-off-by: Benjamin Schultzer <benjamin@schultzer.com>
2019-07-01 18:37:23 -07:00
Diego Barrios Romero 60486fdf22 Bump version 2019-06-12 18:46:01 +02:00
Alex Crichton 6a0c2c5ad4 Bump to 0.1.3 2019-05-14 09:06:43 -07:00
Alex Crichton d166a30c11 Overhaul tests
* Move everything to azure pipelines
* Inline docker configuration in this repo (no `cross`)
* Delete `no-panic` example, use `#[no_panic]` instead.
2019-05-02 11:37:21 -07:00
Alex Crichton 28c69b4197 Rework how testing is done
Use a build script to generate musl reference outputs and then ensure
that everything gets hooked up to actually run reference tests.
2019-05-02 10:48:55 -07:00
Alex Crichton 575e81ca56 Remove newlib generator
It's broken and we can try to add it back later if necessary
2019-05-02 08:12:23 -07:00
Alex Crichton 35fc5ed551 Move crates to crates folder 2019-05-02 08:12:00 -07:00
Jorge Aparicio ad5641b23f merge [features] tables 2018-10-24 00:18:30 +02:00
Alex Crichton 284f2d007c Optimize intrinsics on wasm32
Profiling a recent demo I was playing with on `wasm32-unknown-unknown`
pointed me to the surprising result that 15% of the execution time was
in the `sqrt` intrinsic (there's a lot of math here). Upon investigation
I remembered that wasm (unconditionally) has a native `f32.sqrt`
instruction!

I was then subsequently confused that a simple `f.sqrt()` actually
codegens to use `f32.sqrt` in Rust, but I later realized that the
implementations of intrinsics in this library often use other intrinsics
to implement them. That means that the real intrinsic here, `acos`,
internally called `sqrt` at some point but wasn't using the optimized
implementation!

To help fix this situation this PR is intended on providing the
infrastructure for optimized implementations (via code generation) to be
used for each intrinsic. I've gone thorugh the various math instructions
that wasm has available and updated each of the intrinsic
implementations in this crate to optionally use the LLVM intrinsic
versions, which are known to unconditionally compile down to a single
instruction (unlike the arbitrary platform, where we don't know what it
will compile down to!).

To do this I created a new macro to wrap the invocation of LLVM
intrinsics. Invoking LLVM intrinsics is turned off by default (through a
new and on-by-default feature, `stable`). When the `stable` feature is
disabled, however, then the wasm-target specifically will enable usage
of the LLVM intrinsics. I've additionally added a CI builder which
should verify that these continue to build on Travis.

After this I intended to update the submodule in the `compiler-builtins`
repository so we can pull in the optimized implementation there, and
`compiler-builtins` naturally won't set `feature = "stable"` when
compiling so all the intrinsics should get compiled in by default. After
a further update of `the libcompiler_builtins` submodule in
rust-lang/rust we should be good to go!
2018-10-11 14:52:09 -07:00
Jorge Aparicio 3332a6d303 add newlib support to the test generator 2018-07-27 00:11:06 -05:00
Jorge Aparicio ce02130e55 omit bounds check in release mode
this eliminates panicking branches in the optimized version of the functions. We keep the bounds
checks when running the test suite to check that we never do an out of bounds access.

This commit also adds a "must link" test that ensures that future changes in our implementation
won't add panicking branches.

closes #129
2018-07-25 13:16:10 -05:00
Jorge Aparicio 6f04dab39d v0.1.2 2018-07-18 11:48:47 -05:00
Jorge Aparicio 297df8b1ea v0.1.1 2018-07-14 16:58:24 -05:00
Jorge Aparicio 7275814884 v0.1.0 2018-07-13 19:38:51 -05:00
Jorge Aparicio c585a1c138 test source importing this crate 2018-07-12 20:19:42 -05:00
Jorge Aparicio a043c38e41 initial commit 2018-07-12 00:44:28 -05:00