Andrew Kelley
65b1a4953f
Merge pull request #4324 from fengb/testing-allocator
...
Remove debug.global_allocator in favor of testing.allocator
2020-01-30 10:01:40 -05:00
Andrew Kelley
e3a383a661
Merge pull request #4239 from shawnl/rb
...
rb: **breaking** change API to be thread-safe
2020-01-30 09:45:35 -05:00
Andrew Kelley
0303e7bd8e
Merge pull request #4319 from Rocknest/windows-traces
...
Bring windows segfault handler on par with linux
2020-01-30 09:26:39 -05:00
LemonBoy
e77a102e24
Small DWARF fixups
...
* Clang doesn't seem to emit a DW_AT_low_pc together with DW_AT_ranges
for asm files.
* Keep reading the other CUs if the lookup fails.
2020-01-30 09:11:02 -05:00
Rocknest
a5f18c2b2a
Fix one more edge case
2020-01-30 10:00:28 +02:00
Benjamin Feng
9c196efa2a
Add explicit error message for too many frees
2020-01-30 01:12:21 -06:00
Rocknest
94f29ae117
Remove intCast's
2020-01-30 08:53:38 +02:00
Benjamin Feng
46d84a1b63
Convert a few more page_allocator
2020-01-30 00:27:44 -06:00
Benjamin Feng
c1fb97aef6
Remove unnecessary allocator from mutex
2020-01-30 00:27:44 -06:00
Benjamin Feng
184128fd9e
Fix testing.allocator wiring
2020-01-30 00:27:44 -06:00
Andrew Kelley
c75f65d38c
std.Target: add ve arch
2020-01-29 23:58:28 -05:00
Andrew Kelley
a95dce15ae
Merge remote-tracking branch 'origin/master' into llvm10
2020-01-29 23:33:12 -05:00
Benjamin Feng
5c8e85f388
Fix BufMap value leak
2020-01-29 22:22:01 -06:00
Benjamin Feng
b7a236d68e
Convert a bunch of page_allocator to testing.allocator
2020-01-29 22:22:01 -06:00
Benjamin Feng
ad93ad3e60
Fix errant reference to page_allocator
2020-01-29 22:22:01 -06:00
Benjamin Feng
b077f3ab7d
Promoted "leak_count_allocator" to the main testing.allocator
2020-01-29 22:22:00 -06:00
Benjamin Feng
70ad84c820
Use defer/panic to better account for test failure
2020-01-29 17:38:52 -06:00
Benjamin Feng
0c137934cb
Move FailingAllocator to testing
2020-01-29 17:38:42 -06:00
Rocknest
b1884b3a62
Fix aarch64
2020-01-30 01:17:34 +02:00
Rocknest
c0c9c601d4
Fix off-by-one error
2020-01-29 23:48:52 +02:00
Rocknest
4a4d6f2be9
Reorganize definitions
2020-01-29 23:15:17 +02:00
Valentin Anger
d448c3d38a
Add support for code model selection
2020-01-29 16:09:07 -05:00
Benjamin Feng
aa9caf5064
Create leak_count_allocator
2020-01-29 14:37:01 -06:00
Rocknest
b7cd60a354
Changing stuff and seeing what happens
2020-01-29 21:09:00 +02:00
Benjamin Feng
4d134a01f5
Move debug.global_allocator to testing.allocator
2020-01-29 12:21:29 -06:00
Andrew Kelley
34706dad3f
fix typo in doc comment
2020-01-29 12:25:25 -05:00
Andrew Kelley
0cc2489d22
Merge pull request #4317 from Vexu/std-c
...
Add (unfinished) C parser to std lib
2020-01-29 12:13:53 -05:00
LemonBoy
1ba4554855
Correct dl_iterate_phdr address
...
The base should be zero so that p_vaddr + dlpi_addr = p_vaddr
2020-01-29 12:05:36 -05:00
Rocknest
3500b41bfe
Add an advanced segfault handler on windows
2020-01-29 17:27:53 +02:00
Vexu
abd1a7c91c
std-c add todos to unfinished parsing functioins
2020-01-29 12:12:28 +02:00
Andrew Kelley
13259acbc3
std.sort.insertionSort: remove superfluous block
2020-01-28 16:22:09 -05:00
Andrew Kelley
3ed52e5453
fix build.zig logic for -target-cpu and -target-feature
...
fix a false negative for detecting the ability to emit these flags.
it matters for stage0/stage1 on aarch64
2020-01-28 14:54:34 -05:00
Andrew Kelley
d8e2549996
remove invalid use of `allowzero` in std.crypto.murmur
2020-01-27 19:42:13 -05:00
Andrew Kelley
4591389497
Merge pull request #4300 from LemonBoy/debug-windows
...
More debug fixes - This time Windows gets a treat
2020-01-27 09:46:39 -05:00
LemonBoy
d5c2a20d8e
Unify the two DWARF interpreters
...
* Let's consolidate the special-cased DWARF interpreter for OSX with the
general purpose one
* Drop the assumption that all the debug data is contained in a single
contiguous slice of memory. This is a good news for freestanding
targets and paves the way for supporting compressed debug sections.
2020-01-27 09:46:20 -05:00
LemonBoy
7336b750bd
Fix stack-trace address calculation on Windows
...
Let's always subtract 1 from the return address so that we're sure to be
inside the callee.
Fixes some edge case where the stack trace skipped the first entry.
2020-01-27 13:12:01 +01:00
LemonBoy
f8e015c85f
Handle S_GPROC32 symbols in PDB files
...
Fixes some incomplete stack traces on Windows.
2020-01-27 13:10:35 +01:00
Andrew Kelley
518dbd30cb
Merge pull request #4133 from daurnimator/4087-free-sets-undefined
...
Sets memory to undefined when freed from allocator
2020-01-26 18:52:43 -05:00
Andrew Kelley
51ac8eb08e
fix regression in windows stack traces tty detection
2020-01-26 18:28:52 -05:00
Andrew Kelley
3839ea8978
fix debug info code not being freestanding compatible
...
in stack tracing code, the idea was to detect the tty settings at the
top of the stack and pass the information down. somewhere along the way
this got changed so that setTtyColor was assuming the global stderr_file
was related to the output stream the stack trace was being printed to.
now, tty_color is changed to tty_config, and it is an enum rather than a
bool, telling how tty colors are expected to be handled. windows is
still incorrectly looking at stderr_file.
2020-01-26 09:55:04 -05:00
Andrew Kelley
9dffc369f1
Merge remote-tracking branch 'origin/master' into layneson-cpus_and_features
2020-01-25 23:25:29 -05:00
LemonBoy
aaa2f9ab2f
Fix handling of DW_LNE_end_sequence
...
The DWARF specification states that LNE_end_sequence should just reset
the state machine, it's not an error.
2020-01-25 20:03:50 -05:00
LemonBoy
8516ee392c
Fix parsing of DW_AT_Ranges debug entry
...
Follow the specification about what the base address is and how it can
be changed by some entries in the list itself.
2020-01-25 16:12:11 -05:00
Andrew Kelley
800ead2810
update target info to llvm 10
...
the branch builds now
2020-01-23 17:31:25 -05:00
Andrew Kelley
fbfda7f00e
fix incorrect list of sub-arches for aarch64
...
tests use older sub-arch that works in the older qemu
2020-01-23 13:02:45 -05:00
Andrew Kelley
c86589a738
disable f128 compiler_rt tests failing on windows
...
These were never working with native CPU features. In this branch,
we fix native CPU features not being enabled on Windows, and regress
f128 language features. In the llvm10 branch, all this is fixed,
and the tests are re-enabled.
2020-01-23 02:05:24 -05:00
Andrew Kelley
ead7d15772
use an older arm64 sub-arch for test suite
...
hopefully this avoids the older qemu version crashing
2020-01-23 00:41:46 -05:00
Michael Dusan
357f42da6c
compiler_rt: fix mulsi3 test typo
2020-01-22 20:17:38 -05:00
Andrew Kelley
fb8e681ea8
update zig_llvm.h and zig_llvm.cpp to llvm 10
2020-01-22 18:43:30 -05:00
Andrew Kelley
9845264a0b
aarch64: less feature-full baseline CPU
2020-01-22 18:40:34 -05:00
Andrew Kelley
0c477f3c79
fix std.Target.Arch.parseCpuFeatureSet unit test
2020-01-22 17:47:18 -05:00
Andrew Kelley
74872263cc
lib/headers: update to clang 10.x C headers
...
upstream revision: 3cce3790072249cbe51b96cea26bc78019c11fd0
2020-01-22 17:42:44 -05:00
Andrew Kelley
3227aec848
fix not respecting sub-arch feature
2020-01-22 17:35:57 -05:00
Andrew Kelley
b94525c45b
Merge pull request #4263 from LemonBoy/debug-thing
...
Refactor some debug stuff
2020-01-22 17:32:48 -05:00
Andrew Kelley
48c7e6c48b
std.Target.CpuFeatures is now a struct with both CPU and feature set
...
Previously it was a tagged union which was one of:
* baseline
* a specific CPU
* a set of features
Now, it's possible to have a CPU but also modify the CPU's feature set
on top of that. This is closer to what LLVM does.
This is more correct because Zig's notion of CPUs (and LLVM's) is not
exact CPU models. For example "skylake" is not one very specific model;
there are several different pieces of hardware that match "skylake" that
have different feature sets enabled.
2020-01-22 17:13:31 -05:00
LemonBoy
69c72e24d4
compiler-rt: Port __mulsi3 builtin
2020-01-22 13:04:45 -05:00
Andrew Kelley
cbe9a51518
don't trust llvm's GetHostCPUName
...
comment from this commit reproduced here:
I have observed the CPU name reported by LLVM being incorrect. On
the SourceHut build services, LLVM 9.0 reports the CPU as "athlon-xp",
which is a 32-bit CPU, even though the system is 64-bit and the reported
CPU features include, among other things, +64bit.
So the strategy taken here is that we observe both reported CPU, and the
reported CPU features. The features are trusted more; but if the features
match exactly the features of the reported CPU, then we trust the reported CPU.
2020-01-21 22:02:13 -05:00
Andrew Kelley
830e0ba2d2
enable native CPU feature for windows; disable failing tests
...
See #508 . These can be re-enabled when we upgrade to LLVM 10.
2020-01-21 21:46:06 -05:00
Andrew Kelley
68b6867e76
lazily compute the full cpu features dependencies
2020-01-21 20:11:36 -05:00
Andrew Kelley
92559cd02c
hit a comptime limitation with computing dense sets
2020-01-21 19:40:44 -05:00
LemonBoy
b8601e9252
Adjust tests & work around a nasty ICE
2020-01-21 23:17:02 +01:00
LemonBoy
59d0dda080
Make writeByteNTimes faster and leaner
2020-01-21 20:58:02 +01:00
LemonBoy
bc82e0f3d3
Refactor some code in the debug output
2020-01-21 20:51:57 +01:00
Andrew Kelley
6793af8d8b
these are not real cpu features
2020-01-21 12:14:36 -05:00
Andrew Kelley
39759b90fc
make zig targets show native cpu name and features
2020-01-21 01:22:37 -05:00
Andrew Kelley
e640d01535
fixups to arch data, support any number of cpu features
2020-01-21 00:34:54 -05:00
Andrew Kelley
6118b11afa
Revert "aarch64: remove CPU features that are actually just CPUs"
...
This reverts commit 6dd514ac8a
.
This strategy won't work for arm 32-bit; instead need to try to figure
out how to get more bits into the bit set.
2020-01-20 23:15:07 -05:00
Andrew Kelley
89e107ee4e
uncomment all the archs in target.zig
2020-01-20 23:14:35 -05:00
Andrew Kelley
6dd514ac8a
aarch64: remove CPU features that are actually just CPUs
2020-01-20 22:49:26 -05:00
Andrew Kelley
6e88883edf
import data from llvm 9
2020-01-20 22:21:45 -05:00
Andrew Kelley
f3dd9bbdac
improve `zig targets`
2020-01-20 13:40:25 -05:00
Andrew Kelley
bf82929557
fix std.Target.Arch.parseCpuFeatureSet
2020-01-20 12:41:18 -05:00
LemonBoy
c522699f28
Fix ICE in build addAssemblyFile
2020-01-20 12:24:55 -05:00
Nathan Michaels
0000de4fee
Handle {s} format for C strings. ( #4219 )
...
* Handle {s} format for C strings.
* Fix "cstr" test to actually use c strings.
2020-01-20 12:23:43 -05:00
daurnimator
5cc4932461
std: allocator interface sets freed memory to undefined
2020-01-21 03:17:40 +11:00
daurnimator
65013d8599
std: fix bug in http.headers where .put captures user-held variable
2020-01-21 03:17:36 +11:00
Andrew Kelley
8f29d14073
stage1 is building. `zig targets` now self-hosted
2020-01-20 01:42:31 -05:00
Andrew Kelley
20af858601
some fixes
2020-01-19 21:06:41 -05:00
Andrew Kelley
e3b5e91878
do the x86 arch
2020-01-19 20:54:05 -05:00
Andrew Kelley
a867b43366
progress towards merging
...
see BRANCH_TODO file
2020-01-19 20:54:04 -05:00
Layne Gustafson
430077df1b
Allow target details with no LLVM support
2020-01-19 20:53:20 -05:00
Layne Gustafson
de8a5cf5f5
Remove features/cpus not in LLVM v9
2020-01-19 20:53:20 -05:00
Layne Gustafson
03dd376b55
Add builtin.zig support
2020-01-19 20:53:19 -05:00
Layne Gustafson
c61856ebcf
Add TargetDetails abstraction
2020-01-19 20:53:19 -05:00
Layne Gustafson
79a2747de4
Add llvm_name to feature defs
2020-01-19 20:53:19 -05:00
Layne Gustafson
e4ecdefa9a
Rename subfeatures -> dependencies
2020-01-19 20:53:19 -05:00
Layne Gustafson
51372200d3
Filter out non-features
2020-01-19 20:53:19 -05:00
Layne Gustafson
c1798cb632
Add build.zig cpu and feature options
2020-01-19 20:53:19 -05:00
Layne Gustafson
c8f1e0d6d8
Remove llvm_name from features
2020-01-19 20:53:19 -05:00
Layne Gustafson
c131e50ea7
Switch CPU/features to simple format
2020-01-19 20:53:18 -05:00
Layne Gustafson
21908e100e
Fix CPU and feature defs
2020-01-19 20:53:18 -05:00
Layne Gustafson
8ac138a318
Add parseArchTag and fix parseArchSub
2020-01-19 20:53:18 -05:00
Layne Gustafson
8f191e0166
Update term feature deps -> subfeatures
2020-01-19 20:53:18 -05:00
Layne Gustafson
0f46c12f78
Create initial target details infrastructure
2020-01-19 20:53:15 -05:00
Shawn Landden
ad15a73240
rb: type Tree.sort with SortError
2020-01-19 23:35:56 +04:00
Vexu
ad327fed05
std-c redo scoping, do string concatanation in parser
2020-01-19 20:44:55 +02:00
Andrew Kelley
e491b2f5a7
Merge pull request #4231 from LemonBoy/more-builtin-work1
...
More patches for compiler-rt
2020-01-19 13:27:36 -05:00
Shawn Landden
4ab9678b95
rb: add sort() that re-sorts tree with new compare function
...
You can also specify the same compare function, but after updating the
context that the function will use (connected to the rb.Tree) before.
2020-01-19 22:10:21 +04:00
Shawn Landden
e190082922
rb: *breaking* make API thread-safe
...
use @fieldParentPtr to access your context fields, which lie if you
struct that contains a rb.Tree member (without a pointer).
Also simplifies the init() function so rb.Tree can be initialized in a single line,
without having to use "undefined".
2020-01-19 22:09:56 +04:00
Shawn Landden
de07ca77e7
rb: just use @include("std")
...
we already have to use --override-std-dir
when running std tests, and having it this way
makes it much easier to run just the tests of this file.
2020-01-19 22:05:38 +04:00
LemonBoy
861724bcf0
Fix some tests broken by the renamed files
2020-01-19 09:31:45 +01:00
LemonBoy
5fbc1c2812
Nuke some more code
2020-01-19 00:12:27 +01:00
LemonBoy
3247fd7862
Export MSVC builtins inconditionally
2020-01-19 00:12:27 +01:00
LemonBoy
ae31da9334
Minor cleanup
2020-01-19 00:12:26 +01:00
LemonBoy
6b056d1fb9
Nuke some repeated code
2020-01-19 00:12:25 +01:00
LemonBoy
7d94e712f1
Remove useless wrappers around f32/f64 aeabi builtins
2020-01-19 00:12:18 +01:00
LemonBoy
fa52c9e36e
Small cleanups
2020-01-19 00:11:45 +01:00
Sebastian
405b8e9eee
fixed typo - "path" lead to undeclared identifier
2020-01-18 17:56:53 -05:00
daurnimator
72ec445677
std: turn EAI_ constants into a non-exhaustive enum
2020-01-18 17:46:44 -05:00
daurnimator
9e6e1e58bb
std: use non-exhaustive enums from crc module
...
Un-reverts PR #3118
2020-01-18 17:42:45 -05:00
Andrew Kelley
b5ac079f88
Merge pull request #4191 from Vexu/non-exhaustive-enums
...
Implement non-exhaustive enums
2020-01-17 14:26:12 -05:00
Michaël Larouche
d9be6e5dc6
Port clzsi2 from compiler_rt, required for using std.fmt.format on some ARM architecture.
2020-01-17 14:25:22 -05:00
Vexu
bac27731e3
add struct field default value to typeinfo
2020-01-16 13:22:30 -05:00
LemonBoy
f609ce4f65
Minor changes to the ARM builtin fns
2020-01-16 12:50:53 -05:00
LemonBoy
7e5e767ba0
Fix regression in char printing
...
Closes #4014
2020-01-16 12:17:16 -05:00
Andrew Kelley
8a792db2d8
Merge pull request #4187 from LemonBoy/builtin-rearrange
...
Some needed work on builtins
2020-01-15 18:39:50 -05:00
Vexu
c57784aa15
add is_exhaustive field to typeinfo
2020-01-15 21:50:12 +02:00
Vexu
0ea96c11ef
disallow multiline strings in test and library names
2020-01-15 14:20:48 -05:00
LemonBoy
e8012740b9
Fix off-by-one error (and missing store op)
2020-01-15 20:03:41 +01:00
LemonBoy
ede28755b6
Fix test case
2020-01-15 18:41:07 +01:00
LemonBoy
c5cfc9bf68
Move definition of __aeabi_read_tp
2020-01-15 17:50:51 +01:00
LemonBoy
5d5345728a
Fix div builtins to use the correct calling convention
2020-01-15 17:50:51 +01:00
LemonBoy
109e5f8a5a
Remove unnecessary logic
2020-01-15 17:50:51 +01:00
LemonBoy
44e3796285
Rearrange some builtin functions placement
2020-01-15 12:48:28 +01:00
Andrew Kelley
8d9d4a0658
Merge pull request #4182 from LemonBoy/mjeiorw
...
A bunch of patches
2020-01-15 04:28:54 -05:00
LemonBoy
c85afff5a8
Correct l_name field type
2020-01-14 23:11:10 +01:00
LemonBoy
c1f3766f1c
Correct dlpi_name field type
2020-01-14 21:15:33 +01:00
Michaël Larouche
7ee0e779af
Fix std.child_process.ChildProcess.spawnWindow when looking in PATH environment variable, it applied cwd+app_name instead of just using the app_name
2020-01-14 15:12:30 -05:00
Vexu
af2ede4d96
fix crash on multiline library name
2020-01-14 13:10:52 -05:00
Hersh Krishna
e7917d099d
Add clamp function to math module
2020-01-14 13:06:46 -05:00
Vexu
28daddae81
std-c todos and small fixes
2020-01-14 16:18:32 +02:00
Andrew Kelley
c774c9376a
Merge pull request #3957 from xackus/stage2_parser_3799
...
stage2 parser: fix segfault on extern block
2020-01-13 13:38:31 -05:00
Jonathan Marler
0827e298ed
Add WaitForSingleObject function to std.os.windows
2020-01-11 15:49:48 -05:00
Vexu
4c0776b2a5
std-c parse switch
2020-01-11 21:48:12 +02:00
xackus
5880eb3a75
stage2 parser: document undefined and clean up
2020-01-10 22:48:51 +01:00
xackus
f81529fab1
stage2 parser: fix segfault on extern block
2020-01-10 22:35:41 +01:00
daurnimator
03e1241b88
std: avoid an allocation in inner loop
2020-01-10 15:03:51 +11:00
daurnimator
6fb636050f
std: fix off by one error in windows process creation
2020-01-10 15:00:14 +11:00
Andrew Kelley
5e345ff0ee
Merge pull request #3955 from LemonBoy/fix-1528
...
Pointer arithmetic affects the alignment factor
2020-01-09 13:53:56 -05:00
LemonBoy
5ab5de89c0
New @export() handling
...
Use a struct as second parameter to be future proof (and also allows to
specify default values for the parameters)
Closes #2679 as it was just a matter of a few lines of code.
2020-01-09 13:43:06 -05:00
Ryan Liptak
834218d789
Fix remaining variadic formatted prints
...
Used a series of regex searches to try to find as many instances of the old pattern as I could and update them.
2020-01-09 13:36:44 -05:00
daurnimator
d7333d8798
std: fix LoggingAllocator, add simple test
2020-01-09 13:34:46 -05:00
LemonBoy
7fe13f4a86
Pointer alignment fixes for the stdlib
2020-01-08 20:03:03 +01:00
LemonBoy
e134e6c994
Pointer arithmetic affects the alignment factor
...
Closes #1528
2020-01-08 20:03:03 +01:00
Nathan Michaels
38ce7f64e3
Add removeIndex function to PriorityQueue ( #4070 )
...
It's awkward to use, but lets me cancel events in an event queue.
Co-authored-by: Dmitry Atamanov <data-man@users.noreply.github.com>
2020-01-08 13:55:47 -05:00
Vexu
e21ea5bd95
std-c parser loops
2020-01-08 00:00:14 +02:00
Andrew Kelley
9f064bcf74
Merge pull request #4091 from xackus/json_copy_strings
...
json: implement copy_strings=false
2020-01-07 16:42:14 -05:00
Vexu
83b4163591
std-c parser declaratorIsFunction and small fixes
2020-01-07 23:25:38 +02:00
Andrew Kelley
7b73c7fe12
Merge branch 'std-utf16-sentinel-terminated' of https://github.com/daurnimator/zig
2020-01-07 16:13:34 -05:00
Andrew Kelley
af390b75db
cleanups related to --eh-frame-hdr
2020-01-07 16:02:38 -05:00