<< 18-10-2020 >>

00:00:01*junland quit (Quit: %ZNC Disconnected%)
00:03:17*junland joined #nim
00:04:18*a_chou quit (Ping timeout: 260 seconds)
00:18:32disruptekall types are tySome_sighash so they measure out the same.
00:18:55disruptekbut here we are, trying to put names to types. ^ @clyybber
00:19:36FromDiscord<Clyybber> disruptek: How can they measure out the same if their names are different?
00:19:47FromDiscord<Clyybber> or does old mangling just do tyTuple_sighash?
00:19:55disruptekall types are tySome_sighash so they measure out the same. there's no relevance to their names.
00:20:08disruptekyeah, tyTuple_sighash.
00:24:10disruptekfun problem, right?
00:36:21FromDiscord<Avatarfighter> 😐 https://media.discordapp.net/attachments/371759389889003532/767184249723420712/image0.png
00:44:00FromDiscord<Avatarfighter> I love how that suggestion for completion is only in this channel
00:53:01*NimBot joined #nim
01:03:08disruptekwut
01:03:43disruptekmy girlfriend once texted me, "use the word `dis` in a sentence."
01:03:54disrupteki was like, "dis ain't no fuckin' dictionary, babe."
01:04:28disruptekturns out she was helping her neice with homework. i guess she was looking for a prefix use, like disavowed or something.
01:04:43disruptekgot a lot of shit about that.
01:04:58FromDiscord<Yardanico> disruptek is disruptek
01:05:06disruptekthis is obviously the disruptek channel.
01:05:09Prestige*writes down disappointment*
01:05:43*disruptek writes down niece.
01:06:06disrupteki don't want cookies any more. i want candy.
01:29:16*user0 joined #nim
01:31:12*apahl quit (Ping timeout: 260 seconds)
01:32:46*apahl joined #nim
01:37:29FromDiscord<Clyybber> lol
01:39:23*a_chou joined #nim
01:46:58FromDiscord<Clyybber> disruptek: waddabaout this
01:47:24FromDiscord<Clyybber> resolve for cpp proca first arg?
01:47:36disruptekwhat?
01:48:10FromDiscord<Clyybber> resolve like the current mangling, to tyTuple
01:48:44disruptekjust the first arguments?
01:49:14FromDiscord<Clyybber> wait
01:49:14disrupteki have tjsonutils working but i'm trying to find a way to do it better.
01:50:13FromDiscord<Clyybber> how did u make it work?
01:50:55disrupteki have a constant labeled "obey the boss" that i turn on whenever i want to pretend i'm araq.
01:51:09FromDiscord<Clyybber> lol
01:51:14FromDiscord<Clyybber> just to recap
01:51:46FromDiscord<Clyybber> the issue is one type having two names cuz generics
01:51:52FromDiscord<Clyybber> right?
01:52:23disruptekyeah, it has to do with the order by which we process stuff.
01:52:42*arecacea1 quit (Remote host closed the connection)
01:52:48FromDiscord<Clyybber> yeah and one is "resolved" and one is not right>
01:52:50FromDiscord<Clyybber> ?
01:52:53disruptekcombined with types that are largely "faith-based".
01:53:01disruptektuples and procs are faith-based.
01:53:09FromDiscord<Clyybber> resolved meaning it looks like tySome
01:53:16*arecacea1 joined #nim
01:53:19disruptekthe types are all resolved.
01:53:25disruptekthey just may not point to useful symbols.
01:53:27FromDiscord<Clyybber> oh eh
01:53:29FromDiscord<Clyybber> yeah
01:53:39FromDiscord<Clyybber> they point to different symbols
01:53:44FromDiscord<Clyybber> but are the same type
01:53:57FromDiscord<Clyybber> correct?
01:54:09disrupteklike a banana in the tail-pipe; it fits right, but it's not correct.
01:54:46FromDiscord<Clyybber> and by symbol you mean typ.s?
01:55:03disruptekanother really fun one: some modules like, say, ansi_c are part of system but compilation treats them as a separate module.
01:55:32disruptekso you have separate conflict tables and analysis though they may share the same module symbol.
01:56:16disruptekwe skip around when doing type resolution and the "obey the boss" constrains what ptype.sym we embrace for the purposes of naming.
01:56:29disrupteks/type resolution/type resolution to name/
01:56:49FromDiscord<Clyybber> soo
01:56:59FromDiscord<Clyybber> somewhere the type gets cloned
01:57:15disruptekunlikely.
01:57:20disruptekthese are basically anonymous.
01:57:38FromDiscord<Clyybber> how can one field have two values
01:57:43FromDiscord<Clyybber> then?
01:57:54disruptek("foo", newJString("bar")) is an anonymous type, let's say.
01:58:17disruptekthere's no way to look it up elsewhere because ... where would you look?
01:58:23disruptekand why?
01:58:31FromDiscord<Clyybber> right
01:58:36disruptekand what if there are multiple names for this type across your codebase?
01:58:51disruptekso anyway, we use this for generic inst and that's how it gets into other modules.
01:59:28FromDiscord<Clyybber> so just mangle it to tyTupleStringJSString?
02:00:15disruptekthat would be pretty painful for large tuples. we just use the sig or the unique id.
02:01:00FromDiscord<Clyybber> ok
02:01:06FromDiscord<Clyybber> wheres the problem
02:01:28FromDiscord<Clyybber> the problem is that this tuple may also arise named?
02:01:40disruptekyes, that's what makes it hard for us to use the name.
02:01:57*a_chou quit (Quit: a_chou)
02:02:08FromDiscord<Clyybber> can't we use typedef
02:02:12disrupteki've trapped what appears to be a defect, so that's what i'm trying to fix. but without my traps, the test passes.
02:02:16disruptektypedef?
02:02:34FromDiscord<Clyybber> C
02:02:47FromDiscord<Clyybber> make both types the same
02:02:56FromDiscord<Clyybber> in C
02:03:02disruptekwhat we should do is to query the module to find any identical type signature and use that.
02:03:41FromDiscord<Clyybber> ok but which module is the one true source?
02:03:58FromDiscord<Clyybber> I can also have a.namedTuple == b.namedTupld
02:04:02disruptekit's worse than that.
02:04:25disruptekwe cache the type names by sig, but the cached value is not "naked"; it can include *, for example.
02:06:07disruptekaraq's claim was that the loc.r was the "single source of truth" but not only do i think that's naive, i think it's not reasonable for moving forward.
02:06:26disruptekour ast->ir->ir->c plans don't really work with these assumptions.
02:07:05disrupteki've been contorting myself like a circus freak to make this fucking thing work, when all i really needed was something simpler and correct.
02:07:15disruptekbut let's not go there again.
02:07:54FromDiscord<Clyybber> the issue is that we are shoehorning nominal upon structural typing
02:08:15FromDiscord<Clyybber> instead of doing all this we can also just generate casts
02:08:36disrupteki don't want to generate anything. except maybe more c comments.
02:09:14FromDiscord<Clyybber> whats your idea for solving this?
02:09:41disruptekbe as flexible as you can be in what you accept, and as tight as possible in what you produce.
02:09:52disruptekor do you mean long term?
02:10:21disrupteklong term, just replace the backend and do it tight tight super tight good'n tight, like a german bride on her wedding night.
02:10:24FromDiscord<Clyybber> solving this issue, not mantra
02:10:45disruptekthis issue i don't have a proper solution for.
02:11:01disrupteka hack on top of a hack on top of a hack, that i /do/ have.
02:11:09FromDiscord<Clyybber> I have this
02:11:21FromDiscord<Clyybber> typedefs to alias the types in C
02:11:31disrupteki'd just witness/seal the loc and redirect it to my BModuleList single-source-of-truth.
02:11:49disruptekthen loc.r would still work but it would let me rename stuff.
02:12:11FromDiscord<Clyybber> and who would win here?
02:12:22disrupteki would sooner just relax the mangling for tuples and procs versus doing it your way.
02:12:25FromDiscord<Clyybber> a.tuple1 == b.tuple2
02:12:52disrupteki'm not sure your way is possible.
02:13:06disruptekfor one thing, we don't really know what has already been generated.
02:13:33FromDiscord<Clyybber> we can keep track of all the forms a type takes
02:13:56disruptekyou mean 1-sig-to-many-typedef?
02:14:07FromDiscord<Clyybber> yes
02:14:18disruptekwe could cache it separately, yes.
02:15:01disruptekfor that matter, we could just cache the name for the signature, right?
02:15:28FromDiscord<Clyybber> what is the 'name for the signature' ?
02:15:48disruptekwhatever name we first assigned for the type with that signature.
02:15:57FromDiscord<Clyybber> you mean just take the first that we get and store it in a sig->name mapping?
02:15:59FromDiscord<Clyybber> yeah
02:16:04disrupteklike, i'm not sure it buys us that much to have /all/ the possible names.
02:16:28FromDiscord<Clyybber> I don't care, it can be changed later
02:16:29disruptekit would improve the readability i guess.
02:16:33FromDiscord<Clyybber> as long as it work
02:16:35FromDiscord<Clyybber> s
02:16:41disruptekwell, it works, yes.
02:17:03FromDiscord<Clyybber> but the typedef way is easy and beautiful IMO
02:17:14FromDiscord<Clyybber> generates nicer names
02:17:35disruptekwe can do it that way.
02:18:39FromDiscord<Clyybber> we can do it without any hacks, we just generate a typedef when our sig->name mapping already has an entry
02:19:10disruptekwell, we need to record the name in that event, too.
02:19:43FromDiscord<Clyybber> yeah
02:19:44disrupteki would probably want a dedicated section, too.
02:19:50FromDiscord<Clyybber> yeah
02:19:59disruptekotherwise i have to play ugly games in ic.
02:20:10FromDiscord<Clyybber> don't play ugly games
02:20:26FromDiscord<Avatarfighter> just use a NN to generate the names smh
02:20:40FromDiscord<Avatarfighter> LOL THE EMOTE
02:24:25FromDiscord<Clyybber> :disruptek2:
02:24:29FromDiscord<Avatarfighter> :disruptek2:
02:24:47disruptekdafuq
02:25:41FromDiscord<Yardanico> @disruptek let me show
02:25:51FromDiscord<Clyybber> :disruptek2:
02:26:01FromDiscord<Yardanico> :disruptek:
02:26:03FromDiscord<Clyybber> hahahahahaha
02:26:04FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767211864329158686/unknown.png
02:26:10FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767211892166361099/unknown.png
02:26:18FromDiscord<Yardanico> the robot one is what the bridge gives you (robohash)
02:26:19FromDiscord<Avatarfighter> :disruptek2: do you approve?
02:26:38FromDiscord<Clyybber> the pings
02:26:43disruptek:disruptek: is an emoji?
02:26:46FromDiscord<Clyybber> they just don't stop
02:26:52FromDiscord<Clyybber> @disruptek yeah
02:26:53FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767212069669568543/unknown.png
02:26:55FromDiscord<Clyybber> lmao
02:27:19FromDiscord<Yardanico> does nimph have a logo
02:27:25FromDiscord<Avatarfighter> Oh god
02:27:26disruptek🧚
02:27:33FromDiscord<Yardanico> lol
02:29:34disruptekbut why is there :disruptek2:? i think this is taking name mangling too far.
02:30:11FromDiscord<Avatarfighter> robot disruptek is the superior emote
02:30:45disrupteki dunno if it's legal to emote disruptek where you live.
02:30:51disruptekcheck local applicable laws.
02:31:11FromDiscord<Yardanico> sir I can change the emote to other name per your request
02:32:44FromDiscord<Clyybber> lol
02:33:00FromDiscord<Clyybber> @Yardanico disruptek2 to disruptek
02:33:25FromDiscord<Clyybber> :disruptek: can go fuck off
02:33:37FromDiscord<Clyybber> I think thats how current mangling works
02:33:39FromDiscord<Yardanico> :nimDog:
02:33:51FromDiscord<Yardanico> :disruptek:
02:33:53FromDiscord<Yardanico> changed
02:34:02FromDiscord<Clyybber> bosshaft
02:34:24FromDiscord<Avatarfighter> Yeah we don't need budget Zynga in here
02:34:58FromDiscord<Clyybber> :nimDog:
02:35:22disruptek🐾
02:35:26FromDiscord<Clyybber> disruptek yards calling you a dog
02:35:30FromDiscord<Yardanico> NO
02:35:32FromDiscord<Yardanico> HES LYING
02:35:33FromDiscord<Clyybber> how do you feel about that
02:35:39FromDiscord<Yardanico> I WOULD NEVER DO SUCH A THING
02:35:42disruptekhonestly?
02:35:54FromDiscord<Clyybber> its a nimDog tho
02:35:55disrupteki kinda wanna hump his leg and then lick my balls.
02:35:57FromDiscord<Clyybber> so its fine
02:36:04FromDiscord<Yardanico> @disruptek 📯
02:36:09disruptek[email protected]
02:36:16FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767214436560797756/unknown.png
02:36:56FromDiscord<Clyybber> i can't eat when laughing
02:37:02FromDiscord<Yardanico> wait
02:37:03FromDiscord<Yardanico> WAIT
02:37:24FromDiscord<Yardanico> WHY THERE IS TYPE GROUPING IN THE FREAKING OLD CONCEPT ART FOR WEBSITE DESIGN
02:37:27FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767214731353260062/design2-docs.png
02:37:28FromDiscord<Yardanico> looks neat imo
02:37:32FromDiscord<Yardanico> https://github.com/nim-lang/assets/blob/68c7559921fc98d47d96f0bd1d446e27d53bd8c4/Unused/Web%20Concept/design2-docs.png
02:37:36FromDiscord<Yardanico> and that mascot
02:37:39FromDiscord<Yardanico> ❤️
02:37:58FromDiscord<Clyybber> <3
02:38:06FromDiscord<Yardanico> I see issues some with that exact design, but it's a great idea
02:38:38FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767215030332555264/new-logos.png
02:38:41disruptekeh.. i think we're better off just exploiting existing static site generators.
02:38:47disrupteki don't care if it's not written in nim.
02:38:55*muffindrake quit (Ping timeout: 240 seconds)
02:38:57disrupteki got better shit to do with my skills.
02:39:39FromDiscord<Clyybber> like fucking manglinf
02:39:46disruptekikr
02:39:53FromDiscord<Clyybber> sorry, everything looks funny
02:40:00disrupteki'm around 100 commits into this ridiculous project.
02:40:03disruptekit's madness.
02:40:05FromDiscord<Yardanico> go sleep clyybber
02:40:18FromDiscord<Yardanico> when you dont sleep for long you start thinking that everything is funny
02:40:20FromDiscord<Yardanico> sleep deprivation
02:40:21FromDiscord<Clyybber> go sleep yardanico
02:40:29FromDiscord<Clyybber> u are one hour into the future
02:40:46FromDiscord<Clyybber> @Yardanico yeah, its the natural high
02:40:49FromDiscord<Clyybber> i love it
02:40:58disruptekis criterion gonna pass tests tomorrow?
02:41:04disruptektoday, rather.
02:41:07*muffindrake joined #nim
02:41:10FromDiscord<Clyybber> why would it
02:41:21disrupteki dunno, i can't follow nim anymore.
02:41:29FromDiscord<Clyybber> i told u
02:41:38FromDiscord<Clyybber> useVersion:1,3
02:41:40FromDiscord<Clyybber> 1,2
02:41:41FromDiscord<Clyybber> 1.2
02:41:44FromDiscord<Clyybber> dot
02:41:45disruptekwell i did.
02:41:57disruptekare you saying we can't support nim-1.0?
02:42:07FromDiscord<Clyybber> oh
02:42:14FromDiscord<Clyybber> why does that not work
02:42:26FromDiscord<Clyybber> the nimble fix should habe rolled ojt already
02:42:39FromDiscord<Yardanico> when you don't know inkscape https://media.discordapp.net/attachments/371759389889003532/767216036470325258/unknown.png
02:42:57FromDiscord<Clyybber> wtf
02:43:11FromDiscord<Clyybber> more like 'if ypur inkscpe has a stronk'
02:43:21FromDiscord<Yardanico> yeah that whole image concept has an svg file
02:43:31FromDiscord<Yardanico> and everything is in SVG
02:43:35FromDiscord<Yardanico> lemme render it at 50 megapixels
02:43:51*grorkster quit (Quit: WeeChat 2.9)
02:44:29FromDiscord<Yardanico> why does it use 3-6 cpu threads 🤔 such a simple task
02:44:29FromDiscord<Clyybber> I think your searching the wrong placez
02:45:09FromDiscord<Yardanico> the png is already 26mb
02:45:21FromDiscord<Clyybber> memory leek
02:45:29disrupteki made my dog in inkscape.
02:45:42FromDiscord<Clyybber> wow, it came out well
02:46:09FromDiscord<Clyybber> how did you do the balls without reference?
02:46:12disrupteki have a version that i made for a rally that i used to put on a few times a year.
02:46:17FromDiscord<Yardanico> im singing in the music channel rn btw
02:46:28FromDiscord<Clyybber> cring?
02:46:33PrestigeLive stream it
02:46:36FromDiscord<Yardanico> i guess
02:47:01FromDiscord<Yardanico> @prestige I already did a few times
02:47:22disruptekhttps://www.dropbox.com/s/5m81fgdkh0v2gze/red%20dog%20run.svg?dl=0
02:48:44disruptekwho says i did the balls without a reference?
02:48:54disrupteki will beat your ass.
02:49:10FromDiscord<Yardanico> it's not mine
02:50:58FromDiscord<Yardanico> @Prestige I can
02:52:07FromDiscord<shad0w> > i will beat your ass.↵@disruptek[IRC]#0000 the man has... issues ?
02:52:57FromDiscord<Yardanico> who is singularity when eaL?
02:54:31FromDiscord<Clyybber> disruptek: i'm ready
02:54:54disrupteknot yet; you just finished eating.
02:57:07FromDiscord<Clyybber> i'll dream of it, I promise
02:58:16disruptekof that i am sure.
03:08:14Yardanicoim streaming to not go to sleep
03:08:16Yardanico~ystream
03:08:16disbotystream: 11Stream at https://twitch.tv/yardanico, voice chat either on Mumble (mumble://uberalles.mumbl.io/) or in Discord (https://discord.com/invite/ezDFDw2) -- Yardanico
03:08:21Yardanicovoice only discord
03:09:44disruptekwtf does that mean?
03:10:25Yardanicodisruptek: you can only hear my beautiful voice on discord right now
03:10:49disrupteki can hear you on twitch, and it's terrible.
03:10:56Yardanicodisruptek: i know
03:11:00Yardanicoyours is much better and sexier
03:11:05disrupteklike a splinter in my brain.
03:11:30disrupteki'm concentrating on an enema right now.
03:11:36disruptekanything to distract...
03:24:39disruptekwhile/else ftw
03:26:01*Jesin quit (Ping timeout: 264 seconds)
03:44:01*lbart quit (Ping timeout: 264 seconds)
03:44:44*lbart joined #nim
03:44:44*lbart quit (Changing host)
03:44:44*lbart joined #nim
03:49:37FromDiscord<Elegant Beef> Disruptek did you say frosty works in nimscript?
03:49:49disruptekit should.
03:51:02disruptekit looks like the tests test it at compile-time.
03:51:34FromDiscord<Elegant Beef> With 1.4.0?
03:51:49disruptekyeah, it's on nightly ci against 1.0, 1.2, devel.
03:51:53leorize[m]@shashlick wdyt? https://github.com/alaviss/nightlies/releases/tag/latest-version-1-4
03:52:11disrupteki need to update all my shit with the new version branch.
03:52:14FromDiscord<Elegant Beef> > /home/jason/.choosenim/toolchains/nim-1.4.0/lib/pure/nativesockets.nim(117, 6) Error: type mismatch: got <uint16>
03:52:34disruptekwhat's that?
03:52:48FromDiscord<Elegant Beef> sent a code paste, see https://play.nim-lang.org/#ix=2B5Y
03:52:51FromDiscord<Elegant Beef> The result from evaluating the above
03:53:10leorize[m]disruptek: it's an alias thingy that let you forget about all the silly parsing
03:53:43disruptekyeah, i know.
03:53:58disruptekis frosty on playground?
03:54:25FromDiscord<Elegant Beef> Dont think so
03:54:27FromDiscord<Avatarfighter> bro thats a 12 line script
03:54:29FromDiscord<Elegant Beef> I pasted a code block
03:54:38FromDiscord<Avatarfighter> just pipe it to nim or something
03:54:45FromDiscord<Elegant Beef> What are you on about?
03:55:07FromDiscord<Avatarfighter> well the first comment was relating to the codeblock
03:55:16FromDiscord<Avatarfighter> and the second one is now me experimenting
03:55:25FromDiscord<shashlick> @leorize - nice work!
03:55:55disruptekbeef: i guess it just can't work because we don't when out nativesockets on nimscript.
03:56:01*FromDiscord quit (Remote host closed the connection)
03:56:09disruptekwill you fix it?
03:56:16*FromDiscord joined #nim
03:56:43YardanicoYardanico: hello
03:56:53FromDiscord<Yardanico> ff
03:56:55YardanicoYardanico: hello
03:57:13YardanicoYardanico: hello
03:57:15disruptekokay.
03:57:16YardanicoBeef: hello
03:57:19Yardanicoit should work
03:57:27disrupteknow we need to be able to send messages to discord punks.
03:57:55FromDiscord<Elegant Beef> Did the bridge go down for a second?
03:57:57FromDiscord<Yardanico> yes
03:57:58FromDiscord<Avatarfighter> yard's reaction to it not working was so funny
03:58:01YardanicoYardanico Elegant: hello
03:58:12Yardanico@Yardanico asdasd
03:58:47YardanicoYardanico : hello
03:58:56disruptekbeef: so anyway, will you fix it?
04:00:20disruptek:disruptek: woof
04:00:33FromDiscord<Elegant Beef> Uhh i'll try 😄
04:00:43FromDiscord<Yardanico> :disruptek:
04:00:50FromDiscord<Avatarfighter> :disruptek:
04:01:06disruptekwhere did my dog go?
04:01:23FromDiscord<Avatarfighter> :nimDog:
04:01:24FromDiscord<Yardanico> :nimDog:
04:01:28FromDiscord<Avatarfighter> its been rebranded
04:02:01disruptekbeef: i'd just when in a constant and then use it to enable the block of socket stuff.
04:02:20disruptekif you can't figure it out, just do me a favor and make an issue so i remember.
04:02:29*krux02 quit (Remote host closed the connection)
04:03:08*FromDiscord quit (Remote host closed the connection)
04:03:30*FromDiscord joined #nim
04:03:34Yardanicodisruptek: it works
04:03:39YardanicoYardanico: it works
04:03:59Yardanicobeef: it works
04:04:04Yardanicodisruptek: you can ping beef like that
04:04:06Yardanicoelegant: hello loser
04:04:13FromDiscord<Elegant Beef> Is yard.... high?
04:04:20FromDiscord<Avatarfighter> yard
04:04:23Yardanicoyes
04:04:25Yardanicowho
04:04:34FromDiscord<Avatarfighter> keep up the good work
04:04:42FromDiscord<Avatarfighter> ping me when you stream this is great
04:06:01*supakeen quit (Quit: WeeChat 2.9)
04:06:37*supakeen joined #nim
04:14:26*vicfred quit (Remote host closed the connection)
04:14:53*vicfred joined #nim
04:21:05FromDiscord<Elegant Beef> So looks like for frosty to work in nimscript it needs to no longer rely on the `stream.write` proc
04:21:15FromDiscord<Elegant Beef> Or that needs to be changed
04:21:46FromDiscord<Elegant Beef> Since `Error: unhandled exception: 'sym' is not accessible using discriminant 'kind' of type 'TNode' [FieldDefect]` pops up after `when not define` out all the socket stuff
04:22:16disruptekwell that's nuts.
04:22:39FromDiscord<Elegant Beef> Yep
04:22:51disruptekwhy can't we write streams from nimscript?
04:22:56FromDiscord<Elegant Beef> We can
04:23:01FromDiscord<Elegant Beef> Except not objects
04:23:10disruptekeh?
04:23:14FromDiscord<Elegant Beef> Or nevermind
04:29:20FromDiscord<Elegant Beef> I need a break, so going to cry in the corner a bit
04:29:37FromDiscord<Avatarfighter> honestly a mood
04:30:17Prestigeworking on improving nimscript stuff somehow?
04:30:29disruptekhe's fixing frosty.
04:30:44disruptekit doesn't work in nimscript due to nativesocket support.
04:32:13FromDiscord<Elegant Beef> Well and also reliance on streams apparently
04:32:34disrupteki mean, you can ignore streams, too, if you want.
04:32:43disrupteki'm not too worried about speed in nimscript.
04:32:44FromDiscord<Elegant Beef> Your strings use streams
04:32:49disruptekoh right.
04:33:04disruptekwell, impl a new flow maybe.
04:33:27disruptekstill, this stuff works at nim compile-time. why can't it work in nimscript?
04:33:38FromDiscord<Avatarfighter> vm bad ig
04:33:55FromDiscord<Elegant Beef> Just constructing a stream results with the afformentioned error
04:34:13FromDiscord<Elegant Beef> https://media.discordapp.net/attachments/371759389889003532/767244118904012842/unknown.png
04:34:28disruptekdumb.
04:35:14FromDiscord<Elegant Beef> Indeed
04:35:20FromDiscord<Elegant Beef> Well the impls dont work
04:35:31FromDiscord<Elegant Beef> but now it runs, and just returns an empty
04:36:21FromDiscord<Elegant Beef> So i guess i just have to make the nimscript impls work?
04:36:45FromDiscord<Elegant Beef> I know i said i needed a break but here i am still problem solving
04:38:13disrupteki don't think i want to rewrite it all to just use strings, but maybe that makes some kinda sense.
04:38:32FromDiscord<Elegant Beef> Well i think making stringstreams support nimscript makes more sense
04:38:46disruptekof course, but it's a bigger ask.
04:39:27disruptekwe had some issues with streams in the vm but i thought they were solved last year.
04:41:10FromDiscord<Elegant Beef> Yea prestige i'm looking at using a binary stream instead of json so i can just do everything from primitives to tuples
04:43:09FromDiscord<Avatarfighter> wait what's the issue you're working on again beef?
04:43:27FromDiscord<Elegant Beef> No longer using json + supporting all serializable types
04:43:52disruptekin theory, there's no such thing as unserializable in frosty.
04:43:58FromDiscord<Avatarfighter> what's the problem type for serializing ?
04:44:10disruptekhowever, you have to know what type you're reading.
04:44:11FromDiscord<Elegant Beef> Well i mean all of them
04:44:40FromDiscord<Elegant Beef> Yea disruptek that's easy since it's like a networking library, nimscript calls specific nim functions and nim calls specific nimscript functions
04:44:43FromDiscord<Elegant Beef> Only issue is optionals
04:44:51disruptekokay.
04:45:02*narimiran joined #nim
04:45:04disruptekOption should work fine.
04:45:19FromDiscord<Elegant Beef> I mean optional parameters
04:45:25FromDiscord<Elegant Beef> Althoug they'll get sent i guess
04:45:27FromDiscord<Elegant Beef> So no issue
04:46:25disruptekmaybe we should make frosty/streams frosty/sockets and just make people import them separately.
04:46:43FromDiscord<Elegant Beef> Possibly
04:47:23FromDiscord<Elegant Beef> I guess just adding the casted types to a string isnt too hard
04:47:37FromDiscord<Elegant Beef> I know i did something like this before
04:48:27FromDiscord<Elegant Beef> Ideally though we just get nimscript supported streams
04:48:35FromDiscord<Elegant Beef> But yea idk where to begin really for that
04:48:48FromDiscord<Elegant Beef> inb4 "streams.nim"
05:01:08*solitudesf joined #nim
05:09:02FromDiscord<Elegant Beef> Well that makes this pretty difficult, there is not a way to cast an object it seems
05:18:58Yardanicoelegant: beef
05:19:04Yardanicobeef?
05:19:05Yardanicobeef
05:19:08Yardanicofeeb
05:19:12FromDiscord<Elegant Beef> beefeeb
05:22:02FromDiscord<Elegant Beef> I assume you're just testing something?
05:24:40*Jesin joined #nim
05:27:56FromDiscord<Elegant Beef> Who can i pretend to pay to implement `cast[ptr string](pointer)` on the nimVM?
05:29:11leorize[m]pay clyybber or araq himself :P
05:29:20FromDiscord<Elegant Beef> lol
05:29:48FromDiscord<Yardanico> ping me if the bridge stops working
05:29:52FromDiscord<Yardanico> And write in telegram
05:30:02FromDiscord<Yardanico> because i updated it to the new version today
05:41:27*apahl quit (Ping timeout: 260 seconds)
05:41:58*apahl joined #nim
05:52:23FromDiscord<Elegant Beef> Looking at the vm code, i think quite possibly i probably shouldnt be looking at it
06:31:45*solitudesf quit (Ping timeout: 240 seconds)
06:32:35*Vladar joined #nim
06:47:36*gmaggior quit (Quit: Leaving)
06:58:42*waleee-cl quit (Quit: Connection closed for inactivity)
07:04:55*user0 quit (Ping timeout: 246 seconds)
07:08:30FromDiscord<acek7> not sure if this is allowed but would anyone know of a place i can possibly hire a coder or something?
07:12:35Prestige@acek7 for what?
07:12:54FromDiscord<acek7> Mainly for a possible website project.
07:13:05FromDiscord<acek7> and an app that would do something similar
07:13:58FromDiscord<acek7> My community in my county i think would benefit from a sort of hub for news and information. Ways to help people when its needed and such
07:15:52PrestigeMaybe https://www.reddit.com/r/forhire/ or there are other freelancing sites. I would personally hit up a js community on irc or discord
07:40:57*letto quit (Quit: Konversation terminated!)
07:42:56*letto joined #nim
07:48:27*arecacea1 quit (Read error: Connection reset by peer)
07:49:03*arecacea1 joined #nim
07:54:15*opal quit (Remote host closed the connection)
07:55:01ForumUpdaterBotNew thread by Jasonfi: Aliases with templates for tables not working in v1.4, see https://forum.nim-lang.org/t/6947
07:55:35*opal joined #nim
08:08:37FromDiscord<alehander42> akavel !
09:01:26*fuab joined #nim
09:19:11FromDiscord<dom96> Anyone up for reproducing this for Nim? https://twitter.com/mit_csail/status/1317495588833746944?s=21
09:19:20FromDiscord<dom96> Would be interesting
09:19:39FromDiscord<iWonderAboutTuatara> For general case code should we be using orc or refc?
09:20:09FromDiscord<iWonderAboutTuatara> @dom96 sounds like a fun project, I could try this with an arduino maybe
09:21:41FromDiscord<dom96> Depends how they did it in their paper. Arduino might not be best
09:21:42FromDiscord<Vindaar> @dom96 that seems _really_ hard to get right though. If you run everything on the machine you can of course give relative numbers, but comparing between machines is essentially impossible. ↵If they provide all the code of course it's possible to run all
09:21:59FromDiscord<dom96> Yeah. My hope is they provide code
09:22:19FromDiscord<Vindaar> and I'm sorry, but my god are those plots ugly
09:22:24FromDiscord<dom96> Surely MIT will enable reproducible results, right? 🙂
09:22:31miprithey used some intel tool; the linked page suggests powertop, which has a Power est. field in Overview
09:22:46FromDiscord<dom96> Kind of the point of this kind of all academia
09:22:51*hnOsmium0001 quit (Quit: Connection closed for inactivity)
09:22:56FromDiscord<dom96> (edit) removed "this kind of"
09:22:59mipriso just have your benchmark end with a POSIX pause() so you can check its power estimation there
09:23:16FromDiscord<Vindaar> here: https://github.com/greensoftwarelab/Energy-Languages
09:24:14FromDiscord<Vindaar> (paper referred to this page https://sites.google.com/view/energy-efficiency-languages)
09:24:29FromDiscord<dom96> Ahh. Once again because we’ve not been allowed into the language benchmarks game, we’re missing out :/
09:24:55FromDiscord<Innokentiy Sokolov> not been allowed by whom?
09:25:05FromDiscord<Rika> by some dumbass
09:25:06FromDiscord<dom96> By the person maintaining it
09:25:10FromDiscord<Innokentiy Sokolov> aah I see
09:25:12mipriwhat was the reason for the benchmark game exclusion?
09:25:29FromDiscord<Rika> because "its too easy to make these kinds of languages" afaik
09:25:41FromDiscord<Innokentiy Sokolov> Or because Nim uses C compiler?
09:25:42FromDiscord<Rika> also excluded crystal because of this afaik
09:26:03FromDiscord<dom96> Afaik it was because they’re languages that are hyped thanks to Reddit/hm
09:26:09FromDiscord<dom96> (edit) "Reddit/hm" => "Reddit/hn"
09:26:26FromDiscord<Innokentiy Sokolov> biases.. biases everywhere
09:26:35FromDiscord<dom96> There was a faq entry about it a while back if someone can find it (on mobile atm)
09:26:35FromDiscord<Rika> kostya's benchmarks also include an energy consumption column
09:31:04FromDiscord<dom96> https://forum.nim-lang.org/t/3021#18976
09:31:09FromDiscord<dom96> Link is gone lol
09:31:17FromDiscord<Varriount> @Rika "too easy to make these kinds of languages" <- wtf?
09:31:57FromDiscord<dom96> https://web.archive.org/web/20180129030131/http://benchmarksgame.alioth.debian.org/play.html
09:32:03FromDiscord<Varriount> Maybe I'm just some plebian developer, but creating a working programming language is hard.
09:32:06FromDiscord<dom96> Here is their actual reasoning
09:32:59FromDiscord<iWonderAboutTuatara> @Varriount I can't think anyone would disagree with this
09:33:11FromDiscord<iWonderAboutTuatara> Except maybe terry davis, but he's just another level
09:34:11FromDiscord<Varriount> I don't understand that reasoning either. If developers contribute working benchmarks, how does that add any significant overhead for the maintainer?
09:34:39FromDiscord<Innokentiy Sokolov> because it's a biased person
09:34:46FromDiscord<Vindaar> maybe scared of a language that's better than their favorite? 🙂
09:34:47FromDiscord<Innokentiy Sokolov> (e.g. idiot)
09:34:57FromDiscord<Varriount> Is rust on there?
09:35:26FromDiscord<iWonderAboutTuatara> I don't think it's bias
09:35:38FromDiscord<Rika> rust is definitely on there
09:35:40FromDiscord<iWonderAboutTuatara> There s a lot of languages in thisbwodld
09:35:52FromDiscord<iWonderAboutTuatara> They can't realistically bench every single one regularly
09:35:59FromDiscord<Rika> @Yardanico your bot is going haywire regards pinging people
09:36:03FromDiscord<Rika> see #github-events
09:36:09FromDiscord<Recruit_main707> thats fucked up https://media.discordapp.net/attachments/371759389889003532/767320101367840778/unknown.png
09:36:21FromDiscord<Rika> lmao
09:36:28FromDiscord<Innokentiy Sokolov> Hey I see myself there
09:36:32FromDiscord<iWonderAboutTuatara> That's pretty amazing
09:36:39FromDiscord<dom96> Hah
09:36:46FromDiscord<Recruit_main707> useMRikalloc
09:36:47FromDiscord<iWonderAboutTuatara> Wonder how that happens
09:36:59FromDiscord<Yardanico> really weird
09:37:02FromDiscord<iWonderAboutTuatara> Yeah
09:37:26FromDiscord<iWonderAboutTuatara> Extremely weird, pretty funny though
09:37:30FromDiscord<Rika> funny shit yeah
09:37:31*FromDiscord quit (Remote host closed the connection)
09:37:45*FromDiscord joined #nim
09:38:01*narimiran quit (Ping timeout: 264 seconds)
09:38:04FromDiscord<iWonderAboutTuatara> I feel like whacking this bug could be a pain
09:38:15FromDiscord<iWonderAboutTuatara> Because why could this possibly be happening?
09:38:26FromDiscord<Yardanico> probably incorrect ping handling
09:38:29FromDiscord<iWonderAboutTuatara> Hopefully it isn't too bad
09:38:38FromDiscord<Yardanico> I just stopped bridging github-events for now :)
09:38:43FromDiscord<Yardanico> temp solution
09:44:06FromDiscord<Rika> it does it too for forum posts tho
09:44:25FromDiscord<Rika> https://canary.discordapp.com/channels/371759389889003530/371759389889003532/767294659390210048
09:51:20ForumUpdaterBotNew thread by Stefan_Salewski: Fun with (Levenshtein) Edit distances, see https://forum.nim-lang.org/t/6949
09:54:21FromDiscord<Rika> see lol
09:54:58FromDiscord<Recruit_main707> poor bytewisp
10:09:22ForumUpdaterBotNew thread by Didlybom: Problems installing nim 1.4.0 with choosenim, see https://forum.nim-lang.org/t/6950
10:11:11*lritter joined #nim
10:11:32FromDiscord<Clyybber> @Yardanico Wait did my ping changes affect the forum bot?
10:11:43FromDiscord<Yardanico> well maybe they weren't the reason, I'm not yet sure
10:12:12FromDiscord<Clyybber> I think they are, but really the messages from the forum shouldn't be checked for pings
10:18:21Yardanicoyeah
10:25:11FromDiscord<whisperdev> Hi. How do I do this in a more elegant way? https://play.nim-lang.org/#ix=2B7u
10:27:57FromDiscord<Recruit_main707> whats wrong with that way?
10:28:15FromDiscord<Vindaar> well if you're gonna assign the result to some variable, you can use a single line if expression. but as long as you need to differentiate 0 and rest there isn't a "magic" solution that makes it go away (you can only hide it)
10:29:46FromDiscord<Recruit_main707> `or for index in 1..<paths.len:`↵and then instead of `path` use `paths[index]`
10:30:11FromDiscord<Vindaar> but then of course you still have to handle the other case before the loop
10:30:43FromDiscord<Vindaar> sure, if it's some hot loop and you don't want to trust your branch predictor I suppose that's smarter 😅
10:30:53FromDiscord<Recruit_main707> it depends on what he wants to do really
10:30:58FromDiscord<Vindaar> indeed
10:31:12FromDiscord<Vindaar> I suppose code clarity and beauty 💜
10:31:27FromDiscord<whisperdev> yes 💩
10:31:44FromDiscord<Recruit_main707> can you do?↵`for index,path in paths[1..^1]:`
10:32:20FromDiscord<whisperdev> That would work
10:32:21FromDiscord<Recruit_main707> but then the index is not the actual index in the paths sequence
10:33:28FromDiscord<whisperdev> how about mapIt?
10:33:33FromDiscord<whisperdev> Is there an index somewhere?
10:33:48FromDiscord<Recruit_main707> idk ¯\_(ツ)_/¯
10:34:35FromGitter<jrfondren> @whisperdev https://play.nim-lang.org/#ix=2B7y
10:38:55FromDiscord<Vindaar> https://play.nim-lang.org/#ix=2B7B↵↵2 ways. The latter is surely what you want in this context. The first is more for fun and I wouldn't write it like that in practice
10:39:27FromDiscord<Vindaar> the `join` case is essentially what I meant by you can hide it
10:42:55FromDiscord<whisperdev> Thanks!!
10:43:19FromDiscord<Vindaar> you're welcome!
10:50:13*vicfred quit (Quit: Leaving)
10:52:14*oculux quit (Quit: blah)
10:52:29*oculux joined #nim
10:56:35*letto quit (Read error: Connection reset by peer)
10:56:53*letto joined #nim
11:05:12FromDiscord<enthus1ast> is there any way to force nimble to install the freshest version of a package, even if the version number has not changed?
11:05:23FromDiscord<enthus1ast> so basically ignore all the versioning
11:05:59FromDiscord<Vindaar> you can just force to install HEAD of the repository, `nimble install <package>@#head`
11:06:10FromDiscord<enthus1ast> this does not work correctly
11:06:23FromDiscord<Vindaar> huh? what goes wrong?
11:06:38FromDiscord<enthus1ast> it (seems) to does not install all dependencies
11:06:47FromDiscord<enthus1ast> the newest version i mean
11:07:01FromDiscord<dom96> then the package's dependencies are not listed correctly?
11:12:30FromDiscord<enthus1ast> when a dependency is listed with "package@#head" is it then always updated to the newest version?
11:13:09FromDiscord<Rika> newest commit
11:20:20FromDiscord<enthus1ast> sent a code paste, see https://play.nim-lang.org/#ix=2B7S
11:21:05FromDiscord<dom96> it's not always updated
11:21:30FromDiscord<dom96> if a package specifies `pkg@#head` then as long as it was installed at some point in the past it'll be used
11:21:41FromDiscord<dom96> so yeah, don't use it for deps
11:21:44*letto quit (Ping timeout: 265 seconds)
11:22:05FromDiscord<dom96> and yes, there are many situations where two different users will get different code for the same package
11:22:10FromDiscord<dom96> this is what lock files solve
11:22:21FromDiscord<enthus1ast> then, how to force the update? 😄
11:22:57FromDiscord<dom96> Just run `nimble install pkg@#head` manually
11:23:09FromDiscord<dom96> for each of the deps that you want to be updated
11:23:14FromDiscord<enthus1ast> mhh
11:24:42FromDiscord<Yardanico> @Clyybber I understood why it's pinging everyone :)
11:24:51FromDiscord<Yardanico> the original message is "New post by Shirleyquirk in Forcing a memory leak in Nim: according to the docs, useMalloc > only works with gc:none and with --newruntime. which is a bit ... (https://forum.nim-lang.org/t/6943#43505)"
11:24:55FromDiscord<Yardanico> see the colon after Nim
11:25:06FromDiscord<flywind> you can use nimble to remove all dependencies. Then run pkg@#head.
11:25:06FromDiscord<Clyybber> yeah I know
11:25:07FromDiscord<Yardanico> so it tried to test each word before the colon as a ping
11:25:14FromDiscord<Clyybber> yeah
11:25:26FromDiscord<Clyybber> it shouldn't search for them in the first place though
11:25:44FromDiscord<Yardanico> well right now my mentions work by startsWith, I can make them do full match
11:25:52FromDiscord<Yardanico> but then some weird nicknames will not be able to be typed in IRC
11:26:05FromDiscord<Clyybber> nono
11:26:17FromDiscord<Clyybber> it shouldn't run the peg on the message
11:26:19FromDiscord<Clyybber> at all
11:26:35FromDiscord<Yardanico> well I understood that you want to blacklist the bot
11:26:38FromDiscord<Yardanico> but there's another problem
11:26:39FromDiscord<Clyybber> yeah
11:26:39FromDiscord<dom96> wtf, it was fuzzy matching nicks?
11:26:48FromDiscord<Yardanico> @dom96 not fuzzy, but startsWith, always yes :)
11:26:52FromDiscord<Clyybber> @dom96 startsWith, ont really fuzzy
11:26:54FromDiscord<Clyybber> lol
11:26:55FromDiscord<dom96> whyyy
11:26:57FromDiscord<Yardanico> what if someone on IRC uses colon
11:27:04FromDiscord<enthus1ast> @flywind currently, if i think pkgs are not updated i remove them manually from the pkg dir
11:27:04FromDiscord<Yardanico> like "Today I wanted to talk about something: hello"
11:27:09FromDiscord<Clyybber> not a problem
11:27:10FromDiscord<Yardanico> so I guess we need to change for full match
11:27:16FromDiscord<Clyybber> oh
11:27:22FromDiscord<Clyybber> hmm, maybe just some minimum char limit
11:27:24FromDiscord<dom96> Why would you ever do a startsWith?
11:27:29FromDiscord<Clyybber> or just not startsWith
11:27:36FromDiscord<Yardanico> @dom96 some nicknames are long, have spaces or just weird
11:27:40FromDiscord<Yardanico> we can solve spaces with _, yes
11:27:41FromDiscord<Clyybber> but blacklisting the bot is still a good idea
11:28:09FromDiscord<Yardanico> but guess I'll change it to use full match for now, and blacklist the bot too since even with full match it'll ping some people
11:28:14*clyybber joined #nim
11:28:23FromDiscord<dom96> huh, the point is to ping, no?
11:28:24FromDiscord<enthus1ast> i wonder if nimph is usable, guess i'll try it
11:28:27FromDiscord<Yardanico> @Clyybber also maybe we need to remove that "a b: hello" ping syntax? I don't think I've never seen it used
11:28:37FromDiscord<Recruit_main707> maybe startsWith, but 3 letters at least or 4
11:28:38FromDiscord<Yardanico> @dom96 I mean for the forum bot from irc
11:28:45FromDiscord<Clyybber> @Yardanico i've seen it a few times
11:28:46FromDiscord<Yardanico> (edit) "never" => "ever"
11:28:54FromDiscord<Yardanico> really?
11:28:59FromDiscord<Clyybber> at least with a comma
11:29:08FromDiscord<Yardanico> well, comma is fine
11:29:10FromDiscord<Yardanico> I mean spaces
11:29:22FromDiscord<Clyybber> I would just allow it
11:29:32clyybberclyybber test
11:29:35FromDiscord<dom96> @enthus1ast I doubt it will help you with #head packages, wouldn't be surprised if it forbids them
11:29:39FromDiscord<Yardanico> yeah that is okay @Clyybber
11:29:47FromDiscord<Clyybber> hmm why doesn't it work
11:29:52clyybberClyybber test
11:29:54FromDiscord<Yardanico> you need a colon
11:29:56FromDiscord<Yardanico> ??
11:30:00FromDiscord<Yardanico> it won't work like that
11:30:05FromDiscord<Yardanico> you need "ping" or a colon
11:30:05FromDiscord<dom96> @enthus1ast not sure what your expectations are, #head dependencies shouldn't be used.
11:30:33Yardanicoyardanico clyybber yardanico clyybber ping
11:30:40FromDiscord<dom96> !eval echo NimVersion
11:30:41NimBot1.4.0
11:30:46FromDiscord<dom96> cool
11:30:58FromDiscord<Clyybber> it only works ping clyybber I think
11:31:05*OMGOMG quit (Quit: Lost terminal)
11:31:09FromDiscord<Clyybber> oh, no
11:31:13FromDiscord<Yardanico> yeah you're right
11:31:34FromDiscord<Clyybber> it should work here too though
11:31:44FromDiscord<Yardanico> sent a code paste, see https://play.nim-lang.org/#ix=2B7W
11:31:58FromDiscord<Clyybber> but its mention | nick
11:32:03FromDiscord<Yardanico> ah
11:32:05FromDiscord<Yardanico> hm
11:32:40FromDiscord<Clyybber> oh
11:32:46FromDiscord<Clyybber> the is greedy right?
11:32:55FromDiscord<Clyybber> then it will try to ping as nick
11:33:00FromDiscord<Clyybber> (edit) "to" => ""
11:33:01FromDiscord<Yardanico> yes
11:33:03FromDiscord<dom96> Gosh, I would just parse this manually
11:33:05FromDiscord<Yardanico> it's greedy
11:33:29FromDiscord<Clyybber> we gotta use non greedy here
11:33:30FromDiscord<Yardanico> @dom96 well it is possible, yes
11:33:35FromDiscord<lqdev> @dom96 my dude
11:33:38FromDiscord<Clyybber> I'm gonna make a pr
11:33:45FromDiscord<Yardanico> but it might look and work worse :P
11:33:52FromDiscord<lqdev> i could never get npeg parsers to work xD
11:33:59FromDiscord<lqdev> something always screws up
11:34:08FromDiscord<Yardanico> just fyi - ircord uses them for parsing discord-specific ID stuff
11:34:09FromDiscord<Varriount> I <3 NPeg
11:34:11FromDiscord<dom96> @Yardanico no, it'll look better and work better
11:34:15FromDiscord<Yardanico> @dom96 not always
11:34:20FromDiscord<Clyybber> no it won't
11:34:26FromDiscord<Clyybber> nepg is perfect for this
11:34:40FromDiscord<lqdev> imo manual parsers are more readable but that's just me
11:34:43FromDiscord<lqdev> you just read it
11:34:44FromDiscord<Yardanico> ircord has this btw :) https://media.discordapp.net/attachments/371759389889003532/767349937724850176/unknown.png
11:34:48FromDiscord<lqdev> instead of having to interpret it
11:34:52FromDiscord<Yardanico> @lqdev well you have to know the syntax yes
11:35:08FromDiscord<lqdev> it's more compact
11:35:16FromDiscord<lqdev> but it's kind of like reading perl
11:35:24FromDiscord<lqdev> not to say npeg is bad, of course
11:35:24FromDiscord<dom96> You make mistakes far more easily with this IMO
11:35:30FromDiscord<dom96> case in point the recent Nimble issue
11:35:38FromDiscord<dom96> where it failed to parse 1.0.10
11:35:39FromDiscord<lqdev> @dom96 true, and it's hard to pinpoint where
11:35:47FromDiscord<Yardanico> npeg has tracing
11:35:49FromDiscord<lqdev> you can't just `echo` out the current position in the stream
11:35:50FromDiscord<Yardanico> you can debug it
11:35:53FromDiscord<dom96> I can guarantee you this would not have happened if the parsing was done manually
11:36:00FromDiscord<Yardanico> doubt it lol
11:36:05FromDiscord<Yardanico> manual parsing would've had more issues
11:36:15FromDiscord<lqdev> or so you think.
11:36:16FromDiscord<Varriount> That's the shorthand version though
11:36:24FromDiscord<dom96> Nimble's actual version parsing is perfect
11:36:30FromDiscord<dom96> this was a silly peg hack
11:36:30FromDiscord<Varriount> This is a long-form version
11:36:33FromDiscord<Varriount> https://github.com/Varriount/commandant/blob/master/commandant/lexer.nim#L93
11:36:47FromDiscord<Varriount> Well, long-form example
11:37:17FromDiscord<Clyybber> hmm, do you know how to achieve a non-greedy with npeg?
11:37:18FromDiscord<Yardanico> @dom96 main proble is searching in the whole string for multiple occurences
11:37:42FromDiscord<Yardanico> multiple times
11:37:58FromDiscord<Varriount> @Clyybber have to have a negation check in the pattern you're repeating
11:38:11FromDiscord<dom96> I don't really get what you're trying to parse out tbh
11:38:21FromDiscord<Yardanico> @dom96 all kinds of mentions:
11:39:13*fuab quit (Ping timeout: 264 seconds)
11:39:23FromDiscord<Yardanico> "nick: hello", "@nick: hello", "@nick" anywhere in the message, "ping nick" or "ping @nick" anywhere in the message, "nick, nick2: hello", I know that this exact thing can be achieved with manual parsing
11:39:28FromDiscord<dom96> If you're finding mentions then first thought in my head on how to approach that is to get a list of the words in the message, then check whether any of the words are a nick
11:39:29FromDiscord<Yardanico> but the other one for discord IDs and stuff is much worse
11:39:40FromDiscord<dom96> like you could do that with a `split` even
11:39:47FromDiscord<Yardanico> yes for simple cases you can
11:39:58FromDiscord<dom96> what are the non-simple cases?
11:40:26FromDiscord<Varriount> @Clyybber basically, inside the pattern being repeated, you have to assert that the next pattern isn't present
11:40:35*fuab__ joined #nim
11:40:43FromDiscord<Clyybber> ah, I see
11:40:46FromDiscord<Clyybber> makes sense, thanks
11:40:46FromDiscord<Yardanico> ok I'll try to make a manual parser version for this just to check
11:40:51FromDiscord<dom96> lol
11:40:57ehmryZevv: I have an npeg parser that is blowing up to 70K lines of C, any suggestions for bringing it down?
11:40:57FromDiscord<Yardanico> ah right
11:41:01FromDiscord<Clyybber> well we don't want to parse every word as a nick
11:41:12FromDiscord<Varriount> `( A - B ) B`
11:41:19FromDiscord<Yardanico> @dom96 another issue is that you need to replace the occurence with the actual mention
11:41:33FromDiscord<Yardanico> with the <@!id> syntax
11:41:49FromDiscord<dom96> easy
11:41:56FromDiscord<Varriount> ehmry: Sounds like an inlining issue
11:42:16FromDiscord<Clyybber> @Varriount `(A - &B) B` ?
11:42:18FromDiscord<dom96> you literally just loop through each character, keep a track of the last word, reset it on ` ` character
11:42:21FromDiscord<Clyybber> because else I consume B no?
11:42:29FromDiscord<dom96> append each character to a new string buffer
11:42:44FromDiscord<dom96> well, append each word when reset
11:42:53FromDiscord<dom96> if the word is a nick, transform it and append that
11:42:57FromDiscord<dom96> easy peasy
11:43:05FromDiscord<Clyybber> we only have fast access to the last 5 nicks that wrote on discord afaik
11:43:21FromDiscord<Yardanico> well it's not about that
11:43:40FromDiscord<Yardanico> all of them are cached locally right now
11:43:47FromDiscord<Yardanico> it's mostly old code which caches last 5 users per channel
11:43:56FromDiscord<Yardanico> dimscord can cache them
11:44:13FromDiscord<Clyybber> oh, well then it really doesn't seem to useful to do this dance :D
11:44:18FromDiscord<Varriount> ehmry: https://github.com/zevv/npeg#compile-time-configuration
11:44:18FromDiscord<Yardanico> yeah :P
11:45:34FromDiscord<Clyybber> :disruptek:
11:45:51FromDiscord<Varriount> @Clyybber Ah, yes, I think
11:46:03FromDiscord<Yardanico> :nimDog:
11:46:06FromDiscord<dom96> so yeah, manual parsing should not be underestimated 😉
11:46:07FromDiscord<Yardanico> :nimGlow:
11:46:13FromDiscord<Yardanico> :nimMono:
11:46:16FromDiscord<Yardanico> I added a few emojis yesterday
11:46:19FromDiscord<Yardanico> (today)
11:46:30FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767352901981962240/unknown.png
11:46:32FromDiscord<Yardanico> :nim3:
11:46:36FromDiscord<Clyybber> the crowns look squished
11:46:36FromDiscord<Yardanico> is pretty cool (from nimble tag)
11:46:41FromDiscord<dom96> lol? why did you add disruptek's avatar?
11:46:44FromDiscord<Clyybber> lol
11:46:52FromDiscord<Yardanico> @dom96 :disruptek:
11:46:57FromDiscord<Varriount> @Clyybber ↵> Difference: P1 - P2↵>↵> The pattern P1 - P2 matches P1 only if P2 does not match. This is equivalent to !P2 P1
11:46:57FromDiscord<Clyybber> agreed
11:47:05FromDiscord<Clyybber> @Varriount ah
11:47:15FromDiscord<Varriount> (edit) "P2↵>↵>" => "P2↵> ↵>"
11:47:41FromDiscord<Clyybber> Yeah, I think I would need a & there I think
11:47:52FromDiscord<Clyybber> especially since the next pattern I match with & anyways
11:48:14FromDiscord<Clyybber> but all this code has been obsoleted now :D
11:48:19FromDiscord<Varriount> No, because it's equivalent to ! P2 P1
11:48:33FromDiscord<Clyybber> but I don't want to consume P1
11:48:39FromDiscord<Clyybber> oh, eh
11:48:42FromDiscord<Clyybber> P2
11:48:44FromDiscord<Varriount> And ! is non-capturing
11:48:48FromDiscord<Clyybber> aha!
11:48:49FromDiscord<Clyybber> thanks
11:49:00FromDiscord<Clyybber> yeah, of course, sorry :D
11:50:25FromDiscord<Recruit_main707> lmao the disruptek one
11:50:40FromDiscord<Recruit_main707> how about adding the blue crown??
11:50:56FromDiscord<Yardanico> yeah I wanted to
11:51:03FromDiscord<Yardanico> also there's the blue aporia logo concept :)
11:52:00FromDiscord<Yardanico> @Clyybber interesting regression in last version https://forum.nim-lang.org/t/6947#43512
11:52:05FromDiscord<Yardanico> sent a code paste, see https://play.nim-lang.org/#ix=2B86
11:52:10FromDiscord<Yardanico> works on 1.2.6, fails on 1.4
11:52:54FromDiscord<Yardanico> also found a bug with my code pasting handling which I made yesterday to finally fulfil disruptek's request
11:52:56FromDiscord<Yardanico> will fix it
11:53:31FromDiscord<Clyybber> @Yardanico damn, that one looks nasty
11:53:50FromDiscord<Yardanico> (now ircord actually makes code pastes runnable - it comments out all text except the code between triple backquotes for people who might be wondering)
11:53:53FromDiscord<Yardanico> @Clyybber yeah
11:54:04FromDiscord<Clyybber> nice
11:54:42FromDiscord<Yardanico> ah yeah you weren't on the stream when we added that :)
11:55:06FromDiscord<Clyybber> probably sleeping :D
11:55:22FromDiscord<Clyybber> what happens if you have a long message that contains normal text and codeblocks?
11:56:05FromDiscord<Yardanico> it'll treat it as code
11:56:07FromDiscord<Clyybber> long codeblocks that is so \`\`\` ones
11:56:09FromDiscord<Yardanico> also we added word wrapping
11:56:13FromDiscord<Yardanico> std/wordwrap
11:56:21FromDiscord<Yardanico> for all big messages
11:56:25FromDiscord<Clyybber> @Yardanico will it comment out the non-code block parts?
11:56:28FromDiscord<Yardanico> yes
11:56:30FromDiscord<Yardanico> #[ and ]#
11:56:34FromDiscord<Clyybber> nice thats sick
11:56:43FromDiscord<Yardanico> so you can run the code from discord in the playground immediately
11:56:45FromDiscord<Yardanico> if it's runnable that is
11:57:21FromDiscord<Clyybber> sent a code paste, see https://play.nim-lang.org/#ix=2B8c
11:57:29FromDiscord<Yardanico> https://play.nim-lang.org/#ix=2B8c
11:57:36FromDiscord<Yardanico> it's a bit broken still :)
11:57:38FromDiscord<Yardanico> but mostly works
11:57:39FromDiscord<Clyybber> pretty cool
11:57:47FromDiscord<Clyybber> maybe we should use ## instead of #[ ]# ?
11:58:03FromDiscord<Yardanico> well with #[ we can have multi-line comments
11:58:14FromDiscord<Clyybber> yeah but it doesn't look nice
11:58:17FromDiscord<Yardanico> without the need to handle each line in between
11:58:19FromDiscord<Clyybber> I think the seperation is better
11:58:35FromDiscord<Clyybber> @Yardanico Yeah, just prepend ## to each non-code block line
11:58:43FromDiscord<Yardanico> yeah okay
11:58:51FromDiscord<Yardanico> it might be simpler than #[ actually
11:58:55FromDiscord<Yardanico> since for #[ you need to handle closing and opening
11:59:00FromDiscord<Clyybber> yea
12:06:01*supakeen quit (Quit: WeeChat 2.9)
12:06:38*supakeen joined #nim
12:07:23*letto joined #nim
12:08:26*letto quit (Client Quit)
12:09:35ForumUpdaterBotNew thread by Didlybom: Impressive results with --gc:orc, see https://forum.nim-lang.org/t/6951
12:09:55FromDiscord<Yardanico> hehehe :)
12:14:21*krux02 joined #nim
12:15:19FromDiscord<Yardanico> sleek https://media.discordapp.net/attachments/371759389889003532/767360154848329748/unknown.png
12:15:42FromDiscord<Clyybber> whats that
12:15:52FromDiscord<Yardanico> the actual code for inserting comments
12:15:59FromDiscord<Clyybber> ah, I see
12:16:04FromDiscord<Yardanico> word wrapping needs # too since it splits lines into multiple
12:16:09FromDiscord<Clyybber> do we wantt to use ## or # ?
12:16:11FromDiscord<Yardanico> but there's a newLine string argument
12:16:15FromDiscord<Yardanico> @Clyybber i think # ?
12:16:19FromDiscord<Clyybber> yeah, probably
12:16:25FromDiscord<Clyybber> yeah definitely
12:16:27FromDiscord<Clyybber> :D
12:16:56FromDiscord<Clyybber> @Yardanico oh, I see what you mean, thats sleek indeed
12:17:30FromDiscord<haxscramper> Is there a way to explicitly tell `nim doc` the path of the `nimdoc.cfg` configuration file?
12:18:25FromDiscord<haxscramper> And in what order/which directories are searched for config by default?
12:19:25FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767361185556332564/unknown.png
12:38:46*clyybber quit (Quit: WeeChat 2.9)
13:06:03*landerlo joined #nim
13:06:14landerloj pr
13:10:06*letto joined #nim
13:12:57*fuab__ quit (Ping timeout: 260 seconds)
13:13:35FromDiscord<Rika> ?
13:15:13*fuab joined #nim
13:16:03FromDiscord<Yardanico> la la
13:32:20*fuab quit (Read error: Connection reset by peer)
13:40:45FromGitter<deech> The stdlib json lib doesn't seem to support exponents in numbers. Am I missing something?
13:41:36FromGitter<gogolxdong> How to copy data to a string by copyMem?
13:42:45*gmaggior joined #nim
13:48:09FromGitter<gogolxdong> ```var s2: string = $array[32,char] ⏎ copyMem(s2[0].addr, s1[0].addr, 32)``` [https://gitter.im/nim-lang/Nim?at=5f8c479861007f7d1b7bfc9c]
13:48:25FromGitter<gogolxdong> Does this count hacky?
13:50:34*kb2ma joined #nim
13:53:34FromDiscord<shashlick> Is the discord bot down
13:54:33Yardanicono
13:54:53Yardanicomore and more people use discord
13:55:03Yardanicoah the fromgitter -> discord is not working for some reason
13:55:31FromGitter<Yardanico> 123
13:55:53FromDiscord<shashlick> Ya I didn't see disruptek's message
13:55:57FromDiscord<Yardanico> ?
13:56:00FromDiscord<Yardanico> which one
13:56:10FromDiscord<shashlick> The one he pinged me
13:56:28FromDiscord<shashlick> It doesn't show up on discord or even irclogs.nim-lang.org
13:56:36FromDiscord<Yardanico> then he didn't :P
13:57:17FromDiscord<dom96> ^^
13:57:29FromDiscord<Yardanico> irclogs is pretty reliable
13:58:14FromDiscord<Yardanico> @dom96 we will change it to simple split parsing, but then people with spaces in names won't be able to be pinged (this is their own fault to be honest)
13:58:31FromDiscord<dom96> yep
13:58:43FromDiscord<dom96> and tbh you shouldn't use split parsin
13:58:47FromDiscord<shashlick> Then FromGitter is down
13:58:49FromDiscord<dom96> because you will lose significant whitespace
13:58:57FromDiscord<Yardanico> yeah that is a problem
13:59:04FromDiscord<dom96> Just do what I suggested above 😉
13:59:14FromDiscord<Yardanico> @shashlick yeah it seems like FromGitter -> Discord doesn't work for some reason
13:59:18FromDiscord<Clyybber> split parsing is fine
13:59:30FromDiscord<Clyybber> there is no solution for whitespace nicks
13:59:32FromDiscord<Yardanico> @Clyybber well the only bad thing I can think of is code snippets
13:59:36FromDiscord<Yardanico> but people usually use code pasting services :)
13:59:41FromDiscord<Yardanico> on IRC
13:59:41FromDiscord<dom96> split parsing is inefficient
13:59:52FromDiscord<shashlick> FromGitter -> IRC itself isn't working
13:59:54FromDiscord<Yardanico> @dom96 in an iterator?
13:59:58FromDiscord<Clyybber> its good enough
13:59:58FromDiscord<Yardanico> @shashlick it's working just fine
14:00:07FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767386527579373569/unknown.png
14:00:07FromGitter<jrfondren> @deech it seems to. ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5f8c4a676c8d484be291765d]
14:00:13FromDiscord<Yardanico> but gitter -> irc -> discord isn't
14:00:16FromDiscord<dom96> !eval import strutils; echo("hello qw q".splitWhitespace())
14:00:19NimBot@["hello", "qw", "q"]
14:00:30FromDiscord<Yardanico> yes
14:00:33FromDiscord<Yardanico> but is that really important?
14:00:38FromDiscord<dom96> You lose the whitespace
14:00:59FromDiscord<dom96> it's very bad if you will screw up my messages just for some nick rewrites
14:01:57FromGitter<deech> @jrfondren Interesting, so it does. I just didn't see it in the module itself so I guess Nim's native numbers support it.
14:06:18disruptekenthus1ast: nimph supports #head but it's a super bad idea.
14:15:20*kb2ma quit (Quit: kb2ma)
14:21:00FromDiscord<Yardanico> @dom96 if you have time - can you check which email does https://forum.nim-lang.org/profile/Jipok have? That person is asking me because he tried to send the reset password email, but it didn't arrive on his email
14:21:15FromGitter<Yardanico> 23
14:21:26Yardaniconot sure why fromgitter -> discord is broken hmm
14:22:07FromDiscord<Yardanico> ~restarting bridge~
14:22:08disbotno footnotes for `restarting`. 🙁
14:22:12*FromDiscord quit (Remote host closed the connection)
14:22:31*FromDiscord joined #nim
14:23:18FromDiscord<Clyybber> ~restarting is bridge
14:23:18disbotrestarting: 11bridge
14:23:41disruptek~clyybber is a knucklehead
14:23:41disbotclyybber: 11a knucklehead
14:23:56FromDiscord<Rika> lmao
14:23:56FromDiscord<Yardanico> weird
14:23:58FromDiscord<Yardanico> very weird
14:24:07FromDiscord<Yardanico> I explicitly disallow disbot to mention people
14:24:11FromDiscord<Yardanico> maybe it's not working correctly
14:24:14FromDiscord<Rika> thonk
14:28:18FromGitter<Yardanico> 123
14:29:14FromDiscord<Yardanico> i guess the bridge will be kind of unstable for now, I need to check why FromGitter isn't getting pigned and some other stuff, so I'll run it on my computer
14:29:20FromDiscord<Yardanico> so I'll restart it a few times
14:30:11*FromDiscord quit (Remote host closed the connection)
14:30:32*FromDiscord joined #nim
14:30:33Yardanico123
14:30:37FromGitter<Yardanico> 123
14:31:26*FromDiscord quit (Remote host closed the connection)
14:31:53*FromDiscord joined #nim
14:32:17FromGitter<Yardanico> 123
14:32:40*FromDiscord quit (Remote host closed the connection)
14:32:58*FromDiscord joined #nim
14:33:01FromGitter<Yardanico> 123
14:33:11Yardanicowhat the heck is **
14:33:22YardanicoOHH
14:33:25YardanicoI get it hahhaha
14:33:40Yardanicomy bridge converts irc -> markdown even for fromgitter lol
14:33:45Yardanicoso the old parsing with scanf stopped working
14:33:47disruptekalehander92 has moved on to crystal. sad.
14:33:56Yardanicodid he?
14:34:01Yardanicoare you sure?
14:34:02*FromDiscord quit (Remote host closed the connection)
14:34:03disruptekyeah, he gave up on nim.
14:34:23disrupteksaid it's the lack of nil refs or something.
14:34:23Yardanicoproof please, I don't believe :(
14:34:31Yardanicostop trolling
14:34:47disruptekme?
14:35:10disruptek!last alehander92
14:35:11disbotalehander92 spoke in 12#nim 41 hours ago 12https://irclogs.nim-lang.org/16-10-2020.html#21:23:23
14:35:25disruptekliterally exactly what he said.
14:35:43*FromDiscord joined #nim
14:35:47FromDiscord<dom96> I'm writing some C++, guess I moved on to C++, sad.
14:35:56Yardanicohe didn't say that disruptek
14:36:37disruptekwtf is he talking about top hn comments?
14:36:42disrupteki'm not on hn.
14:37:08Yardanicoyou wrote a hn comment
14:37:14Yardanicoare you high again
14:37:16FromGitter<Yardanico> hello fellow discord and irc users
14:37:28FromDiscord<dom96> Yardanico, take a look at what your bot is writing lol
14:37:33FromDiscord<Yardanico> yes
14:37:35FromDiscord<Yardanico> it's not my fault ;)
14:37:42FromDiscord<dom96> It's not?
14:37:54FromDiscord<Yardanico> i don't think that you is a good nickname
14:38:22FromDiscord<Yardanico> and limiting nickname by min char amount is error-prone too, for example your nickname only has 5 chars
14:38:31FromDiscord<Rika> well maybe only allow ping before colon
14:38:33FromDiscord<Yardanico> no
14:38:37FromDiscord<Yardanico> one thing I need to change though:
14:38:42Yardanicogithub.com/Yardanico/test
14:38:45Yardanico:)
14:41:22*lbart quit (Read error: Connection reset by peer)
14:41:35*lbart joined #nim
14:41:35*lbart quit (Changing host)
14:41:35*lbart joined #nim
14:42:07*landerlo quit (Remote host closed the connection)
14:43:16FromDiscord<dom96> Traffic to nim-lang.org Friday vs 1 week before: +1167% 😄
14:43:20FromDiscord<Yardanico> haha
14:43:45*madpata joined #nim
14:43:59Oddmongerddos or 1.4 ?
14:44:04Yardanico1.4 ddos
14:44:24Oddmongerband of orcs
14:44:39FromDiscord<dom96> 1.4 of course
14:44:53FromDiscord<dom96> DDoS' can't touch us
14:46:50disruptekwe're on the trajectory to hit the tipping point in the next couple releases.
14:47:09disruptekwill be nice to get some more talent into the compiler.
14:48:23FromDiscord<dom96> MAU/WAU/DAU for Choosenim from Sep 1 2017 https://media.discordapp.net/attachments/371759389889003532/767398676850802728/unknown.png
14:48:53FromDiscord<Yardanico> spikes are new releases? :)
14:49:19FromDiscord<dom96> Peak is on 28th February of this year
14:49:38FromDiscord<Rika> meekly, wearly, and donthly
14:49:49disruptekwearly indeed.
14:49:51FromDiscord<dom96> Which is suspiciously close to FOSDEM
14:50:27*FromDiscord quit (Remote host closed the connection)
14:51:52disruptek Verifying dependencies for [email protected]
14:51:52disruptek675
14:52:21disruptek Error: Unsatisfied dependency: nim (>= 1.4.0)
14:52:21disruptek676
14:53:14*NimBot joined #nim
14:53:46Yardanicodisruptek: bridge down for now, pls wait :)
14:54:35disruptekbut i must spew nimble contempt!
14:55:08disruptekoh, you know what it is? i need to rebase mangling to 1.4.0. this is nuts.
14:57:51Zevvehmry: reorder your rules
14:58:20Zevvnpeg does not optimize ordering, partly because I never implemented that, but also because it allows the user to choose and optimize
14:58:39Zevvyou can configure inline restrictions also
14:58:57Zevvbut any rules defined after a user of that rule are guarenteed not to be inlined
15:02:35disruptekzevv: it's time for a fresh video of bitline.
15:03:39*FromDiscord joined #nim
15:04:25FromDiscord<dom96> Interesting. Top referring websites over the past 4 years: HN (unsurprisingly, accounting for 26.56%), GitHub (10.9%), Reddit (7.35%), Twitter (4.89%), Nim Forum (3.19%), Wikipedia (2.40%), duckduckgo, narimiran.github.io, baidu, habrahabr.ru
15:04:54YardanicoYardanico: yardanico yardanico @yardanico ping yardanico
15:05:00Yardanicohuh
15:05:03FromDiscord<scott> lol
15:05:08Yardanicoit shouldn't do that
15:05:08disrupteki was just thinking that.
15:05:10FromDiscord<scott> interesting to see duckduckgo on the list but no google
15:05:48*solitudesf joined #nim
15:06:13FromDiscord<scott> is there a way to set a breakpoint from within nim code? Like `debugger;` in JS or `pudb.set_trace()` in python?
15:06:14Yardanicoah right it will do that, yeah, the behaviour is right
15:06:48FromGitter<Yardanico> 123
15:07:45FromDiscord<scott> sent a code paste, see https://play.nim-lang.org/#ix=2B9q
15:07:59FromDiscord<scott> (edit) "https://play.nim-lang.org/#ix=2B9q" => "https://play.nim-lang.org/#ix=2B9r"
15:08:20FromDiscord<dom96> Google probably is counted differently by Analytics
15:08:27FromDiscord<scott> ah that makes sense
15:08:37FromDiscord<Yardanico> @scott nim keywords need to be "escaped"
15:08:43FromDiscord<scott> oh I see
15:08:52FromDiscord<Yardanico> but range isn't actually a nim keywor
15:08:53FromDiscord<Yardanico> (edit) "keywor" => "keyword"
15:09:20*FromDiscord quit (Remote host closed the connection)
15:09:39*FromDiscord joined #nim
15:09:40FromGitter<Yardanico> 123
15:09:55disruptekwho here understands the changes to genericAssign?
15:10:07FromDiscord<Vindaar> it's possible the author did that, because they thought it was based on different syntax highlighting. nim-mode in emacs highlights some words commonly used in the stdlib, despite them not being keywords
15:10:31FromDiscord<Yardanico> same for standard nim plugin in vscode
15:10:51*FromDiscord quit (Remote host closed the connection)
15:11:09*FromDiscord joined #nim
15:11:17FromGitter<Yardanico> haloooooooo
15:11:27*FromDiscord quit (Remote host closed the connection)
15:11:44*FromDiscord joined #nim
15:11:49FromDiscord<scott> sent a code paste, see https://play.nim-lang.org/#ix=2B9u
15:11:54FromDiscord<Yardanico> you can
15:12:09FromGitter<Yardanico> hallllolooooooooo
15:15:39*FromDiscord quit (Remote host closed the connection)
15:15:59*FromDiscord joined #nim
15:16:02FromGitter<Yardanico> 12313
15:17:02FromDiscord<scott> Is there any documentation for how to debug using LLDB or GDB? I can't seem to set a breakpoint
15:17:12FromDiscord<Yardanico> compile with --debugger:native
15:17:18FromDiscord<scott> aahhh
15:17:20FromDiscord<scott> thanks
15:17:49*FromDiscord quit (Remote host closed the connection)
15:18:14*FromDiscord joined #nim
15:18:19FromGitter<Yardanico> finally hallo from gitter??!?!?
15:18:39*FromDiscord quit (Remote host closed the connection)
15:18:48*Q-Master quit (Ping timeout: 260 seconds)
15:18:54*FromDiscord joined #nim
15:19:01FromGitter<Yardanico> one more try ;(
15:23:28*FromDiscord quit (Remote host closed the connection)
15:23:41*Q-Master joined #nim
15:23:48*FromDiscord joined #nim
15:23:50FromGitter<Yardanico> please work
15:23:51*FromDiscord quit (Remote host closed the connection)
15:24:59Zevvdisruptek: sure
15:25:02Zevvwill do
15:25:40Zevvalthough I now entered the part of the project where apparent progress is decreasing
15:25:47Zevvwith more work pouring in
15:25:54disruptekgood.
15:26:04Zevvand of course I found a project that does all of this already
15:26:06*FromDiscord joined #nim
15:26:09FromGitter<Yardanico> testing testing 123
15:26:10*FromDiscord quit (Remote host closed the connection)
15:26:16Zevvalthough its more of a complex ecosystem, which kind is not what Im looking for
15:26:22disrupteklink?
15:26:26ZevvYardanico: nope, not working
15:27:17Zevvdisruptek: https://github.com/wolfpld/tracy
15:28:07*arecacea1 quit (Remote host closed the connection)
15:28:44*arecacea1 joined #nim
15:28:46disruptekwow.
15:29:32Yardanicoeh, found a bug in ircord :(
15:29:36Yardanicosorry i mean strscans
15:29:43*FromDiscord joined #nim
15:29:46Yardanicofound a bug in strscans :(
15:29:59Yardanicomiran fixed previous one but maybe it introduced this one
15:30:51Yardanicoah well it's not exactly a bug
15:32:03*FromDiscord quit (Remote host closed the connection)
15:32:43*FromDiscord joined #nim
15:32:47FromGitter<Yardanico> I swear if this doesn't work ikriekrtikewotgjtge
15:32:52FromDiscord<Yardanico> finally
15:33:23YardanicoYardanico: yardanico yardanico yardanico ping yardanico
15:33:28Yardanicoping clyybber
15:33:33YardanicoYardanico: hi
15:33:42Yardanicorandom yardanico mention without @
15:33:48Yardanicobut with @yardanico
15:33:51Yardanicooops
15:34:53voidpiYardanico IS HAVING A NIL POINTER EXCEPTION
15:35:46FromDiscord<Rika> nil[]
15:37:26*Vladar quit (Quit: Leaving)
15:37:33*FromDiscord quit (Remote host closed the connection)
15:37:53*FromDiscord joined #nim
15:38:00Yardanicohello who is this @rika
15:38:03Yardanicowhy?
15:38:05FromDiscord<Yardanico> 123
15:38:07Yardanicohello @rika
15:38:18YardanicoRika: hello
15:38:20Yardanicoping @rika
15:38:24Yardanicowhy first one didn't work ffs
15:38:24disruptekdon't you have a #nim-test for this?
15:38:29Yardanicodisruptek: yeah for this I do
15:38:30Yardanicosorry
15:38:36Yardaniconot for gitter though which I fixed
15:38:40*FromDiscord quit (Remote host closed the connection)
15:39:10*FromDiscord joined #nim
15:39:12disruptekit's just that i get pinged whenever i see RIKA.
15:39:18YardanicoWHY
15:39:25disruptekwhy what?
15:39:25FromDiscord<Recruit_main707> xD
15:40:02Yardanicodisruptek: why do you eat it
15:40:17disruptekthis gut don't grow itself.
15:41:00FromDiscord<Yardanico> i'm gonna set min char limit for nicknames at 4 currently
15:41:09FromDiscord<Yardanico> because of @YOU
15:41:15Yardanicowe have a discord member with that name
15:41:56voidpiso for crap outside irc
15:42:04Yardanico?
15:42:29voidpiwhat you just said, the limit
15:42:42Yardanicowell, you can have a 3-char nickname "you" on IRC as well
15:42:50Yardaniconot sure what's your argument about that exact issue
15:42:58voidpiit's a non issue
15:43:11*disruptek is now known as goatlicker
15:43:32FromDiscord<Recruit_main707> forum and github events wont ping ppl right?
15:43:40voidpigoatlicker: how about bootlicker?
15:44:11YardanicoRecruit_main707: no
15:44:14Yardanicowe can chec
15:44:14Yardanicok
15:44:20goatlickerthat wouldn't make any sense.
15:44:23Yardanicogoatlicker: it will
15:44:29YardanicoI mean it *can* make sense
15:44:34Yardanico~disbot
15:44:35disbotdisbot: 11a bot that will message you usage instructions if you say `~help`. if you're on discord or gitter, you're shit outta luck -- get a real client.
15:44:39Yardanicohahaha
15:44:46FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767412864318308412/unknown.png
15:45:47FromDiscord<Yardanico> oh I see why
15:45:55FromDiscord<Yardanico> at this point in the bridge the nickname is already disbot[IRC]
15:47:15leorize[m]```source/Nim/compiler/nim.nim(80, 30) Error: type mismatch: got <proc (conf: ConfigRef, info: TLineInfo, msg: string, severity: Severity){.locks: <unknown>.}> but expected 'proc (config: ConfigRef, info: TLineInfo, msg: string, severity: Severity){.closure, gcsafe.}'```
15:47:27Yardanicoclosure
15:47:31Yardaniconimcall vs closure
15:47:48Yardanicoannotate your proc with {.closure.}, nim doesn't always automatically promote nimcalls to closures iirc
15:48:27leorize[m]that's definitely not the issue :)
15:48:32Yardanicoare you sure?
15:48:49leorize[m]https://github.com/nim-lang/Nim/pull/15610/commits/35070480852fe68eac54f5de261656919328eefc <- that's the commit that caused the issue
15:48:50disbotcompiler: add annotations support for CI
15:48:55leorize[m]revert that and everything works
15:48:57FromDiscord<Recruit_main707> bruh, this guy is gonna have a thousand pings by the end of the day
15:49:04goatlickeryou think?
15:49:22goatlickerleorize[m]: i do custom error handling in dust.
15:49:45leorize[m]also you can't tag top-level procedure as closure
15:50:05Yardanicothere's a way to do that
15:50:15goatlickeranyway, that's not the issue.
15:50:23Yardanicolet myproc = proc () {.closure.} = echo "hi"
15:50:30*goatlicker is now known as asd
15:50:32Yardanicosee, "top level" closure proc :))
15:50:35leorize[m]eww
15:51:29leorize[m]disruptek: what's your wisdom?
15:52:11asdwell, i had some similar issues but looking at the current code, my use is trivial, as is yours.
15:52:21Yardanicoasd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd asd
15:52:23asdi do use a closure, though.
15:52:39*asd is now known as disruptek
15:53:21FromDiscord<Avatarfighter> Rip the guy named « you » in discord
15:53:38Yardanicowho are @you ?
15:53:43Yardanicowho are ping you
15:53:51Yardanicook enough i'll make 4 char limit
15:53:53Yardanicoand restrict disbot
15:53:55Yardanico~disbot
15:53:55disbotdisbot: 11a bot that will message you usage instructions if you say `~help`. if you're on discord or gitter, you're shit outta luck -- get a real client.
15:54:00FromDiscord<Avatarfighter> LOL
15:54:01FromDiscord<Avatarfighter> dude
15:54:04FromDiscord<Recruit_main707> new challenger arrives, ll
15:54:07FromDiscord<Avatarfighter> LL is also a person
15:54:14leorize[m]I figured out the issue
15:54:16leorize[m]it's `{.gcsafe.}`
15:54:17FromDiscord<Avatarfighter> YOU#5040 and ll#4192
15:54:29Yardanicoit shouldn't P<i>ng ll though
15:54:30disruptekso dumb.
15:54:31Yardanicobut it does
15:54:33Yardanicoah because old version yes
15:55:06leorize[m]gcsafe non-compilance error is so cryptic
15:55:22FromDiscord<Avatarfighter> https://media.discordapp.net/attachments/371759389889003532/767415528590409728/image0.png https://media.discordapp.net/attachments/371759389889003532/767415528855306250/image1.png
15:55:37disruptekalso so useless.
15:55:58FromDiscord<Avatarfighter> Disruptek how goes mangling
15:56:05FromDiscord<Avatarfighter> the usual?
15:56:26disruptektrying to debug a memory issue in norm.
15:56:32Yardanico~bridge stopping~
15:56:33disbotno footnotes for `bridge`. 🙁
15:56:39*FromDiscord quit (Remote host closed the connection)
15:57:25disruptekweird thing is, i solved this once.
15:57:31*FromDiscord joined #nim
15:57:37Yardanicobridge up
15:57:40Yardanicohello ll
15:57:51YardanicoIt won't pOng you anymore
15:57:52FromDiscord<Avatarfighter> Ello
15:57:56Yardanicowith "ping" it will
15:58:01Yardanico~disbot
15:58:01disbotdisbot: 11a bot that will message you usage instructions if you say `~help`. if you're on discord or gitter, you're shit outta luck -- get a real client.
15:58:03*theelous3 joined #nim
15:58:08Yardanicoavatarfighter: who are you?
15:58:12Yardanicoping avatarfighter
15:58:13FromDiscord<Avatarfighter> what
15:58:31FromDiscord<Avatarfighter> it pings without the word ping dunno if that’s intentional
15:58:41Yardanicoi'm testing see bold irc to markdown conversion
15:58:44FromDiscord<Yardanico> almost
15:58:46FromDiscord<Yardanico> :)
15:58:50FromDiscord<Avatarfighter> yooo
15:58:54PrestigeCool stuff tho
15:58:59FromDiscord<Yardanico> I still haven't got it right
15:59:04FromDiscord<Yardanico> but it works for simple cases
15:59:06FromDiscord<Yardanico> like for disbot
15:59:07FromDiscord<Avatarfighter> @Yardanico you should make it ping if you put a colon after a discord name
15:59:08FromDiscord<Vindaar> I'm really to inform all of you, but. Yard is really losing it slowly 😢
15:59:14FromDiscord<Yardanico> @Avatarfighter I already have that
15:59:20FromDiscord<Avatarfighter> @Yardanico ok why didnt it work
15:59:21FromDiscord<Vindaar> sad
15:59:21FromDiscord<Clyybber> he is, I fucked up ircord
15:59:24FromDiscord<Yardanico> @Avatarfighter it did
15:59:28FromDiscord<Clyybber> and he's living in the aftermath
15:59:41FromDiscord<Yardanico> @Clyybber check out my ugly manual parsing for mentions ;)
15:59:46FromDiscord<Clyybber> will do
15:59:48FromDiscord<Avatarfighter> how did ll get pinged if there wasnt a colon 🤔
16:00:03FromDiscord<Yardanico> @Avatarfighter "ping X" or "ping @X" or "@X" also ping
16:00:04Prestigedoes is do username or by nick? I'll try Prestige: test
16:00:13Yardanicocolon syntax is only for start
16:00:17Yardanicoof the str
16:00:21PrestigePrestige: test
16:00:26PrestigeAvahe: Test?
16:00:27FromDiscord<Avatarfighter> rip
16:00:31Prestigeah that worked
16:00:31Yardanicolemme change that
16:00:36Yardanicoit's better if it's display name
16:00:41Yardanicoso people can change it on the server
16:00:55FromDiscord<Avatarfighter> Does this go off of the nick of a person or their discord tag?
16:01:01Prestigevery appreciated
16:01:46Yardanicooh it's quite differen
16:01:54Yardanicodimscord caches users but not members
16:02:01Yardanicousers are just discord users, members are users in the guild
16:02:09Yardanicoand users don't have display name while members do
16:02:13Yardanicolemme check if I can get members from users
16:03:32FromDiscord<Yardanico> @krisppurg if you're around - is there a way to replace "discord.shards[0].cache.users" with something else to get members instead of users (for display name)?
16:03:33FromDiscord<Clyybber> yep, thats ugly
16:03:41FromDiscord<Clyybber> why do you manually skip ping?
16:03:41FromDiscord<Yardanico> @Clyybber but it's manual parsing
16:03:49FromDiscord<Clyybber> yeah, it is
16:03:50FromDiscord<Yardanico> because how would I do it otherwise? :P
16:04:00FromDiscord<Clyybber> looks like what I did for map parsing in my game
16:04:07FromDiscord<Yardanico> pls pr if you see any improvements
16:04:10FromDiscord<Clyybber> manual full of blocks breaks and uglyness
16:04:19FromDiscord<Yardanico> but MANUAL
16:04:31FromDiscord<Clyybber> true
16:04:59FromDiscord<Yardanico> also yes markdown translates to irc_ @Avatarfighter
16:05:04FromDiscord<Clyybber> ~HA~ is test
16:05:05disbotHA~: 11test
16:05:17FromDiscord<Yardanico> lol
16:05:18FromDiscord<Clyybber> not sure what I tried
16:05:20FromDiscord<Clyybber> ~clyybber
16:05:21disbotclyybber: 11a knucklehead
16:05:29FromDiscord<Clyybber> ok, disbot doesn't ping, thats fair
16:05:29Prestigelol
16:05:42Yardanicoclyybber: a knucklehead
16:05:46FromDiscord<Yardanico> bold
16:06:11disruptekping @knucklehead
16:06:15FromDiscord<Yardanico> i'm a bit tired of working on ircord today :P
16:06:20disruptekhow many of you did that ping?
16:06:21FromDiscord<Yardanico> this text parsing
16:06:23FromDiscord<Yardanico> 0
16:06:31FromDiscord<Clyybber> 1366
16:06:34FromDiscord<Yardanico> npeg is easier
16:06:41FromDiscord<Clyybber> lets revert to npeg :P
16:07:00FromDiscord<Clyybber> then people can ping you and all that jazz
16:07:06FromDiscord<Clyybber> You as in "You"
16:07:08Yardanicolet's just make it simpler like currently
16:07:13FromDiscord<dom96> got a link to the code?
16:07:20FromDiscord<Yardanico> pls don't read it
16:07:23FromDiscord<dom96> lol
16:07:32FromDiscord<Yardanico> but it's fully _manual_ parsing
16:07:37FromDiscord<Yardanico> with parseutils
16:07:39FromDiscord<Clyybber> https://github.com/Yardanico/ircord/blob/master/src/utils.nim#L312
16:09:00FromDiscord<dom96> Why are you skipping "ping"?
16:09:18FromDiscord<Yardanico> because I want "ping X" to work
16:09:20FromDiscord<Yardanico> or "ping @X"
16:09:30FromDiscord<Yardanico> and this iterator only yields possible nicknames, not all words
16:09:39FromDiscord<Clyybber> oh, wait did you revert to only at start?
16:09:40FromDiscord<Yardanico> the comment is outdated
16:09:42FromDiscord<Yardanico> @Clyybber yes
16:09:46FromDiscord<Yardanico> not for ping
16:09:58FromDiscord<dom96> Ahh, so you want any word after "ping" to be considered a mention
16:10:21FromDiscord<dom96> The way you're parsing this is definitely not ideal
16:10:30FromDiscord<Yardanico> well, what way would be better?
16:10:39FromDiscord<Yardanico> especially for ping
16:11:06FromDiscord<Yardanico> looks at npeg
16:11:08*clyybber joined #nim
16:11:16clyybberclyybber, clyybber: test
16:11:21FromDiscord<Avatarfighter> Are you pinging of the discord tag?
16:11:22FromDiscord<Clyybber> doesn't work
16:11:28Yardanicoit shouldn't
16:11:30FromDiscord<Clyybber> literally unplayable
16:11:38FromDiscord<Avatarfighter> what is someone has this name Ali Furkan#6666
16:11:40clyybberclyybber: listen here
16:11:44FromDiscord<Avatarfighter> and someone else has ali
16:11:47FromDiscord<Yardanico> @Avatarfighter they're out of luck
16:11:51FromDiscord<Yardanico> you can't ping with spaces anyway
16:11:53clyybberclyybber, Avatarfighter: test
16:11:58FromDiscord<Yardanico> and it would be stupid to add that
16:12:01FromDiscord<Avatarfighter> why
16:12:03FromDiscord<Clyybber> multiping should work
16:12:08FromDiscord<Yardanico> with ", "?
16:12:09*mipri left #nim (#nim)
16:12:10FromDiscord<Avatarfighter> some people have tags with spaces
16:12:11FromDiscord<Yardanico> I don't think anyone ever used it
16:12:14FromDiscord<Yardanico> @Avatarfighter their fault
16:12:19FromDiscord<Avatarfighter> lmao
16:12:20FromDiscord<Yardanico> they can rename on the server and I'll support that
16:12:32FromDiscord<Yardanico> need to change it in ircord
16:12:39FromDiscord<Clyybber> @Yardanico with ' ' and ',' and ', ' and ' , ' and so on
16:12:40FromDiscord<Avatarfighter> :nimAngry:
16:12:41FromDiscord<dom96> multiping should definitely work
16:12:42FromDiscord<Yardanico> but why
16:12:45FromDiscord<Yardanico> @dom96 it does
16:12:46FromDiscord<Clyybber> aka, lets npeg
16:12:47FromDiscord<Yardanico> just not with :
16:12:51FromDiscord<Yardanico> at the start
16:12:54clyybberclyybber clyybber
16:13:00FromDiscord<dom96> but why
16:13:00Yardanicoyes that's a bug :)
16:13:07FromDiscord<Avatarfighter> feature
16:13:09FromDiscord<Yardanico> @dom96 my reasoning is that no one uses that
16:13:18FromDiscord<Yardanico> "A, B: hello"
16:13:19FromDiscord<Yardanico> in IRC
16:13:21FromDiscord<dom96> let me see if I can improve this code quickly
16:13:22FromDiscord<Avatarfighter> yard did u report the funny forum bug you found
16:13:29FromDiscord<Yardanico> ?
16:13:31FromDiscord<Yardanico> ah
16:13:35FromDiscord<Yardanico> it's not even a bug probably
16:13:47FromDiscord<Avatarfighter> my bad, the « feature » you found
16:13:50FromDiscord<Yardanico> @dom96 if you're a moderator, you can set other people as moderators as well
16:13:53FromDiscord<Yardanico> on the forum
16:13:56FromDiscord<Yardanico> idk if it's a feature or not
16:14:05PrestigeI wish we had a way to tab complete discord names in IRC
16:14:15Yardanicoit's not possible unless freenode makes a network-wide bridge somehow
16:14:25FromDiscord<dom96> meh, not really a bug
16:14:31FromDiscord<Avatarfighter> really?
16:14:38PrestigeOr if we made a plugin for our irc client and did something crazy
16:14:46Yardaniconot anything crazy
16:14:49PrestigeOR... everyone just comes to irc
16:14:50Yardanicojust download member list
16:15:00FromDiscord<dom96> so why do you not have access to all the nicks in a particular server?
16:15:05FromDiscord<Avatarfighter> Prestige: just come to discord smh
16:15:08Prestigehaha
16:15:12FromDiscord<dom96> Does Discord not give this info?
16:15:18FromDiscord<Avatarfighter> it does
16:15:23FromDiscord<Yardanico> @dom96 I do, but if we check each word we'll get many false positives
16:15:35FromDiscord<Yardanico> since a lot of people have "common" nicknames like you
16:15:46FromDiscord<Yardanico> so I restrict it to @ or "ping X" or "X:"
16:16:03FromDiscord<Yardanico> we even have an user with the display name "admin" on the server
16:16:13FromDiscord<Clyybber> DID you know. that npeg compiles to similar code
16:16:24FromDiscord<Yardanico> yass
16:16:25FromDiscord<Avatarfighter> that doesnt work with display names with spaces in them 😦
16:16:27FromDiscord<Clyybber> so you don't have to see the shitcode
16:16:33FromDiscord<Yardanico> @Clyybber maybe I can simplify your npeg
16:16:35FromDiscord<Yardanico> stuff
16:16:40FromDiscord<Clyybber> its quite simple
16:16:50FromDiscord<Yardanico> leadingMentions maybe can be simplified
16:17:06FromDiscord<Clyybber> its just the non-greedy
16:17:11FromDiscord<Clyybber> thats a bit "complex"
16:17:21FromDiscord<dom96> @Yardanico I have a common nickname?
16:17:23FromDiscord<Avatarfighter> if i use a specific string multiple times in a proc does that get optimized into a single constant string that is passed to my procs?
16:17:32FromDiscord<dom96> oh, you mean "You"
16:18:24FromDiscord<Clyybber> alternatively, if possible we could ping by nick and make the bot rename people with names too short
16:18:54FromDiscord<dom96> but you know, I think it's fair to mention these "common" nicks
16:18:56FromDiscord<dom96> screw it
16:18:59FromDiscord<Avatarfighter> lmao
16:19:11FromDiscord<dom96> I guess you can filter out "you" and some of the ones that crop up
16:19:16FromDiscord<Avatarfighter> just ban the people with common nicks smh
16:19:19FromDiscord<dom96> since that would highlight literally every word in ever message
16:19:34FromDiscord<Yardanico> or just ask people to rename
16:19:35FromDiscord<dom96> but stop making this code complex because of these silly people
16:19:36FromDiscord<Yardanico> and use display names
16:19:44FromDiscord<dom96> just blacklist their nicknames if you have to
16:19:52FromDiscord<Yardanico> admins can rename people on servers
16:20:08FromDiscord<dom96> That way you can very easily do these highlights
16:21:04leorize[m]do you know that we have someone with the nick literal on irc? :p
16:21:20FromDiscord<Yardanico> possibleMentions = msg.split(Whitespace + {':', '@'})
16:21:20FromDiscord<Rika> that is unfortunate
16:21:24FromDiscord<Yardanico> then this?
16:21:33FromDiscord<Yardanico> and then just check if a user like that exists on a server to add ping
16:23:31*waleee-cl joined #nim
16:24:46FromDiscord<Clyybber> @Yardanico also ',
16:24:55FromDiscord<Yardanico> okay
16:25:32FromDiscord<Clyybber> and then maybe go through possible mentions and discard all thats < 4 chars
16:25:46FromDiscord<Clyybber> oh, its an iterator anyways, so just do it live
16:26:30FromDiscord<Rika> i have five pings but no channels unread wtf discord
16:26:34FromDiscord<Clyybber> hmm, actually. We should still allow < 4 chars if prefixed with `@`
16:26:42FromDiscord<Yardanico> @Clyybber let's not
16:26:43FromDiscord<Yardanico> :)
16:26:46FromDiscord<Clyybber> why?
16:26:54FromDiscord<Yardanico> again too much complication
16:26:57FromDiscord<Clyybber> its simple
16:26:59FromDiscord<Yardanico> no
16:27:00FromDiscord<Clyybber> let me make a PR
16:27:02FromDiscord<Yardanico> we split by @
16:27:06FromDiscord<Clyybber> no problem
16:27:12FromDiscord<Yardanico> ah I guess you can not split and check @
16:27:12FromDiscord<Yardanico> yeah
16:27:16FromDiscord<Clyybber> nah nah
16:27:16FromDiscord<Clyybber> not that
16:27:21FromDiscord<Clyybber> simpler
16:27:30FromDiscord<Yardanico> rrooooooooo
16:27:52FromDiscord<Clyybber> should I remove the manual parsing code or do you want to keep it around?
16:27:58FromDiscord<Yardanico> I already removed
16:28:01FromDiscord<Yardanico> I made commits already
16:28:02FromDiscord<Clyybber> ah k
16:30:01FromDiscord<Yardanico> get your hacktoberfest t shirt or a tree in 2 weeks
16:30:50disruptekgimme the tree.
16:31:01FromDiscord<Clyybber> this
16:31:07Yardanicodisruptek: they don't give it to you :(
16:31:11FromDiscord<Yardanico> they plant it
16:31:15disruptekwut
16:31:23Yardanicoyes
16:31:26disrupteki don't need help planting my wood.
16:31:29FromDiscord<Clyybber> https://github.com/Yardanico/ircord/pull/7
16:31:29disbotSupport explicit ping for short usernames
16:32:01FromDiscord<Yardanico> oh h
16:32:24ForumUpdaterBotNew thread by Slobin: 1.4.0 failed with old-ish gcc because of NIM_STATIC_ASSERT bug, see https://forum.nim-lang.org/t/6952
16:34:28disruptekyou guys are nuts with this discord shit.
16:34:40Yardanicodisruptek: FIIIIIIIIIWEKKKKR<<<<<< TYKLTK??
16:34:56disruptek:disruptek:
16:35:00Yardanicono work :(
16:35:01Yardaniconeed discord
16:35:04Yardanicobtw you have discord account
16:35:06Yardanicoyes
16:35:14disruptekwhat?
16:35:18Yardanicoyes
16:35:20disruptekyes
16:35:21FromDiscord<Yardanico> you do
16:35:29disruptekyou: ping
16:35:53FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767425728114458654/unknown.png
16:36:11*FromDiscord quit (Remote host closed the connection)
16:36:24disruptekwhat is that?
16:36:38Yardanicoyou?
16:36:40*FromDiscord joined #nim
16:36:44Yardanicofd';
16:36:50Yardanicoyardanico hi
16:36:54Yardanicovindaar hi
16:37:00Yardanicoyou hi
16:37:00FromDiscord<Vindaar> oh hi it works
16:37:00disruptekyou you @you ping ping you ping you :you ping :ping you: ping ping you:
16:37:04Yardanicono
16:37:05Yardanico4 char limit disruptek
16:37:16Yardanicoactually
16:37:18Yardanicoit should work
16:37:40FromDiscord<Recruit_main707> oh, disruptek joined right before Hytak?
16:37:49FromDiscord<Vindaar> hytak?
16:37:56Yardanicohytak ?
16:38:10FromDiscord<Recruit_main707> after, i know him from another server
16:38:33disruptekping you hytak @hytak you ping ping: hytak :hytak @hytak: ping hytak: ping you @you ping you hytak: :hytak: ping you hytak:
16:38:50*lbart quit (Read error: No route to host)
16:38:58FromDiscord<Vindaar> today is a bizarre day
16:39:03*lbart joined #nim
16:39:03*lbart quit (Changing host)
16:39:03*lbart joined #nim
16:40:28FromDiscord<Yardanico> https://media.discordapp.net/attachments/371759389889003532/767426882533851156/unknown.png
16:40:50Yardanicoping disruptek @disruptek disruptek ping ping ping disruptek @disruptek disruptek ping ping ping disruptek @disruptek disruptek ping ping
16:43:35FromDiscord<Hytak> What
16:43:39disrupteklol
16:43:48disrupteki was just thinking about you.
16:45:29FromDiscord<Hytak> @Recruit_main707 why did i get pinged?
16:48:14FromDiscord<Vindaar> > What↵thanks for showing me I'm not alon
16:48:17FromDiscord<Vindaar> e
16:48:24FromDiscord<Recruit_main707> disruptek's humor
16:49:11FromDiscord<Recruit_main707> they ve been messing around with irc to discord pings
16:49:53FromDiscord<Yardanico> :nimRawr::nimMono::nimGlow2::nimGlow::nimDog::nimble3::nimble2::nimble::nimAngry::nim3::nim2::nim1::disruptek:
16:50:05disruptekclyybber: you busy?
16:57:46disruptekshashlick: i was pinging you because of some misbehavior with nimble localdeps; i dunno if you will consider it a bug, but i had a nim.cfg with --clearNimblePath above my project and localdeps didn't give me any feedback. all my tests were failing to import a nimbledeps requirement.
17:01:59FromDiscord<dom96> Anyone managed to get exceptions to work with Arduino/ESP? I'm seeing `system module needs: raiseExceptionEx`
17:02:29FromDiscord<dom96> Ping Zevv, I saw in IRC logs you faced similar issues
17:05:48FromDiscord<Clyybber> disruptek; Sorry, I don't get pinged
17:05:54FromDiscord<Clyybber> kidding, wassup
17:06:08FromDiscord<Avatarfighter> :disruptek: moment
17:06:57disruptektrying to debug an assignment. it's a norm bug involving iterators, mangling, options, and seqs. lots of seqs.
17:07:14FromDiscord<dom96> hm, seems --os:any is the key
17:07:26FromDiscord<Clyybber> disruptek: have fun
17:07:26FromDiscord<Yardanico> you didn't use it? 🤔
17:07:28FromDiscord<Clyybber> lol
17:07:37FromDiscord<Avatarfighter> @dom96 for getting exceptions to work on ESP/Arduino?
17:07:38FromDiscord<Clyybber> disruptek: Did you implement what we talked about yesterday?
17:07:48FromDiscord<dom96> I used --os:standalone
17:07:50*clyybber quit (Quit: WeeChat 2.9)
17:07:52FromDiscord<Avatarfighter> interesting 😄
17:08:01FromDiscord<Avatarfighter> i didn't even know that was a valid switch
17:08:15FromDiscord<Yardanico> @dom96 that's outdated :)
17:08:24FromDiscord<Yardanico> --os:any is the new hotness since 1.2
17:08:25*Kiloneie joined #nim
17:08:26disruptekno. plus, i'm not sure it will work. because cpp signatures will use the type argument and i'm not sure typedef will come into play.
17:08:27FromDiscord<Yardanico> or 1.0
17:08:28FromDiscord<dom96> does --os:any also make use of panicoverride?
17:08:34FromDiscord<Yardanico> no
17:08:41FromDiscord<dom96> then where will the stderr go? D:
17:08:48*Kiloneie quit (Client Quit)
17:09:13disruptekclyybber: but this is the last package failure, and nim suite passes my tests locally.
17:09:32*abm joined #nim
17:11:59FromDiscord<Yardanico> @dom96 not sure, I didn't dive deep
17:12:32FromDiscord<Yardanico> but it wasn't hard to make nim programs run on Kolibri OS with --os:any --gc:arc since it had a C compiler with newlib (their lightweight libc) :)
17:13:17FromDiscord<dom96> yeah, that's not exactly embedded 😉
17:13:31FromDiscord<dom96> well, it fails spectacularly to compile
17:13:34FromDiscord<dom96> so --os:any seems out
17:13:59FromDiscord<dom96> even though Zevv recommends it here: https://github.com/nim-lang/Nim/pull/13237
17:14:00disbotUpdated 'nim for embedded systems' section to use --os:any and --gc:arc
17:14:02FromDiscord<dom96> and so do our docs now...
17:14:45FromDiscord<Yardanico> well it can run on embedded
17:14:53FromDiscord<Yardanico> there are posts on the forum where people used it for that
17:14:57FromDiscord<Yardanico> but our search isn't the best
17:15:21FromDiscord<Yardanico> e.g. see https://forum.nim-lang.org/t/6236
17:15:28FromDiscord<dom96> I can find Nesper, which runs on FreeRTOS as far as I can see
17:15:36FromDiscord<dom96> Not what I'm after either 😛
17:18:27disruptekcan we see the compilation failure?
17:19:16FromDiscord<Clyybber> disruptek: tests passing is one thing, but it needs to get rid of ugly hacks
17:19:23FromDiscord<Clyybber> and you said you didn't solve the problem
17:19:27FromDiscord<Clyybber> so how can it pass
17:19:37FromDiscord<Clyybber> only by overfitting the tests I assume
17:19:53FromDiscord<dom96> disruptek: https://gist.github.com/dom96/7a3b3fa98f7d5c3009bbeb6d4988ce1b
17:20:06disrupteki told you yesterday that i had it solved. just not the way i wanted.
17:20:14FromDiscord<Yardanico> ah this is easy to sove @dom96
17:20:18FromDiscord<Yardanico> -d:nimEmulateOverflowChecks
17:20:27FromDiscord<Clyybber> disruptek: You didn't tell me how
17:20:33FromDiscord<Clyybber> it was something with a boss switch :D
17:20:44disruptekby just punting on procs and tuples.
17:20:56disruptekyeah, the boss switch helps.
17:21:30FromDiscord<Yardanico> and overflow checks aren't really related to embedded
17:21:50disruptekanyway, i'm not saying it's mergable. just trying to get it in a position to refactor.
17:22:53FromDiscord<dom96> ooh
17:23:13FromDiscord<dom96> thx Yardanico ❤️
17:23:14*narimiran joined #nim
17:23:40FromDiscord<dom96> Also, looking at https://github.com/nim-lang/Nim/pull/13088 it seems I can override `unhandledExceptionHook`
17:23:42disbotAdded 'ansic' os support for minimal (embedded) targets
17:24:10FromDiscord<Yardanico> Yeah
17:24:15FromDiscord<Yardanico> I've been experimenting with it a bit
17:24:25FromDiscord<Yardanico> There's a lot of "hidden" stuff :)
17:26:58FromDiscord<Clyybber> disruptek: Ok, makes sense
17:27:58FromDiscord<dom96> @Yardanico please document these things when you find them 🙂
17:35:55*madpata quit (Ping timeout: 258 seconds)
17:39:00FromDiscord<dom96> wow, that's weird. if as an expression causes a crash on the ESP
17:39:07FromDiscord<dom96> I moved it out into a statement and it works
17:41:28Zevv'lo
17:41:40Zevvwhat's the apparent problem with --os:any?
17:41:49disrupteknone.
17:41:58ZevvI get mails from dom saying it's broken?
17:42:04Zevvand we should go back to standalone?
17:42:16disruptekrude.
17:42:31Zevvthat never bothered me. what bothers me is that it is broken?
17:43:00Zevvbecause for me it runs on anything I tried up to now
17:43:32disruptekdocs omit mention of omitting overflow checks.
17:43:45Zevvwhy omit them?
17:44:20disruptekbecause they may not be supported.
17:44:29*enthus1ast quit (Ping timeout: 272 seconds)
17:44:47Zevveuh, it is the C compiler itself that emits the '__builtin_ssub_overflow' and the like
17:44:50Zevvand then complains
17:44:51Zevvhow is nim to blame?
17:45:04FromDiscord<Yardanico> uhh
17:45:05disruptekwell, you can define nimEmulateOverflowChecks.
17:45:08FromDiscord<Yardanico> zevv in this case you're mistaken :)
17:45:15ZevvDoes Nim generate those?!
17:45:17FromDiscord<Yardanico> nim uses these builtins explicitly in the nimbase.h
17:45:18FromDiscord<Yardanico> yhes
17:45:38disruptekwe have this new thing where the c compiler compiles code that nim generates.
17:46:02YardanicoZevv: https://github.com/nim-lang/Nim/blob/devel/lib/nimbase.h#L571
17:46:14Zevvwell pardon me princess. usually it's the compiler putting these __builtin's in after recognizing from normal C code what you're trhing to do
17:46:27Zevvit's not common to explictly write them down
17:46:32Yardanicoah yes it happens too
17:46:35disruptekYardanico: yeah, pardon him, princess.
17:46:36Yardanicowhen gcc generates some builtins
17:46:41YardanicoZevv: i pardon you my prince
17:46:42Zevvbut then again: builtinOverflow should be smarter? or dom can disable that?
17:46:47Yardanicoyou can
17:46:51Yardanico-d:nimEmulateOverflowChecks
17:46:53Yardanicoand he already did that
17:47:00disruptekit can be smarter, yes.
17:47:03ZevvRight.
17:47:04Yardanicomaybe he just didn't update the github comment and rushed it a bit :)
17:47:23disruptekthe problem is that i'm not sure the rest of our code can know the result of that ensmartening.
17:47:49Zevvwell, maybe Nim should know when to and when not to emit that. Because if a particular compiler does not have builtins, well, things break, right?
17:48:19disruptekit does know, via the switch. do you think we should run the compiler before, uh, running the compiler?
17:49:08disruptekwe could supply both code paths but i think it's a slippery slope. i'd rather get direction from the user.
17:49:24ZevvI must admit I find it funny these things are so explicitly emitted, I would not have expected these things being portable enough not to have borked earlier
17:49:48Zevvsure, that's sane, and we could just add a note about that. But I don't understand how this is related to --os:any and not to --os:standalone
17:50:03disrupteki don't think it is.
17:50:15Zevvdom96 seems to suggest that in the ticket
17:50:45disruptekwell, i really haven't followed this stuff. i'm currently trying to make a noose with the compiler's code generator.
17:51:37disrupteki would /love/ to be able to conditionally use meowhash in stdlib, for example. it's a similar problem.
17:52:24*abm quit (Ping timeout: 240 seconds)
17:52:33FromDiscord<dom96> I'm still trying to get the exceptions to work
17:52:45Zevvgoto exceptions?
17:53:01FromDiscord<dom96> I tried all options
17:53:13FromDiscord<dom96> (setjmp seems to trigger a bug in --os:any)
17:53:45Zevvwhat bug?
17:53:52FromDiscord<dom96> https://github.com/nim-lang/Nim/blob/devel/lib/system/excpt.nim#L557
17:54:00FromDiscord<dom96> I don't even know if it makes sense to use it
17:54:17FromDiscord<dom96> But I think it's likely we should add a `hostOS != "any"` in there
17:54:56Zevvhm that's one nasty `if`
17:55:58FromDiscord<dom96> In any case, I guess `goto` is what I should be using
17:56:08disruptekit is.
17:56:57FromDiscord<dom96> Ahh, I think the reason it's not working is because I forgot to call the module setup for that darn module
17:57:38*enthus1ast joined #nim
17:58:51Zevvjust like my mama always told you. "boi", she said, "don't you ever forget: just always call your module setups before using your darn modules"
17:58:57Zevvbut what did I know, right
17:59:08FromDiscord<dom96> also, another useful flag: -d:noSignalHandler
17:59:12disruptekyou mama is a helluva woman.
17:59:21Zevvyeah she is man, she is
18:05:40FromDiscord<dom96> hmmmm
18:07:12FromDiscord<dom96> yeah, `unhandledExceptionHook` doesn't seem to work
18:09:07FromDiscord<dom96> looking at the C code, it looks like it's only called from `nimTestErrorFlag`
18:09:15FromDiscord<dom96> which isn't called anywhere
18:10:31FromDiscord<Yardanico> It's only called when you have possible exceptions
18:10:44FromDiscord<dom96> there is also an `onUnhandledException`
18:10:48FromDiscord<dom96> why do we have both? lol
18:10:55FromDiscord<Yardanico> nimTestErrorFlag is the goto exceptions checking proc
18:12:02FromDiscord<dom96> and `onUnhandledException` also isn't called anywhere...
18:12:32*arecacea1 quit (Remote host closed the connection)
18:12:39*user0 joined #nim
18:13:19*arecacea1 joined #nim
18:13:39*kenran joined #nim
18:13:57FromDiscord<dom96> so where is nimTestErrorFlag supposed to be used?
18:16:52FromDiscord<dom96> globalHook works
18:23:35FromDiscord<lqdev> this has probably been asked before, but i wonder why `floorMod` isn't the default `mod`
18:23:51FromDiscord<lqdev> performance? compatibility?
18:25:50FromDiscord<Clyybber> no particular reason I think
18:26:08FromDiscord<Clyybber> huh, how did the docs regress on the CSS?
18:26:26FromDiscord<Clyybber> oh wait
18:26:36FromDiscord<Clyybber> devel docs have the search field look right
18:26:39FromDiscord<Clyybber> but 1.4 docs don't
18:27:32FromDiscord<dom96> Anyway... I guess I'll just use the global hooks for now
18:27:34FromDiscord<dom96> I submitted https://github.com/nim-lang/Nim/issues/15627
18:27:36disbotunhandledExceptionHook does not work ; snippet at 12https://play.nim-lang.org/#ix=2BaQ
18:27:48FromDiscord<Clyybber> narimiran: ping
18:33:14*lbart quit (Ping timeout: 260 seconds)
18:33:46disruptekResult -> result
18:34:34*user0 quit (Ping timeout: 256 seconds)
18:39:05*lbart joined #nim
18:39:05*lbart quit (Changing host)
18:39:05*lbart joined #nim
18:41:16ehmryZevv: i tried to structure my grammer in a way that inlining wouldn't happen, maybe my problem is too much rule nesting?
18:42:43ehmryI took the operators from an ABNF and there presedence is done with nesting
18:44:49*hnOsmium0001 joined #nim
18:49:23Zevvcan you show your grammar?
18:49:44disruptekyou got a thing for older women?
18:50:10Zevvthat depends
18:54:48ehmryZevv: https://git.sr.ht/~ehmry/dhall-nim/tree/staging/src/dhall/parse.nim - translated from https://github.com/dhall-lang/dhall-lang/blob/master/standard/dhall.abnf
18:56:04ehmryits quite large
18:59:15disruptekthat's what she said.
18:59:32disruptekclyybber: dude, i know why we Result instead of result.
18:59:40disruptekit's such a hack.
19:01:01FromDiscord<Clyybber> yes it is
19:01:03*opal quit (Ping timeout: 240 seconds)
19:02:45disruptekso why does it work?
19:04:41*kenran quit (Ping timeout: 256 seconds)
19:04:48*opal joined #nim
19:06:07FromDiscord<haxscramper> How I can pass type parameter to template using `[T]` instead of passing it as regular argument? E.g. I want to call `myTemplate[Type1, Type2](arg1, arg2)`. I managed to get it working for templates without arguments, but when I add `untyped` parameter behaviour changes - https://play.nim-lang.org/#ix=2Bb9
19:17:16*Kaivo quit (Ping timeout: 260 seconds)
19:19:31*Kaivo joined #nim
19:21:16disruptekhow is a generic supposed to work when the argument is untyped?
19:25:11FromDiscord<haxscramper> Same as template without parameters I guess? E.g. I don't want to infer it from argument types, just call with `temp[Type]` instead of `templ(Type)` syntax
19:26:02disrupteki don't think sigmatch works that way, but i'm not very familiar with the frontend.
19:27:41*abm joined #nim
19:35:59*lritter quit (Quit: Leaving)
20:01:35FromDiscord<tinygiant> sent a code paste, see https://paste.rs/OPt
20:04:11leorize[m]Yardanico you gotta look at the paste generated by the message ^
20:04:14leorize[m]it has weird characters
20:05:39leorize[m]@tinygiant that way of using peg will just match it afaict
20:06:00leorize[m]also you should try npeg :P
20:06:29disruptekleorize[m]: what's the gist of your idea for building out more builds?
20:06:34FromDiscord<tinygiant> Is there a way (with normal nim peg) that will continue matching the remaining non-consumed text? I'm considering npeg, but want to do as much as I can with the native tools first. If I can't, then I can't.
20:06:46disrupteknpeg is native.
20:07:06FromDiscord<tinygiant> Ok, thought it was a dependency.
20:07:10disruptekif you match remaining text, it /is/ consumed.
20:07:19disrupteknpeg is a dependency. also, don't be afraid of dependencies.
20:07:28disrupteksome of the best software exists outside of the stdlib.
20:07:49leorize[m]disruptek: you mean the nightlies build numbers?
20:08:04FromDiscord<tinygiant> Not afraid of them, I use several, just try to minimize when I can. So in peg, once the first match is made, the rest of the text string is consumed?
20:08:05disruptekyou said something about scaling up to support more platforms.
20:08:27disruptekpeople here mostly use npeg. 😉
20:10:29leorize[m]disruptek: I recently played with crosstool-ng, so I can use that to build cross compilers and then use those to generate the 3rd party deps needed by the compiler
20:10:52FromDiscord<scott> is there a way to compose functions/procs, like `zip(a, b).map(map |> runes)` or something?
20:10:57leorize[m]more importantly I can automate them, so ideally I'd use a repository to store all the artifacts and the nightlies system just fetch them from there
20:11:01*luis_ joined #nim
20:11:35disruptekscott: you can define your own operators, sure.
20:11:42leorize[m]@scott if you can explain to me what that `|>` does I might be able to tell you
20:12:36FromDiscord<scott> it would be like... `zip(a, b).mapIt(it.mapIt(it.runes))`
20:12:38disruptekleorize[m]: what about shashlick's jbb stuff? or the other one.. i forget the name. calvin or something.
20:12:45disruptek!repo zero_functional
20:12:46disbothttps://github.com/mikebelanger/nim_functional_benchmarks -- 9nim_functional_benchmarks: 11Comparing performance between nim's functional libraries: sequtils, iterutils and zero_functional 15 0⭐ 0🍴
20:12:48FromDiscord<scott> I could just do that actually
20:12:54disruptek!repo zerofunctional
20:12:54disbotno results 😢
20:12:56disruptekwtf
20:13:17disruptekit's like the sort metrics got hosed a couple weeks ago.
20:13:38FromDiscord<Elegant Beef> So anyone know how to convert objects to binary without casting? 😄
20:13:53disruptekthey are already binary.
20:14:17FromDiscord<Elegant Beef> I meant convert to a binary string
20:14:19FromDiscord<scott> @scott ↵↵Nope, this doesn't work 😦
20:14:53FromDiscord<Elegant Beef> Cause nimscript cant cast object pointers to ptrs of strings, so string streams cannot work 😄
20:15:12FromDiscord<scott> actually I don't think I need to do that, I can just use `zip(a, b).foldl`
20:15:26FromDiscord<scott> nvm
20:15:44disruptekbeef: just copy their memory.
20:15:52FromDiscord<Elegant Beef> copymem doesnt exist in nimscript
20:15:58disruptekdon't fuck with me.
20:16:25*narimiran quit (Ping timeout: 264 seconds)
20:16:34leorize[m]disruptek: julia binary builder only covers a small amount of architectures/os
20:16:39disruptekwhat /can/ you do that necessitates using nimscript?
20:17:01disruptekleorize[m]: will you use your artifacts for all builds? or just lesser builds?
20:17:30FromDiscord<Elegant Beef> I mean the entire point of what im doing is enabling easy usage of nimscript in nim projects, so you can have users script behaviours at runtime without recompilation
20:17:53disruptekdoesn't sound all that useful if i can't even use streams.
20:17:56FromDiscord<Elegant Beef> Pmunch is interested in it for his WM
20:18:01FromDiscord<Elegant Beef> Well yea that's the thing
20:18:12FromDiscord<Elegant Beef> At the very least i need to be able to use streams!
20:18:23leorize[m]disruptek: yea I'm gonna start using nightlies artifact now that I programmed in a simple way to fetch the latest ones
20:18:27FromDiscord<Elegant Beef> I looked at the VM code last night and had 0 clue where to start
20:18:44leorize[m]Beef: you can use the VM callback system to register procs that shell out to real Nim.
20:18:54disruptekit took years to obfuscate the vm code to that extent.
20:19:05FromDiscord<Elegant Beef> What do you mean leorize?
20:19:09disruptekyou can, but this is not a good idea, either.
20:19:27FromDiscord<Elegant Beef> I do currently have a functional proof of concept
20:19:29disruptekyou'd have to impl callbacks for, like, sockets, streams, memory, etc.
20:20:05FromDiscord<Elegant Beef> I just need one way of getting the data at a pointer!
20:20:18disruptektell pmunch he can twiddle strings and add integers. if he wants more, he can impl the rest.
20:20:28leorize[m]https://github.com/nim-lang/Nim/blob/devel/compiler/scriptconfig.nim
20:20:37FromDiscord<Elegant Beef> Well json works for most types
20:20:55disruptekwho do i have to blame for megatest?
20:20:59disruptekkrux, right?
20:21:09disruptekdamnit, krux!
20:21:29leorize[m]you got some issues with megatest?
20:21:48disruptekit's the only remaining defect in mangling.
20:21:53FromDiscord<Elegant Beef> Wait leorize this is for passing code to nim, no?
20:22:25leorize[m]that's for overriding a proc when it's called by the VM
20:22:47FromDiscord<Elegant Beef> I dont quite know how that helps
20:23:02FromDiscord<Elegant Beef> Doesnt it still require the nim compiler?
20:23:04*solitudesf quit (Ping timeout: 240 seconds)
20:23:07disruptekthe idea is that you shim procs so they can be run from inside the vm.
20:23:17FromDiscord<Elegant Beef> Well that's what i'm already doing
20:23:22*xet7 quit (Quit: Leaving)
20:23:27FromDiscord<Elegant Beef> Although i'm using implementroutine
20:23:31disruptekleorize is a little mad. be careful following his advice.
20:23:55FromDiscord<tinygiant> sent a code paste, see https://play.nim-lang.org/#ix=2Bbv
20:24:08FromDiscord<Elegant Beef> Clyybber was just typing, i'm sure i can convince him to implement casting from object to a `ptr string` in the vm since he starred my repo 😛
20:24:20leorize[m]ping Zevv
20:24:35disrupteksounds easy. i'm still waiting for him to fix the compiler so we can finish cps.
20:24:38leorize[m]Beef: good luck fighting with disruptek for that right
20:25:26FromDiscord<Elegant Beef> Well if he doesnt do it, i might actually have to understand what the hell the VM is doing in the big ol' "cast case statement"
20:25:44leorize[m]@tinygiant seems to work here: https://play.nim-lang.org/#ix=2Bbw
20:25:51leorize[m]have you installed npeg?
20:26:42*xet7 joined #nim
20:26:50FromDiscord<tinygiant> Yep, I have it, no error on the import. Just being stupid tonight. I called my test file npeg.nim, so it was attempting to import itself. Nice, going, tiny.
20:27:19FromDiscord<Elegant Beef> Although i'm assuming the fact this casting isnt implemented is it's not that simple
20:27:34FromDiscord<tinygiant> Thanks for the help, I'll start working through the specifics of npeg over the next day.
20:27:39disruptekit's the work of an afternoon.
20:28:08FromDiscord<Elegant Beef> Ah so it's about a month or two for me
20:30:26disruptekmangling will be over 100 commits and like 3 months by the time i get it merged.
20:30:40disruptekactually, it's already over 4 months.
20:31:09leorize[m]do we have a spec on mangling or are you playing whack-a-mole until all bugs are sorted out?
20:31:31disruptekno spec.
20:31:53FromDiscord<Elegant Beef> Also considering `opcCastIntToPtr` is the case, i assume i'd need to make a new case
20:31:56FromDiscord<tinygiant> An afternoon without a farm and three kids. Everything for me ends up being days. But, that's why it's a hobby.
20:32:32disrupteksounds like my heroin hobby.
20:32:59disruptekwell, except for the farm part.
20:34:07FromDiscord<Clyybber> @Elegant Beef what cast do you want to allow?
20:34:39Zevvping leorize[m]
20:34:54FromDiscord<Elegant Beef> I want to be able to get data at a pointer so either to an `ptr UncheckedArray[byte]` or `ptr string` from a `ptr object`
20:35:36FromDiscord<Clyybber> ptr object -> ptr string sounds like a bad idea
20:35:50FromDiscord<Elegant Beef> Well that's what's done for the JS side
20:35:57FromDiscord<Elegant Beef> I really just need someway to get the data at a point
20:36:01FromDiscord<Clyybber> huh?
20:36:07FromDiscord<Clyybber> but the string is a pointer itself
20:36:16FromDiscord<Clyybber> you mean cstring?
20:36:24FromDiscord<Elegant Beef> https://media.discordapp.net/attachments/371759389889003532/767486256124002324/unknown.png
20:36:52FromDiscord<Clyybber> ah gotcha
20:37:21FromDiscord<Elegant Beef> Kinda hard to get the bitstream as a string without a way of converting types to bytes 😄
20:37:51FromDiscord<Clyybber> true
20:38:09FromDiscord<Clyybber> I think this only works on js tho
20:38:13FromDiscord<Elegant Beef> Yea
20:38:23FromDiscord<Clyybber> It shouldn't work in C
20:38:37FromDiscord<Elegant Beef> as i said Uncheckedarray would be fine aswell
20:38:43FromDiscord<Clyybber> yeah thats best
20:38:50FromDiscord<Clyybber> or array
20:39:13FromDiscord<Elegant Beef> Just anything, i want to get off this json train and use binary transmission!
20:39:39FromDiscord<Clyybber> stupid idea but does ptr char work?
20:39:57FromDiscord<Elegant Beef> Nope same error
20:40:11FromDiscord<Elegant Beef> I dont think nimscript supports casting objects at all
20:40:15FromDiscord<Elegant Beef> `opcCastIntToPtr: regs[rb].node.typ: tyObject`
20:41:26FromDiscord<Elegant Beef> I only say that as the opcodes are rather direct https://media.discordapp.net/attachments/371759389889003532/767487525282381835/unknown.png
20:42:38FromDiscord<Clyybber> yeah lol
20:45:28FromDiscord<scott> Trying to figure out if I don't know the syntax yet or nim doesn't yet support this feature: `proc((a, b): Tuple[Rune, Rune]) = a == b`
20:45:39FromDiscord<scott> i.e. tuple desconstruction
20:46:24FromDiscord<lqdev> nope
20:46:28FromDiscord<lqdev> `let (a, b) = tup`
20:46:35FromDiscord<lqdev> also it's `tuple` not `Tuple`
20:47:00FromDiscord<lqdev> tuple deconstruction is not directly supported in proc params
20:47:38FromDiscord<scott> 👍 thanks.
20:52:11FromGitter<deech> Is there a way to parameterize an object with a concept? eg. `type O[MyConcept] = object c: MyConcept`?
20:53:27FromDiscord<Clyybber> type O[T: MyConcept] = object\n c: T
20:53:29FromDiscord<Clyybber> should work
20:53:36FromGitter<deech> Awesome.
20:56:47FromDiscord<Clyybber> @Elegant Beef there is a bit of a complexity here though
20:57:20FromDiscord<Clyybber> because what layout should you choose
20:57:23FromDiscord<Clyybber> what alignment etc
20:58:57FromDiscord<Elegant Beef> I say jedi
21:01:19FromDiscord<Clyybber> ok sith
21:02:11*luis_ quit (Quit: luis_)
21:06:06*TomDotTom joined #nim
21:06:47FromDiscord<Elegant Beef> All i know is the objects need to be the same in nim as nimscript 😛
21:15:33FromDiscord<Clyybber> hmm, you could perhaps use the sizeofalignoffsetimpl
21:15:39FromDiscord<Clyybber> yeah that should work
21:16:52leorize[m]doesn't the only thing the VM care about is the fields?
21:17:13FromDiscord<Clyybber> yeah, but beef wants to cast objects to binary
21:17:23leorize[m]I have my doubt that the VM construct the exact object with all the necessary alignments
21:17:38FromDiscord<Clyybber> thats what we would use sizeofalignoffsetimpl
21:18:00FromDiscord<Clyybber> in the cases where that gives up, we simply error
21:18:53leorize[m]what if the object contains yet-another-object?
21:19:13leorize[m]and even worse, what is this yet-another-object is a magic one, like seq/strings?
21:19:34leorize[m]I'm pretty sure the implementation of those doesn't translate
21:19:39FromDiscord<Clyybber> error out on seq and strings
21:25:41FromDiscord<Elegant Beef> It'd be hideous but i could use the VMArgs.getstring
21:26:32leorize[m]can't you try to find an another way around casting?
21:26:57FromDiscord<Elegant Beef> What are the avenues to get the data at a pointer?
21:27:52leorize[m]idk, check how the vm implements refs
21:37:26*arecacea1 quit (Remote host closed the connection)
21:37:59*arecacea1 joined #nim
21:39:21FromDiscord<notchris> Hello friends, good evening/afternoon
21:42:19FromDiscord<Elegant Beef> Hello
21:42:22*TomDotTom quit (Ping timeout: 246 seconds)
21:48:09*vicfred joined #nim
21:49:56FromDiscord<scott> hi @notchris
21:49:56FromDiscord<neow> is there something like this https://goreportcard.com/report/github.com/zyedidia/micro for nim?
21:50:07FromDiscord<notchris> hiya @scott
21:50:35FromDiscord<notchris> @neow https://nimble.directory/search?query=terminal
21:50:52FromDiscord<scott> is there any reason you have to do `raise ValueError.newException("xyz")` instead of `raise ValueError.new("xyz")`?
21:51:26FromDiscord<neow> @notchris I meant the goreportcard tool, not the editor 😅
21:51:34FromDiscord<notchris> Ohhh
21:51:53FromDiscord<notchris> @scott newException is specifically for an exception, but new is already a proc of system
21:51:55FromDiscord<Elegant Beef> There is not afaik
21:52:10FromDiscord<notchris> @scott at least thats my understanding
21:52:33FromDiscord<scott> yeah but why doesn't exception just overload `new` like everything else?
21:52:44FromDiscord<notchris> That I am not sure about
21:56:08FromDiscord<scott> Very much liking the language so far. https://exercism.io/my/solutions/e0f13e8f654d43da8d7975ab274f8d28
21:56:53FromDiscord<scott> Very much liking the language so far. https://exercism.io/tracks/nim/exercises/hamming/solutions/e0f13e8f654d43da8d7975ab274f8d28↵↵(whoops)
21:57:31FromDiscord<Elegant Beef> How dare you not doing `a.len != b.len`
21:57:51FromDiscord<scott> hahaha
21:58:10FromDiscord<scott> UFCS is the best TBH
21:58:52FromDiscord<scott> showing my python roots tho haha
22:08:55*qeeg quit (Remote host closed the connection)
22:10:04federico3+1 on UFCS
22:10:09FromDiscord<Elegant Beef> +10
22:10:22FromDiscord<nikki> 10.+
22:11:10FromDiscord<Elegant Beef> i might just stick to json until i find a good solution, and load all the params into a single json string
22:11:25FromDiscord<nikki> (edit) "10.+" => "10.`+`"
22:31:37disruptek .mapIt(int(it[0] != it[1])) # int(true) is 1 and int(false) is 0
22:31:49disruptekthe fact that you have to provide a comment here should tell you something.
22:32:32disruptekmapIt(if it[0] != it[1]: 1 else: 0) is no worse, at least, and demands no comment.
22:32:57FromDiscord<scott> Oh ok I thought that was a statement and not an expression
22:33:04FromDiscord<scott> I agree that that's better
22:33:23*opal quit (Ping timeout: 240 seconds)
22:33:33FromDiscord<notchris> so thats like a ternary exp in the map handle?
22:34:06FromDiscord<notchris> oh its just an if
22:35:37disruptekrude.
22:36:17notchris:P
22:36:35notchrissorry haha, did a quick glance
22:37:39FromDiscord<scott> fixed, thanks
22:39:01FromDiscord<Elegant Beef> I prefer my method of `zip(a,b).filterit(it[0] != it[1]).len`
22:39:02FromDiscord<Elegant Beef> 😄
22:39:30FromDiscord<scott> yes, I saw that solution, It is probably the better one. but it didn't feel honest to rip that off wholesale 😅
22:39:52FromDiscord<Elegant Beef> I mean you're doing it identically just in a halfassed way
22:40:22leorize[m]is exercism a code golf contest? :P
22:40:26FromDiscord<Elegant Beef> By making failures 0s and passes 1, then summing you're just filtering and then counting the length
22:40:42*opal joined #nim
22:41:14FromDiscord<Elegant Beef> Totally leorize it's public facing challenges, that means be design it's code golf 😛
22:41:22FromDiscord<Elegant Beef> (edit) "be" => "by"
22:41:46FromDiscord<scott> I never felt like it was structured as a challenge
22:41:59FromDiscord<scott> I usually use it for the mentorship when learning and practice
22:42:17FromDiscord<Elegant Beef> I've never used it, so my comments are just jokes
22:43:42disrupteki just hit one of those sites yesterday and i struggled with the first challenge.
22:44:13FromDiscord<Elegant Beef> Yea hello world is a challenge
22:44:19FromDiscord<scott> yeah I tried the haskell track and the mentor responded with some shit I didn't understand lol
22:45:01disruptekit was like, "fix this": proc multiply(a, b: int) = a + b and stupid me thought merely discarding the expr should be enough of a fix to move on.
22:45:12FromDiscord<nikki> `nimble init` for libraries creates a proc that adds two ints, whose docstring says it adds files 👀 -- https://github.com/nim-lang/nimble/blob/6609a490a97510c14d4d7784d06e33e1c5e9f3dc/src/nimblepkg/init.nim#L50-L52
22:45:25disruptekthat's really par for the course in nimble.
22:45:28FromDiscord<scott> disruptek lol
22:46:05FromDiscord<Elegant Beef> File descriptors are just ints, no? So it technically can be right 😄
22:46:11disruptekdon't make me guess what your fucking code is supposed to do.
22:46:41FromDiscord<scott> the function is called "multiply"
22:46:49disruptekso?
22:47:08FromDiscord<scott> nvm 🙄
22:47:09FromDiscord<Elegant Beef> why the fuck would we use names for operators in nim, this isnt java
22:47:17disruptekikr
22:47:36FromDiscord<nikki> isn't + the name
22:47:54FromDiscord<Elegant Beef> !eval proc `&+!`(a: int)= echo a
22:47:55NimBotCompile failed: /usercode/in.nim(1, 8) Error: invalid token: (\29)
22:47:59FromDiscord<Elegant Beef> Damn
22:48:09FromDiscord<Elegant Beef> Mission failed, we'll get em next time
22:48:11FromDiscord<nikki> if it was java you wouldn't have made an error the first time
22:48:41FromDiscord<Elegant Beef> Ah the backticks didnt get included
22:48:53FromDiscord<Elegant Beef> !eval proc ``&+!``(a: int)= echo a
22:48:54NimBotCompile failed: /usercode/in.nim(1, 7) Error: identifier expected, but got '`'
22:49:08FromDiscord<Elegant Beef> !report nimbot he's' too fucking dumb
22:49:42FromDiscord<nikki> !eval echo "ohai"
22:49:44NimBotohai
22:49:55FromDiscord<nikki> !eval while true: echo "ohai"
22:50:05FromDiscord<nikki> 🤔
22:50:08FromDiscord<nikki> sorry
22:50:18NimBotCompile failed: <no output>
22:50:23FromDiscord<nikki> 😮
22:50:23disruptekcheck your email.
22:50:43FromDiscord<nikki> someone's knocking on my door
22:50:48FromDiscord<nikki> 😐
22:50:58FromDiscord<Elegant Beef> It just says "interoping nimscript with nim was a dumb idea"
22:52:35Prestige!eval "!eval echo "echo""
22:52:37NimBotCompile failed: /usercode/in.nim(1, 18) Error: expression 'echo[""]' has no type (or is ambiguous)
22:52:46Prestigehmm
22:53:09Prestigemaybe need to escape the quotes
22:53:18Prestige!eval "!eval echo \"echo\""
22:53:20NimBotCompile failed: /usercode/in.nim(1, 1) Error: expression '"!eval echo \"echo\""' is of type 'string' and has to be used (or discarded)
22:53:32Prestigeeh, oh well
23:03:40*theelous3 quit (Read error: Connection reset by peer)
23:07:31*hnOsmium0001 quit (Quit: Connection closed for inactivity)
23:19:00*kinkinkijkin quit (Ping timeout: 258 seconds)
23:19:50*kinkinkijkin joined #nim
23:26:26*astronavt joined #nim
23:27:04*gmaggior quit (Quit: Leaving)
23:35:29*abm quit (Read error: Connection reset by peer)
23:59:12*hnOsmium0001 joined #nim