Jakub Konka
e61e8c94be
Reenable zig parser tests disabled targeting Wasm
...
I'm not sure why I disabled them when landing extended Wasm/WASI
support, but they pass the parser tests just fine now, so I'm gonna
go ahead and re-enable them.
2020-05-26 21:01:54 -04:00
data-man
78a1f6976d
Add more traits
2020-05-27 04:00:38 +05:00
Andrew Kelley
ba41a9d5d7
different strategy for tokenizing keywords
...
throughput: 279 MiB/s => 347 MiB/s
2020-05-26 18:59:49 -04:00
data-man
b6e1670d2b
Use ccache (optionally)
2020-05-26 16:04:40 -04:00
Walter Mays
e1186c88ea
Remove unimplemented `init` call from ArrayListUnmanaged.
2020-05-26 15:59:56 -04:00
Andrew Kelley
ef42ef9ce8
Merge pull request #5440 from kubkon/align-fn-error-wasm
...
Make align expr on fns a compile error in Wasm
2020-05-26 15:49:19 -04:00
data-man
49dd2cbd9a
Support vectors in mem.len
2020-05-27 00:00:19 +05:00
Dmitry Atamanov
dd62f63c04
fmt padding correction ( #5403 )
...
* Make .Left as default
2020-05-26 20:53:51 +03:00
Walter Mays
19a04d8ebd
Add `writeToSlice` method to SegmentedList. ( #5405 )
2020-05-26 13:04:25 -04:00
foobles
cb6bc5bdb5
Add caller location tracking for asserts (ir_assert, src_assert, ir_assert_gen) ( #5393 )
2020-05-26 12:55:31 -04:00
Andrew Kelley
57b78fff73
Merge branch 'daurnimator-pretty-print-non-exhaustive-enums'
...
closes #4693
2020-05-26 12:15:37 -04:00
Andrew Kelley
62fefe8648
std.fmt: non-exhaustive enums: avoid the loop when it's not necessary
2020-05-26 12:15:08 -04:00
daurnimator
5cdeac3b0e
std: in fmt, use tag names of non-exhaustive enums when available
2020-05-26 12:00:33 -04:00
daurnimator
292d515e91
std: allow specifiying enums to be formatted as numbers
2020-05-26 12:00:33 -04:00
Jakub Konka
08b0cae777
Add matching compile error test
2020-05-26 18:00:08 +02:00
Jakub Konka
015c899297
Make align expr on fns a compile error in Wasm
...
In Wasm, specifying alignment of function pointers makes little sense
since function pointers are in fact indices to a Wasm table, therefore
any alignment check on those is invalid. This can cause unexpected
behaviour when checking expected alignment with `@ptrToInt(fn_ptr)`
or similar. This commit proposes to make `align` expressions a
compile error when compiled to Wasm architecture.
Some references:
[1] [Mozilla: WebAssembly Tables](https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format#WebAssembly_tables )
[2] [Sunfishcode's Wasm Ref Manual](https://github.com/sunfishcode/wasm-reference-manual/blob/master/WebAssembly.md#indirect-call )
2020-05-26 17:17:32 +02:00
data-man
d10e407977
More vector support in std.meta
2020-05-26 10:56:29 -04:00
Alexandros Naskos
d88db4d34b
Changed test name to reflect it only fixes #4328
2020-05-26 12:36:02 +03:00
Veikka Tuominen
4b8077ea8e
Merge pull request #5383 from Vexu/fix
...
Fix missing compile error on while/for missing block
2020-05-26 11:13:09 +03:00
Andrew Kelley
49f3defe5b
Merge branch 'leroycep-feature-cache-hash-zig'
...
closes #4635
2020-05-25 21:04:10 -04:00
Andrew Kelley
7c8d0cc678
fix pwrite on 32-bit linux
2020-05-25 19:59:39 -04:00
Andrew Kelley
a83aab5209
fix std lib tests for WASI
2020-05-25 19:46:28 -04:00
Andrew Kelley
cda102be02
improvements to self-hosted cache hash system
...
* change miscellaneous things to more idiomatic zig style
* change the digest length to 24 bytes instead of 48. This is
still 70 more bits than UUIDs. For an analysis of probability of
collisions, see:
https://en.wikipedia.org/wiki/Universally_unique_identifier#Collisions
* fix the API having the possibility of mismatched allocators
* fix some error paths to behave properly
* modify the guarantees about when file contents are loaded for input files
* pwrite instead of seek + write
* implement isProblematicTimestamp
* fix tests with regards to a working isProblematicTimestamp function.
this requires sleeping until the current timestamp becomes
unproblematic.
* introduce std.fs.File.INode, a cross platform type abstraction
so that cache hash implementation does not need to reach into std.os.
2020-05-25 19:29:03 -04:00
Vexu
e07b467c7c
fix missing compile error on while/for missing block
2020-05-25 23:25:06 +03:00
Andrew Kelley
69ff89fd12
stage2 parser: heuristics to pre-allocate token arrays
...
throughput: 72.2 MiB/s => 75.3 MiB/s
I also tried the idea from the deleted comment in this commit and it
made the throughput worse.
2020-05-25 15:12:23 -04:00
Andrew Kelley
6d5ec184ab
stage2 parser: heuristics to pre-allocate token arrays
...
throughput: 72.2 MiB/s => 75.3 MiB/s
2020-05-25 15:02:02 -04:00
LeRoyce Pearson
72716ecc3a
Fix improper initialization of CacheHashFiles
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
c3c332c9ec
Add max_file_size argument
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
5a1c6a3627
Set manifest's maximum size to Andrew's recommendation
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
be69e8e871
Remove non-null assertion in `CacheHash.release()`
...
People using the API as intended would never trigger this assertion
anyway, but if someone has a non standard use case, I see no reason
to make the program panic.
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
e6a37ed941
Change null pointer test to `addFilePost` test
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
42007307be
Make if statement more idiomatic
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
2c59f95e87
Don't use `iterate` when opening manifest directory
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
1ffff1bb18
Add test case for fix in previous commit
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
0fa89dc51d
Fix read from null pointer in CacheHash.hit
...
It occured when the manifest file was manually edited to include an extra
file. Now it will simply copy the file name in the manifest file
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
f13c67bcfe
Return an index from `CacheHash.addFile`
...
This makes it possible for the user to retrieve the contents of the
file without running into data races.
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
4d62d97076
Update code using deprecated ArrayList APIs
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
b429f4607c
Make `addFilePost*` functions' documentation more clear
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
e7657f2938
Make `CacheHash.release` return an error
...
If a user doesn't care that the manifest failed to be written, they can
simply ignore it. The program will still work; that particular cache
item will simply not be cached.
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
967b9825a7
Add "no file inputs" test
...
It checks whether the cache will respond correctly to inputs that don't
initially depend on filesystem state. In that case, we have to check
for the existence of a manifest file, instead of relying on reading the
list of entries to tell us if the cache is invalid.
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
4254d389d3
Add test checking file changes invalidate cache
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
b67a9f2281
Switch to using `testing.expect*` in tests
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
d457919ff5
Make CacheHash cleanup consistent (always call `release`)
...
Instead of releasing the manifest file when an error occurs, it is
only released when when `CacheHash.release` is called. This maps better
to what a zig user expects when they do `defer cache_hash.release()`.
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
05edfe983c
Add `addFilePost` and `addFilePostFetch` functions
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
af730c64bd
Put base64 alphabet into a named constant
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
d770dae1b8
Add documentation to CacheHash API
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
67d6432d10
Check for problematic timestamps
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
73d2747084
Open file with exclusive lock
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
204aa7dc1a
Remove unnecessary contents field from File
...
It was causing a segfault on `mipsel` architecture, not sure why other
architectures weren't affected.
2020-05-25 13:48:43 -04:00
LeRoyce Pearson
c88ece3679
Remove error union from CacheHash.final
2020-05-25 13:48:43 -04:00