Jakub Konka
8943a0aaaa
zld: dedup initializers and finalizers
2021-04-20 16:55:32 +02:00
Jakub Konka
3e73a3c29b
zld: treat priv extern as weak symbol
2021-04-20 16:55:32 +02:00
LemonBoy
a5a3ad5e10
c: Minor cleanup
...
* Remove superfluous "test_" prefix in test names
* Use aliased isNan everywhere
2021-04-20 15:44:54 +02:00
LemonBoy
a4e2539b09
c: Implement fmax and fmaxf
2021-04-20 15:44:21 +02:00
LemonBoy
fcfe25710b
c: Implement fmin and fminf
2021-04-20 15:43:46 +02:00
LemonBoy
c7c77fb1b0
c: Add tests for generic_fmod implementation
2021-04-20 15:43:01 +02:00
LemonBoy
be551d85b7
translate-c: Group field access LHS if necessary
2021-04-20 15:16:25 +03:00
Evan Haas
63304a871e
translate-c: group LHS of array access if necessary
2021-04-20 11:33:01 +03:00
Evan Haas
55e6bd10fe
translate-c: use transCreateNodeInfixOp for pointer arithmetic
2021-04-20 11:33:01 +03:00
Andrew Kelley
e315120b79
AstGen: implement array initialization expressions
2021-04-19 23:23:24 -07:00
Andrew Kelley
693dbeeef2
stage2: make @alignCast accept 2 parameters
...
It is not yet time to implement #5909 .
2021-04-19 18:46:45 -07:00
Andrew Kelley
4630e3891c
AstGen: implement inline asm output
2021-04-19 18:44:59 -07:00
Andrew Kelley
a136c093bf
zig astgen: print instruction counts and byte sizes
2021-04-19 16:23:05 -07:00
Andrew Kelley
7f931a7522
AstGen: implement error set decls
2021-04-19 16:03:46 -07:00
Andrew Kelley
2083208f19
AstGen: implement functions with inferred error sets
...
This commit also reclaims +2 ZIR instruction tags by moving the
following to `extended`:
* func_var_args
* func_extra
* func_extra_var_args
The following ZIR instruction tag is added:
* func_inferred
2021-04-19 15:03:41 -07:00
Andrew Kelley
22015c1b3b
std.MultiArrayList: ensureUnusedCapacity/ensureTotalCapacity
...
Same as c8ae581fef6506a8234cdba1355ba7f0f449031a, but for
MultiArrayList.
2021-04-19 15:02:37 -07:00
Isaac Freund
e2cc02717e
Fix .gitattributes rules that should be recursive
...
These are currently incorrect according to the gitattributes(5) and
gitignore(5) man pages. However, it seems github ended up treating them
as we intended due to a bug until recently when that bug was fixed.
2021-04-19 16:55:12 -04:00
Andrew Kelley
27d4bea9a4
AstGen: implement if optional, if error union
2021-04-19 12:25:16 -07:00
Andrew Kelley
3dadccec45
AstGen: implement while optional and while error union
2021-04-19 12:02:11 -07:00
Andrew Kelley
3f60481be4
AstGen: implement the remaining struct init ResultLoc forms
2021-04-19 11:09:00 -07:00
Hubert Jasudowicz
d605f02756
std: Add process_vm_readv/writev wrappers
2021-04-19 16:12:28 +02:00
Andrew Kelley
ae495de54d
AstGen: implement all the builtin functions
2021-04-18 22:38:41 -07:00
joachimschmidt557
fbda9991f4
stage2 codegen: Fix silent bug in reuseOperand
2021-04-17 20:57:26 -04:00
Isaac Freund
4081e0a475
zig fmt: bypass auto indentation for // zig fmt: on
...
Currently an indented `// zig fmt: on` will be indented an additional
time on every run of zig fmt.
2021-04-17 20:10:20 -04:00
Andrew Kelley
5a3045b5de
AstGen: implement overflow arithmetic builtins
2021-04-17 13:00:10 -07:00
Isaac Freund
8e6865c8ee
std/build: fix linker_allow_shlib_undefined
...
The relevant flags were renamed in 01a1365 but updating std.build
was overlooked.
2021-04-17 15:17:54 +02:00
Frank Denis
9f6b56ab4b
Merge pull request #8555 from chivay/pidfd
...
std: Add pidfd wrappers
2021-04-17 15:03:25 +02:00
jacob gw
afb9f695b1
stage2: add support for zig cc assembler -mcpu option
2021-04-17 02:00:07 -04:00
Andrew Kelley
8cf0ef2779
AstGen: implement simple enums and decls for enums
2021-04-16 22:21:26 -07:00
Andrew Kelley
0409d433ba
AstGen: fix compile error using wrong node/token function
2021-04-16 19:49:19 -07:00
Andrew Kelley
e13fc6b119
stage2: make @import relative to the current file
...
previously, it was incorrectly relative to the package directory
2021-04-16 19:45:58 -07:00
Andrew Kelley
415ef1be51
AstGen: fix function decl astgen
...
it was using the wrong scope and other mistakes too
2021-04-16 19:45:24 -07:00
Andrew Kelley
dd5a1b1106
build.zig: add a way to skip installing lib/ files
2021-04-16 18:58:27 -07:00
Andrew Kelley
9375ad0d3b
AstGen: implement global var decls
...
And fix bug with using `ensureCapacity` when I wanted
`ensureUnusedCapacity`.
2021-04-16 17:57:51 -07:00
Andrew Kelley
c8ae581fef
std: deprecate ensureCapacity, add two other capacity functions
...
I've run into this footgun enough times, nearly every time I want
`ensureUnusedCapacity`, not `ensureCapacity`. This commit deprecates
`ensureCapacity` in favor of `ensureTotalCapacity` and introduces
`ensureUnusedCapacity`.
2021-04-16 17:56:30 -07:00
Andrew Kelley
5ff45b3f44
stage2: use import list from ZIR to queue up more AstGen tasks
2021-04-16 17:28:28 -07:00
Andrew Kelley
a271f12a14
AstGen: store list of imports
2021-04-16 16:20:29 -07:00
Hubert Jasudowicz
5134fb72ef
std: Add pidfd wrappers
2021-04-17 01:13:16 +02:00
Andrew Kelley
edd75d03e3
ZIR: rename decl_val and decl_ref to remove redundant suffix
2021-04-16 15:52:26 -07:00
Andrew Kelley
adc2aed587
AstGen: require @import operand to be string literal
...
See #2206
2021-04-16 15:50:28 -07:00
Andrew Kelley
333a577d73
AstGen: put decls into blocks to be evaluated independently
2021-04-16 15:34:09 -07:00
Isaac Freund
01a1365857
Rename --(no-)allow-shilb-undefined to -f(no-)allow-shilb-undefined
...
This breaks with GNU ld but is consistent with our naming convention for
all the rest of the flags.
2021-04-17 00:03:35 +02:00
Andrew Kelley
01b4bf34ea
stage2: AstGen improvements
...
* AstGen: represent compile errors in ZIR rather than returning
`error.AnalysisFail`.
* ZIR: remove decl_ref and decl_val instructions. These are replaced by
`decl_ref_named` and `decl_val_named`, respectively, which will
probably get renamed in the future to the instructions that were just
deleted.
* AstGen: implement `@This()`, `@fence()`, `@returnAddress()`, and
`@src()`.
* AstGen: struct_decl improved to support fields_len=0 but have decls.
* AstGen: fix missing null bytes after compile error messages.
* SrcLoc: no longer depend on `Decl`. Instead have an explicit field
`parent_decl_node` which is an absolute AST Node index.
* Module: `failed_files` table can have null value, in which case the
key, which is a `*Scope.File`, will have ZIR errors in it.
* ZIR: implement text rendering of struct decls.
* CLI: introduce debug_usage and `zig astgen` command which is enabled
when the compiler is built in debug mode.
2021-04-16 14:48:10 -07:00
daurnimator
99e7ba24b1
Add LibExeObjStep.linker_allow_shlib_undefined field to set --allow-shlib-undefined
2021-04-16 22:51:51 +02:00
daurnimator
0e687d125b
Add --(no-)allow-shlib-undefined to supported zig linking flags
2021-04-16 22:51:51 +02:00
Andrew Kelley
140d9df99b
Merge pull request #8506 from LemonBoy/test-c-file
...
build: Test the c.zig file too
2021-04-16 13:03:52 -04:00
joachimschmidt557
5edabb3990
stage2 register manager: Add functions for allocating multiple registers
2021-04-16 13:03:10 -04:00
Manuel Floruß
2cd49d20e8
Fix std.os.windows.user32.messageBoxW
...
Arguments to `selectSymbol` were passed in the wrong order.
2021-04-16 13:01:25 -04:00
Andrew Kelley
235aa8c078
ci: drone: don't skip stage2 tests
...
the stalls seem to be happening for a different reason
2021-04-16 09:57:31 -07:00
Mahdi Khanalizadeh
d1a41feddc
linux: fix number of arguments for tgkill syscall
2021-04-16 17:09:15 +02:00