Andrew Kelley
018daa028e
rework types and values data layout
2020-04-19 19:31:50 -04:00
Andrew Kelley
f92ccf365b
generic ir parsing framework
2020-04-19 19:31:50 -04:00
Andrew Kelley
bd4280decf
beginnings of zig ir parser
2020-04-19 19:31:50 -04:00
joachimschmidt557
3fd38429e4
Enable formatting in std.big.Int.format
2020-04-15 12:51:43 -04:00
Vexu
ca3bf6e6ad
translate-c cleanup and zig fmt
2020-04-15 15:15:32 +03:00
Vexu
a016fb8c62
translate-c: correct invalid shortcut
2020-04-15 15:14:10 +03:00
xackus
dbc00e2424
ArrayList: remove old (before span) API
2020-04-11 20:40:34 -04:00
Andrew Kelley
3c34c313cf
revert Translate C: Add comment containing c source location for failed decls
...
This reverts 0db108101a
.
Unfortunately this caused a regression. Closes #5007 .
2020-04-11 17:56:48 -04:00
emekoi
de08d283da
fix compilation under mingw
2020-04-11 15:18:54 -05:00
Andrew Kelley
a6e288d5fe
Merge pull request #4711 from leroycep/feature-file-locks
...
Add lock option to File.OpenFlags and File.CreateFlags
2020-04-10 15:00:45 -04:00
Auguste Rame
df14578c9d
Merge branch 'master' into nameless-fields
2020-04-10 11:49:50 -04:00
Lachlan Easton
d7902707bc
Translate C: Allow casting literal ints to pointers
2020-04-08 14:11:01 -04:00
Vexu
7b5fb79b5b
Translate C: Put an alignCast in c style pointer casts to allow opaque types to cast properly in C macros
...
Translate C: add test case for aligning opaque types in pointer casts
2020-04-08 14:11:01 -04:00
SuperAuguste
882aa86843
more fixes
2020-04-07 15:08:46 -04:00
Vexu
adaf7ad672
Merge pull request #4684 from LakeByTheWoods/comment_failed_decls
...
Translate C: Add comment containing c source location for failed decls
2020-04-07 21:47:32 +03:00
SuperAuguste
f21ac0220a
msvc fix
2020-04-07 14:39:24 -04:00
SuperAuguste
9298d38cee
remove debug statement
2020-04-07 13:33:01 -04:00
SuperAuguste
94841d0292
Nameless struct field consistency
2020-04-07 13:26:17 -04:00
LeRoyce Pearson
798207ec80
Merge branch 'master' into feature-file-locks
2020-04-06 21:51:57 -06:00
Andrew Kelley
e4eb817f79
libc_installation.zig: don't special-case based on C ABI
...
Whether the C ABI is mingw-w64 or msvc, detection of native libc paths
should be the same. In the future we may want to allow passing a C ABI
parameter to detectNativeCPaths() but for now we have the same behavior
regardless.
2020-04-06 13:33:32 -04:00
Vexu
c5ced0d74a
Merge pull request #4939 from SuperAuguste/master
...
translate-c: Properly translate C multicharacter literals
2020-04-06 10:31:17 +03:00
SuperAuguste
6106cf4419
fixes
2020-04-05 19:06:43 -04:00
Vexu
6ef15fc8d0
Merge pull request #4901 from phase/feature/translate-c-remassign
...
translate-c: RemAssign and DivAssign
2020-04-05 21:05:18 +03:00
Jadon Fowler
ae376e0758
translate-c: remove unneeded semicolon
...
Signed-off-by: Jadon Fowler <j@jadon.io>
2020-04-05 10:44:42 -04:00
SuperAuguste
027e2a1673
fix multichar literals in translate_c
2020-04-04 17:56:25 -04:00
xackus
cd20e0cc67
rename mem.separate to mem.split
2020-04-04 17:37:51 -04:00
Andrew Kelley
e5d479b06e
detect an endless loop when trying to detect native libc installation
...
closes #4810
2020-04-04 15:03:22 -04:00
Andrew Kelley
52db13738b
zig cc looks for native include directories unless -nostdinc
...
closes #4938
2020-04-04 14:58:24 -04:00
Jadon Fowler
391ee996a5
translate-c: account for signedness when translating div & mod
...
Signed-off-by: Jadon Fowler <j@jadon.io>
2020-04-04 02:16:30 -04:00
Andrew Kelley
e89c42655c
Merge pull request #4868 from xackus/new-arraylist-api
...
new ArrayList API
2020-04-03 22:31:15 -04:00
LeRoyce Pearson
733f1c25bd
Fix compile errors in stage2
2020-04-02 23:39:25 -06:00
LeRoyce Pearson
f757f0ea59
Merge branch 'master' into feature-file-locks
2020-04-02 21:47:41 -06:00
LeRoyce Pearson
35c462caf0
Merge branch 'master' into feature-file-locks
2020-04-02 21:46:48 -06:00
Andrew Kelley
f8cc6a1917
zig cc: fix ambiguity with -MT
...
In an MSVC context, `-MT` means
"Use static run-time"
and it is a flag with no parameter.
On POSIX it means
"Specify name of main file output in depfile"
and it is "joined or separate".
The former was interfering with the latter. Now, the MT flag is required
to be specified with a `/` to disambiguate: `/MT`.
2020-04-02 21:15:36 -04:00
Andrew Kelley
c4b3c84b3f
zig cc: support -F and -framework
2020-04-02 15:59:48 -04:00
Andrew Kelley
e4edc6d118
zig cc: respect -MF -MV -MD options
...
Zig disables its caching and forwards these args when any are provided.
see #4784
2020-04-02 15:47:27 -04:00
xackus
7a28c644aa
new ArrayList API: fix everything else
2020-04-02 16:12:08 +02:00
Andrew Kelley
4848b28ec8
zig cc: detect -mcpu, -march, -mtune
...
However these are all treated like zig's -mcpu parameter.
See #4784
2020-04-01 18:06:04 -04:00
Rejean Loyer
2b6dfdd3d4
zig cc: add support for -L linker arguments
2020-04-01 17:21:11 -04:00
Andrew Kelley
783f73c7e3
zig cc properly handles -S flag and .ll, .bc extensions
2020-04-01 16:01:06 -04:00
Andrew Kelley
c211b8f91d
fix regressions from previous commit
2020-04-01 15:02:31 -04:00
Jadon Fowler
a255b0f842
translate-c: translate DivAssign & RemAssign
...
Closes #4790
Signed-off-by: Jadon Fowler <j@jadon.io>
2020-04-01 14:23:26 -04:00
Andrew Kelley
2e806682f4
(breaking) std.Buffer => std.ArrayListSentineled(u8, 0)
...
This new name (and the fact that it is a function returning a type) will
make it more clear which use cases are better suited for ArrayList and
which are better suited for ArrayListSentineled.
Also for consistency with ArrayList,
* `append` => `appendSlice`
* `appendByte` => `append`
Thanks daurnimator for pointing out the confusion of std.Buffer.
2020-04-01 13:30:07 -04:00
Andrew Kelley
553f0e0546
fixups and revert a few things
2020-04-01 11:56:39 -04:00
daurnimator
7eb938c909
Use length field as passed in stage2 libc_installation instead of relying on zero termination
2020-04-01 10:36:38 -04:00
daurnimator
e535057364
std: use std.ArrayList(u8).OutStream instead of std.Buffer.OutStream
2020-04-01 10:36:38 -04:00
daurnimator
3fb030e78a
std: use std.ArrayList(u8) instead of std.Buffer in src-self-hosted/translate_c.zig
2020-04-01 10:36:38 -04:00
daurnimator
3cf302a71d
Tidy up some mem.spanZ use-sites now that null is accepted
2020-04-01 01:50:34 +11:00
Andrew Kelley
839d85e440
fixes to 32-bit handling, to support 32-bit arm
2020-03-31 10:10:31 -04:00
Andrew Kelley
cfedd3aca2
revert detection of rtti and exceptions
...
This caused link errors in c++ code because it was not correct to pass
these flags to child codegens. And that was the only reason to detect
these flags. Otherwise we can safely rely on non-explicitly-detected
flag forwarding.
2020-03-30 17:42:30 -04:00
Andrew Kelley
9e7ae06249
std lib API deprecations for the upcoming 0.6.0 release
...
See #3811
2020-03-30 14:23:22 -04:00
Layne Gustafson
2a05ca1c94
Conv macro string concat to ++
2020-03-28 20:40:13 -04:00
LeRoyce Pearson
457f557c37
Merge branch 'master' into feature-file-locks
2020-03-28 17:24:19 -06:00
Ryan Liptak
cc7c670851
Sync clang_options_data.zig with update_clang_options
...
Some of the recent c++ related options were added to update_clang_options but didn't make it into clang_options_data.zig
2020-03-28 00:39:33 -07:00
Ryan Liptak
874b4618ca
zig cc: Add support for -z
...
This is only the first step; it makes zig cc recognize -z and append it to the linker args, but the linker arg parsing doesn't support -z yet so it will just give the warning 'unsupported linker arg: -z'
2020-03-28 00:35:54 -07:00
Ryan Liptak
b0b29b8a2f
zig cc: Add support for -Xlinker, --for-linker, --for-linker=
2020-03-27 23:32:01 -07:00
Andrew Kelley
107b5196f6
Merge pull request #4827 from ziglang/zig-cpp
...
support compiling and linking c++ code
2020-03-27 22:35:13 -04:00
Andrew Kelley
a258741084
initial support of response files
...
See #4833
It doesn't support comments or quotes yet.
2020-03-27 22:24:40 -04:00
Michael Dusan
33819ecfbc
windows: don't hard-code forward-slash paths
...
`zig targets` -> unable to list targets: BadPathName
2020-03-27 21:28:52 -04:00
LeRoyce Pearson
c7f4e68464
Merge branch 'master' into feature-file-locks
2020-03-27 11:32:33 -06:00
Andrew Kelley
f407109070
zig c++: get it working with musl and mingw-w64
2020-03-27 12:38:52 -04:00
Andrew Kelley
db17c0d88c
ability to compile c++ hello world with `zig c++`
...
closes #4786
2020-03-26 22:48:37 -04:00
Andrew Kelley
fae6cf0961
improved handling of native system directories
...
* `-isystem` instead of `-I` for system include directories
fixes a problem with native system directories interfering with zig's
bundled libc.
* separate Stage2Target.is_native into Stage2Target.is_native_os and
Stage2Target.is_native_cpu.
2020-03-25 20:34:15 -04:00
Michael Dusan
dd66fbb96a
Merge pull request #4811 from mikdusan/fix4634
...
self-hosted: use fs.selfExePathAlloc
2020-03-25 19:49:52 -04:00
Andrew Kelley
e3fec6cce9
zig cc: add detection for `-###`
...
it turns on --verbose-cc and --verbose-link
2020-03-25 19:32:12 -04:00
Michael Dusan
d554070de1
self-hosted: use fs.selfExePathAlloc
...
- add fs.selfExePathAlloc
- use fs.selfExePathAlloc instead of fs.selfExeDirPathAlloc
- remove redundant code from fs.selfExeDirPath
closes #4634
2020-03-25 18:40:28 -04:00
Andrew Kelley
6cbe589b51
zig cc: support -T linker script option
2020-03-25 12:05:48 -04:00
Andrew Kelley
93c7fa105f
Merge remote-tracking branch 'origin/llvm10'
...
LLVM 10 was released today
2020-03-24 09:57:09 -04:00
LeRoyce Pearson
113b217593
Merge branch 'master' into feature-file-locks
2020-03-23 21:39:16 -06:00
Andrew Kelley
13d04f9963
Merge pull request #4741 from momumi/master
...
allow `_` separators in number literals (stage 1)
2020-03-23 00:54:54 -04:00
Andrew Kelley
94f7c56001
riscv: add -mrelax arg for C to work around upstream issue
...
See #4485
2020-03-22 21:47:19 -04:00
Andrew Kelley
e5e5196d8e
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-22 20:48:21 -04:00
momumi
2d18178c27
minor fixes and more tests for _ separators
...
* Make the tokenizer spit out an Invalid token on the first invalid
character found in the number literal.
* More parsing and tokenizer tests for number literals
* fix invalid switch statement in ir.zig
2020-03-23 09:21:34 +10:00
Andrew Kelley
23c263776c
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-22 15:09:29 -04:00
momumi
8de45e5143
update parsing of int literals in self-hosted
...
* update std.math.big.Int.setString() to ignore underscores and make it
case insensitive
* fix issue in ir.zig with leading zeroes in integer literals
2020-03-22 13:59:14 +10:00
Andrew Kelley
2b65dc1032
zig cc: detect optimization and debug flags
2020-03-21 22:30:46 -04:00
Andrew Kelley
4b0ddb817b
zig cc: better support for the preprocessor option (-E)
2020-03-21 20:32:48 -04:00
Michael Dusan
28ad78cb7f
rename "passthrough" → "driver_punt"
...
- punt when `-E` is supplied
- punt when `-S` is supplied
2020-03-21 16:53:59 -04:00
Andrew Kelley
0eee98edc1
zig cc improvements
...
* The generated options data file is sorted now in a way that
makes sure longer prefixes are first. This prevents collisions
with some parameters.
* Add support for `-fPIC`, `-fno-PIC`, `-nostdlib`, `-shared`,
`-rdynamic`, `-Wl,-soname`, `-Wl,-rpath`
* Better support for `-o`.
* Disable generating h files
* Shared library support.
* Better positional argument support.
2020-03-21 15:40:49 -04:00
Andrew Kelley
a4eaeee720
ability to use `zig cc` as a drop-in C compiler
...
The basics are working
2020-03-21 15:39:39 -04:00
Andrew Kelley
7438d0fc31
glibc: include ld symbols and proper soname for ld
2020-03-20 14:39:05 -04:00
Andrew Kelley
53b5aa812b
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-19 22:19:24 -04:00
Andrew Kelley
8ea0a00f40
improve std lib code for the new semantics
2020-03-19 09:53:54 -04:00
Andrew Kelley
0707be8de8
fixes in semantic analysis needed to support this feature
2020-03-19 09:53:54 -04:00
Andrew Kelley
46ffc798b6
fix swapped logic for Windows
...
Remove `std.fs.deleteTree`. Callers instead should use
`std.fs.cwd().deleteTree`.
Add `std.fs.deleteTreeAbsolute` for when the caller has an absolute
path.
2020-03-18 16:42:47 -04:00
Andrew Kelley
27affde592
(breaking) clarify openDir API
...
* remove deprecated `std.fs.Dir` APIs
* `std.fs.Dir.openDir` now takes a options struct with bool fields for
`access_sub_paths` and `iterate`. It's now much more clear how
opening directories works.
* fixed the std lib and various zig code calling the wrong openDir
function.
* the runtime safety check for dir flags is removed in favor of the
cheaper option of putting a comment on the same line as handling
EBADF / ACCESS_DENIED, since that will show up in stack traces.
2020-03-18 16:10:57 -04:00
Andrew Kelley
dbde5df568
clean up some self-hosted bitrot + don't assume libstdc++
...
closes #4682
The self-hosted compiler is still bit rotted and still not compiling
successfully yet. I have a more serious rework of the code in a
different branch.
2020-03-17 23:03:45 -04:00
Andrew Kelley
656ba530d8
Merge remote-tracking branch 'origin/master' into llvm10
2020-03-13 15:17:53 -04:00
Andrew Kelley
4905102901
fix all the TODOs from the pull request
...
* `std.Buffer.print` is removed; use `buffer.outStream().print`
* `std.fmt.count` returns a `u64`
* `std.Fifo.print` is removed; use `fifo.outStream().print`
* `std.fmt.bufPrint` error is renamed from `BufferTooSmall`
to `NoSpaceLeft` to match `std.os.write`.
* `std.io.FixedBufferStream.getWritten` returns mutable buffer
if the buffer is mutable.
2020-03-13 12:02:58 -04:00
Andrew Kelley
2dd920ee39
Merge branch 'format-stream' of https://github.com/fengb/zig into fengb-format-stream
2020-03-13 11:31:11 -04:00
Andrew Kelley
aa49f972d6
Merge pull request #4720 from Vexu/translate-c
...
Translate-c treat C bools as ints
2020-03-12 14:00:07 -04:00
daurnimator
8a22c50c08
Remove unused static_crt_dir field from libc config
2020-03-12 12:27:45 -04:00
Benjamin Feng
4aae55b4cc
Replace fmt with new fmtstream
2020-03-12 10:41:09 -05:00
Benjamin Feng
ed7f30e1cd
Migrate last vestiges of fmt
2020-03-12 10:41:09 -05:00
Benjamin Feng
0059d9ee3e
Convert fmt.bufPrint / fmt.allocPrint
2020-03-12 10:41:09 -05:00
Benjamin Feng
4023ed56d4
Convert translate-c to fmtstream
2020-03-12 10:41:09 -05:00
Vexu
02c491e42a
translate-c fix order of tokens
2020-03-12 17:14:01 +02:00
Vexu
dda711ba0d
translate-c treat c bools as ints
2020-03-12 14:40:47 +02:00
Andrew Kelley
f58705b4a6
fix `zig targets` not reporting native info
2020-03-12 00:33:06 -04:00
Michael Dusan
bfebc11d06
fix zig-cache to treat cpu-features as raw-bytes
...
- add Stage2Target.cache_hash_len
- add cache_mem(ch, ptr, len)
- update call sites to use { ptr, len }
2020-03-11 19:33:12 -04:00