<< 06-09-2024 >>

00:01:41*beholders_eye joined #nim
00:08:14*lucasta quit (Quit: Leaving)
00:25:52*beholders_eye quit (Ping timeout: 252 seconds)
02:01:11FromDiscord<sir.niklas> I want to ask a fantastic question. Are the users marked (APP) actual users or bots? And if user how you have the tag APP?
02:02:27FromDiscord<Elegantbeef> We're bridged from either Matrix or IRC
02:10:39FromDiscord<zumi.dxy> damn I wish we had bots that are funny
02:22:56*lucasta joined #nim
02:27:27FromDiscord<Elegantbeef> I'll try
02:46:08*khazakar quit (Read error: Connection reset by peer)
02:46:39*khazakar joined #nim
03:04:19FromDiscord<rb3.nim> sent a code paste, see https://play.nim-lang.org/#pasty=BguPCNgm
03:04:32FromDiscord<rb3.nim> (edit) "https://play.nim-lang.org/#pasty=QGYERDdG" => "https://play.nim-lang.org/#pasty=YecZIyqP"
03:06:14FromDiscord<rb3.nim> The reason I need this is that I'm taking the `typed` ast of something like `main` and generating code in another language, but I can't get the ast of math operations on `const` values because they resolve to constants
03:07:09FromDiscord<rb3.nim> (edit) "constants" => "computed constants. I've doing `getImpl` on intlits for example, but just results in an error."
03:07:15FromDiscord<rb3.nim> (edit) "The reason I need this is that I'm taking the `typed` ast of something like `main` and generating code in another language, but I can't get the ast of math operations on `const` values because they resolve to computed constants. I've ... doing" added "tried"
03:07:26FromDiscord<rb3.nim> (edit) "The reason I need this is that I'm taking the `typed` ast of something like `main` and generating code in another language, but I can't get the ast of math operations on `const` values because they resolve to computed constants. I've tried doing `getImpl` on intlits for example, but ... just" added "that"
03:07:53FromDiscord<that_dude.> Maybe take a look at something like dumpast? It may help
03:08:15FromDiscord<that_dude.> https://nim-lang.org/docs/macros.html#dumpAstGen.m%2Cuntyped
03:09:52FromDiscord<rb3.nim> Thanks, ya I considered using `untyped` macros instead so I can get the raw asts, but I need `typed` to resolve types in expressions
03:10:16FromDiscord<rb3.nim> (edit) "Thanks, ya I considered using `untyped` macros instead so I can get the raw asts, but I need `typed` to resolve types in expressions ... " added "like `let a = computeValue()`"
03:12:19FromDiscord<that_dude.> I found this proc. Maybe it's useful? I'm not that deep in macros https://nim-lang.org/docs/macros.html#parseExpr%2Cstring%2Cstring
03:13:15FromDiscord<that_dude.> tbh I'm suprized that you have a nim ast representation that also has optimizations.
03:13:41FromDiscord<that_dude.> I didn't know that nim goes out of it's way to optimize this stuff
03:14:13FromDiscord<that_dude.> (edit) "I didn't know that nim goes out of it's way to optimize this ... stuff" added "stuff. I assumed it just lets the c compiler take care of this"
03:14:49FromDiscord<rb3.nim> Ya I found it surprising. I can get the syms of templates and consts unless they are used in a math operation
03:15:25FromDiscord<that_dude.> does using distincts help at all?
03:15:31FromDiscord<that_dude.> (edit) "distincts" => "distinct types"
03:15:59FromDiscord<that_dude.> That feels kinda hacky though tbh.
03:16:44FromDiscord<that_dude.> In what scenario would you want to preserve the 1+1? I personally don't see the issue with letting it happen
03:17:07FromDiscord<rb3.nim> That would probably work, but I'd have to define all the operations for them myself, which is a bit tedious
03:18:20FromDiscord<rb3.nim> I need the ast of a + a so the macro system of the language I'm targeting can resolve the symbols itself
03:20:19FromDiscord<that_dude.> My intuition is saying that this is only happening because `a` is guaranteed to be an int with `+` defined.
03:20:49FromDiscord<that_dude.> So I bet if you have a custom type, it won't get optimized like that
03:21:14FromDiscord<rb3.nim> Ya custom types don't have this issue
03:21:22FromDiscord<that_dude.> intLit vs ident
03:35:18*rockcavera quit (Remote host closed the connection)
04:00:35FromDiscord<eamonnmr> This is a tough one to google, I know you can do custom `foo[bar]` behavior by overloading the `\`[]\`` function... is there a corresponding way to overload something to change the behavior of `foo[bar] = qux`
04:02:02FromDiscord<rb3.nim> sent a code paste, see https://play.nim-lang.org/#pasty=PvESKwNg
04:02:20FromDiscord<rb3.nim> (edit) "https://play.nim-lang.org/#pasty=RMhjQxAA" => "https://play.nim-lang.org/#pasty=pktPiWBu"
04:02:35FromDiscord<rb3.nim> (edit) "https://play.nim-lang.org/#pasty=ElwAhvGk" => "https://play.nim-lang.org/#pasty=oOGAZyXI"
04:04:40FromDiscord<eamonnmr> Sweet thanks
04:39:12*ntat joined #nim
04:39:20FromDiscord<k0ts> Here I would say "good thing it's in the manual so you don't have to Google it", but I can't, because it's not
04:39:24FromDiscord<k0ts> https://nim-lang.org/docs/tut2.html#object-oriented-programming-properties
04:54:55FromDiscord<zumi.dxy> > Note that this document is somewhat obsolete as the manual contains many more examples of the advanced language features.
04:54:58FromDiscord<zumi.dxy> sigh...
05:03:38*lucasta quit (Quit: Leaving)
05:30:09*SchweinDeBurg quit (Quit: WeeChat 4.5.0-dev)
05:30:31*SchweinDeBurg joined #nim
06:07:44*ntat quit (Quit: Leaving)
06:36:19*termer quit (Quit: ZNC 1.8.2+deb2build5 - https://znc.in)
07:11:07*mfg joined #nim
07:45:31*termer joined #nim
07:58:33*ntat joined #nim
08:52:08*ryuukk quit (Read error: Connection reset by peer)
08:52:52*ryuukk joined #nim
09:06:18FromDiscord<nocturn9x> In reply to @nocturn9x "randomly just die": so no one has any idea why this could be happening or how to debug it?
09:07:23FromDiscord<zumi.dxy> it's not OOM related is it?
09:07:32FromDiscord<nocturn9x> I don't think so?
09:07:42FromDiscord<nocturn9x> The threads don't get any exception or anything
09:07:47FromDiscord<nocturn9x> guess I could set up a signal handler
09:08:00FromDiscord<nocturn9x> but the weird thing is when I call `joinThread()` the whole process just hangs
09:08:09FromDiscord<nocturn9x> even if I ensure that the thread is running before doing so
09:08:12FromDiscord<nocturn9x> something is _very_ wrong
09:09:16*krux02 joined #nim
09:09:21FromDiscord<nocturn9x> I'll try a system update and a reboot, although I already rebooted yesterday and that didn't fix it
09:09:31FromDiscord<nocturn9x> it only started happening recently, I've been running this program for weeks with no issues
09:09:54FromDiscord<nocturn9x> and another server I own which runs a bare metal instance of Rocky Linux instead of it being virtualized via Proxmox has no issues either
09:30:17FromDiscord<nocturn9x> okay so they're not dying https://media.discordapp.net/attachments/371759389889003532/1281547010419458108/image.png?ex=66dc1d29&is=66dacba9&hm=0914574009310578ff4db9aec9c25a9885472dff3a8686f01de16016c76af10b&
09:30:23FromDiscord<nocturn9x> they're just at 0% CPU usage????
09:30:47FromDiscord<leorize> that meant they're stuck
09:31:26FromDiscord<nocturn9x> but stuck on what
09:31:32FromDiscord<nocturn9x> the only shared state is an atomic counter
09:31:41FromDiscord<nocturn9x> it doesn't happen on other systems
09:31:45FromDiscord<nocturn9x> why just on these VMs?
09:32:58FromDiscord<nnsee> gdb attach and have a look
09:33:43FromDiscord<zumi.dxy> I/O?
09:34:00FromDiscord<nocturn9x> on an atomic integer?
09:34:13FromDiscord<nocturn9x> plus, it's not like they all die at once
09:34:17FromDiscord<nocturn9x> it's staggered
09:34:25FromDiscord<nocturn9x> one, then two, three and finally the fourth
09:36:19FromDiscord<leorize> are you using channels?
09:36:25FromDiscord<leorize> or osproc?
09:36:46FromDiscord<nocturn9x> nope and nope
09:37:06FromDiscord<nocturn9x> the thing is this was not happening before
09:37:07FromDiscord<nocturn9x> it's a new issue
09:37:50FromDiscord<nocturn9x> sent a code paste, see https://play.nim-lang.org/#pasty=hgyszTTj
09:37:56FromDiscord<nocturn9x> this is about all I get from `gdb <pid>`
09:38:17FromDiscord<leorize> type `bt` to get a trace
09:38:24FromDiscord<leorize> just the current frame is not useful
09:40:17FromDiscord<nocturn9x> sent a code paste, see https://play.nim-lang.org/#pasty=afgwruYF
09:40:24FromDiscord<nocturn9x> `findBestLine` etc. is my code
09:41:06FromDiscord<nocturn9x> the relevant code: <https://git.nocturn9x.space/nocturn9x/heimdall/src/branch/master/heimdall/heimdallpkg/datagen/generate.nim>, specifically `generateData` is the thread proc
09:41:49FromDiscord<leorize> it's certainly sleeping \:p
09:42:05FromDiscord<leorize> type `info threads` to see all threads
09:42:08FromDiscord<nocturn9x> sent a code paste, see https://play.nim-lang.org/#pasty=DFIflGui
09:42:11FromDiscord<nocturn9x> ok well I know the culprit
09:42:21FromDiscord<nocturn9x> but that piece of code doesn't trigger on other machines???
09:42:30FromDiscord<nocturn9x> I'm so confused
09:42:34FromDiscord<leorize> races are weird
09:42:43FromDiscord<nocturn9x> but they happen consistently on these two systems
09:42:44FromDiscord<nocturn9x> and nowhere else
09:43:31FromDiscord<nocturn9x> small explainer: when the search is done (i.e. has reached depth == 255) and no limit has expired, the function will just wait for a stop command indefinitely
09:43:50FromDiscord<nocturn9x> however it is not possible for this to happen like, ever, because depth 255 is basically unreachable
09:44:02FromDiscord<nocturn9x> so there must be something causing it to break out of the earlier loop without triggering any limits
09:44:11FromDiscord<nocturn9x> which makes no sense, cuz if that were the case it'd be reproducible
09:44:30FromDiscord<nocturn9x> (edit) "however it is not possible for this to happen like, ever, because depth 255 is basically unreachable ... " added "except in very very simple positions"
09:45:15FromDiscord<nocturn9x> I'll try getting rid of the loop and see if that fixes it
09:46:26FromDiscord<nocturn9x> that seems to have been the culprit. bruh.
09:46:49FromDiscord<nocturn9x> time to figure out _why_
10:10:44*beholders_eye joined #nim
10:36:40*def- quit (Quit: -)
10:52:10*def- joined #nim
10:53:00*beholders_eye quit (Ping timeout: 246 seconds)
11:25:25*beholders_eye joined #nim
11:34:13FromDiscord<zumi.dxy> Is there a `results` package that works with pattern matching packages like `patty` or `gara`? I did make my own type that works with patty but I'm feeling a bit insecure
11:40:49*beholders_eye quit (Ping timeout: 260 seconds)
11:49:23*ntat quit (Quit: Leaving)
11:57:33FromDiscord<k0ts> How about using `results` and writing a case statement macro for it?
11:59:21FromDiscord<zumi.dxy> The Results type in there is private
11:59:50FromDiscord<zumi.dxy> You need to use get() isErr() isOk() and the rest
12:00:00FromDiscord<zumi.dxy> the ? operator is pretty nice though
12:00:41FromDiscord<zumi.dxy> (edit) "The ... Results" added "fields of the"
12:01:19FromDiscord<zumi.dxy> Or I could use the map stuff too... but... eh
12:13:01*ntat joined #nim
12:30:21*krux02 quit (Remote host closed the connection)
13:03:21om3ga_Guys, is there anything like parseUint16?
13:06:36om3ga_seems no, please ingnore the question
13:11:57FromDiscord<nnsee> seems fairly easy to implement something like that, no? not exactly sure what your requirements are (whether you expect it to do bounds checks or not) https://play.nim-lang.org/#pasty=NpUeAPlX
13:13:40om3ga_nnsee, thanks, yeah, I expected something what already present in parseutils
13:27:00*lucasta joined #nim
14:16:57*Artea quit (Quit: ZNC 1.8.2 - https://znc.in)
14:23:16*Artea joined #nim
15:12:44*Artea quit (Quit: ZNC 1.8.2 - https://znc.in)
15:13:40*mfg quit (Ping timeout: 272 seconds)
15:20:46*Artea joined #nim
15:25:21FromDiscord<basilajith> How can I read in a csv file (encoded in UTF-16LE; don't ask why) and convert it to UTF-8 using `std/encodings`?
15:25:35FromDiscord<basilajith> (edit) removed "in"
15:27:29FromDiscord<basilajith> sent a code paste, see https://play.nim-lang.org/#pasty=UkplcHDg
15:28:13FromDiscord<basilajith> (edit) "https://play.nim-lang.org/#pasty=sCfIIHlh" => "https://play.nim-lang.org/#pasty=sOuaCOuD"
15:31:44FromDiscord<nervecenter> sent a code paste, see https://play.nim-lang.org/#pasty=TQfYbtUV
15:32:07FromDiscord<nervecenter> That's the easy answer, anyways
15:32:56FromDiscord<nervecenter> Could probably split the lines and put them in the variable in the first place
15:33:01FromDiscord<basilajith> Oh...method chaining works on this.
15:33:08FromDiscord<nervecenter> (edit) "variable" => "let definition"
15:34:40FromDiscord<nervecenter> sent a code paste, see https://play.nim-lang.org/#pasty=WJAJNfpE
15:35:36FromDiscord<nervecenter> They're nice dataframes, the API is decent and it's muuuuuuuuuuch faster than Pandas
15:36:19FromDiscord<nervecenter> https://scinim.github.io/Datamancer/datamancer.html
15:36:32FromDiscord<nervecenter> https://scinim.github.io/Datamancer/dataframe.html
15:36:51FromDiscord<nervecenter> https://scinim.github.io/getting-started/basics/data_wrangling.html
15:51:42FromDiscord<fabric.input_output> how fast is it compared to polars?
15:54:12*Artea quit (Ping timeout: 272 seconds)
16:34:03FromDiscord<nervecenter> No idea
16:58:31FromDiscord<Robyn [She/Her]> out of curiosity, what do nim folk think of Nimskull?
17:06:30FromDiscord<Robyn [She/Her]> _Robyn [She/Her] sends snowfall ❄️_
17:06:38FromDiscord<Robyn [She/Her]> damn, weird
17:15:42FromDiscord<basilajith> Thanks @nervecenter !
17:19:20*m5zs7k_ joined #nim
17:19:40*m5zs7k quit (Read error: Connection reset by peer)
17:27:53*m5zs7k_ is now known as m5zs7k
17:28:23*lucasta quit (Quit: Leaving)
18:04:24FromDiscord<solitudesf> In reply to @chronos.vitaqua "out of curiosity, what": they removed bunch of language features and most of their work is targeted at compiler development itself, so after a year of following it and seeing nothing but refactoring, i lost all interest. and fracturing already fragile userbase of nim is not a good look.
18:14:53FromDiscord<arm_3_d> In reply to @chronos.vitaqua "out of curiosity, what": From my point of view, yet another new language doesn’t really matter. Good tooling is far more important. Sure, you might admire a clever type system or impressive speed at first, but that excitement fades quickly when you hit a wall of poorly functioning tools. At the end of the day we just need to get shit done quickly.
18:35:41*krux02 joined #nim
18:40:10FromDiscord<Phil> In reply to @arm_3_d "From my point of": You say that, but at the same time that compiler team is also directly involved in e.g. providing tools/procs/concepts for multithreading in nim and that can be a pretty massive painpoint
18:41:23*ntat quit (Quit: Leaving)
18:41:31FromDiscord<Phil> There are also weird bits and bobs here that aren't showstoppers, but lead to unexpected use of generics/templates here and there.↵Honestly, I'm not too opposed with a nim featureset frozen at 1.6, refactored to get more bug freeness topped off with a rocksolid multithreading lib
18:42:14FromDiscord<Phil> I'm not saying they're perfect or anything, but there is validity as to why they're doing what they're doing in my eyes.
18:44:38FromDiscord<fabric.input_output> who says things can't be backported
18:46:14FromDiscord<Phil> In reply to @fabric.input_output "who says things can't": I'm not saying that, I'm saying that time is finite. Working on a feature means not working on a bug etc.↵Which is the nature of the beast, because most devs are just open source contributors and its undestandable that bug-hunting isn't the most enjoyable task in general
18:46:27FromDiscord<fabric.input_output> yeah
18:46:36FromDiscord<arm_3_d> Mostly agree. I think I become too dependent to tools like LSP and having hard time out of comfort zone. Besides my rant, I like Nim for supporting old platforms. There is no single modern language which can target ancient PCs
18:47:00FromDiscord<fabric.input_output> standing on the shoulders of giants
18:47:12FromDiscord<Phil> Standing on the shoulders of a whole lot of C code 😄
18:47:24FromDiscord<arm_3_d> Yes love that
18:48:39FromDiscord<arm_3_d> This fact alone is a killer feature for my current work
18:49:44FromDiscord<fabric.input_output> what are some major features that are missing in 1.6?
18:50:35FromDiscord<Phil> From 2.0? None that I recall. There are several crucial bugfixes in 2.0 and onwards that 1.6 doesn't have, but on the feature front itself, nothing that affected me too much
18:50:40FromDiscord<Phil> I think default assignments came with 2.0
18:50:55FromDiscord<Phil> Which we had constructor for which has other benefits as well
18:51:27FromDiscord<fabric.input_output> so I guess nimskull isn't that much different from current nim stable feature wise?
18:51:46FromDiscord<Phil> Overall I'd honestly expect you could port one over to the other and either should work
18:52:11FromDiscord<Phil> The main thing you should keep in mind though is that you have no guarantees it will stay that way
18:52:17FromDiscord<Elegantbeef> There are differences like Nim allows `T` destructors and has a `=wasMoved` hoo
18:52:19FromDiscord<Elegantbeef> hook\
18:52:34FromDiscord<Elegantbeef> Skull also does not have async in the stdlib
18:53:00FromDiscord<fabric.input_output> I don't really use those so I guess I could try it
18:53:10FromDiscord<Elegantbeef> Guess I should say `a: T` destructors
18:54:09FromDiscord<Elegantbeef> For points or skull it actually kills `{.threadvar.}`s and threads can be moved
18:55:20FromDiscord<Phil> Just give me some brain dead way to do actors
18:55:32FromDiscord<Phil> One that doesn't lead to data-races
18:55:39FromDiscord<Phil> I can't debug that shit anymore, that legit burned me out
18:55:40FromDiscord<Elegantbeef> You want to go to theatre school not programming
18:56:19FromDiscord<Elegantbeef> So stop doing it and just do the typical producer consumer
18:57:36FromDiscord<Phil> I mean, it's now been long enought that sufficient amounts of my memory were replaced with react native knowledge, but IIRC I had problems in general with getting message from A to B without data-race nor memory leak while using async scenarios
18:58:10FromDiscord<Phil> As in, scenarios where a message may create async work on another thread and I just want that thread to chunk through the async work while its waiting for the next message
18:59:25FromDiscord<Elegantbeef> Can always avoid async and just use selectors like it's the year 1803
18:59:49FromDiscord<leorize> you're on Linux, just use insideout and forget about all this async thing
19:00:50FromDiscord<Phil> In reply to @Elegantbeef "Can always avoid async": I'll eventually get around to actually dealing with selectors
19:00:55FromDiscord<Phil> But it is not this day for another year at least
19:01:14FromDiscord<Phil> It's one of those things I can feel calling to me on the horizon
19:01:27FromDiscord<Phil> I have not yet mastered the crap in front of me, so it can stay there
19:01:34FromDiscord<Phil> (edit)
19:01:49FromDiscord<Elegantbeef> Selectors are like async for the person that does not want to fight async
19:02:01FromDiscord<Elegantbeef> Though leo will say just use cps
19:02:03FromDiscord<Phil> In reply to @Elegantbeef "Selectors are like async": But I already bought the boxing gloves
19:02:31FromDiscord<Elegantbeef> Yea but you do not need much to use selectors, just add your file handles with their flags to the selector then select them when you want to give up work
19:02:52FromDiscord<Elegantbeef> Iterate the available events and process them
19:03:36FromDiscord<fabric.input_output> In reply to @isofruit "One that doesn't lead": erlang ;)
19:04:14FromDiscord<Phil> In reply to @fabric.input_output "erlang ;)": See, I hear erlang, then I get curious about writing GUI in erlang and all I get is "It's a really nice Backend language"
19:04:29FromDiscord<nervecenter> In reply to @arm_3_d "Mostly agree. I think": I maintain a 27k line Nim project, 150 files, using just Sublime. Many IDE tools are either overrated or meant for million-line projects where many devs are stepping on each other's toes or where the whole thing just can't fit in one person's head.
19:04:47FromDiscord<fabric.input_output> In reply to @isofruit "See, I hear erlang,": https://github.com/ScenicFramework/scenic
19:04:59FromDiscord<fabric.input_output> also look up liveview native
19:05:28FromDiscord<fabric.input_output> also erlang has wxwidgets
19:05:38FromDiscord<Phil> Fair shout nerve:↵To provide context for my statements: I have a ~10k LoC webdev backend that I maintain based on prologue, and I contribute(d) to a couple libs and maintain a couple small libs myself.
19:08:14FromDiscord<Robyn [She/Her]> In reply to @solitudesf "they removed bunch of": can't say i see the issue when skull have worked on squashing bugs by improving the existing code all together, and skull also prioritises continuation passing style instead of async which is nice
19:08:21FromDiscord<fabric.input_output> In reply to @isofruit "See, I hear erlang,": also "It's a really nice Backend language" does not mean anything
19:08:27FromDiscord<fabric.input_output> about frontend
19:09:29FromDiscord<Phil> In reply to @fabric.input_output "also "It's a really": What I meant by that is that when folks talk about it in GUI context's I've mostly seen them talk about using something else for frontend and rendering the colorful pixels on screen and use erlang for what those colorful pixels communicate with and that runs the business logic of the app
19:23:48FromDiscord<fabric.input_output> In reply to @isofruit "What I meant by": you use nim to do both things using owlkettle :^)
19:24:47FromDiscord<Phil> In reply to @fabric.input_output "you use nim to": I'm aware, the lack of focus on talking about erlang as a FE lang implies less developed frameworks though, which means more work for me 😄
19:25:03FromDiscord<Phil> The fact that scenic had 2k stars spells good things though
19:25:22FromDiscord<fabric.input_output> In reply to @isofruit "I'm aware, the lack": you're already doing plenty of work trying to get threading and whatever to work tho :P
19:25:51FromDiscord<Phil> Not really, as I lately haven't been doing much of anything bar doing work and surviving the temperatures
19:26:08FromDiscord<Phil> Also fixing bugs in my backend
19:26:32FromDiscord<fabric.input_output> also erlang isn't really something you should go for imo. better to use elixir, it's better in every way. it even has lisp macros. I think you might like it
19:27:14FromDiscord<Phil> Elixir I heard even less FE stuff about outside of webdev
19:27:22FromDiscord<Phil> And for webdev I already have my bespoken stack languages
19:28:26FromDiscord<fabric.input_output> webdev and phoenix are the way it's becoming popular but you can use it for any sort of backend whatever thing
19:29:22FromDiscord<fabric.input_output> elixir also works in embeded with nerves
19:29:28FromDiscord<fabric.input_output> (edit) "embeded" => "embedded"
19:29:30FromDiscord<yummy_licorice> Do sequences in nim support random access?
19:30:16FromDiscord<fabric.input_output> In reply to @yummy_licorice "Do sequences in nim": yeah. that's one of the main features
19:30:22FromDiscord<yummy_licorice> Ok ty
19:37:43*xet7 joined #nim
20:03:01FromDiscord<albassort> ok so im having an issue
20:03:11FromDiscord<albassort> i wanna read keyboard events and i want it to be platform agnostic
20:03:25FromDiscord<albassort> sent a code paste, see https://play.nim-lang.org/#pasty=LbGnlSfa
20:03:46FromDiscord<albassort> in c it would be simple, just import input.h, and the compiler constructs this for you
20:03:56FromDiscord<albassort> (edit) "you" => "you, just cast it"
20:04:24FromDiscord<albassort> but i dont think i can directly do the same compiler determined object in nim. no?
20:05:10FromDiscord<Elegantbeef> You can use `when` inside objects just fine
20:05:31FromDiscord<albassort> oh
20:05:45FromDiscord<albassort> i feel like im doing this wrong also for some reason
20:12:16FromDiscord<albassort> sent a code paste, see https://play.nim-lang.org/#pasty=CXAMOCBC
20:12:46FromDiscord<albassort> (edit) "https://play.nim-lang.org/#pasty=buiQuFQN" => "https://play.nim-lang.org/#pasty=LkrtZjdP"
20:13:53FromDiscord<Robyn [She/Her]> weird
20:14:27FromDiscord<albassort> ah the size of the typedesc is 8
20:15:11FromDiscord<albassort> wait i was reading the wrong thing lole
20:31:00*coldfeet joined #nim
20:55:28*coldfeet quit (Remote host closed the connection)
20:59:39*beholders_eye joined #nim
21:10:02*Guest17 joined #nim
21:10:19*Guest17 quit (Client Quit)
21:42:58FromDiscord<melmass> Can we "echo" from macro or debug it better somehow?
21:43:30FromDiscord<Elegantbeef> You can echo from macros
21:43:35FromDiscord<Elegantbeef> `echo myNode.treeRepr`
21:43:40FromDiscord<melmass> I'm doing a simple codegen to generate ts types from a nim backend to be used in webui but I feel a bit lost
21:44:15FromDiscord<melmass> In reply to @Elegantbeef "You can echo from": Should I pass a flag to `nimble build / nim c` I'm only seing linter messages
21:45:00FromDiscord<melmass> oh ok 🤦‍♂️
21:45:08FromDiscord<melmass> nimble build strips them
21:45:12FromDiscord<Elegantbeef> No echo will print
21:45:15FromDiscord<melmass> not `nim c`
21:46:17FromDiscord<Elegantbeef> nimble build probably does not show the compiler stdout
21:46:19FromDiscord<Elegantbeef> So what do you expect!
21:49:47FromDiscord<zumi.dxy> unless you throw `--verbose` at it
22:28:48FromDiscord<albassort> does anyone know a way to convert a keycode to a character that works for both x11 and wayland
22:29:38FromDiscord<albassort> (edit) "keycode" => "scancode"
22:45:16FromDiscord<albassort> https://github.com/omentic/nim-xkbcommon is how
23:01:14*xet7 quit (Remote host closed the connection)
23:15:33FromDiscord<__nycto__> Okay. I feel like I'm making a dumb mistake and I need another set of eyes. I'm trying to lazily calculate a value, then cache the calculated value. What am I doing wrong here? https://play.nim-lang.org/#pasty=TOeklvKD
23:16:49FromDiscord<__nycto__> (edit) "calculated value." => "result."
23:18:04FromDiscord<metagngn> that's an arc bug I'm pretty sure
23:18:09FromDiscord<metagngn> https://github.com/nim-lang/Nim/issues/17552
23:19:15FromDiscord<__nycto__> Damn -- thanks
23:19:15FromDiscord<metagngn> you can get around it by adding `{.nodestroy.}` to the proc
23:19:49FromDiscord<__nycto__> Oooooo thanks
23:22:02FromDiscord<Elegantbeef> PS you also can use `once:`