00:01:23 | * | beholders_eye quit (Ping timeout: 244 seconds) |
00:07:14 | FromDiscord | <user2m> In reply to @simbuilder "Hey huge fan of": I basically use nim as typescript today. Just compile down to JS |
00:19:57 | * | amadaluzia_ quit (Quit: ZNC 1.10.0 - https://znc.in) |
00:20:19 | FromDiscord | <Robyn [She/Her]> @simbuilder the admins are also just regular users, you should ask your questions here, there are a few people here who I'd consider knowledgeable who aren't admins (since, admins are purely for the community management side) |
00:21:07 | FromDiscord | <Robyn [She/Her]> Bindings to Haskell would have to go through an intermediary C layer, fyi |
00:21:52 | FromDiscord | <Robyn [She/Her]> You can expose Nim to C quite easily and bind to that on the Haskell side, I've only touched Haskell briefly so can't attest to the experience of exposing Haskell code to C |
00:23:15 | FromDiscord | <Robyn [She/Her]> Nim can't bind to TS since, TS' types only exist on the language level and get compiled away when exporting to JS, so are you asking about how to get typesafety on the Nim side when using JS libraries? |
01:01:39 | FromDiscord | <simbuilder> I am very glad to have joined then, I like merit based open source communities. |
01:01:55 | FromDiscord | <simbuilder> Right reason for Haskell would be the use of the Cardano Crypto. |
01:02:35 | FromDiscord | <simbuilder> Though if TypeScript is based in itself + Lua which it is, and Nim compiles to Lua could it not work with TypeScript? |
01:03:06 | FromDiscord | <simbuilder> It's just that TS is less error prone than JS |
01:03:28 | FromDiscord | <simbuilder> Especially when it comes down to linting errors and catching them prior to the console logs. |
01:03:50 | FromDiscord | <simbuilder> TypeSafety would definetly improve the UX when working with JS. |
01:04:21 | FromDiscord | <simbuilder> _ |
01:04:55 | FromDiscord | <leorize> for binding to any native languages, that's not an issue as long as they can talk C |
01:05:05 | FromDiscord | <simbuilder> Join me in #langdev |
01:05:27 | FromDiscord | <leorize> nim doesn't compile to lua |
01:05:35 | FromDiscord | <leorize> also, that room is for developing languages using nim |
01:07:59 | FromDiscord | <leorize> nim can bind to TS in the same way JS can bind to TS, by using JS as the common language |
01:08:34 | FromDiscord | <leorize> I don't think any automated wrapper exists, and fwiw nim type system is not as featureful as TS |
01:17:15 | FromDiscord | <simbuilder> Okay so, I will be in langdev with that purpose in mind.↵I am working on a fork called soul, I will share my conceptual repository there so you all can evaluate it. |
01:17:23 | FromDiscord | <simbuilder> Thanks |
01:20:32 | FromDiscord | <Robyn [She/Her]> In reply to @simbuilder "Though if TypeScript is": Nim doesn't compile to Lua |
01:55:32 | FromDiscord | <simbuilder> RIP, ChatGPT lied to me then. |
01:55:37 | FromDiscord | <simbuilder> (edit) "RIP," => "RIP" |
01:55:44 | FromDiscord | <simbuilder> Can it? |
01:55:54 | FromDiscord | <simbuilder> How hard would a Lua binding be? |
01:56:06 | FromDiscord | <simbuilder> Luau too? |
01:59:00 | FromDiscord | <simbuilder> I could FireCrawl the whole Docs and then VectorDB it for RAG if that helps. |
01:59:35 | FromDiscord | <leorize> yes↵(@simbuilder) |
02:00:00 | FromDiscord | <griffith1deadly> why is everyone so obsessed with AI? is google blocked? is github blocked? AI is cancer |
02:00:10 | FromDiscord | <leorize> you'd need to reimplement nim semantics in Lua terms |
02:00:23 | FromDiscord | <simbuilder> Sure, I can do that. |
02:00:35 | FromDiscord | <Elegantbeef> @griffith1deadly People are lazy and asking a supposed intelligence is easier than using your own |
02:00:46 | FromDiscord | <leorize> AI is pretty bad at nim, fwiw |
02:00:56 | FromDiscord | <leorize> this language isn't popular enough |
02:00:59 | FromDiscord | <Elegantbeef> > AI is pretty bad↵FTFY |
02:02:17 | FromDiscord | <simbuilder> We'd have to teach each LLM by giving it enough data about semantics, operators, constructors, functions, events, client, server, classes, ect.↵↵Then the AI provider would have to process the data from their RL feedback loops into the actual LLMs for it to take effect. |
02:02:18 | FromDiscord | <leorize> haxe is a better polygot language if you're interested in that |
02:02:28 | FromDiscord | <simbuilder> What is haxe? |
02:03:00 | FromDiscord | <griffith1deadly> In reply to @simbuilder "RIP ChatGPT lied to": isn't it says about nimlua that is just lua binding to nim? lua executor from nim code basically and not compiler backend |
02:03:32 | FromDiscord | <simbuilder> Interesting, so it has nimlua in nimble? |
02:03:42 | FromDiscord | <simbuilder> Then is it missing anything? |
02:03:56 | FromDiscord | <simbuilder> Idk who maintains this stuff. |
02:04:15 | FromDiscord | <Elegantbeef> Sometimes I feel like I'm in an asylum |
02:04:36 | FromDiscord | <griffith1deadly> https://github.com/search?q=nimlua%20language%3ANim&type=repositories |
02:04:52 | FromDiscord | <griffith1deadly> stop using AI or AI will replace you; |
02:05:33 | FromDiscord | <simbuilder> Wow so Haxe is about twice the versions into dev than Nim↵https://haxe.org/ |
02:05:49 | FromDiscord | <Elegantbeef> Don't say that. People will start chanting "you won't replace us" and it'll be hard to distinguish who is who |
02:05:56 | FromDiscord | <simbuilder> It's what you build |
02:05:59 | FromDiscord | <simbuilder> AI is a tool |
02:06:12 | FromDiscord | <Elegantbeef> @simbuilder As if that really means anything |
02:06:26 | FromDiscord | <Elegantbeef> 4.3.7 or 0.1.00000001 |
02:06:58 | FromDiscord | <simbuilder> Well when you look at Nim it's at 2.2.4 |
02:07:03 | FromDiscord | <simbuilder> Same versioning convention |
02:08:14 | FromDiscord | <leorize> I can create a language and start with version 15.0.1, it doesn't mean anything |
02:08:37 | ehmry | if anyone is interested I made a tool for processing code before feeding it to a model https://git.sr.ht/~ehmry/scramble |
02:08:54 | FromDiscord | <simbuilder> What does it do? |
02:09:50 | ehmry | flips around stuff to produce code that is impossible to tell if it actually works or not |
02:10:02 | FromDiscord | <leorize> huh, even sourcehut is using anubis |
02:12:59 | FromDiscord | <Elegantbeef> Leo you made me look at their site↵> Made with ❤️ in 🇨🇦↵Damn I guess I need to add something to my site \:DMade with 💀 in 🇨🇦 |
02:14:21 | FromDiscord | <leorize> how long do you think you can display that flag 😛 |
02:14:44 | FromDiscord | <Elegantbeef> As long as I'm alive |
02:15:24 | FromDiscord | <Elegantbeef> Which from my perspective will be forever |
02:39:53 | * | Guest60 joined #nim |
02:40:27 | * | Guest60 quit (Client Quit) |
03:05:25 | * | rockcavera quit (Remote host closed the connection) |
04:28:00 | FromDiscord | <Zoom> I think I saw a joke swiftly flying by you... |
04:28:16 | FromDiscord | <Elegantbeef> In what regard? |
04:31:48 | FromDiscord | <Zoom> Regarding longevity of the Canadian flag, unless your answer implies fighting for sovereignty to the death. |
04:32:43 | FromDiscord | <Elegantbeef> It does indeed |
04:35:02 | FromDiscord | <Zoom> I guess it's not that easy for me to imagine anyone thinking this way seriously, as I am, well, not Canadian. |
04:36:04 | FromDiscord | <Elegantbeef> You cannot imagine someone not wanting to give up their sovereignty? |
04:44:17 | FromDiscord | <leorize> my joke has more to do with where beef lives than Canadian sovereignty |
04:50:21 | * | amadaluzia joined #nim |
04:51:40 | * | amadaluzia quit (Client Quit) |
05:05:06 | * | skippy8 joined #nim |
05:05:31 | FromDiscord | <Zoom> If you can consider jokes an art form, then you don't get much say. |
05:24:23 | * | om3ga quit (Ping timeout: 252 seconds) |
05:40:49 | * | om3ga joined #nim |
07:53:40 | * | xet7 quit (Remote host closed the connection) |
08:17:35 | FromDiscord | <pmunch> In reply to @simbuilder "Wow so Haxe is": Just because the numbers line up doesn't mean that they mean the same. Even according to semantic versioning it just means that there has been more breaking changes updates in Haxe than in Nim, which can be good or bad depending on how you look at it. But I think neither Nim nor Haxe strictly follows semantic versioning. |
09:03:24 | Amun-Ra | simbuilder: same versioning convention, but not the same versioning meaning |
12:11:22 | FromDiscord | <krisp0> does anyone know how to reduce nimsuggest's cpu usage? |
12:12:06 | * | beholders_eye joined #nim |
12:31:42 | FromDiscord | <janakali> In reply to @krisp0 "does anyone know how": is it 100% all the time? |
12:33:07 | FromDiscord | <krisp0> In reply to @janakali "is it 100% all": no but generally like 50%-60% sometimes |
12:34:25 | * | beholders_eye quit (Ping timeout: 248 seconds) |
12:34:59 | FromDiscord | <janakali> you can limit number of nimsuggest processes, but not sure how effective it is |
13:35:27 | FromDiscord | <Robyn [She/Her]> In reply to @simbuilder "How hard would a": A Lua backend? Good luck... |
13:36:02 | FromDiscord | <Robyn [She/Her]> In reply to @Elegantbeef "Sometimes I feel like": Same |
13:37:28 | FromDiscord | <Robyn [She/Her]> In reply to @simbuilder "Same versioning convention": Sure, they both use SemVer, which is Major.Minor.Patch, Major being breaking changes, Minor being backward compatible changes, and patches being bug fixes, this just means Haxe has had 4 or 5 major breaking changes compared to Nim, not a measure of progress |
13:46:04 | FromDiscord | <nnsee> the real question is how many patches fit into a minor release and how many minor releases fit into a major release |
13:47:26 | * | alexdaguy joined #nim |
14:33:10 | * | beholders_eye joined #nim |
14:41:00 | * | skippy8 quit (Ping timeout: 276 seconds) |
14:55:23 | * | skippy8 joined #nim |
15:03:44 | FromDiscord | <Robyn [She/Her]> In reply to @nnsee "the real question is": how is that a question? |
15:38:17 | FromDiscord | <nnsee> In reply to @battery.acid.bubblegum "how is that a": i was pointing out the silliness of comparing version numbers like that |
15:38:26 | FromDiscord | <nnsee> not a serious question |
15:38:27 | FromDiscord | <Robyn [She/Her]> oh |
15:38:35 | FromDiscord | <Robyn [She/Her]> sorry i couldn't tell :p |
15:38:46 | FromDiscord | <nnsee> sorry |
15:38:55 | FromDiscord | <Robyn [She/Her]> nah don't apologise |
15:39:08 | FromDiscord | <Robyn [She/Her]> texting is a lossy medium for communication |
15:45:35 | * | alexdaguy quit (Quit: ded) |
15:45:41 | FromDiscord | <frankharwaldgmx.de_40301> sent a long message, see https://pasty.ee/lWdRyDom |
15:47:55 | FromDiscord | <frankharwaldgmx.de_40301> I'm invoking koch as "./koch boot --cpu:arm64 --os:linux" but regardless it always produces an x86_64 binary. (objdump & file both tell so & a xxd hexdump also look like it) |
15:47:55 | FromDiscord | <leorize> koch does not support cross bootstrap |
15:49:46 | FromDiscord | <leorize> also, are there any reasons the prebuilt binaries would not work for you? |
15:50:17 | FromDiscord | <frankharwaldgmx.de_40301> @leorize oh, I didn't realize that, it didn't say so anywhere in the docs & by the glance at the code I had it looked koch.nim might be able to do so by simply passing further command parameters down to the nim when invoking it. But thanks that clarifies a lot. |
15:50:24 | FromDiscord | <leorize> https://github.com/nim-lang/nightlies/releases \<- arm64 binaries are built daily |
15:51:37 | FromDiscord | <frankharwaldgmx.de_40301> So nim has arm64 nightly binaries but none in the stable download section? ok |
15:52:22 | FromDiscord | <leorize> it's a website problem |
15:52:32 | FromDiscord | <leorize> the binaries are built for all versions, + macOS |
15:53:04 | FromDiscord | <leorize> no one has fixed https://github.com/nim-lang/nightlies/releases |
15:53:14 | FromDiscord | <leorize> no one has fixed https://github.com/nim-lang/website/issues/282 |
15:53:39 | FromDiscord | <frankharwaldgmx.de_40301> Another: I was also trying to compile it on the Raspi 4 itself. Turns out it doesn't work anymore since debian dropped the old pcre library entirely. The net result is that all major distros are stuck at about nim 1.6.x & it's also near impossible to build it on recent debian testing except wrangling it to install old deprecated devel packages |
16:10:10 | FromDiscord | <frankharwaldgmx.de_40301> sent a long message, see https://pasty.ee/QmwXkZgH |
16:11:40 | FromDiscord | <leorize> you don't need nim to compile nim from source |
16:12:10 | FromDiscord | <leorize> just run `./build_all.sh`, it will build the bootstrap compiler then compile nim + tools |
16:12:24 | FromDiscord | <leorize> all you need is just a C compiler |
16:16:21 | FromDiscord | <frankharwaldgmx.de_40301> I also tried ./build_all.sh on the target machine itself (aarch64, e.g. regular compiling without any cross-compiling options) - didn't work either. It always fails with a "ci/funs.sh: line 52: config/build_config.txt: No such file or directory" or "ci/funs.sh: line 53: nim_csourcesHash: unbound variable" error messages before starting to do anything. |
16:17:26 | FromDiscord | <leorize> did you clone from git or did you use the source archive? |
16:19:09 | FromDiscord | <frankharwaldgmx.de_40301> I used the source archive |
16:19:34 | FromDiscord | <leorize> you should open an issue in nim repo for that |
16:20:02 | FromDiscord | <leorize> you can manually run `./build.sh` first to build the bootstrap compiler |
16:20:11 | FromDiscord | <leorize> which will be placed in `bin/nim` |
16:20:28 | FromDiscord | <leorize> use that to build koch, then compiler, then tools |
16:20:42 | FromDiscord | <leorize> you should add `bin` to `PATH` for that |
16:23:12 | FromDiscord | <frankharwaldgmx.de_40301> Just checked: ./build_all.sh also fails to regularly compile on x86_64 Arch (which has all development files & headers installed by default). Weird, feeld like I'm missing something. |
16:24:54 | FromDiscord | <leorize> it's optimized for use when you actually clone the repo from git |
16:25:12 | FromDiscord | <leorize> the source archive is missing the required bits, which shows you how no one tests it... |
16:30:55 | FromDiscord | <frankharwaldgmx.de_40301> ok, gonna check out if the git repo works |
16:35:16 | FromDiscord | <frankharwaldgmx.de_40301> So nim from the source archive ftbfs because it's imply missing a single file: config/build_config.txt |
16:36:06 | FromDiscord | <frankharwaldgmx.de_40301> but it compiles just fine from the git repo |
16:42:19 | * | perro quit (Ping timeout: 268 seconds) |
16:46:23 | * | perro joined #nim |
16:57:47 | FromDiscord | <frankharwaldgmx.de_40301> ok thx, gotta go |
16:59:30 | * | perr_ joined #nim |
17:00:04 | * | perro quit (Ping timeout: 260 seconds) |
17:04:33 | * | beholders_eye quit (Ping timeout: 245 seconds) |
17:07:57 | * | skippy8 quit (Ping timeout: 252 seconds) |
17:14:14 | * | perr_ quit (Ping timeout: 260 seconds) |
17:14:56 | * | perro joined #nim |
17:16:09 | Amun-Ra | iirc ./build_all.sh worked fine on arch last month I run that inside my arch vm |
17:20:55 | FromDiscord | <spotlightkid> You need to copy `config/build_config.txt` from the repo to `config/` first. |
17:22:29 | FromDiscord | <spotlightkid> matrix-irc bridge dropped the first of my last two messages \:-( |
17:25:51 | Amun-Ra | how do you see message wasn't delivered? |
17:29:31 | strogon14 | I'm on both matrix and irc |
17:30:33 | strogon14 | my first message was in reply to you: |
17:30:33 | strogon14 | "well, yes, from inside a repo checkout. but not from an extracted source distribution (e.g. https://nim-lang.org/download/nim-2.2.4.tar.xz)." |
17:32:27 | Amun-Ra | I see |
17:34:25 | FromDiscord | <leorize> there's no matrix-irc bridge anymore |
17:34:26 | FromDiscord | <leorize> it's matrix -\> discord -\> irc |
17:34:26 | FromDiscord | <spotlightkid> using discord for floss projects is just so stupid. |
17:35:07 | FromDiscord | <leorize> tell me about it |
17:35:20 | FromDiscord | <leorize> but it is true that discord is where people are (even if they're wrong) |
17:35:31 | FromDiscord | <hawkey5212> is there any way to get the compiler to raise an error on an implicit return? just wasted a significant part of my day chasing down a bug that weaseled its way in via rebase, and instead of returning a valid value, it returned the default value because a line was dropped in the rebase. |
17:41:08 | Amun-Ra | hawkey5212: --warningAsError:ProveInit:on |
17:41:46 | Amun-Ra | dunno whether that'll make stdlib fail on compile |
17:41:46 | FromDiscord | <hawkey5212> cheers |
17:41:59 | Amun-Ra | but you can turn on the warning in that case |
17:44:18 | FromDiscord | <hawkey5212> hmmm. didn't seem to work. implicit default value returns are still getting through the compiler. |
17:45:01 | Amun-Ra | hmm, works here |
17:45:28 | Amun-Ra | ah, it works only in the case result is not initialized |
17:45:35 | Amun-Ra | my bad |
17:46:38 | FromDiscord | <hawkey5212> What's the idea behind having `result` as this magic variable? I'm sure there's a good reason behind it, but all it's done for me is to cause pain.↵↵When does having this magic variable come in handy? |
17:50:57 | Amun-Ra | hawkey5212: this is one my use cases: single assign instead of two returns / additional indent: https://dpaste.com/GP2KE8QVA |
17:51:45 | * | skippy8 joined #nim |
17:54:07 | FromDiscord | <hawkey5212> https://dpaste.com/8TBKZKSQS↵↵Isn't that better anyway? |
17:54:17 | Amun-Ra | don't set result and warningAsError + ProveInit:on will save your a… |
17:54:39 | Amun-Ra | hawkey5212: I like to return early and keep indent level low |
17:55:44 | FromDiscord | <hawkey5212> indent level doesn't change, and return occurns at same point, though? |
17:56:17 | Amun-Ra | hawkey5212: 'ident.append_version' is one indent level deeper |
17:56:23 | Amun-Ra | that's just my code style |
17:56:40 | Amun-Ra | I won't change it in a forseable future ;) |
17:56:47 | FromDiscord | <leorize> it's a part of the pascal/modula-3 lineage↵(@hawkey5212) |
17:58:58 | FromDiscord | <ieltan> In reply to @hawkey5212 "What's the idea behind": `result` enable the compiler to make optimizations which avoids copies |
17:59:22 | FromDiscord | <ieltan> NRVO iirc |
18:01:11 | FromDiscord | <hawkey5212> I could believe that it would make it _easier_ to write these optimisations into the compiler, but I highly doubt that having this magic variable is a _requirement_ for these optimisations. |
18:02:28 | FromDiscord | <ieltan> I think you're correct but that it would make the optimization more complex |
18:03:36 | FromDiscord | <hawkey5212> Short of convincing the project to get rid if this magic variable, what can be done to basically remove it from a project? e.g. "whenever it's detected that `result` is implicitly used, raise an error" |
18:04:20 | FromDiscord | <leorize> use a linter |
18:04:31 | FromDiscord | <leorize> except none exists atm afaik |
18:05:30 | FromDiscord | <ieltan> Ehh in theory you can use term-rewriting macros as a linter and check if any variable is called 'result' |
18:06:09 | FromDiscord | <ieltan> In practice, pretty sure you'll give up and just deal with it™️ |
18:06:28 | FromDiscord | <hawkey5212> no `--implicitReturn:off` or anything like that? |
18:07:00 | FromDiscord | <ieltan> You can make a RFC for it |
18:07:01 | FromDiscord | <hawkey5212> In reply to @ieltan "In practice, pretty sure": https://tenor.com/view/smiles-frustrated-sad-emoji-gif-25369804 |
18:07:17 | FromDiscord | <ieltan> I don't think it's that complicated to implement |
18:07:32 | FromDiscord | <hawkey5212> In reply to @ieltan "You can make a": Sounds like the way to go. |
18:08:45 | FromDiscord | <ieltan> Is it really that bad? I never really had issues with it |
18:11:14 | * | perro quit (Ping timeout: 260 seconds) |
18:11:52 | * | perro joined #nim |
18:12:52 | FromDiscord | <hawkey5212> sent a long message, see https://pasty.ee/jDtRYtyG |
18:12:59 | FromDiscord | <leorize> it does require a bit of reframing to use |
18:13:56 | FromDiscord | <ieltan> In reply to @hawkey5212 "I mean, yes, obviously.": Oh, lol |
18:14:16 | FromDiscord | <leorize> people are mostly used to C-style return-only languages, so writing code that takes advantage of `result` is not well-ingrained |
18:14:23 | FromDiscord | <ieltan> Are you doing ffi or something? |
18:15:03 | FromDiscord | <ieltan> `result` should be zero mem'd fwiw |
18:15:28 | FromDiscord | <ieltan> But I dont think it's the issue |
18:18:04 | FromDiscord | <hawkey5212> nah, nothing like that. Just... weirded out by the _wrong_ness of it. |
18:18:27 | FromDiscord | <ieltan> In reply to @leorize "people are mostly used": it's ironic because after the compiler is done with NRVO the function is quite c-style |
18:19:33 | FromDiscord | <hawkey5212> "NRVO"? |
18:19:51 | FromDiscord | <ieltan> The compiler kinds of lies to you which is why it's probably confusing |
18:20:10 | FromDiscord | <ieltan> In reply to @hawkey5212 ""NRVO"?": named return value optimization |
18:20:44 | * | perro quit (Ping timeout: 260 seconds) |
18:20:53 | FromDiscord | <leorize> fwiw, the compiler can do nvro but that doesn't necessarily mean it would |
18:21:26 | * | perro joined #nim |
18:23:54 | FromDiscord | <hawkey5212> okay, looking into it, NVRO being straight forward without having a magic `return` seems to be the class of optimization that is on the easier end of the spectrum. |
18:25:37 | FromDiscord | <ieltan> sent a code paste, see https://play.nim-lang.org/#pasty=ZxQWvJTZ |
18:25:52 | FromDiscord | <hawkey5212> I mean, compiler engineering is fucking _up there_ in terms of the level of engineering and big-brains is involved, but if you can do the sort of optimisations that are kinde "nothing special" to us plebs, i can't imagine it being that difficult to manipulate the symbles and graphs such that the return variable is threaded through in a zero-copy manner. |
18:26:10 | FromDiscord | <leorize> `result` is mostly an artifact of the Writh lineage |
18:27:01 | FromDiscord | <leorize> I'd say it's more taste-driven than technical |
18:28:37 | FromDiscord | <ieltan> In reply to @ieltan "In my understanding, if": It might be easier to get what you want @hawkey5212. I think if you set c as the calling convention it would disable NRVO |
18:28:41 | FromDiscord | <ieltan> I'm not sure tho |
18:29:07 | FromDiscord | <leorize> they don't want the result variable |
18:29:12 | FromDiscord | <ieltan> It's also quite a hack but it's probably one of the less ugly ones |
18:29:20 | FromDiscord | <leorize> c calling convention doesn't do anything wrt that |
18:29:47 | FromDiscord | <ieltan> In reply to @leorize "they don't want the": Because they get data corruption, not sure how |
18:30:23 | FromDiscord | <leorize> as they said, it's an uncaught logic bug from rebasing |
18:31:10 | FromDiscord | <leorize> in return-only or init-mandatory languages, the compiler would yell at you for not initializing or returning |
18:31:42 | FromDiscord | <leorize> in their case, it turned into `return default(T)`, causing corruption |
18:33:09 | FromDiscord | <hawkey5212> speaking purely to taste: I feel there is merit to the claim that having implicit result is an objectively bad engineering feature of the language, such as for the subtle data corruption bug it can let in, that i mentioned earlier. |
18:33:54 | FromDiscord | <leorize> it's a set of tradeoffs |
18:34:24 | FromDiscord | <leorize> if the issue is that you forgot to set `result`, just slap `{.requiresInit.}` on your procs |
18:40:05 | Amun-Ra | push: requiresInit |
18:41:38 | FromDiscord | <hawkey5212> In reply to @Amun-Ra "push: requiresInit": so if i put `{.push: requiresInit.}` at the top of all/root file of project, that sohuld effectively slash `result` as a magic variable? |
18:46:18 | FromDiscord | <leorize> it wouldn't |
18:46:34 | FromDiscord | <leorize> it would only force your result to be initialized |
18:46:49 | FromDiscord | <ieltan> In reply to @leorize "in their case, it": lol |
18:47:11 | FromDiscord | <leorize> but I'd suggest learning how to best use result, it's a great language feature imo |
18:48:46 | * | perro quit (Ping timeout: 265 seconds) |
18:49:45 | * | perro joined #nim |
19:07:52 | FromDiscord | <hawkey5212> sent a long message, see https://pasty.ee/TxflkTEu |
19:08:39 | FromDiscord | <leorize> it is, in fact, controversial |
19:09:08 | FromDiscord | <hawkey5212> The feature or my statement? |
19:09:19 | FromDiscord | <leorize> your opinion |
19:10:00 | FromDiscord | <leorize> the loudest complaint was from status (nim major sponsor) iirc |
19:10:44 | FromDiscord | <hawkey5212> "complaint" as in...? |
19:10:59 | FromDiscord | <leorize> they had the same statements |
19:11:18 | FromDiscord | <leorize> they still do, if you follow #internals |
19:11:34 | FromDiscord | <leorize> never budged Araq or the community opinion, though |
19:14:01 | * | perro quit (Ping timeout: 268 seconds) |
19:14:45 | FromDiscord | <hawkey5212> I didn't say it isn't controversial. I said that I don't believe it should be controversial. |
19:14:47 | * | perro joined #nim |
19:18:10 | FromDiscord | <hawkey5212> And if araq and the community drive the direction of the language down a path that can be reasonably claimed to be one of flawed engineering, then where is status going to be 5 years from now? |
19:18:44 | FromDiscord | <leorize> it's been a little more than 5 and they're still here |
19:19:22 | FromDiscord | <leorize> also, "flawed" is mostly your opinion |
19:20:12 | FromDiscord | <spotlightkid> for reference\: this is status' stance on this\: https://status-im.github.io/nim-style-guide/language.result.html |
19:22:43 | FromDiscord | <ieltan> ngl it does really suck lol |
19:22:50 | FromDiscord | <ieltan> the bug i mean |
19:25:44 | FromDiscord | <ieltan> imo Nim should at least put a warning for the case where `result = T::default()` cause a bug |
19:26:04 | FromDiscord | <ieltan> but ig that's already been talked to death |
19:27:17 | FromDiscord | <ieltan> (edit) "T::default()`" => "default(T)`" |
19:27:29 | FromDiscord | <ieltan> oops used rust syntax by habit |
19:28:45 | * | perro quit (Ping timeout: 252 seconds) |
19:30:20 | FromDiscord | <hawkey5212> In reply to @leorize "also, "flawed" is mostly": I think there are many aspects of the language that are objective flawed from an engineering perspective. Every language has them, but I'm constantly surprised by just how prevalent and serious many of them are. |
19:31:00 | FromDiscord | <leorize> indeed, the language is full of weird holes that somehow wasn't fixed prior to 2.0 |
19:31:33 | * | perro joined #nim |
19:32:10 | FromDiscord | <hawkey5212> In reply to @ieltan "ngl it does really": It's more than "suck".↵↵In my case, I just lost a but under a day. I was lucky that it didn't do a therac-25 like bug, where everything seems fun until someone dies. |
19:34:53 | FromDiscord | <hawkey5212> Those sorts of bugs can come from anywhere. It's a matter of good engineering to stop them before they scalate. Calling something that can be a significant source of such issues a "feature" is an interesting opinion... |
19:35:15 | FromDiscord | <lainlaylie> does --experimental:strictDefs get you the compiler warning you're after? |
19:37:15 | FromDiscord | <hawkey5212> In reply to @lainlaylie "does --experimental:strictDefs get you": Couldn't find a reference to it. Away from office, but I'll give it a check when I can. |
19:39:29 | * | perro quit (Ping timeout: 260 seconds) |
19:40:07 | * | perro joined #nim |
19:53:21 | * | perro quit (Ping timeout: 248 seconds) |
19:54:18 | * | perro joined #nim |
20:15:41 | * | perro quit (Ping timeout: 268 seconds) |
20:16:06 | * | perro joined #nim |
20:37:37 | * | bcksl quit (Ping timeout: 248 seconds) |
20:39:17 | * | end quit (Ping timeout: 248 seconds) |
20:57:26 | * | bcksl joined #nim |
21:02:38 | * | end joined #nim |
21:24:17 | * | jjido joined #nim |
21:28:16 | * | skippy8 quit (Quit: WeeChat 4.6.3) |
21:43:51 | * | jjido quit (Quit: My laptop has gone to sleep. ZZZzzz…) |
21:45:31 | FromDiscord | <bostonboston> Is the underlying size of a range the smallest that encapsulates the range? |
21:47:07 | FromDiscord | <Elegantbeef> No it's the size of the type the range subranges |
21:47:51 | FromDiscord | <bostonboston> So if I use an int literal it'll be size of int? |
21:49:44 | FromDiscord | <Elegantbeef> Yes |
21:50:33 | FromDiscord | <bostonboston> 👍 |
22:05:48 | * | perro quit (Ping timeout: 245 seconds) |
22:08:06 | * | perro joined #nim |
22:24:20 | * | rockcavera joined #nim |
22:58:40 | * | perro quit (Ping timeout: 272 seconds) |
22:59:35 | * | perro joined #nim |
23:50:19 | * | perro quit (Ping timeout: 260 seconds) |
23:51:05 | * | perro joined #nim |