<<17-09-2020>>

00:00:42FromDiscord<dayl1ght> is this the correct way to get a uint8 pointer from a string: `cast[ptr uint8](s.cstring)`?
00:01:37*Plazma left #nim (#nim)
00:28:11FromDiscord<Rika> a uint8 pointer as in a pointer to a uint8?
00:32:32FromDiscord<exelotl> I'd do `cast[ptr uint8](addr s[0])` but yours might work too
00:56:25*a_chou joined #nim
00:56:26*a_chou quit (Remote host closed the connection)
01:12:49*Trustable quit (Ping timeout: 272 seconds)
01:17:08FromDiscord<Avatarfighter> voidpi: I forgot to tell you but open a support ticket and ask if they had any discounts for vps's or something
01:17:26FromDiscord<Avatarfighter> be really nice since it might take an hour to days to have them to answer lol
01:18:54*arecacea1 quit (Remote host closed the connection)
01:19:29*arecacea1 joined #nim
01:25:49*mipri left #nim (#nim)
01:28:45*aenesidemus quit (Read error: Connection reset by peer)
01:28:57*Tanger joined #nim
01:35:37*apahl quit (Ping timeout: 272 seconds)
01:37:26*apahl joined #nim
01:41:22*femtotones|away quit (Quit: Default Quit Message)
02:42:38*muffindrake quit (Ping timeout: 244 seconds)
02:45:05*muffindrake joined #nim
02:51:32*waleee-cl quit (Quit: Connection closed for inactivity)
03:05:31FromDiscord<bearheathen> Greetings, everyone! I recently stumbled upon this super sexy gem of a language and immediately "got it." Nim has - in a month - done what other languages have tried to do to my brain for 10 years. Nim is the only one to succeed. I flipping UNDERSTAND THIS STUFF.
03:07:02FromDiscord<juan_carlos> welcome
03:07:08FromDiscord<bearheathen> Se lo agradezco!
03:07:18FromDiscord<bearheathen> Ademas, hablo espan'ol (y otros idiomas tmbn). 😄
03:07:38FromDiscord<bearheathen> English is my Native language, but I'm happy to see channels with other languages spoken too. 😄
03:08:02FromDiscord<bearheathen> > welcome↵@juan_carlos Tiene mucho tiempo con la lengua Nim?
03:08:05*Trustable joined #nim
03:08:17FromDiscord<bearheathen> Or must I relegate all non-English content to the appropriate channel?
03:08:30voidpiyou mean español
03:08:33FromDiscord<Rika> as long as you dont overly flood the chat with non english
03:08:45FromDiscord<Rika> i assume its fine
03:08:49voidpisoy alérgico a los crustaceos
03:08:52FromDiscord<Rika> no one really chatting here right now
03:08:54FromDiscord<bearheathen> Claro, pero no se me hace facil reproducir los marcos de accento en este teclado agringazado
03:09:08FromDiscord<Rika> tfw bilingual but not in spanish
03:09:15voidpisetxkbmap
03:09:20FromDiscord<bearheathen> @Rika What's your other?
03:09:23FromDiscord<Rika> filipino
03:09:26FromDiscord<bearheathen> Oof. CLOSE
03:09:31FromDiscord<Rika> yeah lmao
03:09:49FromDiscord<bearheathen> I have a whole degree in CIT
03:09:53FromDiscord<Rika> CIT?
03:09:53FromDiscord<bearheathen> Web Development.
03:10:04FromDiscord<bearheathen> Computer Information Technology (Web Dev emphasis)
03:10:09FromDiscord<Rika> oh i see
03:10:12FromDiscord<bearheathen> That's chump change. I get it.
03:10:40FromDiscord<bearheathen> But anything closer "to the metal," and my brain legit turns Benedict Arnold and tries to murder me
03:10:44FromDiscord<bearheathen> Nim though...
03:11:00FromDiscord<bearheathen> It's simple, like Python, but does all the nifty cool fancy-pants SOFTWARE ENGINEER OF DOOM stuff too
03:11:02FromDiscord<Rika> many people compare nim to python
03:11:02FromDiscord<Rika> yeah
03:11:06FromDiscord<bearheathen> And I'm watching this code....
03:11:14FromDiscord<bearheathen> And like...I *understand* what is happening
03:11:19FromDiscord<bearheathen> And I have no idea HOW I understand
03:11:26FromDiscord<bearheathen> I have tried them all
03:11:47FromDiscord<bearheathen> From Pascal to BASIC to Rust to Go to C# to Java to flippin C/C++ etc...
03:11:59FromDiscord<bearheathen> Nim is the first and only to just leap out at me with this "Oh. Duh." thing.
03:12:11FromDiscord<Rika> there's still some warts unfortunately
03:12:20FromDiscord<Rika> but glad to know that nim is intuitive to you 😛
03:12:23FromDiscord<bearheathen> I can only gather that it's not more mainstream because it doesn't have the likes of Mozilla or Microsoft feeding it money
03:12:29FromDiscord<Rika> yeah
03:12:36FromDiscord<Rika> thats pretty much spot on
03:13:25FromDiscord<bearheathen> Well, dear Nimmians, it is as true in 2020 AD as it was in 2020 BC: Word of mouth advertising is the best way to tell anyone about anything
03:13:48FromDiscord<Rika> some of us use Nimions
03:13:50FromDiscord<bearheathen> ...that's a fair question: What is the proper adjective used to refer to a person who is a Nim fan? Nimmian? Nimmish? Nimese?
03:14:06FromDiscord<bearheathen> My English-brained thoughts REQUIRE a "mm" in there.
03:14:09FromDiscord<Rika> sent the answer before you asked LOL
03:14:28FromDiscord<Rika> Nimmer is ok too but i see that less often
03:14:31FromDiscord<bearheathen> > some of us use Nimions↵@Rika 😮
03:14:46FromDiscord<bearheathen> Ah. Nim programmers == Ascended Masters
03:14:48FromDiscord<Rika> and in general most of us dont refer Nim users that way
03:14:52FromDiscord<bearheathen> Complete with clairvoyance
03:14:56FromDiscord<Rika> lo
03:15:00FromDiscord<Rika> lol*
03:15:04FromDiscord<Rika> have you seen mratsim's code?
03:15:09FromDiscord<Rika> literal god
03:15:12FromDiscord<bearheathen> Negative
03:15:15FromDiscord<bearheathen> Link?
03:15:22FromDiscord<Rika> https://github.com/mratsim/arraymancer/
03:15:36FromDiscord<bearheathen> omg
03:15:38FromDiscord<bearheathen> tensor
03:15:38FromDiscord<Rika> https://github.com/mratsim/weave
03:15:41FromDiscord<bearheathen> I'm already done
03:15:42FromDiscord<bearheathen> lol
03:16:49FromDiscord<bearheathen> I have so so rarely invested money into Open Source. So much has Nim moved me to action that I bought *Nim In Action* after doing the Nim Basics
03:17:13FromDiscord<Rika> me too
03:17:14FromDiscord<bearheathen> So, once I work through THAT, I will be on to the nimble package Nico, which I saw on a NimConf YouTube
03:17:18FromDiscord<Rika> ended up not reading it though
03:17:26FromDiscord<bearheathen> As gamedev is the bee's knees
03:17:40FromDiscord<bearheathen> > ended up not reading it though↵@Rika Oof. Y DOE?
03:18:01FromDiscord<Rika> because by the time i started considering reading it i was already pretty proficient LOL
03:18:16FromDiscord<bearheathen> Ahahaha
03:18:21FromDiscord<bearheathen> I already did the FizzBuzz no problem
03:18:29FromDiscord<Rika> though i dont doubt that ill be able to benefit more if i did read it
03:18:31FromDiscord<bearheathen> But once I got into the typesystem, meta programming, and macros
03:18:37FromDiscord<bearheathen> I decided I'd better call in reinforcement
03:18:52FromDiscord<bearheathen> All of my prior learning has aided me getting to this point
03:18:57FromDiscord<Rika> metaprogramming was easy for me to understand
03:19:00FromDiscord<bearheathen> And, like I said, I "get it."
03:19:05FromDiscord<Rika> though the docs are kinda anemic
03:19:17FromDiscord<bearheathen> But Nim has MANY, MANY possible application domains (at least I think it does) and so I'm *REALLY* gonig to try to learn it inside and out
03:19:22FromDiscord<bearheathen> Truly *MASTER* the language
03:20:07FromDiscord<Rika> its a really general language, i cant think of any application where it cant be easily used but im not too experienced in the less known ways of programming so
03:20:07FromDiscord<bearheathen> Because, and I'm talking from the 10 years I've been stuck in intermediate-land, I can tell from experience that one of the things that makes or breaks the adoption of a language is its ecosystem of tools and libraries available
03:20:14FromDiscord<Rika> yeah
03:20:21FromDiscord<Rika> nim has a kinda-small ecosystem
03:20:25FromDiscord<bearheathen> If you look at Rust, Cargo is the big seller↵↵Nim already had that WAY before Rust did in Nimble
03:20:53FromDiscord<bearheathen> And nimble is FASTER
03:20:55FromDiscord<bearheathen> So much FASTER
03:20:56FromDiscord<bearheathen> lol
03:20:56FromDiscord<Rika> at least compared to shit like java and go and python and js and shit, and if we're only considering already-wrapped and pure libraries
03:21:10FromDiscord<bearheathen> @Rika You have been so cool so far
03:21:19FromDiscord<Rika> aww thanks
03:21:21FromDiscord<bearheathen> But if the words "Java" or "JavaScript" ever appear on my screen again
03:21:23FromDiscord<bearheathen> I'm blocking you
03:21:25FromDiscord<Rika> oh shit
03:21:27FromDiscord<bearheathen> >.<
03:21:30FromDiscord<Rika> :KannaKMS:
03:21:46FromDiscord<Rika> what if i say uh
03:21:52FromDiscord<bearheathen> I - and I cannot stress this enough - *HATE* those two languages with the fiery passion of 10,000 burning suns.
03:21:59FromDiscord<Rika> ECMAScript and uh the coffee-icon'd language
03:22:07FromDiscord<Rika> 200 iq plays
03:22:14FromDiscord<bearheathen> Then I shall not send a squad of highly trained ninjas to end you.
03:22:25*thomasross quit (Ping timeout: 240 seconds)
03:22:29FromDiscord<hobbledehoy> nimjas
03:22:32FromDiscord<Rika> omfg
03:22:43FromDiscord<Rika> that sounds like a good library name
03:22:43FromDiscord<Rika> lol
03:22:49FromDiscord<bearheathen> > nimjas↵@hobbledehoy JFC...Somone buy this man (woman) a BEER.
03:23:04FromDiscord<Rika> nim compiles to (the web language that shall not be named) btw
03:23:09FromDiscord<bearheathen> > nimjas↵@hobbledehoy Bloody fantastic. Absolutely brilliant.
03:23:15voidpinimja templates?
03:23:24FromDiscord<bearheathen> Yes, it does. But I don't have to look at JS when I'm using Nim
03:23:32FromDiscord<hobbledehoy> Thank thank, that will be my greatest contribution
03:23:41FromDiscord<bearheathen> I took a cursory glance at Jester, and it will quite happily handle my needs with little muss or fuss
03:23:42FromDiscord<hobbledehoy> (edit) 'thank,' => 'you thank you,'
03:23:42FromDiscord<Rika> thats true
03:24:09FromDiscord<Rika> i was considering making (yet another) HTML server in nim
03:24:18FromDiscord<Rika> just to learn HTML servers really
03:24:29FromDiscord<Rika> then also maybe in the future add HTML/2 support or something
03:24:33FromDiscord<bearheathen> > nimja templates?↵@voidpi[IRC]#0000 Glad this group has a sense of humor. Oof. IDK if you folks have ever hung around C# programmers.↵↵It's basically like the conversation you'd expect at a graveyard...except not as exciting.
03:24:39FromDiscord<Rika> not a lot of libraries for HTML 2 in nim
03:25:02FromDiscord<bearheathen> > not a lot of libraries for HTML 2 in nim↵@Rika Yes, that's my goal as well. Find a niche need and fill it.
03:25:07FromDiscord<bearheathen> But I gotta get GUD first
03:25:07FromDiscord<Rika> > @voidpi[IRC]#0000 Glad this group has a sense of humor. Oof. IDK if you folks have ever hung around C# programmers.↵> ↵> It's basically like the conversation you'd expect at a graveyard...except not as exciting.↵@bearheathen ||probably mourning their language||
03:25:37FromDiscord<bearheathen> Well folks, it has truly been a pleasure
03:25:47FromDiscord<Rika> i hope you dont get discouraged by the bugs
03:25:55FromDiscord<Rika> because the compiler can have bugs sometimes
03:26:01FromDiscord<bearheathen> The community here has been top notch. Every question answered promptly, politely, and without an OUNCE of elitism I'v ecome to expect from senior programmers
03:26:18FromDiscord<Rika> ah well
03:26:23FromDiscord<bearheathen> I've been here 20 seconds and already feel more at home than anywhere
03:26:24FromDiscord<Rika> there are still elitists here
03:26:30FromDiscord<Rika> just rarer since we're smaller
03:27:00FromDiscord<Rika> also uh careful of disruptek, he can be rude sometimes, but he's rude to literally everyone, even the maker of the language, so yeah
03:27:23FromDiscord<bearheathen> > because the compiler can have bugs sometimes↵@Rika Yes, I've heard this. Seen some of it. However, Nim seems to be CONSTANTLY in a state of evolution. The commit history is...mind boggling. At my current level, none of those things will be remotely an issue. And, by the time I get proficient, I expect that those are issues I'll be able to assist with myself.
03:27:41*antranigv quit (Ping timeout: 256 seconds)
03:28:02FromDiscord<Rika> well many people here say that there may be commits often but some of them are to potentially not-useful features
03:28:06FromDiscord<bearheathen> > also uh careful of disruptek, he can be rude sometimes, but he's rude to literally everyone, even the maker of the language, so yeah↵@Rika Ohhh, I'm a pretty nice, easygoing lad right now. But, I am literally called "Bear" in real life, and I am really a heathen in real life. I have earned both of those names. I accept this challenge. I will make his mother weep. 😄
03:28:16FromDiscord<Rika> doubt you can do that
03:28:20FromDiscord<Rika> legitimately
03:28:26FromDiscord<Rika> i really doubt you can do that
03:28:32*antranigv joined #nim
03:28:41FromDiscord<bearheathen> > doubt you can do that↵@Rika Many are the broken corpses strewn in my path who have said the same, dear friend. 😄
03:28:54FromDiscord<bearheathen> If nothign else
03:28:59FromDiscord<bearheathen> I have been in the Marines
03:29:10FromDiscord<Rika> :BlobSweatAnimated:
03:29:12FromDiscord<bearheathen> Unless he was a drill instructor there, he can literally do NOTHING to me
03:29:18FromDiscord<Rika> lol
03:29:25FromDiscord<Rika> maybe you should get back to learning 😛
03:29:36FromDiscord<Rika> dont hesitate to ask here
03:29:37FromDiscord<bearheathen> Yes! Right! To whit!
03:29:39FromDiscord<Rika> but also dont ask to ask here
03:29:47FromDiscord<bearheathen> The original impetus behind my joining here to begin with
03:30:02FromDiscord<bearheathen> Pointers - or - in Nim generally - memory allocation/management/etc
03:30:04*sagax quit (Ping timeout: 260 seconds)
03:30:15FromDiscord<bearheathen> Is there a good resource I can read/look at that goes over this SPECIFIC topic in great detail?
03:30:22FromDiscord<Rika> https://nim-lang.org/docs/gc.html
03:30:26FromDiscord<bearheathen> It has been my nemesis in most languages
03:30:32FromDiscord<Rika> this is about the GC
03:30:38FromDiscord<Rika> not about memalloc in general
03:30:51FromDiscord<Rika> https://nim-lang.org/docs/tut1.html maybe? i dont know really
03:31:01FromDiscord<bearheathen> Mmm. I am referring to the more theoretical notion. The stuff you have to know and understand in order to use pointers and memory in your stuff well
03:31:06FromDiscord<Rika> i usually refer to the https://nim-lang.org/docs/manual.html but its really long and reads more like a specification than a manual
03:32:03FromDiscord<bearheathen> > i usually refer to the https://nim-lang.org/docs/manual.html but its really long and reads more like a specification than a manual↵@Rika Yes, I got that right off the jump! It's not for the novice, I don't think. That's ok, as Nim Basics most defnitely *IS*. Ok, I *THOUGHT* what I was looking for might be there, but I wanted to see if there were a talk, conference, book, article, etc that might be around regarding the issue in par
03:32:06FromDiscord<Rika> it helps that nim doesnt use the same symbol to denote a pointer type and a pointer dereference 😛
03:32:17FromDiscord<Rika> uh
03:32:17FromDiscord<Rika> wait
03:32:21FromDiscord<bearheathen> Also, of course I know what a GC is...but it seems in Nim it's totally optional. Which boggles my mind.
03:32:24FromDiscord<Rika> im gonna try remembering
03:32:29FromDiscord<Rika> theres an article but i dont remember where
03:32:45FromDiscord<Rika> http://zevv.nl/nim-memory/
03:32:47FromDiscord<Rika> i think
03:33:01FromDiscord<bearheathen> YES
03:33:02FromDiscord<bearheathen> BINGO
03:33:07FromDiscord<bearheathen> That's EXACTLY what I was lookign for
03:33:39FromDiscord<bearheathen> Salamat!!!!!!
03:33:51FromDiscord<Rika> you're welcome lol
03:34:09FromDiscord<bearheathen> Evnetually I want to get around to Dockerizing this thing
03:34:14FromDiscord<bearheathen> Playing with it in THAT context
03:34:22FromDiscord<bearheathen> I just discovered Docker, and I just discovered Nim
03:34:29FromDiscord<bearheathen> I'm going to SMASH THEM TOGETHER FOR FUN AND PROFIT
03:35:04FromDiscord<Rika> have fun
03:35:09FromDiscord<bearheathen> Ohhh
03:35:09FromDiscord<Rika> no idea for docker resources
03:35:12FromDiscord<bearheathen> This mratsim
03:35:13FromDiscord<Rika> i havent learned that yet
03:35:13FromDiscord<bearheathen> Yes
03:35:18FromDiscord<bearheathen> I watched a conference he gave
03:35:30FromDiscord<bearheathen> I had literally no clue wtf he said the entire 30 min presentation
03:35:33FromDiscord<bearheathen> But it was good, I know THAT
03:35:52FromDiscord<bearheathen> I don't recognize his user name, but Mamy Ratsimbazafy I do recognize
03:36:25FromDiscord<bearheathen> It was his talk on concurrency, I believe.
03:36:38FromDiscord<bearheathen> My nose started bleeding at the 10 minute mark, I think
03:37:21FromDiscord<bearheathen> At any rate, back to work
03:37:27FromDiscord<bearheathen> A pleasure to meet you all!
03:37:29FromDiscord<Rika> lol
03:37:33FromDiscord<Rika> have fun
03:41:01*kinkinkijkin quit (Ping timeout: 244 seconds)
03:49:54*bung quit (Ping timeout: 260 seconds)
03:51:29*kinkinkijkin joined #nim
04:01:56FromDiscord<Avatarfighter> I just signed up for figma education and I have just realized I have no artistic vision, no creativity
04:02:04FromDiscord<Avatarfighter> i really want to use fidget lol
04:02:11FromDiscord<Rika> same
04:02:49FromDiscord<Avatarfighter> I just tried to make a cool looking box and I already failed at making my box even on all sides
04:03:18FromDiscord<Rika> amazing
04:03:24FromDiscord<Avatarfighter> ik
04:06:01*supakeen quit (Quit: WeeChat 2.9)
04:06:37*supakeen joined #nim
04:14:22FromDiscord<Avatarfighter> rika are you doing anything cool on figma
04:16:39*lritter quit (Quit: Leaving)
04:18:26*bung joined #nim
04:33:24*arecacea1 quit (Remote host closed the connection)
04:34:10*arecacea1 joined #nim
04:49:43FromDiscord<bearheathen> > rika are you doing anything cool on figma↵@Avatarfighter Figma is a UI design tool, right? Does Nim have some good UI tooling? If nothing else, I'm assuming we've got some good FFI wrappers for the likes of IMGUI, CEGUI, or some such, yes?
04:50:53FromDiscord<Avatarfighter> @bearheathen yeah @treeform made a really cool tool that takes figma sketches and lets you use them in nim
04:50:55FromDiscord<Avatarfighter> !repo fidget
04:50:56disbot12https://github.com/treeform/fidget -- 9fidget: 11Figma based UI library for nim, with HTML and OpenGL backends. 15 296⭐ 11🍴 7& 1 more...
04:51:24FromDiscord<Avatarfighter> You can literally draw your cool desktop/mobile app then export the nim code and then you got your app
04:52:20FromDiscord<bearheathen> 😮
04:52:21FromDiscord<bearheathen> Whoa
04:52:55FromDiscord<bearheathen> aaaaannnddd there's a NimConf 2020 video with it.
04:53:00FromDiscord<bearheathen> Totally watching that as I work
04:55:34*narimiran joined #nim
04:58:06FromDiscord<bearheathen> Is the GC on by default?
04:58:10FromDiscord<bearheathen> And if so, which variety?
04:58:10FromDiscord<Elegant Beef> yep
04:58:24FromDiscord<bearheathen> Ok. For my noobish buffoonery, I think that's ideal
04:58:28FromDiscord<bearheathen> Thank you!
04:58:33FromDiscord<Avatarfighter> Its really good, treeform is super passionate in the NimConf video
04:58:33FromDiscord<Elegant Beef> Got a variety of different ones https://nim-lang.org/docs/gc.html
04:58:47FromDiscord<Elegant Beef> Nim's moving towards ARC though
04:59:24FromDiscord<bearheathen> > Nim's moving towards ARC though↵@Elegant Beef Hmm, and what is the significance of this? ↵↵Also, I see a Go interoperable GC? That's wild...
04:59:50FromDiscord<Elegant Beef> Fairly performant, and will soon be the default GC i believe
05:00:08FromDiscord<Elegant Beef> 4raq has a nimconf video about arc if interested
05:00:15FromDiscord<bearheathen> > Fairly performant, and will soon be the default GC i believe↵@Elegant Beef Ah, so you mean that the Arc GC is essentially going to become the "default" GC, and the others will be deprecated in future versions?
05:00:26FromDiscord<bearheathen> Yes, I am interested. I'll add it to my watch list
05:00:40FromDiscord<Elegant Beef> https://www.youtube.com/watch?v=aUJcYTnPWCg
05:01:00FromDiscord<bearheathen> Awesome! Thank you very much!
05:01:11FromDiscord<bearheathen> @Elegant Beef Your name is ❤️ ↵↵How long have you worked with Nim?
05:01:18FromDiscord<Elegant Beef> 0 days
05:01:27FromDiscord<bearheathen> > 0 days↵@Elegant Beef LIES
05:01:31FromDiscord<Elegant Beef> Oh with i read for 😄
05:01:46FromDiscord<Elegant Beef> I've been toying with it for about 8 months or so
05:02:19FromDiscord<bearheathen> > I've been toying with it for about 8 months or so↵@Elegant Beef Wonderful! Have you made anything interesting? Thoughts that far in? Is it a hobby? Do you program as a "job?" If so, what is your primary language there?
05:02:29FromDiscord<bearheathen> Sorry, just getting an idea of the kinds and types of folks here
05:02:58FromDiscord<Elegant Beef> It's a fantastic language, and neither job or hobby really, just an unemployed schmuck
05:03:42FromDiscord<dayl1ght> https://play.nim-lang.org/#ix=2xPc
05:03:47FromDiscord<dayl1ght> this snippet leaks memory with gc:arc
05:03:49FromDiscord<bearheathen> > It's a fantastic language, and neither job or hobby really, just an unemployed schmuck↵@Elegant Beef Indeed. Right there with ya. Though I freelance a lot of stuff. Believe it or not, contracting. I build things. I do lawn care. I set up networks. I translate. I'm pretty diverse. Haha. ↵↵My degree is CS-based, but I've never worked in the field.
05:04:09FromDiscord<dayl1ght> is this supposed to happen? I don't get any leak reports with the normal GC on valgrind
05:04:26Tangerbearheathen: Been using it on and off for ~ 1 year. I use it for hobby stuff mainly, but I've found it pretty useful for writing scripts for Engineering companies around my area. Replacing pre-1990 .bat scripts with Nim has been pretty easy so far. My main job uses python
05:04:59FromDiscord<dayl1ght> I compiled it with `nim c --gc:arc -d:useMalloc file.nim`
05:06:18FromDiscord<bearheathen> So Nim is totally production-worthy? That's awesome. I know there are some back-end compiler issues, but that's no different than any other language, honestly. HOW a lang compiles is always annoying. ↵↵Except interpreted languages. They're only annoying in their "limitations," such as they are.
05:06:19FromDiscord<Elegant Beef> Im personally taken by the metaprogramming, UFCS and compile time evaluation
05:06:33FromDiscord<Rika> > rika are you doing anything cool on figma↵@Avatarfighter no
05:07:26FromDiscord<Avatarfighter> ok why
05:08:14FromDiscord<Rika> because im using imgui
05:08:26FromDiscord<Rika> im a programmer, not a designer
05:08:38FromDiscord<Rika> i dont really care how something looks, only if its the correct thing in the correct place
05:09:17FromDiscord<Rika> so i've just been making this program via imgui
05:10:28FromDiscord<Avatarfighter> so you are a desiginer
05:10:38FromDiscord<Avatarfighter> real programmers use console >:)
05:10:58FromDiscord<Rika> console is too limited for the kind of program i am (was) making
05:11:09FromDiscord<Rika> (stopped for a few weeks)
05:12:03FromDiscord<juan_carlos> Unreal programmers use unreal engine :P
05:14:15FromDiscord<Avatarfighter> oh gosh
05:15:14*rockcavera quit (Remote host closed the connection)
05:31:13*leorize quit (Quit: WeeChat 2.8)
05:37:15*NimBot joined #nim
05:44:17*solitudesf joined #nim
05:55:07FromDiscord<JSGRANT> @Elegant Beef I still don't really "get" what UFCS is; Sorta like message-passing , or?
05:55:39FromDiscord<Elegant Beef> I mean it's that you can do `a.b()` or `b(a)`
05:55:46FromDiscord<Elegant Beef> so you can chain calls
05:56:15FromDiscord<Elegant Beef> and cause of it we can do `a.b.c.d` where each symbol is a proc
05:56:31FromDiscord<JSGRANT> It allows you to do basically extension-methods, right?
05:56:46FromDiscord<Elegant Beef> Yea the C# term would be that
05:57:10FromDiscord<Elegant Beef> But it lets you do either with one declaration
06:00:23FromDiscord<JSGRANT> Pretty tired , but if I'm actually grokking the concept it seems pretty cool. So sorta seems like it acts like a pipe through a series of expressions
06:03:29FromDiscord<JSGRANT> Either or; I enjoy the more hands-off "do what you feel is right" ethos in Nim. Like not forcing you to call in one form or the other -- or the classic case-insensitvity for identifiers.
06:04:18FromDiscord<Rika> yeah its almost akin to piping
06:07:21FromDiscord<PizzaFox> i have a type for a proc, is there a way to declare a proc as being that type so i dont have to repeat the signature?
06:07:56FromDiscord<PizzaFox> sent a code paste, see https://play.nim-lang.org/#ix=2xPo
06:08:20AraqPizzaFox there is the 'using' declaration but it does something else
06:09:47FromDiscord<PizzaFox> that seems like it would be useful if all the procs were in 1 file but they arent
06:10:34Araq:-) sometimes the keyboard is involved in programming in Nim
06:10:54FromDiscord<PizzaFox> i will simply be upset if i change the original proc type
06:11:15Araqwell the compiler will tell you
06:11:39*JustASlacker joined #nim
06:12:01FromDiscord<PizzaFox> the compiler will tell me i have to update all my files by hand
06:12:29FromDiscord<PizzaFox> meh this will just encourage me to write good code now instead of later
06:12:55FromDiscord<dayl1ght> can you do the opposite using typeof?
06:13:03FromDiscord<dayl1ght> type IdResolverProc = typeof(resolveIds)
06:13:53Araqhere is what takes time in software development: testing, writing tests, bug hunting, writing documentation. updating "all my files by hand" is not among this list.
06:15:37FromDiscord<PizzaFox> i can do both by spending 3 hours trying to automate it
06:16:01Araqthat's the spirit ;-)
06:17:46FromDiscord<shad0w> ```↵Strings are compared using their lexicographical order. All the comparison operators are supported. By convention, all strings are UTF-8 encoded, but this is not enforced. For example, when reading strings from binary files, they are merely a sequence of bytes. The index operation s[i] means the i-th char of s, not the i-th unichar.↵```
06:18:16FromDiscord<Rika> if you want the unicode rune use module `unicode`
06:18:18FromDiscord<shad0w> hi y'all. i dont think i understand the last line here, from the tutorial ?
06:20:39FromDiscord<JSGRANT> What is the syntax-theme used in Nim Docs' Dark-Mode? Really like it.
06:20:50FromDiscord<Rika> @shad0w https://media.discordapp.net/attachments/371759389889003532/756036924837462076/unknown.png
06:20:53FromDiscord<JSGRANT> Looks sorta familar but can't pin it down
06:21:11FromDiscord<Rika> unicode characters can be >1 "characters"
06:21:14FromDiscord<shad0w> does this have to do with all chars in nim are 1 byte. and a unicode char can be multibyte ?
06:21:16FromDiscord<Rika> in size
06:21:18FromDiscord<Rika> yes
06:22:03FromDiscord<shad0w> so it's just sugared c pointer arithmatic with the size of the char type lol. got it.
06:22:16FromDiscord<Rika> not exactly either
06:22:34FromDiscord<shad0w> ?
06:23:13FromDiscord<JSGRANT> Ah, it appears it's Dracula?
06:23:19FromDiscord<Rika> naturally, you cant overflow like in c ptr arithmetic, and `[]` is a proc, you can overload it with non-number types
06:23:35FromDiscord<shad0w> > Looks sorta familar but can't pin it down↵@JSGRANT looks like dracula or some monokai variant
06:23:48Araqevery array indexing is just "sugared C pointer arithmetic" also known as "memory fetch/store"
06:24:30Araqit's how the hardware works...
06:25:12FromDiscord<shad0w> > every array indexing is just "sugared C pointer arithmetic" also known as "memory fetch/store"↵@Araq[IRC]#0000 this should be a t-shirt 😆
06:25:12FromDiscord<JSGRANT> @shad0w It's very close; Yeah. Trying it out in VSCode and similar colors though the ordering is a bit off.
06:26:43Araqand this sentence "is just" a sequence of words. everything can be described in "is just" trollish.
06:29:57FromDiscord<shad0w> sent a code paste, see https://play.nim-lang.org/#ix=2xPv
06:30:47FromDiscord<JSGRANT> Talking about documentation in Nim; What would be a use-case for nested multi-line comments? Conceptually I think this its very cool -- but am finding myself hardpress to think of a use for them.
06:31:16*JustASlacker quit (Ping timeout: 246 seconds)
06:31:24FromDiscord<dayl1ght> when you want to comment code blocks that already have comments in it 🙂
06:31:46FromDiscord<JSGRANT> OKAY, THAT IS COMPLETELY FAIR (and now OBVIOUS when it's told to me)
06:31:49FromDiscord<JSGRANT> looool
06:32:00FromDiscord<JSGRANT> GREAT point
06:32:02FromDiscord<dayl1ght> most languages dont have that and its super annoying
06:32:55FromDiscord<dayl1ght> sent a code paste, see https://play.nim-lang.org/#ix=2xPw
06:33:40*JustASlacker joined #nim
06:35:18FromDiscord<krisppurg> #[ try this ]#
06:35:36FromDiscord<krisppurg> (edit) '#[ try this ]#' => '`#[↵try this↵]#`'
06:37:23FromDiscord<JSGRANT> Honestly there are so many nice little design choices in Nim; Like sometimes they need to be explained to me -- but when I "get it" is really resonates lol
06:39:40*JustASlacker quit (Ping timeout: 260 seconds)
06:48:38FromDiscord<lqdev> @JSGRANT dracula doesn't look that good in vscode because the syntax file sucks.
06:49:04FromDiscord<JSGRANT> Yeah, certainly didn't have the same 'feel' as the docs from the little I checked
06:49:54FromDiscord<JSGRANT> I'm fairly sold on Nord; Which is pretty low-contrast -- but Dracula (assuming that is what is being used in dark-mode Nim-Docs) was very readable / enjoyable to me with a fair amount of contrast
06:50:14FromDiscord<lqdev> i personally really like ayu mirage
06:50:31FromDiscord<lqdev> but it looks so much better in vim with nim.nvim :)
06:50:44FromDiscord<lqdev> namely, proc calls are yellow instead of red
06:51:36FromDiscord<lqdev> dracula with nim.nvim looks correct tho
06:51:38FromDiscord<JSGRANT> Was going to ask; There are two themes named 'close' to that in VSCode
06:51:46FromDiscord<lqdev> ayu
06:51:55FromDiscord<lqdev> ayu mirage is a theme from that package
06:52:35FromDiscord<JSGRANT> In VSCode? I only see 'Ayu Mirage Powerup' & 'Ayu MirageMod'
06:52:44FromDiscord<lqdev> look up just 'ayu'
06:52:50FromDiscord<lqdev> should be the first result
06:53:08FromDiscord<JSGRANT> I just get 'Ayu' proper lol
06:53:16FromDiscord<JSGRANT> Then 'Ayu MirageMod'
06:53:26FromDiscord<JSGRANT> actually Adaptive then Mod
06:54:00FromDiscord<lqdev> https://marketplace.visualstudio.com/items?itemName=teabyii.ayu
06:54:14FromDiscord<lqdev> ayu mirage is a variant of it
06:54:21FromDiscord<JSGRANT> Okay, was about to ask this. Cool
06:54:22FromDiscord<JSGRANT> sorry
06:54:23FromDiscord<JSGRANT> lol
06:54:32FromDiscord<lqdev> imo with the best contrast and really nice colors :)
06:54:49FromDiscord<lqdev> dark and light just feel off
06:54:58FromDiscord<JSGRANT> Also -- honestly I'm a bit fatiuged from years of Emacs & then withdrawls; But have been wanting to try Neovim for a bit now ... though I'm on Colemak and that makes the keybinding situation a bit harder lol
06:55:28FromDiscord<lqdev> yeah you'd probably need to rebind hjkl
06:56:17FromDiscord<JSGRANT> Is the rest 'contextual' enough to warrant trying to do more? Like it seems there is a big empahsis on the homerow generally and not just on the direction keys
06:57:04FromDiscord<JSGRANT> There is evidently a way to force 'visual' mode to use different keybindings from input -- but I never could get it working
06:57:19FromDiscord<JSGRANT> Think that would be the ideal, at least to learn basic movement in it
06:57:29FromDiscord<JSGRANT> Then maybe rebind later if seen fit
06:58:10FromDiscord<JSGRANT> @lqdev Also, really digging the yellow-accents in this VSCode theme. Feels very Nim-y lol Lots of golden yellow
06:58:24FromDiscord<JSGRANT> Underline for tab, buttons, etc
06:58:42FromDiscord<JSGRANT> Oh and button-accents evidently
06:59:27FromDiscord<JSGRANT> (Ayu Mirage; If I wasn't clear lol)
07:05:36*gmaggior quit (Quit: Leaving)
07:22:21*maier joined #nim
07:22:29*maier is now known as kenran
07:40:08*JustASlacker joined #nim
07:43:15*kinkinkijkin quit (Ping timeout: 244 seconds)
07:44:11FromDiscord<lqdev> yeah it rocks
07:44:24FromDiscord<lqdev> though right now i'm on material theme (darker variant)
07:45:11FromDiscord<lqdev> of course as a proud ricer my whole system is material darker :)
07:45:52*kinkinkijkin joined #nim
07:47:35FromDiscord<lqdev> screenshot's a bit dated, but this roughly is how it looks https://media.discordapp.net/attachments/371759389889003532/756058753241186345/unknown-78.png
07:52:59PMunchlqdev, that looks pretty nice
07:53:05PMunchI should really get a better terminal theme..
07:53:41PMunchAnd finish my WM :P
07:58:09*kinkinkijkin quit (Ping timeout: 272 seconds)
07:58:26*Trustable quit (Remote host closed the connection)
07:58:27*kinkinkijkin joined #nim
08:01:51FromDiscord<Elegant Beef> Yea you should 😛
08:04:04FromDiscord<JSGRANT> I'm on Material-KDE and fairly happy with it.
08:06:49FromDiscord<JSGRANT> Ayu contrasts a fair-amount with it sadly; It seems. https://media.discordapp.net/attachments/371759389889003532/756063595850104833/Screenshot_20200917_030555.png
08:07:10PMunchI mean I don't mind my terminal theme, but my Vim theme could be improved..
08:08:11*femtotones|away joined #nim
08:08:45FromDiscord<JSGRANT> Yeah, I really don't pay much attention to my terminal theme at all. As-long as it's dark
08:10:04FromDiscord<JSGRANT> Also been having fun plotting out some basic examples with the random library for this 'course' I want to do; That's whats in the editor.
08:10:32FromDiscord<JSGRANT> Shocked this isn't explored more in introductory programming material. Randomness introduces novelity for very little cost.
08:11:42FromDiscord<Elegant Beef> My system matches my editor 😄
08:11:47FromDiscord<Elegant Beef> https://media.discordapp.net/attachments/371759389889003532/756064843299029062/unknown.png
08:11:48FromDiscord<JSGRANT> I was thinking of a 'progression tree' where you teach how to do a coin-flipper, then a dice-roller, then how to throw multiple dice, then a magic 8 ball, then how to take user-input to "ask a question" for it. etc
08:13:38FromDiscord<JSGRANT> @Elegant Beef If I move Awesome eventually; I want to do similar.
08:14:18FromDiscord<JSGRANT> Think I'd care more generally about themeing when it's trivial to edit on my end; That's how I was (to a point where it became a borderline problem "lol") in Emacs
08:14:35FromDiscord<lqdev> i tried using awesome but got lost during configuration lol
08:15:08FromDiscord<lqdev> quite verbose tbh
08:15:48FromDiscord<JSGRANT> I think conceptually you have to frame Awesome as a WindowManager 'framework' / widget toolkit more than a proper WindowManager. It makes a lot less assumptions and it feels like you are building most of it from scratch -- but gives you a lot of tools to do so
08:16:35FromDiscord<JSGRANT> I mean, https://github.com/material-shell/material-awesome was the testing grounds for the gnome-shell based equivilant even
08:16:55FromDiscord<JSGRANT> But there are many-such examples of very impressive ricing
08:17:17FromDiscord<mratsim> I would love to try it, but Gnome File Manager are really anemic on features
08:17:40FromDiscord<JSGRANT> https://www.youtube.com/watch?v=GeBrIwxmdx4
08:17:43FromDiscord<mratsim> And KDE is starting to get on my nerves with their KIO, super painful to mount samba shares
08:19:09FromDiscord<JSGRANT> @mratsim Really the only HORRIFIC thing to me about KDE is Baloo -- like on my media / homeserver (connected to the living-room tv and have a bunch of family-movies / photos on it) that thing COMPLETELY FROZE the whole box for days to a point where I had to just disable it.
08:19:38FromDiscord<mratsim> I remember using nepomuk before to tag my games of go
08:19:46FromDiscord<JSGRANT> Like file-indexing seems like it shouldn't be an issue "at all" for a DE ...
08:19:46FromDiscord<mratsim> it was not bad but the freezing ...
08:19:50FromDiscord<mratsim> baloo was much better
08:20:00FromDiscord<mratsim> then I just removed all
08:20:05FromDiscord<JSGRANT> It's scary to think this is an improvement then lol
08:20:43FromDiscord<Vindaar> @JSGRANT wow, is that still a problem? I had that issue about 5 years ago on a PC at uni where I was forced to use Kubuntu
08:21:04FromDiscord<mratsim> https://en.wikipedia.org/wiki/NEPOMUK_(software)↵↵> As the KDE SC 4 series of releases progressed, it became apparent that NEPOMUK was not delivering the performance and user experience that had initially been anticipated. As a result of this, in KDE SC 4.13 a new indexing and semantic search technology Baloo was introduced
08:22:09FromDiscord<JSGRANT> KDE is honestly about 80% of what I want out of a DE; GNOME has much better like a LOT better design-sense / out-of-the-box defualts imo -- but I always used so many extensions that my workflow broke every single release. I feel like I'm on much more stable grounds overall and pretty happy how everything is themed (not perfect but "nice enough").
08:22:34FromDiscord<mratsim> But for me what I find good in dolphin is, easy way to go to the parent folder, terminal integration or open terminal here, mass renaming, browsing of archives, dual column navigation, tabs
08:23:17FromDiscord<Clyybber> Gnome sucks for removing the ability to disable CSD
08:23:58FromDiscord<JSGRANT> I just am not really willing to do anything but be a consumer / basic user of these environments nowadays. QT & KDE is too big of an ecosystem for me to really invest deeply. I think that's why the idea of "Awesome but in Nim" is so exciting to me -- because it's an ecosystem that's "small enough" that I feel I could maintain my own "perfect lil config" without pulling my hair out as much lol
08:24:32*konkrrrrrr joined #nim
08:24:37FromDiscord<JSGRANT> @Clyybber Honestly I am a fan of CSD; Think it works well within the context of GNOME but will admit it's a polarizing idiom
08:25:05FromDiscord<JSGRANT> And GNOME's apps don't lend themselves too well without CSD nowadays. Because basically you just have a massive toolbar with extra information shoved in if not
08:25:12FromDiscord<Clyybber> Oh, I'm not opposed to CSD I think they are great
08:25:23*kinkinkijkin quit (Ping timeout: 272 seconds)
08:25:28FromDiscord<Clyybber> But it sucks to not be able to disable them
08:25:41FromDiscord<Clyybber> For example I'm not using titlebars at all
08:26:06FromDiscord<Clyybber> But for gnome apps I still get them because CSD, so i have to use gnome-nocsd
08:26:09FromDiscord<mratsim> don't care, be sensible with shortcuts, give me a quick calculator with alt+F2 or ctrl + space, allow me to switch inputs to chinese/japanese/french/english. And have easy samba support and mass rename
08:26:13FromDiscord<mratsim> also "open terminal"
08:26:35FromDiscord<mratsim> and then, don't use my CPU, it's not for you
08:27:24FromDiscord<bearheathen> Whoa. mratsim...you're active here?
08:27:26FromDiscord<bearheathen> Cool!
08:27:36FromDiscord<bearheathen> Love your work. Thank you for your amazing contributions to the community!
08:29:09FromDiscord<JSGRANT> @Clyybber I think the ethos is "design constiency over everything else" in GNOME; But yeah, I can get how that can be frustrating if you happen to not fall in line with x vision.
08:29:35FromDiscord<JSGRANT> And consistency often applies a narrow set of options
08:30:27*vicfred_ joined #nim
08:32:28FromDiscord<mratsim> @bearheathen apparently I'm a mod, I don't know how/when that happened
08:32:31FromDiscord<JSGRANT> sent a long message, see http://ix.io/2xPO
08:32:58FromDiscord<JSGRANT> That being said; Do like Fedora but there are obvious conviences running Arch that I missed.
08:33:37*vicfred quit (Ping timeout: 272 seconds)
08:35:55FromDiscord<Ricky Spanish> is the .nim.cfg file chained up when using nimble? i.e if i include in a library a specific compiler flag and then use the library in another project, does it automatically add the flag even when its included as a library?
08:36:09FromDiscord<JSGRANT> Honestly though, the KDE defaults are SO BAD that it turned me off of the ecosystem for years. Like I didn't even bother exploring past the very-VERY trivial up until about a year or-so ago because of this... first-impressions really matter
08:36:59FromDiscord<mratsim> @Ricky Spanish yes
08:37:21FromDiscord<Clyybber> Its so weird when GNOME tries to appear slick and minimal, while their insides are messy and bloated
08:37:46FromDiscord<mratsim> but for local compiler flag you can just use {.localPassC:"-fmyflag".}
08:37:54FromDiscord<Elegant Beef> I tried a stock fedora install and it didnt even have a desktop afaik
08:37:58FromDiscord<Clyybber> @mratsim Btw, is there interest in using --gc:orc from status?
08:38:23FromDiscord<mratsim> sure, if we can avoid that: https://github.com/status-im/nim-libp2p/pull/367
08:38:23disbot➥ 3add full gc collection every teardown
08:38:43FromDiscord<mratsim> but we can't afford to be the guinea pigs in the coming month. Too much at stake.
08:38:50FromDiscord<mratsim> months*
08:38:57FromDiscord<Clyybber> Yeah, understandable
08:38:58FromDiscord<Ricky Spanish> ah ok thanks @mratsim
08:39:05FromDiscord<mratsim> at least for our Nimbus team, the message research team might be OK
08:39:27FromDiscord<mratsim> @Ricky Spanish example: https://github.com/mratsim/constantine/blob/master/constantine/arithmetic/limbs_asm_montmul_x86_adx_bmi2.nim#L31-L34
08:40:00FromDiscord<mratsim> note that all the procs must be not inline for those flags to work correctly
08:41:19FromDiscord<JSGRANT> @Clyybber There's been a lot of work the last 3-4 releases by (mostly) the Cannonical people and performance has greatly improved. That being said, always thought Javascript was a weird language for this domain. Not unheard of & appeals to the webdev / ui folks obviously -- but you're probably not getting best in class perfomance with it, yeah
08:42:50FromDiscord<JSGRANT> @Elegant Beef What's 'stock Fedora'? You might of grabbed the Server install by default. There is Workstation (Gnome) and Server. A bunch of side-project as well like Silverblue & CoreOS. And spins with other DEs / WMs.
08:43:11FromDiscord<Elegant Beef> No it had gnome, but there was no desktop, or minimize/maximize buttons
08:43:19FromDiscord<Elegant Beef> It has the weirdest decisions imo
08:43:52FromDiscord<lqdev> it's keyboard focused :)
08:44:00FromDiscord<Ricky Spanish> @mratsim ah thats much more hidden i suppose might be nicer than the cfg file? or whats the preference?
08:44:06FromDiscord<Elegant Beef> It's a desktop environment without a desktop
08:44:12FromDiscord<lqdev> if i had to choose a stacking WM it'd probably be gnome
08:44:23FromDiscord<lqdev> but i have i3 :)
08:44:38FromDiscord<mratsim> @Clyybber if you want to test gc:orc to see if it would be usable in our codebase you can try it with the test suite of libp2p, it's the main culprit of GC leaks right now: https://github.com/status-im/nim-libp2p
08:45:13FromDiscord<JSGRANT> @Elegant Beef Oh, you mean like no "desktop icons / folders" ?
08:45:21FromDiscord<mratsim> I prefer localPassC for compiler flags, especially because I can autogenerate them via macro, it's pretty new, it was introduced this year.
08:45:27FromDiscord<Elegant Beef> Yes no desktop 😄
08:45:33FromDiscord<mratsim> also I don't have to take care when renaming my files
08:45:41FromDiscord<Clyybber> @mratsim Thanks
08:46:05FromDiscord<Clyybber> Oh, its not a go wrapper anymore?
08:46:11FromDiscord<Clyybber> Nice
08:46:39FromDiscord<lqdev> having no desktop icons is cool, you have the app launcher for a reason
08:46:52FromDiscord<Elegant Beef> I use i3wm, but if i were using a DE i'd want a desktop
08:46:57FromDiscord<Elegant Beef> As would most people
08:47:12FromDiscord<mratsim> the go wrapper is still there for testing against a reference implementation, but we needed it to unblock the rest of the stack
08:47:44FromDiscord<JSGRANT> @Elegant Beef Think that's a fair-enough design crit; Though contentious because you have a file-explorer and dock. But lack of minimize / maximizie is a bit more nuanced. Becuase it is challening the whole paradigm. Namely with lack of minimize encourage use of multiple desktops.
08:47:44*vicfred_ quit (Quit: Leaving)
08:48:04FromDiscord<JSGRANT> Maximize being an implied pull / up or double-click of the header/titlebar
08:49:50FromDiscord<Elegant Beef> Gnome also killed the system tray, so you cant close programs and have them running in the background
08:49:52FromDiscord<JSGRANT> GNOME is certainly not trying to be a regular WIMP and/or Classic GUI; And takes major hints from UI Design from the last few years -- obviously a lot of which was inspired by mobile interfaces. But I think it does it tactful way & is very easy to reason about once you get out of the mindset that it should be like a 'normal' floating environment
08:50:25*PMunch quit (Quit: Leaving)
08:50:32FromDiscord<Elegant Beef> I mean i can use it but considering the way it's going i cannot suggest it to anyone that expects a normal desktop experience
08:50:34*PMunch_ joined #nim
08:50:47FromDiscord<Elegant Beef> So basically it's dead to me, cause i cant force my parents to use it, and i wont use it
08:51:31FromDiscord<JSGRANT> @Elegant Beef That's a much more fair criticism imo (lack of a system-try); It used to be present in the bottom-right of the overview but was removed with a promise of something better 'eventually' which never materialized. You can still add it back via an extension and it works fine, but yeah, not ideal by any means
08:51:33FromDiscord<mratsim> @Elegant Beef Apple killed the system tray
08:52:09FromDiscord<Elegant Beef> I mean apple not having one doesnt force gnome to not have one, and many applications still dock to the system tray
08:53:14FromDiscord<Elegant Beef> The way i see it if you want to kill off these things make them a setting, which is off by default in the actual settings panel, not in gnome tweaks
08:53:26*hnOsmium0001 quit (Quit: Connection closed for inactivity)
08:53:56FromDiscord<Elegant Beef> Gnome does the same thing windows 10 does, and that's seperate settings in multiple applications
08:54:20FromDiscord<Elegant Beef> *Well atleast ubuntu/fedora's implementations*
08:54:49FromDiscord<JSGRANT> Well I think "tweaks" is basically a 'not officially endorsed set of options, but we want to still provide them because the spirit of foss' kind of thing
08:55:07FromDiscord<JSGRANT> So I think it makes sense to have an extra degree of seperation
08:55:09FromDiscord<Elegant Beef> Dont you need tweaks for extensions?
08:55:29FromDiscord<JSGRANT> Not anymore; There is a seperate 'extensions' app
08:55:40FromDiscord<JSGRANT> Maybe they rolled it into settings now, idk
08:56:08FromDiscord<Elegant Beef> It doesnt make any sense to seperate it, it's a setting, put it in a "gnome settings" tab and carry on
08:56:34FromDiscord<Elegant Beef> Like privacy https://media.discordapp.net/attachments/371759389889003532/756076113184423966/unknown.png
08:56:38FromDiscord<Elegant Beef> It's a sub group
08:56:51*PMunch_ quit (Remote host closed the connection)
08:58:04FromDiscord<Elegant Beef> I feel like at the point you "hide" settings and remove features without opt in, you've officially lost the UX and dont care about users
08:58:36*PMunch joined #nim
08:59:20*idf04 joined #nim
08:59:40*Tanger quit (Quit: Leaving)
09:00:09*codic quit (Quit: Idle for 30+ days)
09:10:32FromDiscord<PizzaFox> sent a code paste, see https://play.nim-lang.org/#ix=2xPZ
09:10:45FromDiscord<PizzaFox> (edit) 'https://play.nim-lang.org/#ix=2xPZ' => 'https://play.nim-lang.org/#ix=2xQ0'
09:11:08FromDiscord<PizzaFox> is there some way i can pass an enum as a parameter or type param to the `newDownloader` proc?
09:11:24FromDiscord<PizzaFox> im just passing it down to `Media`
09:11:44*konkrrrrrr quit (Ping timeout: 272 seconds)
09:12:23FromDiscord<Vindaar> When you write `Downloader[Kinds]` the `Kinds` refers to a generic. What you want (I assume) however is a specific field of an enum though, correct?
09:12:46FromDiscord<PizzaFox> no
09:12:49FromDiscord<PizzaFox> i want to pass the whole enum
09:12:50*Zectbumo quit (Remote host closed the connection)
09:12:56*kinkinkijkin joined #nim
09:12:57FromDiscord<Rika> What enum?
09:13:08FromDiscord<Rika> I don't see an enum here
09:13:23FromDiscord<PizzaFox> yes its defined elsewhere
09:13:23FromDiscord<Vindaar> You don't have to pass any enum if it's always the same enum
09:13:54FromDiscord<Rika> Vindaar gl helping them I gotta do something else
09:14:27FromDiscord<Vindaar> sent a code paste, see https://play.nim-lang.org/#ix=2xQ1
09:15:30*NimBot joined #nim
09:15:42FromDiscord<Vindaar> no, only if you wanted to have different `Kinds`
09:15:45FromDiscord<PizzaFox> i do
09:15:57FromDiscord<Vindaar> so you have N different enums?
09:15:59FromDiscord<PizzaFox> yes
09:16:10FromDiscord<PizzaFox> each `IdResolverProc` has a different enum to help it keep track of what its identifying
09:16:14FromDiscord<PizzaFox> ex. user profile, user post, etc.
09:16:33*abm joined #nim
09:16:34FromDiscord<Vindaar> Then you do need generics after all, yes
09:16:38FromDiscord<PizzaFox> eeeeeee
09:16:54FromDiscord<PizzaFox> the goal here is for me to figure out how generics work with procs
09:17:14FromDiscord<PizzaFox> and then figure out if i do it in the `newDownloader` proc or if i can just do it in the `IdResolverProc` (the only place its used)
09:17:16FromDiscord<PizzaFox> (edit) 'its' => 'it's'
09:17:37FromDiscord<PizzaFox> i know how to do this in typescript but i'm not familiar with nims syntax
09:18:30FromDiscord<Vindaar> sent a code paste, see https://play.nim-lang.org/#ix=2xQ4
09:18:38FromDiscord<PizzaFox> sick
09:18:46FromDiscord<PizzaFox> will test it out
09:19:12FromDiscord<Vindaar> there could still be something wrong here of course, since I didn't try to compile it, but the general idea is fine
09:19:21FromDiscord<PizzaFox> editor says its legit
09:19:43FromDiscord<PizzaFox> the nim extension is kinda wacky, you have to save files back and forth until it synchronizes everything properly
09:20:07FromDiscord<Vindaar> using VSCode?
09:20:09FromDiscord<PizzaFox> yes
09:20:17FromDiscord<Vindaar> ok, can't help you there 🙂
09:20:19FromDiscord<PizzaFox> also it was wacky because it isnt compiling properly
09:20:31FromDiscord<PizzaFox> `Error: cannot instantiate: 'newDownloader[InstagramIdKind]'; got 1 type(s) but expected 2`
09:20:44FromDiscord<Vindaar> oh
09:20:52FromDiscord<PizzaFox> what is this second type it speaks of
09:21:03FromDiscord<PizzaFox> we got the one generic and 3 params that have worked prior to this point
09:21:09FromDiscord<PizzaFox> (edit) 'worked' => '~~worked~~ compiled'
09:21:15FromDiscord<Vindaar> the `IdResolverProc` argument in the proc signature has to be `IdResolverProc[T]` as well
09:21:22FromDiscord<PizzaFox> o
09:21:37FromDiscord<PizzaFox> thats a weird way for it to communicate that
09:21:45FromDiscord<PizzaFox> haha it compiles now thank you very much
09:22:18*krux02 joined #nim
09:22:24FromDiscord<Vindaar> then you don't even have to use the `newDownloader[MyEnum1](...)` syntax and you can just write `newDownloader(...)` since it can be deduced from the argument
09:22:42FromDiscord<Vindaar> (might not hurt for clarity though!)
09:22:42FromDiscord<PizzaFox> nim syntax wins again
09:23:00FromDiscord<PizzaFox> since the Kind is only getting used in that one proc it makes sense to get rid of it imo
09:23:13FromDiscord<PizzaFox> nim syntax is actually bonkers
09:24:49FromDiscord<PizzaFox> my buddy was doing super beginner block programming the other day and i showed a snippet of nim code to demonstrate what text programming is like
09:25:03FromDiscord<PizzaFox> sent a code paste, see https://play.nim-lang.org/#ix=2xQ6
09:25:05FromDiscord<PizzaFox> this is like valid english
09:25:09FromDiscord<Vindaar> hehe, glad you like it!
09:25:43*femtotones|away quit (Quit: Default Quit Message)
09:54:54FromDiscord<neow> which language is not text programming?
09:55:00FromDiscord<neow> oh visual nvm
09:55:09FromDiscord<neow> those exist as wel
09:55:12FromDiscord<neow> (edit) 'wel' => 'well'
09:55:56FromDiscord<Vindaar> LabView 😍 🥰 😘 /s
10:13:37*idf04 quit (Read error: Connection reset by peer)
10:16:22FromDiscord<neow> I have never tried any visual programming
10:16:45FromDiscord<neow> is it a huge chore to navigate the code, or is my assumption wrong
10:16:56FromDiscord<Vindaar> be happy about it. ime it's clumsy
10:17:23FromDiscord<Vindaar> not saying that humans aren't technically more visual than whatever "text based" implies
10:17:39FromDiscord<Vindaar> but _writing code_ is a horrible experience
10:17:52FromDiscord<neow> yeah, it's that computers are optimized for text editors
10:18:11FromDiscord<neow> idk, using mice is a pain
10:18:34FromDiscord<Vindaar> I could imagine a distant future with visual coding becoming a lot more productive, but that will be at a time when the limiting bandwidth between my head and the computer has been alleviated
10:19:18FromDiscord<neow> if you can type fast the bandwidth is already near the speed of thinking, no?
10:19:53FromDiscord<Vindaar> is it really though? yes, near the speed of _talking_, but my thinking is way faster than what I can articulate in sentences
10:21:12FromDiscord<neow> if we really want to go in hypothetical scenarios, for me, maybe it would speed up coding if I instantly saw what I want to write, because I could start thinking about the next line
10:21:18FromDiscord<neow> it could be interesting
10:21:45FromDiscord<Vindaar> yeah, that would be a boon already. Well, the next few decades will be interesting for sure 🙂
10:22:01FromDiscord<neow> i hope they ban any thought reading tech though
10:22:09FromDiscord<neow> together with facial/speech recognition
10:22:27FromDiscord<neow> I don't trust the companies/government enough for this tech to be legal
10:23:27FromDiscord<Vindaar> this is getting off topic... but I agree to in principle. I still hope we can have fancy tech with privacy in place. Will be hard, but not necessarily impossible
10:45:42*sagax joined #nim
10:51:32PMunchneow, well the nice thing with visual programming for beginners is that you don't have to worry about syntax
10:52:00PMunchIt's more about piecing your program together logically than trying to figure out how to type something and which symbols go where
10:53:11PMunchlik u cn reed tis just fin, but a computer would have no frickin' clue what that sentence was supposed to mean. Visual programming just means you can't type stuff that looks fine to a human but in incomprehensible to the computer
10:53:21FromDiscord<Vindaar> but you quickly have different problems. things like "oh, in which order does this run now?". and quickly you have so much stuff you need to add as visual building blocks that it's just another syntax to learn
10:54:26PMunchOh for sure, much of the complexity is still there. But a misplaced comma is impossible
10:54:37FromDiscord<Vindaar> true
10:55:24PMunchAnd error messages typically won't tell you "you're missing a comma here", because to do that means to understand what the programmer meant to do originally, in which case you could just fix it automatically
10:55:27FromDiscord<Vindaar> for a certain group of people it is certainly advantageous (thinking young children), but in my experience it just doesn't scale well
10:55:56FromDiscord<Vindaar> which is related to what I admitted above, that humans are inherently visually focused
10:56:07PMunchAgreed, it's nice for kids and maybe even simple automation stuff for non-tech people. But for any kind of serious work it's probably not going to be very useful
11:01:20FromDiscord<Vindaar> yeah
11:23:48*Vladar joined #nim
11:25:21FromDiscord<neow> > neow, well the nice thing with visual programming for beginners is that you don't have to worry about syntax↵@PMunch[IRC]#0000 oh, that makes sense, thank you for the in depth explanation :)
11:25:33FromDiscord<neow> it actually makes perfect sense
11:28:06FromGitter<alehander92> visual coding can be fine
11:28:08FromGitter<alehander92> imho
11:28:12FromGitter<alehander92> but it needs more research
11:28:20FromGitter<alehander92> and maybe just a ipython-like notebook
11:28:30FromGitter<alehander92> optional visual coding for just some cases
11:28:34FromGitter<alehander92> might be more optimal
11:35:03*superbia1 joined #nim
11:35:59FromDiscord<neow> i guess also depends on the maturity of the environment, since text-based programming languages have gone a long way to be programmer-friendly
11:36:15FromDiscord<neow> (edit) 'i guess also depends on the maturity of the environment, since text-based programming languages have gone a long way to be programmer-friendly ... ' => 'i guess also depends on the maturity of the environment, since text-based programming languages have gone a long way to be programmer-friendlyand editors to be code-friendly'
11:36:33FromDiscord<neow> (edit) 'i guess also depends on the maturity of the environment, since text-based programming languages have gone a long way to be programmer-friendly and ... editorscode-friendly,' => 'i guess also depends on the maturity of the environment, since text-based programming languages have gone a long way to be programmer-friendly andtext' | 'code-friendly' => 'code-friendly, not to talk about IDEs'
11:36:43FromDiscord<neow> (edit) 'to talk about' => 'even gonna mention'
11:37:18*superbia quit (Ping timeout: 244 seconds)
11:38:26alehander92yeah
11:38:31alehander92i mean i am biased
11:38:58alehander92because i applied to one similar company
11:39:14alehander92but i do think it is possible to have a bit of that
11:39:22alehander92even if I like text syntax a lot
11:40:48alehander92the luna guys have text and visual repr-s iirc
11:41:00alehander92so one can probably use visual for stuff where it actually works fine
11:41:02FromDiscord<Vindaar> I... just got a compiler crash in the linter, because it tries to go out of bounds in the string `0x7f05eab96ae0"weaveTask_ParallelFor_"`. fun times
11:41:02alehander92even if 20%
11:41:07alehander92of the cases: maybe this would be ok
11:41:16*Vladar quit (Remote host closed the connection)
11:41:29alehander92(and yeah, learnin gto write text might be better: but this might still use a tree-like ide?
11:41:30alehander92)
11:41:39*Vladar joined #nim
11:42:39FromDiscord<neow> > I... just got a compiler crash in the linter, because it tries to go out of bounds in the string `0x7f05eab96ae0"weaveTask_ParallelFor_"`. fun times↵@Vindaar compiler crash :O
11:43:01FromDiscord<neow> i haven't seen that before, i guess i'm lucky or i haven't programmed in nim long enough
11:43:16FromDiscord<Vindaar> @neow ah, it happens from time to time. But never seen one in the linter. Typically it's stuff related to generics, static, macros etc
11:45:48*arecacea1 quit (Remote host closed the connection)
11:46:13*arecacea1 joined #nim
11:56:07FromDiscord<Vindaar> ok, the regression got introduced somewhere between 1.2.4 and 1.2.6. Will try to open an issue soon
12:06:02*supakeen quit (Quit: WeeChat 2.9)
12:06:42*supakeen joined #nim
12:07:06*Trustable joined #nim
12:08:38*rockcavera joined #nim
12:25:21*D_ quit (Ping timeout: 265 seconds)
12:32:29FromDiscord<himu> sent a code paste, see https://play.nim-lang.org/#ix=2xRa
12:32:37FromDiscord<himu> What is the exact error here?
12:32:59PMunchThe signature doesn't match
12:33:09PMunchsigHandler needs to take a `cint` not an `int`
12:33:41FromDiscord<himu> @PMunch but what's the solution for the handler?
12:34:04PMunchChange `a: int` to be `a: cint` in the procedure declaration
12:34:33FromDiscord<Recruit_main707> or int32 if you will
12:34:33PMunchLike so: https://play.nim-lang.org/#ix=2xRc
12:34:41PMunchNo, not int32 if you will
12:35:01FromDiscord<Recruit_main707> cint = int32
12:35:06PMunchcint maps to "int" in C, which can be anything from int16 to int64 IIRC
12:35:20PMunchOn Arduino for example it's int16
12:36:02FromDiscord<himu> Thanks done. ↵↵One more doubt. What should I use by default? `int64` or `int`. most of the places I use `int` but many standard library functions take in `int64`. I have to cast again and again
12:36:14PMunchAh, `int` can only be 16 or 32 bit, not 64
12:36:14FromDiscord<himu> I am using x64 machine
12:36:31PMunchThat's a bit strange
12:36:40PMunchint in Nim is defined to be the same size as a pointer
12:36:43FromDiscord<Recruit_main707> int == int64 in nim
12:36:47FromDiscord<Recruit_main707> iirc
12:36:50PMunchWhich on a x64 machine should be int64
12:37:10PMunch@Recruit_main707, only on 64 bit machines
12:37:15FromDiscord<himu> really. i am getting compile time errors saying cast to `int`
12:37:37PMunchWhat specifically are you trying to use?
12:38:00PMunchNim is pretty strict about types, but I thought the int type would automatically match
12:39:24FromDiscord<himu> I am using date/duration functions at the moment.
12:41:22FromDiscord<himu> e.g. `initDuration(seconds = 1).inSeconds()` gives be int64
12:44:22PMunchAre you sure you are compiling for 64 bit?
12:44:24PMunchhttps://play.nim-lang.org/#ix=2xRg
12:44:28PMunchThis works just fine ^
12:46:23PMunch@himu, could you add this snippet to your project and tell me the output? https://play.nim-lang.org/#ix=2xRi
12:46:45PMunchPreferably in the same project you have issues with, in case it picks up a weird configuration file
12:49:14FromDiscord<himu> > Are you sure you are compiling for 64 bit?↵@PMunch[IRC]#0000 ↵↵How do i know? my computer is 64-bit. i am on a windows machine
12:50:17FromDiscord<Recruit_main707> do nim --version
12:51:18FromDiscord<Recruit_main707> the first line should be:↵`Nim Compiler Version x.x.x [Windows: amd64]`↵if you have 64bit nim
12:51:27*letto quit (Quit: Konversation terminated!)
12:51:59FromDiscord<Clyybber> disruptek: Can you give me a refresher on the cps arc issue?
12:53:29*letto joined #nim
12:54:06PMunch@himu, just add the things I sent you to your project and tell me what it outputs
13:13:07*waleee-cl joined #nim
13:37:03FromDiscord<himu> sent a code paste, see https://play.nim-lang.org/#ix=2xRI
13:37:31FromDiscord<himu> (edit) 'https://play.nim-lang.org/#ix=2xRI' => 'https://play.nim-lang.org/#ix=2xRJ'
13:39:50*dgb quit (Quit: WeeChat 2.7.1)
13:48:20*dgb joined #nim
13:59:02PMunchHmm, that looks good though
13:59:12PMunchint should definitely be the same as int64
14:02:03FromDiscord<himu> sent a code paste, see https://play.nim-lang.org/#ix=2xRP
14:02:35FromDiscord<himu> (edit) 'https://play.nim-lang.org/#ix=2xRP' => 'https://play.nim-lang.org/#ix=2xRQ'
14:02:50*dgb quit (Quit: WeeChat 2.7.1)
14:04:26FromDiscord<lqdev> int is not implicitly convertible to int64 because it may be int32 on some architectures
14:04:28FromDiscord<himu> sent a code paste, see https://play.nim-lang.org/#ix=2xRR
14:04:47FromDiscord<lqdev> oh wait
14:04:50FromDiscord<lqdev> it's the other way around
14:05:48FromDiscord<lqdev> int64 is not implicitly convertible to int because int may be int32 which would be a narrowing conversion
14:06:01FromDiscord<himu> okay. i got it. `int64` cannot be used for `int`. but `int` can be used for `int64` because architechtures may vary. got it,
14:06:10FromDiscord<himu> thanks a lot guys.
14:07:03FromDiscord<lqdev> np
14:09:24FromDiscord<himu> by the way. nim is an awesome language. I built my first project in nim. ported some javascript project to nim and surprisingly i never felt so comfortable writing a statically compiled language to be so easy to write. ↵↵One complain though. Strict null pointer checks should have been in the language I felt like Kotlin.
14:09:29FromDiscord<himu> (edit) 'complain' => 'complaint'
14:11:14FromDiscord<lqdev> @himu https://nim-lang.org/docs/manual.html#types-not-nil-annotation
14:12:06FromDiscord<neow> oh this is useful
14:12:35FromDiscord<neow> also, if i did `type nilableint = ref int` it would be nilable, and by default nil, right?
14:12:43alehander92himu we're just
14:12:47alehander92working on this feature
14:13:20alehander92it should work in a similar way if it gets to stable
14:13:25alehander92i guess
14:14:07alehander92neow the current plan is for nilable by default
14:14:10FromDiscord<himu> @lqdev I used this and this is an awesome feature. I was talking about things that all `nil`lable ↵A nillable type ***must*** be typechecked before using it otherwise compiler error. That will lessen millions of runtime errors that are to come in future.
14:14:13alehander92it would be too big of a change
14:14:22alehander92for 1.0
14:14:46*dgb joined #nim
14:14:48FromDiscord<neow> like, for all regular non-pointer int's to be nilable by default, and non-nilable if I mark them not nil?
14:14:59alehander92himu yes!
14:15:06alehander92that's the checking we're working on
14:15:10alehander92it's one of the 2020 goals
14:15:25FromDiscord<neow> i tried the ref int thing, and that variable was broken, I couldn't assign anything to it... I need to learn more
14:15:28alehander92neow yep, for now, you'd need to use `not nil` in the definition
14:15:46alehander92but as i said: we're doing a new implementation, and it's not merged yt
14:15:51FromDiscord<himu> > it's one of the 2020 goals↵@alehander92[IRC]#0000 Wow. That will make nim just about the perfect language for everything. Keep the good work going guys!
14:16:10alehander92so i can't really tell you much about the existing one, sorry
14:16:12*PMunch quit (Quit: Leaving)
14:16:25alehander92but assigning non-nilable variables is a bit tricky
14:16:52alehander92the goal is to check that all branches before use assign the required fields
14:16:58alehander92(or the value)
14:17:16alehander92i am not sure how does kotlin deal with that :)
14:21:27alehander92if you're really interested, i can give you a branch to play with later this week (it's here now, but it needs some rework right now)
14:22:13FromDiscord<shad0w> sent a code paste, see https://play.nim-lang.org/#ix=2xRW
14:22:46FromDiscord<himu> > i am not sure how does kotlin deal with that :)↵@alehander92[IRC]#0000 That's the whole selling point behind Kotlin. It's a tricky implementation though I agree. Even TypeScript to some extent implements this. In Rust, we have the Option type that really does the aforementioned job.
14:22:54FromDiscord<himu> > if you're really interested, i can give you a branch to play with later this week (it's here now, but it needs some rework right now)↵@alehander92[IRC]#0000 Cool.
14:23:25alehander92himu yeah, i've used typescript mostly and i've talked with people about the c# nullable stuff
14:23:47FromDiscord<mratsim> if you don't use ref, there are no nillable types
14:23:49alehander92I think this kind of stuff is becoming kinda mainstream
14:24:02alehander92but i kinda changed my opinion about it
14:24:09FromDiscord<mratsim> also we might get formal verification of non nillability: https://nim-lang.org/docs/drnim.html
14:24:11alehander92at one point i thought : Options are it
14:25:02alehander92but currently i think refining types to subranges of their possible values
14:25:08alehander92might be the better lang design
14:25:51alehander92options require so much additional machinery for composition
14:26:13alehander92on the other hand this machinery is useful for other sum types
14:26:31FromDiscord<himu> @alehander42 runtime errors are a drag to handle. Really frustrating at times. nillable and non-nillable types will make things clear to the programmer that (s)he is doing the right thing.
14:26:40alehander92himu absolutely!
14:27:00alehander92i am talking about non-nil vs Options tho
14:27:33alehander92they both lead to compile time detection
14:27:46*superbia1 quit (Ping timeout: 260 seconds)
14:27:51alehander92mratsim i have high hopes for the z3 stuff too
14:27:53FromDiscord<himu> > i am talking about non-nil vs Options tho↵@alehander92[IRC]#0000 oh. didn't see the option type. cool.
14:28:09alehander92it's the approach that functional langs/rust take iirc
14:28:39alehander92and yeah: if you don't actually have a pointer, you do need an Option i guess
14:28:45alehander92e.g. an atom value
14:28:51FromDiscord<himu> yeah. true.
14:29:00FromDiscord<mratsim> Options do the right thing with pointer type anyway, no cost
14:29:34alehander92yeah but they do carry some userland cost imo
14:29:42alehander92i have to constantly unwrap/pattern match
14:29:51alehander92i need to take care when map/chaining stuff on them
14:30:17alehander92so if nothing is a possible "extension" of the type
14:30:26alehander92like pointers and NULL or seq-s and @[]
14:31:20alehander92it can be useful to just keep a subtype of it which is safe
14:32:06FromDiscord<himu> can this implementation not be done at compile time only? I mean at the end when C is generated, just put everything as it is now. Rather than having it in the compiled C output, have it just as a check. Like TypeScript
14:32:20alehander92but typescript also does it on compile time
14:32:49FromDiscord<himu> Yeah. only compile time check for nilability.
14:32:55alehander92yeah, that's the plan
14:32:57FromDiscord<mratsim> "not nil" does that
14:33:06FromDiscord<mratsim> and formal verification further down also
14:33:16*thomasross joined #nim
14:33:19FromDiscord<mratsim> (i.e. delegating that to a theorem prover)
14:33:26alehander92well, just throwing z3 doesn't mean it's "verified"
14:33:36FromDiscord<mratsim> it is
14:33:38alehander92because you need to integrate it with flow info
14:33:46alehander92and the existing nim passes
14:33:52alehander92and now you need to verify that part
14:33:58alehander92z3 just works on what you give to it
14:34:00FromDiscord<mratsim> Well you have proofs that some situation cannot or have to happen
14:34:21alehander92yeah, i was mostly nitpicking :)
14:34:28FromDiscord<mratsim> this is what I describe here for correct-by-construction programs: https://github.com/nim-lang/RFCs/issues/222
14:34:29disbot➥ 3Correct-by-construction Nim programs ; snippet at 12https://play.nim-lang.org/#ix=2lbm
14:35:12alehander92yeah checks for state machines would be cool
14:35:20alehander92i kinda have another idea for that
14:35:30alehander92but i should eventually prototype it
14:35:35alehander92going for a train, see ya
14:37:47*superbia1 joined #nim
14:41:54FromGitter<brentp> I'd like to get my library working with gc:orc/arc. but am hitting this: https://github.com/nim-lang/Nim/issues/14226 that issue was closed, but I don't see how to resolve. Any ideas?
14:41:56disbot➥ 5[ARC] Code with a finaliser and object initialisation doesn't compile ; snippet at 12https://play.nim-lang.org/#ix=2xS2
14:42:18FromDiscord<shad0w> sent a code paste, see https://play.nim-lang.org/#ix=2xS3
14:42:22FromDiscord<shad0w> does it mean different things ?
14:42:42FromDiscord<mratsim> no
14:43:07FromDiscord<mratsim> the symbol aren't the same so beware of the case, that's all
14:43:19FromDiscord<shad0w> thats quite alright
14:43:47FromDiscord<shad0w> but the upper case insn't something special in the language or the convention right?
14:44:05FromDiscord<shad0w> my editor aslo seems to syntax highlight them differently
14:44:57FromDiscord<shad0w> i know they are just integers in the end, but North vs North doesn't make it some sort of recursive type right?
14:45:00FromDiscord<haxscramper> Upper case does not mean anything special byt itself, but there is a convention to name types and pure enums uppercase
14:45:15FromDiscord<shad0w> sorry, kindda used to Haskell types : P
14:45:50FromDiscord<shad0w> (edit) 'North' => 'north'
14:46:00FromDiscord<shad0w> (edit) 'North' => '`North`' | 'north' => '`north`'
14:46:33FromDiscord<shad0w> (edit) 'i know they are just integers in the end, but `North` vs `north` doesn't make it some sort of recursive ... type' => 'i know they are just integers in the end, but `North` vs `north` doesn't make it some sort of recursive/ Nested'
14:46:34FromDiscord<haxscramper> Due to how identifiers are handler in nim the only actual difference in case is in first character. And for regular enums the convention is to prefix things with enum type name abbreviation, like `dirNorth`, `dirEast` etc.
14:47:53FromDiscord<shad0w> and it wouldn't allow me use North in there if North was already a separate type right?
14:48:11FromDiscord<shad0w> (edit) 'North' => '`North`'
14:48:43FromDiscord<haxscramper> Yes, that would be a redefinition error
14:49:00FromDiscord<shad0w> sweet. Thanks!
14:49:20FromDiscord<shad0w> sent a code paste, see https://play.nim-lang.org/#ix=2xS5
14:49:25FromDiscord<haxscramper> But if you really want you can use `{.pure.}` on enum and then write `Direction.North`
14:49:28FromDiscord<shad0w> any idea about this ?
14:49:40FromDiscord<shad0w> (edit)
14:49:46*femtotones|away joined #nim
14:49:58FromDiscord<shad0w> > But if you really want you can use `{.pure.}` on enum and then write `Direction.North`↵@haxscramper interesting.
14:51:00FromDiscord<haxscramper> About hex - i don't know, probably address, but I'm not sure.
14:52:38FromDiscord<shad0w> Thanks anyway : )
14:54:28FromDiscord<mratsim> I think nimsuggest is burning more CPU than mining crypto .... so annoying
14:55:15FromDiscord<Gary M> speaking of nimsuggest, I'm trying to learn how to talk to it via sockets
14:55:25FromDiscord<Gary M> but I'm having a lot of trouble with that
14:55:52FromDiscord<Gary M> I can start it like `nimsuggest test.nim` but it doesn't bind to any ports
14:56:34FromDiscord<lqdev> i'm wondering, would it be safe to cast a proc which takes some params to another proc which takes the same number of params, each with the same size, with the same calling convention?
14:57:04FromDiscord<Gary M> so then I do `nimsuggest --port:6000 test.nim` and that seems to bind it to the port, then I connect a client to that port and try to write `sug test.nim 1:7` which should return something
14:57:27FromDiscord<Gary M> but I can't get it to respond to anything from the client at all
14:57:43FromDiscord<lqdev> i'm trying to work around the type system's limitations, i have a `type RootComponent = ref object of RootObj` and a callback `type Callback = proc (comp: var RootComponent)`. could I cast the callback to a `proc (comp: var MyComponent)`, if MyComponent inherits from RootComponent?
14:57:52FromDiscord<lqdev> i'm thinking it _should_ work
14:58:00FromDiscord<lqdev> because the params are of the same size
14:58:08FromDiscord<lqdev> (both are pointers)
15:01:37FromDiscord<mratsim> you can convert in that case
15:02:22FromDiscord<mratsim> but if they inherit, at compiletime the compiler cannot decide which proc to call
15:02:42FromDiscord<mratsim> (well it can if one is instantiated in the same scope as the proc called)
15:05:38FromDiscord<lqdev> the proc is stored in a field in RootComponent
15:05:57FromDiscord<djazz> I started using nim-lang/sdl2 and instantly found a bug heh. https://github.com/nim-lang/sdl2/pull/127/files#diff-3d693a667c2d9c67b635128f6c723241L890-R890
15:05:58disbot➥ 3Fix getNumRenderDrivers
15:08:37FromDiscord<djazz> maybe I should use Vladar4's sdl2 lib instead
15:08:52FromDiscord<djazz> seems more up to date
15:10:21FromDiscord<kodkuce> yo how do you post img on forum
15:11:03FromDiscord<kodkuce> hmm i just checked my cross compile issue thread, i think maybe this /home/me/.choosenim/toolchains/nim-1.2.6/config/nim.cfg is wrong for void-linx
15:11:18FromDiscord<kodkuce> https://media.discordapp.net/attachments/371759389889003532/756170416375988234/2020-09-17_170720.png
15:12:04FromDiscord<kodkuce> tough i uncomented it and put name from my bin but i still can run build on desktop pc like its not compiling proper to arm64
15:13:19FromDiscord<kodkuce> right arm64 should not run on x86_64 pc
15:19:30FromDiscord<kodkuce> i have nothing in bin named genode
15:21:40*FromDiscord quit (Remote host closed the connection)
15:21:56*FromDiscord joined #nim
15:24:33FromDiscord<kodkuce> in default config there is no arm64.linux.gcc.exe =
15:24:54FromDiscord<kodkuce> only arm.linux.gcc.exe, maybe that is issue?
15:27:47FromDiscord<kodkuce> what should be a parraler to " arm-linux-gnueabihf-gcc " ?
15:28:06FromDiscord<kodkuce> https://media.discordapp.net/attachments/371759389889003532/756174648147968070/2020-09-17_172604.png
15:29:57FromDiscord<kodkuce> duno how linker is named for aarch64 i go google it i guess
15:31:34FromDiscord<kodkuce> aarch64-linux-gnu-ld but this i not binary file
15:33:33FromDiscord<kodkuce> guess i can play hit and try cuz google sux
15:34:45FromDiscord<kodkuce> aarch64-linux-gnu-gcc-ar compiled with no error
15:34:58FromDiscord<kodkuce> and now i cant run it on desktop witch is good
15:41:02*hnOsmium0001 joined #nim
15:41:05FromDiscord<kodkuce> hmm on rpi4 now i get ./et: line 2: syntax error: unexpected newline
15:41:20FromDiscord<kodkuce> but on pc i get
15:41:21FromDiscord<kodkuce> ./echotest ↵./echotest: line 1: syntax error near unexpected token `newline'↵./echotest: line 1: `!<arch>'
15:46:18*kenran quit (Ping timeout: 272 seconds)
16:01:46*alfabetacain[m] quit (Quit: Idle for 30+ days)
16:01:59*arecacea1 quit (Remote host closed the connection)
16:02:01alehander92"Hi Andreas! How do you feel, Rumpf?"
16:02:07alehander92this is a part of the test code
16:02:19*arecacea1 joined #nim
16:02:30alehander92we also have four mentions of `love` in the nim codebase
16:02:43alehander92the wonders of full project search when you're a bit lazy
16:02:43*waleee-cl quit (Quit: Connection closed for inactivity)
16:04:09alehander92we have many Python mentions
16:04:11alehander92less Perl ones
16:10:09FromDiscord<kodkuce> sometims i think i should install shbuntu just to stop this pain
16:11:47FromDiscord<lqdev> arch btw
16:13:14FromGitter<alehander92> @brentp best to reopen? or open a new issue
16:13:34FromDiscord<kodkuce> stupid unity runs on ubuntu hassle free too, duno if on arch same
16:14:25FromDiscord<haxscramper> > the wonders of full project search when you're a bit lazy↵@alehander92[IRC]# Grepped for "fuck" over all nim packages, found this - https://github.com/juancarlospaco/sweetanitify/blob/master/src/sweetanitify.nim#L7
16:19:21*lritter joined #nim
16:42:12FromDiscord<kodkuce> anyone know what to put for arm64.linux.gcc.linkerexe = HERE?
16:44:07FromDiscord<kodkuce> https://linux.die.net/man/1/aarch64-linux-gnu-ld
16:44:17FromDiscord<kodkuce> but if i put that it complains
16:45:42FromDiscord<kodkuce> https://hatebin.com/bbvcpyzgqa
16:45:55FromDiscord<kodkuce> tough this is gnu i
16:45:58FromDiscord<kodkuce> (edit) removed 'i'
16:47:19*D_ joined #nim
16:48:13FromDiscord<neow> > @alehander92[IRC]# Grepped for "fuck" over all nim packages, found this - https://github.com/juancarlospaco/sweetanitify/blob/master/src/sweetanitify.nim#L7↵@haxscramper hahaha it's technically a compiler
16:55:05*rockcavera is now known as Guest244
16:55:05*tiorock joined #nim
16:55:05*Guest244 quit (Killed (rothfuss.freenode.net (Nickname regained by services)))
16:55:05*tiorock is now known as rockcavera
16:57:09*femtotones|away is now known as femtotones|notaw
17:02:02ehmryFWIW nixos is overriding the nim.cfg path via an environmental variable, and creating cross-compilers using wrapper scripts
17:03:01FromDiscord<kodkuce> i want to die
17:03:19FromDiscord<kodkuce> like i am so close to installing shubuntu now
17:06:32FromDiscord<shashlick> @kodkuce you can set it to gcc
17:06:32Prestigewhat is shubuntu
17:06:50FromDiscord<shashlick> Same as the exe basically
17:07:09FromDiscord<shashlick> Unless you want to link with c++ cause you have mixed code
17:07:14FromDiscord<kodkuce> ubuntu( with poop prefix)
17:07:24alehander92dude i dont like this package
17:07:28FromDiscord<kodkuce> (edit)
17:07:31alehander92the whole * words thing is so lame
17:07:41FromDiscord<kodkuce> @shashlick what
17:07:46FromDiscord<kodkuce> where i have mixed
17:07:57FromDiscord<kodkuce> ```↵arm64.linux.gcc.exe = "aarch64-linux-musl-gcc"↵arm64.linux.gcc.linkerexe = "aarch64-linux-musl-ld"↵```
17:08:21FromDiscord<kodkuce> nim c -f --cpu:arm64 echotest.nim
17:08:28FromDiscord<kodkuce> i am running c no cpp
17:08:32FromDiscord<shashlick> Set both to gcc, don't set to ld
17:08:52FromDiscord<kodkuce> i tought linker heas to point to some dirent bin
17:09:47FromDiscord<shashlick> https://github.com/nim-lang/nightlies/blob/master/dx.sh#L44
17:10:07FromDiscord<kodkuce> lol ye it builds now
17:10:12FromDiscord<kodkuce> and works on rpi4
17:10:14FromDiscord<shashlick> Don't ask me why but that works
17:10:35FromDiscord<kodkuce> the doom is kinda ended now just need to test with -d:ssl
17:11:05*abm quit (Ping timeout: 240 seconds)
17:12:14FromDiscord<kodkuce> ye i think it works
17:13:50FromDiscord<kodkuce> @shashlick ty :)
17:16:10FromDiscord<shashlick> peace
17:35:04*gmaggior joined #nim
17:37:39*natrys joined #nim
17:42:01*kenran joined #nim
17:47:16*kenran quit (Ping timeout: 272 seconds)
17:51:45*Trustable quit (Remote host closed the connection)
18:06:22*waleee-cl joined #nim
18:08:36FromDiscord<lqdev> are there any other index operators apart from `[]` and `{}`?
18:23:37*bung_ joined #nim
18:25:09*bung quit (Ping timeout: 272 seconds)
18:27:45FromDiscord<Vindaar> as in something that is typically used?
18:32:00FromDiscord<kodkuce> anywone know like some training app i can self host or phone app, basicly i just want like some todo, with progress monitoring
18:36:38*Vladar quit (Quit: Leaving)
18:37:55puluxcan someone look on nimdow, a tiling windowmanager: it use startProcess to start applications, but it also forked zombie sh processes
18:38:18puluxwhat is the best to fork a process and forget him?
18:38:25FromDiscord<tomck> Hello! I want to return an optional `lent T`, I would've thought `Option[lent T]` was the way to go here, but 'lent' is invalid in this context (as a type parameter, i think)↵↵What's the way to go about this?
18:40:12FromDiscord<Vindaar> I'm not really into this whole `lent` etc business yet, but I would assume it would be `lent Option[T]`
18:40:12FromDiscord<tomck> I mean.. should i just use a pointer?
18:40:30FromDiscord<tomck> No, since that 'lends' the option, which is a stack value i'm constructing
18:40:51FromDiscord<tomck> I think a pointer is the way to go here actually... mb
18:43:53*Zectbumo joined #nim
18:47:26*bung_ quit (Ping timeout: 272 seconds)
18:51:44*bung joined #nim
18:52:31*tiorock joined #nim
18:52:31*tiorock quit (Changing host)
18:52:31*tiorock joined #nim
18:52:31*rockcavera is now known as Guest20249
18:52:31*tiorock is now known as rockcavera
18:53:39puluxwhat is the best to fork a process and forget him?, nimdow use: "discard startProcess(command = cmd, options = { poEvalCommand })"
18:56:18*Guest20249 quit (Ping timeout: 272 seconds)
18:56:49*bung quit (Ping timeout: 272 seconds)
18:57:18*bung joined #nim
19:02:46FromDiscord<djazz> hmm, is raspberry pi not supported by choosenim? `Error: Sorry, your platform (linux_arm) is not supported by choosenim.`
19:03:05FromDiscord<dom96> it is not
19:03:24FromDiscord<djazz> how do i compile it then? pretty sure i've seen choosenim compile it in the past
19:03:54FromDiscord<dom96> https://github.com/nim-lang/Nim#compiling
19:04:24FromDiscord<djazz> yes, but can't choosenim do that as fallback?
19:04:44FromDiscord<djazz> pretty sure i've used nim before on a pi...
19:04:48FromDiscord<dom96> yes, but there are no choosenim releases for arm
19:04:53FromDiscord<shashlick> there's just no precompiled binary
19:05:05FromDiscord<shashlick> @elijahr was working on it
19:06:19*bung quit (Ping timeout: 260 seconds)
19:07:07FromDiscord<dom96> afaik there isn't much of a blocker, just need CI to build choosenim for us, right?
19:07:28FromDiscord<shashlick> ya
19:07:47FromDiscord<shashlick> there were some code changes too in the init script but the PR covered that too
19:07:49FromDiscord<shashlick> and few other things
19:08:13FromDiscord<djazz> an option to compile nim when using choosenim would be nice, for unsupported platforms
19:08:23FromDiscord<shashlick> https://github.com/dom96/choosenim/pull/215
19:08:24disbot➥ 5Support arm64 and powerpc64el
19:08:35FromDiscord<shashlick> @djazz - if you have a compiled choosenim binary, it will work per usual
19:08:40FromDiscord<shashlick> it will compile the binaries for you
19:08:48*bung joined #nim
19:08:55FromDiscord<djazz> ah right, choosenim itself is a nim program
19:10:18FromDiscord<djazz> @shashlick that's not for armv7l/armhf though
19:10:30FromDiscord<djazz> compiling nim manually now ^^
19:10:41FromDiscord<shashlick> just use a nightlies build
19:11:28FromDiscord<shashlick> https://github.com/nim-lang/nightlies/releases/
19:17:37*bung quit (Ping timeout: 264 seconds)
19:23:08*bung joined #nim
19:27:50*bung quit (Ping timeout: 260 seconds)
19:32:22*abm joined #nim
19:33:51*bung joined #nim
19:38:44*bung quit (Ping timeout: 272 seconds)
19:39:48*bung joined #nim
19:42:58*kenran joined #nim
19:44:31*tiorock joined #nim
19:47:54*kenran quit (Ping timeout: 260 seconds)
19:48:14*rockcavera quit (Ping timeout: 272 seconds)
19:51:34*bung quit (Ping timeout: 256 seconds)
19:51:58*vsantana joined #nim
19:52:48*marcpm joined #nim
19:58:51*bung joined #nim
19:59:05FromDiscord<reilly> Would anyone happen to be knowledgeable on Dimscord?
19:59:22*Jesin quit (Quit: Leaving)
19:59:30FromDiscord<IanIAnIAN> About dim?
20:00:04FromDiscord<shashlick> Even I was looking yesterday to convert my slack bot into a discord bot
20:01:01FromDiscord<shashlick> Got turned off, too much work - am simply using matterbridge to cross post from slack to discord for now
20:01:32FromDiscord<shashlick> I just want rss and github notifications in discord, is that too much to ask
20:02:55*natrys quit (Quit: natrys)
20:03:57*bung quit (Ping timeout: 272 seconds)
20:05:16FromDiscord<reilly> At the moment I just need to know how I would send a message in a specific text channel, since the way it'd be done in Dimscord doesn't appear to be the same as other language's API.
20:06:00FromDiscord<lqdev> cc @krisppurg
20:06:11FromDiscord<reilly> Closest thing I've found is the `getGuildChannel()` procedure, but that calls for a `RestApi` object that I have no idea how to get.
20:06:55FromDiscord<shashlick> You'd think discord had a simple way to do it
20:07:11FromDiscord<shashlick> You can create a web hook for that channel to make it easy
20:07:39FromDiscord<shashlick> But slack has one api call to post to any channel instead of some complex channel id and what not
20:07:42*bung joined #nim
20:08:05FromDiscord<shashlick> I could just use http to post
20:14:19alehander92wow so many people
20:14:21alehander92write bots
20:15:43*bung quit (Ping timeout: 260 seconds)
20:17:48*bung joined #nim
20:19:22FromDiscord<Avatarfighter> Bots are so fun to write alehander
20:20:01alehander92maybe
20:20:13FromDiscord<Avatarfighter> Its true you should try
20:20:16alehander92i did
20:20:21alehander92back then, in elixir
20:20:30alehander92but for messenger iirc
20:20:31FromDiscord<Avatarfighter> Way back when 😛
20:20:38alehander92euro 2016
20:20:52alehander92but not much more xp with that
20:21:03alehander92if one has a cool idea , it can be surely fun
20:21:08FromDiscord<Avatarfighter> yeah
20:21:16FromDiscord<Avatarfighter> it also matters what your writing a bot for too imo
20:21:44alehander92yeah i have no good idea of discord/slack capabilities
20:21:49alehander92in bot stuff
20:21:51FromDiscord<Avatarfighter> Bots for messengers are cool and can be complex
20:22:02FromDiscord<Avatarfighter> I know for discord some people have some really cool ones
20:22:10alehander92what are the coolest!
20:22:26*bung quit (Ping timeout: 260 seconds)
20:22:54FromDiscord<Avatarfighter> In my opinion, I think the coolest are the ones that are all in one
20:23:11FromDiscord<Avatarfighter> The ones that do moderation, music, fun features, etc
20:23:13*bung joined #nim
20:24:16FromDiscord<shashlick> my irc <-> slack bot was to bridge irc DMs into slack
20:24:30FromDiscord<Avatarfighter> that's sick
20:25:01*superbia1 is now known as superbia
20:26:13*narimiran quit (Ping timeout: 260 seconds)
20:26:54*lritter quit (Quit: Leaving)
20:27:12alehander92cool!
20:27:25alehander92yeah i also like applying other software's usages inside
20:27:29alehander92like making it a music player
20:27:37alehander92probably not always practical but interesting
20:27:45FromDiscord<Avatarfighter> alehander you could also make a sick bot for games if utility bots aren't your thing
20:27:55FromDiscord<shashlick> https://github.com/genotrance/bot - written in nim but is a bit round about
20:27:58alehander92no i prefer chat bots
20:28:04alehander92i am not such a game guy
20:28:12*bung quit (Ping timeout: 265 seconds)
20:28:30FromDiscord<Avatarfighter> Oh wait shashlick your genotrance on github?
20:28:41FromDiscord<shashlick> ==
20:28:45FromDiscord<Avatarfighter> ohhhh
20:28:48*bung joined #nim
20:28:59*a_chou joined #nim
20:29:14FromDiscord<Avatarfighter> can't wait for plugins to support ARC/ORC 😛
20:29:30FromDiscord<shashlick> it doesn't pass tests
20:29:33FromDiscord<Avatarfighter> ik 😦
20:29:46FromDiscord<Avatarfighter> What did you say was the issue in the issue I had opened, that the memory didn't play nice?
20:30:18FromDiscord<shashlick> https://github.com/nim-lang/Nim/issues/15202
20:30:20disbot➥ 3--gc:arc segfaults if dll modifies object owned by main executable ; snippet at 12https://play.nim-lang.org/#ix=2xUj
20:30:25*a_chou quit (Remote host closed the connection)
20:30:41FromDiscord<Avatarfighter> Oh yeah
20:30:46FromDiscord<Avatarfighter> that's so weird tbh
20:34:52FromDiscord<krisppurg> @reilly you can ask in the discord api server or the guild
20:35:51FromDiscord<krisppurg> ```nim↵↵discord.api.sendMessage("CHAN ID", "CONTENT")```
20:37:48FromDiscord<reilly> I had actually just figured it out myself, but thank you.
20:37:56FromDiscord<krisppurg> your welcome.
20:38:08FromDiscord<krisppurg> (edit) 'your' => 'you're'
20:39:31FromDiscord<shashlick> @krispurg - is there a simple way to connect and send a message to a discord channel by name
20:39:40FromDiscord<shashlick> without knowing chan ID
20:40:14FromDiscord<shashlick> (edit) '@krispurg' => '@krisppurg'
20:40:21*Jesin joined #nim
20:42:14FromDiscord<Avatarfighter> You could use getGuildChannels?
20:42:25FromDiscord<Nisha (LGBTQ+)> Iirc there's a function that lets you get a channel object by name
20:42:44FromDiscord<Nisha (LGBTQ+)> But that could be my Discord.py knowledge from the past coming back to haunt me-
20:42:53FromDiscord<Avatarfighter> i don't see that in dimscord
20:43:01FromDiscord<Avatarfighter> I swear there is but its prob discord.py lol
20:43:12FromDiscord<Nisha (LGBTQ+)> There is in d.py xD
20:43:23FromDiscord<Nisha (LGBTQ+)> This should probably be added to dimscord though
20:43:29FromDiscord<Nisha (LGBTQ+)> ~dimscord
20:43:29disbotno footnotes for `dimscord`. 🙁
20:43:34FromDiscord<Nisha (LGBTQ+)> Oof
20:43:56FromDiscord<Elegant Beef> !repo dimscord
20:43:58disbot12https://github.com/krisppurg/dimscord -- 9dimscord: 11A Discord Bot & REST Library for Nim. 15 37⭐ 5🍴 7& 2 more...
20:44:04FromDiscord<Elegant Beef> Is that what you wanted?
20:44:05FromDiscord<Nisha (LGBTQ+)> Would it be a bannable offence to make a note for `dimscord`, which sends the invite for the Dimscord discord server?-
20:44:16FromDiscord<Nisha (LGBTQ+)> Kinda :P
20:44:17FromDiscord<Avatarfighter> Shashlick, just do `getGuildChannels` and then iterate through the channels and check if the channel.name is the one you're looking for
20:45:19FromDiscord<Clyybber> @Nisha (LGBTQ+) No, of course not
20:45:44FromDiscord<Nisha (LGBTQ+)> Thanks, just wanted to double check :P
20:46:41alehander92Nisha what is Q
20:46:58FromDiscord<Nisha (LGBTQ+)> I don't even have the discord server for Dimscord-
20:46:59FromDiscord<Elegant Beef> A letter
20:47:05FromDiscord<Nisha (LGBTQ+)> Q is for Queer
20:47:06FromDiscord<Nisha (LGBTQ+)> :P
20:49:39FromDiscord<Avatarfighter> I actually didn't know that, that's neat
20:50:06alehander92yeah i read the wiki article now
20:50:15alehander92i thought it's an ironic remark about all the letters
21:04:56FromDiscord<krisppurg> No idea how did I miss a ping
21:05:38FromDiscord<krisppurg> @Avatarfighter you can use m.channel_id in message_create
21:05:54FromDiscord<krisppurg> Or unless get a channel by cache
21:06:16FromDiscord<krisppurg> ```nim↵s.cache.guildChannels[""]```
21:06:31FromDiscord<Avatarfighter> that's smart I didn't think about the cache
21:07:18FromDiscord<krisppurg> just dont rely more on REST api sometimes, because of ratelimits although the lib handles it well.
21:07:58FromDiscord<krisppurg> plus some slowness (which in cache you can get it much faster).
21:10:27*Kaivo quit (Ping timeout: 272 seconds)
21:12:01FromDiscord<Avatarfighter> Yeah I know the ratelimits happen really easily, I just assumed that the bot that is being made wouldn't query the api too often so it could get away with using the REST api
21:12:36*Kaivo joined #nim
21:12:57FromDiscord<krisppurg> I see
21:17:21*tiorock is now known as rockcavera
21:17:22*rockcavera quit (Changing host)
21:17:22*rockcavera joined #nim
21:30:05*kinkinkijkin quit (Read error: Connection reset by peer)
21:30:27*kinkinkijkin joined #nim
21:33:20*bung quit (Ping timeout: 256 seconds)
21:34:02*solitudesf quit (Ping timeout: 258 seconds)
21:35:18*bung joined #nim
21:39:54*bung quit (Ping timeout: 260 seconds)
21:43:46*kenran joined #nim
21:44:48*bung joined #nim
21:49:12*kenran quit (Ping timeout: 272 seconds)
21:49:42*bung quit (Ping timeout: 260 seconds)
21:52:54*bung joined #nim
21:58:24*bung quit (Ping timeout: 260 seconds)
21:59:34FromDiscord<shashlick> Good you're on here - will port my bot to discord and let you know if any issues
21:59:45FromDiscord<himu> basic question. how to install a package in a directory?
22:00:02FromDiscord<himu> (edit) 'directory?' => 'nimble project?'
22:00:26*bung joined #nim
22:00:52*arecacea1 quit (Remote host closed the connection)
22:01:38*arecacea1 joined #nim
22:01:51FromDiscord<Elegant Beef> Inside the `.nimble` add `requires "packageName"`
22:02:11FromDiscord<Elegant Beef> https://github.com/nim-lang/nimble#creating-packages
22:02:28*marcpm quit (Quit: Connection closed for inactivity)
22:04:10FromDiscord<himu> thanks.
22:05:33*bung quit (Ping timeout: 272 seconds)
22:11:56*bung joined #nim
22:16:57*bung quit (Ping timeout: 272 seconds)
22:26:16*bung joined #nim
22:49:27PrestigeHow should I go about waiting for processes to end before I try closing them? I need to let them run async until they have finished
22:53:42PrestigeAtm I'm using startProcess with poEvalCommand (which works) but I've no idea how to fork and stop the process
22:56:29*abm quit (Read error: Connection reset by peer)
22:59:44*lritter joined #nim
23:01:02*NimBot joined #nim
23:01:07FromDiscord<Avatarfighter> Oh you said async
23:01:38FromDiscord<Rika> look into osproc or so
23:01:56FromDiscord<Avatarfighter> You could do `Process.peekExitCode()` in a loop and when the process has the code you're looking for close it?
23:03:15PrestigeHmm I suppose that's an option... Sucks it can't just die on its own
23:04:03FromDiscord<Avatarfighter> yeah
23:04:29FromDiscord<Avatarfighter> I wonder if you could make a proc that returns waitForExit as a future lol
23:07:39Prestigesounds reasonable
23:11:26Prestigealthough with async I need to poll in a loop, which is also annoying
23:18:01PrestigeI wonder if other window managers written in C have to deal with this, or what they do
23:26:50FromDiscord<Elegant Beef> Are you using XCB?
23:29:13FromDiscord<Elegant Beef> If you arent, there is your problem Xlib is a bitch to multithread/async, XCB intentionally makes it friendlier to do
23:29:46FromDiscord<Elegant Beef> Guess i should, Prestige ^
23:31:01PrestigeYeah xlib. I mean I can do it (I have a loop processing x events), just annoying to have to poll futures
23:34:49FromDiscord<Elegant Beef> I imagine moving to xcb would make the async stuff ncier
23:35:24PrestigeHow so? I think I'm just annoyed with the nature of nim's async system
23:36:40FromDiscord<Elegant Beef> Well no clue, dont know the issue you have really. I havent touched async anywhere really
23:38:09FromDiscord<Rika> what's wrong with nim's async system
23:38:13Prestigemaybe there's a nicer way to deal with async I havent found
23:40:13FromDiscord<Elegant Beef> Well describing your issue may provide just that 😛
23:41:10Prestige@Rika basically I want to run a process async, and once it completes I want to close the process. Not sure how to do it cleanly
23:42:29FromDiscord<Elegant Beef> Does startProcess do just that
23:42:51FromDiscord<Elegant Beef> Oh nevermind you need to close the process
23:43:00FromDiscord<Elegant Beef> *Doesnt arc handle that automagically?*
23:44:40*kenran joined #nim
23:47:24FromDiscord<Elegant Beef> Ah guess not, i'm dumb
23:47:42FromDiscord<Elegant Beef> Prestige can i see how you're currently handling it?
23:48:40PrestigeLol atm I'm just discarding the startProcess so I have zombie processes. I think I need to store futures for all the processes in a seq and poll them all in my event loop but I'm not sure
23:49:21FromDiscord<Elegant Beef> You could just add the processes to a sequence then in your main loop check if any are done, if so close them and carry one
23:49:28FromDiscord<Elegant Beef> (edit) 'one' => 'on'
23:49:41FromDiscord<Elegant Beef> Or could use async, however the fuck that works 😄
23:49:49*kenran quit (Ping timeout: 260 seconds)
23:50:02PrestigeI think I'd have to do the same for async
23:50:07Prestigewhich is annoying
23:50:28FromDiscord<Elegant Beef> Couldnt you just make an async which waits for a ms checks if the process is ended, then close it?
23:50:44Prestigems?
23:50:52FromDiscord<Elegant Beef> millisecond
23:51:25Prestigeuh idk why I'd be waiting for any time
23:51:54FromDiscord<Elegant Beef> I guess you could just do a `while proc.status == x` but that takes more computation i'd imagine,
23:52:16FromDiscord<Elegant Beef> The waiting is to delay the check so you dont endlessly pin it
23:52:21Prestigethe user could start a browser with a key binding for example, and after they close their browser I need to close the process
23:52:51PrestigeHm yeah but I'd still have to poll all the futures in my event loop afaik
23:53:04PrestigeJust hoping there's a cleaner way
23:54:04FromDiscord<Elegant Beef> Well if the asyncs procs are a while loop with an internal delay, why would you have to poll the futures?
23:54:40PrestigeIdk, thought I have to
23:54:58FromDiscord<Elegant Beef> Well i havent used nim's async so i could possibly be speaking out my ass
23:55:18Prestigesame I haven't figured out how nim does it
23:55:26PrestigeI wish the examples were more verbose
23:55:40FromDiscord<Elegant Beef> there is runForever
23:55:57Prestigeyeah but that blocks
23:56:46FromDiscord<Elegant Beef> I need to toy with async a bit
23:58:43Prestigeif the code in an invoked async proc automatically runs, this will be fine. I'll try testing it out