00:00:00 | disruptek | the producers would like to announce that the persons doing the debugging have been sacked. |
00:00:11 | FromDiscord | <clyybber> lol |
00:00:19 | FromDiscord | <clyybber> the C tests really suck |
00:00:20 | disruptek | the producers would also like to announce that the persons joking about those persons have been sacked. |
00:00:30 | FromDiscord | <clyybber> it swallows the output |
00:01:16 | disruptek | just pipe it, i guess. |
00:01:33 | disruptek | i dunno. i've been using a scroll buffer in my terminals and i find it really handy. |
00:01:51 | disruptek | only for the last 30 years or so, though. kinda new for me. |
00:02:02 | FromDiscord | <clyybber> nah |
00:02:05 | FromDiscord | <clyybber> I mean I don't see it |
00:02:12 | disruptek | are you on my branch? |
00:02:15 | FromDiscord | <clyybber> whats weird is, that when I insert some printf myself |
00:02:16 | FromDiscord | <clyybber> I see it |
00:02:24 | FromDiscord | <clyybber> disruptek: I'm talking ulfjack ryu |
00:02:38 | disruptek | i will come over there, so help me. |
00:03:22 | disruptek | i'm not interested in debugging his code. |
00:03:31 | FromDiscord | <clyybber> wait |
00:03:32 | disruptek | i wanna know why our result is superior to his. |
00:03:34 | FromDiscord | <clyybber> I got it |
00:03:52 | FromDiscord | <clyybber> I'm too dumb to add a -D to a fucking makefile |
00:03:52 | FromDiscord | <clyybber> help |
00:04:05 | FromDiscord | <clyybber> AAGH |
00:04:08 | disruptek | oh i just added a define. i don't give a fuck. |
00:04:09 | FromDiscord | <clyybber> nvrmind |
00:04:17 | FromDiscord | <clyybber> I'm just stupid |
00:04:23 | FromDiscord | <clyybber> I compiled the tests |
00:04:25 | FromDiscord | <clyybber> with the flag |
00:04:28 | disruptek | so i get this: |
00:04:31 | FromDiscord | <clyybber> but not the thing itself |
00:04:36 | disruptek | VP+=34366719 |
00:04:36 | disruptek | VR =34366717 |
00:04:37 | disruptek | VM-=34366715 |
00:04:52 | FromDiscord | <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:09 | disruptek | but he gets V+=34366720 |
00:05:14 | * | pbb joined #nim |
00:05:23 | disruptek | so we're actually a little tighter. |
00:05:58 | disruptek | but then we cannot agree on the result and one of us is clearly wrong. |
00:06:31 | FromDiscord | <Elegant Beef> So if you have nimfileA importing nimfileB, how can you use functions in A from B |
00:06:34 | FromDiscord | <Elegant Beef> ? |
00:06:44 | disruptek | we say 3.4366718E10 and he says 3.436672E10 |
00:07:13 | disruptek | beef: you cannot. |
00:07:27 | disruptek | or, you shan't, i dare say. |
00:07:42 | FromDiscord | <clyybber> hmm hmm hmm |
00:07:50 | FromDiscord | <Elegant Beef> I mean i assigned a proc var in B to the func in A |
00:07:55 | FromDiscord | <Elegant Beef> so i guess that's how |
00:08:11 | FromDiscord | <clyybber> @Elegant Beef simple, you import it? |
00:08:12 | FromDiscord | <Elegant Beef> I assume the issue is the imperative part of nim |
00:08:29 | disruptek | the issue is that circular imports are not a thing. |
00:08:33 | FromDiscord | <Elegant Beef> Yes you import B, but in B you can access A |
00:08:39 | FromDiscord | <Elegant Beef> cant* |
00:08:42 | FromDiscord | <Elegant Beef> since it's recurrsive |
00:08:45 | FromDiscord | <Elegant Beef> recursive* |
00:09:10 | FromDiscord | <clyybber> ah |
00:09:19 | FromDiscord | <clyybber> yeah |
00:10:22 | FromDiscord | <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:37 | FromDiscord | <clyybber> @Elegant Beef Actually you can |
00:10:53 | FromDiscord | <clyybber> you gotta import B a bit later |
00:11:09 | FromDiscord | <clyybber> after the stuff you want B to be able to access |
00:11:20 | FromDiscord | <Elegant Beef> Not possible |
00:11:33 | FromDiscord | <Elegant Beef> the function in A relies on objects from B |
00:12:00 | FromDiscord | <Elegant Beef> My cheese method of assigning the proc for B from A is the best |
00:12:02 | FromDiscord | <clyybber> and the objects rely on the function? |
00:12:08 | FromDiscord | <Elegant Beef> `command.addCommand = addCommand` |
00:12:32 | disruptek | i think he's using two files so he can develop the code in two windows at once... or something. |
00:12:33 | FromDiscord | <Elegant Beef> Well im adding an object to a table |
00:12:43 | FromDiscord | <clyybber> future is now baby |
00:12:49 | FromDiscord | <Elegant Beef> Im using two files to keep logic sperate from data |
00:12:55 | krux02 | Elegant Beef, recursive imports are not nice. |
00:12:57 | disruptek | maybe he has no pager so he cannot scroll in his editor. |
00:13:19 | FromDiscord | <clyybber> logic is data :p |
00:13:25 | FromDiscord | <clyybber> data is logic :p |
00:13:31 | FromDiscord | <clyybber> join us |
00:13:37 | FromDiscord | <clyybber> we are l i s p |
00:13:44 | FromDiscord | <Elegant Beef> I swear im getting mocked for following a good paradigm 😄 |
00:13:47 | disruptek | he's storing his programs on cards and he doesn't want to reorder them. |
00:13:54 | FromDiscord | <clyybber> relatable |
00:14:05 | FromDiscord | <Elegant Beef> <https://github.com/beef331/nim_rofi> |
00:14:05 | FromDiscord | <Elegant Beef> Tear it apart then you schmucks 😄 |
00:14:05 | disruptek | i swear you're overthinking it. |
00:14:41 | FromDiscord | <clyybber> @Elegant Beef ha, I looked at that before |
00:14:48 | disruptek | look, just color within the lines. |
00:14:51 | disruptek | it's not hard. |
00:14:58 | disruptek | it make your world more beautiful. |
00:15:02 | FromDiscord | <clyybber> nothing to tear apart there : ) |
00:15:03 | FromDiscord | <Elegant Beef> Do i do a flood fill? |
00:15:04 | disruptek | you like. |
00:15:05 | krux02 | (car (cdr (cadr '(a (b (c)))))) |
00:15:06 | disruptek | yum yum yum |
00:15:12 | FromDiscord | <clyybber> just add the types to the top of the file :p |
00:15:18 | disruptek | ack lisp attack |
00:15:19 | FromDiscord | <clyybber> no "good practice" required |
00:15:42 | FromDiscord | <Elegant Beef> Maybe i use the lines as a mask and just paint it all one colour |
00:15:43 | disruptek | beef: take a look at golden or nimph to see some larger project import shenanigans. |
00:15:47 | disruptek | !repo nimph |
00:15:48 | disbot | https://github.com/disruptek/nimph -- 9nimph: 11Nim package hierarchy manager from the future 🧚 15 52⭐ 3🍴 7& 1 more... |
00:16:03 | FromDiscord | <Elegant Beef> I mean.. not really a problem of imports, was just making sure there wasnt a different way |
00:16:05 | disruptek | it's no big deal, truly. |
00:16:07 | krux02 | yea, 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:18 | disruptek | exactly. |
00:16:21 | FromDiscord | <clyybber> good practice is not coding at all |
00:16:25 | FromDiscord | <Elegant Beef> Who said anything about good practices? |
00:16:27 | disruptek | these are problems we'd be lucky to have. |
00:16:28 | FromDiscord | <clyybber> no good is best code |
00:16:30 | FromDiscord | <Elegant Beef> I like easily expandable code |
00:16:37 | krux02 | just make sure you program works and do what is necessary to make it work. |
00:16:57 | FromDiscord | <Elegant Beef> Oh god, the "if it aint broke dont fix it" party has joined the chat |
00:17:02 | FromDiscord | <clyybber> haha |
00:17:06 | krux02 | If you stay to a minimum of mork, it magically becomes maintainable, because it doesn't bloat. |
00:17:21 | disruptek | basically, it's efforts at organization that have created the problem in the first place. |
00:17:23 | FromDiscord | <clyybber> more files => more expandable |
00:17:35 | FromDiscord | <clyybber> if you can't write between lines for some reason |
00:17:42 | FromDiscord | <clyybber> like coding on a tape |
00:17:44 | FromDiscord | <clyybber> :p |
00:17:53 | krux02 | Elegant Beef, you need to get rid of the need for recursive imports. |
00:17:54 | FromDiscord | <Elegant Beef> I mean seperated logic from data means less bloat in files |
00:17:58 | FromDiscord | <Elegant Beef> I got rid of it |
00:18:01 | FromDiscord | <Elegant Beef> By not using it |
00:18:02 | krux02 | that is mostly a head thing. |
00:18:13 | krux02 | normal programs don't need recursive imports. |
00:18:14 | FromDiscord | <Elegant Beef> I mean it's mostly a me thinking imports are like C# namespaces |
00:18:16 | FromDiscord | <clyybber> @Elegant Beef storing a the proc has runtime overhead tho |
00:18:21 | FromDiscord | <Elegant Beef> oh noes |
00:18:24 | FromDiscord | <Elegant Beef> For a small script |
00:18:24 | FromDiscord | <clyybber> like if you store it in the object |
00:18:34 | FromDiscord | <Elegant Beef> This script stays alive for all of 10 seconds |
00:18:38 | krux02 | only if you have mutual recursion across modules |
00:18:43 | FromDiscord | <clyybber> why is it so expandable then :PPP |
00:18:51 | FromDiscord | <clyybber> (just messing with ya) |
00:19:05 | FromDiscord | <Elegant Beef> Well i wanted to play with interfaces in nim so that's partly it |
00:19:21 | krux02 | what type of interfaces? |
00:19:28 | disruptek | you can still use directories, of course. |
00:19:40 | FromDiscord | <Elegant Beef> Simple interfaces for commands |
00:19:43 | krux02 | go like interfaces or java like interfaces or the abstract meaning of interface |
00:19:57 | FromDiscord | <Elegant Beef> go like is what the library says |
00:20:12 | FromDiscord | <Elegant Beef> The library didnt have a license, so dont question the copyright |
00:20:26 | krux02 | hehe, if feel I caused that library |
00:20:26 | FromDiscord | <Elegant Beef> *Shudders in projects on github having no license* |
00:20:53 | FromDiscord | <Elegant Beef> Yea the proper interfaced is outdated and borked 😄 |
00:21:09 | FromDiscord | <Elegant Beef> Tried it before this one |
00:21:20 | FromDiscord | <Elegant Beef> Then protocoled exists but is more like inheritance |
00:21:22 | krux02 | writing a macro for go like interfaces in Nim was basically the first thing I did in this community (in the forum) |
00:21:39 | FromDiscord | <Elegant Beef> Yea good job, i like interfaces cause of the ease |
00:21:43 | FromDiscord | <Elegant Beef> But i could've used inheritance here |
00:22:16 | krux02 | here is the origial forum post: https://forum.nim-lang.org/t/2422 |
00:22:28 | FromDiscord | <clyybber> krux02: The library literally mentions you |
00:22:35 | FromDiscord | <Elegant Beef> Im clearly a nim noob, but atleast most of general CS knowledge applies |
00:22:56 | krux02 | yea that helped me learn the language as well |
00:23:14 | disruptek | you're doing fine, but i would definitly ditch the cards for some proper tape recording of your software. |
00:23:28 | krux02 | if you know c++ and python, you will instantly feel at home. |
00:23:28 | disruptek | i feel like cards are gonna hinder you with nim. |
00:23:39 | krux02 | if you know one, you will feel at home half way |
00:23:46 | FromDiscord | <Elegant Beef> disruptek you really disrupt this chat 😄 |
00:24:04 | disruptek | i know, i'm a terrible person. |
00:24:07 | FromDiscord | <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:10 | FromDiscord | <clyybber> disruptek: I dunno, I like cards |
00:24:23 | FromDiscord | <clyybber> I always get tangled up in tapes |
00:24:35 | FromDiscord | <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:41 | FromDiscord | <Elegant Beef> Which is one reason i wanted interfaces |
00:24:41 | FromDiscord | <clyybber> he he he |
00:24:51 | FromDiscord | <clyybber> this is one thing I'm currently attempting |
00:25:01 | krux02 | Elegant Beef, I've written my own 3D world renderer using OpenGL in C++ Scala Go and Nim |
00:25:03 | FromDiscord | <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:29 | FromDiscord | <Elegant Beef> I was going to use bgfx for graphics, and attempt to encourage an ECS system |
00:25:47 | disruptek | zacharycarter is using bgfx. |
00:25:50 | FromDiscord | <clyybber> @Elegant Beef @Zachary Carter is another gamedev |
00:26:01 | FromDiscord | <clyybber> disruptek: *was* afaik |
00:26:21 | disruptek | oh, hmm. |
00:26:28 | krux02 | What 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:28 | FromDiscord | <clyybber> ah nevermind |
00:26:33 | disruptek | is zeal public? |
00:26:39 | disruptek | !repo zeal |
00:26:42 | disbot | https://github.com/zealdocs/zeal -- 9zeal: 11Offline documentation browser inspired by Dash 15 7561⭐ 581🍴 7& 29 more... |
00:26:55 | krux02 | it is easy to get wrong advice, but that is probably possible everywhere. |
00:27:05 | FromDiscord | <clyybber> krux02: this applies to the whole internet |
00:27:17 | disruptek | i think he's saying i have a special talent for wrong advice. |
00:27:20 | FromDiscord | <clyybber> I mean the fact that ppl who have no clue shout the loudest |
00:27:24 | FromDiscord | <Elegant Beef> Unity being so popular encourages that, also people fall in the dunning krueger effect |
00:27:36 | disruptek | sounds pretty deep. |
00:27:40 | FromDiscord | <Elegant Beef> There is one person on a discord server im in that often says stuff that is unsubstantiated |
00:27:57 | FromDiscord | <clyybber> hmm |
00:28:02 | FromDiscord | <clyybber> you are in Vkx |
00:28:04 | FromDiscord | <Elegant Beef> Soo uhh any of these nim game engines OSS? 😄 |
00:28:09 | FromDiscord | <Elegant Beef> Im a linux gamer |
00:28:09 | FromDiscord | <clyybber> 🐸 |
00:28:10 | FromDiscord | <Elegant Beef> so... |
00:28:13 | FromDiscord | <Elegant Beef> Ugh |
00:28:20 | krux02 | clyybber: but it applies much more to popular/hip technology |
00:28:23 | FromDiscord | <Elegant Beef> The frog emote makes me feel old, but im not |
00:28:51 | krux02 | Java, python, unity, minecraft etc |
00:29:11 | krux02 | or generally Games in general |
00:29:18 | FromDiscord | <clyybber> old as in "I lived to see the days where 'forgotthefrogdudesname' made the wine pkgbuilds' ? |
00:29:19 | FromDiscord | <Elegant Beef> Well the general issue is the increase in population increases numpties using said software |
00:29:38 | FromDiscord | <clyybber> krux02: minecraft? |
00:29:42 | FromDiscord | <clyybber> you mean like mods? |
00:29:58 | krux02 | I just picked it because it is super popular |
00:30:05 | FromDiscord | <clyybber> > this mod was made using MCreator |
00:30:06 | FromDiscord | <clyybber> lol |
00:30:24 | FromDiscord | <clyybber> ah, his name was TKG |
00:30:25 | FromDiscord | <clyybber> I think |
00:30:58 | krux02 | Elegant Beef, I am on Linux as well |
00:31:23 | krux02 | with the "deprecation" of OpenGL on Osx, I dropped osx support in my engine. |
00:31:29 | FromDiscord | <Elegant Beef> Yea |
00:31:32 | FromDiscord | <clyybber> this abonimation right here |
00:31:32 | FromDiscord | <clyybber> https://cdn.discordapp.com/attachments/371759389889003532/676948469528788992/unknown.png |
00:31:36 | FromDiscord | <Elegant Beef> It's laughable that mac went to metal |
00:31:56 | FromDiscord | <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:59 | FromDiscord | <clyybber> krux02: I would frame it the other way around. Apple stopped supporting your engine |
00:32:18 | FromDiscord | <clyybber> But apple users are eager to tell you that you are the one to blame |
00:32:21 | krux02 | clyybber: they never did in the first place |
00:32:30 | FromDiscord | <clyybber> well, opengl |
00:33:25 | krux02 | OpenGL 4.1 the latest version of OpenGL that is available on osx came out 2010 |
00:33:29 | krux02 | that is 10 years ago |
00:33:52 | krux02 | and then they make benchmarks showing how much superior metal is to 10 year old opengl. |
00:34:13 | FromDiscord | <Elegant Beef> Yea well look at VK on linux outpreforming dx12 on windows |
00:34:21 | FromDiscord | <Elegant Beef> Yea well look at VK on linux outperforming dx12 on windows |
00:34:28 | krux02 | if you want a modern opengl on apple hardware, you have to install linux first |
00:34:48 | FromDiscord | <Elegant Beef> I say if you want to use mac, just use elementary OS |
00:34:49 | FromDiscord | <clyybber> they can't be bothered |
00:34:50 | krux02 | so the opengl drivers for that hardware exist, apple just prevents them to exist on osx |
00:35:02 | FromDiscord | <clyybber> yeah |
00:35:09 | FromDiscord | <Elegant Beef> There's actually quite a lot of that |
00:35:12 | FromDiscord | <Elegant Beef> even on windows |
00:35:24 | FromDiscord | <Elegant Beef> the OSS linux drivers have more api support then proprietary windows |
00:35:31 | FromDiscord | <Elegant Beef> I know that happened on a few igpus |
00:35:36 | FromDiscord | <clyybber> yeah |
00:35:39 | FromDiscord | <clyybber> intel |
00:35:39 | * | krux02_ joined #nim |
00:35:49 | FromDiscord | <clyybber> but with nvidia its a bit of a different story |
00:36:00 | FromDiscord | <clyybber> except for their compute cards |
00:36:07 | krux02_ | I have nvidia gpu |
00:36:12 | krux02_ | I don't have problems |
00:36:43 | * | sekao quit (Ping timeout: 260 seconds) |
00:36:54 | FromDiscord | <clyybber> krux02: As long as you don't use wayland |
00:37:10 | krux02_ | I don't plan to use wayland any time soon |
00:37:16 | FromDiscord | <clyybber> And support for PRIME has only been added recently |
00:37:18 | FromDiscord | <clyybber> but its great |
00:37:18 | krux02_ | but what is with wayland |
00:37:20 | FromDiscord | <clyybber> now that its there |
00:37:38 | disruptek | you can't get decent performance on the nvidia cards in wayland. |
00:38:00 | FromDiscord | <clyybber> krux02: Nvidia refuses to get DRM Buffer support in their drivers |
00:38:06 | FromDiscord | <clyybber> they insist on using EGLStreams |
00:38:15 | krux02_ | DRM buffer? |
00:38:31 | disruptek | i thought it was a clock issue. |
00:38:46 | FromDiscord | <clyybber> krux02: GBM |
00:38:49 | FromDiscord | <clyybber> not DRM |
00:38:51 | disruptek | we can't turn up the clock because we can't crack the nvram. |
00:38:52 | FromDiscord | <clyybber> sorry |
00:39:05 | FromDiscord | <clyybber> disruptek: Ah, thats mostly solved now |
00:39:08 | FromDiscord | <clyybber> at least until turing |
00:39:21 | FromDiscord | <clyybber> and for kepler they just released it a month or so ago |
00:39:30 | disruptek | oh nice. |
00:39:32 | FromDiscord | <clyybber> but nouveau is also a bit scarce on devs |
00:40:00 | * | krux02 quit (Ping timeout: 268 seconds) |
00:40:40 | disruptek | i have steam running in wayland but i couldn't get poe to launch. |
00:41:01 | FromDiscord | <clyybber> disruptek: xwayland too? |
00:41:05 | disruptek | this is a 1080 or 1060 or something. |
00:41:17 | FromDiscord | <clyybber> disruptek: Ah, yeah with nvidia no chance |
00:41:19 | disruptek | yeah, steam runs xwayland. |
00:41:29 | disruptek | this is nouveau. |
00:41:34 | FromDiscord | <clyybber> yeah, xwayland cant use GBM either |
00:41:38 | FromDiscord | <clyybber> disruptek: Oh |
00:41:48 | * | sekao joined #nim |
00:41:52 | FromDiscord | <clyybber> does POE use vulkan? |
00:41:59 | disruptek | dunno. |
00:42:03 | FromDiscord | <clyybber> because nouveau doesn't support vulkan yet I think |
00:42:09 | FromDiscord | <clyybber> or not on all cards at least |
00:42:26 | disruptek | steam packages its own wine, i think. maybe. |
00:42:34 | FromDiscord | <clyybber> yeah |
00:42:36 | FromDiscord | <clyybber> proton |
00:42:37 | disruptek | or it uses my binary with its own image. i dunno. |
00:42:41 | disruptek | right, proton. |
00:42:56 | FromDiscord | <clyybber> it also uses dxvk |
00:43:06 | disruptek | anyway, i'm on gentoo, so everything from wine to wayland is built with whatever i have. and that doesn't include vulcan. |
00:43:12 | disruptek | vulkan, either. |
00:43:23 | FromDiscord | <clyybber> to translate dx11/dx10 (and now dx9) to vulkan |
00:43:58 | FromDiscord | <clyybber> disruptek: vulkan is linked dynamically |
00:44:01 | FromDiscord | <clyybber> most of the time |
00:44:26 | FromDiscord | <clyybber> all of the time (I hope) |
00:45:01 | disruptek | it'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:19 | FromDiscord | <clyybber> ah |
00:48:56 | disruptek | so any 5.5 kernel should have the new nouveau support? |
00:49:06 | FromDiscord | <clyybber> think so |
00:49:12 | disruptek | cool. |
00:49:15 | FromDiscord | <clyybber> dunno tho |
00:49:56 | FromDiscord | <clyybber> only thot no nawledge |
00:50:08 | krux02_ | proton is not a different wine, proton is just a wine frontend. |
00:50:13 | disruptek | i 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:25 | FromDiscord | <clyybber> proton is wine with a few patches |
00:50:26 | krux02_ | less intrusive than wine. |
00:50:32 | disruptek | fair enough. |
00:50:42 | disruptek | does steam require wine? |
00:50:47 | FromDiscord | <clyybber> nah |
00:50:59 | FromDiscord | <clyybber> it can download proton itself |
00:51:02 | FromDiscord | <clyybber> when it needs to |
00:51:32 | krux02_ | I only have the gtx 980 ti |
00:51:35 | disruptek | right, i remember opt'ing into it but i thought it was more cooperative. |
00:51:55 | disruptek | i guess i just rebuilt wine for my health. |
00:52:21 | krux02_ | For me it is always satisfaction to remove wine from the system. |
00:52:38 | FromDiscord | <clyybber> wine is cool tho |
00:52:48 | disruptek | i feel that, but it's wine. |
00:52:54 | krux02_ | really this you need to install winemono is super annoying |
00:52:59 | FromDiscord | <Elegant Beef> I mean |
00:53:02 | FromDiscord | <Elegant Beef> use lutris + steam play |
00:53:07 | FromDiscord | <Elegant Beef> dont dick around with wine directly |
00:53:08 | krux02_ | and then it changes all the file associations on the system |
00:53:13 | FromDiscord | <Elegant Beef> unless you really want an application for it |
00:53:25 | krux02_ | things open up in the wine browser or the wine notepad. |
00:53:37 | krux02_ | things like that are everywhere. |
00:53:44 | FromDiscord | <clyybber> ah, yeah that sucks |
00:53:47 | * | krux02_ is now known as krux02 |
00:53:49 | FromDiscord | <Elegant Beef> The annoying thing is wine adding it's own desktop entries |
00:54:02 | FromDiscord | <clyybber> I have a script to delete desktop entries |
00:54:09 | * | pbb_ quit (Ping timeout: 246 seconds) |
00:54:09 | FromDiscord | <clyybber> from everything |
00:54:14 | FromDiscord | <Elegant Beef> I use them though |
00:54:37 | FromDiscord | <clyybber> @Elegant Beef wonna replace your rofi? |
00:54:37 | FromDiscord | <Elegant Beef> i used them in dmenu and rofi |
00:54:42 | FromDiscord | <Elegant Beef> With what? |
00:54:48 | FromDiscord | <clyybber> with a terminal |
00:54:50 | FromDiscord | <clyybber> :p |
00:55:05 | FromDiscord | <Elegant Beef> Oh what an upgrade |
00:55:10 | FromDiscord | <clyybber> right |
00:55:15 | FromDiscord | <Elegant Beef> `applicationName &` |
00:55:21 | FromDiscord | <clyybber> nah |
00:55:26 | FromDiscord | <clyybber> like fzf and so |
00:55:32 | krux02 | 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:57 | dadada | can 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:10 | FromDiscord | <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:13 | FromDiscord | <Elegant Beef> Oh actual nim talk now |
00:56:13 | FromDiscord | <Elegant Beef> 😄 |
00:56:18 | dadada | without needing to put them all in a list? |
00:56:19 | krux02 | dadada, not that I know of |
00:56:34 | FromDiscord | <clyybber> dadada: Nope |
00:56:37 | dadada | ok |
00:56:41 | FromDiscord | <clyybber> but there is one for ref types |
00:56:50 | FromDiscord | <clyybber> you could check the GC_root |
00:56:55 | FromDiscord | <clyybber> not sure how tho :p |
00:56:59 | krux02 | usually when you turn on optimization and turn off debug information, variable names are optimized away. |
00:57:02 | FromDiscord | <Elegant Beef> *How is fzf anything like rofi* 😄 |
00:57:08 | FromDiscord | <clyybber> well |
00:57:13 | FromDiscord | <clyybber> application launcher I mean |
00:57:17 | FromDiscord | <clyybber> never used rofi for much else |
00:57:21 | dadada | I thought it could be useful to have a mechanism similar to how CSS Selectors work :D |
00:57:52 | FromDiscord | <clyybber> ` alacritty -t "Launch..." -e fish -c 'setsid -f (find $PATH -executable | fzf -e)' ` |
00:57:59 | FromDiscord | <clyybber> This is my application launcher |
00:58:09 | krux02 | dadada, if anything, that functionality should be compile time functionality |
00:58:11 | dadada | we'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:20 | FromDiscord | <Elegant Beef> Does that unparent the proccess? |
00:58:22 | dadada | it makes sense in many applications |
00:58:27 | FromDiscord | <clyybber> @Elegant Beef yeah |
00:58:34 | FromDiscord | <clyybber> setsid -f does that |
00:58:56 | FromDiscord | <Elegant Beef> rofi looks and works nicely, just have to make it so it appears on any focused empty workspace |
00:58:57 | krux02 | dadada, Document? What do you mean by that? |
00:59:45 | dadada | krux02: it's basically a tree structure of data, where global data is at the top/root, and everything else stems from there |
00:59:52 | dadada | like in an XML document, or webpage |
01:00:00 | FromDiscord | <clyybber> yeah rofi is awesome |
01:00:17 | krux02 | and 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:21 | FromDiscord | <Elegant Beef> Also i now have to ask after being reminded of this, how do you get directory information in nim |
01:00:42 | dadada | krux02: I don't know why people on the internet take everything personally |
01:00:47 | krux02 | dadada, tree structures are the root cause of inefficient memory usage. |
01:01:16 | FromDiscord | <clyybber> you know somethings wrong when ctrl-a takes 5 seconds |
01:01:29 | krux02 | I just wanted to mention that I am talking about myself, not about other people. |
01:01:30 | FromDiscord | <Elegant Beef> *have you tried seperating your files* |
01:01:33 | FromDiscord | <Elegant Beef> 😛 |
01:01:51 | FromDiscord | <clyybber> have you tried hierarchy |
01:02:08 | FromDiscord | <Elegant Beef> Ah the directory stuff is in OS |
01:02:08 | FromDiscord | <clyybber> lets go back to the old days |
01:02:18 | FromDiscord | <clyybber> no hierarchies |
01:02:24 | disruptek | dadada with respect to types dumped at runtime, yes. |
01:02:27 | FromDiscord | <clyybber> all just plain memory |
01:02:42 | FromDiscord | <Elegant Beef> *Our file system will be like an alabama family tree* |
01:02:50 | FromDiscord | <clyybber> hahaha |
01:02:56 | dadada | krux02: 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:01 | FromDiscord | <clyybber> disruptek: Our symlinks are incest |
01:03:04 | FromDiscord | <clyybber> sorry |
01:03:07 | * | ptdel quit (Ping timeout: 240 seconds) |
01:03:09 | FromDiscord | <clyybber> looks like Araq has won |
01:03:14 | krux02 | old days, where memory allocatin took place on paper and then the program is written with the hex values from paper |
01:03:15 | dadada | so I like to have as many tools at possible |
01:03:29 | disruptek | maybe that's why he hates them so much. |
01:03:38 | FromDiscord | <Elegant Beef> I've only ever wrote applications with the assumption my memory is controlled automatically |
01:03:42 | FromDiscord | <Elegant Beef> Im a terrible human 😄 |
01:03:57 | FromDiscord | <clyybber> @Elegant Beef psst |
01:04:04 | FromDiscord | <clyybber> you wonna *symlink*? |
01:04:08 | * | Hideki_ joined #nim |
01:04:16 | FromDiscord | <Elegant Beef> Is this how a linux user asks to cybe? |
01:04:20 | FromDiscord | <Elegant Beef> cyber* |
01:04:20 | krux02 | I like tools, yea. But what I like even more than many tools is an environment, where I don't need those tools. |
01:04:26 | krux02 | Just what I said about wine. |
01:04:29 | disruptek | this. |
01:04:36 | disruptek | the environment. |
01:04:40 | krux02 | I like that it exists, but I am much happier if I don't need it. |
01:04:59 | FromDiscord | <Elegant Beef> I mean generally the fewer tools you need to get the job done, the less annoying it is |
01:05:34 | dadada | s/at/as ... what's up with all my typos, I must up my typing game |
01:06:10 | disruptek | clearly we should write fewer tools? |
01:06:19 | krux02 | no |
01:06:31 | krux02 | but here is an example |
01:06:32 | FromDiscord | <Elegant Beef> *Make easily expandable tools* |
01:06:33 | disruptek | clearly it's a silly statement. |
01:06:36 | krux02 | what do you prefer |
01:06:58 | FromDiscord | <Elegant Beef> Look at vscode, it can do every language gracefully 😛 |
01:07:07 | FromDiscord | <Elegant Beef> *I mean vscodium, the superior version* |
01:07:28 | dadada | disruptek: 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:36 | krux02 | having tools like valgrind that allow you with effort to find memory leaks, or a safe language/environment that prevents memory leaks structurally. |
01:07:43 | disruptek | what i really want is to just /tell the computer what to write/ and have it understand the operation of the code composition. |
01:08:00 | disruptek | dadada: sure. |
01:09:12 | disruptek | ~dumpNumberOfInstances is add a -d:nimTypeNames at compilation and call `dumpNumberOfInstances()` at runtime. |
01:09:13 | disbot | dumpNumberOfInstances: 11add a -d:nimTypeNames at compilation and call `dumpNumberOfInstances()` at runtime. |
01:10:36 | dadada | nice, 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:56 | dadada | having to add the flag kind of hints that I shouldn't rely on it |
01:10:58 | dadada | :D |
01:10:59 | disruptek | i dunno, why does it matter? |
01:11:16 | disruptek | are you going to exploit this somehow in code that you're worried about being able to maintain in a few years? |
01:11:25 | dadada | well, I might |
01:11:29 | disruptek | like, seriously, what are we talking about? |
01:11:42 | disruptek | you might? |
01:11:44 | disruptek | that might happen? |
01:11:53 | disruptek | and you might not be able to fix it... in time? |
01:11:56 | FromDiscord | <clyybber> krux02: Are you emacs PID 1 yet? |
01:11:58 | disruptek | are you going on a long trip? |
01:12:03 | disruptek | are you an astronaut? |
01:12:12 | disruptek | without, i dunno, a laptop? |
01:12:22 | disruptek | and, uh, spacebucks for a collect phonecall? |
01:12:33 | disruptek | what are we talking about here? |
01:12:35 | disruptek | are you in the cia? |
01:12:37 | disruptek | nsa? |
01:12:45 | dadada | give 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:46 | disruptek | you're some kinda fed deep undercover? |
01:12:53 | FromDiscord | <Elegant Beef> `collect phonecall` fuck you're old 😛 |
01:12:55 | dadada | I wish, that would be a cool job |
01:12:58 | krux02 | clyybber: no not really |
01:13:04 | disruptek | no, you can't do runtime introspection. |
01:13:17 | FromDiscord | <clyybber> krux02: You'll get there ! |
01:13:30 | krux02 | I don't really know what you mean with PID 1 though, I think you mean make emacs the center of everything |
01:13:33 | FromDiscord | <clyybber> dadada: Sounds like a terrible idea |
01:13:34 | disruptek | this 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:37 | krux02 | and no I did not do that |
01:13:39 | FromDiscord | <clyybber> krux02: Yeah |
01:13:42 | FromDiscord | <clyybber> I meant that |
01:13:44 | krux02 | emacs is my center of programming |
01:13:52 | FromDiscord | <clyybber> emacs os |
01:13:54 | FromDiscord | <clyybber> lol |
01:14:02 | krux02 | and I still have a terminal, a browser, an IRC client |
01:14:10 | krux02 | that all exists built into emacs |
01:14:13 | krux02 | but no thanks |
01:14:26 | krux02 | I don't like the emacs window splitting behavior |
01:14:43 | disruptek | wait, i'm confused. |
01:14:56 | disruptek | you /do/ run your terminal, browser, and irc inside emacs? |
01:15:04 | krux02 | no I don't |
01:15:09 | disruptek | because of the window splitting? |
01:15:11 | FromDiscord | <clyybber> he *could* |
01:15:14 | disruptek | isn't that easily fixable? |
01:15:21 | disruptek | or, there's just no reason to do so? |
01:16:03 | krux02 | well maybe someday I will try emacs as a window manager |
01:16:06 | disruptek | i 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:12 | krux02 | but I don't feel like doing so right now |
01:16:21 | disruptek | right, i get that. |
01:16:29 | krux02 | only for programming |
01:16:45 | FromDiscord | <Elegant Beef> what WM do you use? |
01:16:51 | krux02 | I use xfce |
01:16:55 | disruptek | i'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:59 | krux02 | most boring window manager available |
01:17:04 | FromDiscord | <Elegant Beef> lol |
01:17:06 | FromDiscord | <Elegant Beef> i use i3wm |
01:17:09 | FromDiscord | <Elegant Beef> it's a nice world |
01:17:17 | krux02 | I don't want my window manager to be exciting |
01:17:28 | FromDiscord | <Elegant Beef> well i3wm is super simple |
01:17:30 | FromDiscord | <Elegant Beef> so idk |
01:17:33 | krux02 | yea maybe some day I will do i3wm |
01:17:35 | disruptek | i don't even have borders or titlebars. zero decorations at all. |
01:17:40 | krux02 | but I like the drop down terminal |
01:18:07 | FromDiscord | <Elegant Beef> This is pretty much my UX(also the nim code in action) |
01:18:07 | FromDiscord | <Elegant Beef> https://streamable.com/ur11j |
01:18:44 | disruptek | neat, how does it work? |
01:18:52 | dadada | disruptek: 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:52 | FromDiscord | <clyybber> I wish you that some day you are gonna see the dogs tail move |
01:18:55 | FromDiscord | <clyybber> just so slightly |
01:19:04 | FromDiscord | <Elegant Beef> I mean there are mp4 backgroud players |
01:19:08 | FromDiscord | <Elegant Beef> also could pipe an image into feg |
01:19:10 | FromDiscord | <Elegant Beef> also could pipe an image into feh |
01:19:11 | FromDiscord | <Elegant Beef> feh* |
01:19:19 | krux02 | Elegant Beef: that pretty much shows why I don't like steam |
01:19:21 | disruptek | dadada: right, but thisn't that, in any event. |
01:19:27 | krux02 | it is just waiting all the time |
01:19:30 | FromDiscord | <Elegant Beef> huh? |
01:19:34 | krux02 | instead of starting the game instantly |
01:19:42 | FromDiscord | <Elegant Beef> that's lutris |
01:19:44 | dadada | disruptek: introspection is also cool to allow users the ability to run scripts on top of your applications |
01:19:51 | disruptek | that looks a lot like my dog, actually. |
01:19:51 | * | ptdel joined #nim |
01:20:04 | FromDiscord | <Elegant Beef> that steam icon is jusut an svg |
01:20:10 | FromDiscord | <clyybber> disruptek: pet your dog for me, will ya |
01:20:21 | krux02 | I tried lutris once. |
01:20:22 | FromDiscord | <clyybber> krux02: The waiting increases the anticipation |
01:20:26 | krux02 | very bad experience |
01:20:30 | FromDiscord | <clyybber> its part of the experience |
01:20:38 | krux02 | it just didn't work at all |
01:20:42 | FromDiscord | <clyybber> haha |
01:20:45 | krux02 | I am back at vanilla wine |
01:20:58 | FromDiscord | <Elegant Beef> i mean lutris creates a tinker free experience like steamplay |
01:21:01 | FromDiscord | <Elegant Beef> idk i like it |
01:21:10 | krux02 | no it didn't |
01:21:14 | FromDiscord | <Elegant Beef> what game? |
01:21:18 | krux02 | it created a game free experience for me |
01:21:19 | FromDiscord | <clyybber> its cool when it works |
01:21:23 | FromDiscord | <clyybber> which it does most of the time |
01:21:24 | krux02 | then I uninstalled it. |
01:21:39 | krux02 | I don't know what I tried, but what I tried didn't work and I tried several games |
01:21:47 | FromDiscord | <clyybber> only thing I would like out of lutris is making it a bit easier to make installers yourself |
01:21:48 | FromDiscord | <Elegant Beef> how long ago? |
01:21:51 | FromDiscord | <clyybber> like debugging and shit |
01:21:58 | FromDiscord | <Elegant Beef> a json too hard? 😄 |
01:21:59 | krux02 | then my evaluation was, crappy software, uninstall |
01:22:14 | FromDiscord | <clyybber> @Elegant Beef I don't mean debugging the json |
01:22:18 | krux02 | 2-3 months ago |
01:22:23 | FromDiscord | <clyybber> I mean debugging the whole setup |
01:22:37 | FromDiscord | <clyybber> like libraries |
01:22:41 | FromDiscord | <clyybber> installers |
01:22:44 | FromDiscord | <clyybber> workarounds |
01:22:48 | FromDiscord | <clyybber> all that kinda stuff |
01:22:58 | FromDiscord | <clyybber> it feels a bit like CI sometimes |
01:22:59 | disruptek | ~bentley is https://imgur.com/gallery/wyPnn8j |
01:22:59 | disbot | bentley: 11https://imgur.com/gallery/wyPnn8j |
01:23:03 | * | pbb quit (Ping timeout: 272 seconds) |
01:23:03 | FromDiscord | <clyybber> but maybe its imrpoved since then |
01:23:18 | FromDiscord | <Elegant Beef> is it a jack russell terrier too? |
01:23:29 | FromDiscord | <clyybber> disruptek: You can add multiple tags to one thing right? |
01:23:29 | disruptek | nah, he's an asshole. |
01:23:34 | * | pbb joined #nim |
01:23:36 | disruptek | what? |
01:23:36 | FromDiscord | <Elegant Beef> that's what i said |
01:23:40 | FromDiscord | <clyybber> ~bentley is a good boy |
01:23:41 | disbot | bentley: 11https://imgur.com/gallery/wyPnn8j |
01:23:41 | disbot | bentley: 11a good boy |
01:23:44 | FromDiscord | <clyybber> nice |
01:23:57 | disruptek | he's blue heeler and border collie. |
01:24:04 | disruptek | australian cattle dog, that is. |
01:24:08 | FromDiscord | <Elegant Beef> that's a pup picture eh? |
01:24:11 | disruptek | yeah. |
01:24:20 | FromDiscord | <Elegant Beef> didnt notice the feet until after i asked |
01:24:21 | FromDiscord | <clyybber> disruptek: Wow |
01:24:26 | FromDiscord | <clyybber> you actually have an imgur account |
01:24:48 | disruptek | yeah, it's sorta handy. |
01:25:17 | disruptek | i dunno, i haven't decided how i'm going to interface with it. |
01:25:27 | FromDiscord | <Elegant Beef> the dog? Hopefully petting it |
01:25:47 | disruptek | screw that, i'm a beater not a lover. |
01:26:02 | FromDiscord | <Elegant Beef> can we get your location so we can contact your local spca? |
01:26:19 | disruptek | probably, yeah. |
01:27:51 | * | prcups joined #nim |
01:30:58 | FromDiscord | <clyybber> disruptek: Heh, this is actually handy: https://www.diffchecker.com/eKfCX3Wq |
01:31:48 | FromDiscord | <clyybber> well, well, debugging that can wait until tomorrow |
01:31:56 | FromDiscord | <clyybber> gn8 fellas |
01:32:11 | krux02 | good night |
01:32:12 | FromDiscord | <Elegant Beef> buh bye |
01:32:19 | krux02 | also for me |
01:32:27 | disruptek | peace |
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:16 | sekao | is 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:15 | disruptek | yep, that's how you do it. |
01:45:42 | sekao | oh, so it works on instances and typedescs? |
01:46:49 | disruptek | yes? |
01:49:29 | disruptek | clyybber: this diffchecker is terrible. |
01:50:01 | zedeus | !eval static: echo string is string |
01:50:04 | NimBot | <no output> |
01:50:05 | sekao | gotcha. i think when i tried it, it was false because i compared T to a parent class |
01:50:26 | disruptek | use `of` for that. |
01:51:34 | * | prcups joined #nim |
01:52:43 | sekao | i tried `of` but it says `Error: 'of' takes object types` |
01:53:20 | disruptek | yeah, is there another kind of inheritance? |
01:54:38 | disruptek | maybe i'm misremembering these keywords. |
01:54:56 | sekao | it'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:02 | disruptek | ~manual |
01:55:03 | disbot | manual: 11the Nim Manual is https://nim-lang.org/docs/manual.html -- disruptek |
01:55:51 | disruptek | https://nim-lang.org/docs/manual.html#generics-is-operator |
01:56:56 | zedeus | `is` works for checking inherited types against their parents |
01:57:27 | disruptek | is there an `of` or am i just thinking of typedefs? |
01:57:37 | zedeus | `of` exists, but it doesn't work for typedescs |
01:58:03 | zedeus | https://play.nim-lang.org/#ix=2bsH |
01:59:04 | * | prcups quit (Remote host closed the connection) |
01:59:16 | disruptek | i don't get it. |
01:59:35 | zedeus | `Bar of Foo` results in the error sekao posted |
01:59:55 | FromDiscord | <Elegant Beef> Error? |
02:00:09 | disruptek | oh i'm looking at someone else's link. |
02:00:25 | disruptek | i don't know how that happens but it's creepy. |
02:00:36 | disruptek | i guess it's just not a very well engineered piece of software. |
02:00:55 | zedeus | ix.io uses a sequential id.. |
02:01:10 | zedeus | trivial to find other's pastes |
02:01:11 | * | muffindrake quit (Quit: muffindrake) |
02:01:15 | disruptek | yeah but it sometimes retrieves the wrong data. |
02:02:18 | * | muffindrake joined #nim |
02:02:20 | disruptek | so anyway, of is instance-of and is is progeny-of. |
02:02:34 | disruptek | great. |
02:03:27 | * | Hideki_ quit (Ping timeout: 260 seconds) |
02:03:55 | * | dadada quit (Ping timeout: 260 seconds) |
02:05:48 | zedeus | https://nim-lang.github.io/Nim/system.html#of%2Ctypedesc%5BT%5D%2Ctypedesc%5BS%5D |
02:05:49 | zedeus | hm |
02:08:12 | zedeus | what 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:18 | disruptek | i dunno, what? |
02:09:25 | * | dadada is now known as Guest11321 |
02:10:16 | disruptek | are the docs wrong? |
02:10:22 | zedeus | you tell me |
02:10:37 | disruptek | run that code in playground. |
02:11:19 | zedeus | it 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:21 | zedeus | ...what? |
02:11:44 | disruptek | the asserts. |
02:13:25 | disruptek | the docs and the code are fine. so is the code. |
02:13:33 | disruptek | and also the docs. |
02:13:42 | zedeus | https://play.nim-lang.org/#ix=2bsQ |
02:13:45 | zedeus | this doesn't work, either |
02:15:37 | disruptek | admittedly, that's strange. |
02:16:15 | disruptek | this is probably the same issue with refs and inheritance that bites me over and over again. |
02:16:20 | FromDiscord | <Rika> Latest doesn't mean devel in playground |
02:16:45 | disruptek | it's late enough. |
02:16:56 | FromDiscord | <Rika> Stable docs show that the of proc doesn't exist tho |
02:17:00 | FromDiscord | <Rika> Which is interesting |
02:17:20 | zedeus | huh, git blame says it was last modified 8 months ago |
02:17:38 | disruptek | it's a conspiracy. |
02:17:50 | zedeus | we're onto something here |
02:17:58 | FromDiscord | <Rika> Found it, didn't see it |
02:19:02 | * | chemist69_ joined #nim |
02:19:37 | zedeus | https://github.com/nim-lang/Nim/blob/7939319379ba72beba8c15230b0a4229f7bcc1f1/compiler/semmagic.nim#L333 |
02:19:45 | zedeus | so the overload exists but it's illegal |
02:20:14 | zedeus | https://github.com/nim-lang/Nim/commit/8d714d2b02458553234869d7139afb73621f6d7d |
02:20:24 | disruptek | wait, you're using of on T when you should use it on a. |
02:20:59 | disruptek | https://play.nim-lang.org/#ix=2bsS |
02:21:04 | zedeus | right, but that's another case, the point is you can't check a typedesc against another typedesc, which the overload would suggest |
02:21:43 | disruptek | fair 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:46 | disruptek | that 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:16 | leorize | disruptek: how's your ryu port going? |
04:10:47 | disruptek | f2s is done, as far as we know. |
04:11:15 | disruptek | timothee generously contributed a couple enhancements, too. |
04:11:54 | leorize | I read ryu code and afaict, I don't understand what it does |
04:12:26 | disruptek | i mean, the theory is pretty straightforward, but i don't really understand the details. |
04:13:10 | disruptek | it has something to do with approximations as a way to sufficienctly narrow the scope. you produce the approximations trivially. |
04:13:35 | leorize | sounds interesting |
04:13:46 | disruptek | i should probably watch the talk. i really can't remember the details. |
04:14:06 | leorize | :P if I find some free time I could try implementing that from scratch |
04:14:18 | disruptek | yeah, that would be a lot easier. |
04:14:49 | disruptek | this is a pretty finely tuned instrument we're copying. 😁 |
04:15:08 | leorize | I did a quick port of f2s today on the playground to see if I can understand the code |
04:15:34 | disruptek | i guess you're the third sucker. |
04:15:38 | leorize | answer: I don't, the and port spew out pretty bad result :P |
04:15:57 | disruptek | you tried to port it from the paper? |
04:16:03 | disruptek | or from the c? |
04:16:08 | leorize | C |
04:16:13 | disruptek | ah, yeah. |
04:16:41 | disruptek | it will be hard to beat the speed. |
04:17:47 | leorize | nah, it doesn't run |
04:17:57 | leorize | though I'd say that the playground editor isn't the best |
04:18:10 | disruptek | i mean it will be hard for us to beat the speed of c-ryu. |
04:18:47 | leorize | true |
04:19:19 | leorize | I'll try to do a port from the paper later so there would be less cruft from optimizations |
04:19:34 | disruptek | we can probably write it nicer, smaller, sharper, cleaner. |
04:19:54 | disruptek | i was gonna use the paper originally, but i decided i'd rather have the tests. |
04:20:07 | disruptek | so it was worth transcribing just for those. |
04:21:00 | leorize | once you have a working impl I could snatch your tests :p |
04:21:08 | disruptek | yeah, that's my thinking. |
04:21:23 | disruptek | it works for f2s right now. |
04:48:35 | * | nsf joined #nim |
05:07:17 | leorize | is there anything out there that could flatten sci paper columns? |
05:07:57 | leorize | I generally dislikes that after you done scrolling the page you gotta scroll back up to catch the rest |
05:08:15 | disruptek | probably not in pdf. |
05:08:25 | disruptek | it's pretty involved... |
05:14:49 | shashlick | okay nghttp2 wrapper done, what else |
05:15:33 | disruptek | what's the deal with graphql? can i use it for a client? |
05:15:45 | disruptek | i mean your graphql wrapper. |
05:16:17 | shashlick | ya it should work as a client i think |
05:16:27 | shashlick | i fixed some bugs recently for someone |
05:17:09 | disruptek | ah, sweet. i may use it for integrating github actions into nimph. |
05:18:13 | disruptek | nimph will backend into nigel (on github actions) to give you a view of tests across your whole app. |
05:19:53 | shashlick | it is based on nimgen which depends on c2nim |
05:20:38 | disruptek | really? |
05:21:19 | shashlick | ya old times |
05:21:24 | shashlick | and it is C++ so nimterop is out |
05:21:35 | disruptek | eh it doesn't bother me. |
05:21:52 | disruptek | working software is working software. |
05:22:17 | shashlick | nimgen is unmaintained so ya |
05:22:37 | disruptek | it takes days and thousands of downloads to build rust. i'd rather know the maintainer. |
05:25:41 | shashlick | no pure C graphql client? |
05:36:24 | shashlick | maybe 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:07 | shashlick | disruptek: nimgraphql is now a nimterop based project so should be cleaner to import |
08:21:52 | shashlick | disruptek: 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:22 | shashlick | disruptek: also, libgraphqlparser isn't supported on Windows - just Linux / OSX and i've only tested on Linux so far |
08:23:06 | shashlick | oh and this is in the nimterop branch so please try it and let me know how it goes |
08:23:52 | shashlick | https://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:42 | FromDiscord | <clyybber> leorize: haha third guy |
09:04:48 | * | hax-scramper joined #nim |
09:04:54 | FromDiscord | <clyybber> I also started over. |
09:05:07 | FromDiscord | <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:50 | dadada | PartiQL https://www.youtube.com/watch?v=ZsEOhCOFOe4&feature=emb_logo |
09:21:47 | dadada | I think this may be useful, hope a lib for it comes to nim |
09:22:51 | dadada | a query language that works for sql databases, nosql databases, json, ..., basically all popular data storage formats/types |
09:23:25 | dadada | SQL backwards compatible |
09:45:29 | * | JustASlacker joined #nim |
09:46:56 | dadada | https://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:50 | FromGitter | <Varriount> dadada: Interesting |
10:30:43 | * | dadada quit (Ping timeout: 260 seconds) |
10:32:51 | Demos[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:11 | FromGitter | <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:11 | dadada | Varriount: here's a comparison https://a.kabachnik.info/odata-jsonapi-graphql-and-partiql-compared.html |
11:40:56 | dadada | Varriount: 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:10 | dadada | s/they're/their |
11:42:07 | dadada | (graphql development started in 2012 at facebook internally, and was published in 2015) |
11:48:17 | FromDiscord | <clyybber> disruptek: Good enough for now |
11:48:22 | FromDiscord | <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:56 | FromDiscord | <clyybber> disruptek: Ha |
12:01:01 | FromDiscord | <clyybber> Stupid typo |
12:01:04 | FromDiscord | <clyybber> all tests pass now |
12:01:11 | FromDiscord | <clyybber> completely similar to C version |
12:01:16 | FromDiscord | <clyybber> onto d2s |
12:03:03 | * | marmotini_ joined #nim |
12:04:38 | FromDiscord | <Rika> lmao RIP |
12:06:51 | * | abm quit (Ping timeout: 260 seconds) |
12:08:31 | FromDiscord | <clyybber> but small table still fails completely |
12:09:10 | * | dadada joined #nim |
12:09:32 | * | dadada is now known as Guest49527 |
12:10:48 | FromDiscord | <clyybber> argh, why is xsel so bugged |
12:12:36 | FromDiscord | <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:23 | FromDiscord | <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:33 | FromDiscord | <clyybber> it doesn't have the pipe bug |
12:50:40 | FromDiscord | <clyybber> but its still buggy sometimes |
12:51:04 | FromDiscord | <clyybber> like just now, xsel -b -i printed out a part of the thing I pied in |
12:51:12 | FromDiscord | <clyybber> but with xsel -p -i it just worked |
12:51:50 | Araq | https://github.com/nim-lang/RFCs/issues/192 feedback welcome |
12:51:52 | disbot | ➥ outplace 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:39 | FromDiscord | <clyybber> Why not give dup/outplace an operator? |
12:54:46 | FromDiscord | <clyybber> IMO it doesn't make much sense without one |
12:56:49 | FromDiscord | <clyybber> And IMO dup and on should be the same |
12:56:54 | leorize | I think it works fine without an operator |
12:58:07 | leorize | I think in implementation, `dup` is just copy then pass to `on` :P |
12:58:27 | FromDiscord | <clyybber> Ah, I see. Sorry |
12:58:46 | leorize | will `on` also make macros like Zevv's with obselete? |
12:59:03 | FromDiscord | <clyybber> Hmm |
12:59:20 | FromDiscord | <clyybber> So on will modify w here |
12:59:22 | FromDiscord | <clyybber> But dup will not |
12:59:27 | leorize | hmm, is: |
12:59:30 | leorize | !repo cascade |
12:59:30 | disbot | https://github.com/citycide/cascade -- 9cascade: 11Method & assignment cascades for Nim, inspired by Smalltalk & Dart. 15 35⭐ 3🍴 |
12:59:46 | leorize | an implementation of `on`? |
12:59:58 | FromDiscord | <clyybber> essentially yeah |
13:00:12 | FromGitter | <kaushalmodi> clybber: I had years of switching back and forth xsel and xclip. Have been using xclip for few years now |
13:00:37 | leorize | I use wl-copy, works much better :P |
13:00:49 | FromDiscord | <clyybber> leorize: blame nvidia not me |
13:00:57 | leorize | but yea, xclip on X because it doesn't make dot files |
13:01:14 | FromDiscord | <clyybber> yeah, thats another sucky thing about xsel |
13:01:48 | FromGitter | <kaushalmodi> clybber: http://ix.io/2bvh (from my tcsh config [don't tell me.. work]) |
13:01:49 | leorize | well it's your fault to buy a system with nvidia :p |
13:02:05 | FromDiscord | <clyybber> me was 13 at the time |
13:02:07 | FromDiscord | <clyybber> :p |
13:02:36 | FromDiscord | <clyybber> kaushalmodi: Thanks |
13:02:57 | FromDiscord | <clyybber> The thing I like about xsel tho |
13:03:04 | FromDiscord | <clyybber> which bothers me to no end about xclip |
13:03:21 | FromDiscord | <clyybber> is that it runs in the background |
13:03:33 | FromDiscord | <clyybber> so I don't have to keep xclip running until I paste it |
13:03:50 | FromDiscord | <clyybber> like, when piping from your editor to xclip thats really annoying |
13:04:08 | * | ikan-keli_ quit (Ping timeout: 268 seconds) |
13:04:08 | FromGitter | <kaushalmodi> clybber: I have a different use case then |
13:04:09 | FromGitter | <kaushalmodi> I don |
13:04:19 | FromGitter | <kaushalmodi> I don't need to run xsel or xclip in background |
13:04:25 | FromGitter | <kaushalmodi> I simply call them via aliases |
13:04:57 | FromGitter | <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:22 | FromDiscord | <clyybber> to copy in kakoune I pipe to xsel -b -i |
13:05:26 | leorize | wait what? you need xsel to run in the background to paste? |
13:05:37 | FromDiscord | <clyybber> leorize: No, it does it automagically |
13:05:54 | leorize | weird, 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:26 | FromDiscord | <clyybber> ah, |
13:08:35 | FromDiscord | <clyybber> even xclip runs a daemon I think |
13:08:46 | FromDiscord | <clyybber> but the issue is xclip doesn't close stdout |
13:08:59 | FromDiscord | <clyybber> https://github.com/astrand/xclip/issues/20 |
13:08:59 | disbot | ➥ Not closing stdout when setting clipboard from stdin |
13:09:05 | * | dadada_ joined #nim |
13:10:59 | leorize | you can make a small nim script to fork xclip then :P |
13:11:22 | FromDiscord | <clyybber> I think a replacement for xclip in nim would be better :p |
13:11:34 | * | Hideki_ joined #nim |
13:11:50 | leorize | hmm but xclip forks a child automatically |
13:11:55 | leorize | why doesn't it close stdout then? |
13:16:11 | FromDiscord | <clyybber> yeah, exactly |
13:16:12 | FromDiscord | <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:07 | leorize | clyybber: meh, just pipe to /dev/null :P |
13:48:21 | leorize | I've just realized how floats are rendered to string in nim: fprintf() |
13:49:10 | Zevv | but not for long! |
13:51:08 | FromDiscord | <clyybber> workin on it : ) |
13:51:35 | leorize | I'm working on a fresh implementation from that paper :) |
13:51:49 | FromDiscord | <clyybber> ah, I'm just translating the C code |
13:51:55 | FromDiscord | <clyybber> works pretty well so far |
13:52:16 | leorize | I tried translating it myself, couldn't understand a thing :P |
13:52:30 | FromDiscord | <clyybber> well, just translate it without understanding it |
13:52:34 | FromDiscord | <clyybber> thats what I am doing |
13:52:38 | FromDiscord | <clyybber> understanding can come later |
13:52:55 | FromDiscord | <clyybber> understanding is also simpler when looking at nim code as opposed to C |
13:55:40 | leorize | I've always hated curly brackets and ryu code just reminds me of why |
13:56:42 | Zevv | leorize: 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:22 | leorize | true |
13:59:28 | * | hax-scramper joined #nim |
13:59:57 | FromDiscord | <clyybber> what I don't understand is |
14:00:08 | FromDiscord | <clyybber> in the C version some of my printfs don't trigger... |
14:00:15 | FromDiscord | <clyybber> oh |
14:19:17 | * | rockcavera quit (Remote host closed the connection) |
14:21:46 | * | rockcavera joined #nim |
14:24:06 | Zevv | bah there is still no simple way to connect osproc and async and streams |
14:24:19 | Zevv | all 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:42 | Zevv | `nimble install asynctools` I guess |
14:43:09 | disruptek | Zevv: i do it in golden. |
14:43:32 | Zevv | I did it once, but it was a pain |
14:43:34 | Zevv | You get the asyncFd |
14:43:41 | Zevv | but you can only recv() on a asyncfd, not read |
14:43:47 | Zevv | so there is other plumbing |
14:44:01 | Zevv | cheatfates libs do the right thing. I just get asyncpipes |
14:44:14 | * | floppydh quit (Quit: WeeChat 2.7) |
14:44:26 | disruptek | well, i don't use those. |
14:44:47 | disruptek | remember the ioselectors signalfd leak? this is that code. |
14:45:05 | Zevv | I have not recollections of that event |
14:46:02 | disruptek | i agree it should be easier. |
14:46:41 | disruptek | honestly, ryu should just be a macro in nim. |
14:46:45 | shashlick | disruptek did you see my GraphQL messages from last night |
14:46:59 | disruptek | i see it now. |
14:47:21 | disruptek | nimgraphql is what i want? i will try it! thanks! |
14:47:47 | shashlick | See the nimterop branch |
14:47:55 | * | couven92 joined #nim |
14:47:57 | shashlick | That's what I did last night |
14:48:03 | disruptek | oh, cool. |
14:48:15 | disruptek | does it have a test? |
14:48:19 | shashlick | Yes |
14:48:36 | shashlick | Someone wrote it so I just continue to use it |
14:48:42 | disruptek | nice. |
14:48:52 | shashlick | Had to make some changes |
14:49:13 | shashlick | But only Linux and osx |
14:49:18 | disruptek | test passes for me. 😁 |
14:49:27 | shashlick | No windows according to upstream |
14:50:03 | disruptek | eh i'm okay with that. |
14:50:18 | disruptek | at some point we have to leave those heathens in the dust. |
14:51:26 | shashlick | Ok once you give it a thumbs up, I'll merge it and post to nimble, add Travis |
14:51:29 | FromDiscord | <clyybber> disruptek: A macro?? |
14:51:54 | FromDiscord | <clyybber> Its inputs are RT so what use would a macro be? |
14:51:54 | disruptek | sure. |
14:52:02 | FromDiscord | <clyybber> or do you mean the tables and shit? |
14:52:18 | disruptek | the macro would just fold all the code in. |
14:52:38 | disruptek | it's all inline anyway. 😆 |
14:53:55 | disruptek | the macro wouldn't use the optimizations; it'd be more friendly to nim that way. |
14:54:23 | FromDiscord | <clyybber> inline is not CT |
14:55:20 | disruptek | i know, silly. |
14:55:36 | FromDiscord | <clyybber> I mean, the difference comes out to be inline in nim vs inline in c |
14:55:48 | FromDiscord | <clyybber> prolly doesn't matter |
14:55:52 | FromGitter | <alehander92> zevv i use asynctools for that iirc |
14:55:56 | FromGitter | <alehander92> it seems to work fine |
14:56:16 | disruptek | exactly; it doesn't matter. so there's no reason it won't work. |
14:56:43 | Zevv | alehander92: 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:57 | FromDiscord | <clyybber> disruptek: Yeah |
14:59:14 | * | Kaivo quit (Ping timeout: 240 seconds) |
14:59:22 | FromGitter | <alehander92> yeah it would be good to fix this |
14:59:25 | FromGitter | <alehander92> i agree |
14:59:31 | FromGitter | <alehander92> what happened with awating flowvars |
14:59:37 | FromGitter | <alehander92> btw |
15:00:41 | FromDiscord | <clyybber> disruptek: Hmm, I tracked the small_table issue down |
15:01:23 | FromDiscord | <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:25 | FromDiscord | <clyybber> somehow |
15:02:15 | FromDiscord | <clyybber> where shift is an int32 |
15:02:25 | FromDiscord | <clyybber> and the result is uint64 |
15:02:27 | FromDiscord | <clyybber> and sum too |
15:04:06 | FromDiscord | <clyybber> I suspect its due to implicit type conversions |
15:04:41 | FromGitter | <alehander92> wow i was reading the ""The fourth" "assignment" "would crash" "out of bounds" comment |
15:04:45 | FromGitter | <alehander92> of newSeq |
15:04:52 | FromGitter | <alehander92> and i spent like half a min wondering |
15:05:04 | FromGitter | <alehander92> if this is some kind of commentary on US constitution |
15:05:33 | FromGitter | <alehander92> oh, those were amendments |
15:05:53 | FromGitter | <alehander92> i really need to get some air |
15:08:14 | FromGitter | <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:18 | FromGitter | <patrkris> Any suggestions? |
15:14:47 | * | paxis quit (Ping timeout: 260 seconds) |
15:19:45 | FromGitter | <patrkris> Ah, had to change `-rpath=...` to `-rpath,...` |
15:19:47 | FromDiscord | <clyybber> Hmmm, this is really fucking weird |
15:22:14 | * | actuallybatman joined #nim |
15:23:44 | krux02 | why do I get constantly reminded of timotheecours shitty contributions |
15:24:03 | * | ptdel joined #nim |
15:25:17 | FromGitter | <alehander92> krux02 are you 12 |
15:26:01 | krux02 | this 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:12 | krux02 | this guy is the most toxic contributor to Nim |
15:26:37 | FromDiscord | <clyybber> timotheecour is the antithesis of toxic |
15:26:47 | FromDiscord | <clyybber> maybe a bit subborn at times, but really not toxic |
15:26:47 | FromGitter | <alehander92> honestly krux02, just dont talk about this |
15:26:54 | FromGitter | <alehander92> before you say something more stupid |
15:26:58 | FromDiscord | <clyybber> and he is a great contributor |
15:27:13 | krux02 | tell me one thing that me mad that is good quality? |
15:27:34 | krux02 | something that actually improved things |
15:28:04 | FromDiscord | <clyybber> recently? |
15:28:08 | krux02 | no |
15:28:10 | FromDiscord | <clyybber> this for instance: https://github.com/nim-lang/Nim/pull/13386 |
15:28:10 | krux02 | just one |
15:28:12 | disbot | ➥ fix several bugs with `repr` ; snippet at 12https://play.nim-lang.org/#ix=2bw2 |
15:28:13 | krux02 | in total |
15:28:30 | FromDiscord | <clyybber> this: https://github.com/nim-lang/Nim/pull/13345 |
15:28:33 | disbot | ➥ fix #13182: `proc fun(a: varargs[Foo, conv])` now can be overloaded ; snippet at 12https://play.nim-lang.org/#ix=2bw3 |
15:28:38 | FromDiscord | <clyybber> tho it caused regressions araq fixed them |
15:28:55 | FromDiscord | <clyybber> and you can't blame him for not understanding sigmatch |
15:29:32 | FromGitter | <alehander92> he has provided some useful things and some not-perfect things, similarly to many contributors |
15:29:49 | FromDiscord | <clyybber> krux02: https://github.com/nim-lang/Nim/pull/13290 |
15:29:52 | disbot | ➥ fix bug discovered by #11591: `proc `<`*[T](x, y: set[T])` was wrong ; snippet at 12https://play.nim-lang.org/#ix=2bw5 |
15:30:11 | FromDiscord | <clyybber> sure, the total quantity is a bit big |
15:31:21 | FromDiscord | <clyybber> but there are many contributions by him that have greatly improved nim |
15:32:59 | FromDiscord | <clyybber> I can understand not liking all of his contributions |
15:33:16 | FromGitter | <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:01 | FromDiscord | <clyybber> but his contributions explore different directions |
15:34:37 | FromDiscord | <clyybber> and some of them are really great |
15:34:47 | FromDiscord | <clyybber> (those that get merged : )) |
15:35:50 | FromDiscord | <clyybber> you can criticize his pace |
15:36:02 | FromDiscord | <clyybber> or that hes fast to open an issue or PR |
15:36:19 | FromDiscord | <clyybber> but that does not even remotely outweigh his valuable contributions |
15:36:21 | FromGitter | <alehander92> we should have somehow met krux and timothee on FOSDEM on a dinner of mayo fries and fixed all that already |
15:37:19 | FromDiscord | <clyybber> its the competition of the alike |
15:37:24 | FromDiscord | <clyybber> :p |
15:38:07 | krux02 | clyybber, 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:20 | krux02 | Then I looked who wrote it, and it was timothee cour |
15:39:07 | FromDiscord | <clyybber> krux02: Ok, but don't degrade all of his contributions |
15:39:14 | FromDiscord | <clyybber> krux02: Which code btw? |
15:39:35 | * | Hideki_ quit (Remote host closed the connection) |
15:39:37 | krux02 | I 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:55 | FromDiscord | <clyybber> nobody here has "fans" |
15:40:09 | krux02 | clyybber: in this case `lenTuple` in typetraits |
15:40:19 | * | Hideki_ joined #nim |
15:41:14 | FromDiscord | <clyybber> krux02: Ah, I see. What is the bad part about it? |
15:41:23 | FromDiscord | <clyybber> I myself don't particularily like lenVarargs |
15:41:27 | FromDiscord | <clyybber> So maybe its the same vain |
15:41:39 | disruptek | hey, i have fans. |
15:41:55 | FromDiscord | <clyybber> ~disruptek is an exception |
15:41:55 | disbot | disruptek: 11a sexy fella with magic hands. |
15:41:56 | disbot | disruptek: 11don't listen to him |
15:41:56 | disbot | disruptek: 11an unsafe nil deref |
15:42:05 | FromDiscord | <clyybber> ~disruptek |
15:42:05 | krux02 | clyybber: the bad part about it is, it doesn't work |
15:42:05 | disbot | disruptek: 11a sexy fella with magic hands. |
15:42:05 | disbot | disruptek: 11don't listen to him |
15:42:06 | disbot | disruptek: 11an unsafe nil deref |
15:42:09 | FromGitter | <alehander92> krux02 "he instrumentalizes his fans against me." |
15:42:19 | krux02 | if you put generics or type aliases in it, you get wrong results |
15:42:24 | FromGitter | <alehander92> ok man how can i get your position seriously with such tabloid stuff |
15:42:50 | krux02 | then from the same PR there is template get*(T: typedesc[tuple], i: static int): untyped |
15:43:06 | FromGitter | <alehander92> i dislike many ideas of him, i just hate your personal drama, get a life |
15:43:10 | krux02 | this is unlike the other PR correct |
15:43:27 | krux02 | except that the term is `typeof` not `type`. |
15:44:13 | Araq | `type` is not yet deprecated though, not his fault |
15:44:20 | FromDiscord | <clyybber> krux02: No, type is correct |
15:44:20 | * | Hideki_ quit (Remote host closed the connection) |
15:44:32 | FromDiscord | <clyybber> And type was hated on without reason |
15:44:32 | * | Hideki_ joined #nim |
15:44:43 | FromDiscord | <clyybber> There was ONE thing that didn't work with it as opposed to typeof |
15:44:46 | FromDiscord | <clyybber> But that got fixed |
15:45:45 | FromDiscord | <clyybber> get() I find kind of redundant |
15:45:51 | * | Hideki_ quit (Remote host closed the connection) |
15:45:58 | Araq | clyybber: I think I had good reasons for hating it :P |
15:47:12 | FromDiscord | <clyybber> Araq: keyword overloading? |
15:47:16 | FromDiscord | <clyybber> I guess thats fair |
15:47:50 | krux02 | well my editor still hates `type`. |
15:47:59 | FromDiscord | <clyybber> so fix your editor |
15:48:01 | FromDiscord | <clyybber> ? |
15:48:19 | krux02 | sorry, but I can't too complicated |
15:48:30 | FromDiscord | <clyybber> huh? |
15:48:35 | shashlick | The 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:44 | FromDiscord | <clyybber> yeah |
15:49:09 | FromDiscord | <clyybber> OTOH its his time :p |
15:49:22 | disruptek | no, because it costs time to bikeshed. |
15:49:59 | FromGitter | <alehander92> i dont think it does |
15:50:01 | Araq | clyybber: yeah plus 'typeof' can now take optional parameters |
15:50:14 | FromDiscord | <clyybber> oh |
15:50:17 | FromDiscord | <clyybber> I didn't know that |
15:50:24 | FromGitter | <alehander92> after all, a project must have its own priorities and internal guidelines and not lose much time with "offtopic" ideas |
15:50:41 | FromGitter | <alehander92> cant really imagine how can issues/pr-s somehow force a project to lose time with them |
15:51:27 | krux02 | clyybber: the problem is, the original repo owner isn't active anymore. |
15:51:46 | disruptek | social standards encourage core to spend time on bikeshedding. |
15:51:54 | FromDiscord | <clyybber> krux02: Whats the difference between a macro with newLit t.len and a template with default(t).len ? |
15:52:02 | FromDiscord | <clyybber> disruptek: Yeah true |
15:52:15 | FromDiscord | <clyybber> krux02: Well, then fork it :p |
15:52:21 | krux02 | clyybber: big difference |
15:52:37 | FromDiscord | <clyybber> I mean, why is it implemented as a macro here? |
15:52:50 | krux02 | t.len counts the ast nodes |
15:52:51 | FromGitter | <alehander92> krux02 you cant just decide what keywords to use just because an older plugin is not maintained.. |
15:53:04 | krux02 | and a type called `MyType` has no children |
15:53:18 | krux02 | therefore it will return 0 |
15:53:19 | FromDiscord | <clyybber> argh |
15:53:20 | FromGitter | <alehander92> disruptek well maybe, but this can still be limited enough for things which are lower priority |
15:53:29 | FromDiscord | <clyybber> krux02: Will you make a PR to remove those? |
15:53:32 | FromDiscord | <clyybber> along with get? |
15:53:45 | krux02 | I can |
15:54:01 | FromDiscord | <clyybber> they are not in a release yet |
15:54:03 | FromDiscord | <clyybber> so we still can |
15:54:24 | FromDiscord | <clyybber> And maybe point out to timothee that these are wrong |
15:54:32 | FromDiscord | <clyybber> but don't attack him personally please |
15:54:35 | shashlick | disruptek there's value in discussion |
15:54:45 | shashlick | Every real world team does it |
15:55:01 | disruptek | yes, but can only come from a 2nd party's investment. |
15:55:10 | disruptek | ergo one party forces the investment of the other. |
15:56:03 | disruptek | in the real world, team members often share the same stakeholders in their work. ie. employers, customers, etc. |
15:56:07 | disruptek | this is not the case here. |
15:56:20 | FromDiscord | <clyybber> krux02: Can you apply the Expected ident suggestion? So that its in line with expectLen and so on |
15:56:32 | shashlick | Well 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:33 | FromDiscord | <clyybber> Because I changed them recently to have a bit nicer error messages |
15:56:58 | * | Kaivo joined #nim |
15:57:00 | krux02 | clyybber, yes I can. |
15:57:06 | FromDiscord | <clyybber> thanks |
15:57:20 | disruptek | in any event, someone has to type some words and foment argument. |
15:58:07 | disruptek | i try not to produce such PRs. that's all i'm saying. |
15:58:43 | FromDiscord | <clyybber> krux02: Regarding the let thing. How is there any difference in readability between const and let?? |
15:59:06 | FromGitter | <alehander92> yeah i admit i was also surprised by this line in the $ pr |
15:59:09 | krux02 | it is just super minor |
15:59:31 | FromDiscord | <clyybber> krux02: Still better to have it be a const |
15:59:37 | krux02 | if you declare multiple variables |
16:00:02 | krux02 | and one of them is `const` the other ones are `let`, then it looks out of place, it has different alignment and stuff. |
16:00:10 | FromDiscord | <clyybber> ugh |
16:00:13 | disruptek | ... |
16:00:22 | FromDiscord | <clyybber> but let has a runtime impact (yes nitpicky) |
16:00:27 | krux02 | I just don't want to give this specialness to that |
16:00:31 | krux02 | clyybber: no it doesn't |
16:00:37 | FromDiscord | <clyybber> sure, on tcc |
16:00:47 | krux02 | who uses tcc? |
16:00:52 | FromDiscord | <clyybber> nim c -r |
16:00:53 | disruptek | please don't abuse semantics just to make it look pretty. |
16:01:16 | FromDiscord | <clyybber> also, its better to have it const because it is const : ) |
16:01:21 | FromDiscord | <clyybber> thats what the keyword means |
16:01:38 | krux02 | and even if it has a runtime impact, it isn't measurable |
16:01:57 | FromDiscord | <clyybber> and if it has a readability impact, I don't see it |
16:02:02 | disruptek | great; we'll fix it when it's measurable, then? |
16:02:41 | krux02 | yes |
16:02:50 | FromDiscord | <clyybber> Why tho? |
16:02:53 | disruptek | add a comment. |
16:02:54 | FromDiscord | <clyybber> Just change it to const |
16:02:59 | disruptek | with your mobile number. |
16:03:13 | FromDiscord | <clyybber> *social security number |
16:03:32 | disruptek | "call krux02 when the performance here dictates a change from this pretty indented block" |
16:03:40 | FromDiscord | <clyybber> krux02: No in all seriousness. Please change it to const |
16:03:43 | FromGitter | <alehander92> yeah, semantics beats grouping here imho |
16:03:58 | FromDiscord | <clyybber> if someone comes along and wants to put a when there |
16:04:11 | FromDiscord | <clyybber> and that when depends on isNamed |
16:04:32 | * | Hideki_ joined #nim |
16:04:33 | FromDiscord | <clyybber> then its better if it is const |
16:04:41 | FromDiscord | <clyybber> otherwise the person might change it to if |
16:04:53 | FromDiscord | <clyybber> repeat from step 1 |
16:04:55 | disruptek | the horror |
16:05:03 | FromDiscord | <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:50 | FromGitter | <alehander92> and sorry for the ugly responses earlier, krux02, they were undignified |
16:06:33 | disruptek | ~motd |
16:06:34 | disbot | motd: 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:56 | FromGitter | <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:58 | FromDiscord | <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:59 | disbot | ➥ Small refactor on generic dollar for object |
16:07:02 | disruptek | krux02: since you're here, should i use compiler/int128 in ryu? any gotchas? |
16:07:04 | FromGitter | <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:16 | FromGitter | <nhanb> not sure if I'm missing something obvious |
16:08:21 | FromDiscord | <clyybber> alehander92: You are wholesome 😄 |
16:08:39 | FromDiscord | <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:56 | FromGitter | <nhanb> oh nvm I can do `kstring(nil)` |
16:18:43 | krux02 | disruptek, int128 should work reliably |
16:18:51 | krux02 | if you need 128 bit integers, go for it. |
16:18:58 | disruptek | sweet, thanks. |
16:19:18 | FromGitter | <alehander92> clyybber i am not |
16:19:24 | FromDiscord | <clyybber> disruptek: Its not uint128 tho? |
16:19:25 | shashlick | Araq - wanted to ask about ssl dll loading, related to #9419 |
16:19:27 | disbot | https://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:57 | shashlick | are you around |
16:20:00 | krux02 | just 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:16 | disruptek | sure. |
16:20:29 | FromDiscord | <clyybber> alehander92: > Conducive to or promoting social or moral well-being |
16:20:43 | FromDiscord | <clyybber> well, I meant you are kind |
16:21:14 | krux02 | It 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:48 | disruptek | right. i'm only asking because i'm getting differing results between our impl and c. |
16:22:03 | disruptek | now i know it's worth finding out why. |
16:22:18 | FromDiscord | <clyybber> disruptek: I can tell you |
16:22:27 | disruptek | yeah? |
16:22:35 | FromDiscord | <clyybber> for the smallsize thing |
16:22:37 | FromDiscord | <clyybber> its not int128 |
16:22:52 | FromDiscord | <clyybber> its mulShift |
16:23:10 | FromDiscord | <clyybber> the shiftedSum calculation |
16:23:15 | FromDiscord | <clyybber> it differs between c and nim |
16:23:19 | FromDiscord | <clyybber> FOR SOME FUCKING REASON |
16:23:36 | FromDiscord | <clyybber> what does this output for you? : https://hastebin.com/iluzapedon.cpp |
16:24:19 | disruptek | 0 |
16:24:36 | FromDiscord | <clyybber> same here |
16:24:49 | FromDiscord | <clyybber> in ryu it outputs 100000000 |
16:24:50 | FromDiscord | <clyybber> tho |
16:24:54 | FromDiscord | <clyybber> and in nim its 255 |
16:25:01 | disruptek | wut |
16:25:01 | FromDiscord | <clyybber> maybe printf is bugged |
16:25:03 | FromDiscord | <clyybber> wth |
16:25:08 | disruptek | nah. |
16:25:31 | disruptek | are you using my branch? |
16:25:43 | FromDiscord | <clyybber> no |
16:25:44 | FromDiscord | <clyybber> my own |
16:25:53 | FromDiscord | <clyybber> I'm 1 to 1 to C |
16:26:03 | disruptek | well, then what is your first failing test? |
16:26:15 | FromDiscord | <clyybber> none without the smalltable thing |
16:26:21 | FromDiscord | <clyybber> all of them with it |
16:26:28 | FromDiscord | <clyybber> RYU_OPTIMIZE_SIZE I mean |
16:26:35 | FromDiscord | <clyybber> https://www.diffchecker.com/aVVDlcsM |
16:26:42 | FromDiscord | <clyybber> this is the difference between C and nim |
16:26:47 | FromDiscord | <clyybber> sorry for the bogus |
16:27:03 | disruptek | i don't have your branch. also, i don't have your bugs. |
16:27:31 | FromDiscord | <clyybber> does small table work for you? |
16:27:41 | disruptek | better than it does for you. |
16:28:04 | FromDiscord | <clyybber> fite me |
16:28:28 | disruptek | do you have a nim version of this c? |
16:28:35 | disruptek | to demo your assertion? |
16:28:35 | FromDiscord | <clyybber> yeah |
16:28:41 | disruptek | lemme see. |
16:28:58 | FromDiscord | <clyybber> https://hastebin.com/uvilojagav.bash |
16:29:05 | FromDiscord | <clyybber> shiftedSum here |
16:29:11 | FromDiscord | <clyybber> but this doesn't make sense |
16:29:20 | FromDiscord | <clyybber> I think printf cant print uint64s |
16:29:23 | disruptek | look chuckles, i want a nim version of your 0 shifter. |
16:29:26 | FromDiscord | <clyybber> like maybe it prints only the one part |
16:29:39 | disruptek | that's ridiculous. |
16:29:51 | FromDiscord | <clyybber> everything else doesn't make sense |
16:30:02 | FromDiscord | <clyybber> the generated C code also looks the same |
16:30:04 | disruptek | look chuckles, i want a nim version of your 0 shifter. still. |
16:30:11 | FromDiscord | <clyybber> disruptek: Aight fella one minute |
16:30:15 | disruptek | aight |
16:30:36 | disruptek | playground plz |
16:31:03 | disruptek | see, i'm not so worried about this stuff. i'm more worried about how our math is more accurate than ryu's. |
16:31:22 | disruptek | ie. i figure we are probably wrong but in the direction of tighter bounds. |
16:31:40 | FromDiscord | <clyybber> https://play.nim-lang.org/#ix=2bwA |
16:31:43 | disruptek | so i wanna know why we're somehow missing precision. or, conversely, why ryu is. |
16:32:17 | FromDiscord | <clyybber> eh, delete the first few lines |
16:32:41 | FromDiscord | <clyybber> https://play.nim-lang.org/#ix=2bwB |
16:32:55 | FromDiscord | <clyybber> hmm |
16:32:57 | FromDiscord | <clyybber> zero here too |
16:32:58 | FromDiscord | <clyybber> wtf |
16:33:01 | FromDiscord | <clyybber> printf is broken |
16:33:49 | disruptek | on the plus side, math works. |
16:34:10 | disruptek | well, i thought it was funny, anway. |
16:34:19 | FromDiscord | <clyybber> he |
16:34:32 | FromDiscord | <clyybber> so WHY the fuck does gcc just swallow |
16:34:43 | FromDiscord | <clyybber> instead of telling me |
16:34:46 | FromDiscord | <clyybber> what a bitch |
16:34:58 | disruptek | but seriously, run my branch. it's a waste for three people to reimpl this. |
16:35:01 | disruptek | gcc warns. |
16:35:04 | disruptek | you just ignore it. |
16:35:34 | FromDiscord | <clyybber> disruptek: I know |
16:35:38 | FromDiscord | <clyybber> but I got it right the first time |
16:35:50 | disruptek | %lu is for long uints. |
16:35:58 | FromDiscord | <clyybber> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
16:36:00 | disruptek | anyway, who cares. |
16:36:03 | FromDiscord | <clyybber> damn |
16:36:05 | FromDiscord | <clyybber> thanks |
16:36:15 | FromDiscord | <clyybber> disruptek: I'm just so close |
16:36:20 | disruptek | do you somehow have warnings off? |
16:36:29 | disruptek | okay. keep at it, then. |
16:36:33 | FromDiscord | <clyybber> not that I know of |
16:36:34 | disruptek | it could be valuable. |
16:36:42 | FromDiscord | <clyybber> yeah, we can diff it in the end |
16:36:46 | disruptek | warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘uint64_t’ {aka ‘long unsigned int’} [-Wformat=] |
16:36:59 | FromDiscord | <clyybber> not sure why it swallowed that |
16:37:08 | federico3 | https://github.com/sstadick/nython create Python extension modules from Nim |
16:37:51 | FromDiscord | <clyybber> :q |
16:38:24 | FromDiscord | <clyybber> make shouldn't swallow errors right? |
16:38:33 | disruptek | up to you. |
16:38:43 | disruptek | you wrote a makefile for that thing? |
16:38:47 | FromDiscord | <clyybber> no |
16:38:49 | FromDiscord | <clyybber> there was one |
16:39:04 | FromDiscord | <clyybber> bbl |
16:39:06 | disruptek | look, we just need to bootstrap this thing. |
16:39:14 | disruptek | leorize will write a proper impl in nim. |
16:39:18 | disruptek | something elegant. |
16:39:29 | disruptek | we just need to be able to run the tests. |
16:42:36 | shashlick | disruptek: so should i merge nimgraphql to master |
16:42:55 | disruptek | i think your use has to trump my needs. |
16:43:00 | disruptek | s/use/user/ |
16:43:16 | disruptek | should be okay if you can cut a new release, though. |
16:43:45 | shashlick | this is one of those things - i make wrappers but only use 5% of them myself |
16:44:06 | disruptek | maybe, but we use them, buddy. we love them. |
16:44:25 | shashlick | deal |
16:44:57 | disruptek | clyybber: see, the c version has a different value for factorLo. |
16:47:32 | shashlick | disruptek: 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:34 | disruptek | no, 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:41 | disruptek | er, wrong window. |
16:48:06 | Araq | lol |
16:48:22 | disruptek | shashlick: how could this work? |
16:48:56 | shashlick | instead of posting wrappers in random pastes and posts, or creating full repos out of them |
16:48:57 | shashlick | having one place for it |
16:49:44 | disruptek | i'd prefer awesome-nim-wrappers and this amazing thing called href. |
16:50:04 | disruptek | this looks like a nightmare to ecosystem. |
16:50:43 | disruptek | today, your work can get easily consumed and enhanced by others. |
16:50:44 | krux02 | clyybber: do you have tha snippet for shiftedSum also in nim? |
16:51:01 | shashlick | disruptek: a wrapper could depend on other wrappers |
16:51:07 | disruptek | good. |
16:51:12 | shashlick | e.g. libarchive needs zlib |
16:51:22 | shashlick | so user would have to download each one at a time |
16:52:06 | disruptek | never bothered me before. |
16:52:39 | * | Hideki_ joined #nim |
16:53:26 | shashlick | anti package management |
16:54:23 | leorize | disruptek: if you need int128, iirc there's this one: |
16:54:26 | leorize | !repo stint |
16:54:27 | disbot | https://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:52 | disruptek | thanks, gonna try to make something we can painlessly include in stdlib, first. |
16:56:06 | krux02 | clyybber: I did this: proc main() = |
16:56:06 | krux02 | const sum: uint64 = 0; |
16:56:06 | krux02 | const shift: int32 = 59; |
16:56:06 | krux02 | const shiftedSum: uint64 = sum shr (shift - 32); |
16:56:06 | krux02 | echo shiftedSum |
16:56:07 | krux02 | |
16:56:09 | krux02 | main() |
16:56:23 | krux02 | sorry I mean here on pastebin: http://ix.io/2bwK |
16:56:36 | krux02 | also in Nim it returns 0 |
16:59:38 | leorize | this is kinda next level: ```type mismatch: got <FloatClass, FloatClass> but expected one of: proc `==`[Enum: enum](x, y: Enum): bool``` |
16:59:44 | leorize | and FloatClass is an enum... |
16:59:46 | krux02 | sorry, finally I reached the end of the conversation and found out that it was already solved |
17:00:01 | FromGitter | <nixfreakz_twitter> Those at Fosdem great speeches about nim , thank you |
17:00:24 | Araq | I appreciate the effort spent on ryu but some of you need to help me with ARC ;-) |
17:00:48 | disruptek | uh oh |
17:01:32 | disruptek | clyybber: fwiw, my code is passing the wrong factor and shift values. 🙁 |
17:02:00 | disruptek | what's wrong with arc? |
17:03:35 | * | opal quit (Remote host closed the connection) |
17:03:57 | * | opal joined #nim |
17:04:01 | leorize | ah figured out the problem |
17:04:09 | shashlick | Araq - do you have time to talk about #9419 |
17:04:10 | disbot | https://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:15 | leorize | the compiler helpfully not include where each types came from |
17:04:27 | leorize | apparently there's a floatclass in the math module |
17:04:42 | leorize | and it got confused with my floatclass |
17:04:54 | Araq | shashlick, what about it? |
17:05:37 | shashlick | so wanted to ask about the whole dll search method we use in Nim |
17:05:58 | shashlick | whereas you typically use -lname to link libraries dynamically |
17:06:15 | shashlick | Nim instead loads it manually at runtime |
17:06:53 | shashlick | that'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:05 | shashlick | if we followed the same -l method for ssl and other stuff, we won't run into this issue |
17:07:18 | shashlick | i wanted to understand the rationale of why it is the way it is today |
17:09:44 | leorize | iirc the idea was that you don't have to install -dev packages to get .so files used for linking |
17:09:56 | Araq | the rationale was that nothing else makes sense |
17:10:50 | shashlick | why not just use the libxxx.so that is setup by the package manager |
17:11:13 | Araq | that's what we try to do. |
17:11:30 | shashlick | but https://github.com/nim-lang/Nim/blob/devel/lib/wrappers/openssl.nim#L68 |
17:11:34 | Araq | the package managers add junk to the names though, libxxx.so.1 |
17:11:54 | leorize | that's not the package managers fault |
17:11:56 | shashlick | we load dlls with an explicit version preference |
17:12:05 | leorize | that's how shared library are designed in linux |
17:12:39 | Araq | we can change it but I had good reasons for the existing setup |
17:12:47 | Araq | that's all I'm saying really |
17:12:49 | shashlick | i'm sure you did and i simply want to understand it |
17:13:04 | Araq | 1. requires -dev packages (wth?) |
17:13:10 | shashlick | the problem is that linking to libcurl or libpg which uses -l to link to its deps is conflicting with our search order |
17:13:35 | Araq | 2. 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:44 | shashlick | why do you need -dev packages? if you simply said `DLLSSLName = "libssl.so" and did what we do today, it would work |
17:14:50 | shashlick | instead of appending versions to the end |
17:15:11 | leorize | it's recently that OS starts shipping .so without -dev |
17:16:04 | * | Trustable joined #nim |
17:16:04 | Araq | 3. 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:31 | Araq | so now you know my reasons. I'm not saying they are good reasons (anymore) |
17:17:02 | * | marmotini_ joined #nim |
17:17:03 | disruptek | tbh, i don't understand any of those three. |
17:17:08 | federico3 | shared libraries support versioning to allow updating their ABI |
17:17:27 | shashlick | i'm in the same boat |
17:17:50 | federico3 | and allow multiple major releases |
17:18:00 | Araq | as I said, let's change it |
17:18:11 | Araq | it's not the first time this comes up either |
17:18:41 | leorize | so 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:53 | shashlick | theoretically, 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:14 | shashlick | but 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:16 | leorize | I think any alternative proposal should be able to satisfy those constraints |
17:19:18 | federico3 | leorize: regex? |
17:19:20 | shashlick | i don't see why but ya |
17:19:24 | Araq | shashlick, can you imagine things started out without the version requirement and then stuff got patched? ;-) |
17:19:28 | disruptek | it would be an opportunity to fix the search path, too. |
17:19:37 | * | Hideki_ quit (Ping timeout: 268 seconds) |
17:19:37 | leorize | federico3: not regex per se but pattern matching |
17:20:30 | federico3 | yes, pattern matching. Ideally, version-aware pattern matching, so that we can match e.g. >= 1.1.0 and < 2 |
17:20:57 | Araq | federico3, isn't that what we do? |
17:21:01 | shashlick | i think we should offer the tools to search but not be prescriptive |
17:21:23 | * | marmotini_ quit (Ping timeout: 260 seconds) |
17:21:36 | leorize | On *nix, I think I can figure out a way to implement our kind of pattern matching at link time |
17:21:50 | leorize | assuming a GNU ld compatible linker is used |
17:22:08 | Araq | leorize, if we change it, let's just use what everybody else uses |
17:22:08 | leorize | on windows it's a different story though |
17:22:22 | federico3 | Araq: in the shared object loading? No, right now we hardcode multiple version numbers :( |
17:22:25 | disruptek | Araq: copying bad design is not good design. |
17:22:25 | Araq | on Windows it simply works anyway, no need to touch it |
17:22:27 | shashlick | has this crash been reported on linux |
17:22:33 | shashlick | maybe it is an openssl bug on osx |
17:22:55 | leorize | osx have complicated search path due to not having a proper package management system |
17:23:04 | federico3 | https://github.com/nim-lang/Nim/blob/49d1822c8f1cfd418e978a5c9c58343369d9f956/lib/wrappers/openssl.nim#L68 |
17:23:05 | Araq | disruptek, "Copying bad design is good when you don't know the good design" |
17:23:21 | * | marmotini_ joined #nim |
17:23:26 | disruptek | ah, that explains nimble. |
17:23:39 | disruptek | i've been wondering about that... |
17:25:03 | * | paxis joined #nim |
17:26:43 | shashlick | this 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:49 | shashlick | dom96 is the original author |
17:27:03 | leorize | yea, we can't be compatible with *all* openssl versions |
17:27:26 | federico3 | ...that's why the ABI is versioned... |
17:27:46 | shashlick | no easy answer |
17:27:56 | federico3 | shashlick: huh? |
17:28:02 | * | krux02 quit (Remote host closed the connection) |
17:28:04 | leorize | we can link it as usual |
17:28:20 | shashlick | but fact is the same can be said of any library |
17:28:37 | disruptek | just let people link to sdl outside the exe directory k please ty |
17:28:53 | shashlick | picking versions which are different from what the system picks will always lead to this issue |
17:29:16 | leorize | just that instead of telling the user "you need this version" they'll get "symbol <insert name here> not found" at link time |
17:29:38 | leorize | though I'd say that having the "symbol not found" at link time is better indeed |
17:29:40 | shashlick | but 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:59 | federico3 | yes and it's not good |
17:30:03 | leorize | shashlick: macports/homebrew have their own search path |
17:30:21 | leorize | we don't account for that |
17:30:28 | shashlick | the only way I could repro this was by changing DYLD_LIBRARY_PATH |
17:31:08 | federico3 | https://en.wikipedia.org/wiki/Soname here. |
17:32:03 | leorize | let's just switch to `-l` for *nix, strip everything from the .so and remove `lib` prefix and we're done |
17:32:42 | federico3 | huh? no, why? |
17:32:47 | leorize | I 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:11 | leorize | federico3: it's better to link at link time directly to the system version |
17:33:19 | federico3 | no way |
17:33:22 | leorize | if the abi is incompatible it will screams at us anyway |
17:33:29 | federico3 | not true |
17:33:41 | leorize | how? |
17:33:47 | * | marmotini_ quit (Remote host closed the connection) |
17:34:22 | * | marmotini_ joined #nim |
17:34:55 | leorize | when the linker can't find one of the symbols that we want, it screams at us |
17:35:54 | federico3 | people 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:12 | leorize | uhmmm we are doing this at link time |
17:36:21 | leorize | the linker will add the SONAME to DT_NEEDED |
17:36:35 | leorize | and it will also verify that all symbols are satisfied |
17:36:46 | leorize | like with every ordinary linking operation for any C program |
17:37:10 | federico3 | I'm talking about runtime. Also, the ABI can change behavior (in a backward incompatible way) without removing a symbol |
17:37:50 | federico3 | ...so having the symbol resolution satisfied is not enough |
17:37:59 | leorize | when 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:25 | shashlick | federico3 - that's exactly what they say in the link you shared |
17:38:31 | leorize | this 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:49 | federico3 | That's why you want a range of soname versions that is checked at runtime |
17:38:49 | * | marmotini_ joined #nim |
17:38:54 | shashlick | program says I linked with this so version and need a compatible version |
17:38:55 | leorize | we are doing the link using the C compiler instead of our hacky dlopen |
17:39:20 | leorize | this is exactly what SONAME is designed for |
17:40:02 | * | abm quit (Ping timeout: 240 seconds) |
17:40:44 | leorize | my proposal is that we don't do linking at runtime via our stdlib but delegate the task to the system dynamic linker |
17:40:47 | federico3 | yes you can use it to resolve the name - but without hardcoding a full version number |
17:40:50 | leorize | (ie. how every C program do it) |
17:41:08 | shashlick | so long story short, i still don't get the history behind our own search algo when there's an established one |
17:41:10 | leorize | federico3: the "compatible" version is usually denoted in the soname |
17:41:44 | shashlick | only good answer so far is our implementation predates good behavior in distros |
17:41:49 | disruptek | shashlick: the past is apparently no bearing on the future. |
17:41:55 | federico3 | leorize: that's correct if you mean the major number returned by the linker |
17:42:10 | leorize | yes, we are gonna use that instead by linking at compile time |
17:42:11 | federico3 | shashlick: not at all |
17:42:42 | leorize | the proposal is that to simplify all this by just doing compile-time linkage |
17:43:02 | leorize | the right soname will be added to the binary, and we even got symbol checking for free by the linker |
17:43:09 | shashlick | i always like to ask why something exists before assuming i know a better way |
17:43:44 | federico3 | leorize: if you write "compile-time linkage" it sound like static linking |
17:44:08 | leorize | :p I'm outta word here |
17:44:20 | leorize | dynamic and it will sounds like linking with our runtime |
17:44:24 | federico3 | that's compile-time name resolution |
17:44:25 | shashlick | let me ask this - can Nim compile a binary with SSL dependencies without having a functional libssl.so at compile time |
17:44:40 | leorize | as of now, yes |
17:44:42 | shashlick | considering we are loading at runtime |
17:45:04 | shashlick | that's an advantage of the current method perhaps |
17:45:07 | * | sigmapie8 joined #nim |
17:45:58 | leorize | are you not going to run it after you build it? :p |
17:46:01 | shashlick | but doubt that's the primary motivation |
17:46:04 | shashlick | 😄 |
17:46:41 | leorize | I'd say that the advantage is impractical |
17:46:44 | federico3 | leorize: not necessarily |
17:47:17 | leorize | true, if you are talking about CI/release systems |
17:47:32 | federico3 | or crosscompilation |
17:48:15 | shashlick | now 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:24 | leorize | no |
17:48:26 | shashlick | if someone really wants to link with a particular version, he can |
17:48:33 | federico3 | no no |
17:49:01 | leorize | we can only remove that once we switch to the `-l` approach |
17:49:33 | shashlick | doesn't dynlib do that by default |
17:49:40 | leorize | nope |
17:49:46 | federico3 | I'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:50 | shashlick | dynlibOverride |
17:50:11 | leorize | it just ignores all dynlib, it doesn't convert it to `-l` for you |
17:50:24 | shashlick | sslVersion will give you that - make a full version list and it will search like today |
17:50:47 | shashlick | {.passL: xxx.} |
17:51:06 | leorize | well I thought we are talking about improving dynlib? |
17:51:46 | shashlick | so all wrappers will convert dynlib: "xxx" into a passL? |
17:52:29 | leorize | yea, the compiler can certainly do that |
17:52:52 | leorize | and 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:51 | shashlick | what will be the default |
17:54:19 | * | ptdel joined #nim |
17:54:38 | leorize | I'd say search-on-linktime, but I'm really biased since that's how all *nix software link :P |
17:54:51 | federico3 | soname version ranges |
17:55:04 | shashlick | okay do you understand the changes well enough to propose a fix in #9419 |
17:55:05 | disbot | https://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:11 | federico3 | leorize: bonus point of using the dynamic loader: ldd <binary> would show the shared library |
18:02:44 | leorize | yep, and otool on osx would work too |
18:03:18 | federico3 | it also saves a little bit of time at start time |
18:03:48 | * | Trustable quit (Remote host closed the connection) |
18:04:16 | leorize | if there's anything that I'm unsure of it's whether the current {.dynlib.} behaviour should be kept available |
18:05:04 | shashlick | Well right now you can pass a full path to the dll |
18:05:11 | shashlick | Not sure how that will translate |
18:05:29 | shashlick | Should it just be added to the gcc command line as is |
18:05:53 | shashlick | So 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:05 | leorize | the current schema can be translated rather easily to `-l` for nix |
18:07:20 | leorize | for osx it's harder though |
18:10:58 | shashlick | Why |
18:15:02 | * | Hideki_ joined #nim |
18:19:14 | * | Hideki_ quit (Ping timeout: 240 seconds) |
18:46:47 | * | Zectbumo joined #nim |
18:47:56 | Zectbumo | does nim have anything like twisted? |
18:48:51 | disruptek | !repo reactor |
18:48:52 | disbot | https://github.com/zielmicha/reactor.nim -- 9reactor.nim: 11Asynchronous networking engine for Nim 15 100⭐ 6🍴 7& 1 more... |
18:49:03 | disruptek | not sure it's current, though. |
18:49:11 | Zectbumo | thanks. this is a start |
18:49:55 | disruptek | i can't say i'd recommend it. |
18:51:10 | Zectbumo | anything you would recommend for web serving, some sort of IPC protocols, and possibly SMTP, and DNS? |
18:52:41 | disruptek | it depends on how badly you want it to be correct. |
18:53:32 | disruptek | IPC 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:41 | Zectbumo | I'm looking to replace python2 (+twisted). I won't be moving to python3. I read nim is the "python replacer" |
18:53:50 | disruptek | smtp, i think is madness to do yourself. use a service. |
18:54:23 | Zectbumo | DNS server, I mean. |
18:54:36 | disruptek | http... the stdlib is incorrect but functional. i would stick with it until you have a problem and then fix those problems. |
18:54:55 | disruptek | you want to write a dns server? |
18:55:17 | disruptek | sure, it could be done. probably makes more sense to link against unbound, etc. |
18:55:22 | Zectbumo | it would be helpful yes |
18:55:50 | * | Hideki_ joined #nim |
18:56:01 | disruptek | i've written dns servers. i have no plans to ever write another dns server. |
18:56:28 | Zectbumo | heh. what special aspect did yours do? |
18:56:41 | * | nsf joined #nim |
18:56:58 | disruptek | dynamic queries using rpn. |
19:00:45 | * | Hideki_ quit (Ping timeout: 268 seconds) |
19:02:21 | Zectbumo | whoa, was this for military or nasa? |
19:03:37 | disruptek | nah, it was for pki and backchannel propogation of client data. |
19:03:54 | Zectbumo | well, sounds cool |
19:04:14 | * | abm joined #nim |
19:04:24 | disruptek | it was. i wish it was still a thing. |
19:04:55 | disruptek | dns is near eol, though. |
19:05:27 | Zectbumo | I would like that actually. what is on the horizon? |
19:05:40 | disruptek | probably something worse. |
19:06:01 | Zectbumo | hah |
19:06:37 | Zectbumo | I think I was reading something about dns over https |
19:06:47 | disruptek | sure. |
19:19:36 | * | krux02 joined #nim |
19:34:18 | * | Hideki_ joined #nim |
19:41:23 | * | Hideki_ quit (Ping timeout: 260 seconds) |
19:50:51 | FromGitter | <kristianmandrup> Having problem switching back to official nim version |
19:50:54 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e44571ecd2d737bb073cf39] |
19:51:22 | FromGitter | <kristianmandrup> `which nim` keeps pointing to my local clone - WIP |
19:51:31 | disruptek | ~choosenim |
19:51:32 | disbot | choosenim: 11https://github.com/dom96/choosenim/releases/tag/v0.5.1 -- disruptek |
19:52:06 | disruptek | they 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:37 | FromDiscord | <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:58 | FromGitter | <kristianmandrup> ~/.choosenim |
19:54:58 | disbot | no footnotes for `/.choosenim`. 🙁 |
19:55:23 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e44582becfa4461c0576097] |
19:56:11 | FromGitter | <kristianmandrup> I would think that `current` is a sym link that I need to point to another nim version |
19:57:20 | disruptek | are you using 0.5.1? |
19:58:58 | Araq | Recruit_main_70007: you can use 'nimgrep' to search for filenames too :-) |
19:59:43 | FromDiscord | <Recruit_main_70007> it would have been great knowing it XD will not happen again |
20:01:49 | Araq | federico3, version ranges sound nice too |
20:02:02 | FromGitter | <kristianmandrup> How do I update `choosenim` itself? |
20:02:19 | disruptek | are there no docs for that? |
20:02:21 | FromGitter | <kristianmandrup> ah, `update self` |
20:02:38 | FromGitter | <kristianmandrup> Updating choosenim ⏎ ⏎ ``` Info: Already up to date at version 0.5.1``` [https://gitter.im/nim-lang/Nim?at=5e4459dec900d747abff277b] |
20:03:20 | FromGitter | <kristianmandrup> Legacy error message btw |
20:03:23 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445a0ad4daaa26c19c72c5] |
20:03:42 | disruptek | kristianmandrup: shashlick says your problems are all in your mind. |
20:03:52 | disruptek | choosenim has zero known defects. |
20:04:10 | FromGitter | <kristianmandrup> choosenim 1.0.0 ⏎ ⏎ ``` Info: Version 1.0.0 already selected``` [https://gitter.im/nim-lang/Nim?at=5e445a3ad4daaa26c19c7325] |
20:04:35 | FromGitter | <kristianmandrup> nim --version ⏎ Nim Compiler Version 1.1.1 [MacOSX: amd64] |
20:05:24 | disruptek | you wanna know a secret? |
20:05:30 | FromGitter | <kristianmandrup> Must be due to ... |
20:05:34 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445a8e45000661fcb83607] |
20:06:36 | FromGitter | <kristianmandrup> Just needed to restart my terminal |
20:07:01 | disruptek | 🎉 |
20:07:16 | * | nsf quit (Quit: WeeChat 2.7) |
20:07:31 | disruptek | int128 does produce the same results as python when i shr. 😢 |
20:07:40 | disruptek | er, 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:51 | shashlick | what's your PATH |
20:11:19 | FromGitter | <kristianmandrup> How can I do this? |
20:11:30 | shashlick | echo $PAth |
20:11:34 | shashlick | echo $PATH |
20:12:13 | FromGitter | <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:19 | FromGitter | <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:59 | FromGitter | <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:44 | FromGitter | <kristianmandrup> https://play.nim-lang.org/#ix=2bxx |
20:22:35 | FromGitter | <kristianmandrup> https://play.nim-lang.org/#ix=2bxy |
20:22:56 | FromGitter | <kristianmandrup> well, `JsObject` could be `ref of object` I guess |
20:24:25 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445ef9c900d747abff34f7] |
20:26:13 | FromGitter | <kristianmandrup> I'm lost :P |
20:26:21 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e445f6d63c15921f475af14] |
20:26:42 | FromGitter | <kristianmandrup> how do I dynamically set the var identifier? |
20:27:40 | FromGitter | <kristianmandrup> Tried both `varName` as `typed` and `untyped` |
20:29:36 | * | NimBot joined #nim |
20:33:35 | FromGitter | <kristianmandrup> `attempting to call routine: 'nnkIdent' found 'nnkIdent' of kind 'enumfield'` |
20:33:55 | lqdev[m] | @kristianmandrup in your first example with the template, the var needs a value or a type. |
20:33:57 | Araq | there are no "dynamic" variables in Nim |
20:34:05 | lqdev[m] | so `var varName: JsObject` or something |
20:34:27 | FromGitter | <kristianmandrup> https://play.nim-lang.org/#ix=2bxD |
20:35:09 | * | Hideki_ joined #nim |
20:36:16 | lqdev[m] | first of all, that's not how macros work. if you want to create a var section, use `newVarStmt` |
20:36:21 | lqdev[m] | https://nim-lang.org/docs/macros.html#newVarStmt%2CNimNode%2CNimNode |
20:36:45 | lqdev[m] | but either way your var needs a type or a value |
20:37:19 | * | marmotini_ quit (Remote host closed the connection) |
20:37:33 | lqdev[m] | so if you want a `var x: JsObject` you do `newVarStmt(ident"x", bindSym"JsObject")` |
20:37:41 | lqdev[m] | oh wait that's the value |
20:37:45 | lqdev[m] | my fault. |
20:37:48 | lqdev[m] | give me a sec |
20:37:49 | FromGitter | <kristianmandrup> https://play.nim-lang.org/#ix=2bxH |
20:37:53 | * | marmotini_ joined #nim |
20:38:21 | FromGitter | <kristianmandrup> Thanks @lqdev |
20:38:31 | lqdev[m] | `ref of object` is not a valid type. |
20:38:59 | lqdev[m] | not sure what you're trying to achieve there |
20:40:09 | * | Hideki_ quit (Ping timeout: 272 seconds) |
20:42:10 | FromGitter | <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:03 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e44635737545d247d363939] |
20:45:13 | * | dadada_ quit (Ping timeout: 272 seconds) |
20:47:46 | FromGitter | <kristianmandrup> is there a way to cast an untyped var to a string? such as `varName`? |
20:49:35 | lqdev[m] | astToString |
20:49:55 | lqdev[m] | astToStr* |
20:50:34 | * | ChanServ quit (shutting down) |
20:52:25 | FromGitter | <kristianmandrup> Cool, but still not quite there... |
20:52:27 | FromGitter | <kristianmandrup> https://play.nim-lang.org/#ix=2bxO |
20:52:41 | FromGitter | <kristianmandrup> ```var foo_42018 = [0]; ⏎ foo = x``` [https://gitter.im/nim-lang/Nim?at=5e446598d4daaa26c19c981f] |
20:53:05 | FromGitter | <kristianmandrup> I'd like to emit `foo_42018 = x` |
20:53:30 | FromGitter | <kristianmandrup> after the var AST is defined and injected |
20:54:04 | * | dadada joined #nim |
20:58:01 | FromGitter | <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:04 | FromDiscord | <Elegant Beef> Uhh sounds like a macro, but im a numpty 😄 |
21:04:47 | FromGitter | <kristianmandrup> So for `genProc` in `jsgen.nim` I find the following |
21:04:47 | FromGitter | <kristianmandrup> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5e44683645000661fcb85e81] |
21:04:47 | FromGitter | <kristianmandrup> which is what I mean by "shadowing" for `proc` |
21:05:26 | FromGitter | <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:26 | FromDiscord | <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:59 | FromGitter | <kristianmandrup> Raised this issue: https://github.com/nim-lang/Nim/issues/13400 |
21:16:02 | disbot | ➥ Add shadow variable assignment similar to proc backend shadow calls ; snippet at 12https://play.nim-lang.org/#ix=2bxU |
21:22:41 | krux02 | just made a PR #13401 |
21:22:42 | disbot | https://github.com/nim-lang/Nim/pull/13401 -- 3revert #13064 |
21:22:44 | krux02 | yay |
21:26:07 | * | ptdel quit (Ping timeout: 240 seconds) |
21:28:53 | disruptek | krux02: you have a minute? |
21:29:21 | krux02 | yes |
21:29:51 | FromDiscord | <clyybber> krux02: Shouldn't remove genericParams IMO |
21:29:58 | FromDiscord | <clyybber> but the other stuff I agree should be removed |
21:30:22 | disruptek | i'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:19 | krux02 | ok, can you give me the code |
21:31:28 | disruptek | https://gist.github.com/disruptek/e5d39942cc8c561dd8bfa2a9e1a94f11 |
21:31:34 | disruptek | this is output followed by code. |
21:31:47 | disruptek | i produced the output with echos in the int128 source. |
21:32:13 | FromDiscord | <clyybber> disruptek: When you make in ryu C does it print warnings? |
21:32:15 | disruptek | oh, and i omitted the naked echos in the code. useless. |
21:32:24 | disruptek | clyybber: only if you write bad c. |
21:32:28 | FromDiscord | <clyybber> hmmm |
21:32:35 | FromDiscord | <clyybber> I now I got a warning before |
21:32:41 | FromDiscord | <clyybber> when I inserted printfs |
21:32:45 | FromDiscord | <clyybber> now I don't weird |
21:32:55 | disruptek | because you used %u versus %lu, probably. |
21:33:06 | FromDiscord | <clyybber> nah, it was something else |
21:33:12 | FromDiscord | <clyybber> like redeclaration |
21:33:20 | disruptek | hint: don't do that. |
21:33:23 | FromDiscord | <clyybber> I somehow don't get the warnings for %u vs %lu |
21:33:41 | * | letto quit (Quit: Konversation terminated!) |
21:34:32 | disruptek | krux02: 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:19 | krux02 | int128 is a signed integer |
21:35:26 | krux02 | did you take that into account? |
21:35:35 | krux02 | it does sign preservation |
21:35:48 | disruptek | i mean, i expect a shift of 32 to change the right-most value. |
21:35:59 | disruptek | all values, actually. 😁 |
21:36:28 | disruptek | only half of them are. i don't care about sign. |
21:37:27 | krux02 | disruptek: http://ix.io/2by2 |
21:37:54 | krux02 | you are right |
21:37:56 | krux02 | there is a bug |
21:38:25 | krux02 | but that is good that you notice, so I can fix it |
21:38:29 | disruptek | yeah, and it was pretty hard to spot shifting by arbitrary bit counts. |
21:39:09 | disruptek | noice, thank you. |
21:41:07 | FromGitter | <Varriount> Anyone taken a look at https://github.com/nim-lang/RFCs/issues/192 ? What are your thoughts? |
21:41:08 | disbot | ➥ outplace and chaining ; snippet at 12https://play.nim-lang.org/#ix=2bvf |
21:41:25 | krux02 | you don't need to report it, I will fix it now as I see it very important |
21:41:33 | disruptek | this means i can shelve ryu for now. 🎉 |
21:41:45 | disruptek | thanks krux02; i was really going a little nuts. |
21:41:55 | disruptek | then i saw a repeat in some hex dump and i was like.... wtf |
21:42:22 | disruptek | stupid base 10 |
21:47:02 | FromGitter | <alehander92> i like `on` |
21:47:12 | disruptek | what we need are tools that can only be built in nim. |
21:47:38 | FromDiscord | <clyybber> disruptek: shelve? |
21:47:39 | disruptek | i feel like nimph is a good example of this, actually. |
21:47:42 | FromDiscord | <clyybber> as in do something else? |
21:47:47 | disruptek | "put away for now" |
21:47:53 | FromGitter | <alehander92> and i agree that ops might be too much |
21:48:09 | FromDiscord | <clyybber> disruptek: gas gas gas |
21:48:10 | disruptek | just until krux02 patches int128; then i think my tests will be green. |
21:48:28 | FromDiscord | <clyybber> damn I gotta hurry then |
21:48:30 | FromDiscord | <clyybber> :p |
21:48:39 | disruptek | lol |
21:48:44 | disruptek | are you using umul? |
21:48:50 | FromDiscord | <clyybber> fuck yeah |
21:48:55 | disruptek | awesome. |
21:49:04 | FromDiscord | <clyybber> now that I fixed the printfs |
21:49:09 | FromDiscord | <clyybber> stuff is getting more interesting |
21:49:11 | disruptek | we should benchmark these, too. |
21:49:22 | FromDiscord | <clyybber> yeah |
21:50:17 | disruptek | i wonder how much faster umul128 will be. this'll be fun. |
21:51:00 | * | letto joined #nim |
21:55:39 | dom96 | Varriount: replied |
21:56:29 | disruptek | #13364 see also vertical tab. |
21:56:32 | disbot | https://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:11 | FromDiscord | <clyybber> disruptek: Ironically the reason for the fails is shiftright128 here too |
22:00:43 | disruptek | really? |
22:02:33 | * | jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
22:08:04 | disruptek | why would anyone pr tests that don't fail unless they are un-`when`-ed? |
22:08:20 | disruptek | i really cannot understand this. |
22:09:07 | * | ptdel joined #nim |
22:09:23 | * | ltriant joined #nim |
22:19:56 | disruptek | ~motd is Who wants to try JSON parsing modes via set[JMode] for a couple years? |
22:19:56 | disbot | motd: 11Who wants to try JSON parsing modes via set[JMode] for a couple years? |
22:24:06 | FromDiscord | <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:38 | disruptek | that sounds really fun. |
22:24:53 | disruptek | like juggling fire or swallowing swords. |
22:24:59 | disruptek | do you live in a circus? |
22:25:14 | disruptek | what do they call that? a carny, right? |
22:25:21 | disruptek | are you a carny? |
22:25:26 | disruptek | a gypsy? |
22:25:45 | disruptek | are you a bearded lady? |
22:25:58 | FromDiscord | <exelotl> Yes to all of those. So I was wondering is this a suitable time to use a custom `=` operator? |
22:26:24 | disruptek | you are blowing my mind right now. |
22:26:42 | disruptek | yes, i think you'll need to do assignment fairly custom. |
22:27:16 | FromDiscord | <exelotl> cool |
22:27:39 | disruptek | how do you know how long the sub-object is? |
22:29:47 | disruptek | you pass a field addr to c and c pastes the object on there? |
22:31:19 | FromDiscord | <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:56 | disruptek | no 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:43 | disruptek | i get it. |
22:34:02 | disruptek | does your game run on an emulator or do you have an interface to real hardware? |
22:36:12 | FromDiscord | <exelotl> both! I usually test with the mGBA emulator, but I have a flashcard too for testing on real hardware |
22:36:28 | disruptek | ah, neat. that is super cool. |
22:36:43 | disruptek | how many devices do you have? |
22:41:10 | FromDiscord | <exelotl> oldschool DS, DS lite, 2x GBA SP, and gameboy micro which got run over by a minibus... |
22:41:41 | FromDiscord | <exelotl> which I'm still heartbroken about tbh |
22:41:42 | krux02 | disruptek, I just fined the problem, all I need is create the pr and get it merged |
22:42:30 | disruptek | damn. |
22:43:02 | disruptek | i mean, sweet. |
22:43:08 | FromDiscord | <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:23 | FromDiscord | <exelotl> which was extremely cool when I was 8 |
22:43:38 | FromDiscord | <exelotl> but now it's just embarrassing lol |
22:43:46 | disruptek | of course. |
22:43:56 | disruptek | but it's neat that kids are growing up with this stuff. |
22:43:59 | FromDiscord | <Generic> I always thought it was ugly |
22:44:05 | FromDiscord | <Generic> :p |
22:48:05 | * | filcuc_ quit (Ping timeout: 272 seconds) |
22:48:35 | disruptek | would you rather try to outrun the cops in the rain, snow, or dry conditions? |
22:50:02 | FromDiscord | <Generic> I would fail no matter the conditions 🙂 |
22:50:05 | krux02 | disruptek, https://github.com/nim-lang/Nim/pull/13403 |
22:50:06 | disbot | ➥ fix bug in int128 |
22:50:23 | disruptek | you're too fast. thanks. |
22:50:59 | * | ltriant left #nim (#nim) |
22:51:08 | FromDiscord | <exelotl> I bet the cops can't ski |
22:51:31 | disruptek | give me the rain every time. |
22:52:01 | FromDiscord | <exelotl> the rain makes it 10x more atmospheric |
22:52:12 | disruptek | i'm talkin' police chase by car. |
22:52:24 | krux02 | disruptek, 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:39 | krux02 | like being on the train while the cops are not. |
22:52:51 | disruptek | we're assuming that everyone is suffering the same weather, at least. |
22:52:52 | krux02 | or being outside of the train while the cops are inside |
22:53:16 | krux02 | well, then I prefer try conditions |
22:53:40 | disruptek | do you own a car? |
22:53:50 | krux02 | dry conditions I mean |
22:53:55 | krux02 | and no I do not own a car |
22:54:20 | krux02 | But I do have a drivers licese, which is quite expensive in Germany |
22:55:18 | disruptek | three people, three answers. |
22:55:50 | krux02 | I would prefer to outrun the cops by foot |
22:55:53 | krux02 | or by bike |
22:56:07 | krux02 | like riding by bike down some stairs |
22:56:23 | krux02 | something like that |
22:56:42 | disruptek | you think cops cannot ride down stairs? |
22:56:51 | disruptek | i think you're thinking of horses. |
22:56:58 | disruptek | horses cannot ride down stairs. |
22:57:05 | FromDiscord | <exelotl> daleks |
22:57:06 | disruptek | cops have no problem with it. |
22:57:33 | disruptek | horses can ride up stairs, but they are afraid to ride down stairs. |
22:58:07 | disruptek | now, cops /are/ afraid to ride horses up stairs. |
22:58:19 | disruptek | you will never see a cop ride a horse up stairs. |
22:58:19 | krux02 | yea |
22:58:19 | disruptek | never. |
22:59:04 | disruptek | down stairs? no problem. |
22:59:11 | disruptek | cops are fine riding horses down stairs. |
23:00:01 | krux02 | interesting |
23:00:07 | krux02 | well |
23:00:15 | disruptek | yeah, it's a whole world out there. |
23:00:16 | krux02 | I have to say good night for today |
23:00:22 | disruptek | for today, good night. |
23:00:27 | krux02 | the patch is done |
23:00:32 | disruptek | it's been a pleasure, krux. i appreciate it. |
23:00:36 | krux02 | np |
23:00:42 | krux02 | thank you for reporting it |
23:01:22 | disruptek | i'll be praying you aren't on a bike next time you're fingered by the po-po. |
23:01:50 | krux02 | ok |
23:01:52 | krux02 | good night |
23:01:55 | * | krux02 quit (Remote host closed the connection) |
23:06:57 | FromDiscord | <clyybber> @exelotl Why embarassing? |
23:07:02 | FromDiscord | <clyybber> I think it looks sick |
23:07:07 | FromDiscord | <clyybber> but mine looks sicker :p |
23:07:10 | FromDiscord | <clyybber> got the golden zelda one |
23:07:25 | * | Guest43347 quit (Ping timeout: 268 seconds) |
23:07:28 | FromDiscord | <exelotl> :o |
23:07:31 | FromDiscord | <exelotl> that's epic |
23:07:51 | FromDiscord | <clyybber> technically its not mine, but my cousins |
23:08:09 | FromDiscord | <clyybber> but hey, he has my ds-lite |
23:09:08 | * | dadada joined #nim |
23:09:31 | FromDiscord | <clyybber> aaaaaaaah |
23:09:31 | * | dadada is now known as Guest26689 |
23:09:39 | FromDiscord | <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:17 | lqdev[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:36 | lqdev[m] | ok wtf adding `{.closure.}` to my proc fixed it? |
23:19:46 | lqdev[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:15 | FromDiscord | <clyybber> disruptek: WHOOOOO |
23:26:16 | FromDiscord | <clyybber> tests pass |
23:26:22 | disruptek | oh shoot |
23:26:32 | FromDiscord | <clyybber> though I manually patched the generated C |
23:26:32 | disruptek | good job, dude. |
23:26:35 | FromDiscord | <clyybber> removed a few casts |
23:26:38 | FromDiscord | <clyybber> and inserted a few |
23:26:45 | FromDiscord | <clyybber> now to do it from nim |
23:27:01 | FromDiscord | <clyybber> it was umul128 all along.. |
23:27:15 | disruptek | why didn't it work? |
23:27:40 | FromDiscord | <clyybber> some wrong casts |
23:27:46 | FromDiscord | <clyybber> generated by nim |
23:27:49 | FromDiscord | <clyybber> I just removed them |
23:27:56 | disruptek | ugh. |
23:28:01 | FromDiscord | <clyybber> and added the equivalents of the C |
23:28:08 | FromDiscord | <clyybber> I'll now look into it |
23:28:13 | FromDiscord | <clyybber> to do it from the Nim side |
23:28:29 | disruptek | i'm more troubled by bad casts that nim generated. |
23:28:52 | FromDiscord | <clyybber> eh, probably a error on my side |
23:29:07 | FromDiscord | <clyybber> the precedence between casts in nim and C is different |
23:29:12 | FromDiscord | <clyybber> so that could be a reason |
23:29:29 | FromDiscord | <clyybber> https://www.diffchecker.com/IAPcqfOx |
23:29:38 | FromDiscord | <clyybber> feels good man/inc |
23:29:42 | disruptek | i hate that site. |
23:29:57 | FromDiscord | <clyybber> eh, it works |
23:30:05 | FromDiscord | <clyybber> it used to be a bit better tho |
23:30:25 | disruptek | i thought you used meld or whatever. |
23:30:26 | FromDiscord | <clyybber> but at least now you can save that shit |
23:30:46 | FromDiscord | <clyybber> disruptek: I do sometimes |
23:30:51 | FromDiscord | <clyybber> but I'm kinda lazy |
23:31:09 | * | Hideki_ quit (Ping timeout: 272 seconds) |
23:31:12 | FromDiscord | <clyybber> and its handy for sharing |
23:31:12 | disruptek | exactly why i don't spend time on the web. |
23:31:49 | FromDiscord | <clyybber> its bearable with vimium |
23:32:02 | FromDiscord | <clyybber> tho vimium is a bit *packed* with features |
23:32:08 | disruptek | well, i couldn't drag the scrollbar and i really wanted to. |
23:32:28 | FromDiscord | <clyybber> so you hit a random and key and be like |
23:32:28 | FromDiscord | <clyybber> "what happened" |
23:32:55 | FromDiscord | <clyybber> i gotta setup krabby now |
23:32:55 | disruptek | yeah, that sounds like me. |
23:33:16 | FromDiscord | <clyybber> disruptek: You use vim as an editor right? |
23:33:20 | FromDiscord | <clyybber> or vscode? |
23:33:24 | disruptek | vim |
23:33:29 | FromDiscord | <clyybber> nice |
23:33:45 | disruptek | i wish i'd gone with emacs. |
23:34:00 | disruptek | it was just too heavy back in the day. |
23:34:39 | FromDiscord | <clyybber> try doom emacs |
23:34:42 | FromDiscord | <clyybber> it looks cool |
23:35:04 | disruptek | i guess if i'd gone a programming route, that weight wouldn't have been a problem. |
23:35:38 | FromDiscord | <clyybber> lol |
23:37:11 | FromDiscord | <clyybber> disruptek: See https://www.diffchecker.com/o76NPJjL |
23:37:21 | FromDiscord | <clyybber> left is the manual one that passes |
23:37:28 | FromDiscord | <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:29 | FromDiscord | <clyybber> hmm |
23:40:43 | FromDiscord | <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:12 | leorize | I'm reading the ryu paper and I'm learning so much about floats |
23:59:08 | leorize | I should read more compsci papers, they are fun once you understand a portion of them :P |