Veikka Tuominen
691c7cb3cd
std.build: fix functions returning address of by value parameter
2022-03-28 13:06:11 -07:00
Veikka Tuominen
c517e65d8f
Sema: implement coerceInMemoryAllowed for optionals
2022-03-28 13:05:40 -07:00
Veikka Tuominen
5515b81f8c
Sema: use the correct integer
...
Sure would be nice if these two incompatible indexes had distinct types.
2022-03-28 13:05:21 -07:00
Veikka Tuominen
a415fe0bc0
AstGen: clear rl_ty_inst in setBreakResultLoc if one is not provided
2022-03-28 13:05:08 -07:00
Veikka Tuominen
3c4ac47e00
stage2 llvm: fix union init of byRef values
2022-03-28 13:04:50 -07:00
Andrew Kelley
7e47f106cc
Value.hashPtr: handle lazy_align as an integer
...
Although lazy_align is a different tag than integer values, it needs to
be hashed and equality-tested as if it were a simple integer. Otherwise
our basic data structure guarantees fall apart.
2022-03-28 12:05:08 -07:00
Jakub Konka
c38b4bcee7
Merge pull request #11334 from ziglang/stage2-x64-overflow
...
x64: implement add, sub and mul with overflow
2022-03-28 20:58:18 +02:00
Jakub Konka
e6729036e4
x64: partially fix genImul, enable overflow tests
2022-03-28 17:45:50 +02:00
Jakub Konka
107052aded
x64: implement add, sub and mul with overflow
2022-03-28 16:37:35 +02:00
ominitay
25d4c5df70
std.mem.zeroInit: Fix behaviour with empty initialiser
2022-03-28 14:10:36 +03:00
Veikka Tuominen
460e7a2445
Merge pull request #11319 from Vexu/stage2-arg-count
...
stage2: check arg count before types
2022-03-28 13:05:40 +03:00
Jakub Konka
b8cd56dc94
Merge pull request #11300 from ziglang/stage2-debug-error-sets
2022-03-28 07:40:33 +02:00
Andrew Kelley
7be340e3cc
std.crypto.blake3: use @Vector instead of std.meta.Vector
2022-03-27 14:53:40 -07:00
Andrew Kelley
3fc0e0c57b
Sema: implement @setFloatMode
...
We are putting off actual optimization of floats because we have a
couple proposals being considered which would change how it works.
In the meantime, lowering optimized float mode to be the same as
strict is a perfectly legal way to implement the Zig language specification.
2022-03-27 14:52:12 -07:00
Andrew Kelley
c8f8440271
stage1: disable failing test
...
The new behavior test introduced in the previous commit is not passing
for stage1 on mips.
2022-03-27 14:40:24 -07:00
Andrew Kelley
6d2ec7a4e3
LLVM: handle aggregate_init for packed structs
2022-03-27 14:22:47 -07:00
Veikka Tuominen
d5e89dd70b
stage2: add temporary workaround for lack of argument count check
2022-03-27 22:57:43 +03:00
Veikka Tuominen
7217148edf
Value: hash lazy_align
2022-03-27 22:38:37 +03:00
Andrew Kelley
052079c994
Merge pull request #11302 from mitchellh/slice-null-cptr
...
stage2: runtime safety checks for slicing a null C pointer and @intCast truncating bits
2022-03-27 15:37:09 -04:00
Andrew Kelley
0501962b4c
Merge pull request #11321 from Luukdegram/wasm-overflow
...
stage2: wasm - Implement overflow arithmetic
2022-03-27 15:24:39 -04:00
Jakub Konka
366ec21052
dwarf: track type relocation state in Dwarf module
2022-03-27 20:53:06 +02:00
Jakub Konka
4ca9b4c44a
dwarf: move DbgInfoTypeRelocsTable into Dwarf module
2022-03-27 20:53:06 +02:00
Jakub Konka
1a80315836
dwarf: rename DebugInfoAtom into Atom; free all allocated memory
2022-03-27 20:53:06 +02:00
Jakub Konka
b4815b3131
dwarf: draft poc of deferred resolution of error sets debug info
2022-03-27 20:53:06 +02:00
Jakub Konka
e444e69dc4
dwarf: do not use Type.errorSetNames() for inferred error sets
...
Otherwise, we risk tripping an assertion in `Type.errorSetNames()`
in case the inferred error set was not yet fully resolved. This so
far only surfaced when Dwarf triggers recursive analysis of an
error set as part of emitting debug info for an error union.
2022-03-27 20:53:06 +02:00
Jakub Konka
4985abcc49
dwarf: add debug info for error unions
2022-03-27 20:53:06 +02:00
Jakub Konka
a1040a105a
dwarf: add debug info for error sets
2022-03-27 20:53:06 +02:00
Veikka Tuominen
bda7993beb
Sema: fix error set memory unsafety
...
All error names are supposed to be owned by Module.
2022-03-27 20:31:54 +03:00
Luuk de Gram
e1bb09648f
wasm: Enable overflow behavior tests
2022-03-27 19:02:45 +02:00
Luuk de Gram
3114faddd8
wasm: Implement overflow arithmetic
...
This implements the overflow arithmetic for unsigned and signed integers.
Meaning the following instructions:
- @addWithOverflow
- @subWithOverflow
- @shlWithOverflow
- @mulWithOverflow
2022-03-27 19:00:49 +02:00
Mitchell Hashimoto
3c91818438
stage2: runtime safety check intCast signedness
2022-03-27 09:20:37 -07:00
Mitchell Hashimoto
4ad98d0714
stage2: runtime safety check intCast to u0 must fit
2022-03-27 09:20:37 -07:00
Mitchell Hashimoto
8fbac2e86d
stage2: runtime safety check integer cast truncating bits
2022-03-27 09:20:37 -07:00
Mitchell Hashimoto
01698528d1
stage2: safety checks for slicing a null C pointer
2022-03-27 09:20:35 -07:00
Jakub Konka
d15bbebe2e
macho: do not create dSYM bundle for stage2 LLVM backend
...
Instead, we fallback to the old-fashioned stabs-based mechanism
until I add the missing mechanism for extracting and relocating
DWARF from relocatable object files and writing it into a dSYM
bundle.
2022-03-27 13:20:13 +02:00
BlueAlmost
406507c6dc
std.math.Complex: add 'negation' and 'mulitply by i'
2022-03-27 11:54:43 +03:00
leesongun
7ae22813ee
stage1: implement casting from u0
2022-03-27 11:49:54 +03:00
matu3ba
dbbda0f41a
std.testing: add methods tmpDirPath, getTestArgs, buildExe
...
continuation of #11093 to simplify testing IPC
* use cases
- get path to temporary directory
- get the test arguments inside test block for reusage
- build executables from text within test blocks, ie to test IPC
* missing conventions
- how to name and debug test cases
- where do simple+repititve build commands for testing belong
2022-03-27 11:43:40 +03:00
Veikka Tuominen
f9a2c0fc6c
Merge pull request #10871 from schmee/stage2-bitcast-safety
...
stage2: add type checking for @bitCast
2022-03-27 11:31:30 +03:00
tecanec
3beef3945c
std: SIMD utility functions
...
This file contains a collections of functions that may be useful for SIMD, such as generating a vector with a linear range of numbers starting at zero, joining two vectors together, getting the index of the first true in a vector of bools, etc.
2022-03-27 11:28:44 +03:00
Yorhel
a3030221c3
std.fs: Handle EINVAL from linux.getdents64
...
Fixes #11178
2022-03-27 11:24:31 +03:00
jagt
29c32b3dc5
Namespace.decls use context to save memory
...
change `Module.Namespace.decls` from `AutoArrayHashMapUnmanaged` to
`ArrayHashMapUnmanaged(*Decl, void)` with custom context to eliminate
duplicated decl name strings.
Also see:
https://zig.news/andrewrk/how-to-use-hash-map-contexts-to-save-memory-when-doing-a-string-table-3l33
2022-03-27 11:23:11 +03:00
Veikka Tuominen
23507f20b9
Merge pull request #11315 from wsengir/stage2-simplify-muladd
...
stage2: simplify mul_add
2022-03-27 11:12:42 +03:00
William Sengir
adc2824fa4
stage2: simplify scalar_ty for mul_add in LLVM backend
2022-03-26 16:29:48 -07:00
William Sengir
6a48345649
Sema: remove redundant mul_add comptime vectorization
...
Moving comptime vectorization into `Value` has proven to simplify and
clean up a lot of code.
2022-03-26 16:29:48 -07:00
Joachim Schmidt
97a53bb8a1
Merge pull request #11311 from joachimschmidt557/builtin-with-overflow
...
stage2: Change semantics of AIR arithmetic overflow instructions
2022-03-26 22:29:48 +01:00
Luuk de Gram
16e88b75ba
wasm: Enable passing tests
2022-03-26 21:20:29 +01:00
Luuk de Gram
97448e4d5f
wasm: Only generate import when referenced
...
Rather than creating an import for externs on updateDecl, we now
generate them when they're referenced. This is required so using @TypeOf(extern_fn())
will not emit the import into the binary (causing an incorrect function type index
as it won't be fully analyzed).
2022-03-26 21:20:29 +01:00
joachimschmidt557
9070ad7774
stage2 LLVM: Adjust to new AIR arithmetic overflow instructions
2022-03-26 17:21:42 +01:00
joachimschmidt557
e2468e3f27
Sema: change zirOverflowArithmetic to use new version of AIR insts
...
Also applies the change to Liveness
2022-03-26 17:21:42 +01:00