<< 16-12-2025 >>

00:15:51*rockcavera joined #nim
00:37:33FromDiscord<xtrayambak> In reply to @mjsdev "though probably won't use": fair, I also had plans to build something like a tiny Nim parser so I can parse nimble files more reliably without depending on the compiler
00:38:05FromDiscord<mjsdev> I was looking at atlas's stuff for it, I don't see an easy way to use a string.
00:38:11FromDiscord<mjsdev> which does use the compiler
00:38:32FromDiscord<xtrayambak> Neo originally stole the entire Nimble parsing machinery from Nimble, but distributing compiler code is very wonky and unreliable
00:38:45FromDiscord<mjsdev> But the way I'm doing mine is just executing git to show the contents of the nimble file
00:39:04FromDiscord<xtrayambak> ahuh
00:40:08FromDiscord<xtrayambak> I also implemented lockfiles with SHA2 checksums, and surprisingly it doesn't do any major slowdowns, neither in I/O and.nor in CPU/RAM bandwidth
00:52:29FromDiscord<mjsdev> You're using semver, right?
00:56:40FromDiscord<xtrayambak> In reply to @mjsdev "You're using semver, right?": Yes
01:23:39*Jjp137_ quit (Ping timeout: 252 seconds)
01:43:18*tiorock joined #nim
01:43:18*rockcavera quit (Killed (tantalum.libera.chat (Nickname regained by services)))
01:43:18*tiorock is now known as rockcavera
02:37:27FromDiscord<mjsdev> @xtrayambak -- I'm hitting quite a few errors when trying to parse some nimble files (many of them older) -- do you want me to add them to issues on neo, or no?
02:38:02FromDiscord<mjsdev> I'm not fixing them in my version at the moment, as there are other reasons I shouldn't even be trying to load dependencies from these files.
02:38:53FromDiscord<mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=DdsYRRGf
02:40:08FromDiscord<mjsdev> nimble/parser.nim is a pretty close (if not one to one copy of yours) minus a few line difference
02:40:26FromDiscord<mjsdev> I can actually make it quite a bit closer to yours.
02:43:29FromDiscord<mjsdev> I can get line parity if you like
02:46:33*rockcavera quit (Remote host closed the connection)
03:35:14*Jjp137_ joined #nim
04:21:15*hygo quit (Ping timeout: 240 seconds)
04:23:28*hygo joined #nim
04:27:17FromDiscord<mjsdev> What's the fastest data structure in nim to determine if something that can be `Hash` ed has been added?
04:27:34FromDiscord<mjsdev> HashSet?
04:30:20FromDiscord<mjsdev> Well, can't say it did much
05:16:44FromDiscord<xtrayambak> In reply to @mjsdev "<@498088092406644736> -- I'm hitting": Yeah, you should
05:17:21FromDiscord<xtrayambak> In reply to @mjsdev "I can get line": yeah, just check if my parser does this too
05:17:48FromDiscord<mjsdev> it literally is your parser
05:19:05FromDiscord<mjsdev> I just renamed the file, and the lines should match up exactly in the issue I post, as I copied back your original code
05:21:23FromDiscord<bluewhale_unkown_x> can't I throw array or seq in openArray?
05:22:51FromDiscord<janakali> you can
06:19:09FromDiscord<mjsdev> In reply to @bluewhale_unkown_x "can't I throw array": sometimes
06:20:02FromDiscord<mjsdev> maybe it's not so much that you can't throw it in there, but I've deifnitely run into some weird issues with typing things as openArray and not having them work (converters come to mind)
06:20:05FromDiscord<xtrayambak> In reply to @mjsdev "Maybe the neo guy": btw I do actually have plans to incorporate your ideas behind a (series of) flags in `neo.toml`
06:20:23FromDiscord<xtrayambak> it's just that I'm implementing a few other features right now
06:20:30FromDiscord<mjsdev> @xtrayambak -- cool, I am almost done my own though 😛
06:20:49FromDiscord<xtrayambak> mainly this, to act as a `pkg-config` wrapper on NIX https://media.discordapp.net/attachments/371759389889003532/1450372071497535560/image.png?ex=69424bc0&is=6940fa40&hm=0954270e82cf403538571a78517f74973023871f59ed1ec92b9760358615eac2&
06:21:10FromDiscord<mjsdev> I think neo is still a bit too much for what I want in a PM
06:21:17FromDiscord<xtrayambak> fair, to each their own :P
06:21:38FromDiscord<xtrayambak> In reply to @xtrayambak "mainly this, to act": I have plans to make it propagate across libraries and subdependencies but I've seen what propagating C flags can cause through my cmake misadventures
06:21:49FromDiscord<mjsdev> That said, yours is probably more in line with the community, so feel free to steal back my ideas and make something more widely used that is still good
06:22:26FromDiscord<xtrayambak> In reply to @mjsdev "That said, yours is": I don't think Neo will be gaining any adoption though, unfortunately :^)
06:23:29FromDiscord<mjsdev> The biggest thing for me was local (non-central) dependencies, right now only atlas has that.
06:23:56FromDiscord<mjsdev> Atlas still just has too many problems for me though, I still run into weird situations where I feel like I just have to reset everything from scratch to even get it to work or pickup things
06:24:25FromDiscord<mjsdev> I don't know if you saw, but my approach is hybrid, I'm using a central cache and then checking out work-trees in `vendor/`
06:24:42FromDiscord<xtrayambak> Atlas just isn't for me. I like Nimble as-is, it's just the awful performance that is the bane of my existence (also the lack of many QoL features)
06:25:08FromDiscord<mjsdev> I don't know how anyone can like nimble 🙁
06:25:23FromDiscord<mjsdev> It literally like does not work 90% of the time
06:25:41FromDiscord<xtrayambak> In reply to @mjsdev "I don't know if": Neo currently just generates `--path` flags for the compiler to the packages https://media.discordapp.net/attachments/371759389889003532/1450373295500427286/image.png?ex=69424ce4&is=6940fb64&hm=d4259c15519103282974e2349aa849bb0cddc4d8874faed420de1b51e68894be&
06:25:58FromDiscord<xtrayambak> In reply to @mjsdev "I don't know how": no clue, I just like its flow very much
06:26:35FromDiscord<mjsdev> Yeah, I think everything needs to generate paths or it won't fly, though I'm using the `nim.cfg`
06:27:01FromDiscord<mjsdev> I think atlas uses nimble.paths ?
06:27:08FromDiscord<mjsdev> maybe
06:27:14FromDiscord<mjsdev> or maybe it also uses nim.cfg actually
06:27:41FromDiscord<xtrayambak> sent a long message, see https://pasty.ee/lBhgTzyY
06:27:55FromDiscord<mjsdev> I'm just under 1000 lines of code... I wonder if I'll keep it < 1250
06:28:17FromDiscord<xtrayambak> Neo is currently ~2.7K lines
06:28:40FromDiscord<mjsdev> Yeah, but you have way more commands
06:28:44FromDiscord<xtrayambak> I'm planning to write a bunch of test cases soon to make it more observable eventually
06:29:08FromDiscord<xtrayambak> In reply to @mjsdev "Yeah, but you have": True that, I do take pride in how comfy it is to use (for me, atleast)
06:29:15FromDiscord<mjsdev> https://github.com/mattsah/percy/tree/master/local/commands -- 7 (guess it's my lucky day)
06:30:02FromDiscord<mjsdev> Also, in fairness, my LoC is low cause I'm using my framework
06:30:07FromDiscord<mjsdev> which isn't getting counted 😛
06:30:18FromDiscord<xtrayambak> In reply to @mjsdev "Also, in fairness, my": yeah, I looked at your code and it looked a bit unorthodox
06:30:20FromDiscord<xtrayambak> that explains it
06:30:49FromDiscord<mjsdev> It's meant for more object oriented style, and a wicked configuration system that auto registers features
06:31:12FromDiscord<mjsdev> Like how the commands get registered with the CLI:↵↵https://github.com/mattsah/percy/blob/master/local/commands/set.nim#L34-L60
06:31:26FromDiscord<mjsdev> You give things a "shape"
06:31:33FromDiscord<xtrayambak> ah
06:32:00FromDiscord<xtrayambak> Neo's command line "dispatch" thingy is basically the same as Nimble (except it doesn't use an action enum)
06:34:06FromDiscord<mjsdev> Here's another one, which is basically registering the Settings "class" with the dependency injector so if it's created through app.get(Settings) it uses that, I'll probably add `Shared()` to the shape that will make it a singleton, not that I think I'm creating multiple instances right now.
06:34:10FromDiscord<mjsdev> https://github.com/mattsah/percy/blob/master/local/lib/settings.nim#L226-L239
06:34:57FromDiscord<xtrayambak> I do wonder how messy that would make the codegen, though I can't be too sure myself as I haven't seen your implementation :P
06:36:33FromDiscord<mjsdev> Not sure, it's all macros... there's a few weird bits, like `app` is available inside the shape calls through some closure magic. But teh shape code just gets interspersed, and there's keyword support, like `super` for calling parent method, seen here: https://github.com/mattsah/percy/blob/master/local/basecli.nim#L39
06:36:40FromDiscord<mjsdev> normally you have to do some `procCall` thing
06:37:43FromDiscord<xtrayambak> As long as it doesn't make it too slow and a package manager really isn't a HPC program, I think you'll be fine
06:37:48FromDiscord<xtrayambak> (edit) "As long as it doesn't make it too slow and ... a" added "as"
06:41:49FromDiscord<mjsdev> Don't really know what's considered slow here, but given how it's using bare reps, I assume it'll be pretty quick.
07:39:49*hygo quit (Ping timeout: 255 seconds)
07:41:47*hygo joined #nim
08:06:43FromDiscord<pmunch> Is there a way to create a Nim cfg in a module that gets applied when I import said module?
08:07:04FromDiscord<thatitaliandudebutcooler> Haiii
08:47:58*joast quit (Ping timeout: 246 seconds)
09:04:20*joast joined #nim
09:23:04*beholders_eye joined #nim
09:23:30FromDiscord<tauruuuuuus> I think you have to hardcode the pragmas equivalent to the nim.cfg flags in the module entrypoint
10:16:09FromDiscord<pmunch> Hmm
10:37:19*beholders_eye quit (Ping timeout: 240 seconds)
10:51:20FromDiscord<regmono> imma stick with sublime
10:51:31FromDiscord<regmono> just starting to learn nim
11:07:17*beholders_eye joined #nim
14:50:25FromDiscord<mr_rowboto> sent a long message, see https://pasty.ee/rMkHkUBZ
14:50:39FromDiscord<mr_rowboto> (edit) "https://pasty.ee/vzsYUVld" => "https://pasty.ee/mNpgqKJe"
14:50:55FromDiscord<mr_rowboto> (edit) "https://pasty.ee/DnIQnDFG" => "https://pasty.ee/XLhiWdDC"
14:52:18FromDiscord<nnsee> In reply to @mr_rowboto "Hello guys, I've been": was the name choice a nod to rust's clap? :)
14:52:23FromDiscord<mr_rowboto> no
14:52:36FromDiscord<nnsee> oh
14:52:36FromDiscord<mr_rowboto> the name choice was... eh...
14:53:01FromDiscord<mr_rowboto> "sht... I can't name it Command Line Interface Tools"
14:53:09FromDiscord<nnsee> lmao
14:53:19FromDiscord<nnsee> totally could've tbh
14:53:24FromDiscord<mr_rowboto> I mean
14:53:30FromDiscord<mr_rowboto> I COULD
14:54:31FromDiscord<mr_rowboto> (alt name suggestions are welcomed, I don't want to overlap with anything rust u_u)
15:09:09FromDiscord<ambient3332> clap is also a popular musical instrument plugin spec
15:09:38FromDiscord<ambient3332> https://github.com/NimAudio/nim-clap
15:21:35*beholders_eye quit (Ping timeout: 240 seconds)
15:37:03FromDiscord<mjsdev> Does anyone else see that git is way slower over SSH than HTTP?
15:37:06FromDiscord<mjsdev> (edit) "HTTP?" => "HTTPS?"
16:16:56FromDiscord<aethrvmn> Should've smh↵(@mr_rowboto)
16:18:20FromDiscord<aethrvmn> talc? Tool Accessing Line Command↵(@mr_rowboto)
16:18:56FromDiscord<mr_rowboto> In reply to @aethrvmn "Should've smh (<@176460389662457856>)": Still can.
16:22:26FromDiscord<mr_rowboto> sent a long message, see https://pasty.ee/bFmYrbMS
16:22:58FromDiscord<aethrvmn> I dont really like adding nim in such an in your face way
16:23:11FromDiscord<aethrvmn> I like `mininim` because it fits and sounds nice
16:23:23FromDiscord<mr_rowboto> `minim` is beauty.
16:23:52FromDiscord<mr_rowboto> but it's a very special palindrome case
16:24:14FromDiscord<aethrvmn> Otherwise I just usually try to name stuff in nice ways, I'm building some tensor network stuff so I went with tennet for example
16:24:22FromDiscord<nasuray> In reply to @mr_rowboto "Regarding naming, what's the": 368 of the registered packages have Nim in the name
16:24:59FromDiscord<mr_rowboto> https://nimble.directory/search?query=nim 🙈
16:25:12FromDiscord<aethrvmn> An llm project I'm building towards is `litany`
16:27:29FromDiscord<nasuray> ~https://nimble.directory/search?query=nim~ https://nimpkgs.dayl.in/?query=name%3Anim#/search 😝
16:27:54FromDiscord<nasuray> (edit) "~https://nimble.directory/search?query=nim~" => "~ https://nimble.directory/search?query=nim ~"
17:09:26FromDiscord<lainlaylie> In reply to @mr_rowboto "Regarding naming, what's the": just "something"
17:24:41*beholders_eye joined #nim
17:26:00FromDiscord<ûnkreativiteit> I wonder what a manim port to nim would be called..
17:36:58FromDiscord<fowl.mouth> In reply to @ûnkreativiteit "I wonder what a": nimanim
17:44:55*beholders_eye quit (Ping timeout: 240 seconds)
19:51:03FromDiscord<saint._._.> In reply to @aethrvmn "An llm project I'm": What’s it gonna do?
19:59:33*beholders_eye joined #nim
20:19:35FromDiscord<mjsdev> sent a code paste, see https://play.nim-lang.org/#pasty=kCIdusIw
20:58:55*beholders_eye quit (Ping timeout: 250 seconds)
21:03:10*tokyovigilante joined #nim
21:45:01*rockcavera joined #nim
22:10:01FromDiscord<aethrvmn> Speak hopefully↵(@saint._._.)
22:11:59FromDiscord<aethrvmn> The idea is to prove that you can use nim for the latest/"hottest" ai architectures, plus I dont want to do hobby coding in python