<< 02-10-2025 >>

00:20:55*rockcavera joined #nim
01:35:09*th3r00t joined #nim
02:36:31*rockcavera quit (Remote host closed the connection)
03:38:36FromDiscord<gavingao5970> Hi folks,.Does Nim support asynchrony and concurrency?
03:46:29FromDiscord<gavingao5970> Recently, I discovered a programming language called Pony. Its design is based on the combination of reference capabilities (similar to ownership) and the Actor model. According to its own claims, it can avoid data races and implement lock-free concurrency.
03:47:35FromDiscord<gavingao5970> https://media.discordapp.net/attachments/371759389889003532/1423154422959050773/Screenshot_20251002-114323.png?ex=68df4757&is=68ddf5d7&hm=4387839db873e401add7883b229e2d72163ccf5b16129733df85856a3435ec89&
03:49:29FromDiscord<gavingao5970> In reply to @gavingao5970 "Recently, I discovered a": However, Pony is quite immature and has compiler bugs, making it unusable for me. Can Nim achieve the above-mentioned effects?
04:18:03*ainema joined #nim
05:19:39FromDiscord<kiloneie> (Pretty sure one of Pony's devs is on MS's research language, called Verona. I think the language got it's rug pulled)
05:33:09FromDiscord<ieltan> In reply to @gavingao5970 "": Isn't pony where araq got his std/isolation ideas from?
05:55:12FromDiscord<gavingao5970> https://media.discordapp.net/attachments/371759389889003532/1423186534714048592/Screenshot_20251002-135353.png?ex=68df653f&is=68de13bf&hm=05ffcc4604b38fa90c5b9095d23460407c1f0dfa3728e293bbc421629cf2b2db&
05:55:37FromDiscord<gavingao5970> sent a long message, see https://pasty.ee/ydGBwOlQ
05:56:08FromDiscord<gavingao5970> the verona doc said
05:59:38FromDiscord<gavingao5970> In reply to @ieltan "Isn't pony where araq": can nim avoid data races and implement lock-free concurrency?
06:10:33FromDiscord<ieltan> In reply to @gavingao5970 "can nim avoid data": :🤷🏿
06:10:58FromDiscord<ieltan> I mean at the language level I don't think the whole isolation thing panned out really well
06:11:45FromDiscord<blackmius> In reply to @gavingao5970 "can nim avoid data": garbage collector wont let you
06:12:10FromDiscord<ieltan> I don't see why you couldn't make a nimble package with all those bells and whistles
06:12:23FromDiscord<Elegantbeef> Well cause it doesn't play nice with `ref T` \:D
06:12:55FromDiscord<ieltan> Fair nuff lol
06:14:12FromDiscord<ieltan> Araq really wants ref to be the one and only pointer type everyone should use but it's looking more and more like the language really needs a `std/unique`
06:14:58FromDiscord<Elegantbeef> Sorry just use ref and isolate cmon now don't you know Nim?!
06:15:42FromDiscord<ieltan> "Can only use isolate for construction" 😓
06:17:22FromDiscord<Elegantbeef> It's indeed not very usable
06:19:19FromDiscord<ieltan> Pony has like a bazillion smart pointer and araq don't want to copy rust with all the pointer types, owned(ref T) right was a thing why don't we bring that back and alias it so it's less ugly at least it's already in the language just.... abandoned or something
06:19:39FromDiscord<ieltan> (edit) "Pony has like a bazillion smart pointer and araq don't want to copy rust with all the pointer types, owned(ref T) right ... was" added "that"
06:19:52FromDiscord<Elegantbeef> Cause it'd break all the language gotta keep it stable
06:20:12FromDiscord<Elegantbeef> Ideally `ref T` would be the single owner then you could have a `SharedRef T` or w/e you want to call it
06:21:03FromDiscord<ieltan> In reply to @Elegantbeef "Cause it'd break all": How lol? It's actually not even use :reese:
06:22:27FromDiscord<ieltan> People nonchalantly proposing the most language breaking stuff for nim 3 at least this isn't just syntax that's a useful feature
06:22:44*computerquip quit (Ping timeout: 244 seconds)
06:23:19FromDiscord<ieltan> Not just useful an actual gap in the language that needs to be filled but that's my opinion...
06:24:00FromDiscord<Elegantbeef> One of the biggest problems with Nim's development is the calcification of the language. Changes that need to be made are not to keep the code working
06:26:23*computerquip joined #nim
06:26:29FromDiscord<Elegantbeef> You might be confused how this language develops \:D
06:42:01*zgasma quit (Quit: Lost terminal)
07:37:45FromDiscord<kiloneie> Pretty sure, every language that uses 1, 2, 3 versioning, broke a lot of things moving from either. Python did, Scala did(even the language syntax changed!)...
07:39:45FromDiscord<kiloneie> If the language is always trying to be backwards compatible, then it's just version 1.something forever, improved, not evolved.
07:41:24FromDiscord<kiloneie> It sucks if the new major version, doesn't work with your big projects, but you either keep using the one you have working now, that gets updates still, you migrate, or you have planned for something like this, and aren't as hurt by it.
07:48:46*SchweinDeBurg quit (Quit: WeeChat 4.8.0-dev)
07:49:13*SchweinDeBurg joined #nim
07:53:29FromDiscord<gavingao5970> This
07:54:09FromDiscord<gavingao5970> Mr Pretty sure
07:54:35FromDiscord<gavingao5970> Very funny🤣
08:01:12*Jjp137 quit (Read error: Connection reset by peer)
08:01:59FromDiscord<gavingao5970> can u guys help try running pony on Windows 10,cause i can't
08:02:11*Jjp137 joined #nim
08:02:38FromDiscord<gavingao5970> i don't know is the problem itself or my
08:03:24FromDiscord<nnsee> In reply to @kiloneie "It sucks if the": this is not an unsolvable problem with a little planning ahead. when introducing a breaking change, make it opt-in by default but emit warnings when compiling code (including included code such as from a library) that will be broken soon with clear instructions on how to fix it, and give devs time to fix it. having it opt-in means people can test their changes before the breaking change actually ha
08:03:51FromDiscord<nnsee> In reply to @gavingao5970 "can u guys help": sir, this is the nim programming language server :p
08:04:11FromDiscord<nnsee> (#offtopic please)
08:05:23FromDiscord<mitranim> Another approach is to have every package declare its preferred language version, and keep old behaviors in the language for those packages only, at least for a while
08:05:46FromDiscord<mitranim> Can work okay for languages which make only occasional breaking changes, like Go
08:06:23FromDiscord<mitranim> (The only language-level Go breaking change I recall is the scoping of `for` loop variables. They kept the old behavior for older packages.)
08:12:09FromDiscord<mitranim> Noob question: does Nim have "boxed traits" / "fat interface pointers"? I see the statically dispatched generics, but haven't stumbled upon dynamic ones yet
08:16:04FromDiscord<gavingao5970> If a programming language still does not prioritize concurrency and concurrency safety nowadays, it will basically be ignored.
08:23:31*Jjp137 quit (Ping timeout: 250 seconds)
08:38:02FromDiscord<lainlaylie> In reply to @mitranim "Noob question: does Nim": there might be some relevant information in this thread: https://forum.nim-lang.org/t/13217
08:44:20*Jjp137 joined #nim
08:44:30FromDiscord<mitranim> In reply to @lainlaylie "there might be some": Hmm good to know, thanks
08:59:24*Jjp137 quit (Ping timeout: 252 seconds)
09:14:45*beholders_eye joined #nim
09:53:22FromDiscord<aethrvmn> Hey, I've been thinking of this for a while, can someone explain why when you `nimble init` you also need `nimble setup` to get the path and `config.nims` stuff + why if you do `nimbe setup` on a pre-existing project it wipes the `config.nims`?
09:53:25*beholders_eye quit (Ping timeout: 264 seconds)
09:53:38FromDiscord<aethrvmn> (edit) "while," => "while;"
10:15:38FromDiscord<janakali> sent a long message, see https://pasty.ee/UYmPOcpU
10:21:22FromDiscord<aethrvmn> In reply to @janakali "as I understand it,": I've had issues in Nix where if I dont run it, it doesnt find libs in the .nimble file
10:22:36FromDiscord<aethrvmn> But still, it overwrites prexisting config.nims also
10:22:48FromDiscord<aethrvmn> Iirc nim3 will use a different system right?
10:25:06FromDiscord<janakali> probably because Nix likes to hide stuff from being accessed between programs
10:25:11FromDiscord<janakali> weird system
10:25:15FromDiscord<janakali> too fiddly
10:25:38FromDiscord<janakali> you have to be explicit at all times
10:31:15FromDiscord<aethrvmn> In reply to @janakali "probably because Nix likes": Yeah it looks at the store unless you explicitly generate the path or smth
10:31:41*ainema quit (Excess Flood)
10:31:48FromDiscord<aethrvmn> But still idk why you wouldn't want to autorun nimble setup as the final step of nimble init, so you have the whole structure ready
10:32:44*ainema joined #nim
10:32:49*ainema left #nim (#nim)
10:37:49*ainema joined #nim
10:38:45FromDiscord<janakali> In reply to @aethrvmn "But still, it overwrites": looking at nimble source code, it reads `config.nims` then appends couple lines to it and writes it back, so unless the first part goes wrong setup can't nuke existing `config.nims`
10:38:56FromDiscord<janakali> https://github.com/nim-lang/nimble/blob/1083e4468169af049daa9e3f50d12debe47f94ca/src/nimble.nim#L2406C1-L2426C1
10:42:06FromDiscord<Robyn [She/Her]> In reply to @aethrvmn "Hey, I've been thinking": because Nimble is sort of sucky :p
10:55:40FromDiscord<lainlaylie> yalls nims are able to read nimble packages from global pkgs2 without nimble setup?
10:57:33FromDiscord<lainlaylie> huh, so is mine.. the more you know
11:09:19FromDiscord<firasuke> In reply to @mrfox4201 "why nim doesn't have": I was also wondering, we need a Nim server tag :nim1:
11:09:56*Jjp137 joined #nim
11:24:30FromDiscord<aethrvmn> In reply to @battery.acid.bubblegum "because Nimble is sort": Is atlas the better method?
11:25:38FromDiscord<Robyn [She/Her]> In reply to @aethrvmn "Is atlas the better": I don't use atlas either :p
11:25:56FromDiscord<Robyn [She/Her]> I'm currently using git submodules until my own package manager is in a usable state
11:26:58FromDiscord<Robyn [She/Her]> supposedly atlas is pretty good
11:27:21FromDiscord<Robyn [She/Her]> nimble is borderline unusable with the performance issues apparently
11:27:34FromDiscord<Robyn [She/Her]> haven't used nimble in a while so can't say that myself
11:36:13FromDiscord<nasuray> In reply to @battery.acid.bubblegum "I'm currently using git": Seems like you have a conflict of interest assessing the existing options 😝
11:38:54FromDiscord<aethrvmn> In reply to @battery.acid.bubblegum "because Nimble is sort": Is atlas the better method?
11:40:07FromDiscord<Robyn [She/Her]> In reply to @nasuray "Seems like you have": oh lmao yeah
11:40:40FromDiscord<Robyn [She/Her]> but nimble being sorta awkward is what motivated me originally to make my own, so
11:40:48FromDiscord<Robyn [She/Her]> Cargo is just so elegant...
11:42:39FromDiscord<aethrvmn> In reply to @battery.acid.bubblegum "Cargo is just so": I've heard mostly complains about cargo; most people call it out for why complications take so long and why the bins are so large in rust
11:42:52FromDiscord<aethrvmn> (edit) "complications" => "compilations"
11:47:49FromDiscord<zumi.dxy> i'd chalk it up to the packaging culture than cargo itself tbh
12:04:21*ainema left #nim (#nim)
12:58:24FromDiscord<Robyn [She/Her]> In reply to @zumi.dxy "i'd chalk it up": yeah this
12:58:44FromDiscord<Robyn [She/Her]> Cargo itself runs fast, meanwhile Rust compilation takes time
12:59:02FromDiscord<Robyn [She/Her]> But Nimble supposedly runs slow af, and we all know Nim ain't fast either
15:07:19*Jjp137 quit (Ping timeout: 260 seconds)
15:20:08*bgupta quit (Ping timeout: 260 seconds)
15:21:16*bgupta joined #nim
17:22:57*Jjp137 joined #nim
17:43:49*PMunch joined #nim
17:44:00*Artea quit (Quit: ZNC 1.9.1 - https://znc.in)
18:25:50*Artea joined #nim
20:09:24*GreaseMonkey quit (Ping timeout: 244 seconds)
20:14:22*PMunch quit (Quit: leaving)
20:38:16*anddam joined #nim
21:11:04*greaser|q joined #nim
21:13:57*zgasma joined #nim
21:28:29*rockcavera joined #nim
21:28:38FromDiscord<.tokyovigilante> is/should atlas be packaged with Nim? Readme looks a bit out of date.
21:49:54FromDiscord<nasuray> In reply to @.tokyovigilante "is/should atlas be packaged": It is already packaged with Nim (choosenim just doesn't create a link for it, unless that's been added recently)
21:53:27FromDiscord<.tokyovigilante> In reply to @nasuray "It is already packaged": oh nice. I'll have to check the Alpine package, don't think its made it in there.