| 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...) |