Andrew Kelley
4dc3a9444c
std: reader/writer fixes
2025-07-01 16:35:27 -07:00
Andrew Kelley
19b82ca7ab
std.http.Server: implement chunked request parsing
2025-07-01 16:35:27 -07:00
Jacob Young
d62f22cc4d
link: port to std.io.BufferedReader API changes
2025-07-01 16:35:27 -07:00
Jacob Young
6a0f2227e8
build_runner: port to std.io.BufferedReader API changes
2025-07-01 16:35:27 -07:00
Andrew Kelley
e9fd9798f4
std.tar.Writer: update reader/writer API usage
2025-07-01 16:35:27 -07:00
Andrew Kelley
24441b184f
std.io.poll: update for BufferedReader
...
only posix is updated so far
also implement `BufferedReader.readVec`
2025-07-01 16:35:27 -07:00
Andrew Kelley
cdd05df532
std.io.BufferedReader: don't use a BufferedWriter field
...
this is way better with readVec and the ability to call
`std.io.Reader.buffered`.
2025-07-01 16:35:27 -07:00
Andrew Kelley
00afaa4b18
std.io.BufferedReader: get rid of the @constCast
...
but it's pushed out to various callsites
2025-07-01 16:35:27 -07:00
Andrew Kelley
f333267782
update std.http.Server to new API
...
and rename std.io.BufferedWriter.writableSlice to writableSliceGreedy
and make writableSlice and writableArray advance the buffer end position
introduce std.io.BufferedWriter.writeSplatLimit but it's unimplemented
2025-07-01 16:35:27 -07:00
Jacob Young
ffb0e283d7
build_runner: fix compile errors
2025-07-01 16:35:27 -07:00
Andrew Kelley
a4fdda6ae0
std.io: redo Reader and Writer yet again
...
explicit error sets ahoy matey
delete some sus APIs from File that need to be reworked
2025-07-01 16:35:27 -07:00
Andrew Kelley
20a784f713
std: start converting networking stuff to new reader/writer
2025-07-01 16:35:27 -07:00
Jacob Young
f3d0fc7a66
backends: port to new std.io.BufferedWriter API
2025-07-01 16:35:26 -07:00
Jacob Young
a21e7ab64f
build_runner: port to new std.io.BufferedWriter API
2025-07-01 16:35:26 -07:00
Andrew Kelley
1164d5ece5
tweak std.io.Writer and followups
...
remove std.fs.Dir.readFileAllocOptions, replace with more flexible API
readFileIntoArrayList
remove std.fs.File.readToEndAllocOptions, replace with more flexible API
readIntoArrayList
update std.fs.File to new reader/writer API
add helper functions to std.io.Reader.Limit
replace std.io.Writer.FileLen with std.io.Reader.Limit
make offset a type rather than u64 so that it can distinguish between
streaming read and positional read
avoid an unnecessary allocation in std.zig.readSourceFileToEndAlloc when
there is a UTF-16 little endian BOM.
2025-07-01 16:35:26 -07:00
Andrew Kelley
383afd19d7
std.io.BufferedWriter: don't use ArrayList for this
...
it's the wrong abstraction and is only a footgun when used this way.
2025-07-01 16:35:26 -07:00
Andrew Kelley
4ee2534566
std.io.Reader: extract PositionalReader to separate interface
2025-07-01 16:35:26 -07:00
Andrew Kelley
60854795b8
array list tests passing again
2025-07-01 16:35:26 -07:00
Andrew Kelley
646454beb5
maybe it's better to track bytes written in BufferedWriter
2025-07-01 16:35:26 -07:00
Andrew Kelley
faab6d5cbf
fix hello world
2025-07-01 16:35:26 -07:00
Jacob Young
1501734747
io: fix compile errors
2025-07-01 16:35:26 -07:00
Jacob Young
d76c8d0bd2
Dwarf: cleanup and port to new std.io.BufferedReader API
2025-07-01 16:35:26 -07:00
Andrew Kelley
9dc0b4a98f
back to the anyerror!usize vtable
2025-07-01 16:35:26 -07:00
Andrew Kelley
6ac7931bec
std: hacking around with buffered reader / writer semantics
...
I think I'm going to back out these vtable changes in the next commit
2025-07-01 16:35:26 -07:00
Andrew Kelley
890a02c345
std.io: move getStdIn, getStdOut, getStdErr functions to fs.File
...
preparing to rearrange std.io namespace into an interface
2025-07-01 16:35:26 -07:00
Andrew Kelley
6c48aad991
update some more std lib API to new Reader/Writer
...
std.compress needs an audit, I see some problems
2025-07-01 16:35:26 -07:00
Andrew Kelley
57e1fc29d2
reader interface vecs and bufferedwriter arraylist
2025-07-01 16:35:26 -07:00
Andrew Kelley
5aa8573f2b
redo reader
2025-07-01 16:35:26 -07:00
Andrew Kelley
2fb6ce2f92
update some more compiler code
2025-07-01 16:35:26 -07:00
Andrew Kelley
d87b59f5a5
std.fmt.format: support base 64 encoding
2025-07-01 16:35:26 -07:00
Andrew Kelley
bf00eb3006
more of the compiler updated to new Writer API
2025-07-01 16:35:26 -07:00
Andrew Kelley
09af68de80
fix duration formatting
2025-07-01 16:35:26 -07:00
Andrew Kelley
051c7af49a
get std lib json tests passing
2025-07-01 16:35:26 -07:00
Andrew Kelley
7569494b45
fix byte formatted printing
2025-07-01 16:35:26 -07:00
Andrew Kelley
bb1dffcf32
much of the compiler upgraded to new API
2025-07-01 16:35:26 -07:00
Andrew Kelley
f3be721785
build runner compiling
2025-07-01 16:35:26 -07:00
Andrew Kelley
716b4489be
update more of the std lib to new API
2025-07-01 16:35:26 -07:00
Andrew Kelley
e60adb97d0
AllocatingWriter passing unit test
2025-07-01 16:35:26 -07:00
Andrew Kelley
fced9467e8
std ArrayList unit tests passing
2025-07-01 16:35:26 -07:00
Andrew Kelley
221b194f28
std.io.BufferedWriter: implement hex string printing
2025-07-01 16:35:26 -07:00
Andrew Kelley
ff3581ca2d
update some of the build system to new API
2025-07-01 16:35:25 -07:00
Andrew Kelley
1d0495678d
fixes
...
writeFile should be split into two
2025-07-01 16:35:25 -07:00
Andrew Kelley
35824e4822
writeSplat
2025-07-01 16:35:25 -07:00
Andrew Kelley
b26aceba7d
thinking about splat being the only function
2025-07-01 16:35:25 -07:00
Andrew Kelley
5356f3a307
migrate some std lib
2025-07-01 16:35:25 -07:00
Andrew Kelley
c2fc6b0b6c
ArrayListWriter
2025-07-01 16:35:25 -07:00
Andrew Kelley
00c6c836a6
std: start reworking std.io
...
hello world is compiling
2025-07-01 16:35:25 -07:00
Andrew Kelley
f32a5d349d
std: eradicate u29 and embrace std.mem.Alignment
2025-04-13 02:20:32 -04:00
Pat Tullmann
14c046fc07
lib/std: PermissionDenied/AccessDenied cleanup and fallout
...
This PR consistently maps .ACCES into AccessDenied and .PERM into
PermissionDenied. AccessDenied is returned if the file mode bit
(user/group/other rwx bits) disallow access (errno was `EACCES`).
PermissionDenied is returned if something else denies access (errno was
`EPERM`) (immutable bit, SELinux, capabilities, etc). This somewhat
subtle distinction is a POSIX thing.
Most of the change is updating std.posix Error Sets to contain both
errors, and then propagating the pair up through caller Error Sets.
Fixes #16782
2025-03-24 16:20:45 +01:00
Pat Tullmann
eace31c6b3
std/lib: {fs,io,posix} test clean up
...
* use `tmp.dir.realpathAlloc()` to get full path into tmpDir instances
* use `testing.allocator` where that simplifies things (vs. manual ArenaAllocator for 1 or 2 allocs)
* Trust `TmpDir.cleanup()` to clean up contained files and sub-trees
* Remove some unnecessary absolute paths (enabling WASI to run the tests)
* Drop some no-longer necessary `[_][]const u8` casts
* Add scopes to reduce `var` usage in favor of `const`
2025-03-09 07:41:06 +01:00