| 00:01:41 | FromDiscord | <Avatarfighter> Disruptek: whats the name of your fancy-schmancy benchmarking lib | 
| 00:01:55 | * | Vladar quit (Quit: Leaving) | 
| 00:02:29 | * | zidsal87 quit (Quit: Connection closed) | 
| 00:08:07 | FromDiscord | <Zachary Carter> Disruptek: why won't you accept my twitter follower request you sob | 
| 00:17:07 | * | sz0 quit (Ping timeout: 272 seconds) | 
| 00:17:09 | * | sirn quit (Ping timeout: 244 seconds) | 
| 00:17:16 | * | nikki93 quit (Read error: Connection reset by peer) | 
| 00:17:22 | * | kinkinkijkin quit (Ping timeout: 260 seconds) | 
| 00:17:45 | * | kwilczynski quit (Ping timeout: 272 seconds) | 
| 00:17:58 | * | Evolver quit (Ping timeout: 260 seconds) | 
| 00:18:02 | * | nikki93 joined #nim | 
| 00:18:02 | * | fowl_ joined #nim | 
| 00:18:07 | * | kinkinkijkin joined #nim | 
| 00:18:21 | * | kwilczynski joined #nim | 
| 00:18:33 | * | zielmicha__ quit (Ping timeout: 260 seconds) | 
| 00:18:33 | * | rayman22201 quit (Ping timeout: 260 seconds) | 
| 00:18:33 | * | fowl quit (Ping timeout: 260 seconds) | 
| 00:18:35 | * | sirn joined #nim | 
| 00:18:46 | * | fowl_ is now known as fowl | 
| 00:18:50 | * | zielmicha__ joined #nim | 
| 00:19:14 | * | Evolver joined #nim | 
| 00:19:26 | * | hnOsmium0001 quit (Ping timeout: 265 seconds) | 
| 00:19:32 | * | sz0 joined #nim | 
| 00:19:55 | * | rayman22201 joined #nim | 
| 00:20:32 | * | hnOsmium0001 joined #nim | 
| 00:26:05 | * | madprops left #nim ("Leaving") | 
| 00:32:49 | * | WilhelmVonWeiner joined #nim | 
| 00:50:33 | * | WilhelmVonWeiner quit (Quit: leaving) | 
| 00:52:29 | * | asdflkj joined #nim | 
| 01:03:55 | FromDiscord | <Avatarfighter> !repo json | 
| 01:03:56 | disbot | https://github.com/status-im/nim-json-rpc -- 9nim-json-rpc: 11Nim library for implementing JSON-RPC clients and servers 15 42⭐ 6🍴  7& 29 more... | 
| 01:05:08 | FromDiscord | <Recruit_main707> Not anymore I think | 
| 01:05:26 | FromDiscord | <ElegantBeef> Yea i think you're right | 
| 01:05:28 | FromDiscord | <ElegantBeef> I always forget | 
| 01:05:39 | FromDiscord | <Recruit_main707> It’s 64bit | 
| 01:05:48 | FromDiscord | <Recruit_main707> The same for floats, etc | 
| 01:05:54 | disruptek | zachary carter: i'm not on twitter. | 
| 01:07:35 | disruptek | !repo disruptek/criterion | 
| 01:07:35 | disbot | https://github.com/disruptek/criterion -- 9criterion: 11statistics-driven micro-benchmarking framework 15 15⭐ 0🍴 | 
| 01:22:54 | * | abm quit (Read error: Connection reset by peer) | 
| 01:23:42 | * | j-james joined #nim | 
| 01:25:07 | * | cornfeedhobo quit (Quit: ZNC - https://znc.in) | 
| 01:25:11 | * | Tanger joined #nim | 
| 01:25:59 | * | vicfred joined #nim | 
| 01:26:13 | * | cornfeedhobo joined #nim | 
| 01:32:57 | * | j-james quit (Quit: WeeChat 3.0) | 
| 01:53:02 | * | asdflkj quit (Ping timeout: 260 seconds) | 
| 02:22:55 | * | lritter joined #nim | 
| 02:52:55 | * | lritter quit (Ping timeout: 265 seconds) | 
| 02:53:13 | * | lritter joined #nim | 
| 02:55:46 | saem | Took longer than I care to admit, but slight improvement for suggestions in type contexts: https://github.com/nim-lang/Nim/pull/16814 | 
| 02:55:47 | disbot | ➥ fixed nim-lang/nimsuggest#48 type aware sug  | 
| 03:08:07 | * | muffindrake quit (Ping timeout: 272 seconds) | 
| 03:09:48 | * | muffindrake joined #nim | 
| 03:19:14 | disruptek | uhhh is it me or does round() not work correctly? | 
| 03:19:42 | disruptek | !eval import math; echo round(54.346, 2) | 
| 03:19:45 | NimBot | 54.35 | 
| 03:20:36 | disruptek | seems to be broken in 1.4+. | 
| 03:20:55 | disruptek | !eval echo NimVersion | 
| 03:20:57 | NimBot | 1.4.2 | 
| 03:21:07 | disruptek | oookay, 1.4.3+ | 
| 03:21:18 | FromDiscord | <Rika> What broke? | 
| 03:21:22 | FromDiscord | <Rika> About it I meM | 
| 03:21:24 | disruptek | math.round | 
| 03:21:26 | FromDiscord | <Rika> Mean | 
| 03:21:30 | disruptek | it truncates now. | 
| 03:21:53 | disruptek | i thought i was losing my mind. | 
| 03:22:04 | FromDiscord | <exelotl> oof | 
| 03:22:30 | * | wasted_youth quit (Read error: Connection reset by peer) | 
| 03:22:38 | FromDiscord | <exelotl> This reminds me of the time writeFile broke 😅 | 
| 03:22:45 | disruptek | lol | 
| 03:22:45 | * | wasted_youth joined #nim | 
| 03:27:38 | * | wasted_youth quit (Ping timeout: 264 seconds) | 
| 03:28:27 | disruptek | that was windows-only iirc. | 
| 03:36:24 | disruptek | man, that's such a bad bug. | 
| 03:39:51 | FromDiscord | <hamidb80> I think you should open an issue on Github | 
| 03:40:08 | disruptek | i did. | 
| 03:48:56 | Prestige | Are there no tests? | 
| 03:51:09 | disruptek | the round tests all truncate because dumb. | 
| 03:51:32 | disruptek | ie. there are no tests of round-to-n-places. | 
| 03:51:45 | disruptek | prestige: how did it go with your concepts experiments? | 
| 03:52:56 | Prestige | I tested a few basic things but haven't spent enough time yet | 
| 04:09:56 | * | spiderstew_ joined #nim | 
| 04:11:30 | * | spiderstew quit (Ping timeout: 264 seconds) | 
| 04:44:22 | * | yumaikas quit (Remote host closed the connection) | 
| 05:39:00 | * | narimiran joined #nim | 
| 06:16:39 | FromDiscord | <hamidb80> I can't find documentation about `sequences` | 
| 06:21:27 | Tanger | hamidb80: https://nim-lang.org/docs/manual.html#types-array-and-sequence-types (Manual) https://nim-lang.org/docs/tut1.html#advanced-types-sequences (tutorial) and https://scripter.co/notes/nim/#arrays-and-sequences might help | 
| 06:27:35 | * | habamax joined #nim | 
| 06:35:19 | FromGitter | <Araq> looks like I'll stay on gitter | 
| 06:35:58 | Prestige | gitter over irc? | 
| 06:39:45 | * | waleee-cl quit (Quit: Connection closed for inactivity) | 
| 06:39:57 | FromGitter | <Araq> yeah, cannot be bothered to install irc clients on my newer machines | 
| 06:40:26 | disruptek | lol that's awesome. 🤣 | 
| 06:40:45 | Prestige | :o | 
| 07:05:55 | FromDiscord | <ElegantBeef> First you use matrix, next you'll be using encrypted messages engraved in stone mailed by carrier pigeon it's a gatewaydrug 😄 | 
| 07:07:11 | Prestige | didn't the element team absorb gitter? | 
| 07:07:17 | FromDiscord | <ElegantBeef> Yep | 
| 07:08:37 | FromDiscord | <JSGRANT> They really NEED to stop rebranding; Element is what... their third attempt? | 
| 07:08:40 | Prestige | Hopefully element's client will get a lot better | 
| 07:08:54 | Prestige | All I know is Riot -> Element | 
| 07:08:59 | FromDiscord | <ElegantBeef> Isnt it only their second | 
| 07:09:26 | FromDiscord | <Rika> second | 
| 07:09:29 | FromDiscord | <Rika> second? | 
| 07:09:30 | FromDiscord | <Rika> first | 
| 07:09:33 | FromDiscord | <Rika> first rename | 
| 07:09:34 | FromDiscord | <ElegantBeef> I meant second name | 
| 07:09:37 | FromDiscord | <Rika> yes | 
| 07:09:54 | Prestige | I dislike how generic the names are | 
| 07:10:39 | FromDiscord | <JSGRANT> The reason for the rename is stupid; But legally I get it (Think riot games were waving their trademark at them) but I swear there was a name before riot | 
| 07:10:46 | FromDiscord | <Rika> its the in thing apparently, prolly a boomer thing i feel; younger people would likely use more interesting names than "element" | 
| 07:10:55 | FromDiscord | <JSGRANT> could be wrong; but thought it was like generic 'matrix client' or something? | 
| 07:11:04 | FromDiscord | <Rika> thats worse than "element" is it not | 
| 07:11:09 | Prestige | I just dislike it because it's difficult to find | 
| 07:11:33 | Prestige | and not very memorable | 
| 07:11:49 | FromDiscord | <ElegantBeef> I still need to continue my channelled voip implementation but havent got further than getting voip to work in there | 
| 07:12:27 | FromDiscord | <JSGRANT> _tries for bed._ | 
| 07:16:27 | saem | welp... looks like I can make the IC (rod query, I think) crash with an assertion error in nimsuggest... will have to debug that at some point. | 
| 07:18:15 | FromGitter | <Araq> with the current default where IC is turned off? | 
| 07:18:24 | saem | Yeah, that's the weird thing | 
| 07:18:50 | saem | the repro is to run nimsuggest on `compiler/nim.nim` as the project, then `sug compiler/semstmts.nim:1324:34` | 
| 07:19:46 | saem | now it works... wtf, what did I change. | 
| 07:21:26 | FromDiscord | <carpal> yo araq | 
| 07:21:30 | saem | crap, i lost my old log too. 🤦 | 
| 07:23:14 | saem | whoops, I'm tired and making mistakes, the second repro step is not `sug`, it's `def` | 
| 07:36:40 | saem | araq: I need to still check if it's an issue with my specific nimsuggest build (unlikely, but who knows) but I've made some notes for myself here. https://gist.github.com/saem/91b487da989bb5f47a43a9af08b08dd1 | 
| 07:38:18 | saem | I'll see if I can do that tomorrow but weekdays are a gong show for me. | 
| 07:39:09 | saem | I need to get to bed for now. :zzz | 
| 08:01:25 | FromGitter | <Araq> good night | 
| 08:12:41 | FromDiscord | <Avatarfighter> If you have a variable that is getting changed by async procs does said variable need to be a `{.threadvar.}` ? | 
| 08:15:38 | * | antranigv_ joined #nim | 
| 08:16:17 | * | antranigv quit (Ping timeout: 264 seconds) | 
| 08:28:42 | * | PMunch joined #nim | 
| 08:30:26 | * | lritter quit (Quit: Leaving) | 
| 08:41:39 | FromGitter | <gogolxdong> Is there any api for creating temp file on Windows? | 
| 08:44:33 | PMunch | https://nim-lang.org/docs/os.html#getTempDir | 
| 08:45:38 | planetis[m] | https://einarwh.wordpress.com/2020/05/08/on-the-complexity-of-json-serialization/ 😗 | 
| 08:46:13 | planetis[m] | also hi all | 
| 08:51:31 | FromGitter | <gogolxdong> means writeFile to the tempDir by yourself? | 
| 08:51:50 | PMunch | Yup | 
| 08:52:30 | Zevv | PMunch, my man. Is yours really the only Nim talk at FOSDEM? | 
| 08:52:49 | PMunch | As far as I know, yeah.. | 
| 08:52:55 | Zevv | aw :( | 
| 08:53:18 | FromGitter | <gogolxdong> there is a mkstemp api for posix. | 
| 08:54:52 | * | Tanger quit (Remote host closed the connection) | 
| 08:55:05 | FromDiscord | <ElegantBeef> So pmunch did you notice that i wasnt drawing the game centered to the square? realized today on the android build and laughed to myself since no one pointed it out | 
| 08:55:21 | PMunch | We haven't really talked much about FOSDEM this year | 
| 08:55:30 | FromDiscord | <carpal> guys there's a problem | 
| 08:55:40 | PMunch | Probably since no-one has to plan travel and accommodations | 
| 08:55:49 | PMunch | @ElegantBeef, what do you mean? | 
| 08:55:55 | FromDiscord | <carpal> in these two days I was using nim I wanted to write an object type for multi variable typing | 
| 08:56:11 | FromDiscord | <ElegantBeef> The internal game window was drawn slightly closer to the left side of the frame than the right | 
| 08:56:24 | FromDiscord | <carpal> but today I discovered that nim already supports object type ... 😐 | 
| 08:56:24 | PMunch | Ooh :P | 
| 08:56:44 | PMunch | In the browser the whole game is also a bit taller than the box it is put in.. | 
| 08:56:46 | FromDiscord | <carpal> and someone merged my package request on github | 
| 08:56:53 | FromDiscord | <carpal> should I delete it? | 
| 08:56:58 | FromDiscord | <ElegantBeef> support object type? | 
| 08:57:01 | PMunch | I can't see the bottom part of the border, and I have a black bar on the top | 
| 08:57:08 | FromDiscord | <ElegantBeef> yea i fullscreen it though | 
| 08:57:21 | FromDiscord | <carpal> in this moment my proj is useless | 
| 08:57:23 | FromDiscord | <carpal> lol | 
| 08:57:34 | FromDiscord | <ElegantBeef> What do you mean by "supports object type"? | 
| 08:57:47 | FromDiscord | <carpal> var x: object = "dd" | 
| 08:57:51 | FromDiscord | <carpal> (edit) ""dd"" => ""dd"↵x = 9" | 
| 08:58:15 | FromDiscord | <carpal> (edit) "var x: object = "dd"↵x = 9" => "sent a code paste, see https://play.nim-lang.org/#ix=2Ngc" | 
| 08:58:36 | FromDiscord | <carpal> these tests work but now the object is useless https://media.discordapp.net/attachments/371759389889003532/803187052116049930/unknown.png | 
| 08:59:12 | FromDiscord | <ElegantBeef> You really should use assert or doAssert in tests 😄 | 
| 08:59:13 | FromDiscord | <carpal> ah okay, but I cannot use object in structs | 
| 08:59:20 | FromDiscord | <carpal> yea lol | 
| 09:01:03 | FromDiscord | <carpal> ok I replaced all echos with assert expression thank you | 
| 09:01:41 | FromDiscord | <ElegantBeef> Sometimes i'm incapable of reading a sentence  as anything but sarcastic 😄 | 
| 09:02:19 | FromDiscord | <carpal> ... | 
| 09:13:25 | FromDiscord | <Clyybber> @carpal your project is still useful | 
| 09:13:58 | FromDiscord | <carpal> how? | 
| 09:15:47 | * | vicfred quit (Quit: Leaving) | 
| 09:15:59 | * | vicfred joined #nim | 
| 09:18:28 | FromDiscord | <carpal> but can I use concrete types in structs? https://media.discordapp.net/attachments/371759389889003532/803192051754991636/unknown.png | 
| 09:18:38 | FromDiscord | <carpal> (edit) "concrete" => "nonconcrete" | 
| 09:18:43 | FromDiscord | <carpal> (edit) "nonconcrete" => "non concrete" | 
| 09:18:48 | FromDiscord | <carpal> (edit) "non concrete" => "non-concrete" | 
| 09:19:41 | FromDiscord | <carpal> this happens only with vars | 
| 09:21:50 | FromDiscord | <lqdev> you can't | 
| 09:21:55 | FromDiscord | <lqdev> `object` is a type class, not a type | 
| 09:22:01 | FromDiscord | <Clyybber> object is a type class. it doesnt exist at runtime | 
| 09:24:55 | * | hnOsmium0001 quit (Quit: Connection closed for inactivity) | 
| 09:25:43 | FromDiscord | <carpal> okay, but for local variable I can use it | 
| 09:25:52 | FromDiscord | <carpal> ex: `var x: object = ""` | 
| 09:26:06 | FromDiscord | <carpal> ok so my proj is still usable 😄 | 
| 10:00:59 | * | vicfred quit (Quit: Leaving) | 
| 10:03:51 | * | vicfred joined #nim | 
| 10:04:15 | * | abm joined #nim | 
| 10:13:19 | FromGitter | <Araq> still usable, but still a bad idea | 
| 10:16:34 | FromDiscord | <malfong> sent a code paste, see https://play.nim-lang.org/#ix=2Ngw | 
| 10:17:16 | FromGitter | <Araq> use `sugar.capture` | 
| 10:18:44 | FromDiscord | <malfong> ill try it, thanks! | 
| 10:19:55 | FromDiscord | <carpal> rip | 
| 10:19:58 | FromDiscord | <carpal> why? | 
| 10:28:55 | * | Vladar joined #nim | 
| 10:30:58 | FromDiscord | <lqdev> btw https://github.com/yglukhov/variant | 
| 10:36:41 | * | xace quit (Remote host closed the connection) | 
| 10:44:11 | * | xace joined #nim | 
| 10:56:30 | FromDiscord | <konsumlamm> idk if youre aware, but responding doesnt work across platforms, like gitter | 
| 11:01:15 | * | sagax quit (Quit: Konversation terminated!) | 
| 11:01:21 | FromDiscord | <carpal> sure better than mine, it uses nim macros, but I need dynamic typing for the vm | 
| 11:02:36 | FromGitter | <Araq> the Nim compiler has a VM, feel free to inspect its code | 
| 11:03:55 | FromGitter | <Araq> if you can avoid VMs btw, you should, they suck. Bad interop with other code and new silly bugs are awaiting you. bugs that might take decades to  fix | 
| 11:06:37 | FromDiscord | <carpal> I'm talking about my own bytecode virtual machine... | 
| 11:10:06 | * | habamax quit (Ping timeout: 256 seconds) | 
| 11:12:34 | FromDiscord | <mratsim> Gitter? what are you doing on Gitter Araq? | 
| 11:12:47 | narimiran | midlife crisis | 
| 11:13:24 | * | habamax joined #nim | 
| 11:13:45 | FromDiscord | <konsumlamm> anyone bored and wants to review my PR (https://github.com/nim-lang/Nim/pull/16797) so that it can get merged? its pretty small | 
| 11:13:46 | disbot | ➥ Small changes to std/sums  | 
| 11:14:13 | FromDiscord | <konsumlamm> "yeah, cannot be bothered to install irc clients on my newer machines" | 
| 11:14:55 | FromDiscord | <mratsim> For over a year, gitter gave me a black screen on Linux so I stopped using it. | 
| 11:15:20 | FromDiscord | <mratsim> also they were bought (?) by Matrix so I assume it will see no updates in the foreseeable future | 
| 11:15:42 | narimiran | @konsumlamm merged | 
| 11:28:51 | FromDiscord | <Rika> I think he means to check the nim vm to learn from it for your vm | 
| 11:29:20 | FromDiscord | <carpal> ah | 
| 11:29:45 | FromDiscord | <carpal> but the nim vm doesn't run at compile time? | 
| 11:30:02 | FromGitter | <Carpall> lol | 
| 11:30:03 | FromDiscord | <Rika> It does? It’s what processes macros | 
| 11:31:28 | FromGitter | <Carpall> why using gitter instead of discord? | 
| 11:33:24 | FromDiscord | <Rika> Discord can be cumbersome as well | 
| 11:33:33 | FromDiscord | <konsumlamm> why use discord instead of gitter? | 
| 11:33:55 | * | krux02 joined #nim | 
| 11:34:10 | * | Carpal joined #nim | 
| 11:34:50 | FromDiscord | <konsumlamm> thats literally the only readon the VM exists lol, to run stuff at compile time | 
| 11:34:59 | FromDiscord | <konsumlamm> (edit) "readon" => "reason" | 
| 11:35:05 | * | Carpal quit (Client Quit) | 
| 11:35:07 | FromDiscord | <Rika> It’s not really but it’s essentially the biggest reason | 
| 11:35:20 | FromDiscord | <Rika> I mean I guess nimble uses it but I don’t like it | 
| 11:35:34 | FromDiscord | <carpal> better graphics, functionalities, replies | 
| 11:35:50 | FromDiscord | <Rika> Having a small core is nice for a language but I feel like it doesn’t work too well for a package manager | 
| 11:36:53 | FromDiscord | <Rika> If someone already has a gitter account why would they move to discord, same for each combination of account driven websites in the same category | 
| 11:38:30 | FromDiscord | <Rika> Maybe I should actually finally try nimph | 
| 11:42:49 | FromDiscord | <carpal> ok, I've only asked 😂 | 
| 11:46:12 | * | tane joined #nim | 
| 11:49:36 | krux02 | Rika: it is the network effect. | 
| 11:49:48 | FromDiscord | <Rika> Which? | 
| 11:49:59 | FromDiscord | <Rika> The moving of services? | 
| 11:50:11 | krux02 | Discord has many other channels as well. If you use gitter only for things that you also can you discord for, you might drop gitter | 
| 11:50:19 | FromDiscord | <Rika> Yeah | 
| 11:50:22 | FromDiscord | <Rika> Makes sense | 
| 11:50:26 | krux02 | Discord is useful. | 
| 11:50:31 | FromDiscord | <Rika> It is yes | 
| 11:50:38 | FromDiscord | <Rika> Why do you think I’m here XD | 
| 11:50:40 | * | wasted_youth joined #nim | 
| 11:50:55 | FromDiscord | <Rika> I’m just trying to give an alternate view though if you can tell I’ve likely failed | 
| 11:51:07 | krux02 | It is just owned partially by Tencent. | 
| 11:52:10 | krux02 | There are companies out there that try to conquer and control the internet for reasons mostly unknown. | 
| 11:52:15 | krux02 | Tencent is one of them. | 
| 11:52:23 | FromDiscord | <Rika> Basically anything gamer nowadays is partly owned by ten cent | 
| 11:52:26 | FromDiscord | <mratsim> Tencent basically owns all game companies of the world | 
| 11:52:45 | krux02 | well that is not true. | 
| 11:52:58 | krux02 | I mostly buy indie games. | 
| 11:53:06 | FromDiscord | <mratsim> all successful game companies of the world | 
| 11:53:11 | FromDiscord | <Rika> Of | 
| 11:53:13 | FromDiscord | <Rika> Oof | 
| 11:53:28 | krux02 | If your game runs on Linux, it is probably not owned by Tencent. | 
| 11:53:37 | FromDiscord | <mratsim> I play Path of Exile for example, NZ game company, indie, it grew it grew, and now Tencent owns XX% | 
| 11:53:59 | krux02 | I don't play Free to Play, I dislike the business model. | 
| 11:54:20 | FromDiscord | <Rika> Wangan midnight runs on Linux (arcade machine is Linux based) and I am guessing Tencent has partial ownership of Bandai Namco | 
| 11:54:33 | FromDiscord | <Rika> 😛 | 
| 11:54:45 | krux02 | I think the business model of free to play games is mostly to the disadvantage of the customer. Therefore I avoid it. | 
| 11:55:14 | krux02 | does it have a Linux release? | 
| 11:55:48 | FromDiscord | <mratsim> PoE is free to play and you only pay for skins | 
| 11:55:55 | FromDiscord | <mratsim> it's not pay-to-win | 
| 11:55:56 | FromDiscord | <Rika> No, I was just making a joke of a response | 
| 11:56:06 | krux02 | ok | 
| 11:56:25 | krux02 | I also dislike "pay for skins" "pay for dances" "pay for cosmetics" | 
| 11:56:41 | krux02 | nothing of that is acceptable for me. | 
| 11:57:02 | FromDiscord | <mratsim> Why? | 
| 11:57:08 | FromDiscord | <Rika> How do you expect developers to earn money then? | 
| 11:57:33 | krux02 | The business model is still to make me invest as much time as possible into the game so that I eventually care about those cosmetics. | 
| 11:57:34 | FromDiscord | <Rika> It makes it seem like anything that involves monetisation directly or indirectly is unacceptable to you | 
| 11:57:46 | krux02 | Effectively a business model that tries to maximize my time wasted. | 
| 11:57:54 | FromDiscord | <Rika> Well, that’s the intent of any game is it not | 
| 11:57:54 | krux02 | I don't want to buy into that. | 
| 11:58:00 | krux02 | no it's nto | 
| 11:58:08 | FromDiscord | <Rika> If you think you’re wasting time playing games then don’t ever play one | 
| 11:58:14 | FromDiscord | <mratsim> Game != time wasted. | 
| 11:58:25 | krux02 | If you pay for a game, then the game owner doesn't care how long you play the game. | 
| 11:59:00 | krux02 | Therefore there is no business that requires to streach the playtime as much as possible. | 
| 11:59:04 | FromDiscord | <Rika> That’s the thing, they made the game so you’re engaged in the game aka don’t want to stop, is it not like that for open world games or so? | 
| 11:59:35 | FromDiscord | <mratsim> stretching the play time is your own decision | 
| 11:59:43 | FromDiscord | <mratsim> Why would i play a game that is not engaging. | 
| 12:00:18 | FromDiscord | <mratsim> For example, go is also free-to-play and you can pay for skins (luxury boards). I wouldn't play it if it was not engaging as well. | 
| 12:00:24 | FromDiscord | <Rika> The issue in this argument is that the concept of wasted time is subjective, is it not | 
| 12:00:48 | FromDiscord | <mratsim> The issue is assuming game dev can control how your spend your time. | 
| 12:00:58 | krux02 | all F2P games are essentially endless grinds into absurdity. | 
| 12:01:09 | FromDiscord | <Rika> I’m here in the arcade right now, probably have sunk half a grand in this arcade game over two months, I don’t think I wasted time at all | 
| 12:01:13 | krux02 | Same btw with MMORPGs that you pay per month | 
| 12:01:39 | FromDiscord | <Rika> Only thing game devs can do is influence | 
| 12:01:39 | krux02 | no go is not free to play, Go is entirely free | 
| 12:01:46 | krux02 | it is public domain. | 
| 12:01:54 | krux02 | there is nobody who own go. | 
| 12:02:14 | krux02 | and everybody is allowed to modify the game and improve it. | 
| 12:02:23 | krux02 | That is by the way how chess and go evolved. | 
| 12:02:37 | FromDiscord | <Rika> Changing go would be making a different game | 
| 12:02:39 | FromDiscord | <mratsim> it's also an endless grinds | 
| 12:02:57 | FromDiscord | <Rika> Unless it becomes universally acceptable | 
| 12:03:35 | krux02 | Well I can't change your opinion. I don't consider go an endless grind, because winning the game doesn't give you anything except winning the game. | 
| 12:03:44 | FromDiscord | <Rika> You two have fun, I’ll be playing now | 
| 12:03:51 | krux02 | Another story is tournament chess with badges and stuff | 
| 12:03:56 | krux02 | that is an endless grind again. | 
| 12:03:59 | FromDiscord | <Rika> Winning the game can give skill can it not | 
| 12:04:15 | FromDiscord | <Rika> The grind can be endlessly grinding to become better at the game | 
| 12:04:28 | krux02 | Well I don't play chess either. | 
| 12:05:02 | FromDiscord | <mratsim> you don't need to win to get better | 
| 12:05:18 | krux02 | Board games also never try to lure you into playing the game with special weekend offers if you actually wanted to quit playing. | 
| 12:05:30 | FromDiscord | <mratsim> The most significant thing Go and I assume chess can teach you is patience | 
| 12:05:47 | FromDiscord | <mratsim> and also humility, because you lose half your games. | 
| 12:05:54 | krux02 | anyway, I don't want to spam this chat again with game related discussions. | 
| 12:06:08 | FromGitter | <Araq> mratsim, I'm "about" to add a condition variable to your simple channel implementation | 
| 12:06:28 | FromGitter | <Araq> so that `send` blocks when the queue is full | 
| 12:06:45 | FromGitter | <Araq> anything I need to watch out for when I attempt to do this? | 
| 12:07:41 | FromDiscord | <mratsim> I think having a standard channel interface is best, because they come in all kind of flavors | 
| 12:08:20 | FromDiscord | <mratsim> We can have a ChannelConcept that just implements trySend and tryRecv, and a BlockingChannelConcept that "inherits" from is and has `send`, `recv` | 
| 12:08:48 | FromDiscord | <mratsim> just make sure you have a while loop around your CV to handle spurious wakeups | 
| 12:09:36 | FromDiscord | <mratsim> and if you deadlock on Linux, well you know that glibc CV may list a cv.signal() | 
| 12:10:03 | FromGitter | <Araq> "may list", what do you mean? I know about spurious wakeups | 
| 12:10:12 | FromDiscord | <mratsim> may lose | 
| 12:10:25 | FromDiscord | <mratsim> sorry, somehow my thoughts/writing is all jumbled up today | 
| 12:11:08 | FromGitter | <Araq> wait what? it may lose a `signal` call? | 
| 12:11:29 | FromGitter | <Araq> what  am I supposed to do then... | 
| 12:12:55 | FromDiscord | <mratsim> This bug: https://github.com/mratsim/weave/issues/56 | 
| 12:12:56 | disbot | ➥ [Glibc] Condition variable lost wakeups  | 
| 12:13:33 | * | asdflkj joined #nim | 
| 12:13:58 | FromDiscord | <mratsim> do it assuming there is no lost `signal`.↵One day I will reimplement, locks, CV, Semaphores on top of raw Futex. | 
| 12:14:12 | FromDiscord | <mratsim> (and formally verified) | 
| 12:15:14 | FromDiscord | <mratsim> seems like Intel used timedwait to workaround deadlocks: https://community.intel.com/t5/Intel-Fortran-Compiler/OpenMP-deadlocks-for-long-running-jobs/td-p/1117723 | 
| 12:15:24 | FromDiscord | <mratsim> due to the condvar bug. | 
| 12:16:02 | FromDiscord | <konsumlamm> a very general question, i know, perhaps i should make a thread on the forums: what's the planned future for parallelism in Nim? | 
| 12:16:13 | FromGitter | <Araq> weave | 
| 12:16:23 | FromDiscord | <mratsim> for compute bound workload there is Weave | 
| 12:16:40 | FromDiscord | <konsumlamm> are there any plans to make threadpool stable? | 
| 12:16:45 | FromDiscord | <mratsim> for IO bound workload there isnothing yet, though i plan to do weave IO | 
| 12:17:20 | FromDiscord | <mratsim> for a basic threadpool I will need to write one anyway for high performance cryptography (Weave is likely too complex to audit). | 
| 12:17:35 | FromDiscord | <konsumlamm> (threadpool as in the stdlib module) | 
| 12:17:43 | FromDiscord | <mratsim> you can use yglukhov lib for threadpool: https://github.com/yglukhov/threadpools | 
| 12:18:12 | FromDiscord | <konsumlamm> weave looks pretty cool though | 
| 12:18:25 | FromDiscord | <mratsim> for interop between IO and CPU, CPS (continuation passing style) is the plan | 
| 12:18:41 | FromDiscord | <mratsim> why do we need different scheduler for IO and Compute is explained here: https://github.com/weavers-guild/weave-io/blob/master/blog/multithreading_flavors.md | 
| 12:18:54 | * | gator joined #nim | 
| 12:19:09 | FromDiscord | <konsumlamm> i'm wondering, are there any plans to change the stdlub situation with regards to parallelism? will threadpool (with spawn & parallel) just always stay unstable? | 
| 12:19:30 | FromDiscord | <mratsim> It's mostly a time problem. | 
| 12:19:45 | FromGitter | <Araq> konsumlamm: I don't know yet. | 
| 12:20:23 | FromDiscord | <mratsim> ideally we have a common type or at least concept for tasks and awaitables. | 
| 12:21:00 | FromDiscord | <mratsim> and also a way to pack locals into closures that is flexible for memory management. | 
| 12:21:25 | FromDiscord | <mratsim> so that Weave, threadpools, async are all interoperable. | 
| 12:21:31 | FromGitter | <Araq> konsumlamm: one likely outcome: threadpool's basic `spawn` feature remains and the rest will be thrown away | 
| 12:21:32 | FromDiscord | <mratsim> and composable. | 
| 12:21:42 | FromDiscord | <konsumlamm> btw, speaking of spawn, is there any particular reason you chose to make it only accept proc calls, instead of just passing a proc? maybe to mimic go? | 
| 12:22:01 | FromDiscord | <konsumlamm> (edit) i'm wondering, are there any plans to change the stdlib situation with regards to parallelism? will threadpool (with spawn & parallel) just always stay unstable? | 
| 12:22:04 | FromDiscord | <mratsim> you need a proc + parameters anyway | 
| 12:22:05 | FromGitter | <Araq> you need the proc call arguments for the marshalling | 
| 12:22:31 | gator | where does cps fit into all this plan? sorry new to nim, don't know much. | 
| 12:22:38 | FromDiscord | <mratsim> Also this is how parallelism has been done since 1995 (the Cilk paper) | 
| 12:22:46 | FromDiscord | <mratsim> fork-join parallelism | 
| 12:22:46 | FromGitter | <Araq> konsumlamm: they won't stay "unstable" but most APIs in there are flawed beyond repair | 
| 12:22:48 | FromDiscord | <konsumlamm> sounds like a good idea | 
| 12:23:40 | FromDiscord | <konsumlamm> @Araq does that mean they'll be deprecated and removed eventually? | 
| 12:23:58 | FromGitter | <Araq> yeah | 
| 12:24:55 | FromGitter | <Araq> the APIs are bad and the implementation predates Nim's move semantics so there is not much to keep | 
| 12:25:19 | FromGitter | <Araq> however, the `spawn` thing is the right idea and remains | 
| 12:25:25 | FromDiscord | <mratsim> I prefer spawn/sync to spawn/`^` btw | 
| 12:26:02 | FromGitter | <Araq> *shrug* we can rename it to `sync`, I won't lose sleep over that | 
| 12:26:11 | FromDiscord | <mratsim> 😉 | 
| 12:27:41 | FromDiscord | <mratsim> also @konsumlamm createThread works very well if you just want to run threads as service. | 
| 12:28:08 | FromDiscord | <mratsim> it deals nicely with the OS differences. | 
| 12:28:19 | * | sagax joined #nim | 
| 12:28:27 | FromGitter | <Araq> depending on your needs, threadpool also "works", the problem is who wants to debug it when it doesn't | 
| 12:28:43 | FromGitter | <Araq> not me. ;-) | 
| 12:29:12 | * | gator quit (Quit: Connection closed) | 
| 12:30:34 | FromGitter | <Araq> bbl | 
| 12:30:39 | FromDiscord | <konsumlamm> you mean the stdlib createThread proc? that uses OS threads though, right? | 
| 12:31:10 | FromDiscord | <mratsim> yes | 
| 12:31:31 | FromDiscord | <konsumlamm> also, i dislike that you have to pass a var instead of just returning it, but thats just a nit | 
| 12:32:29 | FromDiscord | <mratsim> that's what the OS provides at a low-level. People can write a version with out parameter. | 
| 12:34:00 | FromDiscord | <konsumlamm> sure, but wouldnt it be nicer if the stdlib would just provide it? | 
| 12:38:20 | FromDiscord | <mratsim> PRs are open. | 
| 12:42:27 | FromDiscord | <konsumlamm> i can try xd | 
| 12:42:50 | FromDiscord | <konsumlamm> there are also still enough modules to fix documentation for | 
| 13:04:14 | * | vicfred quit (Quit: Leaving) | 
| 13:06:27 | * | antranigv joined #nim | 
| 13:09:42 | * | antranigv_ quit (Ping timeout: 260 seconds) | 
| 13:27:20 | FromDiscord | <konsumlamm> @mratsim what's the difference between weave-io and asyncdispatch? | 
| 13:32:31 | FromDiscord | <flywind> How can I use `importc` to import c function in MacOSX? | 
| 13:32:40 | FromDiscord | <flywind> for example | 
| 13:32:43 | FromDiscord | <flywind> sent a code paste, see https://play.nim-lang.org/#ix=2Nhr | 
| 13:32:47 | FromDiscord | <flywind> https://git.privacyone.io/useful/macos-sdk/-/blob/a3892fa99785a8327cefa8d3a6b8ff449ab606e9/MacOSX10.13.sdk/usr/include/sys/random.h | 
| 13:33:43 | FromDiscord | <haxscramper> I think that is correct `importc` for a given function | 
| 13:33:59 | FromDiscord | <haxscramper> Can you show the error? | 
| 13:34:19 | FromDiscord | <Clyybber> @konsumlamm Do you know whats the reasoning for wrapping the dump in an if false? | 
| 13:34:38 | FromDiscord | <konsumlamm> so that theres no IO | 
| 13:34:44 | FromDiscord | <flywind> sent a code paste, see https://play.nim-lang.org/#ix=2Nhu | 
| 13:34:47 | FromDiscord | <konsumlamm> when running the tests | 
| 13:34:58 | FromDiscord | <flywind> and https://dev.azure.com/nim-lang/255dfe86-e590-40bb-a8a2-3c0295ebdeb1/_apis/build/builds/12454/logs/104 | 
| 13:35:11 | FromDiscord | <Clyybber> @konsumlamm But our tests can deal with that just fine | 
| 13:35:34 | FromDiscord | <Clyybber> And a example that outputs something is better than a dead example | 
| 13:35:52 | FromDiscord | <konsumlamm> ¯\_(ツ)_/¯ | 
| 13:36:16 | FromDiscord | <konsumlamm> ask @flywind | 
| 13:37:36 | FromDiscord | <flywind> that's noisy in doc tests, you could test them with testament. | 
| 13:37:59 | FromDiscord | <Clyybber> then doc tests should be fixed to swallow output | 
| 13:38:23 | FromDiscord | <Clyybber> if false is just unneccessary convolution, and doesn't read particularily well | 
| 13:38:49 | FromDiscord | <konsumlamm> speaking of, there is no test for `dump`... | 
| 13:39:15 | FromDiscord | <flywind> I would prefer code-blocks in this situation. | 
| 13:40:04 | FromDiscord | <Clyybber> why? | 
| 13:40:04 | FromDiscord | <haxscramper> I'm not entirely sure, but to me it looks like the issue is unrelated to your proc wrapper (at least not directly) | 
| 13:40:06 | FromDiscord | <Clyybber> theres no reason | 
| 13:40:59 | FromDiscord | <haxscramper> My guess is that it is somehow broke C macro somewhere up translation unit, and not you are getting unrelated errors down the line | 
| 13:41:28 | FromDiscord | <Clyybber> @flywind Our runnableExamples should really not be restricted to not doing IO | 
| 13:41:40 | FromDiscord | <haxscramper> But for C function declared as `int getentropy(void buffer, size_t size);`, nim wrapper `proc getentropy(p: pointer, size: csize_t): cint {.importc: "getentropy", header: "<sys/random.h>".}` is correct one AFAIC | 
| 13:42:02 | FromDiscord | <flywind> I see thanks | 
| 13:42:40 | FromDiscord | <Clyybber> of course they shouldn't do actual file IO | 
| 13:42:46 | FromDiscord | <Clyybber> but echo and the like is fine | 
| 13:44:31 | * | clyybber joined #nim | 
| 13:46:52 | FromDiscord | <konsumlamm> @Clyybber now i need to make another PR to fix the examples :p | 
| 13:47:01 | * | clyybber quit (Client Quit) | 
| 13:47:11 | FromDiscord | <Clyybber> oh why? | 
| 13:47:38 | FromDiscord | <konsumlamm> the second example for `capture` should be changed or removed, since it's behaving the same without `capture` | 
| 13:47:55 | FromDiscord | <Clyybber> ah, I see. I didn't grok that you wanted to do it in that pr too :D | 
| 13:48:37 | FromDiscord | <konsumlamm> though i'm thinking about just dropping that example, since the issue doesn't really occur when using `mapIt` and the like... | 
| 13:54:22 | FromDiscord | <konsumlamm> btw, i'd love to see https://github.com/nim-lang/Nim/pull/16634 getting merged | 
| 13:54:22 | disbot | ➥ Make small text changes in the docs  | 
| 13:59:29 | FromGitter | <Araq> merged | 
| 14:03:01 | FromDiscord | <konsumlamm> nice | 
| 14:35:57 | FromDiscord | <carpal> yea 😄 mostly in vms, it is a bad idea. My vm has now terrible performance, I wrote a fibonacci algorithm, and it remains for a few minutes to perform code when recursion number is over 30:nimGlow: | 
| 14:36:45 | FromDiscord | <mratsim> well fibonacci 30 is 2^30 operations | 
| 14:36:49 | FromDiscord | <carpal> I think I'll use a classic pointer, so I've to leave the dynamic typing | 
| 14:37:13 | FromDiscord | <carpal> 1073741824 | 
| 14:38:02 | FromDiscord | <mratsim> it's a great way to measure overheads. | 
| 14:38:29 | FromDiscord | <carpal> doing fibonacci? | 
| 14:38:56 | * | waleee-cl joined #nim | 
| 14:39:02 | FromDiscord | <carpal> yea, it is less when you see you program remaining in pause for minutes 😂 | 
| 14:39:47 | FromDiscord | <carpal> my old written in c# was faster than this written in nim | 
| 14:40:05 | FromDiscord | <carpal> despite of th eji | 
| 14:40:11 | FromDiscord | <carpal> (edit) "th eji" => "the jiy" | 
| 14:40:14 | FromDiscord | <carpal> (edit) "jiy" => "jit" | 
| 14:40:26 | FromDiscord | <carpal> (edit) removed "of" | 
| 14:40:46 | FromDiscord | <carpal> because .net object is not a dynamic object like that I wrote yesterday | 
| 14:41:56 | FromDiscord | <lqdev> are you on -d:release or -d:danger? | 
| 14:54:50 | PMunch | Hmm, I'm guessing no-one here has tried to write an Add-on for Home Assistant in Nim? | 
| 14:55:29 | FromGitter | <Araq> PMunch: is FOSDEM virtual this year? | 
| 14:56:04 | PMunch | Yes | 
| 14:56:09 | PMunch | All talks are pre-recorded | 
| 14:56:15 | FromGitter | <Araq> (what a question...) | 
| 14:56:45 | PMunch | With a live QA session after that, and a "hallway discussion" that's live as well, but will overlap with the next talk | 
| 14:57:49 | PMunch | So my talk for example is 27 minutes, the slot is 30 minutes, so there will be a 3 minute QA and then people can join me for a hallway discussion while the next talk starts (well mine is the last for the day, but as an example). | 
| 14:58:01 | PMunch | Would be wild if it was not virtual | 
| 14:58:08 | PMunch | In Belgium of all places | 
| 14:58:14 | FromGitter | <Araq> yeah, it was a most stupid question | 
| 14:58:26 | PMunch | Haha, well I guess they could have straight up cancelled it | 
| 14:58:33 | FromGitter | <Araq> anyway, please share the discussion link here if you can | 
| 14:58:40 | FromGitter | <Araq> once it's available of course | 
| 14:58:49 | PMunch | Will do :) | 
| 14:59:03 | PMunch | All discussions and such are done on Matrix, but I think there's going to be an IRC bridge as well | 
| 14:59:54 | FromDiscord | <carpal> -d:danger no | 
| 15:01:46 | FromDiscord | <carpal> the same ri | 
| 15:01:47 | FromDiscord | <carpal> (edit) "ri" => "rip" | 
| 15:01:52 | * | haxscramper joined #nim | 
| 15:02:41 | FromGitter | <Araq> PMunch: have you recorded your talk already? | 
| 15:02:48 | PMunch | Yup | 
| 15:02:51 | PMunch | Quite a while ago | 
| 15:03:04 | haxscramper | PMunch: in your third article for nimscipt embedding you mentioned you wrote a tool for tracing import dependencies, but repository for examples only contains code for second article. Maybe I missed something, but if not - could you please add it too? | 
| 15:03:19 | FromGitter | <Araq> ah too bad, was about to suggest my help | 
| 15:03:47 | haxscramper | By the way, thanks for writing them - very good reference for getting started with  | 
| 15:03:47 | haxscramper | nimscipt as embedded scripting | 
| 15:06:53 | FromDiscord | <carpal> why your username is araq? | 
| 15:07:15 | FromDiscord | <carpal> (edit) "why your ... username" added "is" | removed "is" | 
| 15:07:19 | FromDiscord | <carpal> (edit) "why ... your" added "is" | removed "is" | 
| 15:07:20 | PMunch | haxscramper, thanks :) I'll see if I can find the tool, it's a bit weird it's not linked in the article | 
| 15:07:43 | PMunch | @Araq, any particular thing you wanted me to mention? | 
| 15:08:25 | FromGitter | <Araq> no, I would add my unqualified remarks and questions to make the talk more entertaining | 
| 15:08:46 | PMunch | haxscramper, ah here it is: https://github.com/PMunch/libbuilder | 
| 15:08:57 | FromGitter | <Araq> not that your talk isn't entertaining, you're a superb speaker | 
| 15:08:59 | FromDiscord | <mratsim> "consistency is the hobgoblin of the mind" - Araq | 
| 15:09:27 | PMunch | Oh you wanted to do it like a QA-style talk? | 
| 15:09:31 | haxscramper | PMunch: thanks a lot | 
| 15:09:36 | FromGitter | <Araq> yeah, maybe | 
| 15:10:08 | FromGitter | <Araq> mratsim, "consistency is an illusion" | 
| 15:11:21 | FromGitter | <Araq> hundreds of natural languages exist, occasionally changing the grammar for more consistency. They evolve for thousands of years. They are all now "consistent" by now... right? no? how come... | 
| 15:13:15 | FromDiscord | <lqdev> natural languages ≠ computer languages though | 
| 15:13:48 | Oddmonger | consistencey is the hobgobelin … houla | 
| 15:14:10 | Oddmonger | what does that mean ? | 
| 15:20:12 | FromDiscord | <mratsim> sent a long message, see https://paste.rs/YH8 | 
| 15:22:40 | FromGitter | <Araq> when you think something is "inconsistent with X" it's often "consistent with Y" instead ;-) | 
| 15:33:35 | FromDiscord | <carpal> mhh | 
| 15:33:50 | FromDiscord | <carpal> I could be something to object | 
| 15:39:05 | * | asdflkj quit (Ping timeout: 264 seconds) | 
| 15:42:16 | * | habamax quit (Quit: leaving) | 
| 15:49:56 | * | krux02 quit (Ping timeout: 240 seconds) | 
| 15:50:35 | FromDiscord | <carpal> @lqdev I installed the package 'variant', and I replaced all the Object types with Variant, but nothing changes | 
| 15:51:10 | FromDiscord | <lqdev> have you profiled your interpreter yet? | 
| 15:51:30 | PMunch | Can you cancel a future? | 
| 15:52:05 | narimiran | ^ message from 2019 | 
| 15:52:12 | PMunch | Haha :P | 
| 15:52:25 | PMunch | I want to sleep until the next alarm, but if the alarm changes before the sleep is complete I want to stop the sleep | 
| 15:54:02 | FromDiscord | <carpal> --profiler:on? | 
| 15:55:02 | FromDiscord | <lqdev> and `import nimprof` | 
| 15:55:11 | FromDiscord | <lqdev> you need `--stackTrace:on` for this btw | 
| 15:55:21 | PMunch | I guess I could have check in the callback which would just make it do nothing.. | 
| 15:55:46 | FromDiscord | <carpal> nothing to add in the code? | 
| 15:55:51 | FromDiscord | <lqdev> no | 
| 15:55:54 | FromDiscord | <carpal> k | 
| 15:55:57 | FromDiscord | <carpal> (edit) "k" => "ok" | 
| 15:57:36 | FromDiscord | <carpal> with profiling and stack trace on, perfomed fibonacci(22) in 24767 ms | 
| 15:57:53 | FromDiscord | <carpal> 24 s | 
| 15:59:01 | FromDiscord | <carpal> ok now, it is the first time I'm using a profiler? https://media.discordapp.net/attachments/371759389889003532/803292852318109726/profile_results.txt | 
| 16:00:13 | * | xigoi[m] quit (Quit: Idle for 30+ days) | 
| 16:00:15 | PMunch | Hmm, I can clear the callback.. | 
| 16:01:18 | PMunch | So I can have a global "timer" variable which is a Future[void] from sleepAsync. Then I can clearCallback if the variable is set and create a new sleepAsync and set a callback on that | 
| 16:02:29 | PMunch | Oh, I can even call `complete` on it | 
| 16:06:55 | FromDiscord | <lqdev> @carpal read that file and check which calls were the "hot spots" | 
| 16:07:03 | FromDiscord | <lqdev> aka which procs were called the most | 
| 16:07:05 | FromDiscord | <lqdev> and took the most time | 
| 16:07:28 | FromDiscord | <carpal> ok so it is a proc call trace? | 
| 16:08:24 | * | hnOsmium0001 joined #nim | 
| 16:08:35 | FromDiscord | <lqdev> yeah, it shows you how much time it spent in each proc | 
| 16:08:49 | FromDiscord | <lqdev> seems like there's a lot of `genericAssignAux`es | 
| 16:09:00 | FromDiscord | <lqdev> quite a bit of time was spent in `pop` | 
| 16:09:36 | FromDiscord | <carpal> what is the main in a language like nim? NimMain? | 
| 16:10:52 | * | abm quit (Quit: Leaving) | 
| 16:11:05 | FromDiscord | <lqdev> it ain't gonna show up in the trace here | 
| 16:11:23 | FromDiscord | <carpal> ok | 
| 16:11:43 | FromDiscord | <carpal> btw I can't find the problem in this file | 
| 16:17:01 | FromGitter | <Araq> `genericAssignAux` is when you don't use --gc:orc :P | 
| 16:21:49 | * | PMunch quit (Quit: leaving) | 
| 16:32:40 | * | habamax joined #nim | 
| 16:41:06 | FromDiscord | <carpal> should better diable them? | 
| 16:41:07 | FromDiscord | <mratsim> I have nightmares about genericAssignAux | 
| 16:41:09 | FromDiscord | <carpal> (edit) "diable" => "disable" | 
| 16:41:29 | FromDiscord | <mratsim> hunting them in Arraymancer was a whack-a-mole in 2017 | 
| 16:42:07 | FromDiscord | <lqdev> is it GC-safe to cast a `ref T` to a `ref RootObj`? or will the refcount get desynced | 
| 16:42:18 | FromDiscord | <lqdev> talking mostly about ARC here because default GC deems to work | 
| 16:43:29 | FromDiscord | <mratsim> ref RootObj is OK I think, ref Something of RootObj is not unless that Something is tagged {.pure.} and so does not have the additional RTTI field | 
| 16:43:46 | FromDiscord | <mratsim> here be dragons | 
| 16:44:04 | FromDiscord | <mratsim> actually RootObj likely has a RTTI field as well so probably not | 
| 16:47:17 | haxscramper | I couldn't find any discussion about this, but why does nim tooling uses colon for key-value pairs? Like `--cc:tcc` instead of `--cc=tcc` | 
| 16:47:55 | haxscramper | I think I've seen it mentioned __somewhere__, but can't find it right now | 
| 16:48:16 | haxscramper | s/__/_/g | 
| 16:49:05 | haxscramper | And almost none other CLI tool (that I know of) has this convention | 
| 16:52:08 | FromDiscord | <lqdev> it supports both syntaxes actually | 
| 16:52:37 | FromDiscord | <lqdev> my guess is that it's a mix of windows and unix conventions, on windows you'd do `/cc:tcc` | 
| 16:53:37 | haxscramper | Nice, I didn't know it supports both. Didn't know about windows conventions though. Just thought there mighe be some other reason | 
| 16:58:38 | * | zedeus joined #nim | 
| 17:08:15 | FromDiscord | <lytedev> can I not `for i in countdown(index, 0:`?! | 
| 17:08:38 | FromDiscord | <lytedev> (edit) "0:`?!" => "0):`?!" | 
| 17:08:52 | FromDiscord | <konsumlamm> iirc the reasoning was that the default convention is bad and this is better | 
| 17:08:56 | FromDiscord | <lytedev> nevermind I'm dumb | 
| 17:14:31 | disruptek | noted. | 
| 17:18:20 | * | abm joined #nim | 
| 17:43:19 | * | a_chou joined #nim | 
| 17:56:25 | * | Gustavo6046 quit (Ping timeout: 240 seconds) | 
| 17:56:27 | * | MyMind joined #nim | 
| 17:58:17 | * | a_chou quit (Remote host closed the connection) | 
| 17:59:53 | * | Sembei quit (Ping timeout: 246 seconds) | 
| 18:08:26 | * | NimBot joined #nim | 
| 18:11:15 | * | asdflkj joined #nim | 
| 18:11:52 | * | vicfred joined #nim | 
| 18:17:04 | FromGitter | <Araq> one reason was so that `--define:key=value`  can look nice | 
| 18:18:32 | * | rockcavera joined #nim | 
| 18:21:37 | * | natrys joined #nim | 
| 18:42:20 | Oddmonger | i'd be interested, in an object , to define a member which would be an array | 
| 18:42:35 | disruptek | what? | 
| 18:42:37 | Oddmonger | easy you say… yes, but i don't want to define a fixed length | 
| 18:42:45 | disruptek | then it's not an array. | 
| 18:42:55 | Oddmonger | am i doom to use seq ? | 
| 18:43:03 | disruptek | only if you want variable-length arrays. | 
| 18:43:22 | Oddmonger | no, it would be a fixed length buffer | 
| 18:43:26 | disruptek | use a ref. | 
| 18:43:31 | Oddmonger | ah | 
| 18:43:49 | Oddmonger | will it pass the marshalling ? | 
| 18:43:56 | * | cyraxjoe quit (Quit: No Ping reply in 180 seconds.) | 
| 18:43:57 | disruptek | how the hell would i know? | 
| 18:44:06 | disruptek | i marshall such garbage using frosty. | 
| 18:44:08 | disruptek | !repo frosty | 
| 18:44:08 | disbot | https://github.com/disruptek/frosty -- 9frosty: 11serialize native Nim types to strings, streams, or sockets ⛄ 15 24⭐ 1🍴 | 
| 18:44:23 | Oddmonger | ohhh you're so mean disruptek :') | 
| 18:44:31 | disruptek | i know.  i'm fucking toxic. | 
| 18:44:50 | Oddmonger | anyway, thanks for the ref | 
| 18:44:59 | disruptek | SURE THING ODD MONGER. | 
| 18:45:07 | Oddmonger | at least you didn't answered: void *you = 0 | 
| 18:45:16 | * | cyraxjoe joined #nim | 
| 18:45:32 | disruptek | one cannot assign nil to a void ptr. | 
| 18:45:39 | disruptek | believe me, i've tried. | 
| 18:45:48 | Oddmonger | really? | 
| 18:45:52 | disruptek | no. | 
| 18:46:05 | disruptek | suicide humor. | 
| 18:47:17 | Oddmonger | it would be annoying to cannot use void as a pointer, anyway | 
| 18:47:21 | Oddmonger | pooor void | 
| 18:47:28 | FromGitter | <Araq> disruptek: little reminder to watch your words | 
| 18:47:45 | FromGitter | <Araq> you should not be "f-ing toxic" ;-) | 
| 18:48:37 | disruptek | sorry, i'll be less f-ing toxic. | 
| 18:49:48 | disruptek | Oddmonger: why don't you want to use a seq? | 
| 18:50:06 | Oddmonger | isn't it slower than a array for accessing ? | 
| 18:50:20 | * | disruptek sighs. | 
| 18:50:22 | FromGitter | <Araq> it's one memory read either way | 
| 18:50:33 | disruptek | you are worried that your application will be too slow if you use a seq? | 
| 18:50:36 | Oddmonger | yes, premature optimization, i know i know | 
| 18:50:41 | disruptek | why don't you benchmark it? | 
| 18:50:53 | Oddmonger | it was curiosity, too | 
| 18:51:09 | disruptek | i'm curious why you wouldn't use the tools that were provided to you at great expense. | 
| 18:51:35 | disruptek | i'm starting to really be frustrated with this mentality i see in the community. | 
| 18:51:36 | Oddmonger | when i know the size of an array at construction, why would i use varying size container ? | 
| 18:51:51 | FromGitter | <Araq> because hardware works this way | 
| 18:52:27 | disruptek | use whatever you want.  but don't sacrifice abstraction in pursuit of performance you don't need. | 
| 18:52:32 | disruptek | abstraction is much more valuable. | 
| 18:52:58 | Oddmonger | it was kind of self doc too | 
| 18:53:03 | ForumUpdaterBot | New thread by Chris_st: Puzzling error (warning?) messages, see https://forum.nim-lang.org/t/7429 | 
| 18:53:40 | disruptek | i am fine with arrays.  i use them, too.  just, y'know, take my point. | 
| 18:53:50 | FromGitter | <Araq> "self doc" is a fine argument | 
| 18:54:13 | FromGitter | <Araq> but still, learn the implementations, don't "outsmart" them with your ignorance | 
| 18:54:34 | Oddmonger | no joke, it's for storing a map : the map cannot grow, so it should be an array | 
| 18:54:44 | disruptek | sure. | 
| 18:54:45 | Oddmonger | for the moment , i'm using seq anyway | 
| 18:55:47 | FromGitter | <Araq> feel free to write a `StaticSeq` container that lacks the `add` operation | 
| 18:57:14 | FromGitter | <Araq> but don't expect differences, a read from memory is a read from memory and `seq` has no additional indirection. | 
| 18:57:42 | Oddmonger | ok, so i keep the seq in my object | 
| 18:58:15 | Oddmonger | thank you for explaining Araq && disruptek  | 
| 18:58:45 | FromGitter | <Araq> hmm now I want a `StaticSeq` myself :P | 
| 19:04:10 | * | Gustavo6046 joined #nim | 
| 19:04:50 | FromDiscord | <lqdev> there's no need to create a StaticSeq, we already have `newSeq[T](yourLen)` which does the same thing | 
| 19:04:58 | FromDiscord | <lqdev> just remember to not `add` to it | 
| 19:11:43 | FromGitter | <Araq> I know | 
| 19:12:49 | Oddmonger | but thanks for the reminding anyway ;) and bon appétit :)’ | 
| 19:13:06 | ForumUpdaterBot | New thread by Recruit_main707: Threads are finishing without an error even though they shouldnt, see https://forum.nim-lang.org/t/7430 | 
| 19:13:58 | FromDiscord | <Recruit_main707> if someone has any clue, id like to know whats wrong | 
| 19:16:39 | FromDiscord | <konsumlamm> i assume it's because you're not joining the threads? | 
| 19:16:43 | FromGitter | <Araq> call `join`? | 
| 19:17:02 | FromDiscord | <konsumlamm> currently the main thread exists and doesnt wait for the other threads to finish | 
| 19:18:36 | FromDiscord | <Recruit_main707> welp, now im crashing even before any thread prints anything, xD | 
| 19:18:47 | FromDiscord | <mratsim> welcome to multithreading | 
| 19:27:22 | FromDiscord | <konsumlamm> https://github.com/nim-lang/Nim/pull/16820 if you're bored xD | 
| 19:27:23 | disbot | ➥ Sugar tests  | 
| 19:30:03 | * | asdflkj quit (Ping timeout: 260 seconds) | 
| 19:48:58 | FromDiscord | <Recruit_main707> oh jeez im so retarded, i didnt initialize the references | 
| 19:49:58 | * | hmmm joined #nim | 
| 19:51:40 | hmmm | dudes why my variables won't persist after the if block finshes executing :| | 
| 19:52:04 | hmmm | I'm dazed and confused :o | 
| 19:53:17 | disruptek | feature. | 
| 19:53:22 | hmmm | whaaat | 
| 19:53:48 | FromGitter | <Araq> inside a nim proc there is more than one scope | 
| 19:54:10 | FromGitter | <Araq> it's pretty common for programming languages, Python being a notable exception here | 
| 19:54:37 | hmmm |  b-but I'm a python scrub :| | 
| 19:54:48 | disruptek | noted. | 
| 19:55:11 | hmmm | tek how do I keep my precious variables after the scope | 
| 19:55:17 | disruptek | well it looks like nim is stuck with me a little longer.  elixir folks don't want to hire me, either. | 
| 19:55:22 | hmmm | what is that enlightened nimions do in this case | 
| 19:55:31 | disruptek | hmmm: lift your variable declaration. | 
| 19:57:56 | * | hmmm quit (Quit: WeeChat 3.0) | 
| 19:58:24 | * | hmmm joined #nim | 
| 20:01:50 | FromDiscord | <konsumlamm> why does this segfault? | 
| 20:01:53 | FromDiscord | <konsumlamm> sent a code paste, see https://play.nim-lang.org/#ix=2Njl | 
| 20:02:08 | * | hyiltiz quit (Quit: hyiltiz) | 
| 20:03:11 | FromDiscord | <konsumlamm> (it doesnt segfault if i just use the normal `createThread` directly | 
| 20:13:04 | * | hyiltiz joined #nim | 
| 20:13:48 | FromDiscord | <mratsim> maybe Thread does something weird to the stack? | 
| 20:16:17 | * | habamax quit (Ping timeout: 264 seconds) | 
| 20:19:05 | * | hyiltiz quit (Ping timeout: 240 seconds) | 
| 20:20:00 | * | hyiltiz joined #nim | 
| 20:20:18 | FromGitter | <RalzVeik> Hey, I'm pretty new to Nim, and I'm new here! ⏎ I am working on my first big project and I've encountered an obstacle. ⏎ I need to  read a 32GB .txt file, and the "recommended" way to do it according to what I've gathered would be to send the text from the file to a `Channel[String]` ⏎ Of course, since it's going to be reading large files, this `proc` has to be asynchronous. ⏎ The problem is that I can't manage  | 
| 20:20:18 | FromGitter | ... to get it to send the strings into the channel... ... [https://gitter.im/nim-lang/Nim?at=600f2802cf8b827734537077] | 
| 20:25:54 | FromGitter | <RalzVeik> I'm getting a really long error on runtime, but the short version looks something like this: ⏎  ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=600f29512cb18a437c3f84d2] | 
| 20:26:25 | FromGitter | <RalzVeik> Any and all help is appreciated! | 
| 20:32:57 | * | PMunch joined #nim | 
| 20:33:20 | PMunch | Hmm, why do callbacks for futures have to be closures? | 
| 20:34:34 | FromDiscord | <konsumlamm> why not? | 
| 20:35:58 | PMunch | Seems like a weird limitation that they can't be top level procedures | 
| 20:38:08 | FromDiscord | <konsumlamm> can't you just pass a top level proc as a closure? | 
| 20:41:16 | FromDiscord | <hamidb80> i'm so sorry for my newbie questions.↵can anyone give a link that can explain how to use `ref` & `ptr` correctly in `Nim` ? | 
| 20:41:47 | Prestige | https://nim-lang.org/docs/manual.html#types-reference-and-pointer-types | 
| 20:42:18 | * | leorize joined #nim | 
| 20:43:01 | PMunch | @konsumlamm, I mean I could do proc() = topLevelProc() but that's a bit verbose | 
| 20:43:31 | FromDiscord | <konsumlamm> again, can't you just pass a top level proc as a closure directly? | 
| 20:43:34 | PMunch | @hamidb80, shameless plug: https://peterme.net/nim-types-originally-a-reddit-reply.html | 
| 20:43:46 | PMunch | Prestige, how are you? :) | 
| 20:46:41 | PMunch | I really should get Nimdow installed on my main rig.. | 
| 20:46:56 | PMunch | Maybe I'll stream myself setting it up with notifishower and notificatcher | 
| 20:48:27 | Prestige | hey PMunch I'm great man, how have you been? | 
| 20:48:40 | PMunch | Pretty good, all things considered | 
| 20:48:57 | Prestige | I've been working on a side project for some money, so haven't made many updates to Nimdow lately | 
| 20:49:00 | PMunch | Been busy recording my FOSDEM talk and recovering from Christmas/New years :P | 
| 20:49:12 | PMunch | Oh cool | 
| 20:49:14 | Prestige | Oh cool, looking forward to the talk | 
| 20:49:17 | PMunch | Got to use Nim? :P | 
| 20:49:49 | Prestige | Well I planned to originally, but it seemed that the backend web frameworks aren't mature yet? So I'm just using typescript | 
| 20:50:15 | Prestige | Was originally going to use Jester | 
| 20:50:22 | * | zedeus quit (Ping timeout: 256 seconds) | 
| 20:52:44 | PMunch | I've got a project with Jester in production at work | 
| 20:52:53 | PMunch | Small internal thing though | 
| 20:53:06 | PMunch | Although the Nim forums, website, and playground run on Jester | 
| 20:53:44 | Prestige | I might look into using it in the future, wouldn't be hard to convert the code to Nim so long as the tools I need exist | 
| 20:54:24 | PMunch | Jester is really nice to work with actually | 
| 20:55:04 | Prestige | One of the cool things I'm using is https://github.com/colinhacks/zod/tree/v3 for the project, would like something similar with nim | 
| 20:55:26 | Prestige | not sure if anything already exists, I might just have to make it myself | 
| 20:56:40 | * | zedeus joined #nim | 
| 20:56:54 | Prestige | Although maybe json parsing would take care of this... | 
| 20:59:51 | PMunch | Well, this exists: https://github.com/PMunch/jsonschema | 
| 21:05:59 | * | zedeus quit (Quit: zedeus) | 
| 21:08:11 | * | natrys quit (Quit: natrys) | 
| 21:12:45 | * | krux02 joined #nim | 
| 21:18:33 | * | narimiran quit (Ping timeout: 260 seconds) | 
| 21:22:55 | PMunch | Hmm, the websocket library is a bit unreliable.. | 
| 21:36:47 | * | kinkinkijkin quit (Read error: Connection reset by peer) | 
| 21:36:50 | * | vicfred quit (Ping timeout: 256 seconds) | 
| 21:37:14 | * | saem quit (Ping timeout: 264 seconds) | 
| 21:37:22 | * | nikki93 quit (Ping timeout: 265 seconds) | 
| 21:37:24 | * | sirn quit (Ping timeout: 240 seconds) | 
| 21:37:43 | * | kwilczynski quit (Ping timeout: 272 seconds) | 
| 21:37:44 | * | nikki93 joined #nim | 
| 21:38:08 | * | kinkinkijkin joined #nim | 
| 21:38:17 | * | sirn joined #nim | 
| 21:38:48 | * | kwilczynski joined #nim | 
| 21:38:49 | * | rayman22201 quit (Ping timeout: 265 seconds) | 
| 21:39:39 | * | rayman22201 joined #nim | 
| 21:39:47 | * | haxscramper quit (Remote host closed the connection) | 
| 21:40:32 | * | saem joined #nim | 
| 21:45:15 | * | PMunch quit (Quit: leaving) | 
| 21:48:47 | * | Gustavo6046 quit (Read error: Connection reset by peer) | 
| 21:49:10 | * | Gustavo6046 joined #nim | 
| 21:52:11 | FromDiscord | <Avatarfighter> PMunch: what websocket library is unreliable? | 
| 22:07:50 | * | tane quit (Quit: Leaving) | 
| 22:10:19 | * | zidsal joined #nim | 
| 22:10:55 | zidsal | quick question I want to slice a sequence from it's first index onwards. Is there a better way of writing typeData[1 .. ^0 ] | 
| 22:12:52 | Prestige | that way is good but you'll want ^1 not ^0 | 
| 22:13:39 | Prestige | and if by first index you mean index 1 (which is the second index) | 
| 22:14:03 | Prestige | https://play.nim-lang.org/#ix=2Nk1 | 
| 22:14:32 | zidsal | ya I meant the second index. I thought 61 gave you the penultimate item not the final item? i.e #[1,2,3,4][1,^1] would return 2,3 | 
| 22:14:54 | zidsal | clearly Ia m wrong from the example you linked me :p | 
| 22:14:58 | Prestige | ^1 gives you the length of the seq - 1 | 
| 22:15:09 | zidsal | doh, yes that wopuld give you the final element! | 
| 22:15:39 | Prestige | I usually have to double check every time lol | 
| 22:28:01 | * | muffindrake quit (Quit: muffindrake) | 
| 22:29:11 | * | ^Q-Master^ joined #nim | 
| 22:29:36 | * | Q-Master quit (Ping timeout: 240 seconds) | 
| 22:34:02 | * | muffindrake joined #nim | 
| 22:42:45 | * | j-james joined #nim | 
| 22:46:37 | * | mbomba joined #nim | 
| 22:59:04 | * | hmmm quit (Quit: WeeChat 3.0) | 
| 23:04:59 | * | mbomba quit (Quit: WeeChat 3.0) | 
| 23:05:29 | * | zidsal quit (Ping timeout: 264 seconds) | 
| 23:12:33 | * | j-james quit (Quit: WeeChat 3.0) | 
| 23:16:37 | FromDiscord | <gcao> I would like to create an allocator for a type that is created/destroyed often, in order to reduce memory allocation, how do I do it? anyone knows a good example that I can learn from? | 
| 23:17:08 | FromDiscord | <ElegantBeef> Object pooling seems to be what you want, never destroy just return to a pool | 
| 23:17:15 | disruptek | impl in stdlib. | 
| 23:17:24 | FromDiscord | <gcao> right, that's what I meant | 
| 23:18:07 | FromDiscord | <ElegantBeef> The stdlib has a generic pool impl? | 
| 23:18:23 | disruptek | yes. | 
| 23:18:59 | FromDiscord | <gcao> can you please be more specific? I'm searching on the doc page but didn't find it | 
| 23:19:05 | disruptek | it's in fusion. | 
| 23:19:09 | disruptek | !repo fusion | 
| 23:19:09 | disbot | https://github.com/nim-lang/fusion -- 9fusion: 11Fusion is for now an idea about how to grow Nim's ecosystem without the pain points of more traditional approaches. 15 79⭐ 12🍴  7& 1 more... | 
| 23:19:45 | FromDiscord | <ElegantBeef> It's always amazing what the stdlib has | 
| 23:20:13 | FromDiscord | <gcao> thank you. I'll take a look at it! | 
| 23:21:58 | FromDiscord | <gcao> how do you return to the pool? the pools module didn't say | 
| 23:22:27 | disruptek | araq asked me not to tell anyone. | 
| 23:22:27 | FromDiscord | <konsumlamm> ~~fusion is not part of the stdlib technically, but yeah~~ | 
| 23:22:39 | disruptek | it technically /is/ part of the stdlib. | 
| 23:22:43 | disruptek | though, it shouldn't be. | 
| 23:24:59 | * | Vladar quit (Quit: Leaving) | 
| 23:25:00 | FromDiscord | <konsumlamm> it may be bundled with the nim installation but it isnt really part of the stdlib, is it | 
| 23:25:11 | disruptek | yes.  that is the definition of stdlib. | 
| 23:25:24 | FromDiscord | <ElegantBeef> Yea being bundled with Nim practically means it's a stdlib | 
| 23:25:33 | FromDiscord | <ElegantBeef> Just the "experimental" stdlib | 
| 23:26:07 | FromDiscord | <konsumlamm> if you say so... | 
| 23:36:05 | * | zidsal joined #nim | 
| 23:36:47 | disruptek | are you calling beef a liar? | 
| 23:41:47 | ForumUpdaterBot | New thread by RainbowAsteroids: What is the difference between Nimble and Nake?, see https://forum.nim-lang.org/t/7431 | 
| 23:42:38 | FromDiscord | <ElegantBeef> I'm almost certainly a liar |