<<03-05-2021>>

00:00:14FromDiscord<ElegantBeef> `template yourPragma {.pragma.}` if you just want a "marker" pragma, but you can also use macros/templates as pragmas
00:00:48FromDiscord<creonico> Thank you
00:27:00*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
00:27:06*njoseph quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
00:27:27*njoseph joined #nim
00:42:31*testtest joined #nim
00:43:22*testtest quit (Client Quit)
00:44:26*Lord_Nightmare joined #nim
01:04:44*clyybber quit (Quit: WeeChat 3.1)
01:19:43*kayabaNerve quit (Remote host closed the connection)
01:20:08*kayabaNerve joined #nim
01:30:39*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
01:34:05*Lord_Nightmare joined #nim
01:36:46FromDiscord<codic> but if I do startProcess, how do I have it close whenever it needs to instead of blocking with waitForExit? 🤔 that's what I've been confused with all along
01:47:11FromDiscord<ajusa> anyone know why I get: `Error: VM does not support 'cast' from tyString to tySequence`↵when casting a string to a byte sequence?
01:50:00ForumUpdaterBotNew thread by Halloleo: File IO for the JS backend on node, see https://forum.nim-lang.org/t/7913
01:55:05*Tanger joined #nim
02:00:06FromDiscord<mattrb> In reply to @exelotl "<@!221832495367323648> you can often": Sorry for the slow reply, didn't end up having a chance to look at this yesterday. Seems like I'm still having some new issues on the branch on github even when I do this. Maybe there's some other issue going on, but I'm having trouble trying to resolve it.. At this point I'm just trying to forward-declare everything to see if that resolves my problems, but that doesn't seem to
02:01:38*teal joined #nim
02:02:14*Tlangir joined #nim
02:04:41*Tanger quit (Ping timeout: 240 seconds)
02:04:49*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
02:07:30*Lord_Nightmare joined #nim
02:12:21*leorize quit (Ping timeout: 240 seconds)
02:23:10*leorize joined #nim
02:26:23FromDiscord<exelotl> This stuff does get really painful lol. My "last resort" hack is to {.exportc.} the proc and then {.importc.} it where it's needed.
02:32:01FromDiscord<mattrb> Jfc haha I'll give it a shot. Better than nothing I guess if it does work :p Thanks!
02:33:38*fredrikhr quit (Ping timeout: 246 seconds)
02:39:29FromDiscord<ElegantBeef> Like i said the other way around which i find less messy is to use a pointer function 😄
02:40:42FromDiscord<mattrb> Okay I got that to work. For some reason it's also requiring me to now mark all of the instruction handlers as {.gcsafe, locks: 0.} for some reason. The compiler doesn't seem to like that 😆 https://gist.github.com/mattrberry/1e30e1e5f20c12de243eb1370d837cab
02:41:21FromDiscord<mattrb> I'm not sure I'm following the function pointer suggestion. Where is that being set/passed?
02:42:23FromDiscord<ElegantBeef> one second gotta reclone your project so i can give a proper idea
02:44:22FromDiscord<mattrb> Separate from this, I'd be really curious to see a nim guru take a look at my code and suggest how to nim-ify it. I feel like I'm not really following nim conventions here haha
02:44:42FromDiscord<ElegantBeef> Well then it's time for a code review!
02:45:05FromDiscord<mattrb> If you have the time that'd be awesome!!
02:45:12FromDiscord<ElegantBeef> I have nothing but time
02:45:13saemBeef, did you give the flag and property a try for typ and expectedTyp?
02:45:29FromDiscord<ElegantBeef> Araq didnt like the implementation and suggested an RFC
02:45:41FromDiscord<ElegantBeef> So we now have an RFC and a dead PR 😛
02:46:24FromDiscord<ElegantBeef> https://github.com/nim-lang/RFCs/issues/373 if you want to get to the rfc
02:47:16FromDiscord<ElegantBeef> So matt in your `channel1.nim` you have that array of integers you can jusut do `'i16` on the first one and the rest are inferred to that type 😄
02:47:26*thomasross quit (Ping timeout: 240 seconds)
02:48:04FromDiscord<ElegantBeef> I actually cannot get your project to build atm
02:48:14FromDiscord<mattrb> Oh right! I'll need to revisit the apu completely at some point
02:48:19FromDiscord<mattrb> On the branch or on master?
02:48:23FromDiscord<ElegantBeef> either
02:48:26FromDiscord<mattrb> Master _should_ be building..
02:48:42FromDiscord<mattrb> I'm on nim 1.4.2
02:48:47FromDiscord<ElegantBeef> sdl2 complaint
02:48:47FromDiscord<mattrb> Building with nimble build
02:48:50FromDiscord<mattrb> Oh
02:48:55FromDiscord<mattrb> Do you have sdl2 installed?
02:49:20FromDiscord<ElegantBeef> Yea
02:51:52FromDiscord<mattrb> What’s the error?
02:52:12FromDiscord<mattrb> And what platform are you using? I’ve only ever run this on ubuntu
02:52:22FromDiscord<ElegantBeef> It's a nimble sdl2 issue
02:53:06FromDiscord<ElegantBeef> Just had to uninstall/install sdl2
02:54:18FromDiscord<mattrb> Building fine now?
02:54:21FromDiscord<ElegantBeef> Yea
02:56:25FromDiscord<ElegantBeef> What was the import order issue again cpu -> bus -> mmio ... -> cpu?
03:04:09saemBeef you reused the typ field in your PR?
03:05:12saemYou did.
03:05:17saemCool
03:05:25FromDiscord<ElegantBeef> Yea i did it "properly"
03:05:49FromDiscord<ElegantBeef> Like araq said it's not my code that is the issue, just the implementation is subpar
03:05:55FromDiscord<mattrb> Sorry, back at my desk. The order was cpu -> bus -> mmio -> interrupts -> cpu (on the other branch) https://discord.com/channels/371759389889003530/371759389889003532/838125046467133460
03:06:17FromDiscord<ElegantBeef> Yea a simple `interrupt: proc(c: Cpu)` on the cpu solves that
03:06:31FromDiscord<ElegantBeef> But there are more errors that arent letting me compile after getting that in
03:06:52FromDiscord<ElegantBeef> It means that `interrupts.nim` doesnt need to import the `cpu` module the way i see
03:08:22FromDiscord<ElegantBeef> Purely up to you but writing your type as `CPU` instead of `Cpu` just seems tedious 😛
03:08:25FromDiscord<mattrb> Yeah that's my confusion though, since I don't know what else between those two branches would have caused other stuff to fail compilation https://github.com/mattrberry/gba/compare/compilation_error_interrupts
03:09:21FromDiscord<mattrb> In reply to @ElegantBeef "Purely up to you": Doesn't bother me, but I can change it if it's not the nim way :p
03:10:36FromDiscord<Rika> Cpu is the nim way
03:10:37FromDiscord<ElegantBeef> Removing line 36 from `interrupts` and the `cpu` makes it change to a `quit` error
03:10:50FromDiscord<ElegantBeef> Yea we dont scream abbreviations
03:11:01FromDiscord<mattrb> Right, I need an '&' rather than a ',' :p My bad on that one :p
03:11:09FromDiscord<mattrb> I'll do `Cpu` then 👍
03:13:32FromDiscord<Rika> i mean do whichever you want
03:14:09FromDiscord<mattrb> I don't have a strong preference 🤷‍♀️
03:14:24FromDiscord<ElegantBeef> Yea it's not like it matters in Nim since they're identical as far as it cares
03:14:45FromDiscord<mattrb> Maybe I'll do a mix then
03:15:01FromDiscord<mattrb> c_Pu
03:15:07FromDiscord<ElegantBeef> That'd fail
03:15:11FromDiscord<mattrb> :p
03:15:13FromDiscord<ElegantBeef> The first letter is case sensitive
03:17:38FromDiscord<Rika> C_Pu would be fine though
03:18:42FromDiscord<ElegantBeef> I believe your pointer arithmetic can be shortened to `cast[ptr UncheckedArray[T]](p)[1].addr`
03:18:56FromDiscord<ElegantBeef> I guess `1` is supposed to be `offset`
03:19:56FromDiscord<mattrb> In util.nim?
03:19:58FromDiscord<ElegantBeef> yea
03:21:43FromDiscord<mattrb> Yeah the idea there is to allow for an offset in the actual type of the array and the expected type. So for example with vram which I store as an array of uint8, I want to start at a base of elements into it, but then address all values beyond that as if it's a uint16 array
03:22:04FromDiscord<mattrb> So I take an offset in the type of the array and in the type I'd like to read
03:22:30FromDiscord<ElegantBeef> yea but that offset is just elements right?
03:23:08FromDiscord<ElegantBeef> you were doing `cast[int](p) + offset  sizeOf(T)` which is what the unchecked array does internally
03:25:13FromDiscord<ElegantBeef> For example https://play.nim-lang.org/#ix=3lEJ
03:25:53FromDiscord<mattrb> Oh specifically for the `+` overload
03:26:22*teal quit (Quit: thanks for the help, everyone)
03:26:45FromDiscord<ElegantBeef> yea
03:27:33FromDiscord<mattrb> Yeah I guess I could `cast[ptr UncheckedArray[T]](p)[offset].addr` rather than `cast[ptr T](cast[int](p) + offset  sizeof(T))`. That looks a little nicer
03:29:23FromDiscord<ElegantBeef> Can also use similar logic to simplify your read/write
03:30:04FromDiscord<mattrb> Yup, thinking like this? `cast[ptr T](unsafeAddr val[a])[b.int]`
03:30:17FromDiscord<ElegantBeef> yep
03:30:31FromDiscord<mattrb> Then another cast to UncheckedArray rather than accessing a pointer offset? I guess at that point that's virtually the same thing
03:30:39FromDiscord<ElegantBeef> the write can be replaced with `copyMem` or `moveMem`
03:31:08FromDiscord<mattrb> I guess this is all stuff that I should check if it still works in emscripten lol
03:31:31FromDiscord<ElegantBeef> It should work
03:31:49FromDiscord<ElegantBeef> It's not much different to the previous pointer logic
03:35:46FromDiscord<mattrb> So on the problematic branch, even if I comment out the call to cpu.interrupt() and replace the `,` with a '&' on the `quit` line that's causing a problem, I'm back to another one of these types of issues: `gba/src/gba/cpu.nim(53, 26) Error: cannot instantiate: 'read[uint16]'; got 1 typeof(s) but expected 3`. I'm still unclear though how this diff would have caused that to start happening.. https://github.com/mattrberry/gba/compare/compila
03:36:19FromDiscord<ElegantBeef> You dont import bus
03:36:49FromDiscord<ElegantBeef> Ah nvm you do, though i seen you forgetting to
03:37:28FromDiscord<mattrb> Where?
03:37:33FromDiscord<ElegantBeef> thought
03:37:46FromDiscord<mattrb> Ah
03:38:35FromDiscord<mattrb> So that's the type of issue we've seen a bunch of times now (https://github.com/nim-lang/Nim/issues/17212), but I'm not sure why it cropped up in this specific case based on those changes 🤔
03:48:38*spiderstew_ joined #nim
03:49:32FromDiscord<Varriount> Realistically, what is the minimum amount of money that would have to be pledged for a bounty in order for it to be taken up?
03:49:43*spiderstew quit (Ping timeout: 260 seconds)
03:50:07FromDiscord<ElegantBeef> Is that why you were asking about issues from me yesterday? 😄
03:50:13FromDiscord<Varriount> Yes.
03:52:25FromDiscord<Varriount> In reply to @ElegantBeef "Is that why you": I've been mulling over the idea of offering a bounty for work towards improving an aspect of Nim.
03:53:22FromDiscord<Varriount> Which is also why I was asking whether Krux02 was still around, since I know he has done bounty work before.
03:53:39FromDiscord<mattrb> Am I going to have to enter a bidding war now so that 17212 is prioritized? :cringeharold:
03:54:25FromDiscord<Varriount> In reply to @mattrb "Am I going to": 17212?
03:54:40FromDiscord<mattrb> That's the issue number for the problem I've been having a bunch lately :p
03:58:12FromDiscord<Varriount> sent a long message, see http://ix.io/3lEL
03:59:36FromDiscord<Varriount> Well, and "improve the standard library", but that's not really all that possible, at least in the ways I would like.
04:00:17FromDiscord<ElegantBeef> Well unless the latest RFC was resolved in a way that makes that achievable without ruining the lives of nim programmers 😄
04:01:02*rockcavera is now known as Guest77706
04:01:02*Guest77706 quit (Killed (rothfuss.freenode.net (Nickname regained by services)))
04:01:02*rockcavera joined #nim
04:01:16FromDiscord<Varriount> I'm at the point where I wouldn't particularly mind if someone just wrote an alternate standard library.
04:01:30FromDiscord<ajusa> In reply to @ajusa "anyone know why I": figured it out, cast wasn't working at compile time (const variable)
04:03:49FromDiscord<ElegantBeef> And matt i'm still trying to figure out why it's not playing nicely
04:05:20FromDiscord<mattrb> Tyvm for looking into it (:
04:05:57*rockcavera quit (Ping timeout: 268 seconds)
04:07:03FromDiscord<Varriount> I was mulling over pledging at least 1 or 2k, if not more.
04:08:55FromDiscord<Rika> In reply to @Varriount "I'm at the point": was my plan actually
04:09:06FromDiscord<Rika> buuuuuut i dont know how to turn off autoimporting system
04:09:12FromDiscord<Rika> and its a lot of work
04:10:24FromDiscord<Rika> what changes are you looking for actually
04:10:42FromDiscord<Varriount> In reply to @Rika "buuuuuut i dont know": I don't think `system` needs to go, but modules like `json`, `os`, `osproc`... ugh.
04:10:51FromDiscord<Rika> my irks are from procs that look like `doSomethingType`
04:11:31FromDiscord<Rika> what's the issue with json? just asking so i know what to think about
04:11:41*rockcavera joined #nim
04:12:13FromDiscord<Varriount> Mainly performance and memory usage.
04:12:51FromDiscord<Rika> ah okay the things i was looking into changing is mainly api stuff
04:13:25FromDiscord<Varriount> Well, that's specific to json. `os` and `osproc` just need... rethinking.
04:13:39FromDiscord<Rika> for json maybe just use packedjson i guess?
04:13:46FromDiscord<Rika> oh man yeah os and osproc
04:13:47FromDiscord<Rika> maaaaan
04:13:49FromDiscord<Rika> thats a mess
04:14:31FromDiscord<Varriount> Yes. Yes it is.
04:14:57FromDiscord<Rika> i think they should just be merged ngl
04:15:03FromDiscord<Rika> then the whole api needs rethinking too
04:15:29FromDiscord<Varriount> Eh, I'm not too sure about that. Subprocess management is surprisingly complex, especially cross-platform.
04:16:06FromDiscord<Rika> well the names should at least be changed and some procs in os should be moved to the other
04:16:16FromDiscord<Rika> names -> name of osproc
04:16:55FromDiscord<Varriount> Don't forget some defaults changed. If I recall correctly, there's still a subprocess launching procedure that uses the system shell by default.
04:18:24FromDiscord<ElegantBeef> @mattrb sent a PR for you 😄
04:18:46FromDiscord<Varriount> @Rika https://nim-lang.org/docs/os.html#exitStatusLikeShell%2Ccint↵Just... why?
04:18:50FromDiscord<ElegantBeef> Recursive imports caused fucky logic causing failure
04:22:53FromDiscord<Rika> i also have an issue with json that you cant really (straightforward-ly) plug how json->type is done (the way to do it is to exploit how generic overloading is done)
04:26:42FromDiscord<ElegantBeef> Or like treeforms `parseHook` 😄
04:26:43FromDiscord<ajusa> If I want to do pattern matching on multiple variables, is my best option to throw them all into a tuple before matching?
04:27:26FromDiscord<ElegantBeef> using `fusion/matching`?
04:27:32FromDiscord<ajusa> yeah
04:28:15FromDiscord<ajusa> Like if I had to match on `var a, b c` or something, would I do `case (a, b, c)` and make a temporary tuple? or are lists preferred? Or some third option?
04:28:38FromDiscord<ElegantBeef> Tuple would probably be the easiest
04:29:00FromDiscord<ElegantBeef> I've not used pattern matching so dont exactly know "proper" 😄
04:29:38FromDiscord<ajusa> ah okay, was mostly wondering about the overhead so tuple seems more lightweight than creating a temp array or seq
04:31:08FromDiscord<Rika> In reply to @ElegantBeef "Or like treeforms `parseHook`": wym
04:32:58FromDiscord<ElegantBeef> Treeform's jsony uses a parsehook proc to allow you to convert from json
04:40:09*narimiran joined #nim
04:41:19FromDiscord<ElegantBeef> And yea matt, i dont know why but i couldnt only get it to compile with `bus.read[T]...`
04:44:22FromDiscord<mattrb> sent a code paste, see https://play.nim-lang.org/#ix=3lEM
04:44:35FromDiscord<mattrb> Same holds true if I forward-declare it as well
04:45:00FromDiscord<ElegantBeef> Like i said if you use a pointer proc inside cpu for the interrupt you can remove that cyclical dependancy
04:45:24FromDiscord<ElegantBeef> I'll quickly make another commit
04:46:20FromDiscord<mattrb> Yeah that'd be awesome, thank you. I'm still not quite getting what you mean there
04:50:30FromDiscord<ElegantBeef> What is the type of the `lut`?
04:51:57FromDiscord<mattrb> Should just be an array[4096, proc]
04:52:09FromDiscord<mattrb> I think
04:52:15ForumUpdaterBotNew Nimble package! objc_runtime - objective-c runtime bindings, see https://github.com/bung87/objc_runtime
04:55:05FromDiscord<mattrb> It'll be filled with stuff like `[dataProcessing[false, op: AluOp.SBC, true, false]`
04:55:16FromDiscord<mattrb> (edit) "false]`" => "false], ...]`"
04:55:25FromDiscord<mattrb> (edit) 04removed "op:"
04:55:38FromDiscord<ElegantBeef> And all of those are homogenous?
04:56:19FromDiscord<mattrb> They all take exactly the same arguments at runtime
04:56:26FromDiscord<mattrb> And have no output
04:56:45FromDiscord<ElegantBeef> I suppose, thought generics were considered unique by the typesystem
04:58:55FromDiscord<mattrb> I don't know much more detail :/ I initially did it with templates, then someone here suggested static generics. I did that which got compilation time down to 10s from ~25s, then someone suggested building them with macros instead which is what I'm currently using
04:59:21FromDiscord<mattrb> But can't really speak at all to the way nim handles those internally :/
05:08:25FromDiscord<ElegantBeef> Yea i've got it compiling but it's not liking to live
05:08:38FromDiscord<ElegantBeef> about 400 complaints about lock levels and complaining about generic instantiations
05:08:57FromDiscord<Rika> Yeah
05:09:11FromDiscord<Rika> Sounds like the issue tracker of Nim as well ngl
05:10:22FromDiscord<mattrb> Not sure why that's only starting to complain now when it has been like that this whole time... :/
05:11:06FromDiscord<mattrb> Okay so you're just sticking the interrupt proc directly onto the gba object
05:11:19FromDiscord<mattrb> I guess that works haha, better than nothing 👌 Thank you
05:12:57FromDiscord<ElegantBeef> Well it was throwin errors without those pragmas and i dont get why it just started so yea push some pragmas to say "I know better, i'm a human not a compiler" 😄
05:15:36FromDiscord<ElegantBeef> Gotta refactor this a bit
05:19:16FromDiscord<mattrb> Is there a way to push the pragmas and also tell it to shut up with the warnings? A little annoying to have literally thousands of lines of warnings... haha
05:19:38FromDiscord<ElegantBeef> I just want to figure out why it's throwing a error now
05:20:12*letto quit (Quit: Konversation terminated!)
05:23:44FromDiscord<ElegantBeef> Ah ah! It's due to your `checkInterrupts` procedure returning a procedure
05:25:46*vicfred quit (Quit: Leaving)
05:28:13*letto joined #nim
05:30:58FromDiscord<mattrb> How does that cause this?
05:36:04FromDiscord<ElegantBeef> Possibly as it makes a closure which means it's no longer thread safe, but i have no clue
05:37:24FromDiscord<mattrb> I do something similar in ppu.nim
05:37:55FromDiscord<mattrb> That's how I've been managing the scheduler callbacks that take args
05:38:00FromDiscord<mattrb> Is there a better way to do that in nim?
05:42:56FromDiscord<ElegantBeef> I dont know, because of it the lock level changes, so it prevents it from being in a collection, but it seems to be causing weird behaviour if you override the lock
05:43:23FromDiscord<ElegantBeef> Ah there we go
05:44:29FromDiscord<ElegantBeef> Check out the PR again and it works fine, just have to mark the single procedure with the overide and it's fine
05:44:40FromDiscord<ElegantBeef> Had to hunt down the issue procedure though for that thought process 😄
05:49:21FromDiscord<mattrb> Weird haha, seems like there's a mix of weird programming on my part and weird compiler behavior / error messages :p Always a fun combination haha
05:49:49FromDiscord<ElegantBeef> Well generally you dont store a bunch of procedures in a LUT, so yea fun madness there 😄
05:50:10FromDiscord<mattrb> Thanks for hunting that down 🙂 Happy now that it compiles and only gives 2 warnings 😆
05:50:26FromDiscord<ElegantBeef> Really you could emit the LUT as an if statement tree in your `execArm` then never need to worry about lock levels
05:50:59FromDiscord<ElegantBeef> Since you'd never be storing the procedures in a homogeneous container, and only seem to use the lut inside there
05:53:56FromDiscord<ElegantBeef> ~~Yes that macro you originally wanted to put in the bowels of you project is the problem~~
05:56:12FromDiscord<ElegantBeef> Worth noting when using `static bool` you probably want to do `when` instead of `if` when checking the condition so it's done at CT instead of runtime
05:57:10FromDiscord<ElegantBeef> Just noticed you had a fair few static bools but you were using if instead of when so didnt really benefit from the static bool
06:04:06*vicfred joined #nim
06:04:11*vicfred quit (Remote host closed the connection)
06:08:45FromDiscord<mattrb> What do you mean by emit it as an if statement?
06:09:21FromDiscord<mattrb> Also with the static bool `if` vs `when`, I had the same thought but saw that while nim doesn't reduce it at compile-time, the c compiler does when compiling for release
06:09:35FromDiscord<mattrb> So in release it ends up getting done at compile-time anyway
06:09:52FromDiscord<mattrb> So I haven't felt super rushed to go swap them with `when` :p
06:11:55FromDiscord<ElegantBeef> Ah actually you could emit a case statement where you get every value and add it to the `of` branch so `of 1, 2, 3: unimplemented()` for instance
06:12:08FromDiscord<ElegantBeef> But yea probably vastly slower
06:12:51FromDiscord<mattrb> And have it check the branches of the case at runtime?
06:13:04FromDiscord<mattrb> That'd definitely be too slow
06:13:41FromDiscord<ElegantBeef> Yea it was my dumb idea to avoid the lock issue if it ever appears again
06:15:10FromDiscord<mattrb> I'm definitely open to all ideas for making this nicer or making it play nicer with the nim compiler
06:15:30FromDiscord<mattrb> I just don't want to sacrifice much compile-time performance and especially not runtime performance
06:15:40FromDiscord<mattrb> Timing in emscripten is already tight enough as it is haha
06:49:03ForumUpdaterBotNew thread by Miran: This Month with Nim: April 2021, see https://forum.nim-lang.org/t/7914
06:56:42*rockcavera quit (Remote host closed the connection)
06:57:07*Vladar joined #nim
06:57:22*PMunch joined #nim
07:05:43FromDiscord<mattrb> The interrupts were a hack, but thanks to your help @ElegantBeef I'm now booting the first commercial game on my nim gba emulator :p https://media.discordapp.net/attachments/371759389889003532/838672650615390248/unknown.png
07:06:07FromDiscord<ElegantBeef> Wait my fix was a hack?
07:09:06FromDiscord<mattrb> Would you not call having to set the `{.gcsafe locks: 0.}` pragmas and the interrupts proc on the cpu object a hack? :p
07:10:12FromDiscord<ElegantBeef> I dont know about interrupts, if you're overriding the behaviour it's fine, otherwise quite possibly 😄
07:10:30FromDiscord<ElegantBeef> The setting of the pragmas is just to overide the compiler analysis so less of a hack
07:12:08FromDiscord<mattrb> Maybe that just falls under the definition of "programming in nim" :p
07:12:38FromDiscord<mattrb> Like it's hacky enough that I'd like to clean it up if the compiler is updated to support this someday
07:13:06ForumUpdaterBotNew thread by Halloleo: "TypeError: c_1455079.charCodeAt is not a function" on jsfs' readFileSync, see https://forum.nim-lang.org/t/7915
07:13:07FromDiscord<ElegantBeef> I think people generally dislike the locks analysis but i dont know 😄
07:13:28FromDiscord<mattrb> And to be clear, a hack in my eyes isn't a bad thing 🙂
07:13:41FromDiscord<mattrb> That's it for me tonight, so thank you again for your help 🙂
07:13:49FromDiscord<ElegantBeef> No problem, buh bye
07:14:03FromDiscord<mattrb> (edit) "And to be clear, a hack in my eyes isn't ... a" 03added "necessarily"
07:18:10*huuskes joined #nim
07:48:40*kayabaNerve quit (Ping timeout: 252 seconds)
08:27:22*tane joined #nim
08:31:13FromDiscord<dabmlfz> in the documentation it is said that c-composition i-is pwefewwed ovew i-inhewitance, -.- but m-most nyim pwojects f-fow which i-i've wooked at the s-souwce code seem t-to use inhewitance. (ˆ ﻌ ˆ)♡ is thewe some upside to inhewitance ow is thewe some downside i-if i want with tagged unions ow just stowing t-the pawent as a fiewd of the c-chiwd?
08:34:52FromDiscord<ElegantBeef> Well if you ever fix your speech impediment i'm sure you'll get help
08:38:52FromDiscord<dabmlfz> Sorry!! I had a plugin enabled that did that and did not realize 😅
08:39:50FromDiscord<ElegantBeef> Well IRC still gets to see that lovely message
08:44:58FromDiscord<dabmlfz> Well, there's no helping it. Anyway, I was asking that in the documentation it is mentioned that composition is preferred over inheritance, but from the source code of nim projects I've looked at, it seems that mostly inheritance is used. Are there any upsides to inheritance over using a tagged union or storing the parent as a field in the child object(apart from ergonomics?)
08:46:16*balencpp joined #nim
08:47:23FromDiscord<ElegantBeef> If you have deep inheritance trees the equivalent tagged union would be rather annoying to us, and it also makes it difficult for users of your library to expand it
08:47:26FromDiscord<ElegantBeef> (edit) "us," => "use,"
08:48:03FromDiscord<ElegantBeef> Like you can always inherit from a non-final, but there isnt much you can do to extend a tagged union
08:49:13FromDiscord<dabmlfz> what about performance? doesn't inheritance lead to slower code due to vmtables?
08:50:05FromDiscord<ElegantBeef> Well OOP generally has cache inefficiencies cooked into it, plus the dynamic dispatching logic, so yea it'll tend to be slower
08:50:44FromDiscord<ElegantBeef> And truthfully i've only seen a single nim project use inheritance and that's nimx
08:51:19PMunchAnother great example for how Nim can be used for zero-cost abstractions: https://github.com/liquidev/datarray
08:52:21FromDiscord<ElegantBeef> The important part is the `select` macro
08:52:37FromDiscord<ElegantBeef> And we can all see that pmunch read TMWN
08:52:47PMunchYup :D
08:53:20FromDiscord<ElegantBeef> My work to encourage project visibility is working!
08:53:24PMunchI should finish my video series on the keyboard firmware and write and article for the next month :)
08:54:04FromDiscord<ElegantBeef> Well yea we need projects every month, and i've been doing nothing as of late
08:55:32FromDiscord<ElegantBeef> Plus nimconf is soon
08:57:47FromDiscord<ElegantBeef> Got any plans for it his year pmunch?
08:58:25FromDiscord<ElegantBeef> (edit) "his" => "this"
08:59:01PMunchYup, I was thinking of submitting a talk on low-level programming in Nim. Showing a bit more in detail the stuff I've been using for the keyboard.
08:59:46PMunchBut I've already done a couple of Nim on microcontroller talks :P
09:00:02PMunchIt might just end up being way to technical
09:00:08*ee7[m] quit (Quit: Idle for 30+ days)
09:00:19PMunchHave you thought of anything?
09:00:39PMunchHmm, maybe I'll do one on declarative programming in general..
09:01:32FromDiscord<ElegantBeef> Not really, aside from my addiction to macros, cannot really think of anything that i could talk about that people would listen to, and macros is even pushing it. "Oh yay 20 minutes listening to a guy talk about the AST"
09:03:30PMunchI mean I've held talks about meta-programming in Nim before :P
09:03:41PMunchAnd I'd definitely listen to some
09:04:14PMunchHmm, who set ut the Travis CI for parsetoml?
09:26:59giacotestament + code coverage, is there anything I can use? If not testament, is there a recommended way to check if nim project is in shape?
09:34:15*clyybber joined #nim
09:49:03FromDiscord<Varriount> In reply to @mattrb "The interrupts were a": Kirby! You've instantly brightened my mood by 15%
09:50:50FromDiscord<Varriount> In reply to @giaco "testament + code coverage,": The compiler is pretty good about catching obvious errors.
10:06:25FromDiscord<Conifer> Whats going on with Nim. 1.4.6 being flagged as a virus and now nimble just refuses to work for me on 1.4.4
10:06:46FromDiscord<Conifer> sent a code paste, see https://play.nim-lang.org/#ix=3lFo
10:10:57PMunchIt's a false positive
10:11:10PMunchBeen a forum post or two about it
10:12:06*wasted_youth2 quit (Read error: Connection reset by peer)
10:12:53*wasted_youth2 joined #nim
10:22:26giacoVarriount: I guess you don't know what I am talking about
10:23:22giacoI've quite worried about this antivir vs nim thing. It is seriously dangerous for nim
10:23:38PMunchIt has happened a couple times in the past
10:24:24giacoI do understand the false flag thing, I've been facing the same issue with python + pyinstaller for years and it has been a serious issue, I'm quite scared about this
10:25:00PMunchWhy are you scared about it?
10:29:23giacoOne reason I moved from python to nim was my need to distribute close source windows tools, and telling the false positive story is not a viable option
10:29:50ForumUpdaterBotNew thread by Marcomq: Question about templates / macros, see https://forum.nim-lang.org/t/7916
10:33:43PMunchgiaco, well as long as you're not distributing the compiler you should be fine
11:14:13FromDiscord<mlokis> sent a code paste, see https://paste.rs/pkg
11:14:55FromDiscord<mlokis> secomd call should hav thrown a exception but id did not even compile
11:15:04FromDiscord<mlokis> (edit) "hav" => "have"
11:15:12FromDiscord<mlokis> (edit) "a" => "an"
11:15:20FromDiscord<mlokis> (edit) "id" => "it"
11:16:45FromDiscord<haxscramper> What was the compilation error?
11:17:56FromDiscord<haxscramper> Oh, didn't notice comment.
11:18:37FromDiscord<haxscramper> You can try using `[:T]` https://nim-lang.org/docs/manual.html#procedures-method-call-syntax maybe?
11:20:07FromDiscord<haxscramper> sent a code paste, see https://paste.rs/ITn
11:20:35FromDiscord<haxscramper> god, this new spellsuggest is just https://media.discordapp.net/attachments/371759389889003532/838736792869535784/unknown.png
11:21:02FromDiscord<haxscramper> 5% useful information
11:21:04FromDiscord<haxscramper> 95% noise
11:26:41*Vladar quit (Remote host closed the connection)
11:29:31*Vladar joined #nim
11:33:29FromDiscord<haxscramper> Actually more like 0.17% percent useful information and everything else is repetitive noise. Even factoring in some suggestion phrase ~91 character is needed to provide a basic "did you mean to use" message, which still takes 3.5% of text, something like. Though this is also only a message (without positional information etc), but still https://media.discordapp.net/attachments/371759389889003532/838740038254592000/unknown.png
11:33:39FromDiscord<haxscramper> (edit) 04removed "percent"
11:35:00FromDiscord<haxscramper> `(OSError prog EOFError array or repr xor)` part looks a bit cryptic as it is not entirely clear what exactly it shows, so some text around
11:35:22FromDiscord<mlokis> you noticed tha whenewery sou use quote macro with `` nimlsp dies
11:38:21FromDiscord<Rika> In reply to @haxscramper "`(OSError prog EOFError array": maybe question marks after the word `OSError? prog? EOFError?`...) could make it a bit clearer
11:38:34giacoPMunch: it is not only the compiler and tools that are raising false alarms
11:38:47PMunchOh really?
11:39:17FromDiscord<Rika> i'd say false alarms are unavoidable until the AV's heuristics are fixed
11:39:49giacoPMunch: see https://github.com/nim-lang/Nim/issues/17820#issuecomment-830540440
11:41:24giacoRika, yeah, probably, and Nim is not large enough to move them, and this could kill the community
11:42:02FromDiscord<Rika> then get them to move
11:42:12FromDiscord<Rika> "not being large enough" sounds like an excuse
11:42:13PMunchOh, that's not great..
11:42:29PMunchI guess it's because the new malware that has been written in Nim
11:42:58giacoRika, $$$ talks, and Nim is not moving much of them afaik
11:43:55giacoyeah, probably, and also the weaponizing nim repositories
11:44:35giacoI can't blame Nim or the author of malware or security libraries, but it is potential recipie for a disaster
11:46:04FromDiscord<haxscramper> In reply to @Rika "maybe question marks after": https://media.discordapp.net/attachments/371759389889003532/838743203125395526/unknown.png
11:47:15FromDiscord<Rika> personally think that looks better but some people might disagree
11:48:10FromDiscord<haxscramper> I just can't https://media.discordapp.net/attachments/371759389889003532/838743733851521044/unknown.png
11:48:27FromDiscord<haxscramper> Showed only needed bits of information
11:48:35FromDiscord<nc-x> Did you mean to use '...'? (... -> ...)↵Other possible alternatives: ... , ... , ... , ...
11:48:44FromDiscord<nc-x> Something like this looks good to me
11:49:05FromDiscord<haxscramper> if difference is mess than two characters can show suggestions with direct edit https://media.discordapp.net/attachments/371759389889003532/838743965497819176/unknown.png
11:49:33FromDiscord<haxscramper> (edit) "if" => "If" | "mess" => "less"
11:49:56FromDiscord<haxscramper> Though getting it right so highlighting was intuitive is hard
11:51:23FromDiscord<haxscramper> At least it is certainly harder to implement compared to dumping everything and forcing users to dig through
12:00:13FromDiscord<Rika> In reply to @haxscramper "If difference is less": please be mindful of people with no color support
12:00:32*huuskes quit (Quit: leaving)
12:01:54FromDiscord<haxscramper> Just show GOT -> EXPECTED pair directly without smart edit coloring
12:02:26FromDiscord<Rika> okay good point lol
12:03:25FromDiscord<Rika> In reply to @nc-x "Did you mean to": or you can say "`Or possibly (...? ...? ...? ...?)`"
12:05:28*lritter joined #nim
12:06:32FromDiscord<haxscramper> `Did you mean ALT-1? Or possibly ...? ...? ...?`
12:17:23FromDiscord<Rika> yeah hm
12:23:01*xet7 quit (Quit: Leaving)
12:32:03FromDiscord<Sprütz> Heyo I was wondering is there a norm when it comes to syntax I should try to follow? Like for example wether to use `str.len()` or `len(str)`. Or is the "norm" to just stay consistent in a project.↵↵Or is importing `nil` the preferred way as it helps with readability of code?
12:32:35FromDiscord<haxscramper> importing `nil` does not help redabilty
12:32:41FromDiscord<haxscramper> Everything else you can use as you see fit
12:33:01FromDiscord<Rika> In reply to @Sprütz "Heyo I was wondering": importing nil is actually highly discouraged
12:33:04FromDiscord<haxscramper> https://narimiran.github.io/2019/07/01/nim-import.html
12:33:52FromDiscord<Rika> feel free to use whatever you like `str.len str.len() len str len(str)`
12:34:02FromDiscord<Rika> norm i'd say would be str.len though
12:36:11FromDiscord<Sprütz> In reply to @haxscramper "https://narimiran.github.io/2019/07/01/nim-import.h": Oh perfect that answered my problem exactly. Thanks! :pepelove:
12:49:31*rockcavera joined #nim
12:52:40*teal joined #nim
12:56:26*vsantana joined #nim
13:00:55*teal quit (Quit: WeeChat 3.1)
13:04:46giacodoes anybody of you have any experience in enabling lcov in nim?
13:05:39Clonkk[m]See https://forum.nim-lang.org/t/7024
13:06:33Clonkk[m]You have https://github.com/binhonglee/coco that is not maintained - not sure if it works with Nim 1.0; otherwise this CI file from Status https://github.com/status-im/nim-libp2p/blob/master/.github/workflows/codecov.yml
13:08:29Clonkk[m]The best hope for code coverage in Nim at the moment is probably using https://github.com/yglukhov/coverage with ``when defined(gencoverage): {.push cov.}`` in your code
13:14:59FromDiscord<dom96> In reply to @haxscramper "If difference is less": oooh, this looks awesome, are you implementing it in the Nim compiler?
13:15:14FromDiscord<haxscramper> No
13:15:33FromDiscord<Rika> wait what why 😦
13:15:41giacoClonkk[m]: thanks, I'm experimenting right now with manually running lcov on generated .c sources and it works, but the resulting coverage is based on C source, not nim. I'll move to yglukhov after grokking this, as I've no experience with code coverage in C
13:16:08FromDiscord<haxscramper> I just have a levenshtein distance implementation and I assembled string mismatch error generation
13:16:12FromDiscord<haxscramper> For this example
13:18:09FromDiscord<haxscramper> Maybe I will put this into compiler, though it would require also changing style of all errors to more useful and then we get to #323-#325 RFC and the fact I would have to argue with everyone on error styles
13:19:43FromDiscord<dom96> :/
13:20:20FromDiscord<dom96> Another nice thing would be to provide a CLI parsing library that offers these nice errors.
13:20:43FromDiscord<haxscramper> Rodfiles
13:21:15FromDiscord<haxscramper> If errors are stored in rodfiles (which is current plan from what I understand) it is just a matter of reading rodfile
13:21:25FromDiscord<haxscramper> And displaying errors
13:22:33FromDiscord<haxscramper> No need to change compiler implementation, everyone gets their preferred formatting
13:24:27*tiorock joined #nim
13:24:27*tiorock quit (Changing host)
13:24:28*tiorock joined #nim
13:24:28*rockcavera is now known as Guest85535
13:24:28*Guest85535 quit (Killed (card.freenode.net (Nickname regained by services)))
13:24:28*tiorock is now known as rockcavera
13:24:53FromDiscord<dom96> hm, that may work for this specifically
13:25:06FromDiscord<dom96> Personally I would love to see more rich error messages like those in Rust
13:25:59FromDiscord<Rika> give the error messages some money
13:26:54giacocan't wait to get incremental compilation and better/easier dev tools. I've been reading about this lately and yeah big fan of that
13:31:33FromDiscord<haxscramper> Yeah, it enables so many use cases
13:31:50FromDiscord<haxscramper> Like proper macro/template-aware usage information
13:32:07FromDiscord<haxscramper> Custom error messages as discussed above
13:34:48FromDiscord<haxscramper> With it I will finally be able to implement proper sourcetrail support
13:36:10FromDiscord<ajusa> Does anyone know how to make `nim-chronicles` create a new log file for each run of a program? I read through the docs but didn't see anything about that...
13:38:23FromDiscord<ajusa> do I need to change the output file name at runtime?
13:40:29*vsantana quit (Quit: vsantana)
13:52:45*leorize quit (Ping timeout: 240 seconds)
13:54:57*leorize joined #nim
13:57:07*whitefly joined #nim
14:09:32ForumUpdaterBotNew post on r/nim by nelson_fretty: Static site generator recommendation, see https://reddit.com/r/nim/comments/n3x0s7/static_site_generator_recommendation/
14:10:56*whitefly quit (Quit: Something in the way I say your name, sends blood rushing to my face.)
14:12:26*whitefly joined #nim
14:12:26*whitefly quit (Client Quit)
14:13:02*whitefly joined #nim
14:14:32*whitefly quit (Client Quit)
14:14:43*whitefly joined #nim
14:16:26*hyiltiz quit (Ping timeout: 265 seconds)
14:17:37FromDiscord<nc-x> @Araq Can you give some details about the "nim distro" idea? https://github.com/nim-lang/Nim/pull/17926#issuecomment-831267574
14:19:26FromDiscord<nc-x> how would it be different from "fusion", will it be integrated into koch/build.bat etc. so that people who use nim devel from git be able to install those packages
14:19:46FromDiscord<nc-x> (edit) ""fusion", will" => ""fusion"↵will" | "packages" => "packages↵etc."
14:20:23*hyiltiz joined #nim
14:20:24*hyiltiz quit (Changing host)
14:20:24*hyiltiz joined #nim
14:21:07*xet7 joined #nim
14:35:09FromDiscord<Araq> @nc-x there was an RFC about it, but I don't know if it's still accurate. Fusion is different. the Nim distro would be a set of Nimble packages, each package is individually update-able.
14:38:00FromDiscord<Araq> we bundle the code in the tarball/zipfile. git history is lost then but that's already true for everything in the zip
15:03:29giacois it possible to push pragma on top of module but apply it to all procs only? I'm interested in applying the "cov" pragma defined in this project https://github.com/yglukhov/coverage
15:11:53FromGitter<gogolxdong> is there any inotify library?
15:12:54PMunchWhich part do you need?
15:16:14FromGitter<gogolxdong> watch a file and get new lines to match some rules
15:19:38PMunchWell, there's this: https://nim-lang.org/docs/inotify.html
15:21:02giacoClonkk[m]: I'm trying yglukhov for code coverage, but {.push cov.} returns invalid pragma error, but it works if applied manually to each proc definition. Do you know why push does not work in this case?
15:28:47*fredrikhr joined #nim
15:44:08*xet7 quit (Remote host closed the connection)
15:52:42*pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
15:53:35*deepend is now known as deepender
15:53:44*deepender is now known as deepend
15:54:19*pbb joined #nim
15:58:06*deepend is now known as justache
15:58:18*justache is now known as deepend
15:59:06*vicfred joined #nim
16:06:41*Tlangir quit (Ping timeout: 246 seconds)
16:10:48*Tlangir joined #nim
16:29:45FromDiscord<ajusa> Are there any webrtc libraries for Nim (not the js backend)? I saw one but it doesn't seem to work
16:34:34Clonkk[m]<giaco "Clonkk: I'm trying yglukhov for "> There are issues with push and custom pragmas : https://github.com/nim-lang/Nim/issues/12867
16:34:41Clonkk[m]Sorry I mislead you
16:36:10giacoClonkk[m]: no problem, I put {.cov.} on every proc and it compiles. Problem is that I'm getting nan results for all my files, but if I copypaste the testcase from yglukhov example it works
16:42:48Clonkk[m]No idea, I barely used coverage in dummy test case to evaluate different solution. I do not like the idea of having to modify source code as a solution
16:43:13Clonkk[m]It makes using package harder to do
16:58:03giacoClonkk[m]: yeah I'm on the same experimentation path. So far the external -ftest-coverage + -fprofile-arcs + lcov works but returns C-based coverage with genhtml, but I feel there's room for a solution for this as I see coco, status and some people using it inside vscode with nice feedback. The yglukhov solution seems not working to me, it seems to work only for procs that are not using custom types
17:05:34*balencpp quit (Quit: Connection closed for inactivity)
17:42:16*liblq-devel joined #nim
17:42:22*liblq-devel quit (Client Quit)
17:47:43*NimBot joined #nim
18:03:26FromDiscord<hotdog> Anyone else getting issues installing packages with nimble? I've tried switching versions but they're all failing with a `JsonParsingError`
18:04:25Prestige@hotdog like any package, or one in particular?
18:04:34FromDiscord<hotdog> Any package
18:04:57FromDiscord<hotdog> Even running `nimble install` on local packages seems to be erroring
18:05:07FromDiscord<hotdog> I have no idea what json it is trying to parse
18:05:13PrestigeI just installed nimhttpd just fine, nimble version 0.13.1
18:05:23FromDiscord<hotdog> Ok cool
18:05:43FromDiscord<hotdog> Guess I'll build a debug nimble and see if I can find the mysterious json
18:08:43PrestigePMunch: is there a reason you aren't publishing new nimlsp versions? Newest is 0.2.6 but nimlsp.nimble has it up to 0.3.2
18:09:02Prestigenewest in nimble* is 0.2.6
18:11:57*leorize quit (Ping timeout: 240 seconds)
18:13:42*leorize joined #nim
18:25:06FromDiscord<hotdog> Hmmm, the error was with a previously installed package - `dotenv`
18:25:15FromDiscord<hotdog> I deleted the package and now nimble works again
18:25:21FromDiscord<hotdog> Weird
18:29:21*natrys joined #nim
18:33:53FromDiscord<PressF> Hey people.↵I was learning nim before a class, and my teacher noticed and told me I should not learn nim as no one is using it.↵I always take that teacher's opinions with a grain of salt (he loves VBA and basically hates everything apple)
18:35:30FromDiscord<PressF> I've been enjoying Nim, as it seems super expressive, readable and powerful, but the lack of answers on StackOverflow, Youtube videos and articles sometimes makes me question if Nim is the right choice
18:36:11FromDiscord<Solitude> your teacher is rust agent
18:36:13FromDiscord<konsumlamm> if you want a popular language, it isn't the right choice
18:37:08FromDiscord<PressF> In reply to @Solitude "your teacher is rust": pretty sure he does not like rust either
18:37:58FromDiscord<PressF> In reply to @konsumlamm "if you want a": I don't necessarily want a popular language, I mostly want to have fun on my (somewhat limited hahah) free time
18:38:41FromDiscord<konsumlamm> good, then what's the problem with Nim?
18:38:57FromDiscord<konsumlamm> you can always ask here or in the forum if you have questions
18:40:02FromDiscord<PressF> In reply to @konsumlamm "good, then what's the": is there a good video series on it? (I've been reading Nim in Action)
18:40:49FromDiscord<konsumlamm> idk, i just read the tutorial and started hacking in the stdlib
18:41:18FromDiscord<konsumlamm> ~~and realized that a lot of it is broken~~
18:41:43FromDiscord<haxscramper> https://www.youtube.com/user/kiloneie/videos
18:41:46FromDiscord<PressF> In reply to @konsumlamm "~~and realized that a": is that true or a joke?
18:41:55FromDiscord<PressF> In reply to @haxscramper "https://www.youtube.com/user/kiloneie/videos": thx
18:42:05FromDiscord<haxscramper> Though I would recommend to read nim in action
18:42:11FromDiscord<haxscramper> tutorial, and then manual
18:42:27FromDiscord<haxscramper> https://nim-lang.org/documentation.html
18:43:33FromDiscord<konsumlamm> In reply to @PressF "is that true or": iboth, i found a few bugs on my journey, half of them didn't have an issue yet
18:43:57FromDiscord<konsumlamm> though it made me feel not confident about Nim being mature ¯\_(ツ)_/¯
18:44:16FromDiscord<haxscramper> In reply to @PressF "is that true or": depends on the user. I haven't found any major bugs in the stdlib parts I'm using
18:44:23FromDiscord<haxscramper> in 2+ years using the language
18:44:46FromDiscord<haxscramper> Except for generic sandwich, but that is a different story
18:45:21FromDiscord<PressF> In reply to @haxscramper "Except for generic sandwich,": what's that? does it have anything to do with generics?
18:48:22FromDiscord<haxscramper> It is a bug? probably that can trigger with some very rare situations related to generics yes. To be hones I don't really understand the underlying mechanics, nor do I have to, since I've run into it exactly once, and just decided to write things differently
18:49:15FromDiscord<haxscramper> Well, I think I shouldn't have mentioned it, because it is really minor
18:49:44FromDiscord<haxscramper> in my case
18:50:48FromDiscord<exelotl> In reply to @PressF "Hey people. I was": lol this reminds me of the time I'd been reading up on the big bang, I excitedly explained what I'd learned to my science teacher and he was just like "so?"
18:52:30FromDiscord<exelotl> well this case isn't quite as bad as that, as your teacher probably thinks he's steering you in the right direction for your career or something... rather than been just plain negligent xD
18:52:40FromDiscord<exelotl> (edit) "been" => "being"
18:56:11ForumUpdaterBotNew thread by Tsojtsoj: Issue with defaults for mutable generic function parameters, see https://forum.nim-lang.org/t/7917
18:56:25FromDiscord<exelotl> but yeah if you're learning lesser-known programming languages for fun in your free time, it sounds like you certainly have the drive and interest to do well in computing, and it's easy to pick up new languages once you have a couple under your belt, so I wouldn't worry about learning 'the best language for your career' now
19:10:21*leorize quit (Ping timeout: 240 seconds)
19:11:30*leorize joined #nim
19:16:34giacoClonkk[m]: after a lot of fiddling, I'd say that lcov solution works quite well. Live feedback in vscode with https://marketplace.visualstudio.com/items?itemName=ryanluker.vscode-coverage-gutters works too
19:17:44*xet7 joined #nim
19:19:32*jess joined #nim
19:20:59giacoI've basically reduced what is here https://github.com/binhonglee/coco/blob/master/coco.nim into 15 lines of nimble task, quite similar to what I've found here https://github.com/samdmarshall/kisuru/blob/d7f039aae43bd8da9444d13b76849160f7af21ed/kisuru.nimble
19:21:31*natrys quit (Quit: natrys)
19:28:13*lritter quit (Quit: Leaving)
19:39:09*leorize quit (Ping timeout: 240 seconds)
19:47:35*leorize joined #nim
19:52:45*leorize quit (Ping timeout: 240 seconds)
19:53:21*vicfred quit (*.net *.split)
19:53:21*hyiltiz quit (*.net *.split)
19:53:22*clyybber quit (*.net *.split)
19:53:22*mindhunter0x quit (*.net *.split)
19:53:22*Figworm quit (*.net *.split)
19:53:22*xace quit (*.net *.split)
19:53:22*joast quit (*.net *.split)
19:54:58*leorize joined #nim
19:55:14*vicfred joined #nim
19:55:14*hyiltiz joined #nim
19:55:14*clyybber joined #nim
19:55:14*mindhunter0x joined #nim
19:55:14*Figworm joined #nim
19:55:14*xace joined #nim
19:55:14*joast joined #nim
19:55:17*hyiltiz quit (Max SendQ exceeded)
19:55:17*vicfred quit (Max SendQ exceeded)
19:55:26*hyiltiz joined #nim
19:55:33*vicfred joined #nim
20:00:26*rockcavera quit (Ping timeout: 240 seconds)
20:10:02*mindhunt1r0x joined #nim
20:12:16*mindhunter0x quit (Ping timeout: 252 seconds)
20:23:26*narimiran quit (Quit: leaving)
20:26:09*Vladar quit (Quit: Leaving)
20:42:55*filcuc joined #nim
20:43:41filcucis there some info on how destructors works with inheritance?
20:44:14filcucsupposing i've both defined a =destroy for base class A and derived class B
21:04:52*rockcavera joined #nim
21:19:44PMunchPrestige, is there a reason: yes, the reason: I've simply forgotten to push new tags
21:21:52PMunchPushed a new version now :)
21:21:54*PMunch quit (Quit: leaving)
21:29:36*filcuc quit (Ping timeout: 252 seconds)
21:41:09*leorize quit (Ping timeout: 240 seconds)
21:44:48*vicfred_ joined #nim
21:47:06*vicfred quit (Ping timeout: 240 seconds)
21:51:32*thomasross joined #nim
21:55:05*tane quit (Quit: Leaving)
21:58:42*Jjp137 quit (Quit: Leaving)
22:19:46*leorize joined #nim
22:34:41PrestigeAnyone here ever made an ebuild for a nim package for gentoo? Curious how I should be installing dependencies
23:03:24*Figworm quit (Quit: Figworm)
23:04:31leorize[m]use --localdeps
23:05:22leorize[m]it wouldn't work if your portage configuration has network sandbox, but that's about the best we can do until someone write a software that generates a valid nimble dir
23:11:09*Prestige quit (Ping timeout: 250 seconds)
23:31:19*clyybber quit (Quit: WeeChat 3.1)
23:40:41*Prestige joined #nim
23:41:19*sagax joined #nim
23:47:57*leorize quit (Ping timeout: 240 seconds)
23:50:01*fredrikhr quit (Ping timeout: 260 seconds)
23:57:31*Jjp137 joined #nim