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:42 | FromGitter | <zacharycarter> o/ |
01:24:10 | FromGitter | <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:14 | FromGitter | <zacharycarter> so happy :D |
01:26:33 | FromGitter | <zacharycarter> hopefully that translates to more time to write Nim |
01:28:35 | FromGitter | <zacharycarter> anyone good with CSS animations / SVGs? |
01:30:11 | * | craigger joined #nim |
01:30:34 | FromGitter | <zacharycarter> https://codepen.io/zacharycarter/pen/BqNmwP - I have this animated logo I've been working on |
01:31:01 | FromGitter | <zacharycarter> but I need the animated gradient to not overflow and spill past the svg |
01:31:07 | FromGitter | <zacharycarter> not sure how to accomplish this |
01:31:44 | * | stefanos82 joined #nim |
01:32:17 | * | craigger_ quit (Ping timeout: 250 seconds) |
01:34:12 | krux02 | zacharycarter: I know animation stuff, but I don't know a lot about SVG and basically nothing about CSS |
01:34:26 | krux02 | but maybe I can be your rubber duck |
01:34:43 | FromGitter | <zacharycarter> well - unfortunately with CSS - it's never a problem you can rubber duck |
01:34:59 | FromGitter | <zacharycarter> it's always a problem where you have to understand some stupid clashing set of rules |
01:35:06 | krux02 | what do you mean by overflow and spill? |
01:35:49 | krux02 | so you mean it's not real complexity of the problem, it is arificial complexity of the tool chain? |
01:35:55 | FromGitter | <zacharycarter> a lot of HTML elements have the possibility of containing children in their markup |
01:36:04 | FromGitter | <zacharycarter> it's complexity baked into CSS |
01:36:10 | krux02 | it's a hierarchy |
01:36:12 | FromGitter | <zacharycarter> you just have a ton of edge cases - like for instance: |
01:36:12 | krux02 | yes |
01:36:33 | FromGitter | <zacharycarter> crap like this - https://css-tricks.com/popping-hidden-overflow/ |
01:36:46 | FromGitter | <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:52 | FromGitter | <zacharycarter> otherwise you're just learning tedium IMO |
01:37:08 | FromGitter | <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:24 | FromGitter | <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:26 | krux02 | sounds like fun |
01:39:05 | krux02 | I wonder how long it is possible to add stuff to the web stack of technology until it breaks |
01:39:28 | FromGitter | <zacharycarter> well - I think we're there |
01:39:40 | FromGitter | <zacharycarter> you see more and more websites that are going back to the old style web |
01:39:53 | FromGitter | <zacharycarter> ditching the massive amounts of styling and bloat |
01:40:11 | krux02 | I recently saw on youtube a video called "new js features that will make you dance" I was like, yea challenge accepted :P |
01:41:29 | krux02 | by now I totally forgot what those features even were. But yea another story |
01:42:02 | krux02 | web advertisement and big assets are most of the bloat |
01:42:19 | krux02 | and frameworks |
01:42:47 | krux02 | the more js libraries the better the website |
01:44:02 | FromGitter | <zacharycarter> lol |
01:44:04 | FromGitter | <zacharycarter> JS sucks |
01:44:06 | FromGitter | <zacharycarter> modern web sucks |
01:44:14 | FromGitter | <zacharycarter> CSS / HTML suck - we need something better |
01:44:33 | krux02 | I 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:56 | krux02 | I would never try to implement it, but currently I honestly like it |
01:45:15 | krux02 | yea html is hypre text markup langage |
01:45:19 | krux02 | it is for hyper text |
01:45:23 | krux02 | stuff like wikipedia |
01:45:27 | krux02 | not application development |
01:45:33 | krux02 | not UI development |
01:46:40 | krux02 | but 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:56 | FromGitter | <zacharycarter> lol |
01:47:05 | FromGitter | <zacharycarter> well - the point is CSS is fucked - if you read through the variances in the rules |
01:47:11 | FromGitter | <zacharycarter> like you said - it's all a hierarchy of rules |
01:47:18 | FromGitter | <zacharycarter> but there's all these corner / edge cases and tricks you can pull |
01:48:15 | krux02 | that sounds like a great technology for reliable future proof software |
01:49:38 | FromGitter | <zacharycarter> lol yup! |
01:49:45 | FromGitter | <zacharycarter> especially sounds like a spec to build on top of! |
01:50:53 | krux02 | I 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:21 | krux02 | meaning everybody would see the website completely different, the website would only provide the contest and no styling at all |
01:51:34 | FromGitter | <zacharycarter> that's a really interesting concept or idea |
01:51:40 | FromGitter | <zacharycarter> whichever stage it got to :P |
01:51:50 | krux02 | similar to how code editors have different fonts and highlighting rules and color themes |
01:53:21 | FromGitter | <zacharycarter> yeah |
01:53:31 | FromGitter | <zacharycarter> speaking of which - I'm using kakoune / trying to learn it |
01:53:34 | FromGitter | <zacharycarter> also just switched to fish shell |
01:54:18 | krux02 | I am using fish as well |
01:54:39 | krux02 | how is nim syntax highlighting in kakoune? |
01:54:49 | krux02 | or do you just set it to python? |
01:55:22 | FromGitter | <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:29 | FromGitter | <zacharycarter> but I will let you know as soon as I do - how it works out |
01:55:47 | krux02 | I like the idea of kakoune. It doesn't sound stupid |
01:56:15 | krux02 | I don't like the abbreviaition kak |
01:56:29 | krux02 | because kack is German for "shit" |
01:56:54 | FromGitter | <zacharycarter> lol |
01:56:59 | FromGitter | <zacharycarter> what is mawwwwww german for? |
01:57:00 | FromGitter | <zacharycarter> lol |
01:57:03 | krux02 | but not as in "Oh crap" more like in "shit product" |
01:57:09 | FromGitter | <zacharycarter> right |
01:57:25 | krux02 | mawwwww? |
01:57:37 | FromGitter | <zacharycarter> that's the name of the guy that wrote kak haha - or his handle or whatever |
01:57:43 | FromGitter | <zacharycarter> I don't know how many w's there are |
01:57:58 | krux02 | well that isn't German |
01:59:16 | krux02 | back to the animation |
01:59:51 | krux02 | waht i have seen so far is an animation of a square that opens |
02:00:11 | krux02 | but what do you mean with overflow, I don't understand that part |
02:01:51 | * | opi_ quit (Quit: ZNC - http://znc.in) |
02:02:17 | krux02 | well, the poppling-hidden-overflow example is just bad in every way. Don't do too much nesting. |
02:02:31 | krux02 | a scroll bar within a scroll bar should never ever be necessary |
02:02:31 | * | opi_ joined #nim |
02:02:59 | krux02 | that 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:59 | FromGitter | <zacharycarter> yeah |
02:08:26 | FromGitter | <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:44 | FromGitter | <zacharycarter> but it's hard - because I need to also show the side of the square rotating 90 degrees clockwise |
02:09:12 | FromGitter | <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:22 | FromGitter | <zacharycarter> the black streak animation thing - isn't actually part of the SVG |
02:09:51 | FromGitter | <zacharycarter> it's a separate div element that is beneath the SVG in the dom hierarchy |
02:09:59 | FromGitter | <zacharycarter> BUT - they are both grouped inside a single parent container element |
02:10:37 | * | craigger joined #nim |
02:11:45 | krux02 | I am sorry I can't really help you |
02:11:50 | krux02 | I need sleep now |
02:11:54 | krux02 | night is almost over |
02:11:59 | krux02 | good 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:58 | FromGitter | <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:21 | FromGitter | <yyyc514> `(all.score and (1 shl bit_value)) > 0` grrr why would this not work at all |
04:07:27 | FromGitter | <yyyc514> gotta be somethign stupid |
04:11:04 | FromGitter | <yyyc514> oh stupid my table is all wrong :) |
04:11:08 | FromGitter | <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:28 | Araq | hmm my move optimizer optimizes away overloaded assignments... |
06:31:02 | * | narimiran joined #nim |
06:32:38 | narimiran | Araq: i feel so reliefed it is not my fault :) |
06:34:19 | Araq | :-/ |
06:36:28 | Araq | I'm disabling this section of the test... it's hard to fix, the compiler is way too smart/aggressive |
06:37:02 | narimiran | btw, is there a quicker way than "choosenim update devel" to get the latest devel version, if i have cloned nim repo? |
06:39:14 | Araq | git pull --rebase && koch boot -d:release |
06:39:38 | narimiran | thanks, will try it |
06:40:16 | Araq | it was only this one test, right? |
06:40:21 | narimiran | yes |
06:40:58 | narimiran | `block toverload_asgn:` on line 153 |
06:44:20 | * | nc-x joined #nim |
06:48:08 | nc-x | Any 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:15 | nc-x | (on latest devel) |
06:49:20 | Araq | do you have this file? |
06:49:29 | Araq | (relative to commands.nim) |
06:49:59 | nc-x | yes |
06:50:19 | nc-x | And it is failing on `Iteration 3`. First 2 iterations compile fine. |
06:51:20 | Araq | VCC? |
06:51:43 | nc-x | If it gets compiled on appveyor then maybe I will just re-clone from github and start over again. |
06:51:50 | nc-x | Nope, its gcc. |
06:52:29 | nc-x | Few days ago it worked fine. Now, i just did `git pull` and then `koch boot -d:release` and its failing. |
06:53:26 | nc-x | gcc 8.2.0 (mingw-w64 from msys2) to be exact |
06:56:13 | Araq | strange but I never tested it with gcc 8.2 |
06:57:06 | Araq | please use the GCC 'finish.exe' can download for you |
07:01:46 | FromGitter | <technicallyagd> Does template only substitute code into the calling scope? or is there some more complex optimization going on at compiling |
07:05:23 | FromGitter | <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:28 | FromGitter | <technicallyagd> For example: |
07:06:53 | leorize | I think they have some special binding rules |
07:07:07 | leorize | should be in the Manual I think |
07:08:27 | FromGitter | <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:25 | leorize | template isn't blindly subsituting code |
07:09:32 | Araq | that's called a 'gensym'ed variable |
07:10:15 | FromDiscord | <demotomohiro> I also got this error |
07:10:16 | FromDiscord | <demotomohiro> commands.nim(51, 16) Error: cannot open file: ../doc/basicopt.txt |
07:10:32 | leorize | make sure `doc` is available relative to compiler dir |
07:10:41 | leorize | compiler source I mean |
07:10:43 | FromDiscord | <demotomohiro> On windows 8.1, gcc 8.1.0 |
07:11:23 | FromDiscord | <demotomohiro> doc/basicopt.txt is exists |
07:11:29 | nc-x | somehow slurp is failing with `nim2.exe` and is not detecting the file |
07:14:51 | nc-x | with 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:51 | FromGitter | <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:35 | Araq | which is consistent with your example code. |
07:24:51 | FromGitter | <technicallyagd> But in the example `hiddenInt` isn't declared in the template |
07:26:17 | FromGitter | <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:20 | FromGitter | <technicallyagd> I thought `gensym` only means that it's not introduced into the calling scope as opposed to `inject` which would be |
07:28:09 | nc-x | Araq, demotomohiro: compiles fine with https://nim-lang.org/download/mingw64-6.3.0.7z |
07:28:27 | narimiran | can anybody using choosenim confirm that "koch boot -d:release" works for them? |
07:29:47 | * | Widdershins quit (Ping timeout: 244 seconds) |
07:30:49 | nc-x | narimiran: 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:15 | narimiran | nc-x Manjaro Linux 64bit, gcc 8.2.1 |
07:31:40 | nc-x | try older version of gcc |
07:32:07 | nc-x | on windows i had to use this version to compile devel https://nim-lang.org/download/mingw64-6.3.0.7z |
07:33:04 | nc-x | And if it works with older gcc, maybe raise an issue on github? |
07:33:16 | narimiran | i 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:44 | FromDiscord | <demotomohiro> When cwd = Nim\, executing ``nim c compiler\commands.nim`` success. |
07:33:45 | FromDiscord | <demotomohiro> When cwd = Nim\compiler, executing ``nim c commands.nim`` results ``commands.nim(51, 16) Error: cannot open file: ../doc/basicopt.txt`` |
07:33:45 | FromDiscord | <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:43 | Araq | the filenames are always relative to the current file the filenames are written in |
07:42:52 | Araq | so this error makes no sense to me. |
07:45:19 | * | nc-x joined #nim |
07:46:10 | nc-x | Araq: What do you make of the vs2017 error? |
07:52:23 | * | nc-x quit (Quit: Page closed) |
07:53:10 | Araq | it's known and some codegen issue that optimizes away some stack root so that Nim's GC is out of luck |
07:53:19 | Araq | well that's my educated guess |
07:56:04 | * | Ullabj0rn joined #nim |
07:58:19 | * | nc-x joined #nim |
07:59:48 | nc-x | https://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:59 | Araq | corruptions can trigger all sort of wrong logic behaviour |
08:04:11 | Araq | but sure, it could also be something else |
08:07:27 | * | nc-x joined #nim |
08:08:36 | nc-x | Okay 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:46 | TheLemonMan | Araq, can we put the osx build under the allowed_failures for the time being? |
10:05:22 | * | Tariul joined #nim |
10:11:24 | planetis[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:27 | planetis[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:44 | TheLemonMan | one 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:07 | narimiran | there 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:25 | FromGitter | <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:32 | planetis[m] | hardcore |
10:55:16 | FromGitter | <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:37 | livcd | anyone 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:55 | Araq | hmm 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:17 | FromGitter | <yyyc514> are there any good templating engines for Nim? |
12:55:24 | FromGitter | <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:58 | federico3 | yyyc514 https://nim-lang.org/docs/filters.html |
13:06:06 | FromGitter | <yyyc514> interesting |
13:06:19 | * | Ven`` quit (Ping timeout: 252 seconds) |
13:07:42 | FromGitter | <yyyc514> is that not even mentioned from the library page? |
13:08:44 | FromGitter | <alehander42> well it's not a library |
13:08:46 | FromGitter | <alehander42> it's a lang feature |
13:13:48 | FromGitter | <yyyc514> ah so i don’t need to import anything |
13:14:00 | FromGitter | <yyyc514> is this in system then? |
13:15:21 | * | Ven`` joined #nim |
13:16:46 | FromGitter | <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:29 | enthus1ast | yyyc514 there is also https://github.com/onionhammer/nim-templates https://flyx.github.io/emerald/ |
14:16:30 | enthus1ast | someday 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:33 | FromGitter | <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:48 | FromGitter | <alehander42> does anybody know why we don't have actual `language:` support tho ? |
15:11:59 | FromGitter | <alehander42> crystal seems to have it since 2015 |
15:12:18 | FromGitter | <alehander42> it seems it's a matter of a PR and approval |
15:12:26 | FromDiscord | <treeform> I want to use my own number type: |
15:12:30 | FromDiscord | <treeform> fix16 |
15:12:45 | FromDiscord | <treeform> but its very hard to use because I get errors like this: |
15:12:46 | FromDiscord | <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:57 | FromDiscord | <treeform> how can i get around this error? |
15:13:19 | FromDiscord | <treeform> can I some how unimport "system.<" ? |
15:13:35 | FromDiscord | <treeform> so that it it prefers my "fixmath.<" ? |
15:14:36 | FromGitter | <Vindaar> treeform: define your type as distinct? |
15:16:34 | Araq | yeah use a distinct type for this |
15:16:58 | * | Snircle joined #nim |
15:19:21 | FromDiscord | <treeform> its distinct |
15:19:26 | FromDiscord | <treeform> but it has converters |
15:19:32 | FromDiscord | <treeform> which are useful too |
15:19:48 | FromDiscord | <treeform> if I remove the converters < is not longer an issue but then some thing like |
15:19:51 | FromDiscord | <treeform> z = 0 |
15:19:53 | FromDiscord | <treeform> is an error |
15:19:55 | FromDiscord | <treeform> and needs to be |
15:19:59 | FromDiscord | <treeform> z = 0.fix16 |
15:20:16 | narimiran | ...and that's a good thing ;) |
15:20:57 | FromDiscord | <treeform> I think it make code like this unreadable: |
15:20:59 | FromDiscord | <treeform> let X_DIR* = xvec3(1.fix16, 0.fix16, 0.fix16) |
15:20:59 | FromDiscord | <treeform> let Y_DIR* = xvec3(0.fix16, 1.fix16, 0.fix16) |
15:20:59 | FromDiscord | <treeform> let Z_DIR* = xvec3(0.fix16, 0.fix16, 1.fix16) |
15:21:21 | FromDiscord | <treeform> I want this: |
15:21:22 | FromDiscord | <treeform> let X_DIR* = xvec3(1, 0, 0) |
15:21:22 | FromDiscord | <treeform> let Y_DIR* = xvec3(0, 1, 0) |
15:21:22 | FromDiscord | <treeform> let Z_DIR* = xvec3(0, 0, 1) |
15:21:47 | FromDiscord | <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:47 | FromDiscord | <treeform> 0 can auto convert to int and float, but not my number type. |
15:26:24 | FromDiscord | <treeform> well it can, but then nim can't figure out which number function to use because both can work |
15:26:37 | FromDiscord | <exelotl> maybe it's not ideal but you could write a macro or template that adds the conversions for you |
15:26:47 | FromDiscord | <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:10 | FromDiscord | <treeform> @exelotl that is an idea |
15:28:23 | FromDiscord | <treeform> is there a way to undefined system.* in a module? |
15:28:34 | FromDiscord | <treeform> is there a way to undefine system.* in a module? |
15:31:33 | * | Snircle quit (Remote host closed the connection) |
15:31:36 | FromDiscord | <exelotl> no idea :s |
15:35:27 | FromDiscord | <exelotl> I was wondering, how come with have a different syntax for calls vs object constructors? |
15:36:13 | FromDiscord | <treeform> yeah that is another big problem |
15:40:42 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
15:41:00 | Araq | all you need is xvec4(a, b, c: int{lit}) |
15:41:31 | Araq | you can do 'import system except `*`' but it's useless |
15:41:58 | Araq | and no, object constructors having a different syntax than calls is not "another big problem" |
15:43:29 | Araq | one 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:39 | FromDiscord | <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:56 | FromDiscord | <treeform> Araq, harsh... |
15:53:27 | Araq | harsh but true and don't take it personal |
15:53:44 | Araq | I know you are not creating RFCs all day long |
15:54:16 | Araq | why is it what way? 0 has the type 'int literal(0)' |
15:54:44 | Araq | which you can match against via proc xvec4(a, b, c: int{lit}) |
15:55:07 | Araq | and if the compiler tells you it's ambiguous it's because it is. |
15:55:19 | FromDiscord | <exelotl> [RFC] [Meta] Reducing the number of RFCs |
15:56:19 | FromDiscord | <exelotl> but yeah I mean why do we have Foo(x:10) but myProc(x=10) |
15:57:03 | FromDiscord | <treeform> but then new Foo(x:10) does not work... |
16:01:57 | FromGitter | <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:11 | anamok | hi |
16:07:20 | narimiran | hi |
16:07:59 | anamok | In 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:02 | FromGitter | <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:02 | anamok | But 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:23 | FromGitter | <xmonader> nimble install takes care of that @anamok |
16:11:56 | anamok | How? 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:35 | narimiran | myProject.nimble file? |
16:13:15 | FromGitter | <alehander42> anamok, you mean "the dependencies" of a project |
16:13:26 | FromDiscord | <exelotl> @treeform what do you mean by that? I only ever saw `new` in Nim used like `new myVar` |
16:13:33 | anamok | Yes. Does nimble update it automatically? |
16:13:51 | anamok | When I install a package? |
16:13:56 | FromGitter | <alehander42> e.g. https://github.com/nim-lang/nimforum/blob/master/nimforum.nimble |
16:14:11 | FromGitter | <alehander42> nimble installs the dependencies of a package, yes |
16:14:46 | * | platoff joined #nim |
16:15:34 | anamok | If 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:27 | FromGitter | <xmonader> @anamok yeah it there's no tool like pipreqs in nim to infer all deps for you |
16:17:07 | FromGitter | <alehander42> typically you write them in the nimble file first and then you run nimble install |
16:17:18 | FromGitter | <alehander42> similarly to the way people use e.g. gemfiles or others |
16:18:02 | anamok | I 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:11 | narimiran | right |
16:18:16 | FromGitter | <alehander42> yeah, it doesn't have anything to do with it public |
16:18:34 | FromGitter | <xmonader> @anamok nimble init would take care of the structure and tasks managment for you |
16:18:43 | anamok | OK, 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:18 | FromDiscord | <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:53 | FromDiscord | <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:45 | narimiran | can you try it with `math.pow`? |
16:47:56 | FromDiscord | <Ianthina> ill try |
16:48:41 | FromDiscord | <Ianthina> what do i need to import that from? |
16:49:31 | narimiran | just `import math`, and then you do `pow(e, -pi)` |
16:49:50 | narimiran | or you can do `e.pow(-pi)` |
16:50:02 | FromDiscord | <Ianthina> hm |
16:50:33 | FromDiscord | <Ianthina> strangely enough, that can only work with 2 floats. i can just redefine something as a float, though. |
16:50:57 | narimiran | `float(2).pow(1.5)` |
16:52:13 | narimiran | you can have either 2^3 between two ints, or `pow` with two floats |
16:56:48 | FromDiscord | <Ianthina> i see |
17:01:50 | * | tzui joined #nim |
17:10:46 | Arrrr | So, what are the plans for 0.19? Will be followed by 0.20? |
17:12:02 | TheLemonMan | 0.19.2 first |
17:13:31 | Arrrr | I don't want to die without being there the day nim reaches 1.0 |
17:16:03 | narimiran | Arrrr: well, that depends if you plan to live for 20 more years or not :D |
17:17:15 | elrood | easy, 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:30 | Arrrr | I 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:43 | Arrrr | Yes, I agree with you in that aspect. |
17:19:39 | elrood | for D that was basically when the trouble which almost lead to a language split began |
17:19:47 | federico3 | alternatively, the language could be frozen at a later version |
17:20:49 | narimiran | well, 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:41 | elrood | sure, 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:30 | narimiran | so the solution is to have neverending stream of 0.x versions? |
17:25:33 | elrood | and 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:48 | federico3 | that's why one announces plans in advance |
17:25:48 | elrood | no, 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:00 | narimiran | well 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:08 | FromGitter | <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:05 | TheLemonMan | ..you migrated to a pre-1.0 language because D wasn't stable enough? |
17:33:17 | narimiran | :D |
17:33:32 | narimiran | or in our land, that smiley is :Nim |
17:33:36 | * | krux02 joined #nim |
17:33:43 | Arrrr | He likes danger |
17:33:47 | * | tzui left #nim ("Textual IRC Client: www.textualapp.com") |
17:34:19 | narimiran | TheLemonMan: no, stability of D was too damn high! (that's what i got from that comment) |
17:34:29 | FromGitter | <timotheecour> no the opposite, (I reworded to make it clearer): no willingness for any breaking change even when everyone wants it |
17:35:01 | TheLemonMan | bullshit! I broke a lot of stuff myself heh |
17:35:30 | narimiran | @timotheecour we here on irc don't see your edits ;) |
17:35:44 | FromGitter | <timotheecour> i c. |
17:38:23 | FromGitter | <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:48 | FromGitter | <bung87> sounds like IE6 to me |
17:43:32 | FromGitter | <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:38 | FromGitter | <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:52 | TheLemonMan | that's an interesting idea, you can develop your own nimfix outside of the compiler tho |
17:49:19 | * | craigger joined #nim |
17:49:29 | elrood | yet another transpiler? ;P |
17:49:51 | TheLemonMan | a transpirer |
17:49:52 | narimiran | but what would be the fixes? future -> sugar, TObject -> Object, .. < -> ..<, what else? |
17:50:13 | TheLemonMan | string == nil -> something else ? |
17:50:29 | * | craigger_ quit (Ping timeout: 268 seconds) |
17:50:56 | FromGitter | <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:28 | TheLemonMan | eh? you can use the compiler as a library |
17:51:59 | TheLemonMan | that's how the spir-v compiler works |
17:53:23 | FromGitter | <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:52 | elrood | a 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:10 | TheLemonMan | I 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:05 | krux02 | TheLemonMan: comments do have their own node |
17:56:12 | FromGitter | <timotheecour> but that modification is a lot more complex (maybe even costly?) compared to trivial change in PR; |
17:56:51 | FromGitter | <timotheecour> @krux02 see PR for why this isn’t the case (lots of doc comments dont’ end up in a node) |
17:56:57 | krux02 | fact 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:00 | TheLemonMan | krux02, there are a few caveats though |
17:57:08 | krux02 | and then 8 bytes are totally wasted just for the comment |
17:57:10 | anamok | What is an easy way to call an external command? Like Python's os.system(). |
17:57:33 | TheLemonMan | anamok, have a look at the osproc module |
17:57:43 | FromGitter | <timotheecour> execShellCmd + friends |
17:58:23 | anamok | TheLemonMan, I heard about the nimscript module too |
17:58:53 | TheLemonMan | indeed, we're probably wasting the "saved" bytes due to padding and and alignment reasons |
17:59:42 | krux02 | there is an "info" member, I don't think that this one wastes the space |
17:59:57 | TheLemonMan | nimscript works in nimscript only (eg. nimble files) |
17:59:58 | krux02 | the big waste is normally the object header and the pointers to objects |
18:00:50 | FromGitter | <timotheecour> @krux02 just curious: how does this relate to comment field? |
18:01:20 | TheLemonMan | oh well, the TLineInfo is well-packed |
18:01:26 | krux02 | well the comment is a string, and the string is a pointer to an object with a string header |
18:02:06 | krux02 | the header is here not really the big waste, but the nil pointer to the comment field that is in almost every node. |
18:02:42 | krux02 | comments normally create a comment node |
18:03:13 | FromGitter | <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:26 | TheLemonMan | on the other hand if you let loose the nkCommentNodes the compiler is gonna have a bad time |
18:03:36 | krux02 | thimotheecour: don't!!! |
18:03:43 | krux02 | the comment field is going away |
18:04:33 | krux02 | comments are available in macros, you can get strVal on comment nodes |
18:04:38 | krux02 | and set it that way |
18:04:56 | krux02 | no need to expose any fields that are already planned for removal |
18:05:35 | narimiran | krux02: 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:49 | FromGitter | <timotheecour> but currently there is no doc comment node for majority of doc comments… sigh. |
18:06:15 | krux02 | narimiran, I already solved the conflict |
18:06:24 | krux02 | and it was ready to be merged |
18:06:35 | FromGitter | <timotheecour> Conflicting files ⏎ tests/testament/tester.nim |
18:08:44 | narimiran | that test/testament/tester.nim was moved to testament/tester.nim |
18:08:48 | anamok | TheLemonMan, thanks. nimscript has lots of useful procs, it's a pity it can't be imported. Any reason for that? |
18:09:11 | TheLemonMan | because you're using the full-blown version of Nim? |
18:10:27 | * | PMunch quit (Remote host closed the connection) |
18:10:49 | FromGitter | <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:23 | FromGitter | <timotheecour> using a precomputed table stored per file. |
18:12:23 | anamok | TheLemonMan, 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:44 | krux02 | nirimiran: looks like that branch is already merged |
18:12:58 | TheLemonMan | anamok, _all_ you see there are just wrappers for something that's available in the stdlib |
18:13:17 | anamok | OK, I see |
18:13:22 | TheLemonMan | there are a few modules you are not meant to import :) |
18:13:23 | krux02 | wait |
18:13:28 | krux02 | just looked like it |
18:13:31 | FromGitter | <timotheecour> @krux02 is your PR eventually going to be squashed as a single commit, or multiple commits? |
18:14:01 | krux02 | timotheecour: I don't care |
18:14:41 | FromGitter | <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:21 | krux02 | timotheecour: by deleting the history of this branch |
18:15:40 | FromGitter | <bung87> Do I need cpp `srd::unique_ptr` in nim ? |
18:15:53 | FromGitter | <timotheecour> Yes, but it’d still be in github for whoever cares about history. |
18:16:24 | krux02 | no it won't |
18:16:37 | krux02 | it will be removed from the history, invisible |
18:17:09 | FromGitter | <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:30 | krux02 | if you care so much, how about you do a nice linear rebase of that branch |
18:18:18 | FromGitter | <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:30 | FromGitter | <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:23 | krux02 | timotheecour: why do you care about the git history so much? |
18:29:05 | FromGitter | <timotheecour> https://github.com/nim-lang/Nim/issues/8664 has rationale |
18:29:37 | * | craigger quit (Ping timeout: 246 seconds) |
18:29:41 | krux02 | it is a feature branch that eventually was merged back into the main compiler |
18:29:49 | krux02 | that branch is more than a year old. |
18:30:05 | krux02 | I am supre happy that git could help me with the non trivial merge conflics |
18:31:00 | krux02 | any des it's not "a neat little patch with no trace that it was once a forked branch" |
18:31:06 | krux02 | I started the fork over a year ago |
18:31:49 | krux02 | I 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:05 | FromGitter | <timotheecour> https://github.com/nim-lang/Nim/pull/9356 |
18:43:14 | FromGitter | <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:51 | krux02 | timotheecour: I have a question |
18:44:00 | * | TheLemonMan quit (Quit: "It's now safe to turn off your computer.") |
18:44:12 | krux02 | what is your reason why you have chosen to develop in/for Nim? |
18:44:52 | FromGitter | <timotheecour> see the -1 in https://github.com/timotheecour/D_vs_nim |
18:47:08 | FromGitter | <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:28 | krux02 | ok you made a comparison of the two languages |
18:50:51 | krux02 | but what is the motivation for this? |
18:51:16 | krux02 | I also explored a lot of programming languages |
18:51:57 | FromGitter | <bung87> um , what’s this topic looks like in the end…. |
18:52:08 | krux02 | I didn't really dive into D because I didn't like the single inheritance classic OOP programming model |
18:53:16 | krux02 | bung87: I am sorry I don't undarstand that sentence. |
18:53:52 | * | craigger_ joined #nim |
18:54:01 | FromGitter | <bung87> I just confusing,what you guys talk about. |
18:54:26 | FromGitter | <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:30 | FromGitter | <bung87> dont know where this topic will lead with. |
18:54:48 | * | craigger quit (Ping timeout: 252 seconds) |
18:55:06 | FromGitter | <timotheecour> (didn’t start it! happy to end it!) |
18:56:40 | krux02 | so you are on a quest for the best programming language ? |
18:57:25 | FromGitter | <timotheecour> just wanna get sh* done and move on ;-) but IMO a good PL is a bottleneck for getting sh* done. |
18:57:47 | Arrrr | will google use nim for anything? |
18:59:22 | krux02 | Arrrr, my clystal ball says: "YES" |
19:00:09 | FromGitter | <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:12 | Arrrr | timothee is an insider, he might have some information |
19:00:16 | krux02 | Google 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:10 | krux02 | I think Nim will be used at some point. But not yet. |
19:02:19 | FromGitter | <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:19 | krux02 | nim can already access C C++ wrapper free |
19:05:26 | krux02 | with the emit statement |
19:05:34 | narimiran | btw, is there any woman working in nim? |
19:05:47 | krux02 | totally not typechecked by the Nim compiler, but totally practical |
19:06:04 | krux02 | I mean there is a type checken in the C and C++ compiler, too. |
19:06:37 | krux02 | narimiran: I have long hair, does that count? |
19:07:32 | FromGitter | <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:24 | krux02 | I haven't used opencv yet |
19:08:30 | krux02 | but what's so hard about it? |
19:08:44 | krux02 | the types? |
19:08:56 | * | zachk quit (Changing host) |
19:08:57 | * | zachk joined #nim |
19:09:16 | federico3 | getting useful object detection |
19:11:14 | FromGitter | <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:35 | FromGitter | <timotheecour> with calypso, this would be possible, wrapper free. |
19:24:35 | * | dddddd joined #nim |
19:38:12 | federico3 | did anyone get TravisCI to build on windows? |
19:41:20 | * | smt joined #nim |
19:48:10 | FromGitter | <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:55 | federico3 | if 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:55 | krux02 | travis 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:12 | anamok | bye |
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:08 | dom96 | I bet Travis will have a hell of a lot more bugs than AppVeyor... |
20:47:46 | * | Arrrr quit (Quit: Arrrr) |
20:48:19 | federico3 | dom96: speaking of bugs, https://github.com/nim-lang/Nim/issues/9358 |
20:48:36 | federico3 | (I wish circleci had windows support instead...) |
20:49:04 | dom96 | wut |
20:49:11 | dom96 | How can that raise an exception in compiler? |
20:51:28 | dom96 | Is it a compilation error? |
20:51:56 | federico3 | yep |
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:39 | shashlick | What appveyor errors |
21:37:49 | FromGitter | <timotheecour> https://github.com/nim-lang/Nim/issues/8640 mainly |
21:43:04 | shashlick | I spent some time thinking about speeding up tests last week |
21:43:12 | shashlick | Caches don't help much |
21:43:52 | shashlick | I could ask for some beefy machines to run at work |
21:44:05 | shashlick | But no one will have access to them besides me |
21:44:40 | FromGitter | <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:48 | shashlick | Well for starters split tests - compiler vs stdlib |
21:46:53 | shashlick | Nim doc separately |
21:47:11 | shashlick | But all this nonsense since we cannot afford a farm that does stuff in parallel |
21:47:29 | shashlick | If you can do 8 builds in parallel |
21:48:14 | Araq | we can afford a farm |
21:48:26 | Araq | but I'm clueless about which one to pick |
21:48:41 | Araq | and I already know travis/appveyor... |
21:49:09 | Araq | plus tests should also be speedy on a developer's machine so optimizing them is always worth it |
21:49:33 | FromGitter | <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:45 | FromGitter | <timotheecour> what’s budget? |
21:49:56 | federico3 | there was already a build fleet, ask dom96 |
21:50:19 | * | platoff quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
21:50:29 | Araq | remember that I'm the worst admin ever :P |
21:50:49 | Araq | but maybe krux02 wants to do that? ;-) |
21:51:40 | dom96 | hardware isn't a problem |
21:51:43 | dom96 | it's software |
21:51:48 | dom96 | We've got access to the GCC farm too |
21:56:16 | Araq | well software is a problem in the sense that every option needs to support all 3 big OSes |
21:58:50 | krux02 | I should be the admin of what? I testing farm? |
22:01:01 | Araq | yeah |
22:02:12 | krux02 | I have mostly experience with Linux as a user but sure I can learn whatever it needs to set it up |
22:03:02 | krux02 | If there is something I would like to change about the testing setup, then it is how I get the logs. |
22:03:18 | krux02 | Travis is horribly slow when I just want to get the log file. |
22:03:46 | FromGitter | <timotheecour> travis has cmd line to get these IIRC |
22:04:32 | krux02 | well that would be very neat |
22:05:34 | krux02 | I tried to curl it, but a PR site doesn't have travis links when it is fetched with curl |
22:05:53 | krux02 | and logging in with curl, that is too complicated for me. |
22:09:30 | dom96 | Something 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:50 | dom96 | And we can tell it "@NimCIBot mark as flaky" |
22:10:01 | dom96 | That way we don't have to open the logs |
22:10:07 | dom96 | The bot finds the failure for us |
22:11:42 | Araq | we can also just weaken the 2 flaky tests instead |
22:11:50 | Araq | it's always the same |
22:12:08 | FromGitter | <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:39 | FromGitter | <yyyc514> where can i find source for stdtmpl? |
22:18:48 | Araq | compiler/filter_tmpl.nim |
22:18:51 | * | rnrwashere joined #nim |
22:21:18 | dom96 | Araq: It won't always be the same |
22:21:40 | dom96 | Surprised nobody else is excited by my idea |
22:25:05 | * | Jesin joined #nim |
22:26:05 | Araq | dom96, it's been the same for a long time now |
22:26:24 | dom96 | In any case, that would just be one of the features of this bot |
22:26:35 | dom96 | The more valuable main feature would be extracting the cause of failure |
22:26:51 | FromGitter | <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:17 | federico3 | timotheecour: you can't reliably measure CPU-bound benchmarks on travis CI VMs, you need dedicated bare metal |
22:33:09 | dom96 | indeed |
22:33:11 | * | darithorn joined #nim |
22:33:46 | shashlick | well that's all great but we need to parallelize first - even running 2 parallel jobs will be worth it |
22:34:08 | shashlick | there's already appveyor and travis - if we can get them to pick alternate PRs, that itself will solve part of that |
22:35:27 | shashlick | number 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:34 | shashlick | one other thing every prolific contributor could do is test his branch on his own instance of travis/appveyor before pushing a PR |
22:37:15 | Araq | I test the relevant categories only and usually that's enough (sorry about my last mistake) |
22:38:40 | shashlick | well, my idea won't work - appveyor and travis already run in parallel - just parallelizing OS, not PRs |
22:38:53 | shashlick | even if you add windows to travis and linux to appveyor, they will run in sequence |
22:41:00 | * | Jesin joined #nim |
22:41:17 | FromGitter | <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:10 | FromGitter | <timotheecour> this is a case where we can litterally throw money at the problem: https://travis-ci.com/plans |
22:43:04 | Araq | too bad travis has the worse UI then :P |
22:43:15 | Araq | but I'll consider it |
22:43:47 | dom96 | $69 per month, my god |
22:44:03 | Araq | also in the past I had the impression travis is mostly a bunch of Bash scripts they run on old Linux machines |
22:44:10 | dom96 | We don't even pay that much for our VPS' |
22:44:49 | dom96 | Should we give GitLab CI a go again? |
22:45:07 | FromGitter | <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:51 | Araq | nah, Gitlab's service was terrible to setup on Windows |
22:46:43 | FromGitter | <kayabaNerve> I think I found a bug :/ |
22:46:57 | FromGitter | <yyyc514> just found a typo in docs :) |
22:47:57 | * | rnrwashere quit (Remote host closed the connection) |
22:48:21 | Araq | yyyc514 that's why they have an [Edit] button |
22:48:33 | FromGitter | <yyyc514> yeah i submitted a PR |
22:50:30 | FromGitter | <kayabaNerve> Araq Did you know the effects system doesn't cover optional arguments? |
22:50:34 | FromGitter | <kayabaNerve> Is that intended? |
22:51:38 | FromGitter | <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:56 | Araq | it's documented and not related to the default parameters |
22:52:11 | Araq | (but it might indeed by buggy... :-/ ) |
22:52:55 | FromGitter | <kayabaNerve> So is it an issue or not? Sounds like I don't need to create an issue either way. |
22:53:18 | Araq | the manual explains how this works in 3 sentences iirc |
22:53:36 | Araq | terrible feature, in retrospect |
22:54:11 | FromGitter | <timotheecour> @araq i addressed your comment in https://github.com/nim-lang/Nim/pull/8786 |
22:55:20 | FromGitter | <kayabaNerve> Rule 1 and 2? |
22:55:36 | FromGitter | <kayabaNerve> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5bc277e8bbdc0b250538dc58] |
22:58:11 | FromGitter | <kayabaNerve> Sounds like I should submit an RFC. |
22:59:06 | FromGitter | <kayabaNerve> It is intended. It's also an issue. |
22:59:44 | shashlick | I think some of the build options are to split into compiler, stdlib, docs, tools, etc. |
22:59:49 | shashlick | and only run those tests that are appropriate |
22:59:56 | shashlick | obviously there are dependencies |
23:00:40 | shashlick | but this is easier said than done, and i'm unsure it is worth the community's time |
23:00:46 | shashlick | so better to add more machines to the mix |
23:01:27 | shashlick | like 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:22 | Araq | we 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:56 | shashlick | when you say failed, what do you mean - tests failed due to misconfiguration or the machine died/hung, etc. |
23:06:27 | FromGitter | <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:23 | Araq | shashlick, machine offline |
23:18:17 | * | MyMind quit (Max SendQ exceeded) |
23:20:19 | FromGitter | <kinkinkijkin> how do i execute a process from outside and not stall for it? |
23:20:44 | FromGitter | <kinkinkijkin> i am making something that has the ability to "run and forget" |
23:21:39 | * | MyMind joined #nim |
23:22:02 | shashlick | I see |
23:22:14 | shashlick | okay anyone who has servers they can contribute to the cause, please get in touch |
23:22:20 | shashlick | i'll see what can be done here |
23:22:31 | shashlick | if there's some stuff done in the past, please point me to that as well |
23:22:36 | shashlick | worth a side project |
23:23:14 | * | malkomalko quit (Quit: Lost terminal) |
23:23:53 | Araq | kinkinkijkin, use the osproc module |
23:24:19 | * | elrood quit (Quit: Leaving) |
23:25:56 | FromGitter | <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:59 | FromGitter | <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:00 | FromGitter | ... rebase and merge, would have shown @krux02 as the author |
23:53:22 | * | zachk quit (Quit: Leaving) |
23:56:04 | krux02 | so the branch I worken on for over a year (not continuously) is now listed as timothee's in git blame? |
23:56:56 | FromGitter | <timotheecour> @araq there’s still time to change : git commit --amend --author="Arne Döring <[email protected]>" |
23:57:06 | FromGitter | <timotheecour> than (carefully) force push |
23:59:06 | krux02 | well I have to go to bed now |