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:58 | FromGitter | <Varriount> nimph? |
01:13:17 | FromDiscord | <mratsim> Your new package overlord |
01:14:34 | FromDiscord | <mratsim> Ha, I got my Finite State Machine generator up and running: https://github.com/mratsim/Synthesis |
01:14:34 | FromDiscord | <mratsim> |
01:14:34 | FromDiscord | <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:03 | disruptek | probably? |
02:16:41 | disruptek | it's a new-fangled probabilistic fsm. |
02:18:30 | disruptek | !repo nimph |
02:18:30 | disbot | https://github.com/disruptek/nimph -- 9nimph: 11a nim package hierarchy manager from the future 🧚 15 18⭐ 0🍴 7& 1 more... |
02:18:51 | disruptek | it'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:29 | madprops | disruptek, trying to compile nimph with nim compile -d:release src/nimph.nim - but it fails |
04:29:12 | madprops | `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:13 | salewski | @admins, the spam links have arrived again: https://forum.nim-lang.org/t/5676 |
08:45:17 | salewski | Bye. |
08:45:21 | * | salewski quit (Client Quit) |
08:50:47 | * | salewski joined #nim |
08:51:20 | salewski | And for the other one also: https://forum.nim-lang.org/t/5675 |
08:52:19 | * | salewski quit (Client Quit) |
08:52:42 | Araq | good 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:26 | FromDiscord | <mratsim> @disruptek, a "new-fangled probabilistic fsm", what is that? |
11:32:27 | * | ng0 joined #nim |
11:32:32 | FromDiscord | <mratsim> can we lock just the message to prevent that, because there were some nice answers inside |
11:46:10 | dom96 | loving these sophisticated spammers |
11:47:13 | dom96 | I 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:50 | FromDiscord | <mratsim> I've opened some suggestions on the github |
11:58:50 | * | Hideki_ quit (Ping timeout: 246 seconds) |
12:00:16 | narimiran | dom96: lowering alowed editing time is still out of question? :/ |
12:00:52 | dom96 | nothing is out of the question |
12:00:52 | narimiran | my opinion is still the same: 1 week is waaaay too long. it should be 1 hour max |
12:01:26 | narimiran | and if you legitimately want to edit your post, it will be better to make a new comment instead |
12:01:57 | narimiran | (otherwise people will probably skim the edited content because they think they've already read it) |
12:02:51 | narimiran | if 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:05 | Araq | exactly |
12:03:37 | dom96 | a majority of people search for answers |
12:03:57 | dom96 | in 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:56 | narimiran | "a majority of people search for answers" [citation needed] |
12:12:09 | dom96 | Okay, 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:28 | dom96 | I 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:10 | FromDiscord | <mratsim> I don't agree @narimiran |
12:25:30 | FromDiscord | <mratsim> often you see typos at the end of the day when you recheck your replies |
12:25:59 | FromDiscord | <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:28 | FromDiscord | <mratsim> and you append the change at the end |
12:27:02 | FromDiscord | <mratsim> but, a long edit time can be restricted to people with some actual post history |
12:27:22 | FromDiscord | <mratsim> anyway, I've opened this issue that can serve as a RFC: https://github.com/nim-lang/nimforum/issues/222 |
12:27:22 | disbot | ➥ [Feature request] More tools to fight spams |
12:29:03 | narimiran | i 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:53 | FromGitter | <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:46 | FromGitter | <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:30 | FromDiscord | <mratsim> 🙂 |
14:34:11 | FromDiscord | <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:19 | madprops | hmm im trying to speed up my tree implementation to `tree` speeds. tree displays /var in 0.1s mine does it in 1s |
14:36:49 | madprops | im thinking of using the recursive walkdir to get all paths at once instead of doing it by steps |
14:37:29 | madprops | but haven't got around to figuring out how |
14:39:06 | * | dddddd joined #nim |
14:39:28 | FromDiscord | <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:00 | disruptek | madprops: what was the failure? |
14:46:45 | disruptek | ...when building nimph. |
14:47:48 | madprops | disruptek, http://i.imgur.com/NnLAqNh.png |
14:48:06 | madprops | mratsim i did check by removing all printing, it barely changed the time |
14:49:22 | disruptek | madprops: just clone the repo and run the bootstrap. |
14:49:56 | disruptek | too many open issues in other projects to mess around with trying to do it from inside nimble. |
14:50:24 | disruptek | nimph is from a future where nimble and nimterop have no bugs. 😄 |
14:53:36 | * | sealmove quit (Quit: WeeChat 2.6) |
14:53:41 | madprops | oh i totally missed the installation section |
14:55:26 | FromGitter | <mratsim> A code with no bugs is either a Hello World or a code that no one uses ;) |
14:55:32 | FromGitter | <mratsim> or it's written in Coq |
14:55:52 | disruptek | you 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:11 | madprops | what 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:26 | madprops | unless im just supposed to get that file |
14:57:38 | disruptek | it shouldn't; that's what the test in the beginning checks. |
14:57:39 | madprops | oh it tests |
14:57:58 | disruptek | that didn't work? |
14:58:25 | madprops | it's downloading Nim.git ? |
14:58:59 | disruptek | there's a compiler requirement in the .nimble |
14:59:07 | disruptek | i have an idea about that, though. |
14:59:24 | * | chemist69 joined #nim |
14:59:44 | disruptek | oh, i already tried my idea and it didn't work. see src/nimph.nim.cfg. |
15:00:08 | madprops | hmm http://i.imgur.com/x8eoKZ1.png |
15:00:18 | madprops | maybe im not made for nimphs |
15:00:32 | disruptek | you don't have openssl? |
15:00:51 | FromDiscord | <treeform> omg I hate openSSL so much... |
15:00:53 | madprops | i do |
15:00:59 | madprops | but version 1.1.1 |
15:01:21 | disruptek | nimterop cannot find it. |
15:01:48 | madprops | oh wait |
15:01:52 | madprops | i need the devel version i guess |
15:01:54 | * | ng0_ joined #nim |
15:02:13 | madprops | or not |
15:02:19 | disruptek | you 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:38 | madprops | probably not |
15:03:10 | madprops | ok got libssl-dev |
15:07:25 | madprops | not sure why but running that script spawned a lot of zombie processes |
15:08:10 | disruptek | well, it does run nimble. |
15:08:52 | * | natrys quit (Quit: natrys) |
15:09:49 | madprops | ok lets give it a spin |
15:10:28 | disruptek | oh shoot |
15:11:08 | disruptek | remember, nimph just intuits the env you want based on your compiler settings. |
15:11:20 | disruptek | and warns you of anything that doesn't make sense. |
15:11:39 | disruptek | so, as long as your compiler works the way you want it to, so should nimph. |
15:11:42 | madprops | liking the information im already getting http://i.imgur.com/FLom71j.png |
15:11:52 | FromDiscord | <Clyybber> Araq, krux02: Discovered another int128 bug yesterday: #12897 |
15:11:54 | disbot | https://github.com/nim-lang/Nim/issues/12897 -- 3Simple type definition crash ; snippet at 12https://play.nim-lang.org/#ix=24nB |
15:12:12 | FromDiscord | <Clyybber> Its blocking me and I dont know how to fix it yet :{ |
15:13:37 | madprops | disruptek, what's the eq of nimble install -d ? |
15:14:04 | disruptek | there's no concept of "install" in nimph. |
15:14:57 | disruptek | if 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:58 | madprops | so when i do nimph install what happens? |
15:15:02 | FromDiscord | <mratsim> I think it'ss an alignement bug |
15:15:16 | disruptek | nimph install just runs `nimble install` in your environment. |
15:15:42 | disruptek | ie. with a --nimbleDir that matches whatever you've setup your compiler with. |
15:15:48 | madprops | this is a bit confusing then http://i.imgur.com/Ubb7iNC.png |
15:15:56 | madprops | --help makes it seem like that's a nimph command |
15:16:03 | disruptek | well, it is. |
15:16:24 | disruptek | `nimph install foo` will use nimble to install foo into whatever your nimbleDir is. |
15:16:43 | disruptek | `nimph clone foo` will just clone it instead. |
15:17:09 | madprops | "the doctor wasn't able to fix everything" :( |
15:17:37 | madprops | because: unable to remove nimblePath /opt/nimble/pkgs/ |
15:17:57 | FromDiscord | <Clyybber> @mratsim Yeah, I cant test it rn, but maybe its related to the static int param |
15:18:01 | disruptek | hmm, it should be able to exclude it if you have a nim.cfg. |
15:19:26 | disruptek | i 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:37 | madprops | no, i haven't added a nim.cfg |
15:19:50 | madprops | looking for an example |
15:20:27 | madprops | https://github.com/disruptek/nimph/blob/master/tests/nim.cfg |
15:21:15 | disruptek | watch the video on the repository for nimph. it shows configuring the compiler for local dependencies. |
15:21:27 | disruptek | and then `nimph doctor` installing them all. |
15:22:49 | disruptek | sorry, /cloning/ them all. 😉 |
15:25:18 | disruptek | not adding an --excludePath for an empty directory feels like a bug. i wonder if we cannot exclude nimblePaths now. |
15:25:35 | disruptek | no, we can. |
15:26:12 | madprops | so when you do --define:ssl it looks for a git repo? |
15:26:50 | madprops | and populates all dependencies? |
15:27:13 | madprops | it's a bit confusing |
15:27:14 | disruptek | --define:ssl just sets a boolean define in nim to `true`. |
15:27:30 | madprops | ok notifyIcons |
15:27:43 | disruptek | when you run nimph, it just tries to see if it can find everything. |
15:27:43 | madprops | im guessing it searches github for that |
15:28:04 | disruptek | if you run `nimph doctor`, it will try to "fix" anything it can, including cloning missing packages. |
15:28:24 | madprops | but it deduces this from nim.cfg oooooor by analyzing the code? |
15:28:33 | madprops | latter would be cool |
15:28:57 | disruptek | it 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:14 | disruptek | the code only specifies a symbol, nothing more. |
15:30:00 | disruptek | we should probably let the compiler import urls. |
15:30:53 | disruptek | it could just agree with a package manager on how to symbolize such a beast, probably using something like my sanitize proc. |
15:31:38 | disruptek | then the pm could conceivably auto-install the env with no package.nimble. |
15:44:56 | lqdev[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:27 | shashlick | disruptek I think you need to distribute nimph as a binary |
15:49:30 | shashlick | Like choosenim |
15:59:38 | * | gour quit (Quit: Leaving) |
16:00:06 | * | gour joined #nim |
16:04:44 | disruptek | maybe i should compile it to js and distribute that. |
16:07:49 | disruptek | shashlick: 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:02 | FromDiscord | <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:13 | FromDiscord | <Clyybber> @funcmike Unneccessary relic from the past afaict |
16:11:17 | FromDiscord | <Clyybber> We should remove it |
16:11:34 | disruptek | funcmike: see if it passes checks, first. i see some stuff that doesn't make it obvious. |
16:12:02 | disruptek | ie. are you using boundChecks compile-option? |
16:12:05 | FromDiscord | <Clyybber> disruptek: I;m pretty sure it will. I checked the commti that introduced that |
16:12:12 | disruptek | ah, okay. |
16:12:23 | FromDiscord | <funcmike> yes all tests passed |
16:12:30 | FromDiscord | <Clyybber> @funcmike Do you want to open a PR? |
16:12:41 | FromDiscord | <Clyybber> If you don't want to bother I'll do it myself 🙂 |
16:12:47 | disruptek | you can just edit the file via the web ui. |
16:13:18 | FromDiscord | <funcmike> 🙂 no thanks i'm learning language and i was confused about it |
16:14:29 | FromDiscord | <funcmike> 😉 or wait i can do it |
16:14:36 | FromDiscord | <Clyybber> 👍 |
16:15:16 | disruptek | need more bugs. |
16:15:39 | FromDiscord | <Clyybber> 🐛 |
16:16:53 | disruptek | what does nimph do with submodules now? |
16:17:01 | disruptek | or, what can i test it on? |
16:17:13 | FromDiscord | <Clyybber> updating? |
16:17:19 | FromDiscord | <Clyybber> locking? |
16:17:25 | disruptek | oh, it's time to add the update command. |
16:17:40 | FromDiscord | <mratsim> yeeeaaahhh |
16:17:46 | FromDiscord | <mratsim> a package manager with update command |
16:18:03 | disruptek | hard to believe? |
16:18:12 | FromDiscord | <mratsim> much better than Python and Nimble not updating :p |
16:18:24 | disruptek | python updates iirc. |
16:18:36 | disruptek | or does it just go to head? |
16:18:51 | FromDiscord | <mratsim> I need this script to handle Python updates: https://gist.github.com/mratsim/8135b4f6824b61955122fdf828652298 |
16:19:32 | disruptek | wow. |
16:19:36 | FromDiscord | <mratsim> And there are even package managers that cannot uninstall (hint: go) |
16:19:46 | FromDiscord | <Clyybber> madness |
16:19:49 | disruptek | i can't imagine why. |
16:19:56 | FromDiscord | <Clyybber> I can |
16:20:05 | disruptek | uninstall in nimph: rm -rf some/directory/here |
16:23:03 | FromGitter | <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:24 | disruptek | gotcha! |
16:24:23 | solitudesf- | @sheerluck, debugEcho |
16:24:43 | disruptek | so how should this work? you say `update` and it upgrades everything it can? |
16:24:51 | disruptek | you say `update npeg` and it just does npeg? |
16:26:45 | lqdev[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:08 | FromGitter | <sheerluck> @solitudesf- Thank you! |
16:27:16 | solitudesf- | maybe it should list what it would update in case of general update, like traditional pm |
16:27:19 | disruptek | you 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:43 | disruptek | i guess it can list updates in `nimph` (nurse mode). |
16:28:03 | disruptek | i think upgrade is a better word, though. |
16:28:25 | disruptek | you can always `nimph upgrade --dry-run`. |
16:28:36 | disruptek | if you want to limit the nurse output. |
16:28:39 | solitudesf- | 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:53 | lqdev[m] | seems like nimsuggest is stuck. |
16:29:00 | FromDiscord | <Rika> update is not appropriate for upgrading versions |
16:29:25 | disruptek | hmm, maybe you can have a --patch option to only increment patch versions, not upgrading minors. |
16:30:36 | disruptek | we need `nimph fetch` and `nimph pull` too, i guess. |
16:30:53 | disruptek | to pull all deps. |
16:31:53 | disruptek | we'll pass-through to git for those, so you get whatever syntax you want. |
16:34:15 | FromDiscord | <Clyybber> @Rika Why? |
16:34:26 | FromDiscord | <Clyybber> I find update to be better fitting than upgrade |
16:34:42 | FromDiscord | <Rika> hmm |
16:34:46 | FromDiscord | <Rika> maybe nowadays it is |
16:34:52 | FromDiscord | <Rika> okay yeah maybe it is now |
16:35:03 | disruptek | well, update sounds like you jumped to the current version. |
16:35:13 | disruptek | upgrade better captures the idea that you can only upgrade within your requirements. |
16:35:24 | FromDiscord | <Rika> but it might confuse those from an older time where update meant update listing and upgrade meant upgrade version |
16:35:44 | FromDiscord | <Clyybber> hmm |
16:35:59 | * | Hideki_ joined #nim |
16:36:06 | disruptek | fetch and pull are essentially `update`. |
16:36:19 | disruptek | you're pulling in whatever new code/tags you lack. |
16:36:40 | disruptek | so you `nimph fetch` and then `nimph upgrade`. |
16:36:46 | disruptek | boom. |
16:37:35 | disruptek | one 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:50 | disruptek | truly 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:16 | lqdev[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:59 | disruptek | what does it produce right now? |
16:58:36 | lqdev[m] | nnkIdentDefs(ident"colorChannels", nnkEmpty, nnkIntLit(4)) |
16:58:57 | disruptek | i mean, with a type that isn't literal. |
16:58:58 | lqdev[m] | huh, seems like getType does the trick |
16:59:19 | lqdev[m] | ah, that's nnkIdentDefs(ident"x", ident"int", nnkEmpty) |
16:59:29 | lqdev[m] | but it seems like I can get the type using getType |
16:59:43 | disruptek | i get it. |
17:00:10 | disruptek | i was really talking about something like `colorChannels = MyRandoConstantObj` |
17:00:21 | disruptek | it should be ident(), right? |
17:00:30 | lqdev[m] | yeah |
17:00:32 | lqdev[m] | it will |
17:04:53 | disruptek | maybe 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:34 | disruptek | then you can have arbitrary complexity to your subcommands, tasks, etc. |
17:06:18 | disruptek | not `all`, how about `run`? |
17:08:38 | lqdev[m] | what the actual hell https://play.nim-lang.org/#ix=24pc |
17:08:44 | lqdev[m] | apparently `int ≠ int` |
17:09:06 | FromDiscord | <Clyybber> ah yes |
17:09:13 | disruptek | that's a feature. |
17:09:17 | FromDiscord | <Clyybber> araqlogic :p |
17:09:27 | lqdev[m] | maybe getTypeInst would help |
17:09:33 | disruptek | araqlogic is inescapable. |
17:10:01 | shashlick | Araclogique |
17:10:07 | FromDiscord | <Clyybber> lqdev[m]: For real though, one is an int and the other is an int literaly |
17:10:13 | FromDiscord | <Clyybber> discard y |
17:12:07 | lqdev[m] | @Clyybber but I'd expect that their types would be the same |
17:13:14 | lqdev[m] | or, that the type of 42 == 2 |
17:13:21 | lqdev[m] | s/2/int/ |
17:14:16 | disruptek | that would probably break some code. |
17:14:58 | lqdev[m] | best thing is, their `signatureHash`es are the same! |
17:15:27 | lqdev[m] | would you look at that https://play.nim-lang.org/#ix=24pd |
17:15:58 | lqdev[m] | allright, getTypeInst seems to do the trick |
17:16:04 | lqdev[m] | but it's confusing nevertheless |
17:17:32 | leorize | lqdev[m]: int literal is a special type on it's own |
17:19:18 | FromDiscord | <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:50 | Zevv | Oooooohhh DARK MODE |
17:19:57 | Zevv | yess, thank you, whoever did that |
17:20:56 | FromDiscord | <Clyybber> @yewpad was the one |
17:21:03 | * | Zevv kisses yewpad |
17:21:23 | FromDiscord | <Clyybber> unfortunately it forgets being dark on firefox |
17:21:41 | disruptek | !repo darkreader |
17:21:42 | * | Zevv slaps yewpad |
17:21:43 | disbot | https://github.com/darkreader/darkreader -- 9darkreader: 11Dark Reader Chrome and Firefox extension 15 5073⭐ 839🍴 7& 15 more... |
17:26:12 | lqdev[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:26 | FromDiscord | <yewpad> @Zevv happy to oblige 🙂 |
17:31:54 | Zevv | :) |
17:32:25 | Zevv | good work dude |
17:32:31 | FromDiscord | <yewpad> thank yo |
17:32:36 | FromDiscord | <yewpad> you* |
17:32:59 | FromDiscord | <yewpad> still have to wait for official release though 😄 |
17:33:05 | lqdev[m] | can anyone verify that `nimble test` succeeds for euwren? https://github.com/liquid600pgm/euwren |
17:33:37 | FromDiscord | <yewpad> testing it |
17:33:48 | nisstyre | How 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:08 | nisstyre | i.e. consume the next item and not loop over it again |
17:34:35 | FromDiscord | <yewpad> @lqdev[m] https://hastebin.com/lakolequtu.pl |
17:35:15 | lqdev[m] | that's so weird |
17:35:24 | lqdev[m] | try with `nim c -r tests/teuwren` |
17:35:53 | FromDiscord | <yewpad> @lqdev[m] https://hastebin.com/wericuvelo.makefile |
17:36:11 | lqdev[m] | `nimble install` |
17:36:20 | FromDiscord | <yewpad> my bad |
17:36:37 | lqdev[m] | but `test` should've installed everything, so idk how is this failing |
17:36:40 | * | gour quit (Quit: Leaving) |
17:37:18 | FromDiscord | <yewpad> @lqdev[m] https://hastebin.com/ebesoyuvoh.makefile |
17:37:52 | * | gour joined #nim |
17:37:53 | lqdev[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:21 | FromDiscord | <yewpad> @lqdev[m] |
17:38:22 | FromDiscord | <yewpad> https://hastebin.com/aguhenaqaw.makefile |
17:38:25 | * | gour joined #nim |
17:38:38 | lqdev[m] | ok, this is getting weird. |
17:38:49 | lqdev[m] | I might have to purge my Nim env |
17:38:59 | lqdev[m] | or something |
17:39:23 | lqdev[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:57 | FromDiscord | <mratsim> Somone is using a macro in a static or generic proc or a proc with a typedesc parameter. Just saying 😉 |
17:42:02 | lqdev[m] | believe me, not at all :P |
17:44:12 | FromDiscord | <Clyybber> @yewpad Why do you have to wait? Theres nightly docs :)) |
17:47:28 | lqdev[m] | seems like some of my recent changes must've broken something, it works for me on master |
17:47:40 | lqdev[m] | so happy to have git in these cases |
17:48:00 | FromDiscord | <mratsim> so happy to have continuous integration 😉 |
17:48:32 | FromDiscord | <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:33 | disbot | ➥ Add package laser |
17:51:14 | FromDiscord | <Clyybber> lol |
17:52:07 | FromGitter | <zacharycarter> getting a lot of errors with nim v1.0.4 and nimble |
17:52:16 | FromGitter | <zacharycarter> can't install packages |
17:52:41 | disruptek | got a paste? |
17:53:12 | FromGitter | <zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5df521880616d6515e3b7a76] |
17:53:59 | disruptek | does `nimble dump` show more? |
17:54:23 | disruptek | it should fail with something more useful, i think. i'm guessing you may have $NIMBLE_DIR set? |
17:54:54 | FromGitter | <zacharycarter> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5df521eece2b2e652bd6aba9] |
17:56:14 | disruptek | it's like nimscript is broken somehow. |
17:56:41 | FromGitter | <zacharycarter> hrm |
17:56:46 | FromGitter | <zacharycarter> I'll try re-installing Nim |
17:56:57 | shashlick | What version of nimble do you have |
17:57:48 | FromGitter | <zacharycarter> `nimble v0.11.0 compiled at 2019-11-27 09:25:50` |
17:57:53 | FromGitter | <zacharycarter> I just updated Nim though with choosenim |
17:58:03 | FromGitter | <zacharycarter> maybe I need to re-build Nimble? |
18:02:21 | shashlick | Just delete /tmp/nimblecache to get unblocked |
18:02:38 | shashlick | But will help to know the nimble commit hash if it is available |
18:02:44 | FromGitter | <zacharycarter> I ran koch tools and that fixed it |
18:03:12 | disruptek | you were upgrading from 1.0.2 to 1.0.4? |
18:03:30 | disruptek | just wondering if you'll be the only person with this problem. |
18:03:32 | FromGitter | <zacharycarter> no 0.20.0 I think on this machine |
18:03:37 | FromGitter | <zacharycarter> windows |
18:03:50 | FromGitter | <zacharycarter> also had a problem with choosenim when I tried to update - choosenim segfaulted |
18:04:03 | FromGitter | <zacharycarter> but then when I ran update stable again, it was already saying I had 1.0.4 installed |
18:04:20 | disruptek | sounds like it crashed midway through the update. |
18:04:46 | FromGitter | <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:54 | FromGitter | <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:37 | disruptek | if anyone knows, it's them. |
18:12:50 | FromGitter | <zacharycarter> hopefully will have forward / deferred / clustered renderer implementations and PBR materials in before Christmas is over |
18:13:02 | disruptek | neat. |
18:13:16 | FromGitter | <zacharycarter> well - he said I was over-complicating things and that I should just expand on what I was already doing |
18:13:27 | disruptek | that would be a pretty cool demo for nim. |
18:13:29 | FromGitter | <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:47 | FromGitter | <zacharycarter> thought I was going to need to implement texture atlases and virtual texturing, etc... |
18:14:37 | FromGitter | <zacharycarter> goal is by the end of Feb to have units running around on the terrain |
18:14:53 | FromGitter | <zacharycarter> but we'll see - I've implemented skeletal animation with OpenGL and Nim before, but never with BGFX |
18:15:08 | FromGitter | <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:42 | disruptek | what kinda units? |
18:16:38 | FromGitter | <zacharycarter> unless I can make my own somehow or find someone to make some for me without spending a lot |
18:17:10 | FromGitter | <zacharycarter> I will probably use some assets from this guy |
18:17:42 | FromGitter | <zacharycarter> company / whatever - https://assetstore.unity.com/packages/3d/characters/humanoids/toon-rts-units-67948 |
18:17:45 | FromGitter | <zacharycarter> of course then I can't open source it |
18:17:49 | FromGitter | <zacharycarter> the assets anyway |
18:18:08 | disruptek | yeah, but it's just temporary, right? |
18:18:41 | FromGitter | <zacharycarter> yeah |
18:18:56 | FromGitter | <zacharycarter> they're the style I want to aim for though - low poly stylized assets |
18:19:03 | FromGitter | <zacharycarter> I think that style of art ages the best |
18:19:26 | disruptek | it does feel timeless. |
18:20:03 | FromDiscord | <yewpad> @Clyybber Not a fan of nightly. I rather use official releases. |
18:20:14 | FromGitter | <zacharycarter> ugh 5 hours left on this flight :/ |
18:20:18 | FromGitter | <zacharycarter> guess I'll get some coding done |
18:22:31 | disruptek | i shoulda been a games programmer. |
18:22:50 | disruptek | i know it's a huge pita but it seems like the right kind of pita. |
18:23:02 | FromGitter | <Willyboar> never say never |
18:23:11 | FromGitter | <zacharycarter> well - it's just like any other programming to be honest |
18:23:24 | disruptek | you get to cut corners. |
18:23:36 | FromGitter | <zacharycarter> well yeah - this is true |
18:24:03 | FromGitter | <zacharycarter> but I think that's true in all software dev disciplines |
18:24:09 | FromGitter | <zacharycarter> like enterprise software developers get to cut corners too |
18:24:32 | FromGitter | <zacharycarter> they don't have to worry about optimization as much - because they can just throw more hardware at their problem |
18:25:01 | disruptek | ah, but some optimization is worth many multiples of coder salary. |
18:25:19 | FromGitter | <Willyboar> disruptek how old are you |
18:25:23 | FromGitter | <Willyboar> ? |
18:25:29 | disruptek | 43 |
18:25:52 | FromGitter | <Willyboar> we are close |
18:25:57 | FromGitter | <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:17 | FromGitter | <zacharycarter> reverse those numbers and you have my age |
18:26:44 | * | FromDiscord <yewpad> Ok Google... |
18:27:09 | FromGitter | <Willyboar> i am 37 |
18:27:36 | FromGitter | <Willyboar> you are not old to start game development |
18:27:42 | FromGitter | <zacharycarter> Willyboar: are you in the states? |
18:27:51 | FromGitter | <Willyboar> nope i am in greece |
18:27:56 | FromGitter | <zacharycarter> oh cool! |
18:28:16 | FromGitter | <zacharycarter> yeah - if you're going to start game development though, IMHO, learn C++ |
18:28:25 | FromGitter | <zacharycarter> if you don't already know it |
18:28:46 | FromGitter | <Willyboar> no no i speak for disruptek |
18:29:02 | FromGitter | <zacharycarter> because most of the industry codes in C++ |
18:29:14 | FromGitter | <zacharycarter> especially if you want to work on AAA games |
18:29:31 | disruptek | here's the thing... |
18:29:36 | disruptek | c++ makes my balls throb. |
18:29:37 | FromGitter | <Willyboar> I am more to web development & design |
18:29:54 | FromGitter | <zacharycarter> yeah - well, expect to have some achy balls then if you want to do game dev |
18:29:58 | FromGitter | <zacharycarter> also expect to take a pay cut |
18:30:15 | FromGitter | <zacharycarter> and work long hours if you're not living in Finland or some other country with really protective labor laws |
18:30:16 | disruptek | well, that'd be tough. |
18:30:20 | * | clyybber quit (Quit: WeeChat 2.7) |
18:30:21 | disruptek | i'm unemployed. |
18:30:31 | FromGitter | <zacharycarter> my dream |
18:30:39 | disruptek | it's pretty awesome, alright. |
18:30:58 | FromGitter | <Willyboar> i have a year paid off now |
18:31:01 | FromGitter | <Willyboar> :) |
18:31:04 | disruptek | i mean, except for not having a paycheck. |
18:31:09 | FromGitter | <zacharycarter> I wish I could survive with no job - it'd be the most awesome thing ever. |
18:31:43 | FromGitter | <zacharycarter> need to find me a sugar momma |
18:31:55 | FromGitter | <zacharycarter> or a suggar daddy I guess - I'd go gay if I never had to work again in my life probably. |
18:32:00 | FromGitter | <Willyboar> are you married? |
18:32:13 | FromGitter | <zacharycarter> I just wouldn't put out |
18:32:22 | FromGitter | <zacharycarter> no - I just have a dog |
18:32:28 | FromGitter | <Willyboar> :) |
18:32:29 | FromGitter | <zacharycarter> he's enough of of a pain in the ass |
18:32:43 | FromGitter | <Willyboar> dogs is like childs |
18:32:51 | FromGitter | <zacharycarter> yeah - one that never grows up |
18:33:01 | * | uvegbot quit (Quit: Konversation terminated!) |
18:33:07 | FromGitter | <Willyboar> they need a lot of effort |
18:33:26 | FromGitter | <Willyboar> i don't have dog but i have 4 daughters |
18:33:30 | FromGitter | <Willyboar> :) |
18:33:36 | disruptek | wow. |
18:33:45 | * | uvegbot joined #nim |
18:34:31 | FromGitter | <zacharycarter> how many shotguns do you own? |
18:34:37 | FromGitter | <zacharycarter> you're going to need more probably |
18:35:41 | FromGitter | <Willyboar> I have a shotgun, a shovel and a good alibi |
18:35:50 | FromGitter | <zacharycarter> :D |
18:36:21 | FromGitter | <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:55 | FromGitter | <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:21 | madprops | https://i.redd.it/fuq0sqse3i441.jpg |
18:40:37 | * | fanta1 quit (Quit: fanta1) |
18:41:20 | FromGitter | <Willyboar> Xmas concerns |
18:41:57 | * | Hideki_ quit (Ping timeout: 250 seconds) |
18:56:25 | FromGitter | <Willyboar> by the way madprops lq looks like working in macosx |
18:56:46 | FromGitter | <Willyboar> you can update your README :) |
18:59:00 | lqdev[m] | I'm getting this strange error: http://ix.io/24qc |
18:59:06 | lqdev[m] | (compiler crash) |
18:59:12 | FromGitter | <bung87> import a c struct needs port entire definition while I only needs one property ? |
18:59:56 | * | smitop joined #nim |
19:02:21 | lqdev[m] | here's after rerunning with `koch temp c` http://ix.io/24qd |
19:03:56 | lqdev[m] | the internal error seems to happen here https://github.com/nim-lang/Nim/blob/version-1-0/compiler/ccgexprs.nim#L952 |
19:08:03 | madprops | Willyboar, really? that's cool |
19:08:19 | madprops | i'd have to test it fully to be sure |
19:08:22 | FromGitter | <Willyboar> yep like a charm |
19:08:33 | FromGitter | <Willyboar> i test most of the flags |
19:22:27 | FromGitter | <Milerius> Hello |
19:23:09 | FromGitter | <Milerius> I tried to convert using c2nim ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5df5369d7ce7ea1e35843487] |
19:23:24 | FromGitter | <Milerius> I got an error of compile |
19:24:30 | FromGitter | <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:53 | FromDiscord | <snluu> Hello! Is there a built in way to format numbers to strings with the thousand separator? (e.g. 1234 -> “1,234”) |
19:31:58 | FromDiscord | <snluu> I’m looking through the strformat module and doesn’t seem like that’s the right place |
19:32:38 | FromGitter | <Varriount> snluu: Are you building a one-off tool, or a library? |
19:33:14 | lqdev[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:25 | FromDiscord | <snluu> @Varriount: umm, i’m building a service for home use. why would that make a difference? |
19:33:51 | lqdev[m] | but I guess it makes sense in some way or another. I don't even know anymore. |
19:33:52 | FromGitter | <Varriount> Depending on circumstances, you might want to look into localization libraries, since a comma isn't always a separator for numbers |
19:34:14 | FromDiscord | <snluu> tru |
19:34:57 | lqdev[m] | @snluu I agree with @Varriount, eg. Polish uses `,` as the decimal separator and `.` as the the thousand separator |
19:35:21 | FromDiscord | <snluu> Correct. Not looking for thousand separator specifically, looking for localization |
19:36:03 | FromDiscord | <snluu> basically the equivalent of `setlocale` and `printf(“%’d”)` in POSIX |
19:38:03 | FromDiscord | <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:03 | FromGitter | <Varriount> snluu: Hm, wrapping and using setlocale and printf might be the way then |
19:39:44 | FromDiscord | <snluu> Yeah that’s probably what I will do for now 🙂 |
19:39:58 | FromDiscord | <snluu> Just wondering if it comes “batteries included” with nim |
19:40:20 | FromDiscord | <snluu> would prefer the batteries included, since the POSIX way aint quite crossplatform/functional on windows |
19:40:27 | FromDiscord | <treeform> I don't feel like “batteries included” in nim yet. But we are working on it. |
19:40:47 | FromGitter | <Varriount> snluu: Localization had been pretty much ignored in the standard library |
19:41:29 | FromDiscord | <snluu> maybe i’ll look into a good cross platform solution and publish my first nimble package 😄 |
19:42:04 | FromGitter | <Varriount> snluu: https://github.com/nim-lang/Nim/blob/3383985c44d6f9b1cd12160295134345e9c21830/lib/posix/posix.nim#L233 |
19:42:31 | FromDiscord | <snluu> Nice! |
19:43:19 | FromDiscord | <snluu> Thanks! That solves my immediate problem for now. I’ll do more research on a good cross-platform solution |
19:44:02 | FromGitter | <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:29 | FromGitter | <Varriount> It might not be exported, but in that case you just copy the wrapper definition |
19:56:38 | Zevv | yewpad: the search box background color is still bright pink in dark mode |
20:03:50 | FromGitter | <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:43 | disruptek | nim for vagabonds, drifters, and vagrants. |
20:20:08 | * | sagax joined #nim |
20:20:28 | disruptek | do we want any other nimph aliases besides `nimph fetch`, `nimph pull`? you can now `nimph run -- any --random --command`. |
20:25:50 | lqdev[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:36 | FromDiscord | <exelotl> I've been told that in the stock market you can lose more money than you put in |
20:32:20 | FromDiscord | <mratsim> stock market no, but in the options and futures market (stock derivatives) yes |
20:32:55 | FromDiscord | <mratsim> OMG, setting Travis and appveyor to cover Linux, Windows, Mac, x86-x64 and ARM64 is such a pain :/ |
20:33:22 | FromDiscord | <mratsim> sorry not appveyor, Azure |
20:42:44 | disruptek | Rika: 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:58 | disruptek | `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:05 | lqdev[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:08 | FromDiscord | <Clyybber> disruptek: One thing that really puts me off about wayfire is that it for some fucking reason requires logind/elogind |
21:49:20 | disruptek | that's a hard pass. |
21:50:07 | disruptek | how is that even possible? |
21:50:14 | FromDiscord | <Clyybber> apparently thats not wayfires fault |
21:50:23 | FromDiscord | <Clyybber> its a requirement of wlroots XD |
21:50:26 | FromDiscord | <Clyybber> wth |
21:50:55 | disruptek | well, not a requirement of sway. |
21:51:06 | FromDiscord | <Clyybber> hmmm |
21:51:12 | FromDiscord | <Clyybber> but sway uses wlroots? |
21:51:16 | * | leorize quit (Remote host closed the connection) |
21:51:23 | disruptek | wait, you don't run the elogind? |
21:51:51 | FromDiscord | <Clyybber> no? |
21:51:53 | disruptek | i'm thinking of the gpm thingy. |
21:52:06 | FromDiscord | <Clyybber> im thinking of the gentoo fork |
21:52:20 | FromDiscord | <Clyybber> of systemd's logind part |
21:53:02 | * | leorize joined #nim |
21:53:14 | lqdev[m] | I think I just found a way: https://play.nim-lang.org/#ix=24rb |
21:53:28 | disruptek | i won't run systemd. |
21:53:54 | disruptek | it's not gpm, i forget what the old seat-manager was called. |
21:54:22 | FromDiscord | <Clyybber> disruptek: Apparently logind is loved by ppl who don't like systemd |
21:54:29 | disruptek | lol |
21:54:39 | FromDiscord | <Clyybber> But I don't know what it is for tbh |
21:55:13 | disruptek | sessions. |
21:55:39 | disruptek | but it's not graphical, which is key. |
21:56:14 | FromDiscord | <Clyybber> hmm, I never really got into sessions |
21:57:05 | FromDiscord | <Clyybber> cant I switch sessions already? |
21:57:12 | FromDiscord | <Clyybber> I mean switch the tty |
21:57:18 | disruptek | of course. |
21:57:29 | FromDiscord | <Clyybber> I don't really get why I need some session/seat-manager |
21:57:55 | disruptek | the idea is that the user can't crash the machine even if they have perms to the video-card. |
21:59:19 | FromDiscord | <Clyybber> ah |
21:59:41 | FromDiscord | <Clyybber> apparently you don't need a session manager, but you have to do `sudo chmod +s /bin/wayfire` |
21:59:53 | disruptek | have fun with that. |
22:00:27 | FromDiscord | <Clyybber> is it not a good idea ? |
22:00:48 | FromDiscord | <Clyybber> is it a bad idea ? |
22:01:04 | disruptek | do you trust the wayfire process and any sub-processes to run as root on your machine? |
22:01:30 | FromDiscord | <Clyybber> ah, thats what it does |
22:01:33 | FromDiscord | <Clyybber> great! |
22:01:47 | FromDiscord | <Clyybber> imma try if sway runs |
22:01:54 | FromDiscord | <Clyybber> without that bs |
22:02:24 | disruptek | i don't run sway suid, but i do use elogind. |
22:04:34 | FromDiscord | <Clyybber> @itmuckel dont be shy :)) |
22:08:20 | leorize | disruptek: ah, a fellow non-systemd user :) |
22:08:37 | disruptek | it's stupid. |
22:08:54 | leorize | I don't use it because I'm running a musl-based system though, I miss systemd's log and user services |
22:09:03 | FromDiscord | <Clyybber> I dont |
22:09:19 | FromDiscord | <Clyybber> leorize: Are you running runit? |
22:09:25 | leorize | openrc |
22:09:37 | leorize | runit is a terrible init |
22:09:42 | FromDiscord | <Clyybber> why? |
22:09:44 | FromDiscord | <Clyybber> I like it |
22:09:45 | leorize | a decent service manager though |
22:09:54 | leorize | it's never designed for oneshot services |
22:10:15 | leorize | which happens to be used when you're initializing the machine |
22:10:26 | FromDiscord | <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:33 | FromDiscord | <itmuckel> So I stopped typing |
22:10:56 | FromDiscord | <Clyybber> @itmuckel Ah ok, I was just joking anyways 😄 |
22:11:10 | FromDiscord | <itmuckel> 👽 |
22:11:22 | leorize | but nothing can replace systemd's logging :( |
22:11:29 | leorize | viewing a service log was sooo simple |
22:11:43 | solitudesf-- | oneshot service sounds like an oxymyron. no wonder runit doesnt implement it. |
22:12:22 | FromDiscord | <Clyybber> leorize: I don't really approve of binary logs tbh |
22:12:37 | leorize | I'm not talking about the binary-ness |
22:12:51 | leorize | but the fact that you can plug any executable in and systemd will log it's stdout for you |
22:13:02 | leorize | really handy and no one replicated this feature |
22:13:04 | blackbeard420 | runit can do that as well |
22:13:23 | FromDiscord | <Clyybber> runit can also do init scripts |
22:13:46 | disruptek | oops, nimph just upgraded my compiler. 🤣 |
22:13:55 | leorize | do 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:58 | disruptek | lets, uh, not do that. |
22:13:59 | FromDiscord | <Clyybber> wait until it upgrades your os |
22:14:03 | leorize | I'm using openrc and I miss that :( |
22:14:27 | FromDiscord | <Clyybber> leorize: sv status service `:)` |
22:14:45 | leorize | it shows you a snippet of the log as well? |
22:14:48 | FromDiscord | <Clyybber> I gotta put the smileys in brackets so I don't get a fucking emoji `:/` |
22:14:55 | FromDiscord | <Clyybber> leorize: Lemme see |
22:14:58 | FromDiscord | <Clyybber> I don't think so |
22:15:03 | leorize | :( that's what I miss |
22:15:09 | FromDiscord | <Clyybber> I mean runit doesn't handle logs |
22:15:35 | leorize | a good interface changes a lot |
22:15:41 | leorize | runit is just a part of the puzzle |
22:15:51 | leorize | it's not "the solution" |
22:16:06 | leorize | so a good system would collect these parts and give nice interface to them |
22:16:16 | disruptek | yes. |
22:16:21 | disruptek | systemd is that not. |
22:16:26 | blackbeard420 | which is socklog |
22:16:45 | leorize | well it does that well enough for me |
22:16:54 | leorize | ignoring the fact that systemd code is not the most decent |
22:17:17 | disruptek | it's just too revolutionary. |
22:17:28 | disruptek | i don't want to be locked-in like that. |
22:17:36 | FromDiscord | <Clyybber> leorize: you can just create a alias/function that runs `sv status service` and `socklog ...` |
22:18:04 | FromDiscord | <Clyybber> revolutionary in a bad way, in a "gleichschaltung" way |
22:18:36 | leorize | I guess a good glue for all of that would be a nice project to work on |
22:20:07 | leorize | @Clyybber: do they have easy to use user services nowadays? |
22:20:21 | leorize | I could try runit if it does |
22:22:42 | blackbeard420 | yeah its trivial to spin up a user runsvdir with runit |
22:23:05 | solitudesf-- | yeah, but `sv` doesn't work that well with user runsvdir |
22:23:39 | leorize | nice, can it spins that up only when I log in? that'd be a huge plus |
22:23:59 | leorize | the last time I tried to set up something like that it requires me to write a pam extension |
22:25:08 | solitudesf-- | thats like 2 lines in `.profile`? |
22:25:45 | blackbeard420 | you can make sv work with user runsvdir by simply overriding SVDIR envvar |
22:25:53 | leorize | doesn't bringing up those instances require root? |
22:26:01 | leorize | or gentoo has been lying to me |
22:26:37 | solitudesf-- | its user services, why would they require root |
22:28:45 | leorize | right, installing runit :P |
22:35:47 | * | gour quit (Quit: Leaving) |
22:36:47 | FromDiscord | <Clyybber> nice |
22:38:36 | leorize | looks like I can't do to the level of login->start logout->stop regardless of shells |
22:38:58 | leorize | but that doesn't matter for now, hopefully |
22:39:04 | * | Hideki_ joined #nim |
22:40:39 | disruptek | hmm, we should have a downgrade command, too. |
22:43:57 | * | Hideki_ quit (Ping timeout: 265 seconds) |
22:49:41 | leorize | disruptek: since you're doing some heavy devs, do you have any feature request for nim.nvim? |
22:50:17 | disruptek | my issue is that nimph is very broken in nvim, but it's probably due to ffi symbols. |
22:50:39 | disruptek | i wouldn't put much stock in it. |
22:50:52 | leorize | well I'm limited to whatever nimsuggest could produce |
22:51:13 | leorize | I'd suggest using a "buffer-local" completor as well for the things nimsuggest couldn't handle |
22:51:40 | disruptek | i know. it's not pretty. Zevv would probably suffer an aneurysm if he saw my screen. |
22:52:15 | disruptek | i mean, it finds all kinds of stuff wrong. |
22:52:30 | disruptek | "template instantiation too nested" |
22:52:33 | disruptek | i love that one. |
22:52:56 | leorize | lol |
22:53:15 | leorize | if you're using nimterop then it wouldn't work really well with nimsuggest |
22:53:25 | disruptek | right. |
22:53:48 | leorize | if you lift the "exec" ban on nimsuggest it'll work again, though I can't recommend that |
22:54:13 | disruptek | probably wouldn't do that, no. |
22:55:18 | FromDiscord | <Clyybber> disruptek: What are you using nimterop for btw? libgit? |
22:55:23 | disruptek | yeah. |
22:55:50 | FromDiscord | <Clyybber> Do I still need nimterop when I install nimph? |
22:55:58 | leorize | isn't libgit kinda buggy? |
22:56:05 | disruptek | no, it's pretty good. |
22:57:07 | disruptek | if 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:37 | disruptek | i could never do this stuff without shashlick's work. |
22:58:29 | * | lritter quit (Ping timeout: 250 seconds) |
23:01:20 | FromDiscord | <Clyybber> disruptek: You can make nimterop generate a wrapper file |
23:01:29 | FromDiscord | <Clyybber> And then the users won't have to install nimterop |
23:01:43 | disruptek | how? |
23:01:54 | FromDiscord | <Clyybber> ask shashlick `:p` |
23:02:24 | leorize | disruptek: you should probably update libgit |
23:02:54 | disruptek | i'm using master. |
23:03:00 | leorize | security patches just arrived on stable |
23:03:14 | disruptek | i need some stuff in HEAD, so... |
23:03:26 | FromDiscord | <Clyybber> disruptek: git pull --from-future |
23:03:41 | disruptek | i actually need some stuff that hasn't landed yet. |
23:03:53 | disruptek | if i could pull from future, i would. |
23:04:08 | disruptek | !search shallow clones support |
23:04:09 | disbot | https://github.com/disruptek/nimph/issues/9 -- 3support for shallow clones |
23:04:09 | FromDiscord | <Clyybber> its how I develop |
23:04:12 | FromDiscord | <Clyybber> I git init |
23:04:21 | FromDiscord | <Clyybber> and immediately do git pull --from-future |
23:04:23 | FromDiscord | <Clyybber> saves a lot of work |
23:04:30 | disruptek | i gotta try that. |
23:04:55 | FromDiscord | <Clyybber> you probably need a newer nim version tho |
23:05:10 | * | lritter joined #nim |
23:05:24 | FromDiscord | <Clyybber> the ones from the present don't have that option yet |
23:05:25 | disruptek | i need nim from the future. |
23:06:47 | FromDiscord | <Clyybber> oh, |
23:06:57 | FromDiscord | <Clyybber> I meant to say "you need a newer git version" |
23:07:14 | FromDiscord | <Clyybber> sorry if that caused confusions |
23:07:33 | FromDiscord | <Clyybber> I don't want to be responsible for "instructions unclear: dick stuck in future" |
23:08:01 | disruptek | i think if no upgrade is available, outdated yields no output. |
23:08:16 | disruptek | 'cept in debug mode. |
23:08:36 | FromDiscord | <Clyybber> you gotta add a `--from-future` |
23:08:38 | FromDiscord | <Clyybber> option |
23:08:42 | disruptek | you get notices for masked updates that are available: |
23:08:45 | disruptek | the latest swayipc release of 3.1.4 is masked |
23:08:55 | disruptek | would upgrade irc to #dd6db2e18be4e0582207a6351a111dfe2082f2c9 |
23:09:04 | disruptek | i guess that should be a tag instead of a commit. |
23:09:38 | FromDiscord | <Clyybber> how much of nimphs code is logic as opposed to wrapping currently? |
23:10:26 | disruptek | it'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:57 | disruptek | and ~26k lines of github-specific from my github package. |
23:11:16 | leorize | disruptek: nimph manages using gitsubmodules, right? |
23:11:21 | disruptek | nah. |
23:11:31 | disruptek | well, actually, i dunno what it does with submodules. |
23:11:47 | FromDiscord | <Clyybber> there is a simple advantage to using submodules |
23:11:55 | leorize | will nimph work with mercurial-based packages? |
23:12:00 | disruptek | nope. |
23:12:02 | FromDiscord | <Clyybber> users don't have to install a package manager |
23:12:38 | disruptek | the problem is, there's no ecosystem around submodules. we have to build it. |
23:12:47 | disruptek | it won't be hard to add to nimph. |
23:13:12 | disruptek | upgrade (and maybe downgrade) commands today, who knows what tomorrow. |
23:23:35 | * | krux02 quit (Remote host closed the connection) |
23:23:45 | blackbeard420 | if i have an Ident passed to a macro, how would i iterate over all the members of the type of that Ident |
23:24:37 | leorize | an ident is just an ident... |
23:27:04 | leorize | what exactly are you trying to do? |
23:28:23 | blackbeard420 | pass an object to a macro, iterate over all member variables and generate a stmtlist |
23:28:44 | leorize | getTypeImpl |
23:31:26 | FromDiscord | <Clyybber> nim really needs vla's |
23:31:44 | FromDiscord | <Clyybber> seems easy to implement.. but tricky to integrate |
23:31:55 | leorize | vlas are evil |
23:32:06 | FromDiscord | <Clyybber> why? |
23:33:35 | leorize | it tricks developers into thinking that they can just create "variable-sized" array on stack because "it's faster" |
23:33:59 | leorize | then they never realized that they overflowed the stack because there's no error checking for VLAs |
23:34:25 | leorize | many security vulns were made this way (staring at systemd) |
23:34:37 | FromDiscord | <Clyybber> hmm |
23:35:22 | FromDiscord | <Clyybber> shouldn't be too hard to add checks to prevent that |
23:35:52 | leorize | there aren't any portable way to check for stack size |
23:36:19 | leorize | we kinda know that it's likely 8MB until it isn't |
23:36:33 | FromDiscord | <Clyybber> then arrays are unsafe too |
23:36:43 | FromDiscord | <Clyybber> if we can never determine the stack size |
23:36:54 | FromDiscord | <Clyybber> but thats not the case |
23:39:18 | leorize | you can, it's just not portable |
23:39:37 | leorize | only a handful of *nix support getrlimit() |
23:39:46 | FromDiscord | <Clyybber> hmm |
23:39:53 | FromDiscord | <Clyybber> but I don't see how vla |
23:39:59 | leorize | and for windows we walkaround the prob by setting it via the linker |
23:40:09 | FromDiscord | <Clyybber> 's are special in that they are unsafe but arrays are not? |
23:40:37 | FromDiscord | <Clyybber> We can just limit their size in nim |
23:40:48 | FromDiscord | <Clyybber> via range types or a smaller index type |
23:41:11 | leorize | can you calculate the size of every other locals? |
23:41:53 | FromDiscord | <Clyybber> why not? |
23:42:40 | leorize | guess we got a starting point then |
23:43:39 | leorize | so 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:58 | leorize | and 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:03 | FromDiscord | <Clyybber> Hmm |
23:45:12 | leorize | for Nim we do set thread's stack size though, so maybe we can deal with that |
23:46:51 | leorize | but afaik there is no way to get the "free" stack size |
23:47:12 | FromDiscord | <Clyybber> I mean we could just limit the max size |
23:47:32 | leorize | then how are you gonna make them safe when you have multiple VLAs? |
23:47:43 | FromDiscord | <Clyybber> take the max of every vla? |
23:47:47 | FromDiscord | <Clyybber> and add it |
23:48:03 | FromDiscord | <Clyybber> then we gotta tell gcc somehow |
23:48:13 | FromDiscord | <Clyybber> because currently nim doesn't do the checking itself |
23:48:15 | FromDiscord | <Clyybber> afaict |
23:48:41 | leorize | how can you tell gcc when the values are not there? |
23:48:50 | FromDiscord | <Clyybber> assume we have the max |
23:49:30 | FromDiscord | <Clyybber> then we tell gcc the max |
23:52:02 | FromDiscord | <Clyybber> leorize: But maybe I'm missing something |
23:52:11 | FromDiscord | <Clyybber> why wouldn't it just crash |
23:52:17 | FromDiscord | <Clyybber> when the vla is too big? |
23:52:27 | leorize | there's also the matter of "returning" them |
23:53:03 | FromDiscord | <Clyybber> We can return arrays already |
23:53:43 | leorize | stack overflow is harder to detect |
23:53:54 | leorize | because everything is on it |
23:54:05 | FromDiscord | <Clyybber> but it would just result in a segfault no? |
23:54:15 | leorize | modern systems have a protecting canary that the program can check |
23:54:32 | leorize | but if you can predict it, you can craft malicious payload |
23:54:48 | FromDiscord | <Clyybber> leorize: Then our arrays are unsafe too |
23:55:15 | FromDiscord | <Clyybber> because you can easily write `var a: array[int.high div 10, int]` and cause a stack overflow |
23:55:29 | FromDiscord | <Clyybber> and we don't prevent it |
23:55:35 | FromDiscord | <Clyybber> neither gcc nor nim does |
23:55:44 | leorize | !eval var a: array[int.high div 10, int] |
23:55:46 | NimBot | Compile 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:04 | leorize | I don't think so |
23:56:56 | FromDiscord | <Clyybber> leorize: https://play.nim-lang.org/#ix=24rN |
23:58:05 | leorize | but in reality you don't make arrays that big |
23:58:29 | FromDiscord | <Clyybber> but you do it for vlas? |
23:58:37 | leorize | static numbers are much easier to crunch |
23:59:04 | leorize | like you could see `1000000` sized array and know something is up |
23:59:13 | leorize | but vlas are much stealthier |
23:59:20 | leorize | sure it works now |
23:59:32 | leorize | but then you change some code and now the size check is not there |