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
David Cao
8e57dd57ca
add --eh-frame-hdr conditionally
2020-01-07 15:58:40 -05:00
Vexu
8b713ce889
std-c parser add options
2020-01-07 22:43:44 +02:00
Rocknest
437c6a4b7e
Make markdown parser more safe ( #4105 )
...
Fixes #3722
2020-01-07 15:26:21 -05:00
mogud
688d02176c
build support list options
2020-01-07 13:59:53 -05:00
emekoi
156e43b463
added -- to pass args to zig build commands
2020-01-07 13:59:16 -05:00
LemonBoy
e81b505960
Use the correct calling convention for AEABI intrinsics
2020-01-07 13:42:47 -05:00
Andrew Kelley
4e4ba6c3e1
test harness: show annotated case name when translate-c test fails
2020-01-07 13:40:17 -05:00
Vexu
dbc0457068
std-c declaration parsing
2020-01-07 20:15:57 +02:00
xackus
814b54d798
json tests: don't use debug allocator
2020-01-07 19:03:11 +01:00
hryx
2933a8241a
json: disallow overlong and out-of-range UTF-8
...
Fixes #2379
= Overlong (non-shortest) sequences
UTF-8's unique encoding scheme allows for some Unicode codepoints
to be represented in multiple ways. For any of these characters,
the spec forbids all but the shortest form. These disallowed longer
sequences are called "overlong". As an interesting side effect of
this rule, the bytes C0 and C1 never appear in valid UTF-8.
= Codepoint range
UTF-8 disallows representation of codepoints beyond U+10FFFF,
which is the highest character which can be encoded in UTF-16.
Because a 4-byte sequence is capable of resulting in such characters,
they must be explicitly rejected. This rule also has an interesting
side effect, which is that bytes F5 to FF never appear.
= References
Detecting an overlong version of a codepoint could get gnarly, but
luckily The Unicode Consortium did the hard work by creating this
handy table of valid byte sequences:
https://unicode.org/versions/corrigendum1.html
I thought this mapped nicely to the parser's state machine, so I
rearranged the relevant states to make use of it.
2020-01-07 12:07:44 -05:00
Vexu
4184d4c66a
std-c parser record and enum specifiers
2020-01-07 19:05:46 +02:00
Vexu
df12c1328e
std-c parser typing improvements
2020-01-07 16:05:13 +02:00
Timon Kruiper
0deab8fd3b
Add std.mem.zeroes to the standard library
...
This zero initializes the type passed in. Can be used to zero
initialize c structs.
2020-01-06 19:24:17 -05:00
LemonBoy
e3a63b4e5a
Add more compiler-rt functions for ARM platform
2020-01-06 19:08:15 -05:00
Andrew Kelley
d3d77138ec
remove redundant license file
2020-01-06 19:05:42 -05:00
Andrew Kelley
633b6bf920
Merge branch 'LemonBoy-cc-work'
2020-01-06 18:53:17 -05:00
Andrew Kelley
53913acaf7
zig fmt and update `extern fn` to `callconv(.C)`
2020-01-06 15:34:50 -05:00
Andrew Kelley
5951b79af4
remove stdcallcc, extern, nakedcc from stage1; zig fmt rewrites
2020-01-06 15:23:05 -05:00
Andrew Kelley
0a9daeb37e
Merge branch 'cc-work' of https://github.com/LemonBoy/zig into LemonBoy-cc-work
2020-01-06 14:07:56 -05:00
Colin Svingen
4e6ad8efd9
Removes proc_raise from WASI implementation
2020-01-06 14:04:55 -05:00
xackus
6bebf741f9
json: implement copy_strings=false
2020-01-06 19:59:54 +01:00
Vexu
3ed6d7d245
std-c parser declarator
2020-01-06 20:06:17 +02:00
Vexu
d5d52af26e
std-c parse pointer
2020-01-06 00:06:33 +02:00
Andrew Kelley
fee9318b17
std.os.getrusage: add C extern fn and reserved field
...
* add reserved field to match musl struct definition so that
it will work with musl libc.
* add libc getrusage so that it will work with libc
what's not done in this branch is:
* test coverage. See #1629 , which should also aim to provide
general test coverage for the std lib.
* rusage struct bits for non-linux operating systems
2020-01-05 16:57:14 -05:00
data-man
2f6b045fb1
Add std.os.getrusage
2020-01-05 16:52:36 -05:00
Andrew Kelley
a0ca34979e
Merge pull request #4053 from ziglang/test-run-translated-c
...
add test harness for "run translated C" tests
2020-01-05 14:50:02 -05:00
Vexu
5feeff7123
std-c improve error reporting and decl parsing
2020-01-05 20:25:52 +02:00
Vexu
795a503999
std-c tokenizer always add newline token
2020-01-05 20:25:51 +02:00
Vexu
f934f9b419
std-c parser fndef and static assert
2020-01-05 20:25:51 +02:00
Vexu
46f292982d
std-c parser DeclSpec
2020-01-05 20:25:51 +02:00
Vexu
25f7f66b8f
std-c type parsing
2020-01-05 20:25:51 +02:00
Vexu
dccf1247b2
std-c ifstmt compoundstmt and errors
2020-01-05 20:25:51 +02:00
Vexu
a20c0b31de
std-c parser and ast organization
2020-01-05 20:25:51 +02:00
Vexu
73a53fa263
std-c outline parser
2020-01-05 20:25:50 +02:00
Vexu
e1b01d32f0
std-c ast base
2020-01-05 20:25:50 +02:00
Vexu
2183c4bb44
std-c tokenizer string concatenation
2020-01-05 20:25:50 +02:00
Vexu
a5d1fb1e49
std-c tokenizer line continuation, tests and fixes
2020-01-05 20:25:50 +02:00
Vexu
c221593d7d
std-c tokenizer better special case handling
2020-01-05 20:25:50 +02:00
Vexu
472ca947c9
std-c tokenizer add tests
2020-01-05 20:25:50 +02:00
Vexu
d75697a6a3
std-c tokenizer keywords
2020-01-05 20:25:50 +02:00
Vexu
26bf410b06
std-c finish tokenizer
2020-01-05 20:25:49 +02:00
Vexu
f14a5287e9
std-c tokenizer strings, floats and comments
2020-01-05 20:25:49 +02:00
Vexu
05acc0b0c1
std-c tokenizer more stuff
2020-01-05 20:25:49 +02:00
Vexu
04b7cec42e
std-c tokenizer base
2020-01-05 20:25:49 +02:00
Andrew Kelley
242f5d10d5
fix test-gen-h and test-compile-errors regression
2020-01-05 13:08:18 -05:00
Haze Booth
2e5342512f
remove @TypeOf() hacks for comptime_int/comptime_float
2020-01-05 02:33:23 -05:00
Andrew Kelley
a690a5085d
rework and improve some of the zig build steps
...
* `RunStep` moved to lib/std/build/run.zig and gains ability to compare
output and exit code against expected values. Multiple redundant
locations in the test harness code are replaced to use `RunStep`.
* `WriteFileStep` moved to lib/std/build/write_file.zig and gains
ability to write more than one file into the cache directory, for
when the files need to be relative to each other. This makes
usage of `WriteFileStep` no longer problematic when parallelizing
zig build.
* Added `CheckFileStep`, which can be used to validate that the output
of another step produced a valid file. Multiple redundant locations
in the test harness code are replaced to use `CheckFileStep`.
* Added `TranslateCStep`. This exposes `zig translate-c` to the build
system, which is likely to be rarely useful by most Zig users;
however Zig's own test suite uses it both for translate-c tests and
for run-translated-c tests.
* Refactored ad-hoc code to handle source files coming from multiple
kinds of sources, into `std.build.FileSource`.
* Added `std.build.Builder.addExecutableFromWriteFileStep`.
* Added `std.build.Builder.addExecutableSource`.
* Added `std.build.Builder.addWriteFiles`.
* Added `std.build.Builder.addTranslateC`.
* Added `std.build.LibExeObjStep.addCSourceFileSource`.
* Added `std.build.LibExeObjStep.addAssemblyFileFromWriteFileStep`.
* Added `std.build.LibExeObjStep.addAssemblyFileSource`.
* Exposed `std.fs.base64_encoder`.
2020-01-05 02:19:22 -05:00
Andrew Kelley
6ea193946d
Merge pull request #3950 from nmichaels/master
...
Document std.Mutex.
2020-01-03 20:05:03 -05:00
LemonBoy
e6485282d3
Better logic for last-param rendering
2020-01-03 11:49:42 +01:00
LemonBoy
7b375a1c4a
Revert "Revert "Trailing comma is respected for builtin calls""
...
This reverts commit f83411b0b1
.
2020-01-03 10:17:40 +01:00
Andrew Kelley
f83411b0b1
Revert "Trailing comma is respected for builtin calls"
...
This reverts commit afd0290918
.
This caused test failures.
2020-01-02 21:53:25 -05:00
LemonBoy
afd0290918
Trailing comma is respected for builtin calls
2020-01-02 16:43:39 -05:00
LemonBoy
e99209baf0
Add transform test
2020-01-02 18:57:08 +01:00
LemonBoy
0ccac79c8e
Implement Thiscall CC
2020-01-02 18:57:08 +01:00
LemonBoy
0ec64d4c0c
Integrate callconv into translate-c-2
2020-01-02 18:53:21 +01:00
LemonBoy
563d9ebfe5
Implement the callconv() annotation
2020-01-02 18:53:16 +01:00
Andrew Kelley
cb56b26900
fix float ops with respect to vectors
...
also remove the redundant type parameter
2020-01-01 23:27:43 -05:00
Andrew Kelley
576320e6d5
Merge pull request #4025 from ziglang/Vexu-stage-2-cimport
...
Use self hosted translate-c for cImport
2020-01-01 22:46:46 -05:00
Andrew Kelley
5575e2a168
std.mem.compare: breaking API changes
...
* `std.mem.Compare` is now `std.math.Order` and the enum tags
renamed to follow new style convention.
* `std.mem.compare` is renamed to `std.mem.order`.
* new function `std.math.order`
2020-01-01 18:08:40 -05:00
Andrew Kelley
0c8ec369f0
std.os.memfd_create: add error.SystemOutdated
2019-12-31 17:57:20 -05:00
Andrew Kelley
39ee3bc0ec
Merge branch 'stage-2-cimport' of https://github.com/Vexu/zig into Vexu-stage-2-cimport
2019-12-31 16:55:41 -05:00
Andrew Kelley
8186211404
improvements to memfd_create
...
* move test from std/io/test.zig to std/os/test.zig
* do glibc version check, and make direct system call if
glibc is too old
* disable test when not linking libc, to avoid not working
with outdated qemu version on the CI server. see #4019
2019-12-31 16:34:14 -05:00
Luna
a153a972ad
io.test: close memfd at end of test
2019-12-31 15:58:03 -05:00
Luna
13c9faaa2d
c.linux: add memfd_create
2019-12-31 15:58:03 -05:00
Luna
f0cbf63e1a
os: use system for memfd_create
...
- os: update flags type for memfd_create
2019-12-31 15:58:03 -05:00
Luna
997812e8fb
os: add memfd_create
...
currently only linux is supported
2019-12-31 15:58:03 -05:00
Andrew Kelley
25051832b3
std.fmt.format: add helpful compile error for non-tuple args
2019-12-31 13:13:13 -05:00
mogud
d972d1c942
generate header in separate folder
2019-12-31 02:25:57 -05:00
Andrew Kelley
99f6f8ead9
update setsockopt error set according to POSIX
...
In the code review I accidentally encouraged Luna to remove some
handling of errors that are possible according to POSIX, but I think how
Luna had it before was better, so I fixed it, and now the branch should
be good to merge.
2019-12-30 19:35:05 -05:00
Luna
22f6297157
std.os: update error set for setsockopt
2019-12-30 19:26:30 -05:00
Luna
0d852effe3
std.net: use mem.toBytes
2019-12-30 19:26:30 -05:00
Luna
50e6a27c29
std.net: fix setsockopt call
2019-12-30 19:26:30 -05:00
Luna
5efc0ea89e
std.os: make setsockopt receive a slice as option
2019-12-30 19:26:30 -05:00
Luna
ea8f496970
std.c: c_uint -> u32 for sockopt functions
2019-12-30 19:26:30 -05:00
Luna
3ccbf3cfc2
move parameters on sockopt functions to c_uint
...
this makes them consistent with the linux syscalls
2019-12-30 19:26:30 -05:00
Luna
d423bb3808
std.c: add setsockopt
2019-12-30 19:26:30 -05:00
Luna
0e67568bca
net: fix Options
...
- os: fix typos on setsockopt
2019-12-30 19:26:30 -05:00
Luna
4a4d2c0d80
os: add setsockopt
...
- net: use os.setsockopt()
2019-12-30 19:26:29 -05:00
Luna
631eb6783d
add StreamServer.Options.reuse_address
...
this uses a bad direct interface with std.os.linux, this should add
setsockopt to std.os.
2019-12-30 19:26:29 -05:00
Andrew Kelley
8f8a32d297
Merge pull request #4007 from daurnimator/json-cleanup
...
std.json: cleanups
2019-12-30 18:13:20 -05:00
lukechampine
ab093228f9
Fix segfault by not reassigning to function parameter
2019-12-30 13:53:09 -05:00
lukechampine
d1a570a4b8
chacha: Fix open docstring
2019-12-30 13:35:16 -05:00
lukechampine
d6ca2323cf
chacha: Use error set instead of bool
2019-12-30 13:35:13 -05:00
lukechampine
1953b60599
chacha20poly1305: Return false on short ciphertext
2019-12-30 13:35:05 -05:00
lukechampine
ae7bb4ecc0
chacha20poly1305: verify tag in constant time
2019-12-30 13:34:57 -05:00
lukechampine
fbe7d8c1cb
crypto: Add chacha20poly1305
2019-12-30 13:34:53 -05:00
daurnimator
42727c73f9
std: fix typo in comment
2019-12-31 03:06:33 +11:00
daurnimator
ef3a01a367
std: json.unescapeString doesn't need to take an allocator
2019-12-31 02:26:09 +11:00
daurnimator
04a2a4a7cb
std: track decoded string length in std.json tokenizer
2019-12-31 02:26:06 +11:00
daurnimator
0def92cff4
std: use enum literals in std.json
2019-12-30 23:47:33 +11:00
daurnimator
80d37a13c0
std: use a union(enum) for std.json.Token
2019-12-30 23:47:29 +11:00
daurnimator
51943ff432
std: meta.TagPayloadType takes the tag type of the union
2019-12-30 23:09:18 +11:00
daurnimator
17cc511ea4
std: fmt std/json.zig
2019-12-30 22:34:19 +11:00
Haze Booth
c70a673c6e
array literal address of fix
2019-12-30 05:48:27 -05:00
Andrew Kelley
e0c7d12043
update std/json.zig to latest language changes
...
fixes regression from 54231e832b
2019-12-29 19:00:27 -05:00
Benoit Giannangeli
fb2f0cc497
ArrayList: ptrAt function returns pointer to item at given index
2019-12-29 18:46:59 -05:00
Andrew Kelley
54231e832b
Merge pull request #3648 from xackus/json-unescape
...
breaking: JSON unescape
2019-12-29 18:31:10 -05:00
data-man
6af39aa49a
Fixes #3966
2019-12-29 18:19:03 -05:00
Andrew Kelley
6b960331ee
Merge pull request #3968 from daurnimator/sigprocmask
...
Clean up linux sigprocmask, raise
2019-12-29 18:03:09 -05:00
Vexu
f5e7d2d00c
translate-c fix bugs
...
Thanks @daurnimator
2019-12-29 14:01:59 +02:00
Vexu
59cc7072e2
translate-c-2 use `intCast` in most places
2019-12-29 11:04:59 +02:00
Vexu
3f7bab7373
fix translate-c taking ages
2019-12-29 11:04:58 +02:00
Marc Tiehuis
bda355d976
Merge pull request #3992 from ForLoveOfCats/BigIntToStringLeak
...
Add missing deferred deinits to `math.big.Int.toString`
2019-12-29 14:47:59 +13:00
daurnimator
2662e50d27
std: sentinel terminated pointers for utf16 apis
2019-12-29 10:35:05 +11:00
ForLoveOfCats
b28824ef66
Add missing deferred deinits to `math.big.Int.toString` (mem leak fix)
2019-12-28 15:31:32 -05:00
daurnimator
edb5deb39c
std: unicode codepoints are 21 bits
2019-12-28 16:49:59 +11:00
daurnimator
ab6065407d
std: simplify utf8ToUtf16Le
...
Also faster, on my machine unicode/throughput_test.zig now gives e.g.
> original utf8ToUtf16Le: elapsed: 1048 ns (0 ms)
> new utf8ToUtf16Le: elapsed: 971 ns (0 ms)
2019-12-28 16:49:59 +11:00
daurnimator
5843a6e3bc
std: optimise utf8ByteSequenceLength
...
Also tested (but not as fast):
```zig
pub fn utf8ByteSequenceLength(first_byte: u8) !u3 {
const len = @clz(u8, ~first_byte);
if (len == 0) return 1;
if (len < 4) return @intCast(u3, len);
return error.Utf8InvalidStartByte;
}
```
2019-12-28 14:39:38 +11:00
daurnimator
8b72eedc76
std: add warm up phase to benchmark
...
In my tests, whatever ran first was getting much better numbers.
Additionally, add alignment requirements so that comparison is fair.
2019-12-28 14:39:38 +11:00
daurnimator
a81c0ba2e7
std: fix unicode encoding of astral plane codepoints to utf16
2019-12-28 14:39:38 +11:00
kprotty
1c5a1284e3
typo fix
2019-12-22 21:45:26 -06:00
kprotty
b8fabb3426
ResetEvent: broadcast by default
2019-12-22 21:45:26 -06:00
Andrew Kelley
28dbdba37e
Merge pull request #3935 from Vexu/translate-c-2
...
Translate-c-2 the rest
2019-12-22 16:12:56 -05:00
daurnimator
95c83388e4
std: use pid_t where appropriate
2019-12-22 20:20:58 +11:00
daurnimator
59348240d7
std: use wrappers from raise() rather than raw syscalls
2019-12-22 20:20:58 +11:00
daurnimator
6de4bd850c
std: add tkill and tgkill for linux
2019-12-22 20:20:58 +11:00
daurnimator
c31afc3736
std: remove high level linux sigprocmask wrappers
2019-12-22 20:20:58 +11:00
daurnimator
9577ff1c90
std: use simpler sigset_t definition
2019-12-22 20:20:53 +11:00
Jethro Nederhof
ba1d213f48
freebsd: add missing OS and libc bits
2019-12-22 02:27:23 -05:00
daurnimator
96c9c38b35
std: sigprocmask set is optional
2019-12-22 12:03:03 +11:00
Andrew Kelley
290dc5d95b
zig fmt support for slice sentinel syntax
2019-12-21 14:03:36 -05:00
Nathan Michaels
45339aec02
Fix wording on deinit.
2019-12-21 01:30:55 -05:00
Andrew Kelley
8918cb06fc
sentinel slicing improvements
...
* add runtime safety for slicing pointers, arrays, and slices.
* slicing without a sentinel value results in non-sentineled slice
* improved `std.debug.panic` handling of panic-during-panic
2019-12-20 18:28:59 -05:00
Andrew Kelley
26f3c2d061
fix std.mem.addNullByte and implement sentinel slicing
...
see #3770
2019-12-20 18:28:56 -05:00
Nathan Michaels
33b5dbb82c
Document std.Mutex.
...
Not sure what the build platform is for the generated documentation,
and it's worth thinking about how best to deal with this pattern. It
might be worth figuring out how to rewrite this to have a single
definition of the public API with the implementation chosen at compile
time.
2019-12-19 23:42:27 -05:00
Vexu
d172a7335c
translate-c-2 copy parametrs to stack
2019-12-20 00:12:08 +02:00
Vexu
61482be153
translate-c-2 improve macro fn ptr caller
2019-12-19 20:58:48 +02:00
Vexu
f837c7c9cd
translate-c-2 compound assign
2019-12-19 16:13:28 +02:00
Vexu
62bfff5e87
translate-c-2 fix expression grouping bugs
2019-12-18 13:32:19 +02:00
Vexu
21bc3353b8
translate-c-2 character literals and more test fixes
2019-12-18 01:04:01 +02:00
kprotty
c912296443
SpinLock: loopHint & yield distinction
2019-12-17 15:38:00 -06:00
kprotty
26e08d5701
ResetEvent: use futex on linux when possible
2019-12-17 15:38:00 -06:00
kprotty
ac5ba27c2b
Mutex: fix lock/spin bugs, improve perf slightly & more specialization
2019-12-17 15:38:00 -06:00
kprotty
e67ce444e7
ResetEvent: simpler interface + fix tests
2019-12-17 15:38:00 -06:00
kprotty
947db78622
Spinlock: remove Backoff & improve yielding
2019-12-17 15:38:00 -06:00
Raul Leal
62c817420d
[ #3844 + #3767 ] update std.c and std.os.linux to use null-terminated pointer types ( #3900 )
...
* #3844 update std.c functions to use null-terminated pointer types
* check linux functions
* fix callsites
* fix io test
* Add allocPrintCstr function to remove other cast
2019-12-17 15:43:49 -05:00
Andrew Kelley
b1abe4a172
Revert "added -- to pass args to zig build commands"
...
This reverts commit d4e56ae6ae
.
This broke the build
2019-12-16 16:36:42 -05:00
Dmitry Atamanov
744133acb1
Fixes utf8ToUtf16Le ( #3923 )
2019-12-16 16:27:26 -05:00
emekoi
d4e56ae6ae
added -- to pass args to zig build commands
2019-12-16 16:24:54 -05:00
Andrew Kelley
13cdc137e6
Merge pull request #3570 from ziglang/c-sanitize-undef
...
use -fsanitize=undefined for C code in safe build modes
2019-12-16 16:17:52 -05:00
Andrew Kelley
839b3a61ad
expose the ability to disable C sanitization
...
and disable C sanitization when building libcs.
Empirically, they seem to trigger undef-sanitization.
2019-12-16 13:51:21 -05:00
Andrew Kelley
f8cd981c04
use -fsanitize=undefined for C code in safe build modes
...
closes #3569
2019-12-16 13:06:02 -05:00
Henry Wu
170de5ecae
generated docs: log trace instead of error
...
When the error occurred for getValueText it could potentially omit
useful documentation since the page stops rendering.
2019-12-16 12:40:38 -05:00
Andrew Kelley
496f271d17
Merge branch 'shawnl-lessThan'
...
* always allow integer comparison operations no matter the
bit width, signedness, or comptime-ness of operands.
closes #2133
* implement comparisons for vectors, which returns vector of
bools.
closes #3001
2019-12-16 11:39:13 -05:00
Andrew Kelley
9468d63819
allow comparison of any numeric types
2019-12-16 11:09:10 -05:00
Lachlan Easton
fe0e8c87b7
Tokenizer: Copy optional tokens prior to being set to null #3737 ( #3910 )
...
* Tokenizer: Copy optional tokens prior to being set to null #3737
* Add TODO comments, reminder to audit copying optional pattern.
2019-12-16 11:01:02 -05:00
LemonBoy
9d9b0720f5
Fix for the error codepath in ChildProcess
2019-12-16 10:57:29 +01:00
LemonBoy
c257f892fd
Revert "Revert "Use eventfd in ChildProcess on Linux""
...
This reverts commit 2c7a2aefbf
.
2019-12-16 10:56:53 +01:00
Shawn Landden
143603b39f
std: lessThan and greaterThan between signed and unsigned
...
It is a deviation from C, but I think we should consider making this the behavior
of the operators. See #2133
2019-12-16 01:41:26 -05:00
Andrew Kelley
2c7a2aefbf
Revert "Use eventfd in ChildProcess on Linux"
...
This reverts commit b169f7b0d5
.
This caused `integer cast truncated bits` at
std/child_process.zig:801:12
Can be reproduced on my machine simply by running `make`.
2019-12-16 01:39:41 -05:00
LemonBoy
b169f7b0d5
Use eventfd in ChildProcess on Linux
...
Closes #819
2019-12-15 14:43:37 -05:00
LemonBoy
19ddbd9e9e
Make sure the address is aligned for intToPtr ops
...
Closes #773
2019-12-15 14:41:05 -05:00
Vexu
e57e3602e7
translate-c-2 implement enums
2019-12-14 23:24:47 +02:00
Vexu
1a967db083
add default initializers to all ast.Node base values
2019-12-14 20:40:56 +02:00
Vexu
1f84586836
translate-c-2 avoid collisions with zig keywords
2019-12-14 17:00:10 +02:00
Vexu
4dae70e702
translate-c-2 container aliases
2019-12-14 13:40:33 +02:00
Vexu
e4ca1f441b
translate-c-2 record type
2019-12-14 02:00:01 +02:00
Andrew Kelley
fff3c1fff4
un-special-case startup code in the std lib
...
Previously, the compiler had special logic to determine whether to
include the startup code, which was in `std/special/start.zig`. Now,
the file is moved to `std/start.zig`, and there is no special logic
in the compiler. Instead, the standard library unconditionally imports
the `start.zig` file, which then has a `comptime` block that does the
logic of determining what, if any, start symbols to export. Instead of
`start.zig` being in its own special package, it is just another normal
file that is part of the standard library.
`std.builtin.TestFn` is now part of the standard library rather than
specially generated by the compiler.
2019-12-12 18:33:44 -05:00
Christine Dodrill
b37acc4d68
allow custom OS entrypoint
...
Also:
* Expose `std.start.callMain`.
* Other fixes added to fix issues found in development.
2019-12-12 16:00:23 -05:00
Andrew Kelley
d08dc21116
Merge pull request #3886 from kavika13/master
...
Add function params, parens handling, and some infix operators to self-hosted translate-c
2019-12-11 18:40:35 -05:00
Christine Dodrill
b375f6e027
lib/std/io: let the bring-your-own OS package handle stdio ( #3887 )
2019-12-11 18:37:52 -05:00
Merlyn Morgan-Graham
5e8186a8ce
Fix access of undefined field when calling ast.Tree.dump
2019-12-10 23:52:40 -08:00
Andrew Kelley
7c1dbfab72
self-hosted: manually parse args
2019-12-11 02:08:33 -05:00
Andrew Kelley
c3d8b1ffeb
remove iterator API from std.ArrayList
...
This is not a meaningful abstraction. Use a for loop on the result
of `toSlice` or `toSliceConst`.
An iterator can be implemented on top of ArrayList by applications which
want additional functionality, such as removing elements while
iterating.
Closes #3037 .
2019-12-10 15:08:10 -05:00
frmdstryr
f30af12bea
Add hotpath for BufferedOutStream ( #3858 )
...
* Add hotpath for BufferedOutStream
2019-12-10 13:44:59 -05:00
Heppokoyuki
5ada11449a
fix con_in difinition and add EFI_SIMPLE_TEXT_INPUT_PROTOCOL difinition
2019-12-10 13:25:28 -05:00
Andrew Kelley
fdc3132126
fix windows dynamic lib loading test
2019-12-10 13:21:37 -05:00
Andrew Kelley
3ef8460d06
fix load dynamic library API when linking libc
2019-12-10 12:56:05 -05:00
Andrew Kelley
80882bda59
load dynamic library test: update API usage code
2019-12-10 12:48:10 -05:00
Andrew Kelley
fd6b7b160d
improve dynamic library API
2019-12-10 12:28:28 -05:00
emekoi
29fd727b79
fixed windows dynamic library loading and added loading for darwin
2019-12-10 11:41:54 -05:00
Robin Voetter
8c096707b7
Additional replacements of @typeOf with @TypeOf
2019-12-10 11:09:41 -05:00
Robin Voetter
4b4fbe3887
Replace @typeOf with @TypeOf in all zig source
...
This change was mostly made with `zig fmt` and this also modified some whitespace. Note that in some files, `zig fmt` produced incorrect code, so the change was made manually.
2019-12-10 11:09:41 -05:00
Robin Voetter
d568db2386
Remove misplaced dot
2019-12-10 11:09:29 -05:00
Robin Voetter
23b901d45a
Add typeOf/TypeOf render test
2019-12-10 11:09:29 -05:00
Robin Voetter
20a3011def
Add typeOf/TypeOf substition in zig fmt
2019-12-10 11:09:29 -05:00
Andrew Kelley
cd4d638d10
Merge pull request #3830 from fengb/wasm-page-allocator
...
WasmPageAllocator
2019-12-10 10:58:50 -05:00
xackus
c27d06596b
fix integers parsed as floats
2019-12-10 10:30:41 -05:00
dbandstra
3388c777fa
print call in build.zig needs to use a tuple argument
2019-12-10 10:18:57 -05:00
Andrew Kelley
e6c01e49d8
remove no-longer-needed workaround for var args
...
See #557
2019-12-09 16:21:16 -05:00
Andrew Kelley
a3f6a58c77
remove var args from the language
...
closes #208
2019-12-09 15:27:27 -05:00
Andrew Kelley
f205d23e65
implement async function call with `@call`
...
this removes the last usage of var args in zig std lib
2019-12-09 15:27:26 -05:00
Andrew Kelley
5d82744f1c
ability to give comptime and non-comptime types to same parameter
2019-12-09 13:30:53 -05:00
Andrew Kelley
d571fad20e
update tests to new format API
2019-12-09 00:05:21 -05:00
Andrew Kelley
03396b3caa
update docs to new fmt API
2019-12-08 23:46:50 -05:00
Andrew Kelley
5f9467d78f
update formatted printing when linking libc
2019-12-08 23:39:30 -05:00
Andrew Kelley
7a4f704258
windows-specific fixes
2019-12-08 23:26:19 -05:00
Andrew Kelley
8b2622cdd5
std.fmt.format: tuple parameter instead of var args
2019-12-08 22:53:51 -05:00
Benjamin Feng
608d36ad8c
Rewrite WasmPageAllocator tests to be less flaky on environment
2019-12-08 21:22:07 -06:00
Andrew Kelley
64d700bfa6
zig fmt: support comptime fields
2019-12-08 12:26:20 -05:00
Josh Wolfe
05fc4d34a9
documentation for mutable HashMap KV pointers
2019-12-07 13:22:23 -05:00
Benjamin Feng
e91522b875
Add back comptime check for wasm
2019-12-06 17:27:11 -06:00
data-man
80a72c225c
Crypto benchmark fixes
2019-12-06 17:14:10 -05:00
data-man
008e42f483
getStdOut fixes
2019-12-06 16:41:02 -05:00
Benjamin Feng
5a004ed834
Actually use `const conventional` as the comment indicates
2019-12-06 15:16:07 -06:00
Andrew Kelley
525b1e8fb4
Merge pull request #3856 from ziglang/builtin-call
...
introduce `@call` and remove other builtin calls
2019-12-06 15:49:47 -05:00
Andrew Kelley
656cc33f8d
allow calling with a new stack to regress a bit
...
Calling with a new stack, with a runtime-known stack pointer (e.g.
not a global variable) is regressed with this branch. It is now a
compile-error, due to the Runtime Hint system not being smart enough
to mix a compile-time modifier field with a runtime stack field.
I'm OK with this regression because this feature is flawed (see #3268 )
and may be deleted from the language.
2019-12-06 15:25:00 -05:00
Andrew Kelley
71b7f4b47f
remove `@newStackCall` from zig
2019-12-06 14:52:09 -05:00
Andrew Kelley
343987cd05
remove `@inlineCall` from zig
2019-12-06 14:12:01 -05:00
Benjamin Feng
eb495d934b
Add WasmPageAllocator tests
2019-12-05 21:54:57 -06:00