00:01:36 | FromDiscord | <checkersai> Are concepts still an experimental feature? |
00:02:01 | FromDiscord | <Elegantbeef> Yes but they're usable |
00:02:48 | FromDiscord | <checkersai> What needs to be done to get them out of the experimental stage? |
00:03:15 | FromDiscord | <Elegantbeef> No clue, i know there is a new variant that is to replace them |
00:03:49 | FromDiscord | <checkersai> Huh, what's the new variant? |
00:04:24 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=46af |
00:06:54 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=46ag |
00:08:04 | FromDiscord | <Elegantbeef> `otherThing(m, int(10)) is bool` rather |
00:16:46 | FromDiscord | <checkersai> Sounds good |
00:22:18 | FromDiscord | <checkersai> Is there any progress on this yet? |
00:25:50 | FromDiscord | <gibson> sent a code paste, see https://play.nim-lang.org/#ix=46ak |
00:27:17 | FromDiscord | <gibson> (edit) "https://play.nim-lang.org/#ix=46ak" => "https://play.nim-lang.org/#ix=46al" |
01:04:10 | FromDiscord | <that_dude> In reply to @gibson "Why is it this": just a random guess, but couldn't this output something like `type type AType`? |
01:04:40 | FromDiscord | <that_dude> There should be ways you can print out the result variable to see what it generates |
01:06:26 | FromDiscord | <Prestige> sent a code paste, see https://play.nim-lang.org/#ix=46az |
01:07:05 | FromDiscord | <Elegantbeef> Oh god not dumpastgen |
01:07:23 | FromDiscord | <Prestige> What do you prefer? |
01:07:36 | FromDiscord | <that_dude> I know there is a repr option |
01:07:45 | FromDiscord | <checkersai> In reply to @Elegantbeef "Oh god not dumpastgen": What's wrong with dumpastgen? |
01:07:46 | FromDiscord | <that_dude> but I think that's only in the macro |
01:07:54 | FromDiscord | <Elegantbeef> `treeRepr`/`repr` are better |
01:08:39 | FromDiscord | <Prestige> I'm not sure how you use those with a malformed ast |
01:09:00 | FromDiscord | <Elegantbeef> How do you use dumpAstGen with malformed AST? |
01:09:15 | FromDiscord | <Prestige> It doesn't seem to care |
01:09:25 | FromDiscord | <Elegantbeef> Oh you're just trying to dump the ast |
01:09:37 | FromDiscord | <Elegantbeef> Then use `dumpTree` like a normal person so you can see the `treeRepr` |
01:10:55 | FromDiscord | <Prestige> I'm not sure what would be wrong with it either, if you removed the first `type` |
01:11:13 | FromDiscord | <Elegantbeef> Nim type section macros are finicy |
01:11:53 | FromDiscord | <Elegantbeef> You actually want to return `nnkTypeDef` |
01:12:09 | FromDiscord | <Elegantbeef> It's odd but it makes sense given they evaluate inside a `nnkTypeSection` |
01:13:05 | FromDiscord | <Elegantbeef> So in this case it's just `result = definition` |
01:44:26 | FromDiscord | <j-james> i think c2nim choked and spit out garbage and i accidentally removed it |
01:44:33 | FromDiscord | <Elegantbeef> Yea i know i reimplemented it but forgot to do anything about it |
01:45:49 | FromDiscord | <j-james> that `(typedesc)(int)` syntax doesn't make any sense, nor does casting to a cstring there |
01:45:51 | FromDiscord | <Elegantbeef> I mean `(sample)(x)` does make sense but only in like a single case 😄 |
01:45:52 | FromDiscord | <j-james> sent a code paste, see https://play.nim-lang.org/#ix=46aC |
01:45:56 | FromDiscord | <j-james> does it? when does nim use that syntax? |
01:45:57 | FromDiscord | <Elegantbeef> type conversions |
01:45:58 | FromDiscord | <Elegantbeef> `(type)(someStmt)` is a type conversion |
01:46:03 | FromDiscord | <j-james> oh, hmm |
01:46:06 | FromDiscord | <j-james> well your cast should accomplish the same thing right |
01:46:07 | FromDiscord | <Elegantbeef> My version is the correct one anyway |
01:46:08 | FromDiscord | <j-james> okay phew |
01:47:57 | FromDiscord | <DaiChimpo> Does nim have a library for fetching the html file of a site? |
01:49:08 | FromDiscord | <Elegantbeef> httpclient |
01:49:27 | FromDiscord | <DaiChimpo> ty |
01:55:59 | FromDiscord | <Elegantbeef> [j-james](https://matrix.to/#/@j-james:matrix.org)\: also the xkb stuff is needed for inputs and the wlr keyboard iirc |
01:56:15 | FromDiscord | <Elegantbeef> Wlroots/xkb/wayland are all oddly coupled |
02:00:29 | FromDiscord | <Prestige> I'm somewhat patiently awaiting the wayland bindings |
02:00:44 | FromDiscord | <Prestige> Keeping myself occupied with game development for my pinephone |
02:01:21 | FromDiscord | <Elegantbeef> Crack the whip 😛 |
02:02:04 | FromDiscord | <Elegantbeef> Using your own engine i take it? |
02:02:21 | FromDiscord | <Prestige> Yep, it's been pretty fun |
02:02:35 | FromDiscord | <Prestige> Going to port over an android game I made to my engine, and run it on the phone |
02:02:48 | FromDiscord | <Elegantbeef> Do you have the phone sensors hooked up with sdl2? |
02:03:11 | FromDiscord | <Prestige> Haven't cared to, except for touch support. Have that working |
02:03:23 | FromDiscord | <Prestige> Ran some benchmarks on the phone, shaders working, etc |
02:03:58 | FromDiscord | <Elegantbeef> Do you know what version of opengl it supports? |
02:04:12 | FromDiscord | <Prestige> It was running OpenGL 3 |
02:04:18 | FromDiscord | <Prestige> but sdl says it supports up to 4 |
02:04:33 | FromDiscord | <Elegantbeef> I dont mean your engine, i mean the phone 😄 |
02:04:40 | FromDiscord | <Prestige> Yeah |
02:05:03 | FromDiscord | <Elegantbeef> Shame 4.5+ is best opengl |
02:05:56 | FromDiscord | <Prestige> I'm not sure which minor version it was, just printed the major versions |
02:06:04 | FromDiscord | <Prestige> It might support over 4.0 |
02:06:04 | * | arkurious quit (Quit: Leaving) |
02:06:20 | FromDiscord | <Elegantbeef> Yea i target 4.5 with my framework cause it's the best opengl |
02:06:32 | FromDiscord | <Prestige> Why is that? I'm not familiar |
02:06:33 | FromDiscord | <Elegantbeef> Much easier and saner to do many thiings |
02:06:38 | FromDiscord | <Prestige> ah, cool |
02:06:51 | FromDiscord | <Elegantbeef> It has features like compute shaders and easily allocated buffers instead of making textures |
02:07:02 | FromDiscord | <Elegantbeef> So you can upload data from the CPU directly and not have to make a texture to sample |
02:08:00 | FromDiscord | <Prestige> That's pretty neat |
02:08:06 | FromDiscord | <Prestige> I've never directly used opengl before |
02:10:20 | FromDiscord | <Elegantbeef> Older opengl had you making your buffers in a texture so you'd waste the CPU to compress it to a texture to upload |
02:10:22 | FromDiscord | <Elegantbeef> Modern opengl allows you to just take a buffer and send it |
02:11:22 | FromDiscord | <j-james> hmm i swear i wrapped xkb at some point |
02:11:31 | FromDiscord | <j-james> it might have just been as shims |
02:11:34 | FromDiscord | <Elegantbeef> Perhaps |
02:11:42 | FromDiscord | <Elegantbeef> Like i said i have it mostly wrapped with tinwl |
02:11:56 | FromDiscord | <Elegantbeef> It's just all pain all around 😄 |
02:12:20 | FromDiscord | <Elegantbeef> X library depends on Y library which depends on Z but none wrap them so you need to wrap all 3 to write software |
02:12:45 | FromDiscord | <Prestige> We should just rewrite it all in Nim, lol |
02:13:06 | FromDiscord | <Elegantbeef> I dont know about that one |
02:13:07 | FromDiscord | <Prestige> j-james: I am awaiting your work so I can spend way too much time writing a compositor btw |
02:13:31 | FromDiscord | <Prestige> I tried forcing my phone to use opengl 4 but the screen was just black, maybe some firmware issue |
02:13:36 | FromDiscord | <ajusa> In reply to @Avahe "We should just rewrite": ah yes the treeform approach |
02:13:37 | FromDiscord | <Prestige> or I did something wrong |
02:13:52 | FromDiscord | <Prestige> In reply to @ajusa "ah yes the treeform": It's the only way |
02:14:10 | FromDiscord | <j-james> if xkb is just the stuff in `/usr/include/xkbcommon` that's not so bad |
02:14:25 | FromDiscord | <Elegantbeef> Yea it's not that bad |
02:14:25 | FromDiscord | <j-james> c2nim seems to handle that fine |
02:14:32 | FromDiscord | <Elegantbeef> Except the keysyms are dumb as hell |
02:14:42 | FromDiscord | <Elegantbeef> I c2nim'd it then was going through manually rewriting it |
02:15:06 | FromDiscord | <Elegantbeef> There are multiple keysyms that mean the same thing in Niim |
02:15:26 | FromDiscord | <j-james> ehhhh |
02:15:28 | FromDiscord | <j-james> gross |
02:15:50 | FromDiscord | <Prestige> Just have to make more explicit names I think, which is fine |
02:16:06 | FromDiscord | <Prestige> Beef I know you don't use phones, but you have an android right? |
02:16:18 | FromDiscord | <Elegantbeef> Yes |
02:16:39 | FromDiscord | <Prestige> This is what I'm remaking in my engine: https://play.google.com/store/apps/details?id=tech.einheit.hexagone |
02:16:53 | FromDiscord | <j-james> yeah, okay, identifiers referring to specifically capital and lowercase keys are like the antithesis of style insensitivity |
02:16:57 | FromDiscord | <Prestige> It's addicting for no reason. Going to add more "levels" etc |
02:17:08 | FromDiscord | <checkersai> I've been gone a while, what's up with nimskull? |
02:17:34 | FromDiscord | <Prestige> @checkersai I think they have their own chat server, can see details at https://github.com/nim-works/nimskull |
02:17:36 | FromDiscord | <Elegantbeef> Yea well blame the fucko that gave meaning to `_` 😄 |
02:18:39 | FromDiscord | <checkersai> I see it has a code of conduct, ew |
02:19:10 | FromDiscord | <Prestige> Yeah, a lot of projects do, now |
02:25:25 | FromDiscord | <j-james> i mean their code of conduct is pretty much just "don't be an asshole" + "moderators have oversight" |
02:26:02 | FromDiscord | <j-james> doesn't seem any different from here |
02:54:58 | FromDiscord | <Prestige> I'd rather have that be informal tbh |
03:01:58 | FromDiscord | <Prestige> Beef you have me checking out wasm for some reason, watching videos about it |
03:02:31 | FromDiscord | <Prestige> Well I guess it'd be useful for our future wayland compositor |
03:02:52 | FromDiscord | <Prestige> And I need to figure out how to compile my games to wasm... that's been a PITA for a while, haven't really gotten anywhere |
03:13:56 | FromDiscord | <gibson> @Prestige @ElegantBeef Thanks! |
03:14:51 | FromDiscord | <Prestige> What did we do |
03:36:00 | * | wallabra quit (Quit: ZNC 1.8.2 - https://znc.in) |
03:37:46 | * | wallabra joined #nim |
03:38:19 | FromDiscord | <gibson> I got lost trying to make pragma macros work, and was doing something stupid. You set me straight. |
03:40:13 | FromDiscord | <Prestige> Ah, great |
03:47:09 | FromDiscord | <Hi02Hi> In reply to @ElegantBeef "So... carbon does Nim's": which optimization/ whats it called in the nim docs? |
03:47:37 | FromDiscord | <Hi02Hi> my guess: strictfuncs |
03:48:32 | FromDiscord | <Elegantbeef> It's in the manual somewhere but Nim just passes by reference when it's more performant to do as such |
03:49:21 | FromDiscord | <Elegantbeef> https://nim-lang.org/docs/manual.html#procedures-var-parameters mentioned at the very bottom of here |
04:09:54 | * | TakinOver joined #nim |
04:25:49 | FromDiscord | <Hi02Hi> ah the thing i was guessing off of was a future thing |
04:26:51 | FromDiscord | <Hi02Hi> no wait |
04:27:21 | FromDiscord | <Hi02Hi> doesnt #4 remind you of strictfuncs? you cant get a pointer to this and change it that way? |
04:31:57 | FromDiscord | <Hi02Hi> am i going crazy |
04:36:35 | FromDiscord | <j-james> sent a code paste, see https://play.nim-lang.org/#ix=46b5 |
04:38:08 | FromDiscord | <Hi02Hi> gave it another look↵point #1 is just nim passing by reference if the type is big else by value↵point #2 doing that transparently↵point #3 ??? |
04:38:32 | FromDiscord | <Hi02Hi> (edit) "gave it another look↵point #1 is just nim passing by reference if the type is big else by value↵point #2 doing that transparently↵point #3 ???" => "sent a long message, see http://ix.io/46b7" |
05:15:28 | * | wallabra quit (Quit: ZNC 1.8.2 - https://znc.in) |
05:17:15 | * | wallabra joined #nim |
05:37:41 | FromDiscord | <Elegantbeef> Naming a struct that was declared before i guess |
05:37:41 | FromDiscord | <j-james> but see it wasn't declared before |
05:37:42 | FromDiscord | <Elegantbeef> Ah then it's just a empty struct declaration |
05:37:46 | FromDiscord | <j-james> hmm |
05:37:47 | FromDiscord | <j-james> alright beef some pretty 1\:1 xkb wrappers are up at https://github.com/j-james/nim-xkbcommon |
05:37:47 | FromDiscord | <Elegantbeef> But does your wlr use it \:D |
05:37:49 | FromDiscord | <Elegantbeef> Also you must be a god of patience |
05:37:51 | FromDiscord | <j-james> nah wlr uses like three types that are all uint32s |
05:37:51 | FromDiscord | <j-james> keysyms was a pain |
05:37:52 | FromDiscord | <j-james> regex-find-to-multiple-cursors made it easier though |
05:37:53 | FromDiscord | <j-james> hmm should i call it xkbcommon or just xkb |
05:37:55 | FromDiscord | <Elegantbeef> I'd say `xkb` is fine |
06:29:08 | FromDiscord | <#!/rip/luke> Hmm I’m making a discord bot for dye, and what would be the best way to do it? |
06:29:08 | * | pch quit (Read error: Connection reset by peer) |
06:29:50 | FromDiscord | <#!/rip/luke> Have the user pass in a url, and then on the server download the image, then convert it, then upload back to discord api, and remove off the server |
06:29:55 | FromDiscord | <#!/rip/luke> (edit) "server" => "server?" |
06:32:54 | FromDiscord | <wiga> In reply to @ripluke "Have the user pass": what? |
06:33:18 | FromDiscord | <wiga> idk if phrasing issue or my brain is just too slow rn |
06:33:25 | FromDiscord | <wiga> prolly my brian |
06:33:28 | FromDiscord | <wiga> (edit) "brian" => "brain" |
06:33:34 | FromDiscord | <#!/rip/luke> So dye is a cli program that can convert an image to any set of colors |
06:33:44 | FromDiscord | <#!/rip/luke> In reply to @wiga "idk if phrasing issue": Nah I should probably provide more info |
06:33:49 | FromDiscord | <wiga> aok |
06:34:03 | * | pch joined #nim |
06:34:18 | FromDiscord | <wiga> so wait you want to convert an image with a bot then upload the converted image after |
06:34:29 | FromDiscord | <#!/rip/luke> In reply to @wiga "so wait you want": Yea |
06:34:37 | FromDiscord | <#!/rip/luke> Pretty much |
06:34:49 | FromDiscord | <wiga> in nodejs it would be easy but in nim idk |
06:34:58 | FromDiscord | <wiga> you need to parse the attachment url |
06:35:04 | FromDiscord | <wiga> then download it |
06:35:13 | FromDiscord | <#!/rip/luke> In reply to @wiga "in nodejs it would": Nim has an httpclient so that shouldn’t be to hard |
06:35:14 | FromDiscord | <wiga> convert it and upload the image in attachment after |
06:35:23 | FromDiscord | <#!/rip/luke> In reply to @wiga "convert it and upload": Yea |
06:35:44 | FromDiscord | <#!/rip/luke> But I was wondering if there was a better way |
06:35:51 | FromDiscord | <wiga> use harpoon http client |
06:35:58 | FromDiscord | <wiga> there's a downloadfile function |
06:36:03 | FromDiscord | <#!/rip/luke> Oh |
06:36:13 | FromDiscord | <wiga> and its gcsafe thingy |
06:36:18 | FromDiscord | <wiga> so you can use threading |
06:36:24 | FromDiscord | <#!/rip/luke> In reply to @wiga "and its gcsafe thingy": That’s nice |
06:36:28 | FromDiscord | <wiga> ye |
06:38:34 | FromDiscord | <wiga> i have a weird problem with git |
06:38:59 | FromDiscord | <wiga> for some reason it decided to take my alt account credentials to commit my code |
06:39:13 | FromDiscord | <wiga> credentials that i have never set |
06:42:48 | FromDiscord | <Rika> Check the config? |
06:43:02 | FromDiscord | <Rika> git config --global --list user |
06:43:06 | FromDiscord | <Rika> Or dont put the global |
06:43:13 | FromDiscord | <Rika> Might be local to the repo |
06:43:45 | FromDiscord | <wiga> https://media.discordapp.net/attachments/371759389889003532/1003191218374725722/unknown.png |
06:44:24 | FromDiscord | <Rika> I forgot the exact command |
06:44:26 | FromDiscord | <Rika> Lol |
06:44:32 | FromDiscord | <wiga> lemme check rq |
06:45:41 | FromDiscord | <wiga> glob and repo has my github main acc |
06:45:43 | FromDiscord | <wiga> weird |
06:53:25 | FromDiscord | <wiga> wait its not the good email |
06:53:28 | FromDiscord | <wiga> bruhb |
06:53:33 | FromDiscord | <wiga> how do i remove the user |
06:54:39 | FromDiscord | <Rika> You can change it but i forgot how, check the man page |
06:54:45 | FromDiscord | <Rika> man git-config |
06:55:00 | FromDiscord | <wiga> my eyes hurt https://media.discordapp.net/attachments/371759389889003532/1003194048267440239/unknown.png |
06:55:04 | FromDiscord | <wiga> i cant see shit |
06:55:10 | FromDiscord | <wiga> im literally drunk |
06:55:55 | FromDiscord | <Rika> If you prefer, you can just search how |
06:56:01 | FromDiscord | <wiga> i tried |
06:56:02 | FromDiscord | <wiga> but |
06:56:03 | FromDiscord | <wiga> yeah |
06:56:06 | FromDiscord | <Rika> Its just i prefer the man page |
06:56:19 | FromDiscord | <wiga> In reply to @wiga "im literally drunk": has i said |
06:56:32 | FromDiscord | <wiga> it was a little bit too much vodka i think |
06:56:52 | FromDiscord | <Rika> maybe you shouldnt be programming now hahaha |
06:57:00 | FromDiscord | <wiga> i really shouldnt |
06:57:07 | FromDiscord | <wiga> i should sleep cuz its like 4am |
06:57:09 | FromDiscord | <Rika> yes |
06:57:09 | FromDiscord | <wiga> (edit) "4am" => "3am" |
06:57:16 | FromDiscord | <Rika> good night to you |
06:57:20 | FromDiscord | <wiga> yes gn |
06:57:37 | FromDiscord | <wiga> gonna change my git config tomorrow instead lol |
07:02:43 | FromDiscord | <#!/rip/luke> How can I check if a website is online |
07:02:51 | FromDiscord | <#!/rip/luke> And does return 404 |
07:11:52 | FromDiscord | <Rika> you request it, and see if it returns a 404? |
07:14:28 | FromDiscord | <ajusa> I'm trying to figure out whether to use traitor/iface, variant, or just plain Nim methods to implement an instruction interpreter. With variant, I declare an object for each instruction, and then I make a union of all of them for my instruction type. With Nim methods, I guess I would subclass an instruction type. |
07:15:01 | FromDiscord | <Elegantbeef> Do not use dynamic dispatch for an interpreter you'll regret it |
07:15:29 | FromDiscord | <Prestige> Are there still significant performance problems in Nim with dynamic dispatch? |
07:15:46 | FromDiscord | <Elegantbeef> Regardless you do not want to have dynamic dispatch for an interpreter |
07:16:07 | FromDiscord | <Elegantbeef> But i think that's been lessened in devel |
07:16:30 | FromDiscord | <ajusa> Gotcha, should I stick with variant and many if statements for checking which kind of instruction it is? What's wrong with dynamic dispatch, shouldn't the performance end up being the same? |
07:17:03 | FromDiscord | <Elegantbeef> Dynamic dispatch generally means you need to box the data with a pointer, which means you're going to have data all over the heap |
07:17:48 | FromDiscord | <ajusa> Oh right, it's a ref object |
07:17:50 | FromDiscord | <Elegantbeef> If you really wanted something extensible i'd look more into pointer procs |
07:18:08 | FromDiscord | <ajusa> So my seq of instructions can end up scattered |
07:18:15 | FromDiscord | <Elegantbeef> Pointer procs still cannot be inlined but they're a simple lookup to procedure calls |
07:18:35 | FromDiscord | <Elegantbeef> You then just do something like `myProcTable[opCode](args)` |
07:19:46 | FromDiscord | <ajusa> Hm, okay |
07:20:40 | FromDiscord | <Prestige> https://github.com/appcypher/awesome-wasm-langs#nim 🤔 |
07:21:13 | FromDiscord | <Elegantbeef> What? |
07:25:16 | FromDiscord | <ajusa> Beef do you know if I could index into a table if I'm using alaviss/union? Or should I just use a case object with an explicit enum |
07:25:41 | FromDiscord | <ajusa> I don't like case objects because the fields can't have the same name, I know it's an accepted RFC |
07:26:03 | FromDiscord | <Elegantbeef> Why couldnt you index into a table |
07:26:39 | FromDiscord | <Elegantbeef> Also dont use a table use an enum indexed array |
07:27:12 | FromDiscord | <Elegantbeef> You pretty much have to use a variant object if you want to have good cache locality |
07:27:23 | FromDiscord | <Elegantbeef> I know union does that but i dont see the benefit here |
07:27:54 | FromDiscord | <ajusa> Okay, so I should drop union I guess. It provides some nice sugar around composing types, that's all |
07:28:11 | FromDiscord | <Elegantbeef> Yea but you're not just composing types |
07:28:14 | FromDiscord | <Elegantbeef> Atleast i assume you're not |
07:35:06 | FromDiscord | <#!/rip/luke> sent a code paste, see https://play.nim-lang.org/#ix=46bU |
07:36:00 | FromDiscord | <Elegantbeef> Use a callback or `waitFor` instead |
07:37:01 | FromDiscord | <#!/rip/luke> where do i put the waitfor |
07:37:16 | FromDiscord | <Elegantbeef> Dont use it as it'd block the program |
07:37:31 | FromDiscord | <#!/rip/luke> thats what i want it to do |
07:37:31 | FromDiscord | <Elegantbeef> but you could do `waitfor discord.api.sendMessage` |
07:37:58 | FromDiscord | <#!/rip/luke> hmm would that work? as the following code isnt top level |
07:38:06 | FromDiscord | <Elegantbeef> Why wouldnt it? |
07:38:14 | FromDiscord | <Elegantbeef> `waitFor` is async for "blocking operation" |
07:38:36 | FromDiscord | <#!/rip/luke> ok |
07:39:23 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=46bY |
07:40:20 | FromDiscord | <#!/rip/luke> ok |
07:42:03 | FromDiscord | <Elegantbeef> And then at the end do `await myFut` |
07:42:16 | FromDiscord | <Elegantbeef> I think that should work atleast |
07:42:45 | FromDiscord | <#!/rip/luke> ok |
07:58:20 | FromDiscord | <Phil> sent a long message, see http://ix.io/46cf |
07:59:30 | FromDiscord | <アサダ> sent a code paste, see https://play.nim-lang.org/#ix=46cg |
07:59:54 | FromDiscord | <アサダ> (edit) "https://play.nim-lang.org/#ix=46cg" => "https://play.nim-lang.org/#ix=46ch" |
08:00:28 | FromDiscord | <Elegantbeef> Nim's type classes are used for constraints they're not dynamically typed |
08:00:38 | FromDiscord | <Elegantbeef> For what you want look at object variants |
08:10:30 | FromDiscord | <Rika> Beef I think you’re misunderstanding |
08:12:02 | FromDiscord | <Elegantbeef> I mean i might be but Nim's typeclasses are not for dynamism in results or variable declaration and are only supposed to be used for generic constraints |
08:20:17 | FromDiscord | <Phil> In reply to @Elegantbeef "I mean i might": But num2 is not dynamic. The compiler has the information to figure out that of the 4 types PrimeNumber includes, that the correct type is range[2..2] |
08:20:54 | FromDiscord | <Phil> And num2 afterwards isn't used afterwards as if it were type range[3..3] or the like |
08:20:57 | FromDiscord | <Elegantbeef> Hey dont look at me, you're not supposed to use typeclasses for variable types |
08:21:32 | FromDiscord | <Elegantbeef> 2 is technically valid for all of those ranges |
08:21:55 | FromDiscord | <アサダ> I see. On the other hand, how can the `intOrString` type be accepted as the correct grammar? I am interested in whether it is wrong that an ambiguous type is accepted in a variable, or whether it is a `range[T]` specific problem. |
08:22:05 | FromDiscord | <Elegantbeef> It's an integer so it can be converted to all the ranges |
08:22:25 | FromDiscord | <Phil> It is? I thought it wouldn't fit in the 3..3 range or the like. Or is it that they're all limited ints and the compiler only checks that they are ints and thus which int it should be is ambiguous? |
08:22:35 | * | kenran joined #nim |
08:23:03 | FromDiscord | <Elegantbeef> The reason it's accepted is cause the way the system works presently(against araq's from what i can tell) is type annotations for variables uses the same mechanisms as everywhere and as such `intorstring` works |
08:23:22 | FromDiscord | <Elegantbeef> Phil that requires checking logic, that's not needed |
08:24:12 | FromDiscord | <Elegantbeef> You go "Hey is this untyped integer possibly to convert to any of these ranges". The compiler says "Yes" then gives the error it does |
08:24:29 | * | kenran quit (Client Quit) |
08:25:08 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=46cy |
08:25:34 | FromDiscord | <Elegantbeef> `2` is convertible to ever range there so you get an ambiguous error |
08:25:42 | FromDiscord | <Elegantbeef> No clue what is intended but i'm on team it's ambiguous |
08:28:10 | FromDiscord | <Elegantbeef> Narrowing literals based off ranges does seem like something that could be done, but given most cases never need this it's quite obtrusive 😄 |
08:28:27 | FromDiscord | <Rika> "most cases never need this" example? |
08:28:32 | FromDiscord | <Rika> i mean, source |
08:28:59 | FromDiscord | <Elegantbeef> I've seen very few people use subrange typed dispatch on literals |
08:29:19 | FromDiscord | <Rika> isnt that survivorship bias? you just mentioned its not possible |
08:29:20 | FromDiscord | <Elegantbeef> The only place this is usable is with literals when you have more than 1 subrange type that could be used |
08:29:42 | FromDiscord | <Elegantbeef> Not really |
08:29:58 | * | pch quit (Remote host closed the connection) |
08:30:06 | FromDiscord | <Elegantbeef> How many times do you see subrange type overloads |
08:30:27 | FromDiscord | <Rika> just because no one does it doesnt mean it could be useful? |
08:30:31 | FromDiscord | <Rika> couldnt |
08:30:44 | FromDiscord | <Elegantbeef> I mean you still need to manually convert to the subrange type even with this suggest change |
08:30:51 | FromDiscord | <Prestige> This particular use case seems weird to me |
08:31:08 | FromDiscord | <Elegantbeef> You still have to convert |
08:31:09 | FromDiscord | <Elegantbeef> sent a code paste, see https://play.nim-lang.org/#ix=46cI |
08:31:14 | FromDiscord | <Elegantbeef> Unless subrange types are runtime dispatched |
08:32:11 | FromDiscord | <Elegantbeef> So it only changes the few cases you have overloaded the expected type on a literal |
08:32:27 | FromDiscord | <Elegantbeef> It's a very very small niche group that'd do that given most people dont even use subrange types |
08:33:44 | FromDiscord | <Rika> hey i understand it doesnt really make sense im just trying to push if there really is no use |
09:50:31 | NimEventer | New Nimble package! wayland - Nim bindings for Wayland, see https://github.com/j-james/nim-wayland |
09:50:31 | NimEventer | New Nimble package! wlroots - Nim bindings for wlroots, see https://github.com/j-james/nim-wlroots |
09:50:31 | NimEventer | New Nimble package! xkb - A light wrapper over xkbcommon, see https://github.com/j-james/nim-xkbcommon |
09:53:54 | FromDiscord | <Rika> thats a lot |
10:04:24 | FromDiscord | <Phil> No library is safe |
10:04:37 | FromDiscord | <Phil> Beware libraries, jj is coming to wrap you |
10:47:52 | FromDiscord | <b1rdf00d> is it possible to get a `ref` of a variable of type `object`? or does the type of the variable need to be `ref object` ?↵e.g. I multithreaded my raytracer and instead of passing the "world" by value (copy) I wanted to pass by ref which meant I had to rewrite the type as a `ref object` ? |
10:55:01 | FromDiscord | <hotdog> In reply to @b1rdf00d "is it possible to": If your type is called e.g. `World` you can use `ref World` |
10:55:52 | FromDiscord | <hotdog> sent a code paste, see https://play.nim-lang.org/#ix=46dE |
10:55:55 | FromDiscord | <hotdog> This is quite common |
11:02:25 | FromDiscord | <b1rdf00d> sent a code paste, see https://play.nim-lang.org/#ix=46dI |
11:04:11 | FromDiscord | <hotdog> In reply to @b1rdf00d "thanks! I did actually": Yeah that won't work I'm afraid |
11:07:01 | FromDiscord | <hotdog> You can do the opposite though, start as a ref and dereference if you want to pull the value out and use it |
11:08:49 | FromDiscord | <b1rdf00d> yep! I did do that to init it |
11:09:01 | FromDiscord | <eyecon> In reply to @ripluke "Hmm I’m making a": You're using https://github.com/krisppurg/dimscord and https://github.com/ire4ever1190/dimscmd , right? |
11:31:38 | FromDiscord | <Rika> In reply to @b1rdf00d "thanks! I did actually": That last point is why you cant make a reference out of that variable |
11:39:10 | FromDiscord | <b1rdf00d> Thanks Rika 🙂 It actually makes sense now and I'm glad I'm being prevented from making noob mistakes. This helped explain it: https://www.reddit.com/r/nim/comments/7dm3le/tutorial_for_types_having_a_hard_time/ |
11:44:45 | FromDiscord | <hotdog> @b1rdf00d this is also a good read if you haven't come across it already, I've recommended it to a few people who are learning Nim's memory stuff - https://zevv.nl/nim-memory/ |
11:47:50 | FromDiscord | <dom96> In reply to @ripluke "so i have this": Why aren’t you awaiting the downloadFile? |
11:54:06 | FromDiscord | <b1rdf00d> In reply to @hotdog "<@775600941985431562> this is also": thanks hotdog! I have read this but I'll read it again |
12:50:35 | * | jmdaemon quit (Ping timeout: 252 seconds) |
12:56:44 | * | arkurious joined #nim |
13:14:30 | * | Guest56 joined #nim |
13:20:58 | * | Guest56 quit (Quit: Client closed) |
13:38:18 | * | krux02 joined #nim |
13:39:46 | NimEventer | New post on r/nim by rtacconi: Infra Weekly #9, see https://reddit.com/r/nim/comments/wcoy1s/infra_weekly_9/ |
14:05:57 | FromDiscord | <exelotl> love to find out my app is leaking sockets 😅↵https://git.sr.ht/~exelotl/forum2irc/tree/master/item/src/forum2irc.nim#L62 |
14:06:06 | * | pch joined #nim |
14:06:07 | FromDiscord | <exelotl> need them destructors in the stdlib... |
14:09:06 | FromDiscord | <exelotl> dang none of the examples in the docs even call `client.close()`, it really sets you up for failure |
14:11:39 | FromDiscord | <!Patitotective> In reply to @exelotl "dang none of the": yea... |
14:17:02 | FromDiscord | <!Patitotective> In reply to @ripluke "so i have this": allocations when double split go brrr |
14:26:25 | * | kenran joined #nim |
14:40:02 | * | wallabra quit (Ping timeout: 245 seconds) |
14:47:44 | * | wallabra joined #nim |
14:50:05 | * | kenran quit (Quit: WeeChat info:version) |
14:51:52 | FromDiscord | <Require Support> im losing my mind. im transforming a json string to an object using jsony (https://github.com/treeform/jsony) and I keep getting jsonerror but if I do a quick test program with that exact string and the exact object it works fine without any errors. Any one have an idea on how to figure out whats the problem? |
14:55:09 | FromDiscord | <Rika> Are you sure it’s the exact string? |
14:55:29 | FromDiscord | <Rika> Character escaping could be biting you in the ass |
14:55:54 | FromDiscord | <gibson> @Require Support Is your object exported and visible to the namespace? Hard to debug without seeing the test case. |
14:56:33 | FromDiscord | <Require Support> In reply to @gibson "<@710108871724761128> Is your object": yep exported and visible |
14:56:53 | FromDiscord | <Require Support> In reply to @Rika "Character escaping could be": might be , how do i confirm this? |
14:57:15 | FromDiscord | <Rika> Code example |
15:07:02 | FromDiscord | <sOkam!> Given this json table, how do you parse it into a table of custom colors? `seq[Color]` https://media.discordapp.net/attachments/371759389889003532/1003317872484962375/table.json |
15:07:35 | FromDiscord | <sOkam!> I got the color type made, but struggling a lot to understand how to parse each line into a separate object 😔 |
15:08:34 | FromDiscord | <Rika> that does not look like valid json |
15:08:45 | FromDiscord | <!Patitotective> In reply to @sOkam! "Given this json table,": did you mean array `[]`? |
15:08:48 | FromDiscord | <!Patitotective> (edit) "In reply to @sOkam! "Given this json table,": did you mean ... array" added "an" |
15:09:14 | FromDiscord | <sOkam!> anything that can be iterated, i don't mind the nim table type 🤷♂️ |
15:09:22 | FromDiscord | <Rika> no |
15:09:29 | FromDiscord | <Rika> he means the json is not valid as is |
15:09:37 | FromDiscord | <Rika> {} is not an array in json, cannot be one either |
15:09:55 | FromDiscord | <Rika> you must use `[{"cat": ...}, ...]` |
15:10:18 | FromDiscord | <sOkam!> easy fix. lets say it was `[{something, something}, {othersomething, othersomething}]` from moment 1 |
15:10:34 | FromDiscord | <sOkam!> still have no clue how to convert it |
15:10:39 | FromDiscord | <Rika> what are you using |
15:10:45 | FromDiscord | <Rika> std/json? |
15:10:50 | FromDiscord | <sOkam!> ye |
15:11:07 | FromDiscord | <!Patitotective> sent a code paste, see https://play.nim-lang.org/#ix=46fe |
15:11:09 | FromDiscord | <!Patitotective> something like that |
15:11:21 | FromDiscord | <sOkam!> ✍️ |
15:12:37 | FromDiscord | <!Patitotective> and if you want to store `lname` as well you better create an custom color object |
15:13:00 | FromDiscord | <sOkam!> i have one |
15:13:27 | FromDiscord | <sOkam!> i just want to parse that data into the custom type, that contains all items of the json with exact names |
15:14:03 | FromDiscord | <!Patitotective> oh |
15:14:15 | FromDiscord | <!Patitotective> https://nim-lang.org/docs/json.html#overview-unmarshalling |
15:14:19 | FromDiscord | <sOkam!> so i figure `collect` creates an array, from sugar, and `rgb(` creates a `chroma.rgb` of some sort? |
15:14:47 | FromDiscord | <!Patitotective> In reply to @sOkam! "so i figure `collect`": collect creates a sequence↵rgb creates a `chroma.ColorRGB`, yes |
15:15:08 | FromDiscord | <!Patitotective> if you arent manipulating the color in any way chroma is not needed |
15:15:15 | FromDiscord | <sOkam!> right, then that solution is not valid. i need all the data in the json, not just the color value 😔 |
15:15:25 | FromDiscord | <!Patitotective> In reply to @Patitotective "https://nim-lang.org/docs/json.html#overview-unmars": . |
15:15:35 | FromDiscord | <sOkam!> yeah, haven't had the time to click on that yet 😄 |
15:16:04 | FromDiscord | <sOkam!> oh, that one |
15:16:07 | FromDiscord | <sOkam!> yeah, i was there |
15:16:12 | FromDiscord | <sOkam!> struggling, and came here to ask |
15:16:20 | FromDiscord | <sOkam!> i have no clue how to unmarshal an array |
15:16:38 | FromDiscord | <sOkam!> (edit) "i have no clue how to unmarshal an array ... " added "into a sequence (or any other multiple data container)" |
15:16:42 | FromDiscord | <sOkam!> which is what started the q |
15:16:45 | FromDiscord | <!Patitotective> well, you just iterate through it and unmarshal each entry |
15:17:49 | FromDiscord | <sOkam!> i don't follow. the problem in my understanding is how to extract an iterable from the json |
15:18:02 | FromDiscord | <sOkam!> that example only takes a single object as an input |
15:18:39 | FromDiscord | <!Patitotective> sent a code paste, see https://play.nim-lang.org/#ix=46ff |
15:19:38 | FromDiscord | <sOkam!> and `jsonData` you get it from `parseJson` of the raw string? |
15:19:42 | FromDiscord | <!Patitotective> yes |
15:36:36 | FromDiscord | <huantian> You don’t need the collect, you can directly to(seq[Color]) |
15:37:10 | FromDiscord | <!Patitotective> smart |
15:37:16 | FromDiscord | <huantian> Also does std json support ranges? 0…255 might be better than uint8 |
15:41:57 | FromDiscord | <sOkam!> In reply to @huantian "You don’t need the": as in doing `jsonData.to(seq[Color])`? |
15:42:05 | FromDiscord | <huantian> Yes |
15:44:57 | FromDiscord | <sOkam!> sent a code paste, see https://play.nim-lang.org/#ix=46fo |
15:48:17 | FromDiscord | <!Patitotective> you need to specify the type of the sequence you're returning |
15:48:36 | FromDiscord | <!Patitotective> also iirc there's `parseFile` |
16:03:34 | FromDiscord | <!Patitotective> is there a way to `execCmd` asynchronously? or in a non-blocking way?↵do i need to use a thread? |
16:06:40 | FromDiscord | <huantian> There’s a different proc tor that |
16:06:54 | FromDiscord | <huantian> startProcess? |
16:10:21 | FromDiscord | <Require Support> sent a code paste, see https://play.nim-lang.org/#ix=46fs |
16:11:22 | FromDiscord | <!Patitotective> In reply to @huantian "startProcess?": 🧠 |
16:28:34 | FromDiscord | <sOkam!> What was the way to check for a file being the main module being executed? 🤔 |
16:29:04 | FromDiscord | <!Patitotective> In reply to @sOkam! "What was the way": `when isMainModule` |
16:29:09 | FromDiscord | <sOkam!> (edit) "for a" => "that" | "being" => "is" |
16:40:18 | FromDiscord | <sOkam!> In reply to @Patitotective "also iirc there's `parseFile`": much cleaner indeed. tyty |
17:22:01 | FromDiscord | <eyecon> In reply to @eyecon "So I just published": And a second one, almost the same API for another project: https://github.com/EyeCon/smaznim |
17:30:37 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=46gB |
17:30:55 | FromDiscord | <Phil> sent a code paste, see https://play.nim-lang.org/#ix=46gD |
17:31:08 | FromDiscord | <Rika> oh hey antirez |
17:31:27 | FromDiscord | <Phil> ? |
17:31:33 | FromDiscord | <Rika> eyecon's package |
17:32:57 | FromDiscord | <eyecon> In reply to @Rika "eyecon's package": Hmm? |
17:33:13 | FromDiscord | <Phil> I stared at the github page of that package and I'm still not connecting the dots to the word "antirez" |
17:33:33 | FromDiscord | <Rika> antirez made smaz |
17:33:46 | FromDiscord | <Phil> Ohhhhh |
17:33:51 | FromDiscord | <eyecon> Ah, I thought I heard the word recently |
17:34:54 | FromDiscord | <sOkam!> How can you truncate a float to X number of decimals? |
17:38:06 | FromDiscord | <gibson> sent a code paste, see https://play.nim-lang.org/#ix=46gK |
17:38:39 | FromDiscord | <sOkam!> rounding has a number of decimals as input? thats handy↵is there something like that for truncation too? |
17:40:51 | FromDiscord | <gibson> You could use `trunc` which truncates to the decimal. Or convert to string and truncate by `echo myvar[0..6]` for very specific control of the textual representation. |
17:47:22 | FromDiscord | <sOkam!> sent a code paste, see https://play.nim-lang.org/#ix=46gP |
17:50:25 | FromDiscord | <domosokrat> `assert 0.9370000000000001 == 0.937` |
17:50:25 | FromDiscord | <domosokrat> in other words, 0.9370000000000001 is the closest float to 0.937 |
17:50:51 | Amun-Ra | almost alwys do (a - b) <= epsilon |
17:51:14 | Amun-Ra | abs* |
17:54:01 | FromDiscord | <sOkam!> right, but I just want all floats to be 3decimals in format↵is there a way to do that, without needing to round or anything? |
17:54:22 | FromDiscord | <sOkam!> because I would like for `0.0` to also become `0.000` after the formatting |
17:54:54 | FromDiscord | <sOkam!> is there such a tool in strformat, but im not finding it? 🤔 |
17:55:18 | Amun-Ra | fmt"{x:.03f}" |
17:55:21 | FromDiscord | <domosokrat> doesn't formatFloat() work for you? |
17:55:37 | FromDiscord | <domosokrat> it's from stutils |
17:55:48 | FromDiscord | <sOkam!> ahh gotchu |
17:57:45 | FromDiscord | <sOkam!> gorgeous. ty! https://media.discordapp.net/attachments/371759389889003532/1003360833419612170/unknown.png |
18:07:11 | FromDiscord | <sOkam!> is there a way to do the same, but for left zero padding integers? |
18:08:07 | FromDiscord | <sOkam!> as in `0 :int` becoming `000 :string` |
18:08:50 | FromDiscord | <demotomohiro> !eval import strformat; echo &"{10:04}" |
18:08:55 | NimBot | Compile failed: 0010 |
18:10:05 | FromDiscord | <demotomohiro> !eval import strformat; echo &"{123:05}" |
18:10:10 | NimBot | Compile failed: 00123 |
18:11:15 | FromDiscord | <sOkam!> sent a code paste, see https://play.nim-lang.org/#ix=46gV |
18:11:16 | FromDiscord | <demotomohiro> It echo correct output but says compile failed. |
18:12:41 | FromDiscord | <sOkam!> (edit) "https://play.nim-lang.org/#ix=46gV" => "https://play.nim-lang.org/#ix=46gW" |
18:12:51 | FromDiscord | <sOkam!> (edit) "https://play.nim-lang.org/#ix=46gW" => "https://play.nim-lang.org/#ix=46gY" |
18:13:48 | FromDiscord | <sOkam!> !eval import strformat; echo &""" {"cat" & $10:05} """ |
18:13:51 | NimBot | Compile failed: cat10 |
18:14:03 | FromDiscord | <!Patitotective> :/ |
18:15:14 | FromDiscord | <domosokrat> This is the same as `&""" {(color.cat & $color.id):02} """`↵(@sOkam!) |
18:15:51 | FromDiscord | <sOkam!> it only formats the int, and doesn't touch the string? |
18:15:55 | FromDiscord | <domosokrat> So, yes you need separate '{}' |
18:15:56 | FromDiscord | <sOkam!> didn't know |
18:16:03 | FromDiscord | <demotomohiro> Formar specifier works for per `{}` block. |
18:16:51 | FromDiscord | <huantian> How do you expect it to know which part of the string is the int if you use one block |
18:17:54 | FromDiscord | <sOkam!> `{color.cat}{color.id:02}` worked, didn't realize i could just skip the space in between brackets to skip adding a space 🤷♂️ |
18:18:44 | FromDiscord | <huantian> Lol |
18:19:55 | FromDiscord | <demotomohiro> Here is how strformat parse input text: https://github.com/nim-lang/Nim/blob/40e0048a504c1009e143fb62ad260625a2b2a53d/lib/pure/strformat.nim#L580 |
18:19:58 | FromDiscord | <sOkam!> i get stuck on the stupidest things, if they are small enough 😄 |
18:20:16 | FromDiscord | <Rika> you're not the only one dont worry too much about it |
18:20:28 | FromDiscord | <Rika> i dont know anyone who doesnt do that incl myself xddddd |
18:24:43 | FromDiscord | <krisppurg> Is there any alternatives to `osproc`? |
18:27:01 | FromDiscord | <!Patitotective> In reply to @krisppurg "Is there any alternatives": what's wrong with it? |
18:28:20 | FromDiscord | <domosokrat> you could try the posix module↵(@krisppurg) |
18:29:05 | FromDiscord | <domosokrat> But I'm not sure if that's a good alternative |
18:29:10 | FromDiscord | <demotomohiro> Or winlean/winim for windows if you need lower level APIs. |
18:30:39 | FromDiscord | <demotomohiro> https://github.com/cheatfate/asynctools |
18:31:52 | FromDiscord | <!Patitotective> In reply to @demotomohiro "https://github.com/cheatfate/asynctools": :ooooooooooooooooooooooooooooo amazing so useful |
18:36:21 | * | jmdaemon joined #nim |
18:37:35 | FromDiscord | <krisppurg> Is there any examples for asynctools? |
18:39:07 | FromDiscord | <!Patitotective> you have to generate the documentation yourself by cloning the repo↵(i dont think there are more examples than in the stdlib) |
18:42:18 | FromDiscord | <krisppurg> sent a code paste, see https://play.nim-lang.org/#ix=46hb |
18:42:31 | FromDiscord | <eyecon> In reply to @demotomohiro "https://github.com/cheatfate/asynctools": Somewhat old, is it still relevant? https://media.discordapp.net/attachments/371759389889003532/1003372099504701480/unknown.png |
18:42:48 | FromDiscord | <!Patitotective> In reply to @krisppurg "Seems like when I": i did `nim doc --project asynctools.nim` |
18:43:29 | FromDiscord | <!Patitotective> In reply to @eyecon "Somewhat old, is it": there are no other options 💀 💀 |
18:45:11 | FromDiscord | <krisppurg> Well if the requirement is an older nim version as minimum it could also mean that code is consistent |
18:51:12 | FromDiscord | <Tuatarian> using spacemacs, lsp doesn't seem to work with nimlangserver |
18:51:33 | FromDiscord | <Tuatarian> not sure exactly what is going on, and no idea how to troubleshoot since I'm so new to emacs |
18:51:44 | FromDiscord | <⃟⃟> is the last name "Rumpf" derived from "rump" |
18:52:02 | FromDiscord | <Tuatarian> likely not |
18:52:58 | FromDiscord | <Tuatarian> actually, it seems to be descended from the german word that english "rump" is descended from |
18:53:07 | FromDiscord | <Tuatarian> not quite the same meaning afai can tell |
18:53:09 | FromDiscord | <Tuatarian> https://www.ancestry.com/name-origin?surname=rumpf#:~:text=German%3A%3A%20nickname%20for%20a,German%20rumph%20'bent%20crooked'. |
18:53:11 | FromDiscord | <Tuatarian> https://en.wikipedia.org/wiki/Rumpf |
19:01:02 | FromDiscord | <!Patitotective> In reply to @eyecon "Somewhat old, is it": it seems a little abandoned :[[ |
19:06:25 | * | kenran joined #nim |
19:07:17 | FromDiscord | <Tuatarian> if yyoncho is online, I think you would be able to help me |
19:07:36 | FromDiscord | <Tuatarian> but lsp mode doesn't seem to be working for me, it complains about the file not being compiled as part of the project |
19:24:40 | FromDiscord | <Tuatarian> any ideas? |
19:24:46 | FromDiscord | <Tuatarian> still haven't been able to fix |
19:27:06 | NimEventer | New thread by Lachu: Compiler bug?, see https://forum.nim-lang.org/t/9334 |
19:30:51 | * | xet7 quit (Ping timeout: 276 seconds) |
19:33:24 | FromDiscord | <Tuatarian> ok I'm giving up on lsp-mode |
19:33:32 | FromDiscord | <Tuatarian> even lints using nimsuggest don |
19:33:38 | FromDiscord | <Tuatarian> don't seem to be working on windows |
19:43:24 | * | xet7 joined #nim |
19:52:47 | FromDiscord | <gorilla_> Couldn't get it to work on VSCode though. |
19:52:48 | FromDiscord | <gorilla_> lsp mode works well enough on Kate with LSP plugin↵(@Tuatarian) |
19:54:07 | FromDiscord | <#!/rip/luke> In reply to @eyecon "You're using https://github.com/krisppurg/dimscord ": Yup |
20:03:28 | FromDiscord | <sOkam!> can you make a for loop increase by a certain value each time? |
20:04:32 | FromDiscord | <!Patitotective> In reply to @sOkam! "can you make a": no, use a while loop |
20:04:36 | FromDiscord | <!Patitotective> nvm |
20:04:40 | FromDiscord | <gibson> https://nim-lang.github.io/Nim/system.html#countup.i%2CT%2CT%2CPositive |
20:04:43 | FromDiscord | <!Patitotective> yes |
20:04:50 | FromDiscord | <!Patitotective> (edit) "yes ... " added "⬆️" |
20:05:21 | FromDiscord | <!Patitotective> In reply to @sOkam! "can you make a": yet if you want it to increase by a different value each time you need a while loop |
20:18:12 | FromDiscord | <!Patitotective> sent a code paste, see https://play.nim-lang.org/#ix=46hx |
20:19:09 | FromDiscord | <#!/rip/luke> In reply to @Patitotective "ok, so i want": Use process.lines |
20:19:52 | FromDiscord | <#!/rip/luke> sent a code paste, see https://play.nim-lang.org/#ix=46hy |
20:19:55 | FromDiscord | <!Patitotective> In reply to @ripluke "Use process.lines": doesnt that block the main thread? |
20:20:15 | FromDiscord | <#!/rip/luke> Oh |
20:20:16 | FromDiscord | <#!/rip/luke> Yea |
20:20:21 | FromDiscord | <!Patitotective> :/ |
20:23:39 | FromDiscord | <neon_> why dont you just get its output stream and read it in the main loop? |
20:24:30 | FromDiscord | <dom96> use asynctools package's async osproc |
20:25:16 | FromDiscord | <!Patitotective> sent a code paste, see https://play.nim-lang.org/#ix=46hA |
20:25:24 | FromDiscord | <!Patitotective> In reply to @neon_ "why dont you just": i tried but it still blocks :/ |
20:25:52 | FromDiscord | <neon_> wait lemme look through my libs |
20:25:58 | FromDiscord | <neon_> i think i had a simmilar problem |
20:28:49 | FromDiscord | <neon_> In reply to @Patitotective "i tried but it": https://github.com/HookRace/hookrace/blob/master/logger.nim this guy wrote an async logger i think you could adapt it to your process |
20:28:57 | FromDiscord | <neon_> the lines at the end are outdated you should use |
20:29:12 | FromDiscord | <neon_> sent a code paste, see https://play.nim-lang.org/#ix= |
20:29:20 | FromDiscord | <neon_> from std/exitprocs |
20:29:31 | FromDiscord | <!Patitotective> 👀 |
20:30:08 | FromDiscord | <!Patitotective> this is more like use osproc in a thread (?) |
20:30:58 | FromDiscord | <neon_> yes i think |
20:31:34 | FromDiscord | <neon_> sent a code paste, see https://play.nim-lang.org/#ix=46hD |
20:31:46 | FromDiscord | <neon_> and its async so it doesnt wait to write to the log file but continues |
20:32:14 | FromDiscord | <neon_> dont want ur http api to crash cause it cant output logs fast enough cause its waiting to flush to a file |
20:34:03 | FromDiscord | <!Patitotective> what i'm trying to implement is kind of a terminal↵so i supply i command and i want to get the lines in the moment they're outputted to display them in a GUI |
20:34:08 | FromDiscord | <neon_> sent a code paste, see https://play.nim-lang.org/#ix=46hE |
20:34:39 | FromDiscord | <neon_> In reply to @Patitotective "what i'm trying to": so you want to wait for the command to finish? |
20:35:28 | FromDiscord | <!Patitotective> well, i want to get the output at real time↵not when it finishes |
20:36:38 | FromDiscord | <!Patitotective> just like a real terminal |
20:37:32 | * | wallabra quit (Ping timeout: 245 seconds) |
20:40:29 | FromDiscord | <Elegantbeef> Well time to make a terminal emulator↵(@!Patitotective) |
20:44:10 | FromDiscord | <#!/rip/luke> In reply to @dom96 "Why aren’t you awaiting": That gives me an error about futures |
20:45:07 | FromDiscord | <!Patitotective> In reply to @Elegantbeef "Well time to make": i just need a non-blocking stdout :[[[[[ |
20:45:17 | FromDiscord | <neon_> put it in a thread |
20:45:19 | FromDiscord | <Elegantbeef> Then use startprocess?↵(@!Patitotective) |
20:45:20 | FromDiscord | <neon_> and it wont block |
20:45:24 | FromDiscord | <Elegantbeef> Dont use a thread |
20:45:47 | FromDiscord | <neon_> then just yield when its not doing anything |
20:46:34 | FromDiscord | <!Patitotective> In reply to @Elegantbeef "Then use startprocess? (<@762008715162419261>)": let me push and you can see how it actually blocks (by actually i mean im not using it how its supposed to be used) |
20:47:33 | FromDiscord | <dom96> In reply to @ripluke "That gives me an": what error? Are you using AsyncHttpClient? |
20:47:46 | FromDiscord | <#!/rip/luke> No I'm using harpoon |
20:47:49 | FromDiscord | <dom96> In reply to @Elegantbeef "Dont use a thread": you can put it in a thread |
20:48:10 | FromDiscord | <!Patitotective> https://github.com/Patitotective/ImNimble |
20:48:16 | FromDiscord | <!Patitotective> just `nimble run` |
20:48:25 | FromDiscord | <!Patitotective> and when you click install on any package it lags |
20:48:43 | FromDiscord | <!Patitotective> https://github.com/Patitotective/ImNimble/blob/main/main.nim#L140 |
20:50:12 | FromDiscord | <#!/rip/luke> sent a code paste, see https://play.nim-lang.org/#ix=46hG |
20:50:48 | FromDiscord | <dom96> what does `downloadFile` return? |
20:51:27 | FromDiscord | <#!/rip/luke> Future[void] |
20:52:10 | FromDiscord | <Elegantbeef> Use peekable stream instead no? |
20:52:38 | FromDiscord | <!Patitotective> In reply to @Elegantbeef "Use peekable stream instead": let me try |
20:54:33 | FromDiscord | <!Patitotective> same |
20:54:50 | FromDiscord | <Elegantbeef> Probably has same issue |
20:54:51 | FromDiscord | <Elegantbeef> Then thread might be the best option |
20:55:20 | FromDiscord | <Elegantbeef> I mean if you're `readLine` instead of `peekLine` of course |
20:55:27 | FromDiscord | <Elegantbeef> Dont know if peak is blocking |
20:55:29 | FromDiscord | <Elegantbeef> Peek rather |
20:55:31 | FromDiscord | <!Patitotective> let me try |
20:56:19 | FromDiscord | <Tuatarian> In reply to @gorilla_ "lsp mode works well": I don't even need lsp, I just need some sort of linting |
20:56:34 | FromDiscord | <Tuatarian> it was working fine on my linux laptop, doesn't seem to work on my windows desktop either native or via wsl |
20:56:46 | FromDiscord | <!Patitotective> sent a code paste, see https://play.nim-lang.org/#ix=46hJ |
20:57:17 | FromDiscord | <!Patitotective> would asynctools work better than the thread? https://play.nim-lang.org/#ix=46hI |
20:57:20 | FromDiscord | <#!/rip/luke> Are there any other nimble packages that can download stuff |
20:57:29 | FromDiscord | <!Patitotective> In reply to @ripluke "Are there any other": downit LMAO |
20:57:34 | FromDiscord | <#!/rip/luke> Oh |
20:57:56 | FromDiscord | <!Patitotective> https://media.discordapp.net/attachments/371759389889003532/1003406177805275166/unknown.png |
20:58:23 | FromDiscord | <!Patitotective> In reply to @ripluke "Oh": ~~(its a joke because downit uses downloadFile)~~ |
20:58:35 | FromDiscord | <#!/rip/luke> The bottom 2 won't work for my usecase |
20:58:45 | FromDiscord | <!Patitotective> dogs images are funny, why not |
20:58:53 | FromDiscord | <#!/rip/luke> Puppy always gives puppy errord |
20:58:56 | FromDiscord | <#!/rip/luke> (edit) "errord" => "errors" |
20:59:05 | FromDiscord | <#!/rip/luke> In reply to @Patitotective "dogs images are funny,": Lol I have that installed actually |
20:59:06 | FromDiscord | <!Patitotective> what errors do you expect? |
20:59:13 | FromDiscord | <#!/rip/luke> None 💀 |
20:59:16 | FromDiscord | <Elegantbeef> You know you can catch errors in Nim? |
20:59:40 | FromDiscord | <#!/rip/luke> You can do that in any language |
21:01:43 | FromDiscord | <neon_> In reply to @neon_ "on another note would": so uuhh would any compiler expert be able to elaborate on this... 😅 |
21:05:32 | FromDiscord | <Elegantbeef> I can only say the issue is with the generated C 😄 |
21:05:54 | FromDiscord | <neon_> but the file is a native nim file t.t |
21:06:25 | FromDiscord | <Elegantbeef> It imports nativesockets which means it's wrapping the C api |
21:08:10 | FromDiscord | <pruno> Is it possible to include .rc resources files like in C/C++ ? |
21:09:20 | FromDiscord | <Elegantbeef> You can just do `staticRead("myFile")` |
21:10:19 | FromDiscord | <Elegantbeef> I've never used rc files before so no clue what they solve |
21:10:21 | * | kenran quit (Quit: WeeChat info:version) |
21:10:42 | FromDiscord | <pruno> For example, the icon of the file |
21:11:40 | FromDiscord | <!Patitotective> `staticRead("the icon of the file.png")` |
21:12:06 | FromDiscord | <!Patitotective> then `loadTheIconOfTheFileFromMemory(data)` |
21:13:20 | FromDiscord | <pruno> Well, it won't work if i want to put an icon, which is what i'm trying to do 😅 |
21:13:36 | FromDiscord | <!Patitotective> why it won't work? |
21:13:47 | FromDiscord | <pruno> if i load it from memory |
21:13:50 | FromDiscord | <pruno> it's a runtime right ? |
21:14:03 | FromDiscord | <!Patitotective> loading yea, reading the file no |
21:14:13 | FromDiscord | <pruno> Yeah so there won't be an icon |
21:14:15 | FromDiscord | <pruno> Right ? |
21:14:56 | FromDiscord | <!Patitotective> i don't think i get what you're saying↵you want your exe to have an icon? |
21:15:07 | FromDiscord | <!Patitotective> or what icon are you talking about? |
21:15:08 | FromDiscord | <pruno> Yep |
21:15:16 | FromDiscord | <pruno> An icon for my exe |
21:15:30 | FromDiscord | <!Patitotective> then no idea how that is done |
21:15:52 | FromDiscord | <!Patitotective> isnt that a windows thing rather than a nim one? |
21:17:05 | FromDiscord | <pruno> Well since the .rsrc section is not only made for icons, wanted to know if there was a way to do it with nim's compiler |
21:17:45 | * | pch quit (Remote host closed the connection) |
21:18:32 | FromDiscord | <Elegantbeef> You'd just pass the same C compiler flags you'd do with the C compiler |
21:22:21 | FromDiscord | <!Patitotective> sent a code paste, see https://paste.rs/DVt |
21:22:53 | FromDiscord | <Elegantbeef> Sure |
21:24:20 | FromDiscord | <pruno> In reply to @Elegantbeef "You'd just pass the": Will try |
21:27:01 | FromDiscord | <!Patitotective> In reply to @Elegantbeef "Sure": but it has global variables :[[[[[[[[[[[[[[[[[↵that ruins everything |
21:27:16 | FromDiscord | <neon_> whats wrong with global variables? |
21:27:46 | FromDiscord | <!Patitotective> they're creepy little monserts |
21:27:49 | FromDiscord | <!Patitotective> (edit) "monserts" => "monters" |
21:27:54 | FromDiscord | <!Patitotective> (edit) "monters" => "mosnsert" |
21:27:57 | FromDiscord | <!Patitotective> (edit) "mosnsert" => "monsters" |
21:28:18 | FromDiscord | <!Patitotective> one day they'll stab you from behind |
21:29:06 | FromDiscord | <Elegantbeef> You dont need to use global variables |
21:29:18 | FromDiscord | <!Patitotective> :]]]]]]]]]]]]]]]] |
21:29:21 | FromDiscord | <Elegantbeef> You can pass the channel as a `ptr Channel` if you heap allocate it with `createShared` but it's even uglier |
21:29:33 | FromDiscord | <!Patitotective> oh |
21:31:16 | * | wallabra joined #nim |
21:37:05 | * | wallabra quit (Ping timeout: 244 seconds) |
21:43:50 | FromDiscord | <!Patitotective> this now smooth https://media.discordapp.net/attachments/371759389889003532/1003417731221172335/ImNimble-3.mp4 |
21:44:28 | FromDiscord | <neon_> In reply to @Patitotective "this now smooth": looks clean af |
21:44:37 | FromDiscord | <neon_> what are u using for the gui? |
21:45:02 | FromDiscord | <!Patitotective> imgui https://github.com/Patitotective/ImTemplate |
21:46:03 | FromDiscord | <#!/rip/luke> Instead of using downloadFile |
21:46:13 | FromDiscord | <#!/rip/luke> I used execShellCmd |
21:46:16 | FromDiscord | <#!/rip/luke> And wget |
21:46:28 | FromDiscord | <#!/rip/luke> It's not async which is good |
21:46:51 | FromDiscord | <Tuatarian> Anyone have any idea why linting with flycheck isn't working? Using spacemacs and nim-mode |
21:47:02 | FromDiscord | <!Patitotective> but it will only work if you have wget installed |
21:47:09 | FromDiscord | <Tuatarian> Am running on win10, happy to provide more info if needed |
21:48:03 | FromDiscord | <Elegantbeef> ... luke why not just `waitfor` the request? |
21:48:22 | FromDiscord | <#!/rip/luke> errors everywhere |
21:48:32 | FromDiscord | <Elegantbeef> What?! |
21:48:57 | FromDiscord | <#!/rip/luke> yup |
21:49:04 | FromDiscord | <!Patitotective> he says that and sends nothing |
21:49:08 | FromDiscord | <Elegantbeef> It's literally just `waitfor` instead of `await` |
21:50:24 | FromDiscord | <#!/rip/luke> In reply to @Patitotective "he says that and": Yup |
21:50:28 | FromDiscord | <#!/rip/luke> Give me a second |
21:57:32 | FromDiscord | <!Patitotective> what is better:↵- close and open the thread each time i want to run a process↵- keep the thread open and wait until it receives a process from a channel↵? |
21:57:32 | FromDiscord | <#!/rip/luke> Is it possible to export a var? |
21:57:36 | FromDiscord | <!Patitotective> yes |
21:57:50 | FromDiscord | <!Patitotective> not recommended at all |
22:00:33 | FromDiscord | <neon_> In reply to @Patitotective "what is better: -": probably opening and closing threads |
22:00:56 | FromDiscord | <neon_> if u open a thread and keep it waiting its still doing something even though that something is nothing |
22:01:15 | FromDiscord | <!Patitotective> 🤔 |
22:04:24 | * | oprypin quit (Quit: Bye) |
22:04:34 | * | oprypin joined #nim |
22:06:02 | FromDiscord | <Hi02Hi> sent a code paste, see https://play.nim-lang.org/#ix=46hY |
22:18:17 | FromDiscord | <neon_> okay so i figured out then im building for windows the nim library has a conflicting decleration of WSAStartup one taking NI16 (which is just a signed short int) and the other as WORD (which is just 2 bytes so pretty much the same thing) |
22:18:51 | FromDiscord | <hotdog> In reply to @Patitotective "what is better: -": Keeping thread open will be fine as long as it's not busy looping waiting on the channel (let it sleep) |
22:19:59 | FromDiscord | <!Patitotective> In reply to @hotdog "Keeping thread open will": im doing a while true and then blocking it with `channel.recv`↵is that letting it sleep? |
22:24:51 | * | wallabra joined #nim |
22:31:22 | FromDiscord | <hotdog> In reply to @Patitotective "im doing a while": Yeah |
22:34:49 | FromDiscord | <!Patitotective> In reply to @hotdog "Yeah": and what happens when i want want to finish it? how do i do that? |
22:36:50 | FromDiscord | <hotdog> In reply to @Patitotective "and what happens when": Send a message on the channel and tell it to quit |
22:36:59 | FromDiscord | <hotdog> It can break the loop if it receives it |
22:37:41 | FromDiscord | <hotdog> I usually structure channel messages as an object variant, where one branch is a quit instruction |
22:38:52 | FromDiscord | <!Patitotective> 👍 |
22:38:54 | FromDiscord | <!Patitotective> thanks |
22:39:12 | FromDiscord | <!Patitotective> btw how do i get the higest value of float32 that is not infinit? |
22:39:13 | FromDiscord | <!Patitotective> (edit) "infinit?" => "infinite?" |
22:43:08 | FromDiscord | <Prestige> float32.high |
22:43:33 | FromDiscord | <Prestige> huh or not |
22:43:33 | FromDiscord | <!Patitotective> sent a code paste, see https://play.nim-lang.org/#ix=46i9 |
22:43:58 | FromDiscord | <Prestige> Well that is just a const for `0x7FF0000000000000'f64` |
22:45:32 | FromDiscord | <!Patitotective> !eval echo float32.high / 10000000000000000000000000000000000000f32 |
22:45:36 | NimBot | inf |
22:45:43 | FromDiscord | <!Patitotective> nice |
22:46:46 | FromDiscord | <Prestige> Lol |
22:46:56 | FromDiscord | <Prestige> `9218868437227405312` in decimal |
22:47:47 | FromDiscord | <!Patitotective> i think ill just use `999999990` i dont think will ever fail with that number |
22:47:52 | FromDiscord | <!Patitotective> (edit) "`999999990`" => "`999999999`" |
22:49:05 | FromDiscord | <#!/rip/luke> Does Nim have an imgur api? |
22:49:17 | FromDiscord | <#!/rip/luke> Or anything where I can upload images |
22:50:13 | FromDiscord | <Prestige> I did it with curl, just needed an imgur application id. Just a POST |
22:50:18 | FromDiscord | <Prestige> `https://api.imgur.com/3/upload` |
22:50:26 | FromDiscord | <#!/rip/luke> Ok |
22:52:27 | FromDiscord | <Tuatarian> I can't seem to get linting working using nim-mode and flycheck/flymake on emacs |
22:52:30 | FromDiscord | <Tuatarian> anyone have any ideas? |
22:53:21 | FromDiscord | <!Patitotective> ~~vscode~~ |
22:55:49 | FromDiscord | <Tuatarian> lmao |
22:56:10 | FromDiscord | <Tuatarian> I went on a month long trip where I had nothing other than a laptop, switched to emacs for fun, and can't switch back |
22:56:25 | FromDiscord | <Tuatarian> once you get a taste of mouseless editing it's genuinely hard to go back to gui |
22:56:34 | FromDiscord | <Tuatarian> much easier to just use the keyboard |
22:56:40 | FromDiscord | <#!/rip/luke> In reply to @Avahe "`https://api.imgur.com/3/upload`": Where do I put the application id |
22:57:05 | FromDiscord | <Prestige> for curl? |
22:57:55 | FromDiscord | <#!/rip/luke> Yea |
22:58:13 | FromDiscord | <Prestige> sent a code paste, see https://play.nim-lang.org/#ix=46id |
22:58:23 | FromDiscord | <#!/rip/luke> Ohk |
22:58:44 | FromDiscord | <#!/rip/luke> Image is a local file right? |
22:59:01 | FromDiscord | <!Patitotective> In reply to @iWonderAboutTuatara "once you get a": ive trying neovim but its so fricking hard to memorize so many shortcuts and moving with hjkl is so confusing |
22:59:03 | FromDiscord | <Prestige> Yeah you'd pass in the path to the script |
22:59:18 | FromDiscord | <!Patitotective> (edit) "In reply to @iWonderAboutTuatara "once you get a": ive ... trying" added "been" |
22:59:30 | FromDiscord | <#!/rip/luke> Ok |
22:59:54 | FromDiscord | <Elegantbeef> So use the arrow keys↵(@!Patitotective) |
23:00:08 | FromDiscord | <!Patitotective> thats not neovim 💀 💀 |
23:01:14 | FromDiscord | <#!/rip/luke> In reply to @Patitotective "thats not neovim 💀": Yes it is |
23:01:17 | FromDiscord | <Prestige> It's...not neovim? |
23:01:30 | FromDiscord | <#!/rip/luke> Arrow keys work fine |
23:01:40 | FromDiscord | <Prestige> In reply to @Patitotective "ive been trying neovim": It's very worth it once you get the muscle memory |
23:02:06 | FromDiscord | <!Patitotective> In reply to @ripluke "Yes it is": theyre sooo far awayyy |
23:02:13 | FromDiscord | <#!/rip/luke> Ngl I memorized hjkl from the amount of wms that use it |
23:02:35 | FromDiscord | <Prestige> Don't use arrow keys if you're using neo/vim |
23:02:56 | FromDiscord | <!Patitotective> more like [neo]vim |
23:03:47 | FromDiscord | <#!/rip/luke> Wym |
23:04:39 | FromDiscord | <!Patitotective> In reply to @ripluke "Wym": that neo/vim means neo OR vim↵[neo]vim means vim and optionally neo |
23:04:56 | FromDiscord | <!Patitotective> (edit) "vim↵[neo]vim" => "vim↵while [neo]vim" |
23:13:19 | FromDiscord | <neon_> how do i override an internal library? |
23:15:11 | FromDiscord | <Elegantbeef> You can usse patchfile, but generally you dont |
23:18:04 | FromDiscord | <Tuatarian> In reply to @Patitotective "ive been trying neovim": hjkl you get used to after a couple hours |
23:18:07 | FromDiscord | <Tuatarian> the shortcuts are harder |
23:18:18 | FromDiscord | <Tuatarian> I would recommend spacemacs, it's a bit more intuitive in that sense |
23:18:31 | FromDiscord | <Tuatarian> and it has evil, so has many of the benefits of vim from modal editing |
23:18:31 | FromDiscord | <that_dude> In reply to @Patitotective "ive been trying neovim": I'd love to try to use vim more, but it doesn't work out with my keyboard layout |
23:18:36 | FromDiscord | <that_dude> It's kinda painful lol |
23:18:44 | FromDiscord | <Prestige> Wdym? |
23:18:50 | FromDiscord | <Tuatarian> yeah if you don't use qwerty you would have to rebind |
23:18:58 | FromDiscord | <that_dude> cv are up and down, jp are left and right iirc |
23:19:03 | FromDiscord | <Prestige> I use dvorak, and didn't rebind. It's fine |
23:19:09 | FromDiscord | <Tuatarian> where do they end up? |
23:19:27 | FromDiscord | <that_dude> I use dvorak too lol |
23:19:33 | FromDiscord | <Tuatarian> hjkl navigation with dvorak is not usable |
23:19:40 | FromDiscord | <Tuatarian> you would want to rebind them |
23:19:51 | FromDiscord | <Prestige> it's usable, I use it just fine. Rebinding would be a pain to do |
23:19:58 | FromDiscord | <Tuatarian> how? |
23:20:02 | FromDiscord | <Tuatarian> they're nowhere near one another |
23:20:10 | FromDiscord | <Prestige> They don't need to be |
23:20:28 | FromDiscord | <Tuatarian> I guess not |
23:20:37 | FromDiscord | <Tuatarian> yeah I guess they don't |
23:20:45 | FromDiscord | <Prestige> jk is right below left home row, h and l and right by the right home row |
23:21:09 | FromDiscord | <Tuatarian> yeah I guess it's fine |
23:21:15 | FromDiscord | <Tuatarian> seems like it would take a bit to get used to though |
23:21:25 | FromDiscord | <Prestige> just about as much as learning vim does, lol |
23:21:58 | FromDiscord | <that_dude> True |
23:29:04 | * | rockcavera joined #nim |
23:29:04 | * | rockcavera quit (Changing host) |
23:29:04 | * | rockcavera joined #nim |
23:31:20 | * | Lord_Nightmare quit (Quit: ZNC - http://znc.in) |
23:34:08 | * | Lord_Nightmare joined #nim |
23:41:51 | * | krux02 quit (Remote host closed the connection) |
23:45:23 | FromDiscord | <Prestige> I'm addicted to vim keybindings now, though. Can't use a "normal" text editor to save my life |
23:46:00 | madprops | i never liked vim keybindings |
23:46:20 | madprops | do you even use hjkl ? |
23:48:05 | madprops | also* |
23:48:26 | FromDiscord | <Prestige> Yep |
23:49:00 | FromDiscord | <!Patitotective> In reply to @Avahe "I'm addicted to vim": sublime has a plugin to behave exactly as neo vim |
23:52:02 | FromDiscord | <Prestige> You mean just the keybindins? |
23:52:05 | FromDiscord | <Prestige> (edit) "keybindins?" => "keybindings?" |
23:52:30 | FromDiscord | <!Patitotective> https://github.com/lunixbochs/actualvim |
23:53:11 | FromDiscord | <!Patitotective> > _Issues are closed_↵lmao |
23:53:33 | FromDiscord | <Prestige> Seems pointless lol |