<< 12-06-2020 >>

00:02:15*FromDiscord quit (Remote host closed the connection)
00:02:30*FromDiscord joined #nim
00:06:11*konradmb quit (Read error: Connection reset by peer)
00:06:49*konradmb joined #nim
00:08:32*Tyresc quit (Quit: WeeChat 2.9-dev)
00:09:46*konradmb2 joined #nim
00:09:59*konradmb quit (Read error: Connection reset by peer)
00:10:23*konradmb2 quit (Read error: Connection reset by peer)
00:11:29*konradmb joined #nim
00:13:20*konradmb2 joined #nim
00:13:20*konradmb quit (Read error: Connection reset by peer)
00:13:35*konradmb2 quit (Read error: Connection reset by peer)
00:13:49*konradmb2 joined #nim
00:15:41*konradmb2 quit (Read error: Connection reset by peer)
00:16:09*konradmb joined #nim
00:18:10*fredrikhr quit (Ping timeout: 256 seconds)
00:20:47*konradmb2 joined #nim
00:20:57*konradmb quit (Read error: Connection reset by peer)
00:21:22*konradmb2 quit (Read error: Connection reset by peer)
00:37:46*blueberrypie left #nim ("leaving")
00:39:41*Tlongir joined #nim
00:50:41*Tongir joined #nim
00:53:04*Tlongir quit (Ping timeout: 246 seconds)
00:56:16*fredrikhr joined #nim
01:12:14*r4vi quit (Ping timeout: 240 seconds)
01:21:22*surma quit (Ping timeout: 256 seconds)
01:22:45*r4vi joined #nim
01:24:22*surma joined #nim
01:28:08*fredrikhr quit (Read error: Connection reset by peer)
01:34:06*oddp quit (Ping timeout: 256 seconds)
01:34:46*brainbomb joined #nim
01:37:32*tiorock joined #nim
01:37:32*rockcavera is now known as Guest54017
01:37:32*tiorock quit (Changing host)
01:37:32*tiorock joined #nim
01:37:32*Guest54017 quit (Killed (hitchcock.freenode.net (Nickname regained by services)))
01:37:32*tiorock is now known as rockcavera
01:45:44FromDiscord<Technisha Circuit> How would i have NimScript and Nim interact with eachother?
01:54:56disruptekwhy?
01:56:26FromDiscord<Rika> why not?
01:56:33FromDiscord<Rika> not that id condone this
01:58:02FromDiscord<Elegant Beef> https://peterme.net/using-nimscript-as-a-configuration-language-embedding-nimscript-pt-1.html
01:58:10FromDiscord<Elegant Beef> Pmunch has the basis of what needs to be done
02:01:49*chemist69 quit (Ping timeout: 272 seconds)
02:03:31*chemist69 joined #nim
02:13:17*muffindrake quit (Ping timeout: 260 seconds)
02:15:21*muffindrake joined #nim
02:19:15FromDiscord<Technisha Circuit> Thanks!
02:29:51*bung joined #nim
02:31:16bung`switch(IFM_TYPE(ifm_active))` where is `IFM_TYPE` comming from ? I searched 2 repos contains this didnot see its definition.
02:42:29bungnever mind.
03:07:34*brainbomb quit (Quit: Leaving.)
03:09:19PrestigeJust got emojis working in nimdow's status bar: https://0x0.st/iV5p.png
03:10:03FromDiscord<Rika> congrats
03:10:37*tefter joined #nim
03:10:48*endragor joined #nim
03:11:04disruptekcute. what is that bottom-left?
03:11:06FromDiscord<Zed> looks good prestige
03:11:25PrestigeThanks :) disruptek that's cordless, a discord tui (Written in go)
03:12:12disruptekinteresting.
03:37:24*opDispatch quit (Quit: Konversation terminated!)
03:47:51*theelous3 quit (Read error: Connection reset by peer)
04:03:25*chemist69 quit (Ping timeout: 272 seconds)
04:04:00*chemist69 joined #nim
04:06:01*supakeen quit (Quit: WeeChat 2.8)
04:06:35*supakeen joined #nim
04:21:16voltistPrestige: Please tell me that is your Nim WM. It looks SOOOOO good
04:25:18FromDiscord<JSGrant> voltist: Considering how close that screenshot is to the image in the README -- I think that's a safe bet. :^)
04:26:20FromDiscord<Elegant Beef> yea it is nimdow
04:26:36FromDiscord<Elegant Beef> Speaking as prestiges advisor 😄
04:29:29*nsf joined #nim
04:29:49voltistWow looks neat
04:29:49FromDiscord<JSGrant> Re: That blog-link posted; Still really excited about the prospect of using Nimscript as a config-lang for a WM -- all I REALLY WANT isAwesomeWM but in Nim tbh. lol
04:30:09FromDiscord<Elegant Beef> Hey my WM looked ok too 😛
04:30:16FromDiscord<Elegant Beef> Just couldnt be arsed to continue
04:31:02FromDiscord<JSGrant> Your's looked actually practical & not my ideal, which is basically a "ricer's dream"
04:31:15FromDiscord<Elegant Beef> Huh
04:31:19FromDiscord<JSGrant> I'm a big fan of farting around / not getting actual work done ... lol
04:31:36FromDiscord<Elegant Beef> Ah
04:31:45voltistWhy do work when you can optimize your workflow instead?
04:32:01voltistIt makes work *later on* easier
04:32:18voltistDefi not procrastinating
04:32:51FromDiscord<Elegant Beef> Im now just using regolith linux which ships with a preconfigured i3-gaps
04:32:54FromDiscord<Elegant Beef> Cant be arsed
04:33:36FromDiscord<JSGrant> The largest 'codebase' I maintained ... for YEARS was my emacs config -- like it's a double-edged sword and one of those things where it can be very rewarding, but ultimately you get to a point of diminshing-returns but still have that urge to 'optimize more' and the like
04:33:45FromDiscord<JSGrant> I think it all depends on your personality
04:35:15FromDiscord<JSGrant> I'm mostly happy on GNOME3; I know there's some stuff that System76 are trying to do to add semi-complete tiling -- but after years of Stumpwm use, I don't miss it "that much" tbh
04:35:35FromDiscord<JSGrant> I don't even need to quater-tile that often in my day-to-day
04:35:55FromDiscord<Rika> still dont understand tiling wms
04:36:35FromDiscord<Elegant Beef> What about them?
04:36:39FromDiscord<Rika> i tried using something "similar enough that emulates the feeling" called split window lol, and i didnt like the experience, having anything smaller than "basically full screen" is very irritating
04:37:11FromDiscord<Rika> in fact i dont have any smaller-than-maximized windows right now
04:37:21FromDiscord<Elegant Beef> For me not having windows overlap and be created in a constant pattern is just nice, and cleaner to wokr
04:37:35FromDiscord<Elegant Beef> (edit) 'wokr' => 'work with'
04:37:55FromDiscord<Elegant Beef> Obvious exceptions with windows requesting to be floating
04:38:21FromDiscord<JSGrant> @Rika I mean, I don't buy that it's an inherently superior paradigm as some people like to position themselves as -- but the appeal is often more-so that they give you a lot more freedom in the size, location, and workspace /tag of the given window than traditional-wms rather than everything HAS to be tiled
04:39:01FromDiscord<Rika> doesnt kwin have that functionality as well
04:39:08FromDiscord<Rika> though that is a compositor
04:40:14FromDiscord<JSGrant> @Rika I mean, really any decent wm should be able to support the transformations / movement of a given window -- I think it's more-so the ease of use of manipulating them (often times even by scripting certain behaviors)
04:40:37FromDiscord<Rika> i dont know, i have no use for changing size other than auto-maxing windows
04:40:55FromDiscord<Rika> as ive said above i cant bear anything not maximised lol
04:42:02disrupteki plan to use my swayipc project to write a little app that tiles out-of-focus windows according to the golden ratio; windows i spend less time in will be smaller.
04:43:11disruptekiirc, Rika doesn't use a tiling wm.
04:43:32FromDiscord<JSGrant> @Rika I mean, in my Emacs / Stumpwm era; That's basically what I did most of the time -- have a bunch of maximized Emacs 'frames' and use it as a 'improved alt-tab' to some degree
04:44:15FromDiscord<Rika> i mean i do use splits but i only have max 1 split; 2 buffers visible
04:44:18*Tongir quit (Remote host closed the connection)
04:44:21FromDiscord<Rika> for vim
04:44:43*Tongir joined #nim
04:45:02disrupteki almost never use anything but 2up.
04:46:00disruptek1up is 3840x2160; no decoration or status bars or anything.
04:46:05FromDiscord<Rika> perhaps its because of my screen size lol
04:46:14FromDiscord<JSGrant> Dude, it was a problem for me back then ... before 'EXWM' was even a thing -- I was basically using Emacs as a WM in-itself already. Like I would honestly have a dedicated Emacs frame with like 20 irc channels split between it, a dedicated emms (media-player frontend) frame, a dedicated scheduling / notebook (org-mode) frame, etc, etc
04:46:32FromDiscord<Rika> screen's only 24 inches and i sit relatively far from my screen
04:46:48FromDiscord<Rika> emacs as an os :SonoYay:
04:46:52disrupteki hear coding on mobile is the new hotness.
04:47:12FromDiscord<Rika> @Techni
04:48:46FromDiscord<JSGrant> @Rika There was a time in my late-teens-early-20s where I spent a few months trying to roll out a 'desktop-environment' with Stumpwm & Emacs... and since then, I've basically nuked everything under the guise of "needing to be more productive"; Which of-course, I haven't
04:49:35FromDiscord<Rika> i'm on my late teens so :RengeShrug:
04:50:24FromDiscord<Rika> i dont know, im not on some epic to attain the highest productivity
04:51:28FromDiscord<Rika> i think i'm as productive as i want to be with my setup; i think what i do want to attain is less "productivity" more "lazy ways to do things", which does have a distinction as far as i know
04:53:05FromDiscord<JSGrant> @Rika Good; I wish I could shake my past-self sometimes -- idealism to the point I was at is not at-all productive and I see young-guys/gals fall into that all the time.
04:53:40FromDiscord<Rika> you sound like someone who's very, uh, hardworking. i'm in the other extreme
04:56:01FromDiscord<JSGrant> Well it's good at your age you seem to be able discern that that's not always the best virtue "working hard"; And generally the opposite often makes better programs (assuming they put enough consideraiton into 'not working hard') lol
04:56:26FromDiscord<Rika> yeah i dont know if i fall into that
04:56:34FromDiscord<Rika> some people say i do
04:57:09FromDiscord<Rika> also just discovered making an {.async.} `[]` and `[]=` proc wont work with async's await T_T
05:00:17FromDiscord<JSGrant> Yeah, let's get back to Nim in here-- lol ; Circling back to Nimscript I am curious what it's performance would be to something like Lua. I see them compared a lot, but haven't seen any benchmarks.
05:01:05FromDiscord<Rika> luajit will still prolly smack its ass
05:01:27FromDiscord<Rika> sounds like you should be the one to make the benchmarks 😛
05:02:35FromDiscord<Elegant Beef> Clearly we just need to convert the AST of the nimscript to a runtime callable AST 😄
05:03:42FromDiscord<JSGrant> _cant wait till we compete with smalltalk lol_
05:03:44FromDiscord<Elegant Beef> Hopefully it's clear im joking
05:03:57FromDiscord<JSGrant> unless ... ? :^)
05:04:36*bung_ joined #nim
05:05:08FromDiscord<JSGrant> @Rika I mean, I'm certainly interested in Nim as an avenue to learn game-dev / game-engine architecture -- so I think it'll eventually "naturally" come up to compare to the two
05:05:36FromDiscord<Elegant Beef> I mean pmunch mentioned something about loading nim files dynamically so idk
05:05:59FromDiscord<Elegant Beef> No need for the VM version if you can dynamically load code somehow
05:06:50Prestigevoltist: yep! That's my window manager
05:07:07*rockcavera quit (Remote host closed the connection)
05:07:09FromDiscord<JSGrant> @Elegant Beef Like in a way different from HCR, or?
05:07:16FromDiscord<Elegant Beef> Yea
05:07:30PrestigeA few things left for the status bar and it will be ready for a beta release
05:07:44*bung quit (Ping timeout: 256 seconds)
05:07:47FromDiscord<Elegant Beef> I dont know how, or the exact name, but he did mention it
05:09:03FromDiscord<JSGrant> I'm always caustiously optimistic / excited for any coad-reloaded-blackmagic
05:09:11FromDiscord<Rika> coad?
05:09:13FromDiscord<Rika> code?
05:09:19FromDiscord<JSGrant> yup, that one lol
05:09:31FromDiscord<Elegant Beef> coade?
05:09:37FromDiscord<Rika> toad
05:10:00FromDiscord<JSGrant> coade, you mean https://github.com/jameysharp/corrode ?
05:10:18FromDiscord<Rika> ~~such a fitting name~~
05:12:01FromDiscord<Zed> How small of a binary can nim compile to? wanting to try out some embedded stuff
05:12:16FromDiscord<Rika> ~~latest commit 2017, damn rip repo~~
05:12:35FromDiscord<Rika> that depends on a lot of factors @Zed
05:12:51FromDiscord<Rika> what do you need? a gc? etc.etc.
05:13:06FromDiscord<JSGrant> Honestly though one of the coolest bits for me about Common-Lisp was the fact things like CEPL [https://www.youtube.com/watch?v=a2tTpjGOhjw] were possible -- it's very exciting for me that there seems to be a real / general focus on in-instance code reloading in Nim
05:13:13FromDiscord<Zed> not exactly sure yet
05:13:14FromDiscord<Rika> of course, the more modules imported and the more procs used the larger the binary
05:13:28FromDiscord<Zed> im just trying to geta . fell with what i have to worl with
05:13:34FromDiscord<Rika> to... what?
05:13:37FromDiscord<Rika> oh
05:13:40FromDiscord<Zed> (edit) 'geta .' => 'get a' | 'worl' => 'work'
05:13:41FromDiscord<Rika> io see
05:13:43FromDiscord<Rika> (edit) 'io' => 'i'
05:13:48FromDiscord<Zed> (edit) 'fell' => 'feel'
05:14:12FromDiscord<Rika> well i remember there was something like a 5kb hello world in nim but that was super heavily stripped and optimized so lol
05:14:43FromDiscord<JSGrant> Oh, forgot timestamp ... https://youtu.be/a2tTpjGOhjw?t=433 lol
05:15:08FromDiscord<Zed> does nim compile the entire stdlib within a binary or just what it uses?
05:15:45FromDiscord<Rika> just what it uses afaik, nim has dead code elimination
05:16:39FromDiscord<Zed> ok that's good, gives me a bit of room
05:18:23FromDiscord<Elegant Beef> Nim is rather compact
05:22:43FromDiscord<Zed> does file count matter in a binary? say i had 5 files and compiled it is that binary going to be larger then a single long file with the contents of those 5 files?
05:24:02FromDiscord<InventorMatt> I think it'll treat it like it was all one file. I'm pretty sure him doesn't care about quantity of files when compiling
05:27:14*zama quit (Ping timeout: 256 seconds)
05:27:47FromDiscord<Rika> him lol
05:28:10*kenran joined #nim
05:32:18FromDiscord<Elegant Beef> The new Mascular language Him
05:33:10FromDiscord<JSGrant> I was thinking more of the 'Powerpuff Girls' Villian
05:44:17*marnix joined #nim
05:44:27FromDiscord<InventorMatt> nim version 1.3 will be renamed to him
05:44:48FromDiscord<Rika> for a moment the word "mascular" wasnt in my mind's dictionary
05:46:56*solitudesf joined #nim
06:07:03*tdc joined #nim
06:08:37*dddddd quit (Remote host closed the connection)
06:37:36*tefter quit (Quit: WeeChat 2.8)
06:55:26*PMunch joined #nim
06:59:07FromDiscord<Zed> Hey Prestige, How many completions does your coc config show?
07:34:19*Vladar joined #nim
07:34:39*fredrikhr joined #nim
08:24:19FromDiscord<exelotl> @Zed I'm using Nim to develop for GBA, it's very good for it!
08:24:40FromDiscord<Zed> Game boy?
08:24:40FromDiscord<mratsim> @Zed https://hookrace.net/blog/nim-binary-size/
08:25:09FromDiscord<exelotl> Hello world is 15kb, including the font data, text rendering library, etc.
08:25:22FromDiscord<Zed> Thanks @mratsim I'll check it out
08:26:19livcdmratsim: excited about the QML endeavor
08:26:26FromDiscord<Zed> That's pretty small @exelotl
08:26:48FromDiscord<Zed> Are you doing an optimisations in your code or letting him do it all?
08:26:50livcdmratsim: did you look at any other alternatives?
08:27:04FromDiscord<Zed> Do you have a git repo?
08:27:23FromDiscord<Zed> (edit) 'him' => 'nim'
08:28:22FromDiscord<exelotl> https://github.com/exelotl/natu/blob/master/examples/hello_world/config.nims
08:29:36FromDiscord<mratsim> @livcd, the original desktop client was Typescript + React + QT so reusing QT is better
08:29:43FromDiscord<Zed> Thanks, I'll be back with questions lol
08:30:01FromDiscord<mratsim> we can't change everything and I guess changing to Nim is already quite a big change for a Go/Clojure/Typescript team
08:30:21FromDiscord<mratsim> i.e. it's completely different people from the Nimbus team, they have no prior Nim experience
08:30:42FromDiscord<exelotl> Importantly I'm using --os:standalone --gc:none and various flags such as --checks:off --stackTrace:off (though I think some of these could be replaced by a single -d:danger ? If someone knows please tell me lol)
08:31:20*Vladar quit (Quit: Leaving)
08:31:40FromDiscord<mratsim> put them in a nim.cfg so you don't have to type them all the time
08:32:04FromDiscord<mratsim> in Weave automatically puts threads:on for example: https://github.com/mratsim/weave/blob/master/nim.cfg
08:32:22FromDiscord<exelotl> Me? They're in a config.nims :P
08:32:32FromDiscord<mratsim> ah
08:32:32FromDiscord<mratsim> I see
08:33:01FromDiscord<mratsim> One day I'll finish my SNES emulator :p
08:33:22FromDiscord<exelotl> Works out super nicely because I can do `nim build` and it compiles and then uses extra tools to strip the elf and fix the GBA header
08:34:00FromDiscord<exelotl> Previously I was using a makefile to do all that, and just using nim with --compileOnly x)
08:36:28FromDiscord<Zachary Carter> @JSGrant - I already have shader reflection and code hot reloading in my engine
08:36:32FromDiscord<Zachary Carter> working on asset hot reloading now
08:36:37livcdmratsim: ahh makes sense
08:37:42FromDiscord<exelotl> @Zed if you have a slightly beefier platform and want to have access to more language features such as seqs, strings, ref objects (and anything else that requires heap allocation), you can try --gc:arc --os:any instead
08:40:11FromDiscord<exelotl> For GBA that stuff is overkill, performance is crucial so I'm best off with static allocation and avoiding most of the standard library
08:45:28FromDiscord<exelotl> A nice thing is though, you can still use all those high level features in macros at compile-time. So if you ever need to 'write code that generates code' (pretty useful on embedded), it's not particularly harder than if you were doing so for a desktop program
08:54:55FromDiscord<mratsim> oh yeah I love my staticFor macros
09:00:16Zevvtell us about your staticFor macros mratsim
09:07:37*rnrwashere joined #nim
09:08:41*kungtotte quit (Ping timeout: 265 seconds)
09:08:59*rnrwashere quit (Client Quit)
09:09:56*rnrwashere joined #nim
09:11:37*neceve_ joined #nim
09:11:41*rnrwashere quit (Client Quit)
09:13:20*oddp joined #nim
09:17:38FromDiscord<mratsim> I wrote more for loop macros than RNGs :p
09:18:46FromDiscord<mratsim> sent a long message, see https://discordapp.com/channels/371759389889003530/371759389889003532/720930066816565309
09:19:35FromDiscord<mratsim> anyway, staticFor is quite simple and quite useful: https://github.com/mratsim/constantine/blob/master/helpers/static_for.nim#L3-L42↵↵Especially in bigint
09:20:39FromDiscord<mratsim> in bigint you need to to an add with carry, in the core loop, but with a regular for, incrementing the counter will interact with the carry flag as well and would lead to bad code where the internal loop needs to save and restore the carry
09:20:55FromDiscord<mratsim> for simple loops, the compiler will unroll to avoid that
09:21:14FromDiscord<mratsim> but more complex loops, like bigint multiplication will still suffer
09:22:18FromDiscord<mratsim> My other use cases is for testing types that depends on static int or static enums, you can't use a runtime for loop for that
09:22:39Zevvah right
09:23:32ZevvI will steal that I think
09:24:25FromDiscord<mratsim> I didn't use the "staticFor i in a ..< b:" because I couldn't be bothered with dealing with Nim early symbol resolution
09:25:05FromDiscord<mratsim> the `in` keywords gets rewritten to ``contains`` in a generic or static proc
09:25:22FromDiscord<mratsim> so you need to deal with that or rebuild the untyped AST
09:25:33FromDiscord<mratsim> - rebuild untyped AST canb e done like this: https://github.com/mratsim/weave/blob/master/weave/parallel_macros.nim#L19-L71
09:27:14FromDiscord<mratsim> dealing with contains: https://github.com/numforge/loop-fusion/blob/master/loopfusion.nim#L308-L321↵or https://github.com/numforge/laser/blob/master/laser/strided_iteration/foreach_common.nim#L30-L45
09:27:55Zevvdude.
09:27:57FromDiscord<mratsim> I also had an old forLoopStmt rewriting macros somewhere
09:28:35*vikfret joined #nim
09:28:44FromDiscord<mratsim> here: https://github.com/status-im/nim-stint/pull/54/files#diff-03195743eb6e5c08e17657455937d697R118
09:28:47disbotUint - allow compile-time evaluation for all procs ; snippet at 12https://play.nim-lang.org/#ix=2oYj
09:29:00Zevvit's pretty cool that this is even at all possible, but isn't it all just fragile?
09:29:47FromDiscord<mratsim> the one in Weave is pretty well tested
09:30:10FromDiscord<mratsim> in static proc, in generic proc, in normal proc ....
09:30:25FromDiscord<mratsim> the one in constantine is tested in static/generic/normal and in the VM as well
09:32:36FromDiscord<mratsim> i.e. I would recommend either one of them: rebuild untyped from the typed AST (i;e. retransform contains back to "in") or just forget the "for i in a ..< b" syntax for simplicity
09:36:21Zevvthe latter :)
09:47:39Araqso ... what shall I talk about at NimConf?
09:47:55Yardanicoit's obvious isn't it :P
09:48:19Araqarc/orc?
09:48:52Yardanicowell yeah most people would be interested in that I guess, and how will it affect their code
09:54:06FromDiscord<Zachary Carter> I'd be interested specifically in how arc makes writing multithreaded code in Nim easier
09:54:46Yardanicothreading with arc still has some bugs left though :P
09:54:54Yardanicobut yeah, it would be nice to talk about that
09:55:41FromGitter<zetashift> could always talk about yourself Araq, Q&A with the BDFL
09:56:23AraqYardanico, which bugs?
09:58:02FromDiscord<mratsim> I would be interested in DrNim and also the schedule, because it may seem like you are going all over the place
09:58:07Yardanico https://github.com/nim-lang/Nim/issues/13936 and https://github.com/nim-lang/Nim/issues/13935 still hangs or crashes for me on linux
09:58:08disbotSIGSEV encountered when creating threads in a loop w/ --gc:arc ; snippet at 12https://play.nim-lang.org/#ix=2ioe
09:58:12FromDiscord<mratsim> and openarray as values
09:58:32FromDiscord<Zachary Carter> does schedule == roadmap?
09:58:50FromDiscord<mratsim> this: https://github.com/nim-lang/RFCs/milestone/1
09:58:59FromDiscord<mratsim> we are 6 months in 2020
09:59:29Araq6 months left :-)
09:59:36FromDiscord<mratsim> if DrNim is for 2020 it should be added in
10:00:01Araqit's not for the reason that you just noticed
10:02:55*abm joined #nim
10:12:21FromDiscord<exelotl> Will openarrays as values mean I can do e.g.
10:12:31FromDiscord<exelotl> sent a code paste, see http://ix.io/2oYo
10:12:47FromDiscord<exelotl> and the generated C structure will be roughly the same?
10:21:58*haxscramper joined #nim
10:23:38FromDiscord<Arend | ᛗᚨᚢᚱᛁᛖᛋ> so is the whole borrow checker thing off the table for Nim?
10:23:53FromDiscord<Rika> ? what do you mean
10:23:59*monokrom joined #nim
10:24:51*krux02 joined #nim
10:25:58*xet7 quit (Quit: Leaving)
10:26:50*xet7 joined #nim
10:28:39*NimBot joined #nim
10:29:31*krux02 quit (Remote host closed the connection)
10:40:37Yardanico@Arend ^
10:43:40*lritter joined #nim
10:44:54Araqexelotl: exactly
10:46:51FromDiscord<exelotl> Epic, looking forward to that :D
10:59:53FromDiscord<Recruit_main707> thats really cool
11:13:43*Tlanger joined #nim
11:16:04*Tongir quit (Ping timeout: 256 seconds)
11:22:56*opal quit (Remote host closed the connection)
11:24:36*opal joined #nim
11:29:48skrylar[m]so websockets are kind of annoying
11:39:42*muffindrake quit (Ping timeout: 260 seconds)
11:41:33*muffindrake joined #nim
11:43:33skrylar[m]still poking around with mudstuff. but a lot of people are doing these fancy web clients now, and you need websocket for that, so had to go fiddle around with doing websocket proxying with nim/async
11:49:57Zevvwell, if you abstract them away enough, websockets can be pretty ok
11:50:12Zevvit's just like machine language, that's pretty annoying as well
11:51:20skrylar[m]eh. there's some stupid things like 'masking' where they run a useless xor cipher over text, including text over ssl
11:51:59skrylar[m]the new-ish thing where you can gzip packets is kind of neat
11:52:38Zevvyeah that masking is funny. Any I always wondered what the hell that magic key in the handshake is for
11:52:41CcxWrkThat particular thing is not there to encrypt but to prevent attacker-chosen plaintext attacks against non-websocket protocols FWIU.
11:52:49*tane joined #nim
11:52:55AraqI wonder how often we end up with compression on top of compression
11:54:02skrylar[m]well i had been looking in to running zlib via wasm before i read you can just do it through a flag
11:54:15*CcxWrk .o( Or was that WebRTC? I think I'm slightly lost in this mess. )
11:54:23skrylar[m]muds have this MCCP thing where you do a telnet negociation and then it compresses server output; some of the bigger mu*s it helps a lot
11:55:56ZevvI recenly made this for my collueges when I found out they did three layers of encryption: http://zevv.nl/div/dawg.jpg
11:56:12PMunchHaha :P
11:56:20skrylar[m]that can be okay if the algs are different
11:56:27Zevvand they still did it just plain wrong. The keys living in the wrong place
11:56:46ZevvNow they're rolling out 500K units, all with the same SSL key/cert pair
11:56:52Zevvbecause IKE is hard
11:56:59skrylar[m]hmmh
11:57:06skrylar[m]client certs i guess
11:57:12Zevvsure, but still
11:57:28skrylar[m]server-wise of course it would be the same pair :laugh:
11:57:51ZevvHow do these get provisioned? I don't understand enough about encryption, so I try to follow a few simple rules to be on the same side. #1: private keys should never leave a device or be sent over the network.
11:58:32skrylar[m]it really varies
11:58:35Zevv#2: encrypt and store stuff so that I as the engineer do not know how I would access my clients data. Because if I can do this, someone with bad intentions can as well.
11:58:57Zevvsure, it all varies.
11:59:18skrylar[m]i've always kinda wanted to play with Vault but i never find the care to
12:00:30skrylar[m]though i did mess with client cert auth exactly once if i recall; i had a user in a tiny community who had a 0% chance to remember his password and we looked in to just getting him a browser cert
12:01:11skrylar[m]well and openvpn requires you to mint new keys because the cn on the key is the name on the server
12:01:26bung_can I require a js module as proc ? currently it is JsObject
12:06:02*supakeen quit (Quit: WeeChat 2.8)
12:06:35*supakeen joined #nim
12:12:13*kenran quit (Ping timeout: 264 seconds)
12:22:20*haxscramper quit (Remote host closed the connection)
12:22:50*Senny quit (Ping timeout: 260 seconds)
12:28:27*rockcavera joined #nim
12:39:48FromDiscord<Technisha Circuit> Why as a proc bung?
12:40:29FromDiscord<Technisha Circuit> Is there ant specific reason for needing it as a proc?
12:42:07FromDiscord<Technisha Circuit> (edit) 'ant' => 'a'
12:42:49alehander92_you can cast it
12:43:29alehander92_using `proc jsAsFunction*[T](handler: js): T {.importcpp: "#".}`
12:43:50alehander92_sorry, `handler: JsObject`
12:44:08FromDiscord<djazz> is it possible to "unexport" a symbol?
12:44:12alehander92_and `jsAsFunction[proc: myrettype](..)`
12:44:34alehander92_maybe normal `cast` works? i am not sure why i needed this helper but try
12:45:39*Vladar joined #nim
12:47:38bung_Error: cannot instantiate: 'T'
12:47:46bung_proc jsAsFunction*[T](handler: js): T {.importcpp: "#".}
12:47:47bung_var Container = require("@material-ui/core/Container").default.jsAsFunction
12:48:54bung_Technisha Circuit it's normal module exports just one function
12:54:12alehander92_bung
12:54:15alehander92_please read what write
12:56:07bung_oh , I see
12:58:26alehander92_sorry man!
12:58:33alehander92_so its easy
12:58:53bung_you found another way ?
12:59:00alehander92_basically this error
12:59:08alehander92_happens when you have a generic function
12:59:16alehander92_and it can't understand
12:59:20alehander92_what is the actual type
12:59:42alehander92_if your generic T *only* appears in return
13:00:00alehander92_nim can't guess what T is i think
13:00:09alehander92_so you need to *always* write it
13:00:13alehander92_and they way you do is
13:00:15bung_I use your syntax it works
13:00:25alehander92_functionname[mytype](arg)
13:00:29alehander92_yeah thats cool
13:00:35alehander92_but try to understand it
13:00:38alehander92_why it happens
13:01:02alehander92_e.g. if you define proc a(b: int): T = T.default
13:01:07alehander92_you cant call a(2)
13:01:17alehander92_you need to call a[string](2) or a[int](2)
13:02:11bung_thanks ! got it
13:02:34alehander92_but if its proc a[T](b: T): T = b
13:02:44alehander92_then you can do a(2) because T appears in *args(
13:02:58alehander92_ok man
13:04:14*PMunch quit (Quit: leaving)
13:05:41bung_am thinking it could be as template
13:06:23*Senny joined #nim
13:08:00FromDiscord<djazz> working on a nim module for libmpv, the MPV media player (which can be embedded and used with an OpenGL context) https://github.com/daniel-j/nim-mpv/blob/master/examples/simple.nim
13:08:08FromDiscord<djazz> using nimterop
13:09:30FromDiscord<djazz> so if you want to make a game and render some video with hardware acceleration, go ahead 😄
13:15:05*nsf quit (Quit: WeeChat 2.8)
13:17:00FromDiscord<djazz> Atleast that is what I am going to do
13:17:48*Vladar quit (Quit: Leaving)
13:25:13FromDiscord<mratsim> MPV is GPL so no one would use MPV for a closed source game
13:25:29*dddddd joined #nim
13:25:55team\andinusi'm setting up nimforum
13:27:36team\andinushttps://paste.debian.net/1151756/
13:28:05team\andinus^ running "nimble devdb" fails with this, any idea whats wrong?
13:31:06alehander92_bung_ maybe! not sure
13:48:09*nekits quit (Quit: The Lounge - https://thelounge.chat)
13:49:42*nekits joined #nim
13:55:14Araqteam\andinus: you need to use some special nimble command
13:55:20Araqbut I forgot which one
13:55:44Araq"nimble --latest" or "nimble --devel", no idea, sorry
13:57:19FromGitter<phdye> Has anyone been successful using -d:useNimRtl with nimpy ?
13:58:53FromGitter<phdye> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5ee38a1da85de303940c9639]
14:01:02FromGitter<phdye> Or is there another forum where I should ask nimpy questions ?
14:02:19FromDiscord<Zachary Carter> why are you using `-d:useNimRtl`?
14:05:58FromGitter<phdye> Because I am building multiple shared libraries which I wish to use together.
14:07:44FromGitter<kaushalmodi> @phdye I stumbled upon a similar situation where I wanted to used multiple Nim projects compiled as .so libs to be used with a C tool
14:08:00*kenran joined #nim
14:08:14FromGitter<kaushalmodi> I ended up have a wrapper.nim in which I imported all those separate Nim projects and then just compiling one .so for that wrapper.nim
14:08:39FromGitter<kaushalmodi> To confirm, `nm wrapper.so | rg '\bT '` will show all the procs I intended to export from all those imported libs
14:08:40FromDiscord<Zachary Carter> okay - what GC are you using phdye?
14:09:40FromDiscord<Zachary Carter> and what that error means is - nimpy wasn't compiled with those compile options
14:11:53FromGitter<phdye> Ah, that would make perfect sense. I need to rebuild nimpy with the same options.
14:12:05FromDiscord<Zachary Carter> yup
14:12:51FromGitter<phdye> And with respect to GC, I was using the default for now.
14:13:25*kenran quit (Ping timeout: 264 seconds)
14:18:58FromGitter<phdye> That doesn't appear to be the issue. nimpy is being compiled based on the import into my file. There are no binaries under ~/.nimble/pkgs/nimpy-0.1.0.
14:19:37FromDiscord<Zachary Carter> what about ~/.nimble/bin ?
14:19:44FromDiscord<Zachary Carter> I think that's where nimble sticks binaries anyway
14:20:05FromDiscord<Zachary Carter> I mean - I imagine it's being compiled with your project if it is a library
14:20:26FromDiscord<Zachary Carter> and all I can attest to is what the error is reporting happened - but I don't know why it's doing what it's doing
14:21:38FromDiscord<Zachary Carter> it's happening here it looks like: https://github.com/yglukhov/nimpy/blob/db7d1250cc014541070ec9bd5c1858da5a0f1ecc/nimpy.nim#L217-L220
14:22:11FromGitter<phdye> No binaries under ~/.nimble : ⏎ ⏎ ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5ee38f9224a3382d5d61d316]
14:23:12FromDiscord<Zachary Carter> well - I have no idea - maybe try to compile one of the nimpy tests with those options and see if the same error gets thrown
14:23:24FromDiscord<Zachary Carter> I can't see your code so it's hard for me to try to reproduce
14:26:05FromGitter<phdye> Code is now simply:
14:26:13FromGitter<phdye> ```import nimpy```
14:26:27FromGitter<phdye> just the one line
14:28:26FromGitter<phdye> Based on gc_common.nim, it seems that threadType is not declared.
14:30:00FromDiscord<Zachary Carter> maybe file an issue in the nimpy repo?
14:30:24FromDiscord<Zachary Carter> or ping Yuriy - I think he is in gitter or irc or something
14:31:23alehander92_open an issue
14:31:39alehander92_he maintains the repo very well
14:32:27bung_https://github.com/vitejs/vite
14:32:46FromGitter<phdye> I shall. Thank you.
14:32:48bung_everybody building new bundle tool..
14:33:04FromDiscord<Zachary Carter> joy more JS bundlers
14:33:14FromDiscord<Zachary Carter> /sarcasm
14:34:27bung_if not js as default browser language maybe no need these bundle tools.
14:34:42FromDiscord<Zachary Carter> they're not needed period
14:34:50FromDiscord<Zachary Carter> regardless of JS
14:35:06FromDiscord<Zachary Carter> JS doesn't need to be built
14:35:53bung_I kind of tired about the frontend ecosystem
14:35:54FromDiscord<Zachary Carter> I think JS devs just get bored and feel useless so they invent crap to make their lives more difficult
14:36:32FromDiscord<Zachary Carter> ah! now you're getting int bung_!
14:37:31bung_sometimes I feel am not programing but configuring, manage resources.
14:38:08FromDiscord<Zachary Carter> yeah, that's pretty accurate
14:38:49bung_the most horibble thing is change site to this looking or that looking.
14:39:35FromDiscord<mratsim> frontend dev :/
14:40:35bung_someone feel like that looking , another feel like another looking , that's sad.
14:41:01FromDiscord<mratsim> I know that from powerpoint presentations :p
14:41:11FromDiscord<Zachary Carter> all of web dev sucks - backend as well as frontend
14:41:11FromDiscord<mratsim> this red should be vermillion or Fushia
14:41:35FromDiscord<Zachary Carter> especially when you work with people that don't have much experience
14:41:48FromDiscord<Zachary Carter> and love buzz words
14:43:05bung_sometimes they just found another site, says lets change to this style, one sentence your week work gone.
14:44:53FromDiscord<mratsim> charge more so that they think twice efore asking for a style
14:45:28bung_ok,I cant say more.
14:46:23bung_idk, some kind of power, maybe I just need more power avoiding this kind of thing.
14:47:24bung_backend dev seems more pure to me.
14:49:27FromDiscord<mratsim> In the JS world, one day it's MySQL, another day it's Mongo, another day Cassandra, and then Puppet, Marionnette, Vagrant, Kubernetes :p
14:57:59FromDiscord<Zachary Carter> IMO just get out of web dev all together if possible
14:58:20FromDiscord<Zachary Carter> backend isn't much better
14:59:05FromDiscord<Zachary Carter> it's not that it can't be done well and made exciting
14:59:21FromDiscord<Zachary Carter> it's that most of the time you have someone who doesn't know much about what their talking about making decisions and your life hell
15:00:19FromDiscord<Zachary Carter> I think if you get into systems programming or game dev or go work for an amazon, microsoft, google, etc...
15:00:26FromDiscord<Zachary Carter> you're less likely to encounter those frustrations
15:00:32FromDiscord<Zachary Carter> but I mean -t here will always be some no matter what
15:00:44FromDiscord<Zachary Carter> I think webdev just has the most of them
15:01:27bung_maybe just because people can easy get into webdev
15:01:52FromDiscord<Zachary Carter> yup that is definitely one factor - low barrier for entry
15:02:00FromDiscord<Zachary Carter> and there are a lot more webdev jobs
15:02:38FromGitter<phdye> Always tons of B.S. in nearly every working environment. Managers do not get to where they are because they are technically competent. That is entirely tangential.
15:03:17FromDiscord<Zachary Carter> well some moreso than others for sure
15:03:25FromDiscord<Zachary Carter> I ran into very little at Frogmind
15:04:45FromGitter<phdye> FYI: with respect to nimpy and -d:useNimRtl, it was a bug in nimpy. I'm submitting a PR.
15:05:15FromDiscord<Zachary Carter> nice
15:15:46Araqphdye: please also push for --gc:arc working with nimpy (if it doesn't work already)
15:21:49*marnix quit (Ping timeout: 265 seconds)
15:28:06*mwbrown quit (Ping timeout: 265 seconds)
15:29:26FromDiscord<mratsim> that would be nice, not to have to manage PyObject_incref and friends
15:30:15*mwbrown joined #nim
15:39:01disruptekzacharycarter: dude, did you see that both bethesda and take two are hiring?
15:40:55*endragor quit (Remote host closed the connection)
15:41:26*endragor joined #nim
15:46:25*endragor quit (Ping timeout: 264 seconds)
15:47:19*endragor joined #nim
15:52:37FromDiscord<Zachary Carter> I've known Bethesda has been hiring for a while - not sure I'd enjoy working there
15:52:40FromDiscord<Zachary Carter> I should check out take two
15:52:55*a_chou joined #nim
15:53:01*endragor quit (Ping timeout: 264 seconds)
15:53:12skrylar[m]i used arc for a while, but then the compiler went in to a death spiral with my postbox macros in conjunction with async
15:53:13FromDiscord<Zachary Carter> One of my former bosses is starting a new UK based studio and said that if they get funded he wants to bring me on board
15:53:20FromDiscord<Zachary Carter> they're talking to investors now - so hopefully that works out
15:53:44FromDiscord<Zachary Carter> well that's why there's `orc` now
15:53:46skrylar[m]the polite way to phrase begging for money
15:54:36skrylar[m]i don't see how orc has anything to do with the compiler crashing. i don't have circuitous references. actually, skpostbox was designed for arc with weak references
15:54:37FromDiscord<Zachary Carter> I mean, it's not like it's an uncommon practice
15:54:47FromDiscord<Zachary Carter> yeah but async does
15:55:08skrylar[m]beg for money on the street, you're a louse and a vagrant. beg for money in a suit, it's entertaining series a funding
15:55:51FromGitter<bung87> lol
15:57:16skrylar[m]anyway nothing against your bossman. i just enjoy refusing euphemisms.
16:04:46planetis[m]hi, does the align pragma doesn't work with uncheckedarray, right?
16:08:16planetis[m]I have a field declared as ``data {.align(16).}: UncheckedArray[T]`` and when I try to allocate the object, gcc errors "flexible array member in a struct with no named members"
16:08:26*a_chou quit (Quit: a_chou)
16:08:42FromDiscord<Recruit_main707> it should be ptr UncheckedArray iirc
16:08:49FromDiscord<Recruit_main707> nothing to do with align
16:08:55*kenran joined #nim
16:08:58planetis[m]doesn't matter
16:09:10planetis[m]its the last member
16:09:40planetis[m]my question is related with https://github.com/nim-lang/Nim/issues/14642
16:09:42disbotseq[T] does not respect alignof(T) ; snippet at 12https://play.nim-lang.org/#ix=2oZK
16:11:06*endragor joined #nim
16:13:34*kenran quit (Ping timeout: 246 seconds)
16:18:21*bung_ quit (Quit: Lost terminal)
16:25:19*nikita` quit ()
16:27:43planetis[m]you are right though, thats the error you would get if you try to put an uncheckedarray anywhere but the end of the struct
16:29:45planetis[m]wow, I put an dummy field in front and it compiles!
16:31:38*Vladar joined #nim
16:33:05*nerthus joined #nim
16:33:16*nikita` joined #nim
16:37:46*nerthus quit (Quit: ZNC 1.8.0 - https://znc.in)
16:41:00team\andinusAraq: both options say unknown option
16:41:19team\andinusis there a channel for nimforum?
16:41:29Araqteam\andinus: ping dom96
16:41:54team\andinusok thanks
16:45:24*nerthus joined #nim
16:46:27*tane quit (Quit: Leaving)
17:04:01planetis[m]does nim's allocator always align by 16 btw?
17:04:26Araqyes, since 1.2, I think
17:19:26*nikita` quit (Quit: leaving)
17:27:59disruptekeverybody is the world is bent.
17:30:25*vikfret quit (Quit: Leaving)
17:35:55*nikita` joined #nim
17:38:49*krux02 joined #nim
17:42:37disruptekAraq: a tuple result turns into "Result" but then in the proc body we refer to it as `result`. what gives?
17:47:17*bung joined #nim
18:09:45*kenran joined #nim
18:14:33*kenran quit (Ping timeout: 258 seconds)
18:51:56*kenran joined #nim
18:54:55*abm quit (Ping timeout: 246 seconds)
18:57:23*bung quit (Ping timeout: 265 seconds)
18:57:49*kenran quit (Ping timeout: 264 seconds)
18:59:41Araqdisruptek: I don't understand the question
19:00:12disruptekwhen return type is invalid, we add a Result param (not "result").
19:01:50skrylar[m]woo. ws->tcp proxy works
19:02:53*kenran joined #nim
19:26:30*rockcavera quit (Remote host closed the connection)
19:29:43*bung joined #nim
19:34:24*bung quit (Ping timeout: 256 seconds)
19:38:10FromDiscord<Recruit_main707> might have asked his before, but why setting --header doesnt output the header at the directory instead of in the cache?
19:39:08*Trustable joined #nim
19:45:48FromDiscord<KrispPurg> When I await for the body in httpclient, I sometimes get `Error: unhandled exception: No handles or timers registered in dispatcher. [ValueError]`.
19:46:05FromDiscord<KrispPurg> Any solutions to prevent this?
19:57:39*brainbomb joined #nim
20:02:02*vicfred joined #nim
20:04:04*vikfret joined #nim
20:11:24dom96KrispPurg: are you using waitFor in async procs?
20:24:10*nikita` quit (Quit: leaving)
20:24:44FromDiscord<KrispPurg> no, I'm using await.
20:36:03*nikita` joined #nim
20:40:08*kenran quit (Ping timeout: 256 seconds)
21:07:34*neceve_ quit (Ping timeout: 240 seconds)
21:17:57*bung joined #nim
21:19:00*nikita` quit (Ping timeout: 265 seconds)
21:22:52*bung quit (Ping timeout: 265 seconds)
21:30:34*tdc quit (Ping timeout: 256 seconds)
21:34:34*solitudesf quit (Ping timeout: 240 seconds)
21:34:47Araqhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1881r0.html#make-functions-nodiscard-by-default C++ is turning into Nim ;-)
21:40:05FromDiscord<--HA--> sent a long message, see http://ix.io/2p1e
21:50:44*lritter quit (Quit: Leaving)
22:05:37Araqstrange thing, --HA--
22:18:54*Vladar quit (Quit: Leaving)
22:31:43*NimBot joined #nim
22:32:14*krux02 quit (Remote host closed the connection)
22:40:02zedeusI'm working on fixing httpbeast's crosstalk issue that causes serious security issues. It's all working now but some request futures never complete, leading to stalled sockets
22:40:08zedeusHow would I go about troubleshooting that?
22:42:29FromDiscord<--HA--> I tried to make the most simple example I could to show the behaviour but in the example it worked. That helped me see now that it is not writeFile that is the problem, writeFile is just where I notice the error. It is files being opened in the library I'm using. I'll investigate further.
22:46:34*fredrikhr quit (Ping timeout: 256 seconds)
22:48:42*Trustable quit (Remote host closed the connection)
22:52:32*bung joined #nim
22:53:59FromDiscord<--HA--> I was able to figure it out. Sorry for the unneccessary messages, I tried for hours without success but putting it here helped. So, thank you for listening 😉 it's resolved now.
22:56:34*bung quit (Ping timeout: 240 seconds)
23:35:37FromDiscord<Technisha Circuit> How do i sleep for a few seconds in Nim?
23:35:50FromDiscord<Technisha Circuit> I also need to make sure it doesn't block the rest of my bot
23:35:50zedeuscall sleep
23:35:55zedeuscall sleepAsync
23:36:00FromDiscord<Technisha Circuit> Thanks!
23:36:13FromDiscord<Technisha Circuit> How would i do it in a loop that's not in an asynchronous proc?
23:36:33zedeusyou can't
23:36:45FromDiscord<Technisha Circuit> Or how would i call an asynchronous proc in a non asynchronous environment
23:36:47FromDiscord<Technisha Circuit> Oh
23:36:58zedeususe waitFor, but that blocks
23:38:07FromDiscord<Technisha Circuit> Hm
23:38:31FromDiscord<Technisha Circuit> Would it block a discord bot if i put it after the start client?
23:39:00zedeusit's single-threaded and waitFor blocks the thread for completion
23:39:10FromDiscord<Technisha Circuit> Hm
23:39:18FromDiscord<Elegant Beef> Do you have a main loop running infinitely?
23:39:29FromDiscord<Technisha Circuit> Wdym?
23:39:29FromDiscord<Elegant Beef> If so just use a non blocking timer
23:39:42FromDiscord<Technisha Circuit> The loop i want to use is gonna run forever :P
23:39:44FromDiscord<Elegant Beef> Do you have a `while isRunning`
23:39:47zedeuswhy is it not async?
23:40:36FromDiscord<Technisha Circuit> I wss gonna use `while true`
23:40:39FromDiscord<Technisha Circuit> :p
23:40:43FromDiscord<Technisha Circuit> (edit) 'wss' => 'was'
23:40:48zedeusthat's fine
23:40:48FromDiscord<Elegant Beef> Well then use cpuTime to delay operations
23:40:56FromDiscord<Technisha Circuit> zedeus wdym?
23:41:06FromDiscord<Technisha Circuit> How do i use it ;-;
23:41:18zedeusyou can use while true with async, call `asyncCheck` on the proc to make it "run in the background"
23:41:44FromDiscord<Elegant Beef> I dont know the design but store the time of the last invoktion, then if the current time - time of last invoktion > delay. Run the code
23:42:03FromDiscord<Rika> do you know of the runForever proc?
23:42:04zedeusif you need a proc that runs periodically, use asyncdispatch.addTimeer
23:42:08FromDiscord<Technisha Circuit> No?
23:42:22FromDiscord<Technisha Circuit> Oh that's useful
23:42:28FromDiscord<Rika> you can do `asyncCheck someprocthatssupposedtorunforever` then `runForever` no?
23:42:32FromDiscord<Technisha Circuit> Is it in seconds?
23:43:02zedeusmilliseconds
23:43:10FromDiscord<Technisha Circuit> ```nim↵asyncdispatch.addTimer = proc() {.async.} =↵ # Code```
23:43:15FromDiscord<Technisha Circuit> Is that how it works?
23:43:24zedeusdid you read the documentation?
23:43:40FromDiscord<Technisha Circuit> Nope, but it's probably a good idea that i do so 😅
23:43:43FromDiscord<Technisha Circuit> I'll do it rn
23:43:44zedeushttps://nim-lang.org/docs/asyncdispatch.html#addTimer%2Cint%2Cbool%2CCallback
23:43:49FromDiscord<Technisha Circuit> Thanks :p
23:44:07zedeusactually nevermind, Callback is a non-async proc
23:44:15zedeusbut.. your proc wasn't async to begin with, so I guess it's fine
23:45:04FromDiscord<Technisha Circuit> Oh okay
23:45:06FromDiscord<Technisha Circuit> Thanks!
23:45:22FromDiscord<Elegant Beef> But do learn non blocking main loop timers 😄
23:45:39FromDiscord<Technisha Circuit> Yeah, I'll have to read up on them later 😅
23:46:11zedeusthose are great if you want to waste cpu cycles :)
23:46:24zedeusdisruptek: are you around? I could use some help
23:46:35FromDiscord<Elegant Beef> I mean i tend to do game related stuff, so that's not a waste since im using cpu cycles
23:46:46FromDiscord<Elegant Beef> And also they work well if you have any other logic on the cpu you dont want to freeze
23:46:50FromDiscord<Elegant Beef> IE arduino like stuff
23:46:52zedeusyeah, but in that case you usually have some other event loop that calls your function
23:46:59FromDiscord<Elegant Beef> This is the basis↵https://play.nim-lang.org/#ix=2p1X
23:47:11FromDiscord<Technisha Circuit> Does `sleep` accept milliseconds too?
23:47:12FromDiscord<Elegant Beef> I mean not for delays and the life
23:47:31zedeusdon't call sleep if you're using async on the same thread
23:47:32FromDiscord<Elegant Beef> Only allow double jumps after X seconds
23:47:39FromDiscord<Technisha Circuit> Oh okay
23:47:52zedeusthat example is quite bad for performance lol
23:48:16FromDiscord<Elegant Beef> Yea depends on use case though, plus you can always sleep the cpu for the hz you need
23:48:22FromDiscord<Technisha Circuit> Should i use osProc for calling system functions?
23:48:59FromDiscord<Elegant Beef> depends on what you need
23:49:13FromDiscord<Rika> nice, got parsing a file down from 650 milliseconds to 50-ish milliseconds
23:49:14FromDiscord<Elegant Beef> Believe OS has only error codes, whilst osProc has stdout
23:49:25zedeusos has execShellCmd
23:49:46FromDiscord<Technisha Circuit> Hmmm
23:49:51zedeusosproc supports that and everything else, like process communication
23:50:16FromDiscord<Elegant Beef> So if you only need to call something execshellcmd will work, but if you care the response you need to use osproc
23:50:28FromDiscord<Technisha Circuit> Well, if I'm just calling `git add .;git commit -am "Autocommit";git push`, then I'm assuming execShellCmd would be the best
23:50:34FromDiscord<Technisha Circuit> Thanks!
23:50:49FromDiscord<Elegant Beef> Uhh why are you automating commits
23:50:57FromDiscord<Technisha Circuit> Because data storage
23:51:13FromDiscord<Technisha Circuit> I'm keeping a backup of all of my data files
23:51:18FromDiscord<Technisha Circuit> Like JSON data
23:51:25FromDiscord<Elegant Beef> You're using a git repo to back up your data?
23:51:34FromDiscord<Technisha Circuit> First I'll have to cd somewhere :P
23:51:36FromDiscord<Technisha Circuit> Yeah
23:51:39FromDiscord<Technisha Circuit> A private repi
23:51:40FromDiscord<Technisha Circuit> Repo*
23:51:42FromDiscord<Elegant Beef> But.. why
23:51:49FromDiscord<Technisha Circuit> Because idk where else ;-;
23:52:14FromDiscord<Elegant Beef> Google drive
23:52:16FromDiscord<Rika> uh its normal
23:52:17FromDiscord<Elegant Beef> Dropbox
23:52:37FromDiscord<Elegant Beef> I mean it's normal for .files for whatever reason
23:52:40FromDiscord<Elegant Beef> Doesnt mean it's anyless weird
23:54:17FromDiscord<Technisha Circuit> :P
23:55:33shashlickConan only has osx binaries for 10.14
23:55:45shashlickWhat do you do on older osx
23:56:08FromDiscord<Elegant Beef> Install a good OS
23:56:10FromDiscord<Elegant Beef> 😄
23:56:19Prestige^ true
23:57:04shashlickI'm not deciding what others should do - I need to support cross platform
23:57:24FromDiscord<Rika> what is conan?
23:57:31shashlickhttp://Conan.io
23:57:32FromDiscord<Rika> can you build it for older osx?
23:57:50shashlickThe point is for nimterop to download pre-built binaries from Conan
23:57:55FromDiscord<Rika> if not, can you use another similar program for older oses if necessary?
23:58:53shashlickIt works but clang complains