Amanieu d'Antras
fff625767c
Clean up and simplify the implementation of generators
2016-09-09 10:59:35 -04:00
whitequark
4b32c18f70
Rename Yielder::generate to Yielder::suspend.
...
This makes more sense, because "generate" implies *running*
a generator, not *returning* from a generator. That name was
a vestige of the time when libfringe only really provided a .next()
implementation, which made marginally more sense together with
.generate(), but it doesn't anymore when we have .resume().
2016-08-30 12:20:34 -04:00
edef
f21b8dc936
Update the license headers for MIT/Apache
2016-08-20 23:45:01 +02:00
whitequark
ddbf9a5afe
Reimplement Generator to pass both input and output values around.
2016-08-13 13:38:04 +02:00
edef
b1a6b17d0a
Move the Context tests and benches into src/
...
This concludes preparations for making Context private again.
2016-08-13 13:38:04 +02:00
whitequark
7ffad26cfd
Implement the safe Generator abstraction.
...
close #24
2016-07-17 13:55:56 -04:00
whitequark
cbe136b762
Completely rework fringe::Context and fringe::arch.
...
The new design concerns itself with one thing and exactly one thing:
passing values back and forth with an extern "C" function.
This allows to simplify fringe::arch into a single primitive, swap.
Close #21
2016-07-16 15:04:15 -04:00
edef
976b971436
get rid of the old Context::swap
...
The two-parameter version is the only necessary API.
2016-04-03 19:55:25 +02:00
edef
b986931817
remove copyright years
...
They're obnoxious to update, and I'm told they have no legal value.
2016-03-22 08:25:23 +01:00
edef
2b23083455
get rid of some minor warnings
2016-03-22 07:35:25 +01:00
edef
418c53797e
x86 support
...
ref #1
2015-04-16 13:15:46 -04:00
edef
77ffd6bc03
only build benches/kernel_swap on Linux
2015-04-16 10:03:13 -04:00
edef
f7fb5ae4e6
only build benches/swap when OsStack is available
2015-04-16 10:02:04 -04:00
edef
d627f0d725
big rename — we're libfringe now
2015-04-16 08:11:12 -04:00
edef
fe490275fa
move os::Stack behind the facade, to OsStack
2015-04-16 07:44:07 -04:00
edef
ff25697444
remove StackSource
...
Nothing in this library took StackSources, and it's probably too
high-level a concept to include here. Maybe later.
2015-04-16 07:42:16 -04:00
edef
bdb6e0bd8b
let StackSource::get_stack take &mut self
2015-04-16 07:35:29 -04:00
edef
f24e8e7911
add license headers to every file
2015-04-16 06:08:44 -04:00
edef
b8211689fa
return a Result from StackSource::get_stack with an associated Error
...
fix #7
2015-04-16 04:14:18 -04:00
edef
42db0ee5b1
loosen the lifetime bounds on Context
...
fix #6
ref #3
2015-04-16 04:01:02 -04:00
edef
c19fc4625a
use a statically-allocated stack for Context::new benchmarking
...
Now it's an actual context creation benchmark, instead of benchmarking
our stack creation, which is swappable anyway.
2015-04-15 22:11:36 -04:00
edef
54b34383e3
parametrise Context on Stack
2015-04-15 21:51:37 -04:00
edef
8dc53c3125
make Context::new take a stack, instead of creating one
2015-04-15 19:35:27 -04:00
edef
f7511dc2c1
add a context creation benchmark
2015-04-15 19:35:27 -04:00
edef
8515bf0fa1
closure syntax changed
2015-02-23 23:14:58 -05:00
edef
a54e573073
Rust updates
2015-02-02 14:17:23 -05:00
edef
299a0a5d98
complete rewrite!
...
featuring 7ns inlineable context switches, no more separately-built
assembly objects, and a vastly nicer interface.
incontext/outcontext are no more, context switch calls now take a single
context structure, which functions as both.
everything now also functions without any heap allocations -- for the
context setup, only an FnOnce() value is necessary.
2015-01-14 11:27:43 +01:00
edef
5cf3a35d65
move the benchmarks around a little
2015-01-14 07:01:43 +01:00
edef
e9d6146b5b
initial commit
2014-12-23 04:27:28 +01:00