<< 30-01-2021 >>

00:05:56*abm joined #nim
00:19:14FromDiscord<gcao> sent a code paste, see https://play.nim-lang.org/#ix=2NHl
00:19:27FromDiscord<gcao> (edit) "https://play.nim-lang.org/#ix=2NHl" => "https://play.nim-lang.org/#ix=2NHm"
00:19:33FromDiscord<gcao> Should s be de-allocated?
00:19:40FromDiscord<gcao> (edit) "s" => "`s`"
00:25:09*adnan338 quit (Remote host closed the connection)
00:35:20*oddp quit (Ping timeout: 272 seconds)
00:52:34leorize@gcao no, in fact you might have corrupted the heap...
01:00:00*njoseph quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
01:01:06*njoseph joined #nim
01:02:56FromDiscord<gcao> Thanks. I'm expecting the last `echo` statement to throw an error because memory behind `s` is deallocated. but it didn't happen.
01:09:19leorizestatic strings are statically allocated for the most part
01:09:34leorizeonly when you modify them would they be moved to the memory
01:09:57leorizeand strings might not be a pointer, they might be an object instead
01:17:56FromDiscord<gcao> I don't understand how pointer and dealloc work. Based on the doc, `dealloc` frees the memory allocated with alloc, alloc0 or realloc. so it won't dealloc `s` here because it's not allocated using any of those?
01:29:15FromDiscord<demotomohiro> string type is actually a pointer and `s.addr` in your code is address of `s`'s pointer.↵That pointer exists on static memory and that exists in static memory.
01:30:09leorizethe string type is not guaranteed to be a pointer...
01:30:14FromDiscord<demotomohiro> That pointer exists on static memory and you cannot dealloc it.
01:30:35leorizein newruntime (used by the newer arc/orc), the string type is an object
01:30:51leorizeso `s.addr` will only get you the object on the stack, which you can't free
01:31:12leorize@gcao in a way, yes
01:32:01FromDiscord<gcao> thank you @demotomohiro @leo
01:32:18FromDiscord<gcao> (edit) "@leo" => "@leorize"
01:35:03FromDiscord<gcao> Let me get back to what I want to achieve, I would like to define a generic type like A that stores a pointer of any type, and would like to avoid memory leak. So I want to call `dealloc` in A's `=destroy`. Is this going to work in general?
01:35:51FromDiscord<gcao> if something in stack can not be deallocated, that's fine
01:35:55FromDiscord<gcao> (edit) "in" => "on"
01:36:47leorizeare you trying to implement a smart pointer type?
01:37:02FromDiscord<gcao> yes pretty much
01:37:15leorizefusion has those
01:37:46leorizehttps://nim-lang.github.io/fusion/src/fusion/smartptrs.html
01:39:19FromDiscord<gcao> great! I'll take a look
01:40:57leorizeand here's the source: https://github.com/nim-lang/fusion/blob/master/src/fusion/smartptrs.nim
01:46:55FromDiscord<gcao> Behind the scenes, what is really a pointer? is it an int, or an int and a size of the memory? how does the compiler know it's dealing with a real pointer or some random number?
01:48:14leorizedepends on the allocator implementation
01:48:43leorizemost allocators use a tree to keep track of memory roots, and yes there are metadata like size and all that stuff
01:48:47FromDiscord<gcao> assuming we're talking about Nim ORC
01:49:13leorizeit still depends on the allocator, orc is just a memory management algo :)
01:49:26leorizeNim's allocator is TSLF if you wanna read more on it
01:50:04FromDiscord<gcao> thanks. haven't even heard of it 😛
01:51:01FromDiscord<ElegantBeef> For the most part you can just think of a pointer as an integer the size of the arch it's running on
01:51:36FromDiscord<ElegantBeef> Atleast in modern computing since the address sizes are the same as the cpu arch, none of that 8 bit cpu with 16 bit addresses 😄
01:52:32FromDiscord<gcao> yeah. that's all I know till today
02:27:36*Gustavo6046 quit (Ping timeout: 246 seconds)
02:28:15*Gustavo6046 joined #nim
02:37:21*wasted_youth quit (Quit: Leaving)
02:52:12*mmohammadi9812 quit (Ping timeout: 264 seconds)
02:55:22*mmohammadi9812 joined #nim
02:57:18*abm quit (Read error: Connection reset by peer)
03:54:05*mmohammadi9812 quit (Ping timeout: 240 seconds)
03:55:42*mmohammadi9812 joined #nim
04:01:50*muffindrake quit (Ping timeout: 264 seconds)
04:02:21ForumUpdaterBotNew thread by Gcao: Looking for advices on data design for a dynamic language, see https://forum.nim-lang.org/t/7449
04:03:10*muffindrake joined #nim
04:03:38*D_ quit (Ping timeout: 264 seconds)
04:32:10*rockcavera quit (Remote host closed the connection)
04:51:07*waleee-cl quit (Quit: Connection closed for inactivity)
05:10:37saemSup?
05:10:48FromDiscord<ElegantBeef> My ceiling
05:11:10saemGood news
05:11:25FromDiscord<Rika> is there bad news after that>
05:11:37saemYou become a fabulously rich game dev yet, beef?
05:11:59saemRika, nah.
05:12:21FromDiscord<ElegantBeef> Nah that requires publishing and selling my game
05:12:36FromDiscord<Rika> i had a game idea a day ago but i dont know a lick of game dev
05:13:14saemMaybe tomorrow
05:13:36FromDiscord<ElegantBeef> Havent done any further programming today
05:14:11FromDiscord<ElegantBeef> Mostly just need to get level editor loading/saving through gui, and make levels, then it's "done"
05:14:37saemI'm trying to get myself to not program tonight, hopefully be more recharged tomorrow.
05:14:48saemNeed a clear head.
05:15:46FromDiscord<ElegantBeef> Have you played my game?
05:15:59saemHaven't caught up on the channel to not tempt myself.
05:16:06saemI haven't played it.
05:16:24FromDiscord<ElegantBeef> https://jbeetham.itch.io/linerino go play it, dont program 😛
05:16:30saemHehe
05:16:46saemYou gone mine crypto on my machine?
05:16:56saem😉
05:17:03FromDiscord<ElegantBeef> Probably, only way i could make money 😛
05:17:14saem"money"
05:19:06saemI'm gonna try a video game that is going to thoroughly disappointment me.
05:19:33saemNot yours, warhammer 40k inquisitor
05:19:50saemThen play yours after 40k let's me down
05:22:14FromDiscord<ElegantBeef> Aw that way you can have 2 disappointments in a single night?
05:23:05saemDouble header!
05:51:38*def- quit (Quit: -)
05:51:49*def- joined #nim
05:53:16*a_chou joined #nim
06:11:06*a_chou quit (Remote host closed the connection)
06:12:08*pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
06:13:36*pbb joined #nim
07:43:44*narimiran joined #nim
07:47:23FromDiscord<lantos> sent a code paste, see https://play.nim-lang.org/#ix=2NIx
07:48:09FromDiscord<lantos> (edit) "https://play.nim-lang.org/#ix=2NIx" => "https://paste.rs/v4S"
07:48:12FromDiscord<lantos> (edit) "https://paste.rs/lOG" => "https://play.nim-lang.org/#ix=2NIy"
07:48:18FromDiscord<ElegantBeef> Over sensitive anti-virus
07:48:38FromDiscord<lantos> https://pastebin.com/5Sz5bSrB
07:48:43FromDiscord<lantos> is my code
07:48:48FromDiscord<lantos> Its windows defender lol
07:49:10FromDiscord<ElegantBeef> Well disable defender 😄
07:50:37FromDiscord<ElegantBeef> I havent used windows in a while so that's my view, defender tends to be very very annoying
07:51:19FromDiscord<lantos> when I compiled it before it was fine, the moment I compiled with --d:danger windows said it was avirus
07:51:27FromDiscord<lantos> (edit) "avirus" => "a virus"
08:28:45*narimiran quit (Ping timeout: 240 seconds)
08:31:48*mmohammadi9812 quit (Ping timeout: 264 seconds)
08:38:44*mmohammadi9812 joined #nim
09:29:41FromDiscord<Rika> That’s just the nature of antivirus isn’t it?
09:31:03*mmohammadi9812 quit (Ping timeout: 260 seconds)
09:32:22*antranigv_ is now known as antranigv
09:34:27*mmohammadi9812 joined #nim
10:05:04*krux02 joined #nim
10:07:59*oddp joined #nim
10:34:19FromDiscord<lantos> Yeah I suppose windows didn't like me touching user32.dll
10:56:35*hmmm joined #nim
10:56:55hmmmoh noes! disruptek got hammered...again :o
10:57:07hmmmour boy can't stay out of trouble :|
11:03:54planetis[m]just unban him already ffs
11:04:28planetis[m]im not a newcommer and wasn't offended, also he made a good point about the irc guidelines
11:19:23Zevvwell well well. "intentionally causing chaos in the IRC channel"
11:20:13*Zevv left #nim ("well well well")
11:21:03FromDiscord<lqdev> was he really though
11:21:06FromDiscord<lqdev> he's always like that
11:37:27FromDiscord<Recruit_main707> he sometimes makes it too personal with dom
11:41:37planetis[m]well i would argue that dom baited him, maybe he should be banned for a change
11:46:09*jk13579[m] joined #nim
11:49:44FromDiscord<dom96> I baited him?
11:49:46FromDiscord<dom96> How?
11:50:03FromDiscord<dom96> What good point has he made?
11:59:56FromDiscord<konsumlamm> does anyone happen to know which part of the compiler is responsible for making variables inside templates gensym'd?
12:00:53FromGitter<Araq> evaltempl.nim or maybe semtempl.nim
12:00:57FromDiscord<Clyybber> @konsumlamm semtempl
12:01:05FromDiscord<Clyybber> looking at the set bug?
12:01:20FromDiscord<konsumlamm> if you mean `{k: v}`, yes
12:01:29FromDiscord<Clyybber> yep
12:01:48FromDiscord<Clyybber> Araq: Oh, while you're here: We still need a place to store otherRead
12:02:04FromDiscord<Clyybber> For better error messages
12:02:30planetis[m]oh god i wont even try to argue rn
12:02:31planetis[m]i made my points as clear as i can, i will drop it now
12:04:07FromDiscord<Clyybber> Araq: I thought about putting the error message in the .comment field
12:04:46FromDiscord<Clyybber> The "otherRead here: ... " part
12:05:21FromDiscord<Clyybber> @Araq But I'm not sure if we want to get rid of .comment eventually. But rn this seems like the best solution
12:08:52FromDiscord<lqdev> well all i can say is that disruptek has been banned for a stupid joke he made towards an existing member of the community. nice job, guys
12:11:16FromDiscord<Rika> Was it a joke really
12:12:24FromDiscord<lqdev> > we don't call it whitespace anymore; that's racist.
12:12:28FromDiscord<lqdev> hard to believe that wasn't a joke
12:13:36FromDiscord<dom96> Pretty sure he wasn’t banned for that
12:14:34FromDiscord<lqdev> well i do agree he did say some harsh criticism towards you
12:14:58FromDiscord<konsumlamm> hmm, what is PNode and why isn't is NimNode?
12:15:52FromDiscord<dom96> What was the criticism?
12:16:03FromDiscord<Clyybber> @konsumlamm PNode is NimNode, but in the compiler
12:16:08FromGitter<Araq> he wasn't banned for the joke. he was banned for the constant bullying of dom96
12:23:47FromGitter<Araq> Clyybber: hmm, don't know where to store it either
12:24:28FromDiscord<Recruit_main707> imho disruptek could be less harsh to dom
12:31:54Amun_Rawell, now he's going to be
12:32:40*natrys joined #nim
12:33:51FromDiscord<Recruit_main707> ehehehehehe
12:38:34Amun_Ramy $0.02 reading backlog, he was well aware what he's doing and how it'll end
12:40:16FromDiscord<Meowz> I'm pretty surprised. You guys aren't and sound like that happens often. I never saw someone on Nims Channel flaming or being rough 😄
12:40:49FromDiscord<Meowz> Even if I ask how to do hello world I'll get an honest answer
12:41:01FromDiscord<Rika> disruptek is really the only one that would be like that
12:41:19FromDiscord<Rika> maybe araq a few years ago or something but thats the past
12:46:32FromDiscord<konsumlamm> so, i think i now know why the bug happens: there is no case to handle TableConstr, so i'ts children get analyzed, where the elements are interpreted as ExprColonExpr, so the first element isn't gensym'd
12:46:51FromDiscord<konsumlamm> now i only need to sigure out what i need to write in the TableConstr case...
12:46:51FromDiscord<Clyybber> yep, looks like thats the case
12:46:58FromDiscord<konsumlamm> (edit) "sigure" => "figure"
12:47:02federico3I'd love to see some higher signal-to-noise ratio on the Nim channels...
12:52:01FromDiscord<konsumlamm> ig i should move my rambling to #internals
12:55:11FromDiscord<haxscramper> By the way @Araq, Zevv , saem (and others). - I maybe you missed it, but Yardanico bridged `#internals` to IRC (and matrix/gitter I suppose)
12:55:32FromDiscord<haxscramper> `#nim-internals` on IRC
12:56:21FromGitter<Araq> I'm not on IRC anymore
12:56:53FromGitter<Araq> and there are too many channels, if you have questions regarding Nim's internals, I'm here
12:57:00FromDiscord<Yardanico> Gitter only has #nim and #nim-offtopic bridged
12:57:20FromDiscord<Yardanico> @haxscramper the Gitter bridge isn't controlled by me
12:57:42FromDiscord<Yardanico> and didn't gitter switch to matrix?
12:57:53FromDiscord<dom96> Yeah. I think it’s fine to discuss internals here. Just be on the look out for newbies asking questions amongst the discussions 🙂
12:58:12FromDiscord<konsumlamm> then i'll move back here lol
12:58:16FromDiscord<haxscramper> Maybe add `#beginners`? I porposed it coule of time
12:58:18FromDiscord<haxscramper> (edit) "time" => "times"
12:58:23FromDiscord<haxscramper> (edit) "coule" => "couple"
12:58:28FromDiscord<konsumlamm> can the children of TableConstr be something other than ExprColonExpr?
12:58:43FromGitter<Araq> no (konsumlamm)
12:59:16FromDiscord<haxscramper> Because I think we can't just keep `#main` as a discussion for everything, as we get more people there will be more discussions each going on at the same time
13:00:02FromDiscord<haxscramper> Crosstalking over everything
13:00:57FromDiscord<dom96> Yeah. We should look into doing this long term. For now I think there isn’t enough discussion to warrant it
13:01:00FromDiscord<haxscramper> And like almost every other programming discord has `#beginners` so people might expect something like this
13:01:28FromDiscord<dom96> I’d like irc logs for that channel too first
13:01:33FromDiscord<Yardanico> The problem is that we need enough people to check out #beginners then, otherwise people's questions wouldn't be answered that fast
13:01:54FromDiscord<Yardanico> #main is the main channel on all platforms (gitter, irc, discord, matrix) so there are plenty of people here
13:02:11FromDiscord<konsumlamm> i'd be happy if someone could explain how the stuff in `semtempl.semTemplBody` for `nkCurlyExpr` works, i hope i can then figure out how to do it for `nkTableConstr` (though gtg for a bit now)
13:02:37FromDiscord<Yardanico> I think that most people who are in #nim IRC don't even know that we have like 10 more channels on IRC
13:02:59FromDiscord<Yardanico> (they're "documented" here btw - https://github.com/nim-lang/Nim/wiki#bridged-real-time-chats)
13:03:20federico3Yardanico: 10?
13:03:53FromDiscord<Yardanico> we have 10 channels exactly that are bridged between discord and irc
13:04:31FromDiscord<Yardanico> #nim #nim-offtopic #nimble #nim-internals #nimconf #nim-gamedev #nim-webdev #nim-langdev #nim-science #nim-embedded
13:04:42FromDiscord<Meowx> +1
13:05:33FromDiscord<Yardanico> I mean a #beginners channel would be nice, but not all people will actively look there (especially the ones who are on IRC)
13:06:13FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/805061302393110548/unknown.png
13:07:38FromDiscord<Rika> huh lots of game devs
13:08:28FromGitter<adammflax> I know chat from different nim communities sync to each other, but whats the "main" chat is it gitter?
13:08:42FromDiscord<Yardanico> nowadays it's Discord I'd say
13:08:47FromDiscord<Yardanico> second most popular is IRC
13:12:32hmmmas a newbie I get my questions answered instantly here so my vote is do not change a thing :3
13:13:19FromDiscord<Rika> you're a noob?
13:13:31hmmmbiggest one there is :>
13:14:01FromDiscord<Rika> doesnt sound like it
13:15:32hmmmwell I have a lot of questions anyway and the support has been amazing by countless lads (disruptek included)
13:17:24*filcuc joined #nim
13:25:20*rockcavera joined #nim
13:28:36*filcuc quit (Ping timeout: 240 seconds)
13:32:48*wasted_youth joined #nim
13:38:09*filcuc joined #nim
13:44:31FromDiscord<dom96> @Yardanico I wonder if we should just hook up the Nim blog RSS to the announcements channel
13:45:02FromDiscord<Yardanico> yeah that might be a good idea
13:45:04FromDiscord<Yardanico> found https://monitorss.xyz/
13:45:25*filcuc quit (Ping timeout: 240 seconds)
13:46:14*mmohammadi9812 quit (Ping timeout: 246 seconds)
13:47:26*mmohammadi9812 joined #nim
13:51:53*filcuc joined #nim
13:56:16*filcuc quit (Ping timeout: 240 seconds)
13:58:39FromDiscord<zetashift> I like that idea
14:00:24FromDiscord<Recruit_main707> how do you access an index of a `ptr UncheckedArray[T]`?
14:00:43*filcuc joined #nim
14:02:03FromDiscord<lqdev> yourUncheckedArray[0]
14:02:27Oddmongerit's like a normal array in fact
14:02:38Oddmongerbut not watched by the gc
14:02:44FromDiscord<Recruit_main707> then its not taking the correct arg i think
14:03:44*mmohammadi9812 quit (Ping timeout: 246 seconds)
14:04:27*mmohammadi9812 joined #nim
14:04:34FromDiscord<Recruit_main707> `meshes {.importc: "meshes".}: ptr UncheckedArray[Mesh]`↵`model.meshes[0]`↵`Error: type mismatch: got <ptr Mesh, int literal(0)>`ç
14:05:18*rockcavera quit (Read error: Connection reset by peer)
14:05:48*rockcavera joined #nim
14:08:18FromDiscord<Yardanico> @dom96 check #announcements for how it will look
14:08:25FromDiscord<Yardanico> looks okay since discord also auto-embeds
14:09:47*filcuc quit (Ping timeout: 272 seconds)
14:16:01*mmohammadi9812 quit (Ping timeout: 272 seconds)
14:16:58*mmohammadi9812 joined #nim
14:17:07FromDiscord<dom96> Looks good
14:25:45*mmohammadi9812 quit (Ping timeout: 240 seconds)
14:27:04*mmohammadi9812 joined #nim
14:30:50*narimiran joined #nim
14:34:50*filcuc joined #nim
14:39:34*mmohammadi9812 quit (Ping timeout: 272 seconds)
14:44:24*mmohammadi9812 joined #nim
14:59:45*Thisago joined #nim
15:01:10ThisagoHi everyone!
15:01:29*xet7 joined #nim
15:01:46FromDiscord<Rika> hello there
15:01:56*njoseph quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
15:02:14Oddmongerhi (let's get friendly, we never know :þ)
15:02:22*njoseph joined #nim
15:03:31FromGitter<offbeat-stuff> Just made my first macro
15:03:32FromGitter<offbeat-stuff> https://play.nim-lang.org/#ix=2NKi
15:04:22FromDiscord<dom96> offbeat-stuff: nice!
15:04:48FromDiscord<dom96> Welcome Thisago
15:05:22ThisagoThis language is awesome! Im migrating from typescript to nim. congratulations to everyone working on it
15:05:31*narimiran quit (Quit: leaving)
15:09:24ThisagoThanks dom96
15:14:00FromDiscord<Recruit_main707> sent a long message, see http://ix.io/2NKm
15:14:46FromDiscord<Rika> try model.meshes[][0]
15:14:47FromDiscord<Rika> maybe
15:14:47FromDiscord<lqdev> it's either a bug or meshes is not a ptr UncheckedArray[Mesh]
15:14:52FromDiscord<Rika> it seems odd
15:17:03FromDiscord<Recruit_main707> 🥴 github shows ptr unCheckedArray, but its actually ptr Mesh locally
15:17:10filcucis it safe to call multiple times setupForeignGc
15:17:14filcuc?
15:18:29FromDiscord<Recruit_main707> in the same thread?
15:18:36FromDiscord<zetashift> Welcomeeee Thisago
15:19:26filcucyes
15:19:37filcucin the same thread
15:20:02*waleee-cl joined #nim
15:20:27FromDiscord<Recruit_main707> https://nim-lang.org/docs/system.html#setupForeignThreadGc
15:20:44FromDiscord<Yardanico> yeah "so the GC for this thread will only be initialized once per thread, no matter how often it is called."
15:20:57FromDiscord<Recruit_main707> was about to paste it :P
15:26:32filcucsorry i should have RTFM
15:26:35filcucthanks
15:39:48*Vladar joined #nim
15:46:08*mmohammadi9812 quit (Ping timeout: 260 seconds)
15:46:38*mmohammadi9812 joined #nim
15:51:02*mmohammadi9812 quit (Ping timeout: 264 seconds)
15:58:58*DrWhax quit (Quit: leaving)
16:05:25saemFor what it's worth, I think folks new to Nim shouldn't have to figure out which channel to join to ask questions or whatever, it's yet another thing. I do like the internals channel as it's focused.
16:07:03saemhax: thanks for the heads up.
16:07:33FromDiscord<zetashift> I don't there is enough traffic (yet) to warrant a beginners channel, but hopefully there will be! Cause if enough join, questions could get lost and convo's can get messy
16:07:50*filcuc quit (Ping timeout: 264 seconds)
16:08:51saemHonestly can't think of a good reason why this would ever not be the beginners channel.
16:09:22*haxscramper joined #nim
16:09:39haxscramperI actually thought about it for some time again - and I think it is basically a chicken-egg problem: we won't add `#beginners` because there are not enough people who will be checking on it, and we don't have enough beginner questions flooding `#main` to make everyone feel like it is needed addition.
16:10:03haxscramperSo it's not like this is something that requires action
16:10:30*blueberrypie quit (Remote host closed the connection)
16:10:50*blueberrypie joined #nim
16:12:15haxscramperAnd `#internals` is mostly about 'we don't have enough compiler devs' - like yes, we wont have them if starting with compiler basically means you are on your own and there is no dedicated go-to place for that. I'm not saying that I'm particularly good with new codebases, but man this is annoying to figure out 10k sloc software. With `#internals` I can just put up a question and don't worry about it being washed away by hundreds of
16:12:15haxscrampermessages.
16:13:46FromDiscord<Yardanico> well, we need Araq there for internals to truly be useful :P
16:13:49haxscramperAnd people who know compiler stuff can just check it up when they feel comfortable. I mean I really don't want to be a nuisanse to other people who are doing important stuff, but sometimes I just need to ask a question from compier devs
16:13:50saemAraq: for the macro error count fix, was your intention to keep working on that or would you mind if I carry on that line of work?
16:14:06*rockcavera quit (Remote host closed the connection)
16:14:23FromDiscord<Yardanico> Also, doesn't Araq not receive pings now since he's in Gitter and not IRC?
16:14:27FromDiscord<Yardanico> you have to use @ to ping him now
16:14:31krux02@zetashift, your emoji reaction in discord can't be seen on IRC
16:14:53FromDiscord<Yardanico> oh nvm, he's still on IRC
16:15:02FromDiscord<Yardanico> @zetashift ^
16:15:51krux02seems like pinging someone through the IRC bridge doesn't seem to work either.
16:15:55Yardanicoit works
16:16:01Yardanico@yardanico
16:16:04Yardanicooh wait why
16:16:07Yardaniconeed to restart the bridge heh
16:16:14*FromDiscord quit (Remote host closed the connection)
16:16:31*FromDiscord joined #nim
16:16:43FromDiscord<Yardanico> let's see now
16:16:44FromDiscord<Yardanico> 123
16:16:45Yardanico@yardanico
16:16:47Yardanicoyeah works now
16:17:08FromDiscord<arne> Yordanico, cool
16:17:59FromDiscord<Yardanico> it's just that discord requires special logic for handling pings since you have to ping by user's ID, not just "@nick"
16:18:00krux02stable reliable software in action
16:18:05FromDiscord<Yardanico> xD
16:19:43ForumUpdaterBotNew thread by Mantielero: Compiling some functions into a lib from nim itself, see https://forum.nim-lang.org/t/7451
16:22:50FromDiscord<zetashift> @krux02 @Yardanico I keep doing that out of habit haha, thanks but yea basically I agree with @haxscramper
16:23:08FromDiscord<Yardanico> well, I'm not against #internals, it's good to have
16:25:30FromDiscord<arne> To be honst, there is already a channel for nim compiler developers, but it is not exposed to the public as it is meant for people who work on the compiler only.
16:25:41FromDiscord<arne> in the sense of full time compiler developers.
16:26:09FromDiscord<dom96> You mean the telegram channel?
16:26:21saemThat also means it's really hard to learn for those who are starting our part time
16:26:23FromDiscord<arne> no
16:27:08FromDiscord<arne> well, it it tough getting into full time compiler development, not sure if reading chat would be any help anyway.
16:27:48FromDiscord<arne> That channel isn't supposed for external people to ask questions, that one can be done in main and a reply usually doesn't wait for a long time
16:28:34FromDiscord<arne> @dom96 I was talking about an IRC channel.
16:28:44saemI'm not referring to asking questions, but it does build up a certain context or sense.
16:28:59FromDiscord<arne> But is not a locked channel by any means, the name is just not published
16:29:53saemI'd rather not sure up unwelcome so it's out of reach.
16:30:05saemshow
16:30:32FromDiscord<dom96> I wasn’t aware of this channel.
16:30:47FromDiscord<dom96> Would be cool if we could bridge #internals there.
16:30:54FromDiscord<dom96> And be more open 🙂
16:31:30krux02take the perspective of a compiler developer please.
16:32:16krux02You don't want that every little discussion is open for any unqualifiend opinion to be exposed or every comment that is judged by externals.
16:33:30krux02it is mostly made to have some form of privacy. If the channel would be bridged to something public the point of the channel would be gone and another non public channel would be opened.
16:35:25saemI am considering that, every channel being public isn't helpful, entirely why I'm not going to find it. Merely stating that presently it's really difficult to grow in being able to contribute to the compiler, which seems important a without big company budgets a more distributed model with more part time folks makes sense.
16:36:07saemBut that's advocating for the distributed model, not assuming it to be a conclusion.
16:37:03krux02Well I certainly had my very own problems contributing to the compiler. It is not an easy task.
16:37:49saemThat is to say, presently the complexities of working on the compiler have more to do with information over and above the core problem.
16:37:50krux02Usually when I don't understand something I just start with cleaning up something to get used to the sourcecode and te get working with the sourcecode. Not to achive anything in particular. And then I grow on my tasks.
16:38:27krux02The broblem though is, this model doesn't work very well in Nim for reasons that shall not be said.
16:38:39krux02Reasons I am not contributing to Nim anymore.
16:38:43saemYes, but it's the clean up going to be accepted, that's what I'm looking at right now.
16:38:48saemAh
16:39:13saemFor me it's a sense, perhaps for you it's an experience.
16:39:16krux02cleanup is generally not accepted.
16:40:35saemI mean as long as there are principles behind it, that get better over time, that's would be ideal.
16:41:00krux02Whenever I did some cleanup that did not directly implement a feature or anything that was explicity asked for. It was either rejected for that reason, or it was a very long and weary fight.
16:41:20krux02I am not sure about any principles.
16:42:37krux02even code that was entirely my own grown code and logic, where I was responsible for. I had to fight for to refactor it.
16:43:50saemI will admit I find the current decomposition of sem related functionality increase the cost of reasoning for a language feature or lifetimes/phases/guarantees of transforms.
16:44:07*audiophile joined #nim
16:44:49krux02My goal, before 1.0 was released was all the time to cut away everything that isn't essential.
16:45:06krux02Remove features that are not well implemented or thought through.
16:45:28krux02And when completely unused and undocumented, just cut it away and try to remove traces of it.
16:45:49krux02and then improve dead code analysis for the language to find all the functions and symbols that aren't used anymore.
16:46:12krux02in general, try to simplify and reduce as much as possible.
16:46:34krux02These methods were radical
16:47:00saemMy goal right now would be to as much as possible encode pre and post conditions, lifetimes of internal phases, etc directly in the code so it's easier to reason about.
16:47:55saemMaybe it's there and it simply needs minor things like comments and recognizing the conventions more.
16:48:47FromDiscord<hamidb80> what is `when false:` in nim? 😕
16:48:58FromDiscord<hamidb80> (edit) "is" => "does" | "does`when false:` ... in" added "mean"
16:48:59FromDiscord<haxscramper> `#ifdef 0`
16:49:10FromDiscord<hamidb80> what's the point?
16:49:10FromDiscord<haxscramper> Just don't compile piece of code
16:49:20saemIt's an easy way to "comment out" a bunch of code
16:49:46krux02comment out, but keep syntax highlighting in the editor on.
16:52:00krux02code in `when false:` blocks is supposed to be deleted. The only reason it isn't deleted yet is probably the auther still feels personally attached to the code or he things that there might be still some value in it.
16:52:02saemThe debugger helped a lot, but looking at the call stack and the bouncing between modules, and what seems like a number of procs called at different times with conditionals to guard for those differences, means there is a lot of carrying around of when and implied layers.
16:52:14saemBut that could be my inexperience with it.
16:52:53saemI doubt that it is as callgraphs and change sets don't lie.
16:53:29FromDiscord<konsumlamm> krux02: or, in examples/tests, that the code doesn't compile yet, because there's a bug
16:53:49krux02yea, I implemented the gdb script mainly to help me debug and understand the compiler a bit better.
16:54:07saemI updated it for the same reason
16:54:52krux02I made stuff like the rope type printable
16:55:53krux02imagine trying to debug the compiler, and then you want to inspect a string variable, but everything yousee are indirections over indirections but you joust don't get to actual import string data.
16:56:07krux02I think there is a lot of wasted memory in the rope type.
16:56:24saemIt really helps, I think the number of folks who could make deep and meaningful improvements to the compiler could be significant increased if the architecture favored rigorous and explicit phases and life times, with features adhering to those. I think that would also ensure that new and old features will tend to be orthogonal be default.
16:57:41krux02I don't think I totally understand the details here, but yes, I agree that the code really needs to be improved for readability.
16:58:43FromDiscord<dom96> Last time I heard Araq was up for getting rid of the rope type
16:58:46*filcuc joined #nim
16:59:11FromDiscord<dom96> Could be an interesting refactoring if so
17:01:14saemI'm going to do something to illustrate what I mean, but I'm sure it'll bother some folks so apologies to those that are offended. Rather than in a separate doc, but instead in the code itself clarify the internals and guarantees like this stays to do for rust: https://rustc-dev-guide.rust-lang.org/overview.html
17:01:30*mmohammadi9812 joined #nim
17:02:12saemSo at the top level the module graph and it's phases are pretty straightforward and that's great.
17:02:51saemThen comes sem and the fun begins with semgenericsandstmts
17:03:29saemWhich is where we seem to do an early check and guarantee that the system module is preliminarily imported.
17:03:48FromGitter<Araq> lexer -> parser -> sem'check -> codegen
17:03:57FromGitter<Araq> is the pipeline.
17:04:00saemThat high level I know and it's easy
17:04:14saemI mean the nitty gritty in sem
17:04:29saemThat's the really cool stuff.
17:05:09FromGitter<Araq> the uncool stuff is the crap that is simply misdesigned, no amount of documentation would fix that
17:05:13FromGitter<Araq> bbl
17:07:28saemI can see some of the guarantees a proc is making/trying to make some times but the intention (spec?) is unclear.
17:07:42saemWhich I mean it's living software so that will happen
17:10:33saemPersonally, what I believe would greatly help raining and I perceive as missing, is the core procs that form sems internal phases and their invariants highlighted.
17:13:54saemMy hunch is that arranging code to expose that as a linear flow, which will come at the expense of other lines of inquiry, is the better trade-off as the approach to sem seems to be a sort of breath first successive set of traversals each "clarifying" the AST as it goes deeper and deeper.
17:14:38krux02@dom96: last time I heard him that he was up to get rid of something. I did it, and then He said "I never asked for that" and I had to point him to the exact quote from himself where he did.
17:17:23saemOrienting the code around that core traversal would really help in a number of key scenarios. It seems to be not how it's arranged right now, or I'm missing something, and more arranged for fast proc lookup by memory. Which I totally appreciate why as that is/was a struggle for a long time.
17:18:15saemNot asking anyone to do the rearrangement, if like to do the work of that's going to be accepted.
17:18:16*filcuc quit (Ping timeout: 240 seconds)
17:19:31saemThe exact style of course can be slowly figured out over time, just a notional approval of the philosophy and maybe a few points to stick to at the outset that can be noted somewhere explicitly and it can be a slow/gentle refactor.
17:20:59krux02saem: In my experience, code that doesn't explicity fix an issue with a title isn't merged. So you have to keep refactoring until it will become impossible to merge with the main branch aund all your changes will be just your personal experience.
17:22:02saemkrux02: that's exactly why the upfront commitment to principles is what I'm looking for, so the small changes can be treated against those and accepted against those on that basis.
17:23:36saemI'm a huge fan of very tiny changes, so one or two procs at a time. Is what I'd want to aim for, but the first trick would be agreeing to accept the inconvenience of that transform.
17:23:36krux02I am not sure what you mean by that.
17:24:01*a_chou joined #nim
17:25:01saemHmm, maybe this is easier if there was a table with the current typical sem callgraph (abridged) and showing how that might differ post any such transform
17:25:10*audiophile_ joined #nim
17:25:18saemI could use a hand with annotating the semantics
17:25:23krux02I am generally a fan of thanges that reduce the complexity of code and improve on the structure of code. I was explicity asked to not merge PRs anymore, and by now my right to merge PRs has been revoked.
17:26:50saemkrux02: don't suppose you'd be willing to lend a hand on a Google drawing, I'll drive but an editor with compiler knowledge would help. Assuming you're interested?
17:27:37saemLet me make a first sketch so perhaps it's a bit more clear what I'm asking
17:28:00krux02yes please
17:28:47*audiophile quit (Ping timeout: 260 seconds)
17:28:55*audiophile_ is now known as audiophile
17:29:21saemLet me see what I rough out in 15 minutes and you and others can poke at.
17:42:15FromDiscord<zetashift> So if I have a module named `player.nim` I and I import it in `foo.nim`, I can't have a variable `var player: Player`?
17:45:55*caesarsalad joined #nim
17:51:24krux02I don't recommend it.
17:51:34krux02but I think it is possible.
18:00:44leorize@zetashift: should be possible
18:01:18leorizecompiler bugs occur when your player module have a variable/function called player
18:01:24leorizeotherwise it should be fine
18:02:15leorizeyou can use `import x as y` to rename the import if there are any problems
18:07:44FromDiscord<zetashift> @leorize but my variable is in `foo.nim` and I still got redefinition of player, I fixed it with the `import as` trick but it seemed weird
18:08:29FromDiscord<zetashift> sent a code paste, see https://play.nim-lang.org/#ix=2NLz
18:09:05leorizethat's weird then
18:14:10FromDiscord<carpal> is this absolutely the same of↵`Y = object↵ name: string`↵or actually not? https://media.discordapp.net/attachments/371759389889003532/805138802859180092/unknown.png
18:14:33*hyiltiz quit (Quit: hyiltiz)
18:14:35FromDiscord<carpal> (edit) "is this absolutely the same of↵`Y = object↵ name: string`↵or actually not? https://media.discordapp.net/attachments/371759389889003532/805138802859180092/unknown.png" => "sent a code paste, see https://play.nim-lang.org/#ix=2NLF"
18:15:01leorizeyes
18:33:00FromDiscord<carpal> okay thanks
18:33:04FromDiscord<carpal> another thing
18:33:48FromDiscord<carpal> is there a way to make not the compiler to generate safe exception alerts?
18:34:41FromDiscord<carpal> for example, using c/c++ when you get an element out of the bounds of the array the program crashes
18:34:45FromDiscord<carpal> (edit) "for example, using c/c++ when you get an element out of the bounds of the array the program crashes ... " added "directly"
18:35:01FromDiscord<carpal> (edit) "for example, using c/c++ when you get an element out of the bounds of the array the program crashes directly ... " added "without saying you the problem etc..."
18:35:52FromDiscord<carpal> while the same case but in nim is printed on the screen
18:36:02FromDiscord<carpal> (edit) "while ... the" added "in"
18:36:14FromDiscord<carpal> (edit) "while in the same case but in nim ... is" added "the crash way"
18:36:25FromDiscord<haxscramper> You can just catch exception in `main()` and get it's stacktrace
18:36:27FromDiscord<carpal> (edit) "way" => "reason"
18:36:32FromDiscord<carpal> no no
18:36:47FromDiscord<carpal> I don't need to handle the error
18:37:53*Thisago quit (Ping timeout: 248 seconds)
18:39:18*tane joined #nim
18:41:20FromDiscord<carpal> for example overflow checks make the program slower
18:41:31FromDiscord<carpal> and I would to avoid that delay
18:41:48haxscramper`-d:danger` and `-d:release` disable most of the runtime checks
18:42:19haxscramperThere might be some other flags, but those ones are should provide most of the necessary checks IIRC
18:47:04FromDiscord<carpal> eh in fact I was asking for those flags
18:47:34FromDiscord<carpal> I already knew danger and release
18:47:40FromDiscord<carpal> but thank you anyway
18:49:03FromDiscord<konsumlamm> `-d:danger` should disable out of bounds exceptions though
18:49:16FromDiscord<carpal> ok, testing, release already make something useful
18:49:58FromDiscord<carpal> a last thing
18:50:55FromDiscord<carpal> here, with var the stack instance should be passed for reference, but what it happens if I use inline pragma https://media.discordapp.net/attachments/371759389889003532/805148051328598016/unknown.png
18:51:02FromDiscord<carpal> (edit) "here, with var the stack instance should be passed for reference, but what ... itpragma?" added "does" | "pragma" => "pragma?"
18:51:03*hyiltiz joined #nim
18:51:06FromDiscord<carpal> (edit) "happens" => "happen"
18:51:17Prestigeall the edits
18:51:49FromDiscord<carpal> I hope the compiler won't create a reference for self
18:53:36FromDiscord<konsumlamm> @haxscramper i think you misunderstood what i meant by `Some(<pattern>)` - `<pattern>` means an arbitrary pattern, which includes variables, option patterns, object patterns etc., so something like `Some(Some(None))` should be possible, but also `Some((field: @a))` or `Some([@head, .._])`
18:55:02FromDiscord<haxscramper> Yes, of course `Some(<pattern>)` is a valid pattern therefore `Some(Some(<pattern>))` is a valid pattern - i just wanted to make accent on nested options.
18:55:31FromDiscord<Rika> var types in params are pointers internally
18:55:33FromDiscord<haxscramper> So I fully agree with you on this one, just used wrong wording
18:57:22FromDiscord<konsumlamm> kk
19:26:43FromGitter<Araq> saem: refactorings should be discussed with me first but that's all
19:33:44*PMunch joined #nim
19:34:33*a_chou quit (Quit: a_chou)
19:35:36FromDiscord<basdk> hi i'm trying to install nimlsp on my system via nimble install nimlsp, when i try to do it i get this error /home/basdk/Desktop/nimlsp/nimlsp/src/nimlsppkg/suggestlib.nim(7, 14) Error: cannot open file: /usr/nimsuggest/nimsuggest.nim↵i have installed nimsuggest but idk what's wrong
19:35:59PMunchThat's pretty common
19:36:03PMunchHold on a sec
19:37:11PMunchhttps://github.com/PMunch/nimlsp/issues/67
19:39:10FromDiscord<xCFF> Is there a built in way to get a LPCWSTR (ptr uint16) from a nim string when working with windows?
19:41:50PMunchWell you'd have to convert it to utf-16
19:46:08FromDiscord<Yardanico> https://nim-lang.org/docs/widestrs.html
19:46:22FromDiscord<Yardanico> @xCFF this is probably what you want
19:48:29*oddp quit (Quit: quit)
19:50:49FromDiscord<xCFF> kk
19:51:00FromDiscord<xCFF> https://khchen.github.io/winim/winstr.html#L.t%2Cstring also looks promising 😄
19:54:56*glguy joined #nim
20:01:06FromDiscord<xCFF> hmm getting some weird results when i pass in a ptr to a wstring for a LPCWSTRING. I should be passing in &my_wstring for an arg to LPCWSTRING right?
20:02:15PMunch&?
20:03:32PMunchWideCString from the widestrs module is already a pointer
20:03:38PMunchOr a pointer type
20:04:15FromDiscord<xCFF> sorry too much golang
20:04:20FromDiscord<xCFF> ref(my_wstring)
20:06:34PMunchmyWstring.addr surely
20:06:55audiophileso anything new with nim in last 3 months?
20:06:56FromDiscord<xCFF> addr
20:06:58audiophilenew/cool
20:07:06PMunchOh hi audiophile
20:07:10audiophilehullo!
20:07:26PMunchThere's a new version I think
20:07:28audiophilehows it going PMunch
20:07:29PMunch1.4.2
20:07:39audiophileah, nice time to check out the changelog ig
20:07:44PMunchGoing pretty well, getting stoked for FOSDEM next weekend
20:09:43audiophileoooh nice
20:09:47PMunchBut @xCFF you shouldn't need to do anything more than newWideCString(mystring) and pass the result of that to a LPCWSTRING
20:09:51audiophilea pity what's going on with element just before fosdem though :/
20:10:02PMunchWhat's going on with it?
20:10:13audiophileit was removed from playstore recently
20:10:24PMunchOh really?
20:10:25PMunchThat certainly isn't good
20:10:27PMunchWhy?
20:10:29audiophilehttps://www.androidpolice.com/2021/01/30/google-pulls-federated-chat-app-element-from-the-play-store/
20:10:48PMunchThat explains why I couldn't install it earlier today
20:10:59audiophileapparently for 'abusive content' but that seems like a catch-all nowadays
20:11:27PMunchIt's a messaging service, of course it has abusive content..
20:12:02audiophileheh yeah, not sure what they were smoking
20:12:13audiophile1.4.2 looks like a LOT of bugfixes which is great!
20:12:27audiophileoh and are you giving a talk at fosdem?
20:13:06PMunchYes :)
20:13:31PMunchhttps://fosdem.org/2021/schedule/event/nimdsl/
20:14:50audiophilethat's awesome! I think you gave a talk earlier on nimscript? I'll be sure to attend
20:15:05PMunchIndeed, this will be my third FOSDEM talk I think
20:15:38audiophilewill you be showing benchmarks for C vs nim on microcontrollers?
20:15:39audiophilecurious about that
20:15:54PMunchI have a slide on that yes
20:16:00PMunchBut in my testing it's 1:1 with C
20:16:28PMunchSometimes even beating it because you're hiding optimisations
20:16:38audiophilesuoh wow tha's impressive
20:17:01PMunchI mean it compiles to C so it's not that surprising
20:17:13audiophileyeah, but the beating nim part is surprising
20:17:13PMunchAnd my tests have been pretty native ports
20:17:22audiophiles/nim/c
20:17:49PMunchWell Nim spits out highly optimisable C code, code you wouldn't write yourself
20:18:30audiophilewouldn't or couldn't? if it's the latter I'm reeaaaaly intrigued!
20:18:45PMunchWouldn't
20:18:56PMunchI mean you can write assembly in C, but you wouldn't
20:19:52PMunchYou can write assembly in Nim as well thoug
20:19:52FromDiscord<Recruit_main707> doesnt optimisable mean it can be further optimised, ie its not optimised?
20:20:21PMunchWell the code Nim spits out is pretty optimised, but it also lends itself to be optimised by the C compiler by design
20:23:44audiophilehmm i see
20:24:43FromDiscord<basdk> Thanks i'll see that PMunch
20:28:33*natrys quit (Quit: natrys)
20:28:57ee7[m]PMunch: slide number 7 of your slides on that FOSDEM link has the heading "Nims killer feature" - can you add an apostrophe? This also avoids a theoretical misreading of ".nims killer feature".
20:29:42PMunchWell I could update the slides, but the video is already recorded and uploaded
20:30:24ee7[m]Ah :)
20:31:03ee7[m]Maybe invent a time machine?
20:32:04audiophilewhat's that first language in slide 5
20:32:07audiophileM?
20:32:25ee7[m]Is there going to be official live chat during the talks, or is FOSDEM less sophisticated than nimconf?
20:32:31*zedeus quit (Quit: zedeus)
20:33:46*NimBot joined #nim
20:33:48PMunchI explain it all in the talk :P
20:34:23PMunchee7[m], you will be able to submit questions and then there will be a Q&A after the video where the questions are asked by a host and answered by the speaker
20:34:42PMunchThen there's a "hallway" discussion where you can voice chat with the speaker of the talk
20:34:53Yardanicowe could also have voice chat in discord :)
20:34:57Yardanicolike we did after nimconf
20:35:13PMunchThe Q&A session will be recorded
20:35:18Yardanicooh right
20:35:27Yardanicobut how will they choose the questions?
20:35:33Yardanicowhich one is the first?
20:35:34Yardanicoor random?
20:35:54PMunchIt's chosen by the host and the speaker
20:36:22YardanicoIt's just that because it'll be online, I expect much more people "being there" and asking more questions
20:36:29YardanicoI hope their infrastructure is ready
20:36:53PMunchThey're using Matrix and Jitsi I think
20:37:07PrestigeNice
20:37:27Yardanicowell last time I tried Jitsi for call + screen sharing with my friend it was a bit laggy, but I hope it'll be ok this time :)
20:38:00PMunchI've had no issues with it in the past
20:38:01ee7[m]PMunch: audiophile is talking about this slide https://i.imgur.com/cphMxVp.png
20:38:11PMunchOh, that is MicroPython
20:38:27PMunchChosen because it looks a bit like Nim
20:38:49PMunchAnd is often used for a more ergonomic microcontroller programming experience
20:40:43*dom96 quit (Changing host)
20:40:43*dom96 joined #nim
20:40:55PMunchThis localtime issue is so puzzling
20:41:16PMunchThis snippet: http://ix.io/2NMl
20:41:26dom96yay, we now have custom cloaks on Freenode :)
20:42:00PMunchReturns this (with a modified times.nim to output the timestamp to Tm structure in getLocalOffsetAndDst): http://ix.io/2NMm
20:42:04PMunchdom96, custom cloaks?
20:42:22ee7[m]PMunch: In case you wanted nitpicks, and you were going to edit the slides anyway: I claim that slide 5 chart could be easier to read - bigger is better for the first bar, but worse for the second bar
20:42:45PMunchYeah I know..
20:42:51PMunchI explain that in the presentation though
20:42:58dom96Check out /msg NickServ info dom96
20:43:42ee7[m]I guess you could make the first bar be time taken for x iterations. Then lower would be better for both bars.
20:43:54FromDiscord<basdk> thanks so much PMunch i re-installed nim with choosenim and now that's actually works correctly
20:44:04PMunch@basdk, great :)
20:44:09ee7[m]more tedious pedantry: "k" is not a SI unit of memory usage.
20:44:18PMunchI really should add this to the README
20:44:32PMunchee7[m], that is true
20:44:49PMunchAnd I can never remember which unit I'm supposed to use..
20:44:50ee7[m]Don't make a dimensionless number and memory usage have the same suffix :(
20:45:22PMunchOh, that is 1000ths
20:45:40PMunchSo it's 45000 iterations per second and 639000 bytes of memory
20:45:42dom96PMunch, that slide looks great btw, but it bothers me that one of the bars is "lower is better" and the other is the exact opposite :)
20:45:57ee7[m]Use KiB or KB. Just not k.
20:46:13PMunchYeah, it was a bit lazy when I made that graph..
20:46:32PMunchee7[m], it was really just to be able to fit the numbers on there
20:46:55PMunchBut I see your point
20:47:30dom96brilliant slides though otherwise
20:47:36PMunchThanks :)
20:47:44PMunchHopefully the talk will live up to them
20:48:04ee7[m]Yeah - I'm looking forward to the talk.
20:48:31ee7[m]But I'll make a bunch of bots that start complaining in chat during slide 5 and 7.
20:48:54PMunchHaha :P
20:49:07ee7[m]"Why is this Nimscript's killer feature?"
20:49:48PMunchI'll just excuse me as not being a native speaker :P
20:51:03PMunchSeriously, how can localtime fail at one point but work just fine right before?
20:51:14ee7[m]Some quick googling tells me Norwegian uses the apostrophe to form the possessive for words ending in s...
20:51:31PMunchYeah
20:51:44ee7[m]So I'm not sure that your excuse is good enough :)
20:52:33ee7[m](at least apostrophes for possessives exist to some extent)
20:53:22PMunchWell we don't use apostrophes for possessives if the word doesn't end in s..
20:53:45PMunchUnless it's an acronym written with lowercase letters but pronounces letter by letter
20:53:49audiophilewhat'd you have for breakfast
20:54:00FromDiscord<lqdev> ee7: KB - Kelvinobytes
20:54:03ee7[m]Yeah. I guess the slide is less ambiguous for Norwegian speakers because it says Nims not Nims'
20:54:08audiophileoops sorry, wrong windows
20:54:13FromDiscord<lqdev> if you wanna go with SI units that would be kB
20:54:29PMunchTwo slices of bread, one with advocado and one with egg, paired with half a grapefruit and some blueberry flavoured soured milk
20:54:38PMunchAnd a large spoonful of cod liver oil
20:54:39PMunchWhy?
20:54:49PMunchHaha
20:55:01FromDiscord<VVX7> hey @dom96 can I DM you?
20:55:21audiophileoooh ok I love avocado toast and what is blueberry flavoured soured milk -- is that yogurt?
20:55:24FromDiscord<dom96> sure
20:56:01PMunchUhm, it's this stuff: https://www.tine.no/merkevarer/biola
20:56:51ee7[m]lqdev: No. kilobyte is kB, and kibibyte is KiB.
20:56:58audiophileoooh like kefir
20:56:58ee7[m]I meant to write "Use KiB or kB".
20:57:03FromDiscord<lqdev> that's what i'm saying
20:57:10PMunchKinda, but it's a different culture of bacteria
20:57:15ee7[m]Oh.
20:57:26ee7[m]:D
20:57:38audiophilewhy does that remind me of probiotic drinks
20:57:44PMunchGoogle translate this: https://www.tine.no/helse/sunt-kosthold/forskjellen-p%C3%A5-biola-cultura-kefir-og-kulturmelk
20:58:08PMunchWell it kinda is a probiotic I think
20:58:22PMunchI just drink it because it's crazy good though :P
20:59:15audiophileoooh nice
20:59:20audiophilethat *is* a healthy breakfast
20:59:27audiophilesorry for ot tho
21:00:40PMunchNo worries, we tend to go off-topic quite often
21:02:27audiophilehehe fair enough. If I'm not privy to an ot channel for nim do lmk!
21:02:40PMunchIt's #nim-offtopic
21:02:50PMunchBut sometimes that one is more on-topic than this one :P
21:02:59audiophilelmaoo
21:03:41PMunchThis is seriously confusing..
21:04:04audiophilewhat is
21:04:17PMunch`localtime` doesn't work within `getLocalOffsetAndDst` in the times module. But it works just fine if I include `times` and call it myself
21:05:04PMunchBut only on my RPi
21:05:14PMunchIt works fine on my machine
21:05:25dom96yay, we now own #nimble
21:05:34PMunchWho had it before?
21:06:01dom96some random person not in this channel afaik
21:06:25PMunchAh but it was still about our nimble?
21:06:37dom96don't think so
21:06:41dom96it was registered in 2014
21:06:43dom96so unlikely
21:06:46PMunchAight
21:06:50*audiophile quit (Remote host closed the connection)
21:12:08dom96lol, why does the topic for #nim have "Topic for #nim is:"
21:14:50PMunchOops, that might've been me
21:15:13PMunchI think I ran /topic when I wanted to update it to 1.4.2
21:15:21PMunchAnd I must've copied a tad too much
21:15:25PMunchOr the person before me did
21:15:35dom96hehe, it happens
21:16:11FromDiscord<konsumlamm> anyone wanna look at my small bugfix?
21:16:15FromDiscord<konsumlamm> https://github.com/nim-lang/Nim/pull/16874
21:17:25*glguy left #nim ("enjoy!")
21:18:43PMunchOkay wtf..
21:18:54*audiophile joined #nim
21:19:12PMunchI looked at the generated C code and the only difference I could spot was that the variable in my minimal example was a global variable
21:19:43PMunchTried to put the `a` on line 1240 outside the procedure and it works..
21:19:51audiophilejust curious, what prerequisite knowledge is required for tinkering with the nim compiler? I didn't pay much attention during my compilers class :/
21:19:59audiophileall i remember is context free grammar
21:26:07PMunchWell nothing formal, feel free to poke around
21:26:11FromDiscord<konsumlamm> tfw i found yet another template hygiene bug
21:28:54FromDiscord<basdk> A question:↵Does nim have a matplotlib-like library?
21:29:30FromDiscord<basdk> I didn't searched a lot but i don't don't found nothing maybe i juste didn't search enough or just i didn't see that
21:29:34ee7[m]basdk: there is https://github.com/Vindaar/ggplotnim
21:29:39FromDiscord<basdk> (edit) "juste" => "just"
21:29:44PMunchA couple: https://nimble.directory/search?query=plot
21:30:07FromDiscord<basdk> Thanks
21:33:10PMunchNot quite sure what I'm going to use this newfound knowledge for though..
21:33:19PMunchIt doesn't really help me explain why
21:34:36PMunchThey're both the same type
21:34:45PMunchAlthough one is annotated with N_LIB_PRIVATE
21:34:57PMunchOtherwise they are used exactly the same
21:37:12PMunchHmm, that is on my machine though
21:37:52PMunchI guess they might be different on the RPi
21:40:23FromDiscord<konsumlamm> why is noone looking at my PR ;-;
21:40:39PMunchI'm busy chasing weird bugs
21:42:01*audiophile_ joined #nim
21:44:35FromDiscord<Deorder> Can I already experiment with the incremental compiler? What is the current status? I actually already tried it by defining `nimIncremental`, but I get some errors about not being able to read some of the cache files.
21:45:12FromDiscord<Deorder> (edit) "Can I already experiment with the incremental compiler? What is the current status? I actually already tried it by ... defining" added "building the `araq-ic11` branch +"
21:45:55*audiophile quit (Ping timeout: 256 seconds)
21:45:58*audiophile_ is now known as audiophile
22:15:24*haxscramper quit (Remote host closed the connection)
22:19:22FromDiscord<carpal> yes, my question was: will compiler generate a pointer for `var` param even if the proc has that param is inline?
22:20:21PMunchWelp, it's pretty much the exact same code: http://ix.io/2NN0
22:21:09FromDiscord<lqdev> latest devel can't even compile cflang lol
22:30:40*audiophile_ joined #nim
22:33:25*audiophile quit (Ping timeout: 240 seconds)
22:33:32*audiophile_ is now known as audiophile
22:36:54*Vladar quit (Quit: Leaving)
22:38:40PMunchI'm not even sure if reporting this on the Nim bug-tracker would be the right thing to do
22:38:54PMunchI seriously have absolutely no idea why localtime fails in this way
22:46:05Prestigewho wrote it
22:51:10PMunchThe times module?
22:52:24PrestigeYeah, could as them
22:52:28Prestigeask*
22:53:42PMunchGULPF it seems
23:06:30PMunchCreated my bug report, it's a bit rambley :P https://github.com/nim-lang/Nim/issues/16881
23:57:43*PMunch quit (Quit: leaving)