<< 18-08-2023 >>

00:31:46*krux02 quit (Remote host closed the connection)
00:38:52FromDiscord<Chronos [She/Her]> In reply to @dersnof "I wonder what would": Web dev is a key place
00:39:26FromDiscord<Chronos [She/Her]> I guess another usecase would be creating glue between a JS runtime and Nim-generated C code compiled to WASM? Nothing for that exists rn tho
00:39:50FromDiscord<Chronos [She/Her]> In reply to @chronos.vitaqua "Web dev is a": Useful for sharing code between the client and server I'd imagine
00:41:48FromDiscord<Elegantbeef> Now have two interpreters running
00:41:53FromDiscord<Elegantbeef> simplescreenrecorder-2023-08-17\_18.37.29.mp4 https://media.discordapp.net/attachments/371759389889003532/1141894702719828018/simplescreenrecorder-2023-08-17_18.37.29.mp4
00:44:10FromDiscord<Elegantbeef> @impbox [ftsf]\: to spam you more about this silly thing 😄
00:51:18FromDiscord<impbox [ftsf]> That's pretty awesome!
00:56:05FromDiscord<Chronos [She/Her]> In reply to @Elegantbeef "simplescreenrecorder-2023-08-17\_18.37.29.mp4": Hot code reload?
00:56:18FromDiscord<Elegantbeef> Nimscript
00:56:24FromDiscord<Chronos [She/Her]> Neat
00:56:30FromDiscord<Chronos [She/Her]> Does perf not die?
00:56:36FromDiscord<Elegantbeef> How do I know
01:04:40*tam joined #nim
01:20:16*tam is now known as tam_
01:20:18FromDiscord<heysokam> In reply to @Elegantbeef "simplescreenrecorder-2023-08-17\_18.37.29.mp4": did you make a code editor in nico?
01:20:49FromDiscord<ravinder387> sent a code paste, see https://play.nim-lang.org/#ix=4DPk
01:20:57FromDiscord<ravinder387> it gives me error in nim 2.0
01:21:12*tam_ is now known as tam
01:21:12FromDiscord<ravinder387> So now only generic function support
01:21:40FromDiscord<Chronos [She/Her]> Is there a way to allocate a specific chunk of memory to Nim so it doesn't try consuming more memory even if it'll OOM?
01:35:50*lucasta_ joined #nim
01:41:59FromDiscord<Elegantbeef> @heysokam\: yes
01:44:03FromDiscord<Elegantbeef> @ravinder387 what's your issue?
01:44:46FromDiscord<ravinder387> In reply to @Elegantbeef "<@848569854134845480> what's your issue?": I fixed it.. thanks for asking
01:52:04*tam quit (Quit: leaving)
02:11:21*tam joined #nim
02:29:25*azimut quit (Remote host closed the connection)
02:31:38*tam quit (Quit: 🦡)
02:31:42*azimut joined #nim
02:42:12*AndroUser2 joined #nim
02:42:30*AndroUser2 left #nim (#nim)
05:16:55*lucasta_ quit (Ping timeout: 246 seconds)
05:22:25FromDiscord<Phil> In reply to @dersnof "I wonder what would": A practical example:↵- Karax↵- Happx where currently a lot of pretty impressive work is being done
05:32:42*rockcavera quit (Remote host closed the connection)
05:34:09*tam joined #nim
05:50:52FromDiscord<comfykwaken> If your application has configuration files and images assets that will be installed on nimble install command, how can you debug it without install?
05:53:43FromDiscord<morgan> is it possible to have an array of generic objects with different values for the generic parameters?
05:55:42FromDiscord<Elegantbeef> No Nim is monomorphic
05:56:08FromDiscord<morgan> hm ok
05:57:32*jmcantrell joined #nim
05:59:22FromDiscord<Phil> In reply to @comfykwaken "If your application has": Might be that it's just early in the morning, but I don't quite understand.↵Debug as in debug compilation?↵Debug as in debugging the running application?↵If so, in what manner? With GDB?
06:00:02FromDiscord<comfykwaken> debug as in compiling and running app to test functionality without doing system install
06:00:54FromDiscord<Phil> If your application demands some config file to run, then having the config file is non optional.↵You can of course have compiled into your binary default debug configs and use that as a fallback, in those cases you'd just use those
06:01:17FromDiscord<morgan> In reply to @morganalyssa "hm ok": at least i don't really need to have that. im writing my own image format (i did try to see if an existing one fit my needs) and i kinda went a bit overboard with making it able to support more stuff than i need, so not being able to do that should hopefully keep me more focused on what i actually need
06:01:41FromDiscord<Phil> Basically write yourself a proc that detects if the binary is being run in "debug-mode" which you can signal to yourself in various ways, and then just `if isInDebugMode: return debugConfig` etc.
06:02:42FromDiscord<Phil> You can of course side-step that and set a debug-compile flag so that in debug-mode you just compile-in those debug configs into the binary and then this debug-binary always runs with your debug configs.↵If that's viable for you that's also an option
06:03:02FromDiscord<comfykwaken> embedded config is a good solution, but what if we need images? Or a big databases?
06:03:03FromDiscord<Phil> In those cases you'd use `when defined(<myDebugFlag>)` instead of if
06:03:41FromDiscord<Phil> In reply to @comfykwaken "embedded config is a": Is this a desktop or a web application?
06:04:00FromDiscord<comfykwaken> for example let it be a desktop game
06:04:29FromDiscord<comfykwaken> that has a looot of models and textures
06:06:08FromDiscord<Phil> sent a long message, see http://ix.io/4DPY
06:06:42FromDiscord<Phil> Basically ship a docker-image that includes dummy config files and the assets etc. and scripts to spin up containers and run the game from there
06:07:04FromDiscord<Phil> Note that this is my solution because I do webdev and when too much stuff outside of my binary crops up I immediately reach for containers
06:07:22FromDiscord<Phil> (edit) "Note that this is my solution because I do webdev and when too much stuff outside of my binary crops up I immediately reach for containers ... " added "to box all the things that belong together"
06:08:40FromDiscord<Phil> Do you have a solution for the Beef? This is more your area
06:09:24FromDiscord<Elegantbeef> I don't even get the problem, why do assets need anything special
06:09:42FromDiscord<Elegantbeef> Either as a prebuild step compile your assets to your shipping format, or just load the assets at runtime
06:09:56FromDiscord<jordan4ibanez> So put it on le heap
06:10:11FromDiscord<Phil> Oh no, french memory
06:11:00FromDiscord<Elegantbeef> I do not see how having assets makes a 'debug' step harader
06:11:03FromDiscord<Elegantbeef> harder\ even
06:11:12FromDiscord<odexine> harader
06:11:16FromDiscord<comfykwaken> because there is no "shipping" when developer just builds debug version using nimble build and wants to test it
06:11:33FromDiscord<Elegantbeef> So then have a `when defined(debug)` and load from raw assets
06:11:34FromDiscord<jordan4ibanez> sent a code paste, see https://play.nim-lang.org/#ix=4DQ0
06:11:57FromDiscord<Elegantbeef> Or you know build the format and use it anyway
06:12:38FromDiscord<Elegantbeef> Ostensibly if you are making a game of this scale you can reason how to most intelligently debug
06:12:40*jmcantrell quit (Quit: WeeChat 4.0.3)
06:13:12*advesperacit joined #nim
06:13:49FromDiscord<Elegantbeef> Then again I'd probably just ship my game assets raw, cause I couldnt care less
06:14:32FromDiscord<Phil> Out of curiosity, does gamedev have fancy ways of loading in those assets faster than just raw files loaded at runtime?
06:14:52FromDiscord<Elegantbeef> Not really fancy to load faster, more like fancy to obfuscate
06:15:07FromDiscord<comfykwaken> slurp()
06:15:26FromDiscord<Phil> That's a german pokemon name
06:15:36FromDiscord<Elegantbeef> Generally non Unity/Unreal games use their own format to store files in a compressed and complicated binary format
06:16:00FromDiscord<comfykwaken> https://nim-lang.org/docs/system.html#slurp%2Cstring
06:16:26FromDiscord<Elegantbeef> Yes?
06:16:51FromDiscord<Phil> He was reacting to my calling slurp a german pokemon name
06:17:00FromDiscord<Elegantbeef> uh huh
06:17:09FromDiscord<jordan4ibanez> In reply to @isofruit "Out of curiosity, does": Binary compression
06:17:15FromDiscord<Phil> But that's basically just including assets into the binary which feels strange
06:17:29FromDiscord<Phil> Because a) modding harder, b) gargantuan binaries seem odd
06:17:43FromDiscord<Elegantbeef> I mean most devs do not include assets in the binary
06:17:47FromDiscord<Phil> But I know nothing of the space so what do I know
06:17:51FromDiscord<Elegantbeef> They generally have a pack of blobs
06:17:53FromDiscord<comfykwaken> that's the only way you have on android or other restricted systems
06:18:09FromDiscord<Elegantbeef> It really isnt
06:18:15FromDiscord<Phil> Doesn't android & Co give you access to your own file-system to store stuff in?
06:18:32FromDiscord<Elegantbeef> https://developer.android.com/google/play/expansion-files
06:18:37FromDiscord<Phil> I swear that was an issue I had with buttercup whose folder was unable to be reached from outside of the application
06:19:00FromDiscord<Elegantbeef> Sure phil but that requires you to download the assets manually afterwards
06:19:01FromDiscord<comfykwaken> google play is the only store that accepts aab
06:19:33FromDiscord<Elegantbeef> So then download your assets to a folder and load them from there
06:19:46FromDiscord<Elegantbeef> You can request access to the user's file system
06:20:13FromDiscord<comfykwaken> yeah it makes things kinda harder, file system access is usually for saves and user-side mods, music, videos
06:20:42FromDiscord<Elegantbeef> Sure, but you said that staticRead was the only way for android
06:20:43FromDiscord<Elegantbeef> Two alternatives were presented
06:22:32FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4DQ5
06:22:47FromDiscord<Elegantbeef> There you go moving from compile time to runtime, in 5 loc
06:23:04FromDiscord<Phil> I am disappointed, that could be an unreadable one-liner!
06:23:32FromDiscord<Elegantbeef> Why you'd want to use slurp is beyond me
06:23:48FromDiscord<Phil> I don't really get why slurp and gorge exist tbh other than for the lulz
06:23:50FromDiscord<Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4DQ6
06:24:03FromDiscord<Elegantbeef> They're very useful
06:24:15FromDiscord<Elegantbeef> I used staticread for linerino to load all the handmade/tutorial levels
06:24:27FromDiscord<Phil> Yeah but in the end it's all just staticRead
06:24:36FromDiscord<Elegantbeef> Oh you mean the alises
06:24:38FromDiscord<Elegantbeef> aliases\
06:24:38FromDiscord<Phil> Why not just have staticRead?
06:24:40FromDiscord<Phil> Yeah
06:24:51FromDiscord<Elegantbeef> No clue
06:24:56FromDiscord<Phil> Are slurp and gorge some industry standards from other langs?
06:25:14FromDiscord<Elegantbeef> Think they're what they were called in a wirth language
06:28:06FromDiscord<Elegantbeef> > Because a) modding harder↵That's one pro in some people's mind
06:28:27FromDiscord<Elegantbeef> I've seen people ask "How can I prevent people from cheating" in a singleplayer game
06:28:35FromDiscord<Elegantbeef> Some gamedevs are oddly allergic to fun
06:28:36*jmcantrell joined #nim
06:30:09FromDiscord<Phil> Meanwhile deck-building games:↵"How do I give people even more ways to make broken combos?"
06:31:57FromDiscord<Elegantbeef> Yea luckily not all game devs are like "You can only play this the way I want you to"
06:33:51*azimut quit (Ping timeout: 246 seconds)
06:36:59*PMunch joined #nim
06:42:56*jmcantrell quit (Quit: WeeChat 4.0.3)
07:30:58*nyeaa492842301 joined #nim
07:32:53*nyeaa492842301 quit (Client Quit)
07:33:57*nyeaa492842301 joined #nim
07:36:12*jmdaemon quit (Ping timeout: 248 seconds)
07:39:38*tam quit (Ping timeout: 256 seconds)
07:52:06*tam joined #nim
07:57:46*tam quit (Ping timeout: 256 seconds)
08:10:48*tam joined #nim
08:15:08*tam quit (Ping timeout: 248 seconds)
08:28:06*tam joined #nim
08:32:21*tam quit (Ping timeout: 246 seconds)
08:39:16*xet7 quit (Remote host closed the connection)
08:44:52FromDiscord<System64 ~ Flandre Scarlet> In reply to @Elegantbeef "> Because a) modding": I'm that kind of person that supports modding
08:51:03*dithpri quit (Ping timeout: 246 seconds)
08:52:40*dithpri joined #nim
09:01:40*tam joined #nim
09:05:52*tam quit (Ping timeout: 240 seconds)
09:21:53FromDiscord<heysokam> is there a link in the website pointing to the latest stable version, that works across version numbers?↵so, something like `https://nim-lang.org/download/nim-stable.tar.xz` instead of being a hardcoded version that changes, like it is now https://nim-lang.org/download/nim-2.0.0.tar.xz
09:28:03*junaid_ joined #nim
09:33:22ehmryheysokam: that example doesn't work, because nim-2.0.0 has imcompatibilities will all the other versions
09:34:32*tam joined #nim
09:36:15*junaid_ quit (Quit: leaving)
09:36:58FromDiscord<heysokam> In reply to @ehmry "<@186489007247589376>: that example doesn't": it does, but at least you can download latest from a simple script and figure out the rest from there↵instead of having to code an html parser first, then interpret whats the latest version, and then do your thing only after all that work (not trivial, considering the code is repeated once for each platform)
09:37:39FromDiscord<heysokam> i know choosenim exists, but choosenim does not work with local "for this project only" installations of nim
09:38:20ehmryheysokam: this is why package managers were invented
09:38:40FromDiscord<heysokam> plus it requires using the PATH variable, which for this specific idea is completely irrelevant
09:38:50*tam quit (Ping timeout: 245 seconds)
09:39:03FromDiscord<heysokam> In reply to @ehmry "<@186489007247589376>: this is why": yeah but package managers are system-wide, not project-wide. quite different
09:39:33ehmryheysokam: not all package managers
09:40:10FromDiscord<heysokam> you are so missing the point. the idea is having a self-contained project that doesn't need to depend on package managers
09:40:46ehmrythere is no such thing
09:41:04FromDiscord<heysokam> so how is it possible that it exists on zig?
09:41:18FromDiscord<heysokam> but not on nim, because nobody thought about doing that. but it IS possible
09:42:25FromDiscord<heysokam> i just want to run `./bin/mybin` not `mybin`. there is nothing wrong in that↵the only problematic part is getting the binaries there in the first place (which is obviously a pain to do manually everytime, and cannot be automated)
09:42:58ehmryprojects that fetch their own dependencies are terrible, don't do that
09:43:29FromDiscord<heysokam> who talked about fetching all dependencies? im just talking about the compiler command
09:43:35ehmryNim already has a "works on my machine" problem, this would only make it worse
09:43:42ehmrythe compiler command is "nim"
09:43:55FromDiscord<heysokam> yeah, and thats the only "dependency" im talking about
09:46:24ehmryno, you also have a C toolchain
09:47:27FromDiscord<heysokam> omg, dude. forget it
09:47:33ehmryreally, things are just complicated
09:47:44FromDiscord<heysokam> you are just missing the point, forget it
09:49:20FromDiscord<Phil> I don't get either of your gripes, is this the kind of thing that would be helped by knowing that having a nimbledeps directory automatically leads to nim only loading dependencies from there (and installing them to that dir) ?
09:49:30FromDiscord<Phil> (edit) "I don't get either of your gripes, is this the kind of thing that would be helped by knowing that having a nimbledeps directory ... automatically" added "for a project"
09:49:41FromDiscord<Phil> (edit) "I don't get either of your gripes, is this the kind of thing that would be helped by knowing that having a nimbledeps directory for a project automatically leads to nim only loading dependencies from there ... (and" added "for this project"
09:49:51FromDiscord<Phil> (edit) "nim" => "nimble"
09:58:09*tam joined #nim
09:58:21ehmryI am being annoying but the reality is here annoying
10:03:34*tam quit (Ping timeout: 256 seconds)
10:20:26FromDiscord<ezquerra> sent a code paste, see https://play.nim-lang.org/#ix=4DR8
10:24:34FromDiscord<Phil> I assume inside the docker-container you don't have write-permission to the directories that choosenim wants to write the nim-compiler and libs etc. to.↵No idea in particular which folder that might be, but could help to check out the log there as well as looking at how to get more write permissions from the rocky linux container
10:24:38FromDiscord<Phil> (edit) "I assume inside the docker-container you don't have write-permission to the directories that choosenim wants to write the nim-compiler and libs etc. to.↵No idea in particular which folder that might be, but could help to check out the log there as well as looking at how to get more write permissions from the rocky linux container ... " added "for this process"
10:26:53FromDiscord<ezquerra> Do you know which log I could check?
10:27:19FromDiscord<ezquerra> If I run the installer using sudo, it works, but then it install nim inside /root/.nimble, which my regular user cannot access
10:27:58FromDiscord<ezquerra> I thought that the idea was for nim to install itself inside the user's home folder, to avoid these kinds of permission issues
10:28:42FromDiscord<ezquerra> Incidentally, it would be great if the permission denied exception message mentioned the target path that could not be written to or accessed
10:32:58*tam joined #nim
10:37:31*tam quit (Ping timeout: 245 seconds)
11:01:59FromDiscord<Phil> sent a long message, see http://ix.io/4DRl
11:04:33FromDiscord<0ffh> In reply to @isofruit "Are slurp and gorge": I think in Perl slurp is a function that returns the complete content of a file.
11:05:48*tam joined #nim
11:08:19FromDiscord<0ffh> I think the name is somewhat universally used now
11:08:24FromDiscord<comfykwaken> slurp is 2x shorter
11:12:14FromDiscord<comfykwaken> ok from my research projects use $DESTDIR and $PREFIX things. package install does the install into $DESTDIR/$PREFIX/some/random/paths. Basically what I want is set DESTDIR to project root directory and read asset paths the same way for both debug and release builds
11:12:39*tam quit (Ping timeout: 246 seconds)
11:26:01FromDiscord<Phil> Is that you asking a question about something specific or is that you typing out the solution you went with?
11:26:20FromDiscord<comfykwaken> that's my solution I will use
11:26:54FromDiscord<comfykwaken> (also used in gnu autotools, configure/make/make install, cmake, meson and lots of other things)
11:27:52FromDiscord<comfykwaken> with nim 2.0, is your helloworld linux binary has size around 64kb?
11:28:03*cm quit (Ping timeout: 246 seconds)
11:28:12FromDiscord<comfykwaken> in release mode, stripped
11:28:37*cm joined #nim
11:28:39FromDiscord<comfykwaken> the code is `echo("Hello world")`
11:31:10FromDiscord<System64 ~ Flandre Scarlet> Is there a best C compiler?
11:32:49FromDiscord<Phil> No, otherwise there wouldn't be tons.↵Also that depends on the CPU.↵Many kinds of smaller (non-computer) CPUs have their own compilers, maybe even completely proprietary ones.
11:32:56FromDiscord<Phil> (edit) removed "(non-computer)"
11:33:56FromDiscord<Phil> Then there's the fact that even for a specific CPU architecture (x86) there's implementation differences, so one compiler might be better for amd, the other for intel.↵Then there might be the metric you might be profiling against.↵Performance? Compilation Speed? Memory useage?↵It all boilds down to "no, all situational"
11:34:01FromDiscord<Phil> (edit) "boilds" => "boils"
11:38:41FromDiscord<System64 ~ Flandre Scarlet> Makes sense↵About profiling↵I have some problems profiling Nim
11:40:31*tam joined #nim
11:45:01*tam quit (Ping timeout: 245 seconds)
12:09:02FromDiscord<requiresupport> is there an async version of `os.walkDir` ?
12:10:25FromDiscord<requiresupport> (edit) "is there an async version of `os.walkDir` ? ... " added "im async noob, is it even possible to create an async version of it?"
12:11:14FromDiscord<Phil> Er...er... spawn a new thread and do it in there?
12:11:44FromDiscord<Phil> Yeah sorry no clue on that one, I tend not to write a ton of async code in nim
12:12:44FromDiscord<Phil> Looking through the std lib I don't think that is in there
12:14:43*tam joined #nim
12:16:34FromDiscord<comfykwaken> disks are not async by nature and trying to walk directory async way would produce random access reads while sync one will give you linear, faster read access
12:17:21FromDiscord<odexine> i think the overhead of doing async for disks is high, and thus only rarely one needs to do it
12:17:31FromDiscord<comfykwaken> agree
12:18:58FromDiscord<Phil> ... Is there not a lib that allows you to spawn a thread, give it a task to return a result for and that hands you a future?
12:19:09FromDiscord<Phil> (edit) "future?" => "future of that result?"
12:19:17FromDiscord<Phil> I thought std/tasks would do that but it appears to not
12:19:36*tam quit (Ping timeout: 260 seconds)
12:19:51FromDiscord<odexine> nim does not have much libraries that mix threading and async
12:20:04FromDiscord<Phil> But is that such a non-standard thing?
12:21:15FromDiscord<Phil> The entire "You do that thing, I do whatever I can in the meantime and once I'm done I'll wait for you" seems normal-ish
12:21:17FromDiscord<odexine> async can be expressed as an abstraction of lightweight threading
12:21:27FromDiscord<odexine> but "threads" in your case is os threads
12:23:52FromDiscord<odexine> i think the future implementation in nim is tied to the async implementation involving an event loop and whatnot, not really sure
12:24:16FromDiscord<odexine> would need a refactor to work without one in some sense? not too sure again
12:24:45FromDiscord<jviega> I'm definitely perplexed by how deep the love for async seems to go. Non-fair scheduling with more obfuscated control flow? It's kinda an abuse of iterators. I've seen so many people in other languages struggle with issues that get hidden because their async code is actually deterministically ordered, so it hides bugs... they can change code in module X, then unrelated stuff breaks.
12:25:59FromDiscord<odexine> me about to shoehorn in elixir/erlang into this again:
12:27:09FromDiscord<Phil> sent a long message, see http://ix.io/4DRQ
12:27:27FromDiscord<Phil> (edit) "http://ix.io/4DRQ" => "http://ix.io/4DRR"
12:27:39FromDiscord<odexine> no wonder you want rxnim so badly
12:27:45*dithpri quit (Remote host closed the connection)
12:28:00FromDiscord<Phil> In reply to @odexine "no wonder you want": So how far along is the implementation?
12:28:06FromDiscord<odexine> negative
12:28:10FromDiscord<Phil> Awwww
12:28:14FromDiscord<odexine> i have not even made a template folder for it
12:28:21*dithpri joined #nim
12:28:53FromDiscord<Phil> (edit) "http://ix.io/4DRR" => "http://ix.io/4DRS"
12:29:57FromDiscord<Phil> I guess I just like the observable pattern a fair bit when it comes to scenarios where I have a lot of state in which some state is derived from other state
12:30:08FromDiscord<Phil> (edit) "I guess I just like the observable pattern a fair bit when it comes to scenarios where I have a lot of state in which some state is derived from other state ... " added "and keeping that all in sync is a pain"
12:30:15FromDiscord<jviega> Sure, that just has little to do w/ async
12:30:19FromDiscord<jviega> Async is a blight 🙂
12:30:24FromDiscord<Phil> Yeah, I realize now the more I think about it
12:30:32FromDiscord<Phil> (edit) "Yeah, I realize now the more I think about it ... " added "that those are more independent"
12:31:10FromDiscord<Phil> I think that's what you meant, Rika, when you originally stated that observable pattern is not necessarily async
12:31:21FromDiscord<Phil> Async just integrates nicely with it
12:33:10FromDiscord<jviega> Yeah, you still can have different threads in different states of notification, so unsync'd, in either world. You are best off with either locks or shared lock free data structures if you need consistency; async isn't helping you there.
12:36:23FromDiscord<Phil> I think I don't know enough about multithreaded programming to understand that sentence.↵I know of locks and problems related to them, how shared mutable memory between threads is the root of a lot of evil and that's it.↵But what you mean by "Threads in different states of notification (as in, what notification?)" and "unsync" don't connect with anything on my end.
12:36:53FromDiscord<Phil> (edit) "don't" => "doesn't"
12:49:28*tam joined #nim
12:53:32*lucasta joined #nim
12:54:04*tam quit (Ping timeout: 248 seconds)
12:59:14*xet7 joined #nim
12:59:44*xet7 quit (Remote host closed the connection)
13:04:16*PMunch_ joined #nim
13:04:58*xet7 joined #nim
13:07:02*PMunch quit (Ping timeout: 245 seconds)
13:23:19*tam joined #nim
13:27:32*tam quit (Ping timeout: 240 seconds)
13:29:52FromDiscord<requiresupport> In reply to @odexine "i think the overhead": basically was looking for a way to make recursive directory listing faster
13:30:10FromDiscord<odexine> In reply to @requiresupport "basically was looking for": its prolly going to be slower with async
13:30:54FromDiscord<requiresupport> any other ideas to make it faster 🤔 maybe threads?
13:33:06FromDiscord<odexine> probably also slower
13:44:20FromDiscord<mratsim> In reply to @requiresupport "any other ideas to": Faster SSD
13:44:48FromDiscord<mratsim> In reply to @requiresupport "basically was looking for": Do it regularly so that the OS caches your stuff
13:45:02FromDiscord<mratsim> ZFS has tunables for that.
13:46:05FromDiscord<mratsim> Your bottleneck is disk speed + filesystem caching/eviction of metadata.
13:53:05FromDiscord<requiresupport> I see, thanks 🙏
13:53:23FromDiscord<zanderfh> I am trying to install a nim package on docker
13:53:34FromDiscord<zanderfh> i can run a container that just echos hello world
13:53:37FromDiscord<zanderfh> but when i try and install a package
13:53:56FromDiscord<zanderfh> i get:
13:54:05FromDiscord<zanderfh> sent a code paste, see https://play.nim-lang.org/#ix=4DSe
13:54:13FromDiscord<zanderfh> this is the line:
13:54:13FromDiscord<zanderfh> RUN nimble install dimscord
13:55:46FromDiscord<odexine> RUN nimble install -y dimscord↵iirc should fix it
13:55:58FromDiscord<zanderfh> ok i will try
13:56:08FromDiscord<odexine> or swap install and -y
13:56:16*tam joined #nim
13:56:23FromDiscord<zanderfh> it is seeming to work
13:56:24FromDiscord<zanderfh> thanks
13:56:27FromDiscord<zanderfh> can i ask why it works
13:56:29FromDiscord<zanderfh> what does -y do
13:56:34FromDiscord<Phil> You were timing out on the request
13:56:43FromDiscord<Phil> Nimble answered itself that you answered "no"
13:56:57FromDiscord<Phil> And then it couldn't find the package.json locally and error'd out
13:57:01FromDiscord<Phil> (edit) "You were timing out on the request ... " added "for user input"
13:57:25FromDiscord<zanderfh> i see thanks
14:00:44*tam quit (Ping timeout: 248 seconds)
14:04:33FromDiscord<odexine> no
14:04:35FromDiscord<odexine> that's wrong
14:04:50FromDiscord<odexine> docker doesnt expose a stdin for nimble so it errors out trying to read any input
14:13:09FromDiscord<Phil> So basically fails at the input, it's just not about timing out and more about access to the input gets regarded as violation
14:14:19FromDiscord<odexine> it tries reading a file that's already at the end (or empty) which is why it is EOF
14:14:49FromDiscord<odexine> "reading a file" as in it is given an empty "file" by docker; file is kinda ambiguous in unix ig
14:15:35*rockcavera joined #nim
14:19:19*rockcavera quit (Remote host closed the connection)
14:19:22*PMunch_ quit (Quit: Leaving)
14:23:08*tam joined #nim
14:26:57FromDiscord<jviega> @Phil just saying that nothing in the observer pattern intrinsically ensures you're not going to have race conditions around your data.
14:27:35*tam quit (Ping timeout: 245 seconds)
14:30:18FromDiscord<requiresupport> when am I supposed to use `distinct` ?
14:31:03FromDiscord<comfykwaken> when you want distinct type
14:31:17FromDiscord<comfykwaken> like Euro is a number but you dont want to add numbers to it
14:31:25FromDiscord<comfykwaken> only another Euros
14:31:38FromDiscord<comfykwaken> or Dollars but with conversion
14:32:39FromDiscord<comfykwaken> in 2.0 path which is string became a distinct string so now Path is a type and you can't just append a string without special handling i guess
14:33:22FromDiscord<comfykwaken> So when you want to store something as a Type but cut methods and capabilities of that Type, you use distenct
14:35:28FromDiscord<jviega> I know it doesn't matter for running the non-interactive way to run nimble, but for the record, you can pass anything to stdin with a docker exec command with -i, to a run command with --attach, or in a RUN command by just using standard shell redirects (as long as you're redirecting something from inside the container)
14:35:43*xet7 quit (Quit: Leaving)
14:36:15FromDiscord<comfykwaken> dont you need -t ?
14:37:03*tam joined #nim
14:37:06FromDiscord<comfykwaken> `--tty , -t Allocate a pseudo-TTY`
14:37:44FromDiscord<comfykwaken> which exactly creates stdins and stdouts from my understanding
14:38:10FromDiscord<comfykwaken> -i is to make that terminal interactive, when you need user input
14:38:33FromDiscord<comfykwaken> `--interactive , -i Keep STDIN open even if not attached`
14:38:46FromDiscord<comfykwaken> no, my understanding wasn't right
14:47:34FromDiscord<jviega> t attaches a tty
14:48:16FromDiscord<jviega> If you want your terminal to function reasonably well, the -t is also advisable 🙂
14:50:06FromDiscord<dersnof> when i try to use karun, it says command not found
14:50:11FromDiscord<dersnof> how do i add karun to my terminal
15:09:59FromDiscord<Phil> In reply to @jviega "<@180601887916163073> just saying that": Perfectly fair, particularly with nim that becomes a new concern that JS doesn't have (in the more normal usecases)
15:10:18FromDiscord<Phil> Actually, I just imagined RXNim with owlkettle and that legitimately would make me want to play with it again
15:10:24FromDiscord<Phil> Rikaaaaa
15:11:03FromDiscord<Phil> Well, first get validation in mapster out of the way
15:11:08FromDiscord<Phil> (edit) "Well, first get validation in mapster out of the way ... " added "I guess"
15:20:03FromDiscord<odexine> phil pls
15:23:52*tam quit (Quit: 🦡)
15:33:16*junaid_ joined #nim
15:41:47*rockcavera joined #nim
15:55:33FromDiscord<Phil> Hmmm this is weird
15:57:51FromDiscord<Phil> Never mind, I am merely incapable of reading my own custom -d flags correctly
15:58:58*azimut joined #nim
16:02:39FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DSZ
16:03:37FromDiscord<Phil> Throws this during compilation of the tests:↵`/home/philipp/dev/mapster/tests/test_map.nim(1042, 46) Error: expected: ')', but got: 'mapShouldNotCompile'`↵↵Character 46 is the end of the word `mapShouldNotCompile`
16:05:14FromDiscord<odexine> split the "AST parsing" and "actual implementation" into two, {.map.} and mapImpl, then test the implementation separate from the AST parsing
16:06:35FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DT0
16:07:38FromDiscord<Phil> This is one of those "macro does not work well with macro" situations, right?
16:08:48FromDiscord<Phil> although... can you catch `{.error.}` within a test?
16:09:27FromDiscord<Phil> I feel like that shouldn't be possible... =/
16:10:17FromDiscord<Phil> Yeah it's not, dang
16:13:47FromDiscord<Phil> Ohhh wait with testament I can check for reject!
16:28:45FromDiscord<System64 ~ Flandre Scarlet> https://github.com/treeform/quickjwt↵Oh interesting, there is a JWT package for Nim
16:29:14FromDiscord<System64 ~ Flandre Scarlet> From Treeform↵He surely did everything you can think of
16:36:34FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DTc
16:38:14FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DTd
16:47:23*lucasta quit (Quit: Leaving)
16:51:53NimEventerNew thread by Isofruit: Testament - Test Failure reFilesDiffer comparing wrong files with one another, see https://forum.nim-lang.org/t/10418
16:53:19*lucasta_ joined #nim
16:53:20*lucasta_ quit (Client Quit)
17:21:28FromDiscord<ShalokShalom (ShalokShalom)> Thats why fsharp has 'units of measure', thats beneficial since you can still interact with similar types↵(@comfykwaken)
17:21:34FromDiscord<ShalokShalom (ShalokShalom)> Its kinda the best of both worlds.
17:22:44FromDiscord<odexine> In reply to @ShalokShalom (ShalokShalom) "Thats why fsharp has": you can just have a Distance type and then distinct that for meter, inch, etc
17:22:50FromDiscord<odexine> then have conversion procs across
17:24:55FromDiscord<jmgomez> exactly `distinct` is way superior
17:25:19FromDiscord<ShalokShalom (ShalokShalom)> neat
17:25:42FromDiscord<ShalokShalom (ShalokShalom)> @jmgomez\: How? You can also define your own UOM
17:26:27FromDiscord<jmgomez> because besides the ugly syntax, UOM only supports some primitive types last time I checked
17:27:26FromDiscord<jmgomez> plus `distinct` has `borrow`
17:33:34FromDiscord<yandall> Is there a library to run cron jobs?
17:42:17FromDiscord<Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DTs
17:42:38FromDiscord<Phil> (edit) "https://play.nim-lang.org/#ix=4DTs" => "https://play.nim-lang.org/#ix=4DTt"
17:43:02FromDiscord<yandall> 😄
17:44:04FromDiscord<requiresupport> std has any csv writer stuff?
17:44:30FromDiscord<Phil> https://nim-lang.org/docs/parsecsv.html#comma-separated-value_1
17:45:57FromDiscord<Phil> As for writing CSV, I mean it's just inserting commas everywhere, so have your seq of values, map them to strings, use std/strutils.join to make them to one large string and write that to file
17:46:24FromDiscord<requiresupport> In reply to @isofruit "As for writing CSV,": thanks, will try this
17:53:52FromDiscord<odexine> ive been wondering why your name is literally "require support"
17:54:04*jmcantrell joined #nim
18:10:12*junaid_ quit (Remote host closed the connection)
18:51:11FromDiscord<firasuke> will `choosenim` be replaced eventually?
18:51:47FromDiscord<firasuke> Also congratulations on 2.0, verrry happy for Nim reaching this milestone, kudos to all the developers!
18:54:18FromDiscord<comfykwaken> replaced with what?
19:12:00termerPresumably Atlas
19:12:20FromDiscord<Phil> Atlas is more a nimble replacement than choosenim
19:12:45FromDiscord<Phil> at least afaik
19:13:18FromDiscord<Phil> Ah wait, you're likely referring to atlas' ability to create environments, yeah fair
19:17:50*xet7 joined #nim
19:30:45FromDiscord<nomad> Can i kill a alredy running process by process name instead of id?
19:51:18termerI misread choosenim as nimble lol
19:52:03termernomad Check your OS's capabilities and API, I don't know any way specifically on Windows, but the pkill command does that on Linux
20:09:05FromDiscord<arathanis> In reply to @isofruit "Ah wait, you're likely": once they flesh this out more im excited to use it
20:11:18*fallback quit (Ping timeout: 246 seconds)
20:18:58*fallback joined #nim
21:03:06*fallback quit (Ping timeout: 246 seconds)
21:10:37*fallback joined #nim
21:18:01FromDiscord<Chronos [She/Her]> So is there a way to allocate a block of memory to Nim that it can use? And no more and no less?
21:19:06FromDiscord<Elegantbeef> Not that I know of
21:19:58FromDiscord<Elegantbeef> Your kernel probably has a way to limit usage
21:29:03FromDiscord<heysokam> Is it possible to have different configurations for different files of a project?↵can it be done with `nim.cfg` in some way? 🤔
21:29:21FromDiscord<heysokam> different files meaning separate binaries
21:29:28FromDiscord<Elegantbeef> `yourNimFile.nims`
21:29:43FromDiscord<heysokam> inside root?
21:29:51FromDiscord<Elegantbeef> Next to the entry
21:30:27FromDiscord<heysokam> what happens with `nim.cfg`? what takes precedence?
21:30:45FromDiscord<Elegantbeef> https://nim-lang.org/docs/nimc.html#compiler-usage-configuration-files
21:34:16FromDiscord<heysokam> thx
21:34:57*jmcantrell quit (Quit: WeeChat 4.0.3)
21:35:14*jmcantrell joined #nim
21:36:30FromDiscord<heysokam> so that's why they were not working for me before. the name is `file.nim.cfg` not just `file.cfg` 🤷‍♂️
21:41:50*def- quit (Quit: -)
21:42:34*def- joined #nim
21:44:28FromDiscord<heysokam> sent a code paste, see https://play.nim-lang.org/#ix=4DUd
21:44:46FromDiscord<heysokam> or is it just me being obtuse as usual?
21:45:37FromDiscord<heysokam> happens on devel too
21:45:49FromDiscord<Elegantbeef> No clue you havent documented what "works" is
21:47:12FromDiscord<heysokam> In reply to @Elegantbeef "No clue you havent": oh sry, completely forgot
21:52:33FromDiscord<heysokam> sent a code paste, see https://play.nim-lang.org/#ix=4DUg
21:53:17FromDiscord<Elegantbeef> Right, I think you can only change the mm once
21:53:39FromDiscord<heysokam> so the override switch is not working, i guess
21:54:07FromDiscord<heysokam> another idea i had is make the mm:none explicit for the other, instead of making it global, so there is no `reactivating orc` only `disabling mm`
21:54:31FromDiscord<heysokam> (which seemed to work)
21:54:47FromDiscord<heysokam> but wonder if that's a bug or something
21:54:57FromDiscord<Chronos [She/Her]> In reply to @Elegantbeef "Your kernel probably has": Fair enough
22:04:11*advesperacit quit ()
22:07:07*ShadowSector joined #nim
22:07:48*ShadowSector quit (Changing host)
22:07:48*ShadowSector joined #nim
22:29:45FromDiscord<jviega> Is there a way to declare a nim function to be a process destructor (or constructor for that matter), or should I continue writing such things in C?
22:32:01FromDiscord<Elegantbeef> How's a process destructor declared in C?
22:32:15FromDiscord<Elegantbeef> You can use `codegendecl` to annotate attributes
22:32:53FromDiscord<jviega> `attribute((constructor)) int pre_main(int c, char const a[]) {` or replace w/ destructor
22:33:00FromDiscord<jviega> You can also add priority values for orderin
22:33:03FromDiscord<jviega> orgering
22:33:34FromDiscord<Elegantbeef> Right you should be able to use codegendecl there
22:34:06FromDiscord<jviega> Okay thanks, I'll go find the docs :). Not that doing it in C has been an issue.
22:42:46FromDiscord<jos7388> is there any way to use a local path with nimble?
22:43:02FromDiscord<jos7388> something like `requires "file://deps/whatever"` i guess
22:43:42FromDiscord<Elegantbeef> That sounds pointless
22:43:56FromDiscord<Elegantbeef> There is a `nimble develop` command
22:44:09FromDiscord<jos7388> it's definitely a lot easier to use
22:44:16FromDiscord<jos7388> then i don't have to do any preconfiguration on CI or anything
22:44:33FromDiscord<Elegantbeef> Except that's not how you do package management in any regard
22:44:34FromDiscord<jos7388> isn't this common for like, you have a lib and a binary in the same repostiory?
22:44:38FromDiscord<jos7388> and the binary depends on the lib?
22:44:44FromDiscord<jos7388> this is a very common thing
22:44:52FromDiscord<Elegantbeef> `nimble install yourPackage` .... ok now how do I fetch this dep
22:44:58FromDiscord<jos7388> huh?
22:45:16FromDiscord<Elegantbeef> You're asking two separate things
22:45:23FromDiscord<Elegantbeef> One is local deps, the other is hybrid package
22:45:29FromDiscord<Elegantbeef> Nimble supports hybrid packages
22:45:43FromDiscord<Elegantbeef> Local deps are dumb as it defeats the purpose of the package manager
22:45:58FromDiscord<Elegantbeef> https://github.com/nim-lang/nimble#hybrids
22:46:00FromDiscord<jos7388> local deps make a ton of sense
22:46:06FromDiscord<Elegantbeef> It really doesnt
22:46:10FromDiscord<jos7388> ok
22:46:16FromDiscord<jos7388> there are a lot of valid use cases
22:46:19FromDiscord<jos7388> monorepo
22:46:22FromDiscord<Elegantbeef> Cause now if I try to install your package it tries to go and fetch `files://..//..`
22:46:27FromDiscord<Elegantbeef> Why would you use nimble for that then
22:46:30FromDiscord<Elegantbeef> Just use a nim config
22:46:52FromDiscord<Elegantbeef> That's not package management, a monorepo is decidedly not package managed
22:47:13FromDiscord<jos7388> i think that's a uselessly tight definition of package management
22:47:30FromDiscord<jos7388> having a single canonical declaration of a package, regardless of if it's going to a repository to grab deps, is useful
22:47:43FromDiscord<jos7388> and it's nice if everything related to building the package is specified in there
22:47:47FromDiscord<jos7388> regardless of where the deps are stored
22:47:53FromDiscord<jos7388> that's how i treat a nimblefile
22:48:35FromDiscord<jos7388> that's why npm, cargo, msoft's vcproj-- whatever, etc all support this
22:48:50FromDiscord<Elegantbeef> If the package is not fetchable as an independent package what's the point in listing it in the requires?
22:49:09FromDiscord<jos7388> as a canonical place to define your project's dependencies
22:49:17FromDiscord<jos7388> just because it's stored on the filesystem or some server
22:49:22FromDiscord<Elegantbeef> But you're a mono repo, isnt that implied?
22:49:23FromDiscord<jos7388> doesn't really matter to me, i'd prefer to define it all in one place
22:49:27FromDiscord<jos7388> no
22:49:42FromDiscord<jos7388> when i see a project and i want to know its dependencies, i don't care if they come from disk or the web
22:49:44FromDiscord<jos7388> i want to know the dependencies
22:49:50FromDiscord<jos7388> and i expect them to be listed in the project's manifest, which is the nimblefile
22:50:05FromDiscord<Elegantbeef> So you want every nimble file listed?
22:50:08FromDiscord<Elegantbeef> Sorry nim file\
22:50:14FromDiscord<jos7388> no just packages
22:50:22FromDiscord<jos7388> so i guess .nimble files
22:51:03FromDiscord<jos7388> i think it's probably weird in nim because nim doesn't have a canonical package format?
22:51:07FromDiscord<jos7388> (edit) "have" => "define"
22:51:58FromDiscord<Elegantbeef> No clue I don't think it makes any sense myself to list dependencies inside the local root
22:52:05FromDiscord<Elegantbeef> That's a configuration thing not a dependency thing In my view
22:52:38FromDiscord<jos7388> so you don't think it's useful to open a .nimble file and see all the dependencies
22:52:48FromDiscord<jos7388> instead you want them hiding in random places defined in other config
22:52:55FromDiscord<Elegantbeef> If the packages cannot be installed independently they're not dependencies, they're apart of the larger nimble
22:52:55FromDiscord<jos7388> based on whatever makes sense for a given project
22:53:15FromDiscord<jos7388> they can be installed independently
22:53:18FromDiscord<jos7388> they're libraries
22:53:31FromDiscord<jos7388> i just want nimble to link them by path
22:53:55FromDiscord<jos7388> i dunno, to me it seems very useful so you don't have to set up-- for example-- any preconditions in nim's installation in a CI system
22:54:05FromDiscord<jos7388> you can just `nimble build` and it'll work because it's part of the monorepo
22:54:15FromDiscord<jos7388> same for other developers
22:54:42FromDiscord<jos7388> it runs into issues with other tools though, like nim's language server
22:55:00FromDiscord<jos7388> which is another reason why a canonical project descriptor is really useful, so the language server, build system, etc-- can all load default config from one place
22:55:45FromDiscord<jos7388> it reminds me of C and C++ where you pretty much always have mismatch between your IDE's config and the build system's config, unless the IDE author has invested a shitload of effort into parsing CMake and other random build tooling
22:58:18FromDiscord<jos7388> btw as i type all this-- im struggling to get `nimble develop` or `nimble install` with naylib to work
22:58:21FromDiscord<Elegantbeef> Well the cmake case is odd cause cmake is not apart of the compiler
22:58:23FromDiscord<Elegantbeef> Configuration is apart of Nim atleast
22:58:25FromDiscord<jos7388> which is why i'm annoyed
22:58:38FromDiscord<Elegantbeef> Yea I don't know nimble 0.1.4 is broken
22:58:42FromDiscord<Elegantbeef> just use atlas
22:59:31FromDiscord<Elegantbeef> Atlas does allow using local folders quite easily
23:05:21FromDiscord<jos7388> ok i got it working
23:05:23FromDiscord<jos7388> nice what's atlas?
23:05:32FromDiscord<Elegantbeef> https://github.com/nim-lang/atlas
23:06:23FromDiscord<jos7388> oh that looks nice
23:06:32FromDiscord<albassort> does httpbeast have docs?
23:06:52FromDiscord<albassort> don't see them in the repo so i'm reading the code but docs would be more useful
23:17:49*Lord_Nightmare quit (Quit: ZNC - http://znc.in)
23:19:00FromDiscord<albassort> I read most of it, the high level stuff is small and well written
23:19:03FromDiscord<albassort> maybe docs were not needed
23:20:57*Lord_Nightmare joined #nim
23:25:01FromDiscord<etra> Isn't this the same as running them synchronously? https://github.com/hanabi1224/Programming-Language-Benchmarks/blob/725cf39339ce7c7c7d28b98738786ca9c9fa4433/bench/algorithm/http-server/1.nim#L36-L42 since it's awaiting them in order
23:26:41FromDiscord<Elegantbeef> They're all added to the event queue so it should give up the cpu properly
23:27:01FromDiscord<Elegantbeef> Though `for x in await all tasks` is a simple change that is cleaner
23:29:30FromDiscord<Chronos [She/Her]> Genuinely wonder if I could make my application quit after it goes beyond a certain level of RAM
23:29:48FromDiscord<Elegantbeef> Limit it at the OS level
23:29:56FromDiscord<Chronos [She/Her]> Not really sure how tbh
23:30:12FromDiscord<Chronos [She/Her]> Probably using something for the process specifically but sigh, it's annoying
23:30:30FromDiscord<heysokam> In reply to @Elegantbeef "https://github.com/nim-lang/atlas": now that i think about it, can they be mixed?
23:30:42FromDiscord<heysokam> can atlas handle nimble projects without modifying anything?
23:30:45FromDiscord<Chronos [She/Her]> Atlas can install nimble projects iirc
23:30:49FromDiscord<Chronos [She/Her]> As deps
23:30:51FromDiscord<heysokam> like using atlas for local dev, and then nimble for the normal stuff
23:30:55FromDiscord<Elegantbeef> Yea atlas can use nimble projects
23:30:56*ShadowSector quit (Quit: Leaving)
23:32:10FromDiscord<heysokam> what does atlas do if you have a core linker project that has multiple child projects linked by `requires "theUrl"`?↵Can it manage the subfolders (gitignored or werever else) even if nimble doesn't list them?
23:33:17FromDiscord<heysokam> been searching for a solution for that for a while, and settled on nimble handling the dependencies. but it means I have to have my projects published to get them donwloaded again for myself so the root knows the changes 😔
23:35:03FromDiscord<Elegantbeef> I mean you're describing nimble develop, but it's broken now
23:35:41FromDiscord<heysokam> but nimble develop works really ugly, yeah
23:35:53FromDiscord<heysokam> that's why i've been searching for the alternative
23:36:07FromDiscord<Elegantbeef> "works really ugly" is such a joke given it just doesnt
23:36:23FromDiscord<heysokam> well, the last time it worked it was ugly 😄
23:37:33FromDiscord<Elegantbeef> I mean in 0.13 it was fine
23:37:45FromDiscord<Elegantbeef> you do `nimble develop` and then just work on your repos in conjunction
23:38:22FromDiscord<heysokam> yeah
23:38:41FromDiscord<heysokam> does atlas not come with 2.0 yet? readme says it does
23:39:23FromDiscord<Elegantbeef> It does come with 2.0 it's just not copied to your binaries file if installed using choosenim
23:39:24FromDiscord<Chronos [She/Her]> Needs to be compiled iirc
23:39:30FromDiscord<Chronos [She/Her]> Aj
23:39:32FromDiscord<Chronos [She/Her]> Ah
23:39:58FromDiscord<heysokam> ah will link it
23:42:44FromDiscord<heysokam> its an atlas workspace meant to be my developer folder, or each of my subfolders separately instead?
23:42:58FromDiscord<heysokam> (edit) "its an atlas workspace meant to be my ... developer" added "root"
23:43:10FromDiscord<heysokam> (edit) "its an atlas workspace meant to be my root developer folder, or each of my subfolders ... separately" added "(aka projects)"
23:43:25FromDiscord<Chronos [She/Her]> What if I made my own library to bind types to objects in a format specified by the user-
23:43:39FromDiscord<Elegantbeef> An atlas workspace is for sharing all your dependencies
23:43:51FromDiscord<Elegantbeef> So you make one for your given dependancies
23:44:15FromDiscord<heysokam> yeah but "dependencies" can be project wide, or "all my projects" wide, as in system wide
23:44:51FromDiscord<Elegantbeef> It's workspace wide
23:45:04FromDiscord<heysokam> i asked the opposite question though
23:45:24FromDiscord<heysokam> is a workspace meant to cover all my system, or just one folder?
23:45:38FromDiscord<Elegantbeef> Each atlas workspace is a virtual environment, meant to be used for any of your projects you want to share deps in
23:45:51FromDiscord<heysokam> becuase its very different if its meant to be a choosenim-like toolchain folder, or if its just config for this one project like nimble
23:46:10FromDiscord<Elegantbeef> It's meant for singular projects afaik
23:46:16FromDiscord<heysokam> kk
23:46:24FromDiscord<Elegantbeef> I really have 0 authority here
23:46:47FromDiscord<Elegantbeef> Given I do not use any odd package layout It's simple as for me
23:47:58FromDiscord<heysokam> ah so you dont build with nimble, you build with nim c
23:48:15FromDiscord<heysokam> that explains my worry
23:51:31FromDiscord<jviega> Hmm, does nim happen to call `_exit()` when you call `quit()`?
23:51:51FromDiscord<Elegantbeef> Doubtful
23:52:34FromDiscord<jviega> Or shut down stdout/stderr perhaps? In nim my constructors run fine, but destructors don't on first glance.
23:59:04*arkanoid joined #nim