00:31:46 | * | krux02 quit (Remote host closed the connection) |
00:38:52 | FromDiscord | <Chronos [She/Her]> In reply to @dersnof "I wonder what would": Web dev is a key place |
00:39:26 | FromDiscord | <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:50 | FromDiscord | <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:48 | FromDiscord | <Elegantbeef> Now have two interpreters running |
00:41:53 | FromDiscord | <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:10 | FromDiscord | <Elegantbeef> @impbox [ftsf]\: to spam you more about this silly thing 😄 |
00:51:18 | FromDiscord | <impbox [ftsf]> That's pretty awesome! |
00:56:05 | FromDiscord | <Chronos [She/Her]> In reply to @Elegantbeef "simplescreenrecorder-2023-08-17\_18.37.29.mp4": Hot code reload? |
00:56:18 | FromDiscord | <Elegantbeef> Nimscript |
00:56:24 | FromDiscord | <Chronos [She/Her]> Neat |
00:56:30 | FromDiscord | <Chronos [She/Her]> Does perf not die? |
00:56:36 | FromDiscord | <Elegantbeef> How do I know |
01:04:40 | * | tam joined #nim |
01:20:16 | * | tam is now known as tam_ |
01:20:18 | FromDiscord | <heysokam> In reply to @Elegantbeef "simplescreenrecorder-2023-08-17\_18.37.29.mp4": did you make a code editor in nico? |
01:20:49 | FromDiscord | <ravinder387> sent a code paste, see https://play.nim-lang.org/#ix=4DPk |
01:20:57 | FromDiscord | <ravinder387> it gives me error in nim 2.0 |
01:21:12 | * | tam_ is now known as tam |
01:21:12 | FromDiscord | <ravinder387> So now only generic function support |
01:21:40 | FromDiscord | <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:59 | FromDiscord | <Elegantbeef> @heysokam\: yes |
01:44:03 | FromDiscord | <Elegantbeef> @ravinder387 what's your issue? |
01:44:46 | FromDiscord | <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:25 | FromDiscord | <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:52 | FromDiscord | <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:43 | FromDiscord | <morgan> is it possible to have an array of generic objects with different values for the generic parameters? |
05:55:42 | FromDiscord | <Elegantbeef> No Nim is monomorphic |
05:56:08 | FromDiscord | <morgan> hm ok |
05:57:32 | * | jmcantrell joined #nim |
05:59:22 | FromDiscord | <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:02 | FromDiscord | <comfykwaken> debug as in compiling and running app to test functionality without doing system install |
06:00:54 | FromDiscord | <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:17 | FromDiscord | <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:41 | FromDiscord | <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:42 | FromDiscord | <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:02 | FromDiscord | <comfykwaken> embedded config is a good solution, but what if we need images? Or a big databases? |
06:03:03 | FromDiscord | <Phil> In those cases you'd use `when defined(<myDebugFlag>)` instead of if |
06:03:41 | FromDiscord | <Phil> In reply to @comfykwaken "embedded config is a": Is this a desktop or a web application? |
06:04:00 | FromDiscord | <comfykwaken> for example let it be a desktop game |
06:04:29 | FromDiscord | <comfykwaken> that has a looot of models and textures |
06:06:08 | FromDiscord | <Phil> sent a long message, see http://ix.io/4DPY |
06:06:42 | FromDiscord | <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:04 | FromDiscord | <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:22 | FromDiscord | <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:40 | FromDiscord | <Phil> Do you have a solution for the Beef? This is more your area |
06:09:24 | FromDiscord | <Elegantbeef> I don't even get the problem, why do assets need anything special |
06:09:42 | FromDiscord | <Elegantbeef> Either as a prebuild step compile your assets to your shipping format, or just load the assets at runtime |
06:09:56 | FromDiscord | <jordan4ibanez> So put it on le heap |
06:10:11 | FromDiscord | <Phil> Oh no, french memory |
06:11:00 | FromDiscord | <Elegantbeef> I do not see how having assets makes a 'debug' step harader |
06:11:03 | FromDiscord | <Elegantbeef> harder\ even |
06:11:12 | FromDiscord | <odexine> harader |
06:11:16 | FromDiscord | <comfykwaken> because there is no "shipping" when developer just builds debug version using nimble build and wants to test it |
06:11:33 | FromDiscord | <Elegantbeef> So then have a `when defined(debug)` and load from raw assets |
06:11:34 | FromDiscord | <jordan4ibanez> sent a code paste, see https://play.nim-lang.org/#ix=4DQ0 |
06:11:57 | FromDiscord | <Elegantbeef> Or you know build the format and use it anyway |
06:12:38 | FromDiscord | <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:49 | FromDiscord | <Elegantbeef> Then again I'd probably just ship my game assets raw, cause I couldnt care less |
06:14:32 | FromDiscord | <Phil> Out of curiosity, does gamedev have fancy ways of loading in those assets faster than just raw files loaded at runtime? |
06:14:52 | FromDiscord | <Elegantbeef> Not really fancy to load faster, more like fancy to obfuscate |
06:15:07 | FromDiscord | <comfykwaken> slurp() |
06:15:26 | FromDiscord | <Phil> That's a german pokemon name |
06:15:36 | FromDiscord | <Elegantbeef> Generally non Unity/Unreal games use their own format to store files in a compressed and complicated binary format |
06:16:00 | FromDiscord | <comfykwaken> https://nim-lang.org/docs/system.html#slurp%2Cstring |
06:16:26 | FromDiscord | <Elegantbeef> Yes? |
06:16:51 | FromDiscord | <Phil> He was reacting to my calling slurp a german pokemon name |
06:17:00 | FromDiscord | <Elegantbeef> uh huh |
06:17:09 | FromDiscord | <jordan4ibanez> In reply to @isofruit "Out of curiosity, does": Binary compression |
06:17:15 | FromDiscord | <Phil> But that's basically just including assets into the binary which feels strange |
06:17:29 | FromDiscord | <Phil> Because a) modding harder, b) gargantuan binaries seem odd |
06:17:43 | FromDiscord | <Elegantbeef> I mean most devs do not include assets in the binary |
06:17:47 | FromDiscord | <Phil> But I know nothing of the space so what do I know |
06:17:51 | FromDiscord | <Elegantbeef> They generally have a pack of blobs |
06:17:53 | FromDiscord | <comfykwaken> that's the only way you have on android or other restricted systems |
06:18:09 | FromDiscord | <Elegantbeef> It really isnt |
06:18:15 | FromDiscord | <Phil> Doesn't android & Co give you access to your own file-system to store stuff in? |
06:18:32 | FromDiscord | <Elegantbeef> https://developer.android.com/google/play/expansion-files |
06:18:37 | FromDiscord | <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:00 | FromDiscord | <Elegantbeef> Sure phil but that requires you to download the assets manually afterwards |
06:19:01 | FromDiscord | <comfykwaken> google play is the only store that accepts aab |
06:19:33 | FromDiscord | <Elegantbeef> So then download your assets to a folder and load them from there |
06:19:46 | FromDiscord | <Elegantbeef> You can request access to the user's file system |
06:20:13 | FromDiscord | <comfykwaken> yeah it makes things kinda harder, file system access is usually for saves and user-side mods, music, videos |
06:20:42 | FromDiscord | <Elegantbeef> Sure, but you said that staticRead was the only way for android |
06:20:43 | FromDiscord | <Elegantbeef> Two alternatives were presented |
06:22:32 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4DQ5 |
06:22:47 | FromDiscord | <Elegantbeef> There you go moving from compile time to runtime, in 5 loc |
06:23:04 | FromDiscord | <Phil> I am disappointed, that could be an unreadable one-liner! |
06:23:32 | FromDiscord | <Elegantbeef> Why you'd want to use slurp is beyond me |
06:23:48 | FromDiscord | <Phil> I don't really get why slurp and gorge exist tbh other than for the lulz |
06:23:50 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=4DQ6 |
06:24:03 | FromDiscord | <Elegantbeef> They're very useful |
06:24:15 | FromDiscord | <Elegantbeef> I used staticread for linerino to load all the handmade/tutorial levels |
06:24:27 | FromDiscord | <Phil> Yeah but in the end it's all just staticRead |
06:24:36 | FromDiscord | <Elegantbeef> Oh you mean the alises |
06:24:38 | FromDiscord | <Elegantbeef> aliases\ |
06:24:38 | FromDiscord | <Phil> Why not just have staticRead? |
06:24:40 | FromDiscord | <Phil> Yeah |
06:24:51 | FromDiscord | <Elegantbeef> No clue |
06:24:56 | FromDiscord | <Phil> Are slurp and gorge some industry standards from other langs? |
06:25:14 | FromDiscord | <Elegantbeef> Think they're what they were called in a wirth language |
06:28:06 | FromDiscord | <Elegantbeef> > Because a) modding harder↵That's one pro in some people's mind |
06:28:27 | FromDiscord | <Elegantbeef> I've seen people ask "How can I prevent people from cheating" in a singleplayer game |
06:28:35 | FromDiscord | <Elegantbeef> Some gamedevs are oddly allergic to fun |
06:28:36 | * | jmcantrell joined #nim |
06:30:09 | FromDiscord | <Phil> Meanwhile deck-building games:↵"How do I give people even more ways to make broken combos?" |
06:31:57 | FromDiscord | <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:52 | FromDiscord | <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:53 | FromDiscord | <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:22 | ehmry | heysokam: 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:58 | FromDiscord | <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:39 | FromDiscord | <heysokam> i know choosenim exists, but choosenim does not work with local "for this project only" installations of nim |
09:38:20 | ehmry | heysokam: this is why package managers were invented |
09:38:40 | FromDiscord | <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:03 | FromDiscord | <heysokam> In reply to @ehmry "<@186489007247589376>: this is why": yeah but package managers are system-wide, not project-wide. quite different |
09:39:33 | ehmry | heysokam: not all package managers |
09:40:10 | FromDiscord | <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:46 | ehmry | there is no such thing |
09:41:04 | FromDiscord | <heysokam> so how is it possible that it exists on zig? |
09:41:18 | FromDiscord | <heysokam> but not on nim, because nobody thought about doing that. but it IS possible |
09:42:25 | FromDiscord | <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:58 | ehmry | projects that fetch their own dependencies are terrible, don't do that |
09:43:29 | FromDiscord | <heysokam> who talked about fetching all dependencies? im just talking about the compiler command |
09:43:35 | ehmry | Nim already has a "works on my machine" problem, this would only make it worse |
09:43:42 | ehmry | the compiler command is "nim" |
09:43:55 | FromDiscord | <heysokam> yeah, and thats the only "dependency" im talking about |
09:46:24 | ehmry | no, you also have a C toolchain |
09:47:27 | FromDiscord | <heysokam> omg, dude. forget it |
09:47:33 | ehmry | really, things are just complicated |
09:47:44 | FromDiscord | <heysokam> you are just missing the point, forget it |
09:49:20 | FromDiscord | <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:30 | FromDiscord | <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:41 | FromDiscord | <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:51 | FromDiscord | <Phil> (edit) "nim" => "nimble" |
09:58:09 | * | tam joined #nim |
09:58:21 | ehmry | I am being annoying but the reality is here annoying |
10:03:34 | * | tam quit (Ping timeout: 256 seconds) |
10:20:26 | FromDiscord | <ezquerra> sent a code paste, see https://play.nim-lang.org/#ix=4DR8 |
10:24:34 | FromDiscord | <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:38 | FromDiscord | <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:53 | FromDiscord | <ezquerra> Do you know which log I could check? |
10:27:19 | FromDiscord | <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:58 | FromDiscord | <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:42 | FromDiscord | <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:59 | FromDiscord | <Phil> sent a long message, see http://ix.io/4DRl |
11:04:33 | FromDiscord | <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:19 | FromDiscord | <0ffh> I think the name is somewhat universally used now |
11:08:24 | FromDiscord | <comfykwaken> slurp is 2x shorter |
11:12:14 | FromDiscord | <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:01 | FromDiscord | <Phil> Is that you asking a question about something specific or is that you typing out the solution you went with? |
11:26:20 | FromDiscord | <comfykwaken> that's my solution I will use |
11:26:54 | FromDiscord | <comfykwaken> (also used in gnu autotools, configure/make/make install, cmake, meson and lots of other things) |
11:27:52 | FromDiscord | <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:12 | FromDiscord | <comfykwaken> in release mode, stripped |
11:28:37 | * | cm joined #nim |
11:28:39 | FromDiscord | <comfykwaken> the code is `echo("Hello world")` |
11:31:10 | FromDiscord | <System64 ~ Flandre Scarlet> Is there a best C compiler? |
11:32:49 | FromDiscord | <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:56 | FromDiscord | <Phil> (edit) removed "(non-computer)" |
11:33:56 | FromDiscord | <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:01 | FromDiscord | <Phil> (edit) "boilds" => "boils" |
11:38:41 | FromDiscord | <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:02 | FromDiscord | <requiresupport> is there an async version of `os.walkDir` ? |
12:10:25 | FromDiscord | <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:14 | FromDiscord | <Phil> Er...er... spawn a new thread and do it in there? |
12:11:44 | FromDiscord | <Phil> Yeah sorry no clue on that one, I tend not to write a ton of async code in nim |
12:12:44 | FromDiscord | <Phil> Looking through the std lib I don't think that is in there |
12:14:43 | * | tam joined #nim |
12:16:34 | FromDiscord | <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:21 | FromDiscord | <odexine> i think the overhead of doing async for disks is high, and thus only rarely one needs to do it |
12:17:31 | FromDiscord | <comfykwaken> agree |
12:18:58 | FromDiscord | <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:09 | FromDiscord | <Phil> (edit) "future?" => "future of that result?" |
12:19:17 | FromDiscord | <Phil> I thought std/tasks would do that but it appears to not |
12:19:36 | * | tam quit (Ping timeout: 260 seconds) |
12:19:51 | FromDiscord | <odexine> nim does not have much libraries that mix threading and async |
12:20:04 | FromDiscord | <Phil> But is that such a non-standard thing? |
12:21:15 | FromDiscord | <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:17 | FromDiscord | <odexine> async can be expressed as an abstraction of lightweight threading |
12:21:27 | FromDiscord | <odexine> but "threads" in your case is os threads |
12:23:52 | FromDiscord | <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:16 | FromDiscord | <odexine> would need a refactor to work without one in some sense? not too sure again |
12:24:45 | FromDiscord | <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:59 | FromDiscord | <odexine> me about to shoehorn in elixir/erlang into this again: |
12:27:09 | FromDiscord | <Phil> sent a long message, see http://ix.io/4DRQ |
12:27:27 | FromDiscord | <Phil> (edit) "http://ix.io/4DRQ" => "http://ix.io/4DRR" |
12:27:39 | FromDiscord | <odexine> no wonder you want rxnim so badly |
12:27:45 | * | dithpri quit (Remote host closed the connection) |
12:28:00 | FromDiscord | <Phil> In reply to @odexine "no wonder you want": So how far along is the implementation? |
12:28:06 | FromDiscord | <odexine> negative |
12:28:10 | FromDiscord | <Phil> Awwww |
12:28:14 | FromDiscord | <odexine> i have not even made a template folder for it |
12:28:21 | * | dithpri joined #nim |
12:28:53 | FromDiscord | <Phil> (edit) "http://ix.io/4DRR" => "http://ix.io/4DRS" |
12:29:57 | FromDiscord | <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:08 | FromDiscord | <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:15 | FromDiscord | <jviega> Sure, that just has little to do w/ async |
12:30:19 | FromDiscord | <jviega> Async is a blight 🙂 |
12:30:24 | FromDiscord | <Phil> Yeah, I realize now the more I think about it |
12:30:32 | FromDiscord | <Phil> (edit) "Yeah, I realize now the more I think about it ... " added "that those are more independent" |
12:31:10 | FromDiscord | <Phil> I think that's what you meant, Rika, when you originally stated that observable pattern is not necessarily async |
12:31:21 | FromDiscord | <Phil> Async just integrates nicely with it |
12:33:10 | FromDiscord | <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:23 | FromDiscord | <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:53 | FromDiscord | <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:52 | FromDiscord | <requiresupport> In reply to @odexine "i think the overhead": basically was looking for a way to make recursive directory listing faster |
13:30:10 | FromDiscord | <odexine> In reply to @requiresupport "basically was looking for": its prolly going to be slower with async |
13:30:54 | FromDiscord | <requiresupport> any other ideas to make it faster 🤔 maybe threads? |
13:33:06 | FromDiscord | <odexine> probably also slower |
13:44:20 | FromDiscord | <mratsim> In reply to @requiresupport "any other ideas to": Faster SSD |
13:44:48 | FromDiscord | <mratsim> In reply to @requiresupport "basically was looking for": Do it regularly so that the OS caches your stuff |
13:45:02 | FromDiscord | <mratsim> ZFS has tunables for that. |
13:46:05 | FromDiscord | <mratsim> Your bottleneck is disk speed + filesystem caching/eviction of metadata. |
13:53:05 | FromDiscord | <requiresupport> I see, thanks 🙏 |
13:53:23 | FromDiscord | <zanderfh> I am trying to install a nim package on docker |
13:53:34 | FromDiscord | <zanderfh> i can run a container that just echos hello world |
13:53:37 | FromDiscord | <zanderfh> but when i try and install a package |
13:53:56 | FromDiscord | <zanderfh> i get: |
13:54:05 | FromDiscord | <zanderfh> sent a code paste, see https://play.nim-lang.org/#ix=4DSe |
13:54:13 | FromDiscord | <zanderfh> this is the line: |
13:54:13 | FromDiscord | <zanderfh> RUN nimble install dimscord |
13:55:46 | FromDiscord | <odexine> RUN nimble install -y dimscord↵iirc should fix it |
13:55:58 | FromDiscord | <zanderfh> ok i will try |
13:56:08 | FromDiscord | <odexine> or swap install and -y |
13:56:16 | * | tam joined #nim |
13:56:23 | FromDiscord | <zanderfh> it is seeming to work |
13:56:24 | FromDiscord | <zanderfh> thanks |
13:56:27 | FromDiscord | <zanderfh> can i ask why it works |
13:56:29 | FromDiscord | <zanderfh> what does -y do |
13:56:34 | FromDiscord | <Phil> You were timing out on the request |
13:56:43 | FromDiscord | <Phil> Nimble answered itself that you answered "no" |
13:56:57 | FromDiscord | <Phil> And then it couldn't find the package.json locally and error'd out |
13:57:01 | FromDiscord | <Phil> (edit) "You were timing out on the request ... " added "for user input" |
13:57:25 | FromDiscord | <zanderfh> i see thanks |
14:00:44 | * | tam quit (Ping timeout: 248 seconds) |
14:04:33 | FromDiscord | <odexine> no |
14:04:35 | FromDiscord | <odexine> that's wrong |
14:04:50 | FromDiscord | <odexine> docker doesnt expose a stdin for nimble so it errors out trying to read any input |
14:13:09 | FromDiscord | <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:19 | FromDiscord | <odexine> it tries reading a file that's already at the end (or empty) which is why it is EOF |
14:14:49 | FromDiscord | <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:57 | FromDiscord | <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:18 | FromDiscord | <requiresupport> when am I supposed to use `distinct` ? |
14:31:03 | FromDiscord | <comfykwaken> when you want distinct type |
14:31:17 | FromDiscord | <comfykwaken> like Euro is a number but you dont want to add numbers to it |
14:31:25 | FromDiscord | <comfykwaken> only another Euros |
14:31:38 | FromDiscord | <comfykwaken> or Dollars but with conversion |
14:32:39 | FromDiscord | <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:22 | FromDiscord | <comfykwaken> So when you want to store something as a Type but cut methods and capabilities of that Type, you use distenct |
14:35:28 | FromDiscord | <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:15 | FromDiscord | <comfykwaken> dont you need -t ? |
14:37:03 | * | tam joined #nim |
14:37:06 | FromDiscord | <comfykwaken> `--tty , -t Allocate a pseudo-TTY` |
14:37:44 | FromDiscord | <comfykwaken> which exactly creates stdins and stdouts from my understanding |
14:38:10 | FromDiscord | <comfykwaken> -i is to make that terminal interactive, when you need user input |
14:38:33 | FromDiscord | <comfykwaken> `--interactive , -i Keep STDIN open even if not attached` |
14:38:46 | FromDiscord | <comfykwaken> no, my understanding wasn't right |
14:47:34 | FromDiscord | <jviega> t attaches a tty |
14:48:16 | FromDiscord | <jviega> If you want your terminal to function reasonably well, the -t is also advisable 🙂 |
14:50:06 | FromDiscord | <dersnof> when i try to use karun, it says command not found |
14:50:11 | FromDiscord | <dersnof> how do i add karun to my terminal |
15:09:59 | FromDiscord | <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:18 | FromDiscord | <Phil> Actually, I just imagined RXNim with owlkettle and that legitimately would make me want to play with it again |
15:10:24 | FromDiscord | <Phil> Rikaaaaa |
15:11:03 | FromDiscord | <Phil> Well, first get validation in mapster out of the way |
15:11:08 | FromDiscord | <Phil> (edit) "Well, first get validation in mapster out of the way ... " added "I guess" |
15:20:03 | FromDiscord | <odexine> phil pls |
15:23:52 | * | tam quit (Quit: 🦡) |
15:33:16 | * | junaid_ joined #nim |
15:41:47 | * | rockcavera joined #nim |
15:55:33 | FromDiscord | <Phil> Hmmm this is weird |
15:57:51 | FromDiscord | <Phil> Never mind, I am merely incapable of reading my own custom -d flags correctly |
15:58:58 | * | azimut joined #nim |
16:02:39 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DSZ |
16:03:37 | FromDiscord | <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:14 | FromDiscord | <odexine> split the "AST parsing" and "actual implementation" into two, {.map.} and mapImpl, then test the implementation separate from the AST parsing |
16:06:35 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DT0 |
16:07:38 | FromDiscord | <Phil> This is one of those "macro does not work well with macro" situations, right? |
16:08:48 | FromDiscord | <Phil> although... can you catch `{.error.}` within a test? |
16:09:27 | FromDiscord | <Phil> I feel like that shouldn't be possible... =/ |
16:10:17 | FromDiscord | <Phil> Yeah it's not, dang |
16:13:47 | FromDiscord | <Phil> Ohhh wait with testament I can check for reject! |
16:28:45 | FromDiscord | <System64 ~ Flandre Scarlet> https://github.com/treeform/quickjwt↵Oh interesting, there is a JWT package for Nim |
16:29:14 | FromDiscord | <System64 ~ Flandre Scarlet> From Treeform↵He surely did everything you can think of |
16:36:34 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DTc |
16:38:14 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DTd |
16:47:23 | * | lucasta quit (Quit: Leaving) |
16:51:53 | NimEventer | New 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:28 | FromDiscord | <ShalokShalom (ShalokShalom)> Thats why fsharp has 'units of measure', thats beneficial since you can still interact with similar types↵(@comfykwaken) |
17:21:34 | FromDiscord | <ShalokShalom (ShalokShalom)> Its kinda the best of both worlds. |
17:22:44 | FromDiscord | <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:50 | FromDiscord | <odexine> then have conversion procs across |
17:24:55 | FromDiscord | <jmgomez> exactly `distinct` is way superior |
17:25:19 | FromDiscord | <ShalokShalom (ShalokShalom)> neat |
17:25:42 | FromDiscord | <ShalokShalom (ShalokShalom)> @jmgomez\: How? You can also define your own UOM |
17:26:27 | FromDiscord | <jmgomez> because besides the ugly syntax, UOM only supports some primitive types last time I checked |
17:27:26 | FromDiscord | <jmgomez> plus `distinct` has `borrow` |
17:33:34 | FromDiscord | <yandall> Is there a library to run cron jobs? |
17:42:17 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=4DTs |
17:42:38 | FromDiscord | <Phil> (edit) "https://play.nim-lang.org/#ix=4DTs" => "https://play.nim-lang.org/#ix=4DTt" |
17:43:02 | FromDiscord | <yandall> 😄 |
17:44:04 | FromDiscord | <requiresupport> std has any csv writer stuff? |
17:44:30 | FromDiscord | <Phil> https://nim-lang.org/docs/parsecsv.html#comma-separated-value_1 |
17:45:57 | FromDiscord | <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:24 | FromDiscord | <requiresupport> In reply to @isofruit "As for writing CSV,": thanks, will try this |
17:53:52 | FromDiscord | <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:11 | FromDiscord | <firasuke> will `choosenim` be replaced eventually? |
18:51:47 | FromDiscord | <firasuke> Also congratulations on 2.0, verrry happy for Nim reaching this milestone, kudos to all the developers! |
18:54:18 | FromDiscord | <comfykwaken> replaced with what? |
19:12:00 | termer | Presumably Atlas |
19:12:20 | FromDiscord | <Phil> Atlas is more a nimble replacement than choosenim |
19:12:45 | FromDiscord | <Phil> at least afaik |
19:13:18 | FromDiscord | <Phil> Ah wait, you're likely referring to atlas' ability to create environments, yeah fair |
19:17:50 | * | xet7 joined #nim |
19:30:45 | FromDiscord | <nomad> Can i kill a alredy running process by process name instead of id? |
19:51:18 | termer | I misread choosenim as nimble lol |
19:52:03 | termer | nomad 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:05 | FromDiscord | <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:01 | FromDiscord | <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:06 | FromDiscord | <Elegantbeef> Not that I know of |
21:19:58 | FromDiscord | <Elegantbeef> Your kernel probably has a way to limit usage |
21:29:03 | FromDiscord | <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:21 | FromDiscord | <heysokam> different files meaning separate binaries |
21:29:28 | FromDiscord | <Elegantbeef> `yourNimFile.nims` |
21:29:43 | FromDiscord | <heysokam> inside root? |
21:29:51 | FromDiscord | <Elegantbeef> Next to the entry |
21:30:27 | FromDiscord | <heysokam> what happens with `nim.cfg`? what takes precedence? |
21:30:45 | FromDiscord | <Elegantbeef> https://nim-lang.org/docs/nimc.html#compiler-usage-configuration-files |
21:34:16 | FromDiscord | <heysokam> thx |
21:34:57 | * | jmcantrell quit (Quit: WeeChat 4.0.3) |
21:35:14 | * | jmcantrell joined #nim |
21:36:30 | FromDiscord | <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:28 | FromDiscord | <heysokam> sent a code paste, see https://play.nim-lang.org/#ix=4DUd |
21:44:46 | FromDiscord | <heysokam> or is it just me being obtuse as usual? |
21:45:37 | FromDiscord | <heysokam> happens on devel too |
21:45:49 | FromDiscord | <Elegantbeef> No clue you havent documented what "works" is |
21:47:12 | FromDiscord | <heysokam> In reply to @Elegantbeef "No clue you havent": oh sry, completely forgot |
21:52:33 | FromDiscord | <heysokam> sent a code paste, see https://play.nim-lang.org/#ix=4DUg |
21:53:17 | FromDiscord | <Elegantbeef> Right, I think you can only change the mm once |
21:53:39 | FromDiscord | <heysokam> so the override switch is not working, i guess |
21:54:07 | FromDiscord | <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:31 | FromDiscord | <heysokam> (which seemed to work) |
21:54:47 | FromDiscord | <heysokam> but wonder if that's a bug or something |
21:54:57 | FromDiscord | <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:45 | FromDiscord | <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:01 | FromDiscord | <Elegantbeef> How's a process destructor declared in C? |
22:32:15 | FromDiscord | <Elegantbeef> You can use `codegendecl` to annotate attributes |
22:32:53 | FromDiscord | <jviega> `attribute((constructor)) int pre_main(int c, char const a[]) {` or replace w/ destructor |
22:33:00 | FromDiscord | <jviega> You can also add priority values for orderin |
22:33:03 | FromDiscord | <jviega> orgering |
22:33:34 | FromDiscord | <Elegantbeef> Right you should be able to use codegendecl there |
22:34:06 | FromDiscord | <jviega> Okay thanks, I'll go find the docs :). Not that doing it in C has been an issue. |
22:42:46 | FromDiscord | <jos7388> is there any way to use a local path with nimble? |
22:43:02 | FromDiscord | <jos7388> something like `requires "file://deps/whatever"` i guess |
22:43:42 | FromDiscord | <Elegantbeef> That sounds pointless |
22:43:56 | FromDiscord | <Elegantbeef> There is a `nimble develop` command |
22:44:09 | FromDiscord | <jos7388> it's definitely a lot easier to use |
22:44:16 | FromDiscord | <jos7388> then i don't have to do any preconfiguration on CI or anything |
22:44:33 | FromDiscord | <Elegantbeef> Except that's not how you do package management in any regard |
22:44:34 | FromDiscord | <jos7388> isn't this common for like, you have a lib and a binary in the same repostiory? |
22:44:38 | FromDiscord | <jos7388> and the binary depends on the lib? |
22:44:44 | FromDiscord | <jos7388> this is a very common thing |
22:44:52 | FromDiscord | <Elegantbeef> `nimble install yourPackage` .... ok now how do I fetch this dep |
22:44:58 | FromDiscord | <jos7388> huh? |
22:45:16 | FromDiscord | <Elegantbeef> You're asking two separate things |
22:45:23 | FromDiscord | <Elegantbeef> One is local deps, the other is hybrid package |
22:45:29 | FromDiscord | <Elegantbeef> Nimble supports hybrid packages |
22:45:43 | FromDiscord | <Elegantbeef> Local deps are dumb as it defeats the purpose of the package manager |
22:45:58 | FromDiscord | <Elegantbeef> https://github.com/nim-lang/nimble#hybrids |
22:46:00 | FromDiscord | <jos7388> local deps make a ton of sense |
22:46:06 | FromDiscord | <Elegantbeef> It really doesnt |
22:46:10 | FromDiscord | <jos7388> ok |
22:46:16 | FromDiscord | <jos7388> there are a lot of valid use cases |
22:46:19 | FromDiscord | <jos7388> monorepo |
22:46:22 | FromDiscord | <Elegantbeef> Cause now if I try to install your package it tries to go and fetch `files://..//..` |
22:46:27 | FromDiscord | <Elegantbeef> Why would you use nimble for that then |
22:46:30 | FromDiscord | <Elegantbeef> Just use a nim config |
22:46:52 | FromDiscord | <Elegantbeef> That's not package management, a monorepo is decidedly not package managed |
22:47:13 | FromDiscord | <jos7388> i think that's a uselessly tight definition of package management |
22:47:30 | FromDiscord | <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:43 | FromDiscord | <jos7388> and it's nice if everything related to building the package is specified in there |
22:47:47 | FromDiscord | <jos7388> regardless of where the deps are stored |
22:47:53 | FromDiscord | <jos7388> that's how i treat a nimblefile |
22:48:35 | FromDiscord | <jos7388> that's why npm, cargo, msoft's vcproj-- whatever, etc all support this |
22:48:50 | FromDiscord | <Elegantbeef> If the package is not fetchable as an independent package what's the point in listing it in the requires? |
22:49:09 | FromDiscord | <jos7388> as a canonical place to define your project's dependencies |
22:49:17 | FromDiscord | <jos7388> just because it's stored on the filesystem or some server |
22:49:22 | FromDiscord | <Elegantbeef> But you're a mono repo, isnt that implied? |
22:49:23 | FromDiscord | <jos7388> doesn't really matter to me, i'd prefer to define it all in one place |
22:49:27 | FromDiscord | <jos7388> no |
22:49:42 | FromDiscord | <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:44 | FromDiscord | <jos7388> i want to know the dependencies |
22:49:50 | FromDiscord | <jos7388> and i expect them to be listed in the project's manifest, which is the nimblefile |
22:50:05 | FromDiscord | <Elegantbeef> So you want every nimble file listed? |
22:50:08 | FromDiscord | <Elegantbeef> Sorry nim file\ |
22:50:14 | FromDiscord | <jos7388> no just packages |
22:50:22 | FromDiscord | <jos7388> so i guess .nimble files |
22:51:03 | FromDiscord | <jos7388> i think it's probably weird in nim because nim doesn't have a canonical package format? |
22:51:07 | FromDiscord | <jos7388> (edit) "have" => "define" |
22:51:58 | FromDiscord | <Elegantbeef> No clue I don't think it makes any sense myself to list dependencies inside the local root |
22:52:05 | FromDiscord | <Elegantbeef> That's a configuration thing not a dependency thing In my view |
22:52:38 | FromDiscord | <jos7388> so you don't think it's useful to open a .nimble file and see all the dependencies |
22:52:48 | FromDiscord | <jos7388> instead you want them hiding in random places defined in other config |
22:52:55 | FromDiscord | <Elegantbeef> If the packages cannot be installed independently they're not dependencies, they're apart of the larger nimble |
22:52:55 | FromDiscord | <jos7388> based on whatever makes sense for a given project |
22:53:15 | FromDiscord | <jos7388> they can be installed independently |
22:53:18 | FromDiscord | <jos7388> they're libraries |
22:53:31 | FromDiscord | <jos7388> i just want nimble to link them by path |
22:53:55 | FromDiscord | <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:05 | FromDiscord | <jos7388> you can just `nimble build` and it'll work because it's part of the monorepo |
22:54:15 | FromDiscord | <jos7388> same for other developers |
22:54:42 | FromDiscord | <jos7388> it runs into issues with other tools though, like nim's language server |
22:55:00 | FromDiscord | <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:45 | FromDiscord | <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:18 | FromDiscord | <jos7388> btw as i type all this-- im struggling to get `nimble develop` or `nimble install` with naylib to work |
22:58:21 | FromDiscord | <Elegantbeef> Well the cmake case is odd cause cmake is not apart of the compiler |
22:58:23 | FromDiscord | <Elegantbeef> Configuration is apart of Nim atleast |
22:58:25 | FromDiscord | <jos7388> which is why i'm annoyed |
22:58:38 | FromDiscord | <Elegantbeef> Yea I don't know nimble 0.1.4 is broken |
22:58:42 | FromDiscord | <Elegantbeef> just use atlas |
22:59:31 | FromDiscord | <Elegantbeef> Atlas does allow using local folders quite easily |
23:05:21 | FromDiscord | <jos7388> ok i got it working |
23:05:23 | FromDiscord | <jos7388> nice what's atlas? |
23:05:32 | FromDiscord | <Elegantbeef> https://github.com/nim-lang/atlas |
23:06:23 | FromDiscord | <jos7388> oh that looks nice |
23:06:32 | FromDiscord | <albassort> does httpbeast have docs? |
23:06:52 | FromDiscord | <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:00 | FromDiscord | <albassort> I read most of it, the high level stuff is small and well written |
23:19:03 | FromDiscord | <albassort> maybe docs were not needed |
23:20:57 | * | Lord_Nightmare joined #nim |
23:25:01 | FromDiscord | <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:41 | FromDiscord | <Elegantbeef> They're all added to the event queue so it should give up the cpu properly |
23:27:01 | FromDiscord | <Elegantbeef> Though `for x in await all tasks` is a simple change that is cleaner |
23:29:30 | FromDiscord | <Chronos [She/Her]> Genuinely wonder if I could make my application quit after it goes beyond a certain level of RAM |
23:29:48 | FromDiscord | <Elegantbeef> Limit it at the OS level |
23:29:56 | FromDiscord | <Chronos [She/Her]> Not really sure how tbh |
23:30:12 | FromDiscord | <Chronos [She/Her]> Probably using something for the process specifically but sigh, it's annoying |
23:30:30 | FromDiscord | <heysokam> In reply to @Elegantbeef "https://github.com/nim-lang/atlas": now that i think about it, can they be mixed? |
23:30:42 | FromDiscord | <heysokam> can atlas handle nimble projects without modifying anything? |
23:30:45 | FromDiscord | <Chronos [She/Her]> Atlas can install nimble projects iirc |
23:30:49 | FromDiscord | <Chronos [She/Her]> As deps |
23:30:51 | FromDiscord | <heysokam> like using atlas for local dev, and then nimble for the normal stuff |
23:30:55 | FromDiscord | <Elegantbeef> Yea atlas can use nimble projects |
23:30:56 | * | ShadowSector quit (Quit: Leaving) |
23:32:10 | FromDiscord | <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:17 | FromDiscord | <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:03 | FromDiscord | <Elegantbeef> I mean you're describing nimble develop, but it's broken now |
23:35:41 | FromDiscord | <heysokam> but nimble develop works really ugly, yeah |
23:35:53 | FromDiscord | <heysokam> that's why i've been searching for the alternative |
23:36:07 | FromDiscord | <Elegantbeef> "works really ugly" is such a joke given it just doesnt |
23:36:23 | FromDiscord | <heysokam> well, the last time it worked it was ugly 😄 |
23:37:33 | FromDiscord | <Elegantbeef> I mean in 0.13 it was fine |
23:37:45 | FromDiscord | <Elegantbeef> you do `nimble develop` and then just work on your repos in conjunction |
23:38:22 | FromDiscord | <heysokam> yeah |
23:38:41 | FromDiscord | <heysokam> does atlas not come with 2.0 yet? readme says it does |
23:39:23 | FromDiscord | <Elegantbeef> It does come with 2.0 it's just not copied to your binaries file if installed using choosenim |
23:39:24 | FromDiscord | <Chronos [She/Her]> Needs to be compiled iirc |
23:39:30 | FromDiscord | <Chronos [She/Her]> Aj |
23:39:32 | FromDiscord | <Chronos [She/Her]> Ah |
23:39:58 | FromDiscord | <heysokam> ah will link it |
23:42:44 | FromDiscord | <heysokam> its an atlas workspace meant to be my developer folder, or each of my subfolders separately instead? |
23:42:58 | FromDiscord | <heysokam> (edit) "its an atlas workspace meant to be my ... developer" added "root" |
23:43:10 | FromDiscord | <heysokam> (edit) "its an atlas workspace meant to be my root developer folder, or each of my subfolders ... separately" added "(aka projects)" |
23:43:25 | FromDiscord | <Chronos [She/Her]> What if I made my own library to bind types to objects in a format specified by the user- |
23:43:39 | FromDiscord | <Elegantbeef> An atlas workspace is for sharing all your dependencies |
23:43:51 | FromDiscord | <Elegantbeef> So you make one for your given dependancies |
23:44:15 | FromDiscord | <heysokam> yeah but "dependencies" can be project wide, or "all my projects" wide, as in system wide |
23:44:51 | FromDiscord | <Elegantbeef> It's workspace wide |
23:45:04 | FromDiscord | <heysokam> i asked the opposite question though |
23:45:24 | FromDiscord | <heysokam> is a workspace meant to cover all my system, or just one folder? |
23:45:38 | FromDiscord | <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:51 | FromDiscord | <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:10 | FromDiscord | <Elegantbeef> It's meant for singular projects afaik |
23:46:16 | FromDiscord | <heysokam> kk |
23:46:24 | FromDiscord | <Elegantbeef> I really have 0 authority here |
23:46:47 | FromDiscord | <Elegantbeef> Given I do not use any odd package layout It's simple as for me |
23:47:58 | FromDiscord | <heysokam> ah so you dont build with nimble, you build with nim c |
23:48:15 | FromDiscord | <heysokam> that explains my worry |
23:51:31 | FromDiscord | <jviega> Hmm, does nim happen to call `_exit()` when you call `quit()`? |
23:51:51 | FromDiscord | <Elegantbeef> Doubtful |
23:52:34 | FromDiscord | <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 |