ChanServ changed the topic of #zig to: zig programming language | ziglang.org | be excellent to each other | channel logs: https://irclog.whitequark.org/zig/
noonien has quit [Quit: Connection closed for inactivity]
c15ade4 has quit [Quit: WeeChat 2.0]
davr0s has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
hoppetosse has quit [Ping timeout: 265 seconds]
<andrewrk> I pushed some breaking changes to the std lib. most updates can be done by appending `Alloc` to get the previous semantics. the good news is that many functions such as File.openRead and File.openWrite no longer can fail with OutOfMemory and no longer require an allocator
<scientes> I saw that
<Dirkson> andrewrk, to repeat something I asked while you were gone: How much tool support is considered acceptable for being able to write and maintain zig? Like, with C the minimum viable tool support is mainly "a text editor and a compiler". But if we end up doing implicit typing for both function arguments and function return,s it will more or less require the text editor to be able to find all libraries and
<Dirkson> understand all zig code in order to maintain non-trivial zig code.
<Dirkson> And also, welcome back! I hope your vacation-ey thing was wonderful.
mnoronha has joined #zig
mnoronha has quit [Ping timeout: 240 seconds]
mnoronha has joined #zig
<andrewrk> thanks Dirkson
<andrewrk> I think the answer to that question is subjective, but, did you hear my brainstormed ideas for a compiler repl?
<Dirkson> I didn't, no.
<Dirkson> Oh, now that I google 'repl', perhaps you did mention a few items to me.
cantsin has quit [Ping timeout: 276 seconds]
c15ade4 has joined #zig
mnoronha has quit [Ping timeout: 264 seconds]
<andrewrk> Dirkson, I'll elaborate in a bit, after dinner
<scientes> isn't it 11PM in NYC?
<scientes> 10*
mnoronha has joined #zig
mnoronha has quit [Ping timeout: 240 seconds]
mnoronha has joined #zig
<andrewrk> sounds about right. it's 11:52pm now
<Dirkson> Okie dokie. No rush - I'm perfectly fine with async.
ESphynx has joined #zig
<ESphynx> andrewrk: are you coming to FOSSCON? :)
<andrewrk> ESphynx, interesting, that's just a few hours train ride from me
<andrewrk> if I knew about it more in advance I'd seriously consideri t
<ESphynx> redj: why didnt' you tell him earlier?
<ESphynx> andrewrk: you can make it :) come on :)
<ESphynx> andrewrk: ESR will be giving a talk about the Obsolescence of C and what comes next
<ESphynx> andrewrk: So you and me will be fighting about whether it will be eC or Zig ;P
<c15ade4> eC?
<andrewrk> ESphynx, esr thinks it's Go, and we flat out disagree on the fundamental principles of what makes software high quality
<redj> ESphynx: I lurk in here and look at the progress a little be but I don't have much time to spend on zig...
<andrewrk> he said he doesn't care about Windows, and it's not worth it to care about Out Of Memory, etc
<andrewrk> redj, I don't blame you, before 1.0.0
<andrewrk> before 1.0.0 means you're part of the development process, rather than just a happy user
<redj> andrewrk: but I am curious about the development process and the design decisions for sure
<ESphynx> andrewrk: so we'll have 3 strong contenders then :P and surely someone else in the room will think it's Rust :)
kristate has joined #zig
<c15ade4> god, i hate c++ style OO so much, and that is the first thing i see on eC site
<ESphynx> c15ade4: well, it is only loosely inspired from the 'sane' part of C++ :P
<redj> c15ade4: I don't think many zig-liking people will like eC... I could be wrong
reductum has joined #zig
kristate has quit [Ping timeout: 264 seconds]
kristate has joined #zig
\u is now known as meowray
davr0s has joined #zig
kristate_ has joined #zig
kristate has quit [Ping timeout: 276 seconds]
kristate_ has quit [Ping timeout: 265 seconds]
mnoronha has quit [Ping timeout: 240 seconds]
kristate has joined #zig
adrusi has quit [Ping timeout: 244 seconds]
davr0s has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
kristate has quit [Ping timeout: 255 seconds]
davr0s has joined #zig
jethro_n has joined #zig
kristate has joined #zig
adrusi has joined #zig
kristate has quit [Remote host closed the connection]
kristate has joined #zig
kristate has quit [Remote host closed the connection]
kristate has joined #zig
jethro_n is now known as jethron
reductum has quit [Quit: WeeChat 2.2]
commander has joined #zig
jethron has quit [Quit: Leaving]
davr0s has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
kristate has quit [Ping timeout: 265 seconds]
qazo has joined #zig
davr0s has joined #zig
kristate has joined #zig
kristate has quit [Remote host closed the connection]
kristate has joined #zig
kristate has quit [Remote host closed the connection]
kristate has joined #zig
kristate has quit [Ping timeout: 272 seconds]
kristate has joined #zig
kristate has quit [Remote host closed the connection]
tracernz has joined #zig
very-mediocre has joined #zig
davr0s has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
davr0s has joined #zig
bheads has joined #zig
davr0s has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jeromegn has joined #zig
noonien has joined #zig
DutchGh0st has joined #zig
<DutchGh0st> can you compare types?
<DutchGh0st> in such a way that for example a u8 would be smaller than a u9 or u10 and so on
Hejsil has joined #zig
<Hejsil> DutchGh0st, do you want to only sort int types? If so, then you can do T1.bit_count < T2.bit_count
<Hejsil> Idk how you would order all types
<DutchGh0st> well here's
<DutchGh0st> welp
<DutchGh0st> here's the thing,
<DutchGh0st> I tried to make a 'digits10' function, returning how many digits a base 10 number has
<DutchGh0st> it looks like this: https://pastebin.com/aWgsRcCq
<DutchGh0st> butt if you pass a 'u8', it fails to compile, telling that 10000 is outside the range of a u8
<DutchGh0st> which is truee
<DutchGh0st> so I wondered if you could make a version that based on the type passed in, calls the right function that does not exceed the types max value, if you know what I mean
<Hejsil> Have you looked at inline loops?
<Hejsil> Actually, no need for that
<DutchGh0st> this works with comptime called from the outside :)
<Hejsil> Wouldn't something like this be good? http://termbin.com/eqa5
<DutchGh0st> so thats cool
<DutchGh0st> mhhh
<Hejsil> Do you need the "loop unrolling" that you have in your code? :)
<DutchGh0st> your function multiplies 5 times if there's 5 digits in the number
<Hejsil> I assume that the optimizer is smart
<DutchGh0st> and I wonder how this would work out with the instruction level parallelism
<Hejsil> It that is not the case, I could use an inline loop to remove the runtime mult
<DutchGh0st> is there not like a 'comptime if', but then the branch take is not comptime?
<Hejsil> You can do this to: http://termbin.com/k76x
<Hejsil> inline loops are unrolled at comptime
<Hejsil> In my inline loop example, digit10(u8, n) would compile to http://termbin.com/jmeu
<DutchGh0st> would it also work if you receive from a tcp connection or something?
<Hejsil> Yes, n is still only runtime known
<DutchGh0st> no way hahaha
<DutchGh0st> so it compiles down to a long list of if's
<Hejsil> Yes
<DutchGh0st> damn
<DutchGh0st> thats clever
<Hejsil> inline loops are really cool
<DutchGh0st> thats something I had not thought about actually
<DutchGh0st> I watched 'fastware', a talk Andrei Alexandrescu gave a few times, and he showed this digits10 function, and the speedup versus the digits10 version you 'normally' would write, which devides by 10, and adds 1 to the result on each iteration
<DutchGh0st> he got like a 2x speedup
<Hejsil> Make sense, if the compiler is not able to unroll the loop good enough
<DutchGh0st> but this inline while loop, wow
<DutchGh0st> its basically metaprogramming in a way, because (in this case) it just compiles down to a list of if's, and covering all cases
<Hejsil> It's a way of generating code (in a way)
<Hejsil> You can iterate over an array of types with inline loops
<DutchGh0st> in a way it's nicer
<DutchGh0st> because the function I wrote doesnt work for ... 9 bit? integers or integer types with less bits
<DutchGh0st> your function does:D
<DutchGh0st> the 'base' ?
<Hejsil> You know, base 10, base 8, base 2
<Hejsil> of decimal, octal and binary
<DutchGh0st> Ohh
<DutchGh0st> wait
<DutchGh0st> this does mean you could make a table based atoi() function, that also take a base
<DutchGh0st> you'd call it like atoi(u64, 10, "1000") or something, you want to make a u64 in base 10, out of the string "1000"
<DutchGh0st> yeah but ParseUnsigned is not optimized
<DutchGh0st> Im sure its plenty fast, but using a different technique it might even be faster :)
<DutchGh0st> if you make a constant table, that has all the powers of the base, up to the max power of the base (for u64, with base 10, you'd have a 1 with 20 zero's, the next element of the table is a 1 with 19 zero's...)
<DutchGh0st> than place yourself at table.len - to_parse.len,
<DutchGh0st> for every byte in to_parse, subtract 48, let if overflow if it does
<DutchGh0st> compare if after subtraction the value is less than 10,
<DutchGh0st> well
<DutchGh0st> greater than 9
<DutchGh0st> if that is false, return an error
<DutchGh0st> otherwise multiply the value you have with the place of the table, and add that to the result
<DutchGh0st> and then increment the place of the table by one,
<DutchGh0st> if you can read a bit of Rust, this is what I mean: https://github.com/DutchGhost/byte-num/blob/master/src/convert.rs#L180
<Hejsil> Didn't read it too carefully, but I see at lot of unrolling and rables. All of this could be generated in Zig :)
<DutchGh0st> yeahhhh
<Hejsil> Well, I'm sure there is room for small optimizations in std :)
very-mediocre has quit [Ping timeout: 252 seconds]
Hejsil has quit [Ping timeout: 252 seconds]
<DutchGh0st> Ill try and make something :)
<DutchGh0st> its safe iterating over an array that is 'undefined', right?
<DutchGh0st> error: integer value 000000000000000000001 cannot be implicitly casted to type 'u64'
<DutchGh0st> what does that mean?
Hejsil has joined #zig
<Hejsil> The 000000000000000000001 is probably a bigint bug in Zig
<Hejsil> As long as you don't use the undefined values inside the loop, then it should be fine
<DutchGh0st> ohhmygoodlord
<DutchGh0st> why didnt they just make the ascii table to be 48 equals '0', and 58 equals 'A'....
<DutchGh0st> and so on..
qazo has quit [Ping timeout: 244 seconds]
SimonNa has joined #zig
<MajorLag> I really don't think I should have to explicitly tell the compiler to call `fn(type)bool` at comptime to get it to stop pretending everything it is passed is the same type.
<DutchGh0st> can just sub with overflow without caring you overflowed?
<MajorLag> _ = subWithOverflow?
<DutchGh0st> but that sets a bool if it overflowed
<DutchGh0st> while I dont care about that
<MajorLag> what behavior are you looking for? On overflow, let it wrap? there are operators for that: `a -% b`
<DutchGh0st> Im parsing bytes to numbers
<DutchGh0st> but lets say, 47 in ascii...
<DutchGh0st> subtract 48, and I want to end with 255
<DutchGh0st> wraparound
mnoronha has joined #zig
<MajorLag> then you want the `%<op>` operators.
cantsin has joined #zig
hoppetosse has joined #zig
<DutchGh0st> thats what I came up with
<DutchGh0st> it does not skip whitespaces or anything, and currently only handles unsigned,
<DutchGh0st> and Im not happy how I unrolled it, is there a better way?
DutchGh0st has quit [Ping timeout: 252 seconds]
mnoronha has quit [Ping timeout: 264 seconds]
shodan45 has joined #zig
mnoronha has joined #zig
kristate has joined #zig
qazo has joined #zig
<kristate> scientes: you online?
qazo has quit [Ping timeout: 260 seconds]
mnoronha has quit [Ping timeout: 272 seconds]
mnoronha has joined #zig
<andrewrk> hoppetosse, I'm looking at your PR
mnoronha has quit [Ping timeout: 264 seconds]
ESphynx has quit [*.net *.split]
unique_id has quit [*.net *.split]
scientes has quit [*.net *.split]
allan0 has quit [*.net *.split]
<hoppetosse> andrewrk: just saw it go in, cheers XD
<hoppetosse> Do you have any thoughts on what's causing #1277?
unique_id has joined #zig
<hoppetosse> and do you think it's related to #1178?
<andrewrk> I'll have a look at 1277 right now
DutchGh0st has joined #zig
<hoppetosse> since more data always helps: compilation only fails in linux, not windows
<DutchGh0st> how would I do a better unroll of this?: https://pastebin.com/yEVwWjkB
<hoppetosse> and I'm pretty sure the error appears once for each function that has a param of type ?fn
<andrewrk> DutchGh0st, read through this section: https://ziglang.org/documentation/master/#comptime
<andrewrk> particularly the example of implementing printf in zig
<andrewrk> hoppetosse, I'm debugging the issue now, thanks!
<hoppetosse> thank you too XD
<andrewrk> hoppetosse, hmm this actually seems like an LLVM bug, but maybe we can work around it
<andrewrk> it says about @0 "Global is external" but @0 is defined like this: @0 = internal unnamed_addr constant void ()*, align 8
<andrewrk> I think we should just not generate the global since we don't reference it
<andrewrk> ("it's a bug in llvm" is not an excuse; llvm bugs are zig bugs)
<hoppetosse> The bug also happens when the fn in at the top level
<hoppetosse> would that be a problem if it's a pub/extern var?
<hoppetosse> well, not pub
<unique_id> Hey andrewrk, I don't know how to word this but... I've made a temporary but sad decision to continue with my C++ codebase :( The reason is stupid. I have a lot of code to write and what keeps me going is the live feedback of IDE-like features. For C/C++ I use YouCompleteMe. I have a stupid habit of writing a lot of code between compiles and that only works well when given IDE-like instant feedback on errors. Since this is
<unique_id> obviously lacking for Zig given how new it is + needing to instantiate code to get compile errors, I lose the cruise control feeling I had with C/C++.
<andrewrk> unique_id, I think that is a completely reasonable decision given where zig is in its maturity
<andrewrk> loved having you while you tried it out :)
<unique_id> This is of course entirely my fault as I'm jumping into a language in its early stages and being stubborn with the way I write code
<andrewrk> this is one reason that I'm making the self hosted compiler long-lived with a powerful query interface
<andrewrk> it should make integrations with IDE really nice
<andrewrk> the compiler essentially will be doing most of the work of an IDE, and the IDE can go back to being pretty much a text editor + a client of the compiler server
<unique_id> yeah I'm definitely excited for the self hosted compiler
<andrewrk> hoppetosse, to answer your question, I'm pretty sure #1178 is a separate issue
<DutchGh0st> mhh, and empty 'inline for (slice) |element| {}' does not seem to work in my case
<hoppetosse> andrewrk: I was trying to debug #1178 hoping it was related... all I got was that gdb recognized the optional as true or false, never null
<hoppetosse> presumably because 0 = false = null in c
<andrewrk> hoppetosse, I think that has to do with the way we represent the debug info in dwarf
<andrewrk> if it's a ?*T then it should appear the same as a pointer does in C, so that is indeed an indication of some bug if it says true/false
<hoppetosse> but if it's an empty struct, it has zero bits, and somewhere in codegen doesn't generate the pointer to a size-0 struct
<hoppetosse> I think it just doesn't generate the field because it thinks it wont be pointing at anything
<hoppetosse> at least on my gdb it was skipping straight over anything I tried to do with the empty struct, which I assumed meant nothing was being generated
<hoppetosse> in the case of optional pointers to empty structs, we need to at least store a bool/byte/bit somewhere, but it would probably make more sense to gen a usize
<hoppetosse> am I making sense/on the right track or am I just spouting nonsense? =P
<andrewrk> yeah you're on the right track
<andrewrk> I think the codegen doesn't agree with itself somewhere
bheads has quit [Quit: Leaving]
<andrewrk> hoppetosse, I think you used ir_resolve_ptr_of_array_to_slice instead of ir_resolve_ptr_of_array_to_unknown_len_ptr on accident
<andrewrk> no worries, I'm pushing the fix now
<DutchGh0st> mhh, so if I understand correctly, an inline for loop gets runned at compiletime?
<DutchGh0st> and same goes for inline while
<andrewrk> DutchGh0st, that's correct
<andrewrk> so then the iteration variables become comptime known
<andrewrk> that's the important part
<DutchGh0st> yeahh
<DutchGh0st> but that that only is possible on known slices and arrays, which I dont have in my case
<DutchGh0st> but thats okey
<andrewrk> hoppetosse, I have a fix for 1277 - just running the tests locally before pushing
<DutchGh0st> I wonder how I can make a function that takes a type parameter, and returns an array such that it contains powers of 10 up till the max power of 10 of that integer type
<andrewrk> I bet it's possible
<andrewrk> you might have to duplicate some logic because we don't have inferred return types, so you'll have to calculate the N part of the [N]T return type of the function in the type expression
<DutchGh0st> yeahh
<DutchGh0st> mhh
<andrewrk> you could also have it return a slice rather than an array
<DutchGh0st> oh that works also?
<andrewrk> yeah slicing comptime const arrays is pretty safe & useful since the lifetime of the data is forever
<DutchGh0st> ohh right
<DutchGh0st> and asking for the len is also a constant operation then?
<andrewrk> if the value is comptime known, then yes
<DutchGh0st> https://pastebin.com/Mxr0qZpE , I suppose doing it with the pow10array() function it's just a little bit nicer?
<andrewrk> here's my schedule for the next 3 weeks: https://clbin.com/ehecD
<andrewrk> I'll do as much as I can, but the milestone 0.3.0 issue count will progress down those numbers, with issues being postponed to 0.4.0 if necessary
<DutchGh0st> thaats alot of issues to resolve
ft3 has joined #zig
<DutchGh0st> Hejsil:
<DutchGh0st> start with declaring that `res = 1`, and `check = base`
<kristate> Sep 12
<DutchGh0st> saves 1 if I think
<DutchGh0st> 1 `if` *
jfo has joined #zig
<Hejsil> Which is probably wrong?
<Hejsil> DutchGh0st, Hmmm. Doesn't that also fix the fact that my `digits` returns 0 when 0 is passed
<Hejsil> Well :)
<DutchGh0st> oh wait
<DutchGh0st> welp
<DutchGh0st> whyy is that wrong?
<Hejsil> Can't really write 0 without any digits
<DutchGh0st> my brain farts somethimes haha
<Hejsil> I'll get that fixed
<Hejsil> Good catch, even if it wasn't intended
<DutchGh0st> comptime var digits = 0; <--- should be set to 1
<DutchGh0st> like, you always have 1 digit
<DutchGh0st> at least 1
<Hejsil> Indeed
<DutchGh0st> and then you can do the trick I said,
<DutchGh0st> this btw is the atoi() function, unrolled like you said it could: https://github.com/DutchGhost/byteparse/blob/master/byteparse.zig
<DutchGh0st> honestly it makes me verry happy to be able to do such things
<Hejsil> Real question is
<Hejsil> Do you even need a runtime loop :)
hoppetosse has quit [Ping timeout: 252 seconds]
<DutchGh0st> for parsing stuff that you get over, lets say, the network? I think so
<DutchGh0st> or user input or whatever
<Hejsil> Well, valid input size is comptime bounded
<DutchGh0st> but you can always `comptime var foo = comptime atoi(u64, "10000")` if you wish to
<Hejsil> if table.len < buf.len, then the digit is to big for the type
<DutchGh0st> mhh, I guess
<DutchGh0st> didn't think about that one honestly
<DutchGh0st> but buf.len is only known at runtime?
<Hejsil> True, but you know that buf.len should always be <= table.len for all valid inputs
mnoronha has joined #zig
<Hejsil> Only invalid strings have buf.len > table.len
<Hejsil> Aka, they overflow
<DutchGh0st> soo insert an assert after the generation of the table?
<Hejsil> I actually have an idea for a loopless impl. But it would require a memcpy
<DutchGh0st> memcpy can be fast, if you memcpy bytes you can do 16 at a time using simd
<DutchGh0st> 32 if you have large simd registers available
<DutchGh0st> but well, with 20 bytes you already can make the max u64 value, so..
<DutchGh0st> mhh but Hejsil , adding that assert bugs me a little
<DutchGh0st> because currently, calling atoi(u8, "257") , wraps around to the value of 1
<DutchGh0st> but then atoi(u8, "2570") should error? that's weird... I suppose that should wrap around too
mnoronha has quit [Ping timeout: 260 seconds]
<DutchGh0st> but actually you are right
<MajorLag> interesting. `@bytesToSlice(T, array[0..])` returns var, but `@bytesToSlice(T, array)` returns const.
<DutchGh0st> I guess if you slice, you lose some information?
<DutchGh0st> 'lose' between quotes
<MajorLag> No, I think `array` is just being implicitly casted to `[]const` in this case.
<MajorLag> which is a rule that doesn't seem to be consistently applied.
SimonNa has quit [Remote host closed the connection]
<MajorLag> actually, it probably is consistently applied and I just didn't notice.
<andrewrk> MajorLag, I know you have quite a few bug reports filed, any that you consider the most important to you?
<Hejsil> DutchGh0st, no runtime loop! http://termbin.com/nyh7
<Hejsil> I don't even know if it's fast, lol
<andrewrk> I bet it's mostly the same
<andrewrk> there's no reason llvm couldn't figure out to do that
<Hejsil> Probably, but it was a fun exicise
<Hejsil> I'll stick to std.fmt.parseInt myself :)
<DutchGh0st> inline for ([]void{{}} ** max_digits) <--- I like this
SimonNa has joined #zig
<Hejsil> If only we had http://quick-bench.com/ for zig
<DutchGh0st> Ill try an bench tomorrow!
<Hejsil> Uuuh
<DutchGh0st> just create a large array of strings, and time how long it takes to parse all strings or something
<DutchGh0st> and omg zig on godbolt would be amazing!
<DutchGh0st> but I got to go for now :( Ill keep you updated Hejsil ! :D
<DutchGh0st> byyee!
<Hejsil> Nice
<Hejsil> To the update, that is
DutchGh0st has quit [Ping timeout: 252 seconds]
<Comstock_27> * b a n t o w n * b a n t o w n * b a n t o w n *
<Comstock_27> b b
<Comstock_27> a / \ \ / \ a
<Comstock_27> n| | \ | | n
<Comstock_27> t| `. | | : t
<Comstock_27> o` | | \| | o
<Comstock_27> w \ | / / \\\ --__ \\ : w
<Comstock_27> n \ \/ _--~~ ~--__| \ | n
<Comstock_27> * \ \_-~ ~-_\ | *
<Comstock_27> b \_ \ _.--------.______\| | b
<Comstock_27> a \ \______// _ ___ _ (_(__> \ | a
<Comstock_27> n \ . C ___) ______ (_(____> | / n
<Comstock_27> t /\ | C ____)/ \ (_____> |_/ t
<andrewrk> ugh
<Comstock_27> o / /\| C_____)BANTOWN| (___> / \ o
<andrewrk> alright putting the ban back on
<Comstock_27> w | ( _C_____)\______/ // _/ / \ w
<Comstock_27> n | \ |__ \\_________// (__/ | n
<Comstock_27> * | \ \____) `---- --' | *
<Comstock_27> b | \_ ___\ /_ _/ | b
<Comstock_27> a | / | | \ | a
<Comstock_27> n | | / \ \ | n
<Comstock_27> t | / / | | \ |t
<Comstock_27> o | / / \__/\___/ | |o
<Comstock_27> w | / / | | | |w
<Comstock_27> n | | | | | |n
<Comstock_27> * b a n t o w n * b a n t o w n * b a n t o w n *
Guest29528 has joined #zig
<andrewrk> I enabled messages from people not in the channel to re-enable github commit messages but it seems the spam isn't done. sorry about that folks
mnoronha has joined #zig
<kristate> andrewrk: no problem -- wonder if there is a way to make an exception for github....
Looking has joined #zig
<Looking> ( ( ((
<Looking> '(' .((
<Looking> ''=~(
<Looking> '?') ))) )).+
<Looking> '{'. ((( ( (
<Looking> '[' ) ) ) )^+
<Looking> ( ( '+') )
<Looking> ) .''. (
<Looking> ( ( (
<andrewrk> hmm that's not supposed to be allowed, I must have done it wrong
<Looking> ( '[') )))^ (( (
<Looking> (( ')' )))))).
<Looking> ( '`'|')' ) .
<Looking> ("\`"| '.') . (
<Looking> ( '[') ^'/') .
<Looking> '"'.('{'^ ( ( (
<Looking> ( ( ( ( ( ( (
<Looking> ( ( ( ( ( ( ( '+'))))))))))
<Looking> )) ) ) ) )) ) .( '`'|
<Looking> ( ( ( ( ( ( ( (( (
Looking was kicked from #zig by andrewrk [Looking]
<Looking> ( ( ( (( (( '%')) ) ))
<Looking> )) ) ) ))) ) ))))).+( '['^ ( ((
<Looking> ( ( ')'))) ) )) . ( '`' | ( ','
<Looking> ) ) . +( "\`"| '"' ) . ('`'|')').(
<Looking> ( (( '[')) )^+ ')' ).''.
<Looking> ("\`"| (( '$' ) )).((
<Looking> (( ( '"' ) )) )).
<Looking> ( (( '}'))
<kristate> isn't it +r ?
<Looking> ) . ')');#;
<Looking> # ;#;#; #; Perlbird
<Looking> # ; # ; # ========
<Looking> ; # ;#;# ;
<andrewrk> ah thanks. I was thinking of it like command line flags
<andrewrk> I'm just going to leave the channel modes on. no spam
<andrewrk> someone can make a github bot in zig if they want to :)
ft3 has quit [Quit: Lost terminal]
mnoronha has quit [Ping timeout: 260 seconds]
<MajorLag> andrewrk, the biggest headache right now is the compiler crashing when there are unresolved types at comptime (#1231?). The second biggest is whatever makes comptime decide that `if(trait.isSlice(T))` should always resolve to the same thing and forces me to do `if(comptime trait.isSlice(T))` or `comptime debug.assert(trait.isSlice(T))` (#906?). Perhaps #425 is enough to fix that. But that might just be because I've
<MajorLag> ptime lately trying to see how reasonable my trait proposal might be.
<andrewrk> MajorLag, thanks, I'll take a look at all those issues you just mentioned within the next week
mnoronha has joined #zig
Hejsil has quit [Ping timeout: 252 seconds]
<MajorLag> Oh, I've been meaning to ask, I thought you mentioned something about adding struct printing recently? I was going to take a look at it since I wrote my own struct printer and see if I could fill in any gaps, but I didn't see it in the latest working appveyor artifact. Maybe I'm just not looking in the right place?
kristate has quit [Ping timeout: 252 seconds]
jfo has quit [Quit: WeeChat 2.0]
kristate has joined #zig
<kristate> back online
hoppetosse has joined #zig
<hoppetosse> andrewrk: awesome, I'll try it out now
qazo has joined #zig
<hoppetosse> andrewrk: what's the difference between an enum(u8) and a packed enum(u8)?
qazo has quit [Ping timeout: 260 seconds]
qazo has joined #zig
<hoppetosse> oh! last time I looked there was nothing there, I've been a bit out of the loop
<hoppetosse> thanks =)
<kristate> hoppetosse: no problem,
<kristate> also please pin ziglang to your github if you can
<kristate> here is an example: https://github.com/kristate
<hoppetosse> sure
<kristate> thanks!
<hoppetosse> I only just added a picture, never really had much of a profile on github
<kristate> every little bit helps
qazo has quit [Ping timeout: 240 seconds]
MajorLag has quit [Ping timeout: 255 seconds]
MajorLag has joined #zig
mnoronha has quit [Ping timeout: 240 seconds]
<hoppetosse> would it be reasonable for packed enum(int_type) to be implicitly castable to its underlying type?
mnoronha has joined #zig
noonien has quit [Quit: Connection closed for inactivity]
<kristate> yes
mnoronha has quit [Ping timeout: 264 seconds]
mnoronha has joined #zig
mnoronha has quit [Ping timeout: 276 seconds]
davr0s has joined #zig