<< 13-10-2018 >>

00:06:08*PMunch quit (Remote host closed the connection)
00:14:37*Sargun_ is now known as Sargun
00:40:07*zachk quit (Quit: Leaving)
00:47:36*vlad1777d_ joined #nim
01:23:42FromGitter<zacharycarter> o/
01:24:10FromGitter<zacharycarter> it looks like I'm going to soon have a lot of free time - well at least I won't have 8-12 hours of my day chewed up by my commute and work
01:24:14FromGitter<zacharycarter> so happy :D
01:26:33FromGitter<zacharycarter> hopefully that translates to more time to write Nim
01:28:35FromGitter<zacharycarter> anyone good with CSS animations / SVGs?
01:30:11*craigger joined #nim
01:30:34FromGitter<zacharycarter> https://codepen.io/zacharycarter/pen/BqNmwP - I have this animated logo I've been working on
01:31:01FromGitter<zacharycarter> but I need the animated gradient to not overflow and spill past the svg
01:31:07FromGitter<zacharycarter> not sure how to accomplish this
01:31:44*stefanos82 joined #nim
01:32:17*craigger_ quit (Ping timeout: 250 seconds)
01:34:12krux02zacharycarter: I know animation stuff, but I don't know a lot about SVG and basically nothing about CSS
01:34:26krux02but maybe I can be your rubber duck
01:34:43FromGitter<zacharycarter> well - unfortunately with CSS - it's never a problem you can rubber duck
01:34:59FromGitter<zacharycarter> it's always a problem where you have to understand some stupid clashing set of rules
01:35:06krux02what do you mean by overflow and spill?
01:35:49krux02so you mean it's not real complexity of the problem, it is arificial complexity of the tool chain?
01:35:55FromGitter<zacharycarter> a lot of HTML elements have the possibility of containing children in their markup
01:36:04FromGitter<zacharycarter> it's complexity baked into CSS
01:36:10krux02it's a hierarchy
01:36:12FromGitter<zacharycarter> you just have a ton of edge cases - like for instance:
01:36:12krux02yes
01:36:33FromGitter<zacharycarter> crap like this - https://css-tricks.com/popping-hidden-overflow/
01:36:46FromGitter<zacharycarter> it's not even worth trying to talk through - you just have to find someone that is a CSS wizard / guru and ask them to help you
01:36:52FromGitter<zacharycarter> otherwise you're just learning tedium IMO
01:37:08FromGitter<zacharycarter> but I respect people that want to pursue that tedium - it's just not for me - I never want to know it
01:37:24FromGitter<zacharycarter> there's no real logic to the rules - it's just totally random, and then there's the randomness of browser support thrown in to
01:38:26krux02sounds like fun
01:39:05krux02I wonder how long it is possible to add stuff to the web stack of technology until it breaks
01:39:28FromGitter<zacharycarter> well - I think we're there
01:39:40FromGitter<zacharycarter> you see more and more websites that are going back to the old style web
01:39:53FromGitter<zacharycarter> ditching the massive amounts of styling and bloat
01:40:11krux02I recently saw on youtube a video called "new js features that will make you dance" I was like, yea challenge accepted :P
01:41:29krux02by now I totally forgot what those features even were. But yea another story
01:42:02krux02web advertisement and big assets are most of the bloat
01:42:19krux02and frameworks
01:42:47krux02the more js libraries the better the website
01:44:02FromGitter<zacharycarter> lol
01:44:04FromGitter<zacharycarter> JS sucks
01:44:06FromGitter<zacharycarter> modern web sucks
01:44:14FromGitter<zacharycarter> CSS / HTML suck - we need something better
01:44:33krux02I like how on css tricks the side panel gets animations and color only when you put attention to it (mouse hovor on it), but when you concentrate on something else it just becomes unobstrusive in just one color
01:44:56krux02I would never try to implement it, but currently I honestly like it
01:45:15krux02yea html is hypre text markup langage
01:45:19krux02it is for hyper text
01:45:23krux02stuff like wikipedia
01:45:27krux02not application development
01:45:33krux02not UI development
01:46:40krux02but the link you gave me, I don't know what it is supposed to show me, for me the two examples look exactly identical, and both horrible because they both have nested vertical scrolling
01:46:56FromGitter<zacharycarter> lol
01:47:05FromGitter<zacharycarter> well - the point is CSS is fucked - if you read through the variances in the rules
01:47:11FromGitter<zacharycarter> like you said - it's all a hierarchy of rules
01:47:18FromGitter<zacharycarter> but there's all these corner / edge cases and tricks you can pull
01:48:15krux02that sounds like a great technology for reliable future proof software
01:49:38FromGitter<zacharycarter> lol yup!
01:49:45FromGitter<zacharycarter> especially sounds like a spec to build on top of!
01:50:53krux02I read some original ideas of the web where the idea was that styling was done client side
01:50:55*vlad1777d_ quit (Ping timeout: 250 seconds)
01:51:21krux02meaning everybody would see the website completely different, the website would only provide the contest and no styling at all
01:51:34FromGitter<zacharycarter> that's a really interesting concept or idea
01:51:40FromGitter<zacharycarter> whichever stage it got to :P
01:51:50krux02similar to how code editors have different fonts and highlighting rules and color themes
01:53:21FromGitter<zacharycarter> yeah
01:53:31FromGitter<zacharycarter> speaking of which - I'm using kakoune / trying to learn it
01:53:34FromGitter<zacharycarter> also just switched to fish shell
01:54:18krux02I am using fish as well
01:54:39krux02how is nim syntax highlighting in kakoune?
01:54:49krux02or do you just set it to python?
01:55:22FromGitter<zacharycarter> I haven't gotten that far yet - I actually haven't written any Nim with kak yet, because I've been working on this stupid website logo :P
01:55:29FromGitter<zacharycarter> but I will let you know as soon as I do - how it works out
01:55:47krux02I like the idea of kakoune. It doesn't sound stupid
01:56:15krux02I don't like the abbreviaition kak
01:56:29krux02because kack is German for "shit"
01:56:54FromGitter<zacharycarter> lol
01:56:59FromGitter<zacharycarter> what is mawwwwww german for?
01:57:00FromGitter<zacharycarter> lol
01:57:03krux02but not as in "Oh crap" more like in "shit product"
01:57:09FromGitter<zacharycarter> right
01:57:25krux02mawwwww?
01:57:37FromGitter<zacharycarter> that's the name of the guy that wrote kak haha - or his handle or whatever
01:57:43FromGitter<zacharycarter> I don't know how many w's there are
01:57:58krux02well that isn't German
01:59:16krux02back to the animation
01:59:51krux02waht i have seen so far is an animation of a square that opens
02:00:11krux02but what do you mean with overflow, I don't understand that part
02:01:51*opi_ quit (Quit: ZNC - http://znc.in)
02:02:17krux02well, the poppling-hidden-overflow example is just bad in every way. Don't do too much nesting.
02:02:31krux02a scroll bar within a scroll bar should never ever be necessary
02:02:31*opi_ joined #nim
02:02:59krux02that will just confuse the everybody on what effect the scroll whell should have
02:04:45*banc quit (Quit: ZNC - http://znc.in)
02:07:59FromGitter<zacharycarter> yeah
02:08:26FromGitter<zacharycarter> well - regarding the animation - I don't want the second to last part of it - where the black streak goes across the square - to continue past the edge of the square
02:08:44FromGitter<zacharycarter> but it's hard - because I need to also show the side of the square rotating 90 degrees clockwise
02:09:12FromGitter<zacharycarter> so on the svg element in the HTML - I have to assign the css rule of `overflow: visible` so that the content which is outside the bounds of the SVG element is shown
02:09:13*craigger quit (Read error: Connection reset by peer)
02:09:22FromGitter<zacharycarter> the black streak animation thing - isn't actually part of the SVG
02:09:51FromGitter<zacharycarter> it's a separate div element that is beneath the SVG in the dom hierarchy
02:09:59FromGitter<zacharycarter> BUT - they are both grouped inside a single parent container element
02:10:37*craigger joined #nim
02:11:45krux02I am sorry I can't really help you
02:11:50krux02I need sleep now
02:11:54krux02night is almost over
02:11:59krux02good night
02:12:06*krux02 quit (Remote host closed the connection)
02:16:41*craigger quit (Read error: Connection reset by peer)
02:17:09*craigger joined #nim
02:22:55*banc joined #nim
02:33:58FromGitter<zacharycarter> night bud!
03:05:21*darithorn joined #nim
03:17:15*chemist69 quit (Ping timeout: 252 seconds)
03:19:15*chemist69 joined #nim
03:29:40*Ven`` joined #nim
03:32:10*dddddd quit (Remote host closed the connection)
03:32:51*Ven`` quit (Client Quit)
03:34:55*Death916_ is now known as spookydeath916
03:42:10*Ven`` joined #nim
03:46:08*Ven`` quit (Client Quit)
03:46:55*Ven`` joined #nim
03:47:25*Ven`` quit (Client Quit)
03:51:00*Ven`` joined #nim
03:53:41*Ven`` quit (Client Quit)
03:56:47*Ven`` joined #nim
04:03:34*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
04:07:21FromGitter<yyyc514> `(all.score and (1 shl bit_value)) > 0` grrr why would this not work at all
04:07:27FromGitter<yyyc514> gotta be somethign stupid
04:11:04FromGitter<yyyc514> oh stupid my table is all wrong :)
04:11:08FromGitter<yyyc514> duh
04:50:32*darithorn quit ()
05:18:27*chemist69 quit (Ping timeout: 252 seconds)
05:19:28*chemist69 joined #nim
05:53:21*kapil____ joined #nim
06:09:27*MyMind joined #nim
06:10:03*Sembei quit (Ping timeout: 250 seconds)
06:15:14*tzui_ joined #nim
06:17:03*tzui_ quit (Client Quit)
06:17:14*tzui_ joined #nim
06:17:29*tzui_ quit (Client Quit)
06:17:37*tzui joined #nim
06:28:28Araqhmm my move optimizer optimizes away overloaded assignments...
06:31:02*narimiran joined #nim
06:32:38narimiranAraq: i feel so reliefed it is not my fault :)
06:34:19Araq:-/
06:36:28AraqI'm disabling this section of the test... it's hard to fix, the compiler is way too smart/aggressive
06:37:02narimiranbtw, is there a quicker way than "choosenim update devel" to get the latest devel version, if i have cloned nim repo?
06:39:14Araqgit pull --rebase && koch boot -d:release
06:39:38narimiranthanks, will try it
06:40:16Araqit was only this one test, right?
06:40:21narimiranyes
06:40:58narimiran`block toverload_asgn:` on line 153
06:44:20*nc-x joined #nim
06:48:08nc-xAny ideas why on my windows, `koch boot -d:release` is failing on Iteration 3 with `commands.nim(51, 16) Error: cannot open file: ../doc/basicopt.txt`
06:48:15nc-x(on latest devel)
06:49:20Araqdo you have this file?
06:49:29Araq(relative to commands.nim)
06:49:59nc-xyes
06:50:19nc-xAnd it is failing on `Iteration 3`. First 2 iterations compile fine.
06:51:20AraqVCC?
06:51:43nc-xIf it gets compiled on appveyor then maybe I will just re-clone from github and start over again.
06:51:50nc-xNope, its gcc.
06:52:29nc-xFew days ago it worked fine. Now, i just did `git pull` and then `koch boot -d:release` and its failing.
06:53:26nc-xgcc 8.2.0 (mingw-w64 from msys2) to be exact
06:56:13Araqstrange but I never tested it with gcc 8.2
06:57:06Araqplease use the GCC 'finish.exe' can download for you
07:01:46FromGitter<technicallyagd> Does template only substitute code into the calling scope? or is there some more complex optimization going on at compiling
07:05:23FromGitter<technicallyagd> I have noticed that imported templates has access to private variables declared in its module, and those private variables even take precedence over the variable declared in the calling scope
07:05:28FromGitter<technicallyagd> For example:
07:06:53leorizeI think they have some special binding rules
07:07:07leorizeshould be in the Manual I think
07:08:27FromGitter<technicallyagd> In main.nim ⏎ ⏎ ```let hiddenInt = 42 ⏎ ⏎ template echoint*() = ⏎ echo hiddenInt``` ⏎ ⏎ This would print 42 instead of 0 [https://gitter.im/nim-lang/Nim?at=5bc199eb64cfc273f9c18a6c]
07:09:25leorizetemplate isn't blindly subsituting code
07:09:32Araqthat's called a 'gensym'ed variable
07:10:15FromDiscord<demotomohiro> I also got this error
07:10:16FromDiscord<demotomohiro> commands.nim(51, 16) Error: cannot open file: ../doc/basicopt.txt
07:10:32leorizemake sure `doc` is available relative to compiler dir
07:10:41leorizecompiler source I mean
07:10:43FromDiscord<demotomohiro> On windows 8.1, gcc 8.1.0
07:11:23FromDiscord<demotomohiro> doc/basicopt.txt is exists
07:11:29nc-xsomehow slurp is failing with `nim2.exe` and is not detecting the file
07:14:51nc-xwith vs2017 it fails with `msgs.nim(85, 39) Error: ambiguous call; both tables.[](t: var Table[[].A, [].B], key: A)[declared in ..\lib\pure\collections\tables.nim(187, 5)] and tables.[](t: Table[[].A, [].B], key: A)[declared in ..\lib\pure\collections\tables.nim(181, 5)] match for: (Table[system.string, lineinfos.FileIndex], string) FAILURE` on Iteration 2.
07:18:51FromGitter<technicallyagd> But from the manual, it seems like `gensym` symbols only apply to the variables declared inside the template, and in this example `hiddenInt` is declared outside of it.
07:19:35Araqwhich is consistent with your example code.
07:24:51FromGitter<technicallyagd> But in the example `hiddenInt` isn't declared in the template
07:26:17FromGitter<technicallyagd> or does the template automatically declare variables if it hasn't been declared?
07:26:19*erratic quit (Quit: this server has gone to sleep)
07:27:20FromGitter<technicallyagd> I thought `gensym` only means that it's not introduced into the calling scope as opposed to `inject` which would be
07:28:09nc-xAraq, demotomohiro: compiles fine with https://nim-lang.org/download/mingw64-6.3.0.7z
07:28:27narimirancan anybody using choosenim confirm that "koch boot -d:release" works for them?
07:29:47*Widdershins quit (Ping timeout: 244 seconds)
07:30:49nc-xnarimiran: Which OS and C compiler? because choosenim or no choosenim, nim devel currently does not compile atleast with gcc 8 and vs2017 on windows
07:31:15narimirannc-x Manjaro Linux 64bit, gcc 8.2.1
07:31:40nc-xtry older version of gcc
07:32:07nc-xon windows i had to use this version to compile devel https://nim-lang.org/download/mingw64-6.3.0.7z
07:33:04nc-xAnd if it works with older gcc, maybe raise an issue on github?
07:33:16narimirani think my problem might be few steps prior. "koch" is not in the PATH, and when i'm in git repo folder, "./koch ..." produces an error "Requested executable is missing. (Path: /home/miran/.choosenim/toolchains/nim-#devel/bin/nim0)"
07:33:44FromDiscord<demotomohiro> When cwd = Nim\, executing ``nim c compiler\commands.nim`` success.
07:33:45FromDiscord<demotomohiro> When cwd = Nim\compiler, executing ``nim c commands.nim`` results ``commands.nim(51, 16) Error: cannot open file: ../doc/basicopt.txt``
07:33:45FromDiscord<demotomohiro> (On windows 8.1, gcc version 8.1.0 (x86_64-posix-seh-rev0, Built by MinGW-W64 project)
07:38:53*erratic joined #nim
07:40:25*nc-x quit (Quit: Page closed)
07:42:43Araqthe filenames are always relative to the current file the filenames are written in
07:42:52Araqso this error makes no sense to me.
07:45:19*nc-x joined #nim
07:46:10nc-xAraq: What do you make of the vs2017 error?
07:52:23*nc-x quit (Quit: Page closed)
07:53:10Araqit's known and some codegen issue that optimizes away some stack root so that Nim's GC is out of luck
07:53:19Araqwell that's my educated guess
07:56:04*Ullabj0rn joined #nim
07:58:19*nc-x joined #nim
07:59:48nc-xhttps://gitter.im/nim-lang/Nim?at=5bc19b6c600c5f64239f8626 Ambiguous call is due to some gc issue? Anyways it works with gcc 6.3.0 so its fine for now at least.
08:00:00*nc-x quit (Client Quit)
08:01:30*Ullabj0rn quit (Remote host closed the connection)
08:03:22*gmpreussner quit (Ping timeout: 244 seconds)
08:03:51*gmpreussner joined #nim
08:03:59Araqcorruptions can trigger all sort of wrong logic behaviour
08:04:11Araqbut sure, it could also be something else
08:07:27*nc-x joined #nim
08:08:36nc-xOkay so I updated gcc to version 8.2.0 rev 3. And `koch boot` works now. So it might have been a gcc issue or something.
08:08:59*nc-x quit (Client Quit)
08:11:56*aziz joined #nim
08:13:17*Widdershins joined #nim
08:16:55*rockcavera joined #nim
08:27:17*erratic quit (Ping timeout: 252 seconds)
08:33:04*shashlick quit (Remote host closed the connection)
08:33:11*wildlander quit (Excess Flood)
08:33:40*wildlander joined #nim
08:33:51*shashlick joined #nim
08:45:44*Vladar joined #nim
08:59:19*wildlander quit (Excess Flood)
09:00:06*wildlander joined #nim
09:10:01*aziz quit (Ping timeout: 268 seconds)
09:15:00*craigger_ joined #nim
09:17:09*craigger quit (Ping timeout: 252 seconds)
09:21:43*aziz joined #nim
09:25:16*aziz quit (Client Quit)
09:36:42*elrood joined #nim
09:37:15*wildlander quit (Excess Flood)
09:38:33*wildlander joined #nim
09:42:21*TheLemonMan joined #nim
09:43:46TheLemonManAraq, can we put the osx build under the allowed_failures for the time being?
10:05:22*Tariul joined #nim
10:11:24planetis[m]the destructor of a nested object is not called
10:12:09*tzui quit (Ping timeout: 252 seconds)
10:12:17*Tariulz joined #nim
10:14:27planetis[m]sorry
10:14:27*enthus1ast quit (Read error: Connection reset by peer)
10:15:25*Ven`` joined #nim
10:16:00*Tariul quit (Ping timeout: 268 seconds)
10:26:43*vlad1777d_ joined #nim
10:27:44TheLemonManone more hacktoberfest task: replace the deprecated methods in the compiler with their proper counterparts
10:27:58*erratic joined #nim
10:30:17*Tariulz quit (Quit: Leaving)
10:34:07narimiranthere is live streaming going on: https://www.twitch.tv/alehander42_
10:34:51*tzui joined #nim
10:35:12*tzui left #nim (#nim)
10:43:25FromGitter<bung87> wow , alexander dont use syntax highlight
10:45:13*vlad1777d_ quit (Ping timeout: 250 seconds)
10:49:04*rlr quit (Quit: -)
10:49:42*rlr joined #nim
10:50:11*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
10:52:32planetis[m]hardcore
10:55:16FromGitter<bung87> very high latency through vpn since it’s banned from china
10:57:01*wildlander quit (Quit: Konversation terminated!)
11:08:44*TheLemonMan quit (Quit: "It's now safe to turn off your computer.")
11:17:56*Ven`` joined #nim
11:27:12*enthus1ast joined #nim
11:42:43*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
11:52:21*kapil____ quit (Quit: Connection closed for inactivity)
11:55:37livcdanyone using emacs on Mac ? :)
11:56:19*Ven`` joined #nim
12:26:42*platoff joined #nim
12:37:33*xet7 quit (Remote host closed the connection)
12:38:36*xet7 joined #nim
12:41:29*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
12:41:55Araqhmm what about proc foo[T: StringLike](a: T; b: StringLike): T # use the same type of 'a' to construct the result
12:44:04*Ven`` joined #nim
12:44:41*krux02 joined #nim
12:46:23*xace quit (Read error: Connection reset by peer)
12:53:57*xace joined #nim
12:55:17FromGitter<yyyc514> are there any good templating engines for Nim?
12:55:24FromGitter<yyyc514> something like you’d use with a web framework?
13:01:15*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:01:36*Ven`` joined #nim
13:01:51*vlad1777d_ joined #nim
13:04:58federico3yyyc514 https://nim-lang.org/docs/filters.html
13:06:06FromGitter<yyyc514> interesting
13:06:19*Ven`` quit (Ping timeout: 252 seconds)
13:07:42FromGitter<yyyc514> is that not even mentioned from the library page?
13:08:44FromGitter<alehander42> well it's not a library
13:08:46FromGitter<alehander42> it's a lang feature
13:13:48FromGitter<yyyc514> ah so i don’t need to import anything
13:14:00FromGitter<yyyc514> is this in system then?
13:15:21*Ven`` joined #nim
13:16:46FromGitter<alehander42> i guess you shouldn't need , I haven't used it but you can take a look at e.g. nimforum https://github.com/nim-lang/nimforum/blob/master/src/main.tmpl
13:31:17*Ven`` quit (Read error: Connection reset by peer)
13:31:18*arecaceae quit (Ping timeout: 245 seconds)
13:33:04*Ven`` joined #nim
13:33:31*arecaceae joined #nim
13:37:50*noonien joined #nim
13:38:45*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
13:42:54*Ven`` joined #nim
13:51:58*tzui joined #nim
13:52:30*tzui left #nim (#nim)
13:58:17*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
14:14:29enthus1astyyyc514 there is also https://github.com/onionhammer/nim-templates https://flyx.github.io/emerald/
14:16:30enthus1astsomeday i will hopefully have enough willpower to extend my https://github.com/enthus1ast/nimWebTemplates to be more like onionhammer's
14:31:56*nsf joined #nim
14:33:26*Ven`` joined #nim
14:38:21*Ven`` quit (Ping timeout: 252 seconds)
14:44:34*Ven`` joined #nim
14:44:54*Ven`` quit (Client Quit)
14:45:44*Ven`` joined #nim
14:46:22*Ven`` quit (Client Quit)
14:48:50*Ven`` joined #nim
15:11:33FromGitter<alehander42> @arnetheduck thanks for the work on status-im's .travis.yml, I based my own .travis.yml on that and it's pretty fast
15:11:48FromGitter<alehander42> does anybody know why we don't have actual `language:` support tho ?
15:11:59FromGitter<alehander42> crystal seems to have it since 2015
15:12:18FromGitter<alehander42> it seems it's a matter of a PR and approval
15:12:26FromDiscord<treeform> I want to use my own number type:
15:12:30FromDiscord<treeform> fix16
15:12:45FromDiscord<treeform> but its very hard to use because I get errors like this:
15:12:46FromDiscord<treeform> Error: ambiguous call; both system.*(x: int, y: int)[declared in ..\..\..\..\..\p\Nim\lib\system.nim(873, 5)] and fixmath.*(a: fix16, b: fix16)[declared in ..\..\..\.nimble\pkgs\fixmath-0.2.0\fixmath.nim(74, 5)] match for: (int literal(20), fix16)
15:12:57FromDiscord<treeform> how can i get around this error?
15:13:19FromDiscord<treeform> can I some how unimport "system.<" ?
15:13:35FromDiscord<treeform> so that it it prefers my "fixmath.<" ?
15:14:36FromGitter<Vindaar> treeform: define your type as distinct?
15:16:34Araqyeah use a distinct type for this
15:16:58*Snircle joined #nim
15:19:21FromDiscord<treeform> its distinct
15:19:26FromDiscord<treeform> but it has converters
15:19:32FromDiscord<treeform> which are useful too
15:19:48FromDiscord<treeform> if I remove the converters < is not longer an issue but then some thing like
15:19:51FromDiscord<treeform> z = 0
15:19:53FromDiscord<treeform> is an error
15:19:55FromDiscord<treeform> and needs to be
15:19:59FromDiscord<treeform> z = 0.fix16
15:20:16narimiran...and that's a good thing ;)
15:20:57FromDiscord<treeform> I think it make code like this unreadable:
15:20:59FromDiscord<treeform> let X_DIR* = xvec3(1.fix16, 0.fix16, 0.fix16)
15:20:59FromDiscord<treeform> let Y_DIR* = xvec3(0.fix16, 1.fix16, 0.fix16)
15:20:59FromDiscord<treeform> let Z_DIR* = xvec3(0.fix16, 0.fix16, 1.fix16)
15:21:21FromDiscord<treeform> I want this:
15:21:22FromDiscord<treeform> let X_DIR* = xvec3(1, 0, 0)
15:21:22FromDiscord<treeform> let Y_DIR* = xvec3(0, 1, 0)
15:21:22FromDiscord<treeform> let Z_DIR* = xvec3(0, 0, 1)
15:21:47FromDiscord<treeform> I basically want to add another number type to nim, but it seems like its not possible and another number type will always be second class number
15:25:47FromDiscord<treeform> 0 can auto convert to int and float, but not my number type.
15:26:24FromDiscord<treeform> well it can, but then nim can't figure out which number function to use because both can work
15:26:37FromDiscord<exelotl> maybe it's not ideal but you could write a macro or template that adds the conversions for you
15:26:47FromDiscord<treeform> I think what I need is some sort of priority of " ambiguous call"s
15:27:05*krux02 quit (Remote host closed the connection)
15:27:10FromDiscord<treeform> @exelotl that is an idea
15:28:23FromDiscord<treeform> is there a way to undefined system.* in a module?
15:28:34FromDiscord<treeform> is there a way to undefine system.* in a module?
15:31:33*Snircle quit (Remote host closed the connection)
15:31:36FromDiscord<exelotl> no idea :s
15:35:27FromDiscord<exelotl> I was wondering, how come with have a different syntax for calls vs object constructors?
15:36:13FromDiscord<treeform> yeah that is another big problem
15:40:42*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
15:41:00Araqall you need is xvec4(a, b, c: int{lit})
15:41:31Araqyou can do 'import system except `*`' but it's useless
15:41:58Araqand no, object constructors having a different syntax than calls is not "another big problem"
15:43:29Araqone needs to use a design that fits Nim and to stop blaming the language for everything, resulting in this never ending stream of improvements/RFCs.
15:46:05*TheLemonMan joined #nim
15:49:39FromDiscord<exelotl> but why is it that way though? it seems like a kind of arbitrary inconsistency to me so I wonder if I'm missing something
15:49:56FromDiscord<treeform> Araq, harsh...
15:53:27Araqharsh but true and don't take it personal
15:53:44AraqI know you are not creating RFCs all day long
15:54:16Araqwhy is it what way? 0 has the type 'int literal(0)'
15:54:44Araqwhich you can match against via proc xvec4(a, b, c: int{lit})
15:55:07Araqand if the compiler tells you it's ambiguous it's because it is.
15:55:19FromDiscord<exelotl> [RFC] [Meta] Reducing the number of RFCs
15:56:19FromDiscord<exelotl> but yeah I mean why do we have Foo(x:10) but myProc(x=10)
15:57:03FromDiscord<treeform> but then new Foo(x:10) does not work...
16:01:57FromGitter<xmonader> @kaushalmodi great job, this will make nim binaries distribution more attractive to static builds fans :)
16:03:43*platoff quit (Quit: Textual IRC Client: www.textualapp.com)
16:04:05*Ven`` joined #nim
16:06:09*anamok joined #nim
16:06:11anamokhi
16:07:20narimiranhi
16:07:59anamokIn Python, when you work in a virtual environment, you create a requirements.txt file, which allows one to reproduce the complete virt. env. from scratch. In Nim, when I use nimble, is there something similar?
16:09:02FromGitter<xmonader> packages don't override themselves on nim, you can specify a certain version of the pkg and it'll be there on ur system AFAIK
16:10:02anamokBut if I give the project to someone, and I already installed some 3rd-party packages, how will the other person know what packages to install?
16:10:23FromGitter<xmonader> nimble install takes care of that @anamok
16:11:56anamokHow? Nimble installs to ~/.nimble, but in the project directory there is no equivalent of a requirements.txt . Or is there an option of nimble that I miss?
16:12:35narimiranmyProject.nimble file?
16:13:15FromGitter<alehander42> anamok, you mean "the dependencies" of a project
16:13:26FromDiscord<exelotl> @treeform what do you mean by that? I only ever saw `new` in Nim used like `new myVar`
16:13:33anamokYes. Does nimble update it automatically?
16:13:51anamokWhen I install a package?
16:13:56FromGitter<alehander42> e.g. https://github.com/nim-lang/nimforum/blob/master/nimforum.nimble
16:14:11FromGitter<alehander42> nimble installs the dependencies of a package, yes
16:14:46*platoff joined #nim
16:15:34anamokIf there's a nimble file, deps are installed, OK. I get that. But let's say I install a new package. Then do I need to add it to the .nimble file by hand?
16:16:27FromGitter<xmonader> @anamok yeah it there's no tool like pipreqs in nim to infer all deps for you
16:17:07FromGitter<alehander42> typically you write them in the nimble file first and then you run nimble install
16:17:18FromGitter<alehander42> similarly to the way people use e.g. gemfiles or others
16:18:02anamokI see. So when I create a new project, even if I don't want to make it public, it's a good idea to create a .nimble file, right?
16:18:11narimiranright
16:18:16FromGitter<alehander42> yeah, it doesn't have anything to do with it public
16:18:34FromGitter<xmonader> @anamok nimble init would take care of the structure and tasks managment for you
16:18:43anamokOK, thanks.
16:18:49*tzui joined #nim
16:19:00*tzui left #nim ("Textual IRC Client: www.textualapp.com")
16:23:36*darithorn joined #nim
16:28:18FromDiscord<treeform> @exelotl it does not work, but I would have expected it to work
16:28:29*Arrrr joined #nim
16:42:15*NimBot joined #nim
16:46:53FromDiscord<Ianthina> can somebody help me a little? im trying to handle something math-y and i need rational exponents, but the caret operaror spits an error when i give it a float.
16:47:45narimirancan you try it with `math.pow`?
16:47:56FromDiscord<Ianthina> ill try
16:48:41FromDiscord<Ianthina> what do i need to import that from?
16:49:31narimiranjust `import math`, and then you do `pow(e, -pi)`
16:49:50narimiranor you can do `e.pow(-pi)`
16:50:02FromDiscord<Ianthina> hm
16:50:33FromDiscord<Ianthina> strangely enough, that can only work with 2 floats. i can just redefine something as a float, though.
16:50:57narimiran`float(2).pow(1.5)`
16:52:13narimiranyou can have either 2^3 between two ints, or `pow` with two floats
16:56:48FromDiscord<Ianthina> i see
17:01:50*tzui joined #nim
17:10:46ArrrrSo, what are the plans for 0.19? Will be followed by 0.20?
17:12:02TheLemonMan0.19.2 first
17:13:31ArrrrI don't want to die without being there the day nim reaches 1.0
17:16:03narimiranArrrr: well, that depends if you plan to live for 20 more years or not :D
17:17:15elroodeasy, just don't die. when nim is past 1.0 people will miss the days when changing the language and introducing breaking changes was no big deal. it's not like becoming stable was unanimously advantageous
17:17:30ArrrrI hope it takes less time. Also, how is the incremental compiler going on? I remember Araq was working on it in the summer.
17:17:43ArrrrYes, I agree with you in that aspect.
17:19:39elroodfor D that was basically when the trouble which almost lead to a language split began
17:19:47federico3alternatively, the language could be frozen at a later version
17:20:49narimiranwell, there is always v2.0 ;)
17:22:34*darithorn_ joined #nim
17:22:54*darithorn_ quit (Client Quit)
17:23:17*darithorn_ joined #nim
17:23:23*darithorn quit (Ping timeout: 245 seconds)
17:24:41elroodsure, and then there'll be people who are so deeply invested after believing that v1.0 was the stability turning point that they'll refuse to migrate to v2.0, so you'll start backporting features and fixes..
17:25:18*darithorn_ quit (Client Quit)
17:25:30narimiranso the solution is to have neverending stream of 0.x versions?
17:25:33elroodand others will begin to become stubborn on whichever feature they don't like in v2 and begin to develop v1 further into another direction, etc.. you get the idea
17:25:48federico3that's why one announces plans in advance
17:25:48elroodno, there is no solution. you can only choose between different evils
17:25:56*darithorn_ joined #nim
17:26:03*darithorn_ quit (Client Quit)
17:26:25*darithorn joined #nim
17:27:00narimiranwell for all that to happen nim would need to get much more traction. it's not like nim is (currently) used by hundreds of thousands of people
17:27:08FromGitter<timotheecour> stability is plaguing D, making progress extremely slow. That’s 1 big reason I migrated to Nim.
17:29:21*darithorn_ joined #nim
17:29:42*PMunch joined #nim
17:31:48*Trustable joined #nim
17:31:52*darithorn quit (Ping timeout: 246 seconds)
17:32:05TheLemonMan..you migrated to a pre-1.0 language because D wasn't stable enough?
17:33:17narimiran:D
17:33:32narimiranor in our land, that smiley is :Nim
17:33:36*krux02 joined #nim
17:33:43ArrrrHe likes danger
17:33:47*tzui left #nim ("Textual IRC Client: www.textualapp.com")
17:34:19narimiranTheLemonMan: no, stability of D was too damn high! (that's what i got from that comment)
17:34:29FromGitter<timotheecour> no the opposite, (I reworded to make it clearer): no willingness for any breaking change even when everyone wants it
17:35:01TheLemonManbullshit! I broke a lot of stuff myself heh
17:35:30narimiran@timotheecour we here on irc don't see your edits ;)
17:35:44FromGitter<timotheecour> i c.
17:38:23FromGitter<timotheecour> the irony is that subsequent versions of D kept breaking dub packages, but there was too much focus on avoiding introducing breaking changes or adding things; every single symbol addition has to go through a DIP (only slightly exagerating).
17:40:54*darithorn_ left #nim (#nim)
17:42:48FromGitter<bung87> sounds like IE6 to me
17:43:32FromGitter<timotheecour> I wish we can revive and enhance something like nimfix though, to help with automated migration for not just Nim package but also nimble packages; adding feature to nimfix like changing `foo1(arg1, arg2)`to `foo2(arg2, arg1)` should be doable. (with nimrod=>nim transition, nimfix only did foo1=>foo2 IIRC)
17:45:38FromGitter<timotheecour> hah, like that: https://forum.dlang.org/post/[email protected] "breaking changes: how gofix solved the problem of automated code transitions"
17:47:08*enthus1ast quit (Remote host closed the connection)
17:47:52TheLemonManthat's an interesting idea, you can develop your own nimfix outside of the compiler tho
17:49:19*craigger joined #nim
17:49:29elroodyet another transpiler? ;P
17:49:51TheLemonMana transpirer
17:49:52narimiranbut what would be the fixes? future -> sugar, TObject -> Object, .. < -> ..<, what else?
17:50:13TheLemonManstring == nil -> something else ?
17:50:29*craigger_ quit (Ping timeout: 268 seconds)
17:50:56FromGitter<timotheecour> I tried. I’ve argued Nim needs better compile time reflection to allow this use case but facing pushback from @araq on this point. (see for eg this PR https://github.com/nim-lang/Nim/pull/8903 ) ; I have other PR’s in the queue to enable exposing all symbols for a module ; without these, we can’t build this tool without changing compiler
17:51:28TheLemonManeh? you can use the compiler as a library
17:51:59TheLemonManthat's how the spir-v compiler works
17:53:23FromGitter<timotheecour> right, right, right; for that use case it could be enough (previously there were bugs with compiler as library but they’ve been fixed recently) ; point of https://github.com/nim-lang/Nim/pull/8903 still holds though (independently of this)
17:53:51*Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
17:53:52elrooda go-/nimfix-style tool is nice for minor changes but would be of limited value if the modifications are as pervasive as making all strings immutable or non-nillable or something alike
17:55:10TheLemonManI think Araq is not happy with the `comment` field being part of NimNode and wanted to let the comments have their own node
17:56:05krux02TheLemonMan: comments do have their own node
17:56:12FromGitter<timotheecour> but that modification is a lot more complex (maybe even costly?) compared to trivial change in PR;
17:56:51FromGitter<timotheecour> @krux02 see PR for why this isn’t the case (lots of doc comments dont’ end up in a node)
17:56:57krux02fact is that there is some bit squeezing happening in the NimNode where line numebers are 16bit only and people complained that in very big files it is a problem
17:57:00TheLemonMankrux02, there are a few caveats though
17:57:08krux02and then 8 bytes are totally wasted just for the comment
17:57:10anamokWhat is an easy way to call an external command? Like Python's os.system().
17:57:33TheLemonMananamok, have a look at the osproc module
17:57:43FromGitter<timotheecour> execShellCmd + friends
17:58:23anamokTheLemonMan, I heard about the nimscript module too
17:58:53TheLemonManindeed, we're probably wasting the "saved" bytes due to padding and and alignment reasons
17:59:42krux02there is an "info" member, I don't think that this one wastes the space
17:59:57TheLemonMannimscript works in nimscript only (eg. nimble files)
17:59:58krux02the big waste is normally the object header and the pointers to objects
18:00:50FromGitter<timotheecour> @krux02 just curious: how does this relate to comment field?
18:01:20TheLemonManoh well, the TLineInfo is well-packed
18:01:26krux02well the comment is a string, and the string is a pointer to an object with a string header
18:02:06krux02the header is here not really the big waste, but the nil pointer to the comment field that is in almost every node.
18:02:42krux02comments normally create a comment node
18:03:13FromGitter<timotheecour> well but the comment field is already there; I’m only exposing it in macros.nim; if later the comment field is removed, we can just change underylying implementation of macros.comment without breaking users of this API
18:03:26TheLemonManon the other hand if you let loose the nkCommentNodes the compiler is gonna have a bad time
18:03:36krux02thimotheecour: don't!!!
18:03:43krux02the comment field is going away
18:04:33krux02comments are available in macros, you can get strVal on comment nodes
18:04:38krux02and set it that way
18:04:56krux02no need to expose any fields that are already planned for removal
18:05:35narimirankrux02: offtopic, but while you're here: can you solve this conflict so this can be merged: https://github.com/nim-lang/Nim/pull/5664
18:05:49FromGitter<timotheecour> but currently there is no doc comment node for majority of doc comments… sigh.
18:06:15krux02narimiran, I already solved the conflict
18:06:24krux02and it was ready to be merged
18:06:35FromGitter<timotheecour> Conflicting files ⏎ tests/testament/tester.nim
18:08:44narimiranthat test/testament/tester.nim was moved to testament/tester.nim
18:08:48anamokTheLemonMan, thanks. nimscript has lots of useful procs, it's a pity it can't be imported. Any reason for that?
18:09:11TheLemonManbecause you're using the full-blown version of Nim?
18:10:27*PMunch quit (Remote host closed the connection)
18:10:49FromGitter<timotheecour> TLineInfo: says: "This is designed to be as small as possible” ⏎ however I think we can improve: ⏎ `TLineInfo* = object [offset: int16, fileIndex: FileIndex]` ⏎ and expose O(1) API to get line, col given offset. [https://gitter.im/nim-lang/Nim?at=5bc23529435c2a518e9ff16a]
18:11:23FromGitter<timotheecour> using a precomputed table stored per file.
18:12:23anamokTheLemonMan, yes, trying with a program that I want to compile with "nim c". But I find it strange that an stdlib module can't be imported in this case.
18:12:44krux02nirimiran: looks like that branch is already merged
18:12:58TheLemonMananamok, _all_ you see there are just wrappers for something that's available in the stdlib
18:13:17anamokOK, I see
18:13:22TheLemonManthere are a few modules you are not meant to import :)
18:13:23krux02wait
18:13:28krux02just looked like it
18:13:31FromGitter<timotheecour> @krux02 is your PR eventually going to be squashed as a single commit, or multiple commits?
18:14:01krux02timotheecour: I don't care
18:14:41FromGitter<timotheecour> if it’s going to end up squashed as a single commit, we can avoid doing a big fat ugly merge that will mess up git history with very old stuff
18:15:21krux02timotheecour: by deleting the history of this branch
18:15:40FromGitter<bung87> Do I need cpp `srd::unique_ptr` in nim ?
18:15:53FromGitter<timotheecour> Yes, but it’d still be in github for whoever cares about history.
18:16:24krux02no it won't
18:16:37krux02it will be removed from the history, invisible
18:17:09FromGitter<timotheecour> my point is: if it’s gonna be squashed to a single commit, might as well do what I suggest to avoid a non-fast-fwd merge.
18:17:30krux02if you care so much, how about you do a nice linear rebase of that branch
18:18:18FromGitter<timotheecour> if squshing to single commit is acceptable, I’m happy to do it (and will attribute to you in author field of course)
18:19:30FromGitter<timotheecour> If keeping separate commits is needed, it will be a lot harder via rebase; let me know if u want me to do the thing i suggest.
18:26:26*zachk joined #nim
18:27:20*noonien quit (Quit: Connection closed for inactivity)
18:27:42*craigger_ joined #nim
18:28:23krux02timotheecour: why do you care about the git history so much?
18:29:05FromGitter<timotheecour> https://github.com/nim-lang/Nim/issues/8664 has rationale
18:29:37*craigger quit (Ping timeout: 246 seconds)
18:29:41krux02it is a feature branch that eventually was merged back into the main compiler
18:29:49krux02that branch is more than a year old.
18:30:05krux02I am supre happy that git could help me with the non trivial merge conflics
18:31:00krux02any des it's not "a neat little patch with no trace that it was once a forked branch"
18:31:06krux02I started the fork over a year ago
18:31:49krux02I got it basically working pretty fast, but then I got a kick in the balls from platform surprises
18:33:46*craigger joined #nim
18:34:27*craigger_ quit (Ping timeout: 252 seconds)
18:36:05FromGitter<timotheecour> https://github.com/nim-lang/Nim/pull/9356
18:43:14FromGitter<timotheecour> => I added details there for the steps to squash + rebase your PR "implement sizeof and alignof operator” against level, allowing fast fwd merge.
18:43:51krux02timotheecour: I have a question
18:44:00*TheLemonMan quit (Quit: "It's now safe to turn off your computer.")
18:44:12krux02what is your reason why you have chosen to develop in/for Nim?
18:44:52FromGitter<timotheecour> see the -1 in https://github.com/timotheecour/D_vs_nim
18:47:08FromGitter<timotheecour> (gah, -1 unvisible unless u use horizontal scrolling or view with full width chrome extension)
18:49:18*craigger quit (Ping timeout: 252 seconds)
18:50:01*craigger joined #nim
18:50:28krux02ok you made a comparison of the two languages
18:50:51krux02but what is the motivation for this?
18:51:16krux02I also explored a lot of programming languages
18:51:57FromGitter<bung87> um , what’s this topic looks like in the end….
18:52:08krux02I didn't really dive into D because I didn't like the single inheritance classic OOP programming model
18:53:16krux02bung87: I am sorry I don't undarstand that sentence.
18:53:52*craigger_ joined #nim
18:54:01FromGitter<bung87> I just confusing,what you guys talk about.
18:54:26FromGitter<timotheecour> I dived a lot into D and other lang (C++ python etc), and in the end it’s a combination of features that makes Nim the best option ; there are features from other languages that I miss and that Nim should take, but overall it’s the winner IMO
18:54:30FromGitter<bung87> dont know where this topic will lead with.
18:54:48*craigger quit (Ping timeout: 252 seconds)
18:55:06FromGitter<timotheecour> (didn’t start it! happy to end it!)
18:56:40krux02so you are on a quest for the best programming language ?
18:57:25FromGitter<timotheecour> just wanna get sh* done and move on ;-) but IMO a good PL is a bottleneck for getting sh* done.
18:57:47Arrrrwill google use nim for anything?
18:59:22krux02Arrrr, my clystal ball says: "YES"
19:00:09FromGitter<timotheecour> doubt it; they’re so entranched with code base C++ go python js (and a few more : dart etc) ; getting a new language accepted in code base is a monstrous effort (I tried with D, I failed to convince; even though I got it to work with a lot of use cases, eg map reduce in D)
19:00:12Arrrrtimothee is an insider, he might have some information
19:00:16krux02Google is a big company, Nim is growing. At some point that can't ignore it anymore and they will give it a try.
19:01:10krux02I think Nim will be used at some point. But not yet.
19:02:19FromGitter<timotheecour> but who knows… the biggest thing would be an excellent interop story with C++ ; something like https://github.com/nim-lang/Nim/issues/8327
19:05:19krux02nim can already access C C++ wrapper free
19:05:26krux02with the emit statement
19:05:34narimiranbtw, is there any woman working in nim?
19:05:47krux02totally not typechecked by the Nim compiler, but totally practical
19:06:04krux02I mean there is a type checken in the C and C++ compiler, too.
19:06:37krux02narimiran: I have long hair, does that count?
19:07:32FromGitter<timotheecour> using emit is a far cry from what you can do with calypso, which exposes C++ types and functions (and templates! without instantion needed!) in target language; I don’t see any simply clean way to integrate with opencv with emit-like code.
19:08:24krux02I haven't used opencv yet
19:08:30krux02but what's so hard about it?
19:08:44krux02the types?
19:08:56*zachk quit (Changing host)
19:08:57*zachk joined #nim
19:09:16federico3getting useful object detection
19:11:14FromGitter<timotheecour> u can’t use somethign like: ⏎ ⏎ ```let a = cv.Mat(10, 100) ⏎ var v: std.vector[cv.Rect] ⏎ a.detectMultiScale(v)``` ⏎ ⏎ u’d have to use lots of ugly emit statements, currently. [https://gitter.im/nim-lang/Nim?at=5bc24351384492366134472b]
19:11:35FromGitter<timotheecour> with calypso, this would be possible, wrapper free.
19:24:35*dddddd joined #nim
19:38:12federico3did anyone get TravisCI to build on windows?
19:41:20*smt joined #nim
19:48:10FromGitter<timotheecour> holy shit! https://blog.travis-ci.com/2018-10-11-windows-early-release ! means we could close all those appveyor bugs maybe?
19:52:55federico3if we can get it to work..
20:01:37*craigger_ quit (Read error: Connection reset by peer)
20:01:57*craigger joined #nim
20:13:33*vlad1777d_ quit (Ping timeout: 268 seconds)
20:14:58*Vladar quit (Remote host closed the connection)
20:15:50*craigger_ joined #nim
20:16:31*craigger quit (Ping timeout: 244 seconds)
20:18:49*craigger joined #nim
20:19:13*MyMind quit (Max SendQ exceeded)
20:20:57*craigger_ quit (Ping timeout: 268 seconds)
20:21:16*MyMind joined #nim
20:21:45*narimiran quit (Quit: Konversation terminated!)
20:23:44*MyMind quit (Max SendQ exceeded)
20:24:55krux02travis is weird
20:25:18*MyMind joined #nim
20:27:50*craigger quit (Read error: Connection reset by peer)
20:30:12*MyMind quit (Ping timeout: 268 seconds)
20:30:46*craigger joined #nim
20:35:12*brainproxy joined #nim
20:38:12anamokbye
20:38:21*anamok quit (Remote host closed the connection)
20:41:05*tiorock joined #nim
20:41:05*tiorock quit (Changing host)
20:41:05*tiorock joined #nim
20:41:05*rockcavera quit (Killed (barjavel.freenode.net (Nickname regained by services)))
20:41:05*tiorock is now known as rockcavera
20:45:53*craigger_ joined #nim
20:46:27*craigger quit (Ping timeout: 252 seconds)
20:47:08dom96I bet Travis will have a hell of a lot more bugs than AppVeyor...
20:47:46*Arrrr quit (Quit: Arrrr)
20:48:19federico3dom96: speaking of bugs, https://github.com/nim-lang/Nim/issues/9358
20:48:36federico3(I wish circleci had windows support instead...)
20:49:04dom96wut
20:49:11dom96How can that raise an exception in compiler?
20:51:28dom96Is it a compilation error?
20:51:56federico3yep
20:53:30*wildlander joined #nim
20:54:17*craigger_ quit (Read error: Connection reset by peer)
20:55:52*craigger joined #nim
20:56:22*stefanos82 quit (Quit: Quitting for now...)
20:57:39*MyMind joined #nim
21:00:02*MyMind quit (Max SendQ exceeded)
21:01:48*MyMind joined #nim
21:03:59*MyMind quit (Max SendQ exceeded)
21:05:21*MyMind joined #nim
21:06:23*craigger_ joined #nim
21:07:02*MyMind quit (Max SendQ exceeded)
21:08:26*craigger quit (Ping timeout: 268 seconds)
21:11:33*MyMind joined #nim
21:15:56*MyMind quit (Ping timeout: 244 seconds)
21:16:33*rockcavera quit (Remote host closed the connection)
21:17:07*tzui_ joined #nim
21:18:40*vlad1777d_ joined #nim
21:25:19*tzui_ left #nim ("Textual IRC Client: www.textualapp.com")
21:34:35*nsf quit (Quit: WeeChat 2.2)
21:36:39shashlickWhat appveyor errors
21:37:49FromGitter<timotheecour> https://github.com/nim-lang/Nim/issues/8640 mainly
21:43:04shashlickI spent some time thinking about speeding up tests last week
21:43:12shashlickCaches don't help much
21:43:52shashlickI could ask for some beefy machines to run at work
21:44:05shashlickBut no one will have access to them besides me
21:44:40FromGitter<timotheecour> actually any discussion should start with benchmarking what are the main bottlenecks: there are 2 things: ⏎ ⏎ 1) nim doc => this is affected very badly by https://github.com/nim-lang/Nim/issues/9300 ⏎ 2) tests ⏎ do we know what’s the proportion of each? [https://gitter.im/nim-lang/Nim?at=5bc26748600c5f6423a4fc29]
21:46:48shashlickWell for starters split tests - compiler vs stdlib
21:46:53shashlickNim doc separately
21:47:11shashlickBut all this nonsense since we cannot afford a farm that does stuff in parallel
21:47:29shashlickIf you can do 8 builds in parallel
21:48:14Araqwe can afford a farm
21:48:26Araqbut I'm clueless about which one to pick
21:48:41Araqand I already know travis/appveyor...
21:49:09Araqplus tests should also be speedy on a developer's machine so optimizing them is always worth it
21:49:33FromGitter<timotheecour> farm would be oh-so-great when we start running CI on major nimble projects to catch regressions early. Why not just AWS
21:49:45FromGitter<timotheecour> what’s budget?
21:49:56federico3there was already a build fleet, ask dom96
21:50:19*platoff quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
21:50:29Araqremember that I'm the worst admin ever :P
21:50:49Araqbut maybe krux02 wants to do that? ;-)
21:51:40dom96hardware isn't a problem
21:51:43dom96it's software
21:51:48dom96We've got access to the GCC farm too
21:56:16Araqwell software is a problem in the sense that every option needs to support all 3 big OSes
21:58:50krux02I should be the admin of what? I testing farm?
22:01:01Araqyeah
22:02:12krux02I have mostly experience with Linux as a user but sure I can learn whatever it needs to set it up
22:03:02krux02If there is something I would like to change about the testing setup, then it is how I get the logs.
22:03:18krux02Travis is horribly slow when I just want to get the log file.
22:03:46FromGitter<timotheecour> travis has cmd line to get these IIRC
22:04:32krux02well that would be very neat
22:05:34krux02I tried to curl it, but a PR site doesn't have travis links when it is fetched with curl
22:05:53krux02and logging in with curl, that is too complicated for me.
22:09:30dom96Something that would already help us out a lot is a bot that looks for Nim PRs, waits for a Travis run to complete and comments on the PR: "Travis failed on test tgcblah, this has been marked as flaky 5 times"
22:09:50dom96And we can tell it "@NimCIBot mark as flaky"
22:10:01dom96That way we don't have to open the logs
22:10:07dom96The bot finds the failure for us
22:11:42Araqwe can also just weaken the 2 flaky tests instead
22:11:50Araqit's always the same
22:12:08FromGitter<timotheecour> found my old workaround: how do I access travis logs for a github PR using travis cmd line? · Issue #10064 · travis-ci/travis-ci (https://github.com/travis-ci/travis-ci/issues/10064)
22:13:46*Jesin joined #nim
22:14:05*Jesin quit (Remote host closed the connection)
22:17:39FromGitter<yyyc514> where can i find source for stdtmpl?
22:18:48Araqcompiler/filter_tmpl.nim
22:18:51*rnrwashere joined #nim
22:21:18dom96Araq: It won't always be the same
22:21:40dom96Surprised nobody else is excited by my idea
22:25:05*Jesin joined #nim
22:26:05Araqdom96, it's been the same for a long time now
22:26:24dom96In any case, that would just be one of the features of this bot
22:26:35dom96The more valuable main feature would be extracting the cause of failure
22:26:51FromGitter<timotheecour> definitely doing analytics on CI logs would be useful, and there are other cases beyond just identifying flaky tests; eg: finding performance (speed of runtime or compile time ) on a per-test granularity (or overall) etc.
22:30:17federico3timotheecour: you can't reliably measure CPU-bound benchmarks on travis CI VMs, you need dedicated bare metal
22:33:09dom96indeed
22:33:11*darithorn joined #nim
22:33:46shashlickwell that's all great but we need to parallelize first - even running 2 parallel jobs will be worth it
22:34:08shashlickthere's already appveyor and travis - if we can get them to pick alternate PRs, that itself will solve part of that
22:35:27shashlicknumber of test cases is always going to increase so need to parallelize those as well - for that you need more CPUs
22:36:29*Jesin quit (Quit: Leaving)
22:36:34shashlickone other thing every prolific contributor could do is test his branch on his own instance of travis/appveyor before pushing a PR
22:37:15AraqI test the relevant categories only and usually that's enough (sorry about my last mistake)
22:38:40shashlickwell, my idea won't work - appveyor and travis already run in parallel - just parallelizing OS, not PRs
22:38:53shashlickeven if you add windows to travis and linux to appveyor, they will run in sequence
22:41:00*Jesin joined #nim
22:41:17FromGitter<timotheecour> > appveyor and travis already run in parallel ⏎ ⏎ well travis is rarely (never?) the bottleneck in this equation, it’s always appveyor, so i dont’ see this splitting PR bw travis and appveyor working
22:42:10FromGitter<timotheecour> this is a case where we can litterally throw money at the problem: https://travis-ci.com/plans
22:43:04Araqtoo bad travis has the worse UI then :P
22:43:15Araqbut I'll consider it
22:43:47dom96$69 per month, my god
22:44:03Araqalso in the past I had the impression travis is mostly a bunch of Bash scripts they run on old Linux machines
22:44:10dom96We don't even pay that much for our VPS'
22:44:49dom96Should we give GitLab CI a go again?
22:45:07FromGitter<timotheecour> eventually someone will come up with a packaged solution to run our CI jobs on AWS (with arbitrary customization like analytics on logs, benchmarking performance etc) and this might be the best way forward, but until then...
22:45:51Araqnah, Gitlab's service was terrible to setup on Windows
22:46:43FromGitter<kayabaNerve> I think I found a bug :/
22:46:57FromGitter<yyyc514> just found a typo in docs :)
22:47:57*rnrwashere quit (Remote host closed the connection)
22:48:21Araqyyyc514 that's why they have an [Edit] button
22:48:33FromGitter<yyyc514> yeah i submitted a PR
22:50:30FromGitter<kayabaNerve> Araq Did you know the effects system doesn't cover optional arguments?
22:50:34FromGitter<kayabaNerve> Is that intended?
22:51:38FromGitter<kayabaNerve> Because it's not that the function with the optional arg that raises X doesn't but the caller does; neither the function itself or the caller cover it.
22:51:56Araqit's documented and not related to the default parameters
22:52:11Araq(but it might indeed by buggy... :-/ )
22:52:55FromGitter<kayabaNerve> So is it an issue or not? Sounds like I don't need to create an issue either way.
22:53:18Araqthe manual explains how this works in 3 sentences iirc
22:53:36Araqterrible feature, in retrospect
22:54:11FromGitter<timotheecour> @araq i addressed your comment in https://github.com/nim-lang/Nim/pull/8786
22:55:20FromGitter<kayabaNerve> Rule 1 and 2?
22:55:36FromGitter<kayabaNerve> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5bc277e8bbdc0b250538dc58]
22:58:11FromGitter<kayabaNerve> Sounds like I should submit an RFC.
22:59:06FromGitter<kayabaNerve> It is intended. It's also an issue.
22:59:44shashlickI think some of the build options are to split into compiler, stdlib, docs, tools, etc.
22:59:49shashlickand only run those tests that are appropriate
22:59:56shashlickobviously there are dependencies
23:00:40shashlickbut this is easier said than done, and i'm unsure it is worth the community's time
23:00:46shashlickso better to add more machines to the mix
23:01:27shashlicklike whoever can contribute a machine to the farm can and tests run across all those
23:04:11*Trustable quit (Remote host closed the connection)
23:04:22Araqwe had that but contributed machines failed so often that we had to ignore their test results
23:04:39*MyMind joined #nim
23:05:22*malkomalko joined #nim
23:05:32*malkomalko quit (Client Quit)
23:05:56shashlickwhen you say failed, what do you mean - tests failed due to misconfiguration or the machine died/hung, etc.
23:06:27FromGitter<kayabaNerve> Araq I messed up. The caller does raise it. Just not the proc itself.
23:06:34*malkomalko joined #nim
23:08:04*MyMind quit (Max SendQ exceeded)
23:12:14*vlad1777d__ joined #nim
23:12:24*vlad1777d_ quit (Ping timeout: 272 seconds)
23:15:03*MyMind joined #nim
23:15:23Araqshashlick, machine offline
23:18:17*MyMind quit (Max SendQ exceeded)
23:20:19FromGitter<kinkinkijkin> how do i execute a process from outside and not stall for it?
23:20:44FromGitter<kinkinkijkin> i am making something that has the ability to "run and forget"
23:21:39*MyMind joined #nim
23:22:02shashlickI see
23:22:14shashlickokay anyone who has servers they can contribute to the cause, please get in touch
23:22:20shashlicki'll see what can be done here
23:22:31shashlickif there's some stuff done in the past, please point me to that as well
23:22:36shashlickworth a side project
23:23:14*malkomalko quit (Quit: Lost terminal)
23:23:53Araqkinkinkijkin, use the osproc module
23:24:19*elrood quit (Quit: Leaving)
23:25:56FromGitter<alehander42> what was a bad feature
23:26:33*MyMind quit (Max SendQ exceeded)
23:28:18*MyMind joined #nim
23:30:44*MyMind quit (Excess Flood)
23:37:40*vlad1777d__ quit (Ping timeout: 268 seconds)
23:38:14*MyMind joined #nim
23:45:51*opi_ quit (Quit: ZNC - http://znc.in)
23:46:25*rnrwashere joined #nim
23:46:31*opi_ joined #nim
23:52:59FromGitter<timotheecour> @araq @krux02 even though https://github.com/nim-lang/Nim/pull/9356 clearly attributes @krux02 as the author (https://github.com/nim-lang/Nim/pull/9356/commits/082612e7fbe59dfa0f25333f08e2685e88527356) somehow in git, locally, the corresponding commit 745f1642d6faf3a30543cd76196a7462d7460d6d doesn’t show @krux02 as author; in this particular case my understanding is that a merge commit (in github UI) instead of
23:53:00FromGitter... rebase and merge, would have shown @krux02 as the author
23:53:22*zachk quit (Quit: Leaving)
23:56:04krux02so the branch I worken on for over a year (not continuously) is now listed as timothee's in git blame?
23:56:56FromGitter<timotheecour> @araq there’s still time to change : git commit --amend --author="Arne Döring <[email protected]>"
23:57:06FromGitter<timotheecour> than (carefully) force push
23:59:06krux02well I have to go to bed now