Skip to content

Releases: sunfishcode/origin

0.17

20 Dec 21:57
Compare
Choose a tag to compare

The "thread" feature is no longer implied by the "origin-thread" feature, so
users using threads with "origin-thread" will need to also enable "thread"
explicitly.

The "alloc" feature is no longer implied by the "origin-thread" or "thread"
features, so users using program or thread destructors with "origin-thread"
will need to also enable "alloc" explicitly.

0.16

05 Dec 00:01
Compare
Choose a tag to compare

The functions in the thread module have been renamed to remove the
redundant thread in their names. For example, thread::create_thread is
now just thread::create, and so on.

The thread::id function (formerly thread::thread_id), now returns an
Option, to allow it to indicate that the thread has exited, in which case
it no longer has an ID.

Origin now supports linking with code compiled with stack protection features,
such as -fstack-protector.

0.15

09 Nov 21:57
Compare
Choose a tag to compare

The create_thread API has been redesigned to allow it and users of it to avoid performing dynamic allocations. Instead of taking a boxed closure, it now takes a function pointer and a list of pointer arguments to pass to it. See #94 for details.

The default stack size has been increased, as several use cases were bumping up against the limit. See #91 for details.

Thread and process destructor lists now use the smallvec crate to avoid allocating. See #93 for details.

0.14

23 Oct 16:40
Compare
Choose a tag to compare

origin 0.14

Changes

thread::create_thread now requires the function arugment to implement Send,
which reflects the fact that it is sent to the newly-created thread.

Features

The "init-fini-arrays" feature now enables two sub-features, "init-arrays" and
"fini-arrays" which can be enabled individually for use cases that only need one.

A new "atomic-dbg-logger" feature uses the atomic-dbg packages log implementation,
which is very minimal and not configurable, but which can print messages to stderr
in more configurations.

v0.13.0

10 Sep 19:25
Compare
Choose a tag to compare
  • Support for .init_array/.fini_array processing is now optional;
    it's enabled by default, or by the "init-fini-arrays" feature.

  • A new "tiny" example has been added showing techniques for producing
    very small executables.

  • Origin no longer defines __dso_handle; that's now the job of C-ABI
    implementations such as mustang.

  • The main function that origin calls has been renamed to origin_main,
    changed from extern "C" to extern "Rust", and the signature has
    changed to:

#[no_mangle]
fn origin_main(argc: usize, argv: *mut *mut u8, envp: *mut *mut u8) -> i32