00:06:49 | FromDiscord | <sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#pasty=ubOgjIWO |
00:51:24 | FromDiscord | <demotomohiro> strtabs have a bug? |
01:01:37 | FromDiscord | <sOkam! 🫐> In reply to @demotomohiro "strtabs have a bug?": idk, to be honest. how can I figure it out? any tips? |
01:07:00 | FromDiscord | <demotomohiro> How about to find out a minimum code reproduce same error and create an issue to Nim repo. |
01:07:48 | FromDiscord | <demotomohiro> Same error happens with latest devel Nim? |
01:07:52 | FromDiscord | <sOkam! 🫐> could try with parsing just `1'f128` into a PNode 🤔 |
01:08:10 | FromDiscord | <sOkam! 🫐> In reply to @demotomohiro "Same error happens with": yes, just compiled it and it does happen the same |
01:13:33 | FromDiscord | <sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#pasty=cSzecbaP |
01:14:10 | FromDiscord | <sOkam! 🫐> something is passing a nil `t` into the `myhash` function, which has no railguards for nil cases 🤷♂️ |
01:31:26 | FromDiscord | <sOkam! 🫐> @demotomohiro found the error, actually |
01:31:55 | FromDiscord | <sOkam! 🫐> `renderer.nim` does not have a case for `nkFloat128Lit` in the `atom()` function |
01:32:51 | FromDiscord | <sOkam! 🫐> and then it passes a `g.config` that has a `nil` symbols object |
01:32:58 | FromDiscord | <sOkam! 🫐> (edit) "and then it passes a `g.config` that has a `nil` symbols object ... " added "down the error chain" |
01:34:29 | FromDiscord | <sOkam! 🫐> so, I think I found two bugs, not 1 🙈 |
01:37:03 | FromDiscord | <sOkam! 🫐> sent a code paste, see https://play.nim-lang.org/#pasty=HJSdVZvE |
01:37:10 | FromDiscord | <demotomohiro> > Error: internal error: renderer.atom nkFloat128Lit↵This error message means `renderer.atom` proc doesn't support nkFloat128Lit but we didn't aware that. |
01:37:45 | FromDiscord | <sOkam! 🫐> yeah, for sure. but the `SIGILL` after confused me a lot |
01:38:10 | FromDiscord | <sOkam! 🫐> something should define that `g.config.symbols` value if its going to error like that in renderer.atom 🤷♂️ |
01:45:49 | FromDiscord | <sOkam! 🫐> @demotomohiro oh wait, could it be that `my` compiler doesn't initalize `g.config` at parser time, so then it fails because it is assuming it would be initialized at that time _(or during one of the semantic passes)_? |
01:46:47 | FromDiscord | <sOkam! 🫐> if that's the case, it would be an error created by my parser, and not really a bug in nim 🤔 |
01:48:04 | FromDiscord | <demotomohiro> In reply to @heysokam "<@288750616510201856> oh wait, could": I don't know much about how Nim compiler works. |
01:49:17 | FromDiscord | <sOkam! 🫐> Reference of how I hook into the early compiler↵https://github.com/heysokam/slate/blob/b44df2477c0c72d3e7d6e8832d7ee2114a2b62a1/src/slate/nimc.nim#L66-L98 |
01:49:47 | FromDiscord | <sOkam! 🫐> I never figured out how to initialize those configref objects, so I sticked with this naive solution |
01:50:00 | FromDiscord | <sOkam! 🫐> (edit) "I never figured out how to initialize those configref objects, so I sticked with this naive solution ... " added "temporarily" |
02:05:22 | * | SchweinDeBurg quit (Quit: WeeChat 4.3.0-dev) |
02:24:06 | * | SEP quit (Ping timeout: 268 seconds) |
03:30:10 | FromDiscord | <classid> yo guys got some great projects to learn nim? |
03:35:19 | FromDiscord | <sOkam! 🫐> In reply to @classid "yo guys got some": projects that you will write, or projects to read? |
03:35:38 | FromDiscord | <classid> In reply to @heysokam "projects that you will": to write |
03:38:34 | * | SchweinDeBurg joined #nim |
03:39:20 | FromDiscord | <sOkam! 🫐> In reply to @classid "to write": search for `cool tiny project ideas` for C or Rust (or any other systems programming lang) and write it Nim while following the Nim syntax tutorial ✍️ |
03:40:42 | FromDiscord | <sOkam! 🫐> there is nothing specific to nim that makes it unique for writing an entry beginner project (other than the easy to learn syntax). nim is a systems lang like any other |
03:41:13 | FromDiscord | <sOkam! 🫐> any other lang ideas will work for nim just fine. google will flood you with them on a quick search |
03:52:34 | FromDiscord | <classid> oh, so is nim as low level as C? |
03:52:51 | FromDiscord | <sOkam! 🫐> yep |
03:53:05 | FromDiscord | <sOkam! 🫐> but also has all of the nice high level features of python |
03:53:50 | FromDiscord | <sOkam! 🫐> nim's stdlib is actually good (unlike python's)... and provides a LOT of high level tools (unlike C, which is all DIY) |
04:14:27 | * | beholders_eye quit (Ping timeout: 252 seconds) |
04:40:28 | FromDiscord | <maker_of_mischief> is there a way to easily play a sine wave in nim? |
04:40:45 | FromDiscord | <maker_of_mischief> like a proc where you just go play_sine(1000hz,1s) or something? |
04:43:27 | FromDiscord | <Elegantbeef> Would be easy to use sdl2 or wrap what you need from miniaudio(or other small library) |
05:19:20 | FromDiscord | <stoneface86> I would also recommend miniaudio |
05:27:05 | FromDiscord | <sOkam! 🫐> sdl is the only "easy" out of those options |
05:27:48 | FromDiscord | <sOkam! 🫐> miniaudio is good, but wrapping it and getting used to the API is not necessarily easy as calling a function like requested 🤷♂️ |
05:28:43 | FromDiscord | <sOkam! 🫐> (edit) "miniaudio is good, but wrapping it and getting used to the API is ... notas" added "definitely" | "necessarily" => "as" | "function" => "function," | "notaseasy as calling afunction,like ... requested" added "the question" |
05:28:55 | FromDiscord | <Elegantbeef> Isn't the sdl way the exact same as the miniaudio way? |
05:29:16 | FromDiscord | <sOkam! 🫐> idk sdl. but just by adding the wrapping part its gonna be harder |
05:29:17 | FromDiscord | <Elegantbeef> Both require a sample handler and to send samples afaik |
05:54:20 | FromDiscord | <basilajith> How do you connect to a Postgres instance on Amazon Aurora using Nim? |
06:10:51 | * | Jjp137 quit (Ping timeout: 260 seconds) |
06:11:43 | * | Jjp137 joined #nim |
06:11:51 | * | GreaseMonkey quit (Remote host closed the connection) |
06:12:09 | * | SchweinDeBurg quit (Read error: Connection reset by peer) |
06:12:58 | * | greaser|q joined #nim |
06:17:53 | * | SchweinDeBurg joined #nim |
06:24:42 | * | PMunch joined #nim |
06:28:20 | * | rockcavera quit (Remote host closed the connection) |
07:04:14 | * | ntat joined #nim |
07:10:24 | FromDiscord | <madonuko> I kinda need help https://media.discordapp.net/attachments/371759389889003532/1243098690705559604/gGrc1zo.png?ex=66503d5f&is=664eebdf&hm=b4ea12f02b5d67e957210ad68886dd458d93e152900fc6f63f8acda74dc97cdd& |
07:10:35 | FromDiscord | <madonuko> I think I ICEd nim |
07:10:41 | FromDiscord | <Elegantbeef> You did |
07:10:44 | FromDiscord | <madonuko> I know |
07:10:59 | FromDiscord | <Elegantbeef> `semMagic` means you have some usage of a magic incorrectly |
07:11:54 | FromDiscord | <madonuko> sent a code paste, see https://play.nim-lang.org/#pasty=NBJBvMYr |
07:12:09 | FromDiscord | <madonuko> so the magic comes from std |
07:14:48 | FromDiscord | <madonuko> what should I do |
07:15:22 | FromDiscord | <Elegantbeef> You can either use a debug compiler to find the issue |
07:15:29 | FromDiscord | <Elegantbeef> Or just make a min repro |
07:16:18 | FromDiscord | <madonuko> I have basically like |
07:16:25 | FromDiscord | <madonuko> limited the issue by commenting out the code |
07:16:31 | FromDiscord | <madonuko> it's from the `fungus` package |
07:16:37 | FromDiscord | <madonuko> not std |
07:16:39 | FromDiscord | <madonuko> I was wrong |
07:17:14 | FromDiscord | <Elegantbeef> Damn fungus getting in everything |
07:20:17 | FromDiscord | <Elegantbeef> Well if you can give me a minrepro I'll certainly check it out due to not wanting to be the culprit of a ICE 😄 |
07:21:26 | FromDiscord | <madonuko> lol |
07:21:39 | FromDiscord | <madonuko> I'm still commenting code |
07:22:00 | FromDiscord | <madonuko> I've made it into a file and it's 400 lines of code from fungus + my code |
07:23:20 | FromDiscord | <madonuko> ok it's 100 now |
07:27:46 | FromDiscord | <madonuko> sent a long message, see https://pasty.ee/JmqeItap |
07:28:12 | FromDiscord | <Elegantbeef> I mean I'm the author of those packages 😄 |
07:31:25 | FromDiscord | <madonuko> never noticed tbh |
07:36:12 | FromDiscord | <Elegantbeef> Ah it's the `distinctBase` inside `AdtChild` |
07:38:07 | FromDiscord | <Elegantbeef> For some reason the `$` is being invoked for `10 is int` |
07:38:32 | FromDiscord | <madonuko> no it's invoked for check |
07:38:35 | FromDiscord | <madonuko> I think |
07:38:50 | FromDiscord | <Elegantbeef> Which it should not be |
07:38:58 | FromDiscord | <Elegantbeef> Which means the compiler is being funny |
07:40:51 | FromDiscord | <Elegantbeef> I have a fix for it, give me a moment |
07:41:51 | FromDiscord | <Robyn [She/Her]> Damn, wanted to see if I could of made something like Fungus but with a way closer to how Rust can define enums |
07:42:01 | FromDiscord | <Robyn [She/Her]> Turns out I can't, but Fungus is pretty damn good |
07:42:44 | FromDiscord | <Elegantbeef> Yea but metagn wins the better implementation inside their skinsuit |
07:42:46 | FromDiscord | <madonuko> https://github.com/nim-lang/Nim/blob/version-2-0/lib/pure/unittest.nim#L690-L691 |
07:42:55 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "Yea but metagn wins": Metagn? |
07:43:06 | FromDiscord | <madonuko> well I'm just purely guessing but I think `check` as a macro does invoke `$` |
07:43:07 | FromDiscord | <Elegantbeef> That's their name |
07:43:08 | FromDiscord | <madonuko> a lot |
07:43:43 | FromDiscord | <Elegantbeef> Yea I found the issue |
07:43:53 | FromDiscord | <Elegantbeef> Inside `distinctBase(T)` there is an optional parameter |
07:44:04 | FromDiscord | <Elegantbeef> For some reason it's not getting properly compiled and erroring |
07:44:16 | FromDiscord | <madonuko> wtf (?) |
07:44:36 | FromDiscord | <Elegantbeef> It makes sense if you understand how funny the Nim compiler can be |
07:44:56 | FromDiscord | <madonuko> In reply to @chronos.vitaqua "Turns out I can't,": everytime I want to include something into like my collection of syntactic sugar stuff, I find someone who made it already (`questionable` and idk) |
07:44:59 | FromDiscord | <xkonti> sent a code paste, see https://play.nim-lang.org/#pasty=XyEgeMkR |
07:45:05 | FromDiscord | <Elegantbeef> Yes |
07:45:33 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#pasty=WPUlkOGo |
07:45:39 | FromDiscord | <Elegantbeef> But that will not be verbatim |
07:46:24 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#pasty=YbgxZMxL |
07:46:40 | FromDiscord | <madonuko> something something dedent? |
07:46:45 | FromDiscord | <madonuko> (edit) "dedent?" => "`strutils.dedent`?" |
07:47:11 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "That's their name": What's metagn tho |
07:47:20 | FromDiscord | <Elegantbeef> A person? |
07:48:23 | FromDiscord | <Robyn [She/Her]> Oooh, I was confused |
07:48:42 | FromDiscord | <Elegantbeef> You don't say |
07:49:11 | FromDiscord | <madonuko> uhhh what https://media.discordapp.net/attachments/371759389889003532/1243108451417198714/image.png?ex=66504676&is=664ef4f6&hm=16a6ffeea2ceb15440c4cacaf75217691e50ead1411f7c37ad9ba3a99288f48d& |
07:49:18 | FromDiscord | <madonuko> can't search metagn |
07:49:22 | FromDiscord | <madonuko> ?? |
07:49:24 | FromDiscord | <Robyn [She/Her]> I prefer Fungus' syntax tbh, but Skinsuit is pretty alright |
07:49:33 | FromDiscord | <Robyn [She/Her]> In reply to @madonuko "can't search metagn": https://github.com/metagn/skinsuit |
07:49:37 | FromDiscord | <Elegantbeef> Skinsuit is better cause it enables sub unions of the fields |
07:50:06 | FromDiscord | <Elegantbeef> Plus it does not require the silly DSL |
07:50:13 | FromDiscord | <pmunch> In reply to @xkonti "Is it possible to": This sounds like a bad idea.. |
07:50:34 | FromDiscord | <Elegantbeef> Well I thought I had a fix for this fungus issue, but the compiler is being a prick |
07:51:07 | FromDiscord | <Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=rQdnhvIQ |
07:53:17 | * | SchweinDeBurg quit (Read error: Connection reset by peer) |
07:53:29 | FromDiscord | <Elegantbeef> Respectfully, what |
07:53:30 | FromDiscord | <Elegantbeef> You named it an `enum` first off |
07:53:30 | FromDiscord | <Elegantbeef> Which I hate you for |
07:53:31 | FromDiscord | <Elegantbeef> Then you introduced this weird syntax where you can use call notation to give a type to a enum branch, but that means you have no field accessor there |
07:53:32 | FromDiscord | <Elegantbeef> So how would one extract the data? |
07:53:56 | FromDiscord | <madonuko> let statements…? |
07:54:06 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "Which I hate you": :) |
07:54:07 | FromDiscord | <madonuko> ~~the rust way~~ |
07:54:46 | FromDiscord | <Elegantbeef> Sure but what about `Meb(a: int)`? |
07:55:05 | FromDiscord | <Elegantbeef> Why does that have a name but `Meb(B)` does not |
07:55:09 | FromDiscord | <Elegantbeef> What's the name of the field |
07:55:10 | FromDiscord | <madonuko> isn't that the same as `MyEnum[_, int]` |
07:55:27 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "Then you introduced this": That's how Rust does it :P↵And you'd use `get` |
07:55:32 | FromDiscord | <madonuko> oh… |
07:55:35 | FromDiscord | <madonuko> that's what you mean… |
07:55:42 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "Sure but what about": That also works |
07:55:55 | FromDiscord | <Elegantbeef> I honestly dislike the unnamed field that fungus supports |
07:56:03 | FromDiscord | <madonuko> so beef is saying it should be a nested struct |
07:56:47 | FromDiscord | <madonuko> what https://media.discordapp.net/attachments/371759389889003532/1243110361847169075/image.png?ex=6650483e&is=664ef6be&hm=dab910d4c8c3342abd65b211ef3f4bb24f895c3cb24f61441d6de57d1d643d1c& |
07:57:17 | FromDiscord | <madonuko> am I not understanding this correctly |
07:57:21 | FromDiscord | <Elegantbeef> Fungus does support that style syntax but I do think it's bleh |
07:57:26 | FromDiscord | <Elegantbeef> But it's of course an object cause why would it be `enum` |
07:57:37 | FromDiscord | <Elegantbeef> finally cannot have a value |
07:57:38 | FromDiscord | <Elegantbeef> except can |
07:57:50 | FromDiscord | <madonuko> oh right |
07:57:50 | FromDiscord | <Elegantbeef> finally runs code after the except handlers are done |
07:57:54 | FromDiscord | <madonuko> what the hell was I writing |
07:59:14 | * | SchweinDeBurg joined #nim |
07:59:20 | * | fallback quit (Ping timeout: 260 seconds) |
07:59:40 | * | ntat quit (Quit: Leaving) |
08:00:23 | FromDiscord | <Elegantbeef> So presently I think that `unittest.check` incorrectly binds `$` which is causing this issue |
08:00:24 | FromDiscord | <Elegantbeef> But I'm quite tired so who knows |
08:02:27 | FromDiscord | <madonuko> sent a code paste, see https://play.nim-lang.org/#pasty=pgGEgiTc |
08:02:41 | FromDiscord | <madonuko> or should I call it something else |
08:03:10 | FromDiscord | <madonuko> (P.S. equivalent to `fmt"{text:<10}"`) |
08:05:31 | FromDiscord | <Elegantbeef> Eh fixed the issue with fungus by fixing the compiler |
08:06:20 | FromDiscord | <madonuko> LMAO |
08:08:17 | FromDiscord | <Robyn [She/Her]> Hm |
08:08:38 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "Eh fixed the issue": PR time? |
08:09:49 | * | fallback joined #nim |
08:10:06 | FromDiscord | <madonuko> probably |
08:14:25 | FromDiscord | <Elegantbeef> Yea it was https://github.com/nim-lang/Nim/pull/23640 |
08:14:29 | FromDiscord | <Elegantbeef> The silliest PR |
08:19:33 | * | krux02 joined #nim |
08:24:02 | FromDiscord | <madonuko> so… apparently no one tried to import fungus inside a unittest |
08:24:05 | FromDiscord | <madonuko> (edit) "unittest" => "unit test" |
09:47:52 | * | attah_ joined #nim |
09:48:29 | * | attah quit (Ping timeout: 256 seconds) |
09:48:30 | * | attah_ is now known as attah |
09:57:39 | * | attah quit (Ping timeout: 252 seconds) |
09:58:08 | * | attah joined #nim |
11:47:35 | * | Gliptic joined #nim |
11:52:17 | * | def- quit (Quit: -) |
11:52:42 | * | def- joined #nim |
12:06:09 | * | beholders_eye joined #nim |
12:42:27 | * | beholders_eye quit (Read error: Connection reset by peer) |
12:48:03 | * | beholders_eye joined #nim |
12:48:08 | * | attah quit (Ping timeout: 256 seconds) |
12:48:11 | * | attah_ joined #nim |
12:52:42 | * | attah_ quit (Ping timeout: 256 seconds) |
12:52:53 | * | attah joined #nim |
13:02:43 | * | lucasta joined #nim |
13:42:34 | * | beholders_eye quit (Ping timeout: 256 seconds) |
13:42:39 | * | coldfeet joined #nim |
13:46:58 | * | coldfeet quit (Remote host closed the connection) |
13:51:12 | * | def- quit (Quit: -) |
13:51:38 | * | def- joined #nim |
14:10:16 | * | rockcavera joined #nim |
14:19:49 | * | PMunch quit (Quit: Leaving) |
14:54:58 | * | krux02 quit (Remote host closed the connection) |
15:17:40 | * | lucasta quit (Quit: Leaving) |
15:22:58 | * | SEP joined #nim |
15:41:57 | FromDiscord | <nocturn9x> quick question |
15:42:01 | FromDiscord | <nocturn9x> how would I use bitfields in nim |
15:42:14 | FromDiscord | <nocturn9x> say I have two uint8s that I know fit into 6 bits |
15:42:44 | FromDiscord | <polylokh_39446> <https://nim-lang.org/docs/manual.html#implementation-specific-pragmas-bitsize-pragma> |
15:44:38 | FromDiscord | <nocturn9x> thx :)ù |
15:44:40 | FromDiscord | <nocturn9x> (edit) ":)ù" => ":)" |
15:45:19 | * | def- quit (Quit: -) |
15:45:35 | * | def- joined #nim |
16:14:29 | * | ntat joined #nim |
16:22:06 | * | beholders_eye joined #nim |
16:35:43 | * | beholders_eye quit (Ping timeout: 268 seconds) |
17:00:09 | * | beholders_eye joined #nim |
17:27:48 | * | SchweinDeBurg quit (Quit: WeeChat 4.3.0-dev) |
17:34:18 | FromDiscord | <absenth> In Nim, if I have an array with 2 billion strings in it. Is it possible to make it so when I `echo MyArray` each item is printed on a new line without using a loop? I tried adding `' |
17:34:31 | FromDiscord | <absenth> (edit) "`'" => "`\n ` to each string, but it just printed the `\n`" |
17:36:54 | FromDiscord | <that_dude.> You could probably use join or $, but I bet that allocates a new string. What's wrong with a loop? Could you just move it to a different function to hide it? |
17:38:18 | FromDiscord | <absenth> The use case is ultimately trying to minimize the number of calls to std.out. Taking the same code that echoed each of 2 billion lines as they were generated, and instead putting the values into the array, and then printing the array once results in pretty massive performance improvements.... 1190ms vs 86.5ms |
17:39:10 | FromDiscord | <odexine> echo flushes every time it is called, its prolly quicker to `stdout.write(string & '\n')` then flush at the end |
17:39:28 | FromDiscord | <absenth> https://github.com/absenth/stream-projects/tree/main/Archive/fizzbuzz/nim -- if you grab and build the /std and /array versions↵and benchmark with hyperfine (or run like `time fizzbuzz > /dev/null`) |
17:39:34 | FromDiscord | <odexine> In reply to @odexine "echo flushes every time": (of course, optimisation if you dont concat, i meant that as an idea) |
17:40:39 | FromDiscord | <absenth> I did a similar optimization with my solution in Golang, which went from 911ms down to 168ms using an array and one call to std.out. |
17:41:08 | FromDiscord | <absenth> I admit all of this started when I found out python buffers writes by default. |
17:41:44 | FromDiscord | <absenth> I couldn't understand why Python was completing in almost half the time the nieve go implementation was. |
17:41:57 | FromDiscord | <absenth> that sent me down a hell of a rabbit hole 🙂 |
17:59:32 | FromDiscord | <polylokh_39446> yep, I/O syscalls themselves are slow, so using them economically helps a lot. |
18:00:49 | FromDiscord | <polylokh_39446> there was a Forth implementation of 'wc' that was comically slow because it read each byte in individually. Something an old Forth programmer might easily not think of, not thinking of having to go through an OS at all. |
18:01:15 | FromDiscord | <polylokh_39446> you can try that as well by contrast: deliberately pessimize your code and do per-byte I/O |
18:03:30 | FromDiscord | <absenth> Similarly, it turns out your choice in terminal emulator can also have a big impact on how things run, or appear to run.↵on a Mac, iterm2 is the second slowest terminal I've seen (behind the terminal embedded in Jetbrains IDEs..... Fleet excluded...) |
18:04:23 | FromDiscord | <absenth> I run a lot of Terraform and Ansible for work, and those spit a TON of text to the screen. Turns out a faster terminal emulator actually feels better to use, which if you had told me I'd care even 5 years ago I might have laughed at you 🙂 |
18:06:48 | FromDiscord | <polylokh_39446> I got laughed at just recently for trying to tell someone that terminals are slow. |
18:09:04 | FromDiscord | <polylokh_39446> sent a long message, see https://pasty.ee/eXKmtMlo |
18:10:30 | FromDiscord | <nervecenter> If you're just file reading and the files aren't unreasonably large, Nim makes it easy to just read all the bytes into memory and operate on them as a string |
18:10:44 | FromDiscord | <nervecenter> Dunno if that even applies |
18:11:31 | FromDiscord | <polylokh_39446> and cligen has some good code operate on memory-mapped files |
18:12:14 | * | ntat quit (Quit: Leaving) |
19:04:43 | * | def- quit (Quit: -) |
19:05:00 | * | def- joined #nim |
19:38:02 | NimEventer | New thread by argl: Which IDE to use in 2024?, see https://forum.nim-lang.org/t/11637 |
19:44:11 | FromDiscord | <michaelb.eth> In reply to @absenth "I run a lot": kitty 🐱 for the win! |
19:44:35 | FromDiscord | <absenth> I haven't tested Kitty if I'm honest. |
19:45:34 | FromDiscord | <absenth> sent a code paste, see https://play.nim-lang.org/#pasty=pkaavLvy |
19:45:46 | FromDiscord | <michaelb.eth> I like it, and it’s extremely, but there are other good options, whatever terminal emulator works best for you and your workflow is usually the nest choice |
19:45:48 | FromDiscord | <absenth> I imagine Kitty is on par with Alacritty/Wezterm |
19:45:58 | FromDiscord | <michaelb.eth> extremely fast |
19:46:03 | FromDiscord | <polylokh_39446> how does <https://github.com/Swordfish90/cool-retro-term> do? |
19:46:50 | FromDiscord | <absenth> @polylokh_39446 I did share my git repo above. (those numbers were on an M2 Pro Macbook Pro) running the Golang/Array solution. |
19:46:51 | FromDiscord | <polylokh_39446> where optimization might not be the goal: <https://github.com/Swordfish90/cool-retro-term/issues/153> |
19:46:57 | FromDiscord | <michaelb.eth> In reply to @polylokh_39446 "how does <https://github.com/Swordfish90/cool-retro": lol, probably not very well |
19:47:11 | FromDiscord | <polylokh_39446> ah I see, the fizzbuzz repo |
19:47:26 | FromDiscord | <absenth> the sad realization was iterm2. Think about how many people use iterm2. |
19:47:38 | FromDiscord | <absenth> terminal.app doesn't support 256 color, so I get moving away from that. |
19:47:41 | FromDiscord | <absenth> but holy crap is iterm slow. |
19:48:09 | FromDiscord | <michaelb.eth> I used iTerm2 for many years, then tried Kitty and after a few days never looked back |
19:48:32 | FromDiscord | <absenth> https://media.discordapp.net/attachments/371759389889003532/1243289482237706391/four-terminals.png?ex=6650ef0f&is=664f9d8f&hm=0298a252d491616ee1ef90e4fd7206d390055e3396f54407e54eb85bf7f8faeb& |
19:48:40 | FromDiscord | <michaelb.eth> but tbf I never spent much time with WezTerm, Alacritty, et al. |
19:48:57 | FromDiscord | <absenth> I honestly think the answer is find something that works and stop messing with it 🙂 |
19:49:09 | FromDiscord | <absenth> I was a Roxterm user for a long time on linux. |
19:49:57 | FromDiscord | <absenth> Kitty, and honestly Ghostty both make me angry as they requires me to `$ infocmp -x | ssh user@server -- tic -x -` in a lot of cases. |
19:50:20 | FromDiscord | <michaelb.eth> there’s any automatic kitten for that |
19:50:27 | FromDiscord | <michaelb.eth> (edit) "any" => "an" |
19:50:29 | FromDiscord | <absenth> on OSX alacritty doesn't get most of the window components (like resizable window frames etc.). Which is why I landed on wezterm. |
19:50:41 | FromDiscord | <absenth> it was low friction, fast, and largely just worked. |
19:51:08 | FromDiscord | <absenth> only reason I started using Ghostty was because I got an invite to the private beta, when they found out I spend like 10h every day looking at terminals. 🙂 |
19:52:35 | FromDiscord | <michaelb.eth> https://sw.kovidgoyal.net/kitty/faq/#i-get-errors-about-the-terminal-being-unknown-or-opening-the-terminal-failing-or-functional-keys-like-arrow-keys-don-t-work↵↵https://sw.kovidgoyal.net/kitty/kittens/ssh/ |
19:52:35 | FromDiscord | <absenth> I really need to spend a bunch more time learning to use Nim. I'm pretty sure I'm doing most of it wrong. 🙂 |
19:53:14 | FromDiscord | <absenth> I'll for sure give kitty another look. |
19:58:45 | FromDiscord | <threefour> Ah, been using Alacritty for the last 4 or so years. Was gonna recommend that. Looks like you crossed it out though. |
19:59:21 | FromDiscord | <absenth> Alacritty is great, just not so much on osx. 🙂 |
20:01:04 | FromDiscord | <threefour> Fair. I didn't know it had issues on there. |
20:01:59 | FromDiscord | <leorize> there's also wezterm that run on osx |
20:02:15 | FromDiscord | <absenth> Wezterm is what I was using prior to the Ghostty invite |
20:02:29 | FromDiscord | <absenth> I still have it installed, and honestly still think I prefer it. |
20:26:12 | * | def- quit (Quit: -) |
20:44:48 | * | def- joined #nim |
20:50:36 | * | def- quit (Quit: -) |
20:50:58 | * | def- joined #nim |
21:38:04 | * | krux02 joined #nim |
21:44:45 | * | krux02_ joined #nim |
21:47:17 | * | krux02 quit (Ping timeout: 240 seconds) |
22:03:10 | * | cnx quit (Ping timeout: 268 seconds) |
22:10:22 | FromDiscord | <Robyn [She/Her]> Hey Beef, when Funus says it supports a subset of generics, what does that mean exactly? No` T: object`? |
22:10:57 | FromDiscord | <Elegantbeef> It means it supports what it says it supports and going outside of that may invite dragons |
22:14:50 | FromDiscord | <Robyn [She/Her]> Fair enough |
22:15:22 | * | cnx joined #nim |
22:17:11 | FromDiscord | <juancarlospaco> Respect the fungus, see what happened on The last of us... |
22:31:14 | FromDiscord | <Robyn [She/Her]> Does Nim still have case statement macros? I just saw https://github.com/chocobo333/AlgebraicDataTypes/?tab=readme-ov-file#pattern-mathing and it looked neat |
22:31:26 | FromDiscord | <Elegantbeef> Yes it does |
22:31:39 | FromDiscord | <Elegantbeef> I personally dislike them |
22:31:45 | FromDiscord | <Robyn [She/Her]> Hm, might see if I can hack up something for fungus :p |
22:31:54 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "I personally dislike them": Oh? Why? |
22:32:12 | FromDiscord | <Elegantbeef> It overloads `case` which is used in multiple places and is not compatible |
22:32:21 | FromDiscord | <Elegantbeef> I mean you can just change `match` slightly and get it working with fungus |
22:32:30 | FromDiscord | <Robyn [She/Her]> I'd probably prefer a `match a ... of A: ... of B: ...` statement or so but I don't understand how that works |
22:32:46 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "I mean you can": I was looking at that but macro magic still goes over my head |
22:32:49 | FromDiscord | <albassort> when handling postgres: is it faster to create bulk insert statements then send them over or is it equally fast to just send them INSERT by INSERT |
22:33:01 | FromDiscord | <Elegantbeef> Prefer what robyn? |
22:33:12 | FromDiscord | <albassort> I assume the only speed benefit is sending less bytes because you're sending less of the bytes that make up INSERT |
22:34:51 | FromDiscord | <Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=fCCObUuM |
22:35:04 | FromDiscord | <Elegantbeef> Bleh |
22:35:42 | FromDiscord | <Robyn [She/Her]> ✨ |
22:46:27 | FromDiscord | <Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=HVpYJMiK |
22:48:30 | FromDiscord | <Robyn [She/Her]> Question is now... Do I wanna change my code to use `fungus`' macros for AST stuff? Hm |
22:48:59 | FromDiscord | <Elegantbeef> If you want to depend on a macro for very little benefit |
22:49:35 | FromDiscord | <Robyn [She/Her]> I like how it looks :> |
22:50:27 | FromDiscord | <Robyn [She/Her]> Also I have a lot of names shared between variants and currently prefix it with the enum value's initials |
22:50:56 | FromDiscord | <Robyn [She/Her]> `name` field for an `EnumField` is `efName`, for a `StructField` it's `sfField`, etc |
22:51:10 | FromDiscord | <Elegantbeef> Have fun then |
22:51:20 | FromDiscord | <Robyn [She/Her]> Thank you :) |
22:52:14 | FromDiscord | <Robyn [She/Her]> Oh |
22:52:28 | FromDiscord | <Robyn [She/Her]> Issue |
22:53:15 | FromDiscord | <Robyn [She/Her]> I have type definitions in one block defined like this https://paste.ecorous.org/ulujedajoj.pl |
22:53:58 | FromDiscord | <Robyn [She/Her]> Doesn't seem like I can do this with `adtEnum` currently so I'm gonna have to hack it a bit... Painful but oh well |
22:54:19 | FromDiscord | <Elegantbeef> Welcome to why skinsuit is better |
22:54:56 | FromDiscord | <Robyn [She/Her]> I just don't like having to do `_: T` |
22:58:48 | FromDiscord | <Robyn [She/Her]> sent a code paste, see https://play.nim-lang.org/#pasty=MPcdRboN |
22:59:44 | FromDiscord | <Robyn [She/Her]> Error is `/tmp/test.nim(2, 9) Error: expression expected, but found '='` (also gives a warning about spacing but that's irrelevant |