| Age | Commit message (Collapse) | Author |
|
* This allows arrays to be passed by value at comptime
|
|
closes #1164
|
|
closes #1118
|
|
Add support for half-precision floating point operations.
Introduce `__extendhfsf2` and `__truncsfhf2` in std/special/compiler_rt.
Add `__gnu_h2f_ieee` and `__gnu_f2h_ieee` as aliases that are used in
Windows builds.
The logic in std/special/compiler_rt/extendXfYf2.zig has been reworked
and can now operate on 16 bits floating point types.
`extendXfYf2()` and `truncXfYf2()` are marked `inline` to work around
a not entirely understood stack alignment issue on Windows when calling
the f16 versions of the builtins.
closes #1122
|
|
|
|
closes #1079
closes #1147
|
|
closes #1124
|
|
closes #1115
|
|
closes #733
|
|
* Zero bit optional types do not need a LLVM DI type
|
|
use the `zig-fmt-optional-default` branch to have zig fmt
automatically do the changes.
closes #1023
|
|
See #1023
This also renames Nullable/Maybe to Optional
|
|
any *T -> ?*T cast is allowed implicitly, even
when it occurs deep inside the type, and the cast
is a no-op at runtime.
in order to add this I had to make the comptime value
representation of nullable pointers the same as the
comptime value representation of normal pointers,
so that we don't have to do any recursive transformation
of values when doing this kind of cast.
|
|
|
|
Now, if a struct has any fields which require comptime,
such as `type`, then the struct is marked as requiring
comptime as well. Same goes for unions.
This means that a function will implicitly be called
at comptime if the return type is a struct which contains
a field of type `type`.
closes #586
|
|
* add assertion for trying to do @typeInfo on global error set
* remove TypeInfo.Slice
* add TypeInfo.Pointer.Size with possible values
- One
- Many
- Slice
See #770
|
|
See #770
|
|
This also means that translate-c has to detect when a pointer to
opaque is happening, and use `*` instead of `[*]`.
See #1059
|
|
closes #1058
|
|
|
|
|
|
|
|
* enable slicing for single-item ptr to arrays
* disable slicing for other single-item pointers
* enable indexing for single-item ptr to arrays
* disable indexing for other single-item pointers
see #770
closes #386
|
|
instead we return nullptr. this makes the behavior consistent
across all platforms.
closes #1044
closes #1045
|
|
add pointer arithmetic for unknown length pointer
|
|
See #770
To help automatically translate code, see the
zig-fmt-pointer-reform-2 branch.
This will convert all & into *. Due to the syntax
ambiguity (which is why we are making this change),
even address-of & will turn into *, so you'll have
to manually fix thes instances. You will be guaranteed
to get compile errors for them - expected 'type', found 'foo'
|
|
both ir.cpp and analyze.cpp have a function resolve_inferred_error_set,
which is a nearly exact copy-paste. This commit removes the one in ir.cpp
and exposes then one in analyze.cpp. This also allows us to make
analyze_fn_body local to analyze.cpp, as it is not used anywhere in
ir.cpp after this change
|
|
|
|
|
|
|
|
Fixed extern enums having the wrong size
See #977
|
|
See #770
|
|
|
|
|
|
|
|
fixes #852
|
|
|
|
closes #931
|
|
* you can label suspend blocks
* labeled break supports suspend blocks
See #803
|
|
I believe this was a regression caused by
51a6ff18d454f4cb0faa0f1837df9f0c55a80b43
closes #927
|
|
See #767
|
|
|
|
|
|
|
|
it would work but LLVM is not correctly spilling the addresses.
See #821
|
|
|
|
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
|