| Age | Commit message (Collapse) | Author |
|
|
|
* you can label suspend blocks
* labeled break supports suspend blocks
See #803
|
|
* remove @cmpxchg, add @cmpxchgWeak and @cmpxchgStrong
- See explanations in the langref.
* add operand type as first parameter
* return type is ?T where T is the operand type
closes #461
|
|
|
|
See #174
|
|
|
|
See #767
|
|
LLVM destroys the string that we use to test if LLVM deleted the
inlined function.
Also fixed forgetting to initialize a buffer in std lib path detection.
|
|
|
|
|
|
|
|
|
|
|
|
it would work but LLVM is not correctly spilling the addresses.
See #821
|
|
LLVM's CodeViewDebug pass misparses the version string when it contains
a git revision so stop doing that. This only affected Windows builds.
closes #898
|
|
'zig run file.zig' builds a file and stores the artifacts in the global
cache. On successful compilation the binary is executed.
'zig run file.zig -- a b c' does the same, but passes the arguments a,
b and c as runtime arguments to the program. Everything after an '--' are
treated as runtime arguments.
On a posix system, a shebang can be used to run a zig file directly. An
example shebang would be '#!/usr/bin/zig run'. You may not be able pass
extra compile arguments currently as part of the shebang. Linux for example
treats all arguments after the first as a single argument which will result
in an 'invalid command'.
Currently there is no customisability for the cache path as a compile
argument. For a posix system you can use `TMPDIR=. zig run file.zig` to
override, in this case using the current directory for the run cache.
The input file is always recompiled, even if it has changed. This is
intended to be cached but further discussion/thought needs to go into
this.
Closes #466.
|
|
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
|
|
See #821
Now the code works correctly, but error return traces are missing
the frames from coroutines.
|
|
closes #857
|
|
closes #856
|
|
progress towards #821
|
|
We prefer `struct typename`. If a typedef is required, this must be done
manually after generation.
|
|
closes #777
|
|
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.
|
|
* @panic generates an error return trace
* printing an error return trace no longer interferes with
normal stack traces.
* instead of ignore_frame_count, we look at the return address
when you call panic, and that's the first stack trace function
makes stack traces much cleaner - the error return trace
flows gracefully into the stack trace
|
|
closes #779
|
|
this works around LLVM optimization assertion failures.
https://bugs.llvm.org/show_bug.cgi?id=36578
closes #800
|
|
|
|
but it has bugs
|
|
|
|
|
|
|
|
my simple coro test program builds now
see #727
|
|
this one doesn't work either
|
|
This reverts commit 132e604aa399a3bcb91996e550cf8972bd88422c.
this workaround didn't work either
|
|
reverts 4ac6c4d6bfb8f7ada2799ddb5ce3a9797be0518d
the workaround didn't work
|
|
|
|
This reverts commit c2f5634fb3df51622cf74f23b4ae0d4a7d2bbbe9.
It doesn't work. With this, LLVM moves the allocate fn call
to after llvm.coro.begin
|
|
|
|
by making alloc and free functions be parameters to async
functions instead of using getelementptr in the DynAlloc block
See #727
|
|
see #727
|
|
See #727
|
|
See #727
|
|
See #727
|
|
See #727
|
|
See #727
|
|
See #727
|
|
See #727
|
|
See #727
|
|
See #727
|