Andrew Kelley
ba967ae9a1
Merge pull request #7002 from jedisct1/timingSafeEqlMinimal
...
Add mem.timingSafeEql() for constant-time array comparison
2020-11-16 13:39:31 -08:00
Jakub Konka
cd4b54fd38
libstd: add more MachO consts and structs
2020-11-16 13:37:07 -08:00
LemonBoy
36c869dc14
std: Make windows.ReadFile allow short reads
...
Make it behave like the read() wrapper for unix systems.
Reading the whole buffer breaks some use-cases like buffered readers
over sockets.
Closes #7121
2020-11-16 13:35:06 -08:00
xackus
109a3ebcca
std.mem: make args comptime, fix test names
2020-11-16 12:50:05 +01:00
xackus
92e45ee3a1
std.mem: make sliceAsBytes, etc. respect volatile
2020-11-14 13:59:29 +01:00
xackus
c814fdbfaf
std.mem: improve doc comments
2020-11-14 13:59:29 +01:00
Felix (xq) Queißner
0bbf170514
Adapts to @andrewrks comment to include dot.
2020-11-14 11:01:47 +01:00
Andrew Kelley
bf03ae7acc
std.fs.path.dirname: return null when input path is root
...
This intentionally diverges from the unix dirname command, as well as
Python and Node.js standard libraries, which all have this edge case
return the input path, unmodified. This is a footgun, and nobody should
have ever done it this way.
Even the man page contradicts the behavior. It says:
"strip last component from file name". Now consider, if you
remove the last item from an array of length 1, then you
have now an array of length 0. After you strip the last component, there
should be no components remaining. Clearly, returning the input parameter
unmodified in this case does not match the documented behavior. This is
my justification for taking a stand on this API design.
closes #6746
closes #6727
closes #6584
closes #6592
closes #6602
2020-11-13 17:36:49 -07:00
Sébastien Marie
ab4b34f75f
openbsd: skip tests using Dir.realpath
2020-11-13 12:30:14 -05:00
Felix (xq) Queißner
2ced0316eb
Makes @haze happy.
2020-11-13 13:54:41 +01:00
Felix (xq) Queißner
f51064f79e
Respects leading . and ignores it.
2020-11-13 12:48:01 +01:00
Felix (xq) Queißner
2554273805
Implements std.fs.path.extension.
2020-11-13 11:53:51 +01:00
Hubert Jasudowicz
bf73db71f5
std: Fix code model argument
2020-11-11 21:28:10 +02:00
Veikka Tuominen
93844a5ef9
Merge pull request #7061 from Vexu/std
...
std: fix HashMap.putAssumeCapacity
2020-11-11 18:50:34 +02:00
Vexu
ae6f3291c0
std: fix HashMap.clearRetainingCapacity
2020-11-11 14:05:43 +02:00
Vexu
f70160f89c
std: fix HashMap.putAssumeCapacity
2020-11-11 13:57:08 +02:00
Andrew Kelley
8b9195282e
Merge pull request #7044 from semarie/openbsd-simples
...
Simple sets of commits for OpenBSD support
2020-11-10 18:06:30 -05:00
Andrew Kelley
3110b21c4b
std.Target: bump default version max for macos
2020-11-10 15:24:10 -07:00
Sébastien Marie
678bd4fc89
"ResetEvent" test seems to have a too short timeout: the test is failing randomly on OpenBSD
...
raise the timeout to 100ms to be sure that if it fails (timeout is returned) it is due to a real problem.
the test shouldn't be longer: it will wait more time only on failure.
2020-11-10 05:29:53 +00:00
Sébastien Marie
9d306e5c77
openbsd: mutex or cond destroy function could return EINVAL
2020-11-10 05:26:35 +00:00
Sébastien Marie
8784c7b581
openbsd: proper implementation for Thread.cpuCount()
2020-11-10 05:25:59 +00:00
Sébastien Marie
20b19d0092
openbsd: add time definitions for gettimeofday()
2020-11-10 05:24:56 +00:00
Sébastien Marie
e4bc595bc6
openbsd: add sockets constants
2020-11-10 05:24:03 +00:00
Sébastien Marie
17276df488
openbsd: add dlfcn.h definitions for dlopen()
2020-11-10 05:23:13 +00:00
daurnimator
73f3f01670
Fix json parser close tracking ( #6865 )
...
* std: fix json parsing with unmatched closing tokens
* std: fix swapped json parsing errors
2020-11-09 18:29:02 -05:00
xackus
15dbab9a0c
std: json: fix misleading endianness conversion
2020-11-09 18:27:07 -05:00
Frank Denis
427a212e38
Don't prevent compilation on platforms where debug info is unsupported
...
We don't support debug information on platforms that are not tier-1,
but it shouldn't be a hard error that completely prevents compilation.
2020-11-09 18:22:50 -05:00
Alexandros Naskos
fc67e5f843
Windows TLS startup symbols are already provided by libcrt when linking against libc
2020-11-09 17:46:46 -05:00
Andrew Kelley
83a1523b1a
std.ResetEvent: disable flaky test on Windows
...
See #7009
2020-11-09 15:33:40 -07:00
Frank Denis
7f9e3e419c
Use @reduce
2020-11-07 20:30:13 +01:00
Frank Denis
bd07154242
Add mem.timingSafeEql() for constant-time array comparison
...
This is a trivial implementation that just does a or[xor] loop.
However, this pattern is used by virtually all crypto libraries and
in practice, even without assembly barriers, LLVM never turns it into
code with conditional jumps, even if one of the parameters is constant.
This has been verified to still be the case with LLVM 11.0.0.
2020-11-07 20:18:43 +01:00
Josh Holland
a1ec5448c7
make ArrayList.span into a compile error
2020-11-07 11:15:47 +00:00
Josh Holland
c25b157dda
remove deprecated uses of ArrayList.span
2020-11-07 11:15:44 +00:00
Alexandros Naskos
5430642fa0
Merge pull request #7008 from xackus/minor-fixes
...
change debug.assert to testing.expect in tests
2020-11-07 11:34:51 +02:00
Andrew Kelley
ceaa569bfa
disable flaky file locking test on Windows
...
See #7010
2020-11-06 17:00:51 -07:00
Andrew Kelley
c923f74fc9
std.ResetEvent: disable flaky test on macOS
...
See #7009
2020-11-06 16:46:30 -07:00
xackus
5c8f7f81cd
change debug.assert to testing.expect in tests
2020-11-06 22:48:54 +01:00
Jay Petacat
030f00391a
std: Introduce SemanticVersion data structure
...
This will parse, format, and compare version strings following the
SemVer 2 specification. See: https://semver.org
Updates #6466
2020-11-06 15:07:48 -05:00
Andrew Kelley
d1b1f053b0
Merge pull request #6941 from LemonBoy/floateqapprox
...
std: Implement more useful approxEq semantics
2020-11-06 14:09:31 -05:00
LemonBoy
b9391c9564
std: Make file locking tests less fragile
2020-11-06 14:02:11 -05:00
Jeremy Huffman
9f1639a6bb
Fix std.ResetEvent.timedWait on darwin/macOS. ( #6914 )
2020-11-06 14:01:52 -05:00
Andrew Kelley
a9e09a8be4
Merge pull request #6990 from kubkon/system-linker-hack
...
Re-enable system linker hack
2020-11-06 13:22:03 -05:00
Jakub Konka
b7c3ebcb9e
Rely on ZIG_SYSTEM_LINKER_HACK instead of input flags
2020-11-06 11:34:51 +01:00
Andrew Kelley
c9551652b0
Merge pull request #6978 from LemonBoy/statshit
...
Decouple kernel and libc stat definitions
2020-11-05 17:27:22 -05:00
Andrew Kelley
cf7505da1f
Merge pull request #6974 from daurnimator/prctl-cleanup
...
prctl improvements
2020-11-05 17:25:24 -05:00
Andrew Kelley
f85d719952
Merge pull request #6895 from jorangreef/fallocate
...
linux: add fallocate()
2020-11-05 17:23:00 -05:00
Frank Denis
e7b60b219b
std/crypto: don't constrain Gimli hash output to a fixed length
...
As documented in the comment right above the finalization function,
Gimli can be used as a XOF, i.e. the output doesn't have a fixed
length.
So, allow it to be used that way, just like BLAKE3.
2020-11-05 17:21:19 -05:00
Frank Denis
2e354c387e
math.shl/math.shr: add support for vectors
2020-11-05 17:20:54 -05:00
Frank Denis
73aef46f7d
std.crypto: namespace constructions a bit more
...
With the simple rule that whenever we have or will have 2 similar
functions, they should be in their own namespace.
Some of these new namespaces currently contain a single function.
This is to prepare for reduced-round versions that are likely to
be added later.
2020-11-05 17:20:25 -05:00
Frank Denis
4417206230
Now that they support vectors, use math.rot{l,r}
2020-11-05 17:19:48 -05:00