origin

Program startup and thread support written in Rust

OTHER License

Downloads
55.5K
Stars
163
Committers
7

Bot releases are hidden (Show)

origin - 0.17 Latest Release

Published by sunfishcode 10 months ago

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.

origin - 0.16

Published by sunfishcode 11 months ago

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.

origin - 0.15

Published by sunfishcode 11 months ago

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.

origin - 0.14

Published by sunfishcode 12 months ago

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.

origin - v0.13.0

Published by sunfishcode about 1 year ago

  • 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      
Package Rankings
Top 18.86% on Crates.io