<andrewrk>
g-w1, all known deadlocks are now fixed
<g-w1>
thanks, when the next tarball comes hopefully its fixed!
<mikdusan>
hey gang, macOS question here: anyone know if we use/expect zig's os semantic versioning (ie. os.version_range.semver.min / max) where 10.16.* is expected for Big Sur? or can we simply represent Big Sur as 11.minor.patch ?
ur5us_ has joined #zig
ur5us_ has quit [Ping timeout: 260 seconds]
<andrewrk>
hi mikdusan! yep, 11.x.y is big sur
ur5us_ has joined #zig
nycex has joined #zig
r4pr0n has joined #zig
<mikdusan>
not sure if it's been mentioned but there is a caveat here. Apple in their wisdom has decided that based on SDK you build with,
<mikdusan>
that dictates what is returned by sysctl("kern.osproductversion", ...).
<mikdusan>
example: on Big Sur, I can use SDK 10.15.x or probably even older. or I can use SDK 11.x . pre 11.x SDK returns "10.16" and 11.x SDK returns "11.1"
<marler8997>
congrats on fixing the deadlock...not an easy task
a92 has quit [Quit: My presence will now cease]
Kingsquee has joined #zig
<andrewrk>
thanks
<andrewrk>
mikdusan, hmm and that's what we're using to detect the OS version?
<mikdusan>
andrewrk: yes, currently we do sysctl on MIB kern.osproductversion then fallback if that fails (ie. older releases than 10.13.6) to essentially a table using key from MIB kern.osversion. this fallback is less and less important as Zig is unlikely to run on such old versions,
waleee-cl has quit [Quit: Connection closed for inactivity]
<mikdusan>
#5125 outline that we could just quick-parse /System/Library/CoreServices/SystemVersion.plist and grab the key ProductVersion
<mikdusan>
and I'm about ready to do that now that Big Sur is forcing our hand
<mikdusan>
but boy is Apple funny how they implemented this compatibility version thing. ie: old SDK return 10.16, otherwise 11.1 or whatever; but it looks like parsing that .plist file is off the table now too. dammit apple:
<mikdusan>
and yes, a binary that is built with older SDK that opens the same file... you guessed it... it returns a compatibility version string 10.16,
<fengb>
Schrodingers OSX
<mikdusan>
I found this out the hard way because my `cat` was from macports that I built on 10.15 lol....
Kingsquee has quit []
mikdusan has quit [Quit: WeeChat 2.5]
r4pr0n has quit [Remote host closed the connection]
spiderstew_ has joined #zig
spiderstew has quit [Ping timeout: 260 seconds]
jjido has quit [Quit: Connection closed for inactivity]
<andrewrk>
cCCCCcccccCCc, idk if you saw but all known deadlock issues are now resolved
hnOsmium0001 is now known as hnOsmium0002
hnOsmium0002 is now known as hnOsmium0001
squeek502 has quit [Remote host closed the connection]
cole-h has quit [Ping timeout: 240 seconds]
<pixelherodev>
Hooray! Nice work!
dumenci has joined #zig
jjsullivan has quit [Remote host closed the connection]
<pixelherodev>
andrewrk: thanks for having a grammar already, really makes my life easier :)
squeek502 has joined #zig
<pixelherodev>
I think I might use string interning...
hnOsmium0001 has quit [Quit: Connection closed for inactivity]
leah2 has quit [Ping timeout: 264 seconds]
alexpana has joined #zig
leah2 has joined #zig
bgiannan has joined #zig
<cCCCCcccccCCc>
andrewrk: I just tested it a moment ago and hopped on to let you know it works great. Thanks for all the hard work over the holidays, you're a legend!
ifreund1 has joined #zig
dumenci has quit [Quit: Leaving]
ifreund has quit [Ping timeout: 256 seconds]
ifreund1 is now known as ifreund
m314 has joined #zig
riba has joined #zig
m314 has quit [Ping timeout: 240 seconds]
Snetry has quit [Ping timeout: 272 seconds]
cren has joined #zig
Snetry has joined #zig
cole-h has joined #zig
nycex has quit [Quit: Quit]
nycex- has joined #zig
<g-w1>
andrewrk: the deadlock is fixed!!!!!!!! time to compile all the c code! tysm
xackus has joined #zig
<protheory8-new-m>
Is there something like `std.atomic.Queue` but with a function that blocks the thread if there is no nodes in the queue?
waleee-cl has joined #zig
<protheory8-new-m>
Like a blocking `get` function or something
<companion_cube>
You can do one with a mutex and condition, if not
mtiljeset[m] has joined #zig
m314 has joined #zig
quajzen has joined #zig
marijnfs has quit [Ping timeout: 264 seconds]
quajzen has quit [Remote host closed the connection]
semarie has joined #zig
<scientes>
protheory8-new-m, you mean it is full?
<scientes>
that is a semaphore, not a mutex
<scientes>
(but they are similar)
<scientes>
or similar to go channels
<scientes>
buffered channels
l1x has quit [Quit: Connection closed for inactivity]
<protheory8-new-m>
scientes: No, I mean when there are 0 zero elements in the queue
<scientes>
go buffered channels do that too
<scientes>
and the unbuffered too...
<semarie>
hum. I need to allocate data with alignment know at runtime. but Allocator interface seems to only have alignment configurable at compile-time. any idea how to proceed ?
<scientes>
semarie, generally you would use the largest alignment
<scientes>
unless you are writing an allocator
<scientes>
semarie, because you need to compile the code for every alignment
<semarie>
I am implemention emutls. the alignment is know at runtime and the system will expect found allocated data with requested alignment
<semarie>
else, I would need to directly call posix_memalign()
<companion_cube>
scientes: no, you don't need a semaphore to implement that
swills has joined #zig
<justin_smith>
semarie: I guess the tedious but flexible approach is to @pointerCast to an array of the smallest alignment, and walk by bytes and fill? I guess this is error prone also
<justin_smith>
I might be missing something obvious
Pistahh has quit [Remote host closed the connection]
leeward has joined #zig
Pistahh has joined #zig
m314 has quit [Remote host closed the connection]
ur5us has joined #zig
gpanders has quit [Ping timeout: 265 seconds]
gpanders_ has joined #zig
hnOsmium0001 has joined #zig
ifreund1 has joined #zig
ifreund has quit [Read error: Connection reset by peer]
ifreund has joined #zig
ifreund1 has quit [Ping timeout: 240 seconds]
cren has quit [Quit: cren]
sjd has joined #zig
ur5us has quit [Ping timeout: 260 seconds]
ur5us has joined #zig
gpanders_ has quit [Read error: Connection reset by peer]
gpanders has joined #zig
cole-h has quit [Quit: Goodbye]
<oats>
if I want to compare pointers (i.e., less than, greater than, etc.) do I have to convert them to ints first?
<oats>
gotta say, I was a little disappointed I can't do comparison on [*]T pointers :P
<ikskuh>
oats, i think it's reasonable to convert to int first
<oats>
fair enough
mikdusan has joined #zig
r0bby has quit [Ping timeout: 260 seconds]
waleee-cl has quit [Ping timeout: 260 seconds]
procnto has quit [Ping timeout: 260 seconds]
dch has quit [Ping timeout: 260 seconds]
riba has quit [Ping timeout: 246 seconds]
dch has joined #zig
procnto has joined #zig
r0bby has joined #zig
waleee-cl has joined #zig
cole-h has joined #zig
cole-h has quit [Client Quit]
cole-h has joined #zig
<fengb>
Hmm... the underlying allocator implementations only receive a runtime alignment. I’m curious why the interface enforces comptime
ur5us has quit [Ping timeout: 260 seconds]
<g-w1>
I have a question about inferred error sets in stage1, on analyze.cpp:4826, in resolve_inferred_error_set, analyze_fn_body is called which calls analyze_fn_ir, which calls ir_analyze which seems to just analyze the function. where does actually returning an error type add to the error set? and am I missing something or does trying to use an inferred_error_set with resolve_inferred_error_set just
<g-w1>
analyze the function in the body to get the error set, or does it add it to some type of resolve_queue? thanks