ChanServ changed the topic of #zig to: zig programming language | https://ziglang.org | be excellent to each other | channel logs: https://irclog.whitequark.org/zig/
ur5us has quit [Ping timeout: 260 seconds]
ronsor has quit [Ping timeout: 240 seconds]
ur5us has joined #zig
ronsor has joined #zig
casaca has quit [Remote host closed the connection]
ronsor has quit [Ping timeout: 240 seconds]
<cr1901_modern> Without using C fread/strtok, how might I read a file into a buffer and read the buffer with a strtok()-like in Zig?
ronsor has joined #zig
<pixelherodev> readAllAlloc, then make a reader over it and readUntilDelimiter?
decentpenguin has joined #zig
<cr1901_modern> Cool, let's see if I can do that :D... will be back if I have trouble
<daurnimator> cr1901_modern: use a linearfifo as a buffer around your file and use readUntilDelimiter?
<daurnimator> depends if your file is large or not (readAllAlloc could be expensive)
<cr1901_modern> Not large at all
<cr1901_modern> I'm doing old Advent of Code problems
<andrewrk> if you are able to read the entire file into a buffer, the mem.tokenize and mem.split functions are quite nice
<cr1901_modern> yea, that's not really a problem for a file this small. I just prefer not to assume the entire file fits
<cr1901_modern> and if e.g. a tokenize function fails, it means "need more input"
<cr1901_modern> it can* mean
xackus has joined #zig
casaca has joined #zig
radgeRayden has joined #zig
dimenus has joined #zig
xackus_ has joined #zig
xackus has quit [Ping timeout: 265 seconds]
<cr1901_modern> Is there more up to date docs than: https://ziglang.org/documentation/master/std? I can't find e.g. readUntilDelimiter
<ronsor> Online auto-generated documentation is still iffy, and I highly suggest reading the source code
<ronsor> There are missing functions, etc. in the online docs.
<traviss> zls is a great tool for exploring the std lib if you're using a compatible editor: https://github.com/zigtools/zls
<cr1901_modern> https://github.com/ziglang/zig/blob/master/lib/std/fs/file.zig#L148 Where is the open() function for files?
<cr1901_modern> Ack I saw that, and didn't install it yet
<traviss> use std.fs.cwd().openFile(sub_path: []const u8, flags: File.OpenFlags)
<cr1901_modern> Is open() referring to the unistd.h open() in my linked comment?
<cr1901_modern> Awesome, I opened a file :D!
<andrewrk> congrats :)
<cr1901_modern> Ty :). Now to do something with said file...
craigo has quit [Ping timeout: 246 seconds]
<cr1901_modern> What does stat_size mean compared to max_size in readAllAlloc?
<Cadey> how do i spawn a child process in zig?
<leeward> fork?
<andrewrk> cr1901_modern, are you trying to read stdin?
<andrewrk> Cadey, std.ChildProcess
<cr1901_modern> andrewrk: No. const fp = try std.fs.cwd().openFile("day1/input.1", .{.read = true });
<cr1901_modern> const buf = try fp.readAllAlloc(allocator, 500, 1024);
<andrewrk> cr1901_modern, I think you probably want std.fs.cwd().readFileAlloc
<andrewrk> for this function you will only have to give the maximum number of bytes that are allowed before returning error.FileTooBig. if you want to allow any size, use math.maxInt(usize)
<cr1901_modern> What is this form for, out of curiosity? const buf = try fp.readAllAlloc(allocator, 500, 1024);
<Cadey> is it normal for std.log to not show up in release binaries?
<cr1901_modern> Note that setting the second param to 0 causes nothing to be read, and setting to 1024 causes "endOfStream"
<andrewrk> cr1901_modern, it's a lower-level API for when you already have done a stat syscall and know the file size
<andrewrk> it's a common pattern in zig to expose both higher and lower level APIs
<andrewrk> Cadey, I think std.log is documented pretty well if you have a look at lib/std/log.zig
<Cadey> ah
* Cadey looks
<andrewrk> it's highly configurable, so whatever the behavior is that you want, I'm sure you can get it
<Cadey> what's the printf equivalent for always printing things?
<andrewrk> std.debug.print will do a mutex-protected print to stderr
<Cadey> in release binaries too?
<andrewrk> yes
<andrewrk> are you sure you don't want to just use stdout like a normal file?
<andrewrk> I can advise if you explain your use case more
waleee-cl has quit [Quit: Connection closed for inactivity]
<Cadey> printing a logo on startup of a program :D
<daurnimator> misc idea re: the stderr lock: when linking with libc, should we use flockfile/funlockfile?
<Cadey> okay
<Cadey> life pro tip
<Cadey> when testing something that runs the reboot() system call
<Cadey> don't run it as root
<Cadey> that will make your system reboot
<andrewrk> hmmm logo on startup... does it print anything else over the life of the program?
<andrewrk> lol
<Cadey> ikr
<andrewrk> daurnimator, yes when linking libc, std.debug.print should use flockfile/funlockfile instead of its own mutex, assuming that's what libc does internally for fprintf
<andrewrk> Cadey, IMO for the logo, just do in main() `std.io.getStdErr().writeAll(logo) catch {};`
<Cadey> :+1:
<andrewrk> daurnimator, as well as fwrite_unlocked or whatever
dongcarl has quit [Read error: Connection reset by peer]
<daurnimator> andrewrk: did you need a "wtf is spdx and why should I care" intro?
dongcarl has joined #zig
<Cadey> what fun is sortware unless your project names reference obscure esports players?
<cr1901_modern> no member named 'len' in struct 'std.mem.TokenIterator'. I take it you can't iterate over tokens in a for loop?
<andrewrk> daurnimator, yes
<Cadey> soft*
<andrewrk> cr1901_modern, var it = std.mem.tokenize(foo); while (it.next()) |token| { ... }
<cr1901_modern> That would've been the next thing I tried, based on the tests for tokenize. But why isn't for() supported?
<daurnimator> andrewrk: it was created by the linux foundation as a machine findable way to put the license into the file without having to put the whole license. Essentially because people keep copying files out of the linux kernel without a copyright attribution
<cr1901_modern> B/c unknown len at compile time?
<daurnimator> andrewrk: so now there are a heap of tools that compliance departments can run over their companies codebases to find SPDX lines
<fengb> for only works on slices and arrays
<andrewrk> daurnimator, ok that's a good "why I should care" :)
<andrewrk> cr1901_modern, the zig language doesn't really have any abstractions beyond the type system and function calls
<andrewrk> there's no "iterator" type
<daurnimator> general guidance is: the *first* line in the file that isn't magic (like a #!) *should* contain an SPDX declaration
<cr1901_modern> I can live with that
<andrewrk> note that `while` in this example is not doing any magic, it's just unwrapping the optional value returned by next()
<andrewrk> same as if you did `if (it.next()) |token| {...}`
dimenus has quit [Read error: Connection reset by peer]
dongcarl has quit [Read error: Connection reset by peer]
joey152 has quit [Ping timeout: 240 seconds]
dongcarl has joined #zig
cole-h has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
<cr1901_modern> Is switch supposed to not error if I don't exhaust all cases? Happy to post code
<andrewrk> you gotta handle everything. use `else` if you need to
<cr1901_modern> Okay I think I'm doign something wrong then
<cr1901_modern> because this isn't erroring on my end
<andrewrk> post code
dongcarl has joined #zig
<cr1901_modern> http://ix.io/2uGN
<traviss> when you switch on self.dir, i believe the cases should look like `.North => self.dir = .West`
<cr1901_modern> That also doesn't cause a compiler error when I remove a case
<traviss> are you referencing the code? zig won't compile it unless its being used
<cr1901_modern> No
<leeward> Put it in a test for easy verification.
<leeward> er, call it from a test.
<cr1901_modern> Fair enough... I'll keep that in mind for next time
dongcarl has quit [Read error: Connection reset by peer]
jayschwa has quit [Remote host closed the connection]
dongcarl has joined #zig
<cr1901_modern> and lastly, is there an string-to-int function provided by the stdlib, or should I roll my own based on the one in the docs
<cr1901_modern> would prefer not to think about this tonight lmao
ronsor has quit [Ping timeout: 256 seconds]
<daurnimator> IIRC there is a std.fmt.parseInt ?
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
<cr1901_modern> Okay awesome, first AOC question done (part 1 anyway) using Zig :). Gonna commit it and call it a night.
dongcarl has quit [Read error: Connection reset by peer]
<cr1901_modern> https://github.com/cr1901/zig-aoc2016 Here we go! Feel free to eviscerate it :P.
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
gert_ has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
ur5us has quit [Ping timeout: 260 seconds]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
gert_ has quit [Quit: WeeChat 2.8]
dongcarl has quit [Read error: Connection reset by peer]
decentpenguin has quit [Quit: ZNC crashed or something]
dongcarl has joined #zig
decentpenguin has joined #zig
cole-h has quit [Quit: Goodbye]
xackus_ has quit [Ping timeout: 240 seconds]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
KoljaKube has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
xackus_ has joined #zig
dongcarl has joined #zig
radgeRayden has quit [Ping timeout: 272 seconds]
xackus_ has quit [Ping timeout: 265 seconds]
scriptnull has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
<scriptnull> Hi, I am trying to find the memory page size of the underlying OS from a Zig program and couldn't figure out if it is possible in Zig. Any ideas?
<scriptnull> ( To add more context, I am searching for something equivalent to https://golang.org/pkg/os/#Getpagesize )
decentpenguin has quit [Read error: Connection reset by peer]
decentpenguin has joined #zig
ronsor has joined #zig
<daurnimator> scriptnull: where do you want to get it from?
<daurnimator> scriptnull: zig has `std.mem.page_size`. but as discussed in https://github.com/ziglang/zig/issues/4082 there can be more than one page size
scriptnull has quit [Ping timeout: 244 seconds]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
ronsor has quit [Ping timeout: 256 seconds]
ronsor has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
nikki93 has quit [Ping timeout: 260 seconds]
l1x has quit [Ping timeout: 244 seconds]
strmpnk has quit [Ping timeout: 260 seconds]
dongcarl has quit [Read error: Connection reset by peer]
alehander92 has quit [Ping timeout: 260 seconds]
dongcarl has joined #zig
scriptnull1 has joined #zig
creationix has quit [Ping timeout: 272 seconds]
strmpnk has joined #zig
strmpnk has quit [Max SendQ exceeded]
dputtick has quit [Read error: Connection reset by peer]
strmpnk has joined #zig
creationix has joined #zig
l1x has joined #zig
dputtick has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
nikki93 has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
l1x has joined #zig
strmpnk has joined #zig
creationix has joined #zig
dputtick has joined #zig
nikki93 has joined #zig
strmpnk has quit [Changing host]
l1x has quit [Changing host]
creationix has quit [Changing host]
dputtick has quit [Changing host]
nikki93 has quit [Changing host]
<scriptnull1> Thanks! I think os.Getpagesize() in Go returns the result of getpagesize(2) syscall linux syscall (https://man7.org/linux/man-pages/man2/getpagesize.2.html), I would mostly like to get the result from there.
dongcarl has joined #zig
<daurnimator> scriptnull1: that's not a real syscall
<daurnimator> scriptnull1: did you see my link before?
casaca has quit [Ping timeout: 246 seconds]
<daurnimator> (and the link in there to https://github.com/ziglang/zig/pull/3815 )
<scriptnull1> yes, checking it out and trying to understand what exactly is a page size and why there could be multiple page sizes.
<daurnimator> scriptnull1: a good question might be: why do you want the page size?
<scriptnull1> I am trying to build an embedded key-value store in Zig (inspired by lmdb and bolt db). As part of it, we will need to implement a B+ tree in Zig. Both lmdb and bolt db use the notion of `page` to store a node in a B+ tree. By default they seem to assign the OS's page size as the page size of pages in the B+ tree.
<daurnimator> scriptnull1: you probably just want `std.mem.page_size`
<scriptnull1> ah ok, thanks!
<scriptnull1> Do you recommend any reads (like a webpage, book chapter, video) to understand about page sizes in detail?
ur5us has joined #zig
<daurnimator> scriptnull1: I don't have any in mind
<daurnimator> scriptnull1: the general point is: your MMU (a component in your PC) thinks in terms of "pages" of memory
<daurnimator> which means that the kernel deals mostly in pages; rather than individual bytes
<daurnimator> things like readable/writeable/executable are all done in terms of pages
<daurnimator> likewise the virtual <> physical mapping is the size of a page.
<scriptnull1> Thanks, I am reading through https://en.wikipedia.org/wiki/Memory_management_unit
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
ur5us has quit [Remote host closed the connection]
ur5us has joined #zig
dingenskirchen has joined #zig
st4ll1 has quit [Ping timeout: 256 seconds]
st4ll1 has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dingenskirchen has quit [Quit: dingenskirchen]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
scriptnull1 has quit [Quit: scriptnull1]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
<KoljaKube> Is it possible to reinterpret packed unions? The documentation is not entirely clear on that, and if it's possible I can't figure out the syntax
ur5us has quit [Ping timeout: 244 seconds]
<andrewrk> @bitCast
<andrewrk> good night
<KoljaKube> good night
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
<ikskuh> huh
<KoljaKube> Still can't seem to figure out the syntax though
<daurnimator> KoljaKube: @bitCast(DestinationType, yourvalue)
<ikskuh> @bitCast(TargetType, myvalue)
<KoljaKube> const clr = @bitCast(Vec3.Color, vec);
<KoljaKube> error: container 'Vec3' has no member called 'Color'
<daurnimator> KoljaKube: that error message seems pretty explainatory...
<KoljaKube> const Vec3 = packed union { Arr: [3]f32, Coord: packed struct { x: f32, y: f32, z: f32 }, Color: packed struct { r: f32, g: f32, b: f32 }, };
<daurnimator> KoljaKube: you want `, pub const Color = packed struct { ..... }`
<KoljaKube> Oh, that split is necessary?
<daurnimator> KoljaKube: i.e. it's a sub-type, not a member
<ikskuh> i feel trolled by the compiler
<KoljaKube> I thought I didn't need that since initializing the enum worked this way
<KoljaKube> const vec = Vec3{ .Coord = .{ .x = 1, .y = 2, .z = 3 } };
<KoljaKube> OK, now the compiler crashes with "TODO buf_write_value_bytes union type"
<daurnimator> KoljaKube: oh, maybe you want: `@TypeOf(Vec3.Color)` if that works.... or you need `@TypeOf(@as(Vec3, undefined).Color)`
<KoljaKube> First does not work, second gives me "error: accessing union field 'Color' while field 'Arr' is set"
<daurnimator> `@TypeOf(@as(Vec3, .{ .Color = undefined}).Color)`
<KoljaKube> Hehe, with that I get the same crash as with the separate struct consts
<daurnimator> KoljaKube: can you paste a minimal sample to godbolt?
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
<ikskuh> KoljaKube: change both const to var
<ikskuh> @bitCast has problems at comptime
<ikskuh> also note that you're not casting to Vec3, but to @TypeOf(Vec3.Color)
<ikskuh> so "clr" is of that type already
<ikskuh> further simplification: https://godbolt.org/z/c147zx
<ikskuh> and the last step: var clr = vec.Color;
<ikskuh> because bitCast is not necessary for packed unions
<daurnimator> I keep getting `TODO buf_write_value_bytes union type` for everything I try :(
<daurnimator> you have a real TODO
<ikskuh> daurnimator: that's the @bitCast at comptime todo
<ikskuh> change both vec and clr to var
<KoljaKube> Wow, I would never have got this, thanks
<KoljaKube> That var/const thing is mean
<ikskuh> yeah, that's a bit weird atm
<KoljaKube> So the compiler tries to do as much as it can at comptime, and the keyword is only to force comptime execution?
<ikskuh> yep
<ikskuh> why calculate a LUT at runtime when you can do it comptime?
<KoljaKube> Because it crashes the compiler ;-)
<ikskuh> haha :D
<ikskuh> true
<KoljaKube> Just to be clear, when I assign clr it's a copy, but accessing vec.Color.r directly is not?
<ikskuh> yes
<KoljaKube> OK, I think I can use this :-)
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
<KoljaKube> Huh, when I leave clr var and make vec const, the compiler refuses to coerce
casaca has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
waleee-cl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
sonarjetlens has joined #zig
<danyspin97> zig-master does not compile with llvm-10.0.1 :/
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
<daurnimator> danyspin97: which error?
<ifreund> works for me
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
KoljaKube has quit [Quit: WeeChat 2.9]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
st4ll1 has quit [Quit: WeeChat 2.9]
_whitelogger has joined #zig
heitzmann has quit [Quit: WeeChat 2.9]
dongcarl has joined #zig
heitzmann has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
st4ll1 has joined #zig
rzezeski has quit [Quit: Connection closed for inactivity]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
<danyspin97> daurnimator: missing symbols
<danyspin97> I think it is because it cannot find libclang-cpp.so
<danyspin97> yea, zig_build_libstage2 uses the built zig0 binary without adding CLANG_LIBDIRS to LD_LIBRARY_PATH
sawzall has quit [Read error: Connection reset by peer]
PC9801 has quit [Ping timeout: 240 seconds]
sawzall has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
xackus_ has joined #zig
sawzall has quit [Read error: Connection reset by peer]
dongcarl has quit [Read error: Connection reset by peer]
sawzall has joined #zig
dongcarl has joined #zig
sonarjetlens has quit [Remote host closed the connection]
sonarjetlens has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
waleee-cl has quit [Quit: Connection closed for inactivity]
dongcarl has joined #zig
xackus_ has quit [Ping timeout: 260 seconds]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
craigo has joined #zig
nvmd has joined #zig
Akuli has joined #zig
rzezeski has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
nullheroes has joined #zig
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
sonarjetlens has quit [Ping timeout: 245 seconds]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dddddd_ has joined #zig
dddddd has quit [Ping timeout: 256 seconds]
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
cren has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
cr1901_modern has quit [Ping timeout: 256 seconds]
dongcarl has joined #zig
cren has quit [Ping timeout: 246 seconds]
cr1901_modern has joined #zig
cole-h has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
KoljaKube has joined #zig
cr1901_modern has quit [Ping timeout: 240 seconds]
dongcarl has joined #zig
cr1901_modern has joined #zig
cr1901_modern has quit [Client Quit]
cr1901_modern has joined #zig
cr1901_modern has quit [Ping timeout: 260 seconds]
cr1901_modern has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
cr1901_modern has quit [Quit: Leaving.]
cr1901_modern has joined #zig
dongcarl has quit [Read error: Connection reset by peer]
dongcarl has joined #zig
cr1901_modern has quit [Ping timeout: 240 seconds]
dongcarl has quit [Quit: The Lounge - https://thelounge.chat]
dongcarl has joined #zig
cr1901_modern has joined #zig
cr1901_modern has quit [Quit: Leaving.]
cr1901_modern has joined #zig
cr1901_modern has quit [Client Quit]
xackus_ has joined #zig
cr1901_modern has joined #zig
dongcarl has quit [Quit: The Lounge - https://thelounge.chat]
dongcarl has joined #zig
cr1901_modern has quit [Quit: Leaving.]
cr1901_modern has joined #zig
cren has joined #zig
waleee-cl has joined #zig
dddddd_ is now known as dddddd
cr1901_modern has quit [Ping timeout: 256 seconds]
wootehfoot has joined #zig
xackus_ has quit [Read error: Connection reset by peer]
xackus_ has joined #zig
cren has quit [Quit: Swirc IRC client]
KoljaKube has quit [Ping timeout: 240 seconds]
KoljaKube has joined #zig
ur5us has joined #zig
cr1901_modern has joined #zig
<KoljaKube> OK, so field alignment on unions is not possible yet. But having Vector members is. Aren't Vectors aligned to do their SIMD stuff?
_whitelogger has joined #zig
dingenskirchen has joined #zig
<andrewrk> yes
cr1901_modern has quit [Ping timeout: 240 seconds]
<KoljaKube> But that doesn't reflect in the type's alignment, right? testing.expectEqual(@sizeOf(Mat4f.ValueType) * Mat4f.Dimension, @alignOf(Mat4f)); results in "expected 16, found 1"
<KoljaKube> (Mat4f is a union containing 4 Vector(4, f32))
<KoljaKube> I would have at least expected 4
<KoljaKube> Then again, I understand what understand what alignment means, but not how it's determined
Akuli has quit [Quit: Leaving]
KoljaKube has quit [Ping timeout: 240 seconds]
<fengb> Hmm it sounds like a bug if the union has smaller alignment than its members
wootehfoot has quit [Read error: Connection reset by peer]
traviss has quit [Remote host closed the connection]
traviss has joined #zig
dingenskirchen has quit [Quit: dingenskirchen]
<andrewrk> yeah the union's alignment should be the alignment of the most aligned member
xackus_ has quit [Ping timeout: 272 seconds]
factormystic has quit [Quit: The Lounge - https://thelounge.chat]
factormystic has joined #zig
factormystic has quit [Quit: The Lounge - https://thelounge.chat]
factormystic has joined #zig
vramana has joined #zig
<vramana> Hi, How do I generate documentation on master code?
utzig has quit [Read error: Connection reset by peer]
jzelinskie has quit [Ping timeout: 244 seconds]
jzelinskie has joined #zig
eddyb[legacy] has quit [Ping timeout: 272 seconds]