<< 06-04-2024 >>

00:38:05*SchweinDeBurg quit (Quit: WeeChat 4.3.0-dev)
00:42:03*SchweinDeBurg joined #nim
02:25:13FromDiscord<zumi.dxy> In reply to @heysokam "I know you have": speaking of `--mm:none`, is there a way to override the Nim string implementation?
02:25:54FromDiscord<zumi.dxy> a lot of niceties are given up if I use cstrings for everything
02:27:41FromDiscord<Elegantbeef> you just use your own type an openarray
02:29:07FromDiscord<zumi.dxy> In reply to @heysokam "same with exceptions. they": exceptions can't be rid of entirely can they? even with `--panics:on --exceptions:goto` and the whatever else other flags are needed to "ease the pain"?↵↵even the status.im style guide recommends converting exceptions to results by try/catch which... works but i think it still compiles exception-related code
02:29:35FromDiscord<zumi.dxy> In reply to @Elegantbeef "you just use your": do I have to convert every string to it?
02:30:01FromDiscord<Elegantbeef> Yes
02:30:43FromDiscord<Elegantbeef> With none you just do not use exceptions and if you hit an exception you crash it
02:30:49FromDiscord<leorize> exceptions are a big part of the language so you can't just opt out
02:31:22FromDiscord<zumi.dxy> if you don't want exceptions you basically have to roll your own everything because uhh... stdlib
02:33:00FromDiscord<Elegantbeef> Right
02:33:18FromDiscord<zumi.dxy> 🤔
02:33:18FromDiscord<Elegantbeef> Using no gc is a fools errand
02:34:07FromDiscord<zumi.dxy> or for brave heroes
02:34:19FromDiscord<zumi.dxy> or something
02:34:34FromDiscord<zumi.dxy> arc good though
02:34:39FromDiscord<leorize> if you want a language that doesn't touch the heap at all, zig is probably a better pick
02:35:47FromDiscord<zumi.dxy> I tried compiling zig to C↵it is nigh inscrutable, but I have not tried compiling the resulting code with sdcc
02:36:19FromDiscord<zumi.dxy> sidenote: why is a blank initStackBottom a thing when I set `os` to anything other than linux
02:36:43FromDiscord<leorize> it's an artifact for refc
02:37:15FromDiscord<leorize> that's a tracing GC and it needs to know how far the stack goes for it's scanning passes
02:37:58FromDiscord<Elegantbeef> On the plus side with nim's stdlib you can use parseutils and unicode with any string now
02:38:14FromDiscord<Elegantbeef> You do have to convert to `openArray[char]` but you can use any string implementation
02:38:33FromDiscord<zumi.dxy> In reply to @leorize "it's an artifact for": seems like using anything other than the specific config that arc/orc's been tested with will bring up v1/refc stuff
02:43:24FromDiscord<Elegantbeef> It is the old runtime which is supposedly "supported"
02:45:42FromDiscord<Elegantbeef> If curious about the quotes it cause some features of rc are 'usable' in refc like destructors, but they fail miserably
03:01:14FromDiscord<zectbumo> new OpenBSD 7.5 just released. Nim stuck at 1.6 😦
03:03:15FromDiscord<Elegantbeef> Good thing there are no nim depending packages there 😄
03:04:28FromDiscord<sOkam! 🫐> In reply to @zumi.dxy "if you don't want": that's the essence of mm:none, yeah
03:04:56FromDiscord<sOkam! 🫐> its not at bad as it sounds. there are a lot of things that can be used in the stdlib, its just hard to find them but there is a lot of usable things
03:05:32FromDiscord<sOkam! 🫐> plus, you can wrap C libs and any C ABI stuff (like zig), so you don't really miss as much as you might think. you just do things very differently
03:05:38FromDiscord<Elegantbeef> Luckily you can just `{.push: raises: [].}` and find them all
03:06:24FromDiscord<sOkam! 🫐> yeah, there are ways to stop the problems. my argument is that those things should be part of the language, and not offloaded to every user to figure out on their won
03:06:32FromDiscord<sOkam! 🫐> (edit) "won" => "own"
03:08:08FromDiscord<sOkam! 🫐> In reply to @zumi.dxy "speaking of `--mm:none`, is": I had a zig-to-nim wrapper around somewhere. that was one of my last attempts at doing this↵but its better to use your own string type, like beef mentioned
03:09:11FromDiscord<sOkam! 🫐> there might be a way to wrap `sds` somehow, that could stop a lot of the pains of mm:none
03:09:20FromDiscord<Robyn [She/Her]> In reply to @heysokam "its not at bad": Is it even worth making an alternative stdlib for `mm:none`?
03:09:27FromDiscord<Elegantbeef> No
03:09:42FromDiscord<Robyn [She/Her]> Result/Option-based stdlib would be interesting to me, though
03:09:44FromDiscord<sOkam! 🫐> In reply to @chronos.vitaqua "Is it even worth": nope. definitely not. specially not with the state of the language
03:09:51FromDiscord<Elegantbeef> Use ARC with destructors and you do not force the usage of none
03:10:11FromDiscord<Elegantbeef> I'm heavily biased against explicit resource management
03:10:16FromDiscord<Robyn [She/Her]> In reply to @heysokam "there might be a": sds?
03:10:35FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "I'm heavily biased against": Yeah that's fair, I personally wouldn't ever use mm:none unless absolutely necessary
03:10:55FromDiscord<Elegantbeef> It's never necessary
03:11:03FromDiscord<sOkam! 🫐> In reply to @chronos.vitaqua "sds?": best dynamics strings C library : https://github.com/antirez/sds
03:12:08FromDiscord<sOkam! 🫐> mm:none is only cool if you like the C way of doing things. minimalistic and mostly DIY↵for 99.99% of the usecases of manual MM... arc is the way
03:12:40FromDiscord<Robyn [She/Her]> In reply to @heysokam "best dynamics strings C": Ah neat
03:12:54FromDiscord<Elegantbeef> There's nothing that none gives you that arc doesn't, but you also do not have to explicitly manage resources so it's a no brainer to just use arc
03:12:55FromDiscord<sOkam! 🫐> I personally prefer that way of working... but the compiler is not there at all, so I would rather not fight the compiler and write code instead
03:14:09FromDiscord<Robyn [She/Her]> In reply to @Elegantbeef "There's nothing that none": Yeah I definitely prefer that personally
03:18:14FromDiscord<zumi.dxy> In reply to @Elegantbeef "Good thing there are": good thing bootstrapping nim is easier than some other languages i can name
03:19:39FromDiscord<Elegantbeef> It's only true bootstrapping if it comes from the bootstrap region of france, otherwise it's sparkling shoe tying
03:20:06FromDiscord<Elegantbeef> tieing even
03:20:20FromDiscord<Elegantbeef> English sucks
03:20:44FromDiscord<Elegantbeef> One of those is right and one's not and I'm too stupid to know which
03:21:09FromDiscord<zectbumo> you got it right the first time
03:21:18FromDiscord<Elegantbeef> Ah good I'm not that stupid
03:21:29FromDiscord<Elegantbeef> I just corrected in self defence
03:21:52FromDiscord<zectbumo> except that bootstraps are not laces
03:22:08FromDiscord<Robyn [She/Her]> ✨ Phonetic alphabet would make English so much more manageable ✨
03:22:14FromDiscord<Robyn [She/Her]> Like Shavian
03:22:32FromDiscord<Elegantbeef> Who said bootstraps were laces?
03:23:21FromDiscord<zectbumo> well, you don't tie bootstraps. but I guess yours are sparkling, so maybe those you can
03:24:12FromDiscord<Elegantbeef> Sparkling shoe tongue didn't seem any more correct
03:24:22FromDiscord<zectbumo> not tongue either https://uselessetymology.com/2019/11/07/the-origins-of-the-phrase-pull-yourself-up-by-your-bootstraps/
03:24:26FromDiscord<Robyn [She/Her]> You buckle bootstraps, no?
03:24:30FromDiscord<Elegantbeef> I know what a boot strap is
03:24:30FromDiscord<zectbumo> no
03:24:38FromDiscord<Robyn [She/Her]> Damn
03:24:44FromDiscord<zectbumo> In reply to @Elegantbeef "I know what a": do you?
03:25:21FromDiscord<Elegantbeef> Yes
03:25:54FromDiscord<Elegantbeef> It's the strap that runs from the toe to the ankle that you pull when you want to mock people
03:26:18FromDiscord<zectbumo> I didn't know about the mocking part. I need to learn this motion
03:26:36FromDiscord<Elegantbeef> That entire sentence was made up
03:26:42FromDiscord<zectbumo> damn
03:26:53FromDiscord<Elegantbeef> If you think about it all sentences are made up
03:31:33FromDiscord<zectbumo> we live in a world where we believe what we want and I want to believe that nim 2.0 is possible on openbsd 7.5 <------ original sentence made up never seen before in the history of mankind. achievement unlocked 🥳
03:32:54FromDiscord<Robyn [She/Her]> In reply to @zectbumo "we live in a": It is possible though, no?
03:33:21FromDiscord<zectbumo> I haven't tried yet. I'll upgrade in the coming weeks and find out
03:33:43FromDiscord<Robyn [She/Her]> Fair
03:54:35FromDiscord<gogolxdong666> Is this a known issue for macOS https://media.discordapp.net/attachments/371759389889003532/1226017184837537812/message.txt?ex=66233c7b&is=6610c77b&hm=b24d91dd4d8665b9c3b35d14c9366c6b8ec08a6c0ee131752ca0d50c3b7810b0&
03:55:19FromDiscord<gogolxdong666> sent a long message, see https://pasty.ee/hslbmnDDvlyP
04:05:12FromDiscord<Robyn [She/Her]> In reply to @zectbumo "we live in a": Also nothing can compare to the Chernobyl olaf sentence
04:12:43FromDiscord<grumblygibson> In reply to @gogolxdong666 "Is this a known": did you install latest?↵`nimble install puppy@#head`
04:16:40FromDiscord<grumblygibson> I hope you're making a Claude API wrapper for nim! 😉
04:17:48FromDiscord<Robyn [She/Her]> Claude?
04:26:30FromDiscord<sOkam! 🫐> somebody needs to make a library that we can `nimble install kitty@#tail`, just saying↵the world would be a better place 🐈
04:27:49FromDiscord<Elegantbeef> Only cause we could bisect kitty
04:28:35FromDiscord<odexine> In reply to @chronos.vitaqua "Claude?": Another GPT
04:30:53FromDiscord<sOkam! 🫐> In reply to @Elegantbeef "Only cause we could": monster
04:31:28FromDiscord<Robyn [She/Her]> In reply to @odexine "Another GPT": Ah
04:53:03*junaid_ joined #nim
05:18:34FromDiscord<zectbumo> the ci folder doesn't exist in the tar ball ↵https://github.com/nim-lang/Nim/blob/devel/build_all.sh#L11
05:24:28FromDiscord<zectbumo> this file is missing v2.0.2/config/build_config.txt
05:24:34FromDiscord<ringabout> In reply to @zectbumo "the ci folder doesn't": It is supposed to be fixed on the devel
05:24:42FromDiscord<ringabout> https://github.com/nim-lang/Nim/pull/22721
05:24:51FromDiscord<ringabout> It should be backported
05:25:23FromDiscord<zectbumo> I just downloaded the tar.xz from the website https://nim-lang.org/download/nim-2.0.2.tar.xz
05:25:53FromDiscord<ringabout> Yeah, it wasn't backported to 2.0.2
05:26:15FromDiscord<myxi> https://nim-lang.org/download/dlls.zip↵is this download link documented somewhere? i found it mentioned in an issue tracker in Nim's GH repo
05:27:01FromDiscord<myxi> it contains the .so files that are dependencies of some libs in the std, for windows people, i think
05:28:03FromDiscord<zectbumo> In reply to @ringabout "Yeah, it wasn't backported": now you tell me. I just fixed everything and it's compiling now
05:30:27FromDiscord<zectbumo> In reply to @ringabout "It should be backported": is this opinion or statement? @ElegantBeef english really does suck!
05:30:31FromDiscord<polylokh_39446> In reply to @myxi "https://nim-lang.org/download/dlls.zip is this down": it's referenced in <https://nim-lang.org/docs/niminst.html>
05:32:21FromDiscord<ringabout> In reply to @zectbumo "is this opinion or": Well, I meant it should have been backported so that it wpn't have affected stable releases
05:32:43FromDiscord<zectbumo> ah 😄
05:56:15*ntat joined #nim
06:20:18NimEventerNew thread by mabon: How to customize a top-level Pragma, see https://forum.nim-lang.org/t/11370
06:40:40*MacDefender quit (Remote host closed the connection)
06:40:51*MacDefender joined #nim
06:46:28FromDiscord<grumblygibson> In reply to @grumblygibson "did you install latest?": I wonder why nimble is often out of date. Is it too hard for authors to update their nimble package? Could it be automated? Why does pip (apparently) not have this issue?
07:26:13FromDiscord<Elegantbeef> @grumblygibson nimble uses git tags so authors just need to tag their packages properly
08:26:19*junaid_ quit (Remote host closed the connection)
09:37:42*ntat quit (Quit: Leaving)
11:01:28*ntat joined #nim
11:44:30NimEventerNew thread by sei: Trying to get "interfaced" to run with latest nim, see https://forum.nim-lang.org/t/11373
13:05:58NimEventerNew thread by vanyle: Strange race condition on Windows, see https://forum.nim-lang.org/t/11374
13:16:37*xet7 quit (Ping timeout: 256 seconds)
13:38:42*xet7 joined #nim
13:59:21*ntat quit (Quit: Leaving)
14:22:32FromDiscord<whisperecean> @arnetheduck Hi. WHen will this be merged? https://github.com/status-im/nim-faststreams/pull/54 When someone fixes the Windows pipeline?
14:23:43FromDiscord<whisperecean> In reply to @grumblygibson "I wonder why nimble": Community too small. Not enough people report and use packages. We can only be eternally grateful for the handful of few that even create those packages
14:30:31FromDiscord<arnetheduck> In reply to @whisperecean "<@449019668296892420> Hi. WHen": yes, feel free to take a look at it if you have the bandwidth, not sure what's going since the other platforms pass
14:45:34*MacDefender quit (Remote host closed the connection)
15:31:11*ntat joined #nim
15:44:57FromDiscord<whisperecean> In reply to @arnetheduck "yes, feel free to": I would If I was not too stupid to understand what's going on and did not only have arm macbook 🤡
15:57:52*junaid_ joined #nim
16:07:39NimEventerNew Nimble package! octolog - octolog is a logging library built on top of std/logging for multi-threaded logging., see https://github.com/jaar23/octolog
16:46:10*xet7 quit (Quit: Leaving)
17:46:38*junaid_ quit (Remote host closed the connection)
17:47:21NimEventerNew thread by mszs: Situation with GDB debugging?, see https://forum.nim-lang.org/t/11377
18:11:20FromDiscord<hitblast> is there a way to reduce the amount of duplicate code in this screenshot? I've been working on an asynchronous API wrapper and I keep bumping into writing such code https://media.discordapp.net/attachments/371759389889003532/1226232790551629844/Screenshot_2024-04-07_at_12.09.43_AM.png?ex=66240547&is=66119047&hm=cef45e7f54a72f4ea000d430601ec7cbc34ed69dccbc800c09b9a13e45118874&
18:12:18FromDiscord<hitblast> I could create another procedure for centralizing all the identical code but just asking if there's any other approach
18:15:34*SchweinDeBurg quit (Quit: WeeChat 4.3.0-dev)
18:15:57*SchweinDeBurg joined #nim
18:17:48FromDiscord<.bobbbob> In reply to @hitblast "is there a way": add a third param and do if player[val].getStr == ... ?
18:18:55*rockcavera quit (Remote host closed the connection)
18:20:18NimEventerNew question by Тик Ток: Solved in prologue, see https://stackoverflow.com/questions/78285421/solved-in-prologue
18:20:28FromDiscord<.bobbbob> idk about your code but maybe you should only find players by uuid since there might be multiple players with that name
18:20:39FromDiscord<.bobbbob> (edit) "that name" => "a name, in which case you would only get the first"
18:21:45FromDiscord<zectbumo> sent a code paste, see https://play.nim-lang.org/#pasty=mqfqbAwwopdn
18:21:46FromDiscord<rakgew> how about a main getplayer proc and two small caller wrappers?
18:22:19FromDiscord<rakgew> ^^ @hitblast
18:22:22FromDiscord<hitblast> In reply to @rakgew "how about a main": like this? I might modify the `getPlayerByName()` proc in a way that it returns multiple results if found https://media.discordapp.net/attachments/371759389889003532/1226235570703962283/Screenshot_2024-04-07_at_12.18.14_AM.png?ex=662407de&is=661192de&hm=486d55ac2781055a7b0e2028dc377aa081155d270ec9a8557864aef7ac3e0d03&
18:22:45FromDiscord<rakgew> yep
18:24:15FromDiscord<rakgew> hm, maybe having a mode in getplayer would be nicer
18:24:26FromDiscord<rakgew> and then returning just the requested
18:25:32FromDiscord<.bobbbob> In reply to @hitblast "like this? I might": if you wanna get fancy with functional style, players.filter(p => p["name"] == data).map(p => Player(name: p["name"].g..., uuid: p["uuid"]...)
18:26:45FromDiscord<.bobbbob> (edit) "p["name"]" => "p[key]"
18:30:07FromDiscord<Robyn [She/Her]> In reply to @zectbumo "nim v2.0.2 compiler builds": Huh interesting, something to report to #internals?
18:31:58*rockcavera joined #nim
18:33:03*Jjp137 left #nim (Leaving)
18:46:35*xet7 joined #nim
18:49:56*xet7 quit (Remote host closed the connection)
18:50:40FromDiscord<jaar23> In reply to @hitblast "like this? I might": What is the editor you using? I would like to configure the same hint on type as well.
18:52:21FromDiscord<hitblast> In reply to @.bobbbob "if you wanna get": made it work hehe https://media.discordapp.net/attachments/371759389889003532/1226243113102868671/Screenshot_2024-04-07_at_12.52.06_AM.png?ex=66240ee4&is=661199e4&hm=596480e7a83349e053c85fd295f8d1fcbdaf45573e12f18678d9c997c9df1800&
18:53:52FromDiscord<hitblast> In reply to @jaar23 "What is the editor": I'm using Visual Studio Code, but I use the `nim-lang` extension, along with my own custom theme.
18:54:13FromDiscord<jaar23>
18:54:14FromDiscord<jaar23> Ah, okay. That's nice
18:56:16FromDiscord<zectbumo> In reply to @chronos.vitaqua "Huh interesting, something to": okay, I'll try it
19:23:26FromDiscord<raycatwhodat> Dumb question: is there a recommended way to target WebAssembly? Or is it still "copy the .c files and manually build them with Emscripten"?
19:24:57FromDiscord<Elegantbeef> Why would you ever manually move files? 😄
19:25:27FromDiscord<Elegantbeef> https://github.com/beef331/wasm3/blob/master/wasmsources/config.nims is a sufficient config
19:25:53FromDiscord<Elegantbeef> Many of those comments are off due to me stealing a lot of that from treeform
19:26:59FromDiscord<rakgew> alternatively nlvm also has a route to wasm
19:27:10FromDiscord<Elegantbeef> No wasi support though
19:38:05FromDiscord<rakgew> I see, good to know. thx
19:48:10FromDiscord<zectbumo> In reply to @chronos.vitaqua "Huh interesting, something to": nevermind, I tried on another computer and it worked fine. I see there is a "KILLED" so some resource must be exhausted on the machine that failed.
19:49:03FromDiscord<polylokh_39446> ah i remember that, default ulimit is quite harsh on OpenBSD. Look at ulimit -a
19:49:39FromDiscord<Robyn [She/Her]> In reply to @zectbumo "nevermind, I tried on": Ah okay, nice!
19:50:09FromDiscord<polylokh_39446> /etc/login.conf controls those.
19:56:34*ntat quit (Quit: Leaving)
20:16:55FromDiscord<sOkam! 🫐> what does `Acc` stand for in `nkAccQuoted`? 🤔
20:22:21FromDiscord<zectbumo> In reply to @polylokh_39446 "ah i remember that,": thanks, I checked the differences and the machine that doesn't work has 128 process limit and a 1GB mem limit. My guess is the 1GB is too low. It would be nice to have a mem requirement listed on https://github.com/nim-lang/Nim/blob/devel/readme.md
20:29:23FromDiscord<Robyn [She/Her]> A parser's AST should always be acylic, right?
20:29:31FromDiscord<Robyn [She/Her]> Acyclic
20:29:33FromDiscord<Robyn [She/Her]> Ugh
20:29:36FromDiscord<Robyn [She/Her]> Acyclic
20:41:35*Jhonny2x4 quit (Quit: Jhonny2x4)
20:41:55*Jhonny2x4 joined #nim
21:04:09FromDiscord<Elegantbeef> A parser shouldn't have AST afaik
21:04:17FromDiscord<Elegantbeef> But yes your AST should not be cyclical
21:04:56FromDiscord<Robyn [She/Her]> The AST produced from a parser, I mean
21:05:13FromDiscord<Elegantbeef> Right that's the job of a lexer aint it?
21:05:35FromDiscord<Elegantbeef> I'm just being an ass mostly though
21:05:44FromDiscord<Robyn [She/Her]> The lexer produces tokens? Idk what you mean
21:06:17FromDiscord<Elegantbeef> Ah I have it backwards
21:06:24FromDiscord<Robyn [She/Her]> Yeah
21:07:18FromDiscord<Elegantbeef> Anyway yea don't create cyclical AST, given that semantic analysis is pretty much tree traversal cyclical data makes it much more tedious
21:37:11FromDiscord<vindaar> In reply to @heysokam "what does `Acc` stand": accented
21:41:43*xet7 joined #nim
21:57:32FromDiscord<sOkam! 🫐> In reply to @vindaar "accented": what's the difference between "accented" and "quoted"?
21:57:59FromDiscord<pierce.jason> are there any block-code environments for nim? Something akin to Scratch or Node-Red to get the kiddos started
22:00:24FromDiscord<Elegantbeef> Nope but there is enu which uses a DSL inside nim
22:01:25FromDiscord<pierce.jason> "but" sounds like a positive, but Iv' never heard of and enu and the only DSL I know of is sub-broadband, haha... let me look into those for a min and get back to you
22:02:00FromDiscord<pierce.jason> logo-like 3d environment, cool
22:02:07FromDiscord<pierce.jason> that might do it
22:03:02FromDiscord<Elegantbeef> I'd say a statically typed language like Nim does not go into block programming well
22:04:06FromDiscord<pierce.jason> I probably used the wrong terminology there, I mean block like code blocks. Drag a Switch block into place to connect it to the next puzzle pieces
22:04:54FromDiscord<Elegantbeef> No we understand it similarly
22:05:27FromDiscord<Elegantbeef> For flow control it's fine, but for generics and the like it gets a big choppy
22:05:42FromDiscord<Elegantbeef> "Make a list of all values between 0 and 100" for instance
22:06:04FromDiscord<Elegantbeef> You need to make a `seq[int]` which is much more complex than say `List` in other languages
22:06:44FromDiscord<pierce.jason> ah, got ya now
22:07:06FromDiscord<Elegantbeef> One could elide all of that by making their own abstraction ontop of Nim of course with a `AnyVal` type that abstracts over the common types like dynamic languages do it
22:07:13FromDiscord<pierce.jason> no big deal, what the kiddos'll be doing could basically be handled in a config file. but it'd be more educational for them to drag around some simple logic
22:09:19FromDiscord<pierce.jason> I could probably do some copy/paste templates for the older one
22:09:39FromDiscord<pierce.jason> but the lack of visual(and typing/spelling skills) sets the toddler out
22:10:12FromDiscord<Elegantbeef> Yea enu does some things like use single characters for commands as it's easier to type
22:10:41FromDiscord<pierce.jason> hmm, that could work for the little-little perhaps
23:23:57FromDiscord<vanyle> I have a question about how memory allocation and threads interact with each other. See the last example on this thread: https://forum.nim-lang.org/t/11374↵I don't understand why I get a crash, even with allocShared. Is it possible that when allocating memory inside a thread using allocShared, when the thread is deleted (because it finished), the memory is automatically freed?
23:28:11FromDiscord<Elegantbeef> Nope with arc/orc `alloc` and friends alloc a shared heap