00:00:22 | FromDiscord | <Rika> warnings? |
00:00:28 | FromDiscord | <Rika> about what |
00:00:47 | FromDiscord | <Rika> if its something like a deprecation warning then theres not much you can do about it no> |
00:00:50 | FromDiscord | <Rika> since the os is old |
00:02:36 | shashlick | ```lib/libcrypto.a(ct_vfy.o)) was built for newer OSX version (10.14) than being linked (10.13)``` |
00:04:25 | FromDiscord | <Rika> supporting older operating systems sounds like a pain... |
00:28:46 | FromDiscord | <--HA--> Is it possible to change a stdlib proc to my own version? Something like monkey patching in ruby? |
00:29:46 | shashlick | Well if they compiled binaries on an older osx, it would work for anyone |
00:30:29 | FromDiscord | <Rika> @--HA-- depends on whether it is in system or not |
00:30:48 | zedeus | you can monkey patch entire modules |
00:31:07 | zedeus | and you can import a module except some symbols |
00:31:36 | zedeus | ie. `import stdlib except replace` |
00:31:37 | * | konradmb joined #nim |
00:33:58 | FromDiscord | <--HA--> Nice. So I would import except the proc I'd like to be different and then just rewrite that one in my own code? |
00:34:04 | zedeus | yep |
00:37:46 | FromDiscord | <--HA--> I only want to make a very small change but I guess there is no way around copy & pasting the whole orginal proc? It's not someting I can easily do with the result, the change has to go in "the middle" |
00:37:55 | zedeus | no |
00:38:26 | FromDiscord | <--HA--> Ok, thanks! |
00:40:41 | * | bung joined #nim |
00:41:58 | * | a_chou joined #nim |
00:44:04 | * | konradmb quit (Remote host closed the connection) |
00:44:17 | * | konradmb joined #nim |
00:45:10 | * | bung quit (Ping timeout: 258 seconds) |
00:54:13 | * | a_chou quit (Quit: a_chou) |
00:59:42 | FromDiscord | <--HA--> Can I force the import of a proc that is not marked with a `*`? |
01:05:17 | FromDiscord | <Rika> include instead of import |
01:05:58 | FromDiscord | <Generic> can you import only certain symbols? |
01:07:56 | FromDiscord | <Rika> from module import symbol |
01:08:55 | FromDiscord | <Generic> I meant include |
01:09:04 | FromDiscord | <Generic> it's already too late in the night |
01:09:29 | FromDiscord | <Generic> if you would include a complete stdlib package, that sounds like a lot of trouble |
01:11:13 | FromDiscord | <Rika> it is |
01:11:24 | FromDiscord | <Rika> usually you shouldnt include |
01:15:01 | * | vicfred quit (Quit: Leaving) |
01:15:47 | FromDiscord | <Varriount> Anyone seen any interesting programming articles/papers lately? |
01:20:28 | disruptek | zedeus: what's up my dude? |
01:20:42 | zedeus | trying to make httpbeast useful in production settings |
01:20:49 | zedeus | I'm very close, but getting some stalled futures |
01:21:17 | disruptek | no point. |
01:21:17 | zedeus | I can explain the problem and my progress if you got time |
01:21:21 | disruptek | sure. |
01:21:31 | disruptek | what's a stalled future look like? |
01:21:35 | zedeus | https://github.com/dom96/jester/issues/248 |
01:21:37 | disbot | ➥ Crosstalk between different HTTP requests ; snippet at 12https://play.nim-lang.org/#ix=2p2i |
01:21:58 | disruptek | lol |
01:22:10 | zedeus | https://github.com/dom96/httpbeast/blob/master/src/httpbeast.nim#L93 |
01:22:58 | zedeus | it releases file descriptors when the client disconnects, which leads to reusing the same fds for ongoing requests where the event loop hasn't finished yet |
01:24:25 | zedeus | one sec, I'll make a fork so you can see the solution |
01:25:34 | * | adnan338 joined #nim |
01:25:52 | disruptek | i really don't know why you aren't using lambda yet. |
01:25:56 | zedeus | https://github.com/zedeus/httpbeast/commit/fe2b466058171d5b22e3352fc7235bcc30b0c248 |
01:27:11 | zedeus | these conditions might seem a bit strange, but it took many hours to reach this, covers lots of edge cases |
01:27:34 | * | oddp quit (Ping timeout: 240 seconds) |
01:27:50 | zedeus | the problem now is if you fire a bunch of requests at the same time, some futures may never complete for whatever reason, leading to onRequestFutureComplete never being called |
01:28:30 | adnan338 | Hi is there any example on mutex/RwLock? All I could find was locks but I want to see some example on nim locks before trying to solve my problem at hand. I have to download a list of items and everytime a download finishes, I want to update a mutext value. And whenever there is an update to that mutex value, I want to invoke a callback. I tried creating a listener but I am stupmed by the dynamic nature of the callback: https://play. |
01:28:30 | adnan338 | nim-lang.org/#ix=2p2j (of course, callbackArg is not a static value) |
01:28:54 | disruptek | i think the original comment was correct, now? |
01:29:06 | disruptek | no? |
01:29:08 | disruptek | rather. |
01:29:32 | zedeus | line 312? yeah I misunderstood that |
01:29:45 | zedeus | maybe |
01:31:26 | disruptek | my guess is that you have multiple events in a single select raise, and you somehow aren't iterating over all of them. |
01:31:31 | * | konradmb quit (Read error: Connection reset by peer) |
01:31:47 | * | konradmb joined #nim |
01:32:01 | disruptek | you can get multiple events in a single, uh, event. |
01:32:08 | disruptek | from a single select call, i mean. |
01:32:21 | disruptek | it's just a guess. |
01:32:35 | disruptek | i honestly would throw all this stuff in the trash. |
01:32:54 | disruptek | to me it's just not worth fucking with. |
01:33:14 | disruptek | i would rather engineer around the software with engineering that is designed for scale. |
01:33:21 | zedeus | it's the default jester backend, and therefore thus default nim web server, so it would be nice to not have a de facto web server with a giant security hole |
01:33:38 | disruptek | sure. so write a new one. |
01:33:45 | zedeus | nah, ain't got time for that |
01:33:46 | disruptek | it's not like you aren't skilled enough to do it. |
01:34:11 | disruptek | well there's no point in supporting either stdlib or jester. |
01:34:19 | disruptek | neither will be used going forward. |
01:34:29 | zedeus | how's yourang going |
01:34:54 | * | konradmb2 joined #nim |
01:35:00 | disruptek | haven't been focused on it, but it's designed for cps, so it's not relevant. |
01:35:25 | disruptek | still, it /could/ conceivably be used with weave if you want to do a proper http server. |
01:35:27 | zedeus | io_uring showed promising performance for web servers |
01:35:35 | * | konradmb2 quit (Read error: Connection reset by peer) |
01:35:49 | * | konradmb quit (Read error: Connection reset by peer) |
01:35:54 | disruptek | of course; it's zero-copy async and supports practically unlimited threads. |
01:36:22 | * | konradmb joined #nim |
01:36:42 | disruptek | my advice: use sync. |
01:37:44 | zedeus | the events never have more than one event btw |
01:37:55 | zedeus | in this case, that is |
01:38:08 | adnan338 | I'll post this on the forum |
01:38:09 | disruptek | well, that's good. |
01:41:00 | disruptek | adnan338: just take out the "with:" argument. |
01:41:07 | disruptek | you have an extra parameter. |
01:41:09 | * | konradmb quit (Client Quit) |
01:41:36 | adnan338 | disruptek well I need to update the value "with" |
01:41:39 | adnan338 | a new one |
01:42:10 | disruptek | well, you don't call the update proc with more than two arguments. |
01:43:18 | disruptek | https://play.nim-lang.org/#ix=2p2j |
01:43:32 | disruptek | oops. https://play.nim-lang.org/#ix=2p2n |
01:44:08 | disruptek | zedeus: how many requests do you get per second? |
01:44:29 | zedeus | for nitter? |
01:44:33 | disruptek | yeah. |
01:44:38 | zedeus | ~30-100 |
01:44:38 | disbot | no footnotes for `30-100`. 🙁 |
01:44:56 | zedeus | well, that + media, so a few hundred |
01:45:33 | disruptek | i would just put it behind api gateway and use lambda. i can show you how i do it if you want. |
01:45:46 | zedeus | I finished the (almost) zero-copy media proxying btw, works very well |
01:46:08 | disruptek | nice. |
01:46:20 | zedeus | nah I'm good, I like the traditional web server setup. besides there are 13 other nitter instances, it needs to just work |
01:46:20 | disruptek | you proxy media just to beard the user? |
01:46:34 | zedeus | the whole point is privacy, so proxying is a must |
01:47:12 | disruptek | well, then i recommend you use a real web-server. |
01:47:35 | zedeus | I just got closer to finding the issue, but it's weird |
01:48:21 | disruptek | what do the stalled futures look like? |
01:48:24 | zedeus | the callback assigned to the futures has the correct file descriptor, but inside the callback it's sometimes the previous one |
01:48:51 | zedeus | ie when printing callback assignment, we get 1 2 3... but printing the fd inside the callback, we sometimes get 1 2 2 |
01:49:16 | disruptek | is this arc? |
01:49:21 | zedeus | nope |
01:50:44 | disruptek | so the dispatcher is stupid. |
01:50:54 | zedeus | seems like it |
01:53:31 | disruptek | is getFd() yielding different values between invocations? |
01:55:38 | zedeus | getFd isn't used here |
01:55:47 | zedeus | https://github.com/zedeus/httpbeast/blob/master/src/httpbeast.nim#L226 |
01:56:09 | disruptek | lemme clone this stupid thing. |
01:56:11 | zedeus | echoing fd right here you get the right one, echoing inside the callback it's wrong (sometimes) |
01:56:23 | * | Satomi-Kowa joined #nim |
01:56:26 | disruptek | your callback gets called with the wrong fd? |
01:56:34 | disruptek | but the right number of times? |
01:56:58 | zedeus | either the closure somehow gets the wrong fd, or it calls the wrong callback |
01:57:09 | disruptek | i'm on your branch. |
01:57:38 | disruptek | so it's line 242; you add it and it has the right fd? |
01:57:56 | zedeus | http://ix.io/2p2q |
01:57:58 | zedeus | here |
01:58:23 | zedeus | add an `echo fd` inside the callback |
01:58:56 | zedeus | run the server, then `for i in {0..100}; do (curl localhost:8080) &; done` or something similar |
01:59:16 | zedeus | then `lsof -n (whatever the process is called)` |
01:59:38 | zedeus | the last line has the file descriptor still open, find that number in the output |
01:59:47 | disruptek | kk |
02:00:27 | zedeus | also comment out the polling on line ~320 to make it easier to read |
02:00:59 | zedeus | then you should get a mostly sequential list of "done: fd" followed by a mostly sequential list of fds, but some of them are duplicated |
02:01:17 | * | chemist69 quit (Ping timeout: 260 seconds) |
02:01:36 | disruptek | gimme a sec to set this shit up. i guess i don't have a working pm. |
02:02:45 | disruptek | do i have to give it options or something? |
02:02:54 | * | chemist69 joined #nim |
02:03:25 | zedeus | nope, just `nim c -r http.nim` |
02:04:10 | disruptek | it cannot even find its own source. |
02:04:12 | disruptek | ridiculous. |
02:06:52 | disruptek | do i need different build flags? i'm not seeing any open fd. |
02:07:26 | zedeus | try opening 200 requests at once instead, it's not deterministic |
02:10:01 | disruptek | i never see anything open. |
02:10:27 | zedeus | did you switch to the stop-talking branch? |
02:10:34 | disruptek | yeah. |
02:10:38 | zedeus | hmm |
02:11:47 | * | adnan338 quit (Ping timeout: 260 seconds) |
02:11:52 | disruptek | 12 threads, danger, nothing open. |
02:11:55 | disruptek | 10,000 queries. |
02:11:57 | zedeus | oh, do 1 thread |
02:12:13 | zedeus | danger off, let it go slow |
02:12:37 | disruptek | how do i limit threads? |
02:12:42 | zedeus | --threads:off |
02:13:06 | disruptek | still nothing. |
02:13:29 | disruptek | i'm polling lsof every .1 sec. |
02:14:07 | disruptek | which kernel are you on? |
02:14:23 | zedeus | 5.6.14 |
02:14:38 | disruptek | done 4095 |
02:15:17 | disruptek | i think 100000 processes hung something. |
02:15:23 | zedeus | hah |
02:15:30 | zedeus | I'll try to reproduce on my laptop |
02:16:13 | disruptek | it's using 30gb of memory. |
02:17:19 | disruptek | now it says the following, and i quote: |
02:17:22 | disruptek | ltcocetao l dthl ooot scolta o lccphoaoonlrsnhtteo cs8ptt 0o t8rpto 0o 8:rlt0 o88Cc00oa:8nln 0heCc:too ninsCoetonc n tpntioeiorcmntte idt8o i0nom8 ue0ttd:i |
02:17:27 | zedeus | amazing |
02:17:49 | disruptek | i know; how does it know i speak finnish? |
02:17:52 | zedeus | I think that's supposed to say Hello World, but I could be wrong |
02:18:07 | disruptek | also, |
02:18:09 | disruptek | rll:ie d(i l2lte8l(eod )d 2c t8oFto)nao ni cFelcoaceonitdnnl neettecdooct t tlc toooto cno can lolelonhcocnotcaes alcttlht oho p ostolstorotc t apl ploo8ohrc0rota8ts l0 t8h:8 0o 0p8sC8o0to0r: n:t pno CerC8octo0nt n8ni8n0eo0e:cn8c t 0tCti:ioio onmnCnone nedttnc iietommciueedtotd in |
02:18:22 | zedeus | i think it's trying to explain the problem |
02:19:13 | disruptek | afaict there's no problem. |
02:19:47 | disruptek | $ sum src/httpbeast.nim |
02:19:53 | disruptek | 62854 16 |
02:20:28 | zedeus | ❯ sum httpbeast.nim |
02:20:30 | zedeus | 29954 16 |
02:21:23 | disruptek | wut |
02:23:02 | zedeus | pushed a commit with the minor changes |
02:23:03 | disruptek | which asynctools? |
02:23:17 | disruptek | 41127 |
02:23:20 | zedeus | 41127 16 |
02:23:42 | zedeus | asynctools#pr-fix-compilation |
02:24:01 | disruptek | i'm using leorize's nightly build. last night. |
02:24:07 | disruptek | nim, that is. |
02:24:34 | zedeus | mine is 4 days old, should be equal |
02:25:05 | zedeus | same happens with 1.2.0 |
02:25:23 | * | Satomi-Kowa quit (Quit: Connection closed) |
02:25:28 | disruptek | now it exh fds. |
02:27:18 | disruptek | sometimes it segvs on callback. |
02:27:40 | disruptek | are you running boehm? |
02:28:02 | zedeus | nope, all default |
02:28:51 | * | bung joined #nim |
02:29:44 | disruptek | boehm seems more stable. |
02:30:10 | zedeus | boehm doesn't work |
02:30:17 | disruptek | seems correct to me. |
02:30:36 | zedeus | in this small example it works, but for nitter it doesn't |
02:30:44 | disruptek | why? |
02:32:02 | zedeus | http://ix.io/2p2v |
02:32:05 | zedeus | i dunno |
02:32:16 | zedeus | also, with boehm it still messes up callbacks |
02:32:46 | disruptek | you need a better test. |
02:33:23 | zedeus | alright, I'll tear httpbeast apart to make a minimal example |
02:33:50 | disruptek | what kinda hardware are you on? |
02:34:07 | * | bung quit (Ping timeout: 246 seconds) |
02:34:24 | zedeus | i5-6600K |
02:35:06 | disruptek | i have no idea what that means, honestly. |
02:35:17 | * | r4vi quit (Read error: Connection reset by peer) |
02:35:23 | disruptek | i only know about hardware when i build a new machine. |
02:35:31 | disruptek | Linux olive.disruptek.com 5.6.15-gentoo-2005312150-auto #3 SMP Sun May 31 21:54:39 EDT 2020 x86_64 Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz GenuineIntel GNU/Linux |
02:35:31 | zedeus | mid-tier intel cpu from 2016 |
02:35:45 | zedeus | Linux gibson 5.6.14-arch1-1 #1 SMP PREEMPT Wed, 20 May 2020 20:43:19 +0000 x86_64 GNU/Linux |
02:35:47 | disruptek | i think this is from 2018 maybe. |
02:36:27 | disruptek | hack the planet |
02:36:38 | zedeus | hell yeah |
02:36:58 | disruptek | i was just talking about william gibson to someone. |
02:37:24 | disruptek | you know he plagiarized a lyric from disposable heroes in his Idoru, from like '94. |
02:37:26 | disruptek | prick. |
02:37:32 | zedeus | horrible |
02:37:35 | zedeus | great guy though |
02:37:41 | disruptek | yeah, swell fellah. |
02:38:27 | disruptek | to this day i don't think i've ever seen him called out on it. |
02:41:12 | disruptek | could your preempt kernel have something to do with it? |
02:41:19 | zedeus | just ran it on a VPS, still happens |
02:41:31 | zedeus | Linux nitter 4.18.0-147.5.1.el8_1.x86_64 #1 SMP Wed Feb 5 02:00:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux |
02:41:49 | disruptek | so your fix doesn't fix it? |
02:41:55 | * | surma quit (Ping timeout: 272 seconds) |
02:41:59 | zedeus | I don't have a fix for this |
02:42:01 | disruptek | does the stock branch exhibit the problem, too? |
02:42:10 | zedeus | no, it doesn't use the callback |
02:42:35 | zedeus | well, I haven't tried echoing in it to look for this specific problem |
02:45:27 | zedeus | compiled using a fresh nim devel on my laptop, also happens there |
02:45:39 | zedeus | are you sure you're using the cloned httpbeast? |
02:45:53 | disruptek | we compared checksums. |
02:46:40 | zedeus | do you get the cb output? |
02:46:45 | disruptek | yep. |
02:47:03 | zedeus | guess your cpu has no time for this bullshit then |
02:47:11 | * | mono joined #nim |
02:47:35 | disruptek | i could use a proper load tester. |
02:47:46 | zedeus | sure, throw wrk at it |
02:48:12 | disruptek | aight |
02:49:30 | disruptek | 284907 requests in 10.10s, 28.80MB read |
02:49:31 | * | monokrom quit (Ping timeout: 246 seconds) |
02:49:39 | disruptek | Socket errors: connect 0, read 9, write 0, timeout 0 |
02:50:07 | zedeus | wrk or wrk2? default settings? |
02:50:15 | * | bung joined #nim |
02:50:25 | disruptek | wrk just wrk. |
02:50:29 | disruptek | one thread |
02:51:04 | disruptek | 10 threads: |
02:51:09 | zedeus | I got a segfault |
02:51:09 | disruptek | Socket errors: connect 0, read 15, write 4264836, timeout 0 |
02:51:25 | zedeus | Socket errors: connect 0, read 46, write 110599, timeout 0 |
02:51:28 | disruptek | yeah, me too. |
02:53:12 | zedeus | line 179 `if data == nil: continue` |
02:53:19 | zedeus | probably a race condition |
02:53:40 | disruptek | it's interesting that it crashes after finishing on fd 4094 with siege and my adhoc curl test with 100k processes. |
02:53:49 | zedeus | 341270 requests in 10.00s, 34.50MB read |
02:53:51 | zedeus | Socket errors: connect 0, read 71, write 0, timeout 0 |
02:54:12 | zedeus | 2 sockets still open |
02:54:52 | * | FromDiscord quit (Remote host closed the connection) |
02:54:58 | * | endragor quit (Remote host closed the connection) |
02:55:05 | * | FromDiscord joined #nim |
02:55:27 | disruptek | let me know when you decide to start from scratch. |
02:55:44 | zedeus | lol |
02:56:01 | disruptek | Error: unhandled exception: /home/adavidoff/nims/nightly/lib/pure/ioselects/ioselectors_epoll.nim(150, 11) `s.fds[fdi].ident == InvalidIdent` Descriptor 54 already registered [AssertionDefect] |
02:56:39 | disruptek | Error: unhandled exception: Bad file descriptor (code: 9) [IOSelectorsException] |
02:56:44 | * | muffindrake quit (Ping timeout: 256 seconds) |
02:56:47 | zedeus | I've gotten those but fixed them using those conditions, I'm not getting them now though |
02:56:54 | disruptek | Error: unhandled exception: /home/adavidoff/nims/nightly/lib/pure/ioselects/ioselectors_epoll.nim(150, 11) `s.fds[fdi].ident == InvalidIdent` Descriptor 53 already registered [AssertionDefect] |
02:57:20 | disruptek | Error: unhandled exception: Bad file descriptor [OSError] |
02:57:34 | disruptek | there's a reason i don't use dom's code. |
02:57:42 | disruptek | well, there are multiple reasons. |
02:58:48 | * | muffindrake joined #nim |
02:59:09 | disruptek | anyway, i wanna try to fix closure mangling tonight. lemme know if you come up with another idea and i'll pop back. |
02:59:28 | zedeus | sure thing, thanks |
03:03:07 | * | surma joined #nim |
03:05:19 | * | endragor joined #nim |
03:06:58 | Prestige | Hey disruptek the other day we spoke about that xlib call to get a string. I found a way to do it with using alloc0, but I have to init a string with a particular size. Do you think there's another way to do it, so I wouldn't have to give it an initial size? https://0x0.st/iWzG.png |
03:07:58 | disruptek | `addr str` is a shorter way to `str[0].addr` |
03:08:11 | disruptek | and, no, you cannot alloc a "whatever you need" quantity. |
03:08:18 | Prestige | Cool, thanks |
03:08:35 | disruptek | just do it in one statement: |
03:09:05 | disruptek | propReturn = cast[ptr cstring](alloc0 300) |
03:09:28 | Prestige | Then I need to dealloc propReturn yeah? |
03:09:32 | disruptek | the alloc0 zero's it so that you don't need to worry about terminating it. |
03:10:00 | disruptek | yes, dealloc it in a finally around the call. |
03:10:34 | disruptek | or do it your way. it's fine, too. nim objects are zero'd automagically. 👍 |
03:11:16 | Prestige | And in my way I don't have to worry about dealloc, I think |
03:11:32 | disruptek | true, for whatever that's worth. |
03:12:32 | disruptek | i'm going to reimplement nimph as a pragma. |
03:13:11 | disruptek | {.nimph: "https://github.com/disruptek/openapi".} will install the package and import it. |
03:14:01 | * | endragor quit (Ping timeout: 264 seconds) |
03:14:19 | disruptek | i'm tired of this shit. |
03:18:11 | * | r4vi joined #nim |
03:19:09 | shashlick | How come |
03:29:15 | * | endragor joined #nim |
03:45:52 | disruptek | how come i'm tired? |
03:47:14 | * | r4vi quit (Ping timeout: 240 seconds) |
03:48:52 | * | surma quit (Ping timeout: 256 seconds) |
03:49:17 | disruptek | because my package manager is always broken due to one reason or another. |
03:49:36 | disruptek | right now it's compiler bugs, apparently. |
03:50:15 | disruptek | time to embed the pm in the compiler so it can be safe. |
03:52:42 | * | surma joined #nim |
04:02:46 | * | Senny quit (Ping timeout: 256 seconds) |
04:06:02 | * | supakeen quit (Quit: WeeChat 2.8) |
04:06:36 | * | supakeen joined #nim |
04:10:58 | * | surma quit (Ping timeout: 256 seconds) |
04:14:59 | * | surma joined #nim |
04:16:20 | * | r4vi joined #nim |
04:30:55 | FromDiscord | <tyler569> I've been trying to use nim for some freestanding work (os:standalone, gc:none), and from time to time I'll hit a `Error: system module needs:` error - I recognise that I can't use some things, but is there any way to know what I'm going that triggers the error?↵Right now I'm stuck with one of these on some new code I wrote and I can't for the life of me figure out what I'm doing that doesn't work freestanding |
04:31:24 | FromDiscord | <Rika> i assume anything that needs strings, seqs, or ref types |
04:32:26 | FromDiscord | <tyler569> this specific example uses none of those. I have an openArray but it's commented out as I try to find what's the cause |
04:33:41 | FromDiscord | <tyler569> well I found the problem |
04:34:02 | FromDiscord | <tyler569> passing a `'x'` to a proc that takes a `char` apparently requires `appendString` |
04:39:42 | FromDiscord | <Rika> huh, sounds dumb |
04:39:59 | FromDiscord | <Rika> are you sure? have you tested a proc w/o contents |
04:40:28 | FromDiscord | <tyler569> I can, I just realized the error may be masked by dead code elim if I remove the call |
04:41:12 | FromDiscord | <tyler569> okay yeah 'x' -> char works in a simple case |
04:41:20 | FromDiscord | <tyler569> hm |
04:43:00 | FromDiscord | <Rika> check if any of the procs you're using has a default parameter w/ a string |
04:43:11 | FromDiscord | <Rika> or uses a string internally |
04:45:27 | FromGitter | <Knaque> Is there a difference, if any, between `nim secret` and INim? At first glance they seem to be functionally identical. |
04:45:51 | disruptek | one is supported and the other is not. |
04:46:16 | zedeus | nim secret uses the vm, inim recompiles for every line |
04:46:28 | FromDiscord | <tyler569> sent a code paste, see http://ix.io/2p2E |
04:46:38 | FromDiscord | <tyler569> Port being a `distinct uint16` |
04:46:50 | FromGitter | <Knaque> Right, okay. Thank. |
04:46:56 | FromGitter | <Knaque> Plural. |
04:47:22 | * | adnan338 joined #nim |
04:53:00 | disruptek | lol unittest breaks mangling. |
05:01:54 | disruptek | yuk, i get to figure out exported symbols that collide with similar generated symbols in adjacent modules. |
05:03:06 | disruptek | i swear it's like no one thinks this stuff through... |
05:04:20 | zedeus | this callback issue is seriously weird |
05:04:23 | zedeus | I'm beginning to think it's a closure bug |
05:04:51 | FromDiscord | <JSGrant> @Zachary Carter Sorry, ended up passing out last-night; But the focus on HCR is actually one of the reasons I'm a bit more excited for Frag over the other options I've seen tbh |
05:05:05 | disruptek | it won't surprise me if there's a bug in the async impl. |
05:05:14 | disruptek | it's kinda obtuse and needlessly complex. |
05:06:12 | zedeus | in asyncfutures `addCallback` I added an argument for the fd to echo it inside the callback, which then calls the passed callback (onRequestFutureComplete) |
05:06:30 | zedeus | the callback created by addCallback has the correct id, but the one passed in does not |
05:06:40 | zedeus | despite being created on the same line using the same fd variable |
05:06:49 | FromDiscord | <JSGrant> Generally though, I'm very excited / hopeful that Nim will eventually eat Python's lunch in-terms of Gamedev; HCR or not -- hot-code reloading just makes things a LOT more attractive to me lol |
05:13:53 | * | endragor quit (Remote host closed the connection) |
05:15:34 | * | endragor joined #nim |
05:20:40 | * | endragor quit (Ping timeout: 256 seconds) |
05:25:23 | disruptek | zedeus: neat. |
05:26:42 | zedeus | I can't make any sense of this |
05:26:54 | disruptek | sounds like a race condition against the env. |
05:27:50 | disruptek | it's very possible that we don't have anything high-throughput that actually tests an env value to make sure it comes through unscathed. |
05:28:07 | disruptek | i wonder why i cannot repro it. |
05:28:44 | disruptek | my kernel is somewhat hardened; maybe that has something to do with it. |
05:28:58 | zedeus | do you have another machine available? |
05:29:22 | disruptek | sure, but i am crashing. i will try it on a cloud box tomorrow. |
05:29:32 | zedeus | cool, same here |
05:30:58 | disruptek | i have a t3.nano which should be about as slow as they come. |
05:31:00 | disruptek | ttfn |
05:31:26 | zedeus | gn buddy |
05:32:01 | * | solitudesf joined #nim |
05:36:48 | FromDiscord | <Technisha Circuit> How would i log all of my console to a site so my friend can see the errors while I'm away? |
05:37:45 | FromDiscord | <Rika> what |
05:38:06 | FromDiscord | <Rika> i think you need a custom solution for that |
05:38:08 | FromDiscord | <Technisha Circuit> I basically want to pipe all output to stdin to a site where it gets logged |
05:38:10 | FromDiscord | <Technisha Circuit> Oof |
05:38:14 | FromDiscord | <Rika> aka you need to host a site that'd allow you to do that |
05:38:21 | FromDiscord | <Technisha Circuit> Ooof okay |
05:38:24 | FromDiscord | <Rika> okay wait |
05:38:25 | FromDiscord | <Rika> idea |
05:38:39 | FromDiscord | <Rika> @Technisha Circuit where is this output coming from |
05:38:46 | FromDiscord | <Rika> a server or your phone |
05:39:07 | FromDiscord | <Technisha Circuit> My phone :P |
05:39:10 | zedeus | this is like 4 lines of code with jester |
05:39:13 | FromDiscord | <Technisha Circuit> xD |
05:40:28 | FromDiscord | <Rika> yeah |
05:40:33 | FromDiscord | <Rika> baiscally what zed said |
05:41:25 | FromDiscord | <Technisha Circuit> So how would i redirect everything from stdin to the site then? Using a txt file that just logs everything? |
05:41:56 | zedeus | don't use stdout, add to a file or use the logging module that can do it for you |
05:42:05 | FromDiscord | <Rika> basically `program > some file` then run a webserver to serve that file, im guessing |
05:42:28 | FromDiscord | <Technisha Circuit> Oh okay |
05:42:46 | zedeus | if you're talking about crashes, you can do `program >> file` or `program | tee -a file` |
05:44:02 | FromDiscord | <Rika> was gonna suggest tee, but this is on a phone |
05:44:04 | FromDiscord | <Rika> no clue if tee's there |
05:44:18 | zedeus | if they're running nim on it, tee is probably there |
05:47:21 | * | endragor joined #nim |
05:47:23 | * | waleee-cl quit (Quit: Connection closed for inactivity) |
05:51:31 | * | endragor quit (Ping timeout: 246 seconds) |
05:53:22 | * | adnan338 quit (Ping timeout: 258 seconds) |
06:03:11 | * | adnan338 joined #nim |
06:10:51 | * | adnan338 quit (Read error: Connection reset by peer) |
06:15:01 | * | ftsf joined #nim |
06:16:11 | ftsf | hmm is there a nice way to make an array with an index with an enum type that can hold the full length of the enum eg. array[myEnum.high + 1, myType] |
06:21:35 | FromDiscord | <Rika> ftsf: https://nim-lang.org/docs/manual.html#types-array-and-sequence-types |
06:22:14 | ftsf | @Rika oh I see, you can specify a range for the first argument |
06:22:23 | ftsf | array[myEnum.low..myEnum.high, ...] |
06:22:27 | ftsf | cool |
06:22:29 | ftsf | thanks |
06:23:53 | FromDiscord | <Technisha Circuit> I don't understand what the issue is... https://media.discordapp.net/attachments/371759389889003532/721248461848182795/Screenshot_20200613_072316_com.android.chrome.jpg |
06:24:03 | FromDiscord | <Technisha Circuit> It's Nim 1.2.0 |
06:24:06 | FromDiscord | <Technisha Circuit> From the site |
06:29:08 | FromDiscord | <Rika> repl.it doesnt have nim 1.2.0 |
06:29:11 | FromDiscord | <Rika> afaik |
06:35:23 | FromDiscord | <Technisha Circuit> I've downloaded it myself |
06:35:29 | FromDiscord | <Technisha Circuit> @Rika |
06:35:38 | FromDiscord | <Technisha Circuit> I downloaded it from the Nim site :P |
06:36:46 | FromDiscord | <Rika> well then good luck with that, i cant help you 😛 |
06:36:49 | FromDiscord | <Technisha Circuit> https://media.discordapp.net/attachments/371759389889003532/721251713176174672/Screenshot_20200613_073647_com.android.chrome.jpg |
06:36:51 | FromDiscord | <Technisha Circuit> Ooof okay |
06:39:34 | * | kenran joined #nim |
06:47:03 | * | marnix joined #nim |
07:04:56 | * | tdc joined #nim |
07:13:10 | * | Vladar joined #nim |
07:13:54 | marnix | I'm a Nim noob (and #nim noob), found a performance diff in Nim 1.2.0 where --gc:arc is 2x slower than the default, on My First Nim Program(tm) which is just tokenizing a 30-40 MB mmap'd text file. Is that worth reporting? How/where? |
07:17:20 | FromDiscord | <Rika> try it with the devel branch |
07:17:23 | FromDiscord | <Rika> *first |
07:17:32 | FromDiscord | <Rika> see if its still 2x slower than default |
07:17:45 | FromDiscord | <Rika> if it is, report it in the nim repo |
07:19:29 | marnix | OK, will see if I can get that set up. Am using binary distro through nix currently, let's see if I can get it built from source. |
07:20:25 | FromDiscord | <Rika> (man, i hear of so many people using nix nowadays) |
07:21:37 | * | vicfred joined #nim |
07:23:25 | Zevv | marnix: can you share your code? |
07:24:19 | marnix | Zevv Yes, later today probably, a gist or something I think. |
07:24:26 | Zevv | k |
07:31:52 | * | marnix quit (Ping timeout: 265 seconds) |
07:34:00 | FromDiscord | <Rika> kinda wish we had stdlib fixed point decimals |
07:34:02 | FromDiscord | <Rika> do we? |
07:36:10 | * | dddddd quit (Ping timeout: 246 seconds) |
07:37:13 | * | Trustable joined #nim |
07:37:26 | * | neceve_ joined #nim |
07:43:49 | FromDiscord | <Technisha Circuit> What does gc:arc do? |
07:44:24 | FromDiscord | <Rika> arc stands for atomic ref. counting afaik |
07:44:27 | FromDiscord | <Rika> so it switches the gc to that |
07:44:33 | FromDiscord | <Technisha Circuit> Oh |
07:44:43 | FromDiscord | <Technisha Circuit> Is it supposed to be faster? |
07:45:06 | FromDiscord | <Technisha Circuit> And what's the advantages of using arc over the Nim default? |
07:45:13 | FromDiscord | <Rika> yeah supposedly |
07:45:30 | FromDiscord | <Rika> its a deterministic garbage collector afaik, though i cant explain well how its better |
07:45:39 | FromDiscord | <Technisha Circuit> Oh okay |
07:48:45 | FromDiscord | <Elegant Beef> https://forum.nim-lang.org/t/5734 this will probably explain it |
07:51:16 | FromDiscord | <Rika> huh, it isnt atomic ref counting lmao |
07:51:21 | FromDiscord | <Rika> ive been lied to |
07:51:49 | FromDiscord | <Elegant Beef> Automatic |
07:52:00 | FromDiscord | <Elegant Beef> Araq calls it atomic |
07:52:08 | * | nsf joined #nim |
07:52:23 | FromDiscord | <Rika> lmao think ya just pinged em |
07:52:31 | FromDiscord | <Elegant Beef> Well get a better platform |
07:52:41 | FromDiscord | <Elegant Beef> Well i guess he doesnt but he does call it out i mean |
07:52:41 | FromDiscord | <Rika> tell that to em |
07:52:48 | FromDiscord | <Elegant Beef> Well i just did |
07:52:51 | FromDiscord | <Elegant Beef> 😄 |
07:53:28 | FromDiscord | <Elegant Beef> IRC is officially the go to platform for those that are very very self concious |
07:57:20 | * | NimBot joined #nim |
08:00:08 | vicfred | hi, did sort only used to work with arrays (0.13.0) but now (1.2.0) also works with sequences? https://atcoder.jp/contests/abc042/submissions/14212464 |
08:02:29 | FromDiscord | <Rika> no, i assume its because your outType has no cmp proc |
08:02:35 | FromDiscord | <Rika> hmm |
08:02:38 | FromDiscord | <Rika> i think |
08:03:14 | vicfred | the type is string, I also got the same error but with ints |
08:03:15 | FromDiscord | <Rika> also christ, nim 0.13 |
08:03:26 | FromDiscord | <Rika> thats old as hell hahaha |
08:03:35 | FromDiscord | <Rika> ah |
08:03:50 | vicfred | 4 years is not that old |
08:03:57 | FromDiscord | <Rika> i assume 0.13 doesnt have an algorithm.sort that doesnt need a cmp proc thats passed in |
08:04:01 | FromDiscord | <Elegant Beef> lol |
08:04:11 | FromDiscord | <Rika> nim is just 14ish years old |
08:04:16 | FromDiscord | <Rika> thats 1/3 of its life already |
08:04:25 | FromDiscord | <Elegant Beef> Also it just released 1.0 in october |
08:04:52 | FromDiscord | <Elegant Beef> Atleast i assume 99% of stuff was subject to change |
08:04:55 | * | marnix joined #nim |
08:05:16 | FromDiscord | <Rika> https://nim-lang.org/0.13.0/algorithm.html here's the docs for 0.13 algorithm |
08:05:38 | FromDiscord | <Rika> you can see that theres no sort w/o a cmp proc passed in |
08:05:44 | marnix | So Zevv Rika: I created https://gist.github.com/marnix/48cbcb00ced295c3e182c765f4a74939 for that --gc:arc performance difference observed on Nim 1.2.0. |
08:05:52 | FromDiscord | <Rika> just pass in system.cmp and youll be fine |
08:06:12 | marnix | (Won't have time to try devel branch now.) |
08:07:09 | * | marnix will be away from the keyboard for a long time now. |
08:07:58 | FromDiscord | <Rika> ill try it then |
08:08:00 | vicfred | thanks now it works, also 0.13.0 refused to compare an array to a sequence https://atcoder.jp/contests/abc042/submissions/14212649 |
08:08:40 | FromDiscord | <Rika> just so you know how "old" 0.13 is, the last version before 1.0 was 0.20 |
08:08:47 | vicfred | and with strings https://atcoder.jp/contests/abc042/submissions/14212674 |
08:09:11 | vicfred | https://en.wikipedia.org/wiki/Nim_%28programming_language%29#History |
08:09:27 | FromDiscord | <Rika> i am aware. |
08:09:45 | FromDiscord | <Rika> time doesnt really matter if the rate of improvement is not constant |
08:09:47 | vicfred | im running 1.2.0 locally but I cant do anything about the contest website |
08:09:53 | FromDiscord | <Rika> yeah |
08:09:56 | FromDiscord | <Rika> i understand' |
08:12:46 | FromDiscord | <Rika> marnix: horribly bad news: it seems like arc on devel makes it even worse, around 2x worse than arc on 1.2 |
08:12:58 | FromDiscord | <Rika> let me try again |
08:18:08 | ftsf | ahh just noticed my collision routines don't work in newer Nim, since they use multimethods which are deprecated, is there a good reason not to use them? |
08:19:01 | * | nikita` joined #nim |
08:19:19 | Zevv | marnix: what is your input? |
08:19:33 | FromDiscord | <Rika> marnix: update, new devel is still around the same as 1.2.0 |
08:19:39 | FromDiscord | <Rika> zevv: its in the run.sh file |
08:20:15 | Zevv | Oh I missed stuff I think, let me read up |
08:20:25 | * | vicfred quit (Quit: Leaving) |
08:20:46 | * | vicfred joined #nim |
08:20:51 | Zevv | run.sh? |
08:20:56 | FromDiscord | <Rika> in the gist |
08:21:23 | Zevv | euh - sorry, I'm stupid probbly. I posted a gist with a short nim program |
08:21:39 | Zevv | that looks for "set.mm" |
08:22:30 | vicfred | send me an invite to the discord, I like irc better but I use discord on the phone |
08:22:33 | FromDiscord | <Rika> i think this is worth an issue in the nim repo |
08:22:59 | FromDiscord | <Rika> i |
08:23:02 | FromDiscord | <Rika> *i'm aeverr |
08:23:18 | vicfred | thanks |
08:23:24 | FromDiscord | <Vicfred> hi |
08:23:31 | FromDiscord | <Rika> that avatar tho |
08:24:05 | Zevv | rika, sorry, hold my hand. I'm trying to look at marnix's performance problem, but I need that "set.mm", and you say I need to find a "run.sh" |
08:24:10 | Zevv | What am I missing |
08:24:49 | FromDiscord | <Rika> https://gist.github.com/marnix/48cbcb00ced295c3e182c765f4a74939#file-run-sh |
08:25:07 | FromDiscord | <Rika> run it or something 😛 |
08:25:39 | Zevv | oh that's a differnt url with more context - woot |
08:25:44 | FromDiscord | <Rika> but yeah tried it in newest devel and it's just as slow as stable right now |
08:26:50 | Zevv | for me on devel it's about as fast with arc as with default |
08:27:38 | FromDiscord | <Rika> huh |
08:27:39 | FromDiscord | <Rika> thats weird |
08:28:23 | FromDiscord | <Rika> sent a code paste, see http://ix.io/2p37 |
08:28:35 | Zevv | oh nah wait - huuuge difference between -d:danger and -d:release |
08:28:41 | Zevv | I only use :danger these days |
08:28:47 | FromDiscord | <Rika> oh? |
08:28:56 | FromDiscord | <Rika> whats making danger as fast but release slower |
08:30:55 | Zevv | overflow checks in the inner loops |
08:31:30 | Zevv | This is the C code: http://zevv.nl/div/diff.png |
08:33:10 | aeverr | thats a lot of checks |
08:33:37 | alehander92_ | morning!! |
08:35:09 | FromDiscord | <Rika> good morning |
08:42:51 | * | arecaceae quit (Remote host closed the connection) |
08:43:42 | * | arecaceae joined #nim |
08:47:32 | ftsf | hmm how would i grab the output of a shell command at compile time and shove it in a string? |
08:47:57 | ftsf | eg. grab git version string |
08:48:28 | ftsf | aha `staticExec` |
08:52:31 | FromDiscord | <mratsim> @ftsf, multimethods prevents many optimization opportunities (for example VTable) and are very seldom used. Most importantly you can reimplement thm on top of single dispatch with macros or visitors |
08:53:02 | FromDiscord | <mratsim> i.e. they are deprecated so that they don't hinder future refactorings |
08:54:11 | ftsf | mratsim, I see, I'm curious how I would reimplement my collision functions as single dispatch, eg. collide(a,b: Object): bool {.base.}, collide(a: Foo, b: Bar): bool, collide(a: Bar, b: Baz): bool |
08:54:30 | ftsf | do you know of any examples of how one might reimplement it? |
08:56:51 | ftsf | I suppose I could just `if a is Foo and b is Bar: ...` and `if a is Bar and b is Baz: ...` |
09:02:28 | FromDiscord | <Elegant Beef> Oh hey ftsf, hope my nico issue didnt annoy you 😄 |
09:02:59 | ftsf | Elegant Beef oh hi, not at all, just wish I could reproduce the issue |
09:03:33 | FromDiscord | <Elegant Beef> No replication on your linux tests? |
09:03:50 | ftsf | haven't got around to testing on linux yet =( |
09:03:53 | FromDiscord | <Elegant Beef> Ah |
09:03:55 | ftsf | i should set up a VM |
09:04:13 | FromDiscord | <Elegant Beef> I did try to fix it myself before making the issue, but i couldnt see anything that should cause that |
09:04:37 | ftsf | yeah, i have no idea what would cause it =\ |
09:04:47 | FromDiscord | <Elegant Beef> I did manage to make it sound more like sound, but still no volume control |
09:05:32 | ftsf | my guess is it's somehow multiplying the volume by 255 instead of 1, but can't see why that would happen |
09:06:05 | FromDiscord | <Elegant Beef> oh i tested even using hard coded decimal values and even with something like .000001 it still would go 100% |
09:06:33 | FromDiscord | <Elegant Beef> It's like it has 0 interest in the volume control on my setups(Maybe all of linux?) |
09:07:01 | * | marnix_ joined #nim |
09:07:02 | ftsf | it's very odd cause it's all being done in software (nico code) |
09:07:25 | ftsf | now that i think about it, were you doing javascript build or C build? |
09:07:31 | * | marnix_ quit (Remote host closed the connection) |
09:07:32 | FromDiscord | <Elegant Beef> Yea i noticed you're letting SDL handle the audio, so it shouldnt be an issue |
09:07:33 | ftsf | i didn't test JS |
09:07:36 | FromDiscord | <Elegant Beef> I only did C builds |
09:07:40 | ftsf | ok |
09:07:43 | FromDiscord | <Elegant Beef> JS doesnt compile atm with some errors |
09:07:56 | FromDiscord | <Elegant Beef> Which can be commented out but no clue how to use the outputted js for anything |
09:08:42 | ftsf | putting some time into nico atm |
09:08:44 | * | endragor joined #nim |
09:08:48 | ftsf | so hopefully fix up most of the issues |
09:09:10 | FromDiscord | <Elegant Beef> Also no clue if you seen my nico-helper repo, but could be a nice thing to implement |
09:09:22 | ftsf | going to record a talk on using it for NimConf, so would be good to fix a bunch of the issues so they don't cause issues for people following along |
09:09:32 | ftsf | oh i haven't seen it, link plz? |
09:09:39 | FromDiscord | <Elegant Beef> A FSM level loader basically |
09:09:45 | FromDiscord | <Elegant Beef> https://github.com/beef331/nico-helper |
09:10:02 | FromDiscord | <mratsim> @ftsf, most compilers (Clang in particular) use Visitors to implement multidispatch |
09:10:04 | ftsf | oh awesome, i'll check it out |
09:10:18 | FromDiscord | <Elegant Beef> It's not that complex, but it does allow sepeartion of levels/code |
09:10:23 | * | rokups joined #nim |
09:10:28 | FromDiscord | <Elegant Beef> Makes it much nicer to work with imo |
09:10:49 | FromDiscord | <Elegant Beef> Without any otherway many people will tend towards a big old single file |
09:10:59 | ftsf | nice, yeah even I tend to use one big file =) |
09:11:05 | * | endragor quit (Remote host closed the connection) |
09:11:05 | FromDiscord | <mratsim> also My raytracer has a collision function called "hit" but I did it with object variants: https://github.com/mratsim/trace-of-radiance/blob/master/trace_of_radiance/physics/hittables/hittables_variants.nim#L53-L54 |
09:11:10 | * | endragor joined #nim |
09:11:11 | FromDiscord | <Elegant Beef> Which imo is rather terrible to work with |
09:11:20 | ftsf | but that's mostly to work around nim giving me dramas when I try to split things up =\ I feel I must be doing something wrong |
09:11:45 | FromDiscord | <mratsim> I have a macro that generates "class-like" object variants: https://github.com/mratsim/trace-of-radiance/blob/master/trace_of_radiance/support/emulate_classes_with_ADTs.nim |
09:12:33 | ftsf | though in some more complex projects I use a stack of "States" which handle the update and draw |
09:12:47 | FromDiscord | <Elegant Beef> Yea so basically what i have |
09:12:54 | FromDiscord | <Elegant Beef> It's sorta like scenes for Unity |
09:13:09 | FromDiscord | <Elegant Beef> I do have plans to make more helper stuff but the music stuff annoyed me 😄 |
09:13:25 | ftsf | yeah, but the stack lets you easily add a new state on top then return to the old one, works well for stacked menus |
09:13:39 | ftsf | mmm the audio stuff is a bit of a mess, needs cleaning up |
09:13:42 | FromDiscord | <Elegant Beef> Ah that'd be a nice thing to add to this manager |
09:14:19 | FromDiscord | <Elegant Beef> loadLevel, destackLevel |
09:14:28 | FromDiscord | <Elegant Beef> Level is a misnomer now i guess but 😛 |
09:14:30 | ftsf | pushLevel popLevel |
09:14:38 | ftsf | pushState / popState is what I use |
09:14:48 | FromDiscord | <Elegant Beef> Yea probably better terminalogy |
09:15:07 | ftsf | some states are "transparent" which lets it render the one below it as well, but only top one recvs input |
09:15:35 | ftsf | so you can do a pause menu while drawing the game underneath |
09:15:55 | FromDiscord | <Elegant Beef> Ah yea i dont have layered logic, not that it'd be too hard |
09:16:16 | * | fredrikhr joined #nim |
09:16:36 | ftsf | i've got a half done gui system for nico too which i'm keen to spin into a helper lib too |
09:16:50 | FromDiscord | <Elegant Beef> Guess i'll attempt fixing it again but doubt i'll see why, i tend to just change values and cry that my ears are bleeding cause of 100% audio 😛 |
09:16:53 | ftsf | simiar to unity's IMGUI |
09:17:12 | FromDiscord | <Elegant Beef> Nice, was thinking about getting pixel perfect collision done aswell since it's sorta required |
09:18:01 | FromDiscord | <Elegant Beef> With some abstraction for multiple tile sprites with flip |
09:18:04 | alehander92_ | seems as a good idea mratsim! |
09:18:08 | ftsf | downloading a linux distro to run in a VM now, so hopefully can figure out the audio issue |
09:18:10 | alehander92_ | like how your code is docummented! |
09:18:33 | FromDiscord | <Elegant Beef> Yea, well @Elegant Beef if you make any progress, i need to sleep |
09:18:52 | ftsf | shall do |
09:18:59 | ftsf | night night |
09:19:17 | FromDiscord | <Elegant Beef> Buh bye |
09:19:43 | FromDiscord | <Rika> wait why did you ping yourself |
09:20:05 | ftsf | they were telling me to @ them =) |
09:23:40 | * | oddp joined #nim |
09:27:27 | FromDiscord | <Rika> didnt understand, usually you'd say "@ me" and not actually @ yourself no? |
09:27:30 | FromDiscord | <Rika> anyway |
09:28:18 | * | bung quit (Ping timeout: 256 seconds) |
09:30:33 | * | tane joined #nim |
09:31:06 | * | bung joined #nim |
09:32:03 | * | arecaceae quit (Remote host closed the connection) |
09:32:36 | * | arecaceae joined #nim |
09:55:03 | planetis[m] | ftsf: we have #nim-gamedev now, come join us! |
09:55:10 | ftsf | planetis[m], ooh nice sure |
10:07:08 | FromDiscord | <Shucks> newbie alarm: I would use `read` and `write` all the time so I thought custom operators would be great but how exactly would I use them now? https://play.nim-lang.org/#ix=2p3z |
10:12:39 | * | lritter joined #nim |
10:19:03 | alehander92_ | hm |
10:19:10 | alehander92_ | but think about the reader |
10:30:40 | * | krux02 joined #nim |
10:33:22 | * | Vladar quit (Remote host closed the connection) |
10:39:19 | * | Vladar joined #nim |
10:43:12 | marnix | Rika Zevv Thanks for looking into my --gc:arc performance diff. Will one of you create an issue on GitHub? Or should I create one based on my gist? |
11:02:55 | * | Trustable quit (Remote host closed the connection) |
11:10:33 | FromDiscord | <lqdev> @Shucks custom operators cannot contain letters https://nim-lang.org/docs/manual.html#lexical-analysis-operators |
11:11:26 | FromDiscord | <lqdev> also there's no need to use `typedesc` with an explicit generic param, just use `typedesc` |
11:11:34 | FromDiscord | <lqdev> or better yet, just use `type` |
11:11:49 | * | lqdev[m] left #nim ("User left") |
11:12:14 | FromDiscord | <Shucks> Oh alright |
11:12:37 | Yardanico | @lqdev I don't think just using "type" is a good way here :P |
11:12:58 | Yardanico | I think it's deprecated |
11:15:24 | * | kenran quit (Ping timeout: 256 seconds) |
11:36:02 | FromDiscord | <lqdev> is it? |
11:36:14 | FromDiscord | <lqdev> I was pretty sure typedesc is the one that's deprecated |
11:39:04 | FromDiscord | <Rika> I was sure of typedesc being the preferred one |
11:43:37 | bung | typedesc is good |
11:45:08 | Zevv | marnix: feel free to create an issue. For me the solution is "just use -d:danger", but that's not the message Ar4q wants to spread, I believe |
11:45:33 | marnix | Zevv :-) |
11:45:44 | marnix | Will do |
11:56:16 | * | marnix quit (Remote host closed the connection) |
11:59:13 | * | brainbomb1 joined #nim |
11:59:53 | * | brainbomb quit (Ping timeout: 272 seconds) |
12:06:02 | * | supakeen quit (Quit: WeeChat 2.8) |
12:06:36 | * | supakeen joined #nim |
12:10:51 | * | ride[m] joined #nim |
12:30:32 | * | marnix joined #nim |
12:43:27 | * | zama joined #nim |
12:50:09 | * | rokups quit (Quit: Connection closed for inactivity) |
12:55:59 | * | dddddd joined #nim |
13:03:22 | FromDiscord | <Shucks> Im looking for something like `getCurrentBinaryName` |
13:03:49 | * | kungtotte joined #nim |
13:04:18 | Yardanico | https://nim-lang.org/docs/os.html#getAppFilename |
13:05:10 | * | luis_ joined #nim |
13:14:43 | * | luis_ quit (Quit: luis_) |
13:18:09 | * | silvernode quit (Quit: Konversation terminated!) |
13:19:59 | * | luis_ joined #nim |
13:20:44 | FromDiscord | <Shucks> thank you |
13:30:23 | * | nsf quit (Quit: WeeChat 2.8) |
13:34:43 | * | luis_ quit (Quit: luis_) |
13:42:21 | * | silvernode joined #nim |
13:43:08 | silvernode | How easy is it to host Nim Playground on my own server? |
13:43:27 | Yardanico | silvernode: see https://github.com/PMunch/nim-playground-frontend and https://github.com/PMunch/nim-playground |
13:43:39 | Yardanico | I think you just need nim and docker :) |
13:43:56 | silvernode | Oh nice, that should be fairly easy then |
13:44:06 | * | PMunch joined #nim |
13:45:01 | * | luis_ joined #nim |
13:46:20 | silvernode | I want to run my own server for the playground to help save bandwidth on the official playground server. |
13:47:08 | Yardanico | well I don't think official playground server has that high of a load |
13:48:22 | * | Trustable joined #nim |
13:51:10 | PMunch | Not really |
13:51:23 | PMunch | But feel free to spin up a clone if you want |
13:55:38 | silvernode | k0mpjut0r: I guess I just want to help out in some way. If nothing else, it could be an alternative to the official playground if that happens to go down for some reason for a day. |
13:56:03 | Yardanico | you can instead for example help federico3 with a VPS for nimble.directory :) |
13:57:08 | * | FromDiscord quit (Remote host closed the connection) |
13:57:24 | * | FromDiscord joined #nim |
13:57:26 | silvernode | Yardanico: what's the problem they are having? |
13:57:48 | Yardanico | silvernode: https://nimble.directory/ hosts and makes docs for all nimble packages |
13:57:56 | Yardanico | I mean it hosts readme and documentation |
13:58:35 | Yardanico | "This service allows you to explore Nim packages known to Nimble. It tests package installation and generates documentation using "nim doc". It also generates badges with the output of install test and documentation generation that you can link to." |
13:59:14 | silvernode | Yardanico: oh, that would be cool if I did that too. I use the packages directory from time to time. Would be neat to have an instance of my own. |
13:59:30 | silvernode | brb |
13:59:33 | * | silvernode quit (Quit: Konversation terminated!) |
14:00:06 | FromDiscord | <Rika> yardanico what are they hosting on right now |
14:11:36 | * | PMunch quit (Quit: leaving) |
14:17:24 | federico3 | BTW the load on the existing VPS decreased a lot after the last changes |
14:17:30 | Yardanico | ah nice |
14:24:56 | FromDiscord | <dom96> PMunch: any ideas how many people at once the playground can handle? |
14:25:06 | FromDiscord | <dom96> I'm planning to use it for the examples in my nimconf talk |
14:26:14 | supakeen | federico3: I really like how the updated design came out! |
14:37:12 | * | Senny joined #nim |
14:37:48 | federico3 | supakeen: I'm fixing the font sizes as we speak |
14:39:42 | FromGitter | <phdye> Can anyone point to a working example of using NimRtl with a C main ? |
14:50:33 | marnix | Zevv, Rika: FYI Issue logged for --gc:arc performance diff, https://github.com/nim-lang/Nim/issues/14651 |
14:50:35 | disbot | ➥ Nim 1.2.0 --gc:arc makes going over a large file much slower ; snippet at 12https://play.nim-lang.org/#ix=2p5f |
14:52:28 | * | neceve_ quit (Read error: Connection reset by peer) |
15:01:10 | * | kenran joined #nim |
15:22:00 | * | endragor quit (Remote host closed the connection) |
15:36:48 | * | luis_ quit (Ping timeout: 258 seconds) |
15:51:13 | * | aenesidemus joined #nim |
16:02:14 | * | bjornroberg quit (Remote host closed the connection) |
16:05:50 | FromDiscord | <Technisha Circuit> What's the default nim gc? |
16:05:59 | FromDiscord | <Technisha Circuit> Just `default`? |
16:06:16 | disruptek | --gc:refc |
16:06:31 | disruptek | i have an old version of nimph in the cloud and it's silly how fast it is. |
16:06:37 | disruptek | i love it. |
16:06:50 | FromDiscord | <mratsim> I think refc is pure ref counting without cycle detection |
16:09:17 | FromDiscord | <Skaruts> is there some binary `|=` equivalent in nim? |
16:10:15 | disruptek | mratsim: all i know is... |
16:10:18 | disruptek | $ nim --fullhelp|grep gc |
16:10:22 | disruptek | --gc:refc|markAndSweep|boehm|go|none|regions |
16:10:36 | * | brainbomb1 quit (Quit: Leaving.) |
16:10:57 | disruptek | probably should add arc and orc to that list. 🤷 |
16:12:22 | FromDiscord | <Technisha Circuit> > --gc:refc↵Thanks! |
16:13:14 | FromDiscord | <Technisha Circuit> Why would i want to use Go's GC in Nim? |
16:13:24 | FromDiscord | <Technisha Circuit> Like, any benefits i could get from it? |
16:15:12 | disruptek | zedeus: i cannot repro your bug in the cloud, either. |
16:15:27 | zedeus | hey, just got up |
16:15:30 | zedeus | that's odd |
16:15:53 | disruptek | Linux grape.disruptek.com 4.14.114-103.97.amzn2.x86_64 #1 SMP Sun Apr 28 03:59:40 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
16:16:25 | zedeus | would you mind running a binary I upload? just for a sanity check |
16:16:33 | disruptek | sure. |
16:20:08 | zedeus | http://ix.io/2p5w |
16:20:16 | zedeus | runs on port 4000 |
16:20:19 | disruptek | you're testing /my/ sanity, huh. |
16:20:22 | zedeus | hah |
16:20:46 | zedeus | running 200 curls a few times causes the bug |
16:21:10 | disruptek | i'm running for n in (seq 0 10000); curl http://localhost:8080/ > /dev/null 2>&1 &; end and no problems yet. |
16:21:18 | disruptek | this is a nim from april, too. |
16:23:03 | disruptek | what is this binary? |
16:23:04 | FromDiscord | <mratsim> @Technisha Circuit to use goroutines from Nim |
16:23:32 | FromDiscord | <Technisha Circuit> Wth are those? An offbrand coroutine? |
16:23:55 | zedeus | doing 10000 curls I get 108 stalled sockets |
16:26:03 | disruptek | which port? |
16:26:07 | zedeus | 4000 |
16:26:22 | zedeus | just ran the binary on another server, still happens |
16:26:28 | disruptek | cannot repro. |
16:28:39 | disruptek | this is a static link against glibc-2.29.83 or so? |
16:28:42 | disruptek | something like that? |
16:29:25 | zedeus | 2.31 |
16:29:45 | zedeus | I didn't explicitly make it static, dunno |
16:30:27 | disruptek | i don't have anything that new. |
16:30:45 | disruptek | i tend to lag far behind on glibc because it's just not worth the grief. |
16:30:53 | disruptek | if i could run 2.26 i would. |
16:31:29 | zedeus | I compiled it on my laptop with 2.29, still happens |
16:32:00 | disruptek | gcc what |
16:32:19 | disruptek | i'm 9.3.0 |
16:32:28 | zedeus | I just found a vps where I cannot repro, seemingly because it's too slow to trigger the race |
16:32:56 | zedeus | 8.3.0 on laptop, 10.1.0 on desktop |
16:33:00 | disruptek | maybe i haven't exhausted my cpu budget on the nano. |
16:33:08 | disruptek | this is bananas. |
16:37:48 | disruptek | it's not able to consume even 300 fds. i wonder if i'm hitting some soft process creation cap. |
16:38:50 | zedeus | `ulimit -n` ? |
16:39:47 | disruptek | 1024 |
16:40:08 | zedeus | same as my vps where it works |
16:40:30 | disruptek | 4k on my desktop and cannot repro there, either. |
16:40:54 | zedeus | even using my binary? |
16:42:38 | FromDiscord | <Generic> @Skaruts unfortunately no |
16:42:40 | disruptek | yep. |
16:42:55 | disruptek | what's the glibc on the vps? |
16:44:03 | zedeus | 2.28 |
16:44:20 | disruptek | GNU C Library (Gentoo 2.29-r8 p9) stable release version 2.29. |
16:45:18 | disruptek | the nano is GNU C Library (GNU libc) stable release version 2.26, by Roland McGrath et al. |
16:45:29 | * | ride[m] left #nim ("User left") |
16:45:46 | disruptek | i can't even consume 450 fds on the desktop. |
16:47:20 | zedeus | dom96 Araq: you around? |
16:58:06 | FromGitter | <phdye> FYI: useNimRTL DLL segfaults on linux with C main https://github.com/nim-lang/Nim/issues/14652 |
16:58:08 | disbot | ➥ useNimRTL DLL segfaults on linux with C main ; snippet at 12https://play.nim-lang.org/#ix=2p5M |
16:58:18 | * | vicfred quit (Quit: Leaving) |
17:05:05 | zedeus | disbot: yardanico can reproduce |
17:05:10 | Yardanico | disruptek: ^ |
17:13:27 | * | pbb_ is now known as pbb |
17:19:18 | * | nsf joined #nim |
17:27:24 | zedeus | passing the values through a proc first before making the closure seems to mitigate it a bit, but not entirely |
17:33:25 | FromDiscord | <codic> Solus Linux now has nim 1.2.0 https://dev.getsol.us/T8979 |
17:35:45 | * | bung quit (Quit: Lost terminal) |
17:36:24 | FromDiscord | <Recruit_main707> is the unroll pragma still ignored by the compiler?? https://media.discordapp.net/attachments/371759389889003532/721417699434954822/unknown.png |
17:37:55 | Yardanico | i think so |
17:38:52 | Yardanico | you can see the implementation in https://github.com/nim-lang/Nim/blob/devel/compiler/pragmas.nim#L589 |
17:39:30 | Yardanico | well anyway for C compilers you can enable -funroll-loops |
17:39:34 | Yardanico | although it's not fine-grained |
17:48:07 | FromDiscord | <Recruit_main707> thats a shame, unroll would be sick |
17:48:21 | Yardanico | the DFA unrolls while loops three times btw :P but that's for analysing |
17:48:33 | Yardanico | https://github.com/nim-lang/Nim/blob/75e579ff8ec3b5b3659612ea24f8d2b8c0e20230/compiler/dfa.nim#L316 |
17:52:28 | Prestige | I keep using this pattern with options - would anyone else find this useful? https://play.nim-lang.org/#ix=2p5Z |
17:52:39 | Prestige | Just reduces code a little bit when using options |
17:52:59 | Prestige | Was thinking of submitting a PR.. I keep using this in all my projects |
17:54:09 | zedeus | https://github.com/PMunch/nim-optionsutils |
17:54:35 | Yardanico | https://github.com/PMunch/nim-optionsutils/blob/master/src/optionsutils.nim#L190 :D |
17:54:45 | Prestige | haha wow, nice |
18:03:43 | * | Northstrider quit (Ping timeout: 252 seconds) |
18:03:50 | FromGitter | <bung87> nice |
18:05:18 | FromGitter | <bung87> today I tried livescript feel confortable with its syntax |
18:11:10 | * | arecaceae quit (Remote host closed the connection) |
18:11:42 | * | arecaceae joined #nim |
18:18:55 | * | vikfret quit (Remote host closed the connection) |
18:19:14 | * | vikfret joined #nim |
18:48:06 | FromDiscord | <codic> livescript is awesome |
18:48:15 | FromDiscord | <codic> just coffeescript but better |
18:48:27 | FromDiscord | <codic> (both are maintained by the same person actually...) |
18:54:07 | * | brainbomb joined #nim |
18:54:37 | * | vikfret quit (Quit: Leaving) |
18:56:14 | FromGitter | <bung87> if it could have sweetjs's macro that even better |
18:56:25 | * | brainbomb quit (Client Quit) |
18:57:27 | * | kenran quit (Ping timeout: 260 seconds) |
19:15:16 | alehander92_ | huh interesting |
19:15:39 | alehander92_ | i didnt know they are related |
19:37:00 | * | Jesin quit (Quit: Leaving) |
19:45:20 | * | Jesin joined #nim |
19:45:43 | FromDiscord | <Technisha Circuit> What's livescript @codic? |
19:46:03 | FromDiscord | <codic> @Technisha Circuit https://livescript.net |
19:46:06 | FromDiscord | <Technisha Circuit> Oo |
19:46:20 | FromDiscord | <codic> It's basically coffeescript with functional programming |
19:46:38 | FromDiscord | <codic> The author of coffeescript kinda uses it as a 'playground' for testing featrures as well |
19:46:46 | FromDiscord | <codic> According to some github issue that i cant find |
19:47:28 | FromDiscord | <Technisha Circuit> Is all existing CoffeeScript code compatible with LiveScript or no? |
19:47:42 | FromDiscord | <codic> No |
19:47:47 | FromDiscord | <Technisha Circuit> Aw |
19:47:49 | FromDiscord | <codic> Only minor changes tho |
19:47:51 | FromDiscord | <codic> https://livescript.net/#coffee-to-ls |
19:48:02 | FromDiscord | <codic> Also, this isn't about nim.... *nim is the best compile-to-js lang* |
19:49:02 | FromDiscord | <Technisha Circuit> Nim is the best, i agree- |
19:49:32 | FromDiscord | <codic> Don't you dare betray us |
19:49:36 | FromDiscord | <Technisha Circuit> I wish it would produce es6 code though because I'd find it cool looking at the beauty of Nim- |
19:49:44 | FromDiscord | <codic> What? |
19:49:46 | FromDiscord | <Technisha Circuit> (edit) 'Nim-' => 'Nim coupled with JS-' |
19:49:55 | FromDiscord | <codic> ES5 is better |
19:50:00 | FromDiscord | <Technisha Circuit> How so? |
19:50:04 | FromDiscord | <codic> Simply because it's supported more places |
19:50:10 | FromDiscord | <Technisha Circuit> That's true |
19:50:17 | FromDiscord | <codic> If you used es6, the logical decision is to use babel and convert it to es5 anyways |
19:50:21 | FromDiscord | <Technisha Circuit> But ES6 looks way nicer |
19:50:39 | FromDiscord | <codic> You can convert some es5 stuff to es6: https://lebab.unibtc.me (opposite of babel) |
19:50:42 | FromDiscord | <codic> Not that much nicer |
19:50:50 | FromDiscord | <codic> It's easy to replicate functionality |
19:50:58 | FromDiscord | <Technisha Circuit> Nice |
19:51:19 | FromDiscord | <codic> Just use mozilla's sweet.js (to add macros to js) and add all the es6 stuff |
19:52:05 | FromGitter | <yumaikas> So, looking at the jester source, does it let me set mime types? |
19:52:41 | FromGitter | <yumaikas> It looks like settings.mimes always gets overwritten? |
20:06:14 | FromGitter | <yumaikas> Never mind, the MIME type I'm interested in is there |
20:08:47 | FromGitter | <yumaikas> So, using sendFile on a WASM file seems to mix things up? |
20:24:16 | FromDiscord | <willyboar> alehander92 are you here? |
20:33:04 | * | cyraxjoe joined #nim |
20:34:22 | * | aenesidemus quit (Ping timeout: 260 seconds) |
20:34:25 | * | MightyJoe quit (Ping timeout: 264 seconds) |
20:35:03 | alehander92_ | https://github.com/nim-lang/Nim/pull/14632/commits/e1dd90754464b409f5955c5d7df58cd7a28c369a |
20:35:04 | disbot | ➥ [WIP] porting name mangling from ic effort |
20:35:07 | alehander92_ | disruptek .. |
20:35:11 | alehander92_ | yeajh! |
20:35:13 | alehander92_ | i am here |
20:35:39 | FromDiscord | <willyboar> have you ever look at rosencrantz? |
20:35:55 | * | marnix quit (Ping timeout: 260 seconds) |
20:35:56 | alehander92_ | i know about it! |
20:36:02 | alehander92_ | but i havent really used it iirc |
20:36:07 | alehander92_ | it's by andrea |
20:36:22 | FromDiscord | <willyboar> I used it in the past few days |
20:36:28 | alehander92_ | it seemed interesting , what do you find cool about it |
20:37:10 | FromDiscord | <willyboar> i like the composition |
20:37:20 | FromGitter | <phdye> Can anyone point to a working example of using NimRtl with a C main ? |
20:37:44 | FromDiscord | <willyboar> i would like a better syntax but you can use to it |
20:38:37 | FromDiscord | <willyboar> also the codebase is kinda small |
20:38:53 | FromDiscord | <willyboar> and it is easy to and new handlers |
20:41:52 | * | aenesidemus joined #nim |
20:44:15 | alehander92_ | hmm |
20:44:20 | alehander92_ | yeah thats true! |
20:44:25 | alehander92_ | i have to look at it again |
20:44:40 | alehander92_ | but i am mostly interested in the type stuff honestly |
20:44:59 | FromDiscord | <willyboar> type stuff? |
20:46:01 | disruptek | alehander92_: what? |
20:46:11 | alehander92_ | why the movie |
20:46:13 | alehander92_ | reference |
20:46:20 | Yardanico | @phdye I suggest you to post the question on the forum |
20:46:48 | FromGitter | <phdye> Thank you. I shall. |
20:47:46 | disruptek | why the movie reference? |
20:48:30 | * | NimBot joined #nim |
20:48:35 | * | waleee-cl joined #nim |
21:03:16 | alehander92_ | the commit |
21:03:19 | alehander92_ | had a movie |
21:03:21 | alehander92_ | i mean yeah |
21:03:26 | Zevv | "type stuff" and the well received sequel "type stuff II" |
21:03:45 | * | Trustable quit (Remote host closed the connection) |
21:03:58 | Yardanico | type stuff III: typedesc revenge |
21:06:04 | * | Trustable joined #nim |
21:07:40 | FromDiscord | <willyboar> lol |
21:08:35 | * | kenran joined #nim |
21:13:36 | FromGitter | <codenoid> hi folks, how you doing, hope everything getting better |
21:15:41 | FromDiscord | <willyboar> hello @codenoid everything is good |
21:18:30 | FromGitter | <deech> As of the 8th of June I'm not seeing any osx nightlies https://github.com/nim-lang/nightlies/releases. |
21:18:42 | Yardanico | wait a bit ;) |
21:18:49 | FromGitter | <deech> Ah, thanks! |
21:19:02 | Yardanico | leorize[m]: is experimenting with new way of building nightlies |
21:21:01 | Yardanico | @deech try to use https://github.com/alaviss/nightlies/actions/runs/134085277 |
21:22:32 | FromGitter | <deech> Nice! So is macOS still on 1.2.1? |
21:22:38 | Yardanico | there's a 1.3.5 build there |
21:22:41 | Yardanico | did you miss it? :P |
21:22:47 | Yardanico | third in the list "nim-1.3.5-macosx_amd64.tar.xz" |
21:22:52 | * | solitudesf quit (Ping timeout: 246 seconds) |
21:23:01 | FromGitter | <deech> crap. |
21:23:04 | FromGitter | <deech> Sorry. |
21:23:19 | Yardanico | I don't know if it works though, please tell your experience to leorize[m] :) |
21:23:26 | FromGitter | <deech> Will do! |
21:24:25 | Yardanico | these builds are mostly static |
21:25:22 | * | Jesin quit (Quit: Leaving) |
21:27:15 | * | kenran quit (Ping timeout: 260 seconds) |
21:30:40 | * | Jesin joined #nim |
21:48:54 | * | Vladar quit (Quit: Leaving) |
21:49:15 | * | MightyJoe joined #nim |
21:50:52 | * | cyraxjoe quit (Ping timeout: 256 seconds) |
21:51:17 | * | chemist69 quit (Ping timeout: 260 seconds) |
21:51:43 | * | chemist69 joined #nim |
22:05:19 | FromGitter | <xmonader> is @zah == Zahary ? |
22:06:34 | zedeus | https://github.com/dom96/httpbeast/pull/35 |
22:06:35 | disbot | ➥ Fix crosstalk |
22:07:25 | Yardanico | @xmonader depends on which Zachary you're talking about :) |
22:07:45 | Yardanico | we have https://github.com/zah and https://github.com/zacharycarter |
22:08:54 | * | yannicK joined #nim |
22:09:57 | FromGitter | <xmonader> I'm confused actually, but he's the team lead of nimbus |
22:10:03 | Yardanico | yes, that's zah |
22:10:32 | FromGitter | <xmonader> thank you so much @Yardanico |
22:11:34 | * | nsf quit (Quit: WeeChat 2.8) |
22:12:53 | * | tane quit (Quit: Leaving) |
22:14:38 | * | yannicK quit (Quit: leaving) |
22:17:30 | FromDiscord | <willyboar> nice zedeus |
22:22:47 | * | tdc quit (Ping timeout: 260 seconds) |
22:50:53 | * | lritter quit (Quit: Leaving) |
22:54:17 | * | Trustable quit (Remote host closed the connection) |
22:58:24 | FromDiscord | <Recruit_main707> having this function: https://media.discordapp.net/attachments/371759389889003532/721498731895062547/unknown.png |
22:59:09 | FromDiscord | <Recruit_main707> and GameTickPacket being specified to be passed by copy: https://media.discordapp.net/attachments/371759389889003532/721498921687449600/unknown.png |
22:59:59 | FromDiscord | <Recruit_main707> why does the generated function use a pointer still? https://media.discordapp.net/attachments/371759389889003532/721499135349489674/unknown.png |
23:02:47 | FromDiscord | <Recruit_main707> (ignore that ^) |
23:04:21 | FromDiscord | <Recruit_main707> it has to do with using `{.push: bycopy.}` instead of doing it manually |
23:04:54 | FromDiscord | <Recruit_main707> doesnt it work? |
23:14:38 | FromDiscord | <Recruit_main707> it definetely seems like a bug, should i open an issue? |
23:39:05 | zedeus | is it an issue? |
23:53:25 | FromDiscord | <Recruit_main707> It does look like |
23:53:51 | zedeus | then perhaps you should open an issue for it |