| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2019-08-08 | async functions in single threaded mode do not use atomic ops | Andrew Kelley | |
| 2019-08-08 | more debuggable safety for awaiting twice | Andrew Kelley | |
| 2019-08-08 | cancel, defer, errdefer all working as intended now | Andrew Kelley | |
| 2019-08-07 | clean up the bitcasting of awaiter fn ptr | Andrew Kelley | |
| 2019-08-07 | implement cancel | Andrew Kelley | |
| all behavior tests passing in this branch | |||
| 2019-08-06 | fix awaiting when result type is a struct | Andrew Kelley | |
| 2019-08-06 | error return trace across suspend points | Andrew Kelley | |
| 2019-08-06 | passing the error return trace async function test | Andrew Kelley | |
| 2019-08-06 | improve async function semantics | Andrew Kelley | |
| * add safety panic for resuming a function which is returning, pending an await * remove IrInstructionResultPtr * add IrInstructionReturnBegin. This does the early return in async functions; does nothing in normal functions. * `await` gets a result location * `analyze_fn_async` will call `analyze_fn_body` if necessary. * async function frames have a result pointer field for themselves to access and one for the awaiter to supply before the atomic rmw. when returning, async functions copy the result to the awaiter result pointer, if it is non-null. * async function frames have a stack trace pointer which is supplied by the awaiter before the atomicrmw. Later in the frame is a stack trace struct and addresses, which is used for its own calls and awaits. * when awaiting an async function, if an early return occurred, the awaiter tail resumes the frame. * when an async function returns, early return does a suspend (in IrInstructionReturnBegin) before copying the error return trace data, result, and running the defers. After the last defer runs, the frame will no longer be accessed. * proper acquire/release atomic ordering attributes in async functions. | |||
| 2019-08-05 | async functions have error return traces where appropriate | Andrew Kelley | |
| however the traces are not merged on `await` or async function calls yet. When an async function has an error set or error union as its return type, it has a `StackTrace` before the args in the frame, so that it is accessible from `anyframe->T` awaiters. However when it does not have an errorable return type, but it does call or await an errorable, it has a stack trace just before the locals. This way when doing an `@asyncCall` on an async function pointer, it can populate the args (which are after the `StackTrace`) because it knows the offset of the args based only on the return type. This sort of matches normal functions, where a stack trace pointer could be supplied by a parameter, or it could be supplied by the stack of the function, depending on whether the function itself is errorable. | |||
| 2019-08-05 | delete IrInstructionMarkErrRetTracePtr | Andrew Kelley | |
| this IR instruction is no longer needed | |||
| 2019-08-05 | support async functions with inferred error sets | Andrew Kelley | |
| 2019-08-04 | refactor logic for determining if there is a frame pointer | Andrew Kelley | |
| 2019-08-04 | simpler, less memory intensive suspend/resume implementation | Andrew Kelley | |
| 2019-08-04 | move state from ZigFn to CodeGen to save memory | Andrew Kelley | |
| 2019-08-04 | suspension points inside branching control flow | Andrew Kelley | |
| 2019-08-03 | implement `@asyncCall` which supports async function pointers | Andrew Kelley | |
| 2019-08-03 | add runtime safety for resuming an awaiting function | Andrew Kelley | |
| 2019-08-02 | implement async functions returning structs | Andrew Kelley | |
| 2019-08-02 | Merge remote-tracking branch 'origin/master' into rewrite-coroutines | Andrew Kelley | |
| 2019-08-02 | Merge branch 'master' into rewrite-coroutines | Andrew Kelley | |
| 2019-08-02 | fix cmpxchg with discarded result | Andrew Kelley | |
| 2019-08-02 | implement async await and return | Andrew Kelley | |
| 2019-08-01 | fix calling an inferred async function | Andrew Kelley | |
| 2019-08-01 | reimplement async with function splitting instead of switch | Andrew Kelley | |
| 2019-07-29 | improve support for anyframe and anyframe->T | Andrew Kelley | |
| * add implicit cast from `*@Frame(func)` to `anyframe->T` or `anyframe`. * add implicit cast from `anyframe->T` to `anyframe`. * `resume` works on `anyframe->T` and `anyframe` types. | |||
| 2019-07-26 | add the `anyframe` and `anyframe->T` types | Andrew Kelley | |
| 2019-07-26 | async functions return void, no more GetSize resume block | Andrew Kelley | |
| 2019-07-25 | `@frameSize` works via PrefixData | Andrew Kelley | |
| 2019-07-25 | implement `@frameSize` | Andrew Kelley | |
| 2019-07-25 | implement `@frame` and `@Frame` | Andrew Kelley | |
| 2019-07-25 | calling an inferred async function | Andrew Kelley | |
| 2019-07-24 | align src for IrInstructionArrayToVector | Michael Dusan | |
| closes #2942 | |||
| 2019-07-24 | implement local variables in async functions | Andrew Kelley | |
| 2019-07-23 | inferring async from async calls | Andrew Kelley | |
| 2019-07-22 | fix multiple coroutines existing clobbering each other | Andrew Kelley | |
| 2019-07-22 | disable segfault handler when panicking | Andrew Kelley | |
| this prevents a segfault in stack trace printing to activate the segfault handler. | |||
| 2019-07-22 | disable segfault handler when panicking | Andrew Kelley | |
| this prevents a segfault in stack trace printing to activate the segfault handler. | |||
| 2019-07-22 | fix wrong calling convention on async resume | Andrew Kelley | |
| 2019-07-21 | implement async function parameters | Andrew Kelley | |
| 2019-07-21 | implement coroutine resume | Andrew Kelley | |
| 2019-07-21 | simple async function passing test | Andrew Kelley | |
| 2019-07-21 | returning from async fn adds bad resume safety | Andrew Kelley | |
| 2019-07-21 | fix not jumping to entry | Andrew Kelley | |
| 2019-07-21 | simple async function call working | Andrew Kelley | |
| 2019-07-19 | remove coroutines implementation and promise type | Andrew Kelley | |
| 2019-07-16 | libc headers before C language headers, and disable libunwind on arm32 | Andrew Kelley | |
| 2019-07-16 | update bundled musl source to 1.1.23 | Andrew Kelley | |
| 2019-07-16 | update musl headers to musl v1.1.23 | Andrew Kelley | |
| 2019-07-15 | fix result location alignment in ir_render_call | Andrew Kelley | |
