<< 21-03-2019 >>

00:25:03*theelous3_ quit (Ping timeout: 246 seconds)
00:39:01*sentreen quit (Quit: WeeChat 2.3)
00:39:04*chimez quit (Quit: chimez)
00:39:42*sentreen joined #nim
00:56:34*kapil____ quit (Quit: Connection closed for inactivity)
01:31:55*jjido quit (Quit: Connection closed for inactivity)
01:41:17*sentreen_ joined #nim
01:42:10*sentreen quit (Ping timeout: 255 seconds)
01:45:18*sentreen_ quit (Client Quit)
01:45:31*sentreen joined #nim
01:52:58*vlad1777d quit (Ping timeout: 255 seconds)
02:20:14*dddddd quit (Read error: Connection reset by peer)
02:20:14*Snircle quit (Quit: Textual IRC Client: www.textualapp.com)
02:20:15*lritter quit (Ping timeout: 250 seconds)
02:55:20*banc quit (Ping timeout: 250 seconds)
02:58:44*ng0_ joined #nim
03:01:54*banc joined #nim
03:02:13*ng0 quit (Ping timeout: 256 seconds)
03:05:54*banc quit (Client Quit)
03:21:13*revere quit (Ping timeout: 246 seconds)
03:22:13*leorize joined #nim
03:23:13*revere joined #nim
03:27:30*banc joined #nim
03:53:11*ptdel quit (Remote host closed the connection)
04:18:04*chemist69 quit (Ping timeout: 258 seconds)
04:18:42*leorize quit (Quit: WeeChat 2.3)
04:18:52*leorize joined #nim
04:20:00*chemist69 joined #nim
04:27:43*cyraxjoe quit (Ping timeout: 244 seconds)
04:31:24*cyraxjoe joined #nim
04:38:44*noeontheend joined #nim
04:52:18*leorize quit (Quit: WeeChat 2.3)
04:54:02*kapil____ joined #nim
04:59:18*nsf joined #nim
05:03:40*rnrwashere joined #nim
05:06:24*rnrwashere quit (Remote host closed the connection)
05:23:15*noeontheend quit (Ping timeout: 252 seconds)
05:57:57*leorize joined #nim
06:00:42*narimiran joined #nim
06:01:47*rnrwashere joined #nim
06:07:44*noonien quit (Quit: Connection closed for inactivity)
06:25:51*NimBot joined #nim
06:42:16FromGitter<Varriount> ryukoposting: Are you there?
06:50:57*rnrwashere quit (Remote host closed the connection)
06:58:00*krux02 joined #nim
07:00:00*gmpreussner quit (Quit: kthxbye)
07:00:49*solitudesf joined #nim
07:04:33*gmpreussner joined #nim
07:22:22Zevvthanks for the const macro fix araq
07:22:41Araqdon't thank me, thank Cooldome
07:22:49Zevvthanks for the const macro fix cooldome
07:50:30*PMunch joined #nim
07:59:09*ng0_ quit (Quit: Alexa, when is the end of world?)
08:17:30*neceve joined #nim
08:32:36*solitudesf quit (Ping timeout: 246 seconds)
08:34:01*solitudesf joined #nim
08:44:31Araqhttps://www.theregister.co.uk/2016/08/22/samsung_m1_core/
08:47:22Zevvneural nets for branch prediction, well why not
08:52:09*vlad1777d joined #nim
09:03:05Araq„Proebsting’s Law5
09:03:06Araqstates that performance gains due to improvements in
09:03:06Araqcompiler optimizations will double the speed of a program every 18 years“
09:03:11Araqhttps://arxiv.org/pdf/1809.02161.pdf
09:05:17*floppydh joined #nim
09:10:10PMunchZevv, well I guess that makes sense in a way. As long as you manage to make it silly fast
09:11:06Zevvoh yes, it definitely make sense. It's an unsolvable problem, so if you make something that's fast and cheap and right some of the time, it is a big improvement
09:12:32Zevv[...]most baroque IR-level peephole optimizer ever created[...], hehe
09:16:58*chimez joined #nim
09:17:00*chimez quit (Client Quit)
09:18:14PMunchI remember when I first learnt about branch predictors, mind boggling how they have a tiny "machine learning" component inside your CPU
09:18:40PMunchI mean it's a fairly rudimentary thing in most cases, but still
09:19:47*absolutejam joined #nim
09:28:15Zevvit is one of those cases that feels like a natural fit. If you can do better then a pure chance with a handful of transistors, go for it
09:28:26Zevvas long as you don't make it worse :)
09:41:01Araqalehander42:
09:41:33Araq„Reducing pointer chasing. Since the in-memory version of a compiler IR is typically pointer-intensive, traversing IR requires a lot of indirections. Informal measurements show that on a modern core with exclusive use of a 25 MB cache,
09:41:33Araqan optimizing C++ compile using GCC or LLVM still spends 30–35% of its runtime stalled on memory operations. The pointer-heavy representation follows from the desire to easily edit the IR on the fly using hand-written passes.
09:41:33AraqFuture IRs that are less-often manipulated in ad hoc fashion can be be designed to be cache friendly and also suitable for processing using GPUs and GPU-like many-core processors. As an example of this kind of work, Vollmer et al. [32] report that “For traversals touching the whole tree, such as maps and
09:41:35Araqfolds, packed data allows speedups of over 2× compared to a highly-optimized pointer-based baseline.”“
09:41:47Araqhere is your reference to "Packed IRs"
09:52:04*stefanos82 joined #nim
10:03:12PMunchZevv, yeah. Although I guess sometimes it does bite you in the butt. But for most things the branch predictor does a pretty good job
10:16:51*dddddd joined #nim
10:17:54*sentreen quit (Ping timeout: 252 seconds)
10:30:11*sentreen joined #nim
10:34:01*leorize quit (Quit: WeeChat 2.3)
10:35:08*lf-araujo joined #nim
10:45:50*abm joined #nim
10:47:28*lf-araujo quit (Ping timeout: 246 seconds)
10:58:45FromGitter<alehander42> Araq thanks
10:58:50FromGitter<alehander42> where is this from
10:59:18FromGitter<alehander42> https://arxiv.org/pdf/1809.02161.pdf ?
11:00:14FromGitter<alehander42> hm and the ref http://drops.dagstuhl.de/opus/volltexte/2017/7273/pdf/LIPIcs-ECOOP-2017-26.pdf
11:01:53FromGitter<mratsim> I think we will have specialized IRs (for example for deep learning and image processing we're going there) that lowers into low=level IR like LLVM
11:15:20Araqalehander42: yeah, sorry forgot to send the link
11:27:18*couven92 joined #nim
11:43:31FromGitter<alehander42> interesting stuff thanks
11:43:52FromGitter<alehander42> how is the incremental compilation going
11:44:30FromGitter<mratsim> conference is on April 10
11:44:42FromGitter<alehander42> which conf
11:44:44FromGitter<mratsim> ACCU2019 so it should be usable by then ;)
11:44:53FromGitter<alehander42> ooh
11:45:02FromGitter<alehander42> but i meant the incremental compilation, not hcr
11:45:24FromGitter<mratsim> oh right sorry
11:45:27FromGitter<mratsim> misread
11:45:37FromGitter<alehander42> i alreadyd watched a talk about hcr live :P
11:45:43*ng0 joined #nim
11:46:42AraqIC work got scheduled behind destructors
11:46:49Araq*after
11:47:07FromGitter<alehander42> i always thouight behind sounds like a german word btw
11:47:26FromGitter<alehander42> it just sounds german, the "HEEEEInd"
11:50:23narimiranbe-heind :D
12:02:19*sentreen quit (Quit: WeeChat 2.3)
12:02:33Araqif you say so.
12:04:45*sentreen joined #nim
12:07:39FromGitter<mratsim> obligatory meme: https://i.kym-cdn.com/entries/icons/mobile/000/006/026/NOTSUREIF.jpg
12:15:20*neceve quit (Read error: Connection reset by peer)
12:21:24*neceve joined #nim
12:38:28FromGitter<alehander42> hm so whats would destructors article be about
12:38:52FromGitter<alehander42> what happened with ref after all, how would it look under this model
12:41:29*I_Right_I quit (Remote host closed the connection)
12:42:49Araqin a nutshell: you help the compiler out by annotating the refs that create the spanning tree of your graph data structure
12:54:21*Torro joined #nim
13:15:58*ryanhowe joined #nim
13:16:40*ryanhowe quit (Client Quit)
13:18:48*seni joined #nim
13:49:01*nsf quit (Quit: WeeChat 2.4)
14:05:53*ng0 quit (Quit: Alexa, when is the end of world?)
14:28:42*hogeland quit (Ping timeout: 264 seconds)
14:29:07*hogeland joined #nim
14:32:08shashlickIs static bool broken on release?
14:32:34shashlickI have a macro with param: `recurse: static bool = false`
14:32:53FromGitter<liquid600pgm> I think it's `static[bool]`, not `static bool`
14:33:04shashlickIt is always false in release even if called with true, but works on devel
14:34:56Araqwhat do you mean "works on devel, fails on release"?
14:35:45narimiranrelease = stable = 0.19.4?
14:36:24FromGitter<mratsim> @liquid600pgm: static bool works since 0.19 iirc
14:37:14FromGitter<mratsim> @shashlick, iirc static default parameters are broken
14:37:29FromGitter<mratsim> when they do not become integers
14:38:14shashlickit works on devel though, seems like it was fixed
14:38:51FromGitter<liquid600pgm> I always used `static[bool]`, not `static bool`, and it works perfectly fine
14:39:05shashlickwith default values?
14:39:06FromGitter<liquid600pgm> is there any semantic difference between the two?
14:39:09FromGitter<liquid600pgm> yes
14:39:43FromGitter<liquid600pgm> see: https://github.com/liquid600pgm/rod/blob/master/src/rod/parser.nim#L186
14:39:50FromGitter<liquid600pgm> it compiles just fine
14:40:30FromGitter<mratsim> static[bool] was first and static bool was added later for consistency
14:41:47shashlickcan you try setting allowElse = false and see if it accepts it
14:41:50shashlickon 0.19.4
14:42:19FromGitter<mratsim> it's a proc not a macro
14:42:25FromGitter<mratsim> proc would work
14:42:32FromGitter<liquid600pgm> aah, didn't notice that
14:43:28shashlickbut static still means compile time right
14:43:41shashlickwell, wont' help me because i am generating code
14:44:13FromGitter<mratsim> yes static mean compile-time but static proc works
14:44:46FromGitter<mratsim> it's pretty recent though
14:45:10shashlickbut ya, seems to work on devel so would be cool to backport the fix
14:45:12FromGitter<mratsim> I think static enum were added quite recently for example
15:01:18*vlad1777d quit (Ping timeout: 245 seconds)
15:04:53*PMunch quit (Remote host closed the connection)
15:11:13*narimiran quit (Ping timeout: 272 seconds)
15:13:11*lritter joined #nim
15:30:09*krux02 quit (Remote host closed the connection)
15:34:43*Trustable joined #nim
15:35:16FromGitter<mratsim> dataman is back? https://forum.nim-lang.org/t/4730
15:41:58FromGitter<mratsim> the mix of content and spam links in this reply is dumbfounding: https://forum.nim-lang.org/t/1779#28447
15:46:09FromGitter<zacharycarter> Going to get back to work on my engine starting today
15:46:18FromGitter<mratsim> which one? :p
15:46:27FromGitter<zacharycarter> hahaha, good point
15:46:30FromGitter<zacharycarter> the last one I was working on
15:46:55FromGitter<zacharycarter> https://github.com/zacharycarter/zeal
15:47:15FromGitter<zacharycarter> Also - I officially have a game dev job finally
15:47:35FromGitter<zacharycarter> working on - https://warofrights.com/
15:48:50FromGitter<mratsim> impressive work on the fonts and website look & feel
15:49:26FromGitter<zacharycarter> I had nothing to do with that :P I'm going to be working on in game UI / HUD etc...
15:49:54FromGitter<mratsim> yeah I know ;) but tell that to your colleague :p
15:50:00FromGitter<zacharycarter> I will :)
15:50:33*sealmove joined #nim
15:57:09FromGitter<data-man> @mratsim Yes! :-) Hello everyone!
15:57:56FromGitter<mratsim> welcome back
16:00:11FromGitter<data-man> Thanks! So many changes in many areas.
16:00:14shashlickwelcome @data-man
16:01:27FromGitter<data-man> @shashlick I've feature request to toast - add space after commas :)
16:02:59*rnrwashere joined #nim
16:11:47sealmoveFinalized syntax for structural typing: https://termbin.com/w6bs
16:11:50*noonien joined #nim
16:12:17shashlick🙂
16:12:53*rnrwashere quit (Remote host closed the connection)
16:13:40FromGitter<liquid600pgm> I think you forgot to change some namings in the commented out section
16:15:16sealmovewhich one?
16:15:56sealmovenames are correct, but I forgot to write out the generated type...
16:16:18*floppydh quit (Quit: WeeChat 2.4)
16:16:32sealmoveah the proc names, thanks
16:16:44FromGitter<liquid600pgm> yes, that's what I was referring to
16:18:22sealmovesorry for the rushy paste, here is fixed one: https://termbin.com/p45j
16:19:19sealmoveworth implementing, right?
16:20:16FromGitter<liquid600pgm> yes, but is it really possible to declare blocks like `implement MyContract float f`? I thought it needed to be `implement MyContract, float, f`
16:20:22*Torro left #nim ("-bye")
16:21:23sealmoveit's possible, but a bit harder (will have to do manual checks). But seperating with commas is still nice I think
16:21:24FromGitter<mratsim> yes you can
16:21:52FromGitter<liquid600pgm> I never knew you could do that, good to know
16:22:04sealmovewas also thinking for `implement MyContract for float as f` :D
16:22:25sealmovewell, you just manually parse the string and then build up your types
16:22:59FromGitter<mratsim> actually no it doesn't work
16:23:42FromGitter<mratsim> for a proc
16:23:55FromGitter<mratsim> for an untyped macro as long as it parses you can do whatever
16:24:11sealmoveyeah I am talking about macros
16:24:50FromGitter<mratsim> for example: https://github.com/mratsim/glyph/blob/master/glyph/snes/opcodes.nim#L17-L32
16:25:09FromGitter<mratsim> (opcode for a SNES VM)
16:25:24FromGitter<liquid600pgm> oh cool, a SNES emulator written in Nim
16:25:32FromGitter<mratsim> https://github.com/numforge/laser/blob/master/laser/photon_jit/x86_64/x86_64_ops.nim#L24-L65
16:25:40FromGitter<mratsim> opcode for a x86_64 JIT assembler
16:25:56sealmovethis compiles and prints "ha!": https://termbin.com/ri7t
16:25:59FromGitter<mratsim> the SNES emulator is nowhere near implemented though :P I only have addressing modes properly done
16:34:06*Vladar joined #nim
16:40:05sealmoveI've also been working on implementing this syntax: https://termbin.com/oz8b
16:44:17planetis[m]sealmove: Check out my lib it does somthing similar: https://github.com/b3liever/protocoled
16:45:30planetis[m]the example with the interface not the lamda
16:46:28*Jesin quit (Quit: Leaving)
16:46:41sealmovenice, indeed similar, though maybe a bit more Rust-inspired ;p mine is actually go-inspired
16:47:35FromGitter<mratsim> assimilate all the languages: https://github.com/micklat/NimBorg
16:48:12*pacujo joined #nim
16:48:35sealmovemratsim: :D nice project, too bad it's abandoned
16:48:56FromGitter<mratsim> nimpy works quite well. Not sure who is using Lua :p
16:49:44pacujoYesterday I reported that "import seqs" fails on my improvised installation. It turns out "import seqs" fails even on Fedora 29's nim package.
16:49:58pacujoDoes it work for you?
16:50:22*Jesin joined #nim
16:50:41pacujoI get ...nim-0.19.4/lib/core/seqs.nim(18, 13) Error: undeclared identifier: 'Allocator'
16:51:30sealmoveplanetis: just little observation. In README, in `class` macro section, it says "You need to separate the self parameter from the rest with a semicolon." but the example uses the keyword `this` instead.
16:53:06FromGitter<mratsim> @pacujo, import seqs? I don't think you're supposed to import that
16:53:16pacujoOh, you're not?
16:53:21FromGitter<mratsim> it's probably for the upcoming destructors and is Nim internal
16:53:49FromGitter<mratsim> you might have been looking for sequtils instead
16:53:53pacujohttps://nim-by-example.github.io/seqs/
16:54:17FromGitter<mratsim> yes but no need to import seqs
16:54:43FromGitter<mratsim> you can follow this tutorial just with nim defaults
16:55:05pacujoOk, got it. Thank you
16:55:15FromGitter<mratsim> I actually think that the fact that import seqs works is a bug cc @Araq @narimiran
16:55:27*nsf joined #nim
16:57:05pacujoAre you supposed to import sets?
16:57:50pacujoI suppose you are.
17:01:21sealmovepacujo: https://nim-lang.github.io/Nim/lib.html
17:01:30sealmoveimport stuff that are shown here
17:02:29*neceve quit (Read error: Connection reset by peer)
17:02:56pacujoThanks
17:03:24sealmovehey planetis! are you Greek?
17:09:27*pacujo quit (Ping timeout: 252 seconds)
17:22:50*pacujo joined #nim
17:22:55pacujoIs there a balanced tree type (or equivalent) in the core lib?
17:35:14sealmovebalanced, mm, there is b-trees
17:36:49pacujoOh, found avltree.nim
17:39:26pacujoBut again, not importable...
17:39:50planetis[m]sealmove: yes
17:39:56planetis[m]you too?
17:39:59sealmoveyup!
17:40:01pacujoNot to be imported, that is
17:41:25FromGitter<data-man> @pacujo There is https://github.com/brianshannan/nim-trees
17:41:45planetis[m]nice too meet you, regarding your comment about self, it doesn't matter which name you choose
17:42:55planetis[m]it peeks the first that has an empty type
17:42:56*noeontheend joined #nim
17:43:11planetis[m]*picks
17:43:51planetis[m]do you have a long time since you been learning nim?
17:44:49pacujoThanks, FromGitter. Anyway, interestingly the system lib seems to have an implementation but it's not made public
17:44:50FromGitterpacujo, I'm a bot, *bleep, bloop*. I relay messages between here and https://gitter.im/nim-lang/Nim
17:45:57sealmovepacujo: pacujo, the Nim/compiler folder is usually not in default paths. Try using the full path to the file.
17:47:24*noeontheend quit (Ping timeout: 252 seconds)
17:47:26sealmoveplanetis: nice to me meet you too! I see, still, the example is a little inconsistent. Not sure how long ago I started, but it should be 1year+.
17:49:54*narimiran joined #nim
17:50:23sealmovepacujo: sorry it wasn't in Nim/compiler. It's in Nim/lib/system/avltree.nim but seems to export no symbols. I suggest you make a copy of it in your project folder and add `*` to the procs that you want to use.
17:50:48sealmovealso note the comment "# not really an AVL tree anymore, but still balanced ..." :D
17:51:02pacujoThanks, sealmove, I can port my own implementation while I'm at it
17:51:21sealmovesure
17:52:11sealmoveof course you can use "import" instead, if you don't want to have in your project folder.
17:52:38sealmovesorry, I mean "include"
17:54:55pacujoYep
17:55:08pacujoAny preference between new(result) and result.new?
17:56:01*seerix quit (Remote host closed the connection)
17:56:24sealmove1st
17:57:18planetis[m]true, it has some inconsistences, like the export marker syntax. But I don't think it worth maintaining it.
17:57:37planetis[m]btw do you have code for yours?
18:02:32sealmoveplanetis: not yet, probably tomorrow
18:04:19planetis[m]now you can see how its done :)
18:06:37narimiranpacujo: 3rd :) `new result`
18:08:03sealmovebut the implementation I have in mind is very different. It's just better syntax for what Araq showed me.
18:08:17sealmovehttps://github.com/nim-lang/Nim/blob/devel/tests/closure/tclosure.nim#L573
18:09:15sealmovethe interface is a tuple of closures.
18:11:04*pacujo quit (Ping timeout: 252 seconds)
18:12:39planetis[m]right like this one: https://www.openmymind.net/Interfaces-In-Nim/
18:15:54sealmoveexactly
18:16:07sealmovethis syntax is very confusing, so a macro fits perfectly I think
18:16:34planetis[m]yep
18:17:04planetis[m](btw my internet sucks sorry if it takes long to reply)
18:17:40sealmovenp
18:18:46planetis[m]so how are you planning on using nim?
18:19:09planetis[m]in job or just personal projects
18:19:20*Vladar quit (Ping timeout: 252 seconds)
18:20:38sealmoveI hope it will be a life-long relationship :) But if you mean stuff I plan to do soon, one is a TUI library.
18:22:49planetis[m]i am learning programming in my free time. Btw I have ported JAMA to nim!
18:23:30planetis[m]I was thinking to release it but im not sure
18:23:38sealmoveNim is mostly research for me atm. I am still in uni and don't "need" Nim, but for example playing with macros/ast teaches a lot.
18:23:50sealmoveJAMA
18:24:04sealmovewhat's JAMA?
18:24:29planetis[m]its java matrix library
18:24:40sealmoveoh, nice
18:24:49sealmoveyeah we have arraymancer
18:25:00sealmovemaybe help there
18:25:06planetis[m]its used in my uni for computations
18:25:20sealmovewhere is your uni?
18:25:23narimiranmy advice: use `neo` for matrices
18:25:26planetis[m]its different scope though
18:25:48planetis[m]neo cant do what I need!
18:26:15narimiranwhat is that?
18:26:43planetis[m]be portable dont depend on cblas
18:26:48narimiran:)
18:28:09planetis[m]sealmove: auth, are you a student too?
18:29:06sealmoveyeah, uop
18:29:36sealmovethat's pretty cool :)
18:29:42planetis[m]namiran: dont get me wrong, both neo and arraymancer seem nice but couldn't fit me
18:30:43sealmovemaybe we can at least exchange e-mails :3 and in future start a Nim project together if the wind blows that way
18:32:18planetis[m]I wanted to share a project with someone since forever
18:32:27planetis[m]that would be cool
18:34:31*gangstacat quit (Ping timeout: 252 seconds)
18:39:57planetis[m]bear in mind my theoritical skills are pretty weak
18:40:17ZevvI got the compiler crashing, it is stuck in an endless loop of typeToString until it stack overflows
18:40:29narimiranZevv: congrats :P
18:40:55Zevvit seems there's a loop in the AST, wow
18:41:01planetis[m]and I m stuck in lyceum structured programming
18:41:22Zevvplanetis[m]: what's that?
18:42:25*kapil____ quit (Quit: Connection closed for inactivity)
18:42:29planetis[m]its greek name for highschool
18:42:59Zevvoh, that kind of lyceum. Thought it was some kind of paradign I hadn't heard of :)
18:43:12planetis[m]in the third grade we are taught structured programming, through a language which is like Pascal
18:43:27FromGitter<alehander42> is there a way to handle ctrlc in a nim program that invokes execShel
18:43:30FromGitter<alehander42> execShell
18:44:12*rnrwashere joined #nim
18:44:38sealmoveuse some kind of line editor?
18:44:58*ng0 joined #nim
18:46:32sealmovedepends on the program, but you either have to find or implement a input controller. for programs that get text input you have stuff like nim-noise.
18:50:14FromGitter<alehander42> they dont really get input: they just start a loop invoking a "translator" and most of the time the invoked program runs
18:50:27FromGitter<alehander42> but the problem is that if i ctrlc i need to ctrlc all the remaining iterations of the loop
18:52:55sealmovethis sounds like fork/exec issue
18:53:06rayman22201This is a pretty good description of how ctrlc works in unix: https://unix.stackexchange.com/questions/176235/fork-and-how-signals-are-delivered-to-processes
18:53:07sealmoveI am not sure what execShell does under the hood
18:54:53FromGitter<alehander42> it invokes system()
18:56:57sealmoveis execShell in the loop?
18:57:26sealmoveif yes, then you create one process per loop
18:58:18sealmoveand these processes are left open
18:58:59FromGitter<alehander42> well, they do close
18:59:04FromGitter<alehander42> they happen serially
18:59:12sealmoveit doesn't mean they close
18:59:29FromGitter<alehander42> they do, i can see it in htop
18:59:46FromGitter<alehander42> execShellCmd waits until the process is finished
18:59:51FromGitter<alehander42> but yeah the issue is that ctrlc is delivered to them instead of my app
19:00:54sealmoveI see
19:01:09FromGitter<alehander42> lemme give an example\
19:01:19sealmoveI understand now
19:02:09FromGitter<alehander42> https://justpaste.it/3xqin
19:03:00FromGitter<alehander42> (here its incorrectly in the end, but even if i move it to the beginning)
19:03:02FromGitter<alehander42> (it happens)
19:03:29FromGitter<alehander42> i just have to directly start the process i guess
19:03:29sealmovecan you check the error code of ShellCmd?
19:03:42sealmoveand if it's the same sig that ctrl+d sends, then exit
19:04:02sealmoveexecShellCmd does return the code
19:04:24FromGitter<alehander42> well with ctrl+c it still exits with 0
19:04:31FromGitter<alehander42> and ctrl+d doesnt do nothing for me
19:06:00*rnrwashere quit (Remote host closed the connection)
19:06:18*rnrwashere joined #nim
19:06:25sealmovemaybe try execProcess?
19:07:05sealmovesorry, execCmd
19:07:24FromGitter<data-man> @alehander42 Maybe to use startProcess and close(process) from osproc?
19:07:37*ikan-keli_ quit (Ping timeout: 246 seconds)
19:08:33*rnrwashere quit (Remote host closed the connection)
19:08:37sealmoveexecCmd differ from execShellCmd in that the shell is involved. The 0 error code you get is the one of the shell. If you use plain execCmd then you should get back the correct error code.
19:09:12*rnrwashere joined #nim
19:09:18*rnrwashere quit (Remote host closed the connection)
19:09:32*rnrwashere joined #nim
19:10:24*absolutejam1 joined #nim
19:10:32FromGitter<alehander42> thanks
19:10:34FromGitter<alehander42> this works!
19:10:41FromGitter<alehander42> but still i wonder why the ctrlc didnt work
19:10:46FromGitter<alehander42> anyway, this is an ok workaround\
19:13:28sealmovebecause when you pressed ctrlc a new process was always running
19:14:06FromGitter<alehander42> yeah, so a child should be able to override the parent
19:14:14FromGitter<alehander42> i thought it works in the opposite way, makes sense
19:14:41FromGitter<alehander42> that events "bubble" from parents to children
19:18:24sealmoveI ran into an annoying thing too. {.discardable.} doesn't work for anonymous functions :|
19:39:23FromGitter<alehander42> hmm well people dont love discard too much here
19:39:30FromGitter<alehander42> discardable*
19:39:38FromGitter<alehander42> (but i find it very important for jsffi)
19:46:04FromGitter<arnetheduck> I love `discard` :)
19:47:41*nsf quit (Quit: WeeChat 2.4)
19:49:50FromGitter<alehander42> yeah, that's what i meant: having discardable
19:51:44*absolutejam1 quit (Ping timeout: 252 seconds)
19:52:30*ikan-keli_ joined #nim
19:55:46*absolutejam1 joined #nim
19:56:07sealmoveI think discardable is simple not valid for plain expressions because nobody added it
19:56:14sealmovesimply*
20:00:45*Jesin quit (Quit: Leaving)
20:03:58*Jesin joined #nim
20:28:04*rnrwashere quit (Remote host closed the connection)
20:28:45*rnrwashere joined #nim
20:29:52*shashlick quit (Ping timeout: 255 seconds)
20:30:47*rnrwashere quit (Remote host closed the connection)
20:31:02*rnrwashere joined #nim
20:46:29*lritter quit (Remote host closed the connection)
20:46:51*lritter joined #nim
20:52:50*narimiran quit (Read error: Connection reset by peer)
20:53:07*narimiran joined #nim
20:58:09*gangstacat joined #nim
20:59:37*absolutejam1 quit (Quit: WeeChat 2.4)
21:03:09*jjido joined #nim
21:04:34*Trustable quit (Remote host closed the connection)
21:08:15*narimiran quit (Remote host closed the connection)
21:10:16*narimiran joined #nim
21:10:24*ryukoposting joined #nim
21:15:47*vlad1777d joined #nim
21:17:32*narimiran quit (Ping timeout: 245 seconds)
21:19:11ryukopostingso I have codegen spitting out a few thousand converters, and it takes a looooong time to compile. If I change them to procs, then compilation takes just a few seconds. Anyone know why?
21:26:31Zevvis it busy nimming or busy cing?
21:27:00ryukopostingit's nimming
21:27:01ryukopostinglol
21:27:05ryukopostingI like that term
21:27:34Zevvhm, then its not like what happened to me - exploding C source size beacuse of nim constructs
21:28:40ryukopostinghad a couple of weird compiler hangs on devel, but couldn't reproduce anything consistently
21:28:46ryukopostingstable seems fine, though
21:34:28def-ryukoposting: converters enhance the implicitly convertible types, so lookups into that become much more expensive
21:34:34def-procs are only used explicitly
21:35:11def-not sure I've seen a good use for converters yet, I'd prefer explicit anyway
21:35:32ryukopostingoooh yeah that would explain it
21:35:54ryukopostingmaking 1500 converters that all reference each other probably is ill-advised then
21:36:08def-sounds so, what's the use case?
21:36:34ryukopostingI'm working on making an AWS SDK for nim
21:36:51ryukopostingcode is generated from amazon's official spec
21:37:27ryukopostingI was originally going to use macros to generate entire APIs at compile time, but the ceiling on how many times the compiler will let a macro loop got in the way
21:37:54ryukopostingsurprisingly, speeds on the compile-time codegen were actually very respectable
21:38:52ryukopostingbut the more brute-force code generator approach is a lot easier to debug, and will be less of a pain to distribute
21:42:05*sentreen_ joined #nim
21:44:29ryukopostingec2 alone is up to 33000 lines lmao
21:44:31*sentreen quit (Ping timeout: 272 seconds)
21:50:58*sealmove quit (Quit: WeeChat 2.4)
22:04:13*solitudesf- joined #nim
22:04:18*solitudesf quit (Remote host closed the connection)
22:13:01Shoozzabtw is there something like prettier or go-fmt for nim?
22:13:04*solitudesf- quit (Quit: Leaving)
22:13:24*solitudesf joined #nim
22:16:30*noeontheend joined #nim
22:34:37federico3https://lobste.rs/s/mcwvhn/what_are_some_niche_features_you_d_like_see
22:36:51*rnrwashere quit (Remote host closed the connection)
22:39:03*theelous3_ joined #nim
22:55:20*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:55:34avanderneutShoozza: https://github.com/nim-lang/Nim/tree/devel/nimpretty ?
23:04:20*jjido joined #nim
23:13:54*Jesin quit (Quit: Leaving)
23:25:54*ng0 quit (Quit: Alexa, when is the end of world?)
23:29:34*Jesin joined #nim
23:29:38*sentreen_ quit (Ping timeout: 272 seconds)
23:36:10*sentreen_ joined #nim
23:46:02*rnrwashere joined #nim
23:47:09*I_Right_I joined #nim
23:48:17*rnrwashere quit (Remote host closed the connection)
23:49:17Shoozzamaybe but considering that there isn't even a readme for this repo doesn't make it look promising :p
23:49:55Shoozzanvm that it's a subfolder didn't notice