LeRoyce Pearson
de341b8fb8
Fix memory leak in cache_hash
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
8a77c1c637
Add cache
method; add support for caching integers
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
3158dc424e
Partially implement cache hash API in zig
2020-05-25 13:48:43 -04:00
data-man
0ecdbdb3cb
Support comptime floats in std.fmt
2020-05-25 12:48:59 -04:00
Andrew Kelley
0fd77c2de3
Merge pull request #5431 from alexnask/build_step_ids
...
Added and id and a cast function to build steps
2020-05-25 11:24:15 -04:00
Alexandros Naskos
65d827183b
Added custom build step id, made tests.zig steps use it
2020-05-25 11:36:12 +03:00
Alexandros Naskos
d268e0cf2e
Added and id and a cast function to build steps
2020-05-25 11:20:31 +03:00
Andrew Kelley
3052fd84c8
fix regression in std.os.windows.fromSysTime
2020-05-25 00:37:47 -04:00
Andrew Kelley
c693c3ae50
Merge branch 'leroycep-feature-nano-timestamp'
...
closes #5237
2020-05-24 21:40:23 -04:00
Andrew Kelley
53d011fa1a
(breaking) std.time fixups and API changes
...
Remove the constants that assume a base unit in favor of explicit
x_per_y constants.
nanosecond calendar timestamps now use i128 for the type. This affects
fs.File.Stat, std.time.nanoTimestamp, and fs.File.updateTimes.
calendar timestamps are now signed, because the value can be less than
the epoch (the user can set their computer time to whatever they wish).
implement std.os.clock_gettime for Windows when clock id is
CLOCK_CALENDAR.
2020-05-24 21:40:08 -04:00
LeRoyce Pearson
c6e7d0fcfd
Use better names for darwin timestart
2020-05-24 21:40:08 -04:00
LeRoyce Pearson
b85a191398
Fix compile errors for MacOS
2020-05-24 21:40:08 -04:00
LeRoyce Pearson
2dfe798217
Use once
to init _timestart in thread safe way
2020-05-24 21:40:08 -04:00
LeRoyce Pearson
7586ce0023
Implement a faster way to get nanoseconds on darwin
2020-05-24 21:40:08 -04:00
LeRoyce Pearson
bb46894115
Add std.time.nanoTimestamp
function
2020-05-24 21:40:08 -04:00
Jethro Nederhof
4b1a846471
target: Implement running OS version detection for FreeBSD ( #5416 )
...
* target: Implement OS version detection for FreeBSD
Fixes #4582
* freebsd version: handle errors explicitly
2020-05-24 20:52:13 -04:00
Noam Preil
07472fb453
[Stage2/Codegen] Properly handle arch in genCall
2020-05-24 20:49:29 -04:00
data-man
db0c30446a
Supports vectors in mem.zeroes
2020-05-24 20:48:29 -04:00
data-man
b13dd3cf61
Treat vectors as indexable
2020-05-24 20:44:17 -04:00
Andrew Kelley
dd05f2be80
run zig fmt on std lib
2020-05-24 10:04:09 -04:00
Andrew Kelley
1c0b7ddda8
fix regression in AST node iteration
...
the new iteration code caused an integer underflow for function
prototypes with no parameters. now fixed.
2020-05-24 10:03:26 -04:00
Andrew Kelley
2ff3995a70
Merge pull request #5378 from ziglang/speed-up-stage2-parsing
...
improve std.zig.parse performance using flat arrays for AST nodes and tokens
2020-05-24 09:44:08 -04:00
Andrew Kelley
8a3cd82b85
translate-c: fix a use-after-free bug
2020-05-23 23:15:58 -04:00
Andrew Kelley
882921b5dd
Merge pull request #5415 from jethron/freebsd-bits
...
Freebsd bits
2020-05-23 20:54:09 -04:00
Andrew Kelley
2952604d5d
update docgen to new ast API
2020-05-23 20:40:09 -04:00
Andrew Kelley
c432811d96
fix regression in compile errors
2020-05-23 20:27:09 -04:00
Andrew Kelley
f771545a7e
revert std.zig.ast iterator changes back to master branch API
2020-05-23 20:14:38 -04:00
Jethro Nederhof
f83fd47b14
os/bits/freebsd audit
2020-05-24 10:08:43 +10:00
Jethro Nederhof
b504169fef
FreeBSD: missing networking constants
2020-05-24 10:08:43 +10:00
Andrew Kelley
c78a2e2e8d
translate-c: emit local typedefs
2020-05-23 19:59:26 -04:00
Andrew Kelley
395786fd50
translate-c: fix regression in param name mangling
2020-05-23 19:28:14 -04:00
Andrew Kelley
88f5e3a60d
translate-c: fix regression in switch statement
2020-05-23 17:58:35 -04:00
Andrew Kelley
f67b8c68a0
translate-c: fix regression on array initialization
2020-05-23 17:52:46 -04:00
Andrew Kelley
32c27daae4
translate-c: fix decl statement regression
2020-05-23 17:50:35 -04:00
Andrew Kelley
46f50ee76c
translate-c: fix regression in do-while loop
2020-05-23 17:25:13 -04:00
Andrew Kelley
8f6d7b3208
std: update singly linked list tests to new API
2020-05-23 16:38:43 -04:00
Andrew Kelley
1a90a5e63a
translate-c is building again, but I have 1 @panic
in there
2020-05-23 16:24:03 -04:00
Andrew Kelley
e072692e1f
update translate-c to new AST API
2020-05-23 12:48:17 -04:00
Noam Preil
63aa9ffedc
[Stage2/Codegen] Typo fix
2020-05-22 15:34:32 -04:00
Noam Preil
a52d1476b7
[Stage2/Codegen] Document x64 register enum layout
2020-05-22 15:32:33 -04:00
Greg Anders
64955deb72
Add poll definitions for Darwin
2020-05-22 13:21:34 -04:00
Andrew Kelley
8df0841d6a
stage2 parser: token ids in their own array
...
To prevent cache misses, token ids go in their own array, and the
start/end offsets go in a different one.
perf measurement before:
2,667,914 cache-misses:u
2,139,139,935 instructions:u
894,167,331 cycles:u
perf measurement after:
1,757,723 cache-misses:u
2,069,932,298 instructions:u
858,105,570 cycles:u
2020-05-22 12:34:12 -04:00
Andrew Kelley
295bca9b5f
stage2 parser: don't append doc comments to the list
...
The DocComment AST node now only points to the first doc comment token.
API users are expected to iterate over the following tokens directly.
After this commit there are no more linked lists in use in the
self-hosted AST API.
Performance impact is negligible. Memory usage slightly reduced.
2020-05-22 00:28:59 -04:00
Andrew Kelley
1dac9e71b5
std.testing: fix a crash when printing diffs
2020-05-22 00:27:51 -04:00
Andrew Kelley
8252c8b9d6
stage2 parser: different multiline string literal parsing strategy
...
and using flat memory rather than singly linked list
roughly equivalent performance, slightly reduced memory usage, better
API.
2020-05-21 23:25:15 -04:00
Andrew Kelley
19de259936
stage2 parser: arrays and structs directly in memory after the node
...
Slightly reduced memory usage. Roughly the same API and perf.
2020-05-21 22:52:45 -04:00
Andrew Kelley
9377af934f
stage2 parser: SwitchCase uses intrusive array instead of linkedlist
...
no perf impact, but the API is better
2020-05-21 22:28:30 -04:00
Andrew Kelley
d37b81d43b
stage2 parser performance/API improvements
...
* Extract Call ast node tag out of SuffixOp; parameters go in memory
after Call.
* Demote AsmInput and AsmOutput from AST nodes to structs inside the
Asm node.
* The following ast nodes get their sub-node lists directly following
them in memory:
- ErrorSetDecl
- Switch
- BuiltinCall
* ast.Node.Asm gets slices for inputs, outputs, clobbers instead of
singly linked lists
Performance changes:
throughput: 72.7 MiB/s => 74.0 MiB/s
maxrss: 72 KB => 69 KB (nice)
2020-05-21 22:01:16 -04:00
Andrew Kelley
32ecb416f3
fix compile errors when setting NodeIndex/TokenIndex to u32
2020-05-21 00:30:08 -04:00
Andrew Kelley
e694cd265a
more progress on updating translate-c
2020-05-21 00:14:55 -04:00