<< 02-06-2019 >>

00:00:11sealmoveyeah cool
00:00:25sealmoveerror message is clear enough
00:01:12Xei wish go had addQuitProc lol
00:03:14sealmoveIt's surprisingly convenient, one of the golder abstractions maybe, which makes me think of the recent paper that blames fork, lol.
00:03:46sealmovehttps://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf
00:06:30*rnrwashere joined #nim
00:29:30*narimiran quit (Ping timeout: 258 seconds)
00:31:24*rnrwashere quit (Remote host closed the connection)
00:33:19*rnrwashere joined #nim
00:38:29*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
00:40:21*rnrwashere quit (Remote host closed the connection)
00:41:14*laaron joined #nim
00:42:08*lritter quit (Ping timeout: 245 seconds)
00:42:29*rnrwashere joined #nim
00:42:59*lritter joined #nim
00:43:13*rnrwashere quit (Remote host closed the connection)
00:43:29*rnrwashere joined #nim
00:50:18skrylar[m]go does have atexit i think, but it's not as nice
00:50:43skrylar[m]if you have full closures then the derpiest version of addQuitProc is just wrapping the previous value in the closure and calling the new proc
00:51:01Xenot at os.Exit though
00:51:08skrylar[m](i mean sure its not too hard to just use a standard global handler that feeds from a list, but eh)
00:51:20skrylar[m]i blame our continued reliance on shitty posix
00:52:12skrylar[m]lifecycles are part of like.. almost every app framework ever made post-multics but we're still dealing with atexit and main o___________o
00:53:25*deech_ quit (Ping timeout: 252 seconds)
00:54:40sealmoveand fork :}
00:55:09skrylar[m]be apparently has the weird behavior that you can receive argv more than once
00:55:35skrylar[m]what it does is send the argv message to an app when it starts, but if the app is marked as exclusive/"run me only one at a time" then it just sends it again if someone tries to start it the next time
00:57:29Xenah
00:57:34Xefork() isn't actually as bad as you think
00:57:45Xeit's just inconvenient from the NT side of things
00:57:52Xeso of course microsoft would complain about it
00:58:15skrylar[m]fork is probably good for daemons and salads
00:58:23Xethe copy-on-write nature of memory in fork() means that it's actually a pretty good way to get process isolation with shared write-once memory being sent to clients
00:58:42skrylar[m]can't you also do hot upgrades with fork
00:59:07Xeyeah, it's a bit tricky and requires planning but it's very doable
00:59:10skrylar[m]i seem to remember some black magic where you can fork/exec a new version of yourself and leak network sockets to the replacement which can then just pick up and continue serving requests like nothing happened
00:59:19Xeweechat does it
00:59:49skrylar[m]i used to be all about them hot reloads. :3
00:59:59skrylar[m]although in the docker era.. i dunno. seems pointless
01:00:19Xeit all really depends on what you are doing and why
01:00:27skrylar[m]once you have dozens of app servers and rolling upgrade orchestrators it doesn't seem like being able to hot reload a single server means anything
01:01:00sealmovethe problem is that linux is too dependant on fork() abstraction, which doesn't always scale well.
01:01:02Xewhat makes sense at large scales doesn't always make sense at small scales
01:01:28skrylar[m]my pipedream OS is just plan 9 fused with haiku
01:01:37Xemaybe we should talk more
01:01:54Xei'm looking at making plan 9 taken 3 steps farther with webassembly
01:02:14skrylar[m]webassembly: someone finally found a way to make assembly terrbile
01:02:47Xeeh, i'm looking at using it for a machine-agnostic abstraction for compute
01:03:12Xei'm tired of intel bugs
01:03:19Xei want to make it easier to get off the intel trail
01:03:20Xetrain*
01:03:31skrylar[m]i saw rebol experimented with an inline assembly dialect
01:03:52Xeskrylar[m]: https://christine.website/talks/webassembly-on-the-server-system-calls-2019-05-31
01:03:52skrylar[m]they had a forthy interpreter where you could just tell it oh by the way assemble this function for me and store a pointer over here
01:05:09*rnrwashere quit ()
01:15:25*skrylar[m] adjusts glasses
01:18:59skrylar[m]i mean.. this is basically what interpreters of old are for
01:19:27skrylar[m]in the days before the microsoft monopoly you mostly just saw everything running on interps with a couple profiled hot spots in 68k assembler
01:19:37*dddddd quit (Remote host closed the connection)
01:19:39Xeyeah
01:19:58Xei want to do a lot of what IBM i did in 1970 with modern hardware
01:20:36skrylar[m]https://github.com/crcx/nga/blob/master/Nga.md nga is a little fuzzy on how it does IO, its predecessor just had an explicit i/o port
01:21:09*deech_ joined #nim
01:22:12skrylar[m]i fundamentally disagree with webasm because its an attempt to further botch the browser in to more things it should not be doing; and when you remove the browser what you have is literally java/.net all over again
01:23:10Xethe way i see it, worst case is i learn how to do low level OS development
01:23:39skrylar[m]well as a learning experience, have funsies
01:24:42skrylar[m]forths and the RETRO vms (like nga, ngaro and friends) are particularly easy to mess around with
01:31:50sealmovei am confused about logging in Nim. errno, perror etc don't exist right?
01:34:46*lritter quit (Quit: Leaving)
01:38:23sealmoveNim uses exceptions instead of something like errno?
01:45:27*solitudesf joined #nim
02:01:07leorize[m]sealmove: yep
02:01:29leorize[m]os errors got OSError exception
02:04:16*jxy quit (Ping timeout: 248 seconds)
02:10:36*jxy joined #nim
02:14:11*sealmove quit (Quit: WeeChat 2.4)
02:32:47leorize[m]there's also the quirky exception mode that I found interesting
03:16:36*chemist69 quit (Ping timeout: 252 seconds)
03:18:20*chemist69 joined #nim
03:20:28*deech_ quit (Ping timeout: 258 seconds)
03:22:21*gangstacat quit (Quit: Ĝis!)
03:23:59*laaron quit (Remote host closed the connection)
03:26:56*laaron joined #nim
03:34:18*gangstacat joined #nim
03:45:27*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
03:45:45*laaron joined #nim
03:56:35*smitop quit (Quit: Connection closed for inactivity)
04:10:21*laaron quit (Remote host closed the connection)
04:12:49*laaron joined #nim
04:30:16leorizeshashlick: you around?
04:35:14shashlickwhat's up
04:37:32leorizeI've added support for windows to niminst-generated makefile and would like to know if you can test it for me :)
05:14:19shashlicksorry, ya sure
05:14:27leorizeAraq: compiling niminst with non-d:release nim will result in a stack overflow. Is that a bug?
05:16:19leorizeshashlick: please pull from https://github.com/alaviss/csrc, then run `make -j $(number of cores)`
05:19:25*laaron quit (Remote host closed the connection)
05:21:52*laaron joined #nim
05:22:22shashlickdevel or stable?
05:23:41leorizeit's devel
05:26:44leorizehmm, on azure osx vms have 4 cpu cores
05:27:00leorizeinstead of 2 cores like everyone else
05:28:15leorizeI wonder if it's the same for macos
05:30:27*rayman22201 joined #nim
05:30:39*nsf joined #nim
05:31:54shashlickgetting a bunch of undefined references
05:33:21shashlickokay never mind, had to set LD
05:33:25shashlickit compiled, what next
05:44:46shashlickokay heading to bed
05:45:08*hoijui joined #nim
05:46:47Araqleorize: seems like it
05:47:00*laaron quit (Remote host closed the connection)
05:49:05*laaron joined #nim
05:56:11*hoijui quit (Ping timeout: 248 seconds)
06:11:55*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
06:12:46*laaron joined #nim
06:30:05*laaron quit (Remote host closed the connection)
06:37:20*solitudesf quit (Ping timeout: 268 seconds)
06:38:21*laaron joined #nim
07:00:00*gmpreussner quit (Quit: kthxbye)
07:07:04*narimiran joined #nim
07:10:53*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
07:11:22*laaron joined #nim
07:17:55*marcazar quit (Read error: Connection reset by peer)
07:20:09*marcazar joined #nim
07:29:19leorizeAraq: regarding the CCLD pr, maybe I should just get rid of the variable and use CC instead?
07:29:48leorizethere doesn't seem to be any case where this has to be set to anything other than CC
07:54:12*Tongir joined #nim
08:00:46*NimBot joined #nim
08:29:12leorizeAraq: where does the dlls for windows came from?
08:39:20*laaron quit (Remote host closed the connection)
08:45:31*laaron joined #nim
08:48:33*laaron quit (Remote host closed the connection)
08:49:49*laaron joined #nim
09:14:12*laaron quit (Remote host closed the connection)
09:14:40*laaron joined #nim
09:25:29*elrood joined #nim
09:28:15*neceve joined #nim
09:30:57*rayman22201 quit (Quit: Connection closed for inactivity)
09:39:33ZevvVarriount: you here?
09:46:28*Tongir quit (Ping timeout: 244 seconds)
09:49:47*marcazar quit (Read error: Connection reset by peer)
09:53:32*Vladar joined #nim
10:09:05*marcazar joined #nim
10:17:20*dddddd joined #nim
10:57:51*lqdev[m] sent a long message: < https://matrix.org/_matrix/media/v1/download/matrix.org/aQPprMNWDMwpzgYyFmHuFpxt >
10:57:54lqdev[m]I love this pattern
10:58:02lqdev[m]it
10:58:10lqdev[m]it's much better than stylesheets
10:58:33lqdev[m]you can just write a custom renderer for anything, really
10:59:11lqdev[m](this is for my immediate mode GUI, by the way)
11:00:26*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
11:00:57*laaron joined #nim
11:04:18lqdev[m]aw crap, I didn't take one thing into account
11:04:27lqdev[m]containers are gonna be a pain because generics
11:05:34*lqdev[m] sent a long message: < https://matrix.org/_matrix/media/v1/download/matrix.org/OLRanzhJIfGUnyShcSxvMZUF >
11:06:23lqdev[m]I want to avoid using methods because I want every control instance to have its own renderer
11:09:43*marcazar quit (Read error: Connection reset by peer)
11:10:12*sealmove joined #nim
11:19:48*solitudesf joined #nim
11:33:22*marcazar joined #nim
11:41:02Araqleorize, from the Nim website
11:41:17Araqbuilt manually for Nim by trusted Nim core devs
11:45:42*mal`` quit (Quit: Leaving)
11:47:30*laaron quit (Remote host closed the connection)
11:49:53*laaron joined #nim
11:59:13leorize[m]we should have build instructions for them + sources and licenses
12:00:57leorize[m]stuff like MIT and BSD license requires full license text provided with the binary
12:06:16*deech_ joined #nim
12:07:18*laaron- joined #nim
12:07:46*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
12:09:04*deech quit (Ping timeout: 248 seconds)
12:20:01FromGitter<Varriount> Zevv: I'm here now
12:20:18*abm joined #nim
12:24:05*laaron- quit (Remote host closed the connection)
12:25:42*laaron joined #nim
12:33:50Zevvoi! I already whipped up something. Wanted to discuss what object to expose in the code block. For now its the 'Capture' that was already there, but I might change that if there are reasons to do so
12:34:45Araqleorize: hmm really? ouch
12:41:02*roel joined #nim
12:41:14*laaron quit (Remote host closed the connection)
12:44:13*laaron joined #nim
12:52:25*stefanos82 joined #nim
12:53:20*luis_ joined #nim
12:56:28*zyklon quit (Remote host closed the connection)
13:03:44*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
13:04:03*laaron joined #nim
13:11:18*apodo joined #nim
13:12:04FromGitter<Varriount> Zevv: Yeah, I've been looking over the new code. I have some ideas - I'll let you know once I'm done reading the changes.
13:12:46*PMunch joined #nim
13:18:42*uvegbot joined #nim
13:25:39Zevvcool
13:31:32*Senketsu quit (Quit: WeeChat 2.4)
13:32:36*Senketsu joined #nim
13:33:33Araqleorize: why not leave it as it is? (CC)
13:42:40*laaron quit (Remote host closed the connection)
13:45:16*laaron joined #nim
13:48:55FromGitter<jrfondren> `make -j` might go badly if you're running multiple nims that use the same cache. You can give targets their own nimcache dir to make up for that.
13:49:51Araqhow could they use the same cache? the cache is project specific
13:51:09FromGitter<jrfondren> I have targets that only differ by -d: flags
13:53:04Araqdebug vs release builds are also separate
13:53:19FromGitter<jrfondren> custom -d: flags
13:54:37FromGitter<jrfondren> -d:samplever and -d:fullsamplever and -d:histver and (none of those) as four separate binaries. If that's the only problem, it's probably a lot more rare to want to do this than to want `make -j`
13:57:16*lritter joined #nim
13:58:24leorizeAraq: LD clash with the typical *nix LD of `ld`
13:58:50leorizewhich means to meaningfully use makefile or the script, you'd need to set LD to CC
13:59:10Araqah well then remove it
14:00:04*SenasOzys joined #nim
14:06:04sealmovewhat does Nim use instead of errno? the object in logger module?
14:06:44sealmovei am trying to figure out how to do error handling while using posix wrappers like termios
14:06:51leorizeposix.errno?
14:07:05leorizeor just handle OSError
14:07:13leorizethere's a oserrorcode field inside
14:08:19sealmovethanks
14:23:27leorizesealmove: there's also os.osLastError() IIRC
14:23:34leorizethat one is cross platform
14:27:17leorizeAraq: would you like a PR similar to the nim-lang.org gcc one but for dlls?
14:27:37*luis_ quit (Ping timeout: 252 seconds)
14:30:59leorizeerror:1409E10F:SSL routines:ssl3_write_bytes:bad length
14:31:03leorize^ anyone know what that means?
14:31:11leorizegot it from httpclient with -d:ssl
14:31:21leorizewas POST-ing a JSON object
14:36:47*nsf quit (Quit: WeeChat 2.4)
14:38:26FromGitter<jrfondren> look at the definition of ssl3_write_bytes on your version of libssl. The version I found only had a possible handshake error from that function.
14:38:48FromGitter<jrfondren> ltrace might show that you're passing libssl bad arguments
14:39:46leorizeany CI-friendly windows alternative?
14:40:13leorizeI stumbled on this prob on a windows CI environment
14:42:07FromGitter<jrfondren> I guess the next best alternative is a debugger. No idea about one you can use in that environment.
14:43:26leorizealthough this doesn't seem too wrong to me https://github.com/nim-lang/Nim/blob/devel/lib/pure/net.nim#L1322
14:43:53leorizeI used httpclient so I'm gonna guess that it uses the one below, so in theory this should be correct
14:47:05*Vladar quit (Remote host closed the connection)
14:47:17FromGitter<jrfondren> for non-SSL, as soon as send() returns the kernel has the data and the GC can't interfere with it. I don't have the same confidence of libssl
14:49:45leorize> SSL_write() will only return with success when the complete contents of buf of length num have been written
14:50:26*al_ joined #nim
14:51:27*vlad1777d joined #nim
14:52:20dom96leorize: can you reproduce?
14:54:21leorizethis is as far as I can reproduce atm: https://dev.azure.com/alaviss/Nim/_build/results?buildId=123&view=logs&jobId=78f5e02b-a1d2-5845-e7cb-2dfe2f07bbe5&taskId=7f9fc9fc-71ee-5922-a707-1db728a0dc68&lineStart=1054&lineEnd=1055&colStart=1&colEnd=1
14:54:30leorizeand this is the proc that sends the data: https://github.com/alaviss/Nim/blob/azure-pipelines/testament/azure.nim#L30
14:56:31*laaron quit (Quit: ZNC 1.7.1 - https://znc.in)
14:57:45*laaron joined #nim
14:58:47*luis_ joined #nim
15:01:23*luis_ quit (Remote host closed the connection)
15:02:12*luis_ joined #nim
15:11:05*SenasOzys quit (Read error: Connection reset by peer)
15:13:53*xet7 joined #nim
15:16:11lqdev[m]is there a way of applying custom pragmas to type declarations?
15:16:37*lqdev[m] sent a long message: < https://matrix.org/_matrix/media/v1/download/matrix.org/pziaKRxByrHBcBTFqXMMzvUi >
15:16:52lqdev[m]where `macro control` accepts a single NimNode param
15:17:43*abm quit (Ping timeout: 246 seconds)
15:18:25lqdev[m]oh wait, it should actually accept 2 params for the name and the declaration
15:18:51leorizethere're proc rewriting macro but there aren't any type rewriting macro as pragma atm I think
15:19:08lqdev[m]ah well, that kinda sucks
15:19:09leorizeactually just one nimnode should be alright
15:19:14*marcazar quit (Quit: Leaving)
15:19:27lqdev[m]I'm getting an 'attempt to call undeclared routine'
15:19:47*abm joined #nim
15:24:06*couven92 joined #nim
15:25:00*matt-m joined #nim
15:28:39*roel quit (Ping timeout: 256 seconds)
15:31:54noonienis there an equivalent of exec{l,v,..} in nim?
15:32:10noonieni know about `posix`, but i would rather not handling the string transformations myself
15:33:09leorizeexec-family is pure posix
15:33:22leorizewell, but if you just wanted to launch software, look no more than osproc
15:34:32noonienhmm, can i replace the current proc with osproc?
15:35:13leorizeno
15:36:57noonieni see
15:37:09leorizenoonien: it's actually not that hard to wrap exec-family of procs
15:38:16noonienyeah, i've just found https://nim-lang.org/docs/system.html#allocCStringArray%2CopenArray%5Bstring%5D :D
15:38:39noonienawesome, thanks!
15:41:39*matt-m quit (Quit: WeeChat 2.4)
15:43:52*luis_ quit (Remote host closed the connection)
16:09:13federico3https://github.com/FedericoCeratto/nim-gnutls another cryptographic library wrapper (ping shashlick)
16:16:31*abm quit (Ping timeout: 246 seconds)
16:22:51shashlickAwesome @federico3
16:23:32PMunchWhat is this -d:nimOldCaseObjects
16:23:54sealmoveleorize: if for example a function in termios.h fails and returns an error code.. if I understand correctly errno is also updated accordingly, and using perror you can automatically print the correct message. How do you do this in Nim?
16:24:39*neceve quit (Read error: Connection reset by peer)
16:24:56*nsf joined #nim
16:24:57leorizesealmove: osLastError().osErrorMsg()
16:26:20leorizePMunch: you can't change a case object branch via system.reset anymore
16:26:33sealmovei see, this is a little magic though..
16:27:10leorizeosErrorMsg() is basically whatever that's strerror() on the current os
16:27:16leorizeosLastError() is errno
16:28:04PMunchleorize, huh?
16:28:18leorizesealmove: raiseOSError() can be used to raise an OSError with the correct error message
16:29:07leorizePMunch: previously you can change the current object branch by system.reset() then set a new value to the `kind` field
16:29:10shashlickPMunch see nimble recent commit history for an example
16:29:18sealmoveis it better to raiseOSError instead of printing osLastError().osErrorMsg() and exiting manually with quit 1?
16:29:50shashlickhttps://github.com/nim-lang/nimble/commit/d800fb452564912fa3245caedf1ef1df3331d2b8
16:29:59leorizesealmove: depends on what you want to do
16:30:12leorizeif you're wrapping a function, then raise is a much better choice
16:30:44PMunchHuh, I thought that never worked..
16:30:46leorizeI prefer putting properly formatted messages when doing CLI
16:30:46sealmovemixing classic posix with exception is well... new to me :D but interesting
16:31:27leorizewith quirky exceptions, you can have the best of both worlds :p
16:40:46*ehmry joined #nim
16:43:34*PMunch quit (Remote host closed the connection)
16:46:39sealmovei am getting a weird error
16:46:53sealmove../Nim/lib/pure/includes/oserr.nim(4, 10) Error: This is an include file for os.nim!
16:47:05sealmovebut I only included termios and os
16:50:39sealmovenevermind T_T
16:51:14FromGitter<Varriount> Zevv: I'll post my thoughts in the issue
16:59:01*abm joined #nim
16:59:07FromGitter<zacharycarter> Well I don't use CSS, I use Stylus and I don't use JS I use Typescript - Nim would be an option but I think I'd have a hard time selling it. HTML is HTML - I guess you could use PUG or something but bleh
17:00:05FromGitter<zacharycarter> Also Vue is quite a bit more straightforward than React - and I'm not going to use Elm because that would require learning another language, which I don't want to do - plus the Elm ecosystem sucks and the language seemed to have stalled in terms of development progress last time I checked.
17:01:18FromGitter<zacharycarter> I think you're complaining more about the modern web then you are Vue - I don't think Vue is all that terrible having used React extensively. I've used Karax a bit, and Vue was easier to accomplish certain things with - but then again I was more used to React's approach than Elm's
17:02:33AraqI think I know what I complained about and it was about Vue.
17:02:46FromGitter<zacharycarter> You said HTML / CSS / JS all suck, which is the modern web
17:02:58FromGitter<zacharycarter> and you said Vue did too and everyone should use Elm / Karax and that's it
17:03:03AraqI *also* said that, yes
17:03:08Araqyup.
17:03:08FromGitter<zacharycarter> right
17:04:56FromGitter<zacharycarter> In a perfect world maybe - but unfortunately Elm / Karax aren't very well known and not as widely used and that stops many people from considering them I imagine.
17:05:13FromGitter<zacharycarter> Also if you hate Vue you'll probably hate React even more
17:07:42*apodo quit (Ping timeout: 244 seconds)
17:08:57Araqyou're free to use any tool you like but you will never convince me to eat crap
17:09:20FromGitter<zacharycarter> I use the best tool I can convince my job to pay me to use :)
17:09:55FromGitter<zacharycarter> I haven't found the need for a framework like React / Vue for a personal project yet
17:10:22sealmovehuh, can't find the `do` keyword in Manual. is it removed?
17:13:36*apodo joined #nim
17:14:13*abm quit (Ping timeout: 245 seconds)
17:15:24FromDiscord_<DeltaPHC> It's in the experimental docs. https://nim-lang.github.io/Nim/manual_experimental.html#do-notation
17:16:04FromDiscord_<DeltaPHC> Among a number of other interesting things
17:19:53FromDiscord_<DeltaPHC> Speaking of which, are concepts going to linger around for v1? Or are they going to be removed to be fleshed out later?
17:24:37*luis_ joined #nim
17:35:30Araqthey will hopefully change significantly, I need to release my RFC about them
17:38:06Zevv"experimental manual" \o/ Never saw the link to that in the manual
17:46:52*shashlick quit (Remote host closed the connection)
17:47:18*shashlick joined #nim
17:50:17*deech joined #nim
17:59:16*PrimHelios joined #nim
18:00:38*PrimHelios_ quit (Ping timeout: 252 seconds)
18:01:48*al_ quit (Quit: al_)
18:03:26*theelous3_ joined #nim
18:05:10*PrimHelios quit (Quit: ZNC - https://znc.in)
18:05:31*PrimHelios joined #nim
18:11:13*luis_ quit (Read error: Connection reset by peer)
18:11:36*luis_ joined #nim
18:13:29*PMunch joined #nim
18:17:36federico3TIL
18:20:23Araqit's new
18:26:36Calinouthanks for increasing the font size in the documentation :)
18:32:40*vlad1777d quit (Ping timeout: 268 seconds)
18:55:18Araqbah, it's one of these nights
18:55:40Araqwanted to change a default setting, doesn't work, got lost in Nim's configuration subsystem
18:56:10Araqcan't we throw it away?
18:57:02*clyybber joined #nim
18:58:12Araqclyybber: seen the new spec?
18:58:23Araqah ... and I hunted a ghost
18:58:36Araqthe test config already exists and does the right thing...
19:03:10clyybberAraq: Hi, no I didn't, gonna check it out
19:05:17Araqhttps://github.com/nim-lang/Nim/wiki/Destructors,-2nd-edition
19:05:54Araqesp https://github.com/nim-lang/Nim/wiki/Destructors,-2nd-edition#rewrite-rules should help you out
19:06:23Araqbut it requires backend changes, tySink becomes tyVar if the base type has a non-trivial destructor...
19:16:39sealmoveoh new spec! :D exciting
19:18:38sealmoveAraq, I've asked this before but got no clear answer.. the 4th example in https://nim-lang.org/araq/ownedrefs.html doesn't work
19:19:04sealmoveis this weird or ref counting is not ready yet?
19:19:27*sealmove quit (Quit: WeeChat 2.4)
19:20:00*theelous3_ quit (Ping timeout: 248 seconds)
19:21:16AraqI made it a bug. Fixing the bug requires following the new spec.
19:21:22clyybberAraq: Cool, I now understand why that nil temporary was necessary.
19:21:22Araq;-)
19:22:04Araqclyybber: note that 'wasMoved' isn't required anymore under this new model
19:22:20Araqand the rewrite rules should be simpler than before
19:22:36clyybberAraq: I figured as much, I only left it in in my PR because I didn't fully understand all situations where it was injected
19:22:41Araqbut we need to implement them to see where they fail
19:22:49*Trustable joined #nim
19:23:17AraqI think they are sound but that's what I thought for the old spec too and then the edge cases cropped up
19:24:23clyybberAraq: I think this time you nailed it :)
19:24:33clyybberthey look really simple and clean
19:24:48clyybberAraq: So are you working on an implementation?
19:25:22clyybberOr was "I'm taking over" referring to making the spec?
19:25:42clyybberIn all cases, if you need some workforce, I have plenty of free time now :)
19:26:01AraqI thought I could write the spec and implement it
19:26:08Araqbut I only managed to write the spec
19:26:24Zevvand then the train arrived
19:26:28Araqso if you feel like it, go ahead and take over
19:27:09clyybberAraq: Ok, regarding the sfNoConst, how else do you think we should fix those cases?
19:27:19stefanos82lots of changes, amazing stuff!
19:27:27clyybberReplicate the codegen logic of wether something is const in sem?
19:27:42stefanos82haven't touched Nim for a while; I feel nostalgic now
19:27:44clyybbers/is const/is gonna be a const
19:27:44Araqno, create a temporary that has the value
19:28:22clyybberAraq: Ok
19:28:59Araqand refer to the names in the spec in the code, like # rule (var)
19:29:17Araqso that I don't have to think when I review your PR :P
19:29:26clyybberok :)
19:38:21*luis_ quit (Ping timeout: 252 seconds)
19:39:57*abm joined #nim
19:44:00shashlick@leorize - https://github.com/neoclide/coc.nvim
19:51:59*luis_ joined #nim
20:00:43*nsf quit (Quit: WeeChat 2.4)
20:01:34Araqclang: error: unknown argument: '-fsanitize-trap=null'
20:01:44Araqwhat's the new syntax for this?
20:04:07Araqnever mind
20:05:51*apodo quit (Ping timeout: 252 seconds)
20:18:22clyybbergotta go, bbl
20:18:24*clyybber quit (Quit: WeeChat 2.4)
20:21:03*sealmove joined #nim
20:26:27*luis__ joined #nim
20:29:47*luis_ quit (Ping timeout: 258 seconds)
20:31:53*luis__ quit (Ping timeout: 252 seconds)
20:32:27lqdev[m]are the new destructors going to be generated automatically if not created by the user?
20:33:12Araqyes.
20:33:58lqdev[m]awesome, I was afraid you'd need to create them manually. I don't recall this being mentioned in the RFC
20:34:05Araqin fact, that's the common case, don't mess with these things, it's designed for Nim's core
20:45:01*narimiran quit (Read error: Connection reset by peer)
20:45:52*deech_ quit (Ping timeout: 268 seconds)
20:48:09*Trustable quit (Remote host closed the connection)
20:49:43*vlad1777d joined #nim
20:50:47*PMunch quit (Remote host closed the connection)
20:52:30*deech_ joined #nim
20:57:25sealmovehttps://termbin.com/z2bj
20:57:29sealmoveI get Error: expression 'char(uint8(k) and 0b00011111'u8)' is of type 'char' and has to be discarded
20:58:28sealmovehow to generate values for `case` branches like this?
20:59:51sealmovenevermind I think I messed up elsewhere
21:00:31jkenHey, I am new to nim, and statically typed languages all together. Does anyone have any tips for splitting up code while avoiding circular dependencies?
21:01:04*solitudesf quit (Ping timeout: 246 seconds)
21:06:44*deech quit (Ping timeout: 272 seconds)
21:07:08*deech_ quit (Ping timeout: 245 seconds)
21:07:53shashlickput common code in a common import file
21:07:58shashlickand import from all places
21:09:48*marcazar joined #nim
21:09:51Araqor come up with a good design
21:16:47*apodo joined #nim
21:18:54*abm quit (Remote host closed the connection)
21:19:18*abm joined #nim
21:34:19*Jesin quit (Quit: Leaving)
21:40:05*abm quit (Ping timeout: 252 seconds)
21:45:03*abm joined #nim
21:46:48*Jesin joined #nim
21:47:16*couven92 quit (Quit: Client Disconnecting)
21:59:00skrylar[m]common imports have an interesting relationship with private fields tho
21:59:34skrylar[m]i ran in to that dealing with bmessage and bhandlers. there's a circular reference (tangenially) and ended up just shoving them in to the same file because it was either that or make the fields public again
22:01:35skrylar[m]being over and done with message plumbing will be nice tho ._.
22:02:06*apodo quit (Ping timeout: 258 seconds)
22:06:57*lritter quit (Quit: Leaving)
22:44:54*abm quit (Quit: Leaving)
22:55:42*luis_ joined #nim
22:56:22*luis_ is now known as lf_araujo
23:06:27*elrood quit (Remote host closed the connection)
23:12:23*Snircle joined #nim
23:14:33*seni quit (Quit: Leaving)
23:22:18*lf_araujo quit (Quit: lf_araujo)
23:22:45*lf_araujo joined #nim
23:27:42*xet7 quit (Read error: Connection reset by peer)
23:41:50*lf_araujo quit (Ping timeout: 258 seconds)
23:45:44*stefanos82 quit (Quit: Quitting for now...)