<< 10-10-2017 >>

00:01:44def-pri-pubzacharycarter: heyas
00:05:11*gangstacat joined #nim
00:12:10watzonAnyone know of a good nokogiri like package for nim?
00:13:02watzonI 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:36FromGitter<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:05dhalinar!eval let str = """!eval echo eval! "%s".format(%s); """; echo str.format(str);
00:28:07NimBotCompile failed: in.nim(1, 61) Error: attempting to call undeclared routine: 'format'
00:34:28dhalinar!eval import strutils; let str = """import strutils; !eval echo eval! "%s".format(%s); """; echo str.format(str);
00:34:30NimBotimport strutils; !eval echo eval! "%s".format(%s);
00:35:17dhalinar!eval import strutils; let str = """!eval import strutils; echo !eval "%s".format(%s); """; echo str.format(str);
00:35:19NimBot!eval import strutils; echo !eval "%s".format(%s);
00:35:41dhalinarsigh
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:43edubartecho "!eval echo 1"
00:39:51edubart!eval echo "!eval echo 1"
00:39:53NimBot!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:07dhalinar!eval
01:10:08dhalinarimport strutils
01:10:09NimBot<no output>
01:10:10dhalinarlet str = """!eval
01:10:11dhalinarimport strutils;
01:10:13dhalinarlet str = %s;
01:10:14dhalinarecho str.format(%s);
01:10:16dhalinar""";
01:10:17dhalinarecho 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:51skrylardid another chunk of the nfltk stuff.
04:26:37skrylarwould 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:38alexdayhello.
06:08:19*yglukhov quit (Ping timeout: 255 seconds)
06:11:35*libman quit (Quit: Connection closed for inactivity)
06:17:09alexdayhttps://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:59skrylaralexday, those are basically gensyms that prevent name collisions afaik
06:20:21skrylarex. nim has overloading, C doesn't, so the names have to be mangled
06:20:46skrylarif 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:09alexdayI 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:06FromGitter<Varriount> I believe the parsing code is mainly in compiler/parser.nim
06:39:31FromGitter<Varriount> However symbol generation like that will be handled in one of the backend modules
06:39:56alexday:( but who parses parser.nim . who generates the symbol table (who meaning which code)
06:40:12FromGitter<Varriount> What do you mean?
06:41:17FromGitter<Varriount> The C/C++ symbols are generated from a combination of the original symbol in Nim code, and a hash.
06:42:25alexdayOk, 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:15FromGitter<Varriount> Sure. The parsing code is recursive in nature.
06:43:21Araqcompiler/parser.nim is a recursive descent parser
06:44:03Araqname mangling is done as nimname_hash the hash is computed in compiler/sighashes.nim
06:44:21Araqthe concatenation is done in compiler/ccgtypes.nim
06:45:46alexdayI 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:43Araqfor Nim I wrote the initial version in Delphi
06:47:10Araqand then I wrote a tool pas2nim that can translate the used subset of Delphi to Nim
06:47:28Araqand then I ran pas2nim over the .pas files to produce .nim files
06:47:42Araqand then I used the Delphi compiled compiler to compile the .nim files
06:47:51*Kingsquee joined #nim
06:47:58Araqand then I used the Nim compiled compiler to compile the Nim compiler code
06:48:07alexdayI see.
06:48:57Araqthe Pascal version had some "nice" things like
06:49:27Araq{@ignore} pascalVersionHere(); {@emit nimVersionHere}
06:49:52Araqthat pas2nim would understand and Delphi ignore since it's a comment
06:50:33alexdaycool.
06:51:04skrylarall open bugs on rfc3339 are now fixed
06:52:58FromGitter<Varriount> skrlar: rfc3339?
06:53:26skrylarvarriount: a datetime module i did a month ago on nimble
06:53:32skrylarit was needed for toml stuff
06:59:52*xet7 quit (Quit: Leaving)
07:07:04alexdayAraq the pas2nim is written in pascal/delphi too?
07:07:29Araqit used to but I used pas2nim to translate it to Nim
07:07:40alexdayokay
07:08:02*claudiuinberlin joined #nim
07:08:36*awal joined #nim
07:09:34awalRumor has it we are discussing how nim was bootstrapped here
07:10:42Araqtrue
07:11:26awalAraq: I need to confirm the truth about Delphi :P How long ago are we talking about?
07:11:47Araqover 10 years ago
07:12:15awalWas Delphi a popular choice for compilers back then?
07:12:25awal10 years ago, I was probably 10 year old
07:12:52Araqnah, it wasn't exactly popular for compilers
07:13:08AraqI had my reasons for choosing it though.
07:13:56awalI'd be delighted to hear :)
07:14:29FromGitter<citycide> Araq: "Nim compiled compiler to compile the Nim compiler code" --> brain melted
07:14:39alexdaynim + concurrency == go-lang takedown
07:16:33Araqawal: Delphi had the best debugger and compile-times and its syntax was close enough to the imagined Nim to make pas2nim feasible
07:16:57Araqthe fact that array bounds are checked at runtime was also a nice bonus over C++
07:17:02awalMakes sense
07:17:48Araqit also was the language I was most familiar with and I had this code lying around for lexers and parsers ...
07:18:38Araqoh and you could write obj.field instead of obj->field :P
07:18:57Araqthat arrows man, boy do they suck
07:19:04alexday:D
07:19:13awalTrue
07:20:22FromGitter<BigEpsilon> Delphi 5 & 7 
07:20:35FromGitter<BigEpsilon> good old time
07:20:41Araqha, yep, used Delphi 5
07:20:55Araq6 was buggy and miscompiled my code :P
07:22:29Araqoh another fun fact: I never deallocated memory to get memory safety out of Delphi :-)
07:22:59Araqthe compiler would just leak until its completion, the Nim version had the GC
07:23:28Araqalso tried Boehm's GC with Delphi but it crashed
07:23:33FromGitter<BigEpsilon> I think DMD woks this way also
07:23:41Araqtrue
07:24:20AraqI also found a couple of bugs in FPC iirc
07:24:31Araqwhen feeding it with my source code
07:25:47*endragor quit (Remote host closed the connection)
07:26:40Araqearly versions of pas2nim were written in Lua...
07:27:37Araqit was a simple "here is a list of replacements to perform" script. totally unusable
07:28:30Araqstring.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:30ArrrrSo, why do global imports import modules from botton to top? Is this the normal behavior?
07:40:35*yglukhov joined #nim
07:41:11Araqno idea whar you mean
07:42:07ArrrrIn my nim.cfg, import in line 10 is resolved before import in line 5
07:42:14Arrrri would expect the opposite
07:43:22*claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
07:44:06Araqthat is unexpected yeah, but why would it cause problems?
07:44:58ArrrrIt 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:21planetis[m]hey shouldn't 'getFileSize' in system return an int? Instread it returns a int64.
08:15:49Araqfiles can be bigger than the supported address space so int64 is correct
08:16:07*endragor quit (Ping timeout: 255 seconds)
08:16:14planetis[m]oh ok thanks
08:20:32*endragor joined #nim
08:20:56FromGitter<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:27FromGitter<BigEpsilon> however some non related tests are failing
08:21:40*Vladar joined #nim
08:21:42FromGitter<BigEpsilon> And they do not fail on my machine
08:21:53FromGitter<BigEpsilon> it seems like a bug in the renderer
08:26:53Araqthe renderer changed :-)
08:27:08AraqI need to check how the tester builds c2nim
08:29:25FromGitter<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:17Araqah! thanks!
08:30:26FromGitter<BigEpsilon> I'll return to correcting the reorder pragma in the next days
08:30:27Araqthat's indeed a regression in the renderer
08:30:46Araqyay
08:31:00FromGitter<BigEpsilon> :)
08:31:41Arrrryay
08:35:18*skrylar quit (Remote host closed the connection)
08:37:45PMunchHmm, 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:59PMunchMarking it as {.compileTime.} made it work as expected
08:56:11PMunchOkay, 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:11PMunchMan, this switching between networks is killing me..
09:44:37AraqPMunch: static[T] has its problems
09:45:29PMunchYeah it's a bit strange sometimes
09:47:40*yglukhov joined #nim
09:49:45PMunchhttp://ix.io/B3X/
09:49:54PMunchThat's the issue I was talking about by the way
09:50:29PMunchThe call to getByName one line 12 says that it expected a static[string] but got a string
09:52:25PMunchIsn't karax on Nimble?
09:52:49AraqI'm sure it is?
09:53:20PMunchhttps://nimble.directory/search?query=karax
09:53:24PMunchDoesn'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:37PMunchIt's quite strange since it has a .nimble file
09:56:07PMunchSo 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:54FromGitter<krux02> but nimble has problems publishing
10:03:01FromGitter<krux02> don't ask me why
10:04:14PMunchWhat do you mean problems publishing?
10:04:40FromGitter<mratsim> nimble publish is quite picky
10:05:23*yglukhov joined #nim
10:05:39PMunchOh right, I've just always manually pulled the packgages repo and published that way :P
10:05:57Araqgithub is constantly changing its API, I think
10:06:53Araqwhat's the point in publishing anyway, just make nimble assume it's on github
10:07:19Araqand araq/karax is required for package disambiguation anyway in the longer run
10:07:40euantorgo down the Go route and `import github.com/nim-lang/irc` (or not, please)
10:08:03euantorBut I do like `araq/karax` type schemes. Composer (PHP's package manager) works that way and is a nice idea
10:08:18FromGitter<krux02> well I do like the Go route
10:08:22PMunchWait, araq/karax? Isn't it pragmagic/karax?
10:08:29Araqoh yeah my bad lol
10:08:42FromGitter<krux02> it's not perfect, but publishing is super easy
10:09:01FromGitter<krux02> keeping compatible versions is not
10:09:44Araqkrux02: still nimble could say "not in packages.json, trying github..."
10:11:05AraqI 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:37Araqsure clone the code to .nimble and throw away all the .git meta information
10:11:46FromGitter<krux02> I like it in go, that when I get a package it is a true git clone
10:12:01Araqreplacing it with foo-1.0, foo-2.0
10:12:17FromGitter<krux02> therefore I can simply make a change in the library when I think it is a good idea
10:12:57Araq^ that is what made me write "nawabs"
10:13:10FromGitter<krux02> what is nawabs?
10:13:33Araqa toy project of mine to manage a directory full of git repos
10:13:40FromGitter<krux02> not another web abstraction binary source?
10:13:54Araqwhat? no, I don't think so.
10:14:16FromGitter<krux02> :P I was just trying to make sense of those letters
10:14:49FromGitter<gokr> I am having a hard time coming up with a reasonable way of sharing "config stuff" between threads.
10:15:50FromGitter<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:28FromGitter<gokr> sharedtables sounded so nice, but... I am not sure how to use it for strings for example.
10:17:40Araqgokr: send it via a message to ta threadvar is exactly the way to go
10:17:56Araqkrux02: "nobody agrees with this approach of building software"
10:18:13FromGitter<gokr> mmm, ok. It just feels a bit... convoluted.
10:18:31Araqwell you can also pass the config around to every proc that requires it
10:18:51Araqthe old "globals are bad but the other solutions suck more" problem
10:22:03PMunchGlobals aren't that bad if they're static
10:22:23Araqglobals make everything non-reentrant
10:22:37PMunchFor a config loaded before the threads spin up I don't see the problem
10:24:08Araqtry to turn a 100_000 loc codebase into a library and you'll see the problem
10:24:26Araqhappened to me with the Nim compiler...
10:24:43Araqslowly removing all globals in there
10:26:51Araqkrux02: btw I finally figured out destructors, moves and copies (I think)
10:27:28FromGitter<krux02> cool
10:27:35FromGitter<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:50PMunchAh, I can see that being an issue Ara
10:29:54PMunchAraq*
10:30:22PMunchSorry 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:49FromGitter<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:40Araq Tip: 1 messages have been suppressed, use --verbose to show them.
10:53:40Araq Error: Execution failed with exit code 1
10:53:40Araq ... Command: git pull https://github.com/nim-lang/packages.git master
10:53:41Araq ... Output: From https://github.com/nim-lang/packages
10:53:43Araq ... * branch master -> FETCH_HEAD
10:53:46Araq ... Auto-merging packages.json
10:53:47Araq ... CONFLICT (content): Merge conflict in packages.json
10:53:50Araq ... 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:21FromGitter<Yardanico> yay! https://github.com/nim-lang/Nim/pull/5910
11:17:32FromGitter<Yardanico> time to update nim again it seems :P
11:19:03FromGitter<Yardanico> oh, and also arrays are not converted to cstring anymore?
11:19:30Araqno, but ptr to array is.
11:20:46Araqa very nice improvement, thanks krux02!
11:21:56FromGitter<Yardanico> araq: it seems https://github.com/nim-lang/Nim/issues/6350 can be closed
11:22:09FromGitter<Yardanico> at least first example now works
11:26:06FromGitter<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:40FromGitter<Yardanico> also https://github.com/nim-lang/Nim/issues/2942 :)
11:29:42*claudiuinberlin joined #nim
11:31:50FromGitter<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:17PMunchCan I assign a vdom node in Karax to an identifier?
12:03:49Araqyou can set the 'id' field in the DSL
12:06:14PMunchHmm
12:06:17PMunchYeah that's true
12:10:06dom96Araq: 'publish'? That's your code, no? :P
12:11:27dom96lol, people trying to get NimBot to go into an !eval loop
12:11:33dom96nice try
12:12:47FromGitter<Yardanico> !eval echo [1,2,3]
12:12:49NimBotCompile failed: in.nim(1, 6) Error: cannot instantiate: echo[1, 2, 3]; got 3 type(s) but expected 0
12:12:50PMunchHaha, didn't even think of that
12:13:14FromGitter<Yardanico> @doo
12:13:21PMunch!eval echo "!eval \"Hi\""
12:13:23NimBot!eval "Hi"
12:13:58FromGitter<Yardanico> @dom96 are you updating the bot to eval using devel version?
12:14:09FromGitter<Yardanico> It it's running 0.17.2?
12:14:23PMunchAraq, I was wanting to avoid what is fixed here: https://github.com/pragmagic/karadock/commit/2dfd3466ee2f9a2affcbc1c51281c04417d4a184
12:14:56PMunchNot sure if I really need to though
12:15:06PMunchAs Karax already auto-updates the UI
12:15:34PMunchOh wait, if I separate layouts from widget generation then I would probably want to do it.
12:17:20dom96Yardanico: it uses the playground: play.nim-lang.org
12:24:42FromGitter<BigEpsilon> this is a bug right ? https://play.nim-lang.org/?gist=f92e0ddcce67df8ca604a253ead94e21
12:35:33yglukhovdom96: hey, could you pls bump nim-lang/gtk2 release?
12:36:03yglukhovthere's a compilation error with recent nim currently. fixed, but not tagged.
12:36:20dom96sure
12:38:06dom96done
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:53AraqBigEpsilon: yes indeed
12:52:09FromGitter<BigEpsilon> @Araq , ok I'll post an issue
12:52:35*ibutra joined #nim
12:53:01ibutraDoes a documentation for the nim.cfg exist somewhere? And if so can sombeody point me to it?
12:54:22cremCode is the best documentation!
12:54:38crem(I don't know the answer, just saying random stuff)
12:55:00dom96the .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:07ibutraalright, 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:57FromGitter<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:44PMunchHmm, 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:27FromGitter<Varriount> @mratsim Why wouldn't it?
14:17:49*claudiuinberlin joined #nim
14:17:54FromGitter<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:15PMunchHow can I check if the current target is js or c?
14:18:47yglukhovdom96: thanks!
14:19:29PMunch"when defined(js)" seems to work for js, but "when defined(c)" doesn't seem to work for c..
14:19:43dom96edubart: you can use `template` to create an alias
14:25:51FromGitter<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:10dom96yes
14:29:17*zolk3ri joined #nim
14:29:32*claudiuinberlin joined #nim
14:31:39FromGitter<mratsim> @varriount there was some change to string and array of chars https://github.com/nim-lang/Nim/commit/3308d265816b342a842e7cabef492a54ea722e74
14:34:36FromGitter<Bennyelg> @onionhammer
14:34:59FromGitter<Bennyelg> @sschober
14:35:47FromGitter<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:53FromGitter<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:51PMunchhttps://github.com/PMunch/genui
14:49:02PMunchAdded the Karax back-end now
14:49:26PMunchWorks 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:36FromGitter<Varriount> @Benny use a state container or global Boolean?
14:50:32PMunchAnd 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:18AraqPMunch: 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:48FromGitter<Yardanico> PMunch: you can also use some code from NiGui since it's MIT
15:48:18FromGitter<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:11dom96!eval import strutils; echo("0 0 0 0".split(" "))
16:05:13NimBot@[0, , 0, , 0, , 0]
16:05:25dom96!eval import strutils; echo("0 0 0 0".splitWhitespace)
16:05:28NimBot@[0, 0, 0, 0]
16:05:46dom96Best REPL
16:08:57FromGitter<Yardanico> What Nim version it uses?
16:13:00dom96!eval echo CompilerVersion
16:13:01NimBotCompile failed: in.nim(1, 6) Error: undeclared identifier: 'CompilerVersion'
16:13:23dom96!eval echo NimVersion
16:13:26NimBot0.17.2
16:13:26*yglukhov joined #nim
16:13:31FromGitter<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:40FromGitter<zacharycarter> I need a blender guru now
16:34:53dom96Maybe ask in #blender?
16:35:05FromGitter<zacharycarter> wasn't aware that was a thing
16:35:07FromGitter<Bennyelg> Hey, I worked with blender 2 years
16:35:21FromGitter<Bennyelg> but I didn't touch it 2 years now :|
16:35:22FromGitter<Bennyelg> hehe
16:35:26FromGitter<zacharycarter> haha
16:35:54FromGitter<Bennyelg> Great 3d app
16:36:07FromGitter<zacharycarter> I hate it :p
16:36:22FromGitter<Bennyelg> I design interiors with it
16:36:25FromGitter<Bennyelg> desinged
16:37:29*claudiuinberlin quit (Quit: Textual IRC Client: www.textualapp.com)
16:47:49FromGitter<Yardanico> @dom96 would it make more sense to use devel on NimBot?
16:48:20dom96that's something that zacharycarter would need to make possible
16:48:34FromGitter<zacharycarter> ?
16:48:55dom96NimBot uses your playground's API
16:49:02FromGitter<zacharycarter> oh haha really?
16:49:09dom96yeah, of course
16:49:14FromGitter<zacharycarter> :P
16:50:07FromGitter<zacharycarter> if there's a docker dev nim image I could make that possible
16:50:25FromGitter<zacharycarter> it requires rebuilding the docker image though which isn't a big deal
16:53:46Araq!eval echo system.hostOS
16:53:49NimBotlinux
16:53:55Araq!eval echo system.hostCPU
16:53:56NimBotamd64
16:54:23Araq!eval echo "I am out of ideas"
16:54:25NimBotI am out of ideas
17:00:37*sz0 quit (Quit: Connection closed for inactivity)
17:05:43dom96!eval import httpclient; getContent("http://example.org").echo
17:05:51NimBot<no output>
17:05:59dom96aww
17:11:27FromGitter<zacharycarter> networking is locked down on the docker container
17:14:12*ipjk joined #nim
17:14:19*Jesin joined #nim
17:15:04FromGitter<mratsim> Stress testing the garbage collector:
17:15:13FromGitter<mratsim> (https://files.gitter.im/nim-lang/Nim/skd0/2017-10-10_19-14-19.png)
17:16:45AraqgenericReset is not the GC
17:17:12Araqit's part of the more crappy parts of Nim's runtime
17:17:43Araqusually it shouldn't be generated in a hot loop
17:18:07FromGitter<mratsim> What generates it so that can avoid it? :P
17:18:15Araqfigure out where it's generated and create a bug
17:19:01FromGitter<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:19dom96Araq: https://gist.github.com/dom96/749aff1749089ace5a79eb796f3eeeff
17:36:28dom96I get an error that this.kind needs to be known at compile-time
17:36:41dom96I've got a doAssert up there though, is supporting this on the roadmap?
17:37:18Araqno, it is unclear whether we want to do more of this path sensitive typing
17:37:28*claudiuinberlin joined #nim
17:37:43AraqI can feel the pain though, recently I stumpled upon this too
17:37:56dom96yeah, it sucks :\
17:38:00dom96But 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:25Serenitortoying around with embedded nims:
18:05:25SerenitorI 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:25Serenitorshould I redo makeModule and/or newCtx as well?
18:07:23*claudiuinberlin quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
18:08:52AraqSerenitor: I don't remember tbh, but NimEdit does "hot code reloading"
18:08:59Araqso checkout its code please
18:09:53Serenitorah thanks for the pointer, so far I've only been crawling through nimble source
18:10:34FromGitter<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:15Araqthe compiler wants to know a constant's value
18:11:22Araqyou have to use 'var' here
18:11:34Araqthese are called "fake" vars :P
18:13:15FromGitter<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:21FromGitter<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:19FromGitter<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:35PMunchHmm, when using quote do can I use `` for special procedure names
18:49:59livcdthat enhancing the irc bot in nim is without sound ?
18:50:30FromGitter<Yardanico> PMunch: yes!
18:50:39FromGitter<Yardanico> it's even in the docs
18:50:52FromGitter<Yardanico> The original meaning of the interpolation operator may be obtained by escaping it (by prefixing it with itself):
18:50:59FromGitter<Yardanico> so instead of "`" you do "``"
18:51:16dom96livcd: I can hear sound. Maybe you need to skip ahead?
18:51:16PMunchAh right
18:51:20FromGitter<Yardanico> something like ⏎ proc ``+``(a, b: MyObj): MyObj = a.x + b.x
18:51:28FromGitter<Yardanico> you can also define custom operators instead of "`"
18:51:32FromGitter<Yardanico> for example "@"
18:52:23PMunchHmm, it didn't seem to like that..
18:52:32PMunchvdom.``value=``(`s1`, $`s2`)
18:52:56PMunchComplains that "identifier expected, but found '`'"
18:53:46livcddom96: ahh some weird combination of ublock and safari
18:53:49livcdworks fine in chrome
18:53:53livcdthanks for confirming
18:55:32livcdhmm still cant change it to 1080p. everything is a bit blurry
18:55:51FromGitter<Yardanico> dom, are you streaming rn?
18:56:45livcdit's already over :)
18:56:50FromGitter<Yardanico> eh :(
18:57:09FromGitter<Yardanico> wwwait
18:57:13FromGitter<Yardanico> nimbot uses playground?
18:57:16FromGitter<Yardanico> lol
18:58:35livcdah i need to watch it tomorrow morning
18:58:39livcdyou have a very calming voice
18:58:41livcdmakes me sleepy
18:58:49*solitudesf quit (Remote host closed the connection)
18:59:51FromGitter<Yardanico> dom96: why are you using bodyStream ? :)
18:59:55FromGitter<Yardanico> you can just use "await resp.body"
19:00:17FromGitter<Yardanico> https://github.com/nim-lang/nimbot/blob/master/src/playground.nim#L20
19:01:00FromGitter<zacharycarter> lol I was about to be like - wait that's my project
19:02:21livcdsuch small community...cant use nim yet :3
19:02:36FromGitter<zacharycarter> who said that?
19:02:38PMunchlivcd, mall but very active and friendly :)
19:02:47PMunchs/mall/small
19:03:36livcdi was joking :)
19:03:52FromGitter<zacharycarter> oh haha
19:04:15FromGitter<Yardanico> !eval import macros; macro test(): untyped = quote do: echo "hi"; test()
19:04:17NimBot<no output>
19:04:17FromGitter<Yardanico> wrong indentation :)
19:04:25FromGitter<Yardanico> lol
19:04:45dom96Yardanico: oops :)
19:04:45ArrrrIs devel stable? i see interesting additions
19:04:48FromGitter<Yardanico> oh wait it compiles
19:04:49PMunchHmm, I really can't get it to do this correctly..
19:04:58FromGitter<Yardanico> ah
19:04:59FromGitter<Yardanico> I see
19:05:00dom96You'd think I would know this seeing as I've implemented this bodyStream thing
19:05:03ArrrrThe destroyer and dfa thing
19:05:24FromGitter<Yardanico> it embeds "test()" call in a macro instead of doing it outside
19:05:30dom96There are some bugs in the playground :)
19:05:44FromGitter<Yardanico> well it's not a playground bug
19:05:48PMunchI 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:05FromGitter<Yardanico> Arrrr: not much additions yet
19:06:08PMunchThe Gtk Table was especially annoying :P
19:06:09dom96livcd: hah, calming voice, really? That's nice to hear :)
19:06:11FromGitter<Yardanico> I mean
19:06:17dom96I really want to get a better mic now
19:06:17FromGitter<Yardanico> I don't think Araq has enabled them yet
19:06:21FromGitter<Yardanico> or did he?
19:06:46FromGitter<Yardanico> let me check if initialization checking was fixed in my small project
19:06:47PMunchSo I'm trying to just write everything with it's package. But `value=` is giving me a hard time..
19:07:14FromGitter<Yardanico> you can create that name outside of the quote do
19:07:19FromGitter<Yardanico> and then just use `myProcName`
19:07:25FromGitter<Yardanico> instead of that quote do
19:07:32FromGitter<Yardanico> *Inside
19:07:33livcddom96: yes i might put you in my: "stuff that calms me down playlist"
19:07:42dom96:D
19:07:56PMunchI guess...
19:08:03FromGitter<Yardanico> hmm
19:08:42livcddom96: still calming even with all those: "stupid mac osx", "oh stupid" ^^
19:08:51dom96heh
19:08:57AraqArrrr: devel is stable and the new code is simply unused
19:09:01dom96ooh, 64 views already
19:09:11Araqand yes, it's very interesting stuff
19:09:43livcddom96: if you will have time put it on youtube as well :)
19:10:12dom96okay, will do. Kind of discouraged by what Google has done to YouTube in recent years.
19:10:31FromGitter<Yardanico> you can stream both to youtube and twitch at the same time
19:10:34dom96But I will suffer through it
19:10:35FromGitter<Yardanico> but it will be hard to manage chat :D
19:10:48FromGitter<Yardanico> also
19:10:52FromGitter<Yardanico> why are you not streaming at liveedu?
19:10:53dom96That would kill my bandwidth
19:11:00FromGitter<Yardanico> it was "livecoding" back in the days
19:11:06dom96Why should I? I've never heard of it
19:11:14FromGitter<Yardanico> well it's almost dedicated to programming
19:11:18FromGitter<Yardanico> almost fully*
19:11:23livcddom96: i would not think of Twitch as a platform where i would find Nim videos :)
19:11:37livcdso coincidentally i wanted to watch some nim related videos today
19:11:50FromGitter<Yardanico> https://www.liveedu.tv/live/
19:11:54dom96livcd: yeah, makes sense
19:12:01livcdthe first thing i checked was youtube then reddit/r/nim which pointed me to twitch
19:12:02dom96For discovery, YouTube makes sense
19:12:06FromGitter<Yardanico> but yeah, liveedu was better in the past
19:12:24FromGitter<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:36FromGitter<Yardanico> but it's good for livestreaming
19:12:41livcdYardanico are you the guy behind reel valley ?
19:12:44FromGitter<Yardanico> I even was livestreaming some nim coding :D
19:12:46FromGitter<Yardanico> nah
19:12:50FromGitter<Yardanico> it's @yglukhov
19:13:34livcdah you mentioned you speak russian so i thought you are him
19:13:52FromGitter<Yardanico> well I'm not the only one to be able to speak russian here :)
19:13:55FromGitter<Yardanico> araq can speak russian!
19:14:24FromGitter<Yardanico> ah, no, dom, don't even try it
19:14:25FromGitter<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:40livcddom96: also you guys need to sneak in the video to reddit.com/r/python :))
19:16:58dom96livcd: feel free to submit it there :P
19:17:16livcdi will
19:17:38livcdwas not nim like one of the top words / topics mentioned in /r/python anyway ? :) that was fun
19:18:01miranwell, i found out about nim from one thread in /r/python
19:18:11FromGitter<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:26miranit was something like 'i suffer from post-python depression, what next language should i choose?'
19:18:42miranthe top two recommendations, IIRC, were Nim and F#
19:19:31JappleAckmiran, why f# why not haskell?
19:20:02miranJappleAck: i've tried both and i like F# better (i know i know, blasphemy)
19:20:21miranhere is that thread: https://www.reddit.com/r/Python/comments/6c1jnv/postpython_dissatisfaction_syndrome/
19:20:24JappleAckif you choose f# you'll suffer from post-<del>jvm</del>.net depression
19:22:36livcdhow come nim is so popular in russian speaking countries
19:22:51dom96Because in mother Russia, Nim picks you.
19:22:51livcdcorrection: by russian speaking people
19:22:54dom96Sorry, couldn't resist.
19:23:20Araqbecause Russians know what "Vorsprung durch Technik" means
19:23:45FromGitter<Yardanico> dom96: tru
19:24:03AraqЯ плохо говорю по-русски
19:24:04dom96yay, people keep following me on Twitch :D
19:24:07JappleAcklivcd, 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:26FromGitter<Yardanico> Araq: but at least you CAN do it!
19:24:41livcdJappleAck: ah
19:24:43livcdthen
19:25:18livcdthere is an easy solution to grow community just make yandex write blogs about it and hopefully it gets big in China
19:25:21livcdlike Go
19:25:21livcd:-|
19:26:10*Demos quit (Ping timeout: 264 seconds)
19:27:28livcdAraq: whenever i see or hear german it reminds me of my beloved grandmother being very pushy and forced me to learn german
19:28:35JappleAcklivcd, 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:31JappleAckhe 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:00JappleAckand end of the story was like: "nim is the best one i found these days"
19:30:37livcdJappleAck: ahh that's interesting
19:32:37*Demos joined #nim
19:33:38*Demos quit (Client Quit)
19:34:19livcdAraq: i am coming from a Mantaken family if you have ever heard of us :S
19:34:28*Demos joined #nim
19:34:46dom96Araq: hrm. Strangely using 'untyped' for a parameter still complains that the identifier I pass it doesn't exist.
19:34:50dom96But using {.immediate.} fixes it
19:34:54dom96Any ideas why that could be?
19:37:34Araqdom96: 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:45dom96Araq: hrm, yep. I named the template `replace`
19:38:51*testaaasd joined #nim
19:38:51dom96I guess it clashed with a proc :\
19:39:59*TestNimBot joined #nim
19:40:39FromGitter<Yardanico> I just refactored nimbot a bit and want to test if it still works :P
19:40:46FromGitter<Yardanico> just a bit
19:40:52testaaasd!eval echo "hello"
19:40:54NimBothello
19:40:56TestNimBothello
19:41:12FromGitter<Yardanico> btw I'm running it on windows
19:41:27*JappleAck quit (Ping timeout: 240 seconds)
19:41:58testaaasd!lag
19:41:58NimBot9ms between me and the server.
19:41:58TestNimBot83ms between me and the server.
19:42:03testaaasdlol
19:42:28PMunch!eval echo "!eval echo \"!eval Hi!\""
19:42:30NimBot!eval echo "!eval Hi!"
19:42:32TestNimBot!eval echo "!eval Hi!"
19:42:33TestNimBot!eval Hi!
19:42:34NimBot!eval Hi!
19:42:35NimBotCompile failed: in.nim(1, 4) Error: invalid indentation
19:42:36TestNimBotCompile failed: in.nim(1, 4) Error: invalid indentation
19:42:45PMunchTihi
19:42:48FromGitter<Yardanico> LOL wtf pmunch :D
19:42:56PMunchThese really shouldn't be on at the same time
19:43:01FromGitter<Yardanico> I know
19:43:05FromGitter<Yardanico> I will shut it down now
19:43:07FromGitter<Yardanico> !ping
19:43:07NimBotpong
19:43:08PMunchForkbomb ftw!
19:43:08TestNimBotpong
19:43:20FromGitter<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:37FromGitter<Yardanico> PMunch: anyway this nim bot just uses playground for eval :)
19:46:51*TestNimBot quit (Read error: Connection reset by peer)
19:47:04PMunchYeah I know
19:47:21*TestNimBot joined #nim
19:47:31PMunchBut 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:45FromGitter<Yardanico> yeah I know
19:47:45PMunchAnd basically spam the channel by having the two bots talk to each other
19:47:53FromGitter<genotrance> reminds me of that alexa + google home video
19:48:03PMunchYeah 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:52FromGitter<Yardanico> https://www.youtube.com/watch?v=t5bYtcjWcPQ ?
19:50:59FromGitter<Yardanico> ah, alexa
19:51:17FromGitter<Yardanico> anyway a close ones
19:51:17FromGitter<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:07FromGitter<zacharycarter> they need the smart salt shaker to join in
19:56:48FromGitter<zacharycarter> http://www.mysmalt.com/
19:58:02FromGitter<zacharycarter> probably the most asinine invention we will ever see
20:00:47CalinouI think you guys are getting pretty salty over it…
20:01:02*Trustable quit (Remote host closed the connection)
20:04:42ipjk"SLEEK LOOK - A PERFECT CONVERSATION STARTER" - Ha!
20:05:05PMunchI dunno, I kinda like it
20:05:32PMunchDo you think you could get Google Now with salt and Alexa with pepper?
20:06:12PMunchMaybe a tube of ketchup for Bixby
20:09:17*nsf joined #nim
20:19:27*JappleAck quit (Ping timeout: 240 seconds)
20:20:03FromGitter<onionhammer> @Bennyelg Not sure what you mean; nim-templates very explicitly translates to "result.add" calls for its output
20:20:31FromGitter<onionhammer> you should be able to create a "layout" procedure that renders everyting around the body content you want
20:20:43FromGitter<Bennyelg> any example ?
20:21:34dom96cool that NimBot works on Windows :)
20:23:21zolk3ri:(
20:24:06*testaaasd quit (Quit: Page closed)
20:24:13*miran quit (Ping timeout: 258 seconds)
20:26:56dom96zolk3ri: why sad?
20:32:48*JappleAck joined #nim
20:33:16PMunchhttps://github.com/PMunch/genui
20:33:28PMunchWorks with Gtk and Karax at the moent
20:33:50PMunchSeems promising :)
20:36:42FromGitter<genotrance> @dom96 : can Nimbot already pull from documentation? like !search writeFile and it brings up all matching procs and details
20:37:16dom96genotrance: nope
20:37:28dom96but that would be an awesome feature
20:37:34dom96Wanna implement it? :)
20:39:18AraqPMunch: what do you think about designs?
20:39:33PMunchWhat do you mean by designs?
20:39:47AraqI mean a HTML based UI these days can be very stylish with all these CSS goodies
20:40:25Araqbut if you only describe the raw formulars so that they also work for Gtk you lose very much
20:41:14PMunchAh, 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:23Araqso maybe your DSL should ignore the "tags" that have no GTK equivalent
20:41:35PMunchI want to make it modular though
20:42:00Araqwell how would it work? the vdom nodes are one-to-one to the DOM nodes
20:42:11PMunchSo 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:40PMunchOkay, 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:47FromGitter<genotrance> @dom96 - I'd love to but right now I already have 5 nim projects competing for my attention!
20:44:16FromGitter<genotrance> another question - if I were on IRC, can I PM nimbot and get responses without having to spam this group?
20:44:46PMunchDoesn't seem like it genotrance
20:44:49dom96genotrance: no worries. Yep, you can.
20:44:59PMunchOh, if you query?
20:45:02dom96yes
20:45:14*TestNimBot quit (Read error: Connection reset by peer)
20:45:18dom96You still need to write it in the same way though
20:45:35PMunchAh, I did /msg and thought it didn't work but it just opened a background tab
20:45:58FromGitter<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:03FromGitter<genotrance> might as well get my ZNC server back up and running
20:47:43AraqPMunch: I don't really follow you
20:48:24Araqin html I have 3 nested divs and in GTK some box layout inside a tab layout or whatever
20:48:33PMunchMhm
20:49:35*ipjk quit (Read error: Connection reset by peer)
20:49:36Araqmy idea is to ignore the divs when target == gtk and the box layouts when target == karax
20:49:55Araqbut this can get messy very quickly
20:50:21Araqthe alternative is to have two distinct tree descriptions though, not good either
20:51:10Araqor maybe map the layout nodes to karax div elements with some given class attribute
20:52:43PMunchHmm, 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:43PMunchyou would use the getByName macro which would expand to a Gtk widget on compile time.
20:53:10PMunchWith this you could theoretically write a styling engine but I'm not sure if I'll bother doing that
20:53:55PMunchMaybe 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:52PMunchIt will hopefully all make sense in a little while when I get around to implementing more of it :)
20:58:15FromGitter<Yardanico> Hmm, https://twitter.com/mitsuhiko/status/917843174885863427
20:58:17Araqok
21:00:41*sleepyqt quit (Quit: WeeChat 1.9.1)
21:01:09shashlickwhy do you guys prefer Gitter vs IRC one way or the other?
21:01:54dom96IRC: because using a browser sucks
21:02:32FromGitter<zacharycarter> gitter: because all irc clients suck and having irc up is annoying
21:02:46FromGitter<zacharycarter> I almost always already have a browser open
21:02:48FromGitter<zacharycarter> what's another tab
21:03:58FromGitter<Yardanico> Gitter: because IRC on mobiles suck :)
21:04:11PMunchIRC, 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:16FromGitter<Yardanico> Also Gitter on Windows + IRC on Linux
21:04:26PMunchYeah, IRC on mobile is a bit of a pain..
21:05:32PMunchI'm actually thinking about writing a IRC/webservices (like Facebook) checker that will create notifications and send them to my phone
21:08:35shashlickthanks guys, I like IRC but same mobile/firewall headaches
21:09:01shashlickI thought Gitter is really cool until I found it isn't very good at keeping track of where I last left off
21:09:47dom96The way Gitter handles notifications annoys me
21:10:05PMunchhttp://www.linuxjournal.com/content/seamlessly-extending-irc-mobile-devices
21:10:05ehmrysome of us on are Matrix too, the bridge just hides it on the IRC side
21:10:10PMunchSomething like that
21:10:16dom96It keeps all the notifications and always shows all the messages when someone new highlights me
21:10:27dom96Which means I never have any idea what was said
21:10:54PMunchOh well, I'm off now
21:10:56*PMunch quit (Quit: leaving)
21:10:59FromGitter<zacharycarter> modo is so much better than blender but still confusing a f
21:11:00shashlick@dom96: I've noticed that
21:11:14shashlickGitter doesn't notify if you don't put the @
21:11:24shashlickehmry: what's Matrix? not heard of that
21:13:28ehmryshashlick: Matrix.org / riot.im
21:15:46AraqI actually prefer Gitter because it allows to send code snippets
21:16:14FromGitter<zacharycarter> ``````
21:18:40ehmryis it just me or are tuples a pain to use with macros, I get `typle[T,T]` types that cause syntax errors
21:20:03ehmry`tuple[...]` only seems to work with named fields
21:20:21FromGitter<Yardanico> Use (T, T)
21:20:25shodan45am I blind, or is there no link to the list of 3rd party nim modules on nim-lang.org?
21:20:25shashlickehmry: Matrix/riot seems very interesting - how well does history and mentions work?
21:21:01FromGitter<Yardanico> To make a tuple without field names (they'll be like Field0, Field1)
21:21:49FromGitter<Yardanico> But anyway - if you don't want a field name at all - use arrays?
21:23:20ehmryif I pass a `(T,T)` type to a macro it gets turned into `tuple[T,T]`
21:23:37ehmryI want an array of tuples, thats the issue
21:24:35ehmryshashlick: the riot client is another browser mess, it uses the notification stuff and there is searchable history
21:25:06FromGitter<Varriount> ehmry: Could you show us a code example?
21:27:43FromGitter<Varriount> @zacharycarter Have you looked at the price for Modo though?
21:28:13shashlickehmry: looks like Riot has a desktop app as well
21:29:12FromGitter<zacharycarter> @Varriount yeah - I might still buy it
21:29:32FromGitter<zacharycarter> no matter what I use Im' having issues - modo or blender
21:29:42FromGitter<zacharycarter> I really need an artist :P
21:30:49shodan45@zacharycarter: nahhh... programmer art FTW! ;)
21:31:04shodan45just look at Notch & Minecraft! :D
21:31:20FromGitter<zacharycarter> screw notch
21:31:22FromGitter<zacharycarter> AND his fedora
21:31:39FromGitter<zacharycarter> I dislike that guy
21:32:10FromGitter<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:31ehmryshashlick: nope, its electron
21:33:35dom96I love Notch. :)
21:33:41FromGitter<Varriount> @zacharycarter I got my start in programming helping write servers for Minecraft
21:33:56dom96I wouldn't call Minecraft "a shitty Java game"
21:34:03FromGitter<zacharycarter> the original minecraft was
21:34:04FromGitter<Varriount> @zacharycarter Let me tell you, the multiplayer protocol was less than ideal
21:34:07dom96I played it when it was still in Alpha and boy was I immediately hooked
21:34:08shodan45stupid money? what was it, $2.5B? "stupid" doesn't cover it xD
21:34:35dom96But you know, I don't think it's all brilliant for him
21:34:37FromGitter<zacharycarter> I don't mean the game was shitty, the game idea is pretty fantastic, the original implementation was shitty
21:34:53FromGitter<zacharycarter> well it certainly killed his gamedev career
21:34:56FromGitter<zacharycarter> not sure how you top minecraft
21:35:06shashlickehmry: ugh, looks like there are other matrix clients too but persistence seems really nice
21:35:07dom96He's divorced, doesn't know who he can trust and in general seems rather depressed based on his tweets.
21:35:45FromGitter<Varriount> @zacharycarter https://corbinsimpson.com/entries/take-a-bow.html
21:35:56shodan45I use quassel for IRC & mostly like it. There's an android app, too.
21:36:09ehmryshashlick: persistence is in the matrix protocol, riot is just the javascript fronted
21:36:24dom96Like with many things, I've had a lot more interest in Minecraft when it wasn't mainstream :)
21:36:27shodan45I should clarify: quassel with a separate quassel core server
21:36:56FromGitter<zacharycarter> does that mean you're going to abandon Nim when it's the most popular programming language out there?
21:36:58FromGitter<zacharycarter> :P
21:37:48*jjido quit (Remote host closed the connection)
21:38:21shodan45anyone know if nimqml works on macos? it says only windows & linux, but I see some evidence of mac support in the code
21:38:30shodan45and I don't have a mac to test it
21:40:24shodan45https://github.com/filcuc/nimqml/blob/master/src/private/dotherside.nim#L7
21:41:19shashlickshodan45: maintaining the server is a pain though, just like the ZNC instance I setup
21:41:29shashlickehmry: how about the other matrix clients?
21:41:49shodan45shashlick: it is? I don't think I've touched it since I installed it
21:42:24shashlickagreed, but after a few months, my server went down and i'm too bored to hook it up and check :P
21:42:41shodan45IIRC it was a little weird during the initial config, but that was it
21:43:40CalinouMinecraft 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:55Calinouand no, Java isn't the reason Minecraft runs slowly on potato PCs
21:44:41Calinoueven 15 years ago, it was possible to write optimized Java code that ran pretty fast: https://bytonic.de/html/benchmarks.html
21:45:05Calinou(keep in mind that modern Java can be optimized even further)
21:45:10CalinouJava 9 was recently released, by the way :)
21:45:11dom96zacharycarter: possibly :P
21:46:09shodan45dom96: don't abandon it, just fork it... call it "min" ;)
21:46:55ehmryshashlick: I haven't tried them, they aren't packaged for linux or they don't support the e2e crypto
21:48:33shashlickehmry: cool will check them out, am on Windows and browser might be my only choice with work proxy
21:48:44ehmryVarriount: https://gist.github.com/ehmry/9366a5cf85877d327d8d23e3d47ca9c9
21:50:39*Arrrr quit (Read error: Connection reset by peer)
21:55:48FromGitter<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:27ehmryI just don't know how to macro then
22:00:50*Demos joined #nim
22:01:07FromGitter<edubart> anyone have a workaround for https://github.com/nim-lang/Nim/issues/6497 ?
22:01:36FromGitter<edubart> or quick tip to easy fix
22:02:05*Demos quit (Client Quit)
22:02:08FromGitter<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:15ehmryVarriount: meh, a macro is premature in my case
22:21:37FromGitter<Varriount> @zacharycarter What are you modeling?
22:38:32FromGitter<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:40FromGitter<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:04FromGitter<Varriount> You could always try shelling out money for Maya
23:07:21FromGitter<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:03FromGitter<zacharycarter> all these 3d programs suck / are way too complicated
23:17:20FromGitter<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:58FromGitter<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:42FromGitter<zacharycarter> (https://files.gitter.im/nim-lang/Nim/vP6z/knight.png)
23:36:49FromGitter<zacharycarter> yay rendering w/ modo is working
23:36:57FromGitter<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)