| 00:14:38 | * | amadaluzia quit (Read error: Connection reset by peer) |
| 00:49:17 | FromDiscord | <.tokyovigilante> Is there a good pattern form merging asyncdispatch and Windows events? I want to be able to call `runForever()` in my main thread then process UI events asynchronously. I can just watch the Wayland file descriptor for this on Linux but `MsgWaitForMultipleObjects` blocks too it seems. |
| 00:49:35 | FromDiscord | <.tokyovigilante> (edit) "form" => "for" |
| 01:31:36 | * | mrinsane quit (Ping timeout: 264 seconds) |
| 02:14:45 | * | tokyovigilante quit (Ping timeout: 245 seconds) |
| 03:14:32 | * | rockcavera quit (Remote host closed the connection) |
| 04:04:39 | * | mrinsane joined #nim |
| 05:21:38 | FromDiscord | <indelusionalizationary> In reply to @nnsee "what metric do you": bro, I mean... writing an OS kernel (like linux), OS level utilities (like GNU provides) and even desktop applications for mac, windows or (at least and most importantly for me) linux. I explored android studio and saw, there's an option with cpp too other than java and kotlin ones. |
| 05:22:31 | FromDiscord | <indelusionalizationary> In reply to @nnsee "and nim is, by": am I provided with proper tools to manage memory and do all the things required if I turn off GC? |
| 05:31:14 | * | mrinsane quit (Ping timeout: 252 seconds) |
| 06:50:10 | FromDiscord | <nnsee> In reply to @indelusionalizationary "bro, I mean... writing": you can do all of that very successfully with nim |
| 06:50:57 | FromDiscord | <nnsee> In reply to @indelusionalizationary "am I provided with": generally, you don't want to "turn off GC" but rather use a deterministic memory management mode such as ARC |
| 06:51:35 | FromDiscord | <nnsee> https://nim-lang.org/blog/2020/10/15/introduction-to-arc-orc-in-nim.html |
| 08:07:11 | FromDiscord | <asviest> sent a long message, see https://pasty.ee/OXfZBuEx |
| 08:10:32 | FromDiscord | <asviest> In reply to @.tokyovigilante "Is there a good": Pooling works on all OSs |
| 08:19:02 | FromDiscord | <asviest> sent a long message, see https://pasty.ee/aJKUZVZQ |
| 08:22:20 | * | hygo quit (Quit: WeeChat 4.6.3) |
| 08:34:39 | FromDiscord | <indelusionalizationary> in simple words, I just want a language that I can make my own- replacing c/cpp & rust. ↵I have listed all I could: Nim, D, V, Crystal, Zig, Hare, Odin. ↵My optional but important goal is that if it's not too hard to learn (list rust) and my primary and main goals are that a dev (when gets good at writing it) can writing anything that a dev can with c/cpp, rust. ↵I don't have a problem with rust, in fact I'm currently |
| 08:45:17 | FromDiscord | <asviest> In reply to @indelusionalizationary "in simple words, I": So, what’s the issue? Try building a project in Nim or Zig to see if you like the syntax, features, and design choices. If you're wondering whether you can do anything with them— just give it a try. If you find something impossible, just patch the Nim or Zig compiler and open a pull request. I’m not sure about Zig, but the Nim compiler code is quite readable. |
| 08:47:43 | FromDiscord | <shalokshalom> In reply to @asviest "I’m not an expert": I feel like OS kernel development needs an even better control over memory, or at least discipline. Theoretically possible. |
| 08:54:46 | FromDiscord | <indelusionalizationary> sent a long message, see https://pasty.ee/mNcddrZN |
| 08:55:15 | FromDiscord | <nnsee> In reply to @asviest "I don't think anyone": some would argue that the lack of distinction between an array and a pointer is not a flaw but rather a feature |
| 08:56:03 | FromDiscord | <indelusionalizationary> In reply to @nnsee "some would argue that": i was about to point it out, thank god i stayed quiet. |
| 08:56:25 | FromDiscord | <indelusionalizationary> (edit) "stayed" => "stood" |
| 08:57:03 | FromDiscord | <kapendev> It's a high level feature |
| 08:59:07 | FromDiscord | <kapendev> Something similar happens with languages that have slices, but there you have arrays that decay to slices. You don't want that sometimes lol |
| 09:00:17 | FromDiscord | <kapendev> Like accidentally passing the whole buffer instead of a part of it. |
| 09:27:54 | * | mrinsane joined #nim |
| 09:32:34 | * | mrinsane quit (Ping timeout: 276 seconds) |
| 09:33:10 | FromDiscord | <pmunch> Hmm, is it not possible to GC_ref a string? |
| 09:45:21 | * | beholders_eye joined #nim |
| 09:46:14 | FromDiscord | <asviest> In reply to @kapendev "It's a high level": Yeah, it’s a high-level feature, just like goto... I mean, goto lets you easily break out of a nested loop or do something like if (error) goto handleErrors;. If we look at block/break, it’s basically just a polished and constraint version of goto. Does that make goto high-level? That’s not how it works. |
| 10:37:06 | FromDiscord | <kapendev> It's not different than automatic casting |
| 10:38:24 | FromDiscord | <kapendev> You have a problem with that? |
| 13:28:04 | * | mrinsane joined #nim |
| 13:32:29 | * | mrinsane quit (Ping timeout: 252 seconds) |
| 14:00:25 | FromDiscord | <mr_rowboto> sent a long message, see https://pasty.ee/hepbpBnj |
| 14:00:44 | FromDiscord | <mr_rowboto> (edit) "https://pasty.ee/QISQhREv" => "https://pasty.ee/mCRbbDvO" |
| 14:01:00 | FromDiscord | <mr_rowboto> (edit) "https://pasty.ee/ETOkiwiL" => "https://pasty.ee/jOPfszGb" |
| 14:01:18 | FromDiscord | <mr_rowboto> Be sure to check the OSDev wiki: https://wiki.osdev.org/Main_Page |
| 14:03:29 | FromDiscord | <mr_rowboto> And please, PLEASE... PLEASE work on hacking together a cross-compiler or at least a reproducible environment (using docker, nix, or whatever) that can output non os-dependant binaries first. There are plenty of tutorials out there. |
| 14:04:04 | FromDiscord | <mr_rowboto> (edit) "whatever)" => "whatever tool)" |
| 14:04:19 | FromDiscord | <mr_rowboto> (edit) "os-dependant" => "os-dependent" |
| 14:06:47 | FromDiscord | <olfactoryhallucinations> Here's an example of someone writing their own OS using Nim and getting quite far: https://github.com/khaledh/fusion |
| 14:42:48 | nisstyre | I just looked at the code and see C files... |
| 14:43:41 | nisstyre | surely it needs to compile it down without the C runtime at least, since you won't have stdlib |
| 14:46:27 | FromDiscord | <nnsee> i don't see C files apart from what's in `include` |
| 14:47:00 | nisstyre | that's what I was referring to |
| 14:47:05 | nisstyre | but it makes sense you'd need that |
| 14:47:35 | nisstyre | TIL nim has inline assembly |
| 15:03:41 | FromDiscord | <tewesday> Nim seems extremely flexible much like C\C++ but with some modern conveniences and shorter syntax |
| 15:05:00 | FromDiscord | <tewesday> Is there an example of using nim with memory arenas? |
| 15:09:56 | nisstyre | you would just statically allocate an array of bytes and use that, or use malloc or mmap |
| 15:10:20 | nisstyre | works well if you have a lot of uniformly sized data |
| 15:11:42 | FromDiscord | <tewesday> ARC can be used with that as long as the scope is global, so it doesn't get cleaned up right? |
| 15:12:37 | FromDiscord | <tewesday> the pool would not get cleaned up by ARC |
| 15:13:05 | nisstyre | just use a global array of data if you don't need to expand it |
| 15:13:25 | nisstyre | kind of kills one of the benefits of arenas though |
| 15:13:36 | nisstyre | which is that you free the data all at once |
| 15:13:57 | FromDiscord | <tewesday> Right |
| 15:13:58 | nisstyre | I don't see why that wouldn't still work with ARC though |
| 15:14:05 | nisstyre | just make sure the scope is correct |
| 15:14:35 | nisstyre | and also how do you pass in the allocator function to other places? |
| 15:14:42 | nisstyre | depends highly on your use case |
| 15:15:09 | FromDiscord | <tewesday> Just trying to make sure I understand that ARC won't ever surprise me by deallocating the arena or from the arena as long as the arena is in scope |
| 15:15:49 | nisstyre | shouldn't but if you have pointers to other stuff in it you might have problems |
| 15:16:33 | FromDiscord | <tewesday> Yeah that makes sense |
| 15:38:25 | Amun-Ra | just compiled my nim project with filcc, works like a charm |
| 15:57:13 | FromDiscord | <Robyn [She/Her]> In reply to @Amun-Ra "just compiled my nim": `filcc`? what's that? |
| 15:57:31 | FromDiscord | <Robyn [She/Her]> huh fun |
| 15:58:33 | * | xet7 quit (Ping timeout: 248 seconds) |
| 15:59:32 | FromDiscord | <Robyn [She/Her]> It looks pretty neat, honestly |
| 15:59:53 | * | beholders_eye quit (Ping timeout: 252 seconds) |
| 16:03:44 | FromDiscord | <nervecenter> In reply to @Amun-Ra "just compiled my nim": Kinda redundant since the whole point of Nim's compiler is to generate correct bounds checking and lifetimes out of the gate, but cool? |
| 16:04:03 | FromDiscord | <nervecenter> Double-safe programs |
| 16:10:41 | * | xet7 joined #nim |
| 16:12:55 | * | hygo joined #nim |
| 16:16:51 | FromDiscord | <indelusionalizationary> In reply to @mr_rowboto "Hi, I've taught OSDev": why zig and not nim? |
| 16:19:25 | * | beholders_eye joined #nim |
| 16:23:44 | FromDiscord | <nnsee> memory allocation is a bit more deliberate in zig which is attractive for osdev stuff |
| 16:24:28 | FromDiscord | <mr_rowboto> sent a long message, see https://pasty.ee/KAsTEgPD |
| 16:32:19 | * | Artea quit (Read error: Connection reset by peer) |
| 16:36:08 | FromDiscord | <mr_rowboto> sent a long message, see https://pasty.ee/tkRmHVba |
| 17:10:56 | * | mrinsane joined #nim |
| 17:31:21 | * | shrikant joined #nim |
| 17:35:42 | * | shrikant quit (Ping timeout: 255 seconds) |
| 17:37:35 | * | shrikant joined #nim |
| 17:42:00 | * | shrikant quit (Ping timeout: 255 seconds) |
| 18:11:47 | FromDiscord | <shalokshalom> In reply to @nnsee "memory allocation is a": How would you sew Odin compared to that? |
| 18:19:20 | FromDiscord | <kapendev> It's all the same thing. |
| 18:20:15 | FromDiscord | <shalokshalom> Zig's memory management allows for security issues. |
| 18:22:42 | FromDiscord | <kapendev> They have 2 things that might make things safer: a tracking allocator and some specific pointer types that give you more info on the type level about how they work. |
| 18:23:40 | FromDiscord | <kapendev> Making a tracking allocator is easy in most languages and you easily make a better one than the zig default. |
| 18:23:53 | FromDiscord | <kapendev> (edit) "Making a tracking allocator is easy in most languages and you ... easily" added "can" |
| 18:25:23 | FromDiscord | <shalokshalom> Interesting |
| 18:25:34 | FromDiscord | <shalokshalom> I thought Odin is all about arena based memory management |
| 18:26:51 | FromDiscord | <kapendev> Both zig and Odin provide tools for that. |
| 18:27:09 | FromDiscord | <kapendev> But it's a standard library feature I would say. |
| 18:27:47 | FromDiscord | <kapendev> Nim could have an arena in the standard library probably. |
| 18:41:53 | FromDiscord | <eebahn> sent a long message, see https://pasty.ee/ItpLPgiI |
| 20:04:50 | FromDiscord | <shalokshalom> In reply to @eebahn "nim's entry point is": why is the entry point important? |
| 20:06:36 | FromDiscord | <eebahn> In reply to @shalokshalom "why is the entry": because the entry point is how you control the boot/entry process of an OS |
| 20:09:08 | FromDiscord | <eebahn> Calling an external asm-defined function is possible, but calling the bootloader directly on the entry file is also possible (imo cleaner also)↵So abstracting away the very thing that controls your OS is not very good for learning to control your os 🤷♂️ |
| 20:10:51 | FromDiscord | <eebahn> _(this is in the context of learning, of course. something being "possible" does not equate to something being "clear/easy to learn")_ |
| 20:12:15 | FromDiscord | <shalokshalom> ok, I have no idea what the / an entry point is. I was always under the suspicion, that this is limited to the programming language itself. I had no idea, that has connections to so deep in the system itself. ↵↵Awesome, thanks! |
| 20:19:32 | FromDiscord | <mr_rowboto> In reply to @eebahn "because the entry point": This is actually a good point. |
| 20:21:08 | FromDiscord | <mr_rowboto> In reply to @shalokshalom "Zig's memory management allows": No. Bad programmers allow security issues of any kind.↵A supposed strength of some language does not imply a flaw on every other language that does not implement lifetime checking and burrowing obsessively to the point of being unreadable and unwrittable. |
| 20:21:27 | FromDiscord | <mr_rowboto> Just test your software if you're worried about security. |
| 20:21:46 | FromDiscord | <shalokshalom> In reply to @mr_rowboto "This is actually a": It looks like there is a flag for it. |
| 20:21:50 | FromDiscord | <shalokshalom> https://media.discordapp.net/attachments/371759389889003532/1481386687278878854/Screenshot_2026-03-11-21-21-19-597_com.brave.browser-edit.jpg?ex=69b3205d&is=69b1cedd&hm=5f14dfc7701256f6023472917b8636e88a8a91d7a8a0fc3dc2e65481c12a7a14& |
| 20:21:57 | FromDiscord | <shalokshalom> You can disable it. |
| 20:22:03 | FromDiscord | <mr_rowboto> In reply to @shalokshalom "": That's cool |
| 20:22:14 | FromDiscord | <shalokshalom> In reply to @mr_rowboto "No. Bad programmers allow": That's a bad argument |
| 20:22:21 | FromDiscord | <mr_rowboto> No, it's not. |
| 20:22:27 | FromDiscord | <mr_rowboto> Want Rust? Go program in rust. |
| 20:22:33 | FromDiscord | <shalokshalom> It doesn't matter that there are bad programmers. |
| 20:22:43 | FromDiscord | <shalokshalom> It matter that we want save programs. |
| 20:22:47 | FromDiscord | <mr_rowboto> Yes, yes it does. If you want memory safety you can program in javascript. |
| 20:22:55 | FromDiscord | <mr_rowboto> Save programs from what? |
| 20:23:21 | FromDiscord | <shalokshalom> In human history, there were always people being bad at something. Should we risk the whole civilization, just for these couples of idiots? |
| 20:23:44 | FromDiscord | <mr_rowboto> In all human history never civilization has collapsed due to dereferencing a pointer to null. |
| 20:23:52 | FromDiscord | <mr_rowboto> and spoiler alert |
| 20:23:54 | FromDiscord | <mr_rowboto> never will |
| 20:24:01 | FromDiscord | <shalokshalom> Or rather create guidelines, safety practices, and ultimately standards, who happen to be enforced by law? |
| 20:24:18 | FromDiscord | <mr_rowboto> Lol |
| 20:24:30 | FromDiscord | <shalokshalom> Its called regulations. |
| 20:24:33 | FromDiscord | <mr_rowboto> I'll repeat myself: if you want guardrails you can just program in javascript. |
| 20:24:39 | FromDiscord | <shalokshalom> Yuk. |
| 20:24:43 | FromDiscord | <mr_rowboto> Or C£ |
| 20:24:51 | FromDiscord | <mr_rowboto> (edit) "C£" => "Csharp" |
| 20:24:55 | FromDiscord | <shalokshalom> Stupid non-sense |
| 20:24:56 | FromDiscord | <mr_rowboto> Or Java |
| 20:25:07 | FromDiscord | <mr_rowboto> Sure 😂 |
| 20:25:38 | FromDiscord | <nnsee> In reply to @mr_rowboto "No. Bad programmers allow": propagating the use of memory safe languages is orders of magnitudes easier than removing all bad programmers. by this logic, cars aren't unsafe either, we just have bad drivers, which might be true on a very surface level but isn't exactly a helpful insight |
| 20:25:53 | FromDiscord | <mr_rowboto> In reply to @nnsee "propagating the use of": Testing is easier than both. |
| 20:26:08 | FromDiscord | <mr_rowboto> And effectively removes "bad programming" if not "bad programmers" |
| 20:26:28 | FromDiscord | <mr_rowboto> That's exactly what you do in order to keep the most critical software safe |
| 20:26:34 | FromDiscord | <mr_rowboto> unit, functional, fuzz, you name it |
| 20:26:52 | FromDiscord | <mr_rowboto> "securing" the language memory model is just not enough |
| 20:27:04 | FromDiscord | <mr_rowboto> if it was, rust would never have been invented, and we'd be using javascript |
| 20:27:13 | FromDiscord | <mr_rowboto> (edit) "language" => "language's" |
| 20:27:57 | FromDiscord | <nnsee> In reply to @mr_rowboto "And effectively removes "bad": you and i both know that's not true. programmers smarter than you and i combined write memory-unsafe code if they write in memory-unsafe languages, even with tests and fuzzing and the whole works |
| 20:28:27 | FromDiscord | <mr_rowboto> And I insist, the problem is with this statement:↵"Zig's memory management allows for security issues."↵↵A languages feature does not imply another language's issue for not implementing it. |
| 20:28:48 | FromDiscord | <mr_rowboto> In reply to @nnsee "you and i both": I know for a fact that it's true, let me show you: |
| 20:29:02 | FromDiscord | <mr_rowboto> here: https://github.com/bitcoin/bitcoin/tree/master/test |
| 20:29:14 | FromDiscord | <mr_rowboto> There's no sfotware more mission critical today than that repo. |
| 20:29:38 | FromDiscord | <mr_rowboto> The reason why there's all the testing, is because security has nothing to do with the memory model. |
| 20:30:12 | FromDiscord | <mr_rowboto> Is it desirable? Yeah, to an extent. It's not enough, and swapping c++ for rust wouldn't make unit, functional, and fuzz testing less important. |
| 20:30:16 | FromDiscord | <mr_rowboto> (edit) "Is it desirable? Yeah, to an extent. It's not enough, and ... swapping" added "magically" |
| 20:30:24 | FromDiscord | <mr_rowboto> (edit) "important." => "important nor required." |
| 20:30:54 | FromDiscord | <mr_rowboto> The memory model is just a tiny small part of the whole deal with "security". |
| 20:31:57 | FromDiscord | <nnsee> just to be clear, are you implying that bitcoind has never had memory corruption vulns? |
| 20:32:04 | FromDiscord | <mr_rowboto> Never. |
| 20:32:09 | FromDiscord | <nnsee> oh boy |
| 20:32:11 | FromDiscord | <mr_rowboto> Where am I implying that? |
| 20:32:31 | FromDiscord | <mr_rowboto> I just crashed a bunch of bitcoind nodes the other day with a couple python scripts |
| 20:32:43 | FromDiscord | <nnsee> ... by saying that the solution to memory corruption issues is testing and pointing me to that repo? |
| 20:33:03 | FromDiscord | <nnsee> maybe i'm misunderstanding you, then |
| 20:33:08 | FromDiscord | <mr_rowboto> I thikn so. |
| 20:33:11 | FromDiscord | <mr_rowboto> (edit) "thikn" => "think" |
| 20:33:21 | FromDiscord | <nnsee> In reply to @mr_rowboto "And I insist, the": also not sure how one implies the other. what part of that sentence is untrue? |
| 20:33:34 | FromDiscord | <mr_rowboto> I'm pointing to that repo, because I'm arguing that the memory model is not only not enough by a mile, using that repo as an example of how you achieve actual security. |
| 20:33:44 | FromDiscord | <[Next-System] systemblue> yeah memory management model is not all of safety |
| 20:33:53 | FromDiscord | <mr_rowboto> "Zig allows for security issues" is just stupid Ras. |
| 20:33:55 | FromDiscord | <[Next-System] systemblue> it's part of security |
| 20:34:11 | FromDiscord | <mr_rowboto> "Is the same as saying "X-lang except for Rust" allows for security issues" |
| 20:34:21 | FromDiscord | <mr_rowboto> and using that metric as if it was really important |
| 20:34:21 | FromDiscord | <[Next-System] systemblue> zig allows for security issue... it's half true and half false |
| 20:34:22 | FromDiscord | <mr_rowboto> it is not |
| 20:34:35 | FromDiscord | <mr_rowboto> security does not come from the memory model |
| 20:34:41 | FromDiscord | <mr_rowboto> security comes from here: https://github.com/bitcoin/bitcoin/tree/master/test |
| 20:34:47 | FromDiscord | <mr_rowboto> also from reproducible builds |
| 20:34:52 | FromDiscord | <mr_rowboto> also from a good community of devs |
| 20:34:55 | FromDiscord | <mr_rowboto> also from conferences |
| 20:34:55 | FromDiscord | <[Next-System] systemblue> zig's comptime and type check is better than C but manual memory management is also dangerous in noobs |
| 20:35:00 | FromDiscord | <mr_rowboto> also from wargames and testing |
| 20:35:12 | FromDiscord | <mr_rowboto> it's not that the statement is "false" |
| 20:35:20 | FromDiscord | <mr_rowboto> it's that it is absoltuely irrelevant for SECURITY |
| 20:36:35 | FromDiscord | <[Next-System] systemblue> yes, it's true↵security problem is come from dev's mistake↵if dev code unsafely and use null in C# or Java it might be dangerous too |
| 20:36:47 | FromDiscord | <[Next-System] systemblue> but I think language can help security |
| 20:37:10 | FromDiscord | <[Next-System] systemblue> by type safety, memory safety, nil(null) safety, parallel safety, value safety |
| 20:37:12 | FromDiscord | <nnsee> sent a long message, see https://pasty.ee/vaFXgnWF |
| 20:37:19 | FromDiscord | <mr_rowboto> sent a long message, see https://pasty.ee/oRqkCPiz |
| 20:37:56 | FromDiscord | <mr_rowboto> In reply to @nnsee "nobody said it is.": Exactly, so why do rustaceans explicitly spend all their time saying "oh this memory model allows for security issues hum humm" |
| 20:38:00 | FromDiscord | <mr_rowboto> (edit) "humm"" => "humm"?" |
| 20:38:24 | FromDiscord | <nnsee> In reply to @mr_rowboto ""Zig allows for security": it's not "zig allows for security issues" it's quite specifically that zig's memory management model allows for memory corruption issues, which is literally factual |
| 20:38:25 | FromDiscord | <[Next-System] systemblue> In reply to @nnsee "nobody said it is.": oh you are pentester ↵and my friend is learning hacking too and he always said that memory and type issue are one of primary bugs |
| 20:38:41 | FromDiscord | <mr_rowboto> In reply to @nnsee "it's not "zig allows": Every single language allows that. |
| 20:38:43 | FromDiscord | <[Next-System] systemblue> In reply to @nnsee "it's not "zig allows": I agree |
| 20:38:49 | FromDiscord | <mr_rowboto> Except for the vm'ed ones |
| 20:39:00 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "Every single language allows": no Nim and Rust' |
| 20:39:05 | FromDiscord | <mr_rowboto> If we really wanted to scrap the "security issues", we'd be running on vm's. |
| 20:39:11 | FromDiscord | <mr_rowboto> In reply to @bluewhale_unkown_x "no Nim and Rust'": Nim? |
| 20:39:14 | FromDiscord | <[Next-System] systemblue> s memory management strategy do not allowed it |
| 20:39:21 | FromDiscord | <mr_rowboto> I can segfault on nim much easier than on rust. |
| 20:39:40 | FromDiscord | <mr_rowboto> It was the first thing I did with the lang I think haha |
| 20:39:48 | FromDiscord | <[Next-System] systemblue> but it's true that any language can be segfaulted |
| 20:40:15 | FromDiscord | <[Next-System] systemblue> even Rust, even Ada can do that |
| 20:40:20 | FromDiscord | <mr_rowboto> What I'm saying is not that the statement is false.↵I'm saying the statement is meaningless compared to actuall issues from the real world. |
| 20:40:37 | FromDiscord | <[Next-System] systemblue> but language has tendency |
| 20:40:41 | FromDiscord | <[Next-System] systemblue> safe or unsafe |
| 20:40:46 | FromDiscord | <mr_rowboto> In reply to @bluewhale_unkown_x "even Rust, even Ada": Well, javascript won't segfault. |
| 20:40:57 | FromDiscord | <mr_rowboto> (unless a vuln is found ofc) |
| 20:41:15 | FromDiscord | <[Next-System] systemblue> I know that Javascript has other problem, type issue |
| 20:41:25 | FromDiscord | <mr_rowboto> sure, let's ignore that |
| 20:41:28 | FromDiscord | <[Next-System] systemblue> and also javascript can be weak at some point |
| 20:41:30 | FromDiscord | <mr_rowboto> we can take another similar lang |
| 20:41:53 | FromDiscord | <[Next-System] systemblue> many javascript backend are attacked by memory voluble |
| 20:42:05 | FromDiscord | <nnsee> In reply to @mr_rowboto "Every single language allows": no, actually, most of the most widely used languages in the world _don't_ allow that (at least unless you start manually poking at the internals), notably Java, Python, JS, perl, or if you're looking specifically at compiled languages, Go |
| 20:42:12 | FromDiscord | <[Next-System] systemblue> I think language has tendency,↵safe language, unsafe language |
| 20:42:37 | FromDiscord | <mr_rowboto> In reply to @nnsee "no, actually, most of": Which is exactly what I'm saying, but there is a reason why we use nim, rust, go etc. |
| 20:42:42 | FromDiscord | <mr_rowboto> (edit) "saying," => "saying above," |
| 20:43:02 | FromDiscord | <mr_rowboto> Btw, are you 100% sure Go can't be broken? |
| 20:43:11 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "Btw, are you 100%": I can't sure it |
| 20:43:12 | FromDiscord | <mr_rowboto> (without a bug that is) |
| 20:43:14 | FromDiscord | <nnsee> In reply to @mr_rowboto "If we really wanted": most of the world does! |
| 20:43:31 | FromDiscord | <mr_rowboto> exactly |
| 20:43:37 | FromDiscord | <mr_rowboto> then why use Rust huh? |
| 20:43:42 | FromDiscord | <mr_rowboto> (or nim) |
| 20:43:46 | FromDiscord | <[Next-System] systemblue> I think language has tendency, safe language and unsafe language |
| 20:43:57 | FromDiscord | <nnsee> In reply to @mr_rowboto "Btw, are you 100%": not at all, but i've rarely ever if ever heard of a memory corruption issue in standard go code (barring actual go runtime bugs) |
| 20:44:00 | FromDiscord | <[Next-System] systemblue> Rust, Ada, Nim is safe language↵and C, C++, Zig are unsafe language |
| 20:44:15 | FromDiscord | <[Next-System] systemblue> (edit) "Nim" => "Nim, Swift" |
| 20:44:25 | FromDiscord | <[Next-System] systemblue> (edit) "is" => "are" |
| 20:44:32 | FromDiscord | <mr_rowboto> In reply to @nnsee "not at all, but": I haven't programmed much in go lately but I am under the impression that it can be destroyed. |
| 20:44:37 | FromDiscord | <mr_rowboto> I can almost assure you I have done it. |
| 20:44:53 | FromDiscord | <mr_rowboto> But I'd be lying if I say I'm sure. |
| 20:45:18 | FromDiscord | <[Next-System] systemblue> In reply to @nnsee "not at all, but": yes it rarely appears but it appears |
| 20:46:07 | FromDiscord | <mr_rowboto> The point I'm making here is that the phrasing is disingenuous becuse it is designed to impact every single 'compiled to native' language out there except for Rust, and at the same time, it covers only a very small surface of what actual 'security' is. |
| 20:46:21 | FromDiscord | <mr_rowboto> And I'm pretty sure everyone would agree on that. |
| 20:46:37 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "The point I'm making": and why do you think Rust is exception |
| 20:46:53 | FromDiscord | <mr_rowboto> Becuse it's designed to bem, that's great. |
| 20:46:54 | FromDiscord | <nnsee> just to be clear i didn't see anyone mention rust until you mentioned it out of the blue |
| 20:47:00 | FromDiscord | <mr_rowboto> In reply to @nnsee "just to be clear": I did. |
| 20:47:01 | FromDiscord | <[Next-System] systemblue> Rust has safety issue ↵I know that Rust can't even collect reference cycle |
| 20:47:10 | FromDiscord | <mr_rowboto> The reference to rust was obvious. |
| 20:47:15 | FromDiscord | <mr_rowboto> But yea, I brought that here. |
| 20:47:24 | FromDiscord | <ashish> does anyone wonder why nim did not get same traction as Rust ? |
| 20:47:45 | FromDiscord | <nnsee> no specific niche and no aggressive backing and PR |
| 20:48:02 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "The reference to rust": and Rust's memory model and Nim's memory model is similar (two lang is RC lang and it check ownership too) |
| 20:48:23 | FromDiscord | <mr_rowboto> But you know the statement is a "Bed of Procrustes" Ras.↵You know _perfectly_ that the phrasing was designed to highlight Rust... and also know _perfectly_ that memory safety is a veeeery small portion. |
| 20:48:32 | FromDiscord | <mr_rowboto> (https://en.wikipedia.org/wiki/The_Bed_of_Procrustes) |
| 20:48:51 | FromDiscord | <mr_rowboto> (edit) "(https://en.wikipedia.org/wiki/The_Bed_of_Procrustes)" => "(https://en.wikipedia.org/wiki/Procrustes)" |
| 20:49:13 | FromDiscord | <nnsee> well, you must think me smarter than i am, because i for sure didn't read out that they were specifically implying rust with that comment about zig's memory model |
| 20:49:15 | FromDiscord | <mr_rowboto> (edit) "portion." => "portion of what safety is." |
| 20:49:21 | FromDiscord | <[Next-System] systemblue> nim does not make segfault while you are using ref or var↵if you use pointer, it's unsafe ↵but nim does not make memory voluble in common programming sytle |
| 20:50:08 | FromDiscord | <mr_rowboto> In reply to @nnsee "well, you must think": Which other language that can be compared to zig or nim does not have those """"issues"""" with their memory model? 😛 |
| 20:50:16 | FromDiscord | <mr_rowboto> Go? 😛 |
| 20:50:30 | FromDiscord | <mr_rowboto> There are veeery few players in the playfield. |
| 20:50:46 | FromDiscord | <shalokshalom> In reply to @nnsee "not at all, but": I would assume Google cares for software that runs their business. |
| 20:50:59 | FromDiscord | <shalokshalom> In reply to @mr_rowboto "There are veeery few": There are lots. |
| 20:51:18 | FromDiscord | <[Next-System] systemblue> sent a long message, see https://pasty.ee/cSOdJwpp |
| 20:51:18 | FromDiscord | <mr_rowboto> No, there are not lots of systems programming languages that are actually used. |
| 20:51:31 | FromDiscord | <shalokshalom> In reply to @bluewhale_unkown_x "zig and nim are": Nim has a bunch of options |
| 20:51:41 | FromDiscord | <mr_rowboto> In reply to @shalokshalom "Nim has a bunch": yep |
| 20:51:42 | FromDiscord | <shalokshalom> Probably the most of any programming language |
| 20:51:48 | FromDiscord | <mr_rowboto> that's true |
| 20:51:51 | FromDiscord | <[Next-System] systemblue> In reply to @shalokshalom "Nim has a bunch": yeah it's true |
| 20:51:56 | FromDiscord | <mr_rowboto> ARC/ORC/fuck it |
| 20:51:57 | FromDiscord | <[Next-System] systemblue> but I'm only thinking with ORC |
| 20:52:01 | FromDiscord | <shalokshalom> At least of the production ready ones. |
| 20:52:11 | FromDiscord | <[Next-System] systemblue> nim is weak in none memory model |
| 20:52:13 | FromDiscord | <shalokshalom> There is also a borrow checker comming. |
| 20:52:18 | FromDiscord | <mr_rowboto> 'fuck it' memory managment is a fun concept |
| 20:52:23 | FromDiscord | <shalokshalom> Although I like that one of Cpp2. |
| 20:52:38 | FromDiscord | <[Next-System] systemblue> I'm saying that Rust has weak point, Rust can't collect reference cycle automatically |
| 20:52:50 | FromDiscord | <mr_rowboto> In reply to @bluewhale_unkown_x "I'm saying that Rust": nor can nim |
| 20:52:57 | FromDiscord | <shalokshalom> In reply to @mr_rowboto "No, there are not": Which is, btw, one of the options of languages that are usable. |
| 20:52:59 | FromDiscord | <mr_rowboto> which is why ARC/ORC right? |
| 20:53:08 | FromDiscord | <[Next-System] systemblue> Nim can collect reference cycle in ORFC |
| 20:53:09 | FromDiscord | <shalokshalom> ORC can |
| 20:53:18 | FromDiscord | <nnsee> In reply to @mr_rowboto "Which other language that": swift immediately comes to mind |
| 20:53:19 | FromDiscord | <shalokshalom> That's what the O is for. |
| 20:53:23 | FromDiscord | <[Next-System] systemblue> ORC is innovation |
| 20:53:28 | FromDiscord | <mr_rowboto> Oh sure |
| 20:53:32 | FromDiscord | <[Next-System] systemblue> O is ownership |
| 20:53:34 | FromDiscord | <mr_rowboto> In reply to @nnsee "swift immediately comes to": hmmmmm mMMMMMM |
| 20:53:35 | FromDiscord | <shalokshalom> Ada |
| 20:53:39 | FromDiscord | <[Next-System] systemblue> it's similar with Rust but upgraded |
| 20:53:42 | FromDiscord | <shalokshalom> So many. |
| 20:53:50 | FromDiscord | <[Next-System] systemblue> it can do parallel without atomic |
| 20:53:55 | FromDiscord | <[Next-System] systemblue> and thread-local heap |
| 20:54:09 | FromDiscord | <[Next-System] systemblue> and nim's type system is come from Ada |
| 20:54:19 | FromDiscord | <[Next-System] systemblue> Nim's quite safe language |
| 20:54:22 | FromDiscord | <shalokshalom> OCaml with extensions↵https://blog.janestreet.com/oxidizing-ocaml-ownership/ |
| 20:54:24 | FromDiscord | <mr_rowboto> If you tell me "Yeah we're _seriously_ programming this embedded application in Swift, no, it's not for anything apple", I will know that you went full loonie Ras. |
| 20:54:24 | FromDiscord | <[Next-System] systemblue> even then Rust in some point |
| 20:54:47 | FromDiscord | <mr_rowboto> And don't get me wrong, I love Swift. |
| 20:54:51 | FromDiscord | <mr_rowboto> It's a great lang. |
| 20:54:55 | FromDiscord | <nnsee> well now you're adding arbitrary constraints. why does it suddenly have to be embedded |
| 20:54:57 | FromDiscord | <mr_rowboto> But "who does that?" |
| 20:55:06 | FromDiscord | <mr_rowboto> In reply to @nnsee "well now you're adding": it doesn't have to |
| 20:55:11 | FromDiscord | <ash12355> never write rust . |
| 20:55:14 | FromDiscord | <mr_rowboto> I put that as an example of systems prog |
| 20:55:29 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "And don't get me": Swift can't even collect reference cycle and it's type system is weaker than NIm |
| 20:55:34 | FromDiscord | <shalokshalom> Lots of standard ML implementations like MLKit |
| 20:55:36 | FromDiscord | <[Next-System] systemblue> never write rust lol |
| 20:55:57 | FromDiscord | <shalokshalom> Swift is overrated as programming language and underrated as subject of research |
| 20:56:12 | FromDiscord | <shalokshalom> Its a very good language with a couple of very bad decisions |
| 20:56:17 | FromDiscord | <mr_rowboto> In reply to @shalokshalom "Swift is overrated as": because it's not that used. |
| 20:56:18 | FromDiscord | <ash12355> I feel language wars are over now with AI. |
| 20:56:19 | FromDiscord | <nnsee> /shrug there are and always will be different tools for different jobs, just pick the tool that makes the most sense for the job at hand |
| 20:56:26 | FromDiscord | <[Next-System] systemblue> and swift has no ownership right? |
| 20:56:34 | FromDiscord | <mr_rowboto> In reply to @nnsee "/shrug there are and": Of course I agree. |
| 20:56:34 | FromDiscord | <ash12355> I think nim is best for AI. |
| 20:56:40 | FromDiscord | <shalokshalom> Protocols are good, their implementation of a type inference is an insult to every researcher |
| 20:56:43 | FromDiscord | <[Next-System] systemblue> there's only two language that has ownership today, nim and rust |
| 20:57:00 | FromDiscord | <shalokshalom> In reply to @bluewhale_unkown_x "there's only two language": That's not really true |
| 20:57:05 | FromDiscord | <shalokshalom> I just named Cpp2. |
| 20:57:09 | FromDiscord | <shalokshalom> And there are more. |
| 20:57:20 | FromDiscord | <[Next-System] systemblue> you mean Nim and Rust are C++ 2? |
| 20:57:23 | FromDiscord | <[Next-System] systemblue> what the... |
| 20:57:26 | FromDiscord | <shalokshalom> No |
| 20:57:29 | FromDiscord | <shalokshalom> Cpp2 is Cpp2 |
| 20:57:33 | FromDiscord | <ash12355> In reply to @bluewhale_unkown_x "there's only two language": rust somehow gimmick-ed everyone. |
| 20:57:36 | FromDiscord | <[Next-System] systemblue> oh |
| 20:57:38 | FromDiscord | <shalokshalom> The compiler is called cppfront |
| 20:57:41 | FromDiscord | <[Next-System] systemblue> Cpp2 is ownership? |
| 20:57:44 | FromDiscord | <mr_rowboto> In reply to @nnsee "swift immediately comes to": Hmm but then again, wait... swift should be super easy to segfault. |
| 20:57:51 | FromDiscord | <mr_rowboto> Like SUPER easy. |
| 20:57:55 | FromDiscord | <nnsee> "if cpp is so great why isn't there a cpp 2" |
| 20:57:57 | FromDiscord | <shalokshalom> Done by one of the most prominent figures in the Cpp community |
| 20:58:04 | FromDiscord | <shalokshalom> Who is a real Gem of a presenter |
| 20:58:19 | FromDiscord | <[Next-System] systemblue> In reply to @nnsee ""if cpp is so": yeah C++ has so many problem and that's why there's cpp2 |
| 20:58:50 | FromDiscord | <shalokshalom> In reply to @bluewhale_unkown_x "Cpp2 is ownership?": In an arguably better way than Rust, but I think the Nim approach may even be(come) better than both of them. |
| 20:58:55 | FromDiscord | <nnsee> In reply to @mr_rowboto "Hmm but then again,": i don't write a lot of swift code but that's not the impression i've gotten so far, considering they have a separate `Unsafe` interface for unsafe ops |
| 20:59:00 | FromDiscord | <shalokshalom> Cpp2 as a whole is an interesting language. |
| 20:59:12 | FromDiscord | <ash12355> Rust only got traction because of mozilla and msft backing. |
| 20:59:14 | FromDiscord | <mr_rowboto> In reply to @nnsee "i don't write a": Ok, I don't either, and I read the manual eons ago. |
| 20:59:31 | FromDiscord | <ash12355> it's a shitshow. |
| 20:59:32 | FromDiscord | <mr_rowboto> I'm almost sure it's not rust levels of safety. |
| 20:59:36 | FromDiscord | <shalokshalom> No, Swift is an Apple language, and if Apple knows ONE THING then its security. |
| 20:59:38 | FromDiscord | <[Next-System] systemblue> and there's no language that can absolutely protect memory issue |
| 20:59:42 | FromDiscord | <[Next-System] systemblue> but it's tendency |
| 20:59:48 | FromDiscord | <mr_rowboto> In reply to @shalokshalom "No, Swift is an": ehh... |
| 20:59:49 | FromDiscord | <mr_rowboto> no |
| 20:59:49 | FromDiscord | <mr_rowboto> hahaha |
| 20:59:58 | FromDiscord | <nnsee> In reply to @shalokshalom "No, Swift is an": not sure if this is tongue in cheek or not but... lol |
| 21:00:12 | FromDiscord | <shalokshalom> https://github.com/qwaz/rust-cve |
| 21:00:16 | FromDiscord | <mr_rowboto> laughs in _the fappening_ |
| 21:00:17 | FromDiscord | <mr_rowboto> (edit) "" => "¬" |
| 21:00:20 | FromDiscord | <shalokshalom> In reply to @mr_rowboto "I'm almost sure it's": No, its much better |
| 21:00:25 | FromDiscord | <mr_rowboto> (edit) "¬" => "" |
| 21:00:37 | FromDiscord | <shalokshalom> Rust is ok, Swift is better, and Ada potentially the most secure one. |
| 21:00:46 | FromDiscord | <mr_rowboto> memory secure |
| 21:00:59 | FromDiscord | <mr_rowboto> Security does not come from the memory model. |
| 21:01:08 | FromDiscord | <shalokshalom> In reply to @nnsee "not sure if this": I know how they code the stuff that's under NDA. |
| 21:01:28 | FromDiscord | <shalokshalom> And they have a very fine track record. You can blame them for a lot, but not that. |
| 21:01:33 | * | ash_ joined #nim |
| 21:01:41 | FromDiscord | <shalokshalom> In reply to @mr_rowboto "Security does not come": I am aware about that. |
| 21:01:49 | FromDiscord | <shalokshalom> Its one part of security. |
| 21:01:51 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "I'm almost sure it's": I think nim's safety is similar with Rust and even good at some time |
| 21:01:58 | FromDiscord | <mr_rowboto> a _small_ part of security |
| 21:02:00 | FromDiscord | <mr_rowboto> very small |
| 21:02:13 | FromDiscord | <shalokshalom> Probably better after Nimony |
| 21:02:21 | FromDiscord | <shalokshalom> and potentially less so than today |
| 21:02:29 | FromDiscord | <mr_rowboto> In reply to @bluewhale_unkown_x "I think nim's safety": Well, memory safety for Rust is "better" always, because Nim does not handle lifetimes. |
| 21:02:32 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "a _small_ part of": and what point that do you think Rust is safe↵without memory management, |
| 21:02:34 | FromDiscord | <shalokshalom> In reply to @mr_rowboto "a _small_ part of": Its a large part of actual exploits. |
| 21:02:52 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "Well, memory safety for": Nim has life time too ↵at var, ref |
| 21:02:52 | FromDiscord | <shalokshalom> Most critical security issues are memory related for a long time. |
| 21:03:00 | FromDiscord | <mr_rowboto> In reply to @shalokshalom "Its a large part": check the msgs by Ras above, it's very small |
| 21:03:03 | FromDiscord | <[Next-System] systemblue> but it's not showed |
| 21:03:05 | FromDiscord | <shalokshalom> And that changes only in the last years. |
| 21:03:23 | FromDiscord | <shalokshalom> In reply to @mr_rowboto "check the msgs by": Its not. And especially not among C and C++ code. |
| 21:04:02 | FromDiscord | <mr_rowboto> In reply to @bluewhale_unkown_x "Nim has life time": rust lifetime is far more strict, the lifetime management forces what can and can't be passed as arguments |
| 21:04:04 | FromDiscord | <mr_rowboto> (edit) "rust" => "Rust" |
| 21:04:16 | FromDiscord | <mr_rowboto> which is essentially why you can very easily segfault on nim |
| 21:04:23 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "check the msgs by": and what point do you think Rust's safety is better than Nim↵don't say just "Rust is safer than Nim"↵say which point is safer |
| 21:04:24 | FromDiscord | <mr_rowboto> and it's not that easy to segfault on rust |
| 21:04:38 | FromDiscord | <mr_rowboto> In reply to @bluewhale_unkown_x "and what point do": lifetimes. |
| 21:04:46 | FromDiscord | <eebahn> In reply to @shalokshalom "": You still need to call `NimMain` at some point, afaik, or nothing in the language will work |
| 21:04:50 | FromDiscord | <ash12355> In reply to @mr_rowboto "which is essentially why": it's an unnecessary rule |
| 21:04:56 | FromDiscord | <mr_rowboto> Even so I don't like lifetimes. |
| 21:04:59 | FromDiscord | <mr_rowboto> (edit) "so" => "so," |
| 21:05:03 | FromDiscord | <mr_rowboto> In reply to @ash12355 "it's an unnecessary rule": I agree. |
| 21:05:07 | FromDiscord | <shalokshalom> https://www.chromium.org/Home/chromium-security/memory-safety/ |
| 21:05:24 | FromDiscord | <shalokshalom> https://media.discordapp.net/attachments/371759389889003532/1481397655023386634/piechart.png?ex=69b32a93&is=69b1d913&hm=981a4643312bab163353e23463fa704a07a366cbf19f0325426b43e188d8409c& |
| 21:05:32 | FromDiscord | <shalokshalom> https://www.ibm.com/think/news/memory-safe-programming-languages-security-bugs?utm_source=perplexity |
| 21:05:51 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "lifetimes.": Nim's life time is automatic and it's not unsafe↵most time, nim's life time is oversafe |
| 21:06:06 | FromDiscord | <mr_rowboto> In reply to @bluewhale_unkown_x "Nim's life time is": It's very very easy to segf on nim. |
| 21:06:14 | FromDiscord | <shalokshalom> In reply to @eebahn "You still need to": ok, I saw very little to no documentation about this flag, that snippet that I posted was the only one, besides some issues. |
| 21:06:49 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "It's very very easy": and I don't know Rust but I think Rust may be similar if I learn Rust and find way |
| 21:06:53 | FromDiscord | <nnsee> In reply to @shalokshalom "I know how they": this is tangentially related, but this made me thing and i realized that my memory exploitation journey started way back when with webkit, which is just absolutely notorious for having safety issues and was a common entry point for userland exploits for game consoles etc, most of which used (and still do) webkit for their browsers |
| 21:07:02 | FromDiscord | <nnsee> (edit) "thing" => "think" |
| 21:07:05 | FromDiscord | <[Next-System] systemblue> NIm's common programming style does not make segfault |
| 21:07:06 | FromDiscord | <mr_rowboto> In reply to @bluewhale_unkown_x "and I don't know": I have coded in both Rust and nim, they're not similar. |
| 21:07:27 | FromDiscord | <mr_rowboto> Hey, blue, we can continue in offtopic if you want, because we're mixing convos. |
| 21:07:34 | FromDiscord | <mr_rowboto> and it's a PITA |
| 21:07:55 | FromDiscord | <shalokshalom> In reply to @nnsee "this is tangentially related,": Do you know the blog, that posts such an article for every single one of critical CVEs caused by C/C++? |
| 21:08:23 | FromDiscord | <nnsee> it's hard to overstate how unsafe webkit is. it's kind of become a running joke in the binary exploitation community |
| 21:08:35 | FromDiscord | <nnsee> In reply to @shalokshalom "Do you know the": not sure which one you mean specifically |
| 21:08:42 | FromDiscord | <nnsee> or if this is rhetorical or what |
| 21:08:54 | FromDiscord | <eebahn> sent a long message, see https://pasty.ee/OCuEYATI |
| 21:09:18 | FromDiscord | <[Next-System] systemblue> In reply to @mr_rowboto "I have coded in": and you can't make segfault error without using ptr in release mode↵if danger mode and using ptr it can have segfault error but |
| 21:09:56 | FromDiscord | <[Next-System] systemblue> @mr_rowboto and I know that Rust can have deep recursion attack too |
| 21:10:12 | FromDiscord | <eebahn> In reply to @shalokshalom "ok, I saw very": Yea, much like `--mm:none`, the "no abstractions" workflow of nim is severly underdeveloped and undocumented (and also buggy as hell, been bitten by that already) |
| 21:10:45 | FromDiscord | <mr_rowboto> In reply to @eebahn "<@176460389662457856> <@208199869301522432> Missed ": Agreed. |
| 21:11:07 | FromDiscord | <shalokshalom> That's a nice one.↵↵https://h.within.lgbt/ |
| 21:11:16 | FromDiscord | <shalokshalom> h is completely memory safe with no garbage collector or heap allocations. It does not allow memory leaks to happen, nor do any programs in h have the possibility to allocate memory. |
| 21:11:36 | FromDiscord | <shalokshalom> In reply to @eebahn "Yea, much like `--mm:none`,": Yeah, generally an issue with Nim, docs and internal stability. |
| 21:14:37 | FromDiscord | <asviest> In reply to @mr_rowboto "Just test your software": Ugh, I like static analysis instead |
| 21:16:09 | FromDiscord | <mr_rowboto> In reply to @asviest "Ugh, I like static": the more the better |
| 21:16:30 | * | ash_ quit (Quit: Konversation terminated!) |
| 21:17:31 | FromDiscord | <nnsee> In reply to @shalokshalom "That's a nice one.": finally, the perfect language https://h.within.lgbt/grammar/h.peg |
| 21:18:40 | * | ash_ joined #nim |
| 21:19:25 | FromDiscord | <asviest> In reply to @mr_rowboto "Is it desirable? Yeah,": Btw, swapping c++ to c magicaly make code safer (especially with good tests) |
| 21:19:47 | FromDiscord | <shalokshalom> In reply to @nnsee "finally, the perfect language": No, sure not. |
| 21:19:52 | FromDiscord | <shalokshalom> Ours is better 😋 |
| 21:21:26 | FromDiscord | <shalokshalom> In reply to @nnsee "finally, the perfect language": I think that code which is less readable than common language, to have failed at designing the language.↵↵Which happens to be every single language, but Nim is actually one of the most readable imho. |
| 21:23:16 | FromDiscord | <nnsee> (to be clear that is the entire language grammar definition, not h code itself) |
| 21:23:17 | FromDiscord | <shalokshalom> You can't really that it does what it says, since the docs are outdated, or non-existent, and the compiler may fail here and there, but the code is at least very clear to read.↵↵And a compiler can be fixed. But try to fix an entire ecosystem full of code that takes you much more time to jump back in, and continue where you left. |
| 21:23:33 | FromDiscord | <shalokshalom> In reply to @nnsee "(to be clear that": LoL |
| 21:24:18 | FromDiscord | <shalokshalom> In reply to @nnsee "(to be clear that": The imported repo is 404 |
| 21:24:28 | FromDiscord | <shalokshalom> Where did you read that? |
| 21:30:01 | * | rockcavera joined #nim |
| 21:57:48 | FromDiscord | <asviest> In reply to @shalokshalom "That's a nice one.": A => B => C => D => E => F# => h programming language |
| 21:58:49 | FromDiscord | <asviest> (edit) "In reply to @shalokshalom "That's a nice one.": A => B => C => D => E => F# => ... h" added "G =>" |
| 22:17:11 | * | amadaluzia joined #nim |
| 22:30:27 | FromDiscord | <[Next-System] systemblue> hey Nim's embedded and security channel is nearly dead |
| 22:30:29 | FromDiscord | <[Next-System] systemblue> QQ |
| 22:36:57 | * | ash_ quit (Quit: Konversation terminated!) |
| 22:38:36 | FromDiscord | <kapendev> Well, write a project and post it there! |
| 22:45:13 | FromDiscord | <transclusivity> In reply to @mr_rowboto "I'll repeat myself: if": I think the point is to have the guardrails without the lack of control, crappy design, and other downsides |
| 23:20:00 | FromDiscord | <shalokshalom> Effortless security |