00:00:14 | FromDiscord | <ElegantBeef> `template yourPragma {.pragma.}` if you just want a "marker" pragma, but you can also use macros/templates as pragmas |
00:00:48 | FromDiscord | <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:46 | FromDiscord | <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:11 | FromDiscord | <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:00 | ForumUpdaterBot | New 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:06 | FromDiscord | <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:23 | FromDiscord | <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:01 | FromDiscord | <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:29 | FromDiscord | <ElegantBeef> Like i said the other way around which i find less messy is to use a pointer function 😄 |
02:40:42 | FromDiscord | <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:21 | FromDiscord | <mattrb> I'm not sure I'm following the function pointer suggestion. Where is that being set/passed? |
02:42:23 | FromDiscord | <ElegantBeef> one second gotta reclone your project so i can give a proper idea |
02:44:22 | FromDiscord | <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:42 | FromDiscord | <ElegantBeef> Well then it's time for a code review! |
02:45:05 | FromDiscord | <mattrb> If you have the time that'd be awesome!! |
02:45:12 | FromDiscord | <ElegantBeef> I have nothing but time |
02:45:13 | saem | Beef, did you give the flag and property a try for typ and expectedTyp? |
02:45:29 | FromDiscord | <ElegantBeef> Araq didnt like the implementation and suggested an RFC |
02:45:41 | FromDiscord | <ElegantBeef> So we now have an RFC and a dead PR 😛 |
02:46:24 | FromDiscord | <ElegantBeef> https://github.com/nim-lang/RFCs/issues/373 if you want to get to the rfc |
02:47:16 | FromDiscord | <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:04 | FromDiscord | <ElegantBeef> I actually cannot get your project to build atm |
02:48:14 | FromDiscord | <mattrb> Oh right! I'll need to revisit the apu completely at some point |
02:48:19 | FromDiscord | <mattrb> On the branch or on master? |
02:48:23 | FromDiscord | <ElegantBeef> either |
02:48:26 | FromDiscord | <mattrb> Master _should_ be building.. |
02:48:42 | FromDiscord | <mattrb> I'm on nim 1.4.2 |
02:48:47 | FromDiscord | <ElegantBeef> sdl2 complaint |
02:48:47 | FromDiscord | <mattrb> Building with nimble build |
02:48:50 | FromDiscord | <mattrb> Oh |
02:48:55 | FromDiscord | <mattrb> Do you have sdl2 installed? |
02:49:20 | FromDiscord | <ElegantBeef> Yea |
02:51:52 | FromDiscord | <mattrb> What’s the error? |
02:52:12 | FromDiscord | <mattrb> And what platform are you using? I’ve only ever run this on ubuntu |
02:52:22 | FromDiscord | <ElegantBeef> It's a nimble sdl2 issue |
02:53:06 | FromDiscord | <ElegantBeef> Just had to uninstall/install sdl2 |
02:54:18 | FromDiscord | <mattrb> Building fine now? |
02:54:21 | FromDiscord | <ElegantBeef> Yea |
02:56:25 | FromDiscord | <ElegantBeef> What was the import order issue again cpu -> bus -> mmio ... -> cpu? |
03:04:09 | saem | Beef you reused the typ field in your PR? |
03:05:12 | saem | You did. |
03:05:17 | saem | Cool |
03:05:25 | FromDiscord | <ElegantBeef> Yea i did it "properly" |
03:05:49 | FromDiscord | <ElegantBeef> Like araq said it's not my code that is the issue, just the implementation is subpar |
03:05:55 | FromDiscord | <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:17 | FromDiscord | <ElegantBeef> Yea a simple `interrupt: proc(c: Cpu)` on the cpu solves that |
03:06:31 | FromDiscord | <ElegantBeef> But there are more errors that arent letting me compile after getting that in |
03:06:52 | FromDiscord | <ElegantBeef> It means that `interrupts.nim` doesnt need to import the `cpu` module the way i see |
03:08:22 | FromDiscord | <ElegantBeef> Purely up to you but writing your type as `CPU` instead of `Cpu` just seems tedious 😛 |
03:08:25 | FromDiscord | <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:21 | FromDiscord | <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:36 | FromDiscord | <Rika> Cpu is the nim way |
03:10:37 | FromDiscord | <ElegantBeef> Removing line 36 from `interrupts` and the `cpu` makes it change to a `quit` error |
03:10:50 | FromDiscord | <ElegantBeef> Yea we dont scream abbreviations |
03:11:01 | FromDiscord | <mattrb> Right, I need an '&' rather than a ',' :p My bad on that one :p |
03:11:09 | FromDiscord | <mattrb> I'll do `Cpu` then 👍 |
03:13:32 | FromDiscord | <Rika> i mean do whichever you want |
03:14:09 | FromDiscord | <mattrb> I don't have a strong preference 🤷♀️ |
03:14:24 | FromDiscord | <ElegantBeef> Yea it's not like it matters in Nim since they're identical as far as it cares |
03:14:45 | FromDiscord | <mattrb> Maybe I'll do a mix then |
03:15:01 | FromDiscord | <mattrb> c_Pu |
03:15:07 | FromDiscord | <ElegantBeef> That'd fail |
03:15:11 | FromDiscord | <mattrb> :p |
03:15:13 | FromDiscord | <ElegantBeef> The first letter is case sensitive |
03:17:38 | FromDiscord | <Rika> C_Pu would be fine though |
03:18:42 | FromDiscord | <ElegantBeef> I believe your pointer arithmetic can be shortened to `cast[ptr UncheckedArray[T]](p)[1].addr` |
03:18:56 | FromDiscord | <ElegantBeef> I guess `1` is supposed to be `offset` |
03:19:56 | FromDiscord | <mattrb> In util.nim? |
03:19:58 | FromDiscord | <ElegantBeef> yea |
03:21:43 | FromDiscord | <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:04 | FromDiscord | <mattrb> So I take an offset in the type of the array and in the type I'd like to read |
03:22:30 | FromDiscord | <ElegantBeef> yea but that offset is just elements right? |
03:23:08 | FromDiscord | <ElegantBeef> you were doing `cast[int](p) + offset sizeOf(T)` which is what the unchecked array does internally |
03:25:13 | FromDiscord | <ElegantBeef> For example https://play.nim-lang.org/#ix=3lEJ |
03:25:53 | FromDiscord | <mattrb> Oh specifically for the `+` overload |
03:26:22 | * | teal quit (Quit: thanks for the help, everyone) |
03:26:45 | FromDiscord | <ElegantBeef> yea |
03:27:33 | FromDiscord | <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:23 | FromDiscord | <ElegantBeef> Can also use similar logic to simplify your read/write |
03:30:04 | FromDiscord | <mattrb> Yup, thinking like this? `cast[ptr T](unsafeAddr val[a])[b.int]` |
03:30:17 | FromDiscord | <ElegantBeef> yep |
03:30:31 | FromDiscord | <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:39 | FromDiscord | <ElegantBeef> the write can be replaced with `copyMem` or `moveMem` |
03:31:08 | FromDiscord | <mattrb> I guess this is all stuff that I should check if it still works in emscripten lol |
03:31:31 | FromDiscord | <ElegantBeef> It should work |
03:31:49 | FromDiscord | <ElegantBeef> It's not much different to the previous pointer logic |
03:35:46 | FromDiscord | <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:19 | FromDiscord | <ElegantBeef> You dont import bus |
03:36:49 | FromDiscord | <ElegantBeef> Ah nvm you do, though i seen you forgetting to |
03:37:28 | FromDiscord | <mattrb> Where? |
03:37:33 | FromDiscord | <ElegantBeef> thought |
03:37:46 | FromDiscord | <mattrb> Ah |
03:38:35 | FromDiscord | <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:32 | FromDiscord | <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:07 | FromDiscord | <ElegantBeef> Is that why you were asking about issues from me yesterday? 😄 |
03:50:13 | FromDiscord | <Varriount> Yes. |
03:52:25 | FromDiscord | <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:22 | FromDiscord | <Varriount> Which is also why I was asking whether Krux02 was still around, since I know he has done bounty work before. |
03:53:39 | FromDiscord | <mattrb> Am I going to have to enter a bidding war now so that 17212 is prioritized? :cringeharold: |
03:54:25 | FromDiscord | <Varriount> In reply to @mattrb "Am I going to": 17212? |
03:54:40 | FromDiscord | <mattrb> That's the issue number for the problem I've been having a bunch lately :p |
03:58:12 | FromDiscord | <Varriount> sent a long message, see http://ix.io/3lEL |
03:59:36 | FromDiscord | <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:17 | FromDiscord | <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:16 | FromDiscord | <Varriount> I'm at the point where I wouldn't particularly mind if someone just wrote an alternate standard library. |
04:01:30 | FromDiscord | <ajusa> In reply to @ajusa "anyone know why I": figured it out, cast wasn't working at compile time (const variable) |
04:03:49 | FromDiscord | <ElegantBeef> And matt i'm still trying to figure out why it's not playing nicely |
04:05:20 | FromDiscord | <mattrb> Tyvm for looking into it (: |
04:05:57 | * | rockcavera quit (Ping timeout: 268 seconds) |
04:07:03 | FromDiscord | <Varriount> I was mulling over pledging at least 1 or 2k, if not more. |
04:08:55 | FromDiscord | <Rika> In reply to @Varriount "I'm at the point": was my plan actually |
04:09:06 | FromDiscord | <Rika> buuuuuut i dont know how to turn off autoimporting system |
04:09:12 | FromDiscord | <Rika> and its a lot of work |
04:10:24 | FromDiscord | <Rika> what changes are you looking for actually |
04:10:42 | FromDiscord | <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:51 | FromDiscord | <Rika> my irks are from procs that look like `doSomethingType` |
04:11:31 | FromDiscord | <Rika> what's the issue with json? just asking so i know what to think about |
04:11:41 | * | rockcavera joined #nim |
04:12:13 | FromDiscord | <Varriount> Mainly performance and memory usage. |
04:12:51 | FromDiscord | <Rika> ah okay the things i was looking into changing is mainly api stuff |
04:13:25 | FromDiscord | <Varriount> Well, that's specific to json. `os` and `osproc` just need... rethinking. |
04:13:39 | FromDiscord | <Rika> for json maybe just use packedjson i guess? |
04:13:46 | FromDiscord | <Rika> oh man yeah os and osproc |
04:13:47 | FromDiscord | <Rika> maaaaan |
04:13:49 | FromDiscord | <Rika> thats a mess |
04:14:31 | FromDiscord | <Varriount> Yes. Yes it is. |
04:14:57 | FromDiscord | <Rika> i think they should just be merged ngl |
04:15:03 | FromDiscord | <Rika> then the whole api needs rethinking too |
04:15:29 | FromDiscord | <Varriount> Eh, I'm not too sure about that. Subprocess management is surprisingly complex, especially cross-platform. |
04:16:06 | FromDiscord | <Rika> well the names should at least be changed and some procs in os should be moved to the other |
04:16:16 | FromDiscord | <Rika> names -> name of osproc |
04:16:55 | FromDiscord | <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:24 | FromDiscord | <ElegantBeef> @mattrb sent a PR for you 😄 |
04:18:46 | FromDiscord | <Varriount> @Rika https://nim-lang.org/docs/os.html#exitStatusLikeShell%2Ccint↵Just... why? |
04:18:50 | FromDiscord | <ElegantBeef> Recursive imports caused fucky logic causing failure |
04:22:53 | FromDiscord | <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:42 | FromDiscord | <ElegantBeef> Or like treeforms `parseHook` 😄 |
04:26:43 | FromDiscord | <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:26 | FromDiscord | <ElegantBeef> using `fusion/matching`? |
04:27:32 | FromDiscord | <ajusa> yeah |
04:28:15 | FromDiscord | <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:38 | FromDiscord | <ElegantBeef> Tuple would probably be the easiest |
04:29:00 | FromDiscord | <ElegantBeef> I've not used pattern matching so dont exactly know "proper" 😄 |
04:29:38 | FromDiscord | <ajusa> ah okay, was mostly wondering about the overhead so tuple seems more lightweight than creating a temp array or seq |
04:31:08 | FromDiscord | <Rika> In reply to @ElegantBeef "Or like treeforms `parseHook`": wym |
04:32:58 | FromDiscord | <ElegantBeef> Treeform's jsony uses a parsehook proc to allow you to convert from json |
04:40:09 | * | narimiran joined #nim |
04:41:19 | FromDiscord | <ElegantBeef> And yea matt, i dont know why but i couldnt only get it to compile with `bus.read[T]...` |
04:44:22 | FromDiscord | <mattrb> sent a code paste, see https://play.nim-lang.org/#ix=3lEM |
04:44:35 | FromDiscord | <mattrb> Same holds true if I forward-declare it as well |
04:45:00 | FromDiscord | <ElegantBeef> Like i said if you use a pointer proc inside cpu for the interrupt you can remove that cyclical dependancy |
04:45:24 | FromDiscord | <ElegantBeef> I'll quickly make another commit |
04:46:20 | FromDiscord | <mattrb> Yeah that'd be awesome, thank you. I'm still not quite getting what you mean there |
04:50:30 | FromDiscord | <ElegantBeef> What is the type of the `lut`? |
04:51:57 | FromDiscord | <mattrb> Should just be an array[4096, proc] |
04:52:09 | FromDiscord | <mattrb> I think |
04:52:15 | ForumUpdaterBot | New Nimble package! objc_runtime - objective-c runtime bindings, see https://github.com/bung87/objc_runtime |
04:55:05 | FromDiscord | <mattrb> It'll be filled with stuff like `[dataProcessing[false, op: AluOp.SBC, true, false]` |
04:55:16 | FromDiscord | <mattrb> (edit) "false]`" => "false], ...]`" |
04:55:25 | FromDiscord | <mattrb> (edit) removed "op:" |
04:55:38 | FromDiscord | <ElegantBeef> And all of those are homogenous? |
04:56:19 | FromDiscord | <mattrb> They all take exactly the same arguments at runtime |
04:56:26 | FromDiscord | <mattrb> And have no output |
04:56:45 | FromDiscord | <ElegantBeef> I suppose, thought generics were considered unique by the typesystem |
04:58:55 | FromDiscord | <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:21 | FromDiscord | <mattrb> But can't really speak at all to the way nim handles those internally :/ |
05:08:25 | FromDiscord | <ElegantBeef> Yea i've got it compiling but it's not liking to live |
05:08:38 | FromDiscord | <ElegantBeef> about 400 complaints about lock levels and complaining about generic instantiations |
05:08:57 | FromDiscord | <Rika> Yeah |
05:09:11 | FromDiscord | <Rika> Sounds like the issue tracker of Nim as well ngl |
05:10:22 | FromDiscord | <mattrb> Not sure why that's only starting to complain now when it has been like that this whole time... :/ |
05:11:06 | FromDiscord | <mattrb> Okay so you're just sticking the interrupt proc directly onto the gba object |
05:11:19 | FromDiscord | <mattrb> I guess that works haha, better than nothing 👌 Thank you |
05:12:57 | FromDiscord | <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:36 | FromDiscord | <ElegantBeef> Gotta refactor this a bit |
05:19:16 | FromDiscord | <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:38 | FromDiscord | <ElegantBeef> I just want to figure out why it's throwing a error now |
05:20:12 | * | letto quit (Quit: Konversation terminated!) |
05:23:44 | FromDiscord | <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:58 | FromDiscord | <mattrb> How does that cause this? |
05:36:04 | FromDiscord | <ElegantBeef> Possibly as it makes a closure which means it's no longer thread safe, but i have no clue |
05:37:24 | FromDiscord | <mattrb> I do something similar in ppu.nim |
05:37:55 | FromDiscord | <mattrb> That's how I've been managing the scheduler callbacks that take args |
05:38:00 | FromDiscord | <mattrb> Is there a better way to do that in nim? |
05:42:56 | FromDiscord | <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:23 | FromDiscord | <ElegantBeef> Ah there we go |
05:44:29 | FromDiscord | <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:40 | FromDiscord | <ElegantBeef> Had to hunt down the issue procedure though for that thought process 😄 |
05:49:21 | FromDiscord | <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:49 | FromDiscord | <ElegantBeef> Well generally you dont store a bunch of procedures in a LUT, so yea fun madness there 😄 |
05:50:10 | FromDiscord | <mattrb> Thanks for hunting that down 🙂 Happy now that it compiles and only gives 2 warnings 😆 |
05:50:26 | FromDiscord | <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:59 | FromDiscord | <ElegantBeef> Since you'd never be storing the procedures in a homogeneous container, and only seem to use the lut inside there |
05:53:56 | FromDiscord | <ElegantBeef> ~~Yes that macro you originally wanted to put in the bowels of you project is the problem~~ |
05:56:12 | FromDiscord | <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:10 | FromDiscord | <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:45 | FromDiscord | <mattrb> What do you mean by emit it as an if statement? |
06:09:21 | FromDiscord | <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:35 | FromDiscord | <mattrb> So in release it ends up getting done at compile-time anyway |
06:09:52 | FromDiscord | <mattrb> So I haven't felt super rushed to go swap them with `when` :p |
06:11:55 | FromDiscord | <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:08 | FromDiscord | <ElegantBeef> But yea probably vastly slower |
06:12:51 | FromDiscord | <mattrb> And have it check the branches of the case at runtime? |
06:13:04 | FromDiscord | <mattrb> That'd definitely be too slow |
06:13:41 | FromDiscord | <ElegantBeef> Yea it was my dumb idea to avoid the lock issue if it ever appears again |
06:15:10 | FromDiscord | <mattrb> I'm definitely open to all ideas for making this nicer or making it play nicer with the nim compiler |
06:15:30 | FromDiscord | <mattrb> I just don't want to sacrifice much compile-time performance and especially not runtime performance |
06:15:40 | FromDiscord | <mattrb> Timing in emscripten is already tight enough as it is haha |
06:49:03 | ForumUpdaterBot | New 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:43 | FromDiscord | <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:07 | FromDiscord | <ElegantBeef> Wait my fix was a hack? |
07:09:06 | FromDiscord | <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:12 | FromDiscord | <ElegantBeef> I dont know about interrupts, if you're overriding the behaviour it's fine, otherwise quite possibly 😄 |
07:10:30 | FromDiscord | <ElegantBeef> The setting of the pragmas is just to overide the compiler analysis so less of a hack |
07:12:08 | FromDiscord | <mattrb> Maybe that just falls under the definition of "programming in nim" :p |
07:12:38 | FromDiscord | <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:06 | ForumUpdaterBot | New thread by Halloleo: "TypeError: c_1455079.charCodeAt is not a function" on jsfs' readFileSync, see https://forum.nim-lang.org/t/7915 |
07:13:07 | FromDiscord | <ElegantBeef> I think people generally dislike the locks analysis but i dont know 😄 |
07:13:28 | FromDiscord | <mattrb> And to be clear, a hack in my eyes isn't a bad thing 🙂 |
07:13:41 | FromDiscord | <mattrb> That's it for me tonight, so thank you again for your help 🙂 |
07:13:49 | FromDiscord | <ElegantBeef> No problem, buh bye |
07:14:03 | FromDiscord | <mattrb> (edit) "And to be clear, a hack in my eyes isn't ... a" added "necessarily" |
07:18:10 | * | huuskes joined #nim |
07:48:40 | * | kayabaNerve quit (Ping timeout: 252 seconds) |
08:27:22 | * | tane joined #nim |
08:31:13 | FromDiscord | <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:52 | FromDiscord | <ElegantBeef> Well if you ever fix your speech impediment i'm sure you'll get help |
08:38:52 | FromDiscord | <dabmlfz> Sorry!! I had a plugin enabled that did that and did not realize 😅 |
08:39:50 | FromDiscord | <ElegantBeef> Well IRC still gets to see that lovely message |
08:44:58 | FromDiscord | <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:23 | FromDiscord | <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:26 | FromDiscord | <ElegantBeef> (edit) "us," => "use," |
08:48:03 | FromDiscord | <ElegantBeef> Like you can always inherit from a non-final, but there isnt much you can do to extend a tagged union |
08:49:13 | FromDiscord | <dabmlfz> what about performance? doesn't inheritance lead to slower code due to vmtables? |
08:50:05 | FromDiscord | <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:44 | FromDiscord | <ElegantBeef> And truthfully i've only seen a single nim project use inheritance and that's nimx |
08:51:19 | PMunch | Another great example for how Nim can be used for zero-cost abstractions: https://github.com/liquidev/datarray |
08:52:21 | FromDiscord | <ElegantBeef> The important part is the `select` macro |
08:52:37 | FromDiscord | <ElegantBeef> And we can all see that pmunch read TMWN |
08:52:47 | PMunch | Yup :D |
08:53:20 | FromDiscord | <ElegantBeef> My work to encourage project visibility is working! |
08:53:24 | PMunch | I should finish my video series on the keyboard firmware and write and article for the next month :) |
08:54:04 | FromDiscord | <ElegantBeef> Well yea we need projects every month, and i've been doing nothing as of late |
08:55:32 | FromDiscord | <ElegantBeef> Plus nimconf is soon |
08:57:47 | FromDiscord | <ElegantBeef> Got any plans for it his year pmunch? |
08:58:25 | FromDiscord | <ElegantBeef> (edit) "his" => "this" |
08:59:01 | PMunch | Yup, 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:46 | PMunch | But I've already done a couple of Nim on microcontroller talks :P |
09:00:02 | PMunch | It might just end up being way to technical |
09:00:08 | * | ee7[m] quit (Quit: Idle for 30+ days) |
09:00:19 | PMunch | Have you thought of anything? |
09:00:39 | PMunch | Hmm, maybe I'll do one on declarative programming in general.. |
09:01:32 | FromDiscord | <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:30 | PMunch | I mean I've held talks about meta-programming in Nim before :P |
09:03:41 | PMunch | And I'd definitely listen to some |
09:04:14 | PMunch | Hmm, who set ut the Travis CI for parsetoml? |
09:26:59 | giaco | testament + 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:03 | FromDiscord | <Varriount> In reply to @mattrb "The interrupts were a": Kirby! You've instantly brightened my mood by 15% |
09:50:50 | FromDiscord | <Varriount> In reply to @giaco "testament + code coverage,": The compiler is pretty good about catching obvious errors. |
10:06:25 | FromDiscord | <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:46 | FromDiscord | <Conifer> sent a code paste, see https://play.nim-lang.org/#ix=3lFo |
10:10:57 | PMunch | It's a false positive |
10:11:10 | PMunch | Been 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:26 | giaco | Varriount: I guess you don't know what I am talking about |
10:23:22 | giaco | I've quite worried about this antivir vs nim thing. It is seriously dangerous for nim |
10:23:38 | PMunch | It has happened a couple times in the past |
10:24:24 | giaco | I 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:00 | PMunch | Why are you scared about it? |
10:29:23 | giaco | One 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:50 | ForumUpdaterBot | New thread by Marcomq: Question about templates / macros, see https://forum.nim-lang.org/t/7916 |
10:33:43 | PMunch | giaco, well as long as you're not distributing the compiler you should be fine |
11:14:13 | FromDiscord | <mlokis> sent a code paste, see https://paste.rs/pkg |
11:14:55 | FromDiscord | <mlokis> secomd call should hav thrown a exception but id did not even compile |
11:15:04 | FromDiscord | <mlokis> (edit) "hav" => "have" |
11:15:12 | FromDiscord | <mlokis> (edit) "a" => "an" |
11:15:20 | FromDiscord | <mlokis> (edit) "id" => "it" |
11:16:45 | FromDiscord | <haxscramper> What was the compilation error? |
11:17:56 | FromDiscord | <haxscramper> Oh, didn't notice comment. |
11:18:37 | FromDiscord | <haxscramper> You can try using `[:T]` https://nim-lang.org/docs/manual.html#procedures-method-call-syntax maybe? |
11:20:07 | FromDiscord | <haxscramper> sent a code paste, see https://paste.rs/ITn |
11:20:35 | FromDiscord | <haxscramper> god, this new spellsuggest is just https://media.discordapp.net/attachments/371759389889003532/838736792869535784/unknown.png |
11:21:02 | FromDiscord | <haxscramper> 5% useful information |
11:21:04 | FromDiscord | <haxscramper> 95% noise |
11:26:41 | * | Vladar quit (Remote host closed the connection) |
11:29:31 | * | Vladar joined #nim |
11:33:29 | FromDiscord | <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:39 | FromDiscord | <haxscramper> (edit) removed "percent" |
11:35:00 | FromDiscord | <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:22 | FromDiscord | <mlokis> you noticed tha whenewery sou use quote macro with `` nimlsp dies |
11:38:21 | FromDiscord | <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:34 | giaco | PMunch: it is not only the compiler and tools that are raising false alarms |
11:38:47 | PMunch | Oh really? |
11:39:17 | FromDiscord | <Rika> i'd say false alarms are unavoidable until the AV's heuristics are fixed |
11:39:49 | giaco | PMunch: see https://github.com/nim-lang/Nim/issues/17820#issuecomment-830540440 |
11:41:24 | giaco | Rika, yeah, probably, and Nim is not large enough to move them, and this could kill the community |
11:42:02 | FromDiscord | <Rika> then get them to move |
11:42:12 | FromDiscord | <Rika> "not being large enough" sounds like an excuse |
11:42:13 | PMunch | Oh, that's not great.. |
11:42:29 | PMunch | I guess it's because the new malware that has been written in Nim |
11:42:58 | giaco | Rika, $$$ talks, and Nim is not moving much of them afaik |
11:43:55 | giaco | yeah, probably, and also the weaponizing nim repositories |
11:44:35 | giaco | I can't blame Nim or the author of malware or security libraries, but it is potential recipie for a disaster |
11:46:04 | FromDiscord | <haxscramper> In reply to @Rika "maybe question marks after": https://media.discordapp.net/attachments/371759389889003532/838743203125395526/unknown.png |
11:47:15 | FromDiscord | <Rika> personally think that looks better but some people might disagree |
11:48:10 | FromDiscord | <haxscramper> I just can't https://media.discordapp.net/attachments/371759389889003532/838743733851521044/unknown.png |
11:48:27 | FromDiscord | <haxscramper> Showed only needed bits of information |
11:48:35 | FromDiscord | <nc-x> Did you mean to use '...'? (... -> ...)↵Other possible alternatives: ... , ... , ... , ... |
11:48:44 | FromDiscord | <nc-x> Something like this looks good to me |
11:49:05 | FromDiscord | <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:33 | FromDiscord | <haxscramper> (edit) "if" => "If" | "mess" => "less" |
11:49:56 | FromDiscord | <haxscramper> Though getting it right so highlighting was intuitive is hard |
11:51:23 | FromDiscord | <haxscramper> At least it is certainly harder to implement compared to dumping everything and forcing users to dig through |
12:00:13 | FromDiscord | <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:54 | FromDiscord | <haxscramper> Just show GOT -> EXPECTED pair directly without smart edit coloring |
12:02:26 | FromDiscord | <Rika> okay good point lol |
12:03:25 | FromDiscord | <Rika> In reply to @nc-x "Did you mean to": or you can say "`Or possibly (...? ...? ...? ...?)`" |
12:05:28 | * | lritter joined #nim |
12:06:32 | FromDiscord | <haxscramper> `Did you mean ALT-1? Or possibly ...? ...? ...?` |
12:17:23 | FromDiscord | <Rika> yeah hm |
12:23:01 | * | xet7 quit (Quit: Leaving) |
12:32:03 | FromDiscord | <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:35 | FromDiscord | <haxscramper> importing `nil` does not help redabilty |
12:32:41 | FromDiscord | <haxscramper> Everything else you can use as you see fit |
12:33:01 | FromDiscord | <Rika> In reply to @Sprütz "Heyo I was wondering": importing nil is actually highly discouraged |
12:33:04 | FromDiscord | <haxscramper> https://narimiran.github.io/2019/07/01/nim-import.html |
12:33:52 | FromDiscord | <Rika> feel free to use whatever you like `str.len str.len() len str len(str)` |
12:34:02 | FromDiscord | <Rika> norm i'd say would be str.len though |
12:36:11 | FromDiscord | <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:46 | giaco | does anybody of you have any experience in enabling lcov in nim? |
13:05:39 | Clonkk[m] | See https://forum.nim-lang.org/t/7024 |
13:06:33 | Clonkk[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:29 | Clonkk[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:59 | FromDiscord | <dom96> In reply to @haxscramper "If difference is less": oooh, this looks awesome, are you implementing it in the Nim compiler? |
13:15:14 | FromDiscord | <haxscramper> No |
13:15:33 | FromDiscord | <Rika> wait what why 😦 |
13:15:41 | giaco | Clonkk[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:08 | FromDiscord | <haxscramper> I just have a levenshtein distance implementation and I assembled string mismatch error generation |
13:16:12 | FromDiscord | <haxscramper> For this example |
13:18:09 | FromDiscord | <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:43 | FromDiscord | <dom96> :/ |
13:20:20 | FromDiscord | <dom96> Another nice thing would be to provide a CLI parsing library that offers these nice errors. |
13:20:43 | FromDiscord | <haxscramper> Rodfiles |
13:21:15 | FromDiscord | <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:25 | FromDiscord | <haxscramper> And displaying errors |
13:22:33 | FromDiscord | <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:53 | FromDiscord | <dom96> hm, that may work for this specifically |
13:25:06 | FromDiscord | <dom96> Personally I would love to see more rich error messages like those in Rust |
13:25:59 | FromDiscord | <Rika> give the error messages some money |
13:26:54 | giaco | can'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:33 | FromDiscord | <haxscramper> Yeah, it enables so many use cases |
13:31:50 | FromDiscord | <haxscramper> Like proper macro/template-aware usage information |
13:32:07 | FromDiscord | <haxscramper> Custom error messages as discussed above |
13:34:48 | FromDiscord | <haxscramper> With it I will finally be able to implement proper sourcetrail support |
13:36:10 | FromDiscord | <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:23 | FromDiscord | <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:32 | ForumUpdaterBot | New 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:37 | FromDiscord | <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:26 | FromDiscord | <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:46 | FromDiscord | <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:09 | FromDiscord | <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:00 | FromDiscord | <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:29 | giaco | is 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:53 | FromGitter | <gogolxdong> is there any inotify library? |
15:12:54 | PMunch | Which part do you need? |
15:16:14 | FromGitter | <gogolxdong> watch a file and get new lines to match some rules |
15:19:38 | PMunch | Well, there's this: https://nim-lang.org/docs/inotify.html |
15:21:02 | giaco | Clonkk[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:45 | FromDiscord | <ajusa> Are there any webrtc libraries for Nim (not the js backend)? I saw one but it doesn't seem to work |
16:34:34 | Clonkk[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:41 | Clonkk[m] | Sorry I mislead you |
16:36:10 | giaco | Clonkk[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:48 | Clonkk[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:13 | Clonkk[m] | It makes using package harder to do |
16:58:03 | giaco | Clonkk[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:26 | FromDiscord | <hotdog> Anyone else getting issues installing packages with nimble? I've tried switching versions but they're all failing with a `JsonParsingError` |
18:04:25 | Prestige | @hotdog like any package, or one in particular? |
18:04:34 | FromDiscord | <hotdog> Any package |
18:04:57 | FromDiscord | <hotdog> Even running `nimble install` on local packages seems to be erroring |
18:05:07 | FromDiscord | <hotdog> I have no idea what json it is trying to parse |
18:05:13 | Prestige | I just installed nimhttpd just fine, nimble version 0.13.1 |
18:05:23 | FromDiscord | <hotdog> Ok cool |
18:05:43 | FromDiscord | <hotdog> Guess I'll build a debug nimble and see if I can find the mysterious json |
18:08:43 | Prestige | PMunch: 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:02 | Prestige | newest in nimble* is 0.2.6 |
18:11:57 | * | leorize quit (Ping timeout: 240 seconds) |
18:13:42 | * | leorize joined #nim |
18:25:06 | FromDiscord | <hotdog> Hmmm, the error was with a previously installed package - `dotenv` |
18:25:15 | FromDiscord | <hotdog> I deleted the package and now nimble works again |
18:25:21 | FromDiscord | <hotdog> Weird |
18:29:21 | * | natrys joined #nim |
18:33:53 | FromDiscord | <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:30 | FromDiscord | <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:11 | FromDiscord | <Solitude> your teacher is rust agent |
18:36:13 | FromDiscord | <konsumlamm> if you want a popular language, it isn't the right choice |
18:37:08 | FromDiscord | <PressF> In reply to @Solitude "your teacher is rust": pretty sure he does not like rust either |
18:37:58 | FromDiscord | <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:41 | FromDiscord | <konsumlamm> good, then what's the problem with Nim? |
18:38:57 | FromDiscord | <konsumlamm> you can always ask here or in the forum if you have questions |
18:40:02 | FromDiscord | <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:49 | FromDiscord | <konsumlamm> idk, i just read the tutorial and started hacking in the stdlib |
18:41:18 | FromDiscord | <konsumlamm> ~~and realized that a lot of it is broken~~ |
18:41:43 | FromDiscord | <haxscramper> https://www.youtube.com/user/kiloneie/videos |
18:41:46 | FromDiscord | <PressF> In reply to @konsumlamm "~~and realized that a": is that true or a joke? |
18:41:55 | FromDiscord | <PressF> In reply to @haxscramper "https://www.youtube.com/user/kiloneie/videos": thx |
18:42:05 | FromDiscord | <haxscramper> Though I would recommend to read nim in action |
18:42:11 | FromDiscord | <haxscramper> tutorial, and then manual |
18:42:27 | FromDiscord | <haxscramper> https://nim-lang.org/documentation.html |
18:43:33 | FromDiscord | <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:57 | FromDiscord | <konsumlamm> though it made me feel not confident about Nim being mature ¯\_(ツ)_/¯ |
18:44:16 | FromDiscord | <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:23 | FromDiscord | <haxscramper> in 2+ years using the language |
18:44:46 | FromDiscord | <haxscramper> Except for generic sandwich, but that is a different story |
18:45:21 | FromDiscord | <PressF> In reply to @haxscramper "Except for generic sandwich,": what's that? does it have anything to do with generics? |
18:48:22 | FromDiscord | <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:15 | FromDiscord | <haxscramper> Well, I think I shouldn't have mentioned it, because it is really minor |
18:49:44 | FromDiscord | <haxscramper> in my case |
18:50:48 | FromDiscord | <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:30 | FromDiscord | <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:40 | FromDiscord | <exelotl> (edit) "been" => "being" |
18:56:11 | ForumUpdaterBot | New thread by Tsojtsoj: Issue with defaults for mutable generic function parameters, see https://forum.nim-lang.org/t/7917 |
18:56:25 | FromDiscord | <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:34 | giaco | Clonkk[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:59 | giaco | I'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:41 | filcuc | is there some info on how destructors works with inheritance? |
20:44:14 | filcuc | supposing i've both defined a =destroy for base class A and derived class B |
21:04:52 | * | rockcavera joined #nim |
21:19:44 | PMunch | Prestige, is there a reason: yes, the reason: I've simply forgotten to push new tags |
21:21:52 | PMunch | Pushed 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:41 | Prestige | Anyone 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:31 | leorize[m] | use --localdeps |
23:05:22 | leorize[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 |