aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
AgeCommit message (Collapse)Author
2018-04-08*WIP* async/await TCP serverAndrew Kelley
2018-04-08error return traces work with async return caseAndrew Kelley
2018-04-08put the error return addresses in the coro frameAndrew Kelley
2018-04-08error return traces for the early return caseAndrew Kelley
it would work but LLVM is not correctly spilling the addresses. See #821
2018-03-31fix regressions on windowsAndrew Kelley
2018-03-30find libc and zig std lib at runtimeAndrew Kelley
this removes the following configure options: * ZIG_LIBC_LIB_DIR * ZIG_LIBC_STATIC_LIB_DIR * ZIG_LIBC_INCLUDE_DIR * ZIG_DYNAMIC_LINKER * ZIG_EACH_LIB_RPATH * zig's reliance on CMAKE_INSTALL_PREFIX these options are still available as command line options, however, the default will attempt to execute the system's C compiler to collect system defaults for these values. closes #870
2018-03-29Fixed looking for windows sdk when targeting linuxJimmi Holst Christensen
2018-03-24fix invalid codegen for error return traces across suspend pointsAndrew Kelley
See #821 Now the code works correctly, but error return traces are missing the frames from coroutines.
2018-03-24add promise->T syntax parsingAndrew Kelley
closes #857
2018-03-24fix async fns with inferred error setsAndrew Kelley
closes #856
2018-03-22ability to use async function pointersAndrew Kelley
closes #817
2018-03-13Merge branch 'master' of https://github.com/zig-lang/zigAndrea Orru
2018-03-13fix casting a function to a pointer causing compiler crashAndrew Kelley
closes #777
2018-03-13Panic instead of segfault when returning generic type from functionsAndrea Orru
closes #829
2018-03-12some return types disqualify comptime fn call cachingAndrew Kelley
closes #828
2018-03-12don't memoize comptime fn calls that access comptime mutable stateAndrew Kelley
closes #827
2018-03-10fix await multithreaded data raceAndrew Kelley
coro return was reading from a value that coro await was writing to. that wasn't how it was designed to work, it was an implementation mistake. this commit also has some work-in-progress code for fixing error return traces across suspend points.
2018-03-09don't memoize comptime functions if they can mutate state via parametersAndrew Kelley
closes #639
2018-03-08enums with 1 field and explicit tag type still get the tag typeAndrew Kelley
closes #820
2018-03-07add compile error for using @tagName on extern unionAndrew Kelley
closes #742
2018-03-06fix missing compile error for returning error from void async functionAndrew Kelley
closes #799
2018-03-06turn assertion into compile error for using var as return typeAndrew Kelley
closes #758
2018-03-06var is no longer a pseudo-type, it is syntaxAndrew Kelley
closes #779
2018-03-06ptrCast builtin now gives an error for removing const qualifierAndrew Kelley
closes #384
2018-03-01Merge remote-tracking branch 'origin/master' into asyncAndrew Kelley
2018-03-01implementation of awaitAndrew Kelley
but it has bugs
2018-02-28implement coroutine resumeAndrew Kelley
2018-02-28another workaround for llvm coroutinesAndrew Kelley
this one doesn't work either
2018-02-28different way of fixing previous commitAndrew Kelley
get_fn_type doesn't need the complete parameter type, it can just ensure zero bits known.
2018-02-28fix assert on self-referencing function ptr fieldBen Noordhuis
The construct `struct S { f: fn(S) void }` is not legal because structs are not copyable but it should not result in an ICE. Fixes #795.
2018-02-27Revert "llvm coroutine workaround: sret functions return sret pointer"Andrew Kelley
This reverts commit 132e604aa399a3bcb91996e550cf8972bd88422c. this workaround didn't work either
2018-02-27revert workaround for alloc and free as coro paramsAndrew Kelley
reverts 4ac6c4d6bfb8f7ada2799ddb5ce3a9797be0518d the workaround didn't work
2018-02-27llvm coroutine workaround: sret functions return sret pointerAndrew Kelley
2018-02-27Revert "another llvm workaround for getelementptr"Andrew Kelley
This reverts commit c2f5634fb3df51622cf74f23b4ae0d4a7d2bbbe9. It doesn't work. With this, LLVM moves the allocate fn call to after llvm.coro.begin
2018-02-27another llvm workaround for getelementptrAndrew Kelley
2018-02-26workaround llvm coro transformationsAndrew Kelley
by making alloc and free functions be parameters to async functions instead of using getelementptr in the DynAlloc block See #727
2018-02-26parse await and suspend syntaxAndrew Kelley
See #727
2018-02-25async functions are allowed to accept zig typesAndrew Kelley
2018-02-25fix handle_is_ptr for promise typeAndrew Kelley
2018-02-25codegen for coro_id instructionAndrew Kelley
See #727
2018-02-25codegen for calling an async functionAndrew Kelley
See #727
2018-02-23fix type_is_codegen_pointer being used incorrectlyAndrew Kelley
The names of these functions should probably change, but at least the semantics are correct now: * type_is_codegen_pointer - the type is either a fn, ptr, or promise * get_codegen_ptr_type - - ?&T and &T returns &T - ?promise and promise returns promise - ?fn()void and fn()void returns fn()void - otherwise returns nullptr
2018-02-23implement Zig IR for async functionsAndrew Kelley
See #727
2018-02-21implement IR analysis for async function callsAndrew Kelley
See #727
2018-02-20add promise typeAndrew Kelley
See #727
2018-02-20parse async fn definitionsAndrew Kelley
See #727
2018-02-20parse async fn calls and cancel expressionsAndrew Kelley
2018-02-15fix compiler crash when struct contains...Andrew Kelley
ptr to another struct which contains original struct
2018-02-09fix build runner on windowsAndrew Kelley
2018-02-08Merge remote-tracking branch 'origin/master' into error-setsAndrew Kelley