00:01:44 | def-pri-pub | zacharycarter: heyas |
00:05:11 | * | gangstacat joined #nim |
00:12:10 | watzon | Anyone know of a good nokogiri like package for nim? |
00:13:02 | watzon | I know several exist, but does anyone have experience with them and know of a good one to use? |
00:14:25 | * | dhalinar quit (Ping timeout: 248 seconds) |
00:14:36 | FromGitter | <zacharycarter> hi def-pri-pub |
00:16:50 | * | Nobabs27 quit (Quit: Leaving) |
00:18:57 | * | libman quit (Quit: Connection closed for inactivity) |
00:18:58 | * | Demos quit (Read error: Connection reset by peer) |
00:19:22 | * | Demos joined #nim |
00:21:06 | * | dhalinar joined #nim |
00:21:31 | * | Demos_ joined #nim |
00:21:33 | * | Demos quit (Read error: Connection reset by peer) |
00:21:45 | * | Demos_ is now known as Demos |
00:28:05 | dhalinar | !eval let str = """!eval echo eval! "%s".format(%s); """; echo str.format(str); |
00:28:07 | NimBot | Compile failed: in.nim(1, 61) Error: attempting to call undeclared routine: 'format' |
00:34:28 | dhalinar | !eval import strutils; let str = """import strutils; !eval echo eval! "%s".format(%s); """; echo str.format(str); |
00:34:30 | NimBot | import strutils; !eval echo eval! "%s".format(%s); |
00:35:17 | dhalinar | !eval import strutils; let str = """!eval import strutils; echo !eval "%s".format(%s); """; echo str.format(str); |
00:35:19 | NimBot | !eval import strutils; echo !eval "%s".format(%s); |
00:35:41 | dhalinar | sigh |
00:36:43 | * | dhalinar quit (Quit: Konversation terminated!) |
00:36:53 | * | dhalinar joined #nim |
00:37:54 | * | Demos left #nim (#nim) |
00:39:39 | * | edubart joined #nim |
00:39:43 | edubart | echo "!eval echo 1" |
00:39:51 | edubart | !eval echo "!eval echo 1" |
00:39:53 | NimBot | !eval echo 1 |
00:42:17 | * | Demos joined #nim |
00:42:41 | * | Demos left #nim (#nim) |
00:44:07 | * | edubart quit (Client Quit) |
00:45:20 | * | Demos joined #nim |
00:48:30 | * | gangstacat quit (Quit: Ĝis!) |
00:52:43 | * | def-pri-pub quit (Quit: Leaving.) |
00:57:44 | * | libman joined #nim |
01:00:29 | * | Demos left #nim (#nim) |
01:10:07 | dhalinar | !eval |
01:10:08 | dhalinar | import strutils |
01:10:09 | NimBot | <no output> |
01:10:10 | dhalinar | let str = """!eval |
01:10:11 | dhalinar | import strutils; |
01:10:13 | dhalinar | let str = %s; |
01:10:14 | dhalinar | echo str.format(%s); |
01:10:16 | dhalinar | """; |
01:10:17 | dhalinar | echo str.format(str); |
01:20:32 | * | vivus quit (Quit: Leaving) |
01:36:43 | * | Demos joined #nim |
01:41:19 | * | dhalinar quit (Ping timeout: 248 seconds) |
01:44:36 | * | gangstacat joined #nim |
01:49:34 | * | chemist69 quit (Ping timeout: 255 seconds) |
01:57:45 | * | yglukhov joined #nim |
02:03:31 | * | yglukhov quit (Ping timeout: 255 seconds) |
02:03:36 | * | chemist69 joined #nim |
02:20:04 | * | lberio joined #nim |
02:20:12 | * | lberio left #nim (#nim) |
02:20:54 | * | couven92 quit (Quit: Client Disconnecting) |
02:35:35 | * | def-pri-pub joined #nim |
02:44:58 | * | endragor joined #nim |
03:24:45 | * | dddddd quit (Remote host closed the connection) |
03:59:30 | * | rauss quit (Quit: WeeChat 1.9.1) |
04:00:26 | * | rauss joined #nim |
04:00:58 | * | yglukhov joined #nim |
04:06:27 | * | yglukhov quit (Ping timeout: 260 seconds) |
04:25:44 | * | skrylar joined #nim |
04:25:51 | skrylar | did another chunk of the nfltk stuff. |
04:26:37 | skrylar | would have done one of the layout managers that any of the nim uis could have used, but could never get help understanding how th epermutation matrices worked *shrug* |
04:31:39 | * | def-pri-pub quit (Quit: Leaving.) |
04:33:49 | * | Yardanico joined #nim |
05:12:20 | * | citycide joined #nim |
05:15:08 | * | Demos quit (Ping timeout: 255 seconds) |
05:16:03 | * | citycide quit (Client Quit) |
05:16:06 | * | Yardanico quit (Remote host closed the connection) |
05:16:28 | * | citycide joined #nim |
05:16:47 | * | miran joined #nim |
05:24:47 | * | citycide quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
06:04:00 | * | yglukhov joined #nim |
06:05:53 | * | miran quit (Ping timeout: 248 seconds) |
06:06:28 | * | alexday joined #nim |
06:06:38 | alexday | hello. |
06:08:19 | * | yglukhov quit (Ping timeout: 255 seconds) |
06:11:35 | * | libman quit (Quit: Connection closed for inactivity) |
06:17:09 | alexday | https://github.com/nim-lang/csources/blob/master/c_code/1_2/compiler_main.c#L47 why are the variables named like this? is this generated code? if so could some point to the actual compiler code? like where syntax parsing and all that happens |
06:19:59 | skrylar | alexday, those are basically gensyms that prevent name collisions afaik |
06:20:21 | skrylar | ex. nim has overloading, C doesn't, so the names have to be mangled |
06:20:46 | skrylar | if you were to look at a symbol dump of D or C++, they do the same (though D's name mangling was quite clean, and C++s is usually a lot of barf) |
06:28:25 | * | Arrrr joined #nim |
06:28:25 | * | Arrrr quit (Changing host) |
06:28:25 | * | Arrrr joined #nim |
06:34:22 | * | nsf joined #nim |
06:38:09 | alexday | I see, where can I find the parser for nim? it would be of help if you could please tell me how the whole thing works. I mean to parse the .nim files in the compiler/ director you need some parser right? |
06:39:06 | FromGitter | <Varriount> I believe the parsing code is mainly in compiler/parser.nim |
06:39:31 | FromGitter | <Varriount> However symbol generation like that will be handled in one of the backend modules |
06:39:56 | alexday | :( but who parses parser.nim . who generates the symbol table (who meaning which code) |
06:40:12 | FromGitter | <Varriount> What do you mean? |
06:41:17 | FromGitter | <Varriount> The C/C++ symbols are generated from a combination of the original symbol in Nim code, and a hash. |
06:42:25 | alexday | Ok, so say the import statement in parser.nim . That has to be parsed to import the modules right? or like say any addition operation. like they do in a recursive descent parser, get each token and decide what to do with it. |
06:43:15 | FromGitter | <Varriount> Sure. The parsing code is recursive in nature. |
06:43:21 | Araq | compiler/parser.nim is a recursive descent parser |
06:44:03 | Araq | name mangling is done as nimname_hash the hash is computed in compiler/sighashes.nim |
06:44:21 | Araq | the concatenation is done in compiler/ccgtypes.nim |
06:45:46 | alexday | I am having difficulty in explaning . So I am writing a language. As per my knowledge(which isn't much) I would choose a language(like say C or Python) and then the parser will be wriiten in the language. I mesan how does on write the language in the laguage they want to build :D . like in go-lang's code base I saw a .y file. for rust they say they wrrote the initial version in ocaml. |
06:46:06 | * | PMunch joined #nim |
06:46:43 | Araq | for Nim I wrote the initial version in Delphi |
06:47:10 | Araq | and then I wrote a tool pas2nim that can translate the used subset of Delphi to Nim |
06:47:28 | Araq | and then I ran pas2nim over the .pas files to produce .nim files |
06:47:42 | Araq | and then I used the Delphi compiled compiler to compile the .nim files |
06:47:51 | * | Kingsquee joined #nim |
06:47:58 | Araq | and then I used the Nim compiled compiler to compile the Nim compiler code |
06:48:07 | alexday | I see. |
06:48:57 | Araq | the Pascal version had some "nice" things like |
06:49:27 | Araq | {@ignore} pascalVersionHere(); {@emit nimVersionHere} |
06:49:52 | Araq | that pas2nim would understand and Delphi ignore since it's a comment |
06:50:33 | alexday | cool. |
06:51:04 | skrylar | all open bugs on rfc3339 are now fixed |
06:52:58 | FromGitter | <Varriount> skrlar: rfc3339? |
06:53:26 | skrylar | varriount: a datetime module i did a month ago on nimble |
06:53:32 | skrylar | it was needed for toml stuff |
06:59:52 | * | xet7 quit (Quit: Leaving) |
07:07:04 | alexday | Araq the pas2nim is written in pascal/delphi too? |
07:07:29 | Araq | it used to but I used pas2nim to translate it to Nim |
07:07:40 | alexday | okay |
07:08:02 | * | claudiuinberlin joined #nim |
07:08:36 | * | awal joined #nim |
07:09:34 | awal | Rumor has it we are discussing how nim was bootstrapped here |
07:10:42 | Araq | true |
07:11:26 | awal | Araq: I need to confirm the truth about Delphi :P How long ago are we talking about? |
07:11:47 | Araq | over 10 years ago |
07:12:15 | awal | Was Delphi a popular choice for compilers back then? |
07:12:25 | awal | 10 years ago, I was probably 10 year old |
07:12:52 | Araq | nah, it wasn't exactly popular for compilers |
07:13:08 | Araq | I had my reasons for choosing it though. |
07:13:56 | awal | I'd be delighted to hear :) |
07:14:29 | FromGitter | <citycide> Araq: "Nim compiled compiler to compile the Nim compiler code" --> brain melted |
07:14:39 | alexday | nim + concurrency == go-lang takedown |
07:16:33 | Araq | awal: Delphi had the best debugger and compile-times and its syntax was close enough to the imagined Nim to make pas2nim feasible |
07:16:57 | Araq | the fact that array bounds are checked at runtime was also a nice bonus over C++ |
07:17:02 | awal | Makes sense |
07:17:48 | Araq | it also was the language I was most familiar with and I had this code lying around for lexers and parsers ... |
07:18:38 | Araq | oh and you could write obj.field instead of obj->field :P |
07:18:57 | Araq | that arrows man, boy do they suck |
07:19:04 | alexday | :D |
07:19:13 | awal | True |
07:20:22 | FromGitter | <BigEpsilon> Delphi 5 & 7 |
07:20:35 | FromGitter | <BigEpsilon> good old time |
07:20:41 | Araq | ha, yep, used Delphi 5 |
07:20:55 | Araq | 6 was buggy and miscompiled my code :P |
07:22:29 | Araq | oh another fun fact: I never deallocated memory to get memory safety out of Delphi :-) |
07:22:59 | Araq | the compiler would just leak until its completion, the Nim version had the GC |
07:23:28 | Araq | also tried Boehm's GC with Delphi but it crashed |
07:23:33 | FromGitter | <BigEpsilon> I think DMD woks this way also |
07:23:41 | Araq | true |
07:24:20 | Araq | I also found a couple of bugs in FPC iirc |
07:24:31 | Araq | when feeding it with my source code |
07:25:47 | * | endragor quit (Remote host closed the connection) |
07:26:40 | Araq | early versions of pas2nim were written in Lua... |
07:27:37 | Araq | it was a simple "here is a list of replacements to perform" script. totally unusable |
07:28:30 | Araq | string.replace is an awful foundation for a source to source translator |
07:36:01 | * | yglukhov joined #nim |
07:39:57 | * | yglukhov quit (Ping timeout: 240 seconds) |
07:40:30 | Arrrr | So, why do global imports import modules from botton to top? Is this the normal behavior? |
07:40:35 | * | yglukhov joined #nim |
07:41:11 | Araq | no idea whar you mean |
07:42:07 | Arrrr | In my nim.cfg, import in line 10 is resolved before import in line 5 |
07:42:14 | Arrrr | i would expect the opposite |
07:43:22 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
07:44:06 | Araq | that is unexpected yeah, but why would it cause problems? |
07:44:58 | Arrrr | It caused a problem in my assumptions until i figured it out. |
07:48:57 | * | claudiuinberlin joined #nim |
08:04:17 | * | PMunch_ joined #nim |
08:06:31 | * | PMunch quit (Disconnected by services) |
08:06:40 | * | PMunch_ is now known as PMunch |
08:10:24 | * | yglukhov_ joined #nim |
08:11:32 | * | endragor joined #nim |
08:12:28 | * | yglukhov quit (Ping timeout: 240 seconds) |
08:15:21 | planetis[m] | hey shouldn't 'getFileSize' in system return an int? Instread it returns a int64. |
08:15:49 | Araq | files can be bigger than the supported address space so int64 is correct |
08:16:07 | * | endragor quit (Ping timeout: 255 seconds) |
08:16:14 | planetis[m] | oh ok thanks |
08:20:32 | * | endragor joined #nim |
08:20:56 | FromGitter | <BigEpsilon> @Araq , I have two PRs ready for c2nim: https://github.com/nim-lang/c2nim/pulls ⏎ They should close 4 bugs and add support for nested types and better support for generic classes |
08:21:27 | FromGitter | <BigEpsilon> however some non related tests are failing |
08:21:40 | * | Vladar joined #nim |
08:21:42 | FromGitter | <BigEpsilon> And they do not fail on my machine |
08:21:53 | FromGitter | <BigEpsilon> it seems like a bug in the renderer |
08:26:53 | Araq | the renderer changed :-) |
08:27:08 | Araq | I need to check how the tester builds c2nim |
08:29:25 | FromGitter | <BigEpsilon> yes this is the kind of errors: ⏎ -when not defined(expatDll): ⏎ +when notdefined(expatDll): ⏎ ⏎ 1) if not 0: break ... [https://gitter.im/nim-lang/Nim?at=59dc84e5bac826f0545702b1] |
08:30:17 | Araq | ah! thanks! |
08:30:26 | FromGitter | <BigEpsilon> I'll return to correcting the reorder pragma in the next days |
08:30:27 | Araq | that's indeed a regression in the renderer |
08:30:46 | Araq | yay |
08:31:00 | FromGitter | <BigEpsilon> :) |
08:31:41 | Arrrr | yay |
08:35:18 | * | skrylar quit (Remote host closed the connection) |
08:37:45 | PMunch | Hmm, got an error from the C compiler when I tried to use a static variable in a regular proc. Shouldn't this be picked up by the Nim compiler? |
08:37:59 | PMunch | Marking it as {.compileTime.} made it work as expected |
08:56:11 | PMunch | Okay, more strangeness. Got a static object which contains a table[string, seq[string]]. In a macro I iterate the seq from table["hello"] and call another macro that expects a static[string], but it fails saying that it got string but expected static[string] |
08:59:10 | * | Yardanico joined #nim |
09:00:17 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:00:43 | * | claudiuinberlin joined #nim |
09:01:06 | * | claudiuinberlin quit (Client Quit) |
09:01:38 | * | Yardanico quit (Remote host closed the connection) |
09:02:15 | * | claudiuinberlin joined #nim |
09:03:17 | * | PMunch_ joined #nim |
09:06:17 | * | PMunch quit (Ping timeout: 260 seconds) |
09:08:42 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:12:49 | * | Arrrr quit (Ping timeout: 255 seconds) |
09:13:54 | * | claudiuinberlin joined #nim |
09:13:59 | * | couven92 joined #nim |
09:18:45 | * | Arrrr joined #nim |
09:25:08 | * | yglukhov_ quit (Remote host closed the connection) |
09:42:42 | * | PMunch_ is now known as PMunch |
09:43:11 | PMunch | Man, this switching between networks is killing me.. |
09:44:37 | Araq | PMunch: static[T] has its problems |
09:45:29 | PMunch | Yeah it's a bit strange sometimes |
09:47:40 | * | yglukhov joined #nim |
09:49:45 | PMunch | http://ix.io/B3X/ |
09:49:54 | PMunch | That's the issue I was talking about by the way |
09:50:29 | PMunch | The call to getByName one line 12 says that it expected a static[string] but got a string |
09:52:25 | PMunch | Isn't karax on Nimble? |
09:52:49 | Araq | I'm sure it is? |
09:53:20 | PMunch | https://nimble.directory/search?query=karax |
09:53:24 | PMunch | Doesn't look like it |
09:54:16 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
09:55:07 | * | yglukhov quit (Ping timeout: 255 seconds) |
09:55:37 | PMunch | It's quite strange since it has a .nimble file |
09:56:07 | PMunch | So the recommended way to install seems to be be pull the repo and run nimble install, which is pretty much what nimble does.. |
10:02:54 | FromGitter | <krux02> but nimble has problems publishing |
10:03:01 | FromGitter | <krux02> don't ask me why |
10:04:14 | PMunch | What do you mean problems publishing? |
10:04:40 | FromGitter | <mratsim> nimble publish is quite picky |
10:05:23 | * | yglukhov joined #nim |
10:05:39 | PMunch | Oh right, I've just always manually pulled the packgages repo and published that way :P |
10:05:57 | Araq | github is constantly changing its API, I think |
10:06:53 | Araq | what's the point in publishing anyway, just make nimble assume it's on github |
10:07:19 | Araq | and araq/karax is required for package disambiguation anyway in the longer run |
10:07:40 | euantor | go down the Go route and `import github.com/nim-lang/irc` (or not, please) |
10:08:03 | euantor | But I do like `araq/karax` type schemes. Composer (PHP's package manager) works that way and is a nice idea |
10:08:18 | FromGitter | <krux02> well I do like the Go route |
10:08:22 | PMunch | Wait, araq/karax? Isn't it pragmagic/karax? |
10:08:29 | Araq | oh yeah my bad lol |
10:08:42 | FromGitter | <krux02> it's not perfect, but publishing is super easy |
10:09:01 | FromGitter | <krux02> keeping compatible versions is not |
10:09:44 | Araq | krux02: still nimble could say "not in packages.json, trying github..." |
10:11:05 | Araq | I will simply never like Nimble's idea of pretending git and github don't exist... |
10:11:18 | * | PMunch_ joined #nim |
10:11:27 | * | PMunch quit (Disconnected by services) |
10:11:33 | * | PMunch_ is now known as PMunch |
10:11:37 | Araq | sure clone the code to .nimble and throw away all the .git meta information |
10:11:46 | FromGitter | <krux02> I like it in go, that when I get a package it is a true git clone |
10:12:01 | Araq | replacing it with foo-1.0, foo-2.0 |
10:12:17 | FromGitter | <krux02> therefore I can simply make a change in the library when I think it is a good idea |
10:12:57 | Araq | ^ that is what made me write "nawabs" |
10:13:10 | FromGitter | <krux02> what is nawabs? |
10:13:33 | Araq | a toy project of mine to manage a directory full of git repos |
10:13:40 | FromGitter | <krux02> not another web abstraction binary source? |
10:13:54 | Araq | what? no, I don't think so. |
10:14:16 | FromGitter | <krux02> :P I was just trying to make sense of those letters |
10:14:49 | FromGitter | <gokr> I am having a hard time coming up with a reasonable way of sharing "config stuff" between threads. |
10:15:50 | FromGitter | <gokr> So... I can send a message to the thread, with config stuff. And then... hold that in a threadvar or something. How do people do this generally? |
10:16:28 | FromGitter | <gokr> sharedtables sounded so nice, but... I am not sure how to use it for strings for example. |
10:17:40 | Araq | gokr: send it via a message to ta threadvar is exactly the way to go |
10:17:56 | Araq | krux02: "nobody agrees with this approach of building software" |
10:18:13 | FromGitter | <gokr> mmm, ok. It just feels a bit... convoluted. |
10:18:31 | Araq | well you can also pass the config around to every proc that requires it |
10:18:51 | Araq | the old "globals are bad but the other solutions suck more" problem |
10:22:03 | PMunch | Globals aren't that bad if they're static |
10:22:23 | Araq | globals make everything non-reentrant |
10:22:37 | PMunch | For a config loaded before the threads spin up I don't see the problem |
10:24:08 | Araq | try to turn a 100_000 loc codebase into a library and you'll see the problem |
10:24:26 | Araq | happened to me with the Nim compiler... |
10:24:43 | Araq | slowly removing all globals in there |
10:26:51 | Araq | krux02: btw I finally figured out destructors, moves and copies (I think) |
10:27:28 | FromGitter | <krux02> cool |
10:27:35 | FromGitter | <andreaferretti> @Araq still would be nice to have karax on Nimble |
10:27:59 | * | PMunch quit (Remote host closed the connection) |
10:28:17 | * | PMunch joined #nim |
10:29:50 | PMunch | Ah, I can see that being an issue Ara |
10:29:54 | PMunch | Araq* |
10:30:22 | PMunch | Sorry for dropping in and out by the way. I'm switching between cable and WiFi and where I'm now the WiFi is extremely spotty |
10:31:49 | FromGitter | <krux02> reliable secure internet, we are far from it |
10:38:57 | * | PMunch quit (Ping timeout: 248 seconds) |
10:43:47 | * | sleepyqt joined #nim |
10:51:52 | * | yglukhov_ joined #nim |
10:51:52 | * | yglukhov quit (Read error: Connection reset by peer) |
10:53:40 | Araq | Tip: 1 messages have been suppressed, use --verbose to show them. |
10:53:40 | Araq | Error: Execution failed with exit code 1 |
10:53:40 | Araq | ... Command: git pull https://github.com/nim-lang/packages.git master |
10:53:41 | Araq | ... Output: From https://github.com/nim-lang/packages |
10:53:43 | Araq | ... * branch master -> FETCH_HEAD |
10:53:46 | Araq | ... Auto-merging packages.json |
10:53:47 | Araq | ... CONFLICT (content): Merge conflict in packages.json |
10:53:50 | Araq | ... Automatic merge failed; fix conflicts and then commit the result. |
11:01:10 | * | Kingsquee quit (Quit: https://i.imgur.com/qicT3GK.gif) |
11:02:40 | * | Snircle joined #nim |
11:11:31 | * | couven92 quit (Quit: Client disconnecting) |
11:17:21 | FromGitter | <Yardanico> yay! https://github.com/nim-lang/Nim/pull/5910 |
11:17:32 | FromGitter | <Yardanico> time to update nim again it seems :P |
11:19:03 | FromGitter | <Yardanico> oh, and also arrays are not converted to cstring anymore? |
11:19:30 | Araq | no, but ptr to array is. |
11:20:46 | Araq | a very nice improvement, thanks krux02! |
11:21:56 | FromGitter | <Yardanico> araq: it seems https://github.com/nim-lang/Nim/issues/6350 can be closed |
11:22:09 | FromGitter | <Yardanico> at least first example now works |
11:26:06 | FromGitter | <Yardanico> also https://github.com/nim-lang/Nim/issues/4039 works (and I think $ shouldn't convert array of chars to string anyway) |
11:26:57 | * | yglukhov_ quit (Ping timeout: 240 seconds) |
11:29:10 | * | JappleAck joined #nim |
11:29:40 | FromGitter | <Yardanico> also https://github.com/nim-lang/Nim/issues/2942 :) |
11:29:42 | * | claudiuinberlin joined #nim |
11:31:50 | FromGitter | <Yardanico> https://github.com/nim-lang/Nim/issues/3898 |
11:33:08 | * | ipjk joined #nim |
11:40:37 | * | yglukhov joined #nim |
11:43:06 | * | PMunch joined #nim |
11:55:31 | * | Arrrr quit (Disconnected by services) |
11:55:31 | * | Arrrr1 joined #nim |
11:55:44 | * | Arrrr1 quit (Client Quit) |
11:58:06 | * | dddddd joined #nim |
12:01:17 | PMunch | Can I assign a vdom node in Karax to an identifier? |
12:03:49 | Araq | you can set the 'id' field in the DSL |
12:06:14 | PMunch | Hmm |
12:06:17 | PMunch | Yeah that's true |
12:10:06 | dom96 | Araq: 'publish'? That's your code, no? :P |
12:11:27 | dom96 | lol, people trying to get NimBot to go into an !eval loop |
12:11:33 | dom96 | nice try |
12:12:47 | FromGitter | <Yardanico> !eval echo [1,2,3] |
12:12:49 | NimBot | Compile failed: in.nim(1, 6) Error: cannot instantiate: echo[1, 2, 3]; got 3 type(s) but expected 0 |
12:12:50 | PMunch | Haha, didn't even think of that |
12:13:14 | FromGitter | <Yardanico> @doo |
12:13:21 | PMunch | !eval echo "!eval \"Hi\"" |
12:13:23 | NimBot | !eval "Hi" |
12:13:58 | FromGitter | <Yardanico> @dom96 are you updating the bot to eval using devel version? |
12:14:09 | FromGitter | <Yardanico> It it's running 0.17.2? |
12:14:23 | PMunch | Araq, I was wanting to avoid what is fixed here: https://github.com/pragmagic/karadock/commit/2dfd3466ee2f9a2affcbc1c51281c04417d4a184 |
12:14:56 | PMunch | Not sure if I really need to though |
12:15:06 | PMunch | As Karax already auto-updates the UI |
12:15:34 | PMunch | Oh wait, if I separate layouts from widget generation then I would probably want to do it. |
12:17:20 | dom96 | Yardanico: it uses the playground: play.nim-lang.org |
12:24:42 | FromGitter | <BigEpsilon> this is a bug right ? https://play.nim-lang.org/?gist=f92e0ddcce67df8ca604a253ead94e21 |
12:35:33 | yglukhov | dom96: hey, could you pls bump nim-lang/gtk2 release? |
12:36:03 | yglukhov | there's a compilation error with recent nim currently. fixed, but not tagged. |
12:36:20 | dom96 | sure |
12:38:06 | dom96 | done |
12:42:17 | * | PMunch_ joined #nim |
12:45:02 | * | PMunch quit (Ping timeout: 260 seconds) |
12:45:40 | * | ipjk quit (Ping timeout: 255 seconds) |
12:50:53 | Araq | BigEpsilon: yes indeed |
12:52:09 | FromGitter | <BigEpsilon> @Araq , ok I'll post an issue |
12:52:35 | * | ibutra joined #nim |
12:53:01 | ibutra | Does a documentation for the nim.cfg exist somewhere? And if so can sombeody point me to it? |
12:54:22 | crem | Code is the best documentation! |
12:54:38 | crem | (I don't know the answer, just saying random stuff) |
12:55:00 | dom96 | the .nim.cfg is a little deprecated, what you want to use nowadays is .nims: https://nim-lang.org/docs/nims.html |
12:55:04 | * | PMunch_ is now known as PMunch |
12:59:52 | * | xet7 joined #nim |
13:00:07 | ibutra | alright, thank you that works great! |
13:12:24 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:12:36 | * | endragor quit (Remote host closed the connection) |
13:15:25 | * | endragor joined #nim |
13:15:26 | * | claudiuinberlin joined #nim |
13:18:19 | * | TjYoco joined #nim |
13:19:41 | * | endragor quit (Ping timeout: 240 seconds) |
13:21:57 | FromGitter | <mratsim> So does openarray[T] still catch string as openarray[char] ? |
13:28:55 | * | endragor joined #nim |
13:29:12 | * | endragor quit (Remote host closed the connection) |
13:33:03 | * | libman joined #nim |
13:34:44 | PMunch | Hmm, what is a nnkClosedSymChoice? |
13:39:09 | * | endragor joined #nim |
13:46:26 | * | nsf quit (Quit: WeeChat 1.9) |
13:48:24 | * | endragor quit (Remote host closed the connection) |
13:48:46 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:15:27 | FromGitter | <Varriount> @mratsim Why wouldn't it? |
14:17:49 | * | claudiuinberlin joined #nim |
14:17:54 | FromGitter | <edubart> is it possible somehow to have 2 vars pointing to the same object? like an alias to my var, because I wan to inject in a template like this `var x {.inject.} = array[i]` so if I modify x then I modify array[i] |
14:18:15 | PMunch | How can I check if the current target is js or c? |
14:18:47 | yglukhov | dom96: thanks! |
14:19:29 | PMunch | "when defined(js)" seems to work for js, but "when defined(c)" doesn't seem to work for c.. |
14:19:43 | dom96 | edubart: you can use `template` to create an alias |
14:25:51 | FromGitter | <edubart> @dom96 seems to work, but it's the template is automatically "injected"? and is safe to declare a template inside a block of a function? |
14:26:02 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:26:10 | dom96 | yes |
14:29:17 | * | zolk3ri joined #nim |
14:29:32 | * | claudiuinberlin joined #nim |
14:31:39 | FromGitter | <mratsim> @varriount there was some change to string and array of chars https://github.com/nim-lang/Nim/commit/3308d265816b342a842e7cabef492a54ea722e74 |
14:34:36 | FromGitter | <Bennyelg> @onionhammer |
14:34:59 | FromGitter | <Bennyelg> @sschober |
14:35:47 | FromGitter | <Bennyelg> Any way to append template in-order to avoid duplication of headers? I have some css/js files which I want to import once to all of the templates |
14:35:53 | FromGitter | <Bennyelg> regarding nim-template |
14:44:15 | * | yglukhov quit (Remote host closed the connection) |
14:45:22 | * | yglukhov joined #nim |
14:45:23 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:48:34 | * | claudiuinberlin joined #nim |
14:48:51 | PMunch | https://github.com/PMunch/genui |
14:49:02 | PMunch | Added the Karax back-end now |
14:49:26 | PMunch | Works fairly well, but I'm struggling to keep the numbers input field strictly to ints |
14:49:35 | * | yglukhov quit (Ping timeout: 240 seconds) |
14:49:36 | FromGitter | <Varriount> @Benny use a state container or global Boolean? |
14:50:32 | PMunch | And I should probably start to think about how I'm going to support custom UI elements |
14:50:40 | * | ibutra quit (Quit: Leaving) |
14:53:08 | * | Arrrr joined #nim |
14:53:08 | * | Arrrr quit (Changing host) |
14:53:08 | * | Arrrr joined #nim |
14:53:59 | * | sz0 joined #nim |
14:57:16 | * | PMunch quit (Quit: Leaving) |
15:01:18 | Araq | PMunch: very nice |
15:10:40 | * | miran joined #nim |
15:19:02 | * | Yardanico joined #nim |
15:25:14 | * | couven92 joined #nim |
15:28:15 | * | smt` joined #nim |
15:29:46 | * | Trustable joined #nim |
15:31:14 | * | smt quit (Ping timeout: 246 seconds) |
15:32:11 | * | TjYoco quit (Quit: Leaving) |
15:32:33 | * | Yardanico quit (Remote host closed the connection) |
15:33:01 | * | miran quit (Ping timeout: 240 seconds) |
15:45:42 | * | yglukhov joined #nim |
15:46:46 | * | miran joined #nim |
15:47:48 | FromGitter | <Yardanico> PMunch: you can also use some code from NiGui since it's MIT |
15:48:18 | FromGitter | <Yardanico> I'm mostly about win32 backend :) |
15:49:48 | * | yglukhov quit (Ping timeout: 240 seconds) |
15:54:53 | * | nsf joined #nim |
16:02:26 | * | Serenitor joined #nim |
16:05:11 | dom96 | !eval import strutils; echo("0 0 0 0".split(" ")) |
16:05:13 | NimBot | @[0, , 0, , 0, , 0] |
16:05:25 | dom96 | !eval import strutils; echo("0 0 0 0".splitWhitespace) |
16:05:28 | NimBot | @[0, 0, 0, 0] |
16:05:46 | dom96 | Best REPL |
16:08:57 | FromGitter | <Yardanico> What Nim version it uses? |
16:13:00 | dom96 | !eval echo CompilerVersion |
16:13:01 | NimBot | Compile failed: in.nim(1, 6) Error: undeclared identifier: 'CompilerVersion' |
16:13:23 | dom96 | !eval echo NimVersion |
16:13:26 | NimBot | 0.17.2 |
16:13:26 | * | yglukhov joined #nim |
16:13:31 | FromGitter | <andreaferretti> :-D |
16:16:18 | * | ShalokShalom_ joined #nim |
16:18:18 | * | Senketsu quit (Remote host closed the connection) |
16:19:34 | * | ShalokShalom quit (Ping timeout: 264 seconds) |
16:23:35 | * | ShalokShalom_ is now known as ShalokShalom |
16:25:18 | * | yglukhov quit (Remote host closed the connection) |
16:34:40 | FromGitter | <zacharycarter> I need a blender guru now |
16:34:53 | dom96 | Maybe ask in #blender? |
16:35:05 | FromGitter | <zacharycarter> wasn't aware that was a thing |
16:35:07 | FromGitter | <Bennyelg> Hey, I worked with blender 2 years |
16:35:21 | FromGitter | <Bennyelg> but I didn't touch it 2 years now :| |
16:35:22 | FromGitter | <Bennyelg> hehe |
16:35:26 | FromGitter | <zacharycarter> haha |
16:35:54 | FromGitter | <Bennyelg> Great 3d app |
16:36:07 | FromGitter | <zacharycarter> I hate it :p |
16:36:22 | FromGitter | <Bennyelg> I design interiors with it |
16:36:25 | FromGitter | <Bennyelg> desinged |
16:37:29 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
16:47:49 | FromGitter | <Yardanico> @dom96 would it make more sense to use devel on NimBot? |
16:48:20 | dom96 | that's something that zacharycarter would need to make possible |
16:48:34 | FromGitter | <zacharycarter> ? |
16:48:55 | dom96 | NimBot uses your playground's API |
16:49:02 | FromGitter | <zacharycarter> oh haha really? |
16:49:09 | dom96 | yeah, of course |
16:49:14 | FromGitter | <zacharycarter> :P |
16:50:07 | FromGitter | <zacharycarter> if there's a docker dev nim image I could make that possible |
16:50:25 | FromGitter | <zacharycarter> it requires rebuilding the docker image though which isn't a big deal |
16:53:46 | Araq | !eval echo system.hostOS |
16:53:49 | NimBot | linux |
16:53:55 | Araq | !eval echo system.hostCPU |
16:53:56 | NimBot | amd64 |
16:54:23 | Araq | !eval echo "I am out of ideas" |
16:54:25 | NimBot | I am out of ideas |
17:00:37 | * | sz0 quit (Quit: Connection closed for inactivity) |
17:05:43 | dom96 | !eval import httpclient; getContent("http://example.org").echo |
17:05:51 | NimBot | <no output> |
17:05:59 | dom96 | aww |
17:11:27 | FromGitter | <zacharycarter> networking is locked down on the docker container |
17:14:12 | * | ipjk joined #nim |
17:14:19 | * | Jesin joined #nim |
17:15:04 | FromGitter | <mratsim> Stress testing the garbage collector: |
17:15:13 | FromGitter | <mratsim> (https://files.gitter.im/nim-lang/Nim/skd0/2017-10-10_19-14-19.png) |
17:16:45 | Araq | genericReset is not the GC |
17:17:12 | Araq | it's part of the more crappy parts of Nim's runtime |
17:17:43 | Araq | usually it shouldn't be generated in a hot loop |
17:18:07 | FromGitter | <mratsim> What generates it so that can avoid it? :P |
17:18:15 | Araq | figure out where it's generated and create a bug |
17:19:01 | FromGitter | <mratsim> I guess I know what I’ll do next weekend |
17:23:38 | * | yglukhov joined #nim |
17:26:34 | * | d10n-work joined #nim |
17:30:11 | * | jjido joined #nim |
17:32:48 | * | solitudesf joined #nim |
17:36:19 | dom96 | Araq: https://gist.github.com/dom96/749aff1749089ace5a79eb796f3eeeff |
17:36:28 | dom96 | I get an error that this.kind needs to be known at compile-time |
17:36:41 | dom96 | I've got a doAssert up there though, is supporting this on the roadmap? |
17:37:18 | Araq | no, it is unclear whether we want to do more of this path sensitive typing |
17:37:28 | * | claudiuinberlin joined #nim |
17:37:43 | Araq | I can feel the pain though, recently I stumpled upon this too |
17:37:56 | dom96 | yeah, it sucks :\ |
17:38:00 | dom96 | But glad it's on your radar |
17:39:59 | * | claudiuinberlin quit (Client Quit) |
17:41:18 | * | claudiuinberlin joined #nim |
17:55:02 | * | yglukhov quit (Remote host closed the connection) |
17:55:04 | * | ketralnis quit (Quit: Coyote finally caught me) |
17:57:37 | * | Demos joined #nim |
17:58:04 | * | Demos quit (Client Quit) |
17:58:34 | * | yglukhov joined #nim |
17:59:44 | * | Demos joined #nim |
18:05:25 | Serenitor | toying around with embedded nims: |
18:05:25 | Serenitor | I am loading a nims file via processModule and now want to reload it, looks like just doing processModule again isn't enough though.. |
18:05:25 | Serenitor | should I redo makeModule and/or newCtx as well? |
18:07:23 | * | claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:08:52 | Araq | Serenitor: I don't remember tbh, but NimEdit does "hot code reloading" |
18:08:59 | Araq | so checkout its code please |
18:09:53 | Serenitor | ah thanks for the pointer, so far I've only been crawling through nimble source |
18:10:34 | FromGitter | <mratsim> I’m trying to importc a constant defined in math.h but Nim isn’t happy ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59dd0d1901110b72319ca122] |
18:11:15 | Araq | the compiler wants to know a constant's value |
18:11:22 | Araq | you have to use 'var' here |
18:11:34 | Araq | these are called "fake" vars :P |
18:13:15 | FromGitter | <mratsim> ah, so I can’t use it like this then ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=59dd0dbb177fb9fe7e604c36] |
18:16:21 | FromGitter | <Araq> ugh, no |
18:16:57 | * | nsf quit (Quit: WeeChat 1.9) |
18:17:28 | * | claudiuinberlin joined #nim |
18:21:53 | * | Ven joined #nim |
18:22:17 | * | Ven is now known as Guest70887 |
18:32:26 | * | libman quit (Quit: Connection closed for inactivity) |
18:38:58 | * | Guest70887 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
18:39:28 | * | PMunch joined #nim |
18:40:19 | FromGitter | <mratsim> Can I catch this with a term-rewriting macro? seems like the literal doesn’t get matched ⏎ ⏎ ```template rewriteLn1p*{ln(`+`(1, x))}[T: SomeReal](x: T): T = ⏎ ln1p x``` ⏎ ⏎ but I don’t get any hint [https://gitter.im/nim-lang/Nim?at=59dd1413e44c43700a1846b6] |
18:48:39 | * | Vladar quit (Quit: Leaving) |
18:49:35 | PMunch | Hmm, when using quote do can I use `` for special procedure names |
18:49:59 | livcd | that enhancing the irc bot in nim is without sound ? |
18:50:30 | FromGitter | <Yardanico> PMunch: yes! |
18:50:39 | FromGitter | <Yardanico> it's even in the docs |
18:50:52 | FromGitter | <Yardanico> The original meaning of the interpolation operator may be obtained by escaping it (by prefixing it with itself): |
18:50:59 | FromGitter | <Yardanico> so instead of "`" you do "``" |
18:51:16 | dom96 | livcd: I can hear sound. Maybe you need to skip ahead? |
18:51:16 | PMunch | Ah right |
18:51:20 | FromGitter | <Yardanico> something like ⏎ proc ``+``(a, b: MyObj): MyObj = a.x + b.x |
18:51:28 | FromGitter | <Yardanico> you can also define custom operators instead of "`" |
18:51:32 | FromGitter | <Yardanico> for example "@" |
18:52:23 | PMunch | Hmm, it didn't seem to like that.. |
18:52:32 | PMunch | vdom.``value=``(`s1`, $`s2`) |
18:52:56 | PMunch | Complains that "identifier expected, but found '`'" |
18:53:46 | livcd | dom96: ahh some weird combination of ublock and safari |
18:53:49 | livcd | works fine in chrome |
18:53:53 | livcd | thanks for confirming |
18:55:32 | livcd | hmm still cant change it to 1080p. everything is a bit blurry |
18:55:51 | FromGitter | <Yardanico> dom, are you streaming rn? |
18:56:45 | livcd | it's already over :) |
18:56:50 | FromGitter | <Yardanico> eh :( |
18:57:09 | FromGitter | <Yardanico> wwwait |
18:57:13 | FromGitter | <Yardanico> nimbot uses playground? |
18:57:16 | FromGitter | <Yardanico> lol |
18:58:35 | livcd | ah i need to watch it tomorrow morning |
18:58:39 | livcd | you have a very calming voice |
18:58:41 | livcd | makes me sleepy |
18:58:49 | * | solitudesf quit (Remote host closed the connection) |
18:59:51 | FromGitter | <Yardanico> dom96: why are you using bodyStream ? :) |
18:59:55 | FromGitter | <Yardanico> you can just use "await resp.body" |
19:00:17 | FromGitter | <Yardanico> https://github.com/nim-lang/nimbot/blob/master/src/playground.nim#L20 |
19:01:00 | FromGitter | <zacharycarter> lol I was about to be like - wait that's my project |
19:02:21 | livcd | such small community...cant use nim yet :3 |
19:02:36 | FromGitter | <zacharycarter> who said that? |
19:02:38 | PMunch | livcd, mall but very active and friendly :) |
19:02:47 | PMunch | s/mall/small |
19:03:36 | livcd | i was joking :) |
19:03:52 | FromGitter | <zacharycarter> oh haha |
19:04:15 | FromGitter | <Yardanico> !eval import macros; macro test(): untyped = quote do: echo "hi"; test() |
19:04:17 | NimBot | <no output> |
19:04:17 | FromGitter | <Yardanico> wrong indentation :) |
19:04:25 | FromGitter | <Yardanico> lol |
19:04:45 | dom96 | Yardanico: oops :) |
19:04:45 | Arrrr | Is devel stable? i see interesting additions |
19:04:48 | FromGitter | <Yardanico> oh wait it compiles |
19:04:49 | PMunch | Hmm, I really can't get it to do this correctly.. |
19:04:58 | FromGitter | <Yardanico> ah |
19:04:59 | FromGitter | <Yardanico> I see |
19:05:00 | dom96 | You'd think I would know this seeing as I've implemented this bodyStream thing |
19:05:03 | Arrrr | The destroyer and dfa thing |
19:05:24 | FromGitter | <Yardanico> it embeds "test()" call in a macro instead of doing it outside |
19:05:30 | dom96 | There are some bugs in the playground :) |
19:05:44 | FromGitter | <Yardanico> well it's not a playground bug |
19:05:48 | PMunch | I don't want to import everything since this has to be included and not imported and I don't want to pollute the users variables |
19:06:05 | FromGitter | <Yardanico> Arrrr: not much additions yet |
19:06:08 | PMunch | The Gtk Table was especially annoying :P |
19:06:09 | dom96 | livcd: hah, calming voice, really? That's nice to hear :) |
19:06:11 | FromGitter | <Yardanico> I mean |
19:06:17 | dom96 | I really want to get a better mic now |
19:06:17 | FromGitter | <Yardanico> I don't think Araq has enabled them yet |
19:06:21 | FromGitter | <Yardanico> or did he? |
19:06:46 | FromGitter | <Yardanico> let me check if initialization checking was fixed in my small project |
19:06:47 | PMunch | So I'm trying to just write everything with it's package. But `value=` is giving me a hard time.. |
19:07:14 | FromGitter | <Yardanico> you can create that name outside of the quote do |
19:07:19 | FromGitter | <Yardanico> and then just use `myProcName` |
19:07:25 | FromGitter | <Yardanico> instead of that quote do |
19:07:32 | FromGitter | <Yardanico> *Inside |
19:07:33 | livcd | dom96: yes i might put you in my: "stuff that calms me down playlist" |
19:07:42 | dom96 | :D |
19:07:56 | PMunch | I guess... |
19:08:03 | FromGitter | <Yardanico> hmm |
19:08:42 | livcd | dom96: still calming even with all those: "stupid mac osx", "oh stupid" ^^ |
19:08:51 | dom96 | heh |
19:08:57 | Araq | Arrrr: devel is stable and the new code is simply unused |
19:09:01 | dom96 | ooh, 64 views already |
19:09:11 | Araq | and yes, it's very interesting stuff |
19:09:43 | livcd | dom96: if you will have time put it on youtube as well :) |
19:10:12 | dom96 | okay, will do. Kind of discouraged by what Google has done to YouTube in recent years. |
19:10:31 | FromGitter | <Yardanico> you can stream both to youtube and twitch at the same time |
19:10:34 | dom96 | But I will suffer through it |
19:10:35 | FromGitter | <Yardanico> but it will be hard to manage chat :D |
19:10:48 | FromGitter | <Yardanico> also |
19:10:52 | FromGitter | <Yardanico> why are you not streaming at liveedu? |
19:10:53 | dom96 | That would kill my bandwidth |
19:11:00 | FromGitter | <Yardanico> it was "livecoding" back in the days |
19:11:06 | dom96 | Why should I? I've never heard of it |
19:11:14 | FromGitter | <Yardanico> well it's almost dedicated to programming |
19:11:18 | FromGitter | <Yardanico> almost fully* |
19:11:23 | livcd | dom96: i would not think of Twitch as a platform where i would find Nim videos :) |
19:11:37 | livcd | so coincidentally i wanted to watch some nim related videos today |
19:11:50 | FromGitter | <Yardanico> https://www.liveedu.tv/live/ |
19:11:54 | dom96 | livcd: yeah, makes sense |
19:12:01 | livcd | the first thing i checked was youtube then reddit/r/nim which pointed me to twitch |
19:12:02 | dom96 | For discovery, YouTube makes sense |
19:12:06 | FromGitter | <Yardanico> but yeah, liveedu was better in the past |
19:12:24 | FromGitter | <Yardanico> now it has some weird premium vids, and your vids are removed after some time if they're not viewed by anyone |
19:12:36 | FromGitter | <Yardanico> but it's good for livestreaming |
19:12:41 | livcd | Yardanico are you the guy behind reel valley ? |
19:12:44 | FromGitter | <Yardanico> I even was livestreaming some nim coding :D |
19:12:46 | FromGitter | <Yardanico> nah |
19:12:50 | FromGitter | <Yardanico> it's @yglukhov |
19:13:34 | livcd | ah you mentioned you speak russian so i thought you are him |
19:13:52 | FromGitter | <Yardanico> well I'm not the only one to be able to speak russian here :) |
19:13:55 | FromGitter | <Yardanico> araq can speak russian! |
19:14:24 | FromGitter | <Yardanico> ah, no, dom, don't even try it |
19:14:25 | FromGitter | <Yardanico> "You need a Pro account to stream non-premium projects on LiveEdu if you have not created a premium project in last 3 months" |
19:14:40 | livcd | dom96: also you guys need to sneak in the video to reddit.com/r/python :)) |
19:16:58 | dom96 | livcd: feel free to submit it there :P |
19:17:16 | livcd | i will |
19:17:38 | livcd | was not nim like one of the top words / topics mentioned in /r/python anyway ? :) that was fun |
19:18:01 | miran | well, i found out about nim from one thread in /r/python |
19:18:11 | FromGitter | <Yardanico> BTW there was a 5-10 online on my nim streams at liveedu, but I was streaming without using a microphone (I'm afraid of my spoken english :D) |
19:18:26 | miran | it was something like 'i suffer from post-python depression, what next language should i choose?' |
19:18:42 | miran | the top two recommendations, IIRC, were Nim and F# |
19:19:31 | JappleAck | miran, why f# why not haskell? |
19:20:02 | miran | JappleAck: i've tried both and i like F# better (i know i know, blasphemy) |
19:20:21 | miran | here is that thread: https://www.reddit.com/r/Python/comments/6c1jnv/postpython_dissatisfaction_syndrome/ |
19:20:24 | JappleAck | if you choose f# you'll suffer from post-<del>jvm</del>.net depression |
19:22:36 | livcd | how come nim is so popular in russian speaking countries |
19:22:51 | dom96 | Because in mother Russia, Nim picks you. |
19:22:51 | livcd | correction: by russian speaking people |
19:22:54 | dom96 | Sorry, couldn't resist. |
19:23:20 | Araq | because Russians know what "Vorsprung durch Technik" means |
19:23:45 | FromGitter | <Yardanico> dom96: tru |
19:24:03 | Araq | Я плохо говорю по-русски |
19:24:04 | dom96 | yay, people keep following me on Twitch :D |
19:24:07 | JappleAck | livcd, there's was an article on our popular website for developers that mentioned it, i guess that's why, i'll try to find it |
19:24:26 | FromGitter | <Yardanico> Araq: but at least you CAN do it! |
19:24:41 | livcd | JappleAck: ah |
19:24:43 | livcd | then |
19:25:18 | livcd | there is an easy solution to grow community just make yandex write blogs about it and hopefully it gets big in China |
19:25:21 | livcd | like Go |
19:25:21 | livcd | :-| |
19:26:10 | * | Demos quit (Ping timeout: 264 seconds) |
19:27:28 | livcd | Araq: whenever i see or hear german it reminds me of my beloved grandmother being very pushy and forced me to learn german |
19:28:35 | JappleAck | livcd, sry, i can't find it, but there was an article where one guy told his story about learning a lot of programming languages |
19:29:31 | JappleAck | he was searching for best instrument that will just help him doing his job well and make him think more about task than about language, kinda like that |
19:30:00 | JappleAck | and end of the story was like: "nim is the best one i found these days" |
19:30:37 | livcd | JappleAck: ahh that's interesting |
19:32:37 | * | Demos joined #nim |
19:33:38 | * | Demos quit (Client Quit) |
19:34:19 | livcd | Araq: i am coming from a Mantaken family if you have ever heard of us :S |
19:34:28 | * | Demos joined #nim |
19:34:46 | dom96 | Araq: hrm. Strangely using 'untyped' for a parameter still complains that the identifier I pass it doesn't exist. |
19:34:50 | dom96 | But using {.immediate.} fixes it |
19:34:54 | dom96 | Any ideas why that could be? |
19:37:34 | Araq | dom96: watch out for overloads that don't use untyped at this position |
19:38:09 | * | Demos quit (Client Quit) |
19:38:28 | * | Demos joined #nim |
19:38:45 | dom96 | Araq: hrm, yep. I named the template `replace` |
19:38:51 | * | testaaasd joined #nim |
19:38:51 | dom96 | I guess it clashed with a proc :\ |
19:39:59 | * | TestNimBot joined #nim |
19:40:39 | FromGitter | <Yardanico> I just refactored nimbot a bit and want to test if it still works :P |
19:40:46 | FromGitter | <Yardanico> just a bit |
19:40:52 | testaaasd | !eval echo "hello" |
19:40:54 | NimBot | hello |
19:40:56 | TestNimBot | hello |
19:41:12 | FromGitter | <Yardanico> btw I'm running it on windows |
19:41:27 | * | JappleAck quit (Ping timeout: 240 seconds) |
19:41:58 | testaaasd | !lag |
19:41:58 | NimBot | 9ms between me and the server. |
19:41:58 | TestNimBot | 83ms between me and the server. |
19:42:03 | testaaasd | lol |
19:42:28 | PMunch | !eval echo "!eval echo \"!eval Hi!\"" |
19:42:30 | NimBot | !eval echo "!eval Hi!" |
19:42:32 | TestNimBot | !eval echo "!eval Hi!" |
19:42:33 | TestNimBot | !eval Hi! |
19:42:34 | NimBot | !eval Hi! |
19:42:35 | NimBot | Compile failed: in.nim(1, 4) Error: invalid indentation |
19:42:36 | TestNimBot | Compile failed: in.nim(1, 4) Error: invalid indentation |
19:42:45 | PMunch | Tihi |
19:42:48 | FromGitter | <Yardanico> LOL wtf pmunch :D |
19:42:56 | PMunch | These really shouldn't be on at the same time |
19:43:01 | FromGitter | <Yardanico> I know |
19:43:05 | FromGitter | <Yardanico> I will shut it down now |
19:43:07 | FromGitter | <Yardanico> !ping |
19:43:07 | NimBot | pong |
19:43:08 | PMunch | Forkbomb ftw! |
19:43:08 | TestNimBot | pong |
19:43:20 | FromGitter | <Yardanico> ok it seems it works |
19:44:50 | * | TestNimBot quit (Read error: Connection reset by peer) |
19:45:06 | * | TestNimBot joined #nim |
19:45:37 | FromGitter | <Yardanico> PMunch: anyway this nim bot just uses playground for eval :) |
19:46:51 | * | TestNimBot quit (Read error: Connection reset by peer) |
19:47:04 | PMunch | Yeah I know |
19:47:21 | * | TestNimBot joined #nim |
19:47:31 | PMunch | But with two it shouldn't be impossible to get them to reply to each other with new !eval commands |
19:47:39 | * | Demos_ joined #nim |
19:47:45 | FromGitter | <Yardanico> yeah I know |
19:47:45 | PMunch | And basically spam the channel by having the two bots talk to each other |
19:47:53 | FromGitter | <genotrance> reminds me of that alexa + google home video |
19:48:03 | PMunch | Yeah exactly |
19:48:09 | * | TestNimBot quit (Read error: Connection reset by peer) |
19:48:38 | * | Demos_ quit (Client Quit) |
19:48:46 | * | claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com) |
19:48:56 | * | livcd searches for alex + home video |
19:48:56 | * | TestNimBot joined #nim |
19:50:52 | FromGitter | <Yardanico> https://www.youtube.com/watch?v=t5bYtcjWcPQ ? |
19:50:59 | FromGitter | <Yardanico> ah, alexa |
19:51:17 | FromGitter | <Yardanico> anyway a close ones |
19:51:17 | FromGitter | <Yardanico> https://www.youtube.com/watch?v=vmINGWsyWX0 |
19:51:49 | * | Demos quit (Ping timeout: 255 seconds) |
19:54:51 | * | JappleAck joined #nim |
19:56:07 | FromGitter | <zacharycarter> they need the smart salt shaker to join in |
19:56:48 | FromGitter | <zacharycarter> http://www.mysmalt.com/ |
19:58:02 | FromGitter | <zacharycarter> probably the most asinine invention we will ever see |
20:00:47 | Calinou | I think you guys are getting pretty salty over it… |
20:01:02 | * | Trustable quit (Remote host closed the connection) |
20:04:42 | ipjk | "SLEEK LOOK - A PERFECT CONVERSATION STARTER" - Ha! |
20:05:05 | PMunch | I dunno, I kinda like it |
20:05:32 | PMunch | Do you think you could get Google Now with salt and Alexa with pepper? |
20:06:12 | PMunch | Maybe a tube of ketchup for Bixby |
20:09:17 | * | nsf joined #nim |
20:19:27 | * | JappleAck quit (Ping timeout: 240 seconds) |
20:20:03 | FromGitter | <onionhammer> @Bennyelg Not sure what you mean; nim-templates very explicitly translates to "result.add" calls for its output |
20:20:31 | FromGitter | <onionhammer> you should be able to create a "layout" procedure that renders everyting around the body content you want |
20:20:43 | FromGitter | <Bennyelg> any example ? |
20:21:34 | dom96 | cool that NimBot works on Windows :) |
20:23:21 | zolk3ri | :( |
20:24:06 | * | testaaasd quit (Quit: Page closed) |
20:24:13 | * | miran quit (Ping timeout: 258 seconds) |
20:26:56 | dom96 | zolk3ri: why sad? |
20:32:48 | * | JappleAck joined #nim |
20:33:16 | PMunch | https://github.com/PMunch/genui |
20:33:28 | PMunch | Works with Gtk and Karax at the moent |
20:33:50 | PMunch | Seems promising :) |
20:36:42 | FromGitter | <genotrance> @dom96 : can Nimbot already pull from documentation? like !search writeFile and it brings up all matching procs and details |
20:37:16 | dom96 | genotrance: nope |
20:37:28 | dom96 | but that would be an awesome feature |
20:37:34 | dom96 | Wanna implement it? :) |
20:39:18 | Araq | PMunch: what do you think about designs? |
20:39:33 | PMunch | What do you mean by designs? |
20:39:47 | Araq | I mean a HTML based UI these days can be very stylish with all these CSS goodies |
20:40:25 | Araq | but if you only describe the raw formulars so that they also work for Gtk you lose very much |
20:41:14 | PMunch | Ah, the idea is that it should create native UI code. So for Karax it creates vdom nodes, and you are free to style them as you like. |
20:41:23 | Araq | so maybe your DSL should ignore the "tags" that have no GTK equivalent |
20:41:35 | PMunch | I want to make it modular though |
20:42:00 | Araq | well how would it work? the vdom nodes are one-to-one to the DOM nodes |
20:42:11 | PMunch | So if you want to use a different layouting engine someone could implement that. And if someone wants to implement a cross platform style engine then they can do that |
20:43:40 | PMunch | Okay, so currently you have ids and classes as in HTML, these will also be added to the DOM nodes. You also have macros that expand calls for an id and a class for any of the supported UIs, so you can use this abstraction for more things than just HTML styling. |
20:43:47 | FromGitter | <genotrance> @dom96 - I'd love to but right now I already have 5 nim projects competing for my attention! |
20:44:16 | FromGitter | <genotrance> another question - if I were on IRC, can I PM nimbot and get responses without having to spam this group? |
20:44:46 | PMunch | Doesn't seem like it genotrance |
20:44:49 | dom96 | genotrance: no worries. Yep, you can. |
20:44:59 | PMunch | Oh, if you query? |
20:45:02 | dom96 | yes |
20:45:14 | * | TestNimBot quit (Read error: Connection reset by peer) |
20:45:18 | dom96 | You still need to write it in the same way though |
20:45:35 | PMunch | Ah, I did /msg and thought it didn't work but it just opened a background tab |
20:45:58 | FromGitter | <genotrance> I need to sign in from IRC looks like, Gitter doesn't really remember read/unread history well enough |
20:46:33 | * | shashlick joined #nim |
20:47:03 | FromGitter | <genotrance> might as well get my ZNC server back up and running |
20:47:43 | Araq | PMunch: I don't really follow you |
20:48:24 | Araq | in html I have 3 nested divs and in GTK some box layout inside a tab layout or whatever |
20:48:33 | PMunch | Mhm |
20:49:35 | * | ipjk quit (Read error: Connection reset by peer) |
20:49:36 | Araq | my idea is to ignore the divs when target == gtk and the box layouts when target == karax |
20:49:55 | Araq | but this can get messy very quickly |
20:50:21 | Araq | the alternative is to have two distinct tree descriptions though, not good either |
20:51:10 | Araq | or maybe map the layout nodes to karax div elements with some given class attribute |
20:52:43 | PMunch | Hmm, okay so currently it only creates widgets (and some extra wrappings, but that's just for testing). Then I'll create a layout system which will take the created widgets and add them to a layout. All of this is done on compile time so to your Karax code you would only see divs, spans, etc. and in Gtk you would only see the Boxes and such. So if you wanted to style things in Karax you would simply apply classes to parts of your UI and add some CSS. For Gtk |
20:52:43 | PMunch | you would use the getByName macro which would expand to a Gtk widget on compile time. |
20:53:10 | PMunch | With this you could theoretically write a styling engine but I'm not sure if I'll bother doing that |
20:53:55 | PMunch | Maybe I'll create some simple things to show how you could do it, but leave the implementation details to whoever would want to do it |
20:57:52 | PMunch | It will hopefully all make sense in a little while when I get around to implementing more of it :) |
20:58:15 | FromGitter | <Yardanico> Hmm, https://twitter.com/mitsuhiko/status/917843174885863427 |
20:58:17 | Araq | ok |
21:00:41 | * | sleepyqt quit (Quit: WeeChat 1.9.1) |
21:01:09 | shashlick | why do you guys prefer Gitter vs IRC one way or the other? |
21:01:54 | dom96 | IRC: because using a browser sucks |
21:02:32 | FromGitter | <zacharycarter> gitter: because all irc clients suck and having irc up is annoying |
21:02:46 | FromGitter | <zacharycarter> I almost always already have a browser open |
21:02:48 | FromGitter | <zacharycarter> what's another tab |
21:03:58 | FromGitter | <Yardanico> Gitter: because IRC on mobiles suck :) |
21:04:11 | PMunch | IRC, because I can talk to people across a crazy amount of topics. IRC because losing tabs is a pain, losing a window is harder. IRC because it's purpose made for chat. IRC because it's less resource intensive. IRC because it's flexible and extensible. |
21:04:16 | FromGitter | <Yardanico> Also Gitter on Windows + IRC on Linux |
21:04:26 | PMunch | Yeah, IRC on mobile is a bit of a pain.. |
21:05:32 | PMunch | I'm actually thinking about writing a IRC/webservices (like Facebook) checker that will create notifications and send them to my phone |
21:08:35 | shashlick | thanks guys, I like IRC but same mobile/firewall headaches |
21:09:01 | shashlick | I thought Gitter is really cool until I found it isn't very good at keeping track of where I last left off |
21:09:47 | dom96 | The way Gitter handles notifications annoys me |
21:10:05 | PMunch | http://www.linuxjournal.com/content/seamlessly-extending-irc-mobile-devices |
21:10:05 | ehmry | some of us on are Matrix too, the bridge just hides it on the IRC side |
21:10:10 | PMunch | Something like that |
21:10:16 | dom96 | It keeps all the notifications and always shows all the messages when someone new highlights me |
21:10:27 | dom96 | Which means I never have any idea what was said |
21:10:54 | PMunch | Oh well, I'm off now |
21:10:56 | * | PMunch quit (Quit: leaving) |
21:10:59 | FromGitter | <zacharycarter> modo is so much better than blender but still confusing a f |
21:11:00 | shashlick | @dom96: I've noticed that |
21:11:14 | shashlick | Gitter doesn't notify if you don't put the @ |
21:11:24 | shashlick | ehmry: what's Matrix? not heard of that |
21:13:28 | ehmry | shashlick: Matrix.org / riot.im |
21:15:46 | Araq | I actually prefer Gitter because it allows to send code snippets |
21:16:14 | FromGitter | <zacharycarter> `````` |
21:18:40 | ehmry | is it just me or are tuples a pain to use with macros, I get `typle[T,T]` types that cause syntax errors |
21:20:03 | ehmry | `tuple[...]` only seems to work with named fields |
21:20:21 | FromGitter | <Yardanico> Use (T, T) |
21:20:25 | shodan45 | am I blind, or is there no link to the list of 3rd party nim modules on nim-lang.org? |
21:20:25 | shashlick | ehmry: Matrix/riot seems very interesting - how well does history and mentions work? |
21:21:01 | FromGitter | <Yardanico> To make a tuple without field names (they'll be like Field0, Field1) |
21:21:49 | FromGitter | <Yardanico> But anyway - if you don't want a field name at all - use arrays? |
21:23:20 | ehmry | if I pass a `(T,T)` type to a macro it gets turned into `tuple[T,T]` |
21:23:37 | ehmry | I want an array of tuples, thats the issue |
21:24:35 | ehmry | shashlick: the riot client is another browser mess, it uses the notification stuff and there is searchable history |
21:25:06 | FromGitter | <Varriount> ehmry: Could you show us a code example? |
21:27:43 | FromGitter | <Varriount> @zacharycarter Have you looked at the price for Modo though? |
21:28:13 | shashlick | ehmry: looks like Riot has a desktop app as well |
21:29:12 | FromGitter | <zacharycarter> @Varriount yeah - I might still buy it |
21:29:32 | FromGitter | <zacharycarter> no matter what I use Im' having issues - modo or blender |
21:29:42 | FromGitter | <zacharycarter> I really need an artist :P |
21:30:49 | shodan45 | @zacharycarter: nahhh... programmer art FTW! ;) |
21:31:04 | shodan45 | just look at Notch & Minecraft! :D |
21:31:20 | FromGitter | <zacharycarter> screw notch |
21:31:22 | FromGitter | <zacharycarter> AND his fedora |
21:31:39 | FromGitter | <zacharycarter> I dislike that guy |
21:32:10 | FromGitter | <zacharycarter> not like personally just from you know, the perspective of another developer that envies the fact he made stupid money off of a shitty Java game |
21:33:31 | ehmry | shashlick: nope, its electron |
21:33:35 | dom96 | I love Notch. :) |
21:33:41 | FromGitter | <Varriount> @zacharycarter I got my start in programming helping write servers for Minecraft |
21:33:56 | dom96 | I wouldn't call Minecraft "a shitty Java game" |
21:34:03 | FromGitter | <zacharycarter> the original minecraft was |
21:34:04 | FromGitter | <Varriount> @zacharycarter Let me tell you, the multiplayer protocol was less than ideal |
21:34:07 | dom96 | I played it when it was still in Alpha and boy was I immediately hooked |
21:34:08 | shodan45 | stupid money? what was it, $2.5B? "stupid" doesn't cover it xD |
21:34:35 | dom96 | But you know, I don't think it's all brilliant for him |
21:34:37 | FromGitter | <zacharycarter> I don't mean the game was shitty, the game idea is pretty fantastic, the original implementation was shitty |
21:34:53 | FromGitter | <zacharycarter> well it certainly killed his gamedev career |
21:34:56 | FromGitter | <zacharycarter> not sure how you top minecraft |
21:35:06 | shashlick | ehmry: ugh, looks like there are other matrix clients too but persistence seems really nice |
21:35:07 | dom96 | He's divorced, doesn't know who he can trust and in general seems rather depressed based on his tweets. |
21:35:45 | FromGitter | <Varriount> @zacharycarter https://corbinsimpson.com/entries/take-a-bow.html |
21:35:56 | shodan45 | I use quassel for IRC & mostly like it. There's an android app, too. |
21:36:09 | ehmry | shashlick: persistence is in the matrix protocol, riot is just the javascript fronted |
21:36:24 | dom96 | Like with many things, I've had a lot more interest in Minecraft when it wasn't mainstream :) |
21:36:27 | shodan45 | I should clarify: quassel with a separate quassel core server |
21:36:56 | FromGitter | <zacharycarter> does that mean you're going to abandon Nim when it's the most popular programming language out there? |
21:36:58 | FromGitter | <zacharycarter> :P |
21:37:48 | * | jjido quit (Remote host closed the connection) |
21:38:21 | shodan45 | anyone know if nimqml works on macos? it says only windows & linux, but I see some evidence of mac support in the code |
21:38:30 | shodan45 | and I don't have a mac to test it |
21:40:24 | shodan45 | https://github.com/filcuc/nimqml/blob/master/src/private/dotherside.nim#L7 |
21:41:19 | shashlick | shodan45: maintaining the server is a pain though, just like the ZNC instance I setup |
21:41:29 | shashlick | ehmry: how about the other matrix clients? |
21:41:49 | shodan45 | shashlick: it is? I don't think I've touched it since I installed it |
21:42:24 | shashlick | agreed, but after a few months, my server went down and i'm too bored to hook it up and check :P |
21:42:41 | shodan45 | IIRC it was a little weird during the initial config, but that was it |
21:43:40 | Calinou | Minecraft was really cool back in the day, in 2011, I spent an entire *month* with the game running :P |
21:43:41 | * | JappleAck quit (Read error: Connection reset by peer) |
21:43:55 | Calinou | and no, Java isn't the reason Minecraft runs slowly on potato PCs |
21:44:41 | Calinou | even 15 years ago, it was possible to write optimized Java code that ran pretty fast: https://bytonic.de/html/benchmarks.html |
21:45:05 | Calinou | (keep in mind that modern Java can be optimized even further) |
21:45:10 | Calinou | Java 9 was recently released, by the way :) |
21:45:11 | dom96 | zacharycarter: possibly :P |
21:46:09 | shodan45 | dom96: don't abandon it, just fork it... call it "min" ;) |
21:46:55 | ehmry | shashlick: I haven't tried them, they aren't packaged for linux or they don't support the e2e crypto |
21:48:33 | shashlick | ehmry: cool will check them out, am on Windows and browser might be my only choice with work proxy |
21:48:44 | ehmry | Varriount: https://gist.github.com/ehmry/9366a5cf85877d327d8d23e3d47ca9c9 |
21:50:39 | * | Arrrr quit (Read error: Connection reset by peer) |
21:55:48 | FromGitter | <Varriount> ehmry: And what do you expect it to print? The output seems reasonable to me. |
21:56:23 | * | Demos_ joined #nim |
21:57:05 | * | Demos_ quit (Client Quit) |
21:57:27 | ehmry | I just don't know how to macro then |
22:00:50 | * | Demos joined #nim |
22:01:07 | FromGitter | <edubart> anyone have a workaround for https://github.com/nim-lang/Nim/issues/6497 ? |
22:01:36 | FromGitter | <edubart> or quick tip to easy fix |
22:02:05 | * | Demos quit (Client Quit) |
22:02:08 | FromGitter | <Varriount> ehmry: Well, the type of X is 'tuple[int, int]', so when you insert a typedesc 'X' into an AST, then stringify the AST, you get 'tuple[int, int]' |
22:04:25 | * | JappleAck joined #nim |
22:08:09 | * | Demos joined #nim |
22:08:20 | * | Demos quit (Client Quit) |
22:11:52 | * | Demos joined #nim |
22:12:38 | * | Demos quit (Client Quit) |
22:12:56 | * | Demos joined #nim |
22:16:03 | * | nsf quit (Quit: WeeChat 1.9) |
22:18:15 | ehmry | Varriount: meh, a macro is premature in my case |
22:21:37 | FromGitter | <Varriount> @zacharycarter What are you modeling? |
22:38:32 | FromGitter | <zacharycarter> @Varriount I'm not modeling anything - trying to prerender assets from the unity asset store in isometric angles |
22:41:16 | * | yglukhov quit (Remote host closed the connection) |
22:57:05 | * | Sentreen quit (Ping timeout: 240 seconds) |
22:59:43 | * | Demos_ joined #nim |
23:01:40 | FromGitter | <zacharycarter> @Varriount both of these programs are very difficult to use and I don't find instantaneous help channels for either so it's frustrating |
23:02:50 | * | Demos__ joined #nim |
23:03:06 | * | Demos_ quit (Client Quit) |
23:03:41 | * | Demos quit (Ping timeout: 258 seconds) |
23:03:41 | * | Demos__ is now known as Demos |
23:04:22 | * | Demos_ joined #nim |
23:07:04 | FromGitter | <Varriount> You could always try shelling out money for Maya |
23:07:21 | FromGitter | <Varriount> Or if you're a student, you can get a student edition |
23:07:38 | * | Demos_ quit (Client Quit) |
23:07:58 | * | Demos_ joined #nim |
23:10:24 | * | Sentreen joined #nim |
23:17:03 | FromGitter | <zacharycarter> all these 3d programs suck / are way too complicated |
23:17:20 | FromGitter | <mratsim> Is there a “not ref” type class that catch any ref object, string, seq? Something that I can call like that: ⏎ ⏎ ```proc map*[T; U: not ref](t: Tensor[T], f: T -> U): Tensor[U] =``` ⏎ ⏎ ref/string/seq allocation are not compatible with OpenMP and needs specific care [https://gitter.im/nim-lang/Nim?at=59dd5500177fb9fe7e61cf37] |
23:32:58 | FromGitter | <mratsim> I guess this works: ⏎ ⏎ ```proc map*[T; U: not (ref|string|seq)](t: Tensor[T], f: T -> U): Tensor[U] = ⏎ ``` [https://gitter.im/nim-lang/Nim?at=59dd58aa3cb340a2610c18c0] |
23:36:42 | FromGitter | <zacharycarter> (https://files.gitter.im/nim-lang/Nim/vP6z/knight.png) |
23:36:49 | FromGitter | <zacharycarter> yay rendering w/ modo is working |
23:36:57 | FromGitter | <zacharycarter> now just to automate rendering from every 45 degrees :/ |
23:38:39 | * | libman joined #nim |
23:58:12 | * | Demos_ quit (Read error: Connection reset by peer) |