00:20:55 | * | rockcavera joined #nim |
01:35:09 | * | th3r00t joined #nim |
02:36:31 | * | rockcavera quit (Remote host closed the connection) |
03:38:36 | FromDiscord | <gavingao5970> Hi folks,.Does Nim support asynchrony and concurrency? |
03:46:29 | FromDiscord | <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:35 | FromDiscord | <gavingao5970> https://media.discordapp.net/attachments/371759389889003532/1423154422959050773/Screenshot_20251002-114323.png?ex=68df4757&is=68ddf5d7&hm=4387839db873e401add7883b229e2d72163ccf5b16129733df85856a3435ec89& |
03:49:29 | FromDiscord | <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:39 | FromDiscord | <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:09 | FromDiscord | <ieltan> In reply to @gavingao5970 "": Isn't pony where araq got his std/isolation ideas from? |
05:55:12 | FromDiscord | <gavingao5970> https://media.discordapp.net/attachments/371759389889003532/1423186534714048592/Screenshot_20251002-135353.png?ex=68df653f&is=68de13bf&hm=05ffcc4604b38fa90c5b9095d23460407c1f0dfa3728e293bbc421629cf2b2db& |
05:55:37 | FromDiscord | <gavingao5970> sent a long message, see https://pasty.ee/ydGBwOlQ |
05:56:08 | FromDiscord | <gavingao5970> the verona doc said |
05:59:38 | FromDiscord | <gavingao5970> In reply to @ieltan "Isn't pony where araq": can nim avoid data races and implement lock-free concurrency? |
06:10:33 | FromDiscord | <ieltan> In reply to @gavingao5970 "can nim avoid data": :🤷🏿 |
06:10:58 | FromDiscord | <ieltan> I mean at the language level I don't think the whole isolation thing panned out really well |
06:11:45 | FromDiscord | <blackmius> In reply to @gavingao5970 "can nim avoid data": garbage collector wont let you |
06:12:10 | FromDiscord | <ieltan> I don't see why you couldn't make a nimble package with all those bells and whistles |
06:12:23 | FromDiscord | <Elegantbeef> Well cause it doesn't play nice with `ref T` \:D |
06:12:55 | FromDiscord | <ieltan> Fair nuff lol |
06:14:12 | FromDiscord | <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:58 | FromDiscord | <Elegantbeef> Sorry just use ref and isolate cmon now don't you know Nim?! |
06:15:42 | FromDiscord | <ieltan> "Can only use isolate for construction" 😓 |
06:17:22 | FromDiscord | <Elegantbeef> It's indeed not very usable |
06:19:19 | FromDiscord | <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:39 | FromDiscord | <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:52 | FromDiscord | <Elegantbeef> Cause it'd break all the language gotta keep it stable |
06:20:12 | FromDiscord | <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:03 | FromDiscord | <ieltan> In reply to @Elegantbeef "Cause it'd break all": How lol? It's actually not even use :reese: |
06:22:27 | FromDiscord | <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:19 | FromDiscord | <ieltan> Not just useful an actual gap in the language that needs to be filled but that's my opinion... |
06:24:00 | FromDiscord | <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:29 | FromDiscord | <Elegantbeef> You might be confused how this language develops \:D |
06:42:01 | * | zgasma quit (Quit: Lost terminal) |
07:37:45 | FromDiscord | <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:45 | FromDiscord | <kiloneie> If the language is always trying to be backwards compatible, then it's just version 1.something forever, improved, not evolved. |
07:41:24 | FromDiscord | <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:29 | FromDiscord | <gavingao5970> This |
07:54:09 | FromDiscord | <gavingao5970> Mr Pretty sure |
07:54:35 | FromDiscord | <gavingao5970> Very funny🤣 |
08:01:12 | * | Jjp137 quit (Read error: Connection reset by peer) |
08:01:59 | FromDiscord | <gavingao5970> can u guys help try running pony on Windows 10,cause i can't |
08:02:11 | * | Jjp137 joined #nim |
08:02:38 | FromDiscord | <gavingao5970> i don't know is the problem itself or my |
08:03:24 | FromDiscord | <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:51 | FromDiscord | <nnsee> In reply to @gavingao5970 "can u guys help": sir, this is the nim programming language server :p |
08:04:11 | FromDiscord | <nnsee> (#offtopic please) |
08:05:23 | FromDiscord | <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:46 | FromDiscord | <mitranim> Can work okay for languages which make only occasional breaking changes, like Go |
08:06:23 | FromDiscord | <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:09 | FromDiscord | <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:04 | FromDiscord | <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:02 | FromDiscord | <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:30 | FromDiscord | <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:22 | FromDiscord | <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:38 | FromDiscord | <aethrvmn> (edit) "while," => "while;" |
10:15:38 | FromDiscord | <janakali> sent a long message, see https://pasty.ee/UYmPOcpU |
10:21:22 | FromDiscord | <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:36 | FromDiscord | <aethrvmn> But still, it overwrites prexisting config.nims also |
10:22:48 | FromDiscord | <aethrvmn> Iirc nim3 will use a different system right? |
10:25:06 | FromDiscord | <janakali> probably because Nix likes to hide stuff from being accessed between programs |
10:25:11 | FromDiscord | <janakali> weird system |
10:25:15 | FromDiscord | <janakali> too fiddly |
10:25:38 | FromDiscord | <janakali> you have to be explicit at all times |
10:31:15 | FromDiscord | <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:48 | FromDiscord | <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:45 | FromDiscord | <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:56 | FromDiscord | <janakali> https://github.com/nim-lang/nimble/blob/1083e4468169af049daa9e3f50d12debe47f94ca/src/nimble.nim#L2406C1-L2426C1 |
10:42:06 | FromDiscord | <Robyn [She/Her]> In reply to @aethrvmn "Hey, I've been thinking": because Nimble is sort of sucky :p |
10:55:40 | FromDiscord | <lainlaylie> yalls nims are able to read nimble packages from global pkgs2 without nimble setup? |
10:57:33 | FromDiscord | <lainlaylie> huh, so is mine.. the more you know |
11:09:19 | FromDiscord | <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:30 | FromDiscord | <aethrvmn> In reply to @battery.acid.bubblegum "because Nimble is sort": Is atlas the better method? |
11:25:38 | FromDiscord | <Robyn [She/Her]> In reply to @aethrvmn "Is atlas the better": I don't use atlas either :p |
11:25:56 | FromDiscord | <Robyn [She/Her]> I'm currently using git submodules until my own package manager is in a usable state |
11:26:58 | FromDiscord | <Robyn [She/Her]> supposedly atlas is pretty good |
11:27:21 | FromDiscord | <Robyn [She/Her]> nimble is borderline unusable with the performance issues apparently |
11:27:34 | FromDiscord | <Robyn [She/Her]> haven't used nimble in a while so can't say that myself |
11:36:13 | FromDiscord | <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:54 | FromDiscord | <aethrvmn> In reply to @battery.acid.bubblegum "because Nimble is sort": Is atlas the better method? |
11:40:07 | FromDiscord | <Robyn [She/Her]> In reply to @nasuray "Seems like you have": oh lmao yeah |
11:40:40 | FromDiscord | <Robyn [She/Her]> but nimble being sorta awkward is what motivated me originally to make my own, so |
11:40:48 | FromDiscord | <Robyn [She/Her]> Cargo is just so elegant... |
11:42:39 | FromDiscord | <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:52 | FromDiscord | <aethrvmn> (edit) "complications" => "compilations" |
11:47:49 | FromDiscord | <zumi.dxy> i'd chalk it up to the packaging culture than cargo itself tbh |
12:04:21 | * | ainema left #nim (#nim) |
12:58:24 | FromDiscord | <Robyn [She/Her]> In reply to @zumi.dxy "i'd chalk it up": yeah this |
12:58:44 | FromDiscord | <Robyn [She/Her]> Cargo itself runs fast, meanwhile Rust compilation takes time |
12:59:02 | FromDiscord | <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:38 | FromDiscord | <.tokyovigilante> is/should atlas be packaged with Nim? Readme looks a bit out of date. |
21:49:54 | FromDiscord | <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:27 | FromDiscord | <.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. |