| 00:13:35 | * | BitPuffin|osx quit (Ping timeout: 240 seconds) | 
| 00:13:42 | * | Sentreen joined #nim | 
| 00:20:16 | * | Chad__ joined #nim | 
| 00:23:04 | * | Chad__ quit (Client Quit) | 
| 00:29:25 | * | def-pri-pub joined #nim | 
| 00:30:38 | * | fridgeseal quit (Quit: Page closed) | 
| 00:33:57 | * | Sentreen quit (Ping timeout: 252 seconds) | 
| 00:36:59 | * | rauss joined #nim | 
| 00:43:15 | * | Noctis quit (Remote host closed the connection) | 
| 01:01:31 | def-pri-pub | zacharycarter: You there? `core.nim` is broken | 
| 01:01:37 | def-pri-pub | core.nim(82, 19) Error: undeclared identifier: 'matrixTranslate' | 
| 01:01:58 | FromGitter | <zacharycarter> hrm | 
| 01:02:02 | FromGitter | <zacharycarter> weird | 
| 01:02:14 | FromGitter | <zacharycarter> I'm about to push up a commit, mind trying again in a few moments def-pri-pub? | 
| 01:02:36 | FromGitter | <zacharycarter> oh yeah crap: def-pri-pub I'm removing zmath | 
| 01:02:41 | FromGitter | <zacharycarter> so matrixTranslate will be going away | 
| 01:02:52 | FromGitter | <zacharycarter> I probably should have told you this over the weekend, my bad | 
| 01:02:59 | def-pri-pub | Yeah, looks like there's a lot left over in `core.nim` | 
| 01:03:12 | def-pri-pub | `begin2dMode()` needs a purge | 
| 01:03:13 | FromGitter | <zacharycarter> hrm okay let me push up and see where we're at | 
| 01:03:16 | FromGitter | <zacharycarter> gotcha | 
| 01:03:24 | FromGitter | <zacharycarter> will fix that here shortly if I haven't alread | 
| 01:06:21 | Demos[m] | is there a common substring proc in the standard library | 
| 01:06:32 | Demos[m] | I feel like I'm being an idiot and it's equivalent to something else | 
| 01:13:02 | Demos[m] | also does existFile return true for symlinks? | 
| 01:14:44 | FromGitter | <zacharycarter> def-pri-pub: mind checking again? core should be fine now I believe | 
| 01:15:38 | FromGitter | <zacharycarter> Demos[m]: https://nim-lang.org/docs/system.html#substr,string,int | 
| 01:15:54 | FromGitter | <zacharycarter> no idea on the fileExists for symlinks but I imagine the answer is yes | 
| 01:16:05 | FromGitter | <zacharycarter> one easy way to find out ;) | 
| 01:18:10 | * | Sentreen joined #nim | 
| 01:18:45 | def-pri-pub | exit | 
| 01:18:46 | * | def-pri-pub quit (Quit: leaving) | 
| 01:18:54 | Demos[m] | it looks like no | 
| 01:19:07 | Demos[m] | is there a function that will just tell me if something exists at a path, and if so what it is | 
| 01:19:22 | Demos[m] | like stat but working on windows | 
| 01:20:18 | FromGitter | <zacharycarter> not sure | 
| 01:20:26 | FromGitter | <zacharycarter> looks like there is symlinkexists | 
| 01:21:22 | * | StarBrilliant quit (Ping timeout: 276 seconds) | 
| 01:25:11 | * | endragor joined #nim | 
| 01:29:35 | * | endragor quit (Ping timeout: 248 seconds) | 
| 01:47:42 | * | StarBrilliant joined #nim | 
| 01:53:06 | loc8_ | uit | 
| 01:53:09 | * | loc8_ quit (Quit: WeeChat 1.9) | 
| 01:53:34 | * | loc8 joined #nim | 
| 02:22:32 | Demos[m] | just popped open a merge request to add the SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE flag on windows | 
| 02:23:10 | Demos[m] | this is simply a flag for compat reasons (apps that were relying on symlinks failing) | 
| 03:14:51 | * | endragor joined #nim | 
| 03:15:19 | Demos[m] | just ordered a copy of Nim In Action for the office! | 
| 03:19:04 | * | dddddd quit (Remote host closed the connection) | 
| 03:20:14 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) | 
| 03:25:39 | * | Snircle joined #nim | 
| 03:28:17 | * | Snircle quit (Client Quit) | 
| 03:44:10 | * | vivus quit (Quit: Leaving) | 
| 03:46:22 | * | Snircle joined #nim | 
| 03:50:14 | FromGitter | <Varriount> Araq: Just started learning the Präteritum case in my German class. It's killing me. X_X | 
| 03:52:59 | * | loc8 quit (Quit: WeeChat 1.9) | 
| 03:53:17 | * | loc8 joined #nim | 
| 03:58:47 | * | loc8 quit (Quit: WeeChat 1.9) | 
| 03:59:58 | * | francisl joined #nim | 
| 04:09:27 | * | loc8 joined #nim | 
| 04:10:07 | * | vendethiel- joined #nim | 
| 04:18:39 | * | vendethiel- quit (Ping timeout: 248 seconds) | 
| 04:33:55 | * | cspar joined #nim | 
| 04:34:41 | * | cspar_ quit (Ping timeout: 248 seconds) | 
| 04:38:50 | * | mahmudov quit (Remote host closed the connection) | 
| 04:42:05 | * | cspar quit (Ping timeout: 240 seconds) | 
| 04:52:01 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) | 
| 04:52:14 | * | cspar joined #nim | 
| 04:56:22 | * | abeaumont quit (Ping timeout: 246 seconds) | 
| 04:56:47 | * | abeaumont joined #nim | 
| 04:57:24 | * | cspar quit (Ping timeout: 252 seconds) | 
| 05:13:47 | * | cspar joined #nim | 
| 05:15:33 | * | francisl quit (Quit: francisl) | 
| 05:16:52 | * | sz0 quit (Quit: Connection closed for inactivity) | 
| 05:45:21 | * | rauss quit (Quit: WeeChat 1.9) | 
| 05:55:21 | * | miran joined #nim | 
| 05:56:55 | * | Arrrr joined #nim | 
| 05:56:55 | * | Arrrr quit (Changing host) | 
| 05:56:55 | * | Arrrr joined #nim | 
| 06:27:40 | * | miran quit (Ping timeout: 255 seconds) | 
| 06:42:37 | FromGitter | <evgenknis> 1111 | 
| 06:45:31 | * | Vladar joined #nim | 
| 06:46:04 | * | nsf joined #nim | 
| 06:53:18 | * | tdc joined #nim | 
| 06:54:13 | Arrrr | F | 
| 06:54:16 | * | haha_ joined #nim | 
| 06:56:41 | Araq | 27 | 
| 07:07:57 | * | PMunch joined #nim | 
| 07:08:59 | * | haha_ quit (Quit: haha_) | 
| 07:09:57 | * | haha_ joined #nim | 
| 07:14:46 | * | gangstacat quit (Quit: Leaving) | 
| 07:25:13 | * | haha_ quit (Quit: haha_) | 
| 07:31:32 | * | haha_ joined #nim | 
| 07:34:01 | * | haha_ quit (Client Quit) | 
| 07:35:38 | * | yglukhov joined #nim | 
| 07:37:03 | * | yglukhov quit (Remote host closed the connection) | 
| 07:37:18 | * | yglukhov joined #nim | 
| 07:39:44 | * | BitPuffin|osx joined #nim | 
| 07:55:32 | * | haha_ joined #nim | 
| 08:03:34 | * | xet7 quit (Quit: Leaving) | 
| 08:05:22 | * | BigEpsilon quit (Remote host closed the connection) | 
| 08:06:11 | * | BigEpsilon joined #nim | 
| 08:25:02 | * | endragor quit (Remote host closed the connection) | 
| 08:26:26 | * | endragor joined #nim | 
| 08:28:52 | * | endragor quit (Remote host closed the connection) | 
| 08:31:38 | * | endragor joined #nim | 
| 08:36:14 | * | endragor quit (Ping timeout: 240 seconds) | 
| 08:43:11 | FromGitter | <ephja> ```code paste, see link``` ⏎  ⏎ so this node should only really appear in a macro context? [https://gitter.im/nim-lang/Nim?at=59a5291f81cd9a5d7e9d2404] | 
| 08:46:50 | FromGitter | <ephja> dom96: `toJsonNode{"field": toJsonNode(5), "field2": toJsonNode(4.5)}` why would the syntax following the prefix have to change (become more verbose) as well? | 
| 08:48:33 | FromGitter | <zacharycarter> hrm still doesn't look like the playground is running 0.17.0 | 
| 08:48:34 | FromGitter | <zacharycarter> grr | 
| 08:50:46 | * | enthus1ast- quit (Ping timeout: 255 seconds) | 
| 08:52:21 | * | enthus1ast- joined #nim | 
| 08:53:28 | * | endragor joined #nim | 
| 08:56:31 | FromGitter | <ephja> `of tyTypeDesc: if result.kind == nkStmtList: result.kind = nkStmtListType` | 
| 08:56:52 | * | dom96|w joined #nim | 
| 08:58:08 | FromGitter | <zacharycarter> alright now the playground supports latest | 
| 08:58:13 | FromGitter | <zacharycarter> sorry about that | 
| 09:06:44 | * | Yardanico joined #nim | 
| 09:12:29 | FromGitter | <Yardanico> @zacharycarter also you'll need to update for 0.17.2, because it will probably be released in ~1-2 weeks | 
| 09:12:36 | * | endragor quit (Remote host closed the connection) | 
| 09:13:29 | FromGitter | <zacharycarter>  | 
| 09:20:43 | * | gangstacat joined #nim | 
| 09:21:18 | * | haha_ quit (Quit: haha_) | 
| 09:28:44 | Yardanico | What would be the best test category for https://github.com/nim-lang/Nim/issues/4665 ? | 
| 09:38:21 | * | haha_ joined #nim | 
| 09:46:28 | * | enthus1ast- quit (Ping timeout: 240 seconds) | 
| 09:57:34 | * | couven92 joined #nim | 
| 09:58:08 | * | enthus1ast- joined #nim | 
| 10:06:39 | * | yeeve__ joined #nim | 
| 10:10:21 | * | yeeve quit (Ping timeout: 252 seconds) | 
| 10:14:36 | * | haha_ quit (Quit: haha_) | 
| 10:26:06 | * | haha_ joined #nim | 
| 10:30:15 | dom96|w | hrm, maybe we should create a Nim devroom at next year's FOSDEM | 
| 10:31:10 | dom96|w | maybe it's too late for that already though | 
| 10:32:22 | dom96|w | oh no, there is no call for participation yet | 
| 10:46:10 | * | dddddd joined #nim | 
| 10:49:43 | * | endragor joined #nim | 
| 10:54:13 | * | ShalokShalom joined #nim | 
| 10:55:14 | * | enthus1ast- quit (Ping timeout: 240 seconds) | 
| 10:56:15 | * | enthus1ast- joined #nim | 
| 10:57:48 | * | haha_ quit (Quit: haha_) | 
| 11:07:45 | * | dom96|w quit (Quit: My Mac has gone to sleep. ZZZzzz…) | 
| 11:29:59 | Yardanico | Araq, sorry, I made a PR with typo fix to the wrong branch (master instead of devel) because I've done it in github web version  | 
| 11:30:16 | * | dom96|w joined #nim | 
| 11:30:22 | Yardanico | do I need to recreate PR or no? | 
| 11:32:47 | couven92 | Yardanico, I'd close the original PR and recreate with new target branch | 
| 11:36:52 | Yardanico | couven92, well Araq merged it already | 
| 11:37:06 | couven92 | ah | 
| 11:37:14 | Yardanico | https://github.com/nim-lang/Nim/pull/6289 | 
| 11:37:52 | couven92 | cherry-pick and recreate, link to #6289 | 
| 11:43:28 | * | Snircle joined #nim | 
| 11:43:59 | * | loc8 quit (Ping timeout: 248 seconds) | 
| 12:07:23 | * | Yardanico_ joined #nim | 
| 12:07:29 | * | enthus1ast- quit (Ping timeout: 248 seconds) | 
| 12:10:43 | * | Yardanico quit (Ping timeout: 276 seconds) | 
| 12:14:04 | * | Yardanico_ quit (Quit: Quit) | 
| 12:14:10 | * | BigEpsilon quit (Ping timeout: 255 seconds) | 
| 12:14:17 | * | Yardanico joined #nim | 
| 12:14:56 | * | BigEpsilon joined #nim | 
| 12:29:19 | * | BigEpsilon quit (Remote host closed the connection) | 
| 12:29:28 | * | BigEpsilon joined #nim | 
| 12:46:01 | Yardanico | Araq, https://github.com/nim-lang/Nim/issues/6292#issuecomment-325650856 seems to be a regression after last GC codegen bug | 
| 12:46:08 | Yardanico | *codegen bug fix | 
| 12:50:33 | * | Matthias247 joined #nim | 
| 12:50:55 | Araq | how so? i.split('/')[^1] always was broken | 
| 12:51:11 | Araq | the compiler used to disallow it, now it produces bad code instead | 
| 12:51:29 | Araq | it's a nasty problem but not a regression caused by my GC fixes | 
| 12:51:35 | Yardanico | Araq, ah, sorry, didn't knew about it | 
| 12:52:25 | Yardanico | well at least I know now that you can omit "untyped" in templates | 
| 12:52:41 | * | BigEpsilon quit (Remote host closed the connection) | 
| 12:52:51 | * | ShalokShalom quit (Remote host closed the connection) | 
| 12:56:36 | * | endragor quit (Remote host closed the connection) | 
| 13:03:46 | FromGitter | <andreaferretti> what's wrong in `i.split('/')[^1]` anyway? | 
| 13:03:54 | FromGitter | <andreaferretti> I don't see why it should be disallowed | 
| 13:05:36 | dom96|w | This looks like a showstopper to me | 
| 13:07:46 | Yardanico | also a question - when .deprecated stuff will be removed? on 1.0 release? there is a lot of these in stdlib | 
| 13:08:02 | Yardanico | for example TFoo - Foo deprecated aliases | 
| 13:08:58 | Araq | dom96|w: fix it :P | 
| 13:09:36 | FromGitter | <ephja> @andreaferretti ^ doesn't work well with side effects atm | 
| 13:09:38 | dom96|w | Araq: `git revert 920f4acadf` | 
| 13:09:40 | dom96|w | Done :P | 
| 13:10:07 | Araq | 920f4acadf hasn't caused this, read what I wrote please | 
| 13:12:45 | Yardanico | Araq, a weird question, but: are you the only one who knows everything about Nim compiler internals? | 
| 13:13:42 | Araq | no, zahary knows everything too (we hired him) and "Jehan" seems to know almost everything | 
| 13:14:02 | Yardanico | ok, nice to know :) | 
| 13:15:36 | Araq | https://www.think-cell.com/en/career/talks/iterators/#1 | 
| 13:17:14 | * | BigEpsilon joined #nim | 
| 13:18:23 | * | rauss joined #nim | 
| 13:19:04 | FromGitter | <andreaferretti> I see that it doesn't work with side effects | 
| 13:19:14 | FromGitter | <andreaferretti> My question is | 
| 13:19:21 | FromGitter | <andreaferretti> Araq says it should be disallowed | 
| 13:19:34 | FromGitter | <andreaferretti> But I don't see anything wrong in that code | 
| 13:19:58 | Araq | well either we rewrite it properly aka  (let x = call(); x[^1]) | 
| 13:19:59 | FromGitter | <andreaferretti> It looks just normal index access to a seq which is the result of a function call | 
| 13:20:04 | Araq | or we disallow it | 
| 13:20:29 | FromGitter | <andreaferretti> Doesn't this happen for all composed expressions? | 
| 13:20:37 | FromGitter | <andreaferretti> How is `[]` special in this regard? | 
| 13:20:45 | Araq | [] is not, but ^ is | 
| 13:21:16 | FromGitter | <andreaferretti> ah ok, now I see | 
| 13:21:42 | Araq | or maybe we change the implementation to not rely on compiler magic | 
| 13:21:58 | FromGitter | <andreaferretti> from the point of view of implementing, yes, that could lead to evalutating stuff twice | 
| 13:22:33 | FromGitter | <andreaferretti> if one just rewrites `x[^1]` as `x[x.len - 1]` | 
| 13:22:41 | FromGitter | <andreaferretti> `x` may be evaluated twice | 
| 13:23:18 | FromGitter | <andreaferretti> I guess introducing a temporary is somehow needed | 
| 13:23:31 | Araq | yeah and that's the problem. | 
| 13:23:58 | * | gangstacat quit (Quit: Leaving) | 
| 13:24:04 | Araq | we don't introduce the temporary and it's kinda messy, the sem'checking does the rewrite and is not supposed to introduce temps | 
| 13:24:19 | Araq | later passes in the compiler have more freedom :P | 
| 13:24:51 | FromGitter | <andreaferretti> I see | 
| 13:25:00 | Araq | but a pure system.nim based implementation seems better | 
| 13:25:34 | Araq | we can make ^ an ordinary operator that creates a Reverse[T] and have [] accessors that can take a Reverse[T] | 
| 13:25:51 | Araq | much like we do it with '..' already | 
| 13:26:55 | FromGitter | <andreaferretti> but then `[]` accessors will need to be procs | 
| 13:27:11 | FromGitter | <andreaferretti> if they are templates, you get the double evaluation again | 
| 13:27:21 | FromGitter | <andreaferretti> better be sure these procs are inlined | 
| 13:28:49 | Araq | so? templates need to be carefully written, that's not a new problem | 
| 13:29:26 | Yardanico | ehh, it seems dirty templates don't play well with async procedures | 
| 13:30:00 | FromGitter | <andreaferretti> ah ok, one can use templates and introduce a temporary there | 
| 13:32:08 | * | relax joined #nim | 
| 13:32:30 | * | BigEpsilon quit (Quit: Leaving) | 
| 13:32:50 | * | BigEpsilon joined #nim | 
| 13:34:11 | * | BigEpsilon quit (Client Quit) | 
| 13:34:40 | * | BigEpsilon joined #nim | 
| 13:49:50 | * | Matthias247 quit (Read error: Connection reset by peer) | 
| 13:50:15 | * | nsf quit (Quit: WeeChat 1.9) | 
| 13:56:25 | Yardanico | Araq, is there a better way to do this - https://gist.github.com/Yardanico/7eace4f1fd519170e10119efb8be0b6f  than creating ident nodes and using "quote do"? If I make a template, it doesn't work because of async pragma (some cryptic error messages) | 
| 14:01:00 | Yardanico | I only need that proc name would be unique, I don't care about making other variable names unique | 
| 14:05:42 | * | PMunch quit (Quit: Leaving) | 
| 14:06:29 | * | couven92 quit (Quit: Client Disconnecting) | 
| 14:09:06 | Yardanico | oh wait I almost did it | 
| 14:09:11 | Yardanico | there's c compiler error now | 
| 14:15:25 | Yardanico | if I insert procedure name like `uniqName` in a template, it says  "lib/pure/asyncmacro.nim(286, 10) Error: Unknown name." | 
| 14:16:26 | FromGitter | <ephja> what's uniqName? | 
| 14:17:25 | Yardanico | I'll post a snippet now, one sec | 
| 14:17:41 | Yardanico | well uniqName is an ident node | 
| 14:17:45 | Yardanico | passed to a template in a macro | 
| 14:17:51 | Yardanico | like "result = getAst(genProc(uniqName, usage, cmds, procBody))" | 
| 14:18:00 | Yardanico | genProc - this template | 
| 14:18:19 | Yardanico | I want to have unique name of a procedure in a template | 
| 14:18:25 | Yardanico | in a dirty template | 
| 14:18:38 | Yardanico | but I don't want to have unique names for all other variables | 
| 14:19:08 | Araq | use {.gensym.} for the proc? | 
| 14:19:47 | * | dom96|w quit (Quit: My Mac has gone to sleep. ZZZzzz…) | 
| 14:21:15 | Yardanico | Araq, can I apply it to the procedure? | 
| 14:21:19 | FromGitter | <ephja> can all async related limitations be addressed without help from the compiler? | 
| 14:21:30 | Araq | proc foo() {.gensym.} | 
| 14:21:39 | * | Jesin quit (Quit: Leaving) | 
| 14:22:50 | Yardanico | Araq, like  this? https://gist.github.com/Yardanico/4b3d388a5aa349d41e79a3252efd4a1a | 
| 14:23:45 | Araq | yes but getAst is special, .async will never work with this | 
| 14:24:05 | Yardanico | ah | 
| 14:24:28 | * | dom96|w joined #nim | 
| 14:25:13 | * | Jesin joined #nim | 
| 14:34:11 | Yardanico | ok, I'll keep it as it is now | 
| 14:37:23 | Yardanico | it seems async macro don't like procedure name created with genSym | 
| 14:49:44 | * | dom96|w quit (Quit: Textual IRC Client: www.textualapp.com) | 
| 14:56:35 | * | SusWombat joined #nim | 
| 14:57:29 | * | miran joined #nim | 
| 14:59:38 | * | Trustable joined #nim | 
| 15:04:57 | * | nsf joined #nim | 
| 15:08:15 | * | PMunch joined #nim | 
| 15:08:21 | * | BigEpsilon quit (Ping timeout: 240 seconds) | 
| 15:12:23 | * | endragor joined #nim | 
| 15:17:17 | * | endragor quit (Ping timeout: 260 seconds) | 
| 15:21:37 | * | loc8 joined #nim | 
| 15:37:13 | * | ShalokShalom joined #nim | 
| 15:45:55 | * | loc8 quit (Read error: No route to host) | 
| 15:46:40 | * | loc8 joined #nim | 
| 15:54:08 | * | PMunch quit (Quit: leaving) | 
| 15:54:12 | * | BigEpsilon joined #nim | 
| 15:54:31 | Araq | anyone opposed to introducing 'jstring' instead of 'cstring' for the JS target? | 
| 16:02:54 | FromGitter | <andreaferretti> I think many will be happy | 
| 16:08:40 | euantor | Yeah, no problems here. Hopefully library authors will then adapt code quickly | 
| 16:09:58 | Yardanico | well everything is better to do now, before 1.0 :) | 
| 16:16:30 | Arrrr | I thought cstring was 'compatible string'. | 
| 16:17:10 | Yardanico | Arrrr, well it does | 
| 16:17:20 | Yardanico | but probably it's better to have something separate for JS | 
| 16:23:14 | Arrrr | So it goes back to meaning 'C string' | 
| 16:23:32 | Yardanico | compatible string for everything except JS :D | 
| 16:23:38 | Yardanico | csfeejs | 
| 16:23:57 | Araq | well cstring will be available a bit longer. | 
| 16:24:30 | Araq | "compatible string" is a backronym | 
| 16:30:24 | * | BitPuffin|osx quit (Remote host closed the connection) | 
| 16:38:40 | * | BitPuffin|osx joined #nim | 
| 16:58:59 | * | itseris joined #nim | 
| 17:09:56 | * | BigEpsilon quit (Ping timeout: 246 seconds) | 
| 17:13:57 | * | Arrrr quit (Read error: Connection reset by peer) | 
| 17:18:32 | * | BigEpsilon joined #nim | 
| 17:28:09 | FromGitter | <k0pernicus> Yardanico > Aaaaah I am so excited when I see 1.0 ! :-( | 
| 17:28:50 | * | ShalokShalom quit (Remote host closed the connection) | 
| 17:32:37 | * | sz0 joined #nim | 
| 17:37:38 | * | Snircle quit (Ping timeout: 255 seconds) | 
| 17:38:24 | * | Snircle_ joined #nim | 
| 17:42:07 | * | Yardanico quit (Remote host closed the connection) | 
| 17:43:02 | * | BigEpsilon quit (Ping timeout: 255 seconds) | 
| 17:45:17 | * | Tiberium joined #nim | 
| 17:52:25 | * | Tiberium quit (Quit: Textual IRC Client: www.textualapp.com) | 
| 17:54:23 | * | Yardanico joined #nim | 
| 18:03:51 | * | notdekka[m] joined #nim | 
| 18:11:21 | * | Ven`` joined #nim | 
| 18:13:13 | shodan45 | 1.0?! Did somebody say 1.0?? ;) | 
| 18:26:32 | * | yglukhov quit (Remote host closed the connection) | 
| 18:30:25 | * | xet7 joined #nim | 
| 18:31:22 | * | yglukhov joined #nim | 
| 18:35:43 | * | yglukhov quit (Ping timeout: 248 seconds) | 
| 18:36:07 | dom96 | Araq: You can add 'jstring' but only to a 'jsffi' module | 
| 18:36:24 | Araq | ugh, why? I don't even use jsffi | 
| 18:36:44 | Araq | when defined(js): type jstring = cstring # 1 line in system.nim | 
| 18:37:03 | * | xet7 quit (Quit: Leaving) | 
| 18:41:26 | dom96 | Because soon people will be asking "but why is it cstring for the C++ backend?" | 
| 18:41:32 | dom96 | "Why is there no jsint?" | 
| 18:41:40 | dom96 | or jsfloat | 
| 18:42:10 | dom96 | if you're so worried about karax being sexy then why don't you add this alias to karax? | 
| 18:43:38 | Demos[m] | @dom96: nimble has lots of trouble building things that are in a subdirectory of src as binaries | 
| 18:43:52 | dom96 | Demos[m]: report it :) | 
| 18:43:58 | Demos[m] | will do | 
| 18:46:06 | * | ShalokShalom joined #nim | 
| 18:46:25 | Araq | dom96: that question makes little sense as cstring is char*  for both C++ and C. | 
| 18:46:41 | Araq | it's not mapped to C++'s STL string | 
| 18:46:57 | Demos[m] | should cstring be a low level js byte array? | 
| 18:47:03 | dom96 | It's not about that. | 
| 18:47:11 | Demos[m] | also reported | 
| 18:48:24 | dom96 | Araq: Presumably you want to use jsstring's everywhere to avoid the overhead of conversion, right? | 
| 18:48:41 | Araq | yup, speed matters :-( | 
| 18:48:52 | dom96 | Wouldn't it make sense to use the native JS strings for the JS backend? | 
| 18:49:00 | dom96 | for `string` | 
| 18:49:07 | Araq | the semantics are different | 
| 18:49:34 | Araq | we could make it compatible, throw away the trailing 0, change how the mutability works | 
| 18:50:04 | Araq | but that's for after 0.17.2 | 
| 18:51:01 | dom96 | okay, add it. | 
| 18:51:28 | dom96 | But I would like to eventually move all these FFI types into an `ffi` module. | 
| 18:52:06 | dom96 | or meh, maybe I can just make the doc gen better | 
| 18:52:33 | dom96 | it would be nice to get an idea if a module deals with the ffi by looking for `ffi` imports though | 
| 18:54:09 | Araq | shouldn't this at least be 'cffi' then? | 
| 18:57:35 | * | PMunch joined #nim | 
| 18:59:57 | * | mal`` quit (Quit: Leaving) | 
| 19:03:25 | euantor | Is this expected behaviour (see the `won't work` comment): https://play.nim-lang.org/?gist=1fa4f2420b76b04feadb7dd08adfedf0 | 
| 19:03:58 | Yardanico | hmm | 
| 19:04:06 | Yardanico | it seems that for some reason shl is getting a tuple | 
| 19:04:09 | Araq | yes, keyword operators are still operators | 
| 19:04:19 | Yardanico | ah, ok | 
| 19:04:24 | euantor | Feels like it should be able to infer the type of T https://www.irccloud.com/pastebin/Co4ur3Ys/ | 
| 19:04:25 | Araq | to turn an operator into a "proc name", put it into backticks | 
| 19:04:37 | euantor | Ok, fair enough. Just "feels" a bit odd | 
| 19:04:43 | * | mal`` joined #nim | 
| 19:05:06 | Yardanico | euantor, well no | 
| 19:05:24 | Yardanico | euantor, ((uint32, int)) means that compiler parses it as a tuple of uint32 and int | 
| 19:05:48 | euantor | Yeah, which is interesting | 
| 19:05:50 | Yardanico | or I'm mistaken :) | 
| 19:05:58 | Araq | yeah, shr and shl shouldn't be keywords, the only keyword operators should be 'and', 'or', 'xor' and 'not' | 
| 19:06:31 | Araq | but then you would eventually ask the same question for '+' or '&' | 
| 19:11:09 | * | couven92 joined #nim | 
| 19:14:43 | * | Ven joined #nim | 
| 19:14:55 | * | yglukhov joined #nim | 
| 19:15:06 | * | Ven is now known as Guest18365 | 
| 19:16:58 | * | TjYoco joined #nim | 
| 19:19:22 | TjYoco | Is this a good place to ask for help regaurding an error that I need to fix? | 
| 19:19:29 | * | yglukhov quit (Ping timeout: 248 seconds) | 
| 19:20:28 | * | Guest18365 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) | 
| 19:20:31 | Yardanico | TjYoco, well maybe | 
| 19:20:37 | Yardanico | TjYoco, you can ask here and on the forum | 
| 19:21:26 | TjYoco | I was following a tutorial in Nim in Action and its giving me this error: | 
| 19:21:51 | TjYoco | type mismatch: got (proc (request: Request, response: Response): Future[system.bool]{.locks: <unknown>.}, Settings) | 
| 19:22:00 | TjYoco | expected one of: proc serve(match: proc (request: Request; response: Response): Future[bool]; settings: Settings = newSettings()) | 
| 19:22:14 | Yardanico | TjYoco, can you post your code? | 
| 19:22:21 | Yardanico | TjYoco, on pastebin or gist | 
| 19:23:23 | TjYoco | Its straight from the book, heres a paste though https://pastebin.com/W9EXFxjT | 
| 19:24:15 | TjYoco | Even the code on the nim-in-action github gives me an error now.  The squiggly is on the 'routes:' keyword.  I understand what the error means I'm just not fluent enough in nim to know how to fix it. | 
| 19:24:37 | Yardanico | TjYoco, what's your nim version? | 
| 19:25:05 | TjYoco | 0.17.1 | 
| 19:25:26 | Yardanico | ah yes, I see the error too | 
| 19:25:34 | TjYoco | and I just grabbed Jester from nimble yesterday | 
| 19:25:35 | Yardanico | dom96, ping | 
| 19:25:59 | Yardanico | Full error -https://gist.github.com/Yardanico/8e8305c348b84921a546f6933da90638 | 
| 19:26:55 | Yardanico | oh | 
| 19:27:16 | Yardanico | dom96, it seems to be an error because coroutine is not gcsafe | 
| 19:27:36 | Yardanico | I've changed line 792 in jester.nim - added gcsafe pragma to the proc - it compiles now | 
| 19:27:46 | Yardanico | TjYoco, as a workaround you can patch your local jester | 
| 19:27:52 | * | Vladar quit (Quit: Leaving) | 
| 19:28:19 | TjYoco | Yardanico, I'll give it try, thank you | 
| 19:28:24 | Yardanico | TjYoco, yourHomeDir/.nimble/pkgs/jester-(some version)/ | 
| 19:28:33 | Yardanico | and edit line 792 in jester.nim here | 
| 19:28:41 | Yardanico | change  {.async.}  to {.async, gcsafe.} | 
| 19:30:02 | TjYoco | line 729 for me shows the middle of a switch case, not a proc | 
| 19:30:20 | Yardanico | TjYoco, ah sorry | 
| 19:30:29 | Yardanico | oh, you're looking at the wrong line number | 
| 19:30:33 | Yardanico | 792, not 729 :) | 
| 19:30:40 | TjYoco | oh whoops, haha, I see it | 
| 19:30:56 | Yardanico | change {.async.} to {.async, gcsafe.} here | 
| 19:32:01 | TjYoco | great, that works! Thank you | 
| 19:33:11 | dom96 | oh, that's bad | 
| 19:33:28 | dom96 | Yardanico: Mind creating a PR for jester? | 
| 19:33:38 | Yardanico | dom96, I don't know if this fix is correct | 
| 19:33:47 | Yardanico | but yeah, I'll do a PR | 
| 19:34:21 | * | sz0 quit (Quit: Connection closed for inactivity) | 
| 19:35:10 | Yardanico | https://github.com/dom96/jester/pull/118 | 
| 19:36:33 | Araq | dom96: is that yuri's regression? :-( | 
| 19:37:00 | Araq | he convinced me his change is only for the better, allowing more GC unsafe code within .async | 
| 19:37:13 | dom96 | seems like it  | 
| 19:37:50 | dom96 | We should add this code to Nim's test suite: https://github.com/dom96/nim-in-action-code | 
| 19:38:12 | dom96 | If you want to reproduce this problem then compile https://github.com/dom96/nim-in-action-code/tree/master/Chapter7/Tweeter | 
| 19:38:16 | Araq | go ahead already please | 
| 19:38:25 | dom96 | (tweeter.nim inside src) | 
| 19:38:30 | Araq | also add the stuff the HPC guy reported on the forum | 
| 19:39:03 | * | tdc quit (Ping timeout: 252 seconds) | 
| 19:40:21 | dom96 | yeah, might not be able to do that today :) | 
| 19:41:02 | dom96 | TjYoco: alternatively you can turn off thread analysis via: --threadAnalysis:off during compilation to make this error go away for now :) | 
| 19:41:44 | TjYoco | Is that the recommended alternative? And revert jester back to normal? | 
| 19:41:50 | * | PMunch quit (Quit: leaving) | 
| 19:42:03 | Araq | --threadAnalysis:off is not to stay | 
| 19:42:18 | dom96 | TjYoco: No, just thought it might be easier for you :) | 
| 19:42:50 | Yardanico | Araq, it will be removed when thread analyzer will be improved? | 
| 19:43:08 | Yardanico | well I know thread analyzer is already good now | 
| 19:43:13 | dom96 | Araq: I think it should stay to allow this override in case things are too confusing. | 
| 19:43:31 | Yardanico | just maybe add one-threaded async applications as an exception? | 
| 19:44:35 | Araq | dom96: as a much better workaround, we now have a   {.gcsafe.}: code_block_here  construct | 
| 19:45:03 | Araq | that disables it on a much finer granularity | 
| 19:45:20 | dom96 | why kill this switch? | 
| 19:45:43 | Araq | because it was only intended for porting old code | 
| 19:45:59 | Araq | it was never meant as a general "ok, I don't care" device | 
| 19:50:38 | dom96 | Okay, I will be happy for you to kill it as long as the error messages improve. | 
| 19:50:41 | * | yglukhov joined #nim | 
| 19:53:50 | * | TjYoco quit (Quit: Page closed) | 
| 19:56:35 | * | couven92 quit (Ping timeout: 240 seconds) | 
| 19:57:33 | Araq | unrealistic, the error messages are as good as they can get with an effect tracking system | 
| 19:57:44 | * | endragor joined #nim | 
| 20:00:53 | Araq | hey guys, can somebody tweak the CSS for https://nim-lang.org/araq/perlish.html to make it mobile friendly? | 
| 20:01:36 | Araq | there is an upcoming article about Nim/Karax in my blog | 
| 20:02:07 | * | endragor quit (Ping timeout: 248 seconds) | 
| 20:05:26 | Araq | cool a DSL for constructing svgs, check it out https://github.com/bluenote10/NimSvg/blob/master/examples/animation1.nim | 
| 20:05:51 | Yardanico | Araq, well I don't know CSS, but this page looks good in chrome with "reader" mode, which sadly isn't enabled for all websites  in chrome (I've forcefully enabled it in chrome://flags) | 
| 20:07:06 | Yardanico | without reader view: https://pp.userapi.com/c638218/v638218404/5c002/-9iqTzNEBhQ.jpg | 
| 20:07:19 | Yardanico | with it: https://pp.userapi.com/c638218/v638218404/5c00c/ZK5IiIGSfPI.jpg | 
| 20:07:51 | Demos[m] | how can I initialize the GC for a thread | 
| 20:08:05 | Demos[m] | the thread is spawned by code I don't control | 
| 20:11:22 | Yardanico | Araq, ah, it's called "make page web-friendly" in english version of chrome :) | 
| 20:12:53 | * | Yardanico quit (Remote host closed the connection) | 
| 20:13:53 | Araq | Demos[m]: setupForeignThreadGc | 
| 20:18:29 | Demos[m] | thank you | 
| 20:20:31 | * | vlad1777d joined #nim | 
| 20:29:50 | * | xet7 joined #nim | 
| 20:33:29 | * | mahmudov joined #nim | 
| 20:36:59 | Demos[m] | just what the doctor ordered | 
| 20:39:33 | * | ipjk joined #nim | 
| 20:42:22 | * | nsfw_ joined #nim | 
| 20:42:53 | nsfw_ | got any experience analyzing nim's output (C or JS) ? | 
| 20:43:28 | * | Araq raises his hand... | 
| 20:47:09 | FromGitter | <Yardanico> Also it seems there's already a solid base for web scraper framework. | 
| 20:47:21 | FromGitter | <Yardanico> We have https://github.com/GULPF/nimquery/ for example :) | 
| 20:49:17 | * | Trustable quit (Remote host closed the connection) | 
| 20:54:49 | FromGitter | <Yardanico> https://github.com/showcases/programming-languages we need some more stars to be in front of the  compiler! | 
| 20:54:51 | FromGitter | <Yardanico> elm | 
| 20:54:57 | FromGitter | <Yardanico> *elm compiler | 
| 20:55:52 | Araq | I'm working on it :P | 
| 20:56:04 | Araq | funny that you mention it, my blog post mentions Elm. | 
| 20:56:18 | FromGitter | <Yardanico> It seems that elm doesn't have active development now | 
| 20:57:03 | FromGitter | <Yardanico> Last code change was in December | 
| 20:58:44 | FromGitter | <Yardanico> Araq: ah, you'll earn github stars by creating an article about karax ? | 
| 21:01:15 | FromGitter | <Yardanico> Well I know what github stars are actually almost nothing | 
| 21:01:41 | FromGitter | <Yardanico> There's a lot of things (even programming languages) which are "over-hyped" | 
| 21:04:49 | Araq | no, haven't you heard? you can now turn github stars into bitcoins! | 
| 21:05:25 | FromGitter | <Yardanico> Also there's a lot of obsolete examples on Rosetta code (for example - many nim snippets have typeless procedure arguments). Why they were removed? | 
| 21:05:31 | FromGitter | <Yardanico> Araq, :D | 
| 21:05:47 | * | arnetheduck joined #nim | 
| 21:08:00 | * | itseris quit (Quit: Konversation terminated!) | 
| 21:08:48 | Araq | er, before the rumor spreads to HN and reddit, that was a joke. github stars do not turn into bitcoins. | 
| 21:10:43 | FromGitter | <Yardanico> Well I don't | 
| 21:14:13 | FromGitter | <Yardanico> use HN :) | 
| 21:21:49 | * | pilne joined #nim | 
| 21:23:23 | FromGitter | <Yardanico> Wow, I found a website which allows to execute Nim code (and a lot of other languages) | 
| 21:23:25 | FromGitter | <Yardanico> https://tio.run/##y8vM/f8/NTkjX8EvMzcstag4Mz/v/38A | 
| 21:24:17 | FromGitter | <Yardanico> It even allows to add compiler flags | 
| 21:26:55 | dom96 | ehh... https://play.nim-lang.org? | 
| 21:28:05 | FromGitter | <Yardanico> Playground doesn't have compiler flags :) | 
| 21:28:30 | * | rauss quit (Quit: WeeChat 1.9) | 
| 21:28:47 | FromGitter | <Yardanico> But I use playground all the time, just wanted to share this service | 
| 21:29:05 | * | relax quit (Ping timeout: 240 seconds) | 
| 21:29:25 | dom96 | all other services can die, Nim playground is the best :P | 
| 21:32:05 | * | couven92 joined #nim | 
| 21:36:33 | * | Sentreen quit (Ping timeout: 248 seconds) | 
| 21:41:09 | * | Ven`` quit (Ping timeout: 252 seconds) | 
| 21:42:39 | * | nsf quit (Quit: WeeChat 1.9) | 
| 21:44:43 | * | miran quit (Ping timeout: 246 seconds) | 
| 21:50:21 | * | Sentreen joined #nim | 
| 21:50:55 | FromGitter | <zacharycarter> so carfax might have its first prod nim code soon | 
| 21:51:07 | FromGitter | <zacharycarter> I wrote a lambda job today that returns lat long from zip | 
| 21:52:09 | FromGitter | <zacharycarter> going to try to convince folks to let me put it in prod - the code that does the actual zip list filtering is written in Nim | 
| 21:54:30 | Araq | zacharycarter: I want you to play with Karax "nextgen" | 
| 22:16:31 | * | FromGitter quit (Remote host closed the connection) | 
| 22:16:31 | * | oprypin quit (Quit: Bye) | 
| 22:16:46 | * | FromGitter joined #nim | 
| 22:16:53 | * | oprypin joined #nim | 
| 22:24:41 | * | relax joined #nim | 
| 22:37:04 | * | Noctis joined #nim | 
| 22:51:10 | * | Noctis quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) | 
| 22:57:13 | * | relax quit (Ping timeout: 240 seconds) | 
| 23:07:03 | FromGitter | <zacharycarter> Araq: will do | 
| 23:07:19 | Araq | still writing docs for it though | 
| 23:07:51 | FromGitter | <zacharycarter> gotcha - I'm just browsing commits for now | 
| 23:12:33 | * | yglukhov quit (Remote host closed the connection) | 
| 23:15:21 | FromGitter | <zacharycarter> @Yardanico compiler flags could be a thing for nim playground | 
| 23:15:25 | FromGitter | <zacharycarter> as could be different compiler targets I'm sure | 
| 23:20:50 | * | rauss joined #nim | 
| 23:28:59 | * | relax joined #nim | 
| 23:30:51 | FromGitter | <FridgeSeal> I'm finishing converting a lambda function from Python into Nim today: only a simple function but I'm excited for the performance benefits!  | 
| 23:36:01 | * | Pisuke quit (Ping timeout: 246 seconds) | 
| 23:36:11 | * | qwertfisch quit (Quit: ZNC - http://znc.in) | 
| 23:39:31 | * | BitPuffin|osx quit (Ping timeout: 255 seconds) | 
| 23:51:15 | FromGitter | <zacharycarter> @FridgeSeal nice - are you just using a binary or are you actually using dlopen | 
| 23:53:46 | FromGitter | <FridgeSeal> Was going to try using the FFI via this library: https://github.com/jboy/nim-pymod | 
| 23:54:04 | FromGitter | <zacharycarter> would probably be easier to just compile to a dll | 
| 23:54:06 | FromGitter | <zacharycarter> and then dl open | 
| 23:54:12 | FromGitter | <zacharycarter> and call your function | 
| 23:54:23 | FromGitter | <zacharycarter> like how golang does it | 
| 23:54:34 | FromGitter | <zacharycarter> https://github.com/eawsy/aws-lambda-go-shim | 
| 23:54:40 | FromGitter | <FridgeSeal> Yeah? I'm still pretty new to Nim (and compiled languages) so I'll go with whatever's the recommended approach :) | 
| 23:54:50 | FromGitter | <zacharycarter> well the naive simplest approach is to do what I did | 
| 23:54:51 | FromGitter | <FridgeSeal> I'll check that out, thanks for the advice! | 
| 23:55:06 | FromGitter | <zacharycarter> which is use docker and compile your program to a binary using the aws linux image | 
| 23:55:23 | FromGitter | <zacharycarter> then use python to execute your binary | 
| 23:56:10 | * | loc8_ joined #nim | 
| 23:56:12 | FromGitter | <zacharycarter> I'd say the next simplest is to replicate what's being done in that aws-lambda-go-shim project, half of which I just described | 
| 23:56:16 | FromGitter | <FridgeSeal> Would that be via Python's FFI? Or calling the binary via a shell command? | 
| 23:56:24 | FromGitter | <zacharycarter> calling the binary via a shell command | 
| 23:57:16 | FromGitter | <zacharycarter> the next best thing IMO is you compile your program to a dll with Nim | 
| 23:57:21 | * | Snircle joined #nim | 
| 23:57:44 | FromGitter | <zacharycarter> or a shared library I guess | 
| 23:57:47 | FromGitter | <zacharycarter> and then dlopen | 
| 23:58:18 | FromGitter | <zacharycarter> this is obviously a lot nicer than calling a binary | 
| 23:58:21 | FromGitter | <zacharycarter> but also more complex | 
| 23:58:23 | * | subsetpark quit (Read error: Connection reset by peer) | 
| 23:58:50 | * | loc8 quit (Ping timeout: 240 seconds) | 
| 23:58:51 | * | subsetpark joined #nim | 
| 23:59:07 | FromGitter | <zacharycarter> I built a small microservice using option A today | 
| 23:59:22 | FromGitter | <FridgeSeal> I'll give them both a go, sounds like  a good learning experience. | 
| 23:59:27 | FromGitter | <zacharycarter>  | 
| 23:59:45 | Araq | wait what?! oh well | 
| 23:59:57 | FromGitter | <zacharycarter> ? |