<feed xmlns='http://www.w3.org/2005/Atom'>
<title>clint.git/src, branch stable-support</title>
<subtitle>rust library for handling interrupts with closures</subtitle>
<id>https://git.spork.org/clint.git/atom?h=stable-support</id>
<link rel='self' href='https://git.spork.org/clint.git/atom?h=stable-support'/>
<link rel='alternate' type='text/html' href='https://git.spork.org/clint.git/'/>
<updated>2019-08-06T21:52:35Z</updated>
<entry>
<title>WIP: stalled out trying to implement const-fn feature.</title>
<updated>2019-08-06T21:52:35Z</updated>
<author>
<name>Brian Cully</name>
<email>bjc@kublai.com</email>
</author>
<published>2019-08-06T21:52:16Z</published>
<link rel='alternate' type='text/html' href='https://git.spork.org/clint.git/commit/?id=d213bba502043aac09a0bdb845278a53ea04f600'/>
<id>urn:sha1:d213bba502043aac09a0bdb845278a53ea04f600</id>
<content type='text'>
Unfortunately, to maintain API compatibility, `replace` needs to be a
regular borrow, so we need interior mutability with
`UnsafeCell`. Simultaneously, `HandlerArray` needs to be `const fn` so
it can be used where `lazy_static` isn't available, which means it
needs to initialize its array in one go without the help of
`MaybeUninit`. To do that, `Handler` must be `Copy`, but since it
contains an `UnsafeCell` now, it cannot be copy.

And thus we are boned. There are times when I think the premise of
rust is admirable, but implementation is impossible.
</content>
</entry>
<entry>
<title>Add compatibilty with rust-stable.</title>
<updated>2019-08-06T20:31:34Z</updated>
<author>
<name>Brian Cully</name>
<email>bjc@kublai.com</email>
</author>
<published>2019-08-06T20:31:34Z</published>
<link rel='alternate' type='text/html' href='https://git.spork.org/clint.git/commit/?id=392239c7f522acb7ca5847a48dd9ab2480242924'/>
<id>urn:sha1:392239c7f522acb7ca5847a48dd9ab2480242924</id>
<content type='text'>
  * Add feature flag for const-fn functionality, which simplifies some
    things and lets this crate run on architectures where atomic CAS
    isn't available (e.g., thumbv6).

  * Remove `const fn` where necessary to compile under rust-stable.

  * BREAKING CHANGE - Change signature of `Handler::replace` to take a
    mutable borrow. This is required because the underlying type is
    now a NonNull, which needs `mut`. The old behavior was never
    desired, but a consequence of trying to avoid `Option` by using a
    default handler.

  * Use lazy_static crate for initialization of Handler/HandlerArray.

  * Specify Sync for Handler. This is not amazing, since it isn't, but
    it's necessary for initialization in static contexts inside
    `lazy_static`. This should be fine, because any actual
    manipulation of the handler is done in unsafe functions.
</content>
</entry>
<entry>
<title>WIP: Add `const-fn` feature to attempt support for stable toolchain.</title>
<updated>2019-07-29T14:48:05Z</updated>
<author>
<name>Brian Cully</name>
<email>bjc@kublai.com</email>
</author>
<published>2019-07-29T14:48:05Z</published>
<link rel='alternate' type='text/html' href='https://git.spork.org/clint.git/commit/?id=b0c6c4f9a45cf2b965acd3d10499e9df54929b36'/>
<id>urn:sha1:b0c6c4f9a45cf2b965acd3d10499e9df54929b36</id>
<content type='text'>
To get this to work, either `FnMut` traits need to be allowed in
`const fn` in stable, or `Handler::new` needs to be non-`const`.
</content>
</entry>
<entry>
<title>Update to 0.2.0: Add HandlerArray type.</title>
<updated>2019-06-03T13:23:29Z</updated>
<author>
<name>Brian Cully</name>
<email>bjc@kublai.com</email>
</author>
<published>2019-05-10T15:50:53Z</published>
<link rel='alternate' type='text/html' href='https://git.spork.org/clint.git/commit/?id=5781e9391fe3d7d3dabec620cb782d38f5f9cb9e'/>
<id>urn:sha1:5781e9391fe3d7d3dabec620cb782d38f5f9cb9e</id>
<content type='text'>
  * Create HandlerArray as a safe wrapper around Handler.

  * Add Cargo features for HandlerArray size.

  * Move Handler into sub-module.

  * Add CriticalSection sub-module for architecture dependent support
    of interrupt-free contexts.

  * Add build rules to pull in cortex-m support for CriticalSection
    automatically.
</content>
</entry>
<entry>
<title>Working handler code.</title>
<updated>2019-05-10T15:42:02Z</updated>
<author>
<name>Brian Cully</name>
<email>bjc@kublai.com</email>
</author>
<published>2019-04-28T17:41:39Z</published>
<link rel='alternate' type='text/html' href='https://git.spork.org/clint.git/commit/?id=f12811a0a5e15b596a0cc06c095832a6b795172b'/>
<id>urn:sha1:f12811a0a5e15b596a0cc06c095832a6b795172b</id>
<content type='text'>
</content>
</entry>
</feed>
