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/
ntgg has joined #zig
knebulae has joined #zig
_whitelogger has joined #zig
Tetralux has joined #zig
<nairou> Isn't "zig cc" supposed to be the same as using "clang"? My project builds fine with clang, but "zig cc" can't find any system includes.
<andrewrk> nairou, don't use "zig cc". Use the higher level CLI
Tetralux has quit [Ping timeout: 272 seconds]
<andrewrk> zig cc is not a supported interface
<nairou> I'm experimenting with a project that is all C right now. No build.zig yet.
<nairou> Ah
<andrewrk> zig build-exe --c-source -std=c99 main.c --c-source -std=c99 other.c
<andrewrk> one of the major differences between zig as a C compiler and clang is that zig does not depend on any system-installed things unless you explicitly ask it to
<andrewrk> and that's why the -target option works better with zig - because zig provides all the necessary things for whatever target you choose
<nairou> Ah okay, makes sense
<nairou> I was trying to ease my transition by getting the existing makefile working with zig, looks like I need to dig a little deeper :-)
<andrewrk> you can still do that, but use zig build-obj
<andrewrk> and you may need to modify some of the flags. see `zig --help`
<nairou> Sounds good, thanks
marijnfs_ has joined #zig
marijnfs has quit [Ping timeout: 244 seconds]
laaron has joined #zig
slice has quit [Quit: cya]
<scientes> and why does it have to compare against zero?
slice has joined #zig
<andrewrk> scientes, that's implementing @mod
<scientes> oh i see
<scientes> oh woah, llvm's select works with vectors
<scientes> but I think my user-space version is just fine
<scientes> I actually know it is for ppc because i filed the bug
ntgg has quit [Ping timeout: 268 seconds]
<nairou> Is there documentation for the Builder API? Website documentation shows examples but doesn't explain parameters, like for addObject and addExecutable and the like.
ltriant has quit [Ping timeout: 245 seconds]
<daurnimator> nairou: no there isn't
<nairou> Okay. Well, for example, Builder.addObject(). Second parameter is the source file name, but the first parameter... I assume it isn't just an arbitrary string, but I don't know what it's for.
<nairou> Digging through zig source for them, I guess I'll experiment :-)
ltriant has joined #zig
<daurnimator> nairou: the name is... the name of the object :P as in, e.g. what should the file name be derived from
ltriant has quit [Ping timeout: 248 seconds]
<nairou> Derived from? Is it for the sake of debugging and showing object names?
<nairou> Even addExecutable has a name parameter. I guess I don't understand what that would be used for. If you've giving a bunch of files to be built, why label each one with a separate name?
<daurnimator> nairou: builder.addObject is asking the builder to create an object file. i.e. output `<name>.o`
kristoff_it has joined #zig
<daurnimator> nairou: likewise .addExecutable is telling the builder: create the file "name" (or e.g. "name.exe" for windows)
<nairou> Aha! Okay, that makes sense now. Thank you :-)
kristoff_it has quit [Ping timeout: 272 seconds]
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
laaron has joined #zig
rjtobin has quit [Quit: Leaving]
kristoff_it has joined #zig
ltriant has joined #zig
kristoff_it has quit [Ping timeout: 248 seconds]
ltriant has quit [Ping timeout: 245 seconds]
nairou has quit [Quit: Leaving]
kristoff_it has joined #zig
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
laaron has joined #zig
kristoff_it has quit [Ping timeout: 244 seconds]
ntgg has joined #zig
ltriant has joined #zig
ntgg has quit [Ping timeout: 268 seconds]
ltriant has quit [Ping timeout: 268 seconds]
ltriant has joined #zig
_whitelogger has joined #zig
<hspak> what happened to the simple cat program example in the zig repo? I swear there was an exmaples/ folder somewhere
<daurnimator> hspak: was removed a week or 2 ago
<hspak> daurnimator: thanks, looks like they've got a new home in test/standalone/
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
<hspak> hm I see, so likely not a long-term home
laaron has joined #zig
kristoff_it has joined #zig
kristoff_it has quit [Ping timeout: 272 seconds]
darithorn has quit [Quit: Leaving]
kristoff_it has joined #zig
kristoff_it has quit [Ping timeout: 272 seconds]
kristoff_it has joined #zig
kristoff_it has quit [Ping timeout: 268 seconds]
porky11 has joined #zig
kristoff_it has joined #zig
kristoff_it has quit [Ping timeout: 244 seconds]
<daurnimator> gonz_: thinking back to the values conversation, I had a realisation today: "only one way to do things" means that "keep old APIs around for compat" isn't allowed. which really means you have to pick between "break things" or "stagnate"
kristoff_it has joined #zig
<andrewrk> scientes, I added a src() method to AstNode for debugging purposes
<andrewrk> (gdb) p instruction.base.source_node->src()
<andrewrk> /home/andy/dev/zig/test/stage1/behavior/coroutines.zig:364:25
<andrewrk> I should have done this years ago
kristoff_it has quit [Ping timeout: 245 seconds]
bnbn has joined #zig
<bnbn> Hello I'm having some issues running tests that depend on libc and some other c libraries. Is their a standard way to setup tests so they pull in all the dependencies that my regular build.zig pulls in?
<andrewrk> bnbn, you can set up your build.zig to run your tests
<andrewrk> b.addTest
<bnbn> and they will be run on compile or run?
<andrewrk> combine that with b.addStep and you can give a nice API to the zig build user. look at the zig repo's build.zig for example
<bnbn> ok thank you!
<andrewrk> you'll probably want to set up a separate testing step and start doing `zig build test` when you want to test
kristoff_it has joined #zig
<bnbn> ok, that makes sense.
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
ltriant has quit [Quit: leaving]
kristoff_it has quit [Ping timeout: 248 seconds]
laaron has joined #zig
kristoff_it has joined #zig
<bnbn> cool, just got it work. thank you again :)
<gonz_> daurnimator: That's a great observation.
kristoff_it has quit [Ping timeout: 272 seconds]
<gonz_> Though I guess most languages do also grow into having "stability" as a core value, for the most part.
<gonz_> The ones that are used by people in their early days, at least.
<daurnimator> gonz_: indeed. eventually you want to be stable. though maybe not always: if you can provide e.g. an upgrade tool as go/rust have
<daurnimator> though really, stability pretty much becomes a requirement as soon as you have multiple implementations
<daurnimator> otherwise you get different implementations having different subsets.
thm has left #zig [#zig]
<andrewrk> a couple more things in the async function rewrite left to do and I'll have all the behavior tests passing
<andrewrk> then it'll be the true test: reviving std.event.Loop
<daurnimator> andrewrk: should be able to merge the branch though before std.event.Loop is fixed though?
<daurnimator> andrewrk: FWIW I've got it on my radar to replace std.event.Loop with my own concepts....
<andrewrk> in my mind the main use case driving async functions is std.event.Loop
<andrewrk> so I'm definitely going to do it as a proof of concept before merging
<andrewrk> I'm curious what your issues with std.event.Loop are
<daurnimator> andrewrk: so a frame pointer is usize, right? and you can `resume framepointer`?
<andrewrk> you're asking if it's a fat pointer or not?
<andrewrk> it's not a fat pointer, you can do @ptrToInt() on an `anyframe`
<andrewrk> and yeah you can resume it
<andrewrk> if you want to await it though you need an `anyframe->T`
<daurnimator> andrewrk: okay cool. that lets me know what to store in e.g. the uring extra field or the epoll udata field
<daurnimator> https://github.com/ziglang/zig/blob/30466bccefedd5e795b72b422f98b8a58e786289/std/os/bits/linux.zig#L1125-L1126 <-- if we store an anyframe in there then we can get the result from the kernel and resume the correct coroutine.
<andrewrk> ah ok this is for a better solution to the file system than a dedicated thread
<daurnimator> andrewrk: also sockets (soon)
<andrewrk> yeah so the idea is that the low level function, e.g. read() or whatever, it does the syscall, but if it gets EAGAIN, then it does this: suspend { give_the_kernel_my_pointer(@frame()); }
<andrewrk> and the other code does resume on that. and that's it. now async/await works everywhere
<daurnimator> andrewrk: with uring you don't try the read first -> you go directly to the give_the_kernel_my_pointer
<daurnimator> but yes, that is how epoll would work
<andrewrk> https://github.com/ziglang/zig/issues/1907 will help your use case too, because the code would be able to check if the uring API was available
<andrewrk> I thought the whole point of uring is that you can do some I/O without syscalls
<daurnimator> andrewrk: yes that's correct -> you have a circular buffer of operations to do, you append and the kernel reads.
<daurnimator> but unless you use a rare (requires extra permissions) mode; you still have to do one syscall to 'step' the loop
<daurnimator> so you can e.g. queue up 100 operations: some reads, some writes, whatever, and then submit with one syscall
<daurnimator> andrewrk: my intention is that you would write different "backends" for loops. we'd have a uring one, an epoll one, a select() one. -> for most programs, you'd try and do the uring syscall, and if not available fall back to epoll, if not available fall back to select().
<daurnimator> (this picking a fall-back procedure would happen once on program start up)
<andrewrk> epoll was added in linux 2.5.44 which is well below the minimum supported linux version which is 3.16
<daurnimator> yeah but IIRC e.g. linux-on-windows doesn't support epoll?
<daurnimator> select() is also just a really old API, so it's a good fallback across lots of operating systems.
kristoff_it has joined #zig
<andrewrk> if linux-on-windows isn't identical to actual linux in terms of ABI then it should be a distinct target
<andrewrk> with the windows version additionally being part of the target
<daurnimator> andrewrk: except the whole point of it from the windows side is binary-compatibility
<andrewrk> if that's the case then it's not a valid argument to say that epoll isn't available. it can't be both ways
<gonz_> WSL2 will have a whole linux kernel shipped with Windows
<daurnimator> that argument is "above my paygrade" the pragmatic solution is to fall back to select()/poll().
<gonz_> Including all syscalls, as far as I understand
<daurnimator> gonz_: tis.
squeek502 has quit [Ping timeout: 268 seconds]
<andrewrk> good night
kristoff_it has quit [Remote host closed the connection]
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
laaron has joined #zig
Ichorio has joined #zig
<daurnimator> inline defer isn't a thing is it..... `if (a) defer a.deinit()`
<daurnimator> gotta be `defer { if (a) a.deinit() }`?
<daurnimator> ooo interesting possible idiom: if you have a !? and you want a ?: `x catch null`
<daurnimator> huh... "Terminator found in the middle of a basic block!" never had that error before
batok has joined #zig
bnbn has quit [Quit: leaving]
squeek502 has joined #zig
_whitelogger has joined #zig
commande1 is now known as commander
ntgg has joined #zig
autodidaddict has joined #zig
ntgg has quit [Ping timeout: 272 seconds]
return0e has quit [Ping timeout: 245 seconds]
porky11 has quit [Ping timeout: 250 seconds]
<daurnimator> scientes: I guess after he melts into the pot of iron he does get stuck in the middle of a basic block.... :P
porky11 has joined #zig
return0e has joined #zig
Ichorio has quit [Ping timeout: 250 seconds]
darithorn has joined #zig
batok has quit [Remote host closed the connection]
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
laaron has joined #zig
batok has joined #zig
samtebbs has joined #zig
Cadey has quit [Ping timeout: 276 seconds]
Cadey has joined #zig
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
laaron has joined #zig
nairou has joined #zig
nairou has quit [Read error: Connection reset by peer]
nairou_ has joined #zig
nairou_ has quit [Read error: Connection reset by peer]
nairou has joined #zig
<fengb> Hey I'm seeing defer capture a copy of the variable. Is that desired?
NI33_ has quit [Ping timeout: 258 seconds]
<fengb> Oh wait it's something else
<fengb> Is there a "noerrdefer" keyword?
lqd has quit [Quit: Connection closed for inactivity]
halosghost has joined #zig
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
laaron has joined #zig
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
laaron has joined #zig
Tetralux has joined #zig
<samtebbs> fengb: What would it do?
<fengb> Only run if there's no error
<fengb> Not a big deal. I just worked around it
NI33_ has joined #zig
<fengb> Vague thought: what if we attach an enum to the defer keyword? defer(.err), defer(.noerr)
<samtebbs> Hmm, doesn't `defer` do that though? Not sure as I've never used it
<samtebbs> Scratch that :p
<fengb> It's an edge case where I only want to defer after the line that errors... but the logic needs to run before it
<fengb> But I wonder if it's more natural to standardize around different scopes of deferrable
allan0 has quit [Quit: no]
<samtebbs> That would match what's going on with the calling convention enum
<samtebbs> The problem is that it may look like a function call
allan0 has joined #zig
<fengb> I was thinking it could match if(), while(), etc.
nairou has quit [Ping timeout: 245 seconds]
<fengb> I'm also shooting from the hip because of my 1 usecase. I've no idea if this is generally useful
nairou has joined #zig
<scientes> fengb, annonymous functions should fit that use case, right?
<fengb> Nope. I'm already deferring a block
<fengb> Actually this wouldn't help me since I needed to reference an out of scope variable anyway
lunamn has quit [Ping timeout: 272 seconds]
lunamn has joined #zig
samtebbs has quit [Quit: leaving]
SimonNa has joined #zig
<daurnimator> andrewrk: is there some weird workaround happening here? https://github.com/ziglang/zig/blob/8aa87ec441c13ce590dc5a9f48aab638326c8b67/std/debug.zig#L1048
<daurnimator> also, in gdb, how do you call an function that can error?
nairou_ has joined #zig
<andrewrk> daurnimator, those are global variables that are only accessible from within that function. that's all the S= struct thing is
<andrewrk> it should be able to be called the same way
<nrdmn> daurnimator: I replaced some integer bit fields with structs as you suggested. Feel free to test it ;) I don't have much time in the next few days unfortunately
<daurnimator> andrewrk: `p self.seekToFn(self, pos)` failed with: `Invalid data type for function to be called.`
batok has quit [Remote host closed the connection]
<andrewrk> interesting
nairou has quit [Ping timeout: 246 seconds]
<andrewrk> maybe the debug info is whack
<daurnimator> `p self.seekToFn` gave me `$3 = (enum anyerror (**)(struct builtin.StackTrace *, struct std.io.seekable_stream.SeekableStream(anyerror,anyerror) *, u64)) 0xaaaaaaaaaaaaaaaa`
<daurnimator> which I eventually saw was undefined
<daurnimator> but I was curious why gdb failed with "Invalid data type for function to be called."
<daurnimator> I also haven't figured out *why* its undefined yet :P
<andrewrk> ohh yeah you didn't give the correct number of args because of the stack trace
<andrewrk> that's interesting, it might be worth coming up with a way to do that for debugging purposes
<daurnimator> andrewrk: sent my WIP for this issue as #3014
<daurnimator> I need to head to bed
<andrewrk> daurnimator, nice. is this related to https://github.com/ziglang/zig/issues/398 ?
<daurnimator> andrewrk: no. its just a part of #2300 that I realised wouldn't be too hard to do as I worked on #2458
<andrewrk> ah nice
<andrewrk> good night
<daurnimator> btw, CI on #3005 just passed :)
<andrewrk> nice work
<daurnimator> There's still a few memory leaks in there.... and an fd leak. But I think they mostly should wait for a refactor of SeekableStream.... that interface is so weird.
nairou_ has quit [Read error: Connection reset by peer]
nairou has joined #zig
<daurnimator> (no leaks that I've added: ones that have been there all along)
ntgg has joined #zig
gamester has joined #zig
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
kristoff_it has joined #zig
laaron has joined #zig
Akuli has joined #zig
<gamester> The root file of a package contains the package's public interface. The standard library uses its public interface internally as well by importing std. For non-public things are relative imports used? Is a root file used for executables, or rare elative imports used?
wootehfoot has joined #zig
kristoff_it has quit [Ping timeout: 268 seconds]
<andrewrk> gamester, file paths in @import are relative to the current file
<gamester> andrewrk: Yes but how should a program (not library) be designed? Just import the file that's needed like in C/C++?
<andrewrk> yeah that's what I would do
<andrewrk> my app would probably be split into packages anyway
ntgg has quit [Ping timeout: 244 seconds]
Tetralux has quit [Ping timeout: 258 seconds]
kristoff_it has joined #zig
tines9 has quit [Ping timeout: 245 seconds]
tines9 has joined #zig
Tetralux has joined #zig
kristoff_it has quit [Remote host closed the connection]
laaron has quit [Quit: ZNC 1.7.1 - https://znc.in]
laaron has joined #zig
kristoff_it has joined #zig
<scientes> I'm really tired of gdb and lldb not understanding variables that are in registers
<scientes> and clang and zig working around that
<andrewrk> scientes, dwarf has a way to specify variables that are in registers and I'm fairly certain gdb supports them
<andrewrk> there may be more to this story than you're seeing
<scientes> yes, good point
kristoff_it has quit [Ping timeout: 248 seconds]
<nairou> I was actually wondering something similar to gamester's question. When looking at existing projects containing multiple sources files, and how they are organized, I see some cases where multiple files are added to the build.zig, and some cases where only the main source file containing the entry point is specified in build.zig, with the other files being used only via import. Is there much of a difference between the two? In theory, the entry point is the only
<nairou> part of a project that isn't used by some other part of the project, so would that mean you almost never need to add more than the main file to build.zig? Or am I missing something?
<andrewrk> nairou, start with only one file in build.zig, and only make it more complex if there's a reason to. if you point me to the specific examples I can probably explain them
<nairou> So different from what I'm used to with C/C++, but so much nicer. I'll find that example that specified multiple files.
<euantor> andrewrk: Quick question about os.getrandom() (again ;)), on Windows it uses RtlGenRandom which is defined as taking a `ULONG` in Windows, which is 32 bit unsigned, but we pass in a `usize` - am I right in thinking that `usize` would be 64 bit on a 64 bit platform? If so, that will need handled and I'll open another issue
kristoff_it has joined #zig
<andrewrk> euantor, that's right - looks like I made a mistake when declaring the extern function, in std/os/windows/advapi32.zig it has the type usize but it should be ULONG
<euantor> no problem, will open an issue and look at fixing that
<andrewrk> I wonder if there is an NtDll api for getting random bytes
<andrewrk> oh! I learned how to find this out
dimenus has joined #zig
<dimenus> andrewrk: wow, you've been making a lot of progress on coroutines
<andrewrk> dimenus, yeah! It's been going really well. I'm pleased with how the semantics are turning out
kristoff_it has quit [Ping timeout: 244 seconds]
<euantor> There seem to be a lot of slightly different ways of getting random bytes on Windows
<euantor> RtlGenRandom seems to be the most commonly used when looking at projects like lib sodium and the Rust rand crate
laaron has quit [Remote host closed the connection]
laaron has joined #zig
<andrewrk> procmon shows nothing for RtlGenRandom
<andrewrk> maybe it's actually in NtDll, not advapi32, because that's usually what the Rtl prefix means
<dimenus> RtlGenRandom is not really named RtlGenRandom
<dimenus> This function has no associated import library. This function is available as a resource named SystemFunction036 in Advapi32.dll.
<dimenus> Do you need crypto random or just "random enough"
<andrewrk> crypto
Akuli has quit [Quit: Leaving]
<andrewrk> dimenus, btw I've settled on the nomenclature
<andrewrk> I'm going to stop calling this "coroutines" and start calling it "async functions"
<dimenus> more people will know what that means :P
<andrewrk> because that's really what it is. it's a function that can be started and finished in separate locations
<andrewrk> for normal functions, the start and finish is the same: at the callsite
kristoff_it has joined #zig
<dimenus> @euantor
gamester has quit [Quit: Leaving]
<euantor> Unfortunately that has a much wider API
<andrewrk> why is the api so complicated, the function should be simply: generateCryptographicallyRandomBytes(buffer: []u8)
<euantor> You have to open a provider, then use that provider to get your bytes, then close the provider
<euantor> And if I remember correctly it's Vista+. I'm not sure on Zig's supported Windows versions though so that might not be a problem
<dimenus> i'm actually not opposed to having a verbose api available
<dimenus> just provide a higher level one
<andrewrk> windows 7+
Tetralux has quit [Ping timeout: 246 seconds]
<euantor> Ah, I was looking for that table a couple of days back but couldn't find it. Should have thought to check the website rather than just the repository
kristoff_it has quit [Ping timeout: 268 seconds]
<fengb> Maybe it's just the JS in me, but I've always associated "coroutine" with the actual data structure backing and "async" with syntax sugar
<andrewrk> many people hear "coroutines" and think "user-level threads with their own stacks" (e.g. goroutines)
<andrewrk> I believe "async functions" will be the best way to communicate how it actually works
<dimenus> sigh, my zig build on windows is complaining about atomicRmw being an invalid builtin
<andrewrk> dimenus, we had CryptGenRandom but improved it to RtlGenRandom
<dimenus> even though it's clearly in the source
<dimenus> and the std lib
<dimenus> andrewrk: MS doesn't guarantee the availablity of RtlGenRandom
<andrewrk> their hands are tied though, they'd break so many applications
<andrewrk> they're never going to take it away
<andrewrk> it's like J-walking when there are already 20 ppl in the street
<fengb> Ah okay, I've only worked with stackless coroutines in the past. And JS variant isn't even real coroutines but maybe that shouldn't be the biggest driver
<euantor> yeah, OpenSSL uses it, and libsodium uses it. Both of those are used quite heavily and would just break
<andrewrk> dimenus, also the docs for CryptGenRandom says Important This API is deprecated. New and existing software should start using Cryptography Next Generation APIs. Microsoft may remove this API in future releases.
<dimenus> yeah, which is why i mentioned the next gen one first
<andrewrk> IMO RtlGenRandom is fine
<dimenus> and it is simpler
<dimenus> (RtlGenRandom I mean)
<nairou> Noob question: Why go to the OS for a random number when you could use something like PCG and know it's crypto regardless of platform.
<fengb> We should have zigroutines
<andrewrk> nairou, for the seed
<andrewrk> it's a good question, with a strong answer
<andrewrk> fengb, *groan*
<dimenus> do we not have CI for the msvc toolchain?
kristoff_it has joined #zig
<andrewrk> dimenus, you can click the x or check in the commits and see all the ci jobs
<dimenus> oh i was just confused because it's invoking bash
<scientes> oh RLY, so MSFT gave up on their hate for GPL?
kristoff_it has quit [Ping timeout: 248 seconds]
porky11 has quit [Ping timeout: 250 seconds]
<dimenus> i keep getting the equivalent of this issue: https://github.com/ziglang/zig/issues/2740
<dimenus> but only for one builtin
<dimenus> and the builtin exists in both codegen.cpp and ir.cpp
<gonz_> Disliking GPL isn't really unique to Microsoft. It wouldn't be a stretch to say that most companies don't want to deal with it.
<gonz_> A lot of companies are pretty confused when it comes to licensing as well. When I was working at Creative Assembly we were told that GPL'd libraries aren't going to be approved for use and anything with a weak copyleft license is basically going to go straight through if it provides value.
<gonz_> That, as far as I know, came straight from SEGA lawyers.
porky11 has joined #zig
<fengb> Apple was fine with GPL2 and refuses to touch GPL3 with a 10 foot pole
<scientes> a 5280 foot pole
<scientes> hell, we wouldn't have llvm (and zig) is that wasn't the case
<dimenus> but it builds fine on mingw64 o.0
<dimenus> this is so strange
nairou_ has joined #zig
andersfr has joined #zig
andersfr has quit [Client Quit]
nairou has quit [Ping timeout: 268 seconds]
porky11 has quit [Ping timeout: 264 seconds]
porky11 has joined #zig
marijnfs has joined #zig
kristoff_it has joined #zig
kristoff_it has quit [Ping timeout: 258 seconds]
wootehfoot has quit [Read error: Connection reset by peer]
marijnfs has quit [Ping timeout: 252 seconds]
marijnfs has joined #zig
kristoff_it has joined #zig
nairou_ has quit [Read error: Connection reset by peer]
nairou has joined #zig
kristoff_it has quit [Ping timeout: 272 seconds]
Tetralux has joined #zig
kristoff_it has joined #zig
marijnfs has quit [Quit: WeeChat 2.4]
halosghost has quit [Quit: WeeChat 2.5]
kristoff_it has quit [Ping timeout: 248 seconds]
dimenus has quit [Quit: Leaving]
ltriant has joined #zig
nairou has quit [Quit: Quit]
nairou has joined #zig
kristoff_it has joined #zig
batok has joined #zig
kristoff_it has quit [Ping timeout: 248 seconds]
porky11 has quit [Ping timeout: 264 seconds]
<AlexMax> What the heck does "use" do?
<AlexMax> I think I saw some code that did use @cImport({ // etc...
<nairou> Doesn't it dump the import contents into the global namespace?
<AlexMax> Use is such a common word that searching it in the docs is fraught with peril
kristoff_it has joined #zig
<scientes> AlexMax, yeah it imports all the symbols into the current namespace
kristoff_it has quit [Ping timeout: 248 seconds]
<fengb> It’s been renamed to usingnamespace
<hryx> AlexMax: `use` has been replaced with `usingnamespace` on master
<hryx> oh jinx
<fengb> Currently both work but use will be removed by 1.0
nairou has quit [Remote host closed the connection]
nairou has joined #zig
<scientes> yeah we need to ask for the most recent glibc symbol
<scientes> the compat functions suck
<scientes> Unable to hash /home/shawn/git/zig-simd/build/lib/zig/libc/musl/src/signal/sigaddset.c: file system error