<< 14-12-2019 >>

00:01:09*ng0 quit (Quit: Alexa, when is the end of world?)
00:11:32*rayman22201 quit (Ping timeout: 276 seconds)
00:11:50*rayman22201 joined #nim
00:27:19*Hideki_ joined #nim
00:29:28*lritter quit (Ping timeout: 265 seconds)
00:43:58*Hideki_ quit (Ping timeout: 265 seconds)
00:46:47*krux02_ joined #nim
00:49:28*krux02 quit (Ping timeout: 245 seconds)
01:05:56*Hideki_ joined #nim
01:07:17*Hideki_ quit (Remote host closed the connection)
01:08:59*Hideki_ joined #nim
01:09:02*Hideki_ quit (Remote host closed the connection)
01:11:58FromGitter<Varriount> nimph?
01:13:17FromDiscord<mratsim> Your new package overlord
01:14:34FromDiscord<mratsim> Ha, I got my Finite State Machine generator up and running: https://github.com/mratsim/Synthesis
01:14:34FromDiscord<mratsim>
01:14:34FromDiscord<mratsim> It's also probably ultra fast 🙂
01:15:05*Hideki_ joined #nim
01:15:07*Hideki_ quit (Remote host closed the connection)
01:17:55*Hideki_ joined #nim
01:24:58*endragor joined #nim
02:16:03disruptekprobably?
02:16:41disruptekit's a new-fangled probabilistic fsm.
02:18:30disruptek!repo nimph
02:18:30disbothttps://github.com/disruptek/nimph -- 9nimph: 11a nim package hierarchy manager from the future 🧚 15 18⭐ 0🍴 7& 1 more...
02:18:51disruptekit's the cure for nimble fatigue.
02:38:17*krux02_ quit (Remote host closed the connection)
02:39:05*couven92 quit (Ping timeout: 276 seconds)
02:42:57*endragor quit (Remote host closed the connection)
02:49:31*Hideki_ quit (Remote host closed the connection)
02:51:05*Hideki_ joined #nim
02:52:38*Hideki_ quit (Remote host closed the connection)
02:52:50*Hideki_ joined #nim
02:59:21*Hideki_ quit (Remote host closed the connection)
03:00:10*Hideki_ joined #nim
03:04:17*Hideki_ quit (Ping timeout: 240 seconds)
03:15:13*endragor joined #nim
03:41:19*rayman22201 quit (Quit: Connection closed for inactivity)
03:43:46*Hideki_ joined #nim
03:58:23*Hideki_ quit (Ping timeout: 276 seconds)
04:19:17*endragor quit (Ping timeout: 240 seconds)
04:28:29madpropsdisruptek, trying to compile nimph with nim compile -d:release src/nimph.nim - but it fails
04:29:12madprops`nimble install` also fails
04:55:09*chemist69 quit (Ping timeout: 250 seconds)
04:55:45*narimiran joined #nim
04:57:04*chemist69 joined #nim
05:42:40*nsf joined #nim
05:47:48*rockcavera quit (Remote host closed the connection)
06:03:39*NimBot joined #nim
06:16:36*endragor joined #nim
06:22:02*endragor quit (Ping timeout: 276 seconds)
06:56:38*hexeratops quit (Read error: Connection reset by peer)
07:07:32*gour joined #nim
07:08:21*Vladar joined #nim
07:24:35*solitudesf- joined #nim
07:55:24*Hideki_ joined #nim
07:59:56*Hideki_ quit (Ping timeout: 265 seconds)
08:00:00*gmpreussner quit (Quit: kthxbye)
08:05:07*gmpreussner joined #nim
08:22:28*dddddd quit (Remote host closed the connection)
08:28:18*letto quit (Quit: Konversation terminated!)
08:29:56*letto joined #nim
08:44:02*salewski joined #nim
08:45:13salewski@admins, the spam links have arrived again: https://forum.nim-lang.org/t/5676
08:45:17salewskiBye.
08:45:21*salewski quit (Client Quit)
08:50:47*salewski joined #nim
08:51:20salewskiAnd for the other one also: https://forum.nim-lang.org/t/5675
08:52:19*salewski quit (Client Quit)
08:52:42Araqgood that at least spammers like us
09:09:46*couven92 joined #nim
09:15:09*Jjp137 quit (Ping timeout: 250 seconds)
09:28:17*couven92 quit (Quit: Client Disconnecting)
10:18:16*endragor joined #nim
10:23:29*endragor quit (Ping timeout: 265 seconds)
10:45:41*couven92 joined #nim
10:47:04*Trustable joined #nim
10:47:08*Vladar quit (Remote host closed the connection)
10:58:35*jwm224 quit (Ping timeout: 268 seconds)
11:00:04*jwm224 joined #nim
11:20:41*sealmove joined #nim
11:30:26FromDiscord<mratsim> @disruptek, a "new-fangled probabilistic fsm", what is that?
11:32:27*ng0 joined #nim
11:32:32FromDiscord<mratsim> can we lock just the message to prevent that, because there were some nice answers inside
11:46:10dom96loving these sophisticated spammers
11:47:13dom96I have some interesting ideas on how to evolve our forum, might take that up as my side project for next year
11:47:55*lritter joined #nim
11:54:33*Hideki_ joined #nim
11:56:50FromDiscord<mratsim> I've opened some suggestions on the github
11:58:50*Hideki_ quit (Ping timeout: 246 seconds)
12:00:16narimirandom96: lowering alowed editing time is still out of question? :/
12:00:52dom96nothing is out of the question
12:00:52narimiranmy opinion is still the same: 1 week is waaaay too long. it should be 1 hour max
12:01:26narimiranand if you legitimately want to edit your post, it will be better to make a new comment instead
12:01:57narimiran(otherwise people will probably skim the edited content because they think they've already read it)
12:02:51narimiranif i visit forum every day, i don't double-check to see if some comment from 3 days ago was edited. nor i check threads which weren't bumped to top if there's maybe some new edited content
12:03:05Araqexactly
12:03:37dom96a majority of people search for answers
12:03:57dom96in those cases having a post that is misleading is bad and it would be nice if it was modified so that it's up to date
12:04:56narimiran"a majority of people search for answers" [citation needed]
12:12:09dom96Okay, let me reword what I mean: the majority of visitors on the forum does not visit it every day. This means that the majority of threads which are read on a weekly basis aren't read by people like you or me who keep track of new threads on the forum, these people are unlikely to scroll to the bottom of a thread to see any corrections.
12:13:28dom96I do agree that we should rethink when and for how long modifications are allowed though
12:19:37*endragor joined #nim
12:24:05*endragor quit (Ping timeout: 250 seconds)
12:25:10FromDiscord<mratsim> I don't agree @narimiran
12:25:30FromDiscord<mratsim> often you see typos at the end of the day when you recheck your replies
12:25:59FromDiscord<mratsim> or you might want a unique thread like for Arraymancer when you edit the first post with the latest version instead of creating a new post per version
12:26:28FromDiscord<mratsim> and you append the change at the end
12:27:02FromDiscord<mratsim> but, a long edit time can be restricted to people with some actual post history
12:27:22FromDiscord<mratsim> anyway, I've opened this issue that can serve as a RFC: https://github.com/nim-lang/nimforum/issues/222
12:27:22disbot[Feature request] More tools to fight spams
12:29:03narimirani agree that editing time longer than 1 hour should be allowed only for accounts older than one month *and* with at least N previous comments
12:30:35*Hideki_ joined #nim
12:38:37*Hideki_ quit (Ping timeout: 240 seconds)
13:08:18*rockcavera joined #nim
13:19:06*endragor joined #nim
13:19:40*Zevv quit (Quit: leaving)
13:25:19*Zevv joined #nim
13:26:06*rockcavera quit (Remote host closed the connection)
13:31:53FromGitter<vycb> `
13:36:23*Zevv quit (Changing host)
13:36:23*Zevv joined #nim
13:36:25*endragor quit (Remote host closed the connection)
13:43:20*endragor joined #nim
13:46:47*endragor quit (Remote host closed the connection)
14:12:46FromGitter<sheerluck> Guys, Nim helps to find bugs in C++ ⏎ I have a loop `for (const auto& p: fs::directory_iterator(path))` ⏎ I write `for p in walk_dir(opts.path):` and it gives me ⏎ `Error: type mismatch: got <tuple[kind: PathComponent, path: string]>` ⏎ Correct line would be `for kind, path in walk_dir(opts.path):` ... [https://gitter.im/nim-lang/Nim?at=5df4edde0dc628523e34d9a2]
14:14:41*leorize quit (Remote host closed the connection)
14:14:41*ng0 quit (Remote host closed the connection)
14:15:52*leorize joined #nim
14:16:26*Zevv quit (Quit: leaving)
14:16:35*Zevv joined #nim
14:16:35*Zevv quit (Changing host)
14:16:35*Zevv joined #nim
14:31:05*ng0 joined #nim
14:33:30FromDiscord<mratsim> 🙂
14:34:11FromDiscord<mratsim> don't forget to check that the path exist with the recursive directory iterator. It won't tell you because well recursive just return early if there is no directory to recurse into
14:36:19madpropshmm im trying to speed up my tree implementation to `tree` speeds. tree displays /var in 0.1s mine does it in 1s
14:36:49madpropsim thinking of using the recursive walkdir to get all paths at once instead of doing it by steps
14:37:29madpropsbut haven't got around to figuring out how
14:39:06*dddddd joined #nim
14:39:28FromDiscord<mratsim> You have IO of the filesystem and IO of displaying to console so the first thing would be to check those. If tree is still faster than that, there is trickery going on that you must figure out :p
14:44:00disruptekmadprops: what was the failure?
14:46:45disruptek...when building nimph.
14:47:48madpropsdisruptek, http://i.imgur.com/NnLAqNh.png
14:48:06madpropsmratsim i did check by removing all printing, it barely changed the time
14:49:22disruptekmadprops: just clone the repo and run the bootstrap.
14:49:56disruptektoo many open issues in other projects to mess around with trying to do it from inside nimble.
14:50:24disrupteknimph is from a future where nimble and nimterop have no bugs. 😄
14:53:36*sealmove quit (Quit: WeeChat 2.6)
14:53:41madpropsoh i totally missed the installation section
14:55:26FromGitter<mratsim> A code with no bugs is either a Hello World or a code that no one uses ;)
14:55:32FromGitter<mratsim> or it's written in Coq
14:55:52disruptekyou are forgiven for assuming that someone who can write a package manager could make it installable via nimble.
14:56:48*natrys joined #nim
14:57:11madpropswhat i find confusing is that .. i get bootstraph.sh by cloning the repo .. but then it clones it again
14:57:15*chemist69 quit (Ping timeout: 252 seconds)
14:57:26madpropsunless im just supposed to get that file
14:57:38disruptekit shouldn't; that's what the test in the beginning checks.
14:57:39madpropsoh it tests
14:57:58disruptekthat didn't work?
14:58:25madpropsit's downloading Nim.git ?
14:58:59disruptekthere's a compiler requirement in the .nimble
14:59:07disrupteki have an idea about that, though.
14:59:24*chemist69 joined #nim
14:59:44disruptekoh, i already tried my idea and it didn't work. see src/nimph.nim.cfg.
15:00:08madpropshmm http://i.imgur.com/x8eoKZ1.png
15:00:18madpropsmaybe im not made for nimphs
15:00:32disruptekyou don't have openssl?
15:00:51FromDiscord<treeform> omg I hate openSSL so much...
15:00:53madpropsi do
15:00:59madpropsbut version 1.1.1
15:01:21disrupteknimterop cannot find it.
15:01:48madpropsoh wait
15:01:52madpropsi need the devel version i guess
15:01:54*ng0_ joined #nim
15:02:13madpropsor not
15:02:19disruptekyou never build anything that depends on openssl?
15:02:28*ng0 quit (Disconnected by services)
15:02:30*ng0_ is now known as ng0
15:02:38madpropsprobably not
15:03:10madpropsok got libssl-dev
15:07:25madpropsnot sure why but running that script spawned a lot of zombie processes
15:08:10disruptekwell, it does run nimble.
15:08:52*natrys quit (Quit: natrys)
15:09:49madpropsok lets give it a spin
15:10:28disruptekoh shoot
15:11:08disruptekremember, nimph just intuits the env you want based on your compiler settings.
15:11:20disruptekand warns you of anything that doesn't make sense.
15:11:39disruptekso, as long as your compiler works the way you want it to, so should nimph.
15:11:42madpropsliking the information im already getting http://i.imgur.com/FLom71j.png
15:11:52FromDiscord<Clyybber> Araq, krux02: Discovered another int128 bug yesterday: #12897
15:11:54disbothttps://github.com/nim-lang/Nim/issues/12897 -- 3Simple type definition crash ; snippet at 12https://play.nim-lang.org/#ix=24nB
15:12:12FromDiscord<Clyybber> Its blocking me and I dont know how to fix it yet :{
15:13:37madpropsdisruptek, what's the eq of nimble install -d ?
15:14:04disruptekthere's no concept of "install" in nimph.
15:14:57disruptekif you want to setup local dependencies, make a nim.cfg, add --clearNimblePath, and --nimblePath="$config/deps/pkgs", and then `mkdir deps` and `nimph doctor` will clone all the missing deps.
15:14:58madpropsso when i do nimph install what happens?
15:15:02FromDiscord<mratsim> I think it'ss an alignement bug
15:15:16disrupteknimph install just runs `nimble install` in your environment.
15:15:42disruptekie. with a --nimbleDir that matches whatever you've setup your compiler with.
15:15:48madpropsthis is a bit confusing then http://i.imgur.com/Ubb7iNC.png
15:15:56madprops--help makes it seem like that's a nimph command
15:16:03disruptekwell, it is.
15:16:24disruptek`nimph install foo` will use nimble to install foo into whatever your nimbleDir is.
15:16:43disruptek`nimph clone foo` will just clone it instead.
15:17:09madprops"the doctor wasn't able to fix everything" :(
15:17:37madpropsbecause: unable to remove nimblePath /opt/nimble/pkgs/
15:17:57FromDiscord<Clyybber> @mratsim Yeah, I cant test it rn, but maybe its related to the static int param
15:18:01disruptekhmm, it should be able to exclude it if you have a nim.cfg.
15:19:26disrupteki admit that i don't test global deps and nimble interop as often as i should. it's just not part of my workflow.
15:19:37madpropsno, i haven't added a nim.cfg
15:19:50madpropslooking for an example
15:20:27madpropshttps://github.com/disruptek/nimph/blob/master/tests/nim.cfg
15:21:15disruptekwatch the video on the repository for nimph. it shows configuring the compiler for local dependencies.
15:21:27disruptekand then `nimph doctor` installing them all.
15:22:49disrupteksorry, /cloning/ them all. 😉
15:25:18disrupteknot adding an --excludePath for an empty directory feels like a bug. i wonder if we cannot exclude nimblePaths now.
15:25:35disruptekno, we can.
15:26:12madpropsso when you do --define:ssl it looks for a git repo?
15:26:50madpropsand populates all dependencies?
15:27:13madpropsit's a bit confusing
15:27:14disruptek--define:ssl just sets a boolean define in nim to `true`.
15:27:30madpropsok notifyIcons
15:27:43disruptekwhen you run nimph, it just tries to see if it can find everything.
15:27:43madpropsim guessing it searches github for that
15:28:04disruptekif you run `nimph doctor`, it will try to "fix" anything it can, including cloning missing packages.
15:28:24madpropsbut it deduces this from nim.cfg oooooor by analyzing the code?
15:28:33madpropslatter would be cool
15:28:57disruptekit looks only at the nim.cfg and the requirements in your package.nimble. but the package isn't missing if it's available as a nimble package in a path searched by the compiler as per its nim.cfg(s)
15:29:14disruptekthe code only specifies a symbol, nothing more.
15:30:00disruptekwe should probably let the compiler import urls.
15:30:53disruptekit could just agree with a package manager on how to symbolize such a beast, probably using something like my sanitize proc.
15:31:38disruptekthen the pm could conceivably auto-install the env with no package.nimble.
15:44:56lqdev[m]https://play.nim-lang.org/#ix=24nI I'd like to get the seq's generic param here. how can I do that without having to resort to more overloads?
15:49:27shashlickdisruptek I think you need to distribute nimph as a binary
15:49:30shashlickLike choosenim
15:59:38*gour quit (Quit: Leaving)
16:00:06*gour joined #nim
16:04:44disruptekmaybe i should compile it to js and distribute that.
16:07:49disruptekshashlick: you just alerted me to a bug in nimph. it doesn't add tags using the "v" prefix, as you like to use.
16:10:02FromDiscord<funcmike> https://github.com/nim-lang/Nim/blob/728d35588c0b103ee811b4c69a023d8a9a13f556/lib/pure/collections/deques.nim#L41 why this typetraits import is here? i'm testing deques without it (copy paste) - compiles and works fine.
16:11:13FromDiscord<Clyybber> @funcmike Unneccessary relic from the past afaict
16:11:17FromDiscord<Clyybber> We should remove it
16:11:34disruptekfuncmike: see if it passes checks, first. i see some stuff that doesn't make it obvious.
16:12:02disruptekie. are you using boundChecks compile-option?
16:12:05FromDiscord<Clyybber> disruptek: I;m pretty sure it will. I checked the commti that introduced that
16:12:12disruptekah, okay.
16:12:23FromDiscord<funcmike> yes all tests passed
16:12:30FromDiscord<Clyybber> @funcmike Do you want to open a PR?
16:12:41FromDiscord<Clyybber> If you don't want to bother I'll do it myself 🙂
16:12:47disruptekyou can just edit the file via the web ui.
16:13:18FromDiscord<funcmike> 🙂 no thanks i'm learning language and i was confused about it
16:14:29FromDiscord<funcmike> 😉 or wait i can do it
16:14:36FromDiscord<Clyybber> 👍
16:15:16disruptekneed more bugs.
16:15:39FromDiscord<Clyybber> 🐛
16:16:53disruptekwhat does nimph do with submodules now?
16:17:01disruptekor, what can i test it on?
16:17:13FromDiscord<Clyybber> updating?
16:17:19FromDiscord<Clyybber> locking?
16:17:25disruptekoh, it's time to add the update command.
16:17:40FromDiscord<mratsim> yeeeaaahhh
16:17:46FromDiscord<mratsim> a package manager with update command
16:18:03disruptekhard to believe?
16:18:12FromDiscord<mratsim> much better than Python and Nimble not updating :p
16:18:24disruptekpython updates iirc.
16:18:36disruptekor does it just go to head?
16:18:51FromDiscord<mratsim> I need this script to handle Python updates: https://gist.github.com/mratsim/8135b4f6824b61955122fdf828652298
16:19:32disruptekwow.
16:19:36FromDiscord<mratsim> And there are even package managers that cannot uninstall (hint: go)
16:19:46FromDiscord<Clyybber> madness
16:19:49disrupteki can't imagine why.
16:19:56FromDiscord<Clyybber> I can
16:20:05disruptekuninstall in nimph: rm -rf some/directory/here
16:23:03FromGitter<sheerluck> Nim just gave me that depressing feeling when the compiler indulgently tells you that you cannot echo a local variable simply because you are inside a pure function and it must have no side effects :(
16:23:24disruptekgotcha!
16:24:23solitudesf-@sheerluck, debugEcho
16:24:43disruptekso how should this work? you say `update` and it upgrades everything it can?
16:24:51disruptekyou say `update npeg` and it just does npeg?
16:26:45lqdev[m]`update` should update the package list, `upgrade` should upgrade all (or chosen) packages, imo. unless nimph doesn't use the Nimble package list
16:27:08FromGitter<sheerluck> @solitudesf- Thank you!
16:27:16solitudesf-maybe it should list what it would update in case of general update, like traditional pm
16:27:19disruptekyou can run `nimph refresh` to update the nimble package list, and nimph warns you when it's old or not up-to-date.
16:27:43disrupteki guess it can list updates in `nimph` (nurse mode).
16:28:03disrupteki think upgrade is a better word, though.
16:28:25disruptekyou can always `nimph upgrade --dry-run`.
16:28:36disruptekif you want to limit the nurse output.
16:28:39solitudesf-upgrade implies that package got better :)
16:28:47*lqdev[m] uploaded an image: image.png (2KB) < https://matrix.org/_matrix/media/r0/download/matrix.org/KgFnObjsfYidXqQtCYAxnQGE >
16:28:53lqdev[m]seems like nimsuggest is stuck.
16:29:00FromDiscord<Rika> update is not appropriate for upgrading versions
16:29:25disruptekhmm, maybe you can have a --patch option to only increment patch versions, not upgrading minors.
16:30:36disruptekwe need `nimph fetch` and `nimph pull` too, i guess.
16:30:53disruptekto pull all deps.
16:31:53disruptekwe'll pass-through to git for those, so you get whatever syntax you want.
16:34:15FromDiscord<Clyybber> @Rika Why?
16:34:26FromDiscord<Clyybber> I find update to be better fitting than upgrade
16:34:42FromDiscord<Rika> hmm
16:34:46FromDiscord<Rika> maybe nowadays it is
16:34:52FromDiscord<Rika> okay yeah maybe it is now
16:35:03disruptekwell, update sounds like you jumped to the current version.
16:35:13disruptekupgrade better captures the idea that you can only upgrade within your requirements.
16:35:24FromDiscord<Rika> but it might confuse those from an older time where update meant update listing and upgrade meant upgrade version
16:35:44FromDiscord<Clyybber> hmm
16:35:59*Hideki_ joined #nim
16:36:06disruptekfetch and pull are essentially `update`.
16:36:19disruptekyou're pulling in whatever new code/tags you lack.
16:36:40disruptekso you `nimph fetch` and then `nimph upgrade`.
16:36:46disruptekboom.
16:37:35disruptekone thing i love about my new workflow is that i don't even /need/ local deps anymore; nimph can just roll the global path to whatever version i need for the project i'm in.
16:37:50disruptektruly path-agnostic.
16:40:29*Hideki_ quit (Ping timeout: 265 seconds)
16:42:29*clyybber joined #nim
16:44:11*clyybber quit (Client Quit)
16:57:16lqdev[m]is there a way of getting the type from an nnkIdentDefs without a type, but with a default param? like this one: `colorChannels = 4`
16:57:59disruptekwhat does it produce right now?
16:58:36lqdev[m]nnkIdentDefs(ident"colorChannels", nnkEmpty, nnkIntLit(4))
16:58:57disrupteki mean, with a type that isn't literal.
16:58:58lqdev[m]huh, seems like getType does the trick
16:59:19lqdev[m]ah, that's nnkIdentDefs(ident"x", ident"int", nnkEmpty)
16:59:29lqdev[m]but it seems like I can get the type using getType
16:59:43disrupteki get it.
17:00:10disrupteki was really talking about something like `colorChannels = MyRandoConstantObj`
17:00:21disruptekit should be ident(), right?
17:00:30lqdev[m]yeah
17:00:32lqdev[m]it will
17:04:53disruptekmaybe what we really want is a `all` subcommand; it runs the arguments in each dependency. so to run nimble tests on all your deps, `nimph all nimble test` and to fetch everywhere, `nimph all git fetch`.
17:05:34disruptekthen you can have arbitrary complexity to your subcommands, tasks, etc.
17:06:18disrupteknot `all`, how about `run`?
17:08:38lqdev[m]what the actual hell https://play.nim-lang.org/#ix=24pc
17:08:44lqdev[m]apparently `int ≠ int`
17:09:06FromDiscord<Clyybber> ah yes
17:09:13disruptekthat's a feature.
17:09:17FromDiscord<Clyybber> araqlogic :p
17:09:27lqdev[m]maybe getTypeInst would help
17:09:33disruptekaraqlogic is inescapable.
17:10:01shashlickAraclogique
17:10:07FromDiscord<Clyybber> lqdev[m]: For real though, one is an int and the other is an int literaly
17:10:13FromDiscord<Clyybber> discard y
17:12:07lqdev[m]@Clyybber but I'd expect that their types would be the same
17:13:14lqdev[m]or, that the type of 42 == 2
17:13:21lqdev[m]s/2/int/
17:14:16disruptekthat would probably break some code.
17:14:58lqdev[m]best thing is, their `signatureHash`es are the same!
17:15:27lqdev[m]would you look at that https://play.nim-lang.org/#ix=24pd
17:15:58lqdev[m]allright, getTypeInst seems to do the trick
17:16:04lqdev[m]but it's confusing nevertheless
17:17:32leorizelqdev[m]: int literal is a special type on it's own
17:19:18FromDiscord<snluu> @lqdev[m], Umm, I don’t see what’s wrong. The code is comparing `int` vs `42`, not `int` vs `typeof(42`
17:19:50ZevvOooooohhh DARK MODE
17:19:57Zevvyess, thank you, whoever did that
17:20:56FromDiscord<Clyybber> @yewpad was the one
17:21:03*Zevv kisses yewpad
17:21:23FromDiscord<Clyybber> unfortunately it forgets being dark on firefox
17:21:41disruptek!repo darkreader
17:21:42*Zevv slaps yewpad
17:21:43disbothttps://github.com/darkreader/darkreader -- 9darkreader: 11Dark Reader Chrome and Firefox extension 15 5073⭐ 839🍴 7& 15 more...
17:26:12lqdev[m]@snluu, no, I'm comparing `int` vs `newLit(42).getType`
17:27:40*Jjp137 joined #nim
17:28:20*jwm224 quit (Ping timeout: 252 seconds)
17:30:24*jwm224 joined #nim
17:31:26FromDiscord<yewpad> @Zevv happy to oblige 🙂
17:31:54Zevv:)
17:32:25Zevvgood work dude
17:32:31FromDiscord<yewpad> thank yo
17:32:36FromDiscord<yewpad> you*
17:32:59FromDiscord<yewpad> still have to wait for official release though 😄
17:33:05lqdev[m]can anyone verify that `nimble test` succeeds for euwren? https://github.com/liquid600pgm/euwren
17:33:37FromDiscord<yewpad> testing it
17:33:48nisstyreHow do I just get the next item in an iterator? Also if I do that in the body of a for loop, with the iterator I'm iterating over, will it just work the way you'd expect?
17:34:08nisstyrei.e. consume the next item and not loop over it again
17:34:35FromDiscord<yewpad> @lqdev[m] https://hastebin.com/lakolequtu.pl
17:35:15lqdev[m]that's so weird
17:35:24lqdev[m]try with `nim c -r tests/teuwren`
17:35:53FromDiscord<yewpad> @lqdev[m] https://hastebin.com/wericuvelo.makefile
17:36:11lqdev[m]`nimble install`
17:36:20FromDiscord<yewpad> my bad
17:36:37lqdev[m]but `test` should've installed everything, so idk how is this failing
17:36:40*gour quit (Quit: Leaving)
17:37:18FromDiscord<yewpad> @lqdev[m] https://hastebin.com/ebesoyuvoh.makefile
17:37:52*gour joined #nim
17:37:53lqdev[m]try again, nimterop has some weirdness when it comes to pulling branches other than `master`
17:38:06*gour quit (Client Quit)
17:38:21FromDiscord<yewpad> @lqdev[m]
17:38:22FromDiscord<yewpad> https://hastebin.com/aguhenaqaw.makefile
17:38:25*gour joined #nim
17:38:38lqdev[m]ok, this is getting weird.
17:38:49lqdev[m]I might have to purge my Nim env
17:38:59lqdev[m]or something
17:39:23lqdev[m]for some reason, one that I clearly don't understand, when I compile the test myself, my macro's parameter gets interpreted as `typed` for no reason, even though it's `untyped`
17:40:57FromDiscord<mratsim> Somone is using a macro in a static or generic proc or a proc with a typedesc parameter. Just saying 😉
17:42:02lqdev[m]believe me, not at all :P
17:44:12FromDiscord<Clyybber> @yewpad Why do you have to wait? Theres nightly docs :))
17:47:28lqdev[m]seems like some of my recent changes must've broken something, it works for me on master
17:47:40lqdev[m]so happy to have git in these cases
17:48:00FromDiscord<mratsim> so happy to have continuous integration 😉
17:48:32FromDiscord<mratsim> People are adding my packages on nimble even though they cannot be installed at the moment :/ https://github.com/nim-lang/packages/pull/1162
17:48:33disbotAdd package laser
17:51:14FromDiscord<Clyybber> lol
17:52:07FromGitter<zacharycarter> getting a lot of errors with nim v1.0.4 and nimble
17:52:16FromGitter<zacharycarter> can't install packages
17:52:41disruptekgot a paste?
17:53:12FromGitter<zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5df521880616d6515e3b7a76]
17:53:59disruptekdoes `nimble dump` show more?
17:54:23disruptekit should fail with something more useful, i think. i'm guessing you may have $NIMBLE_DIR set?
17:54:54FromGitter<zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5df521eece2b2e652bd6aba9]
17:56:14disruptekit's like nimscript is broken somehow.
17:56:41FromGitter<zacharycarter> hrm
17:56:46FromGitter<zacharycarter> I'll try re-installing Nim
17:56:57shashlickWhat version of nimble do you have
17:57:48FromGitter<zacharycarter> `nimble v0.11.0 compiled at 2019-11-27 09:25:50`
17:57:53FromGitter<zacharycarter> I just updated Nim though with choosenim
17:58:03FromGitter<zacharycarter> maybe I need to re-build Nimble?
18:02:21shashlickJust delete /tmp/nimblecache to get unblocked
18:02:38shashlickBut will help to know the nimble commit hash if it is available
18:02:44FromGitter<zacharycarter> I ran koch tools and that fixed it
18:03:12disruptekyou were upgrading from 1.0.2 to 1.0.4?
18:03:30disruptekjust wondering if you'll be the only person with this problem.
18:03:32FromGitter<zacharycarter> no 0.20.0 I think on this machine
18:03:37FromGitter<zacharycarter> windows
18:03:50FromGitter<zacharycarter> also had a problem with choosenim when I tried to update - choosenim segfaulted
18:04:03FromGitter<zacharycarter> but then when I ran update stable again, it was already saying I had 1.0.4 installed
18:04:20disrupteksounds like it crashed midway through the update.
18:04:46FromGitter<zacharycarter> yeah - it crashed after printing out that it was attempting to unarchive
18:07:47*fanta1 joined #nim
18:09:06*clyybber joined #nim
18:11:54FromGitter<zacharycarter> map renderer is working with osx and windows, AND I figured out what I should do about my texturing problem related to PBR materials, after talking to a graphics programmer from Ubisoft \o/
18:12:37disruptekif anyone knows, it's them.
18:12:50FromGitter<zacharycarter> hopefully will have forward / deferred / clustered renderer implementations and PBR materials in before Christmas is over
18:13:02disruptekneat.
18:13:16FromGitter<zacharycarter> well - he said I was over-complicating things and that I should just expand on what I was already doing
18:13:27disruptekthat would be a pretty cool demo for nim.
18:13:29FromGitter<zacharycarter> which was the best answer possible because it means I don't have to do any extra work really - just more of the same
18:13:47FromGitter<zacharycarter> thought I was going to need to implement texture atlases and virtual texturing, etc...
18:14:37FromGitter<zacharycarter> goal is by the end of Feb to have units running around on the terrain
18:14:53FromGitter<zacharycarter> but we'll see - I've implemented skeletal animation with OpenGL and Nim before, but never with BGFX
18:15:08FromGitter<zacharycarter> there are examples of it out there in the wild though, so it should be fairly straightforward
18:15:16*sagax quit (Quit: Konversation terminated!)
18:15:42disruptekwhat kinda units?
18:16:38FromGitter<zacharycarter> unless I can make my own somehow or find someone to make some for me without spending a lot
18:17:10FromGitter<zacharycarter> I will probably use some assets from this guy
18:17:42FromGitter<zacharycarter> company / whatever - https://assetstore.unity.com/packages/3d/characters/humanoids/toon-rts-units-67948
18:17:45FromGitter<zacharycarter> of course then I can't open source it
18:17:49FromGitter<zacharycarter> the assets anyway
18:18:08disruptekyeah, but it's just temporary, right?
18:18:41FromGitter<zacharycarter> yeah
18:18:56FromGitter<zacharycarter> they're the style I want to aim for though - low poly stylized assets
18:19:03FromGitter<zacharycarter> I think that style of art ages the best
18:19:26disruptekit does feel timeless.
18:20:03FromDiscord<yewpad> @Clyybber Not a fan of nightly. I rather use official releases.
18:20:14FromGitter<zacharycarter> ugh 5 hours left on this flight :/
18:20:18FromGitter<zacharycarter> guess I'll get some coding done
18:22:31disrupteki shoulda been a games programmer.
18:22:50disrupteki know it's a huge pita but it seems like the right kind of pita.
18:23:02FromGitter<Willyboar> never say never
18:23:11FromGitter<zacharycarter> well - it's just like any other programming to be honest
18:23:24disruptekyou get to cut corners.
18:23:36FromGitter<zacharycarter> well yeah - this is true
18:24:03FromGitter<zacharycarter> but I think that's true in all software dev disciplines
18:24:09FromGitter<zacharycarter> like enterprise software developers get to cut corners too
18:24:32FromGitter<zacharycarter> they don't have to worry about optimization as much - because they can just throw more hardware at their problem
18:25:01disruptekah, but some optimization is worth many multiples of coder salary.
18:25:19FromGitter<Willyboar> disruptek how old are you
18:25:23FromGitter<Willyboar> ?
18:25:29disruptek43
18:25:52FromGitter<Willyboar> we are close
18:25:57FromGitter<zacharycarter> true - but a lot of companies will just pay the coders salary and have them write code for new features / products than optimize anything
18:26:17FromGitter<zacharycarter> reverse those numbers and you have my age
18:26:44*FromDiscord <yewpad> Ok Google...
18:27:09FromGitter<Willyboar> i am 37
18:27:36FromGitter<Willyboar> you are not old to start game development
18:27:42FromGitter<zacharycarter> Willyboar: are you in the states?
18:27:51FromGitter<Willyboar> nope i am in greece
18:27:56FromGitter<zacharycarter> oh cool!
18:28:16FromGitter<zacharycarter> yeah - if you're going to start game development though, IMHO, learn C++
18:28:25FromGitter<zacharycarter> if you don't already know it
18:28:46FromGitter<Willyboar> no no i speak for disruptek
18:29:02FromGitter<zacharycarter> because most of the industry codes in C++
18:29:14FromGitter<zacharycarter> especially if you want to work on AAA games
18:29:31disruptekhere's the thing...
18:29:36disruptekc++ makes my balls throb.
18:29:37FromGitter<Willyboar> I am more to web development & design
18:29:54FromGitter<zacharycarter> yeah - well, expect to have some achy balls then if you want to do game dev
18:29:58FromGitter<zacharycarter> also expect to take a pay cut
18:30:15FromGitter<zacharycarter> and work long hours if you're not living in Finland or some other country with really protective labor laws
18:30:16disruptekwell, that'd be tough.
18:30:20*clyybber quit (Quit: WeeChat 2.7)
18:30:21disrupteki'm unemployed.
18:30:31FromGitter<zacharycarter> my dream
18:30:39disruptekit's pretty awesome, alright.
18:30:58FromGitter<Willyboar> i have a year paid off now
18:31:01FromGitter<Willyboar> :)
18:31:04disrupteki mean, except for not having a paycheck.
18:31:09FromGitter<zacharycarter> I wish I could survive with no job - it'd be the most awesome thing ever.
18:31:43FromGitter<zacharycarter> need to find me a sugar momma
18:31:55FromGitter<zacharycarter> or a suggar daddy I guess - I'd go gay if I never had to work again in my life probably.
18:32:00FromGitter<Willyboar> are you married?
18:32:13FromGitter<zacharycarter> I just wouldn't put out
18:32:22FromGitter<zacharycarter> no - I just have a dog
18:32:28FromGitter<Willyboar> :)
18:32:29FromGitter<zacharycarter> he's enough of of a pain in the ass
18:32:43FromGitter<Willyboar> dogs is like childs
18:32:51FromGitter<zacharycarter> yeah - one that never grows up
18:33:01*uvegbot quit (Quit: Konversation terminated!)
18:33:07FromGitter<Willyboar> they need a lot of effort
18:33:26FromGitter<Willyboar> i don't have dog but i have 4 daughters
18:33:30FromGitter<Willyboar> :)
18:33:36disruptekwow.
18:33:45*uvegbot joined #nim
18:34:31FromGitter<zacharycarter> how many shotguns do you own?
18:34:37FromGitter<zacharycarter> you're going to need more probably
18:35:41FromGitter<Willyboar> I have a shotgun, a shovel and a good alibi
18:35:50FromGitter<zacharycarter> :D
18:36:21FromGitter<Willyboar> https://www.spreadshirt.com/shop/design/i+have+a+beautiful+daughter+i+also+have+gun+a+show+mens+premium+t-shirt-D5b0d0b895d52cd693e2955a9
18:36:55FromGitter<zacharycarter> haha
18:37:16*zyklon joined #nim
18:37:27*Hideki_ joined #nim
18:38:25*uvegbot quit (Ping timeout: 265 seconds)
18:40:21madpropshttps://i.redd.it/fuq0sqse3i441.jpg
18:40:37*fanta1 quit (Quit: fanta1)
18:41:20FromGitter<Willyboar> Xmas concerns
18:41:57*Hideki_ quit (Ping timeout: 250 seconds)
18:56:25FromGitter<Willyboar> by the way madprops lq looks like working in macosx
18:56:46FromGitter<Willyboar> you can update your README :)
18:59:00lqdev[m]I'm getting this strange error: http://ix.io/24qc
18:59:06lqdev[m](compiler crash)
18:59:12FromGitter<bung87> import a c struct needs port entire definition while I only needs one property ?
18:59:56*smitop joined #nim
19:02:21lqdev[m]here's after rerunning with `koch temp c` http://ix.io/24qd
19:03:56lqdev[m]the internal error seems to happen here https://github.com/nim-lang/Nim/blob/version-1-0/compiler/ccgexprs.nim#L952
19:08:03madpropsWillyboar, really? that's cool
19:08:19madpropsi'd have to test it fully to be sure
19:08:22FromGitter<Willyboar> yep like a charm
19:08:33FromGitter<Willyboar> i test most of the flags
19:22:27FromGitter<Milerius> Hello
19:23:09FromGitter<Milerius> I tried to convert using c2nim ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5df5369d7ce7ea1e35843487]
19:23:24FromGitter<Milerius> I got an error of compile
19:24:30FromGitter<Milerius> `fastpow.nim(2, 49) Error: type mismatch: got <array[0..0, cdouble]> but expected 'tuple[d: cdouble, x: array[0..1, cint]]'` ⏎ ⏎ I think there is an error during the conversion
19:30:53FromDiscord<snluu> Hello! Is there a built in way to format numbers to strings with the thousand separator? (e.g. 1234 -> “1,234”)
19:31:58FromDiscord<snluu> I’m looking through the strformat module and doesn’t seem like that’s the right place
19:32:38FromGitter<Varriount> snluu: Are you building a one-off tool, or a library?
19:33:14lqdev[m]fuck. so apparently you have to use `nnkDeref` if you want to do things with pointers and not `nnkBracketExpr`. would be convenient if `dumpTree` didn't show `x[] = 1` as `nnkAsgn(nnkBracketExpr(ident"x"), ...)`
19:33:25FromDiscord<snluu> @Varriount: umm, i’m building a service for home use. why would that make a difference?
19:33:51lqdev[m]but I guess it makes sense in some way or another. I don't even know anymore.
19:33:52FromGitter<Varriount> Depending on circumstances, you might want to look into localization libraries, since a comma isn't always a separator for numbers
19:34:14FromDiscord<snluu> tru
19:34:57lqdev[m]@snluu I agree with @Varriount, eg. Polish uses `,` as the decimal separator and `.` as the the thousand separator
19:35:21FromDiscord<snluu> Correct. Not looking for thousand separator specifically, looking for localization
19:36:03FromDiscord<snluu> basically the equivalent of `setlocale` and `printf(“%’d”)` in POSIX
19:38:03FromDiscord<treeform> zacharycarter, "I wish I could survive with no job - it'd be the most awesome thing ever." Invest 50% of your income for 18years. Then live off your investments.
19:39:03FromGitter<Varriount> snluu: Hm, wrapping and using setlocale and printf might be the way then
19:39:44FromDiscord<snluu> Yeah that’s probably what I will do for now 🙂
19:39:58FromDiscord<snluu> Just wondering if it comes “batteries included” with nim
19:40:20FromDiscord<snluu> would prefer the batteries included, since the POSIX way aint quite crossplatform/functional on windows
19:40:27FromDiscord<treeform> I don't feel like “batteries included” in nim yet. But we are working on it.
19:40:47FromGitter<Varriount> snluu: Localization had been pretty much ignored in the standard library
19:41:29FromDiscord<snluu> maybe i’ll look into a good cross platform solution and publish my first nimble package 😄
19:42:04FromGitter<Varriount> snluu: https://github.com/nim-lang/Nim/blob/3383985c44d6f9b1cd12160295134345e9c21830/lib/posix/posix.nim#L233
19:42:31FromDiscord<snluu> Nice!
19:43:19FromDiscord<snluu> Thanks! That solves my immediate problem for now. I’ll do more research on a good cross-platform solution
19:44:02FromGitter<Varriount> snluu: I'm sure printf is correctly wrapped somewhere in the nim repository too. You can do run a search for it.
19:44:29FromGitter<Varriount> It might not be exported, but in that case you just copy the wrapper definition
19:56:38Zevvyewpad: the search box background color is still bright pink in dark mode
20:03:50FromGitter<sheerluck> @disruptek i'm unemployed too. What if Nim is actually language for unemployed people?
20:04:20*zyklon quit (Ping timeout: 268 seconds)
20:08:06*zyklon joined #nim
20:19:43disrupteknim for vagabonds, drifters, and vagrants.
20:20:08*sagax joined #nim
20:20:28disruptekdo we want any other nimph aliases besides `nimph fetch`, `nimph pull`? you can now `nimph run -- any --random --command`.
20:25:50lqdev[m]so apparently `nnkBracketExpr` *sometimes* works for pointer dereferencing, and sometimes doesn't. how convenient. unfortunately, I'm unable to create a minimal, reproducible example
20:27:19*nsf quit (Quit: WeeChat 2.6)
20:30:36FromDiscord<exelotl> I've been told that in the stock market you can lose more money than you put in
20:32:20FromDiscord<mratsim> stock market no, but in the options and futures market (stock derivatives) yes
20:32:55FromDiscord<mratsim> OMG, setting Travis and appveyor to cover Linux, Windows, Mac, x86-x64 and ARM64 is such a pain :/
20:33:22FromDiscord<mratsim> sorry not appveyor, Azure
20:42:44disruptekRika: i figured it out. i'll give you a `nimph outdated` which is just like `npm outdated`; it merely reports outdated packages. `nimph upgrade` will upgrade them.
20:42:58disruptek`outdated` is an alias for `upgrade --dry-run`.
20:49:36*solitudesf-- joined #nim
20:53:02*solitudesf- quit (Ping timeout: 276 seconds)
20:59:05lqdev[m]I'll repeat my previous question: is it possible to get the generic param of a typedesc, eg. I have `seq[int]` and I'd like to get the `int` somehow
21:03:46*Trustable quit (Remote host closed the connection)
21:03:54*narimiran quit (Ping timeout: 265 seconds)
21:27:28*krux02 joined #nim
21:49:08FromDiscord<Clyybber> disruptek: One thing that really puts me off about wayfire is that it for some fucking reason requires logind/elogind
21:49:20disruptekthat's a hard pass.
21:50:07disruptekhow is that even possible?
21:50:14FromDiscord<Clyybber> apparently thats not wayfires fault
21:50:23FromDiscord<Clyybber> its a requirement of wlroots XD
21:50:26FromDiscord<Clyybber> wth
21:50:55disruptekwell, not a requirement of sway.
21:51:06FromDiscord<Clyybber> hmmm
21:51:12FromDiscord<Clyybber> but sway uses wlroots?
21:51:16*leorize quit (Remote host closed the connection)
21:51:23disruptekwait, you don't run the elogind?
21:51:51FromDiscord<Clyybber> no?
21:51:53disrupteki'm thinking of the gpm thingy.
21:52:06FromDiscord<Clyybber> im thinking of the gentoo fork
21:52:20FromDiscord<Clyybber> of systemd's logind part
21:53:02*leorize joined #nim
21:53:14lqdev[m]I think I just found a way: https://play.nim-lang.org/#ix=24rb
21:53:28disrupteki won't run systemd.
21:53:54disruptekit's not gpm, i forget what the old seat-manager was called.
21:54:22FromDiscord<Clyybber> disruptek: Apparently logind is loved by ppl who don't like systemd
21:54:29disrupteklol
21:54:39FromDiscord<Clyybber> But I don't know what it is for tbh
21:55:13disrupteksessions.
21:55:39disruptekbut it's not graphical, which is key.
21:56:14FromDiscord<Clyybber> hmm, I never really got into sessions
21:57:05FromDiscord<Clyybber> cant I switch sessions already?
21:57:12FromDiscord<Clyybber> I mean switch the tty
21:57:18disruptekof course.
21:57:29FromDiscord<Clyybber> I don't really get why I need some session/seat-manager
21:57:55disruptekthe idea is that the user can't crash the machine even if they have perms to the video-card.
21:59:19FromDiscord<Clyybber> ah
21:59:41FromDiscord<Clyybber> apparently you don't need a session manager, but you have to do `sudo chmod +s /bin/wayfire`
21:59:53disruptekhave fun with that.
22:00:27FromDiscord<Clyybber> is it not a good idea ?
22:00:48FromDiscord<Clyybber> is it a bad idea ?
22:01:04disruptekdo you trust the wayfire process and any sub-processes to run as root on your machine?
22:01:30FromDiscord<Clyybber> ah, thats what it does
22:01:33FromDiscord<Clyybber> great!
22:01:47FromDiscord<Clyybber> imma try if sway runs
22:01:54FromDiscord<Clyybber> without that bs
22:02:24disrupteki don't run sway suid, but i do use elogind.
22:04:34FromDiscord<Clyybber> @itmuckel dont be shy :))
22:08:20leorizedisruptek: ah, a fellow non-systemd user :)
22:08:37disruptekit's stupid.
22:08:54leorizeI don't use it because I'm running a musl-based system though, I miss systemd's log and user services
22:09:03FromDiscord<Clyybber> I dont
22:09:19FromDiscord<Clyybber> leorize: Are you running runit?
22:09:25leorizeopenrc
22:09:37leorizerunit is a terrible init
22:09:42FromDiscord<Clyybber> why?
22:09:44FromDiscord<Clyybber> I like it
22:09:45leorizea decent service manager though
22:09:54leorizeit's never designed for oneshot services
22:10:15leorizewhich happens to be used when you're initializing the machine
22:10:26FromDiscord<itmuckel> @Clyybber Nah, I answered the question myself. I wanted to ask why I can write `0..<container.len`, but `(container.len-1)..0` doesn't count down. And when I thought "count down", I remembered that there is `countdown()` and `countup()`. 😄
22:10:33FromDiscord<itmuckel> So I stopped typing
22:10:56FromDiscord<Clyybber> @itmuckel Ah ok, I was just joking anyways 😄
22:11:10FromDiscord<itmuckel> 👽
22:11:22leorizebut nothing can replace systemd's logging :(
22:11:29leorizeviewing a service log was sooo simple
22:11:43solitudesf--oneshot service sounds like an oxymyron. no wonder runit doesnt implement it.
22:12:22FromDiscord<Clyybber> leorize: I don't really approve of binary logs tbh
22:12:37leorizeI'm not talking about the binary-ness
22:12:51leorizebut the fact that you can plug any executable in and systemd will log it's stdout for you
22:13:02leorizereally handy and no one replicated this feature
22:13:04blackbeard420runit can do that as well
22:13:23FromDiscord<Clyybber> runit can also do init scripts
22:13:46disruptekoops, nimph just upgraded my compiler. 🤣
22:13:55leorizedo they have easy to use interface? with systemd I can do `systemctl status service` and quickly work out what part of the configuration I got wrong :P
22:13:58disrupteklets, uh, not do that.
22:13:59FromDiscord<Clyybber> wait until it upgrades your os
22:14:03leorizeI'm using openrc and I miss that :(
22:14:27FromDiscord<Clyybber> leorize: sv status service `:)`
22:14:45leorizeit shows you a snippet of the log as well?
22:14:48FromDiscord<Clyybber> I gotta put the smileys in brackets so I don't get a fucking emoji `:/`
22:14:55FromDiscord<Clyybber> leorize: Lemme see
22:14:58FromDiscord<Clyybber> I don't think so
22:15:03leorize:( that's what I miss
22:15:09FromDiscord<Clyybber> I mean runit doesn't handle logs
22:15:35leorizea good interface changes a lot
22:15:41leorizerunit is just a part of the puzzle
22:15:51leorizeit's not "the solution"
22:16:06leorizeso a good system would collect these parts and give nice interface to them
22:16:16disruptekyes.
22:16:21disrupteksystemd is that not.
22:16:26blackbeard420which is socklog
22:16:45leorizewell it does that well enough for me
22:16:54leorizeignoring the fact that systemd code is not the most decent
22:17:17disruptekit's just too revolutionary.
22:17:28disrupteki don't want to be locked-in like that.
22:17:36FromDiscord<Clyybber> leorize: you can just create a alias/function that runs `sv status service` and `socklog ...`
22:18:04FromDiscord<Clyybber> revolutionary in a bad way, in a "gleichschaltung" way
22:18:36leorizeI guess a good glue for all of that would be a nice project to work on
22:20:07leorize@Clyybber: do they have easy to use user services nowadays?
22:20:21leorizeI could try runit if it does
22:22:42blackbeard420yeah its trivial to spin up a user runsvdir with runit
22:23:05solitudesf--yeah, but `sv` doesn't work that well with user runsvdir
22:23:39leorizenice, can it spins that up only when I log in? that'd be a huge plus
22:23:59leorizethe last time I tried to set up something like that it requires me to write a pam extension
22:25:08solitudesf--thats like 2 lines in `.profile`?
22:25:45blackbeard420you can make sv work with user runsvdir by simply overriding SVDIR envvar
22:25:53leorizedoesn't bringing up those instances require root?
22:26:01leorizeor gentoo has been lying to me
22:26:37solitudesf--its user services, why would they require root
22:28:45leorizeright, installing runit :P
22:35:47*gour quit (Quit: Leaving)
22:36:47FromDiscord<Clyybber> nice
22:38:36leorizelooks like I can't do to the level of login->start logout->stop regardless of shells
22:38:58leorizebut that doesn't matter for now, hopefully
22:39:04*Hideki_ joined #nim
22:40:39disruptekhmm, we should have a downgrade command, too.
22:43:57*Hideki_ quit (Ping timeout: 265 seconds)
22:49:41leorizedisruptek: since you're doing some heavy devs, do you have any feature request for nim.nvim?
22:50:17disruptekmy issue is that nimph is very broken in nvim, but it's probably due to ffi symbols.
22:50:39disrupteki wouldn't put much stock in it.
22:50:52leorizewell I'm limited to whatever nimsuggest could produce
22:51:13leorizeI'd suggest using a "buffer-local" completor as well for the things nimsuggest couldn't handle
22:51:40disrupteki know. it's not pretty. Zevv would probably suffer an aneurysm if he saw my screen.
22:52:15disrupteki mean, it finds all kinds of stuff wrong.
22:52:30disruptek"template instantiation too nested"
22:52:33disrupteki love that one.
22:52:56leorizelol
22:53:15leorizeif you're using nimterop then it wouldn't work really well with nimsuggest
22:53:25disruptekright.
22:53:48leorizeif you lift the "exec" ban on nimsuggest it'll work again, though I can't recommend that
22:54:13disruptekprobably wouldn't do that, no.
22:55:18FromDiscord<Clyybber> disruptek: What are you using nimterop for btw? libgit?
22:55:23disruptekyeah.
22:55:50FromDiscord<Clyybber> Do I still need nimterop when I install nimph?
22:55:58leorizeisn't libgit kinda buggy?
22:56:05disruptekno, it's pretty good.
22:57:07disruptekif you use the bootstrap script, it installs nimterop locally. else, you can install it some other way.... but, yes, you need nimterop.
22:57:29*solitudesf-- quit (Ping timeout: 265 seconds)
22:57:37disrupteki could never do this stuff without shashlick's work.
22:58:29*lritter quit (Ping timeout: 250 seconds)
23:01:20FromDiscord<Clyybber> disruptek: You can make nimterop generate a wrapper file
23:01:29FromDiscord<Clyybber> And then the users won't have to install nimterop
23:01:43disruptekhow?
23:01:54FromDiscord<Clyybber> ask shashlick `:p`
23:02:24leorizedisruptek: you should probably update libgit
23:02:54disrupteki'm using master.
23:03:00leorizesecurity patches just arrived on stable
23:03:14disrupteki need some stuff in HEAD, so...
23:03:26FromDiscord<Clyybber> disruptek: git pull --from-future
23:03:41disrupteki actually need some stuff that hasn't landed yet.
23:03:53disruptekif i could pull from future, i would.
23:04:08disruptek!search shallow clones support
23:04:09disbothttps://github.com/disruptek/nimph/issues/9 -- 3support for shallow clones
23:04:09FromDiscord<Clyybber> its how I develop
23:04:12FromDiscord<Clyybber> I git init
23:04:21FromDiscord<Clyybber> and immediately do git pull --from-future
23:04:23FromDiscord<Clyybber> saves a lot of work
23:04:30disrupteki gotta try that.
23:04:55FromDiscord<Clyybber> you probably need a newer nim version tho
23:05:10*lritter joined #nim
23:05:24FromDiscord<Clyybber> the ones from the present don't have that option yet
23:05:25disrupteki need nim from the future.
23:06:47FromDiscord<Clyybber> oh,
23:06:57FromDiscord<Clyybber> I meant to say "you need a newer git version"
23:07:14FromDiscord<Clyybber> sorry if that caused confusions
23:07:33FromDiscord<Clyybber> I don't want to be responsible for "instructions unclear: dick stuck in future"
23:08:01disrupteki think if no upgrade is available, outdated yields no output.
23:08:16disruptek'cept in debug mode.
23:08:36FromDiscord<Clyybber> you gotta add a `--from-future`
23:08:38FromDiscord<Clyybber> option
23:08:42disruptekyou get notices for masked updates that are available:
23:08:45disruptekthe latest swayipc release of 3.1.4 is masked
23:08:55disruptekwould upgrade irc to #dd6db2e18be4e0582207a6351a111dfe2082f2c9
23:09:04disrupteki guess that should be a tag instead of a commit.
23:09:38FromDiscord<Clyybber> how much of nimphs code is logic as opposed to wrapping currently?
23:10:26disruptekit's about 6500 lines nimph-specific, of which about 1300-1400 is nimph-git-specific, though i will eventually move that it its own module.
23:10:57disruptekand ~26k lines of github-specific from my github package.
23:11:16leorizedisruptek: nimph manages using gitsubmodules, right?
23:11:21disrupteknah.
23:11:31disruptekwell, actually, i dunno what it does with submodules.
23:11:47FromDiscord<Clyybber> there is a simple advantage to using submodules
23:11:55leorizewill nimph work with mercurial-based packages?
23:12:00disrupteknope.
23:12:02FromDiscord<Clyybber> users don't have to install a package manager
23:12:38disruptekthe problem is, there's no ecosystem around submodules. we have to build it.
23:12:47disruptekit won't be hard to add to nimph.
23:13:12disruptekupgrade (and maybe downgrade) commands today, who knows what tomorrow.
23:23:35*krux02 quit (Remote host closed the connection)
23:23:45blackbeard420if i have an Ident passed to a macro, how would i iterate over all the members of the type of that Ident
23:24:37leorizean ident is just an ident...
23:27:04leorizewhat exactly are you trying to do?
23:28:23blackbeard420pass an object to a macro, iterate over all member variables and generate a stmtlist
23:28:44leorizegetTypeImpl
23:31:26FromDiscord<Clyybber> nim really needs vla's
23:31:44FromDiscord<Clyybber> seems easy to implement.. but tricky to integrate
23:31:55leorizevlas are evil
23:32:06FromDiscord<Clyybber> why?
23:33:35leorizeit tricks developers into thinking that they can just create "variable-sized" array on stack because "it's faster"
23:33:59leorizethen they never realized that they overflowed the stack because there's no error checking for VLAs
23:34:25leorizemany security vulns were made this way (staring at systemd)
23:34:37FromDiscord<Clyybber> hmm
23:35:22FromDiscord<Clyybber> shouldn't be too hard to add checks to prevent that
23:35:52leorizethere aren't any portable way to check for stack size
23:36:19leorizewe kinda know that it's likely 8MB until it isn't
23:36:33FromDiscord<Clyybber> then arrays are unsafe too
23:36:43FromDiscord<Clyybber> if we can never determine the stack size
23:36:54FromDiscord<Clyybber> but thats not the case
23:39:18leorizeyou can, it's just not portable
23:39:37leorizeonly a handful of *nix support getrlimit()
23:39:46FromDiscord<Clyybber> hmm
23:39:53FromDiscord<Clyybber> but I don't see how vla
23:39:59leorizeand for windows we walkaround the prob by setting it via the linker
23:40:09FromDiscord<Clyybber> 's are special in that they are unsafe but arrays are not?
23:40:37FromDiscord<Clyybber> We can just limit their size in nim
23:40:48FromDiscord<Clyybber> via range types or a smaller index type
23:41:11leorizecan you calculate the size of every other locals?
23:41:53FromDiscord<Clyybber> why not?
23:42:40leorizeguess we got a starting point then
23:43:39leorizeso if you want VLAs to be safe you need to take these into account: the current stack size, and how much of it has been used
23:44:58leorizeand stack sizes can differ between threads, in fact musl libc broke mesa because they use 4kb stack per thread rather than 8mb stack as usual
23:45:03FromDiscord<Clyybber> Hmm
23:45:12leorizefor Nim we do set thread's stack size though, so maybe we can deal with that
23:46:51leorizebut afaik there is no way to get the "free" stack size
23:47:12FromDiscord<Clyybber> I mean we could just limit the max size
23:47:32leorizethen how are you gonna make them safe when you have multiple VLAs?
23:47:43FromDiscord<Clyybber> take the max of every vla?
23:47:47FromDiscord<Clyybber> and add it
23:48:03FromDiscord<Clyybber> then we gotta tell gcc somehow
23:48:13FromDiscord<Clyybber> because currently nim doesn't do the checking itself
23:48:15FromDiscord<Clyybber> afaict
23:48:41leorizehow can you tell gcc when the values are not there?
23:48:50FromDiscord<Clyybber> assume we have the max
23:49:30FromDiscord<Clyybber> then we tell gcc the max
23:52:02FromDiscord<Clyybber> leorize: But maybe I'm missing something
23:52:11FromDiscord<Clyybber> why wouldn't it just crash
23:52:17FromDiscord<Clyybber> when the vla is too big?
23:52:27leorizethere's also the matter of "returning" them
23:53:03FromDiscord<Clyybber> We can return arrays already
23:53:43leorizestack overflow is harder to detect
23:53:54leorizebecause everything is on it
23:54:05FromDiscord<Clyybber> but it would just result in a segfault no?
23:54:15leorizemodern systems have a protecting canary that the program can check
23:54:32leorizebut if you can predict it, you can craft malicious payload
23:54:48FromDiscord<Clyybber> leorize: Then our arrays are unsafe too
23:55:15FromDiscord<Clyybber> because you can easily write `var a: array[int.high div 10, int]` and cause a stack overflow
23:55:29FromDiscord<Clyybber> and we don't prevent it
23:55:35FromDiscord<Clyybber> neither gcc nor nim does
23:55:44leorize!eval var a: array[int.high div 10, int]
23:55:46NimBotCompile failed: Error: execution of an external program failed: 'gcc -o /usercode/in /usercode/nimcache/stdlib_system.nim.c.o /usercode/nimcache/@min.nim.c.o -ldl'
23:56:04leorizeI don't think so
23:56:56FromDiscord<Clyybber> leorize: https://play.nim-lang.org/#ix=24rN
23:58:05leorizebut in reality you don't make arrays that big
23:58:29FromDiscord<Clyybber> but you do it for vlas?
23:58:37leorizestatic numbers are much easier to crunch
23:59:04leorizelike you could see `1000000` sized array and know something is up
23:59:13leorizebut vlas are much stealthier
23:59:20leorizesure it works now
23:59:32leorizebut then you change some code and now the size check is not there