00:00:11 | sealmove | yeah cool |
00:00:25 | sealmove | error message is clear enough |
00:01:12 | Xe | i wish go had addQuitProc lol |
00:03:14 | sealmove | It's surprisingly convenient, one of the golder abstractions maybe, which makes me think of the recent paper that blames fork, lol. |
00:03:46 | sealmove | https://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:18 | skrylar[m] | go does have atexit i think, but it's not as nice |
00:50:43 | skrylar[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:01 | Xe | not at os.Exit though |
00:51:08 | skrylar[m] | (i mean sure its not too hard to just use a standard global handler that feeds from a list, but eh) |
00:51:20 | skrylar[m] | i blame our continued reliance on shitty posix |
00:52:12 | skrylar[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:40 | sealmove | and fork :} |
00:55:09 | skrylar[m] | be apparently has the weird behavior that you can receive argv more than once |
00:55:35 | skrylar[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:29 | Xe | nah |
00:57:34 | Xe | fork() isn't actually as bad as you think |
00:57:45 | Xe | it's just inconvenient from the NT side of things |
00:57:52 | Xe | so of course microsoft would complain about it |
00:58:15 | skrylar[m] | fork is probably good for daemons and salads |
00:58:23 | Xe | the 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:42 | skrylar[m] | can't you also do hot upgrades with fork |
00:59:07 | Xe | yeah, it's a bit tricky and requires planning but it's very doable |
00:59:10 | skrylar[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:19 | Xe | weechat does it |
00:59:49 | skrylar[m] | i used to be all about them hot reloads. :3 |
00:59:59 | skrylar[m] | although in the docker era.. i dunno. seems pointless |
01:00:19 | Xe | it all really depends on what you are doing and why |
01:00:27 | skrylar[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:00 | sealmove | the problem is that linux is too dependant on fork() abstraction, which doesn't always scale well. |
01:01:02 | Xe | what makes sense at large scales doesn't always make sense at small scales |
01:01:28 | skrylar[m] | my pipedream OS is just plan 9 fused with haiku |
01:01:37 | Xe | maybe we should talk more |
01:01:54 | Xe | i'm looking at making plan 9 taken 3 steps farther with webassembly |
01:02:14 | skrylar[m] | webassembly: someone finally found a way to make assembly terrbile |
01:02:47 | Xe | eh, i'm looking at using it for a machine-agnostic abstraction for compute |
01:03:12 | Xe | i'm tired of intel bugs |
01:03:19 | Xe | i want to make it easier to get off the intel trail |
01:03:20 | Xe | train* |
01:03:31 | skrylar[m] | i saw rebol experimented with an inline assembly dialect |
01:03:52 | Xe | skrylar[m]: https://christine.website/talks/webassembly-on-the-server-system-calls-2019-05-31 |
01:03:52 | skrylar[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:59 | skrylar[m] | i mean.. this is basically what interpreters of old are for |
01:19:27 | skrylar[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:39 | Xe | yeah |
01:19:58 | Xe | i want to do a lot of what IBM i did in 1970 with modern hardware |
01:20:36 | skrylar[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:12 | skrylar[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:10 | Xe | the way i see it, worst case is i learn how to do low level OS development |
01:23:39 | skrylar[m] | well as a learning experience, have funsies |
01:24:42 | skrylar[m] | forths and the RETRO vms (like nga, ngaro and friends) are particularly easy to mess around with |
01:31:50 | sealmove | i am confused about logging in Nim. errno, perror etc don't exist right? |
01:34:46 | * | lritter quit (Quit: Leaving) |
01:38:23 | sealmove | Nim uses exceptions instead of something like errno? |
01:45:27 | * | solitudesf joined #nim |
02:01:07 | leorize[m] | sealmove: yep |
02:01:29 | leorize[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:47 | leorize[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:16 | leorize | shashlick: you around? |
04:35:14 | shashlick | what's up |
04:37:32 | leorize | I've added support for windows to niminst-generated makefile and would like to know if you can test it for me :) |
05:14:19 | shashlick | sorry, ya sure |
05:14:27 | leorize | Araq: compiling niminst with non-d:release nim will result in a stack overflow. Is that a bug? |
05:16:19 | leorize | shashlick: 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:22 | shashlick | devel or stable? |
05:23:41 | leorize | it's devel |
05:26:44 | leorize | hmm, on azure osx vms have 4 cpu cores |
05:27:00 | leorize | instead of 2 cores like everyone else |
05:28:15 | leorize | I wonder if it's the same for macos |
05:30:27 | * | rayman22201 joined #nim |
05:30:39 | * | nsf joined #nim |
05:31:54 | shashlick | getting a bunch of undefined references |
05:33:21 | shashlick | okay never mind, had to set LD |
05:33:25 | shashlick | it compiled, what next |
05:44:46 | shashlick | okay heading to bed |
05:45:08 | * | hoijui joined #nim |
05:46:47 | Araq | leorize: 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:19 | leorize | Araq: regarding the CCLD pr, maybe I should just get rid of the variable and use CC instead? |
07:29:48 | leorize | there 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:12 | leorize | Araq: 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:33 | Zevv | Varriount: 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:54 | lqdev[m] | I love this pattern |
10:58:02 | lqdev[m] | it |
10:58:10 | lqdev[m] | it's much better than stylesheets |
10:58:33 | lqdev[m] | you can just write a custom renderer for anything, really |
10:59:11 | lqdev[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:18 | lqdev[m] | aw crap, I didn't take one thing into account |
11:04:27 | lqdev[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:23 | lqdev[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:02 | Araq | leorize, from the Nim website |
11:41:17 | Araq | built 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:13 | leorize[m] | we should have build instructions for them + sources and licenses |
12:00:57 | leorize[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:01 | FromGitter | <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:50 | Zevv | oi! 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:45 | Araq | leorize: 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:04 | FromGitter | <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:39 | Zevv | cool |
13:31:32 | * | Senketsu quit (Quit: WeeChat 2.4) |
13:32:36 | * | Senketsu joined #nim |
13:33:33 | Araq | leorize: 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:55 | FromGitter | <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:51 | Araq | how could they use the same cache? the cache is project specific |
13:51:09 | FromGitter | <jrfondren> I have targets that only differ by -d: flags |
13:53:04 | Araq | debug vs release builds are also separate |
13:53:19 | FromGitter | <jrfondren> custom -d: flags |
13:54:37 | FromGitter | <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:24 | leorize | Araq: LD clash with the typical *nix LD of `ld` |
13:58:50 | leorize | which means to meaningfully use makefile or the script, you'd need to set LD to CC |
13:59:10 | Araq | ah well then remove it |
14:00:04 | * | SenasOzys joined #nim |
14:06:04 | sealmove | what does Nim use instead of errno? the object in logger module? |
14:06:44 | sealmove | i am trying to figure out how to do error handling while using posix wrappers like termios |
14:06:51 | leorize | posix.errno? |
14:07:05 | leorize | or just handle OSError |
14:07:13 | leorize | there's a oserrorcode field inside |
14:08:19 | sealmove | thanks |
14:23:27 | leorize | sealmove: there's also os.osLastError() IIRC |
14:23:34 | leorize | that one is cross platform |
14:27:17 | leorize | Araq: 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:59 | leorize | error:1409E10F:SSL routines:ssl3_write_bytes:bad length |
14:31:03 | leorize | ^ anyone know what that means? |
14:31:11 | leorize | got it from httpclient with -d:ssl |
14:31:21 | leorize | was POST-ing a JSON object |
14:36:47 | * | nsf quit (Quit: WeeChat 2.4) |
14:38:26 | FromGitter | <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:48 | FromGitter | <jrfondren> ltrace might show that you're passing libssl bad arguments |
14:39:46 | leorize | any CI-friendly windows alternative? |
14:40:13 | leorize | I stumbled on this prob on a windows CI environment |
14:42:07 | FromGitter | <jrfondren> I guess the next best alternative is a debugger. No idea about one you can use in that environment. |
14:43:26 | leorize | although this doesn't seem too wrong to me https://github.com/nim-lang/Nim/blob/devel/lib/pure/net.nim#L1322 |
14:43:53 | leorize | I 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:17 | FromGitter | <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:45 | leorize | > 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:20 | dom96 | leorize: can you reproduce? |
14:54:21 | leorize | this 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:30 | leorize | and 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:11 | lqdev[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:52 | lqdev[m] | where `macro control` accepts a single NimNode param |
15:17:43 | * | abm quit (Ping timeout: 246 seconds) |
15:18:25 | lqdev[m] | oh wait, it should actually accept 2 params for the name and the declaration |
15:18:51 | leorize | there're proc rewriting macro but there aren't any type rewriting macro as pragma atm I think |
15:19:08 | lqdev[m] | ah well, that kinda sucks |
15:19:09 | leorize | actually just one nimnode should be alright |
15:19:14 | * | marcazar quit (Quit: Leaving) |
15:19:27 | lqdev[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:54 | noonien | is there an equivalent of exec{l,v,..} in nim? |
15:32:10 | noonien | i know about `posix`, but i would rather not handling the string transformations myself |
15:33:09 | leorize | exec-family is pure posix |
15:33:22 | leorize | well, but if you just wanted to launch software, look no more than osproc |
15:34:32 | noonien | hmm, can i replace the current proc with osproc? |
15:35:13 | leorize | no |
15:36:57 | noonien | i see |
15:37:09 | leorize | noonien: it's actually not that hard to wrap exec-family of procs |
15:38:16 | noonien | yeah, i've just found https://nim-lang.org/docs/system.html#allocCStringArray%2CopenArray%5Bstring%5D :D |
15:38:39 | noonien | awesome, thanks! |
15:41:39 | * | matt-m quit (Quit: WeeChat 2.4) |
15:43:52 | * | luis_ quit (Remote host closed the connection) |
16:09:13 | federico3 | https://github.com/FedericoCeratto/nim-gnutls another cryptographic library wrapper (ping shashlick) |
16:16:31 | * | abm quit (Ping timeout: 246 seconds) |
16:22:51 | shashlick | Awesome @federico3 |
16:23:32 | PMunch | What is this -d:nimOldCaseObjects |
16:23:54 | sealmove | leorize: 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:57 | leorize | sealmove: osLastError().osErrorMsg() |
16:26:20 | leorize | PMunch: you can't change a case object branch via system.reset anymore |
16:26:33 | sealmove | i see, this is a little magic though.. |
16:27:10 | leorize | osErrorMsg() is basically whatever that's strerror() on the current os |
16:27:16 | leorize | osLastError() is errno |
16:28:04 | PMunch | leorize, huh? |
16:28:18 | leorize | sealmove: raiseOSError() can be used to raise an OSError with the correct error message |
16:29:07 | leorize | PMunch: previously you can change the current object branch by system.reset() then set a new value to the `kind` field |
16:29:10 | shashlick | PMunch see nimble recent commit history for an example |
16:29:18 | sealmove | is it better to raiseOSError instead of printing osLastError().osErrorMsg() and exiting manually with quit 1? |
16:29:50 | shashlick | https://github.com/nim-lang/nimble/commit/d800fb452564912fa3245caedf1ef1df3331d2b8 |
16:29:59 | leorize | sealmove: depends on what you want to do |
16:30:12 | leorize | if you're wrapping a function, then raise is a much better choice |
16:30:44 | PMunch | Huh, I thought that never worked.. |
16:30:46 | leorize | I prefer putting properly formatted messages when doing CLI |
16:30:46 | sealmove | mixing classic posix with exception is well... new to me :D but interesting |
16:31:27 | leorize | with 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:39 | sealmove | i am getting a weird error |
16:46:53 | sealmove | ../Nim/lib/pure/includes/oserr.nim(4, 10) Error: This is an include file for os.nim! |
16:47:05 | sealmove | but I only included termios and os |
16:50:39 | sealmove | nevermind T_T |
16:51:14 | FromGitter | <Varriount> Zevv: I'll post my thoughts in the issue |
16:59:01 | * | abm joined #nim |
16:59:07 | FromGitter | <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:05 | FromGitter | <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:18 | FromGitter | <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:33 | Araq | I think I know what I complained about and it was about Vue. |
17:02:46 | FromGitter | <zacharycarter> You said HTML / CSS / JS all suck, which is the modern web |
17:02:58 | FromGitter | <zacharycarter> and you said Vue did too and everyone should use Elm / Karax and that's it |
17:03:03 | Araq | I *also* said that, yes |
17:03:08 | Araq | yup. |
17:03:08 | FromGitter | <zacharycarter> right |
17:04:56 | FromGitter | <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:13 | FromGitter | <zacharycarter> Also if you hate Vue you'll probably hate React even more |
17:07:42 | * | apodo quit (Ping timeout: 244 seconds) |
17:08:57 | Araq | you're free to use any tool you like but you will never convince me to eat crap |
17:09:20 | FromGitter | <zacharycarter> I use the best tool I can convince my job to pay me to use :) |
17:09:55 | FromGitter | <zacharycarter> I haven't found the need for a framework like React / Vue for a personal project yet |
17:10:22 | sealmove | huh, 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:24 | FromDiscord_ | <DeltaPHC> It's in the experimental docs. https://nim-lang.github.io/Nim/manual_experimental.html#do-notation |
17:16:04 | FromDiscord_ | <DeltaPHC> Among a number of other interesting things |
17:19:53 | FromDiscord_ | <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:30 | Araq | they will hopefully change significantly, I need to release my RFC about them |
17:38:06 | Zevv | "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:36 | federico3 | TIL |
18:20:23 | Araq | it's new |
18:26:36 | Calinou | thanks for increasing the font size in the documentation :) |
18:32:40 | * | vlad1777d quit (Ping timeout: 268 seconds) |
18:55:18 | Araq | bah, it's one of these nights |
18:55:40 | Araq | wanted to change a default setting, doesn't work, got lost in Nim's configuration subsystem |
18:56:10 | Araq | can't we throw it away? |
18:57:02 | * | clyybber joined #nim |
18:58:12 | Araq | clyybber: seen the new spec? |
18:58:23 | Araq | ah ... and I hunted a ghost |
18:58:36 | Araq | the test config already exists and does the right thing... |
19:03:10 | clyybber | Araq: Hi, no I didn't, gonna check it out |
19:05:17 | Araq | https://github.com/nim-lang/Nim/wiki/Destructors,-2nd-edition |
19:05:54 | Araq | esp https://github.com/nim-lang/Nim/wiki/Destructors,-2nd-edition#rewrite-rules should help you out |
19:06:23 | Araq | but it requires backend changes, tySink becomes tyVar if the base type has a non-trivial destructor... |
19:16:39 | sealmove | oh new spec! :D exciting |
19:18:38 | sealmove | Araq, 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:04 | sealmove | is 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:16 | Araq | I made it a bug. Fixing the bug requires following the new spec. |
19:21:22 | clyybber | Araq: Cool, I now understand why that nil temporary was necessary. |
19:21:22 | Araq | ;-) |
19:22:04 | Araq | clyybber: note that 'wasMoved' isn't required anymore under this new model |
19:22:20 | Araq | and the rewrite rules should be simpler than before |
19:22:36 | clyybber | Araq: 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:41 | Araq | but we need to implement them to see where they fail |
19:22:49 | * | Trustable joined #nim |
19:23:17 | Araq | I think they are sound but that's what I thought for the old spec too and then the edge cases cropped up |
19:24:23 | clyybber | Araq: I think this time you nailed it :) |
19:24:33 | clyybber | they look really simple and clean |
19:24:48 | clyybber | Araq: So are you working on an implementation? |
19:25:22 | clyybber | Or was "I'm taking over" referring to making the spec? |
19:25:42 | clyybber | In all cases, if you need some workforce, I have plenty of free time now :) |
19:26:01 | Araq | I thought I could write the spec and implement it |
19:26:08 | Araq | but I only managed to write the spec |
19:26:24 | Zevv | and then the train arrived |
19:26:28 | Araq | so if you feel like it, go ahead and take over |
19:27:09 | clyybber | Araq: Ok, regarding the sfNoConst, how else do you think we should fix those cases? |
19:27:19 | stefanos82 | lots of changes, amazing stuff! |
19:27:27 | clyybber | Replicate the codegen logic of wether something is const in sem? |
19:27:42 | stefanos82 | haven't touched Nim for a while; I feel nostalgic now |
19:27:44 | clyybber | s/is const/is gonna be a const |
19:27:44 | Araq | no, create a temporary that has the value |
19:28:22 | clyybber | Araq: Ok |
19:28:59 | Araq | and refer to the names in the spec in the code, like # rule (var) |
19:29:17 | Araq | so that I don't have to think when I review your PR :P |
19:29:26 | clyybber | ok :) |
19:38:21 | * | luis_ quit (Ping timeout: 252 seconds) |
19:39:57 | * | abm joined #nim |
19:44:00 | shashlick | @leorize - https://github.com/neoclide/coc.nvim |
19:51:59 | * | luis_ joined #nim |
20:00:43 | * | nsf quit (Quit: WeeChat 2.4) |
20:01:34 | Araq | clang: error: unknown argument: '-fsanitize-trap=null' |
20:01:44 | Araq | what's the new syntax for this? |
20:04:07 | Araq | never mind |
20:05:51 | * | apodo quit (Ping timeout: 252 seconds) |
20:18:22 | clyybber | gotta 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:27 | lqdev[m] | are the new destructors going to be generated automatically if not created by the user? |
20:33:12 | Araq | yes. |
20:33:58 | lqdev[m] | awesome, I was afraid you'd need to create them manually. I don't recall this being mentioned in the RFC |
20:34:05 | Araq | in 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:25 | sealmove | https://termbin.com/z2bj |
20:57:29 | sealmove | I get Error: expression 'char(uint8(k) and 0b00011111'u8)' is of type 'char' and has to be discarded |
20:58:28 | sealmove | how to generate values for `case` branches like this? |
20:59:51 | sealmove | nevermind I think I messed up elsewhere |
21:00:31 | jken | Hey, 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:53 | shashlick | put common code in a common import file |
21:07:58 | shashlick | and import from all places |
21:09:48 | * | marcazar joined #nim |
21:09:51 | Araq | or 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:00 | skrylar[m] | common imports have an interesting relationship with private fields tho |
21:59:34 | skrylar[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:35 | skrylar[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...) |