7847 Commits

Author SHA1 Message Date
Andrew Kelley
dff7ca6784
annotate TODO comment with bug tracker link 2020-02-21 14:20:07 -05:00
Andrew Kelley
10e0b07135
Merge pull request #4509 from ziglang/sub-architecture-annihilation
sub-architecture annihilation
2020-02-21 14:19:20 -05:00
Andrew Kelley
71573584cd
std.Target.parse gives parsing diagnostics 2020-02-21 13:34:55 -05:00
Andrew Kelley
7da7fbb912
update ARM cpu models to correctly include the sub-arch 2020-02-21 12:29:27 -05:00
Andrew Kelley
61c67a9833
remove sub-arch from stage1 2020-02-21 11:47:34 -05:00
Andrew Kelley
ab56d3e18c
fix std.Target unit tests 2020-02-21 11:07:56 -05:00
Andrew Kelley
a391a82e49
fix zig build adding invalid cli args 2020-02-21 01:58:40 -05:00
Andrew Kelley
7b8b4d200c
fix not initializing some ZigTarget fields 2020-02-21 01:54:00 -05:00
Andrew Kelley
2de7d0b10c
fix zig build, ABI ABI, and update tests to new Target layout 2020-02-20 18:50:20 -05:00
Andrew Kelley
903127f36c
Merge remote-tracking branch 'origin/master' into sub-architecture-annihilation 2020-02-20 18:36:04 -05:00
Andrew Kelley
0f016b368d
support -mcpu=baseline, both in stage1 and stage2
See e381a42de9c0f0c5439a926b0ac99026a0373f49 for more details.
This is set up so that if we wish to make "baseline" depend on the
OS in the future, it is possible to do that.
2020-02-20 18:31:17 -05:00
Andrew Kelley
e381a42de9
quick fix: add -mcpu=baseline support to zig0
When the build.zig logic to build libzigstage2 was converted to a cmake
command, it neglected to use baseline CPU features rather than compiling
with native features.

This adds a hard coded flag `-mcpu=baseline` which can be used to detect
the native target, but mark it as non-native so that it does not get the
CPU features specific to the host used to compile libzigstage2.

Full `-mcpu` support is happening in the upcoming pull request #4509,
and so this "quick fix" will be cleaned up in that branch, before it is
merged to master.

closes #4506
2020-02-20 17:02:29 -05:00
Andrew Kelley
b0d2ebe529 remove std.io.readLine
This was deceptive. It was always meant to be sort of a "GNU readline"
sort of thing where it provides a Command Line Interface to input text.
However that functionality did not exist and it was basically a red
herring for people trying to read line-delimited input from a stream.

In this commit the API is deleted, so that people can find the proper
API more easily.

A CLI text input abstraction would be useful but may not even need to be
in the standard library. As you can see in this commit, the guess_number
CLI game gets by just fine by using `std.fs.File.read`.
2020-02-20 15:30:00 -05:00
Andrew Kelley
33c69d5cb6
arm: clarify which CPU features are sub-architectures
versus which ones are instruction sets.
2020-02-20 15:27:42 -05:00
Andrew Kelley
3d53a95718
Merge branch 'LemonBoy-fix-4508' 2020-02-20 12:40:11 -05:00
Andrew Kelley
ec889d5888
NO_MEDIA_IN_DEVICE => return error.NoDevice 2020-02-20 12:39:46 -05:00
Andrew Kelley
9c3eff9193
Revert "arm: clean up the messy sub-architecture & CPU features"
This reverts commit 96f45c27b65307fe4abd5d1fb1cf314b1f493d8e.
2020-02-20 12:18:32 -05:00
LemonBoy
ae16a6773f std: Handle NO_MEDIA_IN_DEVICE error in openFileWindows
Closes #4507
2020-02-20 13:25:45 +01:00
LemonBoy
a385547786 ir: Compile error on result_loc type mismatch w/ slicing
Closes #4508
2020-02-20 13:14:19 +01:00
Michael Dusan
c49ab049c5
Merge pull request #4511 from mikdusan/stage1-verbose-ir
stage1/ir_print: show GenConst in trailing fahsion
2020-02-20 02:48:03 -05:00
Michael Dusan
81cc52d4af
stage1/ir_print: show GenConst in trailing fahsion 2020-02-20 00:51:36 -05:00
Andrew Kelley
3c76e5e33d
update tls in std lib for lack of sub-arch 2020-02-19 22:09:35 -05:00
Andrew Kelley
7c298c8c17
fix generation of builtin import 2020-02-19 22:09:25 -05:00
Andrew Kelley
884d150408
stage1 main: fix cli parsing of architecture 2020-02-19 22:09:05 -05:00
Andrew Kelley
c33cd370fc
fix unit test for Target.parse
I think this is working correctly. Without also removing sse2 from the
feature set, sse gets added back into the set because sse2 is part of
the x86_64 baseline (which is the cpu provided) and sse2 depends on sse.
2020-02-19 21:55:25 -05:00
Andrew Kelley
ef2d237f2f
this is not the proper way to support this feature 2020-02-19 21:51:24 -05:00
Andrew Kelley
84f1893c18
remove the concept of "sub-architecture"
in favor of CPU features. Also rearrange the `std.Target`
data structure.

 * note: `@import("builtin")` was already deprecated in favor of
   `@import("std").builtin`.
 * `std.builtin.arch` is now deprecated in favor of
   `std.builtin.cpu.arch`.
 * `std.Target.CpuFeatures.Cpu` is now `std.Target.Cpu.Model`.
 * `std.Target.CpuFeatures` is now `std.Target.Cpu`.
 * `std.Target` no longer has an `arch` field. Instead it has a
   `cpu` field, which has `arch`, `model`, and `features`.
 * `std.Target` no longer has a `cpu_features` field.
 * `std.Target.Arch` is moved to `std.Target.Cpu.Arch` and
   it is an enum instead of a tagged union.
 * `std.Target.parseOs` is moved to `std.Target.Os.parse`.
 * `std.Target.parseAbi` is moved to `std.Target.Abi.parse`.
 * `std.Target.parseArchSub` is only for arch now and moved
    to `std.Target.Cpu.Arch.parse`.
 * `std.Target.parse` is improved to accept CPU name and features.
 * `std.Target.Arch.getBaselineCpuFeatures` is moved to
   `std.Target.Cpu.baseline`.
 * `std.Target.allCpus` is renamed to `std.Target.allCpuModels`.
 * `std.Target.defaultAbi` is moved to `std.Target.Abi.default`.
 * Significant cleanup of aarch64 and arm CPU features, resulting in
   the needed bit count for cpu feature set going from 174 to 138.
 * Add `std.Target.Cpu.Feature.Set.addFeatureSet` for merging
   feature sets together.

`-target-feature` and `-target-cpu` are removed in favor of
`-mcpu`, to conform to established conventions, and it gains
additional power to support cpu features. The syntax is:
-mcpu=name+on1+on2-off1-off2

closes #4261
2020-02-19 21:30:36 -05:00
Andrew Kelley
96f45c27b6
arm: clean up the messy sub-architecture & CPU features 2020-02-19 19:11:20 -05:00
Andrew Kelley
4c6f207aff
clean up arm CPU features
* remove "cpu features" that are actually just processors
 * rename `v8` to `v8a`. this matches the corresponding
   change to target/aarch64.zig
 * rename types in preparation for removing sub-architecture
   from `std.Target`.

I have other files changed in my dirty working tree, but about to make
some changes to arm.zig that I don't want batched with this commit.
2020-02-19 18:12:06 -05:00
Bas
1483ae37f2
Add an appendValues method to ArrayList to append a value n times. (#4460) 2020-02-19 11:33:35 -05:00
Andrew Kelley
c664692bdd
make the CLI support depending on system headers and libraries
(include and lib search paths)

The detection of native system paths is self-hosted.

closes #2041
2020-02-19 01:24:34 -05:00
Andrew Kelley
63383a8af8
consistent capitalization of error message 2020-02-19 01:24:19 -05:00
Andrew Kelley
c5ca0fe237
Merge branch 'pixelherodev-emit'
Closes #4418
2020-02-18 22:01:08 -05:00
Andrew Kelley
d7968c6d33
improvements which allow zig to emit multiple things at once
example: zig build-obj test.zig -femit-llvm-ir -femit-asm

this will generate all three: test.o test.s test.ll
2020-02-18 21:59:43 -05:00
Noam Preil
dba12cd693
Rename produce_* bools to emit_* to match CLI 2020-02-18 18:59:45 -05:00
Noam Preil
9c98c73e73
Disable binary generation when deprecated --emit is used 2020-02-18 18:59:45 -05:00
Noam Preil
2502cb242a
Improve support for generating LLVM IR/asm files 2020-02-18 18:59:45 -05:00
Andrew Kelley
cbc4e59e68
Merge branch 'LemonBoy-c8c8c8c8'
closes #4502
2020-02-18 18:45:25 -05:00
Andrew Kelley
30194f27fb
update new test case to take into account lazy @typeInfo 2020-02-18 18:27:18 -05:00
LemonBoy
eb5e6259aa
docs: Fix wrong extern fn definition 2020-02-18 18:18:29 -05:00
LemonBoy
a6b74cdd38
stage1: Make the parser reject extern fn with body 2020-02-18 18:18:29 -05:00
LemonBoy
95a71e29f8
zig fmt: Fix callconv rewriting for extern + string
Closes #4473
2020-02-18 18:18:15 -05:00
Andrew Kelley
ccca4b5a5e
Merge pull request #4474 from LemonBoy/saukerkraut
Patches
2020-02-18 18:15:11 -05:00
Andrew Kelley
7f92d0d4a4
Merge branch 'daurnimator-use-fifo-from-stdio'
closes #3763
2020-02-18 16:48:58 -05:00
Andrew Kelley
a8d7652001
avoid a @ptrCast with an array literal 2020-02-18 16:48:26 -05:00
daurnimator
3632f31ec2
std: use LinearFifo to implement io.BufferedOutStreamCustom 2020-02-18 16:47:03 -05:00
daurnimator
dd75cc214d
std: let PeekStream have static/dynamic variants
This completes a TODO in the existing implementation
2020-02-18 16:47:03 -05:00
daurnimator
38ad7daebb
std: use LinearFifo to implement io.PeekStream 2020-02-18 16:47:03 -05:00
daurnimator
bdff2f43bd
std: use LinearFifo to implement io.BufferedInStreamCustom 2020-02-18 16:47:03 -05:00
Andrew Kelley
662996e4a8
Merge branch 'FireFox317-lazy-typeinfo-decls'
Closes #4435
Closes #3893
Closes #2584
2020-02-18 15:34:22 -05:00