| 00:03:17 | disruptek | this is one of those bugs that just seems impossible. | 
| 00:07:30 | * | krux02_ joined #nim | 
| 00:11:20 | * | krux02 quit (Ping timeout: 265 seconds) | 
| 00:12:13 | * | krux02_ quit (Client Quit) | 
| 00:12:46 | * | ng0 quit (Quit: leaving) | 
| 00:21:33 | disruptek | there's a certain logic to the compile-time vars persisting into runtime. | 
| 00:22:45 | disruptek | it's like we ofter a continuum between aot, jit, or runtime.  but, of course, i didn't like the impl. | 
| 00:29:19 | * | Hideki_ joined #nim | 
| 00:34:08 | * | Hideki_ quit (Ping timeout: 268 seconds) | 
| 00:35:21 | * | rockcavera quit (Remote host closed the connection) | 
| 00:41:49 | * | rockcavera joined #nim | 
| 00:50:56 | * | chenhq2005 joined #nim | 
| 00:57:42 | * | WilhelmVonWeiner joined #nim | 
| 00:58:06 | * | WilhelmVonWeiner is now known as Guest50399 | 
| 01:01:31 | FromDiscord | <Rika> Concepts are just type classes right? | 
| 01:02:34 | * | letto quit (Ping timeout: 265 seconds) | 
| 01:11:08 | * | icebattle quit (Ping timeout: 268 seconds) | 
| 01:16:38 | * | voltist joined #nim | 
| 01:17:31 | * | lritter quit (Quit: Leaving) | 
| 01:27:18 | muffindrake | What's the closest thing to running .nim files as scripts? | 
| 01:30:14 | shashlick | Nimscript | 
| 01:32:48 | * | chenhq2005 quit (Ping timeout: 258 seconds) | 
| 01:33:56 | shashlick | ~nimscript | 
| 01:33:57 | disbot | nimscript: 11Module documentation - https://nim-lang.org/docs/nimscript.html -- shashlick | 
| 01:34:47 | shashlick | ~nimscript | 
| 01:34:47 | disruptek | wow, when did you add that one. | 
| 01:34:48 | disbot | nimscript: 11NimScript is the subset of Nim that can be evaluated by Nim's builtin virtual machine - https://nim-lang.org/docs/nims.html -- shashlick | 
| 01:34:57 | shashlick | Just did | 
| 01:35:02 | disruptek | ahh | 
| 01:35:16 | shashlick | Didn't realize it was only one per person | 
| 01:35:36 | disruptek | yeah.  it seemed like the right model. | 
| 01:38:26 | shashlick | I made three messages to give some structure but seems fair | 
| 01:38:50 | disruptek | i can put the link in if you want. | 
| 01:39:34 | disruptek | funny thing about data. | 
| 01:50:30 | * | koltrast quit (Ping timeout: 252 seconds) | 
| 02:00:35 | * | chenhq2005 joined #nim | 
| 02:04:21 | * | chenhq2005 quit (Client Quit) | 
| 02:05:46 | * | chenhq2005 joined #nim | 
| 02:16:38 | * | koltrast joined #nim | 
| 02:18:55 | shashlick | I think it's good enough for now | 
| 02:19:04 | * | letto joined #nim | 
| 02:19:24 | disruptek | what was the cause of leorize's issue building nimterop? | 
| 02:31:03 | shashlick | Cannot reassign stdout | 
| 02:31:11 | shashlick | https://github.com/nimterop/nimterop/commit/359bc6e38a90696fe40b9265c62549af8200861d | 
| 02:31:20 | disruptek | oh right. | 
| 02:32:13 | disruptek | wow, this is cool. | 
| 02:32:27 | disruptek | that'll make clyybber happy. | 
| 02:52:43 | * | dddddd quit (Remote host closed the connection) | 
| 02:59:22 | muffindrake | My actual question was how I'd run a given .nim file as a proper nim program in a script | 
| 03:00:28 | voltist | As in compile and execute Nim from inside a Nim program? | 
| 03:00:44 | * | NimBot joined #nim | 
| 03:34:07 | leorize | shashlick: I just got back home, will test now | 
| 03:34:49 | muffindrake | voltist: No, execute a regular nim program like a script | 
| 03:35:12 | leorize | well the VM is not that nice to use atm... | 
| 03:35:35 | leorize | https://github.com/nim-lang/Nim/blob/devel/compiler/scriptconfig.nim | 
| 03:35:38 | leorize | ^ but there you go | 
| 03:35:54 | leorize | that allows you to integrate the nimvm into your program | 
| 03:36:39 | leorize | shashlick: btw you should bump the minimum regex verion for nimterop | 
| 03:36:54 | disruptek | yeah, 0.11 is too old for 1.0.4. | 
| 03:37:07 | disruptek | or 0.10 is.  w/e | 
| 03:37:55 | leorize | shashlick: building nimterop head and still got stdout reassignment issues | 
| 03:39:32 | leorize | ah it's in a separated branch | 
| 03:40:02 | leorize | so, uh... /tmp/nimble_32190/githubcom_genotrancenimarchive_0.3.4/nimarchive_32190.nims(23, 18) Error: cannot open file: nimterop/docs | 
| 03:40:41 | leorize | printPkgInfo() failed | 
| 03:40:51 | leorize | apparently the nimble file imports nimterop | 
| 03:41:16 | leorize | and nimble didn't put nimterop in the path yet because it wasn't manage to figure out the dependencies | 
| 03:51:51 | shashlick | Sorry I didn't get around to bump it | 
| 03:52:54 | * | hexeratops joined #nim | 
| 03:54:07 | * | rockcavera quit (Remote host closed the connection) | 
| 03:58:49 | disruptek | i guess i want to see the last tag that passed or the first tag that failed.  tags in the gutter, with color to indicate pass/fail.  empty space means it's uncovered, but maybe we can heat map its impact on tests, too. | 
| 03:59:35 | * | muffindrake quit (Ping timeout: 272 seconds) | 
| 04:01:09 | * | muffindrake joined #nim | 
| 04:04:07 | shashlick | bumped the reqs, let the CI pass and I'll merge/tag | 
| 04:04:32 | leorize | disruptek: https://forum.nim-lang.org/t/5727#36031 | 
| 04:04:57 | leorize | I think I can help with the pseudo package thing to install nimph :P | 
| 04:05:16 | shashlick | @leorize: do you have latest nimterop and nimarchive? | 
| 04:05:17 | disruptek | oh yeah, i forgot about that idea. | 
| 04:05:44 | leorize | shashlick: nimterop with the commit from reopen branch | 
| 04:06:14 | leorize | nimarchive@#head couldn't install because of the error I showed above | 
| 04:06:49 | shashlick | you're on gentoo right? | 
| 04:07:06 | leorize | yea, on nim/nimble git fwiw | 
| 04:07:09 | shashlick | is there a docker i can use to repro? | 
| 04:07:14 | shashlick | which nim/nimble | 
| 04:07:31 | leorize | http://ix.io/27rj | 
| 04:07:45 | leorize | nimble: 5e72840336c03ef66557f96623fedddece53083d | 
| 04:08:04 | leorize | nim: 675ca997fba448c2eb096f4bb12ba97125d79bcd | 
| 04:08:46 | leorize | if you're asking which ebuild: https://github.com/alaviss/lrz-overlay | 
| 04:08:50 | leorize | ^ all in my overlay | 
| 04:10:33 | shashlick | okay no idea on gentoo overlay stuff | 
| 04:10:56 | leorize | it's just an ebuild repository | 
| 04:11:21 | disruptek | the answer is, it's probably not easy to repro. | 
| 04:11:21 | leorize | just in case you're curious on how I built my nim | 
| 04:11:56 | shashlick | your nimble is super old | 
| 04:12:10 | shashlick | June 21, 2019 | 
| 04:13:39 | leorize | hmm, my auto updater should've caught that | 
| 04:13:42 | leorize | building a new nimble now | 
| 04:15:11 | leorize | oh, I know why... | 
| 04:15:21 | leorize | nimble has to build nimble during choosenim installation | 
| 04:15:25 | leorize | ... | 
| 04:15:38 | leorize | on 0.11.0 now | 
| 04:17:21 | leorize | and it still doesn't work | 
| 04:17:35 | leorize | reason? I apparently cloned nimterop once with nimble develop :P | 
| 04:17:55 | leorize | haven't updated that one since forever | 
| 04:18:28 | leorize | it's building now | 
| 04:19:24 | shashlick | okay neat, fingers crossed | 
| 04:19:38 | leorize | ... /tmp/nimble_30354/githubcom_genotrancenimarchive_0.3.4/nimarchive/archive.nim(115, 10) template/generic instantiation of `cImport` from here | 
| 04:19:41 | leorize | ... /usr/lib/nim/core/macros.nim(1504, 99) Error: undeclared identifier: 'stat' | 
| 04:21:37 | shashlick | hmm | 
| 04:22:36 | leorize | http://ix.io/27rm | 
| 04:23:47 | shashlick | where do I start - https://hub.docker.com/u/gentoo/ | 
| 04:26:03 | * | nsf joined #nim | 
| 04:26:46 | shashlick | stat is defined - https://github.com/genotrance/nimarchive/blob/master/nimarchive/archive.nim#L100 | 
| 04:27:37 | disruptek | all you need for a portage dockerfile: | 
| 04:27:44 | disruptek | FROM gentoo/portage:latest as portage | 
| 04:27:48 | disruptek | FROM gentoo/stage3-amd64:latest as gentoo | 
| 04:27:55 | disruptek | COPY --from=portage /usr/portage /usr/portage | 
| 04:28:31 | * | hexeratops quit (Quit: Leaving) | 
| 04:28:51 | disruptek | then you can, like, RUN eselect profile set default/linux/amd64/17.0/no-multilib/hardened && source /etc/profile && emerge -DN @world | 
| 04:31:05 | shashlick | @leorize: is your nimterop the latest? 😄 | 
| 04:34:36 | leorize | maybe not :P | 
| 04:35:10 | leorize | updated and still same result :( | 
| 04:35:27 | leorize | on reopen branch rn | 
| 04:36:44 | Yardanico | can you try with nim compiled as your user maybe? | 
| 04:40:17 | leorize | ? | 
| 04:41:15 | Yardanico | well I thought you have used nim from some gentoo overlay  or from official gentoo repos and it didn't work with nimterop | 
| 04:41:32 | leorize | it's not some overlay, it's mine :P | 
| 04:42:28 | shashlick | how do you install stuff in gentoo? 😐 | 
| 04:42:33 | shashlick | need git | 
| 04:42:33 | * | marmotini_ joined #nim | 
| 04:42:41 | leorize | emerge <package name> | 
| 04:42:59 | Yardanico | well, to be honest I've actually tried gentoo for a week recently (after I got 3700X), didn't like it really (well, I've configured my system just like I use other distros usually) | 
| 04:43:03 | Yardanico | but that's entire subjective :P | 
| 04:43:37 | leorize | you will love gentoo when you start compiling your own system libraries :P | 
| 04:43:53 | leorize | back when I was on arch an AUR package might lag behind official | 
| 04:43:58 | leorize | and bam your stuff no longer works | 
| 04:44:20 | leorize | have to download the pkgbuild and update it manually | 
| 04:44:23 | disruptek | gentoo is pretty great. | 
| 04:44:52 | * | chenhq2005_ joined #nim | 
| 04:45:03 | Yardanico | well I don't really use stuff from AUR, almost everything is from official arch repos (I'm on arch right now), but I've looked at some alternative distros like alpine or void too | 
| 04:45:23 | shashlick | meh | 
| 04:45:46 | Yardanico | we should all just use windows like ar*q :P | 
| 04:45:52 | shashlick | i boot stage3-amd64 | 
| 04:46:02 | shashlick | what do i eselect | 
| 04:46:14 | disruptek | eselect profile set default/linux/amd64/17.0/no-multilib/hardened && source /etc/profile && emerge -DN @world | 
| 04:46:22 | leorize | don't have to, the default profile should just works | 
| 04:46:40 | leorize | although the no multilib profile will give you faster build times (no need to build 32bit libs) :P | 
| 04:47:01 | shashlick | doesn't work buddy | 
| 04:47:20 | disruptek | eselect profile list | 
| 04:47:39 | * | chenhq2005 quit (Ping timeout: 240 seconds) | 
| 04:47:41 | disruptek | then eselect profile set NUM | 
| 04:47:52 | shashlick | http://ix.io/27rr | 
| 04:48:05 | shashlick | cannot load module list | 
| 04:48:29 | disruptek | emerge --sync | 
| 04:50:25 | shashlick | gpg: keyserver refresh failed: Server indicated a failure | 
| 04:50:39 | * | marmotini_ quit (Remote host closed the connection) | 
| 04:51:02 | * | pbb quit (Remote host closed the connection) | 
| 04:51:11 | * | marmotini_ joined #nim | 
| 04:52:36 | disruptek | ... | 
| 04:52:55 | leorize | have you copied the resolv.conf before you chroot? | 
| 04:53:13 | leorize | btw I grepped `stat` from nimterop output | 
| 04:53:27 | * | marmotini_ quit (Remote host closed the connection) | 
| 04:53:33 | leorize | there weren't any defines of that in the output | 
| 04:53:44 | * | marmotini_ joined #nim | 
| 04:55:31 | shashlick | must be some coverride bug | 
| 04:55:52 | shashlick | works on ubuntu tho | 
| 04:56:03 | leorize | I've removed nimterop cache | 
| 04:56:10 | leorize | let's see if it's gonna work this time | 
| 04:56:37 | shashlick | that might help, or even using -f | 
| 04:56:42 | leorize | yep, probably the nimarchive build was botched | 
| 04:56:50 | leorize | removed it and everything built | 
| 04:58:34 | leorize | shashlick: you wanted a fully static binary, right? | 
| 04:58:43 | leorize | lemme build static libressl real quick | 
| 04:58:47 | * | jwm224 quit (Quit: WeeChat 2.8-dev) | 
| 05:02:37 | shashlick | yep, will need to configure choosenim to statically link with it | 
| 05:03:03 | shashlick | i am going to tag 0.5.1 of choosenim, will need an official build after that | 
| 05:03:36 | leorize | got a build, fully static, no dlopens | 
| 05:04:18 | leorize | question now is how do I send this to you lol | 
| 05:08:19 | leorize | any file hosting service that I can just toss mine into? | 
| 05:10:06 | leorize | shashlick: I think I can just mail it to you | 
| 05:12:17 | leorize | shashlick: link sent via pm | 
| 05:25:33 | disruptek | i want to export a proc that is operated upon by a custom macro pragma.  but because this turns into mymacro: proc somedef*(), i get a compiler error: attempt to export proc not at top-level. 🙁 | 
| 05:45:06 | * | marmotini_ quit (Remote host closed the connection) | 
| 05:45:39 | * | marmotini_ joined #nim | 
| 05:50:03 | * | marmotini_ quit (Ping timeout: 240 seconds) | 
| 05:53:14 | * | leorize quit (Quit: WeeChat 2.6) | 
| 05:55:41 | shashlick | just tagged choosenim v0.5.1, CI will build and post binaries in the next 30 minutes - appreciate some testing | 
| 05:55:45 | shashlick | thanks in advance | 
| 05:56:28 | * | marmotini_ joined #nim | 
| 05:57:50 | FromGitter | <gogolxdong> Any idea why c2nim errors  ⏎  ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e1ea9dd53fd014bb0750982] | 
| 06:01:49 | * | marmotini_ quit (Ping timeout: 272 seconds) | 
| 06:25:20 | * | narimiran joined #nim | 
| 06:28:41 | * | marmotini_ joined #nim | 
| 06:29:21 | * | marmotini_ quit (Remote host closed the connection) | 
| 06:29:35 | * | marmotini_ joined #nim | 
| 06:37:56 | * | theelous3 quit (Read error: Connection reset by peer) | 
| 06:42:55 | * | chenhq2005_ quit (Ping timeout: 258 seconds) | 
| 06:44:45 | leorize[m] | my guess would that c2nim couldn't process `__ctx` | 
| 06:45:37 | leorize[m] | oh actually, maybe it's `CRYPTO_MINALIGN_ATTR` | 
| 06:46:18 | leorize[m] | c2nim don't understand C macros really well | 
| 06:53:40 | * | silvernode joined #nim | 
| 06:54:50 | silvernode | Sitting here in the car at work on my ThinkPad about to clock in. How is everyone? | 
| 06:55:07 | silvernode | It's 23:54 here in AZ | 
| 07:00:58 | * | silvernode quit (Ping timeout: 268 seconds) | 
| 07:06:50 | * | marmotini_ quit (Remote host closed the connection) | 
| 07:07:27 | * | marmotini_ joined #nim | 
| 07:11:39 | * | marmotini_ quit (Ping timeout: 240 seconds) | 
| 07:19:16 | * | voltist quit (Quit: Leaving) | 
| 07:25:50 | livcd | i am about to puke | 
| 07:25:54 | FromGitter | <zacharycarter> it's 9:25 am here | 
| 07:25:55 | livcd | had the worst coffee in my life | 
| 07:26:01 | FromGitter | <zacharycarter> and I just go to work :/ | 
| 07:27:54 | livcd | you dont seem to be excited | 
| 07:28:50 | FromGitter | <zacharycarter> hahaha well I'm looking for a new job for a reason :P | 
| 07:29:07 | Zevv | you know where to find me :) | 
| 07:29:09 | FromGitter | <zacharycarter> I mean, that's not the only reason, life is kind of complicated atm, but it's a reason | 
| 07:29:16 | FromGitter | <zacharycarter> I know but I need to go back to the states haha! | 
| 07:29:28 | FromGitter | <zacharycarter> otherwise I'd do it Zevv | 
| 07:29:34 | livcd | Where are you from zachary ? | 
| 07:29:45 | Zevv | he is all over the place | 
| 07:29:48 | FromGitter | <zacharycarter> Northern Virginia | 
| 07:29:51 | FromGitter | <zacharycarter> but right now I'm in Helsinki | 
| 07:30:10 | FromGitter | <zacharycarter> I'm trying to find a gig in Austin Texas | 
| 07:30:13 | Zevv | I bet the 0.2 hours of daylight also help making life happy and easy ove there | 
| 07:30:16 | livcd | CIA agent confirmed | 
| 07:30:16 | FromGitter | <zacharycarter> or something remote | 
| 07:30:28 | FromGitter | <zacharycarter> :P def not a CIA agent - they'd never accept me haha | 
| 07:30:39 | FromGitter | <zacharycarter> yeah - the daylight thing is kind of a bummer | 
| 07:31:00 | FromGitter | <zacharycarter> but really - I've just figured out that game development is not much different than what I was doing before, and I get paid less and work more hours | 
| 07:31:17 | FromGitter | <zacharycarter> and it's hard to get my significant other over here so I'd rather just go back to the states and earn more | 
| 07:31:20 | livcd | I never visited the US but I am afraid I would regret being born here if I would have visited :? | 
| 07:31:26 | FromGitter | <zacharycarter> and get fat and lazy and liv ethe American dream | 
| 07:31:28 | livcd | also -> offtopic ? | 
| 07:31:44 | FromGitter | <zacharycarter> meh - until there's on topic convos people usually don't care | 
| 07:31:52 | Zevv | My bet is that game dev is just like any dev. *what* you are working on is only 5% of the job, the rest is how | 
| 07:32:14 | Zevv | if you want to do game dev for fun, go indie or make it a hobby | 
| 07:32:32 | FromGitter | <zacharycarter> I think it'd be different if I was like deeply involved in a project and I was super passionate about it. But the likelihood of that happening in a professional studio is tiny | 
| 07:32:34 | FromGitter | <zacharycarter> and yeah - you're right | 
| 07:33:08 | Zevv | I am absolutely 0% personaly excited about the end product of what I'm making now | 
| 07:33:27 | Zevv | but still having loads of fun with all the tech and components | 
| 07:33:40 | FromGitter | <zacharycarter> yeah - none of the games I've worked on so far I would play for an extended period of time | 
| 07:33:42 | Zevv | but cmon, tv and settop boxes and android apps, I could not care less | 
| 07:33:51 | FromGitter | <zacharycarter> mmhmm | 
| 07:34:05 | Zevv | remember in school how the best way to totally ruin your favorite book was to make a report about it? | 
| 07:34:09 | FromGitter | <zacharycarter> it might have changed if I had accepted the offer from creative assembly, but it turned out to be a poop offer | 
| 07:34:15 | FromGitter | <zacharycarter> hahaha yeah | 
| 07:34:26 | FromGitter | <zacharycarter> good analogy | 
| 07:36:00 | livcd | why was it a poop offer ? lol | 
| 07:37:06 | FromGitter | <zacharycarter> they offered me less than I'm making now, benefits weren't great, relocation monies wouldn't have covered my expenses | 
| 07:37:57 | FromGitter | <zacharycarter> and I would have had a commute / had to buy a car when I got over there | 
| 07:38:08 | FromGitter | <zacharycarter> it just didn't make any sense at all to take them up on it | 
| 07:40:58 | FromGitter | <zacharycarter> good news is - I have a phone interview with a company in Austin tonight, and my girlfriends good friend works there so fingers crossed | 
| 07:44:15 | livcd | the US is so huge...it's crazy | 
| 07:45:50 | FromGitter | <zacharycarter> definitely - that's one thing that kind of sucks about the US | 
| 07:46:00 | FromGitter | <zacharycarter> like in Europe it's super easy to go to another country | 
| 07:46:28 | FromGitter | <zacharycarter> from the US it's expensive to travel to anywhere else in the world, unless you're going to Canada / South or Central America | 
| 07:48:39 | livcd | you have other perks :) | 
| 07:50:13 | FromGitter | <zacharycarter> yeah, this is true | 
| 07:51:36 | livcd | If you are from a small country in Europe it feels very foreign wherever you go (in Europe). At least to me | 
| 07:52:00 | FromGitter | <zacharycarter> I can see that - everything in Europe feels foreign to me :P | 
| 07:52:38 | * | solitudesf joined #nim | 
| 08:00:00 | * | gmpreussner quit (Quit: kthxbye) | 
| 08:05:04 | narimiran | livcd: what small country are you from? | 
| 08:05:17 | * | gmpreussner joined #nim | 
| 08:16:47 | * | uu91 joined #nim | 
| 08:16:53 | Zevv | well well https://github.com/sendilkumarn/gopurerc - A pure reference counting garbage collector in Go | 
| 08:19:55 | * | pvn joined #nim | 
| 08:20:18 | Araq | that paper has a bug | 
| 08:20:45 | Araq | in fact, it has at least 2 bugs | 
| 08:22:48 | Araq | and the code uses * so it's simply a prototype of something | 
| 08:22:59 | Araq | (Go's GC'ed pointers) | 
| 08:32:10 | Zevv | go tell'em araq! | 
| 08:32:39 | Araq | nah, it was hard to figure out, cost me 3 months of work | 
| 08:32:53 | Araq | I'll pass and let them have the "fun" on their own | 
| 08:33:39 | FromDiscord | <gingerBill> I'd just say "the paper has bugs in it" | 
| 08:34:52 | * | floppydh joined #nim | 
| 08:43:43 | FromGitter | <Varriount> @zacharycarter and I have met in real life | 
| 08:43:51 | FromGitter | <Varriount> He's cool | 
| 08:44:01 | FromDiscord | <Rika> We need more young people into nim | 
| 08:44:36 | FromDiscord | <Rika> My thought: younger people might make memes of nim, therefore advertise possibly, therefore more popularity :V | 
| 08:45:20 | FromGitter | <zacharycarter> @Varriount is as well :) | 
| 09:04:05 | * | PMunch joined #nim | 
| 09:04:59 | * | marmotini_ joined #nim | 
| 09:11:25 | * | endragor joined #nim | 
| 09:13:22 | * | solitudesf quit (Ping timeout: 268 seconds) | 
| 09:21:07 | * | chenhq2005 joined #nim | 
| 09:22:12 | FromDiscord | <exelotl> In that case we need a Nim anime mascot ;) | 
| 09:24:07 | FromGitter | <sheerluck> @exelotl  like this? --> https://i.imgur.com/xdGJRs4.png | 
| 09:25:32 | FromGitter | <zacharycarter> do young people really like anime? | 
| 09:25:45 | FromGitter | <zacharycarter> I've never liked it, and I was young once | 
| 09:26:51 | FromGitter | <zacharycarter> I like the fact that the majority of the Nim community is older / more mature. I have a tough time handling online communities with a lot of young users. | 
| 09:27:25 | PMunch | We do have some young users, but the fact that we're on IRC probably skews our perception of the demographic | 
| 09:27:47 | FromGitter | <zacharycarter> true | 
| 09:28:02 | FromGitter | <zacharycarter> and yeah - we do, Luke is pretty young I think | 
| 09:28:11 | FromGitter | <zacharycarter> but also has written some pretty awesome stuff | 
| 09:28:12 | FromDiscord | <mratsim> depends on the Anime, there are plenty with lots of psychology behind unlike comics | 
| 09:28:51 | FromGitter | <sheerluck> https://i.imgur.com/3FZpk0w.png | 
| 09:30:31 | kungtotte | One thing I really like about the Nim ecosystem is that we don't get Rewrite It In Nim-zealots or The Next Big * As A Service JavaScript Horror-people | 
| 09:30:52 | kungtotte | You know the kind, the ones who go into work every Monday to look up what new framework they should port their code to | 
| 09:33:42 | PMunch | zacharycarter, who's Luke? | 
| 09:33:45 | * | chenhq2005_ joined #nim | 
| 09:34:09 | FromGitter | <zacharycarter> @kayabaNerve | 
| 09:34:29 | PMunch | Ah right, does it show actual names on Gitter? | 
| 09:34:58 | FromGitter | <zacharycarter> yeah - well it allows you to mouse over the user's handle and then it will show a pop up with their github profile info | 
| 09:35:02 | FromGitter | <zacharycarter> and his name is in his github profile | 
| 09:35:12 | PMunch | Aaah right | 
| 09:35:35 | PMunch | I remember my first year at FOSDEM going around saying hi to people and everyone introducing themselves with both their name and IRC handle :P | 
| 09:35:52 | * | chenhq2005 quit (Ping timeout: 265 seconds) | 
| 09:37:15 | * | chenhq2005_ quit (Client Quit) | 
| 09:39:04 | * | chenhq2005 joined #nim | 
| 09:39:23 | Araq | PMunch, which hotel will you stay in? | 
| 09:41:13 | lqdev[m] | @Rika, @zacharycarter I'm another young person using Nim | 
| 09:42:23 | FromGitter | <zacharycarter> niceeeee | 
| 09:44:26 | PMunch | Araq, good question. A friend of mine booked our room | 
| 09:44:28 | PMunch | Just a sec | 
| 09:44:46 | PMunch | zacharycarter, I mean define young | 
| 09:45:43 | PMunch | Araq, this is the one we're staying in. Got a room for four people, but I think we're only three thus far: https://www.booking.com/hotel/be/brussels-louise.no.html | 
| 09:46:04 | FromGitter | <sheerluck> I'm old person using Nim -- will you expel me from here? | 
| 09:51:15 | FromGitter | <zacharycarter> I guess under 25? I don't know... I'm old so my definition of younger keeps changing | 
| 09:51:32 | FromGitter | <zacharycarter> like I'm about to be 35 and I think anyone who is under 30 is young | 
| 09:51:37 | FromGitter | <zacharycarter> when I'm 40 I'll think 30 year olds are young | 
| 09:54:17 | Araq | PMunch, ok, investigating | 
| 10:06:33 | FromGitter | <wibisono> I remember promising to ping @Araq, I asked around and this community funding will be opened in May: https://www.ripe.net/support/cpf | 
| 10:08:10 | * | lritter joined #nim | 
| 10:23:58 | * | pbb joined #nim | 
| 10:33:43 | * | uu91 quit (Ping timeout: 268 seconds) | 
| 10:42:06 | * | natrys joined #nim | 
| 10:48:03 | FromDiscord | <Rika> i'm probably the youngest adult here 😛 | 
| 10:48:14 | * | sz0 joined #nim | 
| 10:53:26 | * | marmotini_ quit (Remote host closed the connection) | 
| 10:53:59 | * | marmotini_ joined #nim | 
| 10:55:21 | * | ng0 joined #nim | 
| 10:58:36 | * | marmotini_ quit (Ping timeout: 258 seconds) | 
| 11:00:33 | * | abm joined #nim | 
| 11:01:47 | * | chenhq2005 quit (Quit: No Ping reply in 180 seconds.) | 
| 11:04:41 | * | chenhq2005 joined #nim | 
| 11:08:46 | * | Guest50399 quit (Quit: leaving) | 
| 11:09:38 | * | marmotini_ joined #nim | 
| 11:11:06 | * | WilhelmVonWeiner joined #nim | 
| 11:14:41 | * | marmotini_ quit (Ping timeout: 272 seconds) | 
| 11:17:03 | * | dcmertens joined #nim | 
| 11:17:09 | * | krux02 joined #nim | 
| 11:18:36 | * | quantumbird joined #nim | 
| 11:23:51 | lqdev[m] | I'm not even an adult :) | 
| 11:29:11 | federico3 | we should create a Signal (or Telegram) group for FOSDEM | 
| 11:29:59 | FromDiscord | <Rika> i mean legally adult | 
| 11:30:36 | * | WilhelmVonWeiner quit (Quit: leaving) | 
| 11:30:52 | * | WilhelmVonWeiner joined #nim | 
| 11:36:42 | * | letto quit (Quit: Konversation terminated!) | 
| 11:36:46 | krux02 | federico3, I am pretty sure that Araq does not have Signal for the same reason that I don't have it. | 
| 11:37:40 | krux02 | federico3, are you aware that you can just create an IRC channel by just entering it. No "create" required. | 
| 11:38:19 | federico3 | I'm well aware, but a lot of people didn't want to use IRC in previous years | 
| 11:39:15 | * | rockcavera joined #nim | 
| 11:42:35 | * | letto joined #nim | 
| 11:44:25 | dom96 | krux02, IRC doesn't work when on the go. | 
| 11:46:06 | * | solitudesf joined #nim | 
| 11:48:24 | krux02 | dom96, well there are mobile IRC clients | 
| 11:48:34 | narimiran | use telegram, don't complicate. | 
| 11:49:10 | krux02 | think so | 
| 11:50:26 | shashlick | Please test the latest choosenim release - https://github.com/dom96/choosenim/releases/tag/v0.5.1 | 
| 11:51:10 | * | NimBot joined #nim | 
| 11:51:14 | PMunch | Yup we do, with 13 members :) | 
| 11:51:39 | PMunch | The one from two years ago has just been repurposed as a general Nim group :P | 
| 11:51:47 | PMunch | Which is surprisingly active | 
| 11:53:24 | Araq | link? | 
| 11:53:29 | Araq | I have telegram... | 
| 11:54:22 | PMunch | https://t.me/NimFOSDEM2019 | 
| 11:58:22 | * | dddddd joined #nim | 
| 12:04:14 | * | hehekuma joined #nim | 
| 12:08:07 | * | quantumbird quit (Ping timeout: 260 seconds) | 
| 12:25:40 | * | hlavaty joined #nim | 
| 12:29:53 | lqdev[m] | @Rika what do you think I was referring to? | 
| 12:33:10 | * | hehekuma quit (Ping timeout: 268 seconds) | 
| 12:34:19 | * | krux02 quit (Remote host closed the connection) | 
| 12:40:32 | * | hehekuma joined #nim | 
| 12:41:28 | * | dcmertens quit (Ping timeout: 272 seconds) | 
| 12:44:47 | * | marmotini_ joined #nim | 
| 12:48:42 | * | endragor quit (Remote host closed the connection) | 
| 12:55:29 | FromDiscord | <Rika> dunno, "over 20" | 
| 13:06:36 | * | oculux quit (Ping timeout: 265 seconds) | 
| 13:10:52 | * | oculux joined #nim | 
| 13:31:28 | * | jholland__ joined #nim | 
| 13:39:28 | Araq | oh look, thread local GCs for Rust, https://docs.rs/gc/0.3.3/gc/ | 
| 13:49:18 | * | chenhq2005 quit (Ping timeout: 260 seconds) | 
| 13:53:18 | shashlick | Araq: I'm working on https://github.com/dom96/choosenim/issues/28 | 
| 13:53:19 | disbot | ➥ Ask the user whether they want Nim added to PATH | 
| 13:53:37 | Araq | steal the code from finish.nim | 
| 13:53:43 | shashlick | started out with pulling the code from finish | 
| 13:53:54 | Araq | good | 
| 13:53:56 | shashlick | but it didn't propagate on my windows machine | 
| 13:54:12 | shashlick | then dabbled with setx which is completely wrong, so am going back to your version | 
| 13:54:23 | * | jwm224 joined #nim | 
| 13:54:54 | shashlick | the value gets set in the registry correctly but new windows don't get the value | 
| 13:55:02 | shashlick | have to reboot for it to take effect | 
| 13:57:09 | livcd | that's a bit weird | 
| 13:58:00 | shashlick | agreed, even simple settled things waste time | 
| 13:58:37 | Araq | all you need to do is to restart cmd.exe | 
| 13:58:45 | Araq | so that it picks up the modified PATH | 
| 13:59:37 | shashlick | must be something weird with my instance of Windows | 
| 14:00:29 | shashlick | Anyway now that some major bugs are fixed in choosenim, am going to work on features | 
| 14:01:07 | Araq | thanks, you're a true gift to the Nim community | 
| 14:01:15 | narimiran | +1 | 
| 14:02:30 | FromDiscord | <Rika> i wish i was motivated enough to work on fixing bugs ;; | 
| 14:03:46 | shashlick | Thanks :) | 
| 14:04:17 | shashlick | I've spent a lot of time on new stuff but bugs are what turn people off so worth the time | 
| 14:04:42 | shashlick | And the easy ones make you feel heroic so good for morale too | 
| 14:04:57 | shashlick | Even if you introduced them in the first place! | 
| 14:08:18 | FromGitter | <kaushalmodi> shashlick: I plus what Araq said | 
| 14:08:32 | FromGitter | <kaushalmodi> *plus 1 | 
| 14:11:10 | livcd | shashlick: could be the way how you start your cmd | 
| 14:12:01 | * | jwm224 quit (Quit: WeeChat 2.8-dev) | 
| 14:12:06 | livcd | i had this issue because i start Cmder via Everything so when I update the PATH I need to restart Everything as well | 
| 14:12:23 | * | jwm224 joined #nim | 
| 14:12:24 | FromDiscord | <Rika> why even use windows /s | 
| 14:16:23 | * | Vladar joined #nim | 
| 14:21:12 | disruptek | i want to export a proc that is operated upon by a custom macro pragma.  but because this turns into mymacro: proc somedef*(), i get a compiler error: attempt to export proc not at top-level. 🙁 | 
| 14:22:43 | Araq | mymacro shouldn't open a new scope then | 
| 14:23:16 | disruptek | actually, that's not the problem. | 
| 14:23:38 | disruptek | something i wrote last night. | 
| 14:24:08 | * | sekao joined #nim | 
| 14:24:12 | disruptek | the error i'm getting this morning is that the expression has no type. | 
| 14:24:35 | * | jwm224 quit (Quit: WeeChat 2.8-dev) | 
| 14:24:42 | disruptek | the expression is, of course, the procdef (without an export). | 
| 14:25:03 | FromDiscord | <Clyybber> shashlick: Nice, is the bug that makes executables not executable also fixed? | 
| 14:25:11 | disruptek | clyybber: in theory. | 
| 14:25:27 | disruptek | what happened to the case obj bug in arc? | 
| 14:25:58 | FromDiscord | <Clyybber> Araq fixed it | 
| 14:26:00 | FromDiscord | <Clyybber> properly | 
| 14:26:11 | sekao | when i turn on hotcodereloading i get `could not load: nimhcr.dll`. do i need to build that dll myself? the docs don't mention this | 
| 14:26:24 | disruptek | with an empty line? | 
| 14:26:36 | FromDiscord | <Clyybber> later on when =destroy(dst) gets extracted out of `=` and `=sink` it can be optimized further | 
| 14:26:44 | disruptek | fair enough. | 
| 14:27:01 | disruptek | kick the can down the road. 😛 | 
| 14:28:15 | Araq | Clyybber: the fix is still wrong | 
| 14:28:21 | Araq | I'm working on it | 
| 14:28:21 | FromDiscord | <Clyybber> Oh, is it? | 
| 14:28:38 | Araq | yeah, consider:   result = result.kids[0] | 
| 14:28:52 | disruptek | i think my 1bit hack feels a little hacking in the morning light. | 
| 14:28:59 | disruptek | hackish, too. | 
| 14:29:05 | Araq | 1. we turn this into move and produce 'wasMoved(result.kids[0])' # wrong! | 
| 14:29:11 | Araq | (fixed in my branch) | 
| 14:29:25 | Araq | 2. if we produce '=' instead, we start by destroying result | 
| 14:29:33 | * | hlavaty quit (Ping timeout: 260 seconds) | 
| 14:29:34 | Araq | and then we're in limbo | 
| 14:29:52 | FromDiscord | <Clyybber> Hmm, I see | 
| 14:30:05 | FromDiscord | <Clyybber> Araq: Btw, I see you incoporated array access too | 
| 14:30:12 | FromDiscord | <Clyybber> As in ignore runtime array access | 
| 14:30:37 | Araq | yeah, that fix isn't correct either | 
| 14:30:42 | Araq | but much better than it was before | 
| 14:30:44 | FromDiscord | <Clyybber> Yeah, I was about to tell you | 
| 14:30:50 | FromDiscord | <Clyybber> Yeah definitely better | 
| 14:31:03 | FromDiscord | <Clyybber> But it may mess with firstWrite | 
| 14:31:03 | Araq | anyhow, here is what we must do: | 
| 14:31:18 | Araq | let blob {.cursor.} = dest # remembers the old dest.kind | 
| 14:31:24 | Araq | wasMoved(dest) | 
| 14:31:24 | * | jwm224 joined #nim | 
| 14:31:24 | * | noonien quit () | 
| 14:31:29 | Araq | dest.kind = src.kind | 
| 14:31:37 | Araq | for every field (dependent on dest.kind): | 
| 14:31:40 | * | noonien joined #nim | 
| 14:31:45 | Araq | `=` dest.field, src.field | 
| 14:31:50 | Araq | =destroy(blob) | 
| 14:32:00 | Araq | ^ I think. | 
| 14:32:04 | Araq | unless you see a flaw in that | 
| 14:32:12 | disruptek | that sounds way more involved than my hack. | 
| 14:32:30 | FromDiscord | <Clyybber> Araq: Yep | 
| 14:32:31 | * | letto quit (Quit: Konversation terminated!) | 
| 14:32:44 | FromDiscord | <Clyybber> you switched blob and dest around but I think i get it | 
| 14:32:47 | disruptek | when we destroy, we set kind = -kind.  now we can recover the type but we know we don't need to free it. | 
| 14:33:54 | * | pvn quit (Quit: Leaving.) | 
| 14:33:56 | FromDiscord | <Clyybber> disruptek: ha, interesting | 
| 14:34:51 | * | sekao quit (Remote host closed the connection) | 
| 14:35:09 | Araq | Clyybber: so, what do you think? | 
| 14:35:15 | Araq | is my solution correct? | 
| 14:36:08 | FromDiscord | <Clyybber> I think so, | 
| 14:36:44 | FromDiscord | <Clyybber> Well, with a =destroy dest at the top at least | 
| 14:37:48 | FromDiscord | <Clyybber> Araq: Tell me if I got it right: | 
| 14:37:57 | FromDiscord | <Clyybber> `=`(dest, src): | 
| 14:38:14 | FromDiscord | <Clyybber> if notZero(dest): | 
| 14:38:16 | * | vsantana quit (Remote host closed the connection) | 
| 14:38:23 | FromDiscord | <Clyybber> =destroy(dest) | 
| 14:38:36 | FromDiscord | <Clyybber> wasMoved(dest) | 
| 14:38:46 | FromDiscord | <Clyybber> dest.kind = src.kind | 
| 14:38:48 | FromDiscord | <Clyybber> and so on | 
| 14:38:54 | FromDiscord | <Clyybber> right? | 
| 14:39:08 | disruptek | that makes no sense to me. | 
| 14:39:18 | Araq | that's not what I wrote :-) | 
| 14:39:24 | FromDiscord | <Clyybber> sorry, discord cut off my indentation | 
| 14:39:46 | FromDiscord | <Clyybber> Araq: I just added the if notZero(dest): destroy(dest) | 
| 14:40:19 | Araq | there are no ifs here | 
| 14:40:31 | FromDiscord | <Clyybber> Araq: I meant to write down the body of `=` | 
| 14:40:40 | FromDiscord | <Clyybber> Araq: But we must destroy dest if its not zero | 
| 14:40:53 | Araq | look again, we do | 
| 14:40:59 | Araq | =destroy(blob) | 
| 14:41:04 | Araq | but at the end | 
| 14:41:21 | FromDiscord | <Clyybber> Ah, I was confused by you calling the source dest | 
| 14:41:25 | FromDiscord | <Clyybber> and the dest blob | 
| 14:41:26 | FromDiscord | <Clyybber> :p | 
| 14:41:35 | FromGitter | <kaushalmodi> narimiran: How will the docs reflect the system breakup in https://github.com/nim-lang/Nim/commit/e708d5de75c0cccba666f19390ee1ac8e3df8a7a ? | 
| 14:41:55 | disruptek | no, he wrote it correctly. | 
| 14:42:00 | Araq | not at all, the docgen follows include files | 
| 14:42:20 | narimiran | @kaushalmodi all that stuff is *included*, so i think there shouldn't be any problem | 
| 14:42:33 | FromGitter | <kaushalmodi> wouldn't this need to update?: https://github.com/nim-lang/Nim/blob/devel/lib/system_overview.rst | 
| 14:42:37 | disruptek | you just reverse the order and the problem solves itself. | 
| 14:42:54 | FromGitter | <kaushalmodi> narimiran: Oh I see.. you said "include"d | 
| 14:43:00 | rockcavera | I made a silly mistake, wrote newSeqOfCap instead of newSeq and got the error on line 5. But the error is on line 7. Wrong or expected behavior? https://pastebin.com/xsGSsJC5 | 
| 14:43:07 | FromGitter | <kaushalmodi> thanks | 
| 14:43:29 | Araq | sekao: I only tested it on Windows where it produces this DLL automatically | 
| 14:43:30 | FromDiscord | <Clyybber> Araq, disruptek: I don't think I get it.. in Araqs snippet we transform `let blob = dest`, right? Or is that supposed to be part of `=`'s body? | 
| 14:43:43 | Araq | part of ='s body | 
| 14:44:07 | FromDiscord | <Clyybber> Aaah | 
| 14:44:13 | FromDiscord | <Clyybber> Ok, then I'll look at it again | 
| 14:44:23 | Araq | proc `=`(dest: var CaseObj, src: CaseObj) = ... | 
| 14:44:49 | Araq | let blob = move(dest) | 
| 14:45:02 | Araq | dest.kind = src.kind | 
| 14:45:20 | Araq | for every field f:  `=`(dest.f, src.f) | 
| 14:45:26 | Araq | =destroy(blob) | 
| 14:45:40 | shashlick | Clyybber it is fixed yes | 
| 14:45:50 | FromDiscord | <Clyybber> shashlick: nice | 
| 14:45:55 | FromDiscord | <Clyybber> Araq: Thanks I get it now | 
| 14:46:18 | FromDiscord | <Clyybber> It looks correct to me | 
| 14:46:26 | FromDiscord | <Clyybber> But I wonder if we could make it simpler | 
| 14:46:48 | FromDiscord | <Clyybber> Or without the temporary blob | 
| 14:46:56 | FromDiscord | <Clyybber> disruptek: How would your `=` look? | 
| 14:47:14 | Araq | you can special case  'if dest.kind == src.kind' | 
| 14:47:37 | disruptek | i would just skip the destroy if kind < 0. | 
| 14:47:41 | Araq | but then you need to consider that there can be multiple different nested 'kinds' inside the object | 
| 14:48:21 | Araq | the complexity is frightening, I won't make it even more complex | 
| 14:48:33 | disruptek | araq's solution lacks special-casing, which i like. | 
| 14:48:41 | disruptek | it uses components that we already depend on. | 
| 14:48:42 | FromGitter | <kaushalmodi> Araq: Once you are done with your current discussion, I would like to know if the pragma approach is possible here: https://github.com/nim-lang/Nim/pull/13130#issuecomment-573822349. Using a new pragma like `{.nimDocBackend: cpp.}` would be much cleaner than using a new define. But I do not know how to extract a pragma value in rst docstring and runnableExamples parsing. | 
| 14:48:44 | disbot | ➥ Use Nim config defined backend to eval doc string code blocks | 
| 14:48:47 | disruptek | the way we expect them to work. | 
| 14:48:57 | disruptek | the code won't need to be touched for awhile. | 
| 14:49:10 | disruptek | so, i like it for these reasons. | 
| 14:49:59 | disruptek | but, i like my solution for speed/memory. | 
| 14:50:05 | FromDiscord | <Clyybber> Araq: If we pull out =destroy out of = and =sink then we can do it like this: | 
| 14:50:34 | FromGitter | <alehander92> hmm | 
| 14:51:06 | FromDiscord | <Clyybber> ``` | 
| 14:51:06 | FromDiscord | <Clyybber> proc =(dest: var CaseObj, src: CaseObj) = ... | 
| 14:51:06 | FromDiscord | <Clyybber>   dest.kind = src.kind | 
| 14:51:06 | FromDiscord | <Clyybber>   for every field f:  =(dest.f, src.f) | 
| 14:51:07 | FromDiscord | <Clyybber> ``` | 
| 14:51:23 | FromDiscord | <Clyybber> Where the `=destroy(dest)` is outside of `=` | 
| 14:51:57 | * | nsf quit (Quit: WeeChat 2.7) | 
| 14:53:45 | Araq | kaushalmodi: I think I like | 
| 14:53:54 | Araq | {.backend: "cpp".} | 
| 14:53:56 | Araq | best | 
| 14:54:06 | Araq | it's a bit hard to implement though | 
| 14:54:34 | Araq | we must ensure this pragma is processed before we have decided on a backend pipeline | 
| 14:55:23 | disruptek | feels like a complex solution to a simple problem. | 
| 14:55:25 | Araq | or maybe just | 
| 14:55:30 | Araq | nim doc --backend:cpp foo.nim | 
| 14:55:37 | disruptek | this. | 
| 14:56:19 | Araq | and then for consistency we also support 'nim c --backend:cpp' and 'nim check --backend:cpp' | 
| 14:59:19 | * | letto joined #nim | 
| 15:06:27 | * | PMunch quit (Quit: Leaving) | 
| 15:10:35 | * | marmotini_ quit (Remote host closed the connection) | 
| 15:11:09 | * | marmotini_ joined #nim | 
| 15:14:13 | * | marmotini_ quit (Read error: Connection reset by peer) | 
| 15:14:29 | * | ng0_ joined #nim | 
| 15:14:31 | * | marmotini_ joined #nim | 
| 15:18:00 | * | ng0 quit (Ping timeout: 268 seconds) | 
| 15:33:01 | * | letto quit (Quit: Konversation terminated!) | 
| 15:34:01 | * | marmotini_ quit (Remote host closed the connection) | 
| 15:36:14 | * | marmotini_ joined #nim | 
| 15:38:00 | * | marmotini_ quit (Remote host closed the connection) | 
| 15:38:32 | * | marmotini_ joined #nim | 
| 15:38:55 | * | tane joined #nim | 
| 15:39:12 | FromGitter | <kaushalmodi> Araq: ⏎  ⏎ > nim doc --backend:cpp foo.nim ⏎  ⏎ ok.. let me see how switches are added to doc and how they are parsed in docgen.. need to pass that switch to both `:test:` docstring and runnableExamples eval [https://gitter.im/nim-lang/Nim?at=5e1f321fdf9e137d58eb2766] | 
| 15:39:59 | * | letto joined #nim | 
| 15:43:03 | * | marmotini_ quit (Ping timeout: 260 seconds) | 
| 15:43:03 | * | floppydh quit (Quit: WeeChat 2.7) | 
| 15:51:24 | * | sbr8 joined #nim | 
| 15:52:36 | * | sbr8 quit (Client Quit) | 
| 15:53:39 | disruptek | the pragma macro does not yield pragmas without arguments.  😢 | 
| 15:54:01 | * | ng0_ is now known as ng0 | 
| 15:54:01 | * | marmotini_ joined #nim | 
| 15:56:16 | FromDiscord | <treeform> Why was this change needed? Will it break a ton of code? https://github.com/nim-lang/Nim/issues/13154 | 
| 15:56:19 | disbot | ➥ --gc:arc Error: expression cannot be cast to pointer ; snippet at 12https://play.nim-lang.org/#ix=27tf | 
| 15:56:26 | * | sbr8 joined #nim | 
| 15:57:30 | Araq | well I implemented a better string/seq type | 
| 15:57:36 | FromDiscord | <Clyybber> @treeform Because strings are now a pointer len pair. | 
| 15:57:40 | Araq | but it takes 2 words now | 
| 15:58:19 | FromDiscord | <treeform> how does it know the cap? | 
| 15:59:12 | Araq | the pointer points to payload that contains the cap and the elements | 
| 15:59:53 | FromDiscord | <treeform> is that a big win for the language? | 
| 16:01:32 | FromDiscord | <Clyybber> yes | 
| 16:03:19 | Araq | even if it weren't, we must be allowed to change implementations | 
| 16:03:33 | * | marmotini_ quit (Remote host closed the connection) | 
| 16:04:01 | Araq | cast[pointer](str) happened to work and 'cast' always means "I know what I'm doing" | 
| 16:04:08 | * | marmotini_ joined #nim | 
| 16:09:11 | * | marmotini_ quit (Ping timeout: 272 seconds) | 
| 16:09:15 | FromDiscord | <treeform> I just compiled one of my largest nim projects 34k lines and it worked fine with --gc:arc | 
| 16:10:01 | FromDiscord | <Clyybber> nice | 
| 16:10:58 | FromDiscord | <Rika> tests passed? | 
| 16:13:22 | FromDiscord | <mratsim> You need to change the documentation of cast then :p | 
| 16:13:29 | dom96 | cast[pointer](str[0]) still works right? | 
| 16:13:52 | * | dom96 is waiting patiently for async arc support | 
| 16:14:02 | * | FromGitter quit (Remote host closed the connection) | 
| 16:14:20 | * | FromGitter joined #nim | 
| 16:15:28 | FromDiscord | <treeform> @Rika nope some obscure things changed, like 'x.port' is of type: Port. | 
| 16:16:02 | FromDiscord | <Rika> 😮 | 
| 16:18:24 | Araq | dom96, huh? you cast a 'char' into a pointer? | 
| 16:18:46 | dom96 | oh, sorry, missed an `addr` | 
| 16:19:20 | Araq | sure that's unaffected | 
| 16:19:38 | * | narimiran quit (Ping timeout: 240 seconds) | 
| 16:23:07 | * | sbr8 quit (Ping timeout: 272 seconds) | 
| 16:25:12 | * | marmotini_ joined #nim | 
| 16:28:12 | FromDiscord | <treeform> I found a cool name for a library, not sure what it should do though... The name is `equanimity` it has nim inside of it! | 
| 16:31:28 | WilhelmVonWeiner | some kind of super equality operators | 
| 16:32:49 | Araq | https://github.com/nim-lang/packages/pull/1323/files  nice | 
| 16:32:50 | disbot | ➥ barcode library | 
| 16:32:55 | * | narimiran joined #nim | 
| 16:44:18 | * | abm quit (Quit: Leaving) | 
| 16:48:29 | * | Pqzcih5 quit (Remote host closed the connection) | 
| 17:00:58 | * | leorize joined #nim | 
| 17:04:04 | leorize | shashlick: do you still need musl static choosenim builds? | 
| 17:04:44 | rockcavera | I made a silly mistake, wrote newSeqOfCap instead of newSeq and got the error on line 5. But the error is on line 7. Wrong or expected behavior? https://pastebin.com/xsGSsJC5 | 
| 17:06:52 | leorize | https://play.nim-lang.org/#ix=27tC | 
| 17:07:00 | leorize | yup, faulty stacktrace i believe | 
| 17:07:49 | Araq | rockcavera, bug (minor) | 
| 17:10:05 | rockcavera | thanks | 
| 17:15:16 | shashlick | leorize: sure - a v0.5.1 build will be useful | 
| 17:15:20 | * | nsf joined #nim | 
| 17:20:43 | leorize | pm sent | 
| 17:26:34 | * | Trustable joined #nim | 
| 17:30:26 | Zevv | How do .compilerproc. declarations end up in calling C modules? | 
| 17:30:59 | disruptek | wrong turns, gps from 2005, the usual reasons. | 
| 17:31:28 | Zevv | I added the compilerproc pragma to a proc in system.nim, but it gets called from C files that don't see its prototype | 
| 17:32:40 | disruptek | its prototype doesn't make it into the c codegen? | 
| 17:34:00 | Zevv | only in stdlib_system.nim.cpp, but not in my main module | 
| 17:34:07 | Zevv | so I need some kind of trick for that I guess | 
| 17:37:07 | leorize | hmm how do you share data between different processes? | 
| 17:37:55 | Zevv | IPC :) | 
| 17:38:09 | disruptek | uucp | 
| 17:38:15 | Zevv | dude | 
| 17:38:30 | Zevv | ah: the trick is to put a '#' in front of the called symbol. | 
| 17:38:45 | Zevv | leorize: elaborate on what kind of data sharing | 
| 17:38:56 | * | Trustable quit (Remote host closed the connection) | 
| 17:39:30 | Zevv | some options in order of complexity, speed, and flexibility: files, pipes, sockets, shared memory | 
| 17:39:44 | disruptek | i don't see uucp in that list. | 
| 17:39:56 | Zevv | it is kind of an outlier | 
| 17:40:00 | disruptek | fair enough. | 
| 17:40:04 | Zevv | it is slow *and* complicated | 
| 17:40:20 | disruptek | pffbt have you heard about this new thing, `SMTP`? | 
| 17:40:27 | Zevv | I uucp'ed *so* much one time. We had 250 systems on 20 modems | 
| 17:40:41 | Zevv | and in 2020 I still do hayes | 
| 17:40:46 | disruptek | gtfo | 
| 17:40:47 | Zevv | AT+CGDCONT | 
| 17:41:11 | leorize | I'd like to make testament to only request an azure run id (it's an int) when required | 
| 17:41:46 | leorize | but testament launches tests in parallel, so I have to communicate this id that was acquired by one of the child processes somehow | 
| 17:42:14 | Zevv | the dead simple method would be to dump it in a file somewhere, probably | 
| 17:42:15 | leorize | I don't wanna do this in the parent because a child might be spawn but no tests will be run | 
| 17:42:26 | Zevv | do you need/want to inform the parent process, or can it poll? | 
| 17:42:51 | disruptek | on linux you can use fs notification. | 
| 17:42:57 | Zevv | overkill | 
| 17:43:04 | disruptek | rude. | 
| 17:43:10 | leorize | Araq, narimiran: does anyone actually use the azure pipelines tests display? | 
| 17:43:35 | Zevv | leorize: or open a pipe and pass the write side file descriptor by environment variables into the child processes. | 
| 17:43:49 | leorize | that's not portable :p | 
| 17:43:53 | Zevv | the child can do a posix.write(getenv("foobar").int, $id) | 
| 17:43:59 | Zevv | then use a file | 
| 17:44:04 | leorize | testament has to do CI on windows as well | 
| 17:44:36 | Zevv | pff see if I care | 
| 17:44:49 | Zevv | then make a sockepair, that is portable | 
| 17:44:51 | Zevv | socketpair | 
| 17:45:21 | leorize | it appears that Nim CI is choking Azure's REST API | 
| 17:45:41 | disruptek | !repo bluu | 
| 17:45:42 | disbot | https://github.com/disruptek/bluu -- 9bluu: 11Microsoft Azure Cloud (MAC) APIs in Nim 15 0⭐ 0🍴 | 
| 17:46:02 | leorize | I'm interfacing with azure pipelines :P | 
| 17:46:17 | leorize | the API is pretty simple, but apparently it's slow | 
| 17:46:35 | disruptek | i would use the simplest thing that works. | 
| 17:46:43 | Zevv | uucp? | 
| 17:46:58 | disruptek | tried and true. | 
| 17:47:06 | disruptek | trusty uucp. | 
| 17:54:37 | * | arecaceae quit (Remote host closed the connection) | 
| 17:55:00 | * | arecaceae joined #nim | 
| 17:56:22 | Zevv | how relevant is --newruntime today? | 
| 17:56:29 | Zevv | will that go away? | 
| 17:56:34 | disruptek | nah. | 
| 17:56:53 | disruptek | do you mean the switch or the code? | 
| 17:57:30 | disruptek | the switch cannot go away.  the code is integral to arc/orc. | 
| 17:58:32 | Zevv | but what is the relation? Does --gc:arc imply --newruntime? What does --runtime do without --gc:arc? | 
| 17:59:44 | disruptek | --newruntime is aka --gc:ownedrefs | 
| 18:00:09 | Araq | Zevv, --newruntime introduce 'owned ref' and it's a big, breaking change | 
| 18:00:33 | Araq | for an improved runtime efficiency that never materialized | 
| 18:00:59 | disruptek | arc is efficient, but the big win is in programmer efficiency, imo. | 
| 18:01:16 | Araq | it does avoid cycles by construction though and has benefits for threading too | 
| 18:01:34 | disruptek | better to let a computer sort these problems out. | 
| 18:02:11 | Araq | and we are "really close now (TM)" to make a proposal which does not break so much code | 
| 18:03:07 | Araq | or if you know C++ well: | 
| 18:03:19 | Araq | --gc:arc  ~~ shared_ptr done right | 
| 18:03:29 | Araq | --newruntime ~~ unique_ptr done right | 
| 18:03:57 | Zevv | and best of both worlds? | 
| 18:04:55 | Araq | best of both worlds is "work in progress" | 
| 18:05:19 | Zevv | :) | 
| 18:06:59 | Araq | you can write your own unique_ptr already though, it's just super alien :P | 
| 18:07:38 | disruptek | how can any of the async code be gcsafe when it runs callbacks provided by the user? | 
| 18:08:09 | Zevv | yeaaaah | 
| 18:08:11 | Zevv | tell me that disruptek | 
| 18:08:25 | Zevv | this is my pet peeve: https://github.com/dom96/nim-in-action-code/issues/6 | 
| 18:08:26 | disbot | ➥ not GC-safe ; snippet at 12https://play.nim-lang.org/#ix=26qK | 
| 18:09:47 | disruptek | well, i don't see how it can ever run in arc if we cannot let arc do its magic. | 
| 18:10:24 | Araq | disruptek, easy, the callbacks all have to be .gcsafe too | 
| 18:10:35 | disruptek | lol | 
| 18:10:53 | disruptek | araqlogic ftw | 
| 18:11:00 | Zevv | quoting Zevv: "Also: if the gcsafe restriction really applies to asyncHttpServer, should it not apply to all async? I can now simply create my own async http server without the gcsafe restriction." | 
| 18:12:46 | * | icebattle joined #nim | 
| 18:12:49 | disruptek | i mean, i looked at, like, currying the callbacks so the api doesn't change but we get the future in the cb. | 
| 18:13:29 | * | natrys quit (Quit: natrys) | 
| 18:13:53 | Araq | https://github.com/zevv/withnimble-packages2 sec 623 ms | 
| 18:13:54 | Araq | Error message: | 
| 18:13:54 | Araq | Failure: reBuildFailed | 
| 18:13:54 | Araq | package test failed | 
| 18:13:54 | Araq | $ nimble test | 
| 18:13:55 | Araq | Executing task test in C:\projects\nim\pkgstemp\with\with.nimble | 
| 18:13:56 | Araq | C:\projects\nim\pkgstemp\with\tests\tests.nim(22, 5) Error: low(cond) must be 0 for discriminant | 
| 18:14:00 | Araq | Zevv, ping | 
| 18:14:19 | Zevv | pong | 
| 18:14:31 | Araq | " low(cond) must be 0 for discriminant" ? | 
| 18:14:35 | * | marmotini_ quit (Remote host closed the connection) | 
| 18:14:40 | Araq | did you touch your package today? | 
| 18:14:45 | Zevv | Yeah I merged a PR | 
| 18:14:50 | disruptek | lol | 
| 18:15:01 | Araq | well it's broken | 
| 18:15:04 | Zevv | unmerging | 
| 18:15:48 | Zevv | But I did not release, didn't realize master is in the tests | 
| 18:16:34 | Zevv | fixed | 
| 18:17:20 | disruptek | so the reason to link async cb to its future is purely prevent arc from breaking the subgraph? | 
| 18:17:37 | Zevv | This malloc cleanup is proving a bit of a hassle. Everthing I touch breaks something somewhere. | 
| 18:17:50 | Zevv | I'll have to go refactoring in smaller steps I guess | 
| 18:18:20 | Zevv | a lot of permutations of options to keep in mind | 
| 18:18:37 | disruptek | this is why i want instant ci. | 
| 18:18:47 | disruptek | i don't think it sounds all that hard to get something useful. | 
| 18:21:08 | FromGitter | <kaushalmodi> Zevv: Setting up CI that tests using nim stable and devel is pretty trivial | 
| 18:21:14 | FromGitter | <kaushalmodi> I do it even for my useless projects | 
| 18:21:26 | Zevv | oh that's not the problem, I can run most of the relevant testst on my own computer | 
| 18:21:28 | disruptek | all zevv's projects are useless. | 
| 18:21:40 | Zevv | the problem is that I'm trying to touch some very basic stuff in the compiler and libs | 
| 18:21:41 | FromGitter | <kaushalmodi> heh | 
| 18:22:01 | Zevv | but can't do A without B, and if I do both, something else breaks | 
| 18:22:03 | disruptek | this is why you want to see what breaks, and fast. | 
| 18:22:25 | disruptek | like, 3 seconds would be good.  less would be better. | 
| 18:22:50 | Araq | fantasy numbers | 
| 18:23:02 | Zevv | disruptek: some pretty smart people have been working pretty hard on what there is now | 
| 18:23:15 | disruptek | is it so crazy? | 
| 18:23:18 | Zevv | yes | 
| 18:23:46 | disruptek | the objects get reproducable, and we know what built what.  so we just link the new assets. | 
| 18:25:04 | Zevv | just fix my mallocs already :) | 
| 18:28:42 | Araq | since you're here | 
| 18:29:11 | * | icebattl1 joined #nim | 
| 18:29:13 | Araq | IMO your change to osalloc.nim is not good | 
| 18:29:27 | Araq | in that it can hide problems | 
| 18:29:41 | Araq | and we still use TLSF even if we don't want to | 
| 18:29:56 | * | matlock quit (Ping timeout: 248 seconds) | 
| 18:30:03 | Araq | so it needs something like  hostOS == "any" and not defined(useMalloc) | 
| 18:30:06 | * | msmorgan quit (Ping timeout: 246 seconds) | 
| 18:30:12 | * | sz0 quit (Ping timeout: 260 seconds) | 
| 18:30:46 | * | l1x quit (Ping timeout: 252 seconds) | 
| 18:30:46 | * | matti quit (Ping timeout: 252 seconds) | 
| 18:30:47 | * | MD87 quit (Ping timeout: 260 seconds) | 
| 18:31:30 | * | nimblepoultry quit (Ping timeout: 252 seconds) | 
| 18:32:19 | * | npgm quit (Ping timeout: 272 seconds) | 
| 18:32:22 | * | icebattle quit (Ping timeout: 265 seconds) | 
| 18:32:42 | * | msmorgan joined #nim | 
| 18:32:44 | * | icebattl1 quit (Client Quit) | 
| 18:33:05 | * | icebattle joined #nim | 
| 18:33:53 | * | MD87 joined #nim | 
| 18:34:18 | * | hehekuma quit (Remote host closed the connection) | 
| 18:34:25 | * | npgm joined #nim | 
| 18:35:25 | * | nimblepoultry joined #nim | 
| 18:37:07 | * | rayman22201 quit () | 
| 18:37:13 | * | matlock joined #nim | 
| 18:45:56 | FromDiscord | <exelotl> is there a name for the problem with C preprocessor macros that Nim templates prevent? | 
| 18:46:04 | Zevv | well, alloc and osalloc are not even included now with --gc:arc and -d:useMalloc anway | 
| 18:46:09 | Zevv | so that part can go ou | 
| 18:46:11 | Zevv | t | 
| 18:46:20 | * | silvernode joined #nim | 
| 18:46:28 | FromDiscord | <exelotl> I was trying to explain it to someone and I accidentally said 'safety' and was thoroughly ridiculed | 
| 18:46:29 | Zevv | but that's what I mean, there are too many code paths now to keep track of | 
| 18:46:44 | * | rayman22201 joined #nim | 
| 18:47:50 | rayman22201 | apparently irccloud is down. Yay to finding alternate irc clients :/ | 
| 18:48:05 | rayman22201 | so the iterator double free bug is fixed in arc? | 
| 18:49:07 | rayman22201 | did it magically fix async, or should I start playing with arc async now? | 
| 18:49:21 | * | Jesin quit (Quit: Leaving) | 
| 18:49:42 | disruptek | yes, i'm looking at it, too. | 
| 18:50:56 | * | Jesin joined #nim | 
| 18:51:15 | * | chenhq2005 joined #nim | 
| 18:52:08 | * | marmotini_ joined #nim | 
| 18:53:34 | FromDiscord | <Recruit_main_70007> whats static ownership checking? | 
| 18:53:59 | disruptek | not leaving home without it. | 
| 18:54:21 | Araq | exelotl: "The C preprocessor does not respect C's scoping rules. At all." | 
| 18:57:09 | rayman22201 | Recruit_main_70007: It's the thing all the Rust fan boi's scream about. | 
| 19:00:21 | FromDiscord | <Recruit_main_70007> and in a more objective way?? | 
| 19:00:33 | FromDiscord | <Recruit_main_70007> (although you are pretty right) | 
| 19:01:10 | disruptek | the idea is for the compiler to do some analysis to make sure you don't do something stupid. | 
| 19:01:21 | disruptek | static = at compilation | 
| 19:01:32 | disruptek | statically backed-into the output binary. | 
| 19:01:36 | disruptek | baked, too. | 
| 19:02:03 | disruptek | make sure you get 'em when they are hot outta the oven. | 
| 19:02:27 | FromDiscord | <Recruit_main_70007> thx | 
| 19:02:56 | rayman22201 | "static" means compile time, "ownership checking" means checking that pointers are not used in a way that can crash your program (in simple terms. kind of a complex concept.) | 
| 19:03:51 | rayman22201 | crash your program or other problems.... data races (multithreading), reading from a Null pointer accidentally, etc... that kind of thing | 
| 19:04:08 | FromDiscord | <Recruit_main_70007> ok | 
| 19:04:15 | disruptek | Zevv: i just read that issue and it seems to me that if the compiler can infer .gcsafe, we should remove it. | 
| 19:04:22 | * | sbr8 joined #nim | 
| 19:08:12 | rayman22201 | removing .gcsafe from httpserver or from async? | 
| 19:08:38 | * | sagax quit (Read error: Connection reset by peer) | 
| 19:09:34 | disruptek | async | 
| 19:11:21 | disruptek | the graph isn't going to cross threads because it's got a threadvar in it. | 
| 19:12:55 | disruptek | maybe we need to neuter gcsafe in arc and see what breaks. 😁 | 
| 19:16:04 | Yardanico | Hmm, talked with a guy in Telegram now (in nim group), seems like https://nim-lang.org/donate.html doesn't have patreon link | 
| 19:16:17 | Yardanico | patreon.com/araq I mean | 
| 19:17:04 | * | sagax joined #nim | 
| 19:18:37 | * | nsf quit (Quit: WeeChat 2.7) | 
| 19:19:50 | rayman22201 | I thought .gcsafe was already neutered in arc? | 
| 19:20:10 | rayman22201 | it doesn't really make as much sense in the context of arc | 
| 19:20:37 | Araq | it does make much sense still since the refcounting is "isolated" | 
| 19:21:00 | Araq | the 'A' in ARC does not stand for 'Atomic' | 
| 19:21:09 | Araq | Yardanico, good point | 
| 19:21:22 | disruptek | oh, that makes sense. | 
| 19:21:26 | rayman22201 | yeah. I see | 
| 19:21:34 | rayman22201 | thanks for the clarification Araq | 
| 19:21:36 | disruptek | we can't really trust that nothing else is gonna mess with us. | 
| 19:22:15 | disruptek | ~araq is the A in ARC | 
| 19:22:15 | disbot | araq: 11the A in ARC | 
| 19:22:28 | rayman22201 | makes me now hate the name ".gcsafe". Should be ".isolated" or something... but I'll leave the yak shaving for another day. | 
| 19:22:41 | disruptek | y'know who's great at yak shaving? | 
| 19:22:42 | disruptek | zevv. | 
| 19:23:14 | disruptek | just one german in a sea of naked yaks. | 
| 19:23:18 | rayman22201 | lol | 
| 19:25:33 | Araq | this was terrible https://github.com/nim-lang/Nim/pull/13156 | 
| 19:25:33 | disbot | ➥ ARC: misc bugfixes | 
| 19:25:46 | Araq | I wonder how many bugs are left after it | 
| 19:28:28 | * | sbr8 quit (Quit: leaving) | 
| 19:30:46 | FromDiscord | <treeform> Is there a Nim Job board? | 
| 19:31:07 | livcd | are you hiring?! | 
| 19:31:15 | FromDiscord | <treeform> yes | 
| 19:31:22 | FromDiscord | <Recruit_main_70007> really? | 
| 19:31:24 | FromDiscord | <treeform> are you looking? | 
| 19:31:32 | Araq | post it on the forum please | 
| 19:31:50 | Araq | we have plenty of people here looking for a Nim related job, I think | 
| 19:32:07 | FromDiscord | <Recruit_main_70007> depending, is it legal to work in programming underage? | 
| 19:32:13 | disruptek | treeform: if you're in the us, zacharycarter would be interested. | 
| 19:32:29 | disruptek | i would, too. | 
| 19:32:32 | Yardanico | @Recruit_main_70007 freelance - why not | 
| 19:33:04 | disruptek | 13156 doesn't change the async leak situation. | 
| 19:33:09 | disruptek | in a way, that's good. | 
| 19:33:14 | Yardanico | well, depending on your country you might need to do some legal stuff with your parents/representatives about taxes and stuff | 
| 19:33:23 | Yardanico | but I think you can just ignore this if you don't earn like $10k a month :P | 
| 19:33:26 | Araq | disruptek, async doesn't use case objects | 
| 19:33:28 | FromDiscord | <Recruit_main_70007> well, i am interested, at least to see what can i expect if i try going for nim for living | 
| 19:33:49 | disruptek | yeah, but i pulled from that branch with the X other commits. | 
| 19:34:42 | FromDiscord | <kodkuce> @treeform  i want to work for free 🙂 | 
| 19:35:48 | FromDiscord | <kodkuce> job apprenticeship cuz i newb | 
| 19:37:21 | FromDiscord | <kodkuce> or peasant money xD | 
| 19:37:46 | FromDiscord | <kodkuce> or revshare if working on games | 
| 19:39:23 | Araq | rayman22201, async is crash free but leaks memory IME | 
| 19:39:50 | disruptek | needs a when release: turned into release or danger: too. | 
| 19:40:07 | disruptek | stack trace injection also injects most of the memory leak. | 
| 19:40:09 | Araq | needs a new test case in tests/arc so that we notice regressions | 
| 19:40:34 | Araq | ah I know of one bug that I really need to fix now | 
| 19:41:01 | Araq | which could be responsible for the stack trace leaks. hmm not really | 
| 19:41:06 | Araq | but whatever, need to fix it | 
| 19:42:09 | * | Kameleon joined #nim | 
| 19:46:28 | FromDiscord | <kodkuce> hmm so async almost done? just need duck tape those bucket holes ? | 
| 19:46:35 | * | Kameleon quit (Client Quit) | 
| 19:46:47 | * | Kameleon joined #nim | 
| 19:46:53 | * | Pixeli joined #nim | 
| 19:47:50 | * | Pixeli quit (Client Quit) | 
| 19:55:20 | Araq | on Unix. | 
| 19:55:29 | Araq | on Windows it probably still crashes, let me check | 
| 19:55:47 | FromDiscord | <kodkuce> i am a bird i poop on win | 
| 19:57:37 | Araq | yup. crashes | 
| 19:57:46 | Araq | I wonder why though... | 
| 20:00:21 | * | abc_not_cba joined #nim | 
| 20:00:29 | abc_not_cba | hi | 
| 20:01:39 | abc_not_cba | i'm sad | 
| 20:01:45 | abc_not_cba | kuroyasha loose | 
| 20:01:46 | abc_not_cba | lose | 
| 20:01:49 | abc_not_cba | https://www.youtube.com/watch?v=TsDD2gizjuI | 
| 20:03:44 | FromDiscord | <treeform> disruptek, can you PM me on discord some how if you are interested? | 
| 20:05:41 | abc_not_cba | I don't understand what do you want | 
| 20:05:48 | abc_not_cba | sorry | 
| 20:06:02 | abc_not_cba | if my english suck, i'm not english native | 
| 20:11:21 | Zevv | so, there is eight different files in the stdlib directly calling c_malloc | 
| 20:11:27 | disruptek | treeform: i dunno, discord thinks i'm a hacker. | 
| 20:11:40 | abc_not_cba | cause you are | 
| 20:11:41 | FromDiscord | <Recruit_main_70007> wut? | 
| 20:11:55 | abc_not_cba | stop trying to fool us | 
| 20:11:58 | * | Kameleon quit (Read error: Connection reset by peer) | 
| 20:12:03 | abc_not_cba | we all know you are a hacker | 
| 20:12:18 | disruptek | yes, but now discord knows it, too. | 
| 20:12:31 | disruptek | why is chat such a hard thing to get right? | 
| 20:12:49 | FromDiscord | <Recruit_main_70007> wdym, try to DM me | 
| 20:12:58 | abc_not_cba | some people also create malicious compiler | 
| 20:13:14 | abc_not_cba | it automatically inject bad code into your program | 
| 20:13:21 | abc_not_cba | be careful | 
| 20:14:45 | leorize[m] | oooh, a job writing nim? | 
| 20:16:35 | * | abc_not_cba left #nim (#nim) | 
| 20:16:36 | disruptek | https://forum.nim-lang.org/t/5727#36035 | 
| 20:16:51 | disruptek | how come it's 2020 and we still don't have a facepalm emoji? | 
| 20:16:57 | leorize | we do | 
| 20:17:02 | FromDiscord | <Recruit_main_70007> 🤦♂️ | 
| 20:17:05 | disruptek | 🤦 | 
| 20:17:06 | leorize | not easy to type if you're not on phone | 
| 20:17:28 | disruptek | it's `face palm` not `facepalm`.  🤦 | 
| 20:17:45 | rayman22201 | Araq is async still in the same position as last week when I asked then? | 
| 20:18:07 | FromDiscord | <treeform> @Recruit_main_70007 I can't DM you any more. You have blocked me. Maybe its for the better... | 
| 20:18:08 | * | lritter quit (Ping timeout: 268 seconds) | 
| 20:18:09 | rayman22201 | I was under the impression, maybe I'm wrong, that the double free was also related to iterators not just case objects | 
| 20:18:16 | rayman22201 | and that may also have affected it | 
| 20:18:34 | disruptek | that's what i figured, too; seemed like a pattern that'd be used there. | 
| 20:18:34 | Araq | there is no double free according to valgrind | 
| 20:18:42 | disruptek | but, no.  it's not that (now). | 
| 20:18:47 | leorize | @treeform: can you post it on the forums? I'm interested | 
| 20:19:11 | rayman22201 | disruptek with this branch yes? https://github.com/nim-lang/Nim/pull/13156 | 
| 20:19:12 | disbot | ➥ ARC: misc bugfixes | 
| 20:19:22 | disruptek | sure. | 
| 20:19:31 | rayman22201 | or does that not matter? | 
| 20:19:41 | disruptek | it might help. | 
| 20:19:41 | rayman22201 | what commit should I start from? | 
| 20:19:43 | FromDiscord | <Recruit_main_70007> @treeform i didnt | 
| 20:19:49 | FromDiscord | <exelotl> I tried to DM a friend just now and it also denied my message. Maybe something's up with Discord. | 
| 20:19:53 | disruptek | that tree is fine. | 
| 20:20:08 | rayman22201 | Araq do you concur? | 
| 20:20:16 | disruptek | discord shut down their network because i created an account. | 
| 20:20:27 | rayman22201 | major haxor alertz | 
| 20:20:32 | Araq | rayman22201, confirmed | 
| 20:20:38 | FromDiscord | <exelotl> ah that sounds reasonable | 
| 20:20:43 | rayman22201 | :+1: thanks | 
| 20:21:10 | disruptek | bbl, let us know what you learn, ray 👍 | 
| 20:21:15 | lqdev[m] | this happens when an user is not in your friends and they didn't enable a setting which allows non-friends from a server to DM them | 
| 20:21:32 | FromDiscord | <treeform> leorize, I'll post it on the forums, need to clarify something with my boss first. | 
| 20:29:29 | FromDiscord | <Recruit_main_70007> url? | 
| 20:31:46 | * | matti joined #nim | 
| 20:32:07 | * | pbb quit (Remote host closed the connection) | 
| 20:33:23 | * | pbb joined #nim | 
| 20:34:41 | * | Trustable joined #nim | 
| 20:37:35 | * | salewski joined #nim | 
| 20:39:16 | * | letto quit (Quit: Konversation terminated!) | 
| 20:39:16 | salewski | Araq, it is only a gcc problem. With clang it works, even basic gtk test! | 
| 20:39:20 | salewski | https://github.com/nim-lang/Nim/issues/13157 | 
| 20:39:22 | disbot | ➥ Arc, finalizer, out of memory ; snippet at 12https://play.nim-lang.org/#ix=27uI | 
| 20:40:13 | salewski | disbot, any news for https://github.com/nim-lang/Nim/issues/13110 | 
| 20:40:15 | disbot | ➥ RTree investigations with valgrind for --gc:arc ; snippet at 12https://play.nim-lang.org/#ix=27uJ | 
| 20:41:21 | Araq | salewski, not sure, gcc bugs are really rare IME | 
| 20:41:38 | Araq | but if valgrind says it's green it usually really is green | 
| 20:42:01 | Araq | esp since we add runtime checks for valgrinds failures (array index bugs) | 
| 20:42:32 | leorize | salewski: I got oom no matter what compiler I use | 
| 20:42:38 | leorize | gentoo also (but with musl libc) | 
| 20:43:28 | leorize | also, sigsegv if -d:useMalloc is defined | 
| 20:44:49 | salewski | leorize: thanks for testing, so it is not only me. | 
| 20:48:15 | * | krux02 joined #nim | 
| 20:49:44 | salewski | Oh, previous issue seems to work now with latest nim compiler: | 
| 20:49:47 | salewski | https://github.com/nim-lang/Nim/issues/13110#issuecomment-573398778 | 
| 20:49:49 | disbot | ➥ RTree investigations with valgrind for --gc:arc ; snippet at 12https://play.nim-lang.org/#ix=27uJ | 
| 20:50:02 | salewski | I will close that then... | 
| 20:50:29 | leorize | you should add a test for it before closing | 
| 20:52:03 | * | narimiran quit (Ping timeout: 265 seconds) | 
| 20:52:03 | salewski | Ok, then I will add a remark that it work to issue and let closing to the devs. | 
| 20:52:51 | leorize | hmm, I'm running your example via gdb | 
| 20:53:01 | leorize | 93824992254642 <- that's the size of the object that were going to be allocated | 
| 20:53:10 | leorize | so yea, out of memory :P | 
| 20:53:34 | salewski | Thanks leorize, and bye for today. | 
| 20:53:37 | * | salewski quit (Quit: WeeChat 2.6) | 
| 20:54:09 | Zevv | leorize: 0x555555559ab2 ? | 
| 20:56:29 | leorize | you're a genius Zevv | 
| 20:56:38 | leorize | that's the address of the finalizer proc | 
| 20:56:51 | Zevv | yw | 
| 20:57:04 | leorize | I guess sometimes C warnings aren't wrong :P | 
| 20:57:10 | Zevv | large random numbers are never just random | 
| 20:57:38 | Zevv | like 0x6b637546 | 
| 20:57:46 | Zevv | oh I mean 1801680198 | 
| 20:58:34 | leorize | Araq: I guess the finalizer transformation was broken? | 
| 20:59:45 | madprops | hmm http://i.imgur.com/aLXh1gM.png | 
| 20:59:47 | * | letto joined #nim | 
| 21:01:00 | leorize | that's false? | 
| 21:01:19 | leorize | the memory model changes were never official or even as a default in devel | 
| 21:01:36 | leorize | well but it's 4chan, I don't expect too much from them | 
| 21:02:05 | solitudesf | you should always assume that everything said on /g/ is false | 
| 21:02:26 | leorize | /g/ tries to hate everything for the sake of hating it | 
| 21:03:03 | solitudesf | i would prefer plain hating, but they spread so much misinformation | 
| 21:03:14 | * | marmotini_ quit (Remote host closed the connection) | 
| 21:03:32 | solitudesf | and gullible teenagers are buying into that shit | 
| 21:03:41 | * | jholland__ quit (Quit: Connection closed for inactivity) | 
| 21:03:46 | * | tane quit (Quit: Leaving) | 
| 21:03:49 | * | marmotini_ joined #nim | 
| 21:08:42 | * | marmotini_ quit (Ping timeout: 268 seconds) | 
| 21:09:54 | Zevv | yeah, and Anonymous is of course a bit of an authority on these matters | 
| 21:11:56 | disruptek | Anonymous called my cell today.  I didn't answer. | 
| 21:12:13 | disruptek | rayman22201: any news? | 
| 21:14:39 | FromDiscord | <kodkuce> whats {.base.} for, i type it in nim manual serch didnet got anything | 
| 21:14:50 | leorize | base methods | 
| 21:15:04 | * | pbb_ joined #nim | 
| 21:15:05 | * | pbb quit (Ping timeout: 272 seconds) | 
| 21:17:48 | FromDiscord | <kodkuce> ok found on stack owerflow need to read | 
| 21:19:31 | * | pbb_ quit (Ping timeout: 272 seconds) | 
| 21:23:52 | * | silvernode quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) | 
| 21:25:13 | * | pbb joined #nim | 
| 21:26:12 | disruptek | why don't we have a .gcunsafe. instead? | 
| 21:26:39 | leorize | gcsafe is a misnomer :P | 
| 21:30:09 | * | voltist joined #nim | 
| 21:30:26 | Araq | .threadsafe ? | 
| 21:31:13 | disruptek | no, i wanna know the graph is safe from outside influences. | 
| 21:31:36 | Araq | .isolated | 
| 21:31:44 | disruptek | that exists? | 
| 21:32:01 | Araq | no, it's what I'm throwing around | 
| 21:32:12 | disruptek | it's probably an effect. | 
| 21:32:40 | Araq | Isolation is not good for me... Isolation, I don't want to sit on the lemon tree. | 
| 21:32:59 | disruptek | but you can move the tree into a neighbor's yard. | 
| 21:33:14 | disruptek | might let you peek in suzy's window. | 
| 21:33:27 | Zevv | naughty boy | 
| 21:33:37 | Zevv | nighty, boys | 
| 21:33:46 | disruptek | how come zevv always shows up when we start talking about porn in the channel? | 
| 21:33:50 | * | Zevv out | 
| 21:33:57 | disruptek | gn zevv | 
| 21:34:01 | Araq | oh my | 
| 21:34:09 | rayman22201 | so dumpNumberofInstances doesn't work with arc? | 
| 21:34:17 | rayman22201 | what debugging tools do we have? | 
| 21:34:25 | rayman22201 | I have to re-learn things lol. sorry | 
| 21:34:32 | Araq | rayman22201, blood sweat and tears. | 
| 21:34:43 | Araq | and poor valgrind | 
| 21:34:51 | rayman22201 | ;( :') | 
| 21:35:01 | disruptek | --debugingo, -d:useMalloc, -d:traceArc, -d:traceCollector=true | 
| 21:35:09 | disruptek | --gc:orc, --exceptions:goto | 
| 21:35:28 | Araq | traceArc? traceCollector? | 
| 21:35:29 | disruptek | -d:futureLogging 🤣 | 
| 21:35:45 | disruptek | -d:toDebug="always" on your compiler. | 
| 21:35:50 | Araq | I don't remember these, let me try them | 
| 21:36:10 | disruptek | they are unlikely to all be useful here.  just stuff i tripped over. | 
| 21:36:21 | rayman22201 | gc:orc? is this the World of Warcraft collector. "For the Hoard!" | 
| 21:36:43 | Araq | gc:orc is brutal and stupid | 
| 21:36:47 | disruptek | lol | 
| 21:37:03 | disruptek | slow but robust. | 
| 21:37:06 | Araq | and it crashes | 
| 21:37:10 | disruptek | makes big leaks into small leaks. | 
| 21:37:19 | rayman22201 | gc:Hulk | 
| 21:37:28 | FromDiscord | <kodkuce> just googled sitting on lemon tree, newer head about that referece | 
| 21:38:01 | Araq | if it were stable, I could make it go really fast | 
| 21:38:22 | Araq | but it isn't and "fast but incorrect" isn't appealing | 
| 21:39:50 | FromDiscord | <kodkuce> https://www.youtube.com/watch?v=UqWD383I90s  << this lemon tree | 
| 21:41:30 | * | krux02_ joined #nim | 
| 21:46:21 | * | UNIcodeX joined #nim | 
| 21:47:27 | disruptek | this video is pretty amusing. | 
| 21:48:50 | disruptek | i'm sure this is just what he meant by lemon tree. | 
| 21:49:34 | Araq | yeah, it was reference to this song | 
| 21:50:11 | FromDiscord | <kodkuce> duno i really newer heard an expression "Sitting on lemon tree so was wtf need to google this" | 
| 21:50:15 | disruptek | maybe it's not isolate. | 
| 21:50:21 | disruptek | maybe it's a gate. | 
| 21:51:30 | * | noonien quit (Quit: Connection closed for inactivity) | 
| 21:51:59 | disruptek | {.gate: [ui, network, images, queries].} and each gate defines a separation between graphs. | 
| 21:52:15 | disruptek | the graphs have their own memory schemes. | 
| 21:53:12 | disruptek | some can be multithreaded, some single. | 
| 21:53:27 | disruptek | so you can tie them to threads. | 
| 21:54:11 | disruptek | we could even do transition triggers. | 
| 21:54:52 | Araq | tell me more | 
| 21:56:03 | disruptek | how come every thinks i'm crazy? | 
| 21:56:07 | disruptek | ^1 | 
| 21:58:14 | disruptek | what kinda music is this, anyway? | 
| 21:58:20 | * | rayman22201 quit (Remote host closed the connection) | 
| 21:59:13 | * | hlavaty joined #nim | 
| 21:59:35 | disruptek | https://en.wikipedia.org/wiki/Lemon_Tree_(Fool%27s_Garden_song) | 
| 22:04:51 | FromDiscord | <Recruit_main_70007> @treeform I sent you a DM, can you read it? | 
| 22:05:53 | FromDiscord | <treeform> Yes I did | 
| 22:07:47 | disruptek | it gave him shivers. | 
| 22:08:01 | * | Trustable quit (Remote host closed the connection) | 
| 22:08:13 | * | krux02 quit (Remote host closed the connection) | 
| 22:09:38 | * | filcuc joined #nim | 
| 22:11:20 | * | rayman22201 joined #nim | 
| 22:11:27 | disruptek | we should instrument this "deterministic memory handling" and track characteristics of the test suite, maybe even a few large programs. | 
| 22:11:56 | rayman22201 | ugh. lost connection. Fun fact. Valgrind says Futures by themselves are leak free. this is good. | 
| 22:12:40 | disruptek | there's a leak in that the call() doesn't wipe out func pointers. | 
| 22:13:19 | disruptek | oh, i guess that's fine. | 
| 22:13:40 | FromDiscord | <treeform> I like "deterministic memory handling" | 
| 22:13:47 | rayman22201 | I think it's the same leak I had with my dispose experiment. | 
| 22:14:08 | disruptek | it's not really a leak unless the type leaks, right? | 
| 22:14:14 | disruptek | i dunno how we impl that. | 
| 22:14:22 | * | UNIcodeX quit (Quit: Leaving) | 
| 22:15:24 | rayman22201 | there are two closures in the async macro. One gets handled fine, but the other one gets lost / doesn't have an owner. My solution was to add an extra closure pointer to the Future object, so that it doesn't get lost. | 
| 22:15:46 | rayman22201 | the tricky part is that pointer can't get freed until after "last read of" the future. | 
| 22:17:27 | rayman22201 | I will try to re-implement it with arc and see what happens. | 
| 22:19:08 | disruptek | yeah, okay, i think i finally understand what you're saying. | 
| 22:19:16 | disruptek | took me a minute. | 
| 22:19:40 | rayman22201 | it's ok. async is kind of mind bending code at first | 
| 22:19:42 | disruptek | you can use `unowned` to get an unowned view of the object for rc purposes. | 
| 22:19:54 | disruptek | i just learned this on something today. | 
| 22:20:40 | disruptek | i wish i knew german. | 
| 22:20:52 | rayman22201 | The thing is, I know from a research paper that araq gave me, the "last read of thing" is provably the correct thing to do. `unowned` is more of a hack / letting it leak. | 
| 22:21:16 | * | NimBot joined #nim | 
| 22:21:34 | rayman22201 | is his english that bad? lol | 
| 22:21:47 | disruptek | it's pretty bad. | 
| 22:21:50 | rayman22201 | I also <3  zevv, so I understand the frustration | 
| 22:22:02 | disruptek | i usually just smile and nod. | 
| 22:22:14 | disruptek | nod and smile. | 
| 22:22:31 | disruptek | say `yeah` a lot.  that helps. | 
| 22:22:33 | rayman22201 | lol. that is what I do with my wife as well :-P | 
| 22:22:51 | disruptek | i just talk like that to everyone. | 
| 22:22:54 | disruptek | makes it easier. | 
| 22:23:16 | * | Vladar quit (Quit: Leaving) | 
| 22:23:48 | disruptek | i meant to agree that you're right about "last read of thing". | 
| 22:23:56 | disruptek | we should be explicit. | 
| 22:24:22 | disruptek | we say the semantics we want and then program the machine to have those semantics. | 
| 22:24:59 | * | rayman22201 nods in agreement | 
| 22:34:45 | disruptek | that's really what we want.  the memory handling should go hand-in-hand with the language. | 
| 22:39:26 | FromDiscord | <AGNiMA> hi | 
| 22:42:44 | FromDiscord | <demotomohiro> Hi | 
| 22:48:32 | rayman22201 | uh, suddenly I can't cast procs? | 
| 22:48:40 | rayman22201 | ``callback=`(next_gensym400019, proc() {.closure, gcsafe.}(asyncProcNimAsyncContinue_400016))` | 
| 22:48:55 | rayman22201 | Error: expected: ')', but got: '(' | 
| 22:49:36 | Araq | (proc() {..})(theProc) | 
| 22:49:58 | rayman22201 | so, expandmacro is not producing valid code anymore these days? | 
| 22:50:13 | disruptek | you can cast them, you just can't trust 'em.  further than you can cast them.  or, that's what momma always tol' me. | 
| 22:50:23 | rayman22201 | yeah that was it. weird. | 
| 22:50:42 | rayman22201 | I used to be able to copy and paste the output of expandmacro and it would just compile, but that seems to no longer be the case. | 
| 22:51:19 | disruptek | oh, that's a smart idea, isn't it. | 
| 22:51:44 | Araq | disruptek, please. A little less noise, some of us are trying to work | 
| 22:52:00 | rayman22201 | this also seems to no longer be accepted? | 
| 22:52:03 | rayman22201 | `            raise              var e_gensym400201: owned(ref AssertionError)              new(e_gensym400201)              e_gensym400201.msg = msg_gensym400020 % "asyncProc"              e_gensym400201.parent = nil              e_gensym400201` | 
| 22:52:08 | rayman22201 | ahhhh. fail | 
| 22:52:08 | rayman22201 | sorry | 
| 22:52:36 | rayman22201 | https://play.nim-lang.org/#ix=27vv | 
| 22:52:53 | rayman22201 | Error: invalid indentation | 
| 22:53:19 | rayman22201 | It's sometimes useful to take the output of expandMacro and modify that by hand when debugging the macro. | 
| 22:53:38 | disruptek | yeah, it's good idea. | 
| 22:53:41 | rayman22201 | but if expandMacro is broken, just makes life harder... | 
| 22:54:00 | disruptek | what's the lowest leak that you have? | 
| 22:54:10 | rayman22201 | 72 bytes | 
| 22:54:22 | Araq | it's not really "broken", rendering back the AST into something that is guaranteed to be parsable is far from trivial | 
| 22:54:24 | disruptek | wow, that's the smallest? | 
| 22:54:39 | rayman22201 | well, I'm not done yet | 
| 22:54:58 | disruptek | is that good?  i don't even know. | 
| 22:55:04 | rayman22201 | It's about as small as it can be given the size of the strings I'm using to test. | 
| 22:55:13 | rayman22201 | I can make it smaller, but I like strings. easy to debug. | 
| 22:55:34 | rayman22201 | Araq point taken about AST rendering | 
| 22:56:25 | rayman22201 | it's just been surprisingly reliable in the past. small developer ux things that bother me. I know it's low priority. | 
| 23:02:20 | Araq | well I made some progress for async on windows | 
| 23:02:38 | Araq | I think I understand IO completion ports once again | 
| 23:03:00 | disruptek | that probably sounded sexy in your head. | 
| 23:03:14 | disruptek | does it merely leak on windows? | 
| 23:03:30 | Araq | nope, it crashes | 
| 23:03:35 | disruptek | oh, nice. | 
| 23:03:38 | Araq | we get the GC_ref/unref calls wrong | 
| 23:03:39 | FromDiscord | <treeform> Araq, nice! | 
| 23:03:49 | disruptek | wow, that's weird. | 
| 23:03:58 | Araq | but I don't understand yet why | 
| 23:04:03 | Araq | time to sleep over it | 
| 23:04:10 | disruptek | gn | 
| 23:04:18 | Araq | bye | 
| 23:04:26 | rayman22201 | gn | 
| 23:09:14 | * | solitudesf quit (Ping timeout: 258 seconds) | 
| 23:11:09 | * | oculux quit (Ping timeout: 258 seconds) | 
| 23:11:54 | * | abm joined #nim | 
| 23:12:07 | dom96 | Araq, let me know if you need some insights from me | 
| 23:13:02 | zedeus | hey dom96, have you ever experienced requests getting sent to the wrong clients with httpbeast? | 
| 23:13:30 | * | oculux joined #nim | 
| 23:13:33 | dom96 | nope | 
| 23:13:40 | rayman22201 | disruptek can you give me an example of unowned usage? | 
| 23:13:44 | zedeus | happens quite often with nitter | 
| 23:14:02 | zedeus | can't reproduce locally, requires lots of traffic | 
| 23:14:11 | disruptek | unowned someref.somefield is like a cursor that won't +rc someref. | 
| 23:14:38 | zedeus | also happens with other instances so it's not some networking mishap | 
| 23:14:40 | dom96 | zedeus, hm, odd. How do you know that is the cause? How does it show up? | 
| 23:14:43 | rayman22201 | undeclared identifier 'unowned' | 
| 23:14:57 | disruptek | sorry, unown | 
| 23:15:30 | zedeus | it's displayed like any other requests, just the wrong content. sometimes you request a profile page, and it gives you an image, or just the wrong page | 
| 23:15:42 | rayman22201 | damn. thanks. that worked, but didn't do what I wanted | 
| 23:15:50 | disruptek | what do you want? | 
| 23:16:22 | rayman22201 | async to work :-P | 
| 23:16:26 | zedeus | i have reproduced it a couple times with a local instance but it's very inconsistent | 
| 23:16:29 | disruptek | heh | 
| 23:16:35 | rayman22201 | I have an alternative I'm trying. no worries | 
| 23:16:40 | disruptek | are you on windows? | 
| 23:17:27 | rayman22201 | I'm on linux atm | 
| 23:17:34 | dom96 | zedeus, can you reproduce with a minimal httpbeast code sample? | 
| 23:17:35 | rayman22201 | I'm still looking at the leak | 
| 23:17:59 | disruptek | somehow i'm infinite-looping on it. | 
| 23:18:55 | zedeus | dom96: no as I said it's incredibly hard to trigger it even with a local nitter instance, I've tried a lot of things but nothing reliably triggers it | 
| 23:19:28 | Yardanico | can it be a bug in the underlying OS implementation of poll and stuff? | 
| 23:19:32 | zedeus | while with nitter.net you can trigger it constantly with a simple apache benchmark | 
| 23:19:52 | rayman22201 | how do you force a destructor to run? | 
| 23:20:09 | disruptek | call it? | 
| 23:20:26 | * | oculux quit (Ping timeout: 265 seconds) | 
| 23:20:32 | dom96 | zedeus, possibly the only way to track it down will be to set up an instance on another server, run the apache benchmark, delete some code, re-run, see if its still reproducible until you find the source. | 
| 23:20:33 | rayman22201 | `destroyy=`? | 
| 23:20:44 | disruptek | =destroy but it takes a var. | 
| 23:20:59 | * | oculux joined #nim | 
| 23:21:01 | dom96 | zedeus, pain in the ass, but there is no way to know where this bug is. It could be in your code for example, maybe you're doing something weird with threads? | 
| 23:21:27 | zedeus | well, I've tried that. running 10 benchmarks hammering it with 20 requests in parallel it doesn't happen | 
| 23:21:29 | zedeus | nope, no threads | 
| 23:21:40 | zedeus | just simple jester routing | 
| 23:21:49 | rayman22201 | `Error: call depth limit reached in a debug build (2000 function calls). You can change it with -d:nimCallDepthLimit=<int> but really try to avoid deep recursions instead.` | 
| 23:21:51 | rayman22201 | :-P | 
| 23:21:59 | dom96 | zedeus, but you're running jester with --threads:on, right? | 
| 23:22:06 | zedeus | no | 
| 23:22:19 | zedeus | i use sqlite with norm so that isn't possible | 
| 23:22:29 | rayman22201 | I also made it infinite recurse lol | 
| 23:22:45 | disruptek | but it only leaks 72 bytes? | 
| 23:23:15 | disruptek | you gotta take the wins with the losses. | 
| 23:24:39 | dom96 | zedeus, then I'm really not able to imagine how this could happen | 
| 23:24:46 | rayman22201 | it's actually more. It's actually 416. | 
| 23:25:00 | rayman22201 | ==4314== LEAK SUMMARY:==4314==    definitely lost: 72 bytes in 1 blocks==4314==    indirectly lost: 344 bytes in 4 blocks | 
| 23:25:23 | rayman22201 | but that will grow linearly with the number of async chains | 
| 23:25:28 | rayman22201 | so no beno | 
| 23:25:32 | rayman22201 | bueno even | 
| 23:25:38 | disruptek | oh i'm measuring the test. | 
| 23:25:55 | dom96 | zedeus, what you can also try is switching to asynchttpserver instead | 
| 23:26:03 | disruptek | send me your test. | 
| 23:26:06 | dom96 | -d:useStdLib IIRC | 
| 23:26:12 | zedeus | well, i did.. but #12526 | 
| 23:26:14 | disbot | https://github.com/nim-lang/Nim/issues/12526 -- 3asynchttpserver "Bad file descriptor" crashes ; snippet at 12https://play.nim-lang.org/#ix=27vG | 
| 23:27:14 | dom96 | ahh :/ | 
| 23:28:39 | disruptek | i'm measuring tasyncawait from testament. | 
| 23:29:30 | rayman22201 | way too complicated. | 
| 23:30:08 | disruptek | yes, well, it has the advantage of stressing all the parts. | 
| 23:30:59 | rayman22201 | https://play.nim-lang.org/#ix=27vK | 
| 23:31:23 | rayman22201 | lets get the minimal case working before stress testing :-P | 
| 23:31:57 | rayman22201 | I have another version with the async macro expanded manually if you want to play with that. | 
| 23:32:25 | rayman22201 | also, here is my dispose async work: https://github.com/rayman22201/Nim/tree/async-with-dispose | 
| 23:32:30 | disruptek | sure, but lemme chew on this first. | 
| 23:32:51 | rayman22201 | I also have a version of that same example with the asyncmacro expanded if you like | 
| 23:33:11 | disruptek | so this is leak free on orc. | 
| 23:33:28 | disruptek | and the 72 on arc. | 
| 23:33:42 | rayman22201 | what is orc? | 
| 23:34:02 | disruptek | orc is the cycle-detecting version of arc. | 
| 23:34:16 | rayman22201 | dispose was an experimental branch Araq gave me to proof of concept before arc was even started. | 
| 23:34:27 | disruptek | ~orc is arc's slower, dim-witted cousin | 
| 23:34:27 | disbot | orc: 11arc's slower, dim-witted cousin | 
| 23:34:34 | disruptek | ~orc is arc's slower, dim-witted brother | 
| 23:34:35 | disbot | orc: 11arc's slower, dim-witted brother | 
| 23:34:46 | rayman22201 | I haven't checked that. idk if it leaks or not with orc | 
| 23:35:02 | disruptek | right, so that was the --newruntime variant. | 
| 23:35:21 | disruptek | a lot of related code repurposed in arc. | 
| 23:35:25 | rayman22201 | yeah | 
| 23:35:37 | rayman22201 | but earlier primate in the evolutionary chain :-P | 
| 23:35:53 | disruptek | so how well does the dispose branch do in this test? | 
| 23:36:31 | rayman22201 | so, orc does not leak, confirmed | 
| 23:36:39 | rayman22201 | dispose passes the test | 
| 23:36:41 | rayman22201 | no leaks | 
| 23:37:02 | rayman22201 | but I had to write a whole new Future variant that takes an extra closure pointer | 
| 23:37:05 | disruptek | ~orc is arc's slower, dim-witted brother who also detects and breaks memory cycles. | 
| 23:37:05 | disbot | orc: 11arc's slower, dim-witted brother who also detects and breaks memory cycles. | 
| 23:37:26 | disruptek | so this is a very big deal. | 
| 23:37:47 | disruptek | i think you may have just saved christmas. | 
| 23:38:03 | rayman22201 | well, it's a big rewrite of the guts, but it should be transparent to the user | 
| 23:38:10 | rayman22201 | lol. woohoo | 
| 23:38:17 | disruptek | why didn't you say so? | 
| 23:38:22 | rayman22201 | I've been sitting on it for a while. That's why araq keeps poking me | 
| 23:38:34 | disruptek | no one is gonna want to use a transparent api change, even if it doesn't leak. | 
| 23:39:10 | rayman22201 | I've been sort of waiting for arc to stabilize, and see if it would work out another way. | 
| 23:39:46 | disruptek | oh, it's broken on newruntime? | 
| 23:40:02 | rayman22201 | what do you mean? | 
| 23:40:14 | rayman22201 | async never worked on newruntime | 
| 23:40:33 | disruptek | but arc is, as you put it, an evolution of that. | 
| 23:40:46 | disruptek | and you wrote dispose against newruntime, yes? | 
| 23:40:53 | rayman22201 | no | 
| 23:40:56 | disruptek | oh. | 
| 23:42:01 | rayman22201 | dispose is an "experimental" offshoot that I was using because araq had just started on newruntime. | 
| 23:42:35 | rayman22201 | but: https://github.com/rayman22201/Nim/blob/async-with-dispose/basicAsync.nim#L21 | 
| 23:43:45 | rayman22201 | the whole idea being that "dispose" was something I could use to prototype, but can be translated into owned notation. | 
| 23:44:06 | disruptek | hmm, i don't know that GC_disable is a thing. | 
| 23:44:12 | rayman22201 | I promise it is | 
| 23:44:13 | disruptek | comment it out and see what happens. | 
| 23:44:26 | disruptek | i mean on arc, silly. | 
| 23:44:34 | rayman22201 | of course not | 
| 23:44:48 | disruptek | so fine. | 
| 23:44:51 | rayman22201 | lol | 
| 23:45:05 | disruptek | yeah, you did it.  great work. | 
| 23:45:24 | rayman22201 | basically. I have an algorithm that I know works. But I have to do the annoying work of translating to arc now :-P | 
| 23:49:24 | * | filcuc quit (Quit: Konversation terminated!) | 
| 23:55:55 | Araq | rayman22201: dispose(x)  becomes  x = nil | 
| 23:56:08 | Araq | the translation is rather simple, no? | 
| 23:56:32 | disruptek | dispose -> dispose | 
| 23:57:29 | disruptek | it's awesome to debug orc versus arc. | 
| 23:57:38 | disruptek | you see where it adds a dispose, boom. |