00:41:19 | * | rockcavera joined #nim |
01:24:47 | * | lritter joined #nim |
01:29:57 | * | Hideki_ joined #nim |
01:30:04 | * | Hideki_ quit (Remote host closed the connection) |
01:52:46 | * | Traviss joined #nim |
01:53:46 | * | Traviss quit (Client Quit) |
01:55:09 | * | traviss joined #nim |
01:56:11 | * | Traviss__ quit (Ping timeout: 250 seconds) |
02:03:15 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
02:03:33 | * | pbb joined #nim |
02:04:27 | * | pbb quit (Client Quit) |
02:06:21 | * | pbb joined #nim |
02:06:56 | * | a_b_m quit (Quit: Leaving) |
02:07:01 | * | pbb quit (Client Quit) |
02:07:17 | * | pbb joined #nim |
02:07:47 | * | pbb quit (Client Quit) |
02:08:01 | * | pbb joined #nim |
02:12:07 | * | pbb quit (Client Quit) |
02:12:21 | * | pbb joined #nim |
02:12:59 | * | pbb quit (Client Quit) |
02:13:17 | * | pbb joined #nim |
02:16:00 | ball2 | q |
02:17:13 | * | ball2 quit (Quit: WeeChat 1.9.1) |
02:28:23 | FromGitter | <iffy> Is this error an indication of running out of memory? http://ix.io/1Ycm |
02:30:19 | FromGitter | <iffy> @theretromaniac also check out https://nimble.directory/pkg/argparse |
02:31:22 | FromGitter | <dawkot> (https://files.gitter.im/nim-lang/Nim/3Mrn/image.png) |
02:31:23 | FromGitter | <dawkot> How do I prevent this? (VSCode) |
02:31:35 | disruptek | when i've run out of memory, i get an "Out of memory" error. |
02:31:51 | disruptek | admittedly, it doesn't happen often on 64gig... |
02:34:47 | disruptek | i made an error and it doesn't matter, but i can't figure out how this line compiles successfully: https://github.com/disruptek/golden/blob/master/src/golden/running.nim#L59 |
02:39:13 | * | traviss quit (Quit: Leaving) |
02:54:58 | * | theelous3_ joined #nim |
02:58:54 | * | lritter quit (Ping timeout: 265 seconds) |
02:59:14 | * | lritter joined #nim |
03:24:30 | * | laaron joined #nim |
03:35:46 | * | traviss joined #nim |
03:36:18 | * | laaron quit (Quit: ZNC 1.7.4 - https://znc.in) |
03:37:40 | * | laaron joined #nim |
03:37:52 | * | gmpreussner quit (Read error: Connection reset by peer) |
03:38:09 | * | gmpreussner joined #nim |
03:42:08 | * | chemist69 quit (Ping timeout: 276 seconds) |
03:43:34 | * | chemist69 joined #nim |
03:46:17 | FromGitter | <gogolxdong> if body[i].kind == xnText and body[i].innerText != " ": |
03:46:57 | FromGitter | <gogolxdong> to filter the empty text element of XmlNode traverse |
03:54:44 | leorize | I wouldn't count of checking for "one space" |
03:55:02 | leorize | use stripWhitespace() to deal with such cases |
03:55:19 | leorize | then you can check for "not empty" |
03:57:33 | * | onionhammer quit (Quit: WeeChat 1.9.1) |
04:00:31 | * | onionhammer joined #nim |
04:09:05 | * | rockcavera quit (Remote host closed the connection) |
04:15:33 | * | Danny59 joined #nim |
04:16:26 | FromGitter | <gogolxdong> yes, good tip. |
04:17:04 | * | Danny59 is now known as danny_su |
04:24:30 | * | danny_su68 joined #nim |
04:25:02 | * | hades joined #nim |
04:25:24 | * | hades is now known as Guest97553 |
04:25:41 | * | Guest97553 is now known as fichtl |
04:28:44 | * | danny_su68 quit (Remote host closed the connection) |
04:29:06 | * | danny_su quit (Remote host closed the connection) |
04:50:51 | * | nsf joined #nim |
05:05:25 | * | dddddd quit (Remote host closed the connection) |
05:14:59 | * | radsoc joined #nim |
05:16:56 | * | traviss quit (Quit: Leaving) |
05:36:06 | * | navinmistry joined #nim |
05:41:27 | * | skoude joined #nim |
05:54:05 | * | narimiran joined #nim |
05:56:29 | * | nc-x joined #nim |
05:56:58 | * | navinmistry quit (Remote host closed the connection) |
05:58:09 | nc-x | @dawkot: https://github.com/nim-lang/Nim/issues/11679#issuecomment-518188355 this might fix the issue. Or a PR to nim-vscode plugin so that it does not spawn nimsuggest for every file would work. which would be easier if leorize fulfills his promise of improving nimsuggest project detection :) |
06:00:14 | * | navinmistry joined #nim |
06:01:42 | * | radsoc quit (Quit: radsoc) |
06:04:16 | * | navinmistry quit (Ping timeout: 240 seconds) |
06:06:02 | * | skoude quit (Ping timeout: 240 seconds) |
06:06:22 | * | skoude joined #nim |
06:09:36 | * | solitudesf joined #nim |
06:10:31 | * | nc-x quit (Ping timeout: 260 seconds) |
06:12:44 | minierolls | what would be the cleanest way to implement a hardcoded string lookup table? I need to define lots of small string lookup tables manually |
06:14:02 | Araq | write a macro that produces a 'case' statement on strings |
06:14:24 | Araq | the codegen produces optimized code for it |
06:21:29 | minierolls | ooo ok |
06:22:03 | minierolls | is there a way to find the number of values in an enum? trying to write macro to produce array of size (length of enum) |
06:22:59 | Araq | yeah but it's guesswork for me, something about getTypeImpl and iteration |
06:23:10 | * | PMunch joined #nim |
06:26:14 | * | laaron quit (Quit: ZNC 1.7.4 - https://znc.in) |
06:27:00 | * | laaron joined #nim |
06:28:35 | minierolls | ah i see |
06:28:45 | minierolls | ig ill just use sequences |
06:29:17 | Araq | or use set[MyEnum] |
06:29:42 | * | NicQ joined #nim |
06:29:52 | minierolls | oo that seems great! thanks |
06:32:15 | * | navinmistry joined #nim |
06:41:13 | minierolls | hm any idea what problem i might have if i cant compile any files with an import to the standard library |
06:41:25 | minierolls | eg Error: cannot open file: macros |
06:45:03 | * | nif quit (Quit: ...) |
06:45:04 | * | NicQ quit (Read error: Connection reset by peer) |
06:45:12 | * | nif joined #nim |
06:47:49 | * | theelous3_ quit (Ping timeout: 250 seconds) |
06:48:21 | * | theelous3 joined #nim |
06:49:03 | * | NicQ joined #nim |
06:50:27 | leorize | nc-x: I can improve it but it's still up to the plugin devs to make use of it :P |
06:50:55 | leorize | narimiran: does the project finding code work well enough for you? |
06:51:44 | leorize | minierolls: how did you install Nim? |
06:52:13 | narimiran | leorize: well i use it only on nim repo, and there it worked fine. |
06:52:52 | minierolls | @leorize I used snapd |
06:52:55 | * | laaron quit (Quit: ZNC 1.7.4 - https://znc.in) |
06:53:59 | FromGitter | <gogolxdong> How to change continuous spaces to one space? |
06:53:59 | leorize | my guess is that they configured Nim incorrectly |
06:54:16 | minierolls | oof yea, looks like i cant even compile a nim file with no imports |
06:54:29 | minierolls | fails due to missing limits.h error o.o |
06:54:49 | leorize | I don't have too much hope in snap :P |
06:54:51 | minierolls | ig i wont use the snapd version |
06:54:55 | lqdev[m] | minierolls: don't bother with snap, it sucks. use choosenim to install Nim |
06:55:03 | leorize | you're on ubuntu, right? |
06:55:05 | * | laaron joined #nim |
06:55:11 | minierolls | o im on fedora 30 |
06:55:14 | * | laaron quit (Client Quit) |
06:55:25 | lqdev[m] | why do you use snap on fedora in the first place |
06:55:37 | lqdev[m] | we have flatpak and it's 100x better |
06:55:42 | minierolls | hmm |
06:55:45 | minierolls | i am a linux nub |
06:55:57 | minierolls | @lqdev oo ok! thanks for the heads up about choosenim |
06:55:57 | leorize | flatpak is more desktop-oriented |
06:56:00 | minierolls | didnt know that was a thing |
06:56:11 | minierolls | ah alright ig ill replace all my snaps with flatpaks lol |
06:56:13 | FromDiscord | <Corax> Hi guys, I have a hopefully simple question that is stumping me a bit 🙂 it's in this code block: https://play.nim-lang.org/#ix=1Ydb . I get a "Can raise an unlisted exception: Exception" coming from asyncmacro.nim(56, 9). Using try/except instead of defer doesn't solve it. Am I missing something? Is it because the future isn't consumed? |
06:56:27 | * | laaron joined #nim |
06:56:40 | leorize | it's a known bug with async transformation |
06:57:40 | * | skoude quit (Ping timeout: 265 seconds) |
06:57:49 | FromDiscord | <Corax> Ah I see. Is it a bug in the sense that it wrongly reports the raise? Or should I still use the defer/trycatch? I want to ensure my module doesn't raise anything |
06:58:06 | leorize | https://github.com/nim-lang/Nim/issues/66639 |
06:58:09 | leorize | https://github.com/nim-lang/Nim/issues/6639 |
06:58:23 | leorize | async can raise internally |
06:58:31 | leorize | since OS primitives can and does fail |
06:59:14 | FromGitter | <alehander42> ok Araq i rebased and removed some not-needed stuff from not nil |
06:59:21 | FromGitter | <alehander42> the previous not nil approach* |
07:00:00 | * | gmpreussner quit (Quit: kthxbye) |
07:00:59 | * | laaron quit (Remote host closed the connection) |
07:01:49 | Araq | alehander42: link? |
07:01:54 | Araq | https://www.codeproject.com/Articles/5247782/The-Cost-of-Waiting-for-Feedback-in-Software-Devel |
07:02:21 | Araq | "This study measured how much longer it takes a developer to fix a bug detected 3 weeks later instead of on the same day. |
07:02:21 | Araq | Now, how much longer do you think it takes? |
07:02:21 | Araq | About twenty-four times as much, no matter if the task is big or small." |
07:03:25 | * | navinmistry quit (Ping timeout: 250 seconds) |
07:05:14 | * | skoude joined #nim |
07:05:21 | * | gmpreussner joined #nim |
07:05:40 | * | NicQ quit (Read error: Connection reset by peer) |
07:05:46 | * | krux02 joined #nim |
07:07:30 | minierolls | @lqdev btw thanks for the choosenim suggestion! I used it to install nim and most of my compile errors are gone now |
07:07:39 | minierolls | just one last problem with include macros though |
07:07:43 | minierolls | /.choosenim/toolchains/nim-1.0.0/lib/core/macros.nim(550, 31) Error: 'untyped' is only allowed in templates and macros |
07:07:46 | FromDiscord | <Corax> I think I don't understand the raises pragma 😦 shouldn't this fail to compile? https://play.nim-lang.org/#ix=1Yde |
07:07:54 | minierolls | any idea how to solve? |
07:08:05 | FromDiscord | <Corax> (since there is a chance it may raise IndexError) |
07:10:01 | leorize | minierolls: can we have your code? |
07:10:17 | * | skoude quit (Ping timeout: 268 seconds) |
07:10:24 | leorize | @Corax: it ignores exceptions of type "Defect" IIRC |
07:10:33 | leorize | bugs are not protected by this |
07:11:34 | minierolls | @leorize https://play.nim-lang.org/#ix=1Ydf |
07:11:42 | FromDiscord | <Corax> kk that makes sense. Is there any way to statically guarantee all possible exceptions (even defects) are handled? |
07:11:52 | leorize | also once you compile with -d:danger it will stop doing bound checks, etc |
07:12:09 | leorize | so Defects won't be raised anymore |
07:12:34 | FromDiscord | <Corax> oh right, yeah in that case I should not take the easy route, I don't want UB at the end of the day 😉 |
07:13:48 | leorize | minierolls: it's `import` that you should be using |
07:13:50 | leorize | not `include` |
07:13:59 | leorize | Nim is not C :P |
07:14:11 | minierolls | ooo! oops sorry haha |
07:14:33 | minierolls | yea that fixed everything >.< |
07:14:52 | minierolls | on an unrelated note, is it normal for nimpretty not to do anything |
07:15:02 | leorize | yes |
07:15:03 | FromGitter | <alehander42> Araq https://github.com/alehander42/Nim/commit/aeea7b665335c7ef7a4e705e20a4934e39ab08f5 |
07:15:11 | minierolls | ahh i see |
07:15:19 | minierolls | thanks for answering all my stupid questions |
07:15:26 | FromGitter | <alehander42> and also Araq https://github.com/nim-lang/Nim/commit/6ad5c25bb76ab4888c507693af0b264a1ac1eee0 |
07:15:31 | FromGitter | <alehander42> but this one is still WIP |
07:15:37 | Araq | commits? how about a PR? |
07:16:04 | narimiran | minierolls: if your code is already nicely formatted: yep |
07:18:38 | FromGitter | <alehander42> https://github.com/nim-lang/Nim/pull/12401 |
07:18:48 | FromGitter | <alehander42> its mostly very wip still i wanted to see |
07:18:54 | FromGitter | <alehander42> if the previous code can just be adapted |
07:18:56 | FromGitter | <alehander42> for that |
07:18:59 | FromGitter | <alehander42> but i have some problems |
07:19:04 | FromGitter | <alehander42> with default not nil |
07:19:44 | FromGitter | <alehander42> not sure if the places i touched are enough, and also i start to get some "fields not initialized" which are not obvious to me yet |
07:21:51 | * | couven92 joined #nim |
07:22:31 | * | Yardanico joined #nim |
07:22:34 | PMunch | Hmm, why isn't "koch install" in the --help for koch? |
07:23:57 | FromGitter | <gogolxdong> I'm not sure why htmlparser doesn't parse tags with suffix />, like ⏎ <col class="docinfo-name" /> |
07:23:59 | leorize | probably someone forgot to document it when they first added it to Nim |
07:24:04 | * | skoude joined #nim |
07:24:09 | FromDiscord | <Corax> is there no async recvFrom for sockets? |
07:24:19 | leorize | use asyncnet |
07:24:39 | leorize | if you want to do async on sockets you need asyncsockets |
07:24:46 | FromDiscord | <Corax> I'm using it, but I can't find recvFrom in it particularly |
07:24:50 | FromDiscord | <Corax> or any variation |
07:25:04 | FromDiscord | <Corax> I need to receive UDP and store the address of the sender |
07:25:45 | * | traviss joined #nim |
07:26:12 | * | traviss quit (Client Quit) |
07:26:26 | FromDiscord | <Corax> I see there is an old deprecated recvFromAsync, but it looks like it didn't carry over to the asyncnet module, unless I'm very blind (also possible) |
07:26:32 | FromGitter | <gogolxdong> like <input type="text" id="searchInput" onkeyup="search()" /> and <br /> |
07:27:19 | leorize | @Corax: seems like that it's not there |
07:27:34 | leorize | gogolxdong: I guess htmlparser wasn't meant for parsing xhtml |
07:28:13 | FromGitter | <gogolxdong> How to change ? |
07:28:39 | FromDiscord | <Corax> hmm that's a shame :/ I really needed async udp, but I guess that's something I could try and contribute with 🙂 |
07:30:22 | Araq | Corax: I know others use async udp but I don't know what patches it required to the stdlib |
07:30:32 | Araq | nor whether these patches made it back into Nim :P |
07:30:54 | Araq | I've been told though "it was easy..." |
07:31:03 | FromGitter | <gogolxdong> It's nim generated html document. |
07:32:47 | FromDiscord | <Corax> I can probably just hack it an reach in through getAddrString after a successful recv |
07:32:55 | FromDiscord | <Corax> thanks for the pointers though 🙂 |
07:33:00 | leorize | @gogolxdong it does work |
07:33:20 | leorize | !eval import htmlparser, xmltree; echo parseHtml"<br/>".htmlTag |
07:33:25 | NimBot | tagBr |
07:35:23 | FromGitter | <gogolxdong> I'm not sure, I'm using htmlparser to parse tut1.html which is generated by nim rst2html command, <input type="text" id="searchInput" onkeyup="search()" /> ⏎ <br /> and <col class="docinfo-name" /> are missing. |
07:35:52 | FromDiscord | <ZeeQyu> Is the nimbot limited in what it can do, or are we relying on the good manners of the users? |
07:36:05 | Araq | alehander42: I like it, clean patch so far |
07:36:08 | FromDiscord | <Corax> nvm I'm dumb, it's all in AsyncDispatch |
07:36:27 | Araq | not sure you need all these lookup tables in 'NilMap', but we can optimize it later |
07:37:35 | narimiran | @ZeeQyu you can try to break https://play.nim-lang.org/ privately (this is what nimbot uses), PMunch did some safety measures after it was broken the first time by Zevv |
07:38:28 | FromGitter | <gogolxdong> @leorize http://ix.io/1Ydj |
07:38:55 | Araq | gogolxdong: I had fixes for htmlparser I couldn't merge back yet |
07:39:07 | FromDiscord | <ZeeQyu> Yeah, I won't try to break the one that's here for everyone's convenience. That'd be rude. |
07:39:46 | leorize | it's better to be broken than someone abusing the system while we wasn't looking :P |
07:40:48 | FromGitter | <gogolxdong> Do you mind sharing with me first for a testing? |
07:42:15 | FromGitter | <gogolxdong> I'm writing a static HTML parser to Karax . Indentation level is tricky. |
07:42:52 | PMunch | ZeeQyu, to answer your question, it is pretty limited |
07:43:03 | FromGitter | <Vindaar> LTTP but congrats and yays to everyone (and especially Araq) on the 1.0 release! :) :) :) |
07:43:19 | PMunch | It can only run for a certain length of time, with a limit on CPU usage and RAM usage. And it has no network |
07:43:35 | PMunch | And of course the whole thing runs in a container that is deleted as soon as it is done |
07:43:36 | narimiran | @Vindaar oh look, it is Internet Explorer! :D |
07:43:57 | FromGitter | <Vindaar> what? :D |
07:44:07 | PMunch | Vindaar, oh man I think we're all out of cake at this point.. |
07:44:20 | PMunch | Might be some crusty leftover in the fridge though :) |
07:44:30 | narimiran | @Vindaar you know all the comics where IE responds way too late? |
07:44:56 | Araq | @Vindaar: thanks! |
07:45:19 | FromGitter | <Vindaar> @narimiran: actually no, but I think I avoid certain places on the web, haha. ⏎ @PMunch: oh well, it's fine. I had so much delicious food on vacation, I'm happy for the time being |
07:45:47 | narimiran | ah, you ruined my joke :P |
07:45:58 | FromGitter | <Vindaar> I'm sorry (; |
07:47:46 | * | broth joined #nim |
07:47:51 | PMunch | Vindaar: https://pbs.twimg.com/media/BMbnM6fCUAE1Vwu.jpg |
07:48:22 | FromGitter | <Vindaar> hahaha |
07:48:28 | FromGitter | <gogolxdong> I'm not good at handling this kind recursive parser and indentation level, can anyone spare some time to help me? |
07:48:28 | PMunch | Hmm, vacation sounds nice though.. |
07:48:44 | FromGitter | <Vindaar> oh yes. can recommend |
07:49:45 | FromGitter | <gogolxdong> http://ix.io/1Ydj |
07:51:16 | FromDiscord | <ZeeQyu> PMunch, yeah I assumed that was the case. I'll try to probe play.nim-lang.org and tell you if I find something there. Is the chat bot more limited than that site, or are they at parity? |
07:52:30 | FromGitter | <mratsim> AFAIK it uses the playground as a backend |
07:52:41 | FromGitter | <mratsim> If you break the playground you will break the bot |
07:53:04 | FromGitter | <mratsim> But you might only break the IRC layer and not the playground if you attack the bot |
07:53:23 | FromGitter | <alehander42> thanks God, a new day . |
07:53:46 | * | navinmistry joined #nim |
07:53:46 | FromGitter | <alehander42> hello mamy |
07:53:49 | PMunch | ZeeQyu, both the bot and the playground uses the same server |
07:53:50 | FromGitter | <alehander42> Araq, i still |
07:54:16 | FromGitter | <alehander42> wonder about the fields thing, it seems it happens for TNimType which is even not ref |
07:54:18 | FromGitter | <alehander42> ill debug it |
07:54:29 | PMunch | You can of course use the same calls as they use if you want to send things directly to the playground without using the site |
07:54:49 | * | floppydh joined #nim |
07:56:56 | * | solitudesf quit (Ping timeout: 276 seconds) |
08:01:36 | * | skoude quit (Ping timeout: 240 seconds) |
08:01:55 | euantor | Araq: I think there's some confusion about this PR: https://github.com/nim-lang/Nim/pull/12390#issuecomment-540449835 |
08:02:26 | euantor | I don't think a `when defined(openbsd)` is needed at all, but can understand how it could be confused based upon reading the comments |
08:02:47 | euantor | I'm not suggesting changing `findExe` except perhaps the part where it resolves symlinks |
08:08:34 | * | shomodj joined #nim |
08:14:51 | * | shomodj quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
08:17:08 | FromGitter | <me7> Hi, I want to help fix this open issue https://github.com/nim-lang/Nim/issues/12319 |
08:17:42 | FromGitter | <me7> but I don't know where is the source of finish.exe that's delete nim path after install twice |
08:17:57 | FromGitter | <me7> Could someone give a clue on this? |
08:19:17 | euantor | @me7: Check ehre for `finish.nim`: https://github.com/nim-lang/Nim/blob/devel/tools/finish.nim |
08:20:07 | FromGitter | <me7> Thank you, will check it |
08:24:47 | * | navinmistry quit (Remote host closed the connection) |
08:24:54 | * | navinmistry joined #nim |
08:27:37 | * | shomodj joined #nim |
08:29:34 | FromDiscord | <ZeeQyu> mratsim, PMunch: alright. |
08:30:23 | * | skoude joined #nim |
08:30:25 | * | NicQ joined #nim |
08:30:29 | FromDiscord | <ZeeQyu> Is there a nim equivalent to pythons import sys; sys.version and sys.version_info? That is, a way to check the current nim version from inside a program. |
08:30:33 | * | asymptotically joined #nim |
08:32:21 | FromDiscord | <ZeeQyu> Sorry, found it myself. NimVersion, defined in system.nim |
08:35:16 | * | traviss joined #nim |
08:35:23 | * | skoude quit (Ping timeout: 268 seconds) |
08:36:16 | Araq | euantor, this stuff is fragile and openbsd specific changes should be under 'when defined(openbsd)' |
08:36:20 | Araq | that's all I'm saying |
08:36:37 | * | theelous3 quit (Ping timeout: 268 seconds) |
08:36:48 | Araq | and don't change the other stuff, it works well and at the same time it's not covered by CIs |
08:45:39 | * | navinmistry quit (Remote host closed the connection) |
08:46:35 | * | navinmistry joined #nim |
08:46:38 | * | ng0 joined #nim |
08:47:37 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
08:47:52 | * | pbb joined #nim |
08:49:18 | * | skoude joined #nim |
08:54:42 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
08:54:57 | * | pbb joined #nim |
08:57:06 | PMunch | ZeeQyu, note that since these are known at compile-time you can use `when` instead of `if` to check against the version. This would mean that the decision is made on compile-time and will remove all the code you potentially don't need |
08:57:49 | * | skoude quit (Ping timeout: 250 seconds) |
09:02:16 | euantor | Araq: Fair enough, I'll make the change then |
09:07:43 | * | skoude joined #nim |
09:12:23 | * | skoude quit (Ping timeout: 268 seconds) |
09:15:25 | * | actuallybatman quit (Ping timeout: 265 seconds) |
09:17:28 | * | navinmistry quit (Ping timeout: 264 seconds) |
09:18:16 | PMunch | Started typing up an idea I had yesterday and realised it would be way to long over IRC: https://peterme.net/scraps/web-frameworks-in-nim.html |
09:23:17 | Zevv | who is in charge of the nimforum site these days? |
09:24:47 | Zevv | it has no favicon! |
09:25:01 | PMunch | Oh the horrors! |
09:25:25 | PMunch | Such a silly mistake to make as well.. |
09:26:34 | * | skoude joined #nim |
09:27:33 | PMunch | Hmm, what is the best way to deal with things like this? https://forum.nim-lang.org/t/5321 |
09:28:03 | PMunch | I mean, I cheated when I was playing around with my work-stealer and just said --gc:boehm |
09:28:06 | Zevv | excellent question |
09:28:23 | PMunch | But I feel like there should be a better way of dealing with things like this.. |
09:28:32 | * | stefantalpalaru joined #nim |
09:28:35 | Zevv | that has been an open question for some time |
09:28:59 | Zevv | there's sharedtables and some other niche solutions, but the overall story is still hard |
09:29:23 | PMunch | Just thinking out loud here, but would it be possible to have a global GC for a global heap, that would require some special global context? |
09:29:42 | Zevv | that's kind of your boehm, right |
09:30:29 | Zevv | I guess a lot of things *can* be done, but there is no easy solution for these kind of things at this time |
09:30:57 | Zevv | When I needed this I fell back to manual memory management |
09:31:01 | Zevv | and locking |
09:31:04 | Zevv | that works, but is not fun |
09:31:09 | PMunch | Well not quite, I was more thinking that each thread still have their own heap, so no stop the world GC. But if you want to access the global heap you acquire a lock for the global context, then you can do stuff there, potentially triggering it to garbage collect only the global heap. |
09:31:23 | PMunch | Yeah, that isn't great |
09:31:38 | PMunch | I guess what I want is more control over the garbage collector instances |
09:31:55 | Zevv | this is where araqsgc and newruntime should shine, IIUC |
09:32:04 | PMunch | So I could e.g. transfer a block of memory from one garbage collector to another |
09:32:27 | PMunch | Tell Nim which garbage collector context I'm currently in |
09:32:39 | Zevv | but what if you're referencing from more then one thread |
09:32:47 | PMunch | And of course be able to create new garbage collector instances manually |
09:34:00 | PMunch | Well that is the thing, with this kind of control you could write a library that would allow you to have a "shared heap" it would have its own GC instance, and to access it you would need to grab a lock, and then change to that context. Now everything you do while in that context is only registered with that GC, and the only GC you can trigger when in that context is that one. |
09:34:56 | * | skoude quit (Ping timeout: 240 seconds) |
09:37:27 | Araq | for reasons not obvious to me Boehm GC wins on most benchmarks I've looked at |
09:37:40 | PMunch | But it is stop-the-world right? |
09:37:44 | Araq | including the Nim compiler itself when you use it |
09:37:55 | Araq | (koch boot -d:release --gc:boehm) |
09:38:02 | PMunch | Huh, so I should compile Nim with that then? |
09:38:14 | Araq | if you want a faster Nim, it's an option |
09:38:50 | * | LargeEpsilon joined #nim |
09:38:51 | Araq | but my point is that "what are the thread local heaps for then?" |
09:38:53 | PMunch | How much faster? |
09:39:17 | Araq | depends on your OS, just give it a try |
09:39:41 | Araq | 3% over --gc:markAndSweep (which isn't the default either...) |
09:40:41 | Araq | but if boehm uses a shared heap, conceptually, this means the "thread local heaps" doesn't help performance much |
09:43:45 | PMunch | Hmm, that's a good point |
09:43:54 | PMunch | But throughput != latency |
09:44:05 | PMunch | I guess thread local heaps should be better for worst case scenario latency |
09:44:16 | PMunch | While potentially worse for overall throughput |
09:44:24 | PMunch | Depending on overall workload of course |
09:46:40 | Araq | the evidence that we have so far suggests thread local heaps aren't worth it and if "shared heap" is the new default, we don't have this split |
09:48:04 | Araq | I'm talking about "heap per thread" vs "single heap" only |
09:49:08 | PMunch | Would be interesting to run some tests on a machine with e.g. the new Ryzen chips with loads of physical cores |
09:49:29 | PMunch | To see if the lock-the-world phenomenon is more pronounced there. |
09:49:36 | Araq | oh make no mistake, the usual 'malloc' implementation is "thread local" too |
09:50:08 | Araq | there is an if statement like "if currentThreadID == page.owner: <fast path here>" |
09:50:28 | Araq | it's done at runtime |
09:50:39 | Araq | and don't burden the type system of the language |
09:53:02 | Araq | and now I should probably explain "araqsgc" to you... |
09:53:52 | Araq | gah all my Visual Studios say "license invalid" |
09:54:39 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
09:54:46 | FromDiscord | <Rika> time for renewal |
09:54:56 | * | pbb joined #nim |
09:55:23 | FromDiscord | <Rika> i like how jetbrains include the license expiry date on the startup splashes of their IDEs |
09:56:33 | PMunch | https://play.nim-lang.org/#ix=1YdM |
09:56:43 | PMunch | Woop woop, nimble packgaes now "available" for the playground |
09:57:07 | * | pbb quit (Client Quit) |
09:57:23 | * | pbb joined #nim |
09:59:41 | Araq | nice |
10:02:49 | * | skoude joined #nim |
10:04:14 | Araq | PMunch, the idea is to support Boehm's GC and araqsgc which is a hybrid, it supports manual freeing to give us "gradual" memory management. if you care about latency, add manual free calls until the GC never has to run. it's the only thing that really works well IMO having studied this problem for a decade now. |
10:06:36 | * | broth quit (Ping timeout: 240 seconds) |
10:12:21 | * | NicQ quit (Read error: Connection reset by peer) |
10:12:37 | * | NicQ joined #nim |
10:12:49 | * | skoude quit (Ping timeout: 268 seconds) |
10:15:53 | stefantalpalaru | How about having a stabilisation period, like the Linux kernel, instead of cherry-picking commits from "devel" into "version-1-0" before tagging a release? |
10:16:22 | stefantalpalaru | It should simplify things for you. |
10:20:27 | stefantalpalaru | (and avoid bugs introduced by newer commits depending on code in those older commits you're skipping) |
10:21:42 | leorize | at one point you will have to get back to backporting |
10:22:06 | * | adeohluwa joined #nim |
10:23:18 | * | broth joined #nim |
10:24:00 | stefantalpalaru | For bugfix releases between stabilisation periods? Those will probably involve much fewer commits than the current scheme. |
10:25:57 | PMunch | Araq, how does araqsgc compare to boehm and the native one? |
10:26:35 | PMunch | By the way, trying to add --gc:boehm to the Nim build in a docker image gave me an error about libgc.so.1 missing, is there some package I need to install? |
10:27:03 | narimiran | stefantalpalaru: what do you mean by "stabilization period"? a period where there are no new commits/cherrypicks to a branch, and it is in the test phase? |
10:29:02 | stefantalpalaru | No new features. It would work like this: 2 weeks feature frenzy when contributors go crazy, followed by 2 weeks of stabilisation where there are no new features, just bug fixes. At the end, you have a stable "devel" that you can tag and release. |
10:29:19 | stefantalpalaru | Rinse, repeat. |
10:30:02 | stefantalpalaru | PMunch, look for a package named "beohm-gc" or similar. |
10:30:14 | stefantalpalaru | *boehm-gc |
10:30:31 | FromDiscord | <Rika> PMunch, TIL termstyle, thanks |
10:30:50 | PMunch | Rika, haha yeah it was the simplest package I could think of :P |
10:31:01 | PMunch | But it's suprisingly useful |
10:31:36 | PMunch | I often colour code my log statements if I'm logging a lot, makes it waaay easier to see the flow of a program |
10:32:01 | narimiran | stefantalpalaru: something like that is happening on our backport branch for v1.0.2 |
10:32:41 | stefantalpalaru | No. That's cherry-picking and it's dangerous. |
10:33:06 | * | nif quit (Quit: ...) |
10:33:07 | stefantalpalaru | Commits are not atomic. They might depend on some of those commits you're skipping. |
10:33:11 | narimiran | bugfixing can also be dangerous |
10:33:16 | * | nif joined #nim |
10:33:40 | stefantalpalaru | ಠ_ಠ |
10:34:21 | * | LargeEpsilon quit (Ping timeout: 246 seconds) |
10:34:25 | FromGitter | <me7> dear @Araq, for issue https://github.com/nim-lang/Nim/issues/12319 that tag for hacktoberfest |
10:34:36 | PMunch | stefantalpalaru, apparently it's only called "gc" on Alpine :) |
10:34:47 | stefantalpalaru | Weird. |
10:34:51 | * | NicQ quit (Ping timeout: 240 seconds) |
10:34:57 | FromGitter | <me7> I've checkout devel branch and test. Found that it's already fixed duplicate paht |
10:34:59 | * | NicQ joined #nim |
10:35:08 | FromGitter | <me7> maybe you can close it? |
10:35:43 | FromGitter | <me7> I tested on my windows machine |
10:35:44 | * | NicQ quit (Read error: Connection reset by peer) |
10:36:01 | * | NicQ joined #nim |
10:36:36 | narimiran | @me7 write that as a comment there. tell OP to re-test it with the latest devel |
10:37:02 | FromGitter | <me7> Ok, thank |
10:37:40 | narimiran | i'm guessing this is the commit that fixed it: https://github.com/nim-lang/Nim/commit/657e09e79deabe6304ead7759a4fdcfeb5fd022b |
10:38:02 | narimiran | if you want, you can revert it and see if you can then reproduce the reported bug |
10:38:31 | narimiran | and if that's the case, we can then confidently close that issue |
10:39:54 | * | skoude joined #nim |
10:42:15 | * | NicQ quit (Ping timeout: 250 seconds) |
10:43:01 | * | NicQ joined #nim |
10:43:44 | * | NicQ quit (Read error: Connection reset by peer) |
10:43:54 | * | NicQ joined #nim |
10:47:49 | * | NicQ quit (Read error: Connection reset by peer) |
10:48:07 | * | lritter quit (Remote host closed the connection) |
10:48:34 | * | NicQ joined #nim |
10:49:14 | * | skoude quit (Ping timeout: 240 seconds) |
10:51:09 | * | solitudesf joined #nim |
10:52:20 | * | NicQ quit (Read error: Connection reset by peer) |
10:53:04 | * | NicQ joined #nim |
10:53:45 | * | NicQ quit (Read error: Connection reset by peer) |
10:53:53 | * | NicQ joined #nim |
10:57:18 | leorize | Araq, nc-x: https://github.com/nim-lang/Nim/pull/12404 |
10:57:59 | * | r3c quit (Ping timeout: 260 seconds) |
10:58:49 | * | NicQ is now known as noxious |
10:58:57 | * | skoude joined #nim |
10:59:57 | * | ng0 quit (Remote host closed the connection) |
11:00:07 | * | noxious is now known as noxiousnic |
11:00:29 | * | asymptotically2 joined #nim |
11:00:32 | * | asymptotically is now known as Guest37136 |
11:00:32 | * | asymptotically2 is now known as asymptotically |
11:00:43 | * | noxiousnic is now known as NicQ |
11:00:47 | * | Guest37136 quit (Remote host closed the connection) |
11:04:13 | leorize | while the algorithm has been improved, this alone is not enough for usage by nimsuggest users yet |
11:04:39 | * | LargeEpsilon joined #nim |
11:04:47 | leorize | nimsuggest needs to be able to communicate the project file used, so that plugin writers know what project is covered by nimsuggest |
11:05:29 | PMunch | Hmm, what do you think is the best approach to the packages on the playground. I'm not trying to install all the packages in the important_packages list, but I see that there are a lot of things there which aren't really useful to have in the playground |
11:05:32 | leorize | and optionally a switch to "attempt" detection should be there so that plugin writers don't have to launch nimsuggest twice if it couldn't find the project file |
11:06:48 | leorize | PMunch: the PR above is what you'd want for nimlsp :) |
11:08:14 | * | NicQ quit (Quit: Quit) |
11:08:56 | * | skoude quit (Ping timeout: 268 seconds) |
11:09:13 | * | NicQ joined #nim |
11:16:19 | * | ng0 joined #nim |
11:18:29 | * | madpata joined #nim |
11:20:24 | madpata | Is it possible to use the httpclient module when compiling to JS? I get an error from nativesockets.nim when importing the module |
11:23:16 | * | ng0_ joined #nim |
11:24:00 | lqdev[m] | I think the only way is to use XMLHttpRequests |
11:24:10 | lqdev[m] | dunno if there's a wrapper in the stdlib |
11:24:23 | * | ng0 is now known as Guest59160 |
11:24:23 | * | ng0_ is now known as ng0 |
11:26:08 | * | Guest59160 quit (Ping timeout: 260 seconds) |
11:28:35 | madpata | There is a nimble package 'ajax'. I'll give that a shot. |
11:31:56 | Araq | leorize, why? that's what 'known' is for |
11:32:13 | Araq | you can ask nimsuggest if the .nim file is part of the project already (if it is "known") |
11:34:25 | * | adeohluwa left #nim (#nim) |
11:34:38 | * | adeohluwa joined #nim |
11:34:41 | * | adeohluwa quit (Remote host closed the connection) |
11:35:24 | FromGitter | <alehander42> stefantalpalaur |
11:35:37 | FromGitter | <alehander42> stefantalpalaru's idea for freezing period |
11:35:40 | FromGitter | <alehander42> sounds good |
11:37:12 | * | rockcavera joined #nim |
11:37:38 | leorize[m] | if i use 3 nimsuggest instances it would mean that I have to iterate through them and wait for the reply before I can decide if I want to launch a new instance |
11:37:56 | leorize[m] | also, it won't work for new files |
11:40:33 | * | skoude joined #nim |
11:41:03 | FromDiscord | <Rika> do openarrays work any differently as a return parameter vs a seq? |
11:42:21 | Zevv | Am I stupid? https://play.nim-lang.org/#ix=1Ye5 |
11:43:45 | FromDiscord | <Rika> wtf |
11:43:53 | Araq | alehander42: it doesn't work well, so we stop for 2 weeks merging PRs. our PR queue and feedback cycle is already discouraging |
11:44:12 | Araq | and what do we gain? nothing |
11:44:36 | Araq | people try 1.1.0 or 1.0.2 and report regressions just like today. |
11:44:53 | * | shomodj_ joined #nim |
11:45:15 | * | skoude quit (Ping timeout: 265 seconds) |
11:45:33 | FromGitter | <alehander42> the point is to not merge new features in the 1.0.2 i guess, like "those are all the features in 1.0.2, others go into 1.0.4" |
11:45:39 | FromGitter | <alehander42> or maybe i am not understanding it |
11:45:46 | FromDiscord | <Rika> Zevv, https://play.nim-lang.org/#ix=1Ye6 |
11:45:51 | Araq | we don't merge features to 1.0.2 |
11:47:30 | * | shomodj quit (Ping timeout: 246 seconds) |
11:52:11 | jken | Is there a syntax in nim for testing if all elements of a hashmap are also keys in a table| |
11:52:47 | jken | s/hashmap/hashset |
11:58:05 | Araq | allIt(for v in values(mymap): v in it) |
11:58:31 | Araq | but it requires some for-loop macro extension |
11:58:56 | Araq | iirc alehander42 had some nice package for it? |
12:08:56 | Zevv | ooh again the static thing, d**n, I knew that |
12:16:00 | leorize | @Rika: they are different in that you can't return an openarray :P |
12:16:18 | FromDiscord | <Rika> i see a lot of procs with openarray return types though |
12:16:31 | FromDiscord | <Rika> perhaps theyre all magics? |
12:17:01 | FromDiscord | <Rika> ah yeah theyre just toOpenArray procs |
12:23:33 | * | madpata quit (Ping timeout: 268 seconds) |
12:29:27 | PMunch | leorize, which one? |
12:29:48 | leorize | https://github.com/nim-lang/Nim/pull/12404 |
12:35:20 | * | dddddd joined #nim |
12:37:42 | PMunch | The playground will be down for a little while |
12:40:09 | PMunch | leorize, aha so I can skip this then: https://github.com/PMunch/nimlsp/blob/master/src/nimlsp.nim#L115-L138 |
12:42:10 | * | skoude joined #nim |
12:54:54 | * | shomodj_ quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
12:56:38 | * | Vladar joined #nim |
12:59:17 | * | shomodj joined #nim |
12:59:26 | PMunch | There, the playground is back up, and with many more packages: https://play.nim-lang.org/#ix=1Yem |
13:07:59 | PMunch | Hmm, we have our call for participation for FOSDEM ready. Would it be possibly to do a blog-post with it for visibility? Or should I stick to posting it on the forums/reddit/link it here? |
13:10:04 | PMunch | Damn it, the syntax of procedures is impossible to recreate for other things |
13:10:34 | PMunch | Like I can't create something that allows me to create a new thing alongside proc/func/macro/template |
13:12:51 | PMunch | https://play.nim-lang.org/#ix=1Yeq |
13:25:50 | * | skoude quit (Ping timeout: 268 seconds) |
13:27:47 | * | xace quit (Ping timeout: 250 seconds) |
13:35:39 | PMunch | Hmm, what are the rules for when doc-comments enter the AST? |
13:37:03 | Zevv | I believe they must be first thing in a proc, if that is what you mean? |
13:38:01 | PMunch | Yeah, you can have them for procs, types, and vars |
13:38:19 | FromDiscord | <kodkuce> yey reached half exercism done |
13:38:23 | PMunch | I wanted to play with doc comments for routes in jester.. |
13:38:41 | FromGitter | <alehander42> PMunch |
13:38:47 | FromGitter | <alehander42> good idea about the jester thing |
13:39:12 | PMunch | Yeah, but it appears like it will be hard to implement the way I thought.. |
13:39:12 | FromGitter | <alehander42> i think you should look at other REST-api self-documenting or similar things |
13:39:24 | FromGitter | <alehander42> i wanted to write something like that for REST or graphql |
13:39:37 | FromGitter | <alehander42> like, a simple definition with type checked routes and endpoints |
13:39:41 | FromGitter | <alehander42> but not sure if its similar |
13:39:53 | FromGitter | <alehander42> the `explanation` thing is more interesting |
13:40:13 | FromGitter | <alehander42> maybe one can just autocheck the comments somehow, at least for your example |
13:40:15 | PMunch | This thing? https://github.com/PMunch/explanations |
13:40:31 | FromGitter | <alehander42> it seems that one can infer that the numbers just change and generate a warning |
13:40:32 | FromGitter | <alehander42> yes |
13:40:55 | PMunch | That the numbers change? |
13:41:20 | PMunch | Oh, I just thought of the ugliest hack to lift doc comments into the code :P |
13:42:03 | PMunch | Use the "which line is this statement from" feature to see if lines are missing at the start. Then read the original source file and grab those lines from the file :P |
13:42:12 | PMunch | Then check if they have ## and take them |
13:42:57 | FromGitter | <alehander42> well |
13:43:01 | FromGitter | <alehander42> you write your comment in english |
13:43:20 | FromGitter | <alehander42> and then a macro can detect |
13:43:31 | FromGitter | <alehander42> you use different numbers in it than in the code |
13:43:35 | FromGitter | <alehander42> without any syntax |
13:43:50 | FromGitter | <alehander42> #for a < 100 stuff otherwise for a < 1000 stuff ⏎ ⏎ if a < 102: ⏎ .. [https://gitter.im/nim-lang/Nim?at=5d9f3595203e42147381c682] |
13:44:05 | PMunch | Oh wait, doc comments get there if it's the first thing in a StmtList as well |
13:44:13 | PMunch | That makes it easier |
13:44:49 | FromGitter | <alehander42> otherwise for REST you might also like the typestate pattern |
13:44:59 | FromGitter | <alehander42> but i am not sure it actually applies in this case |
13:45:08 | PMunch | Ech, that sounds hard to get right.. |
13:45:32 | jken | Araq, what benefit does the `allit` example you posted have over using all() like this? https://play.nim-lang.org/#ix=1Yev |
13:45:42 | jken | Does it avoid the conversion from HashSet to seq? |
13:51:09 | leorize | jken: allIt avoids the creation of a closure |
13:51:16 | leorize | instead it inlines everything |
13:52:21 | jken | Are closures considered expensive? |
13:57:01 | FromGitter | <alehander42> depends on the usecase i guess |
13:57:23 | FromGitter | <alehander42> i'd say one should profile his code and not use them only if its bottleneck |
13:57:49 | FromGitter | <alehander42> i'd say they are slightly more expensive, but should be fine for many projects |
14:05:58 | * | madpata joined #nim |
14:09:50 | * | asymptotically quit (Quit: Leaving) |
14:10:27 | * | Kaivo quit (Ping timeout: 240 seconds) |
14:11:12 | * | Kaivo joined #nim |
14:14:03 | PMunch | Who's up for an ungly hack? |
14:14:24 | * | NimBot joined #nim |
14:14:55 | PMunch | alehander42, this is what I was thinking of when I was talking about an ugly hack to read doc comments that didn't make it into the AST: https://play.nim-lang.org/#ix=1YeA |
14:15:07 | PMunch | But just typing out that code made me feel dirty inside |
14:15:57 | PMunch | NimBot, you okay? |
14:16:03 | PMunch | !eval echo "Yes :)" |
14:16:06 | NimBot | Yes :) |
14:16:11 | PMunch | Yay :) |
14:17:36 | FromGitter | <alehander42> nothing dirty |
14:17:39 | FromGitter | <alehander42> ok but |
14:17:45 | FromGitter | <alehander42> i dont understand how it is applied? |
14:18:12 | FromGitter | <alehander42> like, e.g. i write a block describing all my endpoints and it autogenerates doc |
14:19:17 | PMunch | Well the idea was to have a doc-comment for the route, that would explain what it did, and the inputs it takes (this is similar to how regular doc comments work today for procedures) |
14:19:57 | PMunch | Then it would use something similar to explanations to annotate all the responses and errors it could create, which would also be put into the documentation |
14:20:40 | FromGitter | <alehander42> great idea |
14:21:06 | FromGitter | <alehander42> really, id like to see it |
14:21:16 | FromGitter | <alehander42> but i'd suggest to still try to move |
14:21:21 | PMunch | And with a combination of the return type, the .raises. information (create custom exceptions for each HTTP error), and the documentation comments you would get a pretty good overview of your API. |
14:21:22 | FromGitter | <alehander42> whataver's possible in types |
14:21:28 | FromGitter | <alehander42> and use expl only for edge cases |
14:21:41 | PMunch | Hmm, what do you mean |
14:21:51 | FromGitter | <alehander42> for your example with explanation |
14:22:28 | FromGitter | <alehander42> e.g. i can imagine using range types |
14:22:50 | FromGitter | <alehander42> but not sure if its easy to do |
14:23:25 | FromGitter | <alehander42> but in any case, my point is mostly this: to think of ways that most usual inputs/output relationships can be decoded directly as types |
14:24:34 | FromGitter | <alehander42> and of course when this is too hard, then to use expl |
14:25:18 | FromGitter | <alehander42> but i agree that with comments |
14:25:29 | FromGitter | <alehander42> your `explanations` would look better |
14:25:51 | FromGitter | <alehander42> you can do of low(int) .. 100 # with lower limit of $1 |
14:26:06 | * | broth quit (Quit: Leaving) |
14:26:12 | FromGitter | <alehander42> and dont even repeat anything in documentation: autoadding the values from the code to the docs |
14:27:23 | FromGitter | <alehander42> right? if thats what you intended to do the whole time, sorry : ) |
14:27:44 | FromDiscord | <Rika> okay last time i asked this i was confused; is the pure pragma still functional for enums? |
14:28:22 | PMunch | alehander42, oh that might be possible.. |
14:28:47 | PMunch | Too bad I need this ugly hack to read those doc-comments though.. |
14:29:25 | PMunch | It's pretty brittle as well.. |
14:29:57 | FromGitter | <alehander42> but you dont? |
14:30:06 | PMunch | Don't what? |
14:30:08 | FromGitter | <alehander42> i mean, what is the hack |
14:30:15 | PMunch | Didn't you see the paste? |
14:30:15 | FromGitter | <alehander42> you need a macro of course |
14:30:24 | FromGitter | <alehander42> mate i love macros |
14:30:37 | PMunch | Did you read the macro? |
14:31:09 | FromGitter | <alehander42> well, it works |
14:31:12 | FromGitter | <alehander42> so its not ugly |
14:31:14 | FromGitter | <alehander42> but i think |
14:31:17 | FromGitter | <alehander42> this is not needed indeed |
14:31:30 | PMunch | It takes the line info from the line it's looking at, then opens the file its in, goes to that line. Then steps over the repr of the statement and the contents of the file until the repr is completed. Then it looks for ## and if it finds it extracts its conten.. |
14:31:31 | FromGitter | <alehander42> i am sure docstrings and comments were supposed to be |
14:31:33 | FromGitter | <alehander42> in the nodes |
14:31:41 | FromGitter | <alehander42> because krux02 was working |
14:31:44 | FromGitter | <alehander42> on something like that |
14:31:54 | PMunch | Yeah, apparently that only aplies to certain parts of the code.. |
14:32:03 | FromGitter | <alehander42> function-level? |
14:32:13 | PMunch | Like if you have loose comments in a StmtList they seem to work |
14:32:27 | krux02 | yea docstrings are a bit nasty. |
14:32:52 | FromGitter | <alehander42> hmm so are only `##` supported |
14:32:55 | krux02 | as long as doc strings are in their own line, they become a comment statemnt |
14:33:12 | PMunch | Yeah |
14:33:25 | krux02 | but if they are attached to something else, they are stored in a hidden field of the nim node. |
14:33:33 | krux02 | this was just a lazy implementation |
14:33:40 | FromGitter | <alehander42> but can it be accessed |
14:34:05 | * | Kaivo quit (Ping timeout: 276 seconds) |
14:34:11 | krux02 | it totally destroys the memory smallness of nimnodes |
14:34:23 | PMunch | Example: https://play.nim-lang.org/#ix=1YeF |
14:34:43 | PMunch | Wait, they are stored in a hidden field? |
14:34:47 | krux02 | there was the ambition to properly design this, but nothing can be done that would be backwards compatible |
14:34:54 | FromGitter | <alehander42> `.comment` |
14:35:09 | FromGitter | <alehander42> ok, so is it supposed to be exposed with macros |
14:35:25 | FromGitter | <alehander42> or its still unstable |
14:35:34 | krux02 | no not exposed with macros, the idea was to expose then as separate, visible nodes in the ast |
14:35:43 | krux02 | but where to put them? |
14:35:50 | krux02 | there is no space for them |
14:35:51 | FromGitter | <alehander42> hm, well cant we have an accessor |
14:36:00 | FromGitter | <alehander42> to the node that has the `.comment` field anyway |
14:36:27 | FromGitter | <alehander42> otherwise i guess after the node? |
14:36:41 | FromGitter | <alehander42> if they are before the node, they are either on new line, so they have a node |
14:37:04 | FromGitter | <alehander42> or are after a previous node, so they're probably comment for previous |
14:37:56 | jken | What does "Error: cannot evaluate at compile time: systemCount" mean? |
14:38:01 | * | Kaivo joined #nim |
14:38:10 | jken | Its refering to me calling inc() on a var systemCount: int |
14:38:16 | FromGitter | <alehander42> it's not const |
14:38:31 | FromGitter | <alehander42> and you're using it in static context |
14:38:55 | FromGitter | <alehander42> you can have var a {.compileTime.}: int iirc (is this still) |
14:39:05 | PMunch | Yeah, that's right |
14:39:12 | PMunch | But about the NimNodes and comments |
14:39:23 | PMunch | As long as I can grab the comment I'm fine with it |
14:41:07 | PMunch | Ah, NimNodes are a magic.. |
14:41:43 | FromGitter | <alehander42> but this is not a problem i think |
14:41:49 | * | nsf quit (Quit: WeeChat 2.5) |
14:42:11 | FromGitter | <alehander42> i think the problem is they still want to not have .comment |
14:42:24 | PMunch | Why? |
14:42:28 | krux02 | PMunch: you should discuss this with Araq. I think we should give up the idea that some day we can remove the comment field of the NimNode that extends every Node by 8 bytes even though most nodes don't have a comment at all. |
14:42:32 | PMunch | That is exactly the thing I would want for this.. |
14:43:16 | PMunch | Yeah while that is not a great situation if I can't even access the comment then it's just waste.. |
14:43:24 | PMunch | But if I can access it then I'm good |
14:43:28 | FromGitter | <alehander42> so the problem is that new comment nodes would break existing macros? |
14:43:33 | PMunch | That would be exactly the thing I need to implement this |
14:43:45 | krux02 | yes new comment nodes would break existing macros. |
14:43:46 | PMunch | Yeah that would likely be a bad time |
14:43:59 | krux02 | you cannot suddenly put nodes into the ast that were never there before. |
14:44:06 | PMunch | But I don't think a lot of macro calls have stray doc comments lying around.. |
14:44:20 | krux02 | I worked on a branch where I tried to have minimal breaking change |
14:44:59 | FromGitter | <alehander42> well if .comment remains, it can be still exposed |
14:45:04 | krux02 | instead of nnkPostFix nodes for the export marker, have an nnkExportDoc nods that containst the symbol and a comment field |
14:45:34 | krux02 | this would still break macros, but it would break them in a way that would be straight forward to fix. |
14:46:41 | * | couven92 quit (Quit: Client disconnecting) |
14:46:54 | PMunch | But is it possible to get the comment of a node? |
14:47:05 | PMunch | From the hidden field? |
14:47:12 | PMunch | Or is that information just, gone? |
14:47:12 | krux02 | no it isn't |
14:47:16 | PMunch | Why? |
14:47:40 | PMunch | Adding a .comment accessor to NimNodes wouldn't break anything, and it would expose the comments |
14:47:50 | krux02 | the information isn't gone it is just not exposed to the macros. and the hope was to keep it as an implementation detail that can be removed later. |
14:48:29 | krux02 | but just discuss it with Araq nicely. |
14:48:36 | PMunch | Yeah I will :) |
14:48:53 | krux02 | I have to go now |
14:49:05 | PMunch | Because if I had access to the comments I could do some cool stuff with auto-generation of documentation :) |
14:49:07 | PMunch | Same |
14:49:10 | PMunch | Bye |
14:49:12 | * | PMunch quit (Remote host closed the connection) |
14:49:16 | Araq | meh |
14:49:56 | shashlick | @Araq thanks for sharing that article on the cost of waiting |
14:50:14 | shashlick | Wish it had a real solution though, article wasn't too useful at that |
14:50:36 | shashlick | Cause getting quick feedback means interrupting the flow of the reviewer as well |
15:06:48 | * | fanta1 joined #nim |
15:11:37 | * | NicQ quit (Ping timeout: 240 seconds) |
15:12:30 | * | NicQ joined #nim |
15:12:35 | * | floppydh quit (Quit: WeeChat 2.6) |
15:19:16 | shashlick | @disruptek, @leorize - nimterop now creates all artifacts in nimcache and is capable of searching for standard libs before falling back on git/tgz |
15:20:38 | * | NicQ quit (Read error: Connection reset by peer) |
15:21:19 | * | NicQ joined #nim |
15:21:45 | FromGitter | <alehander42> pmunch cool about the packages on playground tho |
15:22:18 | * | fanta1 quit (Quit: fanta1) |
15:39:49 | * | matlock joined #nim |
15:41:11 | * | matlock quit (Client Quit) |
15:43:29 | * | NicQ quit (Read error: Connection reset by peer) |
15:43:45 | * | NicQ joined #nim |
15:46:36 | * | Trustable joined #nim |
15:51:23 | * | matlock joined #nim |
16:02:36 | * | NicQ quit (Read error: Connection reset by peer) |
16:03:20 | * | NicQ joined #nim |
16:09:19 | * | nif quit (Quit: ...) |
16:09:31 | * | nif_ joined #nim |
16:10:00 | * | LargeEpsilon quit (Ping timeout: 246 seconds) |
16:18:10 | * | adeohluwa joined #nim |
16:18:23 | * | shomodj quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
16:23:34 | * | actuallybatman joined #nim |
16:24:30 | * | Trustable quit (Remote host closed the connection) |
16:25:28 | * | Trustable joined #nim |
16:25:37 | * | NicQ quit (Read error: Connection reset by peer) |
16:26:26 | * | NicQ joined #nim |
16:40:57 | Zevv | Woohoo! |
16:41:05 | Zevv | Pmuch coool stuff |
16:44:19 | Zevv | and why these 115 packages? |
16:50:49 | shashlick | @PMunch any chance of adding nimterop to playground? |
16:51:19 | Zevv | there you go :) |
16:52:10 | * | NicQ quit (Read error: Connection reset by peer) |
16:53:00 | * | NicQ joined #nim |
16:56:10 | * | matlock quit (Read error: Connection reset by peer) |
16:57:50 | * | NicQ quit (Read error: Connection reset by peer) |
16:58:01 | * | NicQ joined #nim |
16:59:06 | adeohluwa | i want to contribute ..... |
17:01:05 | * | NicQ quit (Client Quit) |
17:02:23 | adeohluwa | https://github.com/nim-lang/needed-libraries/issues/90 |
17:02:53 | adeohluwa | https://github.com/nim-lang/needed-libraries/issues/101 |
17:09:57 | * | nsf joined #nim |
17:10:03 | * | adeohluwa quit (Ping timeout: 240 seconds) |
17:11:24 | jken | Do tables have an addOrUpdate type method? |
17:11:39 | jken | Docs say add can result in duplicate keys |
17:11:51 | zedeus | just use `[]` |
17:12:01 | zedeus | `table["key"] = value` will "add or update" |
17:12:10 | jken | oh, duh, |
17:12:15 | jken | thanks zedeus |
17:15:40 | Zevv | adeohluwa: please do! |
17:16:03 | Zevv | note that #90 is actively under development by disruptek |
17:16:06 | Araq | btw I'll be offline tomorrow until Tuesday |
17:16:23 | Zevv | business or pleasure? |
17:16:38 | Zevv | if the latter, happy holidays! |
17:16:58 | Araq | pleasure :-) |
17:17:02 | Araq | thanks |
17:17:35 | disruptek | i just pushed a google api update last night. |
17:22:25 | Araq | nice, does that imply GCE support? |
17:22:53 | disruptek | all 172 apis/versions, yes. |
17:23:00 | Araq | :O |
17:23:06 | Araq | LookupError: unknown encoding: cp65001 |
17:23:21 | Araq | ^ Python is good at Unicode, always remember :P |
17:25:20 | * | adeohluwa joined #nim |
17:30:40 | * | adeohluwa quit (Remote host closed the connection) |
17:42:30 | * | skoude joined #nim |
17:45:00 | * | adeohluwa joined #nim |
17:46:55 | * | skoude quit (Ping timeout: 250 seconds) |
17:48:31 | FromGitter | <Kiloneie> What a day, no internet... -, - |
18:02:21 | * | crem quit (Ping timeout: 246 seconds) |
18:02:52 | FromDiscord | <juan_carlos> Can I explicitly convert a `tuple` into `varargs`?. |
18:04:26 | FromDiscord | <juan_carlos> Like I have a `proc` that expect `varargs` and I have a `tuple`, if I pass the `tuple` it fails. |
18:06:26 | * | adeohluwa quit (Ping timeout: 240 seconds) |
18:24:15 | * | rockcavera quit (Remote host closed the connection) |
18:28:41 | Araq | usually you should have used array[N, T] to begin with and not a tuple |
18:29:00 | * | sagax quit (Remote host closed the connection) |
18:31:04 | FromDiscord | <juan_carlos> Mixed types. |
18:31:33 | Araq | then you cannot convert it to 'varargs' at all (unless it's a macro) |
18:31:52 | FromDiscord | <juan_carlos> Ok |
18:32:03 | Araq | we could have macros.unpackTuple |
18:32:14 | Araq | but we don't... :-( |
18:33:02 | FromDiscord | <juan_carlos> No drama lama |
18:39:17 | * | xace joined #nim |
18:42:56 | * | sagax joined #nim |
18:55:58 | * | r3c joined #nim |
18:56:06 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
18:58:13 | * | dddddd quit (Ping timeout: 268 seconds) |
18:59:25 | * | dddddd joined #nim |
19:29:36 | * | couven92 joined #nim |
19:43:52 | * | rockcavera joined #nim |
19:45:06 | * | PMunch joined #nim |
19:48:02 | PMunch | Araq, you on vacation already? |
19:49:51 | * | doesntgolf joined #nim |
19:50:45 | PMunch | And Zevv and shashlick, about the playground. The packages are from important_packages file, it was just to have a selection really :P And to add a new one simply make a PR to the list :) |
19:58:01 | FromDiscord | <juan_carlos> So `$toStrLit` is like the reverse of `newLit`, interestin' 😅 |
20:04:09 | PMunch | juan_carlos, did you see that I added nimpy to the playground? :) |
20:06:22 | FromDiscord | <juan_carlos> Ye, I 💚 on the Bug. |
20:06:52 | shashlick | @PMunch - ya need to add nimterop to the important packages |
20:07:02 | shashlick | @narimiran tried a while ago and ran into issues |
20:07:14 | PMunch | shashlick, you need to add it :) Just add a PR |
20:07:28 | shashlick | concern is that nimterop uses gorge a lot, not sure if you block that |
20:10:01 | PMunch | Nope |
20:10:16 | PMunch | It runs in a container and is allowed to do pretty much what it wants :) |
20:10:26 | PMunch | What is it gorging? |
20:10:27 | shashlick | well then it is party time |
20:10:59 | shashlick | it can run configure/cmake/make, followed by toast/c2nim to convert h => nim |
20:11:21 | shashlick | anything you'd do manually for wrappers, nimterop aims to automate |
20:12:08 | PMunch | Ah.. |
20:12:18 | PMunch | So it's running on a super minimal alpine base |
20:12:29 | PMunch | So it doesn't have make IIRC |
20:12:33 | PMunch | Or c2nim |
20:12:42 | PMunch | Or cmake |
20:13:02 | PMunch | Possible not toast either, not sure what that is |
20:13:08 | shashlick | those are optional |
20:13:30 | shashlick | toast is the binary in nimterop that does the wrapping, similar to c2nim but uses tree-sitter to do the C => AST |
20:13:49 | shashlick | but ya, might be a long shot to run the full wrapper process on each run |
20:14:16 | PMunch | Yeah you're pretty limited on time and CPU speed.. |
20:14:21 | PMunch | So it might just time out every time |
20:14:41 | PMunch | You could try though.. |
20:14:54 | PMunch | Building the docker image is easy |
20:15:03 | shashlick | do you clean up everything after each call |
20:15:19 | PMunch | Yup, the container is purged |
20:15:38 | shashlick | so if i run a script, edit a line and run again, it is a new container? |
20:15:45 | PMunch | Yes |
20:16:00 | shashlick | ok seems quite heavy but probably necessary |
20:16:23 | PMunch | I mean the image is always the same |
20:17:17 | PMunch | It maps a folder in /tmp into the container, then it starts a container from the image and runs the code. When the container is completed or times out it is deleted and the logs are read from the directory |
20:17:22 | PMunch | Then that directory is deleted |
20:18:24 | shashlick | cool |
20:18:49 | shashlick | i guess nimterop is pointless unless we install some ready wrappers |
20:21:48 | PMunch | Yeah I'm not sure what you'd use it for :P |
20:24:25 | PMunch | nimterop failed to install: gcc: error trying to exec 'cc1plus': execvp: No such file or directory |
20:24:38 | PMunch | Probably the minimal alpine container missing something |
20:28:39 | r3c | Hi, any suggestions how to start new backend from the existing JS backend? |
20:28:56 | r3c | How do you debug the compiler? |
20:29:16 | * | madpata quit (Quit: Lost terminal) |
20:29:23 | * | rayman22201 joined #nim |
20:31:07 | rayman22201 | @narimiran or any nim CI people around? I'm not sure where to go with my PR here: https://github.com/nim-lang/Nim/pull/12371 |
20:32:03 | shashlick | @PMunch - not sure about that |
20:32:18 | shashlick | seems like g++ is not installed |
20:32:50 | * | PMunch quit (Remote host closed the connection) |
20:33:12 | * | PMunch joined #nim |
20:33:15 | shashlick | @rayman22201 - do you think it is a ulimit issue? |
20:34:28 | rayman22201 | not any more. I lowered the number of FD's significantly in my last commit. |
20:34:53 | rayman22201 | It was a ulimit issue for Azure, as soon as I lowered it, Azure passes. |
20:35:39 | * | narimiran quit (Ping timeout: 268 seconds) |
20:35:45 | rayman22201 | As soon as Azure passed, AppVeyor failed. |
20:37:06 | rayman22201 | Can I convince somebody with the appropriate powers to force another CI run? just to see if I'm crazy, the test is flakey, or the CI environment is flakey... |
20:37:33 | Araq | r3c, https://nim-lang.org/docs/intern.html#debugging-the-compiler |
20:39:49 | Zevv | PMunch: how does the playground keep packages up to date? |
20:40:24 | r3c | Araq thats it |
20:40:53 | PMunch | Zevv, it doesn't |
20:41:06 | Zevv | ok :) |
20:41:07 | PMunch | Or rather I'd have to manually do it |
20:41:29 | PMunch | But it will update all the packages when Nim gets a new tag |
20:43:21 | shashlick | @rayman22201 - I don't have appveyor access |
20:44:08 | rayman22201 | maybe @Araq does? poke? :-P |
20:48:10 | Araq | never found the button to do that, for appveyor you need to close&reopen the PR which I just did |
20:48:46 | rayman22201 | Awful UI.... Thanks @Araq |
20:48:48 | * | r3c quit (Remote host closed the connection) |
20:49:08 | shashlick | there is a rebuild commit button for jobs or a specific job |
20:49:26 | * | nsf quit (Quit: WeeChat 2.5) |
20:50:54 | PMunch | Oh Araq, thoughts on exposing the comments field in Nim nodes? |
20:51:47 | PMunch | I could probably implement it, but I don't want to spend the time if it's never going to get accepted |
20:53:07 | Araq | dunno |
20:53:26 | Araq | IMO all of macros.nim needs to be replaced with ir.nim |
20:53:59 | Araq | but ir.nim is not even in the prototyping stage, it's only an idea in my head |
20:55:06 | PMunch | Haha, so in the meantime, could I expose the comment field of the NimNodes? |
20:56:09 | Araq | yeah, ok |
20:56:19 | Araq | I'll tell you about the restrictions in your PR |
21:00:08 | PMunch | Restrictions? |
21:00:36 | Araq | yeah, it shall only be valid for nkIdentDefs and maybe nkEnumDef |
21:00:46 | PMunch | Why? |
21:01:12 | Araq | to ensure it's future proof |
21:01:29 | PMunch | You can throw doc comments in anywhere, and if they are being stored anyways, why not make them accesible? |
21:02:07 | Araq | because it sucks |
21:02:29 | Araq | we still want to be able to change this design of Nim's AST |
21:02:31 | PMunch | Well then it's worthless to me.. |
21:02:38 | Araq | how so? |
21:02:43 | PMunch | Essentially what I wanted to do was this https://github.com/pmunch/explanations |
21:03:00 | PMunch | But without the expl(0, "docstring here that's actually a string") |
21:03:21 | PMunch | And instead just do `return 0 ## Explanation for why we return 0` |
21:04:00 | PMunch | It's part of my idea for creating documentation for routes in a web-framework |
21:04:19 | Araq | looks like it |
21:04:40 | Araq | I like your expl(0, "...") |
21:04:58 | PMunch | Well, I don't really.. |
21:05:14 | PMunch | It feels a bit forced, and the string looks like it belongs in the code, which it really doesn't |
21:05:17 | Araq | nothing wrong with it IMO. I dislike reading code where I cannot even touch comments without knowing it won't change anything |
21:05:36 | PMunch | Well it's a doc comment, that is being put into documentation |
21:05:56 | PMunch | It's not any different from the documentation comments we have today |
21:06:20 | Araq | return 0 ## there is no doc comment here really |
21:06:24 | * | solitudesf quit (Ping timeout: 265 seconds) |
21:06:35 | Araq | and ideally Nim wouldn't allow it |
21:06:44 | Araq | doc comments are not in random places |
21:07:03 | PMunch | No, they are at the point where we would return something |
21:07:18 | PMunch | So that you remember to update them when you change the behaviour |
21:07:29 | PMunch | The alternative is to do something like this: https://play.nim-lang.org/#ix=1YeA |
21:07:35 | PMunch | But I'd really rather not.. |
21:07:55 | PMunch | It's brittle, and just typing that snippet out made me feel filthy |
21:08:39 | Araq | it's late and I don't really undertand your 'expl' |
21:09:01 | PMunch | (By the way, if it isn't immediately obvious, that code reads the original source file and tries to manually extract the doc-comment) |
21:09:09 | Araq | as I wrote elsewhere, we should strive for verification, not for anything less |
21:09:37 | PMunch | Well expl is just rewritten to return the value, and the string there is put in a table in the documentation that's generated by nim doc |
21:10:28 | PMunch | The whole point of it is to allow the documentation to be local to what it is describing |
21:10:56 | PMunch | So that people don't forget to update it when they change something |
21:11:16 | disruptek | i think doc comments are super useful, particularly in generated code. i want to be able to have macros document creepy activities that might not be obvious. |
21:11:45 | disruptek | because they are zero-cost, i want to use them as a form of logging, too. |
21:12:21 | PMunch | A form of logging? |
21:12:32 | PMunch | You can just have static: echo "something" you know? |
21:12:51 | disruptek | logging of the code that is output, not runtime logging. |
21:12:51 | PMunch | To print something out at compile-time |
21:13:37 | disruptek | like, ## foo macro put this here because xyz and bifnab hasn't run yet |
21:13:53 | PMunch | Araq, my point is really that if the comments are already in the NimNodes just wasting space, at least let me use them |
21:14:39 | PMunch | Oooh, so you just want to leave comments for the readers of expandMacro? |
21:14:51 | PMunch | Yeah I can see how that would be useful |
21:15:02 | Araq | PMunch, and my point is that we will get rid of the waste |
21:15:03 | PMunch | But I don't think doc-comment is the right thing for that.. |
21:15:10 | Araq | but if we expose them we cannot get rid of it |
21:15:35 | PMunch | Hmm, I see, so the plan is to just get rid of them.. Guess I'll have to find another way of doing it then.. |
21:15:37 | Araq | 8 bytes for every PNode does add up and people enjoy a Nim compiler that takes less RAM |
21:16:00 | disruptek | openapi generates many megabytes of code. amazon, google, azure are each over a million lines of nim. i want to shrink that and i also want to make the apis much more powerful. the whole point to writing the code out is that i want people to be able to make use of it. so, i want to be able to document it. |
21:16:15 | PMunch | I guess I'll just read any doc-comment that is immediately before a return statement then |
21:16:24 | PMunch | Or something like that |
21:16:56 | PMunch | Oh well, time for bed |
21:16:57 | * | PMunch quit (Remote host closed the connection) |
21:17:59 | Araq | indeed |
21:18:04 | disruptek | azure is over 3 million lines of nim, actually. |
21:18:44 | * | couven92 quit (Read error: Connection reset by peer) |
21:19:12 | * | couven92 joined #nim |
21:19:53 | Zevv | wut |
21:20:03 | * | ljoonal quit (Ping timeout: 240 seconds) |
21:20:39 | Zevv | 3M lines, how does the compiler chew that? |
21:21:11 | disruptek | i dunno; i haven't tried importing it all. it's almost 1800 imports. |
21:21:30 | Zevv | haha |
21:21:36 | disruptek | i did do amazon's. that was about 1.2 million lines in 160 seconds. |
21:22:02 | * | ljoonal joined #nim |
21:22:32 | Zevv | pff. there should be some nice trick where you only generate this things when the are actually invoked somewhere |
21:22:59 | disruptek | you can use openapi that way, but it's not as useful. |
21:23:11 | rayman22201 | That is a pretty impressive benchmark actually. I wonder how much RAM it chewed up in the process? something to add to Golden maybe? |
21:23:22 | disruptek | it was about 2gig. |
21:23:53 | disruptek | just building the ec2 api is ~30s. it's one of the benchmarks i test golden on. |
21:24:12 | rayman22201 | makes sense. Seems like a good one to use. |
21:25:32 | disruptek | the tables-in-vm-are-slow fix that zevv prompted sped it up from 108s to 30s or so. |
21:25:45 | Zevv | yw :) |
21:25:50 | disruptek | ┌────────┬───────────┬───────────┬───────────┬──────────┐ |
21:25:53 | disruptek | │ Runs │ Min │ Max │ Mean │ StdDev │ |
21:25:55 | disruptek | ├────────┼───────────┼───────────┼───────────┼──────────┤ |
21:25:58 | disruptek | │ 2 │ 28.218435 │ 28.407528 │ 28.312981 │ 0.094547 │ |
21:26:01 | disruptek | └────────┴───────────┴───────────┴───────────┴──────────┘ |
21:26:04 | disruptek | yes, i flooded you, i'm not sorry. |
21:26:18 | Zevv | It's after 11, no problem |
21:26:25 | zedeus | at least it looks pretty |
21:30:26 | disruptek | we should be able to impl a macro in golden that is able to choose the fastest code (which also compiles) on the given machine and then insert it. |
21:31:19 | * | Vladar quit (Remote host closed the connection) |
21:31:22 | disruptek | the output from the monster api list dropped by 5mb to 27mb, but it still doesn't run because... too many global variables. 🤪 |
21:35:39 | * | doesntgolf quit (Ping timeout: 240 seconds) |
21:39:02 | * | skoude joined #nim |
21:44:06 | * | skoude quit (Ping timeout: 268 seconds) |
22:05:11 | shashlick | @disruptek - docs are up for nimgit2 |
22:05:15 | shashlick | https://github.com/genotrance/nimgit2 |
22:05:20 | * | couven92 quit (Quit: Client Disconnecting) |
22:06:06 | disruptek | sweet, but i need a tag and stuff so i can point my nimble at it. |
22:06:21 | shashlick | 5 seconds |
22:06:32 | disruptek | who has that kinda time? |
22:08:13 | disruptek | you know it's not in nimble's tree, right? |
22:08:25 | * | couven92 joined #nim |
22:09:24 | shashlick | just tagged and published |
22:09:28 | shashlick | whew! |
22:10:05 | * | traviss quit (Quit: Leaving) |
22:10:13 | disruptek | yay, now we're in business. 😁 |
22:10:35 | shashlick | module docs as well - https://genotrance.github.io/nimgit2/theindex.html |
22:27:34 | * | Trustable quit (Remote host closed the connection) |
22:30:19 | rayman22201 | Now my PR is failing on Azure again... WTF... |
22:30:23 | * | shomodj joined #nim |
22:30:42 | rayman22201 | I ran the same test on a loop on my Windows box, passes 100% of the time |
22:31:56 | rayman22201 | any ideas on how to debug this? I can commit a bunch of print statements and spam the CI... but I feel like there has to be a better way. |
22:32:01 | * | shomodj quit (Client Quit) |
22:32:32 | shashlick | rayman22201 - you might want to setup your own account and debug that way |
22:32:41 | shashlick | so that you aren't gated by nim's queue |
22:32:57 | shashlick | can also turn off all other tests and see if your test fails in isolation or when it is part of a whole |
22:33:45 | rayman22201 | :/ yay. Setting up an Azure account and integration... High on my list of fun chores lol |
22:33:59 | shashlick | appveyor also has a self-hosted setup that you could use to debug locally |
22:34:01 | shashlick | https://www.appveyor.com/self-hosted/ |
22:34:07 | shashlick | i appreciate your agony 100% |
22:35:03 | rayman22201 | lol. thanks |
22:37:14 | shashlick | any local instance might not recreate the remote CI setup |
22:37:24 | shashlick | i've had good success with travis' docker setup on linux |
22:37:37 | shashlick | but on win/osx, if i cannot recreate locally, all bets are off |
22:38:24 | rayman22201 | unfortunately it's a windows failure |
22:40:29 | rayman22201 | I'm a few more things locally first. |
22:40:34 | rayman22201 | *Trying |
22:42:06 | * | krux02 quit (Remote host closed the connection) |
22:43:06 | shashlick | https://www.appveyor.com/docs/how-to/rdp-to-build-worker/ |
22:46:13 | * | couven92 quit (Quit: Client Disconnecting) |
22:46:30 | rayman22201 | If I had access, I would definitely do that :-P |
22:46:52 | shashlick | that's why i'm saying setup your own instance |
22:47:02 | shashlick | all you have to do is go to appveyor and enable your fork |
22:47:02 | rayman22201 | I'm trying to decide if it would be easier to setup appveyor or azure |
22:47:23 | * | shomodj joined #nim |
22:47:25 | rayman22201 | both have shown the bug |
22:48:06 | shashlick | there's really nothing to setup |
22:48:11 | shashlick | the yml already exists |
22:48:17 | shashlick | you just log in with your github account |
22:48:26 | shashlick | it will list your repos, just enable nim |
22:48:35 | rayman22201 | I guess that's true |
22:50:30 | shashlick | azure might be easier but i've never used it |
22:51:15 | shashlick | The gui is really cool tho |
22:57:56 | rayman22201 | I got appveyor running, we'll see what happens. Azure definitely has a slick UI. I might try it as well. |
23:08:09 | shashlick | neat |
23:20:11 | * | shomodj quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
23:20:54 | * | shomodj joined #nim |
23:30:52 | * | vesper11 quit (Ping timeout: 252 seconds) |
23:31:10 | * | vesper11 joined #nim |
23:34:37 | shashlick | nimarchive also been bumped up to v0.3.0 |
23:40:30 | * | stefantalpalaru quit (Quit: stefantalpalaru) |
23:41:52 | shashlick | and nimterop v0.2.0 |
23:48:26 | rayman22201 | my personal AppVeyor build passed 🤣 |
23:48:42 | rayman22201 | but I think I have a theory. |
23:51:20 | * | Jesin quit (Quit: Leaving) |
23:59:31 | * | Jesin joined #nim |