00:00:39 | FromDiscord | <shadow.> i am moving to discord lol |
00:00:43 | * | shadowninja55 quit (Quit: Connection closed) |
00:01:00 | FromDiscord | <ElegantBeef> Fuck that shadowninja55 guy amirite? |
00:01:03 | FromGitter | <gogolxdong> ^[^#].* in vscode got correct result , but using re/rex findAll doesn't find anything. anything missing? |
00:01:06 | FromDiscord | <shadow.> dude yeah he sucks |
00:01:11 | FromDiscord | <shadow.> idk who tf he thought he was |
00:02:35 | FromDiscord | <ElegantBeef> If vscode doesnt using pcre regex it isnt a great place to test |
00:02:55 | FromDiscord | <Rika> i'm considering making a pure nim ver. of homebridge because i have nothing to do |
00:03:14 | FromDiscord | <ElegantBeef> What's it |
00:03:25 | FromDiscord | <ElegantBeef> Is it IOT shit? |
00:03:31 | FromDiscord | <ElegantBeef> Do i have to scream?! |
00:03:41 | FromDiscord | <Rika> smh |
00:04:09 | FromDiscord | <ElegantBeef> No, no go do it, i'll just be in the corner screaming |
00:04:28 | FromDiscord | <shadow.> beautiful code |
00:04:28 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DIn |
00:04:29 | FromDiscord | <shadow.> LMAO |
00:04:45 | FromDiscord | <Rika> > No, no go do it, i'll just be in the corner screamingโตill make sure you'll scream louder because of the code |
00:04:54 | FromDiscord | <shadow.> nobody can beat how bad my code is |
00:05:04 | FromDiscord | <ElegantBeef> It's fine, minus the hardcoded stuff |
00:05:20 | FromDiscord | <ElegantBeef> make a bitmap object and have a serialize proc, god damn it |
00:05:24 | FromDiscord | <Rika> yummy yummy magic numbers |
00:05:33 | FromDiscord | <shadow.> hmmm |
00:05:41 | FromDiscord | <shadow.> no |
00:05:45 | FromDiscord | <shadow.> i think not |
00:05:53 | FromDiscord | <ElegantBeef> Rika, my development today was making macros for embedding nimscript in moe, so i'm already screaming |
00:06:00 | FromDiscord | <Rika> good |
00:06:07 | FromDiscord | <shadow.> its better than me having to make the nim file.write() function in c++ |
00:06:10 | FromDiscord | <shadow.> LMAO |
00:06:11 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DIo |
00:06:23 | FromDiscord | <Rika> ugh c++ |
00:06:25 | FromDiscord | <shadow.> disgusting |
00:06:38 | FromDiscord | <shadow.> /s |
00:06:51 | FromDiscord | <Rika> /? |
00:06:53 | FromDiscord | <shadow.> idk i prefer nim now honestly bc i use to use c++ for speed and distribution but nim does both of those things fine |
00:06:54 | FromDiscord | <Rika> /s? |
00:06:59 | FromDiscord | <Rika> no way youre sarcastic |
00:07:11 | FromDiscord | <shadow.> i mean there are some nice parts of c++ |
00:07:18 | FromDiscord | <ElegantBeef> A lot of people like the readabillity of Nim, so it's not a difference of opinion |
00:07:22 | FromDiscord | <Rika> eeh... |
00:07:25 | FromDiscord | <shadow.> fair |
00:07:27 | FromDiscord | <shadow.> yeah nim is pretty nice |
00:07:39 | FromDiscord | <shadow.> it's basically python's syntax but (imo) more readable bc of function typing |
00:07:43 | FromDiscord | <shadow.> (edit) "function" => "proc" |
00:07:48 | FromDiscord | <Rika> python has typing too |
00:07:51 | FromDiscord | <Rika> but only optional lol |
00:07:56 | FromDiscord | <Rika> so basically no one uses it |
00:07:56 | FromDiscord | <shadow.> not enforced ye |
00:08:01 | FromDiscord | <shadow.> so gl finding anyone that uses it lmaoo |
00:08:03 | * | leorize quit (Ping timeout: 240 seconds) |
00:08:05 | FromDiscord | <Rika> i did |
00:08:13 | FromDiscord | <Rika> but no one else really does lmao |
00:08:18 | FromDiscord | <ElegantBeef> Speaking of, gdscript is wanting to add annotations and the like, so they're... really just making an interpreted nim |
00:08:20 | FromDiscord | <Rika> ig those at google maybe |
00:08:31 | FromDiscord | <ElegantBeef> They also added optional typing |
00:08:44 | FromDiscord | <Rika> all in or nothing smh |
00:08:48 | FromDiscord | <Rika> optional is not an option! |
00:08:52 | FromDiscord | <shadow.> i think im a bit stupid but what is nimscript? |
00:08:54 | FromDiscord | <shadow.> LMAO |
00:08:54 | FromDiscord | <ElegantBeef> I agree |
00:08:59 | FromDiscord | <shadow.> im very new to nim if you cant already tell |
00:09:02 | FromDiscord | <Rika> nimscript is nim but a script |
00:09:03 | FromDiscord | <ElegantBeef> Nimscript is the interpreted version of nim |
00:09:07 | FromDiscord | <shadow.> interpreted? |
00:09:12 | FromDiscord | <shadow.> how does it compare to compiled nim |
00:09:13 | FromDiscord | <ElegantBeef> Nim has a VM which can run code that's not compiled |
00:09:14 | FromDiscord | <Rika> yes nim has its own VM |
00:09:22 | FromDiscord | <ElegantBeef> Actually how it compiles code |
00:09:24 | FromDiscord | <Rika> its whats used when you use a macro |
00:09:34 | FromDiscord | <shadow.> can you use nimscript in a shell type environment? |
00:09:36 | FromGitter | <gogolxdong> remembered vscodes uses PCRE, has it been upgraded to PCRE2? |
00:09:36 | FromDiscord | <ElegantBeef> Yes |
00:09:39 | FromDiscord | <shadow.> like you can with py, ruby, julia, node etc |
00:09:42 | FromDiscord | <shadow.> damn thats cool |
00:09:43 | FromDiscord | <nikki> the compile-time logic you can write in nim itself (nim's version of constexpr) needs to be eval'd somehow in the compiler. that's the nim vm |
00:09:44 | FromDiscord | <Rika> pcre has a 2? |
00:09:57 | * | leorize joined #nim |
00:09:59 | FromDiscord | <Rika> `nim e` is how to eval a nimscript |
00:10:04 | FromDiscord | <nikki> or at least, that's where it came from |
00:10:05 | FromDiscord | <Rika> on the cli i mean |
00:10:05 | FromDiscord | <ElegantBeef> I've made a relatively easy to use interop so you can use nimscript to control nim compiled code |
00:10:15 | FromDiscord | <ElegantBeef> And it's glorious! ๐ |
00:10:15 | FromDiscord | <nikki> but could go anywhere, as beef is exploring ๐ |
00:10:16 | FromDiscord | <shadow.> do streams close once out of scope or do i have to manually close them before proc return |
00:10:32 | FromDiscord | <nikki> arc makes it deterministic |
00:10:34 | FromDiscord | <Rika> manually for now afaik?, in the future automatically |
00:10:39 | FromDiscord | <shadow.> ah ok |
00:10:45 | FromDiscord | <nikki> the destruction at least. i forget if they close on destruct |
00:10:49 | FromDiscord | <nikki> are you a c++head? |
00:10:53 | FromDiscord | <shadow.> python / c++ |
00:10:56 | FromDiscord | <shadow.> ik thats an oxymoron |
00:10:56 | FromDiscord | <shadow.> LMAO |
00:11:09 | FromDiscord | <shadow.> python is what i started with, c++ is what ive come to enjoy |
00:11:14 | FromDiscord | <nikki> i dove into the nuskool c++ stuff for a lil recently |
00:11:17 | FromDiscord | <ElegantBeef> I overly like how silly this commit was |
00:11:20 | FromDiscord | <nikki> there's a lot of overlap with nim |
00:11:21 | FromDiscord | <ElegantBeef> <https://github.com/beef331/moe/commit/c93c5af5b8e93dc193f130fd005078c32b9309f0> |
00:11:23 | FromDiscord | <shadow.> ye |
00:11:28 | FromDiscord | <nikki> esp w/ move semantics and arc |
00:11:33 | FromDiscord | <Rika> i started with python and moved on to nim |
00:11:34 | FromDiscord | <ElegantBeef> Replacing 400 lines of code with like 10 |
00:11:38 | FromDiscord | <nikki> i think a big deal is that you can also just metaprogram in the same lang |
00:11:52 | FromDiscord | <nikki> also the value type ness by default is a huge overlap |
00:11:54 | FromDiscord | <shadow.> nim is cool i just wish it had a sponsor / financial backing so it could grow more |
00:12:00 | FromDiscord | <nikki> eg. that's a departure from java and python |
00:12:00 | FromDiscord | <Rika> > Replacing 400 lines of code with like 10โตdoesnt sound that silly imo |
00:12:11 | FromDiscord | <nikki> @shadow. hmm it goes both ways |
00:12:18 | FromDiscord | <shadow.> i mean with more packages and support i feel like nim could easily grow past python |
00:12:19 | FromDiscord | <nikki> i like that it's growing on its own |
00:12:23 | FromDiscord | <shadow.> just bc its as simple but much faster |
00:12:30 | FromDiscord | <shadow.> and has advantages that come w compiled languages |
00:12:31 | FromDiscord | <shadow.> and static typing |
00:12:33 | FromDiscord | <ElegantBeef> Well it's silly in that it's a relatively simple code block that replaces a shit ton of copy pasta, but i was just too tired at the time of originally doing it to use it |
00:12:35 | FromDiscord | <shadow.> but thats up to opinion i suppose |
00:12:46 | FromDiscord | <nikki> well that also make evolution hardse |
00:12:49 | FromDiscord | <nikki> harder |
00:12:51 | FromDiscord | <shadow.> also is profanity allowed, bc if so id like to introduce an amazing github license |
00:13:02 | FromDiscord | <ElegantBeef> Sure as fucking shit it is |
00:13:02 | FromDiscord | <Rika> there was this f# dude who hated the type annotations |
00:13:08 | FromDiscord | <shadow.> sent a long message, see http://ix.io/2DIq |
00:13:10 | FromDiscord | <shadow.> โค๏ธ |
00:13:10 | FromDiscord | <Rika> ah this license |
00:13:11 | FromDiscord | <ElegantBeef> Yea we've all seen it |
00:13:12 | FromDiscord | <shadow.> yes |
00:13:15 | FromDiscord | <Rika> i never use it |
00:13:16 | FromDiscord | <shadow.> damn |
00:13:19 | FromDiscord | <shadow.> mit? |
00:13:19 | FromDiscord | <ElegantBeef> I just use MIT |
00:13:21 | FromDiscord | <shadow.> rip |
00:13:27 | FromDiscord | <Rika> unlicense sometimes |
00:13:34 | FromDiscord | <ElegantBeef> Attribution is all i ask for |
00:13:34 | FromDiscord | <nikki> when do licenses apply |
00:13:45 | FromDiscord | <nikki> it just depends on the interop with license at site of use right |
00:13:46 | FromDiscord | <Rika> its on the license usually |
00:14:02 | FromDiscord | <ElegantBeef> Yea fully depends on the license |
00:14:05 | FromDiscord | <shadow.> is there any good way to iterate a seq backwards |
00:14:10 | FromDiscord | <shadow.> or should i just use a countdown index |
00:14:22 | FromDiscord | <nikki> countdown is the good way |
00:14:25 | FromDiscord | <shadow.> f |
00:14:32 | FromDiscord | <shadow.> i mean i could make a reverse iterator but eh |
00:14:38 | FromDiscord | <nikki> personal opinion stuff tho |
00:14:42 | FromDiscord | <Rika> https://nim-lang.org/docs/algorithm.html#reverse%2CopenArray%5BT%5D ? |
00:14:49 | FromDiscord | <nikki> cuz you can build any sort of abstraction and make it look different |
00:14:57 | FromDiscord | <shadow.> oh algorithm |
00:14:58 | FromDiscord | <ElegantBeef> You could use sequtils and algorithim to do โต`for x in toSeq(theSeq.items).reverse` ๐ |
00:15:15 | FromDiscord | <nikki> if you're down to copy the whole thing |
00:15:17 | FromDiscord | <Rika> inefficient w |
00:15:25 | FromDiscord | <ElegantBeef> Well of course |
00:15:30 | FromDiscord | <shadow.> yeah id like to avoid copying |
00:15:32 | FromDiscord | <ElegantBeef> Just make the reverseItems iterator |
00:15:33 | FromDiscord | <shadow.> i just wanted an iterator lol |
00:15:34 | FromDiscord | <Rika> also you use reversed for that and not reverse |
00:15:49 | FromDiscord | <nikki> so yeah you can make your own abstraction, as indicates |
00:15:50 | FromDiscord | <shadow.> something like c++'s |
00:15:53 | FromDiscord | <nikki> (edit) "indicates" => "indicated" |
00:15:55 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DIr |
00:16:00 | FromDiscord | <shadow.> lol |
00:16:11 | FromDiscord | <ElegantBeef> Like i said i often suggest usable but silly implementations |
00:16:12 | FromDiscord | <shadow.> to be fair c++ begin and end iterators kinda suck so i dont miss them |
00:16:13 | FromDiscord | <nikki> yeah this is where the opinion comes in. to me i just want to see the numeric loop at this point |
00:16:19 | FromDiscord | <shadow.> rip i prefer range based loops |
00:16:23 | FromDiscord | <shadow.> or idk what the term is |
00:16:24 | FromDiscord | <shadow.> lmao |
00:16:33 | FromDiscord | <nikki> ime composability of stream abstractions makes code hardwer to read for me |
00:16:36 | FromDiscord | <shadow.> rip |
00:17:06 | FromDiscord | <Rika> idk ive liked how nim does for loops |
00:17:07 | FromDiscord | <shadow.> ig reversed() works for my purposes lol |
00:17:10 | FromDiscord | <shadow.> yes they're cool |
00:17:12 | FromDiscord | <shadow.> similar to rust lol |
00:17:18 | FromDiscord | <ElegantBeef> Iterators for loops is just nice |
00:17:20 | FromDiscord | <Rika> wtf |
00:17:21 | FromDiscord | <Rika> dude |
00:17:25 | FromDiscord | <shadow.> what? |
00:17:26 | FromDiscord | <Rika> dont say the forbidden words |
00:17:30 | FromDiscord | <shadow.> rust? |
00:17:30 | FromDiscord | <Rika> rt |
00:17:32 | FromDiscord | <shadow.> go? |
00:17:35 | FromDiscord | <ElegantBeef> V |
00:17:38 | FromDiscord | <shadow.> LOL |
00:17:53 | FromDiscord | <shadow.> is memory safety not allowed |
00:17:55 | FromDiscord | <shadow.> smh |
00:18:09 | FromDiscord | <ElegantBeef> Nah we got `lent` and `sink` so we're rust now |
00:18:13 | FromDiscord | <shadow.> LMAO |
00:18:16 | FromDiscord | <nikki> tfw rust means mem safety isn't allowed anywhere else |
00:18:18 | FromDiscord | <ElegantBeef> Where is our github issue "Are we rust yet?" |
00:18:25 | FromDiscord | <shadow.> time to go buy ownership of my variable at the store |
00:18:25 | FromDiscord | <Rika> nah its just tiring to keep on hearing aoout how rt is so much better omg!!! |
00:18:34 | FromDiscord | <shadow.> lol im not a rust fan |
00:18:38 | FromDiscord | <Rika> i know |
00:18:38 | FromDiscord | <shadow.> i like it but for me its too strict |
00:18:42 | FromDiscord | <Rika> dont worry |
00:18:44 | FromDiscord | <nikki> yeah ae can tell |
00:18:50 | FromDiscord | <shadow.> f |
00:19:05 | FromDiscord | <Rika> are you saying it would be better if we couldnt tell? |
00:19:12 | FromDiscord | <nikki> yo whatcha tryna code in nim |
00:19:16 | FromDiscord | <ElegantBeef> If you're here instead of inside rust's server it's pretty clear you arent that interested in rust ๐ |
00:19:20 | FromDiscord | <shadow.> LMAO |
00:19:23 | FromDiscord | <nikki> game stuff, web stuff, net stuff, ... |
00:19:28 | FromDiscord | <shadow.> who me? |
00:19:33 | FromDiscord | <ElegantBeef> No the door |
00:19:39 | FromDiscord | <Rika> beef how do YOU know hes not in the rust server |
00:19:41 | FromDiscord | <shadow.> i wanna try a discord bot and maybe a website backend |
00:19:48 | FromDiscord | <Rika> are YOU in the rust server HMMMMMMMMMMMMMMMM |
00:19:48 | FromDiscord | <ElegantBeef> Are they presently talking there rika? |
00:19:51 | FromDiscord | <shadow.> lmfao |
00:19:53 | FromDiscord | <shadow.> HMMMMM |
00:19:55 | FromDiscord | <ElegantBeef> Nah i have a spy in here from rust |
00:19:56 | FromDiscord | <shadow.> dont say the r word |
00:20:01 | FromDiscord | <shadow.> ugh |
00:20:03 | FromDiscord | <Rika> sorry, rt |
00:20:08 | FromDiscord | <nikki> import rst |
00:20:13 | FromDiscord | <nikki> already exists in nim |
00:20:14 | FromDiscord | <nikki> next |
00:20:14 | FromDiscord | <shadow.> also how would you guys simplify this if else lmoa |
00:20:20 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DIs |
00:20:21 | FromDiscord | <Rika> christ |
00:20:23 | FromDiscord | <ElegantBeef> There is a rellfy feller in here who doesnt like Nim, but is in here for whatever reason |
00:20:24 | FromDiscord | <Rika> what the hell |
00:20:24 | FromDiscord | <shadow.> i dont think having an if statement checked every iteratio nof the loop |
00:20:27 | FromDiscord | <shadow.> is a good idea |
00:20:32 | FromDiscord | <shadow.> (edit) "iteratio nof" => "iteration of" |
00:20:39 | FromDiscord | <shadow.> but idk how else to cut out the padding thing |
00:20:45 | FromDiscord | <shadow.> i mean what happens if you try to write an empty list? |
00:20:46 | FromDiscord | <shadow.> lmfao |
00:20:58 | FromDiscord | <Rika> cant you put the reversed for loop outside the condition |
00:21:02 | FromDiscord | <Rika> and then remove the else |
00:21:09 | FromDiscord | <Rika> oh |
00:21:11 | FromDiscord | <Rika> misread |
00:21:15 | FromDiscord | <shadow.> well then wouldnt i have to put an if over every iteration of the padWidth loop |
00:21:17 | FromDiscord | <Rika> damn it its like 9 am |
00:21:21 | FromDiscord | <shadow.> which is (inefficient?) |
00:21:32 | FromDiscord | <Rika> im not supposed to be reading code this early in the morning |
00:21:35 | FromDiscord | <shadow.> yikes |
00:21:51 | FromDiscord | <Rika> eh |
00:21:55 | FromDiscord | <Rika> this looks good enough to me |
00:21:56 | FromDiscord | <nikki> make padWidth zero |
00:21:58 | FromDiscord | <nikki> for the else branch |
00:21:59 | FromDiscord | <Rika> also smh 4 width index |
00:22:01 | FromDiscord | <Rika> i mean |
00:22:03 | FromDiscord | <Rika> indent |
00:22:03 | FromDiscord | <nikki> and just have the same branch |
00:22:16 | FromDiscord | <nikki> so eg if padWidt > 4: padWidth = 0 |
00:22:27 | FromDiscord | <shadow.> oh shit yeah you're right |
00:22:30 | FromDiscord | <shadow.> bc im using a for loop |
00:22:31 | FromDiscord | <shadow.> ty |
00:22:43 | FromDiscord | <shadow.> oh right what happens when you do for i in 1..1 lmao |
00:22:49 | FromDiscord | <nikki> try it |
00:22:53 | FromDiscord | <shadow.> smart |
00:22:56 | FromDiscord | <Rika> nothing |
00:22:56 | FromDiscord | <shadow.> :BigBrain: |
00:22:59 | FromDiscord | <Rika> i is 1 |
00:23:03 | FromDiscord | <Rika> then no loop happens |
00:23:07 | FromDiscord | <nikki> i think 1 iter |
00:23:10 | FromDiscord | <Rika> i mean |
00:23:11 | FromDiscord | <nikki> cuz not 1..<1 |
00:23:12 | FromDiscord | <ElegantBeef> 1..1 is inclusive |
00:23:12 | FromDiscord | <Rika> no looping |
00:23:18 | FromDiscord | <ElegantBeef> so it does it once |
00:23:20 | FromDiscord | <nikki> u get 1 iter with 1 |
00:23:20 | FromDiscord | <shadow.> oh ok |
00:23:24 | FromDiscord | <Rika> it runs but it doesnt loop |
00:23:27 | FromDiscord | <Rika> :facepalm1: |
00:23:33 | FromDiscord | <shadow.> fr? |
00:23:37 | FromDiscord | <shadow.> that doesnt seem right |
00:23:41 | FromDiscord | <nikki> thats why try it |
00:23:43 | FromDiscord | <ElegantBeef> it's inclusive so it runs once |
00:23:45 | FromDiscord | <shadow.> alr lemme try it |
00:23:46 | FromDiscord | <Rika> !eval for i in 1..1: echo i |
00:23:48 | FromDiscord | <nikki> this is one of those things the compiler answers better |
00:23:49 | NimBot | 1 |
00:23:55 | FromDiscord | <nikki> jep |
00:23:59 | FromDiscord | <shadow.> f |
00:24:05 | FromDiscord | <Rika> i dont see how this is wrong |
00:24:05 | FromDiscord | <shadow.> i did not know there was an eval bot |
00:24:07 | FromDiscord | <shadow.> does that use nimscript? |
00:24:07 | FromDiscord | <nikki> nim is good at responding |
00:24:10 | FromDiscord | <Rika> no |
00:24:11 | FromDiscord | <nikki> to ur questions imo |
00:24:15 | FromDiscord | <nikki> when exploring |
00:24:18 | FromDiscord | <shadow.> oh true |
00:24:23 | FromDiscord | <Rika> it compiles the code |
00:24:24 | FromDiscord | <ElegantBeef> It's just easier to ask nim then asking us typically |
00:24:35 | FromDiscord | <shadow.> !eval cast[array[3, byte]](0) |
00:24:37 | NimBot | Compile failed: /usercode/in.nim(1, 1) Error: expression 'cast[array[3, byte]](0)' is of type 'array[0..2, byte]' and has to be used (or discarded) |
00:24:41 | FromDiscord | <Rika> you have to echo it |
00:24:42 | FromDiscord | <Rika> lol |
00:24:42 | FromDiscord | <ElegantBeef> Got the evalbot, the playground, inim, your compiler |
00:24:45 | FromDiscord | <shadow.> f |
00:24:49 | FromDiscord | <shadow.> !eval echo cast[array[3, byte]](0) |
00:24:49 | FromDiscord | <ElegantBeef> Got many way to answer |
00:24:51 | NimBot | [0, 0, 0] |
00:24:55 | FromDiscord | <shadow.> oh smart |
00:24:58 | FromDiscord | <shadow.> ty |
00:25:01 | FromDiscord | <shadow.> i didnt know it existed lmao |
00:25:07 | FromDiscord | <shadow.> ( the bot ) |
00:25:09 | mipri | what you want to do is cast a ptr int to a ptr array[4, byte], and then move those bytes to fit into your 3-byte array |
00:25:49 | FromDiscord | <Rika> !eval echo cast[array[3, byte]](12) |
00:25:50 | FromDiscord | <shadow.> wait i solved it dw i was just testing the bot lol |
00:25:51 | NimBot | [12, 0, 0] |
00:25:59 | FromDiscord | <nikki> gotta afk this was fun |
00:26:19 | FromDiscord | <shadow.> time to go post my amazing bitmap library def not hardcoded ๐ช๐โโ๏ธ |
00:29:03 | * | leorize quit (Ping timeout: 240 seconds) |
00:29:55 | mipri | https://play.nim-lang.org/#ix=2DIv |
00:30:56 | FromDiscord | <shadow.> whats that for |
00:31:08 | FromDiscord | <shadow.> lol |
00:31:13 | FromDiscord | <ElegantBeef> a better way to get the int24 |
00:31:16 | FromDiscord | <shadow.> ahh smart |
00:31:27 | FromDiscord | <shadow.> i just did a single cast lol |
00:31:33 | FromDiscord | <shadow.> prolly shoulda put more effort into it but |
00:31:38 | FromDiscord | <shadow.> im too lazy :)) |
00:32:13 | FromDiscord | <shadow.> im glad i found this server bc there isnt that much on nim online at least for certain aspects |
00:32:16 | FromDiscord | <shadow.> and i havent met many ppl that use it |
00:32:22 | FromDiscord | <shadow.> but its cool to talk w other ppl that like it lol |
00:32:26 | FromDiscord | <ElegantBeef> "many" is an understatmenet |
00:32:27 | FromDiscord | <shadow.> bc i find it very unique and east to use |
00:32:37 | FromDiscord | <shadow.> yeahh |
00:32:42 | FromDiscord | <ElegantBeef> It' |
00:32:45 | FromDiscord | <shadow.> im trying to bug all my friends to try it lmaoo |
00:32:49 | FromDiscord | <shadow.> (edit) "east" => "easy" |
00:32:54 | FromDiscord | <ElegantBeef> (edit) "It'" => "It's an obscure langauage so it's userbase is like -10 sadly" |
00:33:06 | FromDiscord | <ElegantBeef> As i have done, actually got my robotic friends interested in it |
00:33:29 | FromDiscord | <shadow.> idk for me it was interesting bc it was super easy to program in but it benchmarked at the same level as c++ and rt |
00:33:42 | FromDiscord | <ElegantBeef> Yes i have friends that are robots, i'm not the most friendly person ๐ |
00:33:55 | FromDiscord | <shadow.> and my main complaints of compiled statically-typed languages is readability and simplicity lol |
00:33:57 | FromDiscord | <shadow.> rip asf |
00:34:38 | FromDiscord | <ElegantBeef> I mean C# doesnt really suffer from readablillity, but once you get to system programming languages such as Rust/C++ it certainly gets annoying to read |
00:34:46 | FromDiscord | <shadow.> well yeah c# isnt that bad |
00:35:10 | FromDiscord | <notchris> hey all im using a nim wrapper for the raylib library, for ui. i can get it to work and i was able to build the dylib (since im on osx) |
00:35:23 | FromDiscord | <notchris> but im trying to build the raygui extension https://github.com/raysan5/raygui |
00:35:29 | FromDiscord | <notchris> and i cant seem to figure out how to build the dylib |
00:35:32 | FromDiscord | <notchris> or if thats possible? |
00:35:34 | FromDiscord | <ElegantBeef> I laugh at Rt's `let mut` as it just seems overly redundant imo ๐ |
00:35:53 | FromDiscord | <shadow.> lmfao fax |
00:36:03 | FromDiscord | <shadow.> immutable as default is kinda weird imo |
00:36:08 | FromDiscord | <shadow.> i like how nim does it with `let` |
00:36:19 | FromDiscord | <Rika> im fine with immutable as default |
00:36:26 | FromDiscord | <shadow.> `let` is honestly a very cool thing i havent seen much lmao |
00:36:27 | FromDiscord | <shadow.> processed immutables |
00:36:29 | FromDiscord | <shadow.> instead of just constants |
00:36:32 | FromDiscord | <Rika> though nim doesnt technically default to it for variables at lesat |
00:36:35 | FromDiscord | <ElegantBeef> well as am i, but just use `let` and `mut`, cmon it does the same |
00:36:35 | * | leorize joined #nim |
00:36:40 | FromDiscord | <shadow.> ye |
00:36:50 | FromDiscord | <notchris> I tried to compile it with make, but im new to compilation sort of |
00:37:16 | FromDiscord | <ElegantBeef> Is there a flag or something to say you want to build raylib with the gui support? |
00:37:43 | FromDiscord | <notchris> Well there is a cask that seems to be building it with params, but i actually could find if with GUI was one of them |
00:37:54 | FromDiscord | <notchris> i went through its build steps |
00:38:14 | FromDiscord | <notchris> https://github.com/Homebrew/homebrew-core/blob/master/Formula/raylib.rb |
00:38:28 | FromDiscord | <notchris> (edit) "Well there is a cask that seems to be building it with params, but i actually could ... find" added "not" |
00:39:30 | FromDiscord | <ElegantBeef> did you look at the examples make file? |
00:41:09 | FromDiscord | <notchris> @ElegantBeef yes but i cant find any reference https://github.com/raysan5/raylib/blob/master/examples/Makefile |
00:41:32 | FromDiscord | <ElegantBeef> Yea i'm uncertain how to build it, so... have fun ๐ |
00:41:51 | FromDiscord | <notchris> Haha, oh jeez, ill do my best ๐ |
00:45:13 | FromDiscord | <shadow.> ripp |
00:49:45 | FromDiscord | <shadow.> whats the best channel to use the bot in lol |
00:49:48 | FromDiscord | <shadow.> is there a testing channel? |
00:50:25 | FromDiscord | <shadow.> !eval echo cast[array[3, byte]](0xffffff) |
00:50:28 | NimBot | [255, 255, 255] |
00:50:35 | FromDiscord | <shadow.> damn that is quite cool |
00:50:53 | FromDiscord | <shadow.> !eval echo cast[array[3, byte]](0x00aaff) |
00:50:57 | NimBot | [255, 170, 0] |
00:51:04 | FromDiscord | <shadow.> ahh |
00:57:36 | * | Tanger quit (Quit: Leaving) |
01:01:24 | FromDiscord | <nikki> @notchris i may be able to help you with this one of these days |
01:01:50 | FromDiscord | <notchris> ooo |
01:01:54 | FromDiscord | <notchris> TY @nikki |
01:13:43 | * | leorize quit (Ping timeout: 240 seconds) |
01:16:00 | * | leorize joined #nim |
01:25:23 | FromDiscord | <shadow.> can you eval multiple lines with the bot? |
01:25:35 | FromDiscord | <shadow.> !eval var x = 5โตecho x |
01:25:37 | NimBot | Compile failed: /usercode/in.nim(1, 10) Error: invalid token: no whitespace between number and identifier |
01:25:44 | FromDiscord | <shadow.> oop |
01:26:11 | FromDiscord | <ElegantBeef> !eval var x = 5; echo x |
01:26:14 | NimBot | 5 |
01:27:55 | FromDiscord | <shadow.> ah smart |
01:29:19 | FromDiscord | <TheRealBob> !eval var x = 5+1; echo x |
01:29:22 | NimBot | 6 |
01:29:27 | FromDiscord | <shadow.> gamer |
01:31:13 | FromDiscord | <ElegantBeef> Glad you didnt trust my eval enough ๐ |
01:31:53 | FromDiscord | <shadow.> wait what |
01:31:54 | FromDiscord | <shadow.> im confused |
01:32:53 | FromDiscord | <shadow.> did you make it? |
01:32:55 | FromDiscord | <ElegantBeef> It's ok, you'll figure it out eventually |
01:32:57 | FromDiscord | <ElegantBeef> No |
01:32:59 | FromDiscord | <shadow.> lmmao |
01:33:00 | FromDiscord | <shadow.> OH |
01:33:02 | FromDiscord | <shadow.> i see |
01:33:04 | FromDiscord | <TheRealBob> you cant test the bot on the test channel lol |
01:33:05 | FromDiscord | <shadow.> rip |
01:33:08 | FromDiscord | <shadow.> here it is then |
01:33:32 | FromDiscord | <shadow.> !eval import strformat; echo &"I have {55} lines of code." |
01:33:35 | NimBot | I have 55 lines of code. |
01:33:39 | FromDiscord | <shadow.> spicy |
01:37:26 | FromDiscord | <shadow.> @ElegantBeef where can i find info about setting up that nimscript shell thing? |
01:37:28 | FromDiscord | <shadow.> sounds interesting |
01:37:36 | FromDiscord | <shadow.> or any type of environment like that rly |
01:37:43 | FromDiscord | <TheRealBob> yes |
01:37:54 | FromDiscord | <ElegantBeef> https://nim-lang.org/docs/nimscript.html |
01:38:08 | FromDiscord | <ElegantBeef> https://nim-lang.org/docs/nims.html |
01:39:18 | FromDiscord | <ElegantBeef> You cannot use it as a shell, just like a bash repalacement |
01:39:49 | FromDiscord | <TheRealBob> ah ok |
01:41:05 | FromDiscord | <shadow.> https://github.com/inim-repl/INim |
01:41:05 | FromDiscord | <shadow.> interesting |
01:48:50 | * | Tanger joined #nim |
01:53:08 | * | Jesin quit (Quit: Leaving) |
02:07:54 | * | Jesin joined #nim |
02:19:39 | * | apahl quit (Ping timeout: 244 seconds) |
02:20:41 | * | abm quit (Read error: Connection reset by peer) |
02:21:59 | * | apahl joined #nim |
02:26:28 | * | cgfuh quit (Quit: WeeChat 2.9) |
02:29:09 | FromDiscord | <shadow.> time to make a nim interpreter in rt |
02:29:15 | FromDiscord | <shadow.> the most illegal action of all |
02:36:50 | FromDiscord | <Rika> how dare you |
02:41:50 | * | rockcavera quit (Ping timeout: 272 seconds) |
02:44:41 | FromDiscord | <shadow.> lmfao |
02:44:51 | FromDiscord | <shadow.> can you do the countup with step in the .. form? |
02:44:55 | FromDiscord | <shadow.> or is there no shortening for that |
02:45:58 | FromDiscord | <shadow.> (edit) ".." => "default range iterable" |
02:47:19 | FromDiscord | <Rika> in the what |
02:47:25 | FromDiscord | <Rika> `..`? none |
02:47:31 | FromDiscord | <Rika> `countup`? has |
02:48:01 | * | Lockses joined #nim |
02:48:13 | * | brainproxy quit (Ping timeout: 264 seconds) |
02:49:13 | Lockses | Are there any resources on writing locks? I want to make a lock so that I can do avoid hitting rate limits for certain servers I need to talk to, so I basically need a lock that includes some sort of built in timer. |
02:51:19 | FromDiscord | <Rika> are you using multithreading |
02:55:02 | FromDiscord | <shadow.> nop |
02:55:09 | FromDiscord | <shadow.> oh not me LOL |
02:55:21 | FromDiscord | <shadow.> i was like why is multithreading relevant to a for loop step |
02:56:05 | Lockses | I'd like to be able to use multithreading in the future, right now I'm just going to try using async. |
02:57:24 | * | brainproxy joined #nim |
03:00:23 | * | mmohammadi9812 joined #nim |
03:02:21 | FromDiscord | <Rika> you can use regular data structures for async, but for multithreading i dont think there is any such datatype |
03:02:40 | FromDiscord | <Rika> and any solution that ive thought of so far are prone to race conditions |
03:03:05 | FromDiscord | <Rika> i dont see why you need to multithread this though |
03:03:11 | FromDiscord | <Rika> since this is io bound and not cpu bound |
03:06:56 | * | Lockses quit (Remote host closed the connection) |
03:13:22 | FromGitter | <gogolxdong> Google developed the distributed compiler called Goma. Googlers and contributors who have tryjob access could use Goma. โ โ If you are not a Googler and would like to use Goma sign up. |
03:13:40 | FromGitter | <gogolxdong> What's a distributed compiler like? |
03:39:05 | * | Jesin quit (Ping timeout: 240 seconds) |
04:01:50 | * | muffindrake quit (Ping timeout: 264 seconds) |
04:03:55 | * | muffindrake joined #nim |
04:06:02 | * | supakeen quit (Quit: WeeChat 2.9) |
04:06:02 | * | vicfred quit (Quit: Leaving) |
04:06:36 | * | supakeen joined #nim |
04:11:53 | * | a_chou joined #nim |
04:34:13 | * | a_chou quit (Remote host closed the connection) |
04:34:36 | * | bacterio joined #nim |
04:34:36 | * | bacterio quit (Changing host) |
04:34:36 | * | bacterio joined #nim |
04:34:38 | * | a_chou joined #nim |
04:37:12 | * | a_chou quit (Remote host closed the connection) |
04:46:14 | bung | compile code on machines through network |
04:48:30 | * | brainproxy quit (Ping timeout: 272 seconds) |
04:54:03 | * | leorize quit (Ping timeout: 240 seconds) |
04:56:09 | * | leorize joined #nim |
05:17:14 | * | jmiven joined #nim |
05:36:16 | * | Jesin joined #nim |
05:55:51 | * | narimiran joined #nim |
06:23:48 | * | habamax joined #nim |
06:31:32 | * | apahl quit (Remote host closed the connection) |
06:31:55 | * | apahl joined #nim |
06:39:49 | * | waleee-cl quit (Quit: Connection closed for inactivity) |
06:53:31 | * | solitudesf joined #nim |
07:19:34 | * | brainproxy joined #nim |
07:24:55 | * | brainproxy quit (Ping timeout: 246 seconds) |
07:25:38 | * | max_ joined #nim |
07:26:56 | * | max_ is now known as quassel909 |
07:27:09 | * | quassel909 quit (Client Quit) |
07:27:37 | FromDiscord | <levovix> how to check if type has trivial copy hook? |
07:31:23 | * | brainproxy joined #nim |
07:35:48 | * | brainproxy quit (Ping timeout: 258 seconds) |
07:36:43 | * | PMunch joined #nim |
07:53:05 | * | max_ joined #nim |
07:58:48 | FromGitter | <TheEngineersCorner> Hi, is there a straight forward guide to getting nimgl working? I am running into the same problems discussed earlier here. (fresh install of ubuntu 20.4) โ gcc: error: private/glfw/src/vulkan.c: No such file or directory |
08:07:35 | * | brainproxy joined #nim |
08:08:16 | PMunch | @TheEngineersCorner, it seems like you have not initialised Git submodules |
08:08:44 | PMunch | How did you install nimgl? |
08:08:55 | PMunch | Or did you simply clone it manually with git? |
08:12:19 | * | brainproxy quit (Ping timeout: 256 seconds) |
08:12:43 | PMunch | Haha, you remember the Python fibonacci script from yesterday? The 10_000_000_000 version is still running :P |
08:13:08 | PMunch | For context the Nim solution finished in slightly more than 2.5 minute, this has been running since yesterday |
08:14:12 | FromDiscord | <Rika> Lol |
08:14:27 | FromDiscord | <Rika> Does it already use cached results |
08:15:08 | PMunch | It uses a highly optimised algorithm: http://ix.io/2DKg |
08:25:22 | FromDiscord | <Rika> Looks optimized alright |
08:27:58 | FromDiscord | <ElegantBeef> Shit... i was going to ask you something pmunch but i cant recally now |
08:28:04 | FromDiscord | <ElegantBeef> (edit) "recally" => "recall" |
08:28:23 | PMunch | Hmm, do you remember anything about what it was? |
08:28:31 | FromDiscord | <ElegantBeef> Nope |
08:28:42 | PMunch | Otherwise I'm here pretty much all day, so if it comes back to you just ping me :P |
08:29:01 | PMunch | Rika, yeah the Python version is actually really fast |
08:29:15 | FromDiscord | <Rika> Zoom |
08:29:19 | PMunch | But it gets beaten handily by the Nim version |
08:30:00 | FromDiscord | <Rika> As expected |
08:30:47 | PMunch | I was actually a little bit surprised |
08:31:07 | PMunch | I mean Python probably also wraps a similar underlying library to what the Nim solution is using |
08:31:07 | FromDiscord | <Rika> Whatโs the nim version code |
08:32:03 | PMunch | Pretty much the same thing: http://ix.io/2DKp |
08:36:21 | FromDiscord | <nikki> yeah interpreting bytecode the way python does should make it take much longer |
08:36:24 | FromDiscord | <ElegantBeef> Well i'm just going to talk about my fork of moe which is adding nimscript configuration in hopes it pops back |
08:36:24 | FromDiscord | <nikki> vs. just compiled code |
08:36:46 | FromDiscord | <nikki> like this doesn't just call off to some C function and wait, the loop is python code |
08:37:15 | PMunch | True, but I assumed (wrongly it appears) that it would JIT compile the Python code into something that was fairly fast |
08:37:21 | Zoom[m] | Rika, What? |
08:37:37 | FromDiscord | <nikki> cpython doesn't have a jit |
08:37:37 | PMunch | @Elegant, the editor right? |
08:37:41 | FromDiscord | <ElegantBeef> Yea |
08:37:46 | FromDiscord | <ElegantBeef> Zoom they just wrote zoom due to the speed |
08:37:52 | FromDiscord | <nikki> slash what python interpreter ru using ๐ค |
08:37:54 | FromDiscord | <ElegantBeef> Your name is bound to be mentioned accidently |
08:37:58 | FromDiscord | <Rika> Oh my god thereโs a user called zoom |
08:38:15 | FromDiscord | <ElegantBeef> They have a cousin blam and sibling boom |
08:38:44 | Zevv | Sooo, folks, what do we Nim today |
08:39:08 | PMunch | Just looking at bignum/bigfloat libraries to see if I can implement one into stacklang |
08:39:14 | FromDiscord | <Rika> Recreate YouTube-dl in nim |
08:39:21 | FromDiscord | <Rika> I kid of course |
08:39:31 | FromDiscord | <ElegantBeef> I'm trying to remember what the fuck i wanted to say to pmunch |
08:39:37 | FromDiscord | <ElegantBeef> We can embark on this journey together! |
08:39:39 | PMunch | I mean that would certainly bring som publicity, Rika |
08:39:44 | FromDiscord | <Rika> You shall not remember beef |
08:39:57 | PMunch | A vegans dream |
08:40:00 | FromDiscord | <Rika> PMunch of course but itโs pretty Herculean if you ask me |
08:40:25 | PMunch | Isn't it "just" some link grabbing? |
08:40:43 | Zevv | there are bignum bindings, I started a bigfloat once but abandoned it |
08:40:52 | FromDiscord | <Rika> It has plug-in extensibility afaik |
08:41:01 | Zevv | gmp |
08:41:30 | PMunch | Yeah the bignum gmp bindings look good |
08:41:37 | PMunch | But they don't have sin/cos/etc |
08:41:46 | Zevv | PMunch: I happen to work on a commercial product that also "steals" streams from youtube. It's more involved then that. |
08:41:55 | PMunch | I could of course convert to a float, do the calculation, and convert back |
08:42:11 | Zevv | what calculations are you doing? |
08:42:19 | FromDiscord | <ElegantBeef> all of them |
08:42:22 | Zevv | I thought this discussion came from someone doing fibonaccis |
08:42:24 | PMunch | Yeah I would guess it's more complicated, but how much? |
08:42:43 | FromDiscord | <Rika> In other news a few months ago I implemented float16 for no real reason other than to use it in CBOR |
08:42:47 | PMunch | Zevv, it started there, then I realised how nice bignum was, and now I want to use it for stacklang |
08:42:57 | FromDiscord | <ElegantBeef> float16 is nice though, as it works well with gpu interop |
08:43:24 | FromDiscord | <ElegantBeef> halfs are pretty nice for saving memory |
08:43:46 | Zevv | youtube is funny because it does not use any kind of manifests, like 99% of the other streaming services do |
08:43:47 | FromDiscord | <Rika> It only does conversion right now lmao I donโt have anything but conversion from 64 |
08:43:59 | Zevv | there's no MPD or M3U8, it's all magic in URLs |
08:44:30 | Zevv | they use arbritrary split MP4 chunks |
08:44:40 | FromDiscord | <ElegantBeef> Is the best way to make something like a half to use an `array[2, byte]` or what? |
08:44:55 | FromDiscord | <Rika> I used a distinct int16 |
08:45:15 | FromDiscord | <Rika> Easier to do operations on |
08:45:30 | Zevv | ElegantBeef: you can just use (u)int16s and cast where needed |
08:47:09 | * | miere joined #nim |
08:47:20 | FromDiscord | <ElegantBeef> Ok so say a 24 bit value? ๐ |
08:47:45 | FromDiscord | <ElegantBeef> Dont you dare say use an extra unneeded byte! |
08:47:46 | FromDiscord | <Rika> Weโre talking about float16 are we not |
08:47:53 | FromDiscord | <ElegantBeef> We were |
08:48:14 | FromDiscord | <Rika> Other types have different solutions |
08:48:28 | Zevv | for half floats you need native support of your language. |
08:48:32 | Zevv | that's not just castable simply |
08:48:49 | Zevv | or you need to do the encoding/decoding yourself |
08:48:54 | FromDiscord | <ElegantBeef> Yea i know that |
08:49:11 | Zevv | I thought you would :) |
08:49:31 | Zevv | I bet we can tell nim to use __fp16 as underlying storage for a type |
08:49:46 | Zevv | there is this funny pragma that allows C-level declarations |
08:49:53 | Zevv | I forgot what it was. PMunch used it for the atmel progmem |
08:50:03 | * | leorize quit (Ping timeout: 240 seconds) |
08:50:28 | FromDiscord | <ElegantBeef> I didnt notice that it was zevv and not z oo m |
08:50:37 | FromDiscord | <Rika> Lol |
08:50:37 | FromDiscord | <ElegantBeef> Both have green avatars and 4 letter names |
08:50:53 | Zevv | Yeah I always confuse all the people here. They all have names and they all type words |
08:51:19 | FromDiscord | <miere> Sorry for dumb question, but can I use {.discardable.} pragma with function pointers? It works with plain procs, but doesn't with pointer to proc https://play.nim-lang.org/#ix=2DKs |
08:51:21 | FromDiscord | <ElegantBeef> Wow he's now mocking me! |
08:51:52 | PMunch | codeGenDecl :D |
08:51:53 | Zevv | Zevv, mocking the world since '74 |
08:51:57 | Zevv | right that one |
08:52:02 | * | miere quit (Remote host closed the connection) |
08:52:57 | PMunch | miere, unfortunately not it seems |
08:53:21 | PMunch | I would guess that {.discardable.} creates two versions of the proc, one that discards and one that doesn't |
08:53:40 | PMunch | What you could do is wrap it in an Option |
08:53:48 | PMunch | But you would still have to handle it |
08:53:59 | * | brainproxy joined #nim |
08:54:05 | FromDiscord | <ElegantBeef> Yea pmunch based off this that seems reasonable |
08:54:06 | FromDiscord | <ElegantBeef> https://play.nim-lang.org/#ix=2DKu |
08:55:14 | * | leorize joined #nim |
08:56:00 | FromDiscord | <miere> Is it a bug then that it doesn't work? |
08:56:32 | * | letto quit (Quit: Konversation terminated!) |
08:58:10 | PMunch | Not really |
08:58:16 | PMunch | It's just not a supported scenario |
08:58:49 | FromDiscord | <miere> Yeah, found an issue https://github.com/nim-lang/Nim/issues/14260 |
08:58:50 | disbot | โฅ {.discardable.} on object fields causes compile error ; snippet at 12https://play.nim-lang.org/#ix=2lAd |
08:59:00 | PMunch | Essentially the discardable part is a Nim thing, so it isn't able to create an object with a function pointer because it doesn't know if it has a return type or not |
09:00:29 | PMunch | I guess it could add a hidden field and a union type though |
09:00:34 | PMunch | But that is a bit messy |
09:01:25 | * | letto joined #nim |
09:15:58 | FromDiscord | <D3F0LT> How do I make testament walk only subfolders in tests? I try testament p "tests / / . Nim" [1], it does not find tests, although there is a subfolder and a file in it |
09:17:53 | * | Tanger quit (Remote host closed the connection) |
09:25:52 | FromGitter | <matrixbot> `Clonkk` I use ``testament p "tests/**/t*.nim" `` for subfolder |
09:34:20 | * | krux02 joined #nim |
09:44:22 | * | hnOsmium0001 quit (Quit: Connection closed for inactivity) |
09:45:12 | * | MarderIII joined #nim |
09:49:35 | FromDiscord | <Gabben> sent a code paste, see https://play.nim-lang.org/#ix=2DL3 |
10:03:23 | * | leorize quit (Ping timeout: 240 seconds) |
10:15:18 | * | leorize joined #nim |
10:19:51 | FromGitter | <matrixbot> `Clonkk` Ah youare on Windows. If I remeber correctly Windows only supports wildcard char in the last element of a path. |
10:20:24 | FromGitter | <matrixbot> `Clonkk` I Could be wrong (ot simply outdated), I haven't used windows in a while |
10:26:25 | * | MarderIII quit (Quit: Leaving) |
10:27:49 | * | mmohammadi9812 quit (Ping timeout: 264 seconds) |
10:28:44 | * | mmohammadi9812 joined #nim |
10:33:30 | * | luis__ joined #nim |
10:40:42 | * | luis__ quit (Quit: luis__) |
10:50:29 | FromDiscord | <Timmy> sent a code paste, see https://play.nim-lang.org/#ix=2DLq |
10:59:40 | Araq | woah bootstrapping works |
10:59:49 | Araq | amazing (I'm on a branch) |
11:02:15 | Araq | 6.3s vs 6.7s |
11:02:35 | Araq | wow that's much better than my initial benchmark suggested |
11:07:01 | * | brainproxy quit (Ping timeout: 265 seconds) |
11:09:38 | * | Tanger joined #nim |
11:15:28 | * | xet7 quit (Remote host closed the connection) |
11:16:53 | * | xet7 joined #nim |
11:44:22 | PMunch | Damn, I wish I had put a status indicator into this Python script.. |
11:45:00 | PMunch | With the Nim version taking 2.5 minutes I didn't quite expect the Python version to take this long.. |
11:45:39 | FromDiscord | <lqdev> PMunch: what script? |
11:45:49 | PMunch | The fibonacci thing from yesterday |
11:46:01 | PMunch | Calculating the 10_000_000_000th fibonacci number |
11:46:31 | FromDiscord | <lqdev> oof |
11:46:44 | * | rockcavera joined #nim |
11:46:48 | FromDiscord | <lqdev> iterative or recursive? |
11:46:55 | PMunch | iterative |
11:47:04 | FromDiscord | <lqdev> sorry i wasn't following the discussions here yesterday ๐
|
11:47:09 | PMunch | Haha, recursive would break the stack so bad :P |
11:47:14 | FromDiscord | <lqdev> yes |
11:47:29 | FromDiscord | <lqdev> i wonder if python has proper tail call support ๐ค |
11:47:47 | FromDiscord | <lqdev> lua would handle a recursive fib just fine |
11:47:49 | PMunch | Python version: http://ix.io/2DKg, Nim version: http://ix.io/2DKp |
11:48:07 | PMunch | Good question, I kinda doubt it though |
11:48:40 | PMunch | But yeah, with tail-end recursion it would run just fine |
11:51:01 | Araq | just stop messing around with 'fib', it's a bad benchmark |
11:51:02 | * | lritter joined #nim |
11:51:28 | Araq | guys, 0.4s faster bootstrapping, that's not nothing |
11:51:40 | PMunch | Oh yeah, only reason we were doing it was because someone came in here and wondered why Python was faster :P |
11:51:50 | PMunch | So of course we had to disprove him |
11:52:18 | PMunch | Had to re-run the Nim version to make sure I actually input the number correctly, even though I almost ran out of RAM while running it it still only took 3.5 minutes |
11:52:27 | PMunch | Curious though that it uses so much more memory |
11:52:41 | PMunch | Python currently sits at 0.5Gb, Nim version peaked at about 13Gb |
11:57:38 | * | max__ joined #nim |
11:58:38 | FromDiscord | <Rika> That's a lot |
12:00:43 | PMunch | Mhm |
12:01:03 | PMunch | Granted we are working with a very large number here |
12:01:27 | * | max_ quit (Ping timeout: 258 seconds) |
12:02:58 | ForumUpdaterBot | New thread by HJarausch: Variable length tuple unpacking, see https://forum.nim-lang.org/t/7072 |
12:05:53 | * | max__ quit (Quit: max__) |
12:06:02 | * | supakeen quit (Quit: WeeChat 2.9) |
12:06:24 | * | synthmeat quit (Quit: WeeChat 2.9) |
12:06:36 | * | supakeen joined #nim |
12:07:11 | * | synthmeat joined #nim |
12:10:30 | PMunch | Rika, the answer will be about 2_000_000_000 digits |
12:13:04 | FromDiscord | <Rika> That's a lot of bytes needer |
12:13:49 | PMunch | Yuup |
12:15:57 | FromDiscord | <Rika> That's around 6 or 7 gigabytes just for the number I think |
12:16:39 | PMunch | Which probably means the Python solution is quite a way away from completing.. |
12:16:55 | PMunch | It's closing in on 5Gb now |
12:18:23 | * | leorize quit (Ping timeout: 240 seconds) |
12:20:22 | FromDiscord | <Rika> Lol |
12:21:44 | * | NimBot joined #nim |
12:23:09 | * | abm joined #nim |
12:26:01 | * | leorize joined #nim |
12:38:55 | PMunch | Does Python have some magic switch like -d:release to speed things up? |
12:39:03 | * | leorize quit (Ping timeout: 240 seconds) |
12:39:18 | FromDiscord | <lqdev> no |
12:39:25 | FromDiscord | <lqdev> but you can use pypy |
12:41:39 | PMunch | Well that's just cheating |
12:41:47 | PMunch | I could also use Nim |
12:42:07 | FromDiscord | <lqdev> nim is faster |
12:45:10 | * | leorize joined #nim |
12:51:36 | * | mmohammadi9812 quit (Ping timeout: 256 seconds) |
12:57:16 | Zevv | you say |
13:03:55 | * | brainproxy joined #nim |
13:10:30 | * | mmohammadi9812 joined #nim |
13:10:54 | FromDiscord | <malfong> `=destroy` is like defer free? https://play.nim-lang.org/#ix=2DMi |
13:14:44 | FromDiscord | <Timmy> How on earth do you store such a big number? |
13:15:06 | FromDiscord | <Rika> With a lot of memory |
13:15:36 | PMunch | @Timmy, with bignum :) |
13:15:57 | PMunch | Basically a way of allocating memory on the fly for massive numbers |
13:16:57 | Zevv | log2(10^2e6) / 8 is about 830 megabyte |
13:17:20 | Zevv | 2e9, that i |
13:17:21 | Zevv | s |
13:17:38 | FromDiscord | <Rika> Thatโs to store a number 2 billion |
13:17:38 | FromDiscord | <Timmy> Why are you deviding by 8? |
13:17:43 | FromDiscord | <Rika> Not 2 billion digits |
13:17:46 | Zevv | the number of bits |
13:17:50 | FromDiscord | <Timmy> (edit) "deviding" => "devising" |
13:18:57 | FromDiscord | <Rika> Oh misread |
13:19:20 | Zevv | digits to bits to bytes |
13:19:48 | FromDiscord | <Timmy> I do not math too well |
13:20:12 | Zevv | one better maths well if one wants to code well |
13:21:15 | FromDiscord | <Rika> I was pretty sure about my 6 gigabyte estimate.... |
13:21:17 | FromDiscord | <Timmy> I math just well enough for what I do |
13:21:39 | FromDiscord | <Timmy> which is not cryptography or bigints clearly |
13:21:40 | FromDiscord | <Rika> Maybe I did not divide |
13:21:41 | FromDiscord | <Timmy> :KEKW: |
13:21:55 | FromDiscord | <Rika> This isnโt even cryptography |
13:22:28 | Araq | malfong: don't call =destroy directly unless you know what you're doing |
13:22:29 | FromDiscord | <Timmy> obv, but cryptography is very math heavy. |
13:38:49 | * | brainproxy quit (Ping timeout: 258 seconds) |
14:04:43 | * | Vladar joined #nim |
14:05:47 | bung | Can introduce a new flag when compile to js that disable vm gen ? some places compile time results differs from js |
14:06:10 | * | brainproxy joined #nim |
14:07:56 | bung | that's not reliable , except can directly interate with js engine take result from there. |
14:08:38 | FromDiscord | <shadow.> is there a way to use big decimals in bigint? |
14:08:41 | FromDiscord | <shadow.> (edit) "bigint?" => "bignum?" |
14:09:02 | FromDiscord | <shadow.> tryna implement chudnovsky's algorithm in nim |
14:09:08 | FromDiscord | <shadow.> did it in py fairly easily but thats python |
14:09:17 | FromDiscord | <shadow.> (edit) "tryna implement chudnovsky's algorithm ... in" added "(pi calculator)" |
14:11:30 | * | brainproxy quit (Ping timeout: 256 seconds) |
14:18:23 | PMunch | @shadow, you have rationals in bignum |
14:19:10 | PMunch | https://github.com/kaushalmodi/bignum/blob/master/src/bignum/private/rat.nim |
14:23:27 | * | luis__ joined #nim |
14:23:50 | FromDiscord | <shadow.> ooh ok |
14:24:45 | FromDiscord | <shadow.> is there any way to set precision? |
14:26:10 | PMunch | Not for those, they store everything as rationals |
14:26:26 | FromDiscord | <shadow.> ah ok |
14:26:28 | PMunch | For that you'd want to wrap a bigfloatlibrary |
14:26:28 | FromDiscord | <Rika> precision does not exactly apply to rationals |
14:26:38 | FromDiscord | <shadow.> yeah i found nim-decimal which looks interesting |
14:26:44 | FromDiscord | <shadow.> @Rika lol fair enough |
14:26:52 | FromDiscord | <Rika> those also dont exactly have precisions afaik |
14:27:16 | FromDiscord | <shadow.> fr? |
14:27:22 | FromDiscord | <shadow.> theres a setPrec() function |
14:27:41 | FromDiscord | <Rika> i mean precision loss |
14:27:54 | FromDiscord | <Rika> in the traditional float sense |
14:28:51 | FromDiscord | <shadow.> ah ye |
14:29:33 | FromDiscord | <shadow.> https://github.com/status-im/nim-decimal |
14:29:40 | FromDiscord | <shadow.> trying to use this but after installed the package wont import lmao |
14:29:47 | FromDiscord | <Rika> whats the error |
14:29:48 | FromDiscord | <shadow.> the main file is decimal.nim and thats what im importing |
14:29:51 | FromDiscord | <shadow.> one sec |
14:29:59 | FromDiscord | <shadow.> cannot open file |
14:30:02 | FromDiscord | <shadow.> (edit) "file" => "file: decimal" |
14:30:09 | FromDiscord | <shadow.> other packages work fine ofc |
14:32:42 | FromDiscord | <Rika> the nimble package is malformed |
14:32:49 | FromDiscord | <hugogranstrom> Try import Decimal |
14:32:52 | FromDiscord | <Rika> srcDir says src but new dir is decimal |
14:33:40 | FromDiscord | <shadow.> ah |
14:33:47 | FromDiscord | <hugogranstrom> The package name is capitalized for some reason |
14:33:51 | FromDiscord | <shadow.> fr? |
14:33:53 | FromDiscord | <shadow.> thats odd |
14:34:04 | FromDiscord | <shadow.> still cant open |
14:34:08 | FromDiscord | <shadow.> should i just fix the src path |
14:34:10 | FromDiscord | <hugogranstrom> :( |
14:34:17 | * | luis__ left #nim (#nim) |
14:34:23 | FromDiscord | <shadow.> where are nimble packages usually stored lmao |
14:34:27 | FromDiscord | <shadow.> bc i cant find them in my nim installation |
14:34:38 | FromDiscord | <shadow.> ima assume appdata |
14:34:38 | FromDiscord | <hugogranstrom> .nimble somewhere |
14:34:56 | FromDiscord | <hugogranstrom> Windows it's USER/.nimble I think |
14:35:03 | FromDiscord | <shadow.> a ty |
14:35:05 | FromDiscord | <shadow.> (edit) "a" => "ah" |
14:35:55 | FromDiscord | <Rika> you're gonna have to uninstall the package and git clone it (to wherever you put your nim projects), then change the nimble file, then nimble develop inside the dir |
14:36:17 | FromDiscord | <shadow.> https://media.discordapp.net/attachments/371759389889003532/776092940849381376/unknown.png |
14:36:19 | FromDiscord | <Rika> afaik, the nimble dir will not have the decimal dir since nimble deletes it? |
14:36:23 | FromDiscord | <shadow.> lmfao |
14:36:23 | FromDiscord | <Rika> exactly |
14:36:25 | FromDiscord | <shadow.> this seems a bit odd |
14:36:26 | FromDiscord | <shadow.> no code? |
14:36:27 | FromDiscord | <shadow.> lmao |
14:36:31 | FromDiscord | <Rika> i said |
14:36:44 | FromDiscord | <Rika> since the file is "malformed", nimble mistakenly deleted the code |
14:36:49 | FromDiscord | <shadow.> ah ok |
14:36:53 | FromDiscord | <Rika> so do what i said above |
14:36:56 | FromDiscord | <shadow.> kk |
14:37:48 | FromDiscord | <mratsim> strange, I don't remember adding Decimal in uppercase |
14:38:00 | FromDiscord | <mratsim> and I don't remember the uppercase being a problem :p |
14:38:15 | FromDiscord | <shadow.> lmao this is your package isnt it |
14:38:20 | FromDiscord | <shadow.> yes |
14:38:20 | * | brainproxy joined #nim |
14:38:36 | FromDiscord | <shadow.> @Rika alright i git cloned it in |
14:38:49 | FromDiscord | <Rika> now change srcdir to decimal |
14:38:52 | FromDiscord | <shadow.> kk |
14:38:59 | FromDiscord | <shadow.> done |
14:39:01 | FromDiscord | <Rika> then in the same dir do `nimble develop` |
14:39:09 | FromDiscord | <Rika> as the nimble file i mean |
14:39:19 | FromDiscord | <shadow.> wdym |
14:39:21 | FromDiscord | <Rika> then you should be able to compile your program |
14:39:31 | FromDiscord | <Rika> same dir as nimble file: run `nimble develop` |
14:39:57 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DMG |
14:40:02 | FromDiscord | <Rika> lol |
14:40:06 | FromDiscord | <shadow.> i did something dumb |
14:40:07 | FromDiscord | <shadow.> didnt i |
14:40:09 | FromDiscord | <Rika> no |
14:40:16 | FromDiscord | <Rika> i think its just because of the repo name |
14:40:19 | FromDiscord | <shadow.> ah lol |
14:40:20 | FromDiscord | <Rika> change it to just `decimal` |
14:40:23 | FromDiscord | <shadow.> kk |
14:40:49 | FromDiscord | <shadow.> invalid name |
14:40:50 | FromDiscord | <shadow.> kekw |
14:41:24 | FromDiscord | <Rika> w0t |
14:41:27 | FromDiscord | <shadow.> w0t |
14:41:39 | FromDiscord | <Rika> then idk im dumb ask someone more intelligent than a banana |
14:41:50 | FromDiscord | <shadow.> hmm |
14:41:59 | FromDiscord | <shadow.> i suppose it'd be a good idea to ask the person that made it |
14:42:05 | FromDiscord | <shadow.> @mratsim how do you recommend i install your package? |
14:42:30 | FromDiscord | <shadow.> i just realized the package is 20% html |
14:42:33 | FromDiscord | <shadow.> lol |
14:42:49 | FromDiscord | <shadow.> (on github ofc not once installed) |
14:42:51 | FromDiscord | <Rika> Probably documentation |
14:43:11 | FromDiscord | <shadow.> yeye |
14:43:19 | FromDiscord | <shadow.> i mean i could use bignum rat |
14:43:30 | FromDiscord | <shadow.> but i dont think thats good for pi is it |
14:43:42 | FromDiscord | <shadow.> especially when im limited to like around 14 digits per iteration |
14:43:47 | FromDiscord | <shadow.> so if i go higher precision |
14:43:49 | FromDiscord | <shadow.> then it wont be correct |
14:47:58 | * | waleee-cl joined #nim |
14:49:32 | FromDiscord | <mratsim> normally it's nimble install decimal |
14:50:05 | FromDiscord | <shadow.> oh lemme try that i suppose lmao |
14:50:11 | FromDiscord | <mratsim> but do you need bigint or bigfloat? |
14:50:15 | FromDiscord | <shadow.> bigfloat |
14:50:19 | FromDiscord | <shadow.> for pi calculation |
14:50:24 | FromDiscord | <shadow.> to arbitrary digits |
14:50:30 | FromDiscord | <mratsim> okay. Also make sure to check JohnAD Decimal128 package |
14:50:32 | FromDiscord | <mratsim> ah |
14:50:52 | FromDiscord | <mratsim> then yeah you have to use nim-decimal. It's pretty raw though since I didn't end up needing it so far |
14:50:59 | FromDiscord | <shadow.> rip |
14:51:03 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DMM |
14:51:08 | FromDiscord | <shadow.> thats the python implementation |
14:51:10 | FromDiscord | <shadow.> tryna recreate in nim |
14:51:20 | * | astronavt joined #nim |
14:51:56 | FromDiscord | <Rika> uh rename the package folder to `nim_decimal` |
14:52:22 | FromDiscord | <Rika> i dont know why `decimal` doesnt work, prolly related to why the package name is caps D `Decimal` |
14:52:51 | FromDiscord | <Rika> @shadow. ^ |
14:53:48 | FromDiscord | <shadow.> ah ok |
14:53:53 | FromDiscord | <shadow.> lemme re git clone it i deleted it :KEKW: |
14:53:55 | FromDiscord | <shadow.> (edit) removed ":KEKW:" |
14:54:58 | FromDiscord | <shadow.> still did not work |
14:55:13 | FromDiscord | <shadow.> @Rika rip |
14:55:29 | FromDiscord | <Rika> eeeh |
14:55:33 | FromDiscord | <Rika> whats the error again |
14:55:51 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DMP |
14:56:18 | FromDiscord | <Rika> what the heeeeck |
14:57:12 | FromDiscord | <shadow.> weird |
14:57:37 | FromDiscord | <shadow.> fixed it |
14:57:43 | FromDiscord | <shadow.> it needed a version number at the end |
14:57:46 | FromDiscord | <shadow.> nim-decimal-0.1 |
14:57:57 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DMR |
14:57:58 | FromDiscord | <shadow.> lol |
14:58:31 | FromDiscord | <Rika> ????????????????? |
14:58:35 | FromDiscord | <shadow.> i think that means its good |
14:58:36 | FromDiscord | <Rika> okay........ |
14:58:39 | FromDiscord | <Rika> yes |
14:58:44 | FromDiscord | <shadow.> i changed the package name to decimal |
14:58:48 | FromDiscord | <shadow.> now its complaining theres two files in src |
14:58:49 | FromDiscord | <shadow.> LMAO |
14:58:52 | FromDiscord | <shadow.> but it worked |
14:58:53 | FromDiscord | <shadow.> ty |
14:59:27 | FromDiscord | <mratsim> >_> |
14:59:34 | FromDiscord | <shadow.> lool |
14:59:39 | FromDiscord | <mratsim> Nimble warnings are so annoying |
14:59:54 | FromDiscord | <Rika> lol yeah |
14:59:58 | FromDiscord | <mratsim> but don't worry even Nim zip package had this warnings iirc |
15:00:51 | FromDiscord | <shadow.> lol |
15:01:29 | FromDiscord | <shadow.> now my linter isnt working with the package |
15:01:32 | FromDiscord | <shadow.> gotta love it |
15:01:33 | FromDiscord | <shadow.> loll |
15:01:43 | FromDiscord | <Rika> amazing |
15:01:51 | FromDiscord | <Rika> congrats welcome to nim xddd |
15:02:06 | FromDiscord | <shadow.> faxx |
15:02:24 | FromDiscord | <mratsim> Wait until you use a package that means instant death to nimsuggest (like Weave) |
15:03:50 | FromDiscord | <shadow.> klmfao |
15:03:52 | FromDiscord | <shadow.> (edit) "klmfao" => "lmfao" |
15:04:03 | FromDiscord | <shadow.> i mean to be fair its at least better than dynamic languages |
15:04:08 | FromDiscord | <shadow.> python suggest shudders |
15:04:44 | FromDiscord | <Rika> eh idk i like nim's syntax and compiler enough to forgive its other tooling |
15:05:30 | FromDiscord | <shadow.> yeye |
15:05:50 | FromDiscord | <shadow.> `mpd_ssize_t` |
15:05:53 | FromDiscord | <shadow.> sheesh |
15:06:12 | FromDiscord | <shadow.> lookin like a whole c++ type |
15:06:13 | FromDiscord | <shadow.> lol |
15:06:29 | * | tane joined #nim |
15:07:04 | FromDiscord | <lqdev> nimsuggest is so buggy that it led me to abandoning nvim in favor of lite just because i couldn't bear my highlighting disappearing every 2 minutes |
15:07:30 | FromDiscord | <shadow.> not me using vscode- |
15:07:31 | FromDiscord | <shadow.> ASNDOASJDOJASD |
15:08:49 | FromDiscord | <shadow.> how can i use setPrec with a uint64 if it needs an mpd_ssize_t |
15:09:31 | FromDiscord | <shadow.> i dont see a conversion lol |
15:13:11 | * | vicfred joined #nim |
15:14:17 | FromDiscord | <mratsim> https://github.com/status-im/nim-decimal/blob/master/decimal/decimal_lowlevel.nim#L120 |
15:14:20 | * | PMunch quit (Quit: leaving) |
15:14:31 | FromDiscord | <mratsim> rough I said ๐ |
15:14:41 | FromDiscord | <mratsim> that's autogenerated |
15:15:11 | FromDiscord | <lqdev> ever since i stopped using nimsuggest my life has become so much better |
15:15:19 | FromDiscord | <lqdev> less memory usage |
15:15:22 | FromDiscord | <lqdev> less frustration |
15:15:34 | FromDiscord | <lqdev> less crashes |
15:15:51 | FromDiscord | <lqdev> more syntax highlighting |
15:15:59 | FromDiscord | <lqdev> less rm -rf ~/.cache/nim |
15:16:06 | FromDiscord | <shadow.> ohh ok |
15:16:07 | FromDiscord | <shadow.> hmm |
15:16:13 | FromDiscord | <shadow.> ah i see |
15:16:23 | FromDiscord | <mratsim> less 100%CPU that are annoying on benchmarks because you forgot about them |
15:16:29 | FromDiscord | <shadow.> int64 works ty |
15:16:34 | FromDiscord | <lqdev> @mratsim yes |
15:16:50 | FromDiscord | <lqdev> i hope IC will improve nimsuggest's speed |
15:17:04 | FromDiscord | <lqdev> because right now i'm so happy without it that i'm definitely not coming back |
15:17:23 | FromDiscord | <lqdev> the basic context-free autocomplete lite provides is more than enough for me |
15:17:55 | * | brainproxy quit (Read error: Connection reset by peer) |
15:27:03 | * | leorize quit (Ping timeout: 240 seconds) |
15:30:16 | * | vicfred quit (Quit: Leaving) |
15:30:26 | * | leorize joined #nim |
15:33:40 | FromGitter | <bung87> IC means what? |
15:34:54 | FromDiscord | <lqdev> incremental compilation |
15:35:34 | FromDiscord | <lqdev> @Clyybberrrrrrrrrrrrrrr your bugfix for `internal error: environment misses 'thing'` doesn't seem to work |
15:36:31 | disruptek | nimsuggest will be faster under ic, yes. |
15:36:42 | FromGitter | <bung87> I remenber it stop development |
15:36:43 | disruptek | it'll be changed to merely use the ic artifacts. |
15:37:48 | disruptek | but honestly, it's never been a problem for me. |
15:39:04 | FromDiscord | <lqdev> you haven't used nimsuggest while developing my game, then. |
15:39:13 | FromDiscord | <lqdev> it's so paaaaaaaainfully slow |
15:39:33 | disruptek | why? |
15:40:17 | FromDiscord | <lqdev> god knows why |
15:41:57 | * | vicfred joined #nim |
15:44:31 | disruptek | well, then i wouldn't pin your hopes on ic making it faster. |
15:45:58 | FromDiscord | <lqdev> my project takes long to compile |
15:46:00 | FromDiscord | <lqdev> almost 8 seconds |
15:46:14 | FromDiscord | <lqdev> that's why i think IC would make nimsuggest faster |
15:46:35 | FromDiscord | <lqdev> it's really slow only in modules that need a lot of other modules compiled |
15:46:57 | FromDiscord | <lqdev> so it's fine in a small module like `common` which maybe contains one or two types declared |
15:47:06 | FromDiscord | <lqdev> but slow in modules like `player` which depend on a lot of the game |
15:47:10 | disruptek | 8 seconds is not a long time. |
15:47:40 | FromDiscord | <lqdev> yeah, imagine typing `player.` and waiting 8 seconds until suggestions pop up. |
15:48:00 | FromDiscord | <lqdev> it's not a long time to compile, but for suggestions it's painful. |
15:48:14 | FromDiscord | <lqdev> same with nim.nvim's semantic syntax highlighting |
15:48:14 | disruptek | are you saying suggests happen automatically? |
15:48:23 | disruptek | and can you gimme a repro? |
15:48:30 | FromDiscord | <lqdev> that's how i have them set up |
15:48:51 | disruptek | well then, enjoy your setup. |
15:48:54 | FromGitter | <bung87> that is not the case , graph build on first time |
15:48:58 | FromDiscord | <lqdev> try opening this module with nim.nvim and see how long it takes to highlight https://github.com/liquid600pgm/planet-overgamma/blob/rapid/src/planet_overgamma/world.nim |
15:49:39 | disruptek | i always ready it as 600 gallons per minute and it fucks me up. |
15:49:57 | FromGitter | <bung87> suggest methods usual not recompile module |
15:50:42 | disruptek | how can i clone this? |
15:50:45 | * | dddddd quit (Ping timeout: 240 seconds) |
15:51:45 | disruptek | the world.nim find in src highlights instantly but nimsuggest crashes. |
15:52:04 | FromDiscord | <lqdev> pfffffff that too |
15:52:13 | FromGitter | <bung87> nim.nvim highlight? |
15:52:20 | FromDiscord | <lqdev> for me removing ~/.cache/nim works |
15:52:25 | FromDiscord | <lqdev> but it's a band-aid solution |
15:52:32 | disruptek | not for me. |
15:52:42 | FromDiscord | <lqdev> then i have no clue. |
15:52:49 | disruptek | neither 1.4 or 1.5. |
15:53:06 | FromDiscord | <lqdev> and 1.2 ain't gonna work because the code was written against 1.4. |
15:53:06 | FromGitter | <bung87> suggest does not have highlight |
15:53:17 | FromDiscord | <lqdev> @bung87 it does |
15:53:25 | FromDiscord | <lqdev> https://github.com/alaviss/nim.nvim |
15:53:52 | FromDiscord | <lqdev> disruptek: does nimsuggest output anything if you try running it from your terminal? |
15:54:18 | disruptek | yeah, SIGSEGV. |
15:55:01 | FromDiscord | <lqdev> wut |
15:55:11 | disruptek | crashing in a lastSon call on type relation. |
15:56:13 | FromGitter | <bung87> no it' s extension feature nimsuggest does not |
15:56:30 | disruptek | ic will make nimsuggest faster for sem, but it won't magically make the compiler not crash. |
15:57:06 | disruptek | every time i use gdb i wonder why no one has bothered to fix the name mangling. |
15:57:15 | disruptek | lame. |
15:57:41 | * | rockcavera quit (Remote host closed the connection) |
15:58:29 | FromGitter | <bung87> the first problem is define project structure |
16:05:55 | ForumUpdaterBot | New thread by BarrOff25: Changing alignment requirement of object type?, see https://forum.nim-lang.org/t/7074 |
16:06:23 | * | leorize quit (Ping timeout: 240 seconds) |
16:14:59 | * | leorize joined #nim |
16:16:09 | * | xet7 quit (Remote host closed the connection) |
16:16:21 | * | fredrikhr quit (Read error: Connection reset by peer) |
16:17:34 | * | xet7 joined #nim |
16:18:46 | FromGitter | <eagledot> @mratsim Do i need visual Studio to make arraymancer work with cuda on windows? |
16:20:35 | FromDiscord | <mratsim> Good question, Windows is a notoriously bad platforms for Cuda, right behind Mac (but because there is no more Nvidia GPU/drivers for Mac) |
16:21:22 | FromDiscord | <mratsim> I think it might work with LLVM |
16:21:35 | FromDiscord | <mratsim> because the Nvidia compiler is now a LLVM extension |
16:22:02 | FromDiscord | <mratsim> the main issue is that the LLVM is always lagging behind CUDA (so you need LLVM trunk to use the latest Cuda version) |
16:22:45 | FromDiscord | <mratsim> See here: https://gist.github.com/ax3l/9489132#clang--x-cuda |
16:23:55 | FromDiscord | <mratsim> For proper compiler configuration you would need to have a nim.cfg with those changes: https://github.com/mratsim/Arraymancer/blob/master/nim.cfg#L25-L30 |
16:24:04 | FromGitter | <eagledot> i was able to run examples in nimcuda (https://github.com/unicredit/nimcuda) with precompiled DLLs only.Also wanted to understand why need ``nvcc`` for arraymancer, is it because som cuda code is being emitted by nim? |
16:24:25 | FromDiscord | <mratsim> Yes, Arraymancer generates cuda code |
16:25:34 | FromDiscord | <mratsim> I think WSL now supports GPU so it might work under WSL |
16:26:12 | disruptek | my testes have revealed another arc win. |
16:26:29 | disruptek | 14.5s for skiplists torture test turned into 5.5s under arc. |
16:27:46 | FromGitter | <eagledot> @mratism Thanks . Your discussion and explanations in issues are also a big help. |
16:29:08 | FromGitter | <eagledot> Do i need -d:danger flag with every compilation? |
16:29:43 | FromGitter | <eagledot> Because on windows i was getting error with -d:danger flag. |
16:32:20 | FromDiscord | <mratsim> no |
16:32:31 | FromDiscord | <mratsim> if it's still there it's a leftover from 0.20 |
16:33:04 | FromGitter | <eagledot> So speed wouldnot suffer i am not using -d:danger flag anymore? |
16:34:17 | * | rockcavera joined #nim |
16:37:03 | * | leorize quit (Ping timeout: 240 seconds) |
16:40:20 | FromDiscord | <mratsim> no |
16:40:26 | FromDiscord | <mratsim> but do use release |
16:40:39 | FromDiscord | <mratsim> actually yes it can for some stuff |
16:41:03 | disruptek | release includes assertions now. |
16:41:29 | FromDiscord | <mratsim> dangers avoid bounds check to ensure that if you do foo[5] there is no check that is added to verify that 5 is within foo size |
16:42:24 | FromDiscord | <mratsim> in the future move (PR change to pointer+len) for most of the stuff I will use unchecked primitives so it wouldn't matter |
16:42:32 | FromDiscord | <mratsim> but it might still matter with the current backend. |
16:44:36 | * | leorize joined #nim |
17:22:04 | * | apahl quit (Ping timeout: 240 seconds) |
17:23:24 | * | apahl joined #nim |
17:35:37 | * | habamax quit (Ping timeout: 265 seconds) |
17:45:57 | * | hnOsmium0001 joined #nim |
17:48:43 | * | leorize quit (Ping timeout: 240 seconds) |
17:49:31 | * | leorize joined #nim |
17:53:36 | * | natrys joined #nim |
18:04:32 | * | dddddd joined #nim |
18:04:58 | * | astronavt quit (Ping timeout: 256 seconds) |
18:06:19 | * | bung quit (Quit: Lost terminal) |
18:14:30 | * | xet7 quit (Quit: Leaving) |
18:20:50 | * | abm quit (Quit: Leaving) |
18:24:02 | * | Kaivo quit (Quit: WeeChat 2.9) |
18:29:43 | * | leorize quit (Ping timeout: 240 seconds) |
18:30:10 | FromDiscord | <For Your Health> sent a code paste, see https://play.nim-lang.org/#ix=2DOb |
18:31:15 | FromDiscord | <For Your Health> (edit) "https://play.nim-lang.org/#ix=2DOb" => "https://play.nim-lang.org/#ix=2DOc" |
18:31:44 | FromDiscord | <For Your Health> I'm probably doing something silly though, I'm not very good at Nim yet |
18:33:54 | * | leorize joined #nim |
18:37:05 | * | Vladar quit (Remote host closed the connection) |
18:39:43 | * | Vladar joined #nim |
18:44:07 | FromDiscord | <mratsim> Does updateGame has a var parameter? |
18:44:19 | FromDiscord | <mratsim> you can't capture a mutable parameter |
18:45:39 | FromDiscord | <For Your Health> Yeah, self is a var parameter. |
18:46:34 | FromDiscord | <For Your Health> If I can't capture a mutable parameter, I'm a bit lost on how to encapsulate the logic of a fixed timestep. Maybe I'm going about the idea wrong. |
18:47:45 | FromDiscord | <For Your Health> sent a code paste, see https://play.nim-lang.org/#ix=2DOh |
18:49:40 | FromDiscord | <lqdev> why'd you even make this into an object? |
18:51:25 | FromDiscord | <For Your Health> I'm not a super experienced programmer so I'm probably doing something dumb. However, I made it into an object because I need to keep track of some mutable state (the accumulator) |
18:51:45 | FromDiscord | <For Your Health> Also the interpolation, but that could be returned from the function I suppose |
18:52:24 | FromDiscord | <For Your Health> Is there a cleaner way of doing this? |
18:54:35 | FromDiscord | <lqdev> sure is https://github.com/liquid600pgm/rapid/blob/master/src/rapid/game.nim#L9 |
18:55:00 | FromDiscord | <lqdev> not only cleaner but also more efficient as you're not creating a closure |
18:55:00 | FromDiscord | <nikki> @For Your Health you could make it a template that embeds the frame body |
18:58:50 | FromDiscord | <mratsim> Or have your Frame carry the time: https://github.com/mratsim/trace-of-radiance/blob/master/trace_of_radiance/scenes_animated.nim#L53-L63 |
18:59:34 | FromDiscord | <mratsim> and then your step is straightforward: https://github.com/mratsim/trace-of-radiance/blob/master/trace_of_radiance/scenes_animated.nim#L159-L170 |
19:01:03 | FromDiscord | <For Your Health> Thanks for the help so far everyone. Those links are a little beyond my comprehension at the moment but I will study them until I understand. I am very much stuck in OOP land as a programmer and trying to expand my mind to other ideas. |
19:01:49 | FromDiscord | <mratsim> it wouldn't be safe in OOP as well. |
19:02:33 | FromDiscord | <mratsim> what you did was capturing a pointer (because mutation) in a closure but that pointer is only valid for the duration of the proc while your closure would outlive it |
19:02:57 | FromDiscord | <mratsim> (that's borrow checking in Rust terms) |
19:04:10 | FromDiscord | <mratsim> sent a long message, see http://ix.io/2DOp |
19:04:21 | FromDiscord | <mratsim> possibly more |
19:04:54 | FromDiscord | <mratsim> there are various tradeoff in terms of speed (cache/memory locality, cache misses) , extensibility and ergonomics though |
19:05:32 | FromDiscord | <nikki> the main thing seems to be they want to have a utility that wraps a fixed timestep (with an accumulator) and parameterizes over the frame body |
19:05:44 | FromDiscord | <mratsim> well it would be safe actually in most OOP languages because they always allocate on the heap, but in C++ you would have issues |
19:05:59 | FromDiscord | <nikki> in c++ it works out with a reference capture |
19:06:14 | FromDiscord | <nikki> the closure is immediately executed and never held |
19:06:21 | FromDiscord | <nikki> it would probably be inlined |
19:06:26 | FromDiscord | <For Your Health> My main goal was to completely encapsulate the logic behind doing a fixed physics timestep without any other concerns. |
19:06:42 | FromDiscord | <mratsim> proc step(param1, param2) |
19:06:54 | FromDiscord | <mratsim> or use a template |
19:07:21 | FromDiscord | <mratsim> that would have the least impact on your code |
19:07:28 | FromDiscord | <nikki> the template that takes the body is the simplest soln |
19:08:01 | FromDiscord | <nikki> @For Your Health what is outside comprehension re: the template + body soln? |
19:08:11 | FromDiscord | <nikki> i don't think it's about OO or not OO |
19:08:26 | FromDiscord | <mratsim> proc update(self: var FixedTimestep, deltaDuration: Duration, updateStatement: untyped) =โตโต^new signature |
19:08:45 | FromDiscord | <mratsim> and then in the body just do "updateStatement" |
19:09:01 | FromDiscord | <nikki> does proc need to be template there? |
19:09:11 | FromDiscord | <nikki> or does proc automatically define a template if some param is untyped |
19:09:14 | FromDiscord | <mratsim> and call the template with self.update(deltaDuration, updateGame(self)) |
19:09:20 | FromDiscord | <nikki> also the param can be typed, no identifiers are unbound |
19:09:48 | FromDiscord | <mratsim> you need to make it an explicit template |
19:10:55 | FromDiscord | <For Your Health> @nikki A lot at the moment. I haven't had a good look at it yet. I am not super savvy with templates yet, I'm not sure what the inject pragma does, have no idea what monotimes is, and I'm not sure what the various block: lines are for. |
19:11:37 | FromDiscord | <mratsim> you don't need the inject pragma, monotimes is a monotonic clock library |
19:11:46 | FromDiscord | <nikki> ok, all of that other stuff is unnecessary. the main thing is |
19:11:48 | FromDiscord | <mratsim> template are for literal substitution |
19:12:09 | FromDiscord | <nikki> ^ that part. and you can just take a body parameter and inject it into the middle of your loop |
19:12:28 | FromDiscord | <mratsim> so you won't create a closure at runtime, you copy paste the template body at compile-time |
19:13:00 | FromDiscord | <Daniel> today i read this:โตhttps://blog.johnnovak.net/2017/04/22/nim-performance-tuning-for-the-uninitiated/โตโตWhile i am not a programmer, ...well learning atm, from this text apparently "ref" completely slowed nim performance after compilation, quite interesting to me who is discovering programming in general. |
19:13:08 | disruptek | Araq: should i add nimph to important packages? it's broken by idgen changes. |
19:13:14 | FromDiscord | <For Your Health> I see. So essentially I am encapsulating the logic of a fixed physics update through metaprogramming? |
19:13:33 | FromDiscord | <nikki> honestly, it's not a huge change from what you already have |
19:13:43 | FromDiscord | <nikki> you want to pass code to run by passing a closure? pass a `body: typed` instead |
19:13:48 | FromDiscord | <Daniel> only atfer removing ref, nim comes to C level performance |
19:13:56 | FromDiscord | <mratsim> "automated copy-pasting" is a better way to put it, this is as soft as metaprogramming can be here |
19:13:58 | FromDiscord | <nikki> neither approach is more metaprogrammy than the other |
19:14:07 | FromDiscord | <nikki> i can write a whole example if that helps, brb |
19:14:26 | FromDiscord | <For Your Health> @nikki That would be greatly appreciated |
19:14:35 | FromDiscord | <mratsim> @Daniel it's due to something due to memory locality and cache misses |
19:14:52 | FromDiscord | <mratsim> a ref allocate on the heap just like malloc/free |
19:14:53 | FromDiscord | <nikki> i think this is discernible by just reading about templates in the nim manual though |
19:15:08 | FromDiscord | <nikki> there's no need to psych oneself out with all of the other extra stuff like the other stuff you saw in the github links sent, or the word metaprogramming |
19:15:13 | FromDiscord | <mratsim> The heap is slower than the stack for repeated alloc/dealloc |
19:15:30 | FromDiscord | <mratsim> because it has way more overhead |
19:15:43 | FromDiscord | <For Your Health> I don't mind metaprogramming. In fact I think it is a really elegant and powerful idea. I just always seem to get confused by it |
19:15:55 | FromDiscord | <mratsim> so don't allocate refs in compute sensitive part of your code. |
19:16:14 | FromDiscord | <nikki> i think the confusion came from github links having a bunch of other stuff |
19:16:28 | FromDiscord | <nikki> https://play.nim-lang.org/#ix=2DOs |
19:16:31 | FromDiscord | <Daniel> but when is using ref necessary?...can everything be done without it? |
19:16:32 | FromDiscord | <nikki> here's the minimal example |
19:17:03 | FromDiscord | <nikki> @For Your Health does this example make sense? can build up from there |
19:17:22 | FromDiscord | <For Your Health> I understand the example, but I'm not sure what the point of 'typed' vs 'untyped' is |
19:17:25 | FromDiscord | <nikki> @Daniel refs are pointers to heap allocations, and also ask nim to manage when to free the heap allocation |
19:17:53 | FromDiscord | <nikki> @For Your Health so for now, if you skip that thing (i'll explain it) does it make sense that if you change your frame function tobe a template, and then pass the body as a `body: typed` and mention body where you called the closure -- that it would work? |
19:17:54 | FromDiscord | <mratsim> It depends on your application. Usually ref are used to represent unique resources, i.e. you cannot use a database connection for another, they are not "fungible" just like even if 2 persons are of the same height, same number of arms and feet they are not necessarily the same. |
19:18:18 | FromDiscord | <mratsim> In that case, refs make sense. |
19:18:56 | FromDiscord | <nikki> @For Your Health typed vs. untyped is just saying whether to typecheck the body before or after substitution |
19:19:01 | FromDiscord | <mratsim> Also for large objects you want ref because there is just not enough stack memory |
19:19:16 | FromDiscord | <mratsim> (over 2MB) |
19:19:45 | FromDiscord | <nikki> @For Your Health an example where you want it to be `untyped` is -- if your template defines some variable that the body uses. in this case if the body is typechecked before expanding the template, that variable would be undefined |
19:20:39 | FromDiscord | <nikki> re: the refs thing -- you can also use heap memory without using refs, but yeah. eg. if you have a Table with a bunch of values, the values are not in stack memory (it's in a seq, and seqs allocate heap memory for their values) |
19:20:53 | FromDiscord | <nikki> you can also just alloc0 etc. |
19:21:40 | FromDiscord | <For Your Health> @nikki It's making some sense. I probably need to play around with it a bit to get an understanding. Templates haven't quite clicked for me yet. |
19:21:46 | FromDiscord | <nikki> @For Your Health i don't think the typed vs. untyped thing is clear right off the bat. i think it helps to just ... trust it for now and kinda just go with the `body: typed` thing, and after using templates a couple times it'll settle in |
19:21:52 | FromDiscord | <mratsim> anyway if your interested in this topic @Daniel the entry point to the rabbit hole is a google search on Value object vs Reference object and look into C++ and Rust related info |
19:22:14 | FromDiscord | <nikki> i think an important distinction though @mratsim is that in nim's case it's more than value vs. ref distinction |
19:22:24 | FromDiscord | <nikki> a big part is that in nim they are managed too, and that in eg. arc it adds refcounts |
19:22:29 | FromDiscord | <mratsim> indeed |
19:22:31 | FromDiscord | <nikki> personally i reach for ref, when that entire semantics is the semantics i want |
19:22:45 | FromDiscord | <nikki> it's an owned ref (unless it's {.cursor.}) |
19:22:53 | FromDiscord | <mratsim> Indeed, also there are atleast 2 or 3 related topics where I expand on that on the Nim forum |
19:23:18 | FromDiscord | <nikki> @For Your Health tbh there's not much of a click. hmmm maybe one way to address it is -- what's your programming background? |
19:23:21 | FromDiscord | <nikki> have you written c++ before? |
19:23:39 | FromDiscord | <nikki> or c |
19:23:59 | FromDiscord | <nikki> if so i'd say it's like a real version of macros, instead of substituting text, it's working on a syntactic understanding of the source code |
19:24:08 | FromDiscord | <For Your Health> My background is I'm an almost completely self taught hobbyist. I have written tons of different languages including c and c++, but I'm not very good |
19:24:34 | FromDiscord | <nikki> yeah so invoking a template causes the compiler to say "oh, ok, i'll go take the template, splice in the parameters, and replace this code with that" |
19:24:46 | FromDiscord | <Daniel> tnx, googled now about it, my head is exploding ๐ |
19:25:01 | FromDiscord | <For Your Health> So templates aren't like rust macros in that they literally write code? |
19:25:08 | FromDiscord | <nikki> @Daniel it's good to keep doing a mix of just using things (practice) and reading up, you'll get used to it ๐ |
19:25:15 | FromDiscord | <For Your Health> (edit) "So templates aren't like rust macros in that they ... literally" added "don't" |
19:25:48 | FromDiscord | <nikki> they do. would you say my earlier description (in quotes) involves writing code, or no? |
19:26:15 | FromDiscord | <nikki> the description is actually what happens, you could interpret that as writing or not |
19:27:11 | FromDiscord | <For Your Health> What threw me off is you saying "instead of substituting text, it's working on a syntactic understanding of the source code" |
19:27:25 | FromDiscord | <nikki> ah ok. so lemme think about how to explain that difference |
19:27:43 | FromDiscord | <nikki> so in C, say you have a macro like |
19:28:06 | FromDiscord | <nikki> #define add(a, b) a + b |
19:28:17 | FromDiscord | <nikki> when the C compiler encounters a usage of this macro like |
19:28:22 | FromDiscord | <nikki> add(f(), 3) |
19:28:37 | FromDiscord | <nikki> it is taking the text f() and the text 3, and substituting a and b with them in the macro, to get f() + 3 |
19:28:50 | FromDiscord | <nikki> and then it substitutes the whole add(f(), 3) for that result in the invocation |
19:29:11 | FromDiscord | <For Your Health> Yeah that much I understand |
19:29:11 | FromDiscord | <nikki> just checking if this is understood, once we're in sync on this we can compare it to nim's templates |
19:29:15 | FromDiscord | <nikki> cool that's good |
19:29:25 | FromDiscord | <nikki> now in nim's template case what' shappening is |
19:29:55 | FromDiscord | <nikki> template add(a: typed, b: typed): a + b |
19:30:00 | FromDiscord | <nikki> when the compiler sees |
19:30:04 | FromDiscord | <nikki> add(f(), 3) |
19:30:17 | FromDiscord | <nikki> at this point, the compiler has already parsed the source code |
19:30:29 | FromDiscord | <nikki> so add is in the form AddCall ( LeftChild, RightChild ) |
19:30:37 | FromDiscord | <nikki> and then the LeftChild is f call () |
19:30:41 | FromDiscord | <nikki> and the right child is Three |
19:30:55 | FromDiscord | <nikki> it actually doesn't look like this, it's the whole structure defined by the AST structures in macros.nim |
19:31:07 | FromDiscord | <nikki> but the higher level point is: this is at a later stage of compilation |
19:31:09 | FromDiscord | <nikki> parsing is done already |
19:31:34 | FromDiscord | <nikki> in the C case, the macro substitution was done by the C preprocessor before doing any parsing of actual C |
19:32:01 | FromDiscord | <nikki> in any case, the compiler understands that add is a template, and then splices the f call ast and the 3 ast into the ... + ... AST |
19:32:19 | FromDiscord | <nikki> so it's not text manipulation, it's manipulation of those data structures that represent the code |
19:32:24 | FromDiscord | <nikki> for this case, it seems trivial and not that different |
19:32:48 | FromDiscord | <For Your Health> It makes much more sense now. I guess my idea of metaprogramming was limited to C perspective of doing literal text manipulation. |
19:32:56 | FromDiscord | <nikki> but the real power comes when you want to do stuff like "ok, for each paramaeter, if it's a statement, do this. if it's a number, do this other thing" etc. -- if you want more intelligent logic that uses the fact that it's already parsed |
19:32:58 | FromDiscord | <For Your Health> Also the word 'template' threw me off a bit coming from c++ |
19:33:26 | FromDiscord | <nikki> yeah there is no identification of the template concept in c++ with that in nim |
19:34:04 | FromDiscord | <nikki> maybe nim generics are similar ish, but, not worth comparing that much imo. better to study each for its own independent definition / usage |
19:35:34 | FromDiscord | <nikki> but yeah templates and macros let you program the compiler's manipulation of parsed structure of your source code, basically |
19:35:52 | FromDiscord | <For Your Health> That is really cool. Seems very powerful. |
19:36:09 | FromDiscord | <nikki> if you want to see a specific usage that i benefited from just a few days ago |
19:36:37 | FromDiscord | <nikki> i've been working on a game engine kinda thing that runs natively, but also in the browser through nim->c->wasm->... |
19:36:45 | FromDiscord | <nikki> i wanted to call out to http://google.github.io/incremental-dom/ to render DOM elements |
19:37:00 | FromDiscord | <For Your Health> That sounds right up my alley. I'll take a look |
19:37:31 | FromDiscord | <nikki> oh i just have a private repo with my engine haha, i just started working on it a couple weeks ago porting some c++ work |
19:37:32 | FromDiscord | <nikki> anyways |
19:37:56 | FromDiscord | <nikki> in that link -- you can see how this lib has you write elementOpen(...); child(); child(); elementClose(...); right? |
19:38:18 | FromDiscord | <For Your Health> Yeah |
19:38:50 | FromDiscord | <nikki> i just had a macro that let me write a more concise syntax for it |
19:38:52 | FromDiscord | <nikki> https://media.discordapp.net/attachments/371759389889003532/776169087800836166/unknown.png |
19:39:14 | FromDiscord | <nikki> the `elem` macro basically takes a html node name, and a bunch of attributes, and the body has code to run within it, which is usually some logic plus child elements |
19:39:53 | FromDiscord | <nikki> in this case it's a macro, not a template. and it iterates through the ast and produces the code required. it sounds more complicated than it really is |
19:40:26 | FromDiscord | <For Your Health> Yeah I've seen some macro code and that is way over my head currently. |
19:40:48 | FromDiscord | <nikki> https://media.discordapp.net/attachments/371759389889003532/776169569701986324/unknown.png |
19:41:02 | FromDiscord | <nikki> here's for example what that last ui.box: ui.text "fps: " ... expands out to |
19:41:36 | FromDiscord | <For Your Health> That's cool. Definitely saves a lot of typing! |
19:41:58 | FromDiscord | <nikki> yeah a big thing is preventing mistakes, and also allowing you to change the api used underneath, but keep the same api |
19:42:18 | FromDiscord | <nikki> like, i may be interested in making a native ui layer that implements this, after having prototyped uis in the web/dom |
19:43:43 | FromDiscord | <nikki> https://gist.github.com/nikki93/d33d38ffe03dd0cf41d523cb1bc28ed3 |
19:43:45 | FromDiscord | <nikki> this is the macro itself |
19:43:48 | FromDiscord | <For Your Health> I'll have to dedicate some time to learning more about macros and templates. It always seems to be the answer to various problems I have. |
19:44:15 | FromDiscord | <nikki> i was following the "nim in action" book to learn nim, and the metaprogramming chapter in the end was good |
19:44:47 | FromDiscord | <nikki> the `nnkStmtList` etc. is me checking "hey is this a statement list? oh ok let's put that there then" |
19:46:09 | FromDiscord | <For Your Health> I might have to break down and buy that book. I just haven't because I am flip flopping a lot on languages |
19:46:46 | FromDiscord | <nikki> yeah i had a language exploration phase in the last 8 months. went through go, c++, zig, some rust |
19:47:04 | FromDiscord | <nikki> i checked nim out early in that and a benchmark of recursive fib showed it to be slow, turns out i didn't enable d:danger and then it was fast or faster than the others |
19:47:04 | FromDiscord | <For Your Health> I'm in language exploration hell right now |
19:47:15 | FromDiscord | <nikki> in any case, i think the book is very worth it |
19:47:40 | FromDiscord | <nikki> nim in particular has had the best combo among those |
19:47:57 | FromDiscord | <nikki> re: c++; i'd written it a ton for a while. i was just picking up and digging into the more modern c++ concepts |
19:48:04 | FromDiscord | <For Your Health> Yeah nim seems like a solid language. |
19:48:49 | FromDiscord | <For Your Health> I hear the c and c++ interop is really good and that is something I am interested in |
19:49:38 | FromDiscord | <Daniel> now when you mention language exploration phase, i am still going through that phase, ...for me as a begginer in programing, without any legacy or influence from any other language, so far nim seems like good choice...however i am not completely sure if i wil be able to create what i set a goal, windows desktop application with gui |
19:50:06 | FromDiscord | <Daniel> (edit) "now when you mention language exploration phase, i am still going through that phase, ...for me as a begginer in programing, without any legacy or influence from any other language, so far nim seems like good choice...however i am not completely sure if i wil be able to create what i set ... a" added "as" |
19:50:09 | FromDiscord | <nikki> @Daniel in the beginning you kinda just have to keep doing stuff. any thing you do is productive and you learn from |
19:50:22 | FromDiscord | <nikki> don't psych out on specific goals and whether they will be achieved or not |
19:50:34 | FromDiscord | <nikki> you may discover that you like building something else along the way, who knows ๐ |
19:50:35 | FromDiscord | <haxscramper> Automatic C++ interop is not really good, but if you want to wrap something manually this is quite easy - for example https://discord.com/channels/371759389889003530/371759389889003532/757703554734751754 |
19:50:59 | FromDiscord | <nikki> and @For Your Health yeah the c++ interop is among the best. i was able to wrap entt which is template heavy |
19:51:16 | FromDiscord | <haxscramper> By C++ I mean specifically - classes and template hell like stdlib |
19:51:22 | FromDiscord | <nikki> the main reason it works out is it compiles to c or c++ so you're just interacting among structures within the same language |
19:51:29 | FromDiscord | <nikki> vs. using ffi, where templates just don't exist |
19:52:38 | FromDiscord | <For Your Health> I'll definitely be doing more research into that when I get around to it. I am interested in doing game dev and using the bullet physics engine |
19:52:45 | FromDiscord | <nikki> also looking at the generated c is really instructive when learning or using nim |
19:52:59 | FromDiscord | <nikki> great way to just know what something does imo |
19:53:22 | FromDiscord | <nikki> wrapping bullet should be fine. it's mostly news and method calls |
19:58:29 | * | xet7 joined #nim |
20:07:19 | * | xet7 quit (Remote host closed the connection) |
20:20:01 | FromDiscord | <shadow.> !eval echo {1: 2, 3: 4}.type.name |
20:20:05 | NimBot | Compile failed: /usercode/in.nim(1, 23) Error: undeclared field: 'name' |
20:20:14 | FromDiscord | <shadow.> !eval echo {1: 2, 3: 4}.type |
20:20:17 | NimBot | array[0..1, (int, int)] |
20:20:47 | FromDiscord | <shadow.> !eval import tables; echo {1: 2}.toTable.type |
20:20:49 | NimBot | Table[system.int, system.int] |
20:23:30 | FromDiscord | <shadow.> !eval echo (44100 500).type |
20:23:32 | NimBot | Compile failed: /usercode/in.nim(1, 13) Error: invalid token: (\29) |
20:23:47 | FromDiscord | <shadow.> !eval echo (44100 \ 500).type |
20:23:49 | NimBot | Compile failed: /usercode/in.nim(1, 14) Error: invalid token: (\29) |
20:23:53 | FromDiscord | <shadow.> hmm |
20:24:37 | mipri | some non-ASCII is making it through to IRC |
20:24:53 | disruptek | i don't believe it. |
20:24:56 | * | Kaivo joined #nim |
20:27:19 | Zevv | what's this IRC anyway |
20:28:31 | * | xet7 joined #nim |
20:39:28 | * | natrys quit (Quit: natrys) |
20:41:03 | * | xet7 quit (Remote host closed the connection) |
20:41:31 | * | xet7 joined #nim |
20:43:42 | FromDiscord | <shadow.> lmfao |
20:44:01 | FromDiscord | <shadow.> if anyone's experienced with the wave format, how do you read how many sample per channel there are in the header? |
20:48:31 | * | narimiran quit (Ping timeout: 246 seconds) |
20:56:48 | FromDiscord | <shadow.> https://media.discordapp.net/attachments/371759389889003532/776188700094758982/unknown.png |
20:56:49 | FromDiscord | <shadow.> hmm- |
20:56:54 | FromDiscord | <shadow.> thats the entire error msg |
20:58:50 | solitudesf | add var to argument |
21:03:43 | * | leorize quit (Ping timeout: 240 seconds) |
21:04:16 | disruptek | don't do it. |
21:06:03 | * | leorize joined #nim |
21:07:36 | FromDiscord | <shadow.> ah yes var fixed it ty |
21:07:38 | FromDiscord | <shadow.> wait why dont do it? |
21:07:48 | disruptek | you don't know where its been. |
21:07:53 | FromDiscord | <shadow.> lmao |
21:08:25 | FromDiscord | <shadow.> how can i make an empty sequence literal? |
21:08:26 | FromDiscord | <shadow.> but with a type |
21:08:28 | FromDiscord | <shadow.> if that makes sense? |
21:08:48 | FromDiscord | <shadow.> like `@[]: seq[float64]` |
21:09:14 | FromDiscord | <ElegantBeef> `var t: seq[float64] = @[]` |
21:09:18 | ForumUpdaterBot | New thread by Peter: Deprecated operators for DateTime private members, see https://forum.nim-lang.org/t/7075 |
21:09:29 | FromDiscord | <shadow.> is there any way to do it without making a var is what i meant |
21:09:46 | FromDiscord | <shadow.> wait nvm i think im being dumb |
21:09:56 | FromDiscord | <ElegantBeef> `newSeq[:T](0)`? |
21:10:17 | FromDiscord | <ElegantBeef> guess the `:` is redundant |
21:12:10 | FromDiscord | <shadow.> ah ok |
21:12:11 | FromDiscord | <shadow.> ty |
21:17:15 | Zoom[m] | <FromDiscord "<shadow.> if anyone's experience"> Eh, Samplerate at offset 24? |
21:18:24 | FromDiscord | <shadow.> i believe it was samplesPerChannel i was looking for |
21:18:39 | FromDiscord | <shadow.> and i think? its at offset 40 |
21:19:56 | FromDiscord | <shadow.> i just did `thatNumber div channelCount 8 / bitsPerSample` |
21:20:01 | FromDiscord | <shadow.> and i think its correct? |
21:20:07 | disruptek | bananas. |
21:20:42 | FromDiscord | <shadow.> lol what |
21:23:08 | FromDiscord | <nikki> for the var seq case -- `var t: seq[float64]` is enough (no need for the `= @[]` even) |
21:23:22 | FromDiscord | <shadow.> oh it auto-initializes to empty im guessing? |
21:23:30 | FromDiscord | <nikki> it's zero initialized just like everything else |
21:23:33 | FromDiscord | <shadow.> ahh ok |
21:23:42 | FromDiscord | <nikki> a seq consists of a data pointer and a capacity and a length |
21:23:59 | FromDiscord | <nikki> if the data pointer is `nil` (which is what it is when zero-initialized) it's considered an empty seq by all of the seq procs |
21:24:04 | Zoom[m] | Oh, wait, weren't the channels supposed to be interleaved? I need a refresher. |
21:24:31 | FromDiscord | <nikki> in nim the idiomatic thing seems to be to consider the zero-initialized case a valid empty value, for most data structures |
21:24:35 | disruptek | i'm only going to say this once: |
21:24:46 | disruptek | bananas are yellow fruits, but not all yellow fruits are bananas. |
21:25:04 | FromDiscord | <nikki> have u personally asked every yellow fruit how it feels |
21:25:04 | disruptek | think about it. |
21:26:58 | * | xet7_ joined #nim |
21:27:29 | * | xet7 quit (Read error: Connection reset by peer) |
21:28:06 | * | xet7_ is now known as xet7 |
21:28:24 | FromDiscord | <shadow.> hmm |
21:28:26 | FromDiscord | <shadow.> you're not wrong |
21:28:43 | FromDiscord | <nikki> @shadow. do you have lsp set up? |
21:28:55 | FromDiscord | <nikki> if so you can try this `var s: seq[int]; s.add(3)` |
21:28:59 | FromDiscord | <nikki> then go to defn on the `add` |
21:29:13 | FromDiscord | <nikki> and see how -- it considers the `nil` data pointer for a seq as a valid case |
21:29:45 | FromDiscord | <shadow.> lmao all im trying to do is set a `seq[seq[float64]] to @[@[], @[]]` |
21:29:52 | FromDiscord | <shadow.> i just wound up doing `this.samples = repeat(newSeq[float64](0), 2)` |
21:35:16 | * | Vladar quit (Quit: Leaving) |
21:37:03 | * | andinus quit (*.net *.split) |
21:37:03 | * | junland quit (*.net *.split) |
21:37:03 | * | casaca quit (*.net *.split) |
21:37:03 | * | nyaayaya quit (*.net *.split) |
21:37:03 | * | ForumUpdaterBot quit (*.net *.split) |
21:37:03 | * | Onionhammer quit (*.net *.split) |
21:37:04 | * | snowolf quit (*.net *.split) |
21:37:04 | * | leorize quit (*.net *.split) |
21:37:04 | * | opal quit (*.net *.split) |
21:37:04 | * | muffindrake quit (*.net *.split) |
21:37:04 | * | themoon[m] quit (*.net *.split) |
21:37:04 | * | planetis[m] quit (*.net *.split) |
21:37:04 | * | JStoker quit (*.net *.split) |
21:37:04 | * | mfiano quit (*.net *.split) |
21:37:05 | * | Tanger quit (*.net *.split) |
21:37:05 | * | tsujp quit (*.net *.split) |
21:37:05 | * | nekits07 quit (*.net *.split) |
21:37:05 | * | deepend quit (*.net *.split) |
21:37:05 | * | blueberrypie quit (*.net *.split) |
21:37:05 | * | kitech1 quit (*.net *.split) |
21:37:05 | * | cyraxjoe quit (*.net *.split) |
21:37:05 | * | zedeus quit (*.net *.split) |
21:37:05 | * | acidx quit (*.net *.split) |
21:37:05 | * | tribly quit (*.net *.split) |
21:37:05 | * | dsrw_ quit (*.net *.split) |
21:37:05 | * | lritter quit (*.net *.split) |
21:37:05 | * | bacterio quit (*.net *.split) |
21:37:05 | * | sagax quit (*.net *.split) |
21:37:05 | * | CcxWrk quit (*.net *.split) |
21:37:05 | * | idf quit (*.net *.split) |
21:37:06 | * | ache-of-head[m] quit (*.net *.split) |
21:37:06 | * | leorize[m]1 quit (*.net *.split) |
21:37:06 | * | hnOsmium0001[m] quit (*.net *.split) |
21:37:06 | * | lnxw37d4 quit (*.net *.split) |
21:37:06 | * | pulux quit (*.net *.split) |
21:37:07 | * | EastByte quit (*.net *.split) |
21:37:07 | * | GaveUp quit (*.net *.split) |
21:37:07 | * | Araq quit (*.net *.split) |
21:37:07 | * | Zevv quit (*.net *.split) |
21:37:07 | * | cornfeedhobo quit (*.net *.split) |
21:37:07 | * | cow-orker quit (*.net *.split) |
21:37:07 | * | shodan45 quit (*.net *.split) |
21:37:07 | * | ChanServ quit (*.net *.split) |
21:37:07 | * | jrhawley[m] quit (*.net *.split) |
21:37:07 | * | ee7[m] quit (*.net *.split) |
21:37:07 | * | nikki93[m] quit (*.net *.split) |
21:37:07 | * | reversem3 quit (*.net *.split) |
21:37:07 | * | BitPuffin quit (*.net *.split) |
21:37:08 | * | Zoom[m] quit (*.net *.split) |
21:37:08 | * | jholland__ quit (*.net *.split) |
21:37:08 | * | notchris quit (*.net *.split) |
21:37:08 | * | leorize[m] quit (*.net *.split) |
21:37:08 | * | GitterIntegratio quit (*.net *.split) |
21:37:08 | * | apahl quit (*.net *.split) |
21:37:08 | * | gangstacat quit (*.net *.split) |
21:37:08 | * | Prestige quit (*.net *.split) |
21:37:08 | * | njoseph quit (*.net *.split) |
21:37:08 | * | Jjp137 quit (*.net *.split) |
21:37:08 | * | nikita` quit (*.net *.split) |
21:37:08 | * | surma quit (*.net *.split) |
21:37:08 | * | ormiret quit (*.net *.split) |
21:37:09 | * | Yardanico quit (*.net *.split) |
21:37:09 | * | krux02 quit (*.net *.split) |
21:37:09 | * | ldlework quit (*.net *.split) |
21:37:09 | * | idxu quit (*.net *.split) |
21:37:09 | * | l1x quit (*.net *.split) |
21:37:09 | * | rayman22201 quit (*.net *.split) |
21:37:09 | * | nikki93 quit (*.net *.split) |
21:37:09 | * | Jitty[m] quit (*.net *.split) |
21:37:09 | * | lum[m] quit (*.net *.split) |
21:37:09 | * | MTRNord[m] quit (*.net *.split) |
21:37:10 | * | mipri quit (*.net *.split) |
21:37:10 | * | hnOsmium0001 quit (*.net *.split) |
21:37:10 | * | kinkinkijkin quit (*.net *.split) |
21:37:10 | * | guelosk[m] quit (*.net *.split) |
21:37:10 | * | pbb quit (*.net *.split) |
21:37:10 | * | hyiltiz quit (*.net *.split) |
21:37:10 | * | clemens3 quit (*.net *.split) |
21:37:10 | * | stefantalpalaru quit (*.net *.split) |
21:37:10 | * | jonjitsu[m] quit (*.net *.split) |
21:37:10 | * | brainbomb[m] quit (*.net *.split) |
21:37:10 | * | Helios quit (*.net *.split) |
21:37:10 | * | Avatarfighter[m] quit (*.net *.split) |
21:37:10 | * | solitudesf quit (*.net *.split) |
21:37:10 | * | blackbeard420 quit (*.net *.split) |
21:37:10 | * | livcd quit (*.net *.split) |
21:37:10 | * | revere quit (*.net *.split) |
21:37:11 | * | disbot quit (*.net *.split) |
21:37:11 | * | federico3 quit (*.net *.split) |
21:37:11 | * | shashlick quit (*.net *.split) |
21:37:11 | * | Kaivo quit (*.net *.split) |
21:37:11 | * | rockcavera quit (*.net *.split) |
21:37:11 | * | tane quit (*.net *.split) |
21:37:11 | * | supakeen quit (*.net *.split) |
21:37:11 | * | vesper11 quit (*.net *.split) |
21:37:11 | * | jxy quit (*.net *.split) |
21:37:11 | * | antranigv quit (*.net *.split) |
21:37:11 | * | jmiven quit (*.net *.split) |
21:37:11 | * | hpyc9 quit (*.net *.split) |
21:37:11 | * | fowl quit (*.net *.split) |
21:37:11 | * | sirn quit (*.net *.split) |
21:37:11 | * | Adeon quit (*.net *.split) |
21:37:11 | * | ryuzak1[m] quit (*.net *.split) |
21:37:12 | * | vqrs quit (*.net *.split) |
21:37:12 | * | qwertfisch quit (*.net *.split) |
21:37:12 | * | lmariscal quit (*.net *.split) |
21:37:12 | * | FromGitter quit (*.net *.split) |
21:37:12 | * | Axiomatic quit (*.net *.split) |
21:37:12 | * | wowi42_ quit (*.net *.split) |
21:37:12 | * | literal_ quit (*.net *.split) |
21:37:12 | * | def- quit (*.net *.split) |
21:37:12 | * | Oddmonger quit (*.net *.split) |
21:37:12 | * | sknebel quit (*.net *.split) |
21:37:12 | * | ehmry quit (*.net *.split) |
21:37:12 | * | lum quit (*.net *.split) |
21:37:12 | * | hoek quit (*.net *.split) |
21:37:12 | * | koltrast quit (*.net *.split) |
21:37:12 | * | unclechu quit (*.net *.split) |
21:37:12 | * | Northstrider[m] quit (*.net *.split) |
21:37:13 | * | synthmeat quit (*.net *.split) |
21:37:13 | * | Jesin quit (*.net *.split) |
21:37:13 | * | zielmicha__ quit (*.net *.split) |
21:37:13 | * | mwbrown quit (*.net *.split) |
21:37:13 | * | dom96 quit (*.net *.split) |
21:37:13 | * | WilhelmVonWeiner quit (*.net *.split) |
21:37:13 | * | FromDiscord quit (*.net *.split) |
21:37:13 | * | Amun_Ra quit (*.net *.split) |
21:37:13 | * | iwq quit (*.net *.split) |
21:37:13 | * | dgb quit (*.net *.split) |
21:37:13 | * | yumaikas quit (*.net *.split) |
21:37:13 | * | kaliy quit (*.net *.split) |
21:37:13 | * | so quit (*.net *.split) |
21:37:13 | * | disruptek quit (*.net *.split) |
21:37:13 | * | xet7 quit (*.net *.split) |
21:37:13 | * | mmohammadi9812 quit (*.net *.split) |
21:37:13 | * | Cthalupa quit (*.net *.split) |
21:37:13 | * | suchasurge quit (*.net *.split) |
21:37:13 | * | D_ quit (*.net *.split) |
21:37:13 | * | Q-Master quit (*.net *.split) |
21:37:13 | * | Lord_Nightmare quit (*.net *.split) |
21:37:13 | * | voltist quit (*.net *.split) |
21:37:13 | * | mal`` quit (*.net *.split) |
21:37:14 | * | Cadey quit (*.net *.split) |
21:37:14 | * | waleee-cl quit (*.net *.split) |
21:37:14 | * | beatmox quit (*.net *.split) |
21:37:14 | * | d10n-work quit (*.net *.split) |
21:37:14 | * | stever quit (*.net *.split) |
21:37:14 | * | euantorano quit (*.net *.split) |
21:37:14 | * | npgm_ quit (*.net *.split) |
21:37:14 | * | r4vi quit (*.net *.split) |
21:37:14 | * | matlock quit (*.net *.split) |
21:37:14 | * | kwilczynski quit (*.net *.split) |
21:37:14 | * | skelett quit (*.net *.split) |
21:37:14 | * | crem quit (*.net *.split) |
21:37:14 | * | vicfred quit (*.net *.split) |
21:37:14 | * | oculuxe quit (*.net *.split) |
21:37:14 | * | oprypin quit (*.net *.split) |
21:37:14 | * | voidpi quit (*.net *.split) |
21:37:15 | * | jken quit (*.net *.split) |
21:37:15 | * | screens__ quit (*.net *.split) |
21:37:15 | * | lain quit (*.net *.split) |
21:37:15 | * | drewr quit (*.net *.split) |
21:37:15 | * | Ekho quit (*.net *.split) |
21:37:40 | * | xet7 joined #nim |
21:37:40 | * | leorize joined #nim |
21:37:40 | * | Kaivo joined #nim |
21:37:40 | * | hnOsmium0001 joined #nim |
21:37:40 | * | apahl joined #nim |
21:37:40 | * | rockcavera joined #nim |
21:37:40 | * | vicfred joined #nim |
21:37:40 | * | tane joined #nim |
21:37:40 | * | waleee-cl joined #nim |
21:37:40 | * | mmohammadi9812 joined #nim |
21:37:40 | * | synthmeat joined #nim |
21:37:40 | * | supakeen joined #nim |
21:37:40 | * | lritter joined #nim |
21:37:40 | * | Tanger joined #nim |
21:37:40 | * | krux02 joined #nim |
21:37:40 | * | solitudesf joined #nim |
21:37:40 | * | Jesin joined #nim |
21:37:40 | * | jmiven joined #nim |
21:37:40 | * | bacterio joined #nim |
21:37:40 | * | muffindrake joined #nim |
21:37:40 | * | kinkinkijkin joined #nim |
21:37:40 | * | gangstacat joined #nim |
21:37:40 | * | hpyc9 joined #nim |
21:37:40 | * | blackbeard420 joined #nim |
21:37:40 | * | Prestige joined #nim |
21:37:40 | * | Cthalupa joined #nim |
21:37:40 | * | oculuxe joined #nim |
21:37:40 | * | beatmox joined #nim |
21:37:40 | * | l1x joined #nim |
21:37:40 | * | rayman22201 joined #nim |
21:37:40 | * | zielmicha__ joined #nim |
21:37:40 | * | nikki93 joined #nim |
21:37:40 | * | ehmry joined #nim |
21:37:40 | * | andinus joined #nim |
21:37:40 | * | tsujp joined #nim |
21:37:40 | * | mwbrown joined #nim |
21:37:40 | * | opal joined #nim |
21:37:40 | * | sagax joined #nim |
21:37:40 | * | guelosk[m] joined #nim |
21:37:40 | * | pbb joined #nim |
21:37:40 | * | lmariscal joined #nim |
21:37:40 | * | kaliy joined #nim |
21:37:40 | * | njoseph joined #nim |
21:37:40 | * | Jjp137 joined #nim |
21:37:40 | * | vesper11 joined #nim |
21:37:40 | * | Zoom[m] joined #nim |
21:37:40 | * | dom96 joined #nim |
21:37:40 | * | suchasurge joined #nim |
21:37:40 | * | ryuzak1[m] joined #nim |
21:37:40 | * | lum joined #nim |
21:37:40 | * | hoek joined #nim |
21:37:40 | * | jholland__ joined #nim |
21:37:40 | * | notchris joined #nim |
21:37:40 | * | d10n-work joined #nim |
21:37:40 | * | nikita` joined #nim |
21:37:40 | * | stever joined #nim |
21:37:40 | * | euantorano joined #nim |
21:37:40 | * | surma joined #nim |
21:37:40 | * | npgm_ joined #nim |
21:37:40 | * | r4vi joined #nim |
21:37:40 | * | Adeon joined #nim |
21:37:40 | * | fowl joined #nim |
21:37:40 | * | sirn joined #nim |
21:37:40 | * | matlock joined #nim |
21:37:40 | * | kwilczynski joined #nim |
21:37:40 | * | ormiret joined #nim |
21:37:40 | * | junland joined #nim |
21:37:40 | * | nekits07 joined #nim |
21:37:40 | * | FromGitter joined #nim |
21:37:40 | * | oprypin joined #nim |
21:37:40 | * | ache-of-head[m] joined #nim |
21:37:40 | * | WilhelmVonWeiner joined #nim |
21:37:40 | * | D_ joined #nim |
21:37:40 | * | EastByte joined #nim |
21:37:40 | * | Q-Master joined #nim |
21:37:40 | * | FromDiscord joined #nim |
21:37:40 | * | hyiltiz joined #nim |
21:37:40 | * | clemens3 joined #nim |
21:37:40 | * | deepend joined #nim |
21:37:40 | * | blueberrypie joined #nim |
21:37:40 | * | Axiomatic joined #nim |
21:37:40 | * | stefantalpalaru joined #nim |
21:37:40 | * | koltrast joined #nim |
21:37:40 | * | Yardanico joined #nim |
21:37:40 | * | casaca joined #nim |
21:37:40 | * | kitech1 joined #nim |
21:37:40 | * | jrhawley[m] joined #nim |
21:37:40 | * | lum[m] joined #nim |
21:37:40 | * | Jitty[m] joined #nim |
21:37:40 | * | jonjitsu[m] joined #nim |
21:37:40 | * | nikki93[m] joined #nim |
21:37:40 | * | ee7[m] joined #nim |
21:37:40 | * | GitterIntegratio joined #nim |
21:37:40 | * | leorize[m] joined #nim |
21:37:40 | * | unclechu joined #nim |
21:37:40 | * | MTRNord[m] joined #nim |
21:37:40 | * | Avatarfighter[m] joined #nim |
21:37:40 | * | BitPuffin joined #nim |
21:37:40 | * | leorize[m]1 joined #nim |
21:37:40 | * | Helios joined #nim |
21:37:40 | * | planetis[m] joined #nim |
21:37:40 | * | lnxw37d4 joined #nim |
21:37:40 | * | reversem3 joined #nim |
21:37:40 | * | brainbomb[m] joined #nim |
21:37:40 | * | hnOsmium0001[m] joined #nim |
21:37:40 | * | themoon[m] joined #nim |
21:37:40 | * | JStoker joined #nim |
21:37:40 | * | Lord_Nightmare joined #nim |
21:37:40 | * | mfiano joined #nim |
21:37:40 | * | cyraxjoe joined #nim |
21:37:40 | * | GaveUp joined #nim |
21:37:40 | * | wowi42_ joined #nim |
21:37:40 | * | ldlework joined #nim |
21:37:40 | * | jxy joined #nim |
21:37:40 | * | zedeus joined #nim |
21:37:40 | * | voltist joined #nim |
21:37:40 | * | idxu joined #nim |
21:37:40 | * | voidpi joined #nim |
21:37:40 | * | acidx joined #nim |
21:37:40 | * | skelett joined #nim |
21:37:40 | * | nyaayaya joined #nim |
21:37:40 | * | mal`` joined #nim |
21:37:40 | * | vqrs joined #nim |
21:37:40 | * | ForumUpdaterBot joined #nim |
21:37:40 | * | snowolf joined #nim |
21:37:40 | * | Onionhammer joined #nim |
21:37:40 | * | tribly joined #nim |
21:37:40 | * | jken joined #nim |
21:37:40 | * | Araq joined #nim |
21:37:40 | * | screens__ joined #nim |
21:37:40 | * | Amun_Ra joined #nim |
21:37:40 | * | CcxWrk joined #nim |
21:37:40 | * | idf joined #nim |
21:37:40 | * | dsrw_ joined #nim |
21:37:40 | * | Zevv joined #nim |
21:37:40 | * | antranigv joined #nim |
21:37:40 | * | mipri joined #nim |
21:37:40 | * | cow-orker joined #nim |
21:37:40 | * | qwertfisch joined #nim |
21:37:40 | * | lain joined #nim |
21:37:40 | * | cornfeedhobo joined #nim |
21:37:40 | * | disruptek joined #nim |
21:37:40 | * | literal_ joined #nim |
21:37:40 | * | def- joined #nim |
21:37:40 | * | Northstrider[m] joined #nim |
21:37:40 | * | iwq joined #nim |
21:37:40 | * | crem joined #nim |
21:37:40 | * | dgb joined #nim |
21:37:40 | * | livcd joined #nim |
21:37:40 | * | shodan45 joined #nim |
21:37:40 | * | revere joined #nim |
21:37:40 | * | pulux joined #nim |
21:37:40 | * | Oddmonger joined #nim |
21:37:40 | * | drewr joined #nim |
21:37:40 | * | Cadey joined #nim |
21:37:40 | * | so joined #nim |
21:37:40 | * | Ekho joined #nim |
21:37:40 | * | disbot joined #nim |
21:37:40 | * | federico3 joined #nim |
21:37:40 | * | shashlick joined #nim |
21:37:40 | * | yumaikas joined #nim |
21:37:40 | * | sknebel joined #nim |
21:37:48 | * | nisstyre quit (Max SendQ exceeded) |
21:37:48 | * | d10n quit (Max SendQ exceeded) |
21:38:00 | * | d10n joined #nim |
21:38:00 | * | d10n quit (Changing host) |
21:38:00 | * | d10n joined #nim |
21:38:48 | * | nisstyre joined #nim |
21:40:20 | * | andinus quit (*.net *.split) |
21:40:20 | * | junland quit (*.net *.split) |
21:40:21 | * | casaca quit (*.net *.split) |
21:40:21 | * | nyaayaya quit (*.net *.split) |
21:40:21 | * | ForumUpdaterBot quit (*.net *.split) |
21:40:21 | * | Onionhammer quit (*.net *.split) |
21:40:21 | * | snowolf quit (*.net *.split) |
21:40:23 | * | muffindrake quit (*.net *.split) |
21:40:24 | * | themoon[m] quit (*.net *.split) |
21:40:24 | * | planetis[m] quit (*.net *.split) |
21:40:24 | * | JStoker quit (*.net *.split) |
21:40:24 | * | mfiano quit (*.net *.split) |
21:40:27 | * | dom96 quit (Ping timeout: 266 seconds) |
21:40:32 | * | EastByte quit (*.net *.split) |
21:40:32 | * | GaveUp quit (*.net *.split) |
21:40:32 | * | Araq quit (*.net *.split) |
21:40:32 | * | Zevv quit (*.net *.split) |
21:40:32 | * | cornfeedhobo quit (*.net *.split) |
21:40:32 | * | cow-orker quit (*.net *.split) |
21:40:32 | * | shodan45 quit (*.net *.split) |
21:41:01 | * | muffindrake joined #nim |
21:41:01 | * | planetis[m] joined #nim |
21:41:01 | * | themoon[m] joined #nim |
21:41:01 | * | JStoker joined #nim |
21:41:01 | * | mfiano joined #nim |
21:41:08 | * | EastByte joined #nim |
21:41:08 | * | GaveUp joined #nim |
21:41:08 | * | Araq joined #nim |
21:41:08 | * | Zevv joined #nim |
21:41:08 | * | cow-orker joined #nim |
21:41:08 | * | cornfeedhobo joined #nim |
21:41:08 | * | shodan45 joined #nim |
21:41:18 | * | JStoker quit (Max SendQ exceeded) |
21:41:20 | * | JStoker joined #nim |
21:41:46 | * | d10n quit (*.net *.split) |
21:41:46 | * | Tanger quit (*.net *.split) |
21:41:46 | * | tsujp quit (*.net *.split) |
21:41:46 | * | nekits07 quit (*.net *.split) |
21:41:46 | * | deepend quit (*.net *.split) |
21:41:46 | * | blueberrypie quit (*.net *.split) |
21:41:46 | * | kitech1 quit (*.net *.split) |
21:41:46 | * | cyraxjoe quit (*.net *.split) |
21:41:46 | * | zedeus quit (*.net *.split) |
21:41:46 | * | acidx quit (*.net *.split) |
21:41:46 | * | tribly quit (*.net *.split) |
21:41:46 | * | dsrw_ quit (*.net *.split) |
21:41:46 | * | andinus joined #nim |
21:41:46 | * | junland joined #nim |
21:41:46 | * | casaca joined #nim |
21:41:46 | * | nyaayaya joined #nim |
21:41:46 | * | ForumUpdaterBot joined #nim |
21:41:46 | * | Onionhammer joined #nim |
21:41:46 | * | snowolf joined #nim |
21:41:50 | * | nisstyre quit (*.net *.split) |
21:41:51 | * | lritter quit (*.net *.split) |
21:41:51 | * | bacterio quit (*.net *.split) |
21:41:51 | * | sagax quit (*.net *.split) |
21:41:51 | * | CcxWrk quit (*.net *.split) |
21:41:51 | * | idf quit (*.net *.split) |
21:41:54 | * | JStoker quit (*.net *.split) |
21:41:54 | * | ache-of-head[m] quit (*.net *.split) |
21:41:54 | * | leorize[m]1 quit (*.net *.split) |
21:41:54 | * | hnOsmium0001[m] quit (*.net *.split) |
21:41:54 | * | lnxw37d4 quit (*.net *.split) |
21:41:54 | * | pulux quit (*.net *.split) |
21:41:55 | * | Jesin quit (Quit: Leaving) |
21:41:59 | * | dom96 joined #nim |
21:42:00 | * | dom96 quit (Changing host) |
21:42:00 | * | dom96 joined #nim |
21:42:13 | * | d10n joined #nim |
21:42:13 | * | Tanger joined #nim |
21:42:13 | * | nekits07 joined #nim |
21:42:13 | * | deepend joined #nim |
21:42:13 | * | blueberrypie joined #nim |
21:42:13 | * | kitech1 joined #nim |
21:42:13 | * | cyraxjoe joined #nim |
21:42:13 | * | zedeus joined #nim |
21:42:13 | * | acidx joined #nim |
21:42:13 | * | tribly joined #nim |
21:42:13 | * | dsrw_ joined #nim |
21:42:16 | * | nisstyre joined #nim |
21:42:16 | * | lritter joined #nim |
21:42:16 | * | bacterio joined #nim |
21:42:16 | * | sagax joined #nim |
21:42:16 | * | CcxWrk joined #nim |
21:42:16 | * | idf joined #nim |
21:42:33 | * | JStoker joined #nim |
21:42:33 | * | ache-of-head[m] joined #nim |
21:42:33 | * | leorize[m]1 joined #nim |
21:42:33 | * | lnxw37d4 joined #nim |
21:42:33 | * | hnOsmium0001[m] joined #nim |
21:42:33 | * | pulux joined #nim |
21:42:35 | * | nisstyre quit (Max SendQ exceeded) |
21:42:43 | * | hnOsmium0001[m] quit (Max SendQ exceeded) |
21:43:14 | * | leorize quit (*.net *.split) |
21:43:14 | * | opal quit (*.net *.split) |
21:43:35 | * | nisstyre joined #nim |
21:43:41 | * | tsujp joined #nim |
21:43:45 | * | nikki93[m] quit (Ping timeout: 246 seconds) |
21:43:45 | * | Jesin joined #nim |
21:43:47 | * | Jitty[m] quit (Ping timeout: 244 seconds) |
21:43:47 | * | lum[m] quit (Ping timeout: 244 seconds) |
21:43:53 | * | planetis[m] quit (Ping timeout: 260 seconds) |
21:44:13 | * | hnOsmium0001 quit (Ping timeout: 244 seconds) |
21:44:25 | * | ache-of-head[m] quit (Ping timeout: 240 seconds) |
21:44:26 | * | leorize[m]1 quit (Ping timeout: 240 seconds) |
21:44:26 | * | lnxw37d4 quit (Ping timeout: 240 seconds) |
21:44:37 | * | mwbrown quit (Ping timeout: 264 seconds) |
21:44:44 | * | guelosk[m] quit (Ping timeout: 244 seconds) |
21:44:44 | * | jonjitsu[m] quit (Ping timeout: 244 seconds) |
21:44:45 | * | brainbomb[m] quit (Ping timeout: 244 seconds) |
21:44:45 | * | Helios quit (Ping timeout: 244 seconds) |
21:44:45 | * | Avatarfighter[m] quit (Ping timeout: 244 seconds) |
21:44:48 | * | jrhawley[m] quit (Ping timeout: 246 seconds) |
21:44:48 | * | ee7[m] quit (Ping timeout: 246 seconds) |
21:44:48 | * | reversem3 quit (Ping timeout: 246 seconds) |
21:44:48 | * | BitPuffin quit (Ping timeout: 246 seconds) |
21:44:49 | * | MTRNord[m] quit (Ping timeout: 244 seconds) |
21:44:49 | * | unclechu quit (Ping timeout: 246 seconds) |
21:44:52 | * | deepend quit (Quit: o/) |
21:44:53 | * | ryuzak1[m] quit (Ping timeout: 272 seconds) |
21:44:57 | * | Zoom[m] quit (Ping timeout: 268 seconds) |
21:44:57 | * | leorize[m] quit (Ping timeout: 268 seconds) |
21:44:57 | * | GitterIntegratio quit (Ping timeout: 268 seconds) |
21:45:02 | * | themoon[m] quit (Ping timeout: 260 seconds) |
21:45:17 | * | deepend joined #nim |
21:45:36 | * | mwbrown joined #nim |
21:45:44 | * | leorize joined #nim |
21:45:44 | * | opal joined #nim |
21:45:52 | * | d10n-work quit (Ping timeout: 260 seconds) |
21:46:35 | * | PMunch joined #nim |
21:46:45 | * | solitudesf quit (*.net *.split) |
21:46:46 | * | blackbeard420 quit (*.net *.split) |
21:46:46 | * | livcd quit (*.net *.split) |
21:46:46 | * | revere quit (*.net *.split) |
21:46:46 | * | disbot quit (*.net *.split) |
21:46:46 | * | federico3 quit (*.net *.split) |
21:46:46 | * | shashlick quit (*.net *.split) |
21:46:49 | * | Kaivo quit (*.net *.split) |
21:46:49 | * | rockcavera quit (*.net *.split) |
21:46:49 | * | tane quit (*.net *.split) |
21:46:49 | * | supakeen quit (*.net *.split) |
21:46:49 | * | vesper11 quit (*.net *.split) |
21:46:49 | * | jxy quit (*.net *.split) |
21:46:49 | * | antranigv quit (*.net *.split) |
21:46:53 | * | hoek quit (Ping timeout: 246 seconds) |
21:47:07 | * | solitudesf joined #nim |
21:47:07 | * | blackbeard420 joined #nim |
21:47:07 | * | livcd joined #nim |
21:47:07 | * | revere joined #nim |
21:47:07 | * | disbot joined #nim |
21:47:07 | * | federico3 joined #nim |
21:47:07 | * | shashlick joined #nim |
21:48:32 | * | jmiven quit (*.net *.split) |
21:48:32 | * | hpyc9 quit (*.net *.split) |
21:48:32 | * | fowl quit (*.net *.split) |
21:48:32 | * | sirn quit (*.net *.split) |
21:48:32 | * | Adeon quit (*.net *.split) |
21:48:32 | * | vqrs quit (*.net *.split) |
21:48:32 | * | qwertfisch quit (*.net *.split) |
21:50:05 | * | jmiven joined #nim |
21:50:05 | * | hpyc9 joined #nim |
21:50:05 | * | Adeon joined #nim |
21:50:05 | * | fowl joined #nim |
21:50:05 | * | sirn joined #nim |
21:50:05 | * | vqrs joined #nim |
21:50:05 | * | qwertfisch joined #nim |
21:50:53 | * | Kaivo joined #nim |
21:50:53 | * | rockcavera joined #nim |
21:50:53 | * | tane joined #nim |
21:50:53 | * | supakeen joined #nim |
21:50:53 | * | vesper11 joined #nim |
21:50:53 | * | jxy joined #nim |
21:50:53 | * | antranigv joined #nim |
21:51:27 | * | d10n-work joined #nim |
21:51:36 | * | hnOsmium0001 joined #nim |
21:51:39 | * | lmariscal quit (*.net *.split) |
21:51:39 | * | FromGitter quit (*.net *.split) |
21:51:39 | * | Axiomatic quit (*.net *.split) |
21:51:39 | * | wowi42_ quit (*.net *.split) |
21:51:39 | * | literal_ quit (*.net *.split) |
21:51:39 | * | def- quit (*.net *.split) |
21:51:39 | * | Oddmonger quit (*.net *.split) |
21:51:39 | * | sknebel quit (*.net *.split) |
21:51:45 | * | synthmeat quit (*.net *.split) |
21:51:45 | * | zielmicha__ quit (*.net *.split) |
21:51:45 | * | WilhelmVonWeiner quit (*.net *.split) |
21:51:45 | * | FromDiscord quit (*.net *.split) |
21:51:45 | * | Amun_Ra quit (*.net *.split) |
21:51:45 | * | iwq quit (*.net *.split) |
21:51:45 | * | dgb quit (*.net *.split) |
21:51:45 | * | yumaikas quit (*.net *.split) |
21:51:45 | * | kaliy quit (*.net *.split) |
21:51:45 | * | so quit (*.net *.split) |
21:51:45 | * | disruptek quit (*.net *.split) |
21:52:32 | * | hoek joined #nim |
21:53:00 | * | synthmeat joined #nim |
21:53:00 | * | zielmicha__ joined #nim |
21:53:00 | * | kaliy joined #nim |
21:53:00 | * | WilhelmVonWeiner joined #nim |
21:53:00 | * | FromDiscord joined #nim |
21:53:00 | * | Amun_Ra joined #nim |
21:53:00 | * | disruptek joined #nim |
21:53:00 | * | iwq joined #nim |
21:53:00 | * | dgb joined #nim |
21:53:00 | * | yumaikas joined #nim |
21:53:00 | * | so joined #nim |
21:53:05 | * | lmariscal joined #nim |
21:53:05 | * | FromGitter joined #nim |
21:53:05 | * | Axiomatic joined #nim |
21:53:05 | * | wowi42_ joined #nim |
21:53:05 | * | literal_ joined #nim |
21:53:05 | * | def- joined #nim |
21:53:05 | * | Oddmonger joined #nim |
21:53:05 | * | sknebel joined #nim |
21:53:15 | * | ehmry quit (*.net *.split) |
21:53:15 | * | lum quit (*.net *.split) |
21:53:15 | * | koltrast quit (*.net *.split) |
21:53:15 | * | Northstrider[m] quit (*.net *.split) |
21:53:22 | ForumUpdaterBot | New thread by HJarausch: Nim.cfg, see https://forum.nim-lang.org/t/7076 |
21:53:24 | * | ehmry joined #nim |
21:53:24 | * | lum joined #nim |
21:53:24 | * | koltrast joined #nim |
21:53:24 | * | Northstrider[m] joined #nim |
21:53:42 | * | xet7 quit (*.net *.split) |
21:53:42 | * | mmohammadi9812 quit (*.net *.split) |
21:53:42 | * | Cthalupa quit (*.net *.split) |
21:53:42 | * | suchasurge quit (*.net *.split) |
21:53:42 | * | D_ quit (*.net *.split) |
21:53:42 | * | Q-Master quit (*.net *.split) |
21:53:42 | * | Lord_Nightmare quit (*.net *.split) |
21:53:42 | * | voltist quit (*.net *.split) |
21:53:42 | * | mal`` quit (*.net *.split) |
21:53:43 | * | Cadey quit (*.net *.split) |
21:54:03 | * | waleee-cl quit (*.net *.split) |
21:54:04 | * | beatmox quit (*.net *.split) |
21:54:04 | * | stever quit (*.net *.split) |
21:54:04 | * | euantorano quit (*.net *.split) |
21:54:04 | * | npgm_ quit (*.net *.split) |
21:54:04 | * | r4vi quit (*.net *.split) |
21:54:04 | * | matlock quit (*.net *.split) |
21:54:04 | * | kwilczynski quit (*.net *.split) |
21:54:04 | * | skelett quit (*.net *.split) |
21:54:04 | * | crem quit (*.net *.split) |
21:54:06 | * | xet7 joined #nim |
21:54:06 | * | mmohammadi9812 joined #nim |
21:54:06 | * | Cthalupa joined #nim |
21:54:06 | * | suchasurge joined #nim |
21:54:06 | * | D_ joined #nim |
21:54:06 | * | Q-Master joined #nim |
21:54:06 | * | Lord_Nightmare joined #nim |
21:54:06 | * | voltist joined #nim |
21:54:06 | * | mal`` joined #nim |
21:54:06 | * | Cadey joined #nim |
21:54:12 | * | mmohammadi9812 quit (Max SendQ exceeded) |
21:54:30 | * | deepend quit (*.net *.split) |
21:54:30 | * | vicfred quit (*.net *.split) |
21:54:30 | * | oculuxe quit (*.net *.split) |
21:54:30 | * | oprypin quit (*.net *.split) |
21:54:30 | * | voidpi quit (*.net *.split) |
21:54:30 | * | jken quit (*.net *.split) |
21:54:30 | * | screens__ quit (*.net *.split) |
21:54:30 | * | lain quit (*.net *.split) |
21:54:30 | * | drewr quit (*.net *.split) |
21:54:30 | * | Ekho quit (*.net *.split) |
21:54:36 | * | Axiomatic quit (Remote host closed the connection) |
21:54:44 | * | Axiomatic joined #nim |
21:54:46 | * | waleee-cl joined #nim |
21:54:46 | * | beatmox joined #nim |
21:54:46 | * | stever joined #nim |
21:54:46 | * | euantorano joined #nim |
21:54:46 | * | npgm_ joined #nim |
21:54:46 | * | r4vi joined #nim |
21:54:46 | * | matlock joined #nim |
21:54:46 | * | kwilczynski joined #nim |
21:54:46 | * | skelett joined #nim |
21:54:46 | * | crem joined #nim |
21:54:55 | * | kwilczynski quit (Max SendQ exceeded) |
21:55:09 | * | deepend joined #nim |
21:55:09 | * | vicfred joined #nim |
21:55:09 | * | oculuxe joined #nim |
21:55:09 | * | oprypin joined #nim |
21:55:09 | * | voidpi joined #nim |
21:55:09 | * | jken joined #nim |
21:55:09 | * | screens__ joined #nim |
21:55:09 | * | lain joined #nim |
21:55:09 | * | drewr joined #nim |
21:55:09 | * | Ekho joined #nim |
21:55:18 | * | Ekho quit (Max SendQ exceeded) |
21:55:44 | * | d10n-work quit (Ping timeout: 240 seconds) |
21:56:04 | * | hnOsmium0001 quit (Ping timeout: 240 seconds) |
21:56:44 | * | hoek quit (Ping timeout: 240 seconds) |
21:57:05 | FromDiscord | <notchris> pears are the best fruit tbh |
21:57:32 | * | waleee-cl quit (Ping timeout: 260 seconds) |
21:57:32 | * | npgm_ quit (Ping timeout: 260 seconds) |
21:57:32 | * | matlock quit (Ping timeout: 260 seconds) |
21:57:33 | * | so quit (Max SendQ exceeded) |
21:57:45 | * | hnOsmium0001 joined #nim |
21:58:26 | * | hoek joined #nim |
21:59:26 | * | d10n-work joined #nim |
22:00:33 | mipri | (!) independent fact checkers have confirmed that tomatoes are the best fruit. Click here to learn more. |
22:01:17 | * | waleee-cl joined #nim |
22:01:25 | * | nikki93[m] joined #nim |
22:01:39 | * | matlock joined #nim |
22:01:48 | FromDiscord | <notchris> Tomatoes are like, barely a fruit |
22:02:14 | disruptek | tomatoes are the original switch hitters. |
22:02:38 | * | kwilczynski_ joined #nim |
22:02:43 | * | so joined #nim |
22:03:09 | * | lum[m] joined #nim |
22:03:09 | * | Jitty[m] joined #nim |
22:03:23 | * | npgm_ joined #nim |
22:03:32 | FromDiscord | <notchris> I feel like tomatoes have no place on sandwiches, they feel awkward |
22:03:59 | * | Ekho joined #nim |
22:04:20 | mipri | Name a fruit that you'd prefer to find on a sandwich. |
22:04:51 | mipri | want some apple slices? orange rind? some melon next to your roast beef? |
22:04:55 | * | kwilczynski_ is now known as kwilczynski |
22:05:40 | FromDiscord | <notchris> I donโt want any fruits on a sandwich, also turkey > roast beef |
22:05:41 | FromDiscord | <Daniel> perhaps none of the fruit should be on a sandwich? |
22:05:58 | mipri | the proper context of your complaints with the tomato, is that the tomato is the only contender for this position at all. |
22:06:11 | FromDiscord | <notchris> Well...youโve got me there |
22:06:49 | FromDiscord | <Daniel> whats the criteria to be a contender? |
22:07:18 | FromDiscord | <notchris> Taste good and not be awkward |
22:07:42 | mipri | there are some double entres there if you look for them. |
22:08:01 | * | planetis[m] joined #nim |
22:08:44 | FromDiscord | <Daniel> onion, corn, salad, garlic even |
22:08:57 | FromDiscord | <Daniel> this is now #offtopic |
22:09:22 | * | Helios joined #nim |
22:09:36 | FromDiscord | <notchris> Well, we all eat sandwiches I assume and nim is relatable in some ways to a sandwich |
22:12:07 | * | tane quit (Quit: Leaving) |
22:12:46 | * | Zoom[m] joined #nim |
22:12:54 | * | leorize[m] joined #nim |
22:13:54 | * | guelosk[m] joined #nim |
22:13:54 | * | jonjitsu[m] joined #nim |
22:13:55 | * | brainbomb[m] joined #nim |
22:14:25 | * | themoon[m] joined #nim |
22:14:32 | * | lnxw37d4 joined #nim |
22:15:15 | * | ee7[m] joined #nim |
22:15:15 | * | jrhawley[m] joined #nim |
22:17:13 | * | Avatarfighter[m] joined #nim |
22:18:30 | * | reversem3 joined #nim |
22:18:33 | * | BitPuffin joined #nim |
22:19:30 | * | unclechu joined #nim |
22:21:06 | FromDiscord | <ElegantBeef> Peppers are good on a sandwich |
22:23:31 | * | hnOsmium0001[m] joined #nim |
22:24:16 | * | leorize[m]1 joined #nim |
22:24:52 | * | ache-of-head[m] joined #nim |
22:27:57 | FromDiscord | <shadow.> bread is good on a sandwich |
22:28:39 | * | MTRNord[m] joined #nim |
22:33:46 | * | mmohammadi9812 joined #nim |
22:42:20 | FromDiscord | <shadow.> !eval echo [0, 1].type |
22:42:23 | NimBot | array[0..1, int] |
22:42:51 | mipri | nimble install inim and you can ask these questions locally just as easily |
22:43:17 | Prestige | Has anyone worked on a treesitter grammar for Nim? |
22:43:32 | PMunch | I think someone did, yeah |
22:44:02 | Prestige | I'm looking into using treesitter for nvim, would like to use it for Nim as well |
22:44:02 | PMunch | Prestige, something like this? https://github.com/genotrance/nimtreesitter |
22:44:26 | Prestige | Hm this says it's a wrapper, I don't think it's a grammar |
22:44:50 | disruptek | i don't think anyone has written a grammar. |
22:45:09 | disruptek | but, shashlick is intimately familiar with treesitter. |
22:45:48 | Prestige | I wonder if it'd be terribly hard to implement |
22:46:30 | FromDiscord | <shadow.> hmm |
22:46:38 | FromDiscord | <shadow.> can you use stream.write() and specify endianess? |
22:46:48 | disruptek | no, chucklehead. |
22:47:00 | FromDiscord | <shadow.> chucklehead |
22:47:12 | FromDiscord | <shadow.> should i just cast to a byte array and reverse then |
22:48:21 | disruptek | i don't care. |
22:49:25 | disruptek | shashlick: think nimble could be fixed so i can run gittyup tests? |
22:49:44 | disruptek | i could maybe make a PR if it's not much trouble. |
22:49:59 | disruptek | else i will just wait for other people to fix it. |
22:51:03 | PMunch | Hmm, I wonder if I can use the Kiwi cassowary solver for layouts in PiMo... |
22:51:14 | PMunch | Might be worth a try |
22:54:43 | * | PMunch quit (Quit: leaving) |
23:06:04 | FromDiscord | <nikki> PMunch: is this layouts for a ui lib? |
23:06:19 | FromDiscord | <nikki> if you're interested in flexbox layouts like in css and react native and whatnot you could try https://yogalayout.com/ |
23:06:31 | FromDiscord | <nikki> flexbox impl with pure C api |
23:07:34 | FromDiscord | <nikki> https://github.com/facebook/yoga/blob/master/yoga/Yoga.h |
23:07:35 | FromDiscord | <nikki> is the api |
23:07:46 | FromDiscord | <Daniel> what about nuklear? |
23:08:22 | FromDiscord | <nikki> nuklear also does rendering and events and whatnot, and i'm not sure how complete its layout impl is |
23:09:31 | FromDiscord | <Daniel> i just discovered nuklear 2 days ago, when was searching for gui for my app |
23:10:13 | FromDiscord | <nikki> if you want the app to be end-user-facing, i'd recommend using qt, dom, ... or sth. that a lot of actual apps use. but maaaaaybe you could get away with nuklear |
23:10:17 | FromDiscord | <nikki> if it's eg internal tooling and so on, anything works |
23:10:35 | FromDiscord | <ElegantBeef> Pimo is his planned tiling window manager |
23:10:54 | FromDiscord | <nikki> ah word |
23:11:04 | FromDiscord | <Daniel> i am still discovering, thank you for suggestions |
23:11:23 | FromDiscord | <Daniel> i read qt is licensing mess |
23:11:30 | Prestige | I tried Nuklear last week and nothing was working properly |
23:12:04 | FromDiscord | <nikki> totally depends on what your app wants to do and what its for and who its for |
23:12:09 | FromDiscord | <ElegantBeef> Pmunch i'd be pretty happy with a simple "pattern" which lets you tell the window manager how to split for the next windows |
23:13:22 | FromDiscord | <ElegantBeef> So you have a alterating split with a `hSplit, vSplit` and a `repeat: pattern` for a master/stack split you could do `hsplit, vsplit` with `repeat: vsplit` |
23:13:52 | FromDiscord | <ElegantBeef> Although that doesnt work well with your planned layouts afaik |
23:16:18 | * | lritter quit (Ping timeout: 260 seconds) |
23:17:32 | FromDiscord | <shashlick> @disruptek which specific issue? I've been on an extended break from coding |
23:20:38 | FromDiscord | <ElegantBeef> I guess with that way pmunch you can still specify whether floating windows float or take their requested space as long as you make it so they dont disalign the grid |
23:22:18 | * | solitudesf quit (Ping timeout: 256 seconds) |
23:23:03 | FromDiscord | <ElegantBeef> I also suppose if you have a `hSplitRight` and `hSplitLeft` with the coresponding vSplit that'd allow you to get any layout users would want without much work, just make the pattern and send it |
23:23:31 | ForumUpdaterBot | New thread by Snej: Best practices for packages that bind to C libraries?, see https://forum.nim-lang.org/t/7078 |
23:23:53 | FromDiscord | <ElegantBeef> Prestige, quick implement my suggestion in nimdow ๐ |
23:25:22 | Prestige | Yeah I think other WMs do something similar |
23:25:41 | FromDiscord | <ElegantBeef> I know awesome didnt make it easy to do |
23:25:46 | * | xet7 quit (Ping timeout: 256 seconds) |
23:26:37 | FromDiscord | <shadow.> how do you do constructors in nim LMASDJNAOUSDASD |
23:26:44 | FromDiscord | <shadow.> i looked it up and results are not conclusive- |
23:26:55 | FromDiscord | <ElegantBeef> make a proc named `init` |
23:26:57 | FromDiscord | <ElegantBeef> (edit) "`init`" => "`init T`" |
23:27:13 | FromDiscord | <ElegantBeef> Or if you're super lazy use my packageโต<https://github.com/beef331/constructor> |
23:27:17 | FromDiscord | <shadow.> lool |
23:27:22 | FromDiscord | <shadow.> wait like |
23:27:40 | FromDiscord | <ElegantBeef> Like what duuuuude? |
23:27:48 | FromDiscord | <shadow.> lol like |
23:27:55 | FromDiscord | <shadow.> init AudioFile() |
23:27:56 | FromDiscord | <shadow.> or |
23:27:58 | FromDiscord | <shadow.> initAudioFile() |
23:28:03 | FromDiscord | <ElegantBeef> without a space |
23:28:09 | FromDiscord | <shadow.> ok lol |
23:28:18 | FromDiscord | <shadow.> i saw somethin like newAudioFile whats that about? |
23:28:28 | FromDiscord | <ElegantBeef> `new` for reference objects and `init` for value types |
23:28:35 | FromDiscord | <shadow.> ohh ok |
23:28:47 | FromDiscord | <shadow.> wait |
23:28:50 | FromDiscord | <shadow.> im so confused rn- |
23:28:53 | FromDiscord | <ElegantBeef> Ok |
23:28:59 | FromDiscord | <shadow.> alright so i have a type called WaveFile |
23:28:59 | FromDiscord | <ElegantBeef> It's only a convention it's not forced |
23:29:04 | * | krux02 quit (Quit: Leaving) |
23:29:06 | FromDiscord | <shadow.> and i initialize it like this `var audio = WaveFile()` |
23:29:15 | FromDiscord | <shadow.> but id like it to have some automatic values like |
23:29:20 | FromDiscord | <shadow.> sampleRate etc |
23:29:26 | FromDiscord | <shadow.> so how would i do that in a constructor |
23:29:45 | FromDiscord | <ElegantBeef> Yes then define an `initWaveFile` if you dont want to do `WaveFile(sampleRate: 44000, samples: 2048)` and so on |
23:30:14 | FromDiscord | <ElegantBeef> Or just use my package and use `--expandMacro:construct` so you can see what you should do |
23:30:20 | FromDiscord | <shadow.> hmm ok |
23:30:41 | FromDiscord | <shadow.> does initWaveFile have any arguments |
23:30:44 | * | xet7 joined #nim |
23:30:45 | FromDiscord | <ElegantBeef> Any you want |
23:30:45 | FromDiscord | <shadow.> like a this reference |
23:30:48 | FromDiscord | <shadow.> wait- |
23:30:50 | FromDiscord | <shadow.> my brain- |
23:30:53 | FromDiscord | <shadow.> oop in nim is confusing |
23:30:57 | FromDiscord | <ElegantBeef> It's really not |
23:31:01 | FromDiscord | <shadow.> welp im just a c++ head |
23:31:02 | FromDiscord | <shadow.> so |
23:31:12 | FromDiscord | <ElegantBeef> `initWaveFile` calls the WaveFile constructor and returns it |
23:31:18 | FromDiscord | <shadow.> ohh |
23:31:20 | FromDiscord | <shadow.> ok ty |
23:31:29 | FromDiscord | <ElegantBeef> We dont have actual constructors here |
23:32:20 | FromDiscord | <shadow.> ah ok |
23:32:27 | FromDiscord | <ElegantBeef> Well we do but not default value overrides |
23:33:02 | FromDiscord | <ElegantBeef> Which is where my macro comes in, quickly generates them and you can provide both, optional, and default values. But think i've shilled it enough ๐ |
23:34:39 | FromDiscord | <shadow.> loll ur good |
23:34:46 | FromDiscord | <shadow.> id just like to learn the default way first ig if that makes sense? |
23:35:24 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DQj |
23:35:26 | FromDiscord | <shadow.> i think this was what i was trying to do? |
23:35:31 | FromDiscord | <shadow.> lol |
23:35:53 | FromDiscord | <ElegantBeef> you dont need the return |
23:35:57 | FromDiscord | <shadow.> oh? |
23:36:00 | FromDiscord | <shadow.> why not |
23:36:07 | FromDiscord | <nikki> the last expr is implicitly returned |
23:36:08 | FromDiscord | <ElegantBeef> Nim implictly returns values if they are un cought |
23:36:11 | FromDiscord | <shadow.> oh right right |
23:36:12 | FromDiscord | <shadow.> lol |
23:36:13 | FromDiscord | <ElegantBeef> (edit) "cought" => "caught" |
23:36:29 | FromDiscord | <nikki> you can also just do `result.samples = ...; result.channelCount = ...;` etc. |
23:36:38 | FromDiscord | <nikki> (not recommending, just giving choices) |
23:36:41 | FromDiscord | <ElegantBeef> You can but where's the fun in that ๐ |
23:36:43 | FromDiscord | <shadow.> i thought you cant do assignment in those fields? |
23:36:48 | FromDiscord | <shadow.> it didnt like it last time i did it |
23:36:57 | FromDiscord | <shadow.> oh WAIT |
23:36:57 | FromDiscord | <ElegantBeef> If it's a reference type what nikki said wouldnt work |
23:37:08 | FromDiscord | <shadow.> do you mean in the newWaveFile function? |
23:37:08 | FromDiscord | <nikki> i'm talking about the example you showed |
23:37:08 | FromDiscord | <ElegantBeef> If it's a value type it will as value types cannot be nil |
23:37:11 | FromDiscord | <nikki> it'll work there |
23:37:20 | FromDiscord | <nikki> yep |
23:37:21 | FromDiscord | <ElegantBeef> also if it's a value type you're supposed to use `init` |
23:37:35 | FromDiscord | <nikki> yeah the convention is `initX` for returning an object |
23:37:38 | FromDiscord | <shadow.> whats the difference between a valuetype and a referencetype (in this situation)? |
23:37:40 | FromDiscord | <nikki> for returning a `ref` the convention is `newX` |
23:37:43 | FromDiscord | <ElegantBeef> `ref Object` |
23:37:55 | FromDiscord | <shadow.> ah |
23:38:03 | FromDiscord | <shadow.> so for this i should use init? |
23:38:07 | FromDiscord | <nikki> but yeah there are no constructors. just procs that return stuff |
23:38:07 | FromDiscord | <ElegantBeef> Yes |
23:38:17 | FromDiscord | <shadow.> thats just naming convention? |
23:38:20 | FromDiscord | <ElegantBeef> Yes |
23:38:23 | FromDiscord | <shadow.> ah ok |
23:38:58 | FromDiscord | <shadow.> sent a code paste, see https://play.nim-lang.org/#ix=2DQk |
23:38:59 | FromDiscord | <shadow.> correct? |
23:39:02 | FromDiscord | <shadow.> seemed to work for me |
23:39:03 | FromDiscord | <shadow.> lol |
23:39:18 | FromDiscord | <nikki> yea that works too. up to you which way you wanna go |
23:39:21 | FromDiscord | <shadow.> ah ok ty |
23:39:25 | FromDiscord | <ElegantBeef> Yep |
23:39:29 | FromDiscord | <nikki> usually people indent with 2 spacaes |
23:39:31 | FromDiscord | <nikki> seems like you're using 4? |
23:39:49 | FromDiscord | <nikki> fine either way tho :p |
23:40:13 | FromDiscord | <shadow.> i use a tab usually lol |
23:40:32 | FromDiscord | <ElegantBeef> No you dont |
23:40:36 | FromDiscord | <ElegantBeef> You use 4 spaces |
23:40:42 | FromDiscord | <ElegantBeef> Just your editor pretends it's a tab |
23:40:43 | FromDiscord | <shadow.> i have tab set to autoreplace |
23:40:45 | FromDiscord | <ElegantBeef> Nim doesnt support tabs |
23:40:46 | FromDiscord | <shadow.> i think |
23:40:46 | FromDiscord | <shadow.> oh |
23:40:53 | FromDiscord | <shadow.> i think i have vscode set to replace tabs with 4 spaces? |
23:40:54 | FromDiscord | <nikki> i use assignment to result in cases like this: |
23:40:56 | FromDiscord | <nikki> https://media.discordapp.net/attachments/371759389889003532/776230006082633759/unknown.png |
23:41:07 | FromDiscord | <nikki> just saw that the C codegen came out better in these cases |
23:41:13 | FromDiscord | <ElegantBeef> You can use tabs if you use source code filters but ehh |
23:41:26 | FromDiscord | <ElegantBeef> Most programmers that think they use tabs actually use spaces |
23:41:27 | FromDiscord | <nikki> when you say use tabs, you mean you press the tab key? |
23:41:36 | FromDiscord | <shadow.> !eval var (x, y) = (1, 2); (x, y) = (y, x); echo x, " ", y |
23:41:37 | FromDiscord | <shadow.> yes |
23:41:39 | NimBot | 2 1 |
23:41:45 | FromDiscord | <shadow.> w o a h |
23:41:48 | FromDiscord | <shadow.> did not know you could do that |
23:41:54 | FromDiscord | <nikki> yeah, i think what that means is you're pressing the tab key to enter n number of spaces |
23:41:58 | FromDiscord | <shadow.> yup |
23:42:01 | FromDiscord | <shadow.> its a vscode setting |
23:42:22 | FromDiscord | <nikki> yeah i think using tabs is usually interpreted to mean that you have `\t` characters in the file haha, which i think nim doesn't support |
23:42:25 | FromDiscord | <ElegantBeef> Most editors default to spaces as tab, and then people go "I'd never use spaces as they're dumb" meanwhile they use spaces ๐ |
23:42:29 | FromDiscord | <shadow.> lmfao |
23:42:31 | FromDiscord | <shadow.> i never said that |
23:42:39 | FromDiscord | <shadow.> i just said i like the length of a tab which for me is 4 spaces |
23:42:40 | FromDiscord | <ElegantBeef> Yea nikki it's using `\t` instead of `\s\s\s\s` ๐ |
23:42:43 | FromDiscord | <shadow.> lol |
23:42:57 | * | abm joined #nim |
23:43:03 | FromDiscord | <ElegantBeef> I like tabs as they dont embedd the indention size into the file... ๐ |
23:44:10 | FromDiscord | <nikki> @shadow. https://nim-lang.org/docs/manual.html#statements-and-expressions-tuple-unpacking it's this thing |
23:44:14 | FromDiscord | <shadow.> yeye |
23:44:18 | FromDiscord | <nikki> it also implicitly happens in `for ...` decls |
23:44:24 | FromDiscord | <shadow.> as a c++ programmer |
23:44:32 | FromDiscord | <shadow.> sTrUcTuReD biNdiNgS |
23:44:34 | FromDiscord | <nikki> c++ has it, called structured bindings |
23:44:35 | FromDiscord | <nikki> yeah |
23:44:37 | FromDiscord | <shadow.> yup |
23:44:38 | FromDiscord | <shadow.> auto [x, y] |
23:44:47 | FromDiscord | <nikki> before c++20 you couldn't capture structured bindings in a lambda |
23:44:52 | FromDiscord | <shadow.> and py also has it implicitly almost everywhere lol |
23:44:55 | FromDiscord | <shadow.> x, y = 1, 2 |
23:44:59 | FromDiscord | <shadow.> but python is just....python |
23:45:06 | FromDiscord | <nikki> eg. `let [x, y] = sth(); const foo = [&]() { blah(x); }` wouldn't work |
23:45:28 | FromDiscord | <nikki> yeah an important thing is that you can't use it to swap, just keep that in mind i guess |
23:45:39 | FromDiscord | <shadow.> fr? |
23:45:41 | FromDiscord | <nikki> like `(x, y) = (y, x)` doesn't actually properly swap the stuff in nim |
23:45:42 | FromDiscord | <shadow.> didnt i just do it in the eval- |
23:45:44 | FromDiscord | <shadow.> oh lmfao |
23:45:49 | FromDiscord | <shadow.> ik theres a swap proc lol |
23:45:59 | FromDiscord | <nikki> oh ok, maybe it works then hmm |
23:46:12 | FromDiscord | <shadow.> !eval var (x, y) = (50, 100); (x, y) = (y, x); echo x, " ", y |
23:46:15 | NimBot | 100 50 |
23:46:19 | FromDiscord | <shadow.> hmm |
23:46:23 | FromDiscord | <shadow.> maybe it doesnt work with more complex stuff? |
23:46:28 | FromDiscord | <shadow.> lol |
23:46:30 | FromDiscord | <shadow.> tho that'd be odd |
23:46:34 | FromDiscord | <nikki> i remember reading somewhere that it fails in some case but maybe it's fine |
23:46:40 | FromDiscord | <nikki> idk if it forwards assignment operators, maybe not |
23:46:44 | FromDiscord | <shadow.> eh im sure theres a reason for a swap proc if it exists |
23:46:49 | FromDiscord | <ElegantBeef> Tuple unpacking is weird ๐ |
23:47:06 | FromDiscord | <nikki> what's weird about it ๐ค |
23:47:10 | FromDiscord | <ElegantBeef> ~~flees the scene~~ |
23:47:13 | FromDiscord | <shadow.> yeah bro |
23:47:21 | FromDiscord | <shadow.> ~~c++ devs rise-~~ |
23:47:22 | FromDiscord | <shadow.> ASHDOHASODJASd |
23:47:38 | FromDiscord | <shadow.> cries in `static_cast<float>(x)` |
23:47:43 | FromDiscord | <shadow.> (edit) "`static_cast<float>(x)`" => "`static_cast<T>(x)`" |
23:47:47 | FromDiscord | <nikki> the nim manual is a pretty solid read |
23:47:49 | FromDiscord | <nikki> also "nim in action" |
23:48:01 | FromDiscord | <shadow.> ive read the nim manual in parts i just feel like the order was a bit weird |
23:48:03 | FromDiscord | <nikki> if you want to get through the nim concepts in a structured way |
23:48:11 | FromDiscord | <ElegantBeef> Well read the tutorial and then the manual |
23:48:11 | FromDiscord | <shadow.> nim in action looks cool |
23:48:20 | FromDiscord | <nikki> yeah, the nim in action book is more amenable to reading front to back it hink |
23:48:24 | FromDiscord | <shadow.> ah ok |
23:48:25 | FromDiscord | <nikki> vs. the manual. which is more spec'y |
23:48:27 | FromDiscord | <ElegantBeef> The tutorial is afterall meant to teach, whereas the manual is meant to document |
23:48:41 | FromDiscord | <shadow.> yeah true |
23:48:46 | FromDiscord | <shadow.> whew 40 bucks |
23:48:48 | FromDiscord | <shadow.> fair enough |
23:48:57 | FromDiscord | <ElegantBeef> Goes right into dom96's food fund ๐ |
23:49:07 | FromDiscord | <shadow.> https://media.discordapp.net/attachments/371759389889003532/776232065179189258/unknown.png |
23:49:07 | FromDiscord | <nikki> haha, plus the publisher probs |
23:49:09 | FromDiscord | <shadow.> am i reading this correctly |
23:49:17 | FromDiscord | <nikki> gonna try to zone into some code for a bit |
23:49:24 | FromDiscord | <shadow.> ah ok gl! |
23:57:12 | * | bunbunbunbunny joined #nim |