Releases: sunfishcode/origin
0.17
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
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
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
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
-
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 toorigin_main
,
changed fromextern "C"
toextern "Rust"
, and the signature has
changed to:
#[no_mangle]
fn origin_main(argc: usize, argv: *mut *mut u8, envp: *mut *mut u8) -> i32