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> ? |