<< 12-02-2020 >>

00:00:00disruptekthe producers would like to announce that the persons doing the debugging have been sacked.
00:00:11FromDiscord<clyybber> lol
00:00:19FromDiscord<clyybber> the C tests really suck
00:00:20disruptekthe producers would also like to announce that the persons joking about those persons have been sacked.
00:00:30FromDiscord<clyybber> it swallows the output
00:01:16disruptekjust pipe it, i guess.
00:01:33disrupteki dunno. i've been using a scroll buffer in my terminals and i find it really handy.
00:01:51disruptekonly for the last 30 years or so, though. kinda new for me.
00:02:02FromDiscord<clyybber> nah
00:02:05FromDiscord<clyybber> I mean I don't see it
00:02:12disruptekare you on my branch?
00:02:15FromDiscord<clyybber> whats weird is, that when I insert some printf myself
00:02:16FromDiscord<clyybber> I see it
00:02:24FromDiscord<clyybber> disruptek: I'm talking ulfjack ryu
00:02:38disrupteki will come over there, so help me.
00:03:22disrupteki'm not interested in debugging his code.
00:03:31FromDiscord<clyybber> wait
00:03:32disrupteki wanna know why our result is superior to his.
00:03:34FromDiscord<clyybber> I got it
00:03:52FromDiscord<clyybber> I'm too dumb to add a -D to a fucking makefile
00:03:52FromDiscord<clyybber> help
00:04:05FromDiscord<clyybber> AAGH
00:04:08disruptekoh i just added a define. i don't give a fuck.
00:04:09FromDiscord<clyybber> nvrmind
00:04:17FromDiscord<clyybber> I'm just stupid
00:04:23FromDiscord<clyybber> I compiled the tests
00:04:25FromDiscord<clyybber> with the flag
00:04:28disruptekso i get this:
00:04:31FromDiscord<clyybber> but not the thing itself
00:04:36disruptekVP+=34366719
00:04:36disruptekVR =34366717
00:04:37disruptekVM-=34366715
00:04:52FromDiscord<clyybber> yeah, thats what I'm trying to get it to do too
00:04:52*pbb_ quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
00:05:09disruptekbut he gets V+=34366720
00:05:14*pbb joined #nim
00:05:23disruptekso we're actually a little tighter.
00:05:58disruptekbut then we cannot agree on the result and one of us is clearly wrong.
00:06:31FromDiscord<Elegant Beef> So if you have nimfileA importing nimfileB, how can you use functions in A from B
00:06:34FromDiscord<Elegant Beef> ?
00:06:44disruptekwe say 3.4366718E10 and he says 3.436672E10
00:07:13disruptekbeef: you cannot.
00:07:27disruptekor, you shan't, i dare say.
00:07:42FromDiscord<clyybber> hmm hmm hmm
00:07:50FromDiscord<Elegant Beef> I mean i assigned a proc var in B to the func in A
00:07:55FromDiscord<Elegant Beef> so i guess that's how
00:08:11FromDiscord<clyybber> @Elegant Beef simple, you import it?
00:08:12FromDiscord<Elegant Beef> I assume the issue is the imperative part of nim
00:08:29disruptekthe issue is that circular imports are not a thing.
00:08:33FromDiscord<Elegant Beef> Yes you import B, but in B you can access A
00:08:39FromDiscord<Elegant Beef> cant*
00:08:42FromDiscord<Elegant Beef> since it's recurrsive
00:08:45FromDiscord<Elegant Beef> recursive*
00:09:10FromDiscord<clyybber> ah
00:09:19FromDiscord<clyybber> yeah
00:10:22FromDiscord<Elegant Beef> I was thinking of imports more like namespaces from C#, but that's clearly not the case, and having recursive imports is nice 😄
00:10:37FromDiscord<clyybber> @Elegant Beef Actually you can
00:10:53FromDiscord<clyybber> you gotta import B a bit later
00:11:09FromDiscord<clyybber> after the stuff you want B to be able to access
00:11:20FromDiscord<Elegant Beef> Not possible
00:11:33FromDiscord<Elegant Beef> the function in A relies on objects from B
00:12:00FromDiscord<Elegant Beef> My cheese method of assigning the proc for B from A is the best
00:12:02FromDiscord<clyybber> and the objects rely on the function?
00:12:08FromDiscord<Elegant Beef> `command.addCommand = addCommand`
00:12:32disrupteki think he's using two files so he can develop the code in two windows at once... or something.
00:12:33FromDiscord<Elegant Beef> Well im adding an object to a table
00:12:43FromDiscord<clyybber> future is now baby
00:12:49FromDiscord<Elegant Beef> Im using two files to keep logic sperate from data
00:12:55krux02Elegant Beef, recursive imports are not nice.
00:12:57disruptekmaybe he has no pager so he cannot scroll in his editor.
00:13:19FromDiscord<clyybber> logic is data :p
00:13:25FromDiscord<clyybber> data is logic :p
00:13:31FromDiscord<clyybber> join us
00:13:37FromDiscord<clyybber> we are l i s p
00:13:44FromDiscord<Elegant Beef> I swear im getting mocked for following a good paradigm 😄
00:13:47disruptekhe's storing his programs on cards and he doesn't want to reorder them.
00:13:54FromDiscord<clyybber> relatable
00:14:05FromDiscord<Elegant Beef> <https://github.com/beef331/nim_rofi>
00:14:05FromDiscord<Elegant Beef> Tear it apart then you schmucks 😄
00:14:05disrupteki swear you're overthinking it.
00:14:41FromDiscord<clyybber> @Elegant Beef ha, I looked at that before
00:14:48disrupteklook, just color within the lines.
00:14:51disruptekit's not hard.
00:14:58disruptekit make your world more beautiful.
00:15:02FromDiscord<clyybber> nothing to tear apart there : )
00:15:03FromDiscord<Elegant Beef> Do i do a flood fill?
00:15:04disruptekyou like.
00:15:05krux02(car (cdr (cadr '(a (b (c))))))
00:15:06disruptekyum yum yum
00:15:12FromDiscord<clyybber> just add the types to the top of the file :p
00:15:18disruptekack lisp attack
00:15:19FromDiscord<clyybber> no "good practice" required
00:15:42FromDiscord<Elegant Beef> Maybe i use the lines as a mask and just paint it all one colour
00:15:43disruptekbeef: take a look at golden or nimph to see some larger project import shenanigans.
00:15:47disruptek!repo nimph
00:15:48disbothttps://github.com/disruptek/nimph -- 9nimph: 11Nim package hierarchy manager from the future 🧚 15 52⭐ 3🍴 7& 1 more...
00:16:03FromDiscord<Elegant Beef> I mean.. not really a problem of imports, was just making sure there wasnt a different way
00:16:05disruptekit's no big deal, truly.
00:16:07krux02yea, I've certainly wasted enough of my life of "good practice" that turned out to be nothing more than a waste of time.
00:16:18disruptekexactly.
00:16:21FromDiscord<clyybber> good practice is not coding at all
00:16:25FromDiscord<Elegant Beef> Who said anything about good practices?
00:16:27disruptekthese are problems we'd be lucky to have.
00:16:28FromDiscord<clyybber> no good is best code
00:16:30FromDiscord<Elegant Beef> I like easily expandable code
00:16:37krux02just make sure you program works and do what is necessary to make it work.
00:16:57FromDiscord<Elegant Beef> Oh god, the "if it aint broke dont fix it" party has joined the chat
00:17:02FromDiscord<clyybber> haha
00:17:06krux02If you stay to a minimum of mork, it magically becomes maintainable, because it doesn't bloat.
00:17:21disruptekbasically, it's efforts at organization that have created the problem in the first place.
00:17:23FromDiscord<clyybber> more files => more expandable
00:17:35FromDiscord<clyybber> if you can't write between lines for some reason
00:17:42FromDiscord<clyybber> like coding on a tape
00:17:44FromDiscord<clyybber> :p
00:17:53krux02Elegant Beef, you need to get rid of the need for recursive imports.
00:17:54FromDiscord<Elegant Beef> I mean seperated logic from data means less bloat in files
00:17:58FromDiscord<Elegant Beef> I got rid of it
00:18:01FromDiscord<Elegant Beef> By not using it
00:18:02krux02that is mostly a head thing.
00:18:13krux02normal programs don't need recursive imports.
00:18:14FromDiscord<Elegant Beef> I mean it's mostly a me thinking imports are like C# namespaces
00:18:16FromDiscord<clyybber> @Elegant Beef storing a the proc has runtime overhead tho
00:18:21FromDiscord<Elegant Beef> oh noes
00:18:24FromDiscord<Elegant Beef> For a small script
00:18:24FromDiscord<clyybber> like if you store it in the object
00:18:34FromDiscord<Elegant Beef> This script stays alive for all of 10 seconds
00:18:38krux02only if you have mutual recursion across modules
00:18:43FromDiscord<clyybber> why is it so expandable then :PPP
00:18:51FromDiscord<clyybber> (just messing with ya)
00:19:05FromDiscord<Elegant Beef> Well i wanted to play with interfaces in nim so that's partly it
00:19:21krux02what type of interfaces?
00:19:28disruptekyou can still use directories, of course.
00:19:40FromDiscord<Elegant Beef> Simple interfaces for commands
00:19:43krux02go like interfaces or java like interfaces or the abstract meaning of interface
00:19:57FromDiscord<Elegant Beef> go like is what the library says
00:20:12FromDiscord<Elegant Beef> The library didnt have a license, so dont question the copyright
00:20:26krux02hehe, if feel I caused that library
00:20:26FromDiscord<Elegant Beef> *Shudders in projects on github having no license*
00:20:53FromDiscord<Elegant Beef> Yea the proper interfaced is outdated and borked 😄
00:21:09FromDiscord<Elegant Beef> Tried it before this one
00:21:20FromDiscord<Elegant Beef> Then protocoled exists but is more like inheritance
00:21:22krux02writing a macro for go like interfaces in Nim was basically the first thing I did in this community (in the forum)
00:21:39FromDiscord<Elegant Beef> Yea good job, i like interfaces cause of the ease
00:21:43FromDiscord<Elegant Beef> But i could've used inheritance here
00:22:16krux02here is the origial forum post: https://forum.nim-lang.org/t/2422
00:22:28FromDiscord<clyybber> krux02: The library literally mentions you
00:22:35FromDiscord<Elegant Beef> Im clearly a nim noob, but atleast most of general CS knowledge applies
00:22:56krux02yea that helped me learn the language as well
00:23:14disruptekyou're doing fine, but i would definitly ditch the cards for some proper tape recording of your software.
00:23:28krux02if you know c++ and python, you will instantly feel at home.
00:23:28disrupteki feel like cards are gonna hinder you with nim.
00:23:39krux02if you know one, you will feel at home half way
00:23:46FromDiscord<Elegant Beef> disruptek you really disrupt this chat 😄
00:24:04disrupteki know, i'm a terrible person.
00:24:07FromDiscord<Elegant Beef> I really know neither, i've written some python and some C++, but i spend most of my time in the Unity engine writing C#
00:24:10FromDiscord<clyybber> disruptek: I dunno, I like cards
00:24:23FromDiscord<clyybber> I always get tangled up in tapes
00:24:35FromDiscord<Elegant Beef> *I want to use nim for game dev, but there isnt a good enough engine, so i've been think about making my own*
00:24:41FromDiscord<Elegant Beef> Which is one reason i wanted interfaces
00:24:41FromDiscord<clyybber> he he he
00:24:51FromDiscord<clyybber> this is one thing I'm currently attempting
00:25:01krux02Elegant Beef, I've written my own 3D world renderer using OpenGL in C++ Scala Go and Nim
00:25:03FromDiscord<clyybber> I just made a framegraph skeleton thingy
00:25:25*pbb quit (Ping timeout: 272 seconds)
00:25:29*pbb_ joined #nim
00:25:29FromDiscord<Elegant Beef> I was going to use bgfx for graphics, and attempt to encourage an ECS system
00:25:47disruptekzacharycarter is using bgfx.
00:25:50FromDiscord<clyybber> @Elegant Beef @Zachary Carter is another gamedev
00:26:01FromDiscord<clyybber> disruptek: *was* afaik
00:26:21disruptekoh, hmm.
00:26:28krux02What is really shooking to me is, in Unity you have these people who have absolutely no clue what they are doing, they are just copying scripts from the internet together and then make tutorials about it on youtube semi explaining what they are doing.
00:26:28FromDiscord<clyybber> ah nevermind
00:26:33disruptekis zeal public?
00:26:39disruptek!repo zeal
00:26:42disbothttps://github.com/zealdocs/zeal -- 9zeal: 11Offline documentation browser inspired by Dash 15 7561⭐ 581🍴 7& 29 more...
00:26:55krux02it is easy to get wrong advice, but that is probably possible everywhere.
00:27:05FromDiscord<clyybber> krux02: this applies to the whole internet
00:27:17disrupteki think he's saying i have a special talent for wrong advice.
00:27:20FromDiscord<clyybber> I mean the fact that ppl who have no clue shout the loudest
00:27:24FromDiscord<Elegant Beef> Unity being so popular encourages that, also people fall in the dunning krueger effect
00:27:36disrupteksounds pretty deep.
00:27:40FromDiscord<Elegant Beef> There is one person on a discord server im in that often says stuff that is unsubstantiated
00:27:57FromDiscord<clyybber> hmm
00:28:02FromDiscord<clyybber> you are in Vkx
00:28:04FromDiscord<Elegant Beef> Soo uhh any of these nim game engines OSS? 😄
00:28:09FromDiscord<Elegant Beef> Im a linux gamer
00:28:09FromDiscord<clyybber> 🐸
00:28:10FromDiscord<Elegant Beef> so...
00:28:13FromDiscord<Elegant Beef> Ugh
00:28:20krux02clyybber: but it applies much more to popular/hip technology
00:28:23FromDiscord<Elegant Beef> The frog emote makes me feel old, but im not
00:28:51krux02Java, python, unity, minecraft etc
00:29:11krux02or generally Games in general
00:29:18FromDiscord<clyybber> old as in "I lived to see the days where 'forgotthefrogdudesname' made the wine pkgbuilds' ?
00:29:19FromDiscord<Elegant Beef> Well the general issue is the increase in population increases numpties using said software
00:29:38FromDiscord<clyybber> krux02: minecraft?
00:29:42FromDiscord<clyybber> you mean like mods?
00:29:58krux02I just picked it because it is super popular
00:30:05FromDiscord<clyybber> > this mod was made using MCreator
00:30:06FromDiscord<clyybber> lol
00:30:24FromDiscord<clyybber> ah, his name was TKG
00:30:25FromDiscord<clyybber> I think
00:30:58krux02Elegant Beef, I am on Linux as well
00:31:23krux02with the "deprecation" of OpenGL on Osx, I dropped osx support in my engine.
00:31:29FromDiscord<Elegant Beef> Yea
00:31:32FromDiscord<clyybber> this abonimation right here
00:31:32FromDiscord<clyybber> https://cdn.discordapp.com/attachments/371759389889003532/676948469528788992/unknown.png
00:31:36FromDiscord<Elegant Beef> It's laughable that mac went to metal
00:31:56FromDiscord<Elegant Beef> It'd be nice that we would have 1 api that'd run aswell as the proprietary if not better on all 3 main OS
00:31:59FromDiscord<clyybber> krux02: I would frame it the other way around. Apple stopped supporting your engine
00:32:18FromDiscord<clyybber> But apple users are eager to tell you that you are the one to blame
00:32:21krux02clyybber: they never did in the first place
00:32:30FromDiscord<clyybber> well, opengl
00:33:25krux02OpenGL 4.1 the latest version of OpenGL that is available on osx came out 2010
00:33:29krux02that is 10 years ago
00:33:52krux02and then they make benchmarks showing how much superior metal is to 10 year old opengl.
00:34:13FromDiscord<Elegant Beef> Yea well look at VK on linux outpreforming dx12 on windows
00:34:21FromDiscord<Elegant Beef> Yea well look at VK on linux outperforming dx12 on windows
00:34:28krux02if you want a modern opengl on apple hardware, you have to install linux first
00:34:48FromDiscord<Elegant Beef> I say if you want to use mac, just use elementary OS
00:34:49FromDiscord<clyybber> they can't be bothered
00:34:50krux02so the opengl drivers for that hardware exist, apple just prevents them to exist on osx
00:35:02FromDiscord<clyybber> yeah
00:35:09FromDiscord<Elegant Beef> There's actually quite a lot of that
00:35:12FromDiscord<Elegant Beef> even on windows
00:35:24FromDiscord<Elegant Beef> the OSS linux drivers have more api support then proprietary windows
00:35:31FromDiscord<Elegant Beef> I know that happened on a few igpus
00:35:36FromDiscord<clyybber> yeah
00:35:39FromDiscord<clyybber> intel
00:35:39*krux02_ joined #nim
00:35:49FromDiscord<clyybber> but with nvidia its a bit of a different story
00:36:00FromDiscord<clyybber> except for their compute cards
00:36:07krux02_I have nvidia gpu
00:36:12krux02_I don't have problems
00:36:43*sekao quit (Ping timeout: 260 seconds)
00:36:54FromDiscord<clyybber> krux02: As long as you don't use wayland
00:37:10krux02_I don't plan to use wayland any time soon
00:37:16FromDiscord<clyybber> And support for PRIME has only been added recently
00:37:18FromDiscord<clyybber> but its great
00:37:18krux02_but what is with wayland
00:37:20FromDiscord<clyybber> now that its there
00:37:38disruptekyou can't get decent performance on the nvidia cards in wayland.
00:38:00FromDiscord<clyybber> krux02: Nvidia refuses to get DRM Buffer support in their drivers
00:38:06FromDiscord<clyybber> they insist on using EGLStreams
00:38:15krux02_DRM buffer?
00:38:31disrupteki thought it was a clock issue.
00:38:46FromDiscord<clyybber> krux02: GBM
00:38:49FromDiscord<clyybber> not DRM
00:38:51disruptekwe can't turn up the clock because we can't crack the nvram.
00:38:52FromDiscord<clyybber> sorry
00:39:05FromDiscord<clyybber> disruptek: Ah, thats mostly solved now
00:39:08FromDiscord<clyybber> at least until turing
00:39:21FromDiscord<clyybber> and for kepler they just released it a month or so ago
00:39:30disruptekoh nice.
00:39:32FromDiscord<clyybber> but nouveau is also a bit scarce on devs
00:40:00*krux02 quit (Ping timeout: 268 seconds)
00:40:40disrupteki have steam running in wayland but i couldn't get poe to launch.
00:41:01FromDiscord<clyybber> disruptek: xwayland too?
00:41:05disruptekthis is a 1080 or 1060 or something.
00:41:17FromDiscord<clyybber> disruptek: Ah, yeah with nvidia no chance
00:41:19disruptekyeah, steam runs xwayland.
00:41:29disruptekthis is nouveau.
00:41:34FromDiscord<clyybber> yeah, xwayland cant use GBM either
00:41:38FromDiscord<clyybber> disruptek: Oh
00:41:48*sekao joined #nim
00:41:52FromDiscord<clyybber> does POE use vulkan?
00:41:59disruptekdunno.
00:42:03FromDiscord<clyybber> because nouveau doesn't support vulkan yet I think
00:42:09FromDiscord<clyybber> or not on all cards at least
00:42:26disrupteksteam packages its own wine, i think. maybe.
00:42:34FromDiscord<clyybber> yeah
00:42:36FromDiscord<clyybber> proton
00:42:37disruptekor it uses my binary with its own image. i dunno.
00:42:41disruptekright, proton.
00:42:56FromDiscord<clyybber> it also uses dxvk
00:43:06disruptekanyway, i'm on gentoo, so everything from wine to wayland is built with whatever i have. and that doesn't include vulcan.
00:43:12disruptekvulkan, either.
00:43:23FromDiscord<clyybber> to translate dx11/dx10 (and now dx9) to vulkan
00:43:58FromDiscord<clyybber> disruptek: vulkan is linked dynamically
00:44:01FromDiscord<clyybber> most of the time
00:44:26FromDiscord<clyybber> all of the time (I hope)
00:45:01disruptekit's not an option for me. i mean, it's not recognized (yet) by any ebuilds as a valid import for nvidia cards.
00:45:19FromDiscord<clyybber> ah
00:48:56disruptekso any 5.5 kernel should have the new nouveau support?
00:49:06FromDiscord<clyybber> think so
00:49:12disruptekcool.
00:49:15FromDiscord<clyybber> dunno tho
00:49:56FromDiscord<clyybber> only thot no nawledge
00:50:08krux02_proton is not a different wine, proton is just a wine frontend.
00:50:13disrupteki won't buy another nvidia card, but i have a 2nd workstation at home that has yet another 1080 that i could eventually use for compute.
00:50:25FromDiscord<clyybber> proton is wine with a few patches
00:50:26krux02_less intrusive than wine.
00:50:32disruptekfair enough.
00:50:42disruptekdoes steam require wine?
00:50:47FromDiscord<clyybber> nah
00:50:59FromDiscord<clyybber> it can download proton itself
00:51:02FromDiscord<clyybber> when it needs to
00:51:32krux02_I only have the gtx 980 ti
00:51:35disruptekright, i remember opt'ing into it but i thought it was more cooperative.
00:51:55disrupteki guess i just rebuilt wine for my health.
00:52:21krux02_For me it is always satisfaction to remove wine from the system.
00:52:38FromDiscord<clyybber> wine is cool tho
00:52:48disrupteki feel that, but it's wine.
00:52:54krux02_really this you need to install winemono is super annoying
00:52:59FromDiscord<Elegant Beef> I mean
00:53:02FromDiscord<Elegant Beef> use lutris + steam play
00:53:07FromDiscord<Elegant Beef> dont dick around with wine directly
00:53:08krux02_and then it changes all the file associations on the system
00:53:13FromDiscord<Elegant Beef> unless you really want an application for it
00:53:25krux02_things open up in the wine browser or the wine notepad.
00:53:37krux02_things like that are everywhere.
00:53:44FromDiscord<clyybber> ah, yeah that sucks
00:53:47*krux02_ is now known as krux02
00:53:49FromDiscord<Elegant Beef> The annoying thing is wine adding it's own desktop entries
00:54:02FromDiscord<clyybber> I have a script to delete desktop entries
00:54:09*pbb_ quit (Ping timeout: 246 seconds)
00:54:09FromDiscord<clyybber> from everything
00:54:14FromDiscord<Elegant Beef> I use them though
00:54:37FromDiscord<clyybber> @Elegant Beef wonna replace your rofi?
00:54:37FromDiscord<Elegant Beef> i used them in dmenu and rofi
00:54:42FromDiscord<Elegant Beef> With what?
00:54:48FromDiscord<clyybber> with a terminal
00:54:50FromDiscord<clyybber> :p
00:55:05FromDiscord<Elegant Beef> Oh what an upgrade
00:55:10FromDiscord<clyybber> right
00:55:15FromDiscord<Elegant Beef> `applicationName &`
00:55:21FromDiscord<clyybber> nah
00:55:26FromDiscord<clyybber> like fzf and so
00:55:32krux02 I like tha wine exists. It really helps with many things, but I am much happier if I don't need it.
00:55:39*pbb joined #nim
00:55:57dadadacan nim get a list of all variables at runtime that are of a certain type? i.e. references to all variables/types of type FooBar?
00:56:10FromDiscord<Elegant Beef> Well if we ever get anticheat working in wine, it'll be a transitionarly layer for windows gamers to build a bse on linux
00:56:13FromDiscord<Elegant Beef> Oh actual nim talk now
00:56:13FromDiscord<Elegant Beef> 😄
00:56:18dadadawithout needing to put them all in a list?
00:56:19krux02dadada, not that I know of
00:56:34FromDiscord<clyybber> dadada: Nope
00:56:37dadadaok
00:56:41FromDiscord<clyybber> but there is one for ref types
00:56:50FromDiscord<clyybber> you could check the GC_root
00:56:55FromDiscord<clyybber> not sure how tho :p
00:56:59krux02usually when you turn on optimization and turn off debug information, variable names are optimized away.
00:57:02FromDiscord<Elegant Beef> *How is fzf anything like rofi* 😄
00:57:08FromDiscord<clyybber> well
00:57:13FromDiscord<clyybber> application launcher I mean
00:57:17FromDiscord<clyybber> never used rofi for much else
00:57:21dadadaI thought it could be useful to have a mechanism similar to how CSS Selectors work :D
00:57:52FromDiscord<clyybber> ` alacritty -t "Launch..." -e fish -c 'setsid -f (find $PATH -executable | fzf -e)' `
00:57:59FromDiscord<clyybber> This is my application launcher
00:58:09krux02dadada, if anything, that functionality should be compile time functionality
00:58:11dadadawe're used to manage our data manually because we've always done it that way, but what if we view a programs data just like a document?
00:58:20FromDiscord<Elegant Beef> Does that unparent the proccess?
00:58:22dadadait makes sense in many applications
00:58:27FromDiscord<clyybber> @Elegant Beef yeah
00:58:34FromDiscord<clyybber> setsid -f does that
00:58:56FromDiscord<Elegant Beef> rofi looks and works nicely, just have to make it so it appears on any focused empty workspace
00:58:57krux02dadada, Document? What do you mean by that?
00:59:45dadadakrux02: it's basically a tree structure of data, where global data is at the top/root, and everything else stems from there
00:59:52dadadalike in an XML document, or webpage
01:00:00FromDiscord<clyybber> yeah rofi is awesome
01:00:17krux02and no, I am not used to magage my data manually because I've always done it that way, I did use so called "managed" languages, and they just do a shitty job at managing the data and I had to do it on my own again.
01:00:21FromDiscord<Elegant Beef> Also i now have to ask after being reminded of this, how do you get directory information in nim
01:00:42dadadakrux02: I don't know why people on the internet take everything personally
01:00:47krux02dadada, tree structures are the root cause of inefficient memory usage.
01:01:16FromDiscord<clyybber> you know somethings wrong when ctrl-a takes 5 seconds
01:01:29krux02I just wanted to mention that I am talking about myself, not about other people.
01:01:30FromDiscord<Elegant Beef> *have you tried seperating your files*
01:01:33FromDiscord<Elegant Beef> 😛
01:01:51FromDiscord<clyybber> have you tried hierarchy
01:02:08FromDiscord<Elegant Beef> Ah the directory stuff is in OS
01:02:08FromDiscord<clyybber> lets go back to the old days
01:02:18FromDiscord<clyybber> no hierarchies
01:02:24disruptekdadada with respect to types dumped at runtime, yes.
01:02:27FromDiscord<clyybber> all just plain memory
01:02:42FromDiscord<Elegant Beef> *Our file system will be like an alabama family tree*
01:02:50FromDiscord<clyybber> hahaha
01:02:56dadadakrux02: well, I'm not trying to say that the usual paradigms are wrong, it's just that an additional tool in your toolset might challenge you to think out of the box
01:03:01FromDiscord<clyybber> disruptek: Our symlinks are incest
01:03:04FromDiscord<clyybber> sorry
01:03:07*ptdel quit (Ping timeout: 240 seconds)
01:03:09FromDiscord<clyybber> looks like Araq has won
01:03:14krux02old days, where memory allocatin took place on paper and then the program is written with the hex values from paper
01:03:15dadadaso I like to have as many tools at possible
01:03:29disruptekmaybe that's why he hates them so much.
01:03:38FromDiscord<Elegant Beef> I've only ever wrote applications with the assumption my memory is controlled automatically
01:03:42FromDiscord<Elegant Beef> Im a terrible human 😄
01:03:57FromDiscord<clyybber> @Elegant Beef psst
01:04:04FromDiscord<clyybber> you wonna *symlink*?
01:04:08*Hideki_ joined #nim
01:04:16FromDiscord<Elegant Beef> Is this how a linux user asks to cybe?
01:04:20FromDiscord<Elegant Beef> cyber*
01:04:20krux02I like tools, yea. But what I like even more than many tools is an environment, where I don't need those tools.
01:04:26krux02Just what I said about wine.
01:04:29disruptekthis.
01:04:36disruptekthe environment.
01:04:40krux02I like that it exists, but I am much happier if I don't need it.
01:04:59FromDiscord<Elegant Beef> I mean generally the fewer tools you need to get the job done, the less annoying it is
01:05:34dadadas/at/as ... what's up with all my typos, I must up my typing game
01:06:10disruptekclearly we should write fewer tools?
01:06:19krux02no
01:06:31krux02but here is an example
01:06:32FromDiscord<Elegant Beef> *Make easily expandable tools*
01:06:33disruptekclearly it's a silly statement.
01:06:36krux02what do you prefer
01:06:58FromDiscord<Elegant Beef> Look at vscode, it can do every language gracefully 😛
01:07:07FromDiscord<Elegant Beef> *I mean vscodium, the superior version*
01:07:28dadadadisruptek: did I get you right and you say it's possible to query all the types of a certain type at runtime? ... it's sometimes not clear who responds to what when on IRC
01:07:36krux02having tools like valgrind that allow you with effort to find memory leaks, or a safe language/environment that prevents memory leaks structurally.
01:07:43disruptekwhat i really want is to just /tell the computer what to write/ and have it understand the operation of the code composition.
01:08:00disruptekdadada: sure.
01:09:12disruptek~dumpNumberOfInstances is add a -d:nimTypeNames at compilation and call `dumpNumberOfInstances()` at runtime.
01:09:13disbotdumpNumberOfInstances: 11add a -d:nimTypeNames at compilation and call `dumpNumberOfInstances()` at runtime.
01:10:36dadadanice, are APIs like that considered stable? or are they more like a debugging feature that could just disappear because it's not common practice to use it for non-debugging purposes?
01:10:56dadadahaving to add the flag kind of hints that I shouldn't rely on it
01:10:58dadada:D
01:10:59disrupteki dunno, why does it matter?
01:11:16disruptekare you going to exploit this somehow in code that you're worried about being able to maintain in a few years?
01:11:25dadadawell, I might
01:11:29disrupteklike, seriously, what are we talking about?
01:11:42disruptekyou might?
01:11:44disruptekthat might happen?
01:11:53disruptekand you might not be able to fix it... in time?
01:11:56FromDiscord<clyybber> krux02: Are you emacs PID 1 yet?
01:11:58disruptekare you going on a long trip?
01:12:03disruptekare you an astronaut?
01:12:12disruptekwithout, i dunno, a laptop?
01:12:22disruptekand, uh, spacebucks for a collect phonecall?
01:12:33disruptekwhat are we talking about here?
01:12:35disruptekare you in the cia?
01:12:37disrupteknsa?
01:12:45dadadagive me all types of type FooType that have the attribute fooattribute with values between 10 and 100 and set their attribute barattribute to 20
01:12:46disruptekyou're some kinda fed deep undercover?
01:12:53FromDiscord<Elegant Beef> `collect phonecall` fuck you're old 😛
01:12:55dadadaI wish, that would be a cool job
01:12:58krux02clyybber: no not really
01:13:04disruptekno, you can't do runtime introspection.
01:13:17FromDiscord<clyybber> krux02: You'll get there !
01:13:30krux02I don't really know what you mean with PID 1 though, I think you mean make emacs the center of everything
01:13:33FromDiscord<clyybber> dadada: Sounds like a terrible idea
01:13:34disruptekthis is more of a hack for debugging purposes, as evidenced by the lengths you have to go to do use it and the very narrow usage that it actually affords.
01:13:37krux02and no I did not do that
01:13:39FromDiscord<clyybber> krux02: Yeah
01:13:42FromDiscord<clyybber> I meant that
01:13:44krux02emacs is my center of programming
01:13:52FromDiscord<clyybber> emacs os
01:13:54FromDiscord<clyybber> lol
01:14:02krux02and I still have a terminal, a browser, an IRC client
01:14:10krux02that all exists built into emacs
01:14:13krux02but no thanks
01:14:26krux02I don't like the emacs window splitting behavior
01:14:43disruptekwait, i'm confused.
01:14:56disruptekyou /do/ run your terminal, browser, and irc inside emacs?
01:15:04krux02no I don't
01:15:09disruptekbecause of the window splitting?
01:15:11FromDiscord<clyybber> he *could*
01:15:14disruptekisn't that easily fixable?
01:15:21disruptekor, there's just no reason to do so?
01:16:03krux02well maybe someday I will try emacs as a window manager
01:16:06disrupteki couldn't tell if you were saying that emacs is your center of programming because you want it to be used only for programming, or if you were saying that you do everything there.
01:16:12krux02but I don't feel like doing so right now
01:16:21disruptekright, i get that.
01:16:29krux02only for programming
01:16:45FromDiscord<Elegant Beef> what WM do you use?
01:16:51krux02I use xfce
01:16:55disrupteki'm really attracted to emacs but i feel like i would have to stop working for a month in order to get it up to speed.
01:16:59krux02most boring window manager available
01:17:04FromDiscord<Elegant Beef> lol
01:17:06FromDiscord<Elegant Beef> i use i3wm
01:17:09FromDiscord<Elegant Beef> it's a nice world
01:17:17krux02I don't want my window manager to be exciting
01:17:28FromDiscord<Elegant Beef> well i3wm is super simple
01:17:30FromDiscord<Elegant Beef> so idk
01:17:33krux02yea maybe some day I will do i3wm
01:17:35disrupteki don't even have borders or titlebars. zero decorations at all.
01:17:40krux02but I like the drop down terminal
01:18:07FromDiscord<Elegant Beef> This is pretty much my UX(also the nim code in action)
01:18:07FromDiscord<Elegant Beef> https://streamable.com/ur11j
01:18:44disruptekneat, how does it work?
01:18:52dadadadisruptek: appreciate the fun you made of me ... :) I like runtime introspection, indeed I enjoyed playing with GObject introspection, and for Qt applications there's GammaRay, so well, I like features like that, but it's not that I couldn't continue to live without them
01:18:52FromDiscord<clyybber> I wish you that some day you are gonna see the dogs tail move
01:18:55FromDiscord<clyybber> just so slightly
01:19:04FromDiscord<Elegant Beef> I mean there are mp4 backgroud players
01:19:08FromDiscord<Elegant Beef> also could pipe an image into feg
01:19:10FromDiscord<Elegant Beef> also could pipe an image into feh
01:19:11FromDiscord<Elegant Beef> feh*
01:19:19krux02Elegant Beef: that pretty much shows why I don't like steam
01:19:21disruptekdadada: right, but thisn't that, in any event.
01:19:27krux02it is just waiting all the time
01:19:30FromDiscord<Elegant Beef> huh?
01:19:34krux02instead of starting the game instantly
01:19:42FromDiscord<Elegant Beef> that's lutris
01:19:44dadadadisruptek: introspection is also cool to allow users the ability to run scripts on top of your applications
01:19:51disruptekthat looks a lot like my dog, actually.
01:19:51*ptdel joined #nim
01:20:04FromDiscord<Elegant Beef> that steam icon is jusut an svg
01:20:10FromDiscord<clyybber> disruptek: pet your dog for me, will ya
01:20:21krux02I tried lutris once.
01:20:22FromDiscord<clyybber> krux02: The waiting increases the anticipation
01:20:26krux02very bad experience
01:20:30FromDiscord<clyybber> its part of the experience
01:20:38krux02it just didn't work at all
01:20:42FromDiscord<clyybber> haha
01:20:45krux02I am back at vanilla wine
01:20:58FromDiscord<Elegant Beef> i mean lutris creates a tinker free experience like steamplay
01:21:01FromDiscord<Elegant Beef> idk i like it
01:21:10krux02no it didn't
01:21:14FromDiscord<Elegant Beef> what game?
01:21:18krux02it created a game free experience for me
01:21:19FromDiscord<clyybber> its cool when it works
01:21:23FromDiscord<clyybber> which it does most of the time
01:21:24krux02then I uninstalled it.
01:21:39krux02I don't know what I tried, but what I tried didn't work and I tried several games
01:21:47FromDiscord<clyybber> only thing I would like out of lutris is making it a bit easier to make installers yourself
01:21:48FromDiscord<Elegant Beef> how long ago?
01:21:51FromDiscord<clyybber> like debugging and shit
01:21:58FromDiscord<Elegant Beef> a json too hard? 😄
01:21:59krux02then my evaluation was, crappy software, uninstall
01:22:14FromDiscord<clyybber> @Elegant Beef I don't mean debugging the json
01:22:18krux022-3 months ago
01:22:23FromDiscord<clyybber> I mean debugging the whole setup
01:22:37FromDiscord<clyybber> like libraries
01:22:41FromDiscord<clyybber> installers
01:22:44FromDiscord<clyybber> workarounds
01:22:48FromDiscord<clyybber> all that kinda stuff
01:22:58FromDiscord<clyybber> it feels a bit like CI sometimes
01:22:59disruptek~bentley is https://imgur.com/gallery/wyPnn8j
01:22:59disbotbentley: 11https://imgur.com/gallery/wyPnn8j
01:23:03*pbb quit (Ping timeout: 272 seconds)
01:23:03FromDiscord<clyybber> but maybe its imrpoved since then
01:23:18FromDiscord<Elegant Beef> is it a jack russell terrier too?
01:23:29FromDiscord<clyybber> disruptek: You can add multiple tags to one thing right?
01:23:29disrupteknah, he's an asshole.
01:23:34*pbb joined #nim
01:23:36disruptekwhat?
01:23:36FromDiscord<Elegant Beef> that's what i said
01:23:40FromDiscord<clyybber> ~bentley is a good boy
01:23:41disbotbentley: 11https://imgur.com/gallery/wyPnn8j
01:23:41disbotbentley: 11a good boy
01:23:44FromDiscord<clyybber> nice
01:23:57disruptekhe's blue heeler and border collie.
01:24:04disruptekaustralian cattle dog, that is.
01:24:08FromDiscord<Elegant Beef> that's a pup picture eh?
01:24:11disruptekyeah.
01:24:20FromDiscord<Elegant Beef> didnt notice the feet until after i asked
01:24:21FromDiscord<clyybber> disruptek: Wow
01:24:26FromDiscord<clyybber> you actually have an imgur account
01:24:48disruptekyeah, it's sorta handy.
01:25:17disrupteki dunno, i haven't decided how i'm going to interface with it.
01:25:27FromDiscord<Elegant Beef> the dog? Hopefully petting it
01:25:47disruptekscrew that, i'm a beater not a lover.
01:26:02FromDiscord<Elegant Beef> can we get your location so we can contact your local spca?
01:26:19disruptekprobably, yeah.
01:27:51*prcups joined #nim
01:30:58FromDiscord<clyybber> disruptek: Heh, this is actually handy: https://www.diffchecker.com/eKfCX3Wq
01:31:48FromDiscord<clyybber> well, well, debugging that can wait until tomorrow
01:31:56FromDiscord<clyybber> gn8 fellas
01:32:11krux02good night
01:32:12FromDiscord<Elegant Beef> buh bye
01:32:19krux02also for me
01:32:27disruptekpeace
01:32:51*krux02 quit (Remote host closed the connection)
01:35:28*abm quit (Quit: Leaving)
01:37:41*prcups is now known as Vani
01:38:44*Vani quit (Quit: Leaving)
01:39:42*Vani joined #nim
01:43:16sekaois there a way to ask at compile time what a type is equal to? I know you can do `when thing is Thing` but in that case "thing" is an instance. i'm trying to do `when T is Thing` where T is a generic type parameter
01:43:57*Vani quit (Client Quit)
01:45:15disruptekyep, that's how you do it.
01:45:42sekaooh, so it works on instances and typedescs?
01:46:49disruptekyes?
01:49:29disruptekclyybber: this diffchecker is terrible.
01:50:01zedeus!eval static: echo string is string
01:50:04NimBot<no output>
01:50:05sekaogotcha. i think when i tried it, it was false because i compared T to a parent class
01:50:26disruptekuse `of` for that.
01:51:34*prcups joined #nim
01:52:43sekaoi tried `of` but it says `Error: 'of' takes object types`
01:53:20disruptekyeah, is there another kind of inheritance?
01:54:38disruptekmaybe i'm misremembering these keywords.
01:54:56sekaoit's happening when T is a generic type, such as in `myFunc[Thing]()` and inside myFunc i'm doing `when T of ThingParent`
01:55:02disruptek~manual
01:55:03disbotmanual: 11the Nim Manual is https://nim-lang.org/docs/manual.html -- disruptek
01:55:51disruptekhttps://nim-lang.org/docs/manual.html#generics-is-operator
01:56:56zedeus`is` works for checking inherited types against their parents
01:57:27disruptekis there an `of` or am i just thinking of typedefs?
01:57:37zedeus`of` exists, but it doesn't work for typedescs
01:58:03zedeushttps://play.nim-lang.org/#ix=2bsH
01:59:04*prcups quit (Remote host closed the connection)
01:59:16disrupteki don't get it.
01:59:35zedeus`Bar of Foo` results in the error sekao posted
01:59:55FromDiscord<Elegant Beef> Error?
02:00:09disruptekoh i'm looking at someone else's link.
02:00:25disrupteki don't know how that happens but it's creepy.
02:00:36disrupteki guess it's just not a very well engineered piece of software.
02:00:55zedeusix.io uses a sequential id..
02:01:10zedeustrivial to find other's pastes
02:01:11*muffindrake quit (Quit: muffindrake)
02:01:15disruptekyeah but it sometimes retrieves the wrong data.
02:02:18*muffindrake joined #nim
02:02:20disruptekso anyway, of is instance-of and is is progeny-of.
02:02:34disruptekgreat.
02:03:27*Hideki_ quit (Ping timeout: 260 seconds)
02:03:55*dadada quit (Ping timeout: 260 seconds)
02:05:48zedeushttps://nim-lang.github.io/Nim/system.html#of%2Ctypedesc%5BT%5D%2Ctypedesc%5BS%5D
02:05:49zedeushm
02:08:12zedeuswhat am I missing?
02:08:54*muffindrake quit (Quit: muffindrake)
02:08:57*Zectbumo quit (Remote host closed the connection)
02:09:02*dadada joined #nim
02:09:08*muffindrake joined #nim
02:09:18disrupteki dunno, what?
02:09:25*dadada is now known as Guest11321
02:10:16disruptekare the docs wrong?
02:10:22zedeusyou tell me
02:10:37disruptekrun that code in playground.
02:11:19zedeusit has an overloader taking two typedescs, so you give it two ref objects, on inheriting from the other, and it complains about only taking object types
02:11:21zedeus...what?
02:11:44disruptekthe asserts.
02:13:25disruptekthe docs and the code are fine. so is the code.
02:13:33disruptekand also the docs.
02:13:42zedeushttps://play.nim-lang.org/#ix=2bsQ
02:13:45zedeusthis doesn't work, either
02:15:37disruptekadmittedly, that's strange.
02:16:15disruptekthis is probably the same issue with refs and inheritance that bites me over and over again.
02:16:20FromDiscord<Rika> Latest doesn't mean devel in playground
02:16:45disruptekit's late enough.
02:16:56FromDiscord<Rika> Stable docs show that the of proc doesn't exist tho
02:17:00FromDiscord<Rika> Which is interesting
02:17:20zedeushuh, git blame says it was last modified 8 months ago
02:17:38disruptekit's a conspiracy.
02:17:50zedeuswe're onto something here
02:17:58FromDiscord<Rika> Found it, didn't see it
02:19:02*chemist69_ joined #nim
02:19:37zedeushttps://github.com/nim-lang/Nim/blob/7939319379ba72beba8c15230b0a4229f7bcc1f1/compiler/semmagic.nim#L333
02:19:45zedeusso the overload exists but it's illegal
02:20:14zedeushttps://github.com/nim-lang/Nim/commit/8d714d2b02458553234869d7139afb73621f6d7d
02:20:24disruptekwait, you're using of on T when you should use it on a.
02:20:59disruptekhttps://play.nim-lang.org/#ix=2bsS
02:21:04zedeusright, but that's another case, the point is you can't check a typedesc against another typedesc, which the overload would suggest
02:21:43disruptekfair enough.
02:22:07*chemist69 quit (Ping timeout: 260 seconds)
02:22:57*Guest11321 quit (Ping timeout: 265 seconds)
02:24:00*dadada_ joined #nim
02:24:46disruptekthat should probably be fixed.
02:32:52*xet7 quit (Quit: Leaving)
02:33:26*xet7 joined #nim
02:37:47*dadada_ quit (Ping timeout: 272 seconds)
02:39:03*dadada_ joined #nim
02:43:58*sekao quit (Remote host closed the connection)
02:46:08*rockcavera quit (Remote host closed the connection)
02:52:26*dadada_ quit (Ping timeout: 265 seconds)
02:54:05*dadada_ joined #nim
03:23:23*dadada_ quit (Ping timeout: 272 seconds)
03:24:04*dadada joined #nim
03:24:27*dadada is now known as Guest48449
03:36:03*muffindrake quit (Ping timeout: 272 seconds)
03:37:39*muffindrake joined #nim
03:38:35*Guest48449 quit (Ping timeout: 272 seconds)
03:39:04*dadada_ joined #nim
03:46:28*Zectbumo joined #nim
04:00:49*Hideki_ joined #nim
04:05:21*Hideki_ quit (Ping timeout: 268 seconds)
04:07:12*dadada_ quit (Ping timeout: 268 seconds)
04:09:04*dadada_ joined #nim
04:10:16leorizedisruptek: how's your ryu port going?
04:10:47disruptekf2s is done, as far as we know.
04:11:15disruptektimothee generously contributed a couple enhancements, too.
04:11:54leorizeI read ryu code and afaict, I don't understand what it does
04:12:26disrupteki mean, the theory is pretty straightforward, but i don't really understand the details.
04:13:10disruptekit has something to do with approximations as a way to sufficienctly narrow the scope. you produce the approximations trivially.
04:13:35leorizesounds interesting
04:13:46disrupteki should probably watch the talk. i really can't remember the details.
04:14:06leorize:P if I find some free time I could try implementing that from scratch
04:14:18disruptekyeah, that would be a lot easier.
04:14:49disruptekthis is a pretty finely tuned instrument we're copying. 😁
04:15:08leorizeI did a quick port of f2s today on the playground to see if I can understand the code
04:15:34disrupteki guess you're the third sucker.
04:15:38leorizeanswer: I don't, the and port spew out pretty bad result :P
04:15:57disruptekyou tried to port it from the paper?
04:16:03disruptekor from the c?
04:16:08leorizeC
04:16:13disruptekah, yeah.
04:16:41disruptekit will be hard to beat the speed.
04:17:47leorizenah, it doesn't run
04:17:57leorizethough I'd say that the playground editor isn't the best
04:18:10disrupteki mean it will be hard for us to beat the speed of c-ryu.
04:18:47leorizetrue
04:19:19leorizeI'll try to do a port from the paper later so there would be less cruft from optimizations
04:19:34disruptekwe can probably write it nicer, smaller, sharper, cleaner.
04:19:54disrupteki was gonna use the paper originally, but i decided i'd rather have the tests.
04:20:07disruptekso it was worth transcribing just for those.
04:21:00leorizeonce you have a working impl I could snatch your tests :p
04:21:08disruptekyeah, that's my thinking.
04:21:23disruptekit works for f2s right now.
04:48:35*nsf joined #nim
05:07:17leorizeis there anything out there that could flatten sci paper columns?
05:07:57leorizeI generally dislikes that after you done scrolling the page you gotta scroll back up to catch the rest
05:08:15disruptekprobably not in pdf.
05:08:25disruptekit's pretty involved...
05:14:49shashlickokay nghttp2 wrapper done, what else
05:15:33disruptekwhat's the deal with graphql? can i use it for a client?
05:15:45disrupteki mean your graphql wrapper.
05:16:17shashlickya it should work as a client i think
05:16:27shashlicki fixed some bugs recently for someone
05:17:09disruptekah, sweet. i may use it for integrating github actions into nimph.
05:18:13disrupteknimph will backend into nigel (on github actions) to give you a view of tests across your whole app.
05:19:53shashlickit is based on nimgen which depends on c2nim
05:20:38disruptekreally?
05:21:19shashlickya old times
05:21:24shashlickand it is C++ so nimterop is out
05:21:35disruptekeh it doesn't bother me.
05:21:52disruptekworking software is working software.
05:22:17shashlicknimgen is unmaintained so ya
05:22:37disruptekit takes days and thousands of downloads to build rust. i'd rather know the maintainer.
05:25:41shashlickno pure C graphql client?
05:36:24shashlickmaybe i can nimterop it
05:56:02*hax-scramper quit (Read error: Connection reset by peer)
05:56:58*hax-scramper joined #nim
05:58:50*solitudesf joined #nim
06:09:43*narimiran joined #nim
06:22:15*dadada_ quit (Ping timeout: 268 seconds)
06:24:03*dadada joined #nim
06:24:26*dadada is now known as Guest61668
06:26:33*zama quit (Ping timeout: 260 seconds)
06:27:38*zama joined #nim
06:38:19*Guest61668 quit (Ping timeout: 260 seconds)
06:39:00*dadada_ joined #nim
06:53:39*dadada_ quit (Ping timeout: 272 seconds)
06:55:50*ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
06:57:54*marmotini_ joined #nim
06:58:56*dadada_ joined #nim
07:08:03*dadada_ quit (Ping timeout: 240 seconds)
07:09:03*dadada_ joined #nim
07:09:59*u0_a121 joined #nim
07:23:06*dadada_ quit (Ping timeout: 265 seconds)
07:23:06*u0_a121 quit (Read error: Connection reset by peer)
07:23:31*u0_a122 joined #nim
07:24:04*dadada joined #nim
07:24:28*dadada is now known as Guest14294
07:35:38*hax-scramper quit (Ping timeout: 268 seconds)
07:38:26*hax-scramper joined #nim
07:43:03*hax-scramper quit (Read error: Connection reset by peer)
07:43:15*hax-scramper joined #nim
08:00:00*gmpreussner quit (Quit: kthxbye)
08:01:59*ftsf joined #nim
08:02:41*Hideki_ joined #nim
08:04:34*hax-scramper quit (Read error: Connection reset by peer)
08:05:01*gmpreussner joined #nim
08:05:13*ng0_ joined #nim
08:05:29*hax-scramper joined #nim
08:06:51*Hideki_ quit (Ping timeout: 240 seconds)
08:08:23*ng0 quit (Ping timeout: 272 seconds)
08:08:26*hax-scramper quit (Read error: Connection reset by peer)
08:08:44*hax-scramper joined #nim
08:16:51*Guest14294 quit (Ping timeout: 240 seconds)
08:16:52*hax-scramper quit (Read error: Connection reset by peer)
08:17:22*hax-scramper joined #nim
08:18:45*dadada joined #nim
08:19:09*dadada is now known as Guest47214
08:21:07shashlickdisruptek: nimgraphql is now a nimterop based project so should be cleaner to import
08:21:52shashlickdisruptek: note that unlike typical nimterop projects, libgraphqlparser does not support a static library so you need to use -d:GraphQLCompile directive to compile in the code and avoid the .so
08:22:22shashlickdisruptek: also, libgraphqlparser isn't supported on Windows - just Linux / OSX and i've only tested on Linux so far
08:23:06shashlickoh and this is in the nimterop branch so please try it and let me know how it goes
08:23:52shashlickhttps://github.com/genotrance/nimgraphql/tree/nimterop
08:30:27*Guest47214 quit (Ping timeout: 240 seconds)
08:31:45*dadada_ joined #nim
08:40:30*pbb quit (Remote host closed the connection)
08:40:35*actuallybatman quit (Ping timeout: 260 seconds)
08:41:44*pbb joined #nim
08:56:01*fanta1 joined #nim
08:56:10*floppydh joined #nim
08:58:01*arecaceae quit (Remote host closed the connection)
08:58:24*arecaceae joined #nim
09:00:35*hax-scramper quit (Read error: Connection reset by peer)
09:00:45*hax-scramper joined #nim
09:03:30*Demos[m] joined #nim
09:04:33*hax-scramper quit (Read error: Connection reset by peer)
09:04:42FromDiscord<clyybber> leorize: haha third guy
09:04:48*hax-scramper joined #nim
09:04:54FromDiscord<clyybber> I also started over.
09:05:07FromDiscord<clyybber> But theres only 2 failing tests here
09:05:40*dadada_ quit (Ping timeout: 268 seconds)
09:12:13*dadada_ joined #nim
09:20:06*dadada_ is now known as dadada
09:20:50dadadaPartiQL https://www.youtube.com/watch?v=ZsEOhCOFOe4&feature=emb_logo
09:21:47dadadaI think this may be useful, hope a lib for it comes to nim
09:22:51dadadaa query language that works for sql databases, nosql databases, json, ..., basically all popular data storage formats/types
09:23:25dadadaSQL backwards compatible
09:45:29*JustASlacker joined #nim
09:46:56dadadahttps://partiql.org/charter.html
10:01:26*marmotini_ quit (Remote host closed the connection)
10:01:52*marmotini_ joined #nim
10:04:09*abm joined #nim
10:09:03*Zectbumo quit (Remote host closed the connection)
10:21:59*Zectbumo joined #nim
10:25:19*NimBot joined #nim
10:26:50FromGitter<Varriount> dadada: Interesting
10:30:43*dadada quit (Ping timeout: 260 seconds)
10:32:51Demos[m]dadada: neat, I've had much success in the past in research applications with sqlite's ability to load csv files
10:33:32*theelous3 joined #nim
10:39:09*dadada joined #nim
10:39:32*dadada is now known as Guest4472
10:42:11FromGitter<Varriount> dadada: How does it compare to graphql?
10:51:57*Zectbumo quit (Remote host closed the connection)
10:53:21*Guest4472 quit (Ping timeout: 265 seconds)
10:54:09*dadada_ joined #nim
11:04:31*marmotini_ quit (Remote host closed the connection)
11:08:21*dadada_ quit (Ping timeout: 265 seconds)
11:08:30*marmotini_ joined #nim
11:09:13*dadada_ joined #nim
11:10:58*marmotini_ quit (Remote host closed the connection)
11:11:32*marmotini_ joined #nim
11:15:59*marmotini_ quit (Ping timeout: 260 seconds)
11:31:01*dadada_ is now known as dadada
11:34:11dadadaVarriount: here's a comparison https://a.kabachnik.info/odata-jsonapi-graphql-and-partiql-compared.html
11:40:56dadadaVarriount: in this table graphql has support for more features, however it came into life in 2012, while partiql is new, they're stated goal is to add support for everything that developers/customers want
11:41:10dadadas/they're/their
11:42:07dadada(graphql development started in 2012 at facebook internally, and was published in 2015)
11:48:17FromDiscord<clyybber> disruptek: Good enough for now
11:48:22FromDiscord<clyybber> this is nice: https://www.diffchecker.com/m84ir9db
11:50:32*marmotini_ joined #nim
11:51:59*Vladar joined #nim
11:56:15*marmotini_ quit (Remote host closed the connection)
11:58:47*dadada quit (Ping timeout: 240 seconds)
12:00:56FromDiscord<clyybber> disruptek: Ha
12:01:01FromDiscord<clyybber> Stupid typo
12:01:04FromDiscord<clyybber> all tests pass now
12:01:11FromDiscord<clyybber> completely similar to C version
12:01:16FromDiscord<clyybber> onto d2s
12:03:03*marmotini_ joined #nim
12:04:38FromDiscord<Rika> lmao RIP
12:06:51*abm quit (Ping timeout: 260 seconds)
12:08:31FromDiscord<clyybber> but small table still fails completely
12:09:10*dadada joined #nim
12:09:32*dadada is now known as Guest49527
12:10:48FromDiscord<clyybber> argh, why is xsel so bugged
12:12:36FromDiscord<clyybber> disruptek: Straight to the point eh: https://www.diffchecker.com/IXkk4Wzd
12:23:15*Guest49527 quit (Ping timeout: 265 seconds)
12:24:03*dadada joined #nim
12:24:26*dadada is now known as Guest56885
12:25:53*rockcavera joined #nim
12:29:23FromDiscord<Rika> is xsel buggier than xclip?
12:34:37*abm joined #nim
12:38:07*Guest56885 quit (Ping timeout: 260 seconds)
12:39:03*dadada_ joined #nim
12:50:33FromDiscord<clyybber> it doesn't have the pipe bug
12:50:40FromDiscord<clyybber> but its still buggy sometimes
12:51:04FromDiscord<clyybber> like just now, xsel -b -i printed out a part of the thing I pied in
12:51:12FromDiscord<clyybber> but with xsel -p -i it just worked
12:51:50Araqhttps://github.com/nim-lang/RFCs/issues/192 feedback welcome
12:51:52disbotoutplace and chaining ; snippet at 12https://play.nim-lang.org/#ix=2bvf
12:53:03*dadada_ quit (Ping timeout: 260 seconds)
12:54:03*dadada_ joined #nim
12:54:39FromDiscord<clyybber> Why not give dup/outplace an operator?
12:54:46FromDiscord<clyybber> IMO it doesn't make much sense without one
12:56:49FromDiscord<clyybber> And IMO dup and on should be the same
12:56:54leorizeI think it works fine without an operator
12:58:07leorizeI think in implementation, `dup` is just copy then pass to `on` :P
12:58:27FromDiscord<clyybber> Ah, I see. Sorry
12:58:46leorizewill `on` also make macros like Zevv's with obselete?
12:59:03FromDiscord<clyybber> Hmm
12:59:20FromDiscord<clyybber> So on will modify w here
12:59:22FromDiscord<clyybber> But dup will not
12:59:27leorizehmm, is:
12:59:30leorize!repo cascade
12:59:30disbothttps://github.com/citycide/cascade -- 9cascade: 11Method & assignment cascades for Nim, inspired by Smalltalk & Dart. 15 35⭐ 3🍴
12:59:46leorizean implementation of `on`?
12:59:58FromDiscord<clyybber> essentially yeah
13:00:12FromGitter<kaushalmodi> clybber: I had years of switching back and forth xsel and xclip. Have been using xclip for few years now
13:00:37leorizeI use wl-copy, works much better :P
13:00:49FromDiscord<clyybber> leorize: blame nvidia not me
13:00:57leorizebut yea, xclip on X because it doesn't make dot files
13:01:14FromDiscord<clyybber> yeah, thats another sucky thing about xsel
13:01:48FromGitter<kaushalmodi> clybber: http://ix.io/2bvh (from my tcsh config [don't tell me.. work])
13:01:49leorizewell it's your fault to buy a system with nvidia :p
13:02:05FromDiscord<clyybber> me was 13 at the time
13:02:07FromDiscord<clyybber> :p
13:02:36FromDiscord<clyybber> kaushalmodi: Thanks
13:02:57FromDiscord<clyybber> The thing I like about xsel tho
13:03:04FromDiscord<clyybber> which bothers me to no end about xclip
13:03:21FromDiscord<clyybber> is that it runs in the background
13:03:33FromDiscord<clyybber> so I don't have to keep xclip running until I paste it
13:03:50FromDiscord<clyybber> like, when piping from your editor to xclip thats really annoying
13:04:08*ikan-keli_ quit (Ping timeout: 268 seconds)
13:04:08FromGitter<kaushalmodi> clybber: I have a different use case then
13:04:09FromGitter<kaushalmodi> I don
13:04:19FromGitter<kaushalmodi> I don't need to run xsel or xclip in background
13:04:25FromGitter<kaushalmodi> I simply call them via aliases
13:04:57FromGitter<kaushalmodi> as for the editor, emacs does the Right Thing (TM).. I don't have to worry about primary/secondary/clipboard when doing copy/paste there
13:05:22FromDiscord<clyybber> to copy in kakoune I pipe to xsel -b -i
13:05:26leorizewait what? you need xsel to run in the background to paste?
13:05:37FromDiscord<clyybber> leorize: No, it does it automagically
13:05:54leorizeweird, I just pipe things to xclip and it just works?
13:06:40*ikan-keli_ joined #nim
13:07:59*dadada_ quit (Ping timeout: 260 seconds)
13:08:26FromDiscord<clyybber> ah,
13:08:35FromDiscord<clyybber> even xclip runs a daemon I think
13:08:46FromDiscord<clyybber> but the issue is xclip doesn't close stdout
13:08:59FromDiscord<clyybber> https://github.com/astrand/xclip/issues/20
13:08:59disbotNot closing stdout when setting clipboard from stdin
13:09:05*dadada_ joined #nim
13:10:59leorizeyou can make a small nim script to fork xclip then :P
13:11:22FromDiscord<clyybber> I think a replacement for xclip in nim would be better :p
13:11:34*Hideki_ joined #nim
13:11:50leorizehmm but xclip forks a child automatically
13:11:55leorizewhy doesn't it close stdout then?
13:16:11FromDiscord<clyybber> yeah, exactly
13:16:12FromDiscord<clyybber> why?
13:18:30*nsf quit (Quit: WeeChat 2.7)
13:32:27*zyklon quit (Ping timeout: 240 seconds)
13:33:14*marmotini_ quit (Remote host closed the connection)
13:33:49*marmotini_ joined #nim
13:33:59*dddddd joined #nim
13:36:32*zyklon joined #nim
13:36:56*krux02 joined #nim
13:38:51*marmotini_ quit (Ping timeout: 268 seconds)
13:39:10*Hideki_ quit (Remote host closed the connection)
13:43:19*marmotini_ joined #nim
13:47:07leorizeclyybber: meh, just pipe to /dev/null :P
13:48:21leorizeI've just realized how floats are rendered to string in nim: fprintf()
13:49:10Zevvbut not for long!
13:51:08FromDiscord<clyybber> workin on it : )
13:51:35leorizeI'm working on a fresh implementation from that paper :)
13:51:49FromDiscord<clyybber> ah, I'm just translating the C code
13:51:55FromDiscord<clyybber> works pretty well so far
13:52:16leorizeI tried translating it myself, couldn't understand a thing :P
13:52:30FromDiscord<clyybber> well, just translate it without understanding it
13:52:34FromDiscord<clyybber> thats what I am doing
13:52:38FromDiscord<clyybber> understanding can come later
13:52:55FromDiscord<clyybber> understanding is also simpler when looking at nim code as opposed to C
13:55:40leorizeI've always hated curly brackets and ryu code just reminds me of why
13:56:42Zevvleorize: look at the Go code. It translates almost 1 on 1 to Nim
13:59:11*hax-scramper quit (Ping timeout: 246 seconds)
13:59:22leorizetrue
13:59:28*hax-scramper joined #nim
13:59:57FromDiscord<clyybber> what I don't understand is
14:00:08FromDiscord<clyybber> in the C version some of my printfs don't trigger...
14:00:15FromDiscord<clyybber> oh
14:19:17*rockcavera quit (Remote host closed the connection)
14:21:46*rockcavera joined #nim
14:24:06Zevvbah there is still no simple way to connect osproc and async and streams
14:24:19Zevvall I want is to run two subprocesses and consume streaming output
14:24:44*Hideki_ joined #nim
14:26:05*Hideki_ quit (Remote host closed the connection)
14:27:57*Hideki_ joined #nim
14:32:47*Hideki_ quit (Ping timeout: 265 seconds)
14:38:10*Hideki_ joined #nim
14:40:42Zevv`nimble install asynctools` I guess
14:43:09disruptekZevv: i do it in golden.
14:43:32ZevvI did it once, but it was a pain
14:43:34ZevvYou get the asyncFd
14:43:41Zevvbut you can only recv() on a asyncfd, not read
14:43:47Zevvso there is other plumbing
14:44:01Zevvcheatfates libs do the right thing. I just get asyncpipes
14:44:14*floppydh quit (Quit: WeeChat 2.7)
14:44:26disruptekwell, i don't use those.
14:44:47disruptekremember the ioselectors signalfd leak? this is that code.
14:45:05ZevvI have not recollections of that event
14:46:02disrupteki agree it should be easier.
14:46:41disruptekhonestly, ryu should just be a macro in nim.
14:46:45shashlickdisruptek did you see my GraphQL messages from last night
14:46:59disrupteki see it now.
14:47:21disrupteknimgraphql is what i want? i will try it! thanks!
14:47:47shashlickSee the nimterop branch
14:47:55*couven92 joined #nim
14:47:57shashlickThat's what I did last night
14:48:03disruptekoh, cool.
14:48:15disruptekdoes it have a test?
14:48:19shashlickYes
14:48:36shashlickSomeone wrote it so I just continue to use it
14:48:42disrupteknice.
14:48:52shashlickHad to make some changes
14:49:13shashlickBut only Linux and osx
14:49:18disruptektest passes for me. 😁
14:49:27shashlickNo windows according to upstream
14:50:03disruptekeh i'm okay with that.
14:50:18disruptekat some point we have to leave those heathens in the dust.
14:51:26shashlickOk once you give it a thumbs up, I'll merge it and post to nimble, add Travis
14:51:29FromDiscord<clyybber> disruptek: A macro??
14:51:54FromDiscord<clyybber> Its inputs are RT so what use would a macro be?
14:51:54disrupteksure.
14:52:02FromDiscord<clyybber> or do you mean the tables and shit?
14:52:18disruptekthe macro would just fold all the code in.
14:52:38disruptekit's all inline anyway. 😆
14:53:55disruptekthe macro wouldn't use the optimizations; it'd be more friendly to nim that way.
14:54:23FromDiscord<clyybber> inline is not CT
14:55:20disrupteki know, silly.
14:55:36FromDiscord<clyybber> I mean, the difference comes out to be inline in nim vs inline in c
14:55:48FromDiscord<clyybber> prolly doesn't matter
14:55:52FromGitter<alehander92> zevv i use asynctools for that iirc
14:55:56FromGitter<alehander92> it seems to work fine
14:56:16disruptekexactly; it doesn't matter. so there's no reason it won't work.
14:56:43Zevvalehander92: yeah it works. But I still feel all this should be in the stdlib. But nevermind, I'm good for now
14:57:38*nsf joined #nim
14:57:57FromDiscord<clyybber> disruptek: Yeah
14:59:14*Kaivo quit (Ping timeout: 240 seconds)
14:59:22FromGitter<alehander92> yeah it would be good to fix this
14:59:25FromGitter<alehander92> i agree
14:59:31FromGitter<alehander92> what happened with awating flowvars
14:59:37FromGitter<alehander92> btw
15:00:41FromDiscord<clyybber> disruptek: Hmm, I tracked the small_table issue down
15:01:23FromDiscord<clyybber> its due to the fact that `sum >> (shift - 32)` in C is not the same as `sum shr (shift - 32)` in nim
15:01:25FromDiscord<clyybber> somehow
15:02:15FromDiscord<clyybber> where shift is an int32
15:02:25FromDiscord<clyybber> and the result is uint64
15:02:27FromDiscord<clyybber> and sum too
15:04:06FromDiscord<clyybber> I suspect its due to implicit type conversions
15:04:41FromGitter<alehander92> wow i was reading the ""The fourth" "assignment" "would crash" "out of bounds" comment
15:04:45FromGitter<alehander92> of newSeq
15:04:52FromGitter<alehander92> and i spent like half a min wondering
15:05:04FromGitter<alehander92> if this is some kind of commentary on US constitution
15:05:33FromGitter<alehander92> oh, those were amendments
15:05:53FromGitter<alehander92> i really need to get some air
15:08:14FromGitter<patrkris> Hello everybody. I am trying to build an executable for OpenBSD on a Mac with the following command: `nim c --os:openbsd --cpu:amd64 src/daemon.nim`. ⏎ ⏎ It ends up with the following error: `ld: unknown option: -rpath=.:/usr/local/lib:/usr/pkg/lib:/usr/X11R6/lib`
15:08:18FromGitter<patrkris> Any suggestions?
15:14:47*paxis quit (Ping timeout: 260 seconds)
15:19:45FromGitter<patrkris> Ah, had to change `-rpath=...` to `-rpath,...`
15:19:47FromDiscord<clyybber> Hmmm, this is really fucking weird
15:22:14*actuallybatman joined #nim
15:23:44krux02why do I get constantly reminded of timotheecours shitty contributions
15:24:03*ptdel joined #nim
15:25:17FromGitter<alehander92> krux02 are you 12
15:26:01krux02this is something that I am not supposed to talk in public about, but I am not a Nim member anymore, so I can
15:26:12krux02this guy is the most toxic contributor to Nim
15:26:37FromDiscord<clyybber> timotheecour is the antithesis of toxic
15:26:47FromDiscord<clyybber> maybe a bit subborn at times, but really not toxic
15:26:47FromGitter<alehander92> honestly krux02, just dont talk about this
15:26:54FromGitter<alehander92> before you say something more stupid
15:26:58FromDiscord<clyybber> and he is a great contributor
15:27:13krux02tell me one thing that me mad that is good quality?
15:27:34krux02something that actually improved things
15:28:04FromDiscord<clyybber> recently?
15:28:08krux02no
15:28:10FromDiscord<clyybber> this for instance: https://github.com/nim-lang/Nim/pull/13386
15:28:10krux02just one
15:28:12disbotfix several bugs with `repr` ; snippet at 12https://play.nim-lang.org/#ix=2bw2
15:28:13krux02in total
15:28:30FromDiscord<clyybber> this: https://github.com/nim-lang/Nim/pull/13345
15:28:33disbotfix #13182: `proc fun(a: varargs[Foo, conv])` now can be overloaded ; snippet at 12https://play.nim-lang.org/#ix=2bw3
15:28:38FromDiscord<clyybber> tho it caused regressions araq fixed them
15:28:55FromDiscord<clyybber> and you can't blame him for not understanding sigmatch
15:29:32FromGitter<alehander92> he has provided some useful things and some not-perfect things, similarly to many contributors
15:29:49FromDiscord<clyybber> krux02: https://github.com/nim-lang/Nim/pull/13290
15:29:52disbotfix bug discovered by #11591: `proc `<`*[T](x, y: set[T])` was wrong ; snippet at 12https://play.nim-lang.org/#ix=2bw5
15:30:11FromDiscord<clyybber> sure, the total quantity is a bit big
15:31:21FromDiscord<clyybber> but there are many contributions by him that have greatly improved nim
15:32:59FromDiscord<clyybber> I can understand not liking all of his contributions
15:33:16FromGitter<alehander92> the guy has 236 merged pr-s, if at least a small % of them weren't useful, there is a much bigger problem with the core team than with him
15:34:01FromDiscord<clyybber> but his contributions explore different directions
15:34:37FromDiscord<clyybber> and some of them are really great
15:34:47FromDiscord<clyybber> (those that get merged : ))
15:35:50FromDiscord<clyybber> you can criticize his pace
15:36:02FromDiscord<clyybber> or that hes fast to open an issue or PR
15:36:19FromDiscord<clyybber> but that does not even remotely outweigh his valuable contributions
15:36:21FromGitter<alehander92> we should have somehow met krux and timothee on FOSDEM on a dinner of mayo fries and fixed all that already
15:37:19FromDiscord<clyybber> its the competition of the alike
15:37:24FromDiscord<clyybber> :p
15:38:07krux02clyybber, I just stubled upon code in that in `typetraits`, and my thought were: "WTF what does thing thing do here? Why do we need it? on top of it, it is also wrong!"
15:38:20krux02Then I looked who wrote it, and it was timothee cour
15:39:07FromDiscord<clyybber> krux02: Ok, but don't degrade all of his contributions
15:39:14FromDiscord<clyybber> krux02: Which code btw?
15:39:35*Hideki_ quit (Remote host closed the connection)
15:39:37krux02I don't want to constantly clean up bugs that he introduced. I don't want to constantly explain why his contributions that look good are in fact bad. And I don't want to deal with the backlash from the community anymore when he instrumentalizes his fans against me.
15:39:55FromDiscord<clyybber> nobody here has "fans"
15:40:09krux02clyybber: in this case `lenTuple` in typetraits
15:40:19*Hideki_ joined #nim
15:41:14FromDiscord<clyybber> krux02: Ah, I see. What is the bad part about it?
15:41:23FromDiscord<clyybber> I myself don't particularily like lenVarargs
15:41:27FromDiscord<clyybber> So maybe its the same vain
15:41:39disruptekhey, i have fans.
15:41:55FromDiscord<clyybber> ~disruptek is an exception
15:41:55disbotdisruptek: 11a sexy fella with magic hands.
15:41:56disbotdisruptek: 11don't listen to him
15:41:56disbotdisruptek: 11an unsafe nil deref
15:42:05FromDiscord<clyybber> ~disruptek
15:42:05krux02clyybber: the bad part about it is, it doesn't work
15:42:05disbotdisruptek: 11a sexy fella with magic hands.
15:42:05disbotdisruptek: 11don't listen to him
15:42:06disbotdisruptek: 11an unsafe nil deref
15:42:09FromGitter<alehander92> krux02 "he instrumentalizes his fans against me."
15:42:19krux02if you put generics or type aliases in it, you get wrong results
15:42:24FromGitter<alehander92> ok man how can i get your position seriously with such tabloid stuff
15:42:50krux02then from the same PR there is template get*(T: typedesc[tuple], i: static int): untyped
15:43:06FromGitter<alehander92> i dislike many ideas of him, i just hate your personal drama, get a life
15:43:10krux02this is unlike the other PR correct
15:43:27krux02except that the term is `typeof` not `type`.
15:44:13Araq`type` is not yet deprecated though, not his fault
15:44:20FromDiscord<clyybber> krux02: No, type is correct
15:44:20*Hideki_ quit (Remote host closed the connection)
15:44:32FromDiscord<clyybber> And type was hated on without reason
15:44:32*Hideki_ joined #nim
15:44:43FromDiscord<clyybber> There was ONE thing that didn't work with it as opposed to typeof
15:44:46FromDiscord<clyybber> But that got fixed
15:45:45FromDiscord<clyybber> get() I find kind of redundant
15:45:51*Hideki_ quit (Remote host closed the connection)
15:45:58Araqclyybber: I think I had good reasons for hating it :P
15:47:12FromDiscord<clyybber> Araq: keyword overloading?
15:47:16FromDiscord<clyybber> I guess thats fair
15:47:50krux02well my editor still hates `type`.
15:47:59FromDiscord<clyybber> so fix your editor
15:48:01FromDiscord<clyybber> ?
15:48:19krux02sorry, but I can't too complicated
15:48:30FromDiscord<clyybber> huh?
15:48:35shashlickThe only real recommendation I have is to ask the repo owner if they are interested in a particular PR before spending hours on the implementation
15:48:44FromDiscord<clyybber> yeah
15:49:09FromDiscord<clyybber> OTOH its his time :p
15:49:22disruptekno, because it costs time to bikeshed.
15:49:59FromGitter<alehander92> i dont think it does
15:50:01Araqclyybber: yeah plus 'typeof' can now take optional parameters
15:50:14FromDiscord<clyybber> oh
15:50:17FromDiscord<clyybber> I didn't know that
15:50:24FromGitter<alehander92> after all, a project must have its own priorities and internal guidelines and not lose much time with "offtopic" ideas
15:50:41FromGitter<alehander92> cant really imagine how can issues/pr-s somehow force a project to lose time with them
15:51:27krux02clyybber: the problem is, the original repo owner isn't active anymore.
15:51:46disrupteksocial standards encourage core to spend time on bikeshedding.
15:51:54FromDiscord<clyybber> krux02: Whats the difference between a macro with newLit t.len and a template with default(t).len ?
15:52:02FromDiscord<clyybber> disruptek: Yeah true
15:52:15FromDiscord<clyybber> krux02: Well, then fork it :p
15:52:21krux02clyybber: big difference
15:52:37FromDiscord<clyybber> I mean, why is it implemented as a macro here?
15:52:50krux02t.len counts the ast nodes
15:52:51FromGitter<alehander92> krux02 you cant just decide what keywords to use just because an older plugin is not maintained..
15:53:04krux02and a type called `MyType` has no children
15:53:18krux02therefore it will return 0
15:53:19FromDiscord<clyybber> argh
15:53:20FromGitter<alehander92> disruptek well maybe, but this can still be limited enough for things which are lower priority
15:53:29FromDiscord<clyybber> krux02: Will you make a PR to remove those?
15:53:32FromDiscord<clyybber> along with get?
15:53:45krux02I can
15:54:01FromDiscord<clyybber> they are not in a release yet
15:54:03FromDiscord<clyybber> so we still can
15:54:24FromDiscord<clyybber> And maybe point out to timothee that these are wrong
15:54:32FromDiscord<clyybber> but don't attack him personally please
15:54:35shashlickdisruptek there's value in discussion
15:54:45shashlickEvery real world team does it
15:55:01disruptekyes, but can only come from a 2nd party's investment.
15:55:10disruptekergo one party forces the investment of the other.
15:56:03disruptekin the real world, team members often share the same stakeholders in their work. ie. employers, customers, etc.
15:56:07disruptekthis is not the case here.
15:56:20FromDiscord<clyybber> krux02: Can you apply the Expected ident suggestion? So that its in line with expectLen and so on
15:56:32shashlickWell I'm talking about a second party making a PR and then expecting review without even talking about the idea with the owner
15:56:33FromDiscord<clyybber> Because I changed them recently to have a bit nicer error messages
15:56:58*Kaivo joined #nim
15:57:00krux02clyybber, yes I can.
15:57:06FromDiscord<clyybber> thanks
15:57:20disruptekin any event, someone has to type some words and foment argument.
15:58:07disrupteki try not to produce such PRs. that's all i'm saying.
15:58:43FromDiscord<clyybber> krux02: Regarding the let thing. How is there any difference in readability between const and let??
15:59:06FromGitter<alehander92> yeah i admit i was also surprised by this line in the $ pr
15:59:09krux02it is just super minor
15:59:31FromDiscord<clyybber> krux02: Still better to have it be a const
15:59:37krux02if you declare multiple variables
16:00:02krux02and one of them is `const` the other ones are `let`, then it looks out of place, it has different alignment and stuff.
16:00:10FromDiscord<clyybber> ugh
16:00:13disruptek...
16:00:22FromDiscord<clyybber> but let has a runtime impact (yes nitpicky)
16:00:27krux02I just don't want to give this specialness to that
16:00:31krux02clyybber: no it doesn't
16:00:37FromDiscord<clyybber> sure, on tcc
16:00:47krux02who uses tcc?
16:00:52FromDiscord<clyybber> nim c -r
16:00:53disruptekplease don't abuse semantics just to make it look pretty.
16:01:16FromDiscord<clyybber> also, its better to have it const because it is const : )
16:01:21FromDiscord<clyybber> thats what the keyword means
16:01:38krux02and even if it has a runtime impact, it isn't measurable
16:01:57FromDiscord<clyybber> and if it has a readability impact, I don't see it
16:02:02disruptekgreat; we'll fix it when it's measurable, then?
16:02:41krux02yes
16:02:50FromDiscord<clyybber> Why tho?
16:02:53disruptekadd a comment.
16:02:54FromDiscord<clyybber> Just change it to const
16:02:59disruptekwith your mobile number.
16:03:13FromDiscord<clyybber> *social security number
16:03:32disruptek"call krux02 when the performance here dictates a change from this pretty indented block"
16:03:40FromDiscord<clyybber> krux02: No in all seriousness. Please change it to const
16:03:43FromGitter<alehander92> yeah, semantics beats grouping here imho
16:03:58FromDiscord<clyybber> if someone comes along and wants to put a when there
16:04:11FromDiscord<clyybber> and that when depends on isNamed
16:04:32*Hideki_ joined #nim
16:04:33FromDiscord<clyybber> then its better if it is const
16:04:41FromDiscord<clyybber> otherwise the person might change it to if
16:04:53FromDiscord<clyybber> repeat from step 1
16:04:55disruptekthe horror
16:05:03FromDiscord<clyybber> and at some point we have a measurable rt impact :p
16:05:32*ftsf quit (Read error: Connection reset by peer)
16:05:50FromGitter<alehander92> and sorry for the ugly responses earlier, krux02, they were undignified
16:06:33disruptek~motd
16:06:34disbotmotd: 11if you make $50/hr and work a 40hr week, you cost (someone) $2,000. For the same amount of money, you can run 238 servers at $0.05/hr, 24/7. Can you create more value than that for $2,000/wk? -- disruptek
16:06:56FromGitter<nhanb> Hi everyone, in karax how can I make an <input> tag whose disabled attribute depends on state? I've tried `input(disabled = if state.searching: "disabled" else: "")` but of course even if `state.searching == false` then the resultant `<input disabled="">` is still, well, disabled
16:06:58FromDiscord<clyybber> krux02: there I even made it so you only have to press a button 😛 https://github.com/nim-lang/Nim/pull/13398#discussion_r378350355
16:06:59disbotSmall refactor on generic dollar for object
16:07:02disruptekkrux02: since you're here, should i use compiler/int128 in ryu? any gotchas?
16:07:04FromGitter<alehander92> i still think your way to deal with this kind of thing is very wrong, but i'll try to handle it in a different way
16:07:16FromGitter<nhanb> not sure if I'm missing something obvious
16:08:21FromDiscord<clyybber> alehander92: You are wholesome 😄
16:08:39FromDiscord<clyybber> not sure If thats correct english
16:08:50*Hideki_ quit (Ping timeout: 240 seconds)
16:10:40*u0_a122 quit (Read error: Connection reset by peer)
16:13:56*leorize quit (Remote host closed the connection)
16:14:25*leorize joined #nim
16:14:56FromGitter<nhanb> oh nvm I can do `kstring(nil)`
16:18:43krux02disruptek, int128 should work reliably
16:18:51krux02if you need 128 bit integers, go for it.
16:18:58disrupteksweet, thanks.
16:19:18FromGitter<alehander92> clyybber i am not
16:19:24FromDiscord<clyybber> disruptek: Its not uint128 tho?
16:19:25shashlickAraq - wanted to ask about ssl dll loading, related to #9419
16:19:27disbothttps://github.com/nim-lang/Nim/issues/9419 -- 3httpclient -d:ssl and db_postgres incompatible and cause SIGSEGV! (MacOSX) ; snippet at 12https://play.nim-lang.org/#ix=2bwr
16:19:57shashlickare you around
16:20:00krux02just rememeber int128 is made for compiler intern, therefore it is not optimized for everything and it might be possible that you need to extend it.
16:20:16disrupteksure.
16:20:29FromDiscord<clyybber> alehander92: > Conducive to or promoting social or moral well-being
16:20:43FromDiscord<clyybber> well, I meant you are kind
16:21:14krux02It is also not the fastest int128 implementation, but if it is used by more parts of the compiler, improving the performance might become something with higher reward.
16:21:48disruptekright. i'm only asking because i'm getting differing results between our impl and c.
16:22:03disrupteknow i know it's worth finding out why.
16:22:18FromDiscord<clyybber> disruptek: I can tell you
16:22:27disruptekyeah?
16:22:35FromDiscord<clyybber> for the smallsize thing
16:22:37FromDiscord<clyybber> its not int128
16:22:52FromDiscord<clyybber> its mulShift
16:23:10FromDiscord<clyybber> the shiftedSum calculation
16:23:15FromDiscord<clyybber> it differs between c and nim
16:23:19FromDiscord<clyybber> FOR SOME FUCKING REASON
16:23:36FromDiscord<clyybber> what does this output for you? : https://hastebin.com/iluzapedon.cpp
16:24:19disruptek0
16:24:36FromDiscord<clyybber> same here
16:24:49FromDiscord<clyybber> in ryu it outputs 100000000
16:24:50FromDiscord<clyybber> tho
16:24:54FromDiscord<clyybber> and in nim its 255
16:25:01disruptekwut
16:25:01FromDiscord<clyybber> maybe printf is bugged
16:25:03FromDiscord<clyybber> wth
16:25:08disrupteknah.
16:25:31disruptekare you using my branch?
16:25:43FromDiscord<clyybber> no
16:25:44FromDiscord<clyybber> my own
16:25:53FromDiscord<clyybber> I'm 1 to 1 to C
16:26:03disruptekwell, then what is your first failing test?
16:26:15FromDiscord<clyybber> none without the smalltable thing
16:26:21FromDiscord<clyybber> all of them with it
16:26:28FromDiscord<clyybber> RYU_OPTIMIZE_SIZE I mean
16:26:35FromDiscord<clyybber> https://www.diffchecker.com/aVVDlcsM
16:26:42FromDiscord<clyybber> this is the difference between C and nim
16:26:47FromDiscord<clyybber> sorry for the bogus
16:27:03disrupteki don't have your branch. also, i don't have your bugs.
16:27:31FromDiscord<clyybber> does small table work for you?
16:27:41disruptekbetter than it does for you.
16:28:04FromDiscord<clyybber> fite me
16:28:28disruptekdo you have a nim version of this c?
16:28:35disruptekto demo your assertion?
16:28:35FromDiscord<clyybber> yeah
16:28:41disrupteklemme see.
16:28:58FromDiscord<clyybber> https://hastebin.com/uvilojagav.bash
16:29:05FromDiscord<clyybber> shiftedSum here
16:29:11FromDiscord<clyybber> but this doesn't make sense
16:29:20FromDiscord<clyybber> I think printf cant print uint64s
16:29:23disrupteklook chuckles, i want a nim version of your 0 shifter.
16:29:26FromDiscord<clyybber> like maybe it prints only the one part
16:29:39disruptekthat's ridiculous.
16:29:51FromDiscord<clyybber> everything else doesn't make sense
16:30:02FromDiscord<clyybber> the generated C code also looks the same
16:30:04disrupteklook chuckles, i want a nim version of your 0 shifter. still.
16:30:11FromDiscord<clyybber> disruptek: Aight fella one minute
16:30:15disruptekaight
16:30:36disruptekplayground plz
16:31:03disrupteksee, i'm not so worried about this stuff. i'm more worried about how our math is more accurate than ryu's.
16:31:22disruptekie. i figure we are probably wrong but in the direction of tighter bounds.
16:31:40FromDiscord<clyybber> https://play.nim-lang.org/#ix=2bwA
16:31:43disruptekso i wanna know why we're somehow missing precision. or, conversely, why ryu is.
16:32:17FromDiscord<clyybber> eh, delete the first few lines
16:32:41FromDiscord<clyybber> https://play.nim-lang.org/#ix=2bwB
16:32:55FromDiscord<clyybber> hmm
16:32:57FromDiscord<clyybber> zero here too
16:32:58FromDiscord<clyybber> wtf
16:33:01FromDiscord<clyybber> printf is broken
16:33:49disruptekon the plus side, math works.
16:34:10disruptekwell, i thought it was funny, anway.
16:34:19FromDiscord<clyybber> he
16:34:32FromDiscord<clyybber> so WHY the fuck does gcc just swallow
16:34:43FromDiscord<clyybber> instead of telling me
16:34:46FromDiscord<clyybber> what a bitch
16:34:58disruptekbut seriously, run my branch. it's a waste for three people to reimpl this.
16:35:01disruptekgcc warns.
16:35:04disruptekyou just ignore it.
16:35:34FromDiscord<clyybber> disruptek: I know
16:35:38FromDiscord<clyybber> but I got it right the first time
16:35:50disruptek%lu is for long uints.
16:35:58FromDiscord<clyybber> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
16:36:00disruptekanyway, who cares.
16:36:03FromDiscord<clyybber> damn
16:36:05FromDiscord<clyybber> thanks
16:36:15FromDiscord<clyybber> disruptek: I'm just so close
16:36:20disruptekdo you somehow have warnings off?
16:36:29disruptekokay. keep at it, then.
16:36:33FromDiscord<clyybber> not that I know of
16:36:34disruptekit could be valuable.
16:36:42FromDiscord<clyybber> yeah, we can diff it in the end
16:36:46disruptekwarning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Wformat=]
16:36:59FromDiscord<clyybber> not sure why it swallowed that
16:37:08federico3https://github.com/sstadick/nython create Python extension modules from Nim
16:37:51FromDiscord<clyybber> :q
16:38:24FromDiscord<clyybber> make shouldn't swallow errors right?
16:38:33disruptekup to you.
16:38:43disruptekyou wrote a makefile for that thing?
16:38:47FromDiscord<clyybber> no
16:38:49FromDiscord<clyybber> there was one
16:39:04FromDiscord<clyybber> bbl
16:39:06disrupteklook, we just need to bootstrap this thing.
16:39:14disruptekleorize will write a proper impl in nim.
16:39:18disrupteksomething elegant.
16:39:29disruptekwe just need to be able to run the tests.
16:42:36shashlickdisruptek: so should i merge nimgraphql to master
16:42:55disrupteki think your use has to trump my needs.
16:43:00disrupteks/use/user/
16:43:16disruptekshould be okay if you can cut a new release, though.
16:43:45shashlickthis is one of those things - i make wrappers but only use 5% of them myself
16:44:06disruptekmaybe, but we use them, buddy. we love them.
16:44:25shashlickdeal
16:44:57disruptekclyybber: see, the c version has a different value for factorLo.
16:47:32shashlickdisruptek: any opinion on https://github.com/nimterop/wrappers - i'd prefer not depending on the whole repo and just pull what you want via some nimterop code but wondering if worth the effort doing this
16:47:34disruptekno, she said "hemorrhoids on my face" sounds serious enough that she wants to see me later today. i think she just wants to post my picture on IG.
16:47:41disrupteker, wrong window.
16:48:06Araqlol
16:48:22disruptekshashlick: how could this work?
16:48:56shashlickinstead of posting wrappers in random pastes and posts, or creating full repos out of them
16:48:57shashlickhaving one place for it
16:49:44disrupteki'd prefer awesome-nim-wrappers and this amazing thing called href.
16:50:04disruptekthis looks like a nightmare to ecosystem.
16:50:43disruptektoday, your work can get easily consumed and enhanced by others.
16:50:44krux02clyybber: do you have tha snippet for shiftedSum also in nim?
16:51:01shashlickdisruptek: a wrapper could depend on other wrappers
16:51:07disruptekgood.
16:51:12shashlicke.g. libarchive needs zlib
16:51:22shashlickso user would have to download each one at a time
16:52:06disrupteknever bothered me before.
16:52:39*Hideki_ joined #nim
16:53:26shashlickanti package management
16:54:23leorizedisruptek: if you need int128, iirc there's this one:
16:54:26leorize!repo stint
16:54:27disbothttps://github.com/status-im/nim-stint -- 9nim-stint: 11Stack-based arbitrary-precision integers - Fast and portable with natural syntax for resource-restricted devices. 15 32⭐ 2🍴
16:54:52disruptekthanks, gonna try to make something we can painlessly include in stdlib, first.
16:56:06krux02clyybber: I did this: proc main() =
16:56:06krux02 const sum: uint64 = 0;
16:56:06krux02 const shift: int32 = 59;
16:56:06krux02 const shiftedSum: uint64 = sum shr (shift - 32);
16:56:06krux02 echo shiftedSum
16:56:07krux02
16:56:09krux02main()
16:56:23krux02sorry I mean here on pastebin: http://ix.io/2bwK
16:56:36krux02also in Nim it returns 0
16:59:38leorizethis is kinda next level: ```type mismatch: got <FloatClass, FloatClass> but expected one of: proc `==`[Enum: enum](x, y: Enum): bool```
16:59:44leorizeand FloatClass is an enum...
16:59:46krux02sorry, finally I reached the end of the conversation and found out that it was already solved
17:00:01FromGitter<nixfreakz_twitter> Those at Fosdem great speeches about nim , thank you
17:00:24AraqI appreciate the effort spent on ryu but some of you need to help me with ARC ;-)
17:00:48disruptekuh oh
17:01:32disruptekclyybber: fwiw, my code is passing the wrong factor and shift values. 🙁
17:02:00disruptekwhat's wrong with arc?
17:03:35*opal quit (Remote host closed the connection)
17:03:57*opal joined #nim
17:04:01leorizeah figured out the problem
17:04:09shashlickAraq - do you have time to talk about #9419
17:04:10disbothttps://github.com/nim-lang/Nim/issues/9419 -- 3httpclient -d:ssl and db_postgres incompatible and cause SIGSEGV! (MacOSX) ; snippet at 12https://play.nim-lang.org/#ix=2bwr
17:04:15leorizethe compiler helpfully not include where each types came from
17:04:27leorizeapparently there's a floatclass in the math module
17:04:42leorizeand it got confused with my floatclass
17:04:54Araqshashlick, what about it?
17:05:37shashlickso wanted to ask about the whole dll search method we use in Nim
17:05:58shashlickwhereas you typically use -lname to link libraries dynamically
17:06:15shashlickNim instead loads it manually at runtime
17:06:53shashlickthat's what causes this discrepancy where another dll dep was linked to ssl, we are searching and loading based on our search order
17:07:05shashlickif we followed the same -l method for ssl and other stuff, we won't run into this issue
17:07:18shashlicki wanted to understand the rationale of why it is the way it is today
17:09:44leorizeiirc the idea was that you don't have to install -dev packages to get .so files used for linking
17:09:56Araqthe rationale was that nothing else makes sense
17:10:50shashlickwhy not just use the libxxx.so that is setup by the package manager
17:11:13Araqthat's what we try to do.
17:11:30shashlickbut https://github.com/nim-lang/Nim/blob/devel/lib/wrappers/openssl.nim#L68
17:11:34Araqthe package managers add junk to the names though, libxxx.so.1
17:11:54leorizethat's not the package managers fault
17:11:56shashlickwe load dlls with an explicit version preference
17:12:05leorizethat's how shared library are designed in linux
17:12:39Araqwe can change it but I had good reasons for the existing setup
17:12:47Araqthat's all I'm saying really
17:12:49shashlicki'm sure you did and i simply want to understand it
17:13:04Araq1. requires -dev packages (wth?)
17:13:10shashlickthe problem is that linking to libcurl or libpg which uses -l to link to its deps is conflicting with our search order
17:13:35Araq2. Python et al cannot do this superior "static linking" to begin with, so I assumed it can work out
17:14:36*nsf quit (Quit: WeeChat 2.7)
17:14:44shashlickwhy do you need -dev packages? if you simply said `DLLSSLName = "libssl.so" and did what we do today, it would work
17:14:50shashlickinstead of appending versions to the end
17:15:11leorizeit's recently that OS starts shipping .so without -dev
17:16:04*Trustable joined #nim
17:16:04Araq3. Unclear design: So it's a dynamic library and yet I'm supposed to link to a static shell instead? why? why not avoid lib*so then to start with and make me link against static libs?
17:16:26*marmotini_ quit (Remote host closed the connection)
17:16:31Araqso now you know my reasons. I'm not saying they are good reasons (anymore)
17:17:02*marmotini_ joined #nim
17:17:03disruptektbh, i don't understand any of those three.
17:17:08federico3shared libraries support versioning to allow updating their ABI
17:17:27shashlicki'm in the same boat
17:17:50federico3and allow multiple major releases
17:18:00Araqas I said, let's change it
17:18:11Araqit's not the first time this comes up either
17:18:41leorizeso reasons for our "regex" searching imo: it doesn't require `.so`, which might link to a version with incompatible ABI; it let us specify which library version are we compatible with
17:18:53shashlicktheoretically, we can fix that issue by simply removing all version ordering but i still need to test it when I get my hands on osx again
17:19:14shashlickbut if there is a need, we need to fix it such that the default is to not search by version but still offer it for whoever needs it
17:19:16leorizeI think any alternative proposal should be able to satisfy those constraints
17:19:18federico3leorize: regex?
17:19:20shashlicki don't see why but ya
17:19:24Araqshashlick, can you imagine things started out without the version requirement and then stuff got patched? ;-)
17:19:28disruptekit would be an opportunity to fix the search path, too.
17:19:37*Hideki_ quit (Ping timeout: 268 seconds)
17:19:37leorizefederico3: not regex per se but pattern matching
17:20:30federico3yes, pattern matching. Ideally, version-aware pattern matching, so that we can match e.g. >= 1.1.0 and < 2
17:20:57Araqfederico3, isn't that what we do?
17:21:01shashlicki think we should offer the tools to search but not be prescriptive
17:21:23*marmotini_ quit (Ping timeout: 260 seconds)
17:21:36leorizeOn *nix, I think I can figure out a way to implement our kind of pattern matching at link time
17:21:50leorizeassuming a GNU ld compatible linker is used
17:22:08Araqleorize, if we change it, let's just use what everybody else uses
17:22:08leorizeon windows it's a different story though
17:22:22federico3Araq: in the shared object loading? No, right now we hardcode multiple version numbers :(
17:22:25disruptekAraq: copying bad design is not good design.
17:22:25Araqon Windows it simply works anyway, no need to touch it
17:22:27shashlickhas this crash been reported on linux
17:22:33shashlickmaybe it is an openssl bug on osx
17:22:55leorizeosx have complicated search path due to not having a proper package management system
17:23:04federico3https://github.com/nim-lang/Nim/blob/49d1822c8f1cfd418e978a5c9c58343369d9f956/lib/wrappers/openssl.nim#L68
17:23:05Araqdisruptek, "Copying bad design is good when you don't know the good design"
17:23:21*marmotini_ joined #nim
17:23:26disruptekah, that explains nimble.
17:23:39disrupteki've been wondering about that...
17:25:03*paxis joined #nim
17:26:43shashlickthis version list has been there since day 1 in Nim repo - https://github.com/nim-lang/Nim/blame/e6b52fe219f42d0483f467c3ad12b86949fe8eba/lib/wrappers/openssl.nim
17:26:49shashlickdom96 is the original author
17:27:03leorizeyea, we can't be compatible with *all* openssl versions
17:27:26federico3...that's why the ABI is versioned...
17:27:46shashlickno easy answer
17:27:56federico3shashlick: huh?
17:28:02*krux02 quit (Remote host closed the connection)
17:28:04leorizewe can link it as usual
17:28:20shashlickbut fact is the same can be said of any library
17:28:37disruptekjust let people link to sdl outside the exe directory k please ty
17:28:53shashlickpicking versions which are different from what the system picks will always lead to this issue
17:29:16leorizejust that instead of telling the user "you need this version" they'll get "symbol <insert name here> not found" at link time
17:29:38leorizethough I'd say that having the "symbol not found" at link time is better indeed
17:29:40shashlickbut i'm confused by one thing - the first version in the list is nothing - (|...) which means Nim should first pick libname.so in the search path
17:29:59federico3yes and it's not good
17:30:03leorizeshashlick: macports/homebrew have their own search path
17:30:21leorizewe don't account for that
17:30:28shashlickthe only way I could repro this was by changing DYLD_LIBRARY_PATH
17:31:08federico3https://en.wikipedia.org/wiki/Soname here.
17:32:03leorizelet's just switch to `-l` for *nix, strip everything from the .so and remove `lib` prefix and we're done
17:32:42federico3huh? no, why?
17:32:47leorizeI was trying to see if there could be anything worth keeping in the current dynlib but it seems like that there aren't
17:33:11leorizefederico3: it's better to link at link time directly to the system version
17:33:19federico3no way
17:33:22leorizeif the abi is incompatible it will screams at us anyway
17:33:29federico3not true
17:33:41leorizehow?
17:33:47*marmotini_ quit (Remote host closed the connection)
17:34:22*marmotini_ joined #nim
17:34:55leorizewhen the linker can't find one of the symbols that we want, it screams at us
17:35:54federico3people invented versioning for good reasons. You want to be compatible with a range of version that have an ABI that is stable and that have been tested. At the same time the end user has to be able to do security and stability updates - and even replace an implementation with another one without breaking things and without having to update a hundred binaries across the system.
17:36:12leorizeuhmmm we are doing this at link time
17:36:21leorizethe linker will add the SONAME to DT_NEEDED
17:36:35leorizeand it will also verify that all symbols are satisfied
17:36:46leorizelike with every ordinary linking operation for any C program
17:37:10federico3I'm talking about runtime. Also, the ABI can change behavior (in a backward incompatible way) without removing a symbol
17:37:50federico3...so having the symbol resolution satisfied is not enough
17:37:59leorizewhen that happens they bump the soname, the dynamic linker can't find the one in our DT_NEEDED section and we're good
17:38:25shashlickfederico3 - that's exactly what they say in the link you shared
17:38:31leorizethis is exactly how every C program is compiled on *nix, the soname is there
17:38:33*marmotini_ quit (Remote host closed the connection)
17:38:49federico3That's why you want a range of soname versions that is checked at runtime
17:38:49*marmotini_ joined #nim
17:38:54shashlickprogram says I linked with this so version and need a compatible version
17:38:55leorizewe are doing the link using the C compiler instead of our hacky dlopen
17:39:20leorizethis is exactly what SONAME is designed for
17:40:02*abm quit (Ping timeout: 240 seconds)
17:40:44leorizemy proposal is that we don't do linking at runtime via our stdlib but delegate the task to the system dynamic linker
17:40:47federico3yes you can use it to resolve the name - but without hardcoding a full version number
17:40:50leorize(ie. how every C program do it)
17:41:08shashlickso long story short, i still don't get the history behind our own search algo when there's an established one
17:41:10leorizefederico3: the "compatible" version is usually denoted in the soname
17:41:44shashlickonly good answer so far is our implementation predates good behavior in distros
17:41:49disruptekshashlick: the past is apparently no bearing on the future.
17:41:55federico3leorize: that's correct if you mean the major number returned by the linker
17:42:10leorizeyes, we are gonna use that instead by linking at compile time
17:42:11federico3shashlick: not at all
17:42:42leorizethe proposal is that to simplify all this by just doing compile-time linkage
17:43:02leorizethe right soname will be added to the binary, and we even got symbol checking for free by the linker
17:43:09shashlicki always like to ask why something exists before assuming i know a better way
17:43:44federico3leorize: if you write "compile-time linkage" it sound like static linking
17:44:08leorize:p I'm outta word here
17:44:20leorizedynamic and it will sounds like linking with our runtime
17:44:24federico3that's compile-time name resolution
17:44:25shashlicklet me ask this - can Nim compile a binary with SSL dependencies without having a functional libssl.so at compile time
17:44:40leorizeas of now, yes
17:44:42shashlickconsidering we are loading at runtime
17:45:04shashlickthat's an advantage of the current method perhaps
17:45:07*sigmapie8 joined #nim
17:45:58leorizeare you not going to run it after you build it? :p
17:46:01shashlickbut doubt that's the primary motivation
17:46:04shashlick😄
17:46:41leorizeI'd say that the advantage is impractical
17:46:44federico3leorize: not necessarily
17:47:17leorizetrue, if you are talking about CI/release systems
17:47:32federico3or crosscompilation
17:48:15shashlicknow that we have https://github.com/nim-lang/Nim/blob/devel/lib/wrappers/openssl.nim#L38 sslVersion, we can remove version from the posix section
17:48:24leorizeno
17:48:26shashlickif someone really wants to link with a particular version, he can
17:48:33federico3no no
17:49:01leorizewe can only remove that once we switch to the `-l` approach
17:49:33shashlickdoesn't dynlib do that by default
17:49:40leorizenope
17:49:46federico3I'd rather have version *ranges* that we can specify, given that it gives us advantages in portability over other languages, and an optional "autodetect" that can use -l
17:49:50shashlickdynlibOverride
17:50:11leorizeit just ignores all dynlib, it doesn't convert it to `-l` for you
17:50:24shashlicksslVersion will give you that - make a full version list and it will search like today
17:50:47shashlick{.passL: xxx.}
17:51:06leorizewell I thought we are talking about improving dynlib?
17:51:46shashlickso all wrappers will convert dynlib: "xxx" into a passL?
17:52:29leorizeyea, the compiler can certainly do that
17:52:52leorizeand we keep an option to use the search-on-runtime
17:53:08*sentreen quit (Ping timeout: 260 seconds)
17:53:26*ptdel quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.)
17:53:51shashlickwhat will be the default
17:54:19*ptdel joined #nim
17:54:38leorizeI'd say search-on-linktime, but I'm really biased since that's how all *nix software link :P
17:54:51federico3soname version ranges
17:55:04shashlickokay do you understand the changes well enough to propose a fix in #9419
17:55:05disbothttps://github.com/nim-lang/Nim/issues/9419 -- 3httpclient -d:ssl and db_postgres incompatible and cause SIGSEGV! (MacOSX) ; snippet at 12https://play.nim-lang.org/#ix=2bwr
17:58:09*sigmapie8 quit (Quit: Leaving)
18:02:11federico3leorize: bonus point of using the dynamic loader: ldd <binary> would show the shared library
18:02:44leorizeyep, and otool on osx would work too
18:03:18federico3it also saves a little bit of time at start time
18:03:48*Trustable quit (Remote host closed the connection)
18:04:16leorizeif there's anything that I'm unsure of it's whether the current {.dynlib.} behaviour should be kept available
18:05:04shashlickWell right now you can pass a full path to the dll
18:05:11shashlickNot sure how that will translate
18:05:29shashlickShould it just be added to the gcc command line as is
18:05:53shashlickSo you could also set dynlib to -lssl
18:06:39*rockcavera quit (Remote host closed the connection)
18:06:45*sentreen joined #nim
18:07:05leorizethe current schema can be translated rather easily to `-l` for nix
18:07:20leorizefor osx it's harder though
18:10:58shashlickWhy
18:15:02*Hideki_ joined #nim
18:19:14*Hideki_ quit (Ping timeout: 240 seconds)
18:46:47*Zectbumo joined #nim
18:47:56Zectbumodoes nim have anything like twisted?
18:48:51disruptek!repo reactor
18:48:52disbothttps://github.com/zielmicha/reactor.nim -- 9reactor.nim: 11Asynchronous networking engine for Nim 15 100⭐ 6🍴 7& 1 more...
18:49:03disrupteknot sure it's current, though.
18:49:11Zectbumothanks. this is a start
18:49:55disrupteki can't say i'd recommend it.
18:51:10Zectbumoanything you would recommend for web serving, some sort of IPC protocols, and possibly SMTP, and DNS?
18:52:41disruptekit depends on how badly you want it to be correct.
18:53:32disruptekIPC could be anything. i would roll my own. DNS, i would send to the os. there are hacks floating around to do resolution asynchronously; just ask.
18:53:41ZectbumoI'm looking to replace python2 (+twisted). I won't be moving to python3. I read nim is the "python replacer"
18:53:50disrupteksmtp, i think is madness to do yourself. use a service.
18:54:23ZectbumoDNS server, I mean.
18:54:36disruptekhttp... the stdlib is incorrect but functional. i would stick with it until you have a problem and then fix those problems.
18:54:55disruptekyou want to write a dns server?
18:55:17disrupteksure, it could be done. probably makes more sense to link against unbound, etc.
18:55:22Zectbumoit would be helpful yes
18:55:50*Hideki_ joined #nim
18:56:01disrupteki've written dns servers. i have no plans to ever write another dns server.
18:56:28Zectbumoheh. what special aspect did yours do?
18:56:41*nsf joined #nim
18:56:58disruptekdynamic queries using rpn.
19:00:45*Hideki_ quit (Ping timeout: 268 seconds)
19:02:21Zectbumowhoa, was this for military or nasa?
19:03:37disrupteknah, it was for pki and backchannel propogation of client data.
19:03:54Zectbumowell, sounds cool
19:04:14*abm joined #nim
19:04:24disruptekit was. i wish it was still a thing.
19:04:55disruptekdns is near eol, though.
19:05:27ZectbumoI would like that actually. what is on the horizon?
19:05:40disruptekprobably something worse.
19:06:01Zectbumohah
19:06:37ZectbumoI think I was reading something about dns over https
19:06:47disrupteksure.
19:19:36*krux02 joined #nim
19:34:18*Hideki_ joined #nim
19:41:23*Hideki_ quit (Ping timeout: 260 seconds)
19:50:51FromGitter<kristianmandrup> Having problem switching back to official nim version
19:50:54FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e44571ecd2d737bb073cf39]
19:51:22FromGitter<kristianmandrup> `which nim` keeps pointing to my local clone - WIP
19:51:31disruptek~choosenim
19:51:32disbotchoosenim: 11https://github.com/dom96/choosenim/releases/tag/v0.5.1 -- disruptek
19:52:06disruptekthey tell me this is the best advice i can give. unless you are on osx. in which case, i dunno; it might be broken.
19:54:34*fanta1 quit (Quit: fanta1)
19:54:37FromDiscord<Recruit_main_70007> @kristiandrup, i also had thisproblem, if you dont know where its installed, search for choosenim in the file explorer in windows, whatch a movie, then wait a few more minutes until it finishes and delete the folder
19:54:58FromGitter<kristianmandrup> ~/.choosenim
19:54:58disbotno footnotes for `/.choosenim`. 🙁
19:55:23FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e44582becfa4461c0576097]
19:56:11FromGitter<kristianmandrup> I would think that `current` is a sym link that I need to point to another nim version
19:57:20disruptekare you using 0.5.1?
19:58:58AraqRecruit_main_70007: you can use 'nimgrep' to search for filenames too :-)
19:59:43FromDiscord<Recruit_main_70007> it would have been great knowing it XD will not happen again
20:01:49Araqfederico3, version ranges sound nice too
20:02:02FromGitter<kristianmandrup> How do I update `choosenim` itself?
20:02:19disruptekare there no docs for that?
20:02:21FromGitter<kristianmandrup> ah, `update self`
20:02:38FromGitter<kristianmandrup> Updating choosenim ⏎ ⏎ ``` Info: Already up to date at version 0.5.1``` [https://gitter.im/nim-lang/Nim?at=5e4459dec900d747abff277b]
20:03:20FromGitter<kristianmandrup> Legacy error message btw
20:03:23FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445a0ad4daaa26c19c72c5]
20:03:42disruptekkristianmandrup: shashlick says your problems are all in your mind.
20:03:52disruptekchoosenim has zero known defects.
20:04:10FromGitter<kristianmandrup> choosenim 1.0.0 ⏎ ⏎ ``` Info: Version 1.0.0 already selected``` [https://gitter.im/nim-lang/Nim?at=5e445a3ad4daaa26c19c7325]
20:04:35FromGitter<kristianmandrup> nim --version ⏎ Nim Compiler Version 1.1.1 [MacOSX: amd64]
20:05:24disruptekyou wanna know a secret?
20:05:30FromGitter<kristianmandrup> Must be due to ...
20:05:34FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445a8e45000661fcb83607]
20:06:36FromGitter<kristianmandrup> Just needed to restart my terminal
20:07:01disruptek🎉
20:07:16*nsf quit (Quit: WeeChat 2.7)
20:07:31disruptekint128 does produce the same results as python when i shr. 😢
20:07:40disrupteker, does /not/ ...
20:07:44*narimiran quit (Ping timeout: 265 seconds)
20:07:48*Vladar quit (Quit: Leaving)
20:08:07*paper_ quit (Quit: WeeChat 2.6)
20:10:51shashlickwhat's your PATH
20:11:19FromGitter<kristianmandrup> How can I do this?
20:11:30shashlickecho $PAth
20:11:34shashlickecho $PATH
20:12:13FromGitter<kristianmandrup> Complains that the var being injected is not initialised. Is there any way I can set it to `nil` or equivalent or somehow pass in a type and then set it to the "null value" of that type? ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445c1d45000661fcb839dc]
20:13:19FromGitter<kristianmandrup> In my real example, I need to do a few more things, more first need to make this work - do I need to use macro in this case perhaps?
20:15:59FromGitter<kristianmandrup> ```VarSection ⏎ IdentDefs ⏎ Ident "xName" ⏎ Ident "JsObject" ⏎ Empty``` [https://gitter.im/nim-lang/Nim?at=5e445cff340a8019bbbb2063]
20:18:06*couven92 quit (Quit: couven92)
20:18:57*JustASlacker quit (Remote host closed the connection)
20:21:44FromGitter<kristianmandrup> https://play.nim-lang.org/#ix=2bxx
20:22:35FromGitter<kristianmandrup> https://play.nim-lang.org/#ix=2bxy
20:22:56FromGitter<kristianmandrup> well, `JsObject` could be `ref of object` I guess
20:24:25FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445ef9c900d747abff34f7]
20:26:13FromGitter<kristianmandrup> I'm lost :P
20:26:21FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445f6d63c15921f475af14]
20:26:42FromGitter<kristianmandrup> how do I dynamically set the var identifier?
20:27:40FromGitter<kristianmandrup> Tried both `varName` as `typed` and `untyped`
20:29:36*NimBot joined #nim
20:33:35FromGitter<kristianmandrup> `attempting to call routine: 'nnkIdent' found 'nnkIdent' of kind 'enumfield'`
20:33:55lqdev[m]@kristianmandrup in your first example with the template, the var needs a value or a type.
20:33:57Araqthere are no "dynamic" variables in Nim
20:34:05lqdev[m]so `var varName: JsObject` or something
20:34:27FromGitter<kristianmandrup> https://play.nim-lang.org/#ix=2bxD
20:35:09*Hideki_ joined #nim
20:36:16lqdev[m]first of all, that's not how macros work. if you want to create a var section, use `newVarStmt`
20:36:21lqdev[m]https://nim-lang.org/docs/macros.html#newVarStmt%2CNimNode%2CNimNode
20:36:45lqdev[m]but either way your var needs a type or a value
20:37:19*marmotini_ quit (Remote host closed the connection)
20:37:33lqdev[m]so if you want a `var x: JsObject` you do `newVarStmt(ident"x", bindSym"JsObject")`
20:37:41lqdev[m]oh wait that's the value
20:37:45lqdev[m]my fault.
20:37:48lqdev[m]give me a sec
20:37:49FromGitter<kristianmandrup> https://play.nim-lang.org/#ix=2bxH
20:37:53*marmotini_ joined #nim
20:38:21FromGitter<kristianmandrup> Thanks @lqdev
20:38:31lqdev[m]`ref of object` is not a valid type.
20:38:59lqdev[m]not sure what you're trying to achieve there
20:40:09*Hideki_ quit (Ping timeout: 272 seconds)
20:42:10FromGitter<Vindaar> if by "dynamic" you mean you want to do some stuff to create an identifier at compile time (which I don't think you want though), you can do: https://play.nim-lang.org/#ix=2bxK
20:42:32*marmotini_ quit (Ping timeout: 265 seconds)
20:43:03FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e44635737545d247d363939]
20:45:13*dadada_ quit (Ping timeout: 272 seconds)
20:47:46FromGitter<kristianmandrup> is there a way to cast an untyped var to a string? such as `varName`?
20:49:35lqdev[m]astToString
20:49:55lqdev[m]astToStr*
20:50:34*ChanServ quit (shutting down)
20:52:25FromGitter<kristianmandrup> Cool, but still not quite there...
20:52:27FromGitter<kristianmandrup> https://play.nim-lang.org/#ix=2bxO
20:52:41FromGitter<kristianmandrup> ```var foo_42018 = [0]; ⏎ foo = x``` [https://gitter.im/nim-lang/Nim?at=5e446598d4daaa26c19c981f]
20:53:05FromGitter<kristianmandrup> I'd like to emit `foo_42018 = x`
20:53:30FromGitter<kristianmandrup> after the var AST is defined and injected
20:54:04*dadada joined #nim
20:58:01FromGitter<kristianmandrup> When defining a variable, does Nim support "shadowing" like for `proc`, ie. referencing/assigning to an identifier in the target backend of a different name?
20:59:15*filcuc joined #nim
21:00:29*u0_a121 joined #nim
21:01:04FromDiscord<Elegant Beef> Uhh sounds like a macro, but im a numpty 😄
21:04:47FromGitter<kristianmandrup> So for `genProc` in `jsgen.nim` I find the following
21:04:47FromGitter<kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e44683645000661fcb85e81]
21:04:47FromGitter<kristianmandrup> which is what I mean by "shadowing" for `proc`
21:05:26FromGitter<kristianmandrup> don't see anything equivalent for `genVarInit`
21:06:21*u0_a121 quit (Read error: Connection reset by peer)
21:07:55*Jesin quit (Quit: Leaving)
21:08:39*dadada quit (Ping timeout: 272 seconds)
21:09:04*dadada joined #nim
21:11:26FromDiscord<Elegant Beef> Yea idk, i just see string formatting, so ill nod and wave 😄
21:14:32*dadada is now known as Guest43347
21:14:40*Jesin joined #nim
21:14:45*jjido joined #nim
21:15:59FromGitter<kristianmandrup> Raised this issue: https://github.com/nim-lang/Nim/issues/13400
21:16:02disbotAdd shadow variable assignment similar to proc backend shadow calls ; snippet at 12https://play.nim-lang.org/#ix=2bxU
21:22:41krux02just made a PR #13401
21:22:42disbothttps://github.com/nim-lang/Nim/pull/13401 -- 3revert #13064
21:22:44krux02yay
21:26:07*ptdel quit (Ping timeout: 240 seconds)
21:28:53disruptekkrux02: you have a minute?
21:29:21krux02yes
21:29:51FromDiscord<clyybber> krux02: Shouldn't remove genericParams IMO
21:29:58FromDiscord<clyybber> but the other stuff I agree should be removed
21:30:22disrupteki'm trying to shr an int128 and it seems that the right half of my int128 isn't moving. the left half is moving fine.
21:31:19krux02ok, can you give me the code
21:31:28disruptekhttps://gist.github.com/disruptek/e5d39942cc8c561dd8bfa2a9e1a94f11
21:31:34disruptekthis is output followed by code.
21:31:47disrupteki produced the output with echos in the int128 source.
21:32:13FromDiscord<clyybber> disruptek: When you make in ryu C does it print warnings?
21:32:15disruptekoh, and i omitted the naked echos in the code. useless.
21:32:24disruptekclyybber: only if you write bad c.
21:32:28FromDiscord<clyybber> hmmm
21:32:35FromDiscord<clyybber> I now I got a warning before
21:32:41FromDiscord<clyybber> when I inserted printfs
21:32:45FromDiscord<clyybber> now I don't weird
21:32:55disruptekbecause you used %u versus %lu, probably.
21:33:06FromDiscord<clyybber> nah, it was something else
21:33:12FromDiscord<clyybber> like redeclaration
21:33:20disruptekhint: don't do that.
21:33:23FromDiscord<clyybber> I somehow don't get the warnings for %u vs %lu
21:33:41*letto quit (Quit: Konversation terminated!)
21:34:32disruptekkrux02: i just don't see how this code is supposed to work.
21:34:40*filcuc_ joined #nim
21:35:15*filcuc quit (Ping timeout: 272 seconds)
21:35:19krux02int128 is a signed integer
21:35:26krux02did you take that into account?
21:35:35krux02it does sign preservation
21:35:48disrupteki mean, i expect a shift of 32 to change the right-most value.
21:35:59disruptekall values, actually. 😁
21:36:28disruptekonly half of them are. i don't care about sign.
21:37:27krux02disruptek: http://ix.io/2by2
21:37:54krux02you are right
21:37:56krux02there is a bug
21:38:25krux02but that is good that you notice, so I can fix it
21:38:29disruptekyeah, and it was pretty hard to spot shifting by arbitrary bit counts.
21:39:09disrupteknoice, thank you.
21:41:07FromGitter<Varriount> Anyone taken a look at https://github.com/nim-lang/RFCs/issues/192 ? What are your thoughts?
21:41:08disbotoutplace and chaining ; snippet at 12https://play.nim-lang.org/#ix=2bvf
21:41:25krux02you don't need to report it, I will fix it now as I see it very important
21:41:33disruptekthis means i can shelve ryu for now. 🎉
21:41:45disruptekthanks krux02; i was really going a little nuts.
21:41:55disruptekthen i saw a repeat in some hex dump and i was like.... wtf
21:42:22disruptekstupid base 10
21:47:02FromGitter<alehander92> i like `on`
21:47:12disruptekwhat we need are tools that can only be built in nim.
21:47:38FromDiscord<clyybber> disruptek: shelve?
21:47:39disrupteki feel like nimph is a good example of this, actually.
21:47:42FromDiscord<clyybber> as in do something else?
21:47:47disruptek"put away for now"
21:47:53FromGitter<alehander92> and i agree that ops might be too much
21:48:09FromDiscord<clyybber> disruptek: gas gas gas
21:48:10disruptekjust until krux02 patches int128; then i think my tests will be green.
21:48:28FromDiscord<clyybber> damn I gotta hurry then
21:48:30FromDiscord<clyybber> :p
21:48:39disrupteklol
21:48:44disruptekare you using umul?
21:48:50FromDiscord<clyybber> fuck yeah
21:48:55disruptekawesome.
21:49:04FromDiscord<clyybber> now that I fixed the printfs
21:49:09FromDiscord<clyybber> stuff is getting more interesting
21:49:11disruptekwe should benchmark these, too.
21:49:22FromDiscord<clyybber> yeah
21:50:17disrupteki wonder how much faster umul128 will be. this'll be fun.
21:51:00*letto joined #nim
21:55:39dom96Varriount: replied
21:56:29disruptek#13364 see also vertical tab.
21:56:32disbothttps://github.com/nim-lang/Nim/pull/13364 -- 3properly fix #13196: json serialization with option for lossless roundtrip ; snippet at 12https://play.nim-lang.org/#ix=2by8
22:00:11FromDiscord<clyybber> disruptek: Ironically the reason for the fails is shiftright128 here too
22:00:43disruptekreally?
22:02:33*jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…)
22:08:04disruptekwhy would anyone pr tests that don't fail unless they are un-`when`-ed?
22:08:20disrupteki really cannot understand this.
22:09:07*ptdel joined #nim
22:09:23*ltriant joined #nim
22:19:56disruptek~motd is Who wants to try JSON parsing modes via set[JMode] for a couple years?
22:19:56disbotmotd: 11Who wants to try JSON parsing modes via set[JMode] for a couple years?
22:24:06FromDiscord<exelotl> Hey so, I have an object type from C which exists overlayed in memory with another kind of object. i.e. the last field is a "padding" field which is actually where the other object lives. You shouldn't touch the padding field unless you know what you're doing.
22:24:38disruptekthat sounds really fun.
22:24:53disrupteklike juggling fire or swallowing swords.
22:24:59disruptekdo you live in a circus?
22:25:14disruptekwhat do they call that? a carny, right?
22:25:21disruptekare you a carny?
22:25:26disrupteka gypsy?
22:25:45disruptekare you a bearded lady?
22:25:58FromDiscord<exelotl> Yes to all of those. So I was wondering is this a suitable time to use a custom `=` operator?
22:26:24disruptekyou are blowing my mind right now.
22:26:42disruptekyes, i think you'll need to do assignment fairly custom.
22:27:16FromDiscord<exelotl> cool
22:27:39disruptekhow do you know how long the sub-object is?
22:29:47disruptekyou pass a field addr to c and c pastes the object on there?
22:31:19FromDiscord<exelotl> it's basically how sprites and transform matrices are arranged in memory on the GBA. See: https://www.coranac.com/tonc/text/regobj.htm#sec-oam
22:31:56disruptekno matter how many times i see someone puke out of a moving car, i'm like a virgin. touched for the very first time.
22:32:15*solitudesf quit (Ping timeout: 272 seconds)
22:33:43disrupteki get it.
22:34:02disruptekdoes your game run on an emulator or do you have an interface to real hardware?
22:36:12FromDiscord<exelotl> both! I usually test with the mGBA emulator, but I have a flashcard too for testing on real hardware
22:36:28disruptekah, neat. that is super cool.
22:36:43disruptekhow many devices do you have?
22:41:10FromDiscord<exelotl> oldschool DS, DS lite, 2x GBA SP, and gameboy micro which got run over by a minibus...
22:41:41FromDiscord<exelotl> which I'm still heartbroken about tbh
22:41:42krux02disruptek, I just fined the problem, all I need is create the pr and get it merged
22:42:30disruptekdamn.
22:43:02disrupteki mean, sweet.
22:43:08FromDiscord<exelotl> I just got the 2nd GBA SP recently because my childhood SP is the "tribal edition" https://images-na.ssl-images-amazon.com/images/I/319DIldvJHL.jpg
22:43:23FromDiscord<exelotl> which was extremely cool when I was 8
22:43:38FromDiscord<exelotl> but now it's just embarrassing lol
22:43:46disruptekof course.
22:43:56disruptekbut it's neat that kids are growing up with this stuff.
22:43:59FromDiscord<Generic> I always thought it was ugly
22:44:05FromDiscord<Generic> :p
22:48:05*filcuc_ quit (Ping timeout: 272 seconds)
22:48:35disruptekwould you rather try to outrun the cops in the rain, snow, or dry conditions?
22:50:02FromDiscord<Generic> I would fail no matter the conditions 🙂
22:50:05krux02disruptek, https://github.com/nim-lang/Nim/pull/13403
22:50:06disbotfix bug in int128
22:50:23disruptekyou're too fast. thanks.
22:50:59*ltriant left #nim (#nim)
22:51:08FromDiscord<exelotl> I bet the cops can't ski
22:51:31disruptekgive me the rain every time.
22:52:01FromDiscord<exelotl> the rain makes it 10x more atmospheric
22:52:12disrupteki'm talkin' police chase by car.
22:52:24krux02disruptek, regarding the quesiton about outrunning the cops. I prefer to be not in conflict with them. But if I have to outrun anyone if prefer something where I have an advantage
22:52:39krux02like being on the train while the cops are not.
22:52:51disruptekwe're assuming that everyone is suffering the same weather, at least.
22:52:52krux02or being outside of the train while the cops are inside
22:53:16krux02well, then I prefer try conditions
22:53:40disruptekdo you own a car?
22:53:50krux02dry conditions I mean
22:53:55krux02and no I do not own a car
22:54:20krux02But I do have a drivers licese, which is quite expensive in Germany
22:55:18disruptekthree people, three answers.
22:55:50krux02I would prefer to outrun the cops by foot
22:55:53krux02or by bike
22:56:07krux02like riding by bike down some stairs
22:56:23krux02something like that
22:56:42disruptekyou think cops cannot ride down stairs?
22:56:51disrupteki think you're thinking of horses.
22:56:58disruptekhorses cannot ride down stairs.
22:57:05FromDiscord<exelotl> daleks
22:57:06disruptekcops have no problem with it.
22:57:33disruptekhorses can ride up stairs, but they are afraid to ride down stairs.
22:58:07disrupteknow, cops /are/ afraid to ride horses up stairs.
22:58:19disruptekyou will never see a cop ride a horse up stairs.
22:58:19krux02yea
22:58:19disrupteknever.
22:59:04disruptekdown stairs? no problem.
22:59:11disruptekcops are fine riding horses down stairs.
23:00:01krux02interesting
23:00:07krux02well
23:00:15disruptekyeah, it's a whole world out there.
23:00:16krux02I have to say good night for today
23:00:22disruptekfor today, good night.
23:00:27krux02the patch is done
23:00:32disruptekit's been a pleasure, krux. i appreciate it.
23:00:36krux02np
23:00:42krux02thank you for reporting it
23:01:22disrupteki'll be praying you aren't on a bike next time you're fingered by the po-po.
23:01:50krux02ok
23:01:52krux02good night
23:01:55*krux02 quit (Remote host closed the connection)
23:06:57FromDiscord<clyybber> @exelotl Why embarassing?
23:07:02FromDiscord<clyybber> I think it looks sick
23:07:07FromDiscord<clyybber> but mine looks sicker :p
23:07:10FromDiscord<clyybber> got the golden zelda one
23:07:25*Guest43347 quit (Ping timeout: 268 seconds)
23:07:28FromDiscord<exelotl> :o
23:07:31FromDiscord<exelotl> that's epic
23:07:51FromDiscord<clyybber> technically its not mine, but my cousins
23:08:09FromDiscord<clyybber> but hey, he has my ds-lite
23:09:08*dadada joined #nim
23:09:31FromDiscord<clyybber> aaaaaaaah
23:09:31*dadada is now known as Guest26689
23:09:39FromDiscord<clyybber> now I have a sudden urge to play minish cap
23:11:02*Hideki_ joined #nim
23:15:26*Hideki_ quit (Ping timeout: 268 seconds)
23:16:17lqdev[m]`Error: type mismatch: got <Table[keybinds.Keybind, proc (chord: seq[Keybind]): bool{.locks: 0.}]> but expected 'Table[keybinds.Keybind, proc (chord: seq[Keybind]): bool{.closure.}]'` uh?
23:16:37*ptdel quit (Ping timeout: 260 seconds)
23:19:36lqdev[m]ok wtf adding `{.closure.}` to my proc fixed it?
23:19:46lqdev[m]I'm confused
23:22:35*Guest26689 quit (Ping timeout: 260 seconds)
23:23:14*Hideki_ joined #nim
23:24:06*dadada_ joined #nim
23:26:15FromDiscord<clyybber> disruptek: WHOOOOO
23:26:16FromDiscord<clyybber> tests pass
23:26:22disruptekoh shoot
23:26:32FromDiscord<clyybber> though I manually patched the generated C
23:26:32disruptekgood job, dude.
23:26:35FromDiscord<clyybber> removed a few casts
23:26:38FromDiscord<clyybber> and inserted a few
23:26:45FromDiscord<clyybber> now to do it from nim
23:27:01FromDiscord<clyybber> it was umul128 all along..
23:27:15disruptekwhy didn't it work?
23:27:40FromDiscord<clyybber> some wrong casts
23:27:46FromDiscord<clyybber> generated by nim
23:27:49FromDiscord<clyybber> I just removed them
23:27:56disruptekugh.
23:28:01FromDiscord<clyybber> and added the equivalents of the C
23:28:08FromDiscord<clyybber> I'll now look into it
23:28:13FromDiscord<clyybber> to do it from the Nim side
23:28:29disrupteki'm more troubled by bad casts that nim generated.
23:28:52FromDiscord<clyybber> eh, probably a error on my side
23:29:07FromDiscord<clyybber> the precedence between casts in nim and C is different
23:29:12FromDiscord<clyybber> so that could be a reason
23:29:29FromDiscord<clyybber> https://www.diffchecker.com/IAPcqfOx
23:29:38FromDiscord<clyybber> feels good man/inc
23:29:42disrupteki hate that site.
23:29:57FromDiscord<clyybber> eh, it works
23:30:05FromDiscord<clyybber> it used to be a bit better tho
23:30:25disrupteki thought you used meld or whatever.
23:30:26FromDiscord<clyybber> but at least now you can save that shit
23:30:46FromDiscord<clyybber> disruptek: I do sometimes
23:30:51FromDiscord<clyybber> but I'm kinda lazy
23:31:09*Hideki_ quit (Ping timeout: 272 seconds)
23:31:12FromDiscord<clyybber> and its handy for sharing
23:31:12disruptekexactly why i don't spend time on the web.
23:31:49FromDiscord<clyybber> its bearable with vimium
23:32:02FromDiscord<clyybber> tho vimium is a bit *packed* with features
23:32:08disruptekwell, i couldn't drag the scrollbar and i really wanted to.
23:32:28FromDiscord<clyybber> so you hit a random and key and be like
23:32:28FromDiscord<clyybber> "what happened"
23:32:55FromDiscord<clyybber> i gotta setup krabby now
23:32:55disruptekyeah, that sounds like me.
23:33:16FromDiscord<clyybber> disruptek: You use vim as an editor right?
23:33:20FromDiscord<clyybber> or vscode?
23:33:24disruptekvim
23:33:29FromDiscord<clyybber> nice
23:33:45disrupteki wish i'd gone with emacs.
23:34:00disruptekit was just too heavy back in the day.
23:34:39FromDiscord<clyybber> try doom emacs
23:34:42FromDiscord<clyybber> it looks cool
23:35:04disrupteki guess if i'd gone a programming route, that weight wouldn't have been a problem.
23:35:38FromDiscord<clyybber> lol
23:37:11FromDiscord<clyybber> disruptek: See https://www.diffchecker.com/o76NPJjL
23:37:21FromDiscord<clyybber> left is the manual one that passes
23:37:28FromDiscord<clyybber> right is the generated one that fails
23:37:30*dadada_ quit (Ping timeout: 265 seconds)
23:39:08*dadada joined #nim
23:39:25*Hideki_ joined #nim
23:39:31*dadada is now known as Guest64920
23:39:39*ng0_ quit (Quit: leaving)
23:40:29FromDiscord<clyybber> hmm
23:40:43FromDiscord<clyybber> the nim doesn't look wrong
23:44:16*Hideki_ quit (Ping timeout: 265 seconds)
23:52:27*Guest64920 quit (Ping timeout: 260 seconds)
23:54:07*dadada_ joined #nim
23:54:17*disrupteq quit (Ping timeout: 268 seconds)
23:58:12leorizeI'm reading the ryu paper and I'm learning so much about floats
23:59:08leorizeI should read more compsci papers, they are fun once you understand a portion of them :P