00:04:27 | FromDiscord | <luteva> sent a long message, see http://ix.io/4kdo |
00:04:47 | FromDiscord | <luteva> (edit) "http://ix.io/4kdo" => "http://ix.io/4kdp" |
00:05:00 | * | krux02_ quit (Remote host closed the connection) |
00:05:10 | * | DarrylTheFish quit (Remote host closed the connection) |
00:05:26 | FromDiscord | <Elegantbeef> It's not cause type def macros cannot implement procedures |
00:05:37 | FromDiscord | <Elegantbeef> So until nim2.0 that's all you get |
00:05:47 | FromDiscord | <Elegantbeef> In nim 2.0 defaults is a feature |
00:05:48 | FromDiscord | <Elegantbeef> Doesnt even require the annotation |
00:08:35 | FromDiscord | <luteva> In reply to @Elegantbeef "It's not cause type": why not? I mean you can create procedures and call them from a macro, right? wouldn't it be possible like this? |
00:08:54 | FromDiscord | <Elegantbeef> cause the compiler doesnt allow it? |
00:10:18 | FromDiscord | <Elegantbeef> You cannot create a procedure with a typedefinition macro |
00:10:22 | FromDiscord | <Elegantbeef> It's just a fact |
00:10:43 | FromDiscord | <luteva> so the macros (and the AST you can build there) are restricted to the current scope, right? |
00:11:13 | FromDiscord | <Elegantbeef> Of course |
00:11:14 | FromDiscord | <luteva> you cannot "jump out of the scope" within the macro? |
00:12:15 | FromDiscord | <Elegantbeef> Well with typesection macros there are two issues |
00:13:04 | FromDiscord | <Elegantbeef> You need/want type information so they need to be typed which is not presently implemented, and secondly you cannot emit a procedure with them inside a typesection |
00:13:27 | FromDiscord | <Elegantbeef> If i could've made it like nim's new implicit defaults i obviously would've |
00:16:12 | FromDiscord | <luteva> ok thanks a lot!↵afaik nim new default declaration doesn't allow a procedure for generating the default value so this won't be usable in some/many cases. so i probably would still use the defaults pragma 🙂 |
00:17:29 | FromDiscord | <Elegantbeef> `default(MyType)` works with it |
00:18:43 | FromDiscord | <Elegantbeef> defaults doesnt work with it, so compiler support is magic |
00:18:50 | NimEventer | New post on r/nim by His_son: I can’t for the life of me find a rsa encryption library, see https://reddit.com/r/nim/comments/101siu9/i_cant_for_the_life_of_me_find_a_rsa_encryption/ |
00:19:27 | FromDiscord | <luteva> ok i only tried using a ulid/uuid lib for genrating the default value and that didn't work (although the syntax seemed to be ok). but i didn't looked deeper into that problem. |
00:20:19 | FromDiscord | <luteva> (edit) "(although" => "using the new nim version(although" |
00:21:06 | FromDiscord | <T0lk1en> Hey guys is there an actively maintained rsa encryption library |
00:22:33 | FromDiscord | <Elegantbeef> bearssl seems to have `rsa` |
00:22:52 | FromDiscord | <Elegantbeef> It's all lowlevel api though |
00:22:57 | FromDiscord | <Elegantbeef> Atleast status' is |
00:23:10 | FromDiscord | <Elegantbeef> https://github.com/status-im/nim-bearssl/blob/master/bearssl/abi/bearssl_rsa.nim |
00:23:15 | FromDiscord | <Elegantbeef> I assume openssl also has rsa |
00:24:28 | FromDiscord | <jtv> OpenSSL does support it, but why would you use RSA? Even TLS has gotten rid of it |
00:25:03 | FromDiscord | <jtv> It's so easy to mess up, and it's no longer best practice for anything. Most things only still use it in the context of digital signatures. |
00:25:25 | FromDiscord | <Elegantbeef> Hey dont look at me, the only cryptography I've used is a ceaser cipher 😄 |
00:25:36 | FromDiscord | <jtv> I'm not, I'm looking at him 🙂 |
00:26:00 | FromDiscord | <T0lk1en> What would you recommend then? |
00:26:10 | FromDiscord | <jtv> What are you trying to do, and why isn't TLS suitable for it? |
00:26:20 | FromDiscord | <T0lk1en> Password manager |
00:26:33 | FromDiscord | <T0lk1en> I’m super new what’s tls |
00:26:35 | FromDiscord | <jtv> You're trying to build a password manager? |
00:26:40 | FromDiscord | <T0lk1en> Yessir |
00:26:52 | FromDiscord | <T0lk1en> And I need a way to encrypt the file that stores the passwords |
00:27:38 | FromDiscord | <jtv> I'd strongly advise you against it, there are so many subtleties to doing it right. For instance, you will need some sort of PRF that protects against brute-forcing the master password. |
00:27:39 | FromDiscord | <Rika> I already said RSA is a poor choice for this in the reddit post |
00:28:03 | FromDiscord | <Rika> There’s a lot of thought that would go into this |
00:28:27 | FromDiscord | <T0lk1en> I just want to practice |
00:28:50 | FromDiscord | <jtv> Then, you're better off starting with something more basic to be honest. What do you want to learn? |
00:29:07 | FromDiscord | <T0lk1en> My major will be cyber security |
00:29:24 | FromDiscord | <T0lk1en> So I guess stuff like that |
00:29:49 | FromDiscord | <T0lk1en> I’ve made a couple programs. A calculator, a program that Rick rolls you, a notes taking app. |
00:30:20 | FromDiscord | <Rika> In reply to @T0lk1en "My major will be": Are you already in a class for such |
00:30:32 | FromDiscord | <T0lk1en> I start this summer |
00:30:36 | FromDiscord | <jtv> Which program? |
00:34:31 | FromDiscord | <jtv> Anyway, I'd start with USING out-of-the box cryptography to do something useful first, then get deep in understanding something about it that interests you |
00:34:55 | FromDiscord | <jtv> For instance, start w/ a simple client-server app using TLS, making sure it actually does proper certificate validation. |
00:35:25 | FromDiscord | <jtv> Then, this last semester, I had my students implement a minimal subset of TLS 1.3 actually, it wasn't too bad |
00:35:50 | FromDiscord | <cow> doesn't NaCl/libsodium have constructs for most use cases |
00:35:57 | FromDiscord | <cow> so you don't need to think about picking algos |
00:36:05 | FromDiscord | <cow> (edit) "algos" => "algos/combining them into schemes" |
00:36:17 | FromDiscord | <jtv> Yeah, frankly, TLS is going to suffice for 95% of what people want to do. |
00:36:30 | FromDiscord | <T0lk1en> Cyber security/information assurance |
00:36:47 | FromDiscord | <jtv> I meant what school, but whatever 🙂 |
00:37:34 | FromDiscord | <cow> In reply to @T0lk1en "Cyber security/information assurance": i recommend the blog dhole moments https://soatok.blog/ |
00:37:36 | FromDiscord | <cow> you might like it |
00:37:42 | FromDiscord | <Rika> In reply to @jtv "I meant what school,": Inb4 you the prof and you fail them for divulging sensitive info |
00:37:51 | FromDiscord | <huantian> In reply to @cow "i recommend the blog": their ocs are cute |
00:38:26 | FromDiscord | <Rika> In reply to @cow "i recommend the blog": Oh this dude |
00:38:30 | FromDiscord | <Rika> Cool aristos |
00:38:34 | FromDiscord | <jtv> TLS has several big advantages over the libsodium secretsbox, but one is algorithm redundancy. Most symmetric crypto relies on an underlying assumption that the core algorithm isn't broken, but occasionally we find they are, in which case TLS makes it much easier to swap to the next algorithm |
00:38:35 | FromDiscord | <Rika> Fuck |
00:38:42 | FromDiscord | <Rika> Write ups |
00:39:03 | FromDiscord | <huantian> what do you not like about write ups lmao |
00:39:10 | FromDiscord | <Rika> I miswrote it |
00:39:14 | FromDiscord | <Rika> In reply to @Rika "Cool aristos": Here |
00:39:19 | FromDiscord | <huantian> ah |
00:39:24 | FromDiscord | <huantian> ohhh |
00:39:26 | FromDiscord | <jtv> Though I trust Dan's code a lot more than the OpenSSL code base, which is sheer garbage 🙂 |
00:39:28 | FromDiscord | <huantian> lol |
00:39:30 | FromDiscord | <Rika> Swipe keyboard |
00:39:38 | FromDiscord | <Rika> Lol |
00:39:46 | FromDiscord | <cow> In reply to @jtv "Though I trust Dan's": would static linking LibreSSL solve that issue |
00:39:46 | FromDiscord | <T0lk1en> So what would be a useful. Cyber security related program to write. I hate writing programs that are just proof of concepts I want them to be useful |
00:39:59 | FromDiscord | <Rika> In reply to @cow "would static linking LibreSSL": I don’t see how |
00:40:10 | FromDiscord | <cow> if you use it instead of openSSL |
00:40:25 | FromDiscord | <Rika> Oh I misread |
00:40:40 | FromDiscord | <Rika> It could if you’re fine with an older version compatibility |
00:40:53 | FromDiscord | <jtv> I haven't looked at the libreSSL code, but I think most TLS implementations are a lot more sane than OpenSSL these days |
00:41:32 | FromDiscord | <jtv> Tho the ones that are forks still are unlikely to have fixed the absolutely overwraught byzantine nature of the code |
00:41:47 | FromDiscord | <T0lk1en> In reply to @T0lk1en "So what would be": What do you guys think? |
00:42:26 | FromDiscord | <jtv> Seriously, I wrote the OpenSSL book about 20 years ago and it made me hate the library. I have gone looking recently in the code and it's not significantly improved 🙂 |
00:42:32 | FromDiscord | <huantian> In reply to @Rika "Lol": but yeah protos are cute |
00:42:40 | FromDiscord | <Rika> In reply to @T0lk1en "What do you guys": You could morph the client server idea into “write a basic browser that just prints the source code of the page, but can connect to HTTPS pages” |
00:42:42 | FromDiscord | <cow> whonix's application launcher is an interesting project imo |
00:43:01 | FromDiscord | <cow> if I actually majored in cyber security I would probably be contributing to it |
00:43:08 | FromDiscord | <jtv> Yeah, I think you could also start with finding an existing project and contributing bits to it |
00:43:14 | FromDiscord | <T0lk1en> In reply to @Rika "You could morph the": What does this mean. |
00:43:18 | FromDiscord | <Rika> In reply to @cow "if I actually majored": Sounds like it’s time to switch xd |
00:43:23 | FromDiscord | <T0lk1en> In reply to @jtv "Yeah, I think you": What projects would you recommend |
00:43:30 | FromDiscord | <jtv> Trying to pick off the tickets that are good first issues, learn more, and do more complicated things over time |
00:43:35 | FromDiscord | <jtv> Depends on where your interests lie |
00:43:45 | FromDiscord | <cow> In reply to @Rika "You could morph the": but that's a proof of concept... |
00:43:49 | FromDiscord | <jtv> If you are interested in password managers, the open source one I've seen used a bunch is GoPass |
00:43:58 | FromDiscord | <T0lk1en> Gotcha |
00:44:15 | FromDiscord | <cow> In reply to @jtv "If you are interested": I have to mention bitwarden and keepass[x[c]] |
00:44:16 | FromDiscord | <T0lk1en> Thanks for the answers I’m sorry for being a dumbass just trying to learn |
00:44:19 | FromDiscord | <jtv> But if it's more generally cryptography, there are lots of ways you could take that |
00:44:31 | FromDiscord | <jtv> No, not a dumbass at all |
00:44:34 | FromDiscord | <Elegantbeef> Keepass is more popular ime |
00:44:54 | FromDiscord | <huantian> self-hosted bitwarden user |
00:44:55 | FromDiscord | <jtv> Just trying to steer you in a better, more productive direction for getting started |
00:44:58 | FromDiscord | <huantian> (edit) "self-hosted bitwarden user ... " added "here" |
00:45:00 | FromDiscord | <cow> keepassxc here |
00:45:37 | FromDiscord | <T0lk1en> I’ve used keepassxc in my time. I’ve also used tor, i2p, whonix, tails, and the xmpp messaging protocol before |
00:45:40 | FromDiscord | <cow> i agree that contributing to existing projects is good for actually being useful, and proof of concepts/rewriting from scratch is best for learning core concepts |
00:46:07 | FromDiscord | <T0lk1en> How do you find projects that could be contributed to by someone who knows little code |
00:46:32 | FromDiscord | <jtv> IDK I haven't seen a lot of keepass in a long time. You're the first people to mention it in quite a while 🙂 |
00:46:35 | FromDiscord | <cow> there is a ton to contribute to documentation in many projects, and it could be a good way to get familiar I guess? |
00:46:50 | FromDiscord | <Rika> In reply to @jtv "IDK I haven't seen": Really |
00:46:56 | FromDiscord | <jtv> Yup |
00:46:56 | NimEventer | New post on r/nim by serpentally: Could Nim be a complete replacement for Python?, see https://reddit.com/r/nim/comments/101t6ds/could_nim_be_a_complete_replacement_for_python/ |
00:46:59 | FromDiscord | <Rika> I thought it was pretty popular |
00:47:08 | FromDiscord | <T0lk1en> I’ve used it forever |
00:47:10 | FromDiscord | <Rika> In reply to @NimEventer "New post on r/nim": I mean sure |
00:47:12 | FromDiscord | <jtv> It was |
00:47:16 | FromDiscord | <cow> In reply to @jtv "IDK I haven't seen": nowadays people like Techlore, and sites like privacytools.io (now privacyguides.org) have popularized it I think |
00:47:53 | FromDiscord | <T0lk1en> What operating sustenance do you guys program on? |
00:47:55 | FromDiscord | <cow> probably KeepassXC is the popular fork |
00:47:58 | FromDiscord | <T0lk1en> Systems |
00:48:00 | FromDiscord | <Rika> In reply to @T0lk1en "What operating sustenance do": Lol |
00:48:15 | FromDiscord | <Rika> Linux |
00:48:15 | FromDiscord | <T0lk1en> Lol |
00:48:19 | FromDiscord | <cow> fedora |
00:48:22 | FromDiscord | <T0lk1en> Flavor? |
00:48:35 | FromDiscord | <huantian> NixOS |
00:48:57 | FromDiscord | <jtv> There are always circles for these things. I'm sure it's just not as cool in my circles anymore 🙂 |
00:49:01 | FromDiscord | <Rika> Arch base but I don’t really care as long as it isn’t Debian based I guess |
00:49:25 | FromDiscord | <Rika> In reply to @jtv "There are always circles": What does your circle use |
00:49:35 | FromDiscord | <huantian> circle? the kind you click? |
00:49:37 | FromDiscord | <Elegantbeef> Shit we're bragging about software we've used?! |
00:49:38 | FromDiscord | <Elegantbeef> I've uhhh used stuff |
00:49:45 | FromDiscord | <Rika> In reply to @huantian "circle? the kind you": Oi wait no |
00:49:47 | FromDiscord | <jtv> Frankly, in production, mainly like AWS's secrets manager or similar |
00:49:50 | FromDiscord | <cow> In reply to @huantian "circle? the kind you": the google+ kind |
00:50:01 | FromDiscord | <Rika> The clique (lol) kind |
00:50:12 | FromDiscord | <cow> there is a password manager which had a massive breach recently right |
00:50:21 | FromDiscord | <Rika> Last pass ? |
00:50:22 | FromDiscord | <jtv> But for home stuff, I know a few people who have mentioned GoPass, and a TON of people who were using stuff like LastPass who are now jumping to figure out what they should be doing |
00:50:22 | FromDiscord | <T0lk1en> Yeah lastpass |
00:50:30 | * | ehmry quit (Ping timeout: 272 seconds) |
00:50:53 | FromDiscord | <cow> i can't find GoPass, can you give a link? |
00:51:04 | FromDiscord | <cow> oh it's .pw |
00:51:08 | FromDiscord | <cow> nvm |
00:51:09 | FromDiscord | <jtv> But I've spent my whole career in security, and in more big tech circles. Like my last company had fastly, cloudflare, snowflake, spotify, etc. as customers |
00:51:31 | FromDiscord | <T0lk1en> Damn |
00:52:14 | FromDiscord | <cow> I don't like terminal password managers 😦 |
00:53:38 | FromDiscord | <jtv> Yeah, they're a usability nightmare for most people who prefer everything browser integrated. That's why the most common ones beyond the browser really are things like AWS secrets and Hashicorp's stuff, because there it's about infra automation not the end user |
00:56:20 | * | ehmry joined #nim |
01:05:36 | * | Guest17 joined #nim |
01:05:57 | * | Guest17 quit (Client Quit) |
01:06:21 | * | Nim joined #nim |
01:07:28 | Nim | Which VS Code Plugin is recommended? |
01:08:35 | * | Nim quit (Client Quit) |
01:08:58 | * | Answer joined #nim |
01:09:02 | * | Answer quit (Client Quit) |
01:09:37 | * | Guest1001 joined #nim |
01:11:14 | * | Guest1001 quit (Client Quit) |
01:11:52 | * | Guest1001 joined #nim |
01:11:57 | * | Guest1001 quit (Client Quit) |
01:14:43 | * | ltriant quit (Ping timeout: 268 seconds) |
01:15:25 | FromDiscord | <cow> nimsaem's is fine |
01:23:40 | * | Batzy joined #nim |
01:30:34 | * | ehmry quit (Ping timeout: 252 seconds) |
01:31:18 | * | ehmry joined #nim |
01:39:45 | * | ltriant joined #nim |
01:40:56 | FromDiscord | <auxym> yeah, saem's, the other one is abandoned IIRC |
01:44:55 | * | Batzy quit (Quit: No Ping reply in 180 seconds.) |
01:46:22 | * | Batzy joined #nim |
01:49:04 | * | nmz left #nim (Ploop) |
01:53:19 | * | ltriant quit (Ping timeout: 260 seconds) |
02:05:06 | * | Batzy quit (Quit: No Ping reply in 180 seconds.) |
02:06:32 | * | Batzy joined #nim |
02:17:58 | FromDiscord | <gabreal> sent a code paste, see https://play.nim-lang.org/#ix=4kdC |
02:21:21 | * | ltriant joined #nim |
02:27:08 | * | ltriant quit (Ping timeout: 246 seconds) |
02:28:36 | * | ltriant joined #nim |
02:35:32 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4kdD |
02:36:00 | FromDiscord | <Elegantbeef> What's the entire `initSingleton`? |
02:38:31 | FromDiscord | <gabreal> sent a code paste, see https://play.nim-lang.org/#ix=4kdE |
02:38:50 | FromDiscord | <gabreal> I changed the proc a bit |
02:40:10 | FromDiscord | <Elegantbeef> `key: key` |
02:40:26 | FromDiscord | <Elegantbeef> You're attempting to hold onto a openarray, that's only valid with views |
02:40:55 | FromDiscord | <Elegantbeef> you likely want `key: @key` |
02:41:39 | FromDiscord | <gabreal> I didn't even know you could do `@` |
02:41:46 | FromDiscord | <gabreal> (edit) "`@`" => "`@key`" |
02:41:48 | FromDiscord | <Elegantbeef> You used `@[..]` 😄 |
02:42:02 | FromDiscord | <Elegantbeef> `@` takes in `openArray` and converts it to a seq |
02:42:26 | FromDiscord | <huantian> In reply to @Elegantbeef "You used `@[..]` 😄": tbf that feels more like a special thing for array literals only |
02:42:51 | FromDiscord | <Elegantbeef> You're right we need to start doing `@ [...]` |
02:43:17 | NimEventer | New Nimble package! nimcorpora - A Nim interface for Darius Kazemi's Corpora Project, see https://github.com/neroist/nimcorpora |
02:43:17 | NimEventer | New Nimble package! pape - Pure Nim PE parsing library, see https://github.com/hdbg/pape |
02:43:17 | FromDiscord | <gabreal> In reply to @huantian "tbf that feels more": yeah it does |
02:56:43 | FromDiscord | <Rika> PE? |
02:56:56 | FromDiscord | <Elegantbeef> Portable executable i think |
02:57:16 | FromDiscord | <Rika> What a dumb acronym |
03:03:46 | FromDiscord | <ShalokShalom> In reply to @T0lk1en "What operating sustenance do": Garuda |
03:07:03 | FromDiscord | <ShalokShalom> I love when they use abbreviations that nobody explains anywhere 👀 |
03:13:04 | FromDiscord | <jtv> It's the windows object file format, has been for a really long time. |
03:13:34 | FromDiscord | <jtv> Pretty recognizable for people who have ever looked at object file formats 🙂 |
03:17:31 | FromDiscord | <Rika> I was thinking it was executable format related but it reallycould be anything |
03:17:37 | FromDiscord | <Rika> (edit) "reallycould" => "really could" |
03:25:17 | * | wallabra quit (Ping timeout: 246 seconds) |
03:32:41 | * | wallabra joined #nim |
03:36:33 | * | ltriant quit (Ping timeout: 268 seconds) |
03:37:34 | * | wallabra quit (Ping timeout: 265 seconds) |
03:40:04 | * | wallabra joined #nim |
03:45:11 | * | byanka quit (Ping timeout: 264 seconds) |
03:59:29 | * | ltriant joined #nim |
04:04:23 | * | ltriant quit (Ping timeout: 264 seconds) |
04:14:37 | * | ltriant joined #nim |
04:36:16 | * | arkurious quit (Quit: Leaving) |
04:37:10 | * | byanka joined #nim |
05:35:16 | * | ltriant quit (Ping timeout: 252 seconds) |
05:35:19 | FromDiscord | <Stuffe> Does someone know the call signature for overloading the slice operator? (I want to do something like `my_object[1..3]`) |
05:35:54 | * | ltriant joined #nim |
05:43:39 | FromDiscord | <demotomohiro> @Stuffe ↵You can found it on system module:↵https://nim-lang.org/docs/system.html#[],openArray[T],HSlice[U:%20Ordinal,V:%20Ordinal] |
05:45:37 | FromDiscord | <demotomohiro> And there are slice operators that return `HSlice`: https://nim-lang.org/docs/system.html#..%2CsinkT%2CsinkU |
05:46:40 | FromDiscord | <Stuffe> ok let me try |
05:48:01 | FromDiscord | <Stuffe> I guess I don't really understand this signature. It doesn't contain my object type?↵proc `..`[T, U](a: sink T; b: sink U): HSlice[T, U] {.noSideEffect, inline,↵ magic: "DotDot", ....} |
05:48:33 | FromDiscord | <Stuffe> Ah wait that one is probably just for creating slice objects |
05:48:35 | FromDiscord | <Rika> Because that’s just the dot part |
05:48:41 | FromDiscord | <Rika> And not the x[] part |
05:48:43 | FromDiscord | <Rika> Yes |
05:49:15 | FromDiscord | <demotomohiro> You can ctrl + f to find HSlice type: https://nim-lang.org/docs/system.html#HSlice |
05:49:19 | FromDiscord | <Stuffe> So I guess the signature would take my object as first arg, and a slice as second |
05:49:30 | FromDiscord | <Stuffe> but what is the name of this operator then? |
05:49:37 | FromDiscord | <Stuffe> I guess I will try with \`[]\` |
05:49:55 | FromDiscord | <albassort> im compiling using app:lib and {.exportc.} and its not coming up in the output of nm |
05:50:03 | FromDiscord | <albassort> how do i do this? |
05:50:18 | FromDiscord | <albassort> eg |
05:50:25 | FromDiscord | <albassort> sent a code paste, see https://play.nim-lang.org/#ix=4ke1 |
05:50:36 | FromDiscord | <albassort> sent a code paste, see https://paste.rs/fmg |
05:50:43 | FromDiscord | <Stuffe> yeah it worked, thanks guys |
05:52:26 | FromDiscord | <demotomohiro> @albassort https://nim-lang.org/docs/manual.html#foreign-function-interface-dynlib-pragma-for-export |
05:53:53 | FromDiscord | <demotomohiro> It seems you need to specify both `exportc` and `dynlib` pragmas. |
05:56:05 | FromDiscord | <albassort> magic |
05:56:08 | FromDiscord | <albassort> woa |
05:56:28 | FromDiscord | <albassort> now if only my insecure dream of a folder of libraries that get dynamically loaded works |
06:01:54 | FromDiscord | <albassort> sent a code paste, see https://play.nim-lang.org/#ix=4ke4 |
06:01:56 | FromDiscord | <albassort> i presume this isn't a thing |
06:03:49 | FromDiscord | <Elegantbeef> look at the dynlib module |
06:04:25 | FromDiscord | <albassort> theres a fuckin module for that |
06:04:40 | FromDiscord | <albassort> holyshit |
06:04:41 | FromDiscord | <albassort> ti |
06:04:42 | FromDiscord | <albassort> (edit) "ti" => "til" |
06:09:09 | FromDiscord | <albassort> it works |
06:09:10 | FromDiscord | <albassort> neat |
06:12:26 | FromDiscord | <Rika> Lol |
06:15:09 | FromDiscord | <Elegantbeef> Not that long and they're going to have a whole unsafe plugin system |
06:16:53 | * | ltriant quit (Ping timeout: 268 seconds) |
06:21:42 | FromDiscord | <Rika> Lol |
06:41:15 | * | rockcavera quit (Remote host closed the connection) |
06:42:10 | FromDiscord | <Nimion #ඞ> hey, I randomly feel drawn to nim again and I was curious if https://www.amazon.de/Mastering-Nim-complete-programming-language/dp/B0B4R7B9YX was available as ebook somewhere as well nowadays? |
06:54:32 | * | ltriant joined #nim |
07:04:10 | * | ltriant quit (Ping timeout: 272 seconds) |
07:14:07 | FromDiscord | <Nimion #ඞ> I'm a turbo zoomer and the concept of owning a physical book nowadays is too abstract for me |
07:14:38 | FromDiscord | <Rika> I believe Araq specifically wanted it to be physical only to prevent piracy |
07:14:56 | FromDiscord | <Rika> I don’t recall what happened to discussions about the digital version |
07:15:13 | FromDiscord | <Rika> I think he considered it after some persuasion but such consideration has gone nowhere for now |
07:29:33 | FromDiscord | <Nimion #ඞ> Ok I guess I will buy a physical copy of a book for the first time in 5 years (besides a mandetory uni book that was only physical) 💀💀💀 |
07:30:30 | FromDiscord | <Nimion #ඞ> It is complete right? Like it goes into macros, pragmas and this whole ARC ORC thing in depth? |
07:33:53 | FromDiscord | <Rika> I don’t know |
07:33:56 | FromDiscord | <Rika> I’ve never bought it |
07:34:10 | FromDiscord | <Rika> I am also not really a physical book kinda person |
07:35:02 | FromDiscord | <Elegantbeef> Reading is for nerds |
07:36:29 | FromDiscord | <Rika> Ok nerd |
07:37:52 | FromDiscord | <Elegantbeef> I'll pretend i didnt read that |
07:42:24 | FromDiscord | <Rika> So you admit you read |
07:45:06 | * | azimut joined #nim |
07:51:16 | FromDiscord | <luteva> In reply to @TryAngle "It is complete right?": if you ask me, i would suggest the "nim in action" book. |
07:55:16 | FromDiscord | <luteva> it is much easier to read (imho). |
07:55:16 | FromDiscord | <Rika> In reply to @luteva "if you ask me,": It does not go into those topics |
07:56:23 | FromDiscord | <luteva> it does for macros, templates at least a bit... |
07:58:36 | FromDiscord | <luteva> not for the arc orc part, that's true. but the nim in action book has examples that you can follow easily through the book, that makes it really much easier to read. |
07:59:24 | FromDiscord | <Elegantbeef> Sure but if the point is learning the anatomy of a potato plant you dont pick up "Calculus 101" |
08:01:31 | FromDiscord | <voidwalker> I'm tempted to buy that recent japanese book as pdf and it should translate decently, with google |
08:01:39 | FromDiscord | <voidwalker> It's rather cheap as pdf, $13 or something |
08:02:43 | FromDiscord | <voidwalker> Nim in action is very poorly strucuted imho |
08:02:58 | FromDiscord | <voidwalker> (edit) removed "in action" |
08:03:15 | FromDiscord | <voidwalker> (edit) "imho" => "imho. Nim in action too verbose :\" |
08:04:28 | FromDiscord | <voidwalker> You should write a book Elegantbeef, call it Nim foo |
08:06:10 | FromDiscord | <Elegantbeef> But then i'd have to get Rika to proof read it |
08:06:17 | FromDiscord | <Nimion #ඞ> In reply to @luteva "if you ask me,": I am familiar with the nim basics already, I'm really only interested in the topics which are nowhere explained really for some reason and only may be answered by asking the people here. |
08:06:35 | FromDiscord | <Nimion #ඞ> Or in the "new" book maybe? |
08:07:31 | FromDiscord | <Elegantbeef> Dont think many have the new book |
08:08:06 | FromDiscord | <voidwalker> ARC/ORC and what other topics . |
08:08:09 | FromDiscord | <voidwalker> (edit) "." => "?" |
08:08:16 | FromDiscord | <Nimion #ඞ> I mean with a price tag of 65 euro I don't expect many to buy it 💀 |
08:09:18 | FromDiscord | <voidwalker> I bought it out of sheer enthusiasm. Downsides were, no pdf, poor print quality, half of it is the online docs. But I didn't get to the advance parts, can't comment on those. they're probably good |
08:10:11 | FromDiscord | <voidwalker> that's all it says about ARC lol |
08:10:12 | FromDiscord | <voidwalker> sent a code paste, see https://play.nim-lang.org/#ix=4ken |
08:10:31 | FromDiscord | <Elegantbeef> There isnt really much to know about arc/orc |
08:10:47 | FromDiscord | <luteva> by "new book" you mean the "mastering nim", right? |
08:11:03 | FromDiscord | <Elegantbeef> They're scoped based memory management with move semantics, you have 4 hooks `=destroy` `=copy` `=sink` `=trace`(only for orc) |
08:11:14 | FromDiscord | <voidwalker> There's only two non-free english books, yeah. Nim in action (old), Mastering nim (new) |
08:11:45 | FromDiscord | <Nimion #ඞ> In reply to @voidwalker "ARC/ORC and what other": Mainly pragmas, macros and more "advanced" templates. Maybe some multithrading / async explanations. Working with the ARC / ORC language changes like sink. On the nim forum I've read something about that nim actually has some kind of borrow checker like rust does, and maybe how to use those things in real world not just a trivial http example |
08:11:46 | FromDiscord | <luteva> it is what voidwalker says. it is really poorly structured and most of it is online docs. |
08:12:11 | FromDiscord | <Elegantbeef> Nim's "borrow checker" is experiemental and 99% unusable |
08:12:17 | FromDiscord | <luteva> (edit) "says." => "says, for the mastering nim book." |
08:12:53 | FromDiscord | <Nimion #ඞ> In reply to @luteva "it is what voidwalker": So it's not rlly worth it? |
08:13:46 | FromDiscord | <Nimion #ඞ> No offense but buying a physical 65 euro book to then mainly use online docs kinda sounds like a scam but I might be mistaken |
08:14:10 | FromDiscord | <demotomohiro> I think this is Nim's borrow checker you mentioned: https://nim-lang.org/docs/manual_experimental.html#view-types |
08:14:18 | FromDiscord | <Elegantbeef> Yea |
08:14:20 | FromDiscord | <luteva> if you want to support andreas rumpf for his great language, there are better ways then buying the book 🙂 |
08:14:30 | FromDiscord | <voidwalker> buy him a case of beer : P |
08:14:43 | FromDiscord | <voidwalker> or write a great nim lib ? |
08:14:47 | FromDiscord | <Elegantbeef> If only i had the determination and want to write a book or equivlent |
08:15:02 | FromDiscord | <Elegantbeef> Low blow |
08:15:13 | FromDiscord | <Nimion #ඞ> In reply to @voidwalker "or write a great": What if I wrote a great cyo Lib 😈😈😈 |
08:15:31 | FromDiscord | <Nimion #ඞ> In reply to @Elegantbeef "If only i had": U can start doing YT series |
08:15:41 | FromDiscord | <Bung> there's also direct way, donating. |
08:15:46 | FromDiscord | <voidwalker> @Nimion #ඞ you would have to join the "dark side" : D |
08:16:01 | FromDiscord | <voidwalker> @Nimion #ඞ did you check https://ssalewski.de/nimprogramming.html#_templates ? |
08:16:01 | FromDiscord | <Elegantbeef> Oh bridge delay |
08:16:02 | FromDiscord | <Elegantbeef> Respectfully bleh to "cyo lib" |
08:16:43 | FromDiscord | <voidwalker> That cyo thing is never going to happen , right ? I mean nim itself is understaffed, and the cyo gang is even smaller, no ? |
08:16:58 | FromDiscord | <Nimion #ඞ> In reply to @TryAngle "U can start doing": I mean, the target group of nim is obviously rebellious zoomers no? YouTube vids would be 100x a book |
08:17:17 | FromDiscord | <Elegantbeef> I hate that i'm technically a zoomer |
08:17:26 | FromDiscord | <Elegantbeef> Fucking read for once in your god damn lives |
08:18:23 | FromDiscord | <Nimion #ඞ> In reply to @Elegantbeef "I hate that i'm": Why |
08:18:49 | FromDiscord | <voidwalker> you could be a boomer and never see the golden age of Nim, rejoice : P |
08:19:14 | FromDiscord | <Nimion #ඞ> In reply to @Elegantbeef "I hate that i'm": Ah true I remember I thought u were like 30+ but u actually 22 or smth |
08:19:41 | FromDiscord | <voidwalker> For some reason Elegantbeef always felt "mature" to me |
08:19:51 | FromDiscord | <Elegantbeef> It's the way i talk |
08:20:14 | FromDiscord | <Nimion #ඞ> In reply to @voidwalker "<@147447489316913152> did you check": No I did not know about that site, looks like a good start idk? I will look into it thank you |
08:20:29 | FromDiscord | <voidwalker> But then again I always thought, how tf does a mature person with presumably a job, has the time to do 50% of the nim support :here D |
08:20:42 | FromDiscord | <Nimion #ඞ> Ye same XD |
08:21:02 | FromDiscord | <Elegantbeef> > presumably a job↵There's your mistake |
08:21:23 | FromDiscord | <Nimion #ඞ> Going to uni is a full time job 🤓 |
08:21:30 | FromDiscord | <voidwalker> @Nimion #ඞ It's the best book on nim imho, great structure, size/content ratio, and free. it's expanding at times with new stuff |
08:21:47 | FromDiscord | <Elegantbeef> I'm also not going to post secondary |
08:23:08 | FromDiscord | <Bung> some people occasionally passionate to contribute to nim, that's what I see from github contributors graph |
08:24:13 | FromDiscord | <Nimion #ඞ> In reply to @voidwalker "That cyo thing is": Idk, the cool thing about software engineering is a lot of things don't really require big teams. |
08:25:20 | FromDiscord | <Bung> yeah, but still there's a lot things to do , even a tiny patch would help. |
08:25:47 | FromDiscord | <voidwalker> Still, I just don't see it happening. Dev pace is too slow. And cool stuff is being added to nim. They have to integrate some of that, ideally |
08:26:44 | FromDiscord | <Nimion #ඞ> I really don't have any clue tbh, I was only just catching up reading everything related to nim skull from the past 2 month of the discord |
08:27:18 | FromDiscord | <Nimion #ඞ> Is actually only 30% of the code base shared now? That's crazy tbh |
08:28:53 | FromDiscord | <lenis> In reply to @Elegantbeef "There isnt really much": surely some of the move semantics stuff right? that's ARC/ORC specific I thought |
08:30:54 | NimEventer | New post on r/nim by HerraHullunhuikea: Dunder methods in nimpy, see https://reddit.com/r/nim/comments/1022k79/dunder_methods_in_nimpy/ |
08:32:51 | FromDiscord | <Elegantbeef> It's not that complicated |
08:33:11 | FromDiscord | <Elegantbeef> a procedure(with a `sink` parameter) or assignment can take ownership of resources if that's the last usage of the resource |
08:33:31 | FromDiscord | <Elegantbeef> You can disable `sink` or `copy`ing for a type |
08:33:36 | FromDiscord | <Elegantbeef> You also can implement your own `=destroy` |
08:33:40 | FromDiscord | <Elegantbeef> We did it we learneded arc/orc 😛 |
08:35:08 | FromDiscord | <voidwalker> implement own `=destroy` where, arc or orc ? |
08:35:18 | FromDiscord | <Elegantbeef> either rc |
08:35:28 | FromDiscord | <Elegantbeef> https://nim-lang.org/docs/destructors.html |
08:36:00 | FromDiscord | <voidwalker> wow i didn't know that. so then all such data structures are not GC-ed, and there is no overhead for them ? |
08:36:19 | FromDiscord | <Elegantbeef> It uses scoped based memory management |
08:36:28 | FromDiscord | <Elegantbeef> So there is no conventional gc for any type but cyclical types |
08:36:37 | FromDiscord | <voidwalker> I always thought manual memory management means you can't use GC at all, or use GC libs |
08:36:45 | FromDiscord | <Elegantbeef> Cyclical types use a mark and sweep algorithim |
08:36:52 | FromDiscord | <Nimion #ඞ> I think pmunch told me half a year ago that =destroy is actually not fully deterministic in when it will be executed. |
08:36:59 | FromDiscord | <Elegantbeef> arc/orc arent manual memory managed |
08:37:06 | FromDiscord | <Elegantbeef> Yes destroy is deterministic |
08:37:29 | FromDiscord | <Elegantbeef> It's statically compiled in the code |
08:37:39 | FromDiscord | <Elegantbeef> It's called at the end of scope if the RC == 0 for references |
08:37:43 | FromDiscord | <Elegantbeef> Otherwise it's always called |
08:38:15 | FromDiscord | <Bung> the thing is it inject destructors with a analysis process, so it looks like u manually free the memory. |
08:38:47 | FromDiscord | <Elegantbeef> Correct it's a slight programmer optimisation above manual memory management |
08:38:56 | FromDiscord | <Bung> the interesting part it how it implemented in compiler, it's bit complicated as still have opened issues. |
08:39:06 | FromDiscord | <Bung> (edit) "it" => "is" |
08:41:32 | FromDiscord | <Elegantbeef> Unlike other languages with move semantics nim does a user friendly thing and copies when a move cannot be made |
08:41:52 | FromDiscord | <Elegantbeef> So even with move semantics Nim is actually much more approachable since you can live like they dont exist |
08:43:17 | FromDiscord | <Elegantbeef> But you'll be grateful that they do exist when you need them since they allow reducing copies and even disabling them for some types |
08:43:23 | FromDiscord | <Bung> so no gc and no manually free memory, u have both |
08:43:46 | FromDiscord | <Elegantbeef> To be fair "no gc" depends on definition |
08:44:30 | FromDiscord | <Bung> but nim defined it well , right, it become `--mm` |
08:44:49 | FromDiscord | <Elegantbeef> Depends on who you ask so no clue |
08:45:04 | FromDiscord | <Bung> alright |
08:45:04 | FromDiscord | <Elegantbeef> GC is kinda ambiguous to whether it covers RAII style memory management |
09:44:08 | FromDiscord | <willyboar> In reply to @voidwalker "That cyo thing is": I think it will happen. How things will go depends on what they will offer on their first release. |
09:51:57 | FromDiscord | <Require Support> anyone have problems using nimcrypto + orc ? if yes, how do I solve it 😄 |
10:15:37 | FromDiscord | <jmgomez> Hey guys, is there a predefined comp variable that we can when against for knowing if the one compiling/reading the nim file is nimsuggest? |
10:17:41 | FromDiscord | <jmgomez> In reply to @jmgomez "Hey guys, is there": found it, it's just `nimsuggest` |
10:20:28 | FromDiscord | <Elegantbeef> `when defined(nimSuggest)` i think works, i could be wrong |
10:36:11 | FromDiscord | <jmgomez> In reply to @Elegantbeef "`when defined(nimSuggest)` i think": yeah, it worked. There is a cfg in the sources defining it |
10:37:54 | FromDiscord | <jmgomez> Do you happen to know why it still uses markAndSweep? https://github.com/nim-lang/Nim/blob/devel/nimsuggest/nimsuggest.nim.cfg |
10:44:26 | FromDiscord | <Bung> it need remain node graph in whole lifetime I guess ? |
10:48:15 | FromDiscord | <AmjadHD> Can someone review or urge the owner to review <https://github.com/nim-lang/NimLime/pull/157> ? |
11:12:40 | * | Yardanico quit (Quit: No Ping reply in 180 seconds.) |
11:15:18 | * | NimEventer quit (Ping timeout: 260 seconds) |
11:17:38 | * | jmdaemon quit (Ping timeout: 260 seconds) |
11:35:43 | FromDiscord | <Bung> @ElegantBeef https://github.com/nim-lang/Nim/pull/20892/files is this ready? |
11:37:27 | * | PMunch joined #nim |
11:44:14 | FromDiscord | <4zv4l> how can I make a proc named `div` ? |
11:46:55 | FromDiscord | <Rika> Add ` around it like an operator |
11:47:54 | FromDiscord | <Rika> You have to do it for both if you want to make a proc named it and if you want to use such proc like a normal proc |
11:53:30 | FromDiscord | <4zv4l> thanks ! |
11:53:56 | FromDiscord | <4zv4l> I try to make a code in Nim that I can use in C↵is it better to use `object file` or `shared library` ? |
12:05:30 | FromDiscord | <4zv4l> is this normal ?↵also the div function doesn't seem to work properly https://media.discordapp.net/attachments/371759389889003532/1059804698061848606/image.png |
12:07:52 | FromDiscord | <Rika> In reply to @Rika "You have to do": As I’ve said, ticks also needed on the call |
12:08:06 | FromDiscord | <Rika> Wait what |
12:08:14 | FromDiscord | <Rika> Wait, sorry, you’re using it on C |
12:08:19 | FromDiscord | <4zv4l> no prob ahah |
12:09:32 | * | PMunch quit (Quit: Leaving) |
12:10:06 | FromDiscord | <Rika> Do exportc: "div" instead to force the namr |
12:10:08 | FromDiscord | <Rika> Name |
12:12:04 | FromDiscord | <4zv4l> like this ? https://media.discordapp.net/attachments/371759389889003532/1059806346402353172/image.png |
12:12:27 | FromDiscord | <planetis> I don't see anything being included... |
12:13:29 | FromDiscord | <4zv4l> you can't include a static lib in c↵you can link against it |
12:13:38 | FromDiscord | <4zv4l> which is what I do |
12:16:09 | FromDiscord | <Rika> Also add dynlib pragma then |
12:16:15 | FromDiscord | <Rika> All procs with export c |
12:17:35 | FromDiscord | <4zv4l> still https://media.discordapp.net/attachments/371759389889003532/1059807735228661831/image.png |
12:17:46 | FromDiscord | <4zv4l> only the "div" function doesn't work that's weird |
12:18:05 | FromDiscord | <4zv4l> also those warning aren't supposed to be there |
12:20:50 | FromDiscord | <planetis> Use this guide https://nim-lang.github.io/Nim/backends.html#interfacing-backend-code-calling-nim |
12:23:27 | FromDiscord | <planetis> You need to get function declarations from somewhere don't you? |
12:24:43 | FromDiscord | <4zv4l> In reply to @planetis "Use this guide https://nim-lang.github.io/Nim/backe": I checked this |
12:24:46 | FromDiscord | <4zv4l> still doesn't seem to work |
12:25:04 | FromDiscord | <4zv4l> sent a code paste, see https://play.nim-lang.org/#ix=4kf4 |
12:25:11 | FromDiscord | <4zv4l> it compiles with warning always↵and functions work except `div` still |
12:27:03 | * | PMunch joined #nim |
12:28:37 | FromDiscord | <4zv4l> https://media.discordapp.net/attachments/371759389889003532/1059810510243102720/image.png |
12:28:48 | FromDiscord | <4zv4l> yeah only the div one isn't working |
12:28:53 | FromDiscord | <4zv4l> no more warning tho |
12:29:07 | FromDiscord | <planetis> Nice |
12:29:31 | FromDiscord | <planetis> Maybe you should use a different name? |
12:31:18 | FromDiscord | <4zv4l> changing the name doesn't change |
12:31:55 | FromDiscord | <4zv4l> ok I found |
12:32:05 | FromDiscord | <4zv4l> I had to change the return type from `float` to `float32` |
12:32:09 | PMunch | Yup |
12:32:13 | PMunch | I was just about to say |
12:32:53 | PMunch | By the way you might want to use `cint` in your Nim code to make sure that it maps to `int` in C |
12:34:53 | FromDiscord | <4zv4l> In reply to @PMunch "By the way you": just did, thanks ! |
12:35:06 | FromDiscord | <4zv4l> changed `float32` to `cfloat` |
12:35:09 | FromDiscord | <4zv4l> (edit) "changed `float32` to `cfloat` ... " added "also" |
12:35:45 | PMunch | Good idea |
12:36:06 | PMunch | If course you could also do it the other way and grab the NI and NFLOAT definitions from nimbase.h |
13:06:20 | FromDiscord | <jmgomez> Should nim suggest pick automatically conf.nims files? Im trying to setup some extra search paths in there but it doesnt seem to pick them |
13:09:22 | FromDiscord | <planetis> not just nimsuggest, I had conf files next to libraries and they are ignored. |
13:13:01 | FromDiscord | <Evissim> Is it possible to do switch case based on type? `case typedesc(x)` doesn't seem to be allowed. |
13:13:12 | FromDiscord | <planetis> I embedded the commands directly to the nim file, in a static section, is what a did. |
13:13:46 | * | PMunch_ joined #nim |
13:15:02 | FromDiscord | <planetis> In reply to @Evissim "Is it possible to": use when instead |
13:15:48 | * | PMunch quit (Ping timeout: 252 seconds) |
13:16:50 | FromDiscord | <jmgomez> In reply to @planetis "I embedded the commands": I was thinking on trying out something similar but not sure if it will work for paths and also there is an include that is not part of the current search path but live in the NimForUE plugin folder. Will play around with that idea and see |
13:17:44 | * | derpydoo joined #nim |
13:21:52 | FromDiscord | <Evissim> In reply to @planetis "use when instead": Thanks! |
13:22:24 | * | PMunch_ quit (Ping timeout: 252 seconds) |
13:36:34 | * | PMunch joined #nim |
13:37:35 | FromDiscord | <jmgomez> @planetis FYI cfg files are picked by the compiler |
13:41:00 | FromDiscord | <EyeCon> In reply to @T0lk1en "How do you find": https://www.codetriage.com/ |
13:42:58 | FromDiscord | <EyeCon> Anyone made any headway to create MS Excel extensions with Nim? |
13:45:07 | * | PMunch quit (Ping timeout: 265 seconds) |
13:45:18 | FromDiscord | <Bung> you mean a excel lib ? |
14:00:04 | FromDiscord | <luteva> there is an excel lib for nim. |
14:03:13 | FromDiscord | <luteva> https://github.com/search?q=excel+language%3ANim&type=Repositories&ref=advsearch&l=Nim&l= |
14:06:00 | * | PMunch joined #nim |
14:08:41 | FromDiscord | <luteva> i used xlsx. |
14:08:52 | * | xet7 joined #nim |
14:09:10 | FromDiscord | <luteva> (edit) "xlsx." => "xlsx, once" |
14:25:29 | * | rockcavera joined #nim |
14:35:31 | FromDiscord | <EyeCon> No, to write an Excel extension, not to parse Excel files |
14:35:50 | FromDiscord | <EyeCon> Extensions provide functions that can be used inside Excel formulas |
14:37:16 | FromDiscord | <EyeCon> The official name seems to be "add-in" |
14:41:15 | FromDiscord | <FullValueRider> You could use nim, but you might find the up and coming replacement for VBA a suitable replacement (it has generics, overloading, class constructors, numerous other improvements) given that it comes as a COM ready language. https://twinbasic.com/preview.html |
14:43:03 | FromDiscord | <EyeCon> In reply to @FullValueRider "You could use nim,": Interesting, but not Nim and £26/month to not display a nag screen |
14:54:43 | FromDiscord | <Bung> Verifying dependencies for [email protected]↵ Error: Cannot satisfy the dependency on npeg 0.27.0 and npeg 1.0.1 |
14:55:35 | FromDiscord | <Bung> am trying to install my old project dependencies, I dont understand the nimble error, since slugify and npeg both zero dependency. |
14:58:43 | * | ltriant joined #nim |
15:00:04 | FromDiscord | <Rika> In reply to @Bung "am trying to install": You don’t have dependencies that depend on it either? |
15:00:43 | * | PMunch quit (Quit: Leaving) |
15:02:55 | * | ltriant quit (Ping timeout: 252 seconds) |
15:06:39 | FromDiscord | <Bung> In reply to @Rika "You don’t have dependencies": my project `requires "npeg"` I dont know whether dependencies rely it or not |
15:11:03 | FromDiscord | <Yepoleb> When passing a reference to a procedure is the caller or callee responsible for increasing the refcount? |
15:11:06 | FromDiscord | <enthus1ast> instead of an xlsx reader/writer consider doing an .ods one |
15:11:20 | FromDiscord | <gat0r> Never again!↵(@luteva) |
15:12:13 | FromDiscord | <FullValueRider> The community edition is free, doesn't nag and would allow you to prototype before converting to nim. Converting VBA to 90% nim syntax is just a case of simple find/replace actions. If you are prepared to write a simple parser, you could probably easily do a 100% conversion. As a very vary amateur programmer I use the find/replace strategy regularly when my advent of code solutions run too slow for VBA and I convert to nim. |
15:12:51 | FromDiscord | <Phil> In reply to @luteva "i used xlsx, once": That sounds like the word-version of an Alcoholics Anynonymous group |
15:19:33 | FromDiscord | <EyeCon> In reply to @FullValueRider "The community edition is": No that I'd use it, but just to clarify if I'm misreading something - community version still displays a nag screen on 64 bit, doesn't it?↵↵> On this free tier, 64-bit EXEs and DLLs that are built with twinBASIC display a splash screen for 5-seconds during startup. |
15:19:43 | FromDiscord | <EyeCon> (edit) "No" => "Not" |
15:21:38 | FromDiscord | <Phil> Ooooooof |
15:21:42 | FromDiscord | <⚶ Zeno> what is `<=%` ? |
15:22:00 | FromDiscord | <Phil> Which module? |
15:22:14 | FromDiscord | <⚶ Zeno> system it seems |
15:22:18 | FromDiscord | <Phil> Anyone can define an operator for a given symbol in nim, thus the question |
15:22:20 | FromDiscord | <⚶ Zeno> https://github.com/dom96/nimkernel/blob/master/ioutils.nim#L77 |
15:22:27 | FromDiscord | <⚶ Zeno> https://media.discordapp.net/attachments/371759389889003532/1059854258939371590/image.png |
15:22:43 | FromDiscord | <Rika> old operator for unsigned i believe |
15:23:00 | FromDiscord | <Rika> back when nim didnt have unsigned integers |
15:23:11 | FromDiscord | <Rika> the type i mean |
15:23:14 | FromDiscord | <⚶ Zeno> i see |
15:23:27 | FromDiscord | <⚶ Zeno> though i am curious specifically on what it does ? |
15:23:36 | FromDiscord | <Phil> https://nim-lang.org/docs/system.html#%3C%3D%25%2Cint%2Cint |
15:23:49 | FromDiscord | <Rika> <= but unsigned |
15:23:55 | FromDiscord | <⚶ Zeno> i see |
15:23:57 | FromDiscord | <⚶ Zeno> alright thanks |
15:24:04 | FromDiscord | <Phil> It just casts the ints to uints and that's it |
15:24:29 | FromDiscord | <Phil> I'm not sure what the supposed benefit of that is |
15:24:59 | FromDiscord | <Rika> there isnt |
15:25:06 | FromDiscord | <Rika> its there for old code reasons |
15:25:12 | FromDiscord | <Phil> Legacy, nooooo |
15:25:26 | FromDiscord | <Rika> i think it was back in 0.19 or smth |
15:25:41 | FromDiscord | <Phil> Why must all code we ever write be immediately legacy |
15:26:29 | * | krux02_ joined #nim |
15:27:27 | FromDiscord | <Bung> is there a tool see nimble dependency tree |
15:28:22 | FromDiscord | <Rika> i remember some people making one but i forgot |
15:28:25 | FromDiscord | <Rika> prolly yardanico |
15:28:37 | FromDiscord | <⚶ Zeno> is there nim equivalent of python's `bin` ? just curious |
15:28:45 | FromDiscord | <⚶ Zeno> quick google doesnt show me anything unless im stupid |
15:29:19 | FromDiscord | <Gumbercules> what does python's `bin` do? |
15:29:29 | FromDiscord | <⚶ Zeno> show binary represantion |
15:29:36 | FromDiscord | <Rika> binary rep. as string |
15:29:42 | FromDiscord | <⚶ Zeno> i.e https://media.discordapp.net/attachments/371759389889003532/1059856084992536696/image.png |
15:30:03 | FromDiscord | <Rika> https://nim-lang.org/docs/strutils.html#toBin%2CBiggestInt%2CPositive |
15:30:19 | FromDiscord | <demotomohiro> !eval import strutils; echo 22.toBin(8) |
15:30:24 | FromDiscord | <Gumbercules> https://nim-lang.org/docs/strutils.html#toBin%2CBiggestInt%2CPositive |
15:30:26 | NimBot | Compile failed: 00010110 |
15:30:28 | FromDiscord | <Gumbercules> oh sorry |
15:30:29 | FromDiscord | <Gumbercules> got beat |
15:30:30 | FromDiscord | <Rika> 😛 |
15:30:46 | FromDiscord | <⚶ Zeno> it was hidden in strutils and i didnt notice it even though i got `toHex` suggestions 💀 |
15:30:48 | FromDiscord | <⚶ Zeno> anyways thanks |
15:30:57 | FromDiscord | <Bung> In reply to @Rika "i remember some people": yeah, am too, but cant remenber the tool name |
15:31:13 | FromDiscord | <Rika> In reply to @Rika "https://nim-lang.org/docs/strutils.html#toBin%2CBig": the speed is what happens when you live and breathe documentation |
15:31:45 | FromDiscord | <Gumbercules> and here I am relying on oxygen still |
15:31:57 | FromDiscord | <Gumbercules> need to upgrade myself apparently |
15:33:40 | FromDiscord | <Gumbercules> RemedyBG is pretty nice |
15:33:58 | FromDiscord | <Gumbercules> need more software like this |
15:34:56 | * | arkurious joined #nim |
15:37:30 | FromDiscord | <Gumbercules> https://media.discordapp.net/attachments/371759389889003532/1059858046890815648/image.png |
15:37:40 | FromDiscord | <Gumbercules> lol I always forget about my laptop's second monitor showing up in screenshots |
15:38:18 | FromDiscord | <Gumbercules> (edit) "monitor" => "display" |
15:39:56 | FromDiscord | <Rika> looks cool |
15:40:54 | FromDiscord | <Gumbercules> it only supports Windows I believe but it's a very nice debugger, and very reasonably priced too |
15:41:06 | FromDiscord | <Gumbercules> https://remedybg.itch.io/remedybg |
15:45:09 | FromDiscord | <Bung> is this really work in nimble file `when not defined(release):` |
16:04:43 | * | estiquelapice quit () |
16:05:45 | FromDiscord | <FullValueRider> twinBasic 64 bit puts up the 5 second nag screen when you run the compiled executable. There is no nag when within the IDE doing the edit/run/debug cycle |
16:05:57 | * | estiquelapice joined #nim |
16:20:18 | * | jmdaemon joined #nim |
16:21:44 | * | tiorock joined #nim |
16:21:44 | * | tiorock quit (Changing host) |
16:21:44 | * | tiorock joined #nim |
16:21:44 | * | rockcavera is now known as Guest1175 |
16:21:44 | * | Guest1175 quit (Killed (osmium.libera.chat (Nickname regained by services))) |
16:21:44 | * | tiorock is now known as rockcavera |
17:16:45 | FromDiscord | <jan0809> sb here maybe familiar with https://github.com/qb-0/pyMeow |
17:44:41 | * | wallabra quit (Ping timeout: 256 seconds) |
17:48:29 | * | wallabra joined #nim |
17:54:40 | * | pro joined #nim |
17:54:43 | FromDiscord | <Boston> Is there a way to repeatedly insert very similar but not identical items into a seq |
17:55:26 | * | pro left #nim (#nim) |
18:02:11 | FromDiscord | <voidwalker> @Boston your question does not compile very well. You can insert items into a seq with insert. You do it repeatedly with `while` or whatever flow control design you got there. What is very similar and not identical depends upon your definition of it, as long as you can define a function to determine that, you just check if it returns true before insert. |
18:28:40 | FromDiscord | <hmmm> broskis I wanted to put a bunch of procs on a seq. Didn't compile because of gcsomething and locksomething, so I checked the forums and it said to annotate the procs with {.gcsafe, locks: 0.}, now it compiles but I have no idea wtf those alien greenish pragma do to my procs 🤔 any explainings? where is our beef hero when the peasants need him |
18:43:22 | * | derpydoo quit (Ping timeout: 272 seconds) |
18:52:35 | FromDiscord | <hmmm> yea I checked, it totally works and I can loop the procs like a boss, but I get some scary nuclear vibes Warnings about declaring locks 0 but in reality locks are <<unknown>> 🤨 |
18:53:40 | * | krux02_ quit (Remote host closed the connection) |
18:59:12 | * | ltriant joined #nim |
19:03:35 | * | ltriant quit (Ping timeout: 246 seconds) |
19:08:30 | FromDiscord | <Bung> locks are deprecated |
19:09:00 | FromDiscord | <Bung> what's your nim version? |
19:13:34 | FromDiscord | <hmmm> hmm 1.6.8 I think? can't check because I'm away from the pc |
19:21:05 | FromDiscord | <hmmm> sent a code paste, see https://paste.rs/h1F |
19:33:18 | FromDiscord | <hmmm> oh I see it's deprecated in 2.0rc1, hmm maybe I should updoot |
19:38:39 | Amun-Ra | hmmm: pragma locks? |
19:40:06 | FromDiscord | <hmmm> In reply to @Amun-Ra "<@887269570765791243>: pragma locks?": from 2.0rc1 presentation blog: "Lock levels are deprecated, now a noop." what's a noop? 🤨 |
19:40:43 | Amun-Ra | no operation |
19:41:03 | Amun-Ra | it does nothing |
19:41:17 | Amun-Ra | like it's not even there |
19:41:49 | FromDiscord | <hmmm> sent a code paste, see https://play.nim-lang.org/#ix=4kh4 |
19:42:35 | Amun-Ra | hmmm: {.gcsafe, locks: 0.} would be equal to {.gcsafe.} |
19:42:51 | Amun-Ra | the compiler will ignore locks: 0 entirely |
19:43:08 | Amun-Ra | until they deprecate it in future versions and raise an error |
19:43:17 | FromDiscord | <hmmm> I see, ty Ra-Amun from egypt 💓 |
19:43:53 | Amun-Ra | no worries :> |
19:44:05 | Amun-Ra | I'm a little bit north |
19:44:46 | Amun-Ra | "bulandi", what I think you call us |
19:45:43 | FromDiscord | <hmmm> as in the 2000 indian movie "bulandi"? 😃 |
19:46:33 | Amun-Ra | that's outside my area of expertise, (I meant polish) ;> |
19:47:13 | FromDiscord | <abisxir> sent a long message, see https://paste.rs/PL2 |
19:47:53 | FromDiscord | <abisxir> (edit) "http://ix.io/4kh5" => "http://ix.io/4kh6" |
19:47:54 | FromDiscord | <hmmm> ah ok polish, I know "kurwa" from my old gaming days. And that's the extent of my knowledge 😃 now I shut up because I'm way offtopic lol |
19:48:09 | Amun-Ra | ;> |
19:48:37 | FromDiscord | <abisxir> (edit) "http://ix.io/4kh6" => "http://ix.io/4kh8" |
19:56:12 | FromDiscord | <4zv4l> https://youtu.be/Htjq9yF11m0?t=1392↵I was watching this↵is there a way to build the Nim compiler without Nim ? |
19:56:36 | FromDiscord | <4zv4l> like the way gcc does |
19:57:05 | FromDiscord | <jtv> Well, first thing you need to do @abisxir is to put the function "name" in backticks. proc `[]`[T](...) |
19:57:19 | FromDiscord | <jtv> Well, first thing you need to do @abisxir is to put the function "name" in backticks. proc \`[]\`[T](...) |
19:59:02 | FromDiscord | <abisxir> @jtv sorry my bad, in main implementation it is there: func `[]`[T](e: Entity, row: typedesc[T]): T = getComponent[T](e) |
19:59:20 | FromDiscord | <abisxir> It gets vanished in formatting. |
19:59:36 | FromDiscord | <jtv> Yeah, you have to backslash before them |
19:59:39 | FromDiscord | <abisxir> (edit) "`[]`[T](e:" => "``[]``[T](e:" |
19:59:43 | * | lumidify quit (Quit: leaving) |
19:59:50 | FromDiscord | <jtv> And where does it say your error is?? |
20:00:01 | FromDiscord | <abisxir> (edit) "``[]``[T](e:" => "`\[]\`[T](e:" |
20:00:12 | FromDiscord | <abisxir> (edit) "`\[]\`[T](e:" => "`\`[]\``[T](e:" |
20:00:21 | FromDiscord | <abisxir> (edit) "`\`[]\``[T](e:" => "[][T](e:" |
20:01:18 | FromDiscord | <abisxir> when I call it, it complains there is not such a function. |
20:02:50 | FromDiscord | <jtv> That's where I'd need the context from. Because what you've defined is a reasonable declaration |
20:03:03 | FromDiscord | <abisxir> sent a long message, see https://paste.rs/obN |
20:03:14 | FromDiscord | <jtv> Though you could just do row: T |
20:03:18 | FromDiscord | <Bung> don't try define [] |
20:03:51 | FromDiscord | <Bung> that's magic proc it's specially handled in compiler |
20:04:35 | FromDiscord | <jtv> Interesting; I could have sworn I've seen code overloading [] for some types, or at least []=?? |
20:05:07 | FromDiscord | <Bung> they both magic procs |
20:06:13 | FromDiscord | <abisxir> sent a long message, see http://ix.io/4khh |
20:07:41 | FromDiscord | <Bung> so u can only use for particular type |
20:14:16 | FromDiscord | <jtv> So basically won't work w/ generic |
20:14:20 | FromDiscord | <jtv> Any generics |
20:14:24 | FromDiscord | <jtv> Good to know, thanks |
20:16:00 | * | lumidify joined #nim |
20:17:42 | FromDiscord | <abisxir> Ok but works guys, my problem was that I did not exposed it, One solved the issue, nim is king 🙂 |
20:18:16 | FromDiscord | <jtv> LOL |
20:18:21 | FromDiscord | <jtv> Excellent |
20:26:31 | Amun-Ra | it's obvious nim is king - that's why the crown logo ;) |
20:37:00 | FromDiscord | <Require Support> ELI5 when to use `ref object` vs `object` |
20:39:57 | FromDiscord | <hmmm> In reply to @Require Support "ELI5 when to use": https://media.discordapp.net/attachments/371759389889003532/1059934160539619378/FireShot_Capture_002_-_Use_of_ref_object_-_chat.openai.com.png |
20:40:59 | FromDiscord | <Require Support> hmmm indeed |
20:44:21 | FromDiscord | <jtv> Well, it's clear that AI is better trained on other languages that do have semantics where that would make sense 🙂 |
20:55:24 | FromDiscord | <Elegantbeef> Clearly not, I dont know why it errors and I havent got much insight from araq↵(@Bung) |
20:55:26 | FromDiscord | <Elegantbeef> So it's mostly a pipe dream |
20:55:40 | FromDiscord | <Elegantbeef> If you need reference semantics you use `ref object`↵(@Require Support) |
20:55:42 | FromDiscord | <Elegantbeef> Boom we did it |
20:56:03 | FromDiscord | <Elegantbeef> https://internet-of-tomohiro.netlify.app/nim/faq.en.html#type-when-to-use-ref-object-vs-plain-object-qmark |
20:57:19 | FromDiscord | <Lord Hellgrim The Infinite> sent a long message, see http://ix.io/4khl |
20:57:34 | FromDiscord | <Elegantbeef> Likely not |
21:00:36 | FromDiscord | <Vindaar> In reply to @Lord Hellgrim The Infinite "Is there any way": there's multiple libraries to read / write xlsx files from Nim though. So maybe those are enough by themselves? |
21:00:51 | FromDiscord | <hmmm> I think there is a new library named xl for xlsx files |
21:00:54 | FromDiscord | <Vindaar> https://nimble.directory/search?query=xlsx |
21:00:59 | FromDiscord | <hmmm> look in the forum there is a recent post |
21:01:12 | FromDiscord | <Lord Hellgrim The Infinite> I thought nim xlsx could only read excel |
21:01:21 | FromDiscord | <hmmm> xl can write too |
21:02:06 | FromDiscord | <hmmm> https://github.com/khchen/xl |
21:02:22 | FromDiscord | <Lord Hellgrim The Infinite> Well that was easy. Thank you very much 🙂 |
21:02:42 | FromDiscord | <jtv> For reference semantics for non-object variables, I think I'd always point to var params. Did let x = ref y work at some point though?? |
21:02:46 | FromDiscord | <hmmm> no prob bro |
21:03:36 | FromDiscord | <Elegantbeef> What?↵(@jtv) |
21:03:52 | FromDiscord | <Elegantbeef> You can do `let x = new int; x[] = y` all day long |
21:04:11 | FromDiscord | <jtv> Sure yeah, of course. |
21:04:27 | FromDiscord | <Elegantbeef> Nim implicitly dereferences `var` parameters aswell so you can do `let x = y` |
21:04:44 | FromDiscord | <jtv> But var params give reference semantics for variables you pass in, was that bit |
21:04:50 | * | TakinOver joined #nim |
21:05:22 | FromDiscord | <willyboar> Is any way to rewrite, override or extend a type of an external library? |
21:05:28 | FromDiscord | <Elegantbeef> Dont think of `var` as reference semantics think of it as mutabillity |
21:05:29 | FromDiscord | <jtv> Meaning, I think that covers a major part of the ground for people coming from Python expecting lists to be by-reference |
21:06:08 | FromDiscord | <Elegantbeef> Nim passes by reference a lot of types, so it's a pointless distinguishing characteristic |
21:07:11 | FromDiscord | <jtv> "Reference semantics" on calls is ~60 year old term to indicate that the callee's changes will be operated on, in-place |
21:08:21 | FromDiscord | <Elegantbeef> And in Nim we have references which are managed pointers with their own semantics |
21:08:28 | FromDiscord | <jtv> There used to be other different semantics that were common that have gone away, like copy-in, copy-out (e.g., ada in out parameters) |
21:10:20 | FromDiscord | <jtv> Yes, my whole point is that when people are asking questions about how to get reference semantics, var params are one of the tools that is often going to give them the behavior they're trying to get. I'm not hung up on Nim's terminology for things. |
21:10:43 | FromDiscord | <Elegantbeef> That's not even the proper way to get reference semantics |
21:10:54 | FromDiscord | <Elegantbeef> If you want reference semantics you use `{.byRef.}` on the object |
21:11:33 | FromDiscord | <jtv> Yeah, that's a cool feature I didn't even know about. |
21:12:10 | FromDiscord | <Elegantbeef> But the simple fact is that if the object is big enough or if it's sensible enough(seq/string) it's passed by reference |
21:12:58 | FromDiscord | <jtv> Sure, the language implementation details are generally considered orthogonally to the expectations on semantics for people writing in the language, though. |
21:13:29 | FromDiscord | <Elegantbeef> Well when you want reference semantics the question is "why" |
21:13:42 | FromDiscord | <Elegantbeef> Is it for mutability if so `var` gives you a mutable reference and is what you want |
21:13:54 | FromDiscord | <Elegantbeef> If it's for optimisation, Nim makes it so you dont have to even think about it |
21:14:38 | FromDiscord | <jtv> Yes, generally it's procedural programmers expecting mutability, especially when they're coming from Python, since Python doesn't give a crap about performance 🙂 |
21:14:39 | FromDiscord | <Elegantbeef> Then again i see people defaulting to `ref T` cause they dont have to write `var` |
21:14:47 | FromDiscord | <Elegantbeef> So who knows why these people write code 😄 |
21:18:06 | FromDiscord | <jtv> Well, in plenty of languages historically, there was a limit to how much data could be passed in parameters, so a lot of people just expect to pass around references as a matter of habit. Esp when plenty of languages NEVER try to optimize and silently pass by reference when possible, which is another cool thing about nim |
21:19:19 | FromDiscord | <Bung> In reply to @Elegantbeef "Clearly not, I dont": it's green , I thought you fixed previous error. |
21:33:43 | FromDiscord | <Elegantbeef> Yea jtv most older languages didnt track mutabillity which means it's hard to do that optimisation |
21:34:02 | FromDiscord | <Elegantbeef> Bung i skiped CI |
21:41:15 | * | ltriant joined #nim |
21:55:39 | * | derpydoo joined #nim |
22:00:43 | * | ltriant quit (Ping timeout: 248 seconds) |
22:01:04 | FromDiscord | <luteva> In reply to @Isofruit "That sounds like the": LOL 🤣 ↵I just came back from the restaurant, having two beer (20,5L) + some more and.... after the dinner the waiter brang a cognac and after he became his tipp, he also gave a liqueur and..... let me chack what you were saying....↵"...the word-version of an Alcoholics Anynonymous group" -> oh no. it that was not anonymously! 🤣 |
22:02:17 | FromDiscord | <luteva> (edit) "became" => "got" |
22:02:40 | FromDiscord | <luteva> (edit) removed "that" |
22:06:10 | * | ltriant joined #nim |
22:33:14 | * | ltriant quit (Ping timeout: 246 seconds) |
22:34:03 | * | wallabra quit (Ping timeout: 260 seconds) |
22:36:55 | * | wallabra joined #nim |
22:39:00 | * | ltriant joined #nim |
22:55:39 | * | ltriant quit (Ping timeout: 260 seconds) |
22:56:47 | FromDiscord | <ambient> In reply to @Elegantbeef "If it's for optimisation,": I wish there was a little more proof for this. |
22:57:11 | FromDiscord | <ambient> As in, how, exactly |
22:57:21 | FromDiscord | <ambient> And what are the corner cases |
22:59:06 | FromDiscord | <ambient> The biggest issues I have is to have certainty that I'm not accidentally writing stupid code that introduces unnecessary performance bottlenecks. C++ and how implicit (or cryptic) it is about memory was the biggest offender previously |
23:00:17 | FromDiscord | <ambient> Rust in comparison, was exactly what I expected and didn't introduce any unexpected issues |
23:02:05 | FromDiscord | <ambient> Like for example Nim has iterators that actually need to allocate new memory, which I have to find out. With Rust, I have to copy explicitly with .clone |
23:02:59 | FromDiscord | <ambient> So I do have to think about it, and I don't know what I don't yet know, and it introduces a roadblock in writing software as fast as I would like |
23:03:36 | FromDiscord | <Elegantbeef> I mean the proof is that anything larger than 3 pointer widths is passed by ref↵(@ambient) |
23:03:39 | FromDiscord | <Elegantbeef> It's not really a magic trick |
23:04:13 | FromDiscord | <ambient> I guess I'm just still traumatized by C++ footguns |
23:05:13 | FromDiscord | <ambient> I don't want to go through a profiler to weed out all the unnecessary memory allocations. Nim doesn't even seem to have working sampling profiling in Windows |
23:05:55 | FromDiscord | <Elegantbeef> This was in response to pass by reference.... so i'll dismiss all your following points |
23:06:27 | FromDiscord | <Elegantbeef> Closure iterators capture code which means of course they need to copy if they cannot move |
23:06:36 | FromDiscord | <Elegantbeef> well capture data |
23:06:55 | FromDiscord | <Elegantbeef> Afaik they're supposed to stack allocate where possible but that might not always be done |
23:07:23 | FromDiscord | <ambient> Is there a way to generate a warning or something when there's implicit memory allocation? |
23:07:35 | FromDiscord | <Elegantbeef> You can disable copies for specific types |
23:07:56 | FromDiscord | <ambient> Oh right, I did see this before, thanks |
23:08:30 | FromDiscord | <Elegantbeef> You can also do `--warning[Performance]: on` |
23:08:43 | FromDiscord | <Elegantbeef> Sorry `--hint[Performance]: on` |
23:10:30 | FromDiscord | <jtv> How do I pass that from nimble? |
23:10:54 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4khW |
23:10:59 | FromDiscord | <Elegantbeef> Make a config.nims or `myproject.nims` |
23:11:18 | * | wallabra quit (Ping timeout: 268 seconds) |
23:11:22 | FromDiscord | <jtv> Doesn't work w/ just nim either, nvm. Is it a new feature, cause I'm testing on the stable branch |
23:11:27 | * | wallabra_ joined #nim |
23:11:36 | FromDiscord | <Elegantbeef> you need `arc`/`orc` |
23:11:43 | FromDiscord | <Elegantbeef> I used stable there |
23:11:50 | FromDiscord | <jtv> Okay, that's the missing piece for me, thanks |
23:11:55 | FromDiscord | <Elegantbeef> The implicit copies are through move semantics only |
23:12:37 | * | wallabra_ is now known as wallabra |
23:14:17 | FromDiscord | <Ailuros 💖🧡💛💚💙💜🖤> sent a long message, see http://ix.io/4khX |
23:17:54 | * | wallabra_ joined #nim |
23:18:38 | * | wallabra quit (Ping timeout: 260 seconds) |
23:18:41 | * | ltriant joined #nim |
23:19:08 | * | wallabra_ is now known as wallabra |
23:29:00 | * | ltriant quit (Ping timeout: 272 seconds) |
23:29:47 | FromDiscord | <Bung> @ElegantBeef https://github.com/beef331/nimscripter/issues/20 have u checked this ? |
23:30:00 | FromDiscord | <Elegantbeef> I've seen |
23:30:04 | FromDiscord | <Elegantbeef> But i dont know what approach i'm going to take |
23:30:15 | FromDiscord | <Elegantbeef> Dont know how responsive disruptek is going to be to `taskRequires` |
23:31:48 | FromDiscord | <Bung> am worry about that `taskRequires` breaks, since the new nimble will ship with new nim, that will make everybody un aware. |
23:32:51 | FromDiscord | <Bung> and nimble packages may use that feature or may not, that make things complicated. |
23:33:39 | FromDiscord | <Bung> and nimble also has minimal nim support, that may not satisfy any more |
23:34:25 | FromDiscord | <Elegantbeef> Well i dont know what to do as of yet |
23:34:27 | FromDiscord | <Elegantbeef> So cannot say much |
23:35:30 | FromDiscord | <Elegantbeef> I pinned assume to a specific version so i dont get how it suddenly stops working |
23:37:36 | * | ltriant joined #nim |
23:38:06 | FromDiscord | <Bung> from my point of view nimscripter dont expected something new of `assume` right? so I guess simplely copy his files. |
23:38:41 | FromDiscord | <jos> do i need to use importc for a struct that uses the default c layout? |
23:38:51 | FromDiscord | <jos> like so |
23:38:53 | FromDiscord | <Elegantbeef> No↵(@Bung) |
23:39:20 | FromDiscord | <jos> sent a code paste, see https://play.nim-lang.org/#ix=4khZ |
23:39:27 | FromDiscord | <Elegantbeef> I do not get why the solution to package management is to copy a dependencies' source |
23:40:00 | FromDiscord | <Elegantbeef> Nothing has changed for the packages nimble should fetch and the ones I've requested afaik |
23:40:15 | FromDiscord | <Elegantbeef> Why does nimble suddenly decide that it cannot install this package? |
23:40:17 | FromDiscord | <jos> do i need a header file and the {.importc: "struct GcControllerState", header: "gc.h"} bit-- because this ffi is actually exported from rust |
23:40:21 | FromDiscord | <jos> so i dont have a header file |
23:41:08 | FromDiscord | <Elegantbeef> You shouldnt |
23:42:24 | FromDiscord | <Bung> I think it's low level lib,so less dependency is better |
23:43:36 | FromDiscord | <Bung> like if it's zero dependency, I dont need write lines description in the issue. |
23:43:59 | FromDiscord | <Elegantbeef> I dont see why dependencies matter |
23:44:00 | FromDiscord | <Elegantbeef> We have a package manager |
23:44:05 | FromDiscord | <jos> In reply to @Elegantbeef "You shouldnt": ty |
23:44:15 | FromDiscord | <jos> imo the biggest problem with nimble is that people aren't using it |
23:44:23 | FromDiscord | <Elegantbeef> The entire point is to distribute the authors of software and allow software to work together |
23:44:23 | FromDiscord | <jos> someone called iface a really pivotal like basic package that a lot of people use |
23:44:26 | FromDiscord | <jos> but it ain't even on nimble 😦 |
23:44:44 | FromDiscord | <Elegantbeef> Nimble is decentralised so who cares? |
23:44:44 | FromDiscord | <jos> i wish interfaces were just part of the language so libs could expose them in a meaningful way |
23:44:53 | FromDiscord | <jos> it's important for adoption |
23:44:53 | FromDiscord | <Elegantbeef> You can fetch the package easily |
23:44:57 | FromDiscord | <jos> just look at how rust scaled up, it's beautiful |
23:45:04 | FromDiscord | <jos> it all starts with a good package manager |
23:45:18 | FromDiscord | <jos> i'm okay with it though, when i write nim i just pretend i'm writing a better c |
23:45:34 | FromDiscord | <Elegantbeef> Cargo culting! 😛 |
23:45:47 | FromDiscord | <jos> rust is mid but all the tooling around rust is amazing imo |
23:46:03 | FromDiscord | <Elegantbeef> At the point i might aswell use a git submodule to depend on other peoples code cause nimble apparently doesnt work is the point i just archive that repo |
23:46:12 | FromDiscord | <Bung> I'd say that's still ideal, it's always a pain track dependencies problem. |
23:46:14 | FromDiscord | <planetis> What that means, anyway? |
23:46:32 | FromDiscord | <Elegantbeef> https://en.wikipedia.org/wiki/Cargo_cult |
23:46:49 | FromDiscord | <Elegantbeef> https://en.wikipedia.org/wiki/Cargo_cult_programming |
23:47:05 | FromDiscord | <Bung> I've had experience tack a node module, in the end I forked 3 projects to fix that. |
23:47:19 | FromDiscord | <Elegantbeef> I'm not the author of assume no do i want to maintain it |
23:47:37 | FromDiscord | <planetis> Thanks, i think i get it |
23:47:40 | FromDiscord | <Elegantbeef> So why do i want to pull it in to my project and maintain a fork of it |
23:48:14 | FromDiscord | <planetis> But i am like kanye, joke flew past me |
23:48:59 | FromDiscord | <jos> i have to fork dependencies sometimes |
23:49:05 | FromDiscord | <jos> in really big projects like at work i have to do it all the time |
23:49:08 | FromDiscord | <Bung> I dont think that project will make much updates. |
23:49:10 | FromDiscord | <jos> sometimes it's just the easiest way to get shit done |
23:49:18 | FromDiscord | <Elegantbeef> I dont care if it does bung |
23:49:34 | FromDiscord | <Elegantbeef> The package installs fine.... but suddenly doesnt and nothing has changed on my end |
23:49:43 | FromDiscord | <Elegantbeef> Disruptek didnt go changing the dependencies on me |
23:49:49 | FromDiscord | <Elegantbeef> I didnt change the nimble file |
23:49:57 | FromDiscord | <Elegantbeef> So.... who's at fault? |
23:50:42 | FromDiscord | <Bung> okay then, now am tracking a dependency that my project doesn't need now. |
23:51:08 | FromDiscord | <Elegantbeef> So the issue is that disruptek doesnt use `taskRequires` |
23:51:15 | FromDiscord | <Elegantbeef> Maybe then create an issue on his repo? |
23:52:28 | FromDiscord | <Bung> that's multiple issues for me, like in the description `nimble install nimble` I still get old nimble |
23:53:04 | FromDiscord | <Elegantbeef> I'm still lost what i'm supposed to do here |
23:53:26 | FromDiscord | <Elegantbeef> I can copy assume into my repo, and now i maintain it! The problem still exists that you're having |
23:53:59 | FromDiscord | <Elegantbeef> An issue can be made on `assume` that adds `taskRequires`! Does that solve the problem you're having? |
23:54:01 | FromDiscord | <Bung> no, I can simply fork nimscripter copy assume myself |
23:54:25 | FromDiscord | <Elegantbeef> Of course, but that doesnt solve the underlying problem |
23:54:39 | FromDiscord | <Elegantbeef> You cannot install my package for X reason and i want to resolve it properly |
23:54:44 | FromDiscord | <Bung> like I said I cant use newer nimble |
23:54:44 | FromDiscord | <Elegantbeef> But i'm uncertain the cause of X reason |
23:55:05 | FromDiscord | <Bung> so even it use `taskRequires` |
23:55:29 | FromDiscord | <Elegantbeef> I'm using 0.13.1 and it installed fine |
23:56:31 | FromDiscord | <Bung> so that's 3 issues now |
23:57:16 | FromDiscord | <Bung> I'll just fork myself, so I dont need track any issue that my project doesn't need. |
23:57:43 | FromDiscord | <Elegantbeef> Sorry i could not resolve your issue |
23:57:47 | FromDiscord | <Elegantbeef> I really do want to |
23:58:11 | FromDiscord | <Elegantbeef> Also to update nimble you need to update to nim 2.0 afaik |
23:58:29 | FromDiscord | <Elegantbeef> Nimble is apart of the nim toolchain and versioned with the compiler |