| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2019-09-02 | fix const result loc, runtime if cond, else unreachable | Andrew Kelley | |
| Closes #2791. See that issue for more details; I documented the debugging process quite thoroughly on this one. | |||
| 2019-09-02 | add ability to specify darwin framework search dirs | Andrew Kelley | |
| 2019-08-31 | improvements to `@asyncCall` | Andrew Kelley | |
| * `await @asyncCall` generates better code. See #3065 * `@asyncCall` works with a real `@Frame(func)` in addition to a byte slice. Closes #3072 * `@asyncCall` allows passing `{}` (a void value) as the result pointer, which uses the result location inside the frame. Closes #3068 * support `await @asyncCall` on a non-async function. This is in preparation for safe recursion (#1006). | |||
| 2019-08-31 | `@typeOf` now guarantees no runtime side effects | Andrew Kelley | |
| related: #1627 | |||
| 2019-08-30 | support recursive async and non-async functions | Andrew Kelley | |
| which heap allocate their own frames related: #1006 | |||
| 2019-08-29 | await does not force async if callee is blocking | Andrew Kelley | |
| closes #3067 | |||
| 2019-08-29 | make `@sizeOf` lazy | Andrew Kelley | |
| 2019-08-29 | fix not fully resolving debug info for structs causing llvm error | Andrew Kelley | |
| 2019-08-29 | fix not fully resolving debug info for structs causing llvm error | Andrew Kelley | |
| 2019-08-28 | Merge remote-tracking branch 'origin/master' into llvm9 | Andrew Kelley | |
| 2019-08-28 | fix implicit cast from zero sized array ptr to slice | Andrew Kelley | |
| closes #1850 | |||
| 2019-08-26 | fix regression with global variable assignment... | Andrew Kelley | |
| ...with optional unwrapping with var initialized to undefined | |||
| 2019-08-25 | hook up unions with lazy values | Andrew Kelley | |
| this case works now: ```zig const Expr = union(enum) { Literal: u8, Question: *Expr, }; ``` | |||
| 2019-08-23 | better handling of lazy structs | Andrew Kelley | |
| this case works now: ```zig const A = struct { b_list_pointer: *const []B, }; const B = struct { a_pointer: *const A, }; const b_list: []B = [_]B{}; const a = A{ .b_list_pointer = &b_list }; const obj = B{ .a_pointer = &a }; ``` | |||
| 2019-08-23 | allow top level declarations to be lazy | Andrew Kelley | |
| this case now works: ```zig const A = struct { b: B, }; const B = fn (A) void; ``` | |||
| 2019-08-23 | Merge remote-tracking branch 'origin/master' into fix-field-alignment-kludge | Andrew Kelley | |
| 2019-08-23 | Encapsulate bigint representation, assert on cast data loss | Jonathan Marler | |
| 2019-08-22 | introduce lazy values | Andrew Kelley | |
| see #2174 | |||
| 2019-08-16 | Merge remote-tracking branch 'origin/master' into llvm9 | Andrew Kelley | |
| 2019-08-16 | fix and test case for returning from suspend block | Andrew Kelley | |
| See #3063 | |||
| 2019-08-16 | codegen: LLVMConstSub instead of LLVMBuildSub in one place | Andrew Kelley | |
| 2019-08-15 | fix crash with sometimes type not being resolved | Andrew Kelley | |
| 2019-08-15 | add assertion about control flow to fix gcc warning | Andrew Kelley | |
| 2019-08-15 | fix error return traces for async calls of blocking functions | Andrew Kelley | |
| 2019-08-15 | remove `cancel` | Andrew Kelley | |
| 2019-08-14 | codegen for async call of blocking function | Andrew Kelley | |
| 2019-08-13 | avoid the word "coroutine", they're "async functions" | Andrew Kelley | |
| 2019-08-13 | alignment of structs no longer depends on LLVM | Andrew Kelley | |
| fixes async function tests in optimized builds | |||
| 2019-08-13 | Merge remote-tracking branch 'origin/master' into rewrite-coroutines | Andrew Kelley | |
| 2019-08-13 | flip the order of fields in error unions | Andrew Kelley | |
| to prepare for fixing u128 alignment issues | |||
| 2019-08-11 | fix no-longer-correct `nonnull` attribute on merge err ret traces fn | Andrew Kelley | |
| 2019-08-11 | fix cancel invoking branch on undefined memory | Andrew Kelley | |
| 2019-08-11 | all tests passing | Andrew Kelley | |
| 2019-08-11 | fix canceling async functions which have error return tracing | Andrew Kelley | |
| 2019-08-11 | src/codegen: configure stack probes explicitly | Nick Erdmann | |
| 2019-08-10 | fix returning a const error from async function | Andrew Kelley | |
| 2019-08-10 | fix try in an async function with error union and non-zero-bit payload | Andrew Kelley | |
| 2019-08-09 | fix combining try with errdefer cancel | Andrew Kelley | |
| 2019-08-09 | fix cancel inside an errdefer | Andrew Kelley | |
| 2019-08-08 | fix passing string literals to async functions | Andrew Kelley | |
| 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 | modify header precedence for zig cc, resolves intrinsics issues (#3027) | Ryan Saunderson | |
| 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. | |||
