<< 18-08-2025 >>

01:16:44*skippy8 quit (Quit: WeeChat 4.6.3)
01:39:54*tiorock joined #nim
01:39:54*rockcavera is now known as Guest8324
01:39:54*Guest8324 quit (Killed (platinum.libera.chat (Nickname regained by services)))
01:39:54*tiorock is now known as rockcavera
01:42:02*tiorock joined #nim
01:42:02*tiorock quit (Changing host)
01:42:02*tiorock joined #nim
01:42:02*rockcavera is now known as Guest6030
01:42:02*tiorock is now known as rockcavera
01:45:05*Guest6030 quit (Ping timeout: 272 seconds)
01:55:53FromDiscord<thearchivalone> Is Zigcc a good compromise there?
01:56:42FromDiscord<thearchivalone> I don't know if I'll spend time with the language but the compiler is portable (which would help with building tools for my current project)
02:08:02FromDiscord<Robyn [She/Her]> Wdym by this? Can you elaborate?↵(@thearchivalone)
02:10:54FromDiscord<thearchivalone> I'm trying to decide about adding the zig compiler to my nim build chain. It's substantially smaller than Clang and after seeing @heysokam use it with it his tool, it got me thinking
02:14:50*rockcavera quit (Remote host closed the connection)
02:35:56FromDiscord<Robyn [She/Her]> Ahh you had no context so I thought you meant NimYeah, go for it, ZigCC makes crosscompiling so easy↵(@thearchivalone)
02:56:47FromDiscord<that_dude.> In reply to @captainbuckkets "Is NIM currently usable": Doing that right now via emscripten.
03:59:54*buho joined #nim
04:00:55*buho quit (Remote host closed the connection)
05:33:49*buho joined #nim
05:37:15*derpydoo joined #nim
05:54:43FromDiscord<ayex> emscripten is one way, iirc nlvm is another one.
06:11:58FromDiscord<heysokam> In reply to @bugcrowd_tao "I'm trying to decide": Use the`zigcc` if you want to do this https://github.com/enthus1ast/zigcc
06:12:11FromDiscord<heysokam> Also, I don't know why it would be a "compromise"
06:12:33FromDiscord<heysokam> ZigCC is just a self-contained clang wrapper
06:12:58FromDiscord<heysokam> that has cross-compilation and sanitization already setup as default
06:31:48*skippy8 joined #nim
06:33:56*skippy8 quit (Client Quit)
06:34:29*skippy8 joined #nim
06:34:54*skippy8 quit (Client Quit)
06:35:56*skippy8 joined #nim
06:36:54*skippy8 quit (Client Quit)
06:37:19*skippy8 joined #nim
06:41:54*skippy8 quit (Client Quit)
06:42:21*skippy8 joined #nim
06:42:37*skippy8 quit (Client Quit)
06:47:45*skippy8 joined #nim
06:48:06*skippy8 quit (Client Quit)
06:50:21*skippy8 joined #nim
06:50:24*skippy8 quit (Client Quit)
06:55:19*skippy8 joined #nim
06:55:24*skippy8 quit (Client Quit)
06:56:29*jjido joined #nim
06:58:50*skippy8 joined #nim
06:59:40*skippy8 quit (Client Quit)
07:00:09*skippy8 joined #nim
07:00:09*skippy8 quit (Client Quit)
07:05:05*skippy8 joined #nim
07:05:08*skippy8 quit (Client Quit)
07:07:47*skippy8 joined #nim
07:10:34FromDiscord<janakali> In reply to @heysokam "that has cross-compilation and": I believe, ubsan conflicts with some Nim code. I remember having to disable it when using zigcc. Clang has it off by default, so I think it's fine.
07:12:35FromDiscord<heysokam> In reply to @janakali "I believe, ubsan conflicts": I use it all the time with ubsan active, and it doesn't trigger it at all 🤔
07:12:44*nils` quit (Ping timeout: 252 seconds)
07:14:13*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
07:16:02*derpydoo quit (Ping timeout: 244 seconds)
07:24:39FromDiscord<albassort> ウバさん
07:34:44FromDiscord<that_dude.> The more I try to use multithreading stuff, the more it shifts me to using the bulit in threading options instead of other libraries. Malebolia requires isolated procs and threading/RwLocks seem to disallow initing in ref objects due to `=sink` being disabled. Back to createThread and std/locks I go ig
07:40:01*buho quit (Ping timeout: 250 seconds)
07:40:02FromDiscord<albassort> In reply to @that_dude. "The more I try": Yes
07:40:40FromDiscord<albassort> People suggest the external libraries and, no offence intended, but for any serious situation they're too constrained and oftentimes buggy
07:41:09FromDiscord<albassort> std/locks and createThread with createShared is going to be the smoothest and most straightforward way even if its sometimes not as nice as Python
07:41:48FromDiscord<that_dude.> I bet its still going to be nicer than the ref/ptr hacking I've been doing trying to get the current options to work lol
07:42:05FromDiscord<pmunch> Hmm, what's the best way to wrap a `static const` in Nim?
07:42:19FromDiscord<albassort> hmm
07:42:22FromDiscord<albassort> enum
07:43:08FromDiscord<albassort> In reply to @that_dude. "I bet its still": be sure to compile with -d:useMalloc
07:43:21*buho joined #nim
07:44:52FromDiscord<that_dude.> In reply to @albassort "be sure to compile": Will do
07:45:00FromDiscord<albassort> it cause less issues on average
07:49:47*jjido joined #nim
07:54:48FromDiscord<janakali> In reply to @heysokam "I use it all": here is ubsan triggering on zippy code (zippy works fine and extracts everything without issues when ubsan is disabled): https://media.discordapp.net/attachments/371759389889003532/1406909182866624593/2025-08-18-154709_786x383_scrot.png?ex=68a42dc8&is=68a2dc48&hm=2edf3b0a2362f3c9daf1fb3c1ec050c6f9875f5445747694ade2a44c0433ca30&
07:56:44FromDiscord<janakali> Love the concise error message
08:00:39FromDiscord<heysokam> In reply to @janakali "here is ubsan triggering": good to know ✍️
08:02:01FromDiscord<heysokam> In reply to @janakali "Love the concise error": yea, the error is hidden behind their void trap↵you need to add `fno-sanitize-trap=all` and `-lubsan` to see the error behind it
08:06:14FromDiscord<heysokam> its worth reporting to both zippy and the compiler. UB shouldn't exist
08:06:57FromDiscord<heysokam> "meh, cant use zigcc" is not a good response, imo 🤷‍♂️↵it works well for everything else I tried
08:07:06FromDiscord<heysokam> (edit) "response," => "response to finding UB,"
08:15:07FromDiscord<pmunch> In reply to @albassort "enum": Why would it be an enum?
08:15:43FromDiscord<albassort> In reply to @pmunch "Why would it be": ususally static consts re consts that can be become enums
08:18:21FromDiscord<albassort> sent a code paste, see https://play.nim-lang.org/#pasty=HWxcEJRw
08:18:27FromDiscord<albassort> @pmunch
08:18:46FromDiscord<albassort> (edit) "https://play.nim-lang.org/#pasty=inWcBlOb" => "https://play.nim-lang.org/#pasty=YvVOEGuz"
08:19:05FromDiscord<albassort> (edit) "https://play.nim-lang.org/#pasty=aSRJGTHF" => "https://play.nim-lang.org/#pasty=SgEGBcFL"
08:19:13FromDiscord<albassort> (edit) "https://paste.rs/pMxhD" => "https://play.nim-lang.org/#pasty=aRjxbdEa"
08:20:24FromDiscord<albassort> that way you cant modify the global variable... ig you can change the ptr... maybe this wont work
08:21:00FromDiscord<albassort> no that doesn't work
08:21:11*buho quit (Remote host closed the connection)
08:21:18FromDiscord<albassort> lets see
08:22:37*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
08:24:44FromDiscord<albassort> maybe an init function
08:24:46FromDiscord<albassort> (edit) "function" => "function?"
08:30:12*beholders_eye joined #nim
08:30:43*jjido joined #nim
08:38:58*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
09:02:29*nils` joined #nim
09:17:23*mahlon quit (Ping timeout: 252 seconds)
09:23:49FromDiscord<blashyrk> In reply to @pmunch "Hmm, what's the best": Why not just importc it?↵https://play.nim-lang.org/#pasty=OXsZOVEg
09:34:15*jjido joined #nim
09:41:14*xtr00 quit (Ping timeout: 245 seconds)
09:42:12*xtr00 joined #nim
10:19:14*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
10:22:15*jjido joined #nim
10:29:15*skippy8 quit (Quit: WeeChat 4.6.3)
10:46:13*skippy8 joined #nim
10:53:45*mahlon joined #nim
10:59:25*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
11:00:19*skippy8 quit (Quit: WeeChat 4.6.3)
11:00:20*jjido joined #nim
11:19:00FromDiscord<pmunch> @blashyrk well it's for Futhark and it's not always given than you'll have the header available during compilation..
11:19:38*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
11:45:51*skippy8 joined #nim
12:15:51*nils` quit (Ping timeout: 252 seconds)
12:29:58*xet7 joined #nim
14:13:26*jjido joined #nim
14:32:32*skippy8 quit (Quit: WeeChat 4.7.0)
14:33:02*skippy8 joined #nim
14:33:16*skippy8 quit (Client Quit)
14:36:26*skippy8 joined #nim
14:37:05*skippy8 quit (Client Quit)
14:37:38*skippy8 joined #nim
14:41:15*skippy8 quit (Client Quit)
14:41:42*skippy8 joined #nim
14:44:05*skippy8 quit (Client Quit)
14:44:33*skippy8 joined #nim
14:46:54*skippy8 quit (Client Quit)
14:47:27*skippy8 joined #nim
15:40:38*nils` joined #nim
15:41:49*skippy8 quit (Quit: WeeChat 4.7.0)
16:44:32*amadaluzia joined #nim
16:58:36FromDiscord<aintea> Huh
16:58:53FromDiscord<aintea> Guess who has a segfault in debug and release mode but not in danger mode
16:59:00FromDiscord<aintea> new feature: my library only works in danger mode
17:00:11*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
17:01:48FromDiscord<Elegantbeef> Ah nice UB you got there, time to go run some sanitizers
17:02:14FromDiscord<aintea> time to learn how to use GDB
17:02:32FromDiscord<aintea> because echo statements tell me that the bug is somewhere else that the runtime tells me
17:04:26FromDiscord<aintea> I just wanted to make my ternary operator lazy
17:05:38FromDiscord<thearchivalone> I have zigcc working correctly with my current build chain system. Took a bit of debugging and trial and error but its caching capabilities should go far for my project. Thanks for the encouragement, y'all
17:22:55FromDiscord<aintea> sent a code paste, see https://play.nim-lang.org/#pasty=ptjTIGbP
17:23:21FromDiscord<aintea> for some reason nim is priorising a template I called `.` over the `.` notation to access object fields
17:25:25FromDiscord<Elegantbeef> `a.b` will always prioritize a field
17:25:53FromDiscord<aintea> I guess not
17:26:05FromDiscord<aintea> When I rename my template the error goes away
17:26:43FromDiscord<aintea> And the compiler pinpoints the error exactly where I make my field call, expanding the template it should not call
17:57:45*jjido joined #nim
18:04:52*beholders_eye quit (Ping timeout: 255 seconds)
18:06:41*beholders_eye joined #nim
18:15:59*noeontheend quit (Server closed connection)
18:16:08*noeontheend joined #nim
18:21:04*beholders_eye quit (Ping timeout: 255 seconds)
18:30:09FromDiscord<ollicron_53732> https://media.discordapp.net/attachments/371759389889003532/1407069069382778902/a3g1gm.png?ex=68a4c2b0&is=68a37130&hm=6243fd74140806138b527c5fc6dde90b9c5137b457718714d496bffe2d498ce8&
19:04:24*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
19:04:27FromDiscord<albassort> In reply to @aintea "new feature: my library": i have been there before
19:04:50FromDiscord<albassort> In reply to @ollicron_53732 "": its like saying "shoot my self with a shotgun, drink water"
19:05:57FromDiscord<albassort> i mean, make your own vector library but you should have like a purpose or a mission statement like
19:06:02FromDiscord<albassort> idk why you would frankly
19:06:19FromDiscord<albassort> if you don't like the nim stuff go find a c library and wrap it y'know
19:06:20FromDiscord<aintea> "Because we're C++ dev, we don't use libraries. We write everything ourselves"
19:06:30FromDiscord<aintea> That's why
19:06:48FromDiscord<albassort> thats the difference between them and C devs, the C devs just do something else
19:07:05FromDiscord<ollicron_53732> I tried using the solutions that were already there
19:07:23FromDiscord<ollicron_53732> but one did not work, another was missing stuff
19:07:40FromDiscord<albassort> you could expand the one that was missing stuff 👁️
19:09:09FromDiscord<ollicron_53732> plausible but not impossible. I really liked the concept of `neo`; some stuff objectively works out of the box, but then you need to use the old `refc` garbage collector to let it make vectors
19:09:41FromDiscord<ollicron_53732> then you try to do an operation like addition and it hates you
19:10:07FromDiscord<Elegantbeef> Nah gotta make a 15th standard
19:10:07FromDiscord<Elegantbeef> The hell is it doing over there
19:10:08FromDiscord<Elegantbeef> Why the hell do you need a GC for vectors
19:10:40FromDiscord<ollicron_53732> I don't know ask the lady who made it 🤷‍♂️
19:11:01FromDiscord<ollicron_53732> I tried looking through her code to find out why the error was happening
19:11:16FromDiscord<Elegantbeef> Oh it's not just basic mathematical vectors
19:12:48FromDiscord<Elegantbeef> PS 'Andrea' in Italian is generally a Male name 😄
19:13:46FromDiscord<albassort> In reply to @Elegantbeef "Why the hell do": we should store our vectors in non-gc'd blocks
19:13:47FromDiscord<albassort> :)
19:13:59FromDiscord<albassort> the entire page is just for vectors
19:14:08FromDiscord<albassort> and it will stay in memory, live on
19:14:10FromDiscord<ollicron_53732> theres this otherlibrary that works for everything im doing
19:14:17FromDiscord<Elegantbeef> Nah I was thinking vectors like for video games and was going "Why the hell does one need to use a GC to allocate 3 float32s"
19:14:46FromDiscord<Robyn [She/Her]> what's the difference between a vector and a seq?
19:15:03FromDiscord<Elegantbeef> Even different type of vector Robyn
19:16:51FromDiscord<ollicron_53732> but the other library holds my hand idk am I crazy?
19:17:22FromDiscord<Elegantbeef> They're libraries what do you expect them to do?
19:17:31FromDiscord<Elegantbeef> Make your life more difficult?
19:17:34FromDiscord<albassort> smh holding hands isn't bad its a normal way that prime apes communicate affection
19:17:45FromDiscord<albassort> In reply to @Elegantbeef "Make your life more": libcurl has entered the chat
19:18:01FromDiscord<ollicron_53732> alright I'll do the intelligent thing and use the library
19:18:02FromDiscord<Elegantbeef> Why do I feel like you're also using a LLM to program? 😄
19:18:57FromDiscord<ollicron_53732> or fork it to modify how some things work
19:19:33FromDiscord<albassort> beef im making a nvim extension for build commands
19:20:23FromDiscord<albassort> you make a .albabc.json in a git repo and it saves your build commands or whatever you want, assign a number or name then hit leadger xb1-9 to execute it or xbb to execute by name
19:23:44FromDiscord<Elegantbeef> @albassort Are you sure libcurl is that bad?
19:24:02FromDiscord<Elegantbeef> https://curl.se/libcurl/c/allfuncs.html seems like a fairly tame API
19:24:54FromDiscord<albassort> mmm
19:25:00FromDiscord<albassort> its just verbose
19:25:06FromDiscord<albassort> its pretty straight forward
19:25:14FromDiscord<albassort> it feels abusive compared to high level languages
19:26:17FromDiscord<albassort> i need to figure out how to async curl so i can listen to multiple endpoints on one thread but im not sure how to do that yet and haven't researched
19:26:29FromDiscord<albassort> (edit) "i need to figure out how to async curl so i can listen to multiple endpoints on one thread but im not sure how to do that yet and haven't researched ... " added "(fork obviously but cant do that in nim)"
19:26:37FromDiscord<albassort> (edit) "(fork" => "(jmp"
19:27:02FromDiscord<Elegantbeef> Time to use selectors 😄
19:27:11FromDiscord<albassort> I dont wanna learn what that is beef
19:28:46FromDiscord<Elegantbeef> Ok
19:28:51FromDiscord<albassort> i may have TO
19:29:03FromDiscord<albassort> i cant really think of a solution otherwise
19:29:15FromDiscord<albassort> because curl uses a callback
19:29:20FromDiscord<albassort> (edit) "because curl uses a callback ... " added "that traps you"
19:29:26FromDiscord<albassort> (edit) "because curl uses a callback that traps you ... " added "and you cant get back in there"
19:29:43FromDiscord<albassort> wont give you a socket you can just listen to
19:29:49FromDiscord<albassort> (edit) "wont give you a socket you can just listen to ... " added "or osmething"
19:31:18FromDiscord<Elegantbeef> https://curl.se/libcurl/c/curl_multi_socket_action.html isn't that what this is for?
19:32:10FromDiscord<albassort> 👁️ i will investigate tomorrow today is nvim
19:45:10FromDiscord<Robyn [She/Her]> how led @w@↵(@albassort)
19:45:17FromDiscord<Robyn [She/Her]> how lewd @w@
20:02:37*jjido joined #nim
20:07:27*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
20:20:42*xtr00 quit (*.net *.split)
20:20:42*fallback quit (*.net *.split)
20:20:42*gshumway quit (*.net *.split)
20:26:06*xtr00 joined #nim
20:26:06*fallback joined #nim
20:26:06*gshumway joined #nim
20:27:42*gshumway quit (Ping timeout: 252 seconds)
20:35:02*gshumway_ joined #nim
20:54:05*skippy8 joined #nim
21:01:38*jjido joined #nim
21:05:54*amadaluzia quit (Quit: ZNC 1.9.1 - https://znc.in)
21:22:13*rockcavera joined #nim
21:50:51*tiorock joined #nim
21:50:51*rockcavera is now known as Guest1954
21:50:51*Guest1954 quit (Killed (lead.libera.chat (Nickname regained by services)))
21:50:51*tiorock is now known as rockcavera
21:54:00*skippy8 quit (Quit: WeeChat 4.7.0)
22:03:07*CypherCat quit (Remote host closed the connection)
22:07:04*CypherCat joined #nim
22:38:50*jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…)
22:42:58*johuck quit (Server closed connection)
22:43:06*johuck joined #nim
22:49:34*ttkap quit (Ping timeout: 245 seconds)
22:49:44*ttkap joined #nim
22:53:19*via quit (Ping timeout: 245 seconds)
22:58:26*via joined #nim
23:00:10*rockcavera quit (Remote host closed the connection)
23:06:44*Guest81 joined #nim
23:07:03*Guest81 quit (Client Quit)