00:00:00 | * | njoseph quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
00:00:05 | FromDiscord | <Clyybber> if you have an ARM machine you want to run the end result on, why not use that to compile aswell? |
00:00:08 | FromDiscord | <kodkuce> so to save bin or what |
00:00:18 | disruptek | i just told you. |
00:00:23 | FromDiscord | <Clyybber> I bet my DS is gonna compile faster |
00:00:25 | FromDiscord | <kodkuce> dont want to bloat it :) |
00:00:33 | * | endragor joined #nim |
00:00:41 | FromDiscord | <Clyybber> kodkuce: You want to save the binary? |
00:00:45 | disruptek | remove csources and keep everything else. |
00:00:48 | FromDiscord | <kodkuce> yes |
00:00:50 | disruptek | remove nimcache, too. |
00:00:57 | FromDiscord | <Clyybber> You can delete everything except for bin and lib |
00:01:03 | * | njoseph joined #nim |
00:01:10 | FromDiscord | <Clyybber> lib contains the standard library |
00:01:12 | FromDiscord | <kodkuce> ok so to save lib too |
00:01:15 | FromDiscord | <Clyybber> and bin contains the nim compiler |
00:01:17 | FromDiscord | <kodkuce> ok dident know that |
00:01:26 | disruptek | you can lose tests. |
00:01:43 | disruptek | you can lose dist. |
00:01:58 | FromDiscord | <Clyybber> disruptek: What was on the MyType YourType thing? |
00:01:59 | disruptek | that, with csources, should be empty enough. |
00:02:09 | disruptek | clyybber: fuck i dunno, too much pain. |
00:02:13 | FromDiscord | <Clyybber> verdict |
00:02:15 | FromDiscord | <Clyybber> I mean |
00:02:44 | disruptek | i pushed, so you can pull and it produces a lot of output that kinda shows the code path. |
00:02:52 | FromDiscord | <Clyybber> disruptek: damn, did you suffer a spinal disk herniation? |
00:02:59 | * | Cthalupa quit (Ping timeout: 258 seconds) |
00:03:18 | disruptek | just a pulled muscle i think. |
00:03:34 | FromDiscord | <Clyybber> better get it checked, if thats an option |
00:03:41 | disruptek | nah. no health insurance. |
00:03:49 | FromDiscord | <Clyybber> fuck |
00:03:56 | FromDiscord | <Clyybber> what a shithole country |
00:04:03 | disruptek | it's pretty awful here. |
00:06:08 | disruptek | what i pushed has a section where we allow aliases for naming. |
00:06:27 | disruptek | but it doesn't work because of the Lock thing. so i will try to figure out how that broke. |
00:07:03 | FromDiscord | <kodkuce> so last call on chu chu train i backed up /bin an /lib nothing else right |
00:07:18 | disruptek | he must be ignoring me. |
00:07:44 | FromDiscord | <kodkuce> i spring my leg tendons |
00:07:52 | FromDiscord | <kodkuce> am atm using crouches :( |
00:08:07 | disruptek | that sucks. |
00:08:26 | * | Cthalupa joined #nim |
00:08:49 | FromDiscord | <kodkuce> ok so last sec to stop me for 6 more hours of pain |
00:09:04 | FromDiscord | <kodkuce> bin and lib backed up |
00:09:07 | disruptek | i give up trying to teach you. |
00:09:08 | FromDiscord | <kodkuce> 5 |
00:09:13 | FromDiscord | <kodkuce> me? |
00:09:16 | disruptek | yes. |
00:09:27 | FromDiscord | <kodkuce> i tought you were talking to other dude |
00:09:33 | disruptek | no, chucklehead. |
00:09:35 | disruptek | scroll back. |
00:10:21 | FromDiscord | <kodkuce> you told me to lose test/ dist and csources or what |
00:10:45 | disruptek | you are better off losing a couple large things and keeping the rest. |
00:11:14 | disruptek | rika can explain. |
00:11:26 | * | mipri joined #nim |
00:11:56 | FromDiscord | <kodkuce> issue is i dont know what all i need for running nim form source |
00:12:13 | disruptek | well, we've tried to tell you. |
00:12:25 | FromDiscord | <kodkuce> *source build, and dont think there is writin on github page |
00:14:04 | FromDiscord | <kodkuce> i think i am blind |
00:14:20 | disruptek | that happened to me when i was 13. |
00:14:34 | disruptek | i got over it once i learned to shave my palms. |
00:14:44 | FromDiscord | <kodkuce> what |
00:14:54 | FromDiscord | <kodkuce> you troling me? |
00:15:18 | disruptek | it happens to a lot of young perverts. |
00:15:21 | FromDiscord | <Rika> He's half trolling you |
00:15:31 | shashlick | disruptek: I'm working on `nimble develop --deps pkg1` which will setup all deps in develop mode in sibling directories |
00:15:41 | FromDiscord | <kodkuce> so do i need anything else then lib and bin? |
00:15:53 | disruptek | ah, nice. do their names have version numbers in them? |
00:16:02 | shashlick | Wondering if it will be useful - it's what zah mentioned in the forum |
00:16:06 | shashlick | No version |
00:16:09 | disruptek | rika: smack that kid for me, please. |
00:16:16 | FromDiscord | <kodkuce> dude |
00:16:21 | shashlick | All will be #head |
00:16:25 | disruptek | shashlick: it's great, i've been using it for a couple weeks now. |
00:16:30 | FromDiscord | <kodkuce> i can beat you up with 1 leg if want |
00:16:33 | FromDiscord | <Rika> Honestly I don't understand what kodkuce is doing, what are you deleting exactly |
00:16:45 | FromDiscord | <kodkuce> i builded nim form source |
00:16:48 | disruptek | he's deleting friends. |
00:16:48 | FromDiscord | <kodkuce> in qemu |
00:16:51 | FromDiscord | <Rika> Okay |
00:16:55 | FromDiscord | <kodkuce> for arm64 |
00:17:01 | FromDiscord | <kodkuce> w8 6hours for that |
00:17:05 | FromDiscord | <Rika> Let me ask this for a sec |
00:17:09 | FromDiscord | <Rika> Do you have an rpi |
00:17:36 | FromDiscord | <kodkuce> my logic was to save /bin and use it to build on clean qemu |
00:17:53 | FromDiscord | <kodkuce> i have a rpi4 thats runing and i dont want to build on that one |
00:17:54 | FromDiscord | <Rika> Why do you need a clean vm |
00:17:59 | FromDiscord | <Rika> Why not |
00:18:10 | FromDiscord | <Rika> My rpi 4 built nim in minutes |
00:18:14 | * | evanj quit (Read error: Connection reset by peer) |
00:18:14 | FromDiscord | <Rika> Single digit minutes |
00:18:15 | FromDiscord | <kodkuce> and anyway on alpine there is no nim like there is 0.14 version |
00:18:37 | FromDiscord | <kodkuce> i am hoping that this qemu is not that much slow |
00:18:47 | shashlick | I'm going to use nimble link files to link nimbleDirs |
00:19:01 | FromDiscord | <kodkuce> i want to use qemu isted crosscompiling |
00:19:07 | FromDiscord | <Rika> You saw how slow the vm was already no? |
00:19:34 | FromDiscord | <kodkuce> i newer build nim myself before so dident know how it takes on awartge |
00:20:01 | FromDiscord | <Rika> Ah wait, your pi is on alpine, I see |
00:21:22 | FromDiscord | <kodkuce> yes |
00:22:03 | FromDiscord | <Rika> https://github.com/nim-lang/nightlies/releases/tag/2020-09-13-devel-1df5cfba52ccc71e3c69b6cd7d08cebd70bbb187 Have you checked this |
00:25:17 | FromDiscord | <kodkuce> dudebt saw that but i am guessing those are not musl? |
00:25:56 | FromDiscord | <Rika> Okay, what I mean is to download one of them, look at the structure, and whatever isn't in there you delete |
00:27:25 | disruptek | shashlick: huh? |
00:27:58 | FromDiscord | <kodkuce> thats smart |
00:28:22 | disruptek | they are likely musl. |
00:28:33 | FromGitter | <deech_twitter> Can anyone using ML style pattern matching heavily recommend a library? I know of `patty` and `gara` they each have their tradeoffs. |
00:28:37 | FromDiscord | <kodkuce> what? |
00:29:01 | disruptek | deech: look at krux02's ast_pattern_matching or w/e it's called. |
00:29:13 | disruptek | !repo owner:krux02 pattern |
00:29:14 | disbot | no results 😢 |
00:29:24 | disruptek | !repo ast pattern match |
00:29:24 | disbot | https://github.com/krux02/ast-pattern-matching -- 9ast-pattern-matching: 11A library to do pattern matching on the AST in the Nim programming language. 15 66⭐ 5🍴 |
00:29:45 | FromGitter | <deech_twitter> This is just for the Nim AST, yes? |
00:29:53 | disruptek | deech: but, i don't use ML pattern matching per se. |
00:30:00 | disruptek | afaik, yes. |
00:31:08 | FromGitter | <deech_twitter> Hmmm, some clippers magically appeared my hand & I see a hairy yak . |
00:31:31 | disruptek | that's just rika. |
00:32:30 | disruptek | a shave probably won't help but i think a bath would do wonders. |
00:33:15 | FromDiscord | <Rika> Lol |
00:34:38 | FromDiscord | <acek7> Rika are you that hairy |
00:34:57 | disruptek | you cannot imagine. |
00:35:23 | FromDiscord | <kodkuce> why all troling Rika? |
00:35:27 | FromDiscord | <kodkuce> it that a thing? |
00:36:03 | FromDiscord | <Clyybber> no its a person |
00:36:12 | disruptek | debatable. |
00:36:38 | disruptek | i think i'm going to go with kodkuce on this one: it's a thing. |
00:36:39 | FromDiscord | <Clyybber> even a yak is not a thing |
00:36:51 | disruptek | i'm telling you, it's not a yak. |
00:36:57 | disruptek | it's just rika. |
00:37:22 | disruptek | i know it smells like a yak, but.. well, i think we covered that. |
00:38:01 | FromDiscord | <Rika> @kodkuce it's a running joke and I have no issue with it so it's fine |
00:38:04 | FromDiscord | <Clyybber> @kodkuce thanks to leorize they do use musl |
00:38:11 | FromDiscord | <Clyybber> but it doesn't matter because they are statically linked |
00:38:34 | FromDiscord | <Clyybber> (apart from the fact that you cant statically link glibc afaik) |
00:38:57 | FromDiscord | <Rika> Isn't musl a statically linkable libc |
00:39:16 | FromDiscord | <Clyybber> yea |
00:39:45 | FromDiscord | <Clyybber> @kodkuce so instead of building 6 hours you could have just downloaded that :D |
00:39:52 | * | mipri left #nim (#nim) |
00:41:43 | * | lritter quit (Quit: Leaving) |
00:42:03 | FromDiscord | <kodkuce> so can i die now? |
00:42:16 | disruptek | i'm okay with that. |
00:43:12 | FromDiscord | <kodkuce> are you evil? |
00:43:22 | FromDiscord | <Clyybber> :nimrawr: |
00:43:35 | disruptek | chaotic neutral. |
00:45:13 | FromDiscord | <kodkuce> you play that Pilars of E.. dumb game? |
00:45:24 | disruptek | nah. |
00:46:39 | FromDiscord | <kodkuce> hmm this qemu is not that much bad it compiled in 20 sec what compiles in 2 sec on pc |
00:47:29 | FromDiscord | <kodkuce> ok then i dont kill you |
00:47:32 | disruptek | clyybber: ahhh, i'm dumb. Lock is an alias for pthread_mutex_t. |
00:50:06 | FromDiscord | <Clyybber> kul |
00:50:20 | FromDiscord | <Clyybber> gl i'm gonna sleep a bit |
00:50:25 | FromDiscord | <Clyybber> cee yaa |
00:50:28 | disruptek | aight, thanks. |
00:53:22 | FromDiscord | <kodkuce> i go sleep too its 3am at me almost |
00:53:29 | FromDiscord | <kodkuce> good night all |
00:53:33 | disruptek | peace. |
00:53:36 | FromDiscord | <kodkuce> (edit) '3am' => '3pm' |
00:53:48 | FromDiscord | <kodkuce> chaos peace :) |
01:04:03 | * | endragor quit (Ping timeout: 244 seconds) |
01:11:46 | * | Tanger joined #nim |
01:31:07 | * | endragor joined #nim |
01:34:47 | * | apahl_ joined #nim |
01:36:14 | * | endragor quit (Ping timeout: 256 seconds) |
01:37:33 | * | apahl quit (Ping timeout: 244 seconds) |
01:51:49 | * | Cthalupa quit (Ping timeout: 264 seconds) |
01:55:12 | * | Pisuke joined #nim |
01:55:26 | * | MyMind quit (Ping timeout: 256 seconds) |
01:56:01 | * | Cthalupa joined #nim |
02:13:32 | * | endragor joined #nim |
02:19:22 | * | femtotones quit (Quit: Default Quit Message) |
02:21:08 | FromDiscord | <ThothLoki> i have an icon (ico) file that i would like my app to use. how to i include that when i compile? |
02:24:17 | FromDiscord | <Rika> its platform specific, which platform is this |
02:25:40 | FromDiscord | <ThothLoki> for now, windows |
02:26:29 | FromDiscord | <Rika> sorry idk windows xd |
02:26:32 | FromDiscord | <Elegant Beef> No clue the api required, but to just include something statically you use `const name = staticRead(path)` |
02:26:42 | FromDiscord | <ThothLoki> LOL no worries |
02:26:43 | FromDiscord | <Elegant Beef> No clue how to use that for the windows api |
02:26:51 | FromDiscord | <ThothLoki> i am rewriting some apps for work |
02:27:00 | FromDiscord | <ThothLoki> so it must be windows |
02:27:30 | FromDiscord | <ThothLoki> but i selected nim because it is similar in syntax to python (what i am used to) and that i can use it on all OSs |
02:27:40 | FromDiscord | <ThothLoki> being that i use windows, mac and linux |
02:30:55 | * | mipri joined #nim |
02:31:00 | * | thomasross joined #nim |
02:44:12 | * | muffindrake quit (Ping timeout: 244 seconds) |
02:45:05 | FromDiscord | <ThothLoki> @Rika are you linux? |
02:45:45 | FromDiscord | <ThothLoki> @Elegant Beef or you? |
02:45:55 | FromDiscord | <Rika> yeah |
02:46:01 | FromDiscord | <Rika> im not linux itself, but i am using it |
02:46:28 | * | muffindrake joined #nim |
02:46:31 | FromDiscord | <ThothLoki> lol |
02:46:44 | FromDiscord | <ThothLoki> what distro and how do you do it in linux for an icon? |
02:47:33 | FromDiscord | <Rika> for linux its https://stackoverflow.com/a/41690936 |
02:47:39 | FromDiscord | <Rika> easier to just link it tbh... |
02:47:54 | FromDiscord | <Rika> basically theyre not embedded in the executable |
02:48:16 | FromDiscord | <ThothLoki> ok |
02:48:22 | FromDiscord | <ThothLoki> i am fine with linking too |
02:49:07 | FromDiscord | <ThothLoki> what distro do you use? |
02:51:15 | FromDiscord | <Rika> its not distro specific afaik |
02:52:47 | FromDiscord | <ThothLoki> oh i know. i was just curios what distro you run |
02:53:09 | FromDiscord | <ThothLoki> i have been rocking fedora lately |
02:59:44 | FromDiscord | <Rika> oh, i use manjaro on my desktop (because its a pain to move distros rn) and nixos on my laptop |
03:00:01 | FromDiscord | <Elegant Beef> I use regolith linux |
03:01:46 | FromDiscord | <ThothLoki> i didnt have good luck with manjaro. arch vanilla worked better but still fucked up on me↵i have been meaning to try nixos↵↵i have never heard of regolith linux...........do tell |
03:02:05 | FromDiscord | <Elegant Beef> Regolith is ubuntu with a presetup i3-gaps, |
03:02:13 | FromDiscord | <Elegant Beef> and gnome intergration |
03:02:20 | FromDiscord | <ThothLoki> ? |
03:02:30 | FromDiscord | <ThothLoki> so......ubuntu fork |
03:02:38 | FromDiscord | <Elegant Beef> derivative |
03:02:42 | FromDiscord | <Elegant Beef> but close enoguh |
03:02:46 | * | rockcavera quit (Remote host closed the connection) |
03:02:49 | FromDiscord | <ThothLoki> sudo apt install upgrade --mint |
03:02:51 | FromDiscord | <ThothLoki> LOL |
03:02:51 | FromDiscord | <Rika> enoguh |
03:03:09 | FromDiscord | <Elegant Beef> Rkia i kown how to splle |
03:04:46 | FromDiscord | <ThothLoki> i know apt more than others but havent found a debian/ubuntu distro that has made me say "yes, this is the one" |
03:05:05 | FromDiscord | <Elegant Beef> A pre-setup i3-gaps is nice |
03:05:15 | FromDiscord | <ThothLoki> i have no idea what that means |
03:05:31 | FromDiscord | <ThothLoki> i have tried lots of distros but do not claim to be a pro |
03:05:39 | FromDiscord | <ThothLoki> i dont even claim to be an amature |
03:06:08 | * | waleee-cl quit (Quit: Connection closed for inactivity) |
03:06:13 | * | thomasross quit (Ping timeout: 260 seconds) |
03:07:32 | FromDiscord | <Elegant Beef> i3wm gaps is a tiling window manager |
03:07:37 | FromDiscord | <Elegant Beef> My preferred method of using a pc |
03:09:35 | FromDiscord | <ThothLoki> got a screenshot? |
03:09:47 | FromDiscord | <ThothLoki> i dont like gnome |
03:10:30 | FromDiscord | <ThothLoki> i am more of a cinnamon, mate or kde plasma kinda guy |
03:10:46 | FromDiscord | <ThothLoki> but i am an old windows guy so i have a lot to learn |
03:11:04 | FromDiscord | <ThothLoki> i respect gnome for what it is, but i dont like it personally |
03:11:28 | FromDiscord | <Elegant Beef> https://media.discordapp.net/attachments/371759389889003532/755264489875570798/regolith-linux-main.png |
03:11:30 | FromDiscord | <Elegant Beef> I dont use gnome |
03:11:40 | FromDiscord | <Elegant Beef> It just integrates with the gnome settings and shit |
03:11:46 | FromDiscord | <Elegant Beef> Not my desktop either |
03:13:28 | FromDiscord | <ThothLoki> interesting |
03:13:29 | FromDiscord | <ThothLoki> i like it |
03:16:45 | * | Cthalupa quit (Ping timeout: 244 seconds) |
03:23:18 | * | Cthalupa joined #nim |
03:26:12 | FromDiscord | <ThothLoki> ok, anyone use nigui? |
03:34:02 | * | Cthalupa quit (Ping timeout: 256 seconds) |
03:38:15 | * | Cthalupa joined #nim |
03:46:47 | * | shad0w_ joined #nim |
04:02:34 | * | shad0w__ joined #nim |
04:03:15 | * | shad0w__ quit (Remote host closed the connection) |
04:04:55 | * | shad0w_ quit (Ping timeout: 240 seconds) |
04:05:12 | * | endragor quit (Ping timeout: 256 seconds) |
04:06:02 | * | supakeen quit (Quit: WeeChat 2.9) |
04:06:37 | * | supakeen joined #nim |
04:22:23 | * | opal quit (Ping timeout: 240 seconds) |
04:29:26 | * | Tanger quit (Remote host closed the connection) |
04:30:06 | * | Tanger joined #nim |
04:33:24 | FromDiscord | <JSGRANT> @Elegant Beef That is WAY too much gap between windows lol |
04:34:55 | * | shad0w_ joined #nim |
04:35:17 | FromDiscord | <JSGRANT> Re: Plasma -- Honestly https://store.kde.org/p/1333377/ needs to be part of the mainstream KDE experience ... it's CRAZY that there is no in-built way to add / remove virtual-desktops and swap the order of an existing space. |
04:35:40 | * | shad0w_ quit (Remote host closed the connection) |
04:36:35 | FromDiscord | <Rika> i never needed it |
04:37:38 | FromDiscord | <JSGRANT> @Rika If you are on KDE (Plasma) how many virtual-desktops do you use & do you use the pager widget to display them / the contents? |
04:37:55 | FromDiscord | <Rika> https://media.discordapp.net/attachments/371759389889003532/755286245923356763/unknown.png |
04:37:59 | * | mipri left #nim (#nim) |
04:38:07 | FromDiscord | <Elegant Beef> As i said it's not my desktop |
04:38:38 | FromDiscord | <JSGRANT> @RikaIs that basically "it"; Like you have stuff minimized I assume in a given virtual-desktop if you're not using it? |
04:39:01 | FromDiscord | <JSGRANT> I used to have a "work" and "play" activity but then I realized I never really switched between them lol |
04:39:17 | FromDiscord | <Rika> i switch between them constantly |
04:40:29 | FromDiscord | <JSGRANT> But yeah, I view adding / removing virtual-desktops VITAL in my workflow and really I kinda wish there was a way to set set the name of a given 'workspace' to nil / blank. I have the onscreen display enabled and it's pretty annoying to see "Virtual Desktop 1 , Virtual Desktop 5'. |
04:40:40 | FromDiscord | <Elegant Beef> Although my gaps are similar size https://media.discordapp.net/attachments/371759389889003532/755286940038856785/unknown.png |
04:40:56 | FromDiscord | <JSGRANT> @Rika I'm saying there's really no need for you to add addition virtual-desktops? |
04:40:59 | FromDiscord | <Rika> jason-des |
04:41:15 | FromDiscord | <Rika> no i do not |
04:41:23 | FromDiscord | <Rika> anything that doesnt fit goes into gen |
04:41:27 | FromDiscord | <JSGRANT> > > 202X; not having a pun as your hostname. |
04:41:33 | FromDiscord | <Rika> and its fine |
04:42:22 | FromDiscord | <JSGRANT> I average 4 virtual-desktops & if I'm doing anything specific it can easily edge to 9. I like the "only 2-3 apps a virtual-desktop" workflow. |
04:42:35 | FromDiscord | <Rika> i dont |
04:42:44 | FromDiscord | <JSGRANT> obviously ; lol |
04:43:30 | FromDiscord | <JSGRANT> @Elegant Beef Still too much gap; I want INVERSE GAP; For them to be bleeeeeeding into each-other |
04:43:41 | FromDiscord | <Elegant Beef> floating windows suck 😛 |
04:45:31 | FromDiscord | <JSGRANT> I never see myself actually writing a window-manager / wayland compostitor with the 1000 game-projects I want to do -- but I do REALLY want a AwesomeWM clone in Nim & configured in Nimscript. I really-really-really like the idea of being able to define any kind of interaction you want with an indepth widget system |
04:47:08 | FromDiscord | <Elegant Beef> Yea that was the goal with mine, but eh that died like all my either projects |
04:51:35 | FromDiscord | <JSGRANT> sent a long message, see http://ix.io/2xBN |
04:52:00 | * | njoseph quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
04:52:07 | * | njoseph joined #nim |
04:53:26 | disruptek | !repo swayipc |
04:53:26 | disbot | https://github.com/disruptek/swayipc -- 9swayipc: 11swayipc (i3ipc) for Nim 15 5⭐ 0🍴 |
04:53:34 | disruptek | good enough indeed. |
04:54:08 | disruptek | !repo wayland |
04:54:08 | disbot | https://github.com/yglukhov/wayland -- 9wayland: 11Nim bindings for wayland 15 10⭐ 1🍴 7& 1 more... |
04:59:30 | FromDiscord | <JSGRANT> Wayland seems like the obvious direction to head in nowadays; At least to partially future-proof or of that sort. Glad to see we have some bindings already |
05:00:55 | * | cyraxjoe quit (Quit: I'm out!) |
05:00:55 | * | opal joined #nim |
05:03:55 | * | cyraxjoe joined #nim |
05:08:17 | * | endragor joined #nim |
05:12:32 | * | solitudesf joined #nim |
05:19:28 | * | narimiran joined #nim |
05:27:13 | * | shad0w_ joined #nim |
05:40:42 | * | Cthalupa quit (Ping timeout: 258 seconds) |
05:46:10 | * | Cthalupa joined #nim |
06:25:06 | * | endragor quit (Remote host closed the connection) |
06:25:33 | * | endragor joined #nim |
06:32:49 | * | endragor quit (Ping timeout: 265 seconds) |
06:50:20 | * | endragor joined #nim |
06:56:30 | * | Trustable joined #nim |
07:00:41 | Araq | fwiw I disabled "virtual desktops" everywhere, don't see the benefit |
07:01:53 | * | krux02 joined #nim |
07:04:32 | FromDiscord | <Elegant Beef> Yea i never used virtual desktops on any DE, but now i guess i use them since i use i3wm so got workspaces |
07:04:47 | FromDiscord | <Elegant Beef> For floating window managers they just seem redundant |
07:10:26 | FromGitter | <alehander92> i couldn't really see |
07:10:39 | FromGitter | <alehander92> an obvious fix for the zero-functional clyybber ? |
07:11:04 | FromGitter | <alehander92> but just barely gave a look, if you need some more context ping us |
07:11:56 | FromGitter | <alehander92> use `-->>` |
07:12:01 | FromGitter | <alehander92> to debug the produced code |
07:25:44 | * | Cthalupa quit (Ping timeout: 258 seconds) |
07:30:11 | FromDiscord | <JSGRANT> In WIndows that 'virtual-desktop overlay' thing is a bit to obfuscated imo for it to feel "natural" in that workflow; And I have no idea what the workflow is without it. Like I assume there must be keybindings to move between virtual-desktops and windows to a given desktop -- but I have no idea what they'd be. |
07:30:57 | FromDiscord | <JSGRANT> I'm at a point though, where I just can't go back from a virtual-desktop workflow. It's not perfect. But it's about 85% of what I want out of it. |
07:32:09 | * | Cthalupa joined #nim |
07:34:07 | FromDiscord | <JSGRANT> Certainly more enjoyable than having 10 things open and having to minimize then alt-tab through everything over and over again. |
07:34:22 | * | Vladar joined #nim |
07:38:41 | FromDiscord | <Elegant Beef> I mean my solution is to not have 10 things open |
07:38:49 | FromDiscord | <Elegant Beef> I very much close most applications |
07:42:00 | * | vicfred quit (Quit: Leaving) |
07:42:13 | FromDiscord | <Rika> i dont have enough applications per workspace to warrant more |
07:42:43 | * | Cthalupa quit (Ping timeout: 260 seconds) |
07:46:46 | * | Cthalupa joined #nim |
07:48:02 | FromDiscord | <JSGRANT> @Elegant Beef I mean, you open/close your editor & your browser all the time? |
07:48:11 | FromDiscord | <Elegant Beef> Yep |
07:48:38 | FromDiscord | <JSGRANT> Browser "might" be worth it because how much of a resource hog it is; But eh re: editor |
07:48:50 | FromDiscord | <Elegant Beef> I also dont have my browser to store previously opened tabs |
07:49:26 | FromDiscord | <JSGRANT> I wish there was a "standbye" mode for browser that effectively just 'paused' your cpu usage when the window wasn't focused |
07:49:35 | FromDiscord | <Elegant Beef> Eh window is still opened |
07:50:37 | Oddmonger | is there a « static » in Nim, which was very handy in C to store local values in a proc ? |
07:50:59 | FromDiscord | <Elegant Beef> `let` `const` `var` |
07:51:02 | FromDiscord | <JSGRANT> Sometimes Firefox will idle at ~25% on my main workstation computer; An empty Firefox session with just a new-tab HAS to be much smaller |
07:52:05 | FromDiscord | <Elegant Beef> What does static do that you want in nim? |
07:52:36 | FromDiscord | <Rika> @JSGRANT do you not discard your tabs? |
07:52:37 | FromDiscord | <JSGRANT> *Which obviously means ... it time to rewrite Servo x "Quantum" in Nim. :^) |
07:52:46 | Oddmonger | Elegant Beef: ok i try with let (var is not static afaik) |
07:53:24 | FromDiscord | <JSGRANT> @Rika I do, but i'll leave like a few youtube tabs up as reminders for later; And it'll just eat away at my resources |
07:53:29 | FromDiscord | <Rika> oddmonger: what your looking for is a var that is {.global.} afaik, if you mean variables that keep state between function invocations |
07:53:36 | FromDiscord | <JSGRANT> That and random javascript from blogs |
07:53:49 | FromDiscord | <Rika> > I do, but i'll leave like a few youtube tabs up as reminders for later; And it'll just eat away at my resources↵@JSGRANT i timestamp the youtube videos and discard them |
07:54:18 | FromDiscord | <Rika> my only issue is ram, firefox doesnt seem to free ram even if the tabs are discarded |
07:54:46 | Oddmonger | Rika : yes , that's it |
07:55:27 | Oddmonger | i was trying this (not working and complicated): https://play.nim-lang.org/#ix=2xCy |
07:55:53 | FromDiscord | <Rika> that is also wrong |
07:56:19 | FromDiscord | <Rika> `let mystore:array[10,T] = new array[10,T]` wrong type, `new array[10, T]` makes a `ref array[10, T]` |
07:56:46 | * | vicfred joined #nim |
07:56:46 | FromDiscord | <Rika> store doesnt do anything |
07:56:47 | Oddmonger | i wanted (in store) to test if the data was already there, and if not, store it - else return it in everycase |
07:57:09 | FromDiscord | <Rika> just use actual globals |
07:57:22 | Oddmonger | yes i will do, thank you |
07:58:14 | * | shad0w_ quit (Remote host closed the connection) |
07:58:33 | FromDiscord | <JSGRANT> @Rika I think it's a holdout from my old workflow where I used https://addons.mozilla.org/en-US/firefox/addon/tab-grenade/?src=hp-dl-upandcoming -- which ... LOOKS LIKE IT FINALLY HAS A WEBEXTENSION PORT after a year or-so of just not working in Firefox. |
07:58:35 | FromDiscord | <Rika> https://play.nim-lang.org/#ix=2xCz something like |
07:58:53 | FromDiscord | <Rika> congrats jsgrant |
07:59:31 | Oddmonger | yes that's what i was doing at the beginning |
07:59:40 | Oddmonger | seems we cannot avoid globals sometimes |
08:02:02 | FromDiscord | <Rika> well what you're doing is essentially a global |
08:02:16 | FromDiscord | <Rika> no matter how you write the code its gonna be a global |
08:04:29 | FromDiscord | <Rika> @JSGRANT also i always open `about:memory` and force a `Minimize memory usage` every day or so |
08:06:50 | FromDiscord | <JSGRANT> Didn't even know this existed; lol That said, my lowest-memory machine is this ultrabook with 8gb and my normal laptop is 16gb & 32gb in my desktop so not too-too concerned on that front or anything -- more worried about it eating all these cpu-cycles on these (mostly) old machines. |
08:07:41 | FromDiscord | <Rika> firefox is sipping cpu for me, until i play a video or livestream |
08:08:53 | FromDiscord | <JSGRANT> I'm blown away how much Twitch slows down ALL my machines. |
08:09:19 | FromDiscord | <Rika> have you tried youtube livestreams |
08:09:32 | FromDiscord | <JSGRANT> Like it's 1000% the JS and not the video-quality afaict; Works GREAT with streamlink pushing to vlc / mpv |
08:09:37 | * | Trustable quit (Remote host closed the connection) |
08:09:40 | FromDiscord | <JSGRANT> @Rika Nope |
08:11:08 | FromDiscord | <Rika> its gonna bring your computers to its fuckin knees i got like 50% usage on my fuckin 2700X watching ONE stream |
08:12:04 | FromDiscord | <Theodore> Yo are GUI's in nim OK |
08:12:27 | FromDiscord | <Theodore> Cuz i just tried to make a GUI in rust and almost jumped out my window |
08:12:32 | FromDiscord | <Theodore> never doing that again |
08:13:16 | FromDiscord | <mratsim> OpenGL GUIs seem to be working fine |
08:13:24 | FromDiscord | <mratsim> with nimx, nuklear or imgui |
08:13:26 | FromDiscord | <mratsim> or SDL |
08:14:06 | FromDiscord | <JSGRANT> https://github.com/trustable-code/NiGui/tree/master/examples |
08:14:15 | FromDiscord | <mratsim> "regular" non-immediate GUI, you have IUP that is stable, and for more fancy one, you can use webview, gintro or QML like we do here: https://github.com/status-im/nim-status-client |
08:14:33 | FromDiscord | <Theodore> aight thanksss |
08:14:59 | FromDiscord | <mratsim> what I posted was done in 3 months by a team of Nim newbies (but they are very strong at shipping products) |
08:15:21 | FromDiscord | <JSGRANT> Oh yeah, Gintro is a thing; Moved away from GNOME recently -- so kinda feel off my radar |
08:15:38 | FromDiscord | <Theodore> KDE>>>>> |
08:15:45 | FromDiscord | <Theodore> sry |
08:16:03 | FromDiscord | <JSGRANT> fell* |
08:18:00 | FromDiscord | <Theodore> uh |
08:18:33 | FromDiscord | <Theodore> Is the Nim setup thing supposed to make a `./nimble/bin` |
08:18:37 | FromDiscord | <Theodore> in my ~ |
08:18:43 | FromDiscord | <Theodore> cuz i dont see that |
08:20:05 | FromDiscord | <JSGRANT> .nimble not ./nimble |
08:20:37 | * | FromDiscord quit (Remote host closed the connection) |
08:20:54 | * | FromDiscord joined #nim |
08:21:06 | FromDiscord | <Clyybber> Araq: ping |
08:21:19 | FromDiscord | <JSGRANT> @Theodore Guessing you intended .nimble? |
08:21:25 | FromDiscord | <Theodore> yup |
08:21:37 | FromDiscord | <Theodore> Never installed Nim on linux before |
08:21:44 | FromDiscord | <JSGRANT> Is choosenim found in your path? |
08:21:54 | FromDiscord | <Theodore> nothing from nim is in my path |
08:21:59 | FromDiscord | <Theodore> I have to add that no? |
08:22:37 | FromDiscord | <JSGRANT> Did you ever run the script ? ↵> curl https://nim-lang.org/choosenim/init.sh -sSf | sh |
08:22:58 | FromDiscord | <Theodore> uh i did what it said from https://nim-lang.org/install_unix.html |
08:23:01 | FromDiscord | <Theodore> with a tarball |
08:23:33 | FromDiscord | <Elegant Beef> Use choose nim |
08:23:35 | FromDiscord | <JSGRANT> Honestly just use choosenim; It manages installations for you. |
08:23:35 | FromDiscord | <Elegant Beef> https://media.discordapp.net/attachments/371759389889003532/755343039651643412/unknown.png |
08:23:55 | FromDiscord | <JSGRANT> It's basically rustup / pyenv for Nim |
08:24:07 | FromDiscord | <Theodore> ah its whatever i added it manually to my path |
08:24:37 | FromDiscord | <Theodore> or should i undo this and use choosenim? |
08:25:06 | FromDiscord | <JSGRANT> I mean, did it just install it to your /usr/local/bin ? |
08:25:27 | FromDiscord | <Theodore> no i just moved the folder to $HOME/.nim |
08:25:31 | FromDiscord | <mratsim> who has the rights to create a #science channel in Discord? |
08:25:41 | FromDiscord | <Theodore> then added $HOME/nim/bin to my .bashjrc |
08:25:58 | FromDiscord | <Elegant Beef> @Yardanico @dom96 possibly more mratsim |
08:26:08 | FromDiscord | <JSGRANT> I assume you could just remove the whole directory |
08:27:22 | FromDiscord | <JSGRANT> If it just built to a self-contained dir and not a bunch of diff paths on your root fs |
08:27:23 | FromDiscord | <mratsim> A wild @Yardanico appears lol |
08:27:36 | FromDiscord | <Theodore> ah i installed with choosenim |
08:27:52 | FromDiscord | <Yardanico> I'll create science |
08:28:06 | * | bouzu_ joined #nim |
08:28:12 | FromDiscord | <Yardanico> But I'm kinda away from the civilization |
08:28:37 | FromDiscord | <mratsim> You can create Cavemen as well |
08:28:45 | FromDiscord | <Yardanico> https://media.discordapp.net/attachments/371759389889003532/755344337449255012/IMG_20200915_112815.jpg |
08:28:45 | FromDiscord | <Elegant Beef> I mean im uncivilized aswell but i dont bring it up all the time |
08:28:47 | FromDiscord | <Yardanico> For 3 days |
08:29:09 | FromDiscord | <JSGRANT> @Yardanico I can't tell if it's been raining or not lol |
08:29:43 | FromDiscord | <Theodore> imagine being in civilization |
08:31:04 | FromDiscord | <Yardanico> It's not |
08:32:39 | FromDiscord | <JSGRANT> > Imagine having roofs. |
08:34:32 | FromDiscord | <Clyybber> nice @Yardanico what are you doing? |
08:35:20 | * | PMunch joined #nim |
08:35:50 | * | FromDiscord quit (Remote host closed the connection) |
08:35:51 | Araq | argh... |
08:35:59 | Araq | liftdestructors is killing me |
08:36:20 | Oddmonger | i cannot find {.global.} entry in the documentation, where should i search ? |
08:36:21 | * | FromDiscord joined #nim |
08:36:24 | Araq | @Clyybber: can you please rewrite it? it's becoming the worst module in the compiler |
08:36:25 | * | FromDiscord quit (Remote host closed the connection) |
08:36:45 | * | FromDiscord joined #nim |
08:36:54 | * | FromDiscord quit (Remote host closed the connection) |
08:37:25 | * | FromDiscord joined #nim |
08:38:27 | Araq | Oddmonger, https://nim-lang.org/docs/manual.html#pragmas-global-pragma |
08:38:57 | Oddmonger | thank you, sorry to bother you with that (i had of course checked the index) |
08:39:11 | Araq | the index should have it too |
08:39:21 | * | hnOsmium0001 quit (Quit: Connection closed for inactivity) |
08:40:24 | Araq | and it doesn't, it's all great |
08:42:52 | Oddmonger | i will have the reflex to check directry the manual now, as google doesn't automatically refers to it |
08:46:48 | * | FromDiscord quit (Remote host closed the connection) |
08:56:25 | PMunch | Hmm, maybe with the new and improved jsondocs I should build a terminal tool to search for stuff in the manual right in your terminal |
09:04:25 | * | NimBot joined #nim |
09:07:26 | Oddmonger | dom96: i'm reading your book which is excellent, but i believe you don't talk about pragmas, do you ? (i've checked the index of the book, no «pragma», and didn't see it too in the «compiler» entry) |
09:12:56 | * | revere quit (Quit: quit) |
09:18:28 | * | Tanger quit (Quit: Leaving) |
09:22:19 | Araq | Oddmonger, well we have many pragmas and many are implementation specific extensions |
09:23:06 | Araq | K&R C doesn't list GCC extensions either |
09:28:02 | Oddmonger | of course, i was thinking of a definition (which i have found in the book, at the end of «user definitions type» section - but wasn't in the index) |
09:28:51 | Oddmonger | the definition in the book mentions the nim's official manual entry, which is ok |
09:28:52 | * | vqrs quit (Ping timeout: 260 seconds) |
09:29:16 | * | vqrs joined #nim |
09:46:52 | * | revere joined #nim |
09:48:20 | Araq | found the bug :-) |
09:52:59 | * | Cthalupa quit (Ping timeout: 240 seconds) |
09:57:36 | * | Cthalupa joined #nim |
09:58:22 | Araq | I did it... https://github.com/nim-lang/Nim/pull/15329 |
09:58:23 | disbot | ➥ fixes #15076 |
09:59:09 | Araq | in the end it was an error in my thinking about the problem... |
10:06:10 | FromGitter | <alehander92> :O |
10:21:31 | * | abm joined #nim |
10:22:59 | FromGitter | <alehander92> ok i was just not checking conditions well at all |
10:23:06 | FromGitter | <alehander92> this explains some things |
10:41:57 | * | krux02 quit (Remote host closed the connection) |
10:47:36 | * | endragor quit (Read error: Connection reset by peer) |
10:48:00 | * | endragor joined #nim |
10:51:25 | * | rockcavera joined #nim |
10:54:40 | * | Tanger joined #nim |
11:10:36 | PMunch | Hmm, why is this an illegal recursion? `CommandExec = proc (calc: Calc, argument: string, parseFail: CommandExec): iterator() {.closure.}` |
11:14:03 | PMunch | Shouldn't that argument be passed as a pointer anyways? |
11:26:29 | * | NimBot joined #nim |
11:32:26 | * | def- quit (Quit: -) |
11:34:54 | * | superbia quit (Read error: Connection reset by peer) |
11:35:01 | * | superbia1 joined #nim |
11:35:13 | * | def- joined #nim |
11:42:46 | Araq | PMunch: Nim says type recursions must be through a nominal type |
11:43:17 | Araq | but it's probably a good idea to allow recursions for proc types |
11:53:54 | Oddmonger | can a global variable declared as ref be collected by the GC ? |
11:54:20 | Oddmonger | it's used only in the C api, so there is no reference to it when the calling function is over |
11:54:41 | Oddmonger | but putting it global should protect it, doesn't it ? |
11:56:43 | Araq | well the GC understands global variables if that's what you mean |
11:56:50 | PMunch | Araq, yeah there really shouldn't be a technical reason for this limitation.. |
11:58:01 | * | Kaivo quit (Ping timeout: 246 seconds) |
11:58:12 | Araq | well... mapping that type to C will be fun and might introduce lovely edge cases everywhere |
11:59:36 | PMunch | Ah.. |
11:59:36 | Oddmonger | ok so the GC doesn't collect globals |
12:00:33 | * | Kaivo joined #nim |
12:00:49 | * | bouzu__ joined #nim |
12:03:07 | * | bouzu_ quit (Ping timeout: 240 seconds) |
12:03:44 | FromGitter | <mratsim> The discord bridge is down |
12:04:07 | PMunch | Oh, is that why it's so quiet here today? |
12:04:14 | FromGitter | <mratsim> you can't collect global, they have the same lifetime as the whole programming |
12:04:27 | FromGitter | <mratsim> program* |
12:04:52 | * | femtotones joined #nim |
12:05:18 | Oddmonger | ok thank you |
12:06:02 | * | supakeen quit (Quit: WeeChat 2.9) |
12:06:37 | * | supakeen joined #nim |
12:12:08 | * | pietroppeter joined #nim |
12:24:43 | PMunch | Yardanico, any insight on the Discord bot? |
12:50:49 | FromGitter | <alehander92> huh so |
12:50:53 | FromGitter | <alehander92> {A, B..C} is valid |
12:50:54 | FromGitter | <alehander92> cool |
12:52:01 | PMunch | Yup :) |
12:53:39 | * | awe00 joined #nim |
12:55:02 | * | suchasurge quit (Ping timeout: 256 seconds) |
12:55:22 | * | suchasurge joined #nim |
13:05:34 | * | waleee-cl joined #nim |
13:06:55 | * | Tanger quit (Quit: Leaving) |
13:10:25 | * | idf left #nim ("ERC (IRC client for Emacs 27.1)") |
13:11:04 | * | idf joined #nim |
13:56:19 | * | surma_ joined #nim |
13:57:05 | * | stever_ joined #nim |
13:57:06 | * | jholland___ joined #nim |
13:57:07 | * | bozaloshtsh_ joined #nim |
13:57:20 | * | pangey__ joined #nim |
13:57:41 | * | sirn_ joined #nim |
13:57:59 | * | PMunch quit (Quit: Leaving) |
13:58:51 | * | Yardanico_ joined #nim |
14:00:13 | * | bozaloshtsh quit (Ping timeout: 272 seconds) |
14:00:13 | * | ormiret quit (Ping timeout: 272 seconds) |
14:00:13 | * | jholland__ quit (Ping timeout: 272 seconds) |
14:00:13 | * | sirn quit (Ping timeout: 272 seconds) |
14:00:13 | * | pangey quit (Ping timeout: 272 seconds) |
14:00:14 | * | JStoker quit (Ping timeout: 272 seconds) |
14:00:14 | * | surma quit (Ping timeout: 272 seconds) |
14:00:16 | * | kayw quit (Ping timeout: 272 seconds) |
14:00:16 | * | stever quit (Ping timeout: 272 seconds) |
14:00:16 | * | Yardanico quit (Ping timeout: 272 seconds) |
14:00:17 | * | kayw_ joined #nim |
14:00:17 | * | surma_ is now known as surma |
14:00:17 | * | jholland___ is now known as jholland__ |
14:00:17 | * | stever_ is now known as stever |
14:00:19 | * | sirn_ is now known as sirn |
14:03:37 | * | arecacea1 quit (Ping timeout: 244 seconds) |
14:06:45 | * | arecacea1 joined #nim |
14:07:44 | * | ormiret joined #nim |
14:07:47 | Zevv | This is a nice gem I just received: "You would not want possibility for dumping be switched off for release builds by the #ifndef NDEBUG?" |
14:07:57 | Oddmonger | i have a long seq of tuple to write (no, i don't know meta-way of doing this now) , can i spread it on several line for readability ? I get « alignment error » when i try |
14:08:03 | Zevv | How many negations am I supposed to keep track off in my mind? |
14:09:28 | * | JStoker joined #nim |
14:09:44 | * | FromDiscord joined #nim |
14:09:54 | * | Kaivo quit (Ping timeout: 256 seconds) |
14:09:57 | Zevv | Oddmonger: "alignment error"? You should really be able to, but make sure your comma is the last char on the line |
14:11:53 | * | Kaivo joined #nim |
14:12:23 | FromDiscord | <Yardanico> The bridge is up, i was away since we were doing a kind of a small conference there |
14:12:48 | FromDiscord | <Yardanico> I'll still be away since getting my phone charged there isn't easy |
14:13:12 | Oddmonger | Zevv: ah yes, with the comma as last char, it's ok. Thank you |
14:13:44 | Oddmonger | i tried to go to the next after the '=' |
14:13:54 | FromDiscord | <Yardanico> I'm in a small student camp, there's only 60 of us there |
14:13:59 | FromDiscord | <Yardanico> Until Friday |
14:14:06 | FromDiscord | <exelotl> @Theodore you don't need to reach for a decompiler to view the C code that Nim produces. Just check the contents of your nimcache folder |
14:15:13 | FromDiscord | <exelotl> You should compile with -d:danger and -gc:arc if you don't want the generated code to be full of runtime checks and GC calls |
14:19:17 | FromDiscord | <mratsim> nim c --nimcache:myCfolder foo.nim |
14:20:32 | * | kayw_ quit (Quit: WeeChat 2.8) |
14:21:55 | * | pietroppeter quit (Quit: Connection closed for inactivity) |
14:24:00 | * | muffindrake quit (Quit: muffindrake) |
14:25:32 | * | dv^_^ quit (Quit: leaving) |
14:27:32 | * | pietroppeter joined #nim |
14:28:09 | FromGitter | <alehander92> ok |
14:28:22 | FromGitter | <alehander92> i need to start mapping graphs, not nodes in my maps |
14:28:41 | FromGitter | <alehander92> because otherwise the whole "update aliases when x changes" |
14:28:49 | FromGitter | <alehander92> becomes more code anyway |
14:35:51 | * | krux02 joined #nim |
14:36:26 | * | krux02_ joined #nim |
14:40:30 | * | krux02 quit (Ping timeout: 265 seconds) |
14:47:32 | * | thomasross joined #nim |
14:57:33 | FromDiscord | <mbenam> Good morning. Is there a zero configuration or mdns library written in nim? |
14:58:54 | * | bouzu__ quit (Ping timeout: 244 seconds) |
15:00:42 | Zevv | Not that I know of |
15:01:07 | Zevv | you should be able to bind to avahi relatively easy, the problem is that avahi itself has a bit of a cumbersome API already |
15:01:12 | Zevv | callback into callbacks into callbacks |
15:04:52 | * | bouzu__ joined #nim |
15:04:53 | * | narimiran quit (Ping timeout: 260 seconds) |
15:05:28 | * | bouzu__ quit (Remote host closed the connection) |
15:10:20 | * | muffindrake joined #nim |
15:11:00 | FromDiscord | <kodkuce> @Araq you replyed to my form thread :) , hmm atm i kinda got it running by using qemu, its kinda slow but ye would love 10 time more to not have to deal with qemu, so can you elaborate what you mean by those 3 points |
15:12:11 | FromDiscord | <kodkuce> hmm sec |
15:17:58 | FromDiscord | <kodkuce> i was missing cross-aarch64-linux-gnu-libc-0.33_3 but installed that too dident help |
15:21:01 | FromDiscord | <kodkuce> i simplyfided it for not just trying to build a nim file with echo "Kmee" |
15:23:49 | FromDiscord | <kodkuce> sent a code paste, see https://play.nim-lang.org/#ix=2xEB |
15:24:00 | FromDiscord | <kodkuce> i have all this installed |
15:24:31 | * | lritter joined #nim |
15:28:04 | * | a_chou joined #nim |
15:28:50 | * | krux02_ is now known as krux02 |
15:28:52 | FromDiscord | <kodkuce> responed on form too |
15:33:31 | * | muffindrake quit (Quit: muffindrake) |
15:34:16 | * | muffindrake joined #nim |
15:38:18 | * | a_chou quit (Remote host closed the connection) |
15:39:06 | * | a_chou joined #nim |
15:43:26 | * | a_chou quit (Remote host closed the connection) |
15:50:20 | * | NimBot joined #nim |
16:03:20 | * | vycb[m] left #nim ("Kicked by @appservice-irc:matrix.org : Idle for 30+ days") |
16:06:29 | * | PMunch joined #nim |
16:07:03 | * | hnOsmium0001 joined #nim |
16:08:43 | PMunch | Hmm, Prestige, I just encountered your issue. But in the same project I didn't have this issue earlier today |
16:09:08 | PMunch | Granted that was across two different machines with possibly different versions of NimLSP and Nim |
16:13:55 | PMunch | Hmm, is there a way to uppercase an argument when combining identifiers in a template? |
16:15:41 | PMunch | I have an enum called ArithmeticCommands and a constant called arithmeticDocumentation (which is an array indexed by the enum). Now I want to create a template for a repeating piece of code for different commands |
16:16:32 | PMunch | But without this I would need to do something like `createHelpSection(Arithmetic, arithmetic)` to have both an upper and lower case version to tag into my template |
16:20:20 | disruptek | do it. |
16:22:24 | PMunch | Huh? |
16:23:16 | disruptek | there's no way to titlecase the identifier inside a template embed afaik. |
16:25:20 | Prestige | PMunch: hm interesting |
16:25:36 | PMunch | disruptek, ah I see |
16:28:45 | * | PMunch quit (Quit: leaving) |
16:29:33 | disruptek | i haven't taken a day off in over 9 weeks, and i have almost nothing to show for it. i think i need a career change. |
16:29:41 | disruptek | i mean, y'know, a career. |
16:29:56 | supakeen | That just sounds American. |
16:30:15 | disruptek | fuck this shithole country. |
16:30:37 | voidpi | i'm not being exploited atm but kind of want to |
16:31:00 | oz | careers are annoying, just take the money and run! |
16:31:01 | Prestige | you want to be exploited |
16:31:03 | Prestige | ? |
16:31:16 | disruptek | my neighbors are xenophobic, homophobic, racist mysogynists. |
16:31:34 | Prestige | disruptek: pee in their rosebushes |
16:31:36 | voidpi | you can also say work if you like |
16:31:54 | * | apahl_ quit (Ping timeout: 244 seconds) |
16:31:57 | disruptek | i'm talking about my fellow americans. |
16:32:05 | disruptek | what the fuck is wrong with these people? |
16:32:20 | voidpi | what did they do now? |
16:32:22 | FromDiscord | <kodkuce> go take bigest loan you can and go to spain |
16:32:23 | disruptek | did you see this new RAND study? |
16:32:30 | FromDiscord | <kodkuce> declare bancrapcy |
16:32:35 | FromDiscord | <kodkuce> say you spend tall on gabling |
16:32:55 | disruptek | i did lose >$100k gambling against musk, the criminal. |
16:33:20 | FromDiscord | <zetashift> disruptek, no options open for moving somewhere you think is better? |
16:33:26 | voidpi | what RAND study? |
16:34:05 | disruptek | i will find a summary. |
16:34:06 | * | apahl joined #nim |
16:34:15 | disruptek | the paper is a bit long. |
16:34:49 | disruptek | https://www.fastcompany.com/90550015/we-were-shocked-rand-study-uncovers-massive-income-shift-to-the-top-1 |
16:34:53 | Zevv | It's like toilet paper |
16:35:22 | disruptek | a shitty summary. |
16:35:28 | voidpi | yeah, I'm shocked |
16:35:31 | voidpi | SHOCKED! |
16:35:49 | voidpi | I'm still reading ssalewsky's book |
16:35:59 | voidpi | better keep doing that |
16:36:01 | disruptek | 7 minutes of outrage and then they'll move on to something else. |
16:36:56 | disruptek | it's hard to move without proof of employment elsewhere. |
16:37:28 | voidpi | I just stoped trying |
16:37:38 | voidpi | like years ago |
16:38:03 | disruptek | i haven't been consistent. but the responses i get, if any, are incredibly discouraging. |
16:38:59 | Prestige | not working atm? |
16:39:42 | voidpi | nope |
16:40:05 | Prestige | I mean disruptek |
16:41:00 | disruptek | i've been self-employed since 2007, but i gave up my businesses a few years ago to focus on software. |
16:41:20 | disruptek | it's been great, really. |
16:41:24 | disruptek | so wonderful. |
16:42:30 | Zevv | yeah nice isn't it |
16:42:43 | disruptek | anyway. i'm just feeling shitty 'cause i can barely sit here without back pain. |
16:42:56 | disruptek | it's frustrating to be greeted by mangling code yet again. |
16:43:09 | disruptek | solitudesf know's what's up. |
16:43:33 | Prestige | I just ordered a standing desk because of that |
16:43:39 | Prestige | well, it gets here tomorrow |
16:45:19 | disruptek | i can't actually stand where my workstation is; the ceiling is too low. |
16:46:57 | Prestige | ah. that's too bad |
16:48:05 | disruptek | yeah, i need to make some modifications but i can't afford what i have in mind. |
16:51:58 | disruptek | pro tip: get yourself a heavy rubber pad and comfortable shoes. then a standing desk is doable. i'd also start with shorter periods of standing work. |
16:53:25 | Prestige | Yeah I need a standing matt, not sure what I'd prefer. Saw a few nice ones but they were crazy pricey |
16:55:15 | disruptek | well, don't get a nice one. |
16:55:27 | * | Prestige folds a towel |
16:55:34 | disruptek | we're talking about rubber, that's it. |
16:55:47 | disruptek | you're going to literally walk all over it. |
16:56:06 | disruptek | https://www.harborfreight.com/4-piece-anti-fatigue-foam-mat-set-94635.html |
16:57:48 | voidpi | nice |
16:57:53 | FromDiscord | <acek7> greetings robots |
16:57:56 | disruptek | if you spend too much money i will come after you. |
16:59:48 | disruptek | acek7: you make me want to be a better man. |
17:01:43 | FromDiscord | <acek7> get back to work |
17:02:33 | disruptek | i think prestige is a bathroom attendant. there's no shame in it. |
17:03:00 | Prestige | I attend them often |
17:03:18 | disruptek | you have to envy the man who knows what he wants. |
17:03:29 | disruptek | who has found his calling. |
17:03:57 | FromDiscord | <acek7> are you practicing inspirational speeches |
17:04:46 | disruptek | nah, i've been an amateur all my life. mostly the women's room at the gym. |
17:05:17 | disruptek | just giving props to those who've managed to turn pro and make it to the big leagues. |
17:05:22 | disruptek | the show, if you will. |
17:09:16 | * | narimiran joined #nim |
17:12:23 | * | Trustable joined #nim |
17:13:21 | * | endragor quit (Remote host closed the connection) |
17:13:49 | * | endragor joined #nim |
17:21:34 | * | femtotones quit (Quit: Default Quit Message) |
17:28:19 | * | tane joined #nim |
17:29:17 | * | a_chou joined #nim |
17:43:12 | disruptek | clyybber: i'm getting codegen for the /same/ proc symbol yet different arguments (a generic); shouldn't i be getting a new proc from the frontend? is this an optimization? |
17:45:58 | * | Vladar quit (Quit: Leaving) |
18:11:33 | * | go|dfish quit (Ping timeout: 260 seconds) |
18:12:25 | * | Kaivo quit (Ping timeout: 240 seconds) |
18:15:17 | * | Kaivo joined #nim |
18:15:22 | * | go|dfish joined #nim |
18:17:00 | FromGitter | <alehander92> Araq i'll probably |
18:17:25 | FromGitter | <alehander92> be ready with the fixed version tomorrow |
18:17:26 | FromGitter | <alehander92> morning |
18:17:32 | Araq | ok |
18:18:49 | disruptek | it's this stupid prototype stuff. |
18:19:02 | disruptek | i don't understand why we have to generate a prototype even before we have a proc. |
18:22:22 | * | solitudesf quit (Remote host closed the connection) |
18:22:26 | FromGitter | <alehander92> disruptek take care of the back thing |
18:22:47 | disruptek | 'bout to try some masturbation. |
18:23:14 | disruptek | this codegen is infuriating. |
18:24:07 | FromDiscord | <Clyybber> disruptek: You mean the same proc symbol? |
18:24:15 | FromGitter | <alehander92> Araq is it ok to use asserts in compilr code |
18:24:41 | FromDiscord | <Clyybber> alehander92: Its ok as a "unreachable" assert |
18:24:49 | FromDiscord | <Clyybber> but not for error messages |
18:25:02 | Araq | disruptek: so that mutual recursions are supported |
18:25:26 | FromGitter | <alehander92> disruptek better just run a bit |
18:25:35 | FromGitter | <alehander92> clyybber hm |
18:25:44 | FromGitter | <alehander92> makes sense |
18:25:44 | disruptek | i'm afraid to spill my seed while running. |
18:26:28 | disruptek | clyybber: the param becomes TaintedString between the prototype generation to appease araq's mutual recursion, and the header generation after we have a proc symbol. |
18:26:29 | FromDiscord | <Clyybber> burden of mankind |
18:26:31 | FromGitter | <alehander92> yeah it's better to make little disrupteks! |
18:26:34 | FromGitter | <alehander92> instead of that |
18:27:19 | FromDiscord | <Clyybber> disruptek: I think its really best to always resolve for now |
18:27:35 | FromDiscord | <Clyybber> to get somethign that actually works |
18:27:39 | disruptek | i don't know what that means. |
18:27:48 | FromDiscord | <Clyybber> resolve the alias |
18:27:50 | Araq | it's not "my mutual recursion", Nim programmers expect that the backend can handle arbitrary Nim code... |
18:27:56 | disruptek | it's not an alias. |
18:28:05 | FromDiscord | <Clyybber> disruptek: TaintedString is an alias |
18:28:11 | FromDiscord | <Clyybber> unless you enable TaintMode |
18:28:17 | disruptek | not when it's from a generic, it's not. |
18:28:40 | FromGitter | <alehander92> ok! |
18:28:51 | FromDiscord | <Clyybber> disruptek: maybe resolve it anyways? |
18:28:57 | disruptek | anyways? |
18:29:03 | FromDiscord | <Clyybber> yeah |
18:29:09 | disruptek | how can i tell? |
18:29:13 | FromDiscord | <Clyybber> regardless of wether it stemmed from a generic or not |
18:29:15 | FromDiscord | <Clyybber> just resolve it |
18:29:22 | * | disruptek sighs. |
18:29:26 | FromDiscord | <Clyybber> and if it resolves to something we already generated skip it |
18:29:29 | disruptek | PRs accepted. |
18:29:44 | disruptek | you seem to think that this code is somehow special. |
18:29:45 | disruptek | it's not. |
18:29:56 | disruptek | the issue isn't the mangler. |
18:30:00 | disruptek | the issue is the codegen. |
18:30:27 | disruptek | Araq: we need less ambitious nim programmers or more ambitious codegen. |
18:30:41 | FromDiscord | <Clyybber> we need clear problem descriptions |
18:30:53 | disruptek | i need health insurance. |
18:31:17 | Araq | we need a disruptek who gets shit done instead of complaining about how hard compiler development is |
18:31:32 | disruptek | i'd love to meet him. |
18:32:12 | disruptek | this fucking pr has languished for months. i don't see anyone else taking it over. |
18:37:40 | FromGitter | <Lecale> Anyone use nim-plotly much? |
18:40:16 | disruptek | !requires nim-plotly |
18:40:17 | disbot | nim-plotly: 11cwpearson/raph-datasets2 71 total |
18:40:23 | disruptek | no, is the answer. |
18:40:51 | FromGitter | <Lecale> masturbation gives you a bad back by the way |
18:41:04 | disruptek | preaching to the choir, my friend. |
18:41:55 | * | pietroppeter quit (Quit: Connection closed for inactivity) |
18:43:19 | disruptek | still, it's apparently the only thing i'm good at. |
18:43:34 | disruptek | everything else, /and i mean everything/, is _too_ hard. |
18:46:06 | * | superbia1 is now known as superbia |
18:46:23 | * | arecacea1 quit (Remote host closed the connection) |
18:48:31 | FromGitter | <Lecale> Opened an issue, the slow but sure approach |
18:49:16 | disruptek | Araq: the fact is, the codegen design is stupid. you know it, and i know it. mutual recursion is a problem /due to the design/, not due to the ambition of the user. |
18:49:25 | * | a_chou quit (Ping timeout: 264 seconds) |
18:49:42 | disruptek | "work harder" is not a solution, it's an excuse you lay at my feet. |
18:50:05 | disruptek | "figure it the fuck out" is not helpful, especially when you cannot be bothered to write comments. |
18:50:08 | * | arecacea1 joined #nim |
18:50:11 | Araq | "due to the design"? what are you talking about |
18:50:17 | Araq | proc p # forward decl |
18:50:22 | Araq | proc q = p() |
18:50:28 | Araq | proc p() = q() |
18:50:41 | Araq | is valid Nim code and must be translatable to C |
18:50:46 | disruptek | the design of using a fucking string and ropes that must be serialized to strings before the logic is complete. |
18:50:52 | Araq | ergo we need to generate C prototypes |
18:51:06 | Araq | no amount of swearing changes this fact |
18:51:07 | disruptek | okay, buddy, i guess you're just not smart enough to solve the problem any other way. |
18:51:51 | Araq | indeed I'm not smart enough to change the C spec to suit my codegen conveniences |
18:52:04 | disruptek | it's not a convincing argument that i can write nim this way but i cannot write c. |
18:52:34 | disruptek | if i can do it in my editor, why can't you do it in your compiler? |
18:53:12 | Araq | please read again what I wrote |
18:53:27 | Araq | I'm trying to explain to you why we need to generate C prototypes |
18:53:46 | disruptek | we don't need to generate the strings. we just need to generate the concept of a prototype. |
18:53:51 | disruptek | it should be serialized later. |
18:54:14 | Araq | I'm not talking about strings, I am explaining the basic requirements to you |
18:54:22 | Araq | maybe you already know them |
18:54:29 | disruptek | well, i wish i could say it was a helpful refresher. |
18:55:54 | disruptek | the mangler deals with strings. it's a serialization that, imo, should happen as late as possible. yet the ast is mutatable and in fact mutating during codegen. i'm asked to mangle the same symbols multiple times, in multiple contexts, with multiple (mutable and mutated) values. |
18:55:58 | disruptek | it's madness. |
18:56:08 | disruptek | to suggest that this is somehow the required design is insulting. |
18:56:16 | FromDiscord | <Vindaar> @Lecale: I just read your issue. Seems a bit weird to me. You sure that `--threads:on` is really applied? |
18:57:33 | Araq | never said anything like that, I explained C prototypes to you |
18:58:12 | disruptek | then we agree. cool. |
18:58:57 | Araq | and the old mangler supports the madness, you compute the mangled name, you set s.loc.r to it so that it's always accessed consistently, the end. Now I can understand that it's much harder with IC but still |
18:59:22 | disruptek | but still what? |
18:59:36 | Araq | I don't see why we want /need to rewrite jsonutils and ignore 3 important packages just because. |
18:59:52 | Araq | bbl |
19:01:40 | shashlick | Araq - quick qn on nimble |
19:01:42 | disruptek | then don't. i honestly don't care. i don't use testutils and i don't use jsonutils. i don't care about accessing tainted strings from c++. i don't read the c source and i don't need ic. almost no one does. i don't work for status and they won't even interview me. why should i give two shits if they can compile their code faster? |
19:02:07 | shashlick | http://ix.io/2xFY is what i'm thinking for `nimble develop` with all dependencies also being in develop mode |
19:02:15 | shashlick | any feedback - will it meet your needs |
19:03:20 | FromDiscord | <Avatarfighter> What's good everyone |
19:03:41 | FromDiscord | <JSGRANT> @Avatarfighter Off for a few daaaaaaaays :^) |
19:03:42 | Prestige | yo @Avatarfighter |
19:04:01 | FromDiscord | <Avatarfighter> @JSGRANT how are your nim adventures 🙂 |
19:04:08 | FromDiscord | <Avatarfighter> Prestige: working on anything exciting today./ |
19:05:25 | Prestige | well after work in a few hours, have a PR to review for my window manager. Probably just working on that this evening |
19:05:29 | Prestige | Hbu? |
19:06:19 | FromDiscord | <Avatarfighter> I managed to substantially lower the ram usage of my scraper atm 😄 |
19:06:34 | Prestige | Ay nice, what did you change? |
19:06:44 | FromDiscord | <Avatarfighter> I made a priority system for the URLs |
19:06:50 | FromDiscord | <JSGRANT> @Avatarfighter On hold for a few days; Moving all my machines back to Arch (since I switched back to KDE fulltime) lol |
19:07:09 | FromDiscord | <Avatarfighter> Since the site has certain pages that take priority over others I sort the ones I don't need in the moment on a file |
19:07:29 | FromDiscord | <Avatarfighter> @JSGRANT that's super exciting |
19:07:32 | FromDiscord | <Avatarfighter> arch btw |
19:08:15 | FromDiscord | <JSGRANT> Still looking to see if there are semi/lil-complete qml and/or general qt bindings for Nim. It's certainly a tall order on / for the latter. |
19:08:32 | FromDiscord | <Avatarfighter> there is a qml binding I believe |
19:08:55 | FromDiscord | <JSGRANT> There are a few, but the ones I've seen haven't been touched in over a year |
19:09:28 | FromDiscord | <JSGRANT> @Avatarfighter Also yeah -- pretty nice / easy to setup. Think I'm going to have to fork a kwin script though because it hasn't been updated in sometime and doesn't work on the latest Plasma |
19:09:28 | FromDiscord | <Avatarfighter> Status is using a QML binding I believe that is pretty modern, let me find it |
19:10:09 | FromDiscord | <JSGRANT> https://github.com/status-im/nim-status-client is an app |
19:10:31 | FromDiscord | <JSGRANT> Not sure if they have their own seperate lib outside of it though |
19:10:35 | FromDiscord | <Avatarfighter> I think they might use their own QML lib |
19:10:44 | FromDiscord | <Avatarfighter> NimQml would be the name otherwise |
19:10:49 | FromDiscord | <JSGRANT> Oh, maybe https://github.com/status-im/nim-status-client/blob/master/docs/qml_api.md |
19:11:26 | FromDiscord | <Avatarfighter> !repo nimqml |
19:11:27 | disbot | https://github.com/filcuc/nimqml -- 9nimqml: 11Qt Qml bindings for the Nim programming language 15 72⭐ 9🍴 7& 1 more... |
19:11:31 | FromDiscord | <Avatarfighter> its that one |
19:11:46 | FromDiscord | <JSGRANT> Yeah, that's the one I saw and hasn't been touched in sometime |
19:12:08 | FromDiscord | <Avatarfighter> Probably nothing is broken tbh |
19:12:29 | FromDiscord | <JSGRANT> Don't know the QT ecosystem at all though -- so I guess I'll have to play around and see what works (hopefully as said, nothing is blatantly broken or anything) |
19:13:44 | FromDiscord | <JSGRANT> I assume QML is probably pretty stable, because it's frontend dev facing afact ? idk |
19:13:50 | FromDiscord | <JSGRANT> I guess I'll TIAS |
19:14:11 | FromDiscord | <JSGRANT> Well ... in a few days lol |
19:14:16 | FromDiscord | <Avatarfighter> from what I know QML is the scripting system for QT |
19:15:23 | FromDiscord | <JSGRANT> I really hate when projects use 'flat case' and not camel for folder names / files. Such a small quibble but I see it in examples all over |
19:15:51 | FromDiscord | <Avatarfighter> you would hate my projects |
19:15:57 | FromDiscord | <JSGRANT> you monster |
19:15:58 | FromDiscord | <JSGRANT> lol |
19:15:58 | FromDiscord | <Avatarfighter> its a mix of whatever I'm feeling like in the moment |
19:16:19 | FromDiscord | <Avatarfighter> sometimes we have snakecase, flat, camel |
19:16:25 | * | gmaggior joined #nim |
19:17:19 | FromDiscord | <JSGRANT> I have no issue with making snake and camel & feel like it 'can' be done well assuming certain discintions -- flat is a crime. Especially if it isareallylongnameforsomething. |
19:17:28 | FromDiscord | <JSGRANT> making / mixing* |
19:19:44 | * | femtotones joined #nim |
19:21:51 | FromDiscord | <Recruit_main707> haxcramper was working on wrapping clang to later wrap qt and complex libraries with it |
19:21:57 | FromDiscord | <Recruit_main707> i think it was him |
19:22:27 | FromDiscord | <Recruit_main707> the clang wrapper was going great, but i dont know how is the qt one doing |
19:23:07 | FromDiscord | <haxscramper> Yes, I'm still kind of working on it. Clang wrapper itself is 99% done, I'm already working on helpers for wrapping logic |
19:23:46 | FromDiscord | <haxscramper> But mostly it is dealing with C++ being garbage and putting trillions of case/if/else all over the place & figuring out how exactly clang ast is structured |
19:25:23 | FromDiscord | <Recruit_main707> did you wrap it by hand? |
19:25:31 | FromDiscord | <Recruit_main707> or you used c2nim/nimterop |
19:25:44 | FromDiscord | <Clyybber> disruptek: Maybe let it sit for a while and do something else |
19:26:42 | FromDiscord | <haxscramper> I used libclang in c++ to generate raw nim wrappers and then repeated whole process with raw + nim to generate more friendly API |
19:26:45 | * | narimiran quit (Ping timeout: 240 seconds) |
19:27:06 | FromDiscord | <haxscramper> Documentation + renaming everything so it would fit nim coding conventions |
19:32:39 | FromDiscord | <PizzaFox> is it recommended to copypaste https://github.com/nim-lang/nimble/blob/master/src/nimblepkg/cli.nim into my project so i dont have to deal with cli packages |
19:34:08 | FromDiscord | <haxscramper> You want to have some kind of interactive nimble setup for project or just looking for CLI interface generator? |
19:34:35 | FromDiscord | <PizzaFox> mostly i want code to make prompting easy |
19:34:46 | FromDiscord | <PizzaFox> and its nimble ™️ so i trust it |
19:37:24 | FromDiscord | <haxscramper> I just checked - you can't actually use it nimble file itself, since it reiles on terminal stdlib module |
19:38:02 | FromDiscord | <haxscramper> For regular code you can just `import nimblepkg/cli`, |
19:39:24 | FromDiscord | <PizzaFox> today i will `nimble install nimble` |
19:46:24 | Prestige | @PizzaFox lmk if the world implodes |
19:46:41 | FromDiscord | <PizzaFox> in javascript ecosystem you can `npm install npm` |
19:46:45 | FromDiscord | <PizzaFox> in theory nothing bad will happen |
19:47:28 | * | awe001 joined #nim |
19:49:47 | * | awe00 quit (Ping timeout: 240 seconds) |
19:50:55 | FromDiscord | <kodkuce> araq: do you know how to solve that magic? |
19:53:46 | FromDiscord | <lqdev> @PizzaFox the javascript ecosystem is known for being… weird. think is-odd/is-even. |
19:54:16 | FromDiscord | <PizzaFox> listen |
19:56:20 | FromDiscord | <PizzaFox> there are always tradeoffs https://zws.im/ |
19:56:43 | FromDiscord | <ache of head> lmao |
19:57:13 | FromDiscord | <lqdev> https://github.com/nim-lang/Nim/issues/15334 |
19:57:15 | disbot | ➥ Macro with typed param can't be used as a pragma attached to a type ; snippet at 12https://play.nim-lang.org/#ix=2xGf |
19:58:45 | shashlick | choosenim depends on nimble |
20:07:39 | * | a_chou joined #nim |
20:12:42 | * | solitudesf joined #nim |
20:19:46 | muffindrake | So I've not been on top of Nim for a while. Has memory management been deterministic, or was there a garbage collector at some point? |
20:21:08 | FromDiscord | <lqdev> there still is a GC, but deterministic mman is on its way. |
20:21:10 | federico3 | plot twist: a deterministic garbage collector |
20:22:41 | muffindrake | I'd like more details than that if possible. |
20:26:59 | FromDiscord | <dom96> https://nim-lang.org/docs/gc.html |
20:27:50 | FromDiscord | <PizzaFox> can i read the version from `pkg.nimble` somehow |
20:27:55 | FromDiscord | <PizzaFox> or is it exposed at build time or smth |
20:28:39 | FromDiscord | <PizzaFox> stackoverflow from a year ago says use parsecfg on it |
20:29:05 | FromDiscord | <haxscramper> https://nim-lang.org/docs/nimscript.html#version |
20:29:53 | FromDiscord | <haxscramper> Or you can do `nimble dump` to get information for package. Or you can try to use parsecfg for it |
20:30:12 | FromDiscord | <PizzaFox> i want it do be hardcoded at compile time |
20:31:12 | FromDiscord | <haxscramper> What are you trying to do? |
20:31:31 | FromDiscord | <dom96> `NimbleVersion` gets defined IIRC |
20:32:26 | FromDiscord | <PizzaFox> just want to log version in a cli |
20:32:43 | FromDiscord | <PizzaFox> without having to maintain a random string in both `pkg.nimble` and my `cli.nim` |
20:34:54 | FromDiscord | <PizzaFox> there is not `NimbleVersion` |
20:43:16 | FromDiscord | <dom96> https://github.com/nim-lang/nimble/blob/master/tests/tester.nim#L771 |
20:48:29 | FromDiscord | <minierolls> does anyone know how to exit the program |
20:48:40 | FromDiscord | <Elegant Beef> I think you take the red pill |
20:48:43 | FromDiscord | <minierolls> e.g. `exit(0)` in other languages |
20:48:50 | FromDiscord | <Elegant Beef> `quit` |
20:48:58 | FromDiscord | <minierolls> do i have to `discard quit` |
20:49:03 | * | lritter quit (Ping timeout: 260 seconds) |
20:49:05 | superbia | negative |
20:49:22 | FromDiscord | <minierolls> hmm, im getting an error that `quit` is of type `None` tho 😦 |
20:49:36 | FromDiscord | <Recruit_main707> quit("error msg") |
20:49:40 | FromDiscord | <Elegant Beef> There are two quit proc signatures |
20:49:41 | FromDiscord | <minierolls> ah ty |
20:50:36 | federico3 | it's classified |
20:55:55 | * | haxscramper joined #nim |
20:55:56 | * | lritter joined #nim |
20:58:11 | haxscramper | Araq: is there any posts/discussions/todo-lists for compiler codegen? I saw ropes|strings-bad thing come up seveal times (e.g that better codegen is necessary & it shold not be string-based) and since I will be writing some kind of codegen for Qt thing I can take this into account. |
20:58:50 | haxscramper | & try to design it from the start in a way that might /potentially/ be used in compiler |
21:01:18 | FromDiscord | <mratsim> I suppose it's about introducing an intermediate IR step |
21:01:44 | FromDiscord | <mratsim> and you lower to this IR and then you lower the IR to C code (or LLVM IR or JS) |
21:02:09 | FromDiscord | <mratsim> this is similar to Rust MIR that they introduced and it was apparently a big deal |
21:03:06 | haxscramper | Is it possible to just implement simple C code representation that might potentially be expanded into full IR later on, or this is something that |
21:03:15 | haxscramper | must be designed from the start |
21:03:37 | haxscramper | In once piece |
21:04:00 | haxscramper | s/simple/not really complex/ |
21:07:31 | * | a_chou quit (Ping timeout: 272 seconds) |
21:10:53 | disruptek | we have some plans for a new IR, it's just that they are in competition with nim's 2020 goals. |
21:12:30 | disruptek | there's even some new PoC stuff, but so what. we can talk about strings and ropes but they are really unrelated to a proper impl. |
21:13:47 | disruptek | ideally, it's ast1->ast2->(llvm-ir|js). we currently have ast0->(ropes|strings). |
21:14:22 | FromDiscord | <mratsim> Coming soon Veave: https://github.com/vlang/v/issues/3814#issuecomment-692899580 |
21:14:22 | disbot | ➥ V Concurrency Considerations |
21:14:40 | FromDiscord | <Avatarfighter> Pepelaugh |
21:15:05 | FromDiscord | <Avatarfighter> What is new disruptek |
21:15:36 | disruptek | i'm fucking tired of all the shitty swearing in this channel. |
21:15:53 | FromDiscord | <haxscramper> > Coming soon Veave↵I think it is the reason why V "lang" is on the hackernews again. |
21:17:04 | * | tribly quit (Quit: WeeChat 2.9) |
21:17:46 | FromDiscord | <mratsim> No it's just a "normal" post |
21:17:52 | FromDiscord | <Rika> Poof of concept |
21:18:04 | * | tribly joined #nim |
21:19:10 | disruptek | i'm just frustrated because i can't afford to work on code that no one understands and even fewer people use. |
21:20:46 | FromDiscord | <haxscramper> I thought it is related to incremental compilation which would benefit literally everyone? |
21:21:06 | disruptek | you mean because of all the people complaining about how slow the compiler is? |
21:21:21 | disruptek | it solves which Real Problem, exactly? the one where we don't have enough complexity? |
21:21:32 | disruptek | the one where we need more complications before we consider replacing the backend? |
21:21:44 | FromDiscord | <mratsim> running out of CI time and having lots of engineer waiting for it |
21:21:49 | disruptek | the one were we need more changes introducing more bugs and fewer people that understand the existing code? |
21:22:24 | disruptek | if you can afford the engineers in the first place, buy more ci time. |
21:22:45 | disruptek | server time is cheap compared to programmer time. |
21:22:53 | disruptek | if it's not, then you aren't hiring the right programmers. |
21:23:10 | disruptek | show me a real fucking problem worth solving here, because this ain't it. |
21:23:45 | disruptek | but i digress. |
21:24:29 | FromDiscord | <Rika> Honestly I think IC is great but we already have blazing fast compilation times so I get that adding it at the cost of massive complexity addition isn't worth it |
21:24:45 | disruptek | it's putting the cart before the horse. |
21:25:08 | disruptek | impl ast2 /first/ and then we can do whatever you want with a solid piece of idiomatic, modern nim. |
21:25:17 | FromDiscord | <Rika> Prolly would be best to add it once we have rust level compile times :P |
21:25:25 | disruptek | this bullshit where we're tied to 12 year-old pascal-cum-nim is absurd. |
21:25:27 | FromGitter | <iffy> I realize I can use `getKeyOrDefault`, but is there a way to tell the compiler that `hasKey` has confirmed that there won't be a KeyError? https://play.nim-lang.org/#ix=2xGU |
21:25:53 | disruptek | iffy: there isn't really an idiom to save yourself the lookup, no; at least, not in tables. |
21:26:29 | FromGitter | <iffy> I'm fine doing the lookup; I just don't know how to tell everything under the true branch of `hasKey` that there really is a key |
21:26:31 | FromDiscord | <Rika> It might come once drnim is done? |
21:27:00 | disruptek | iffy: sorry, i don't get it. |
21:27:13 | disruptek | drnim cannot analyse that, anyway. |
21:28:16 | FromGitter | <iffy> The compiler complains that my proc `Error: can raise an unlisted exception: ref KeyError` but I don't see any possible way that KeyError can be raised. I mean, unless some threads are corrupting memory in between lines 9 and 11 |
21:28:31 | disruptek | just capture it in try/except and discard. |
21:30:30 | FromGitter | <iffy> okay; in TypeScript there are (sometimes fragile) type guards that let you inform the compiler, "hey, I've just proved this key exists. You can safely assume it exists for all the code after this point." I was hoping `hasKey` would do that for me. Anyway, using try/except is fine |
21:30:45 | FromGitter | <iffy> thanks! |
21:31:41 | disruptek | yeah, the reason you can't do it is that we don't have the presumptive primitives you want, afaik. |
21:32:02 | disruptek | so what we do have does have an effect, which is why it's a problem for you. |
21:33:14 | * | femtotones quit (Quit: Default Quit Message) |
21:33:39 | FromGitter | <iffy> I actually like the code better without trying `hasKey` first. So win-win :) |
21:34:12 | disruptek | write what looks good and you'll have an easier time optimizing it /if you must/ later. 😉 |
21:37:12 | FromDiscord | <haxscramper> Is there an `expandMacros` can still show code if there is a type error in it? |
21:37:42 | FromDiscord | <haxscramper> (edit) 'Is there an `expandMacros` ... can' => 'Is there an `expandMacros`alternative that' |
21:39:49 | FromDiscord | <mratsim> result.toStrLit |
21:39:56 | FromDiscord | <mratsim> echo result.toStrLit* |
21:40:15 | FromDiscord | <haxscramper> Yes, but I'm testing macro and I either get 80+ prints or none |
21:40:34 | FromDiscord | <haxscramper> Is it possible to temporarily push define |
21:40:34 | FromDiscord | <mratsim> all my macros end in that: https://github.com/mratsim/weave/blob/996c53caaffc6617d5f16572bfd8357f20047d4f/weave/parallel_for_staged.nim#L209 |
21:40:41 | disruptek | once: echo result.toStrLit |
21:41:36 | FromDiscord | <haxscramper> So I can do something like `{.push: define(logOnlyThisInstantiation).): <some-code>` |
21:41:56 | FromDiscord | <haxscramper> I just can't figure out if the syntax is incorrect or this is simply not allowed |
21:42:56 | FromDiscord | <mratsim> push can only attach pragma to proc definition AFAIK |
21:54:58 | FromGitter | <alehander92> @iffy yeah this can be doable |
21:55:12 | FromGitter | <alehander92> with some generalization of flow .. typing? i guess the z3 stuff might be |
21:55:16 | FromGitter | <alehander92> the best fit maybe |
21:55:19 | FromGitter | <alehander92> eventually |
21:57:40 | FromGitter | <alehander92> disruptek well IC is just cool |
21:57:45 | disruptek | yeah, great. |
21:57:48 | FromGitter | <alehander92> but i agree that it might be much easier |
21:57:55 | FromGitter | <alehander92> with some different overall architecture |
21:58:05 | FromGitter | <alehander92> but such a rewrite would take .. an year? or more? |
21:58:15 | FromGitter | <alehander92> like, it sounds like a nim 2 thing to me |
21:58:36 | disruptek | it's not just about ease. i can rewrite more of the codegen to make this work. but every line i change introduces an unknown quantity of bugs. |
21:59:13 | disruptek | it's not a responsible use of time. |
21:59:47 | * | tane quit (Quit: Leaving) |
22:03:59 | FromDiscord | <dom96> Yay. Our discord is now verified. |
22:04:07 | FromDiscord | <Avatarfighter> ooo nice! |
22:04:11 | FromDiscord | <Avatarfighter> who is the partner? |
22:04:20 | FromDiscord | <dom96> Partner? |
22:10:46 | FromGitter | <alehander92> disruptek well .. I don't know |
22:10:46 | FromDiscord | <Avatarfighter> When a discord becomes verified the person who applied for the partnership becomes a Partner |
22:10:46 | FromGitter | <alehander92> such a major rewrite (new passes / more modern nim ) sounds cool |
22:10:46 | FromGitter | <alehander92> i also want to see that, but iirc Araq sees it as a risky thing |
22:10:46 | FromGitter | <alehander92> i mean, it would require a lot more work and people |
22:10:46 | disruptek | it's going to happen anyway. |
22:10:46 | FromGitter | <alehander92> I mean I'd like to see that |
22:10:46 | FromGitter | <alehander92> but it does sound that step-by-step improvements might be more ok |
22:10:46 | FromGitter | <alehander92> i mean, you need to develop both |
22:10:46 | FromDiscord | <dom96> @Avatarfighter me I guess |
22:10:46 | disruptek | i don't think so. |
22:10:46 | FromGitter | <alehander92> you barely have enough people to keep developing nim 1 |
22:10:46 | disruptek | that's really not my problem. |
22:10:46 | FromGitter | <alehander92> and now you need to do both this and a new nim 2 |
22:10:46 | FromDiscord | <Avatarfighter> @dom96 hopefully 😄 You'll get a cool little badge then 🙂 |
22:10:46 | FromGitter | <alehander92> impl* |
22:10:46 | FromGitter | <alehander92> and keep them compatible |
22:10:46 | disruptek | not really. |
22:10:46 | FromGitter | <alehander92> to an extent |
22:10:46 | disruptek | why? |
22:10:46 | disruptek | first of all, why do any of it? |
22:10:46 | FromGitter | <alehander92> well, because they should implement the same lang |
22:10:46 | disruptek | why impl a new backend? |
22:10:46 | FromGitter | <alehander92> well, you said you want different ugh |
22:10:46 | FromGitter | <alehander92> mid-end (?) |
22:10:46 | disruptek | if no one wants to pay for it, i'm certainly not going to work on it. are you? |
22:10:46 | disruptek | if i wanted to do it for fun, i wouldn't do IC first. |
22:10:46 | FromGitter | <alehander92> but that's what I am saying |
22:10:46 | disruptek | the backend works fine for me. |
22:10:46 | FromGitter | <alehander92> who would pay for such a risky thing |
22:10:46 | FromGitter | <alehander92> when one can more easily keep improving the current impl |
22:10:46 | disruptek | you think it's easy? |
22:10:46 | FromGitter | <alehander92> no |
22:10:46 | disruptek | then maybe don't use that word. |
22:10:46 | FromGitter | <alehander92> but you think it's easy to make a quality new impl *and* keep maintaining the other one? |
22:10:46 | disruptek | as araq has pointed out, lessons have been learned since the backend was written. |
22:10:46 | * | solitudesf quit (Ping timeout: 240 seconds) |
22:10:49 | FromGitter | <alehander92> yes |
22:10:59 | FromGitter | <alehander92> and they can be applied to the current impl often |
22:11:06 | FromGitter | <alehander92> even if less than perfect |
22:11:14 | disruptek | why maintain the existing backend? |
22:11:21 | FromGitter | <alehander92> because people use it |
22:11:25 | FromGitter | <alehander92> we dont have another one |
22:11:35 | disruptek | what lessons do you have in mind? |
22:11:45 | FromGitter | <alehander92> you said "lessons" |
22:12:13 | disruptek | you can't argue that "they can be applied to the current impl often" and then wave your hand when i ask wtf you're talking about. |
22:12:24 | disruptek | we already agree that changes to the existing backend are not easy. |
22:12:31 | FromGitter | <alehander92> i said that's my understanding of what araq wanted |
22:12:47 | FromGitter | <alehander92> that those new ideas might be integrated |
22:12:55 | FromGitter | <alehander92> into the existing impl |
22:12:57 | disruptek | which ideas? |
22:13:20 | FromGitter | <alehander92> the ideas he/you have about a "how we would write nim again if we can" |
22:13:31 | disruptek | the only ideas i know of require throwing out the existing impl. |
22:13:54 | FromGitter | <alehander92> hm |
22:13:55 | * | Trustable quit (Remote host closed the connection) |
22:13:55 | FromGitter | <alehander92> like? |
22:14:08 | disruptek | like what? |
22:14:24 | FromGitter | <alehander92> like which ideas? |
22:14:55 | * | NimBot joined #nim |
22:15:01 | FromGitter | <alehander92> so i planned to just use it for my side langs |
22:15:15 | FromGitter | <alehander92> so i dont know which are exactly your guys ideas |
22:16:38 | disruptek | currently we go f->h and we want to go f->g->h->i. |
22:17:00 | disruptek | there's really no useful way to leverage f->h code. |
22:17:05 | disruptek | by design, it must be removed. |
22:18:01 | FromGitter | <alehander92> ok, but this can be done with |
22:18:08 | FromGitter | <alehander92> fixing the backend |
22:18:17 | disruptek | go for it, buddy. |
22:18:22 | FromGitter | <alehander92> not by changing the language/whole architectture of how modules are compiled |
22:18:26 | FromGitter | <alehander92> like my thing |
22:18:37 | FromGitter | <alehander92> that's why i thought those ideas might not b that radical |
22:19:21 | disruptek | the radical idea is a new design for ast transformation and adding at least one layer before passing to llvm. |
22:19:38 | disruptek | we wouldn't use any of our backend code. |
22:20:22 | FromGitter | <alehander92> well |
22:20:44 | FromGitter | <alehander92> i don't know enough |
22:20:44 | * | mipri joined #nim |
22:20:45 | disruptek | there's no point to having code that knows how to compose c from strings if you are going to use llvm api to compose ir. |
22:20:48 | FromGitter | <alehander92> to have a strong opinion |
22:20:56 | disruptek | i think you do. |
22:21:00 | FromGitter | <alehander92> yeah but i don't want |
22:21:04 | FromGitter | <alehander92> llvm-onlu |
22:21:15 | FromGitter | <alehander92> it's a big dep, it's a bit slower sometimes imo |
22:21:23 | FromGitter | <alehander92> and it's useful to have C/ cranelift |
22:21:34 | FromGitter | <alehander92> some kind of alternative |
22:21:37 | FromDiscord | <mratsim> llvm is meh for embedded |
22:21:38 | disruptek | you know what's useful? |
22:21:47 | disruptek | bug-free code that thousands of other people are maintaining for us. |
22:21:48 | FromDiscord | <mratsim> many obscure target only have a C compiler |
22:21:58 | FromGitter | <alehander92> well ok C is pretty maintained |
22:22:02 | disruptek | you know what i /don't/ care one iota about? |
22:22:06 | disruptek | obscure fucking targets. |
22:22:08 | disruptek | who gives a shit. |
22:22:15 | FromGitter | <alehander92> well that's what nim is about |
22:22:18 | FromGitter | <alehander92> multi platforms |
22:22:29 | FromGitter | <alehander92> you can't just change all directions because "easy" |
22:22:34 | FromGitter | <alehander92> maybe this is a good idea |
22:22:38 | FromGitter | <alehander92> but it's not obvious |
22:22:53 | FromDiscord | <mratsim> Obscure targets are one way to attract people to Nim. Want to run Zig? too bad, want to run Rust? oops no LLVM for you |
22:22:56 | FromGitter | <alehander92> and come on tying yourself to llvm |
22:22:57 | disruptek | you know what's a good idea? spending less time reinventing wheels. |
22:23:07 | FromDiscord | <Clyybber> thats why we use C buddy |
22:23:07 | disruptek | there's no one who is interested in nim. |
22:23:11 | FromDiscord | <mratsim> LLVM is a moving target |
22:23:12 | FromGitter | <alehander92> when you already have a different thing there |
22:23:17 | disruptek | so don't talk to me about obscurity being super attractive. |
22:23:19 | disruptek | i don't see it. |
22:23:23 | FromGitter | <alehander92> LLVM is totally not trivial man |
22:23:30 | disruptek | so what? |
22:23:32 | FromDiscord | <Clyybber> disruptek: you need a punching bag |
22:23:35 | disruptek | you think our current backend is trivial? |
22:23:36 | FromDiscord | <Clyybber> and health insurance |
22:23:43 | FromGitter | <alehander92> so i don't see how it's simpler than targetting C |
22:23:46 | FromDiscord | <mratsim> Some chinese company came and said they were using Nim to drive bluetooth software: https://forum.nim-lang.org/t/5509 |
22:23:51 | FromGitter | <alehander92> it's probably a bit better |
22:23:54 | disruptek | big fucking whoop. |
22:24:09 | FromGitter | <alehander92> well come on how hard can it be |
22:24:11 | FromGitter | <alehander92> to target C |
22:24:22 | FromGitter | <alehander92> (yeah i'll probably be wrong about this) |
22:24:22 | disruptek | what are you talking about? |
22:24:26 | FromGitter | <alehander92> (famous last words) |
22:24:30 | disruptek | totally not the point. |
22:24:54 | FromGitter | <alehander92> yeah probably the backend can be rewritten |
22:25:00 | mipri | what he's talking about is LLVM being a moving target, and the answer to "how many times a year does the C codegen have to be patched to keep pace with C standard changes?" being zero |
22:25:01 | FromGitter | <alehander92> and if it can easily have |
22:25:05 | FromGitter | <alehander92> IR->C IR->LLVM |
22:25:11 | FromGitter | <alehander92> passes: cool! |
22:25:22 | disruptek | of course it can. |
22:25:31 | disruptek | that's what the backend ir does for us. |
22:25:38 | FromGitter | <alehander92> yeah this is a good thing |
22:25:49 | FromGitter | <alehander92> IR->Wasm etc |
22:26:45 | disruptek | clyybber: i need some fucking edibles is what i need. |
22:27:17 | FromDiscord | <Clyybber> that too |
22:27:17 | FromGitter | <alehander92> or a dog |
22:27:57 | FromDiscord | <Clyybber> disruptek: I am once again asking you to explain the issue (:p) |
22:30:36 | disruptek | the issue is that the codegen wants a prototype for a proc that doesn't exist; there's no BProc. in generating that prototype, we establish a name for the proc after mangling its params. the first param is seq[string]. the proc is thus named add_seqString. next the compiler changes the 1st param to seq[TaintedString]. now it's ready to write the proc. the proc definition is created. |
22:31:32 | disruptek | the proc reuses its mangled name, add_seqString, but it now has a seq[TaintedString] 1st param. so cpp cannot link with code that expects add_seqString to take a seq[string] because it has no such symbol. |
22:32:46 | disruptek | the mangle of params should only involve the proc's scope, obviously, but we don't have a proc scope the first time we see the proc symbol. |
22:33:20 | * | krux02 quit (Remote host closed the connection) |
22:33:36 | FromDiscord | <Clyybber> I see |
22:33:58 | * | awe001 quit (Ping timeout: 246 seconds) |
22:34:05 | disruptek | if you look at the diff, you see me changing a lot of code to take BProc where it previously took BModule. |
22:34:13 | disruptek | this is to set the scopes correctly. |
22:34:43 | disruptek | there are some calls to genProcPrototype or genProcHeader which take a BModule because a BProc doesn't exist yet. |
22:35:59 | * | a_chou joined #nim |
22:36:50 | disruptek | to tie this to the last convo, imagine that we had a proper ast here. |
22:37:01 | FromGitter | <alehander92> oh man i need to rebuild koch |
22:37:12 | FromDiscord | <Clyybber> Do you have a clear idea what part of the compiler changes the 1st param? |
22:37:13 | FromGitter | <alehander92> when i update testament .. i forgot |
22:37:13 | disruptek | we wouldn't even have the concept of a prototype. that'd just be a part of the serialization process. |
22:37:31 | disruptek | no, i dunno what's changing it. |
22:38:06 | FromDiscord | <Clyybber> If there were no change of the first param, there would be no issue, right? |
22:38:38 | disruptek | right. but i'm just going to remove the whole first pass of the prototype generation. |
22:39:29 | disruptek | alternatively, i could create a stack of those prototypes and unwind them later. but i really can't see why that'd be necessary. |
22:40:10 | FromDiscord | <Clyybber> disruptek: what is the first pass of the prototype gen? |
22:40:43 | disruptek | eg. in genProcNoForward. |
22:40:48 | disruptek | cgen.nim |
22:42:48 | FromDiscord | <Clyybber> will that solve the problem? |
22:44:27 | disruptek | it will solve one problem and produce others. |
22:44:44 | disruptek | alehander92: you know how ic works right now? |
22:44:54 | disruptek | i mean, the ic i wrong months ago. |
22:45:14 | disruptek | great slip. |
22:45:19 | disruptek | i mean, the ic i wrote months ago. |
22:45:42 | FromDiscord | <Clyybber> disruptek: can you explain what exactly you will remove, and what the effects are? |
22:46:01 | disruptek | no, because i don't know what effect it will have except to break code. |
22:46:21 | disruptek | i will remove the prototype generation whenever i don't have a proc. |
22:46:35 | disruptek | takes about two seconds. |
22:47:54 | disruptek | pushed. |
22:48:11 | FromGitter | <alehander92> disruptek |
22:48:44 | FromGitter | <alehander92> i am not sure: i guess you just cache stuff with frosty based on some kind of unique mangled name |
22:48:50 | FromGitter | <alehander92> but no idea about details |
22:49:03 | disruptek | it's simple. explaining it will highlight how stupid it is. |
22:49:18 | FromGitter | <alehander92> cool! |
22:49:23 | disruptek | i iterate over top-level statements. |
22:49:41 | disruptek | if the statement isn't in the cache, |
22:49:54 | disruptek | i make a fake copy of the entire module graph. |
22:50:05 | disruptek | i compile the statement against this fake graph. |
22:50:25 | disruptek | then i iterate over the graph and compare it to the existing one. |
22:50:41 | disruptek | i record all of the changes, in order. this is the cache. |
22:50:52 | disruptek | then i apply them to the original module graph. |
22:51:08 | disruptek | that is all. |
22:52:07 | FromGitter | <alehander92> it should sound simple |
22:52:16 | FromGitter | <alehander92> but i need to read it several times more |
22:52:32 | FromDiscord | <dom96> disruptek: you wanna rewrite the backend? |
22:52:56 | disruptek | of course not. the compiler works fine for me. |
22:55:44 | FromGitter | <alehander92> disruptek |
22:55:48 | FromGitter | <alehander92> so does this work |
22:55:49 | FromGitter | <alehander92> with macros |
22:55:52 | FromDiscord | <dom96> Alright then |
22:55:55 | FromGitter | <alehander92> like, you just evaluate the vm thing? |
22:56:06 | FromGitter | <alehander92> and it generates top level stuff which you use in the same way |
22:56:13 | disruptek | yes. |
22:56:22 | disruptek | i don't care how the frontend works. |
23:00:54 | FromGitter | <alehander92> hm, cool |
23:00:55 | mipri | how can I importc a #define? |
23:02:11 | FromDiscord | <haxscramper> https://github.com/nim-lang/c2nim#translating |
23:26:44 | * | haxscramper quit (Remote host closed the connection) |
23:50:21 | * | aenesidemus joined #nim |