00:04:26 | shashlick | Please use a paste service |
00:10:16 | dom96 | SrMordred: yes, this is a asynchttpserver vs. httpbeast Request issue. The Nim compiler should show the type with the module name explicitly, so you should report this there I think |
00:31:05 | * | owl_000 joined #nim |
00:35:47 | * | sealmove quit (Quit: WeeChat 2.6) |
00:39:44 | * | navinmistry joined #nim |
00:44:03 | * | navinmistry quit (Ping timeout: 245 seconds) |
00:44:50 | FromDiscord | <exelotl> ok so basically writeFile skips null characters on 1.0.0 on windows |
00:48:01 | FromDiscord | <exelotl> tested 1.0.0 (debian 32 bit), 0.20.2 (win64), 1.0.0 (win64), latest nightly (win64) |
00:48:37 | FromDiscord | <exelotl> it only happens on windows. It doesn't happen on 0.20.2 but it does happen on the latest nightly |
00:51:03 | shashlick | Can you look at the git history |
00:57:17 | FromDiscord | <exelotl> huh it's this line here: https://github.com/nim-lang/Nim/commit/742862b847646dff4562992cd502d3077b2c9474#diff-d731409ef6a47072e6cffa4aca6f6dccR205 |
00:58:01 | shashlick | Blame? |
01:01:13 | disruptek | but araq is on windows. |
01:02:19 | FromDiscord | <exelotl> uuh I know that `git blame` is a command but I don't see how it fits into the world of raising issues and making pull requests lol |
01:03:13 | FromDiscord | <exelotl> I linked the line on the commit where it happened, should I make an issue or is there something more for me to do? |
01:03:26 | disruptek | just trying to figure out how it passed tests. is it possible that we should be using getOsFileHandle and we're not? |
01:04:11 | FromDiscord | <exelotl> are there tests that involve reading/writing files containing null characters? |
01:04:47 | * | ng0_ joined #nim |
01:05:09 | disruptek | well, for some reason, that code was in and we thought it was right. |
01:05:32 | disruptek | then it was out with a `while false` and then it was put back in. |
01:05:49 | disruptek | and the tricky bit is that for at least one windows user, it's clearly wrong. π |
01:06:22 | disruptek | can you PR a test and a patch? then at least we'll know that it passes CI. |
01:07:24 | * | ng0 quit (Ping timeout: 260 seconds) |
01:07:57 | FromDiscord | <exelotl> ok π |
01:10:26 | disruptek | hmm, the question is, why did this code go in. |
01:11:34 | * | skoude joined #nim |
01:12:23 | disruptek | it looks to me like a simple logic error; ie. it wants to remove nulls from console output but instead it's removing them from file output. but what i don't understand is that the test makes the same assumption. |
01:14:23 | disruptek | so maybe we just need to be smarter about discerning between console output and other file output. |
01:15:59 | shashlick | Best to open an issue or pr and see what Araq has to say |
01:16:32 | * | skoude quit (Ping timeout: 268 seconds) |
01:17:40 | shashlick | @disruptek gonna run those tests in a bit |
01:18:30 | disruptek | cool. i can't get feud to do much on linux. it runs but crashes right away. |
01:18:45 | disruptek | i mean, regardless of what the env is set to. |
01:25:03 | disruptek | and regardless of whether the flag is engaged, of course. |
01:34:54 | FromDiscord | <exelotl> eh I really ought to sleep, I'll finish this tomorrow |
01:35:10 | FromDiscord | <exelotl> if anyone wants to take over, here's the fix I'd suggest to try out: https://gist.github.com/exelotl/d286002d8f90f75bbd4543352e271f73#file-writewindows_fix-nim-L18-L22 |
01:35:36 | FromDiscord | <exelotl> otherwise I'll do it when I get home from work |
01:35:46 | FromDiscord | <exelotl> and write a test |
01:36:01 | disruptek | thanks for looking into this. |
01:36:10 | FromDiscord | <exelotl> np |
01:36:27 | * | endragor joined #nim |
01:39:41 | zedeus | hmm, when using jester with asynchttpserver I get an uncatchable "Bad file descriptor [OSError]" when a request gets cancelled |
01:41:27 | disruptek | i don't use those, but i've had those issues with async. not recently though. |
01:41:56 | disruptek | could be that i'm super anal about exceptions now, or the client side could be largely fixed. |
01:42:21 | disruptek | are you certain it's uncatchable? |
01:42:57 | disruptek | also, are you using cpp? |
01:44:00 | * | dddddd quit (Remote host closed the connection) |
01:51:46 | * | actuallybatman quit (Ping timeout: 265 seconds) |
01:53:42 | zedeus | it's uncatchable in my code as far as I can tell, not using cpp no |
01:54:33 | disruptek | can you share the code? are you sure you're "doing async" correctly? |
02:00:46 | zedeus | I can try to make a minimal example |
02:09:38 | * | gangstacat quit (Quit: Δis!) |
02:10:06 | shashlick | @disruptek - just tried the positive test case you mentioned - it works as expected |
02:10:18 | shashlick | boehmGC_set_all_interior_pointers(1) |
02:10:49 | disruptek | okay, so that's good. |
02:13:48 | FromGitter | <gogolxdong> We don't have access to youtube, so I made a video about installing Nim from source on Windows here https://www.bilibili.com/video/av69371873 |
02:14:37 | FromGitter | <gogolxdong> bilibili is comparable of youtube in China |
02:21:03 | * | actuallybatman joined #nim |
02:26:09 | * | leorize quit (Remote host closed the connection) |
02:26:54 | * | leorize joined #nim |
02:27:19 | shashlick | disruptek - porting your changes for linux |
02:27:55 | disruptek | okay, but do you have a linux box? |
02:29:52 | shashlick | yep |
02:30:30 | disruptek | cool. so that should help a bit. π |
02:32:48 | shashlick | going to use pkg-config |
02:33:20 | * | odinfinch quit (Ping timeout: 265 seconds) |
02:34:26 | * | actuallybatman quit (Ping timeout: 240 seconds) |
02:34:34 | * | odinfinch joined #nim |
02:35:45 | * | owl_000 quit (Ping timeout: 265 seconds) |
02:37:17 | shashlick | @disruptek - /usr/bin/ld: /home/genotrance/.cache/nim/feud_d/PlatGTK.cxx.o: undefined reference to symbol 'g_module_symbol' |
02:37:31 | disruptek | you need libgmodule |
02:43:04 | disruptek | btw, have you gdb'd it yet? |
02:43:29 | zedeus | alright I've made a minimal example based on my usage, compile with -d:ssl and -d:useStdLib, then go to localhost:5000 and skip to near the end of the video https://github.com/zedeus/jester-example |
02:44:27 | disruptek | cool, i'll try it. |
02:45:12 | zedeus | I know there's no error handling in the code, anything I tried didn't help anyway so I left it out |
02:45:54 | shashlick | @disruptek - i've gdb'd the crap out of my own code, but not boehm |
02:47:27 | shashlick | got it to crash same way on linux |
02:48:15 | disruptek | it crashes in the gc for you, too, right? |
02:48:25 | disruptek | zedeus: gimme a url with video. |
02:48:48 | zedeus | what do you mean? it should load a video |
02:49:27 | disruptek | oh, i thought i'd have to load something. |
02:49:51 | disruptek | hmm, i can't even bind. |
02:50:10 | disruptek | btw you're on 1.0+ right? |
02:50:25 | shashlick | @disruptek - fix worked on linux as well - it is running |
02:51:24 | zedeus | yeah I run devel |
02:52:01 | disruptek | how do i tell jester what i wanna listen on? |
02:52:53 | disruptek | shashlick: hmm, i couldn't get it to run w/o a crash. |
02:53:50 | disruptek | settings.bindAddr |
02:54:16 | zedeus | disruptek: pushed |
02:54:55 | disruptek | thanks, that'll help |
02:55:57 | disruptek | no idea why, but i cannot bind. |
02:57:09 | disruptek | says addr already in use but obviously it's not priv'd and i've tried changing it, reuse, binding to loopback, etc. |
02:57:21 | zedeus | no clue |
03:00:29 | shashlick | @disruptek - ya it is working fine for me - 3 plugins don't compile - file, filetype and window |
03:00:36 | shashlick | looking into first two |
03:02:56 | disruptek | which version of jester, zedeus? |
03:03:26 | disruptek | i have whatever's in nimble. 0.4.3 |
03:05:04 | zedeus | same |
03:05:18 | disruptek | oh, maybe it's the shashlick tweak. crazy as that sounds. |
03:05:59 | disruptek | nope. this is nuts. |
03:06:54 | shashlick | okay, so everything except window is now working on linux |
03:07:10 | shashlick | this is great, thanks @disruptek, inspires me to get this moving on linux as well |
03:07:34 | disruptek | gimme a branch and i will see if your patch works as well for me. somehow mine is pretty well broken. |
03:07:51 | disruptek | but this bind issue makes zero sense. |
03:10:07 | shashlick | do you mean me or zedeus |
03:11:15 | disruptek | you |
03:11:23 | disruptek | zedeus: do you have ip6 on your box? |
03:11:38 | disruptek | because iirc nim just tries whatever it can. kinda dumb. |
03:12:00 | zedeus | don't think so |
03:12:12 | disruptek | i do. |
03:12:38 | disruptek | still seems ridiculous. |
03:13:50 | disruptek | finally. |
03:14:47 | disruptek | doesn't work for 127.1 but works for another rfc1918 on the node. |
03:15:38 | disruptek | but then i get a 403 on the index.html. |
03:16:00 | disruptek | probly perms, right? |
03:16:04 | shashlick | okay pull the araq branch of feud |
03:16:09 | disruptek | kk |
03:16:23 | shashlick | nimble develop - will install deps, then nimble bin |
03:16:24 | disruptek | yay, i see video. |
03:16:30 | disruptek | that was ridonkulous. |
03:17:05 | shashlick | when you run feud, it will compile all plugins - all will load except window which will fail to compile |
03:17:19 | shashlick | some won't load since they depend on window |
03:18:55 | disruptek | building now. |
03:19:51 | disruptek | hmm, zedeus it's not crashing for me, but i removed your runForever() 'cause i felt it was gratuitous. |
03:20:02 | disruptek | try that. |
03:20:17 | disruptek | feud seems to run?! |
03:20:38 | disruptek | and then... Error: unhandled exception: key not found: initRemote [KeyError] |
03:20:41 | zedeus | disruptek: changes nothing, you have to skip around quickly so it cancels the previous request |
03:20:52 | disruptek | zedeus: ah, okay, i'll try scrubbing. |
03:21:00 | zedeus | did you compile with -d:useStdLib? |
03:21:07 | disruptek | yeah. |
03:21:12 | disruptek | otherwise it uses httpbeast, right? |
03:21:21 | shashlick | yes that's the crash - now if you build with interior pointer support, it will run |
03:21:40 | shashlick | that key initRemote was loaded then disappeared due to db |
03:21:44 | shashlick | gc sorry |
03:21:53 | zedeus | yep |
03:22:06 | disruptek | okay, i got a bad fd crash. |
03:22:54 | shashlick | no idea how you are doing this in parallel! |
03:22:57 | disruptek | okay, so here's the problem. |
03:23:28 | disruptek | routes: will invoke its own server; you need to run the server manually so you can wrap it in an exception handler. i think you call server() or serve() or something. |
03:23:50 | disruptek | yeah, it's as dumb as it sounds. jester should be patched. |
03:24:30 | disruptek | shashlick: ahh, so it's the same problem. so i have to go back to the patched compiler and then it should work as it does for you. |
03:25:12 | shashlick | yep |
03:25:23 | disruptek | now i get a keyerror on hook. |
03:25:24 | shashlick | updating the issue to add this linux data point |
03:25:50 | shashlick | do a nimble clean first |
03:25:53 | disruptek | lemme try clean |
03:25:57 | disruptek | yeah :-D |
03:25:57 | shashlick | all the plugins will need to be recompiled too |
03:26:49 | disruptek | oh somehow it can't c2nimport. |
03:26:54 | disruptek | zedeus: does that make sense? |
03:27:26 | zedeus | yeah, this is for a project with a bunch of eyes on it though so I'd prefer to wait for a Jester fix |
03:27:31 | zedeus | I'll ask dom96 when he wakes up |
03:27:49 | disruptek | it's a good repro, i just wish i was able to bind to localhost. |
03:27:51 | disruptek | that was nuts. |
03:28:09 | zedeus | lol i bet, never had any issues with it |
03:28:23 | disruptek | so shashlick now it's just bouncing back and forth between trying to build window and file. |
03:30:11 | shashlick | why is file failing |
03:30:44 | disruptek | ers/fuzzy.nim(15, 1) Error: undeclared identifier: 'c2nimport' |
03:31:07 | shashlick | okay you have an older nimterop |
03:31:23 | shashlick | no biggie |
03:31:25 | disruptek | i just used the one from feud's nimble; it's 020 iirc. |
03:31:44 | shashlick | weird, then do you have c2nim installed? |
03:31:48 | disruptek | i'll try 0.1.0 |
03:31:56 | shashlick | that's older, v020 is latst |
03:32:41 | * | gangstacat joined #nim |
03:33:11 | disruptek | i just took winim outta the .nimble. now at least `develop` can finish. |
03:33:34 | disruptek | it's missing HWND too. |
03:33:42 | disruptek | in window. |
03:34:21 | shashlick | yep, window is heavy mfc code |
03:34:28 | shashlick | so it won't build for sure |
03:34:40 | shashlick | rest will build |
03:34:46 | shashlick | regardless you got it working now |
03:34:51 | shashlick | it is building and loading plugins |
03:35:00 | shashlick | and initRemote starts the remote plugin |
03:35:20 | disruptek | it's not crashing. π |
03:35:42 | * | nif quit (Quit: ...) |
03:35:52 | * | nif joined #nim |
03:35:56 | disruptek | i guess i will have to look at what you changed. |
03:37:19 | disruptek | hmm, not much. |
03:37:20 | shashlick | mostly your stuff and a little bit more |
03:38:19 | disruptek | well, this is a step in the right direction, good job. |
03:38:38 | shashlick | thanks for your tips |
03:38:43 | disruptek | now at least it can be debugged here. |
03:38:48 | * | nif quit (Client Quit) |
03:38:59 | * | nif joined #nim |
03:38:59 | shashlick | so now, while we wait on Araq, do you have any GUI toolkit suggestions? |
03:39:18 | shashlick | nothing i know of supports scintilla cross-platform |
03:39:25 | shashlick | imgui tried and reverted |
03:39:33 | disruptek | i haven't really looked at anything. i'm only really interested in imgui stuff, so when i go gui in nim, that's what i'm gonna play with. |
03:39:33 | shashlick | https://github.com/ocornut/imgui/issues/108 |
03:40:01 | disruptek | i've done qt in c++ and python. really like it, but obviously not on the table here. |
03:40:10 | disruptek | also, i probably wouldn't use qt. |
03:40:14 | disruptek | π |
03:40:49 | disruptek | it's really more appropriate when you don't have any other code, but you probably already know about it. |
03:41:30 | shashlick | i feel scintilla with a native port for each os will net the best perf |
03:41:46 | disruptek | so scintilla is really good stuff? |
03:42:16 | shashlick | it's very feature rich and performant |
03:42:19 | * | nif quit (Client Quit) |
03:42:31 | shashlick | most of the standard editor stuff is available |
03:43:21 | shashlick | i've never built a gui on linux so wondering where to start porting window |
03:44:31 | * | nif joined #nim |
03:44:32 | disruptek | my last linux gui was almost 20 years ago, unless you count PyQt. |
03:45:11 | shashlick | honestly i don't really need any gui |
03:45:14 | disruptek | i don't use a GTK or Qt desktop, either, so i couldn't even tell you what i like to look at. |
03:45:25 | shashlick | just need the scintilla window up and keyboard/mouse events |
03:45:32 | disruptek | right. |
03:45:56 | shashlick | so in theory, i just need to read up on how to get gtk working with nim |
03:46:11 | disruptek | one thing i would point out is that if you choose something where you can eventually easily embed a browser, that probably will make sense. sad but true. |
03:47:12 | shashlick | do you mean embed a browser in the editor or the editor in a browser |
03:48:00 | disruptek | browser in the editor. i thought about the editor in the browser and it would be a fun nim concept but i think it'd be too limiting for you. |
03:48:15 | disruptek | i just mean a webview widget of some sort for docs or w/e. |
03:48:36 | disruptek | it's something i simply wouldn't want to rule out this early. |
03:48:44 | disruptek | and i hate that about myself. |
03:49:37 | shashlick | makes sense, but why not open in the default browser |
03:50:02 | disruptek | i would. i prefer that. |
03:50:58 | disruptek | i guess maybe some of my motivation is coming from the mobile side, where you always have a webview waiting in the wings, and that's a nice asset. |
03:51:45 | disruptek | can't say i'm impressed with electron apps or atom or oni, though i couldn't actually run oni myself. couldn't get it stable. |
03:52:17 | disruptek | is vsc a similar architecture? i don't even know. |
03:52:48 | shashlick | vsc is electron + cleanup / perf improvements |
03:53:12 | disruptek | figures. |
03:53:44 | * | chemist69 quit (Ping timeout: 276 seconds) |
03:55:10 | * | chemist69 joined #nim |
03:58:11 | * | nif quit (Quit: ...) |
03:58:20 | * | nif joined #nim |
03:59:19 | shashlick | okay well, off now, the road is long but it is unblocked |
04:00:16 | disruptek | gn shashlick |
04:00:21 | shashlick | need to bring back my focus on nimterop / nimarchive and get that done |
04:00:23 | shashlick | l8r |
04:01:31 | * | nif quit (Client Quit) |
04:03:41 | * | nif joined #nim |
04:10:18 | * | rockcavera quit (Remote host closed the connection) |
04:21:04 | FromGitter | <zacharycarter> shashlick: I didn't see anywhere in that log mention of the same issue |
04:35:18 | * | LargeEpsilon joined #nim |
04:51:57 | * | nsf joined #nim |
05:22:46 | * | NimBot joined #nim |
05:22:47 | * | narimiran joined #nim |
05:34:26 | * | actuallybatman joined #nim |
05:40:26 | * | LargeEpsilon quit (Ping timeout: 240 seconds) |
05:53:47 | * | actuallybatman quit (Ping timeout: 245 seconds) |
05:57:42 | FromDiscord | <Rika> is there a reason the `fmt` template is raw and the `&` macro isnt? |
05:59:01 | * | LargeEpsilon joined #nim |
06:01:14 | * | LargeEpsilon_ joined #nim |
06:01:16 | * | skoude joined #nim |
06:05:41 | * | LargeEpsilon quit (Ping timeout: 276 seconds) |
06:07:56 | * | owl_000 joined #nim |
06:17:28 | * | solitudesf joined #nim |
06:17:36 | * | skoude quit (Ping timeout: 240 seconds) |
06:18:21 | * | skoude joined #nim |
06:34:25 | lqdev[m] | @Rika: it's that fmt is used as a *generalized raw string literal* |
06:43:38 | * | solitudesf quit (Remote host closed the connection) |
06:48:18 | FromGitter | <zacharycarter> does newruntime work with the stdlib now? |
06:48:33 | FromGitter | <zacharycarter> I saw that all the items on the TODO checklist were marked as complete |
06:53:48 | * | Vladar joined #nim |
06:54:05 | Zevv | async |
06:54:11 | Zevv | doesn't |
06:56:32 | FromGitter | <zacharycarter> gotcha |
06:56:56 | FromGitter | <zacharycarter> thanks |
06:58:59 | * | solitudesf joined #nim |
07:00:00 | * | gmpreussner quit (Quit: kthxbye) |
07:00:33 | * | solitudesf quit (Remote host closed the connection) |
07:00:56 | * | solitudesf joined #nim |
07:02:02 | * | krux02 joined #nim |
07:05:01 | * | gmpreussner joined #nim |
07:18:04 | FromGitter | <qqtop> xmltree doesn't |
07:18:37 | * | ng0_ quit (Quit: Alexa, when is the end of world?) |
07:19:00 | * | ng0 joined #nim |
07:26:28 | Zevv | and json; these trees are hard to ownedize |
07:28:06 | * | floppydh joined #nim |
07:36:16 | * | solitudesf quit (Ping timeout: 240 seconds) |
07:42:03 | * | navinmistry joined #nim |
07:42:37 | * | tdc joined #nim |
07:45:03 | FromGitter | <alehander42> Araq |
07:45:07 | FromGitter | <alehander42> so i have a question |
07:46:36 | FromGitter | <alehander42> in 1.1 we can have a lib which deals with old style refs, and a user imports it: and he says "ok, it's not yet passing without warnings/errors the nil checking, but i think it is safe so let me ignore that without warnings/errors" |
07:47:08 | FromGitter | <alehander42> so if its his own lib, he might just add the `{.nilCheck: off}.` to it |
07:47:48 | FromGitter | <alehander42> but if its not, can you somehow import with the same effect |
07:49:56 | Araq | warnings are tied to the main Nimble package that you compile |
07:51:18 | FromGitter | <alehander42> so yeah, you need to either *keep them as warnings, not errors or *fork/PR the lib if you want errors |
07:51:25 | FromGitter | <alehander42> not a big deal |
07:51:33 | FromGitter | <alehander42> just wanted to understand it |
08:04:16 | * | skoude quit (Ping timeout: 240 seconds) |
08:06:35 | FromDiscord | <arnetheduck> zevv, that's an interesting stance - picking programming language based on the lack of entities that are willing to bet their livelihood on it π |
08:08:32 | Araq | alehander42: we need to start with "warnings only" anyway |
08:08:58 | * | navinmistry quit (Remote host closed the connection) |
08:09:15 | Araq | and a "turn warning into error" switch would be useful in general |
08:09:20 | FromGitter | <alehander42> yes, i meant that I can decide to turn on errors |
08:10:01 | FromGitter | <alehander42> but i cant ignore them in code that i dont control |
08:10:15 | FromGitter | <alehander42> but this is ok |
08:10:26 | Araq | yeah but Nim doesn't produce warnings for foreign Nimble packages |
08:10:36 | Araq | it'll be fine |
08:10:36 | FromGitter | <alehander42> hm, i didnt know that |
08:10:54 | FromGitter | <alehander42> but does this mean |
08:11:08 | FromGitter | <alehander42> if i download such a package, and i turn nilCheck on |
08:11:17 | FromGitter | <alehander42> i wont get any errors for the package even if i want to |
08:12:41 | Araq | well you need to compile the package directly |
08:13:03 | FromGitter | <alehander42> can't i tell nim to not ignore those warnings :P |
08:13:07 | Araq | for instance, by compiling its example code |
08:13:29 | Araq | if you "don't want to ignore the warnings" |
08:13:46 | Araq | that should be covered by --turnWarningToError[X] |
08:13:55 | Araq | (which doesn't exist yet) |
08:15:01 | * | asymptotically joined #nim |
08:15:24 | Araq | but I also thought about disabling this feature, if your dependencies produce warnings, demand from them that they don't |
08:15:53 | FromDiscord | <Kiloneie> Okay Araq i will show that strcans module, once i try it out myself |
08:15:53 | Araq | and file bug reports for these packages |
08:16:11 | FromGitter | <alehander42> Araq, exactly |
08:16:16 | FromGitter | <alehander42> thats what i'd use as well sometimes |
08:16:34 | FromGitter | <alehander42> or at least have a flag to disable the foreign warnings ignore |
08:16:44 | Araq | Kiloneie: make a video about the good parts of the stdlib, strscans, strformat, tables, times |
08:18:11 | FromGitter | <alehander42> Araq, i also wondered something else: you can e.g. do nilCheck: on or nilCheck: off, but you cant do "produce errors from all those functions, and dont ignore the other function, just produce a warning instead of error for it" |
08:18:23 | FromGitter | <alehander42> but this is very niche |
08:18:28 | FromDiscord | <Kiloneie> i will make that video, but the next one will be conditional statements, if and else statement, then the next will be more on that a simple calculator probably, then those modules probably. |
08:18:40 | FromGitter | <alehander42> not sure if it makes sense to have this in general for pragmas |
08:19:34 | Araq | Kiloneie: ok but most people already know some other programming language and like to see new things |
08:20:20 | FromDiscord | <Kiloneie> Yeah but, my series is for beginners, it's meant for people both new to Nim and new to programming |
08:20:29 | Araq | yes, I know |
08:20:42 | Araq | and now you have to stick to it :-) |
08:21:03 | FromDiscord | <Kiloneie> Yes, so i am not there yet. Soon |
08:21:24 | FromDiscord | <Kiloneie> i am putting notes for all of this down. |
08:21:32 | Araq | but it's cool, once complete, we can link from the Nim website and mark it as an "online curse for non-programmers" |
08:21:36 | owl_000 | kiloneie is doing great |
08:21:56 | FromDiscord | <Kiloneie> I will probably do something like that tomorrow, today i am planning on doing 2 videos if i can manage. |
08:22:56 | FromGitter | <alehander42> course* |
08:23:16 | FromGitter | <alehander42> you have good tempo |
08:23:19 | FromGitter | <alehander42> kiloneie |
08:23:21 | FromDiscord | <Kiloneie> I started this because of lack of beginner level content, not everyone can just install Nim on their own and start playing around with it and understanding it. Also YouTube has barely anything of Nim |
08:23:24 | FromDiscord | <Kiloneie> Thank you |
08:23:26 | FromGitter | <alehander42> i even think one a day is a lot |
08:24:08 | narimiran | one per day should be max |
08:24:33 | narimiran | even currently i cannot keep up with the current content, and i'm online for the most of the day |
08:25:02 | narimiran | 2 per day will make it overwhelming, and less likely for me (and others) to continue watching |
08:26:01 | FromDiscord | <Kiloneie> They are pretty short though. And it's not like i would make 2 that are shorter and worse than just 1, if i will get 2 done, they will have about the same length and quality. |
08:26:24 | FromDiscord | <Kiloneie> Idk, i just think more content if possible with the same quality is good. |
08:26:34 | narimiran | even still. but ok, your videos, your decision |
08:26:44 | FromDiscord | <Kiloneie> it's not like i promised any kind of schedule anywhere |
08:27:18 | Araq | narimiran, you can always watch it *later* :P |
08:27:22 | FromDiscord | <Kiloneie> so if i were to make on a few days 2 videos instead of 1, and then just 1 for a few days, it wouldn't matter, i didn't put a schedule for people to see and be dissapointed if it didn't go well |
08:27:37 | narimiran | Araq: we all know how it goes with "i'll do it later" ;) |
08:28:11 | FromDiscord | <Kiloneie> Also that: sometimes i don't watch some youtuber for a while, then when i come back, i got a lot of stuff to watch, then if if i watch them for a while i run out of stuff to watch and go somewhere else, then return later. |
08:28:37 | FromGitter | <alehander42> yes, you can also keep a buffer |
08:28:46 | FromGitter | <alehander42> and e.g. post some unreleased |
08:28:56 | FromGitter | <alehander42> when e.g. you need to take a day off or just dont feel like it |
08:29:10 | FromDiscord | <Kiloneie> that's the plan if stuff were to come up |
08:29:28 | dom96 | zedeus: you might want to just ask, I do check IRC logs most of the time when I'm highlighted :) |
08:30:03 | FromDiscord | <Kiloneie> which will happen in a week or so, birthday party wii.... |
08:32:06 | FromDiscord | <Kiloneie> There is also the second argument, i need to show more interesting things in Nim which i have to code myself and learn, so eventually 2 videos a day wouldn't be viable probably, will see. I need to plan this out. |
08:38:34 | * | navinmistry joined #nim |
08:39:00 | * | skoude joined #nim |
08:42:48 | * | navinmistry quit (Ping timeout: 245 seconds) |
08:49:54 | FromDiscord | <mratsim> > <Araq> but it's cool, once complete, we can link from the Nim website and mark it as an "online curse for non-programmers" |
08:49:54 | FromDiscord | <mratsim> |
08:49:54 | FromDiscord | <mratsim> Nim, the Voodoo language |
08:55:51 | FromGitter | <alehander42> no |
08:56:10 | FromGitter | <alehander42> btw what would happen to `owned` |
08:56:20 | FromGitter | <alehander42> if the 'alternative' of newruntime |
08:56:23 | FromGitter | <alehander42> remains |
08:56:38 | * | dddddd joined #nim |
08:59:14 | Araq | what do you mean? |
09:08:49 | FromGitter | <alehander42> well, maybe i dont know enough about what the alternative idea is |
09:09:10 | FromGitter | <alehander42> but i thought it's different, so maybe that it isnt based on the same kind of move/own checking |
09:10:48 | * | solitudesf joined #nim |
09:12:05 | * | skoude quit (Ping timeout: 265 seconds) |
09:19:16 | * | navinmistry joined #nim |
09:30:53 | FromDiscord | <Corax> Is there any up to date Nim cheatsheet out there? π |
09:31:17 | FromDiscord | <Corax> I like getting hold of a good cheat sheet after getting into a language so I can start working with it without stumbling on the syntax too much |
09:37:21 | * | navinmistry quit (Remote host closed the connection) |
09:38:42 | FromDiscord | <mratsim> https://github.com/nim-lang/Nim/wiki/Nim-for-C-programmers |
09:38:48 | FromDiscord | <mratsim> https://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers |
09:39:06 | FromDiscord | <mratsim> or: https://github.com/timotheecour/D_vs_nim |
09:39:34 | FromDiscord | <mratsim> useful as well: https://xmonader.github.io/nimdays/ |
09:39:51 | FromDiscord | <Corax> ty! |
09:41:22 | FromDiscord | <mratsim> Rosetta code as well |
09:44:30 | * | skoude joined #nim |
09:44:57 | * | thomasross quit (Ping timeout: 265 seconds) |
09:51:37 | * | thomasross joined #nim |
10:08:34 | Araq | Corax: the "Nim in action" book comes with a cheat sheet. iirc. |
10:11:45 | FromDiscord | <Kiloneie> Hmm strscans module seems pretty useful indeen |
10:11:49 | FromDiscord | <Kiloneie> indeed * |
10:14:54 | * | navinmistry joined #nim |
10:17:40 | * | dddddd quit (Quit: Hasta otra..) |
10:19:11 | * | navinmistry quit (Ping timeout: 250 seconds) |
10:22:58 | * | clyybber joined #nim |
10:24:35 | * | skoude quit (Ping timeout: 265 seconds) |
10:32:17 | * | navinmistry joined #nim |
10:37:32 | dom96 | Araq: Corax: yep, there is a cheatsheet on the inside covers :) |
10:39:05 | * | thomasross quit (Ping timeout: 265 seconds) |
10:39:58 | FromDiscord | <Corax> how up to date is Nim in Action? π I might buy it paperback |
10:44:02 | * | thomasross joined #nim |
10:46:00 | Zevv | ping @zacharycarter |
10:46:22 | Zevv | hm do discord/gitter bridges alow privmsgs through irc? |
10:46:27 | * | thomasross_ joined #nim |
10:46:27 | * | thomasross quit (Killed (orwell.freenode.net (Nickname regained by services))) |
10:46:27 | * | thomasross_ is now known as thomasross |
10:48:04 | * | navinmistry quit (Remote host closed the connection) |
10:51:12 | dom96 | Corax: all of its code examples are in Nim's test suite, so they all compile at the very least |
10:51:57 | dom96 | I intentionally stayed clear of things like concepts since they are experimental (even in 1.0) |
10:52:04 | Araq | the biggest problem is that dom96's book claims 'nil' is a valid value for strings and seqs |
10:52:17 | Araq | dom96, liar, you do show concepts |
10:52:21 | Araq | I think. |
10:52:54 | dom96 | Do I? maybe I even forgot |
10:53:10 | dom96 | even if I do, it can't be more than a single example with a big caveat that says "this is likely to change" |
10:53:41 | dom96 | Araq: none of the examples break because of the `nil` change though AFAIK |
10:55:16 | Araq | dom96, they do, we pass nilseqs:on to these tests |
10:55:38 | * | navinmistry joined #nim |
11:01:03 | * | skoude joined #nim |
11:15:16 | * | theelous3 joined #nim |
11:19:58 | clyybber | Araq: I see you don't like the closure approach. Should I use a template instead? I mainly want to reduce code duplication, so that pArg moveOrCopy all iterate over nkStmtListExpr, nkBlockExpr and so on in the same way. |
11:20:25 | FromDiscord | <Kiloneie> Ε₯here are concepts there |
11:22:42 | Araq | clyybber, please yes |
11:22:50 | Araq | use a template |
11:23:16 | * | Mister_Magister quit (Excess Flood) |
11:24:37 | * | Mister_Magister joined #nim |
11:30:01 | * | navinmistry quit (Remote host closed the connection) |
11:30:28 | * | navinmistry joined #nim |
11:32:16 | Araq | https://www.vice.com/en_in/article/ywanev/thousands-of-cloud-computing-servers-could-be-owned-with-very-simple-attack-researchers-say |
11:35:28 | * | navinmistry quit (Ping timeout: 264 seconds) |
11:39:39 | * | whaletechno quit (Ping timeout: 240 seconds) |
11:39:55 | clyybber | Oooh, I like cooldomes RFC |
11:40:19 | FromGitter | <alehander42> its interesting |
11:40:39 | FromGitter | <alehander42> but i feel like it misses some of what makes dependent types |
11:40:41 | FromGitter | <alehander42> good |
11:42:32 | clyybber | Care to explain? |
11:44:00 | FromGitter | <alehander42> first, implicitly converting doesnt seem always correct |
11:44:23 | FromGitter | <alehander42> but maybe i dont understand the proposal correctly |
11:44:30 | FromGitter | <alehander42> i will look at it later again |
11:46:41 | FromGitter | <alehander42> like, at least, i expect a lot more maths, to be able to check stuff like Range[T, n] + Range[T, m] => Range[T, n + m] |
11:51:10 | * | rokups joined #nim |
11:56:54 | * | rockcavera joined #nim |
12:00:27 | * | skoude quit (Ping timeout: 245 seconds) |
12:01:20 | * | skoude joined #nim |
12:03:43 | clyybber | alehander42: Well you can implement a proc `+` that does exactly this |
12:05:38 | FromDiscord | <Shield> shouldn't pointer arithmetic be included in the stdlib at this point? |
12:05:54 | FromDiscord | <Kiloneie> How does one use writeStyled procedure, i have but just about anything in the second argument and it keeps erroring. |
12:05:54 | FromDiscord | <Kiloneie> https://play.nim-lang.org/#ix=1JPb |
12:06:26 | * | skoude quit (Ping timeout: 276 seconds) |
12:06:42 | FromDiscord | <exelotl> I haven't really needed pointer arithmetic since I discovered UncheckedArray |
12:07:27 | FromDiscord | <Shield> that's actually a very interesting way to solve it |
12:08:07 | narimiran | Kiloneie from the error message, one can tell that the second argument should be a set, so something like `writeStyled($a, {styleBlinkRapid})` |
12:09:28 | FromDiscord | <Kiloneie> Welp... that's what i get for not reading about Sets... <,< |
12:09:36 | FromDiscord | <Kiloneie> i feel dumb again |
12:10:30 | narimiran | that's what you get for not reading error messages :P |
12:10:56 | FromDiscord | <Kiloneie> i did, i just didn't get it, i thought it wanted me to set a value, not an actual Set <.< |
12:11:08 | * | daddoo joined #nim |
12:13:17 | * | Kaivo joined #nim |
12:16:08 | FromDiscord | <Corax> I'm looking for a project to sink my teeth into Nim and I'm thinking of rewriting (parts of, to start with) pwntools http://docs.pwntools.com/en/stable/ |
12:16:14 | FromDiscord | <Corax> has anyone been working on anything similar? |
12:16:44 | FromDiscord | <Rika> sets are real useful though |
12:18:58 | FromDiscord | <Kiloneie> aren't they basically high performance arrays ? |
12:19:24 | FromDiscord | <Kiloneie> but of ordinal type only * |
12:19:31 | * | skoude joined #nim |
12:19:38 | narimiran | Kiloneie: btw, while learning about sets, don't confuse two types of sets available in nim: the first one is the one you just discovered, available without any imports (https://nim-lang.github.io/Nim/manual.html#types-set-type); the other one are HashSets available when you do `import sets` (https://nim-lang.github.io/Nim/sets.html) |
12:20:10 | FromDiscord | <Kiloneie> yeh i got both pages open, looking at their differences |
12:20:33 | FromGitter | <alehander42> clybber |
12:20:50 | FromGitter | <alehander42> thats why currently there is some artihmetic support in the compiler for i guess statics |
12:21:09 | FromGitter | <alehander42> but i guess fuller support for something like dependent types would require rethinking the whole static thing |
12:21:13 | FromGitter | <alehander42> from the ground up |
12:21:14 | * | navinmistry joined #nim |
12:22:22 | FromGitter | <alehander42> otherwise once i tried making a map which returns the same number of elements: it required proving a loop with n repetitions |
12:22:35 | * | nif quit (Quit: ...) |
12:22:39 | FromGitter | <alehander42> of .append would result in a type with exactly n |
12:22:45 | * | nif joined #nim |
12:22:57 | FromGitter | <alehander42> and this didnt really work, i remember @zah explaining me some limitations |
12:23:14 | Zevv | @Shield: what do you meen with pointer arithmatic being implemented in the stdlib? |
12:23:36 | * | skoude quit (Ping timeout: 240 seconds) |
12:23:46 | * | navinmistry quit (Remote host closed the connection) |
12:23:54 | clyybber | alehander42: I guess thats why cooldome says that this will require more static bugs fixed |
12:24:21 | clyybber | But it seems like a great design/concept. |
12:24:33 | clyybber | The implementation will of course have to deliver |
12:26:51 | FromGitter | <alehander42> but i think that "true" dependent types just require a whole more machinery directly in the compiler |
12:27:04 | FromGitter | <alehander42> or maybe a much stronger "type metaprogramming" system |
12:28:06 | FromDiscord | <Rika> dont regular sets disregard insertion order tho? i dont recall them doing that @Kiloneie |
12:28:21 | FromDiscord | <Rika> doing that -> keeping insertion ordeer |
12:28:25 | FromDiscord | <Rika> order. |
12:28:44 | FromDiscord | <mratsim> yes sets and HashSets don't retain insertion order |
12:29:01 | * | Hideki_ joined #nim |
12:29:13 | * | abm joined #nim |
12:29:16 | FromDiscord | <mratsim> also iterating on sets require iterating on all bits one by one |
12:30:12 | FromDiscord | <Rika> is there a difference between set's card and len? |
12:30:45 | narimiran | no. (RTFM) |
12:30:46 | Zevv | a set doesn't have len |
12:30:49 | Zevv | does it? |
12:31:03 | * | Hideki_ quit (Remote host closed the connection) |
12:31:29 | Zevv | oh it does! :) |
12:31:41 | FromDiscord | <Rika> was about to send an image |
12:31:54 | narimiran | https://nim-lang.github.io/Nim/system.html#len%2Cset[T] |
12:32:05 | narimiran | https://nim-lang.github.io/Nim/sets.html#card%2CHashSet[A] |
12:32:37 | FromDiscord | <Rika> discord doesnt like brackets in its link parser... |
12:32:46 | FromDiscord | <mratsim> len was added recently iirc |
12:33:31 | FromDiscord | <mratsim> I think the reasoning at the beginning was that people assumed that `len` was O(1) / instant. But for the base set that was not true, you need to iterate on the bits |
12:33:59 | FromDiscord | <mratsim> However now that it's using popcount, maybe even casting to uint16, it should be instant as well |
12:34:20 | Zevv | ah august it was added indeed |
12:34:24 | shashlick | Is there any pointer magic in sets and tables? |
12:34:27 | FromDiscord | <mratsim> instant --> bounded number of steps |
12:34:46 | Zevv | counting them all is bounded :) |
12:34:57 | FromGitter | <alehander42> clybber but thats based on my limited impressions of idris and similar : so no idea |
12:35:18 | * | ng0 quit (Remote host closed the connection) |
12:35:37 | clyybber | Can a template do identifier replacing? Like `someTemplate( p(n, c, someOtherParam) )` where `n` is going to be whatever the template wants to? |
12:36:21 | * | ng0 joined #nim |
12:39:45 | FromDiscord | <mratsim> @Zevv, I knew someone would mentioned that |
12:40:37 | FromDiscord | <mratsim> @clyyber, I think you would need someTemplate(n, p(n, c, someOtherParam) ) |
12:42:30 | * | endragor quit (Remote host closed the connection) |
12:42:52 | clyybber | mratsim: Thanks, I thought about that. But the template needs to replace the `n` in `p(n, ...)` in if branches or for loops by things like `son[1][i]`. How would that work? |
12:45:02 | * | navinmistry joined #nim |
12:49:52 | * | navinmistry quit (Ping timeout: 264 seconds) |
12:55:50 | * | solitudesf quit (Ping timeout: 276 seconds) |
12:57:37 | * | navinmistry joined #nim |
13:00:10 | FromDiscord | <mratsim> I'm not sure exactly but templates can bind n, and then replace all its future usage |
13:01:15 | FromDiscord | <mratsim> look into how I bind block_offset and block_size in omp_parallel_blocks: https://github.com/mratsim/Arraymancer/search?utf8=%E2%9C%93&q=omp_parallel_blocks&type= |
13:01:40 | FromGitter | <alehander42> Araq, roslyn uses a CFG for their nulability pass |
13:01:51 | FromDiscord | <Shield> @Zevv I noticed that multiple libraries (even stdlib itself) have to reimplement pointer arithmetic helper functions, so why not just offer that |
13:01:56 | FromGitter | <alehander42> source.roslyn.io/#Microsoft.CodeAnalysis.CSharp/FlowAnalysis/NullableWalker.cs |
13:01:57 | FromDiscord | <mratsim> or omp_parallel_chunks: https://github.com/numforge/laser/search?q=omp_parallel_chunks&unscoped_q=omp_parallel_chunks |
13:02:13 | FromGitter | <alehander42> http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp/FlowAnalysis/NullableWalker.cs |
13:02:28 | * | navinmistry quit (Ping timeout: 264 seconds) |
13:02:50 | FromDiscord | <mratsim> @Shield if you can list them in https://github.com/nim-lang/Nim/pull/12101 that would be helpful |
13:03:13 | FromDiscord | <mratsim> especially the stdlib ones |
13:03:26 | FromGitter | <alehander42> but their cfg seems including way more operations https://docs.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.operationkind?view=roslyn-dotnet |
13:04:25 | clyybber | mratsim: Thanks :) |
13:04:42 | FromGitter | <alehander42> probably they use the flow pass for other stuff, i guess the question is how general should a cfg be (it should be efficient to create and iterate through, but: including enough for each pass that needs it_ |
13:04:57 | FromGitter | <zacharycarter> Zevv: sorry was at an appointment |
13:05:45 | FromGitter | <alehander42> other option is to create e.g. a special cfg for use/own analysis, a special one for null (each including only instructions related to events concerning it) |
13:06:27 | FromGitter | <alehander42> but maybe this is going to be slower after all, because cost of constructing 2-3 cfg-s |
13:07:19 | Zevv | zacharycarter: np. Just wanted to say that you got ppl interested, so you might expect someone to contact you one of these days. Make sure to bail out early if your interest is not mutual, because I think they will bug you with some mundane excersizes and stuff to start with :/ |
13:07:47 | FromGitter | <zacharycarter> ah cool! thanks for the update, good to know! |
13:07:49 | Zevv | unless you like to show off sorting a linked list |
13:07:54 | FromGitter | <zacharycarter> :P |
13:07:55 | FromDiscord | <Shield> mratsim: i'll keep an eye out for those |
13:11:39 | * | cgfuh joined #nim |
13:13:30 | * | navinmistry joined #nim |
13:17:15 | * | dddddd joined #nim |
13:18:09 | * | navinmistry quit (Ping timeout: 250 seconds) |
13:25:33 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
13:29:22 | * | navinmistry joined #nim |
13:34:15 | * | navinmistry quit (Ping timeout: 264 seconds) |
13:42:35 | FromDiscord | <Corax> potentially dumb/newbie question: Can I store the return value of osproc.StartProcess in my own object? It appears to be a "owned Process", however when I attempt to store it in my object I get a "type expected" error |
13:43:29 | leorize | you should be able to |
13:43:36 | leorize | can you show us your code? |
13:44:27 | FromDiscord | <Corax> https://gist.github.com/PabloMansanet/42888cca98b64bc5f4ab6285852a3c41 |
13:44:58 | * | kkeket joined #nim |
13:45:03 | FromDiscord | <Corax> literally the first nim code I write past tutorial so expect the knowledge of an amoeba |
13:45:16 | * | kkeket quit (Remote host closed the connection) |
13:45:18 | * | navinmistry joined #nim |
13:46:21 | narimiran | `system_process = startProcess` |
13:46:27 | narimiran | note it is `=`, not `:` |
13:46:48 | narimiran | and please please, use PascalCase for types, it will make your life easier |
13:47:16 | FromDiscord | <Corax> oh, thanks! So the ":" is only for copying values in construction, and if you need a function call you have to use "="? |
13:47:39 | leorize | also command = command |
13:47:41 | leorize | not `:` |
13:47:44 | FromDiscord | <Corax> sure, will do π I should've read what the convention is |
13:48:02 | FromDiscord | <Corax> I'm comfortable with PascalCase for structs and _ for functions from Rust, I hope it's roughly similar |
13:48:03 | leorize | these are rules though :P |
13:48:03 | narimiran | i'm wrong, don't listen to me :D |
13:48:17 | narimiran | https://play.nim-lang.org/#ix=1JR1 |
13:48:34 | * | endragor joined #nim |
13:48:37 | narimiran | i knew there was `=` missing, but i told you in the wrong place, sorry :) |
13:49:47 | * | navinmistry quit (Ping timeout: 250 seconds) |
13:49:48 | FromDiscord | <Corax> oh, just found the style guide |
13:49:52 | narimiran | and this is more nim-like: https://play.nim-lang.org/#ix=1JR1 (if we ignore four-space indentation :)) |
13:49:56 | FromDiscord | <Corax> gonna read that before I make any more eyeballs bleed π |
13:50:20 | FromDiscord | <Corax> weirdly my vim autoindenter always tries to indent right after the import block at the top, no idea why |
13:50:21 | narimiran | wrong link there, here's the correct one: https://play.nim-lang.org/#ix=1JR3 |
13:50:44 | * | solitudesf joined #nim |
13:50:46 | disruptek | you can indent after import if you want. |
13:50:55 | narimiran | enough blunders in 5 minutes, i definitely need a break from a screen |
13:51:07 | leorize | @Corax: you're probably using zah/nim.vim, right? |
13:51:36 | narimiran | (advertisement incoming :D) |
13:52:18 | leorize | if you use vim, then you can replace the identer with this one: https://github.com/alaviss/nim.nvim/blob/master/indent/nim.vim |
13:52:19 | FromDiscord | <Corax> @leorize I'm using nim.vim indeed π plus coc.vim with the nimlsp |
13:53:03 | leorize | yea, replace the plugin's indenter with mine |
13:53:11 | leorize | it's significantly better :D |
13:53:23 | leorize | or if you use neovim then my plugin is just better :P |
13:53:39 | narimiran | i can confirm and leorize is totally not paying me to say that! |
13:53:41 | clyybber | Araq: Now using a template instead |
13:53:58 | FromDiscord | <Corax> I do use neovim, will look for your plugin! |
13:54:16 | narimiran | then it is no-brainer, really |
13:54:24 | FromDiscord | <Corax> will it play nice with coc.vim? I'm happy with my nimlsp integration |
13:54:36 | leorize | nimlsp is redundant with my plugin |
13:54:41 | FromDiscord | <Corax> gotcha |
13:54:53 | FromDiscord | <Corax> I mean |
13:55:02 | FromDiscord | <Corax> the reason why I like to use coc.vim is because it behaves the same for all languages though |
13:55:07 | FromDiscord | <Corax> out of the box |
13:55:20 | FromDiscord | <Corax> but if the overhead (and I guess keybinding setup and such) is worth it, I don't see why not |
13:55:27 | leorize | for use with coc.vim however, you'd need a bit of tweaking :P |
13:57:14 | FromDiscord | <Corax> Well, so far so good |
13:57:33 | FromDiscord | <Corax> drop in replacement, hasn't broken any coc.vim, and the weirdness of post-import indenting is gone |
13:57:34 | FromDiscord | <Corax> thanks! |
13:57:42 | FromDiscord | <Corax> drop in replacement, hasn't broken any coc.vim stuff, and the weirdness of post-import indenting is gone |
13:58:14 | leorize | https://github.com/neoclide/coc.nvim/wiki/Create-custom-source |
13:58:42 | leorize | if you wanted to use the completor within the plugin instead of nimlsp, you'd need to read that and some of my code :P |
13:59:25 | clyybber | Urgh, why do we still have the 80char line limit |
14:00:06 | narimiran | clyybber: so we can put (at least) 3 windows of code horizontally :) |
14:00:20 | FromDiscord | <Corax> what I'd love to do is integrate your semantic highlighting with the way coc.vim presents diagnostics, but I'll leave that for another day, I have enough on my plate with getting a basic grasp of Nim itself π |
14:00:21 | * | actuallybatman joined #nim |
14:00:34 | clyybber | We should really increase it to 120 IMO, that 80char limit is just an artifact from the days of whole room pcs |
14:00:57 | clyybber | narimiran: Heh, so that I can use my widescreen vertically to view my code rite? |
14:01:00 | clyybber | :D |
14:01:07 | * | navinmistry joined #nim |
14:02:19 | * | nsf quit (Quit: WeeChat 2.5) |
14:02:40 | leorize | @Corax: you'd want to use my completion source instead of nimlsp in the future |
14:02:51 | leorize | having two instance of nimsuggest running is never a good thing |
14:03:02 | leorize | but for now your setup should do |
14:03:08 | FromDiscord | <garageagle> I just went through the tutorial and I'm experimenting with some stuff now. I wrote this simple program: |
14:03:08 | FromDiscord | <garageagle> ``` |
14:03:08 | FromDiscord | <garageagle> import terminal |
14:03:09 | FromDiscord | <garageagle> import strformat |
14:03:09 | FromDiscord | <garageagle> import os |
14:03:09 | FromDiscord | <garageagle> |
14:03:09 | FromDiscord | <garageagle> hideCursor() |
14:03:11 | FromDiscord | <garageagle> while true: |
14:03:13 | FromDiscord | <garageagle> echo(fmt"Term size: {terminalWidth()}x{terminalHeight()}") |
14:03:14 | FromDiscord | <garageagle> sleep(100) |
14:03:16 | FromDiscord | <garageagle> eraseScreen() |
14:03:16 | FromDiscord | <garageagle> ``` |
14:03:18 | FromDiscord | <garageagle> There's probably a way to do this that looks better π |
14:03:20 | FromDiscord | <garageagle> I just went through the tutorial and I'm experimenting with some stuff now. I wrote this simple program: |
14:03:21 | FromDiscord | <garageagle> ```nim |
14:03:22 | FromDiscord | <garageagle> import terminal |
14:03:24 | FromDiscord | <garageagle> import strformat |
14:03:25 | FromDiscord | <garageagle> import os |
14:03:27 | FromDiscord | <garageagle> |
14:03:28 | FromDiscord | <garageagle> hideCursor() |
14:03:29 | Zevv | garageagle please dump code through a pastebin!! |
14:03:29 | FromDiscord | <garageagle> while true: |
14:03:31 | FromDiscord | <garageagle> echo(fmt"Term size: {terminalWidth()}x{terminalHeight()}") |
14:03:32 | Zevv | stop |
14:03:33 | FromDiscord | <garageagle> sleep(100) |
14:03:34 | FromDiscord | <garageagle> eraseScreen() |
14:03:35 | clyybber | leorize: Btw, does nimsuggest still crash once in a while? |
14:03:35 | FromDiscord | <garageagle> ``` |
14:03:37 | FromDiscord | <garageagle> There's probably a way to do this that looks better π |
14:03:39 | FromDiscord | <Kiloneie> don't edit |
14:03:42 | FromDiscord | <garageagle> oops ok |
14:03:44 | leorize | clyybber: I hope you understand why we hate code pasting now :P |
14:04:19 | clyybber | Sure, lol. Maybe we should pin something on discord to tell them to not do that |
14:04:31 | leorize | clyybber: compile it with -d:release and it will crash for pretty much every complex project |
14:04:36 | Zevv | or just kick on flooding once and ban on flooding twice :) |
14:04:45 | leorize | it crashes less now though |
14:05:23 | * | navinmistry quit (Ping timeout: 250 seconds) |
14:05:40 | FromDiscord | <garageagle> Alright here's my simple program https://hastebin.com/udubosomas.java |
14:05:40 | FromDiscord | <garageagle> It doesn't do much, and there's probably a way to do this that looks better. |
14:06:08 | FromDiscord | <garageagle> I'm just experimenting with nim right now |
14:06:08 | clyybber | leorize: Huh, why only with -d:release ? |
14:06:23 | leorize | because by default it's compiled with -d:danger |
14:06:38 | clyybber | Ugh, sure. |
14:06:39 | FromDiscord | <Kiloneie> use https://play.nim-lang.org/ |
14:06:39 | FromDiscord | <Kiloneie> interactive nim shell or something |
14:06:57 | Zevv | garageagle: what is your question exactly? |
14:07:27 | FromDiscord | <Kiloneie> you are just gonna hide your mouse and crash with that code |
14:08:07 | FromDiscord | <garageagle> yeah, I probably shouldn't use `while true` |
14:08:23 | FromDiscord | <Clyybber> @mratsim Can we pin a message telling people to dump their code through a pastebin and to not edit? |
14:09:17 | FromDiscord | <Kiloneie> if you want your mouse to show up after you use anything from the terminal module you need to use system.addQuitProc(resetAttributes) after you are done, or just reset whatever changes you did, these are permenant changes |
14:10:06 | FromDiscord | <Kiloneie> it's all explained in the module's description |
14:11:31 | FromDiscord | <garageagle> is there something like python's `except KeyboardInterrupt`? |
14:11:53 | * | navinmistry joined #nim |
14:13:00 | FromDiscord | <arnetheduck> that's the thing with bridges, you get users that don't understand the limitations of the other platforms. a pinned message will not help since someone looking for help using say discord will not expect that they have to break their habit of editing or pasting code, or what really matters - avoiding useful features |
14:14:08 | leorize | @garageagle: no, there aren't |
14:14:19 | leorize | well there's a way but normal code shouldn't depend on it |
14:14:37 | disruptek | i try hard to avoid useful features but i'm not always successful. |
14:16:13 | * | navinmistry quit (Ping timeout: 250 seconds) |
14:16:48 | * | endragor quit (Remote host closed the connection) |
14:18:36 | clyybber | arnetheduck: It will help in the case that they read the pinned message |
14:18:50 | FromDiscord | <Corax> Is it idiomatic to embed unit tests in source files a la rust? |
14:19:04 | clyybber | And even if most dont, it cant hurt |
14:19:05 | disruptek | when the source is only one file, i'd say yes. |
14:19:52 | FromDiscord | <Corax> In Rust I usually have integration tests at module level against the user facing API, and internal tests on every file that bypass visibility. Looks like I can do this here but IDK if it's the norm |
14:21:04 | FromDiscord | <arnetheduck> clyybber it's already in the title / topic |
14:21:30 | disruptek | the reason not to do it that way is that you end up building binaries for every file in the module; it just gets messy and you end up needing to cross-import just to run tests. |
14:21:54 | disruptek | makes more sense to obey the nimble pattern, even though it doesn't always make sense. |
14:22:32 | FromDiscord | <Corax> oh, "nimble test"? |
14:23:02 | disruptek | when you scale it up, you have a tests directory with individual tests in there... |
14:24:11 | clyybber | arnetheduck: Oh, nevermind then :) |
14:32:37 | Araq | Corax: try --styleCheck:error on your code |
14:38:56 | FromGitter | <alehander42> would this be enabled by dfault |
14:38:57 | FromGitter | <alehander42> in 2.0 |
14:42:02 | Araq | I don't know |
14:48:20 | FromDiscord | <garageagle> What's the best way to execute a console command and return its output? It seems that `execProcess` from `osproc` would work fine. |
14:48:40 | FromDiscord | <garageagle> *a command in a console |
14:48:50 | * | navinmistry joined #nim |
14:51:42 | leorize | execProcess is the best way there is currently |
14:51:54 | Zevv | araq, can I bug you? Do you think https://github.com/nim-lang/Nim/issues/12240 is eligable for a fix before 1.0.2? |
14:52:48 | Araq | Zevv: sure |
14:52:53 | Zevv | sweet |
14:53:29 | * | navinmistry quit (Ping timeout: 276 seconds) |
14:54:11 | * | ng0 joined #nim |
14:54:18 | disruptek | awesome. |
14:55:41 | narimiran | ...if it is fixed by the end of this week |
14:56:02 | disruptek | i'm starting to get to a tipping point where i have enough nim that moving off of it is burdensome. it's a scary good feeling, like marriage. |
14:56:40 | FromGitter | <alehander42> is that how marriage is supposed to feel |
14:56:58 | disruptek | probably not; i'm divorced. |
14:57:02 | narimiran | lol |
14:57:22 | FromGitter | <alehander42> i just said to my fiance it just feels burdensome to move off of her |
14:57:32 | FromGitter | <alehander42> now i saw you're divorced |
14:57:36 | FromGitter | <alehander42> good advise man |
14:57:40 | disruptek | dude. |
14:58:01 | Zevv | gha |
14:58:16 | narimiran | THE ADVICE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ... |
14:58:23 | disruptek | lol |
14:58:26 | narimiran | advices, MIT licenced |
14:58:26 | FromDiscord | <Kiloneie> oO |
14:58:56 | FromDiscord | <Kiloneie> Heres me, awaiting for marriage in eta no idea. |
14:59:29 | Zevv | [...] where I have enough wife that moving off of her is burdensome [...] |
14:59:32 | FromDiscord | <Shield> lol |
14:59:52 | Zevv | oh wait that even came out different then I ment :/ |
15:00:19 | Zevv | sorry about that |
15:00:21 | disruptek | maybe you should focus on the tipping points instead. |
15:00:43 | FromGitter | <alehander42> no, i was kidding sorry, i mean she liked it but she didnt get the MIT license reference |
15:01:30 | FromGitter | <alehander42> kiloneie i was in the same boat, i am not totally sure how i got here |
15:01:43 | FromGitter | <alehander42> but 1.02 |
15:01:58 | FromGitter | <alehander42> is coming next week? is nim going to do one of the "release each two weeks" |
15:01:59 | FromGitter | <alehander42> things |
15:02:01 | FromDiscord | <Kiloneie> I have a problem of, welp theres a pretty girl, let's not do anything |
15:02:34 | FromGitter | <alehander42> i already imagine the future, a team of compiler developers furiously writing more and more incomprehensible semantic checking bufixes |
15:02:56 | narimiran | alehander42: 1. yes, next week; 2. not every two weeks, but i'll push for it to be more scheduled/predictable |
15:03:00 | FromGitter | <alehander42> while narimiran manages a release on each 2 hours thing |
15:03:10 | FromGitter | <alehander42> sorry, this got very dystopian |
15:03:17 | disruptek | i think it'd be really good to have regular releases. i do think 2 weeks is pretty good for patch-level bumps but maybe closer to ~8-10 weeks for minors. |
15:03:22 | * | owl_000 quit (Ping timeout: 245 seconds) |
15:03:47 | narimiran | i have an idea about releases, but i guess i'll need to write RFC |
15:03:59 | disruptek | the fact is that a lot of bugs get fixed in two weeks. |
15:04:02 | FromGitter | <alehander42> i also like the idea, but on the other hand 1.x releases probably depend on bigger features |
15:04:26 | FromGitter | <alehander42> but iirc in rust, this just means the future gets delayed for 1.x+1 |
15:04:31 | FromGitter | <alehander42> which is no bother |
15:04:36 | FromGitter | <alehander42> as releases happen often |
15:04:43 | FromGitter | <alehander42> feature* |
15:05:21 | FromDiscord | <Corax> ``` nimsuggest instance for project /home/corax/repos/pwnim stopped with exitcode: 143 ``` |
15:05:21 | FromDiscord | <Corax> |
15:05:21 | FromDiscord | <Corax> any idea @leorize? This is even with coc.vim disabled |
15:05:33 | FromGitter | <alehander42> kiloneie, well, in those pretty cases better try {} and catch the exception |
15:05:34 | FromGitter | <alehander42> :P |
15:05:56 | FromDiscord | <Kiloneie> lol D: |
15:05:59 | FromDiscord | <Corax> I get that error every time I exit vim on a .nim file, other than that everything is working fine |
15:06:32 | FromGitter | <alehander42> just dont exit vim |
15:07:48 | FromDiscord | <Corax> It's too much effort tbh π |
15:08:08 | leorize | @Corax: hmm, that's weird |
15:08:19 | leorize | it might be that nimsuggest got killed with a signal |
15:08:36 | leorize | well it's not too serious if it only appear on exit |
15:08:38 | * | pigmej left #nim ("Kicked by @appservice-irc:matrix.org : issued !quit command") |
15:09:10 | leorize | you're the first so far to report something like that :/ |
15:09:38 | FromDiscord | <Corax> I have two instances of nimsuggest for some reason installed in my machine, one under choosenim/ and the other under nimble/ so there is a big chance I mucked up my install |
15:09:43 | FromDiscord | <Corax> gotta look into that |
15:12:16 | shashlick | finally a working build of feud - https://github.com/genotrance/feud/releases |
15:12:41 | disruptek | good job |
15:13:01 | disruptek | you are using it full time? |
15:13:31 | shashlick | about to start |
15:13:48 | shashlick | was being spoiled by leorize, becoming lazy |
15:21:36 | federico3 | https://hacktoberfest.digitalocean.com/details |
15:22:33 | narimiran | Nim will participate, of course (i'll tag 'Easy' issues with 'Hacktoberfest') |
15:22:45 | FromDiscord | <Kiloneie> What is this ? |
15:23:03 | narimiran | it is "help open source community, win T-shirt" |
15:23:38 | narimiran | you need to make 5 PRs in october to any publicly available github repo |
15:25:04 | Zevv | and *everyone* gets a shirt? |
15:25:12 | FromDiscord | <Kiloneie> so you make contributions for a shirt ? |
15:25:20 | * | LargeEpsilon_ quit (Ping timeout: 276 seconds) |
15:25:33 | narimiran | Zevv: yeah, there is a limit, but in previous years it was never reached, IIRC |
15:25:37 | federico3 | Kiloneie: I hope not. |
15:25:50 | Zevv | well, if you're short on shirts I guess thats a good reason |
15:26:15 | FromDiscord | <Kiloneie> i don't get it, you can make contributions at any time, what does this event actually do ? |
15:26:26 | narimiran | encourages people |
15:26:38 | FromGitter | <alehander42> but they need to be merged them right? |
15:26:43 | narimiran | nope |
15:26:46 | FromGitter | <alehander42> ah |
15:26:53 | narimiran | e.g. last year i decided to make 30 PRs in 30 days, just for fun |
15:27:16 | Zevv | wow its like the dilbert where programmers get bonusus for fixing bugs. "we're rich!" |
15:27:17 | narimiran | *31 |
15:28:40 | federico3 | Kiloneie: you contribute because you want to do so and the completion email is a little thank-you for an otherwise often thankless task. I often participated without requesting the t-shirt. |
15:29:01 | * | navinmistry joined #nim |
15:29:30 | FromDiscord | <Kiloneie> Not my thing i guess. I dabble into programming, i am not born into it. |
15:30:00 | Zevv | kiloneie: you might surprise yourself one day |
15:30:01 | disruptek | don't let that stop you. |
15:30:21 | Zevv | you find this tiny thing bugging you that you know how to fix |
15:30:22 | FromGitter | <alehander42> PR is fun man |
15:30:28 | disruptek | i'm pretty lousy at it, but i still enjoy it. |
15:30:32 | FromGitter | <alehander42> you can PR crazy things |
15:30:49 | FromGitter | <alehander42> but dont |
15:31:13 | Zevv | kiloneie: noone will ever critisize you personally over a PR. They might critizize the PR itself, but that is how you learn |
15:31:16 | disruptek | i hacked my irc bot last night so it only throws up a notification on my screen if i don't have my irc window focussed. it's a small thing, but huge impact. being a programmer is like being a magician. |
15:31:34 | Cadey | Kiloneie: "failure" is catalytic to success |
15:31:47 | FromDiscord | <Kiloneie> maybe, but if i will fix things it will be Nim, Godot and such, not random stuff. Once i actually know what i am doing. |
15:31:51 | FromGitter | <alehander42> no |
15:31:56 | FromGitter | <alehander42> it's just a nice skill |
15:32:14 | Zevv | wow this channel is really therapeutic. we can all hold hands and sing! |
15:32:14 | FromGitter | <alehander42> but i agree, making PR-s just for the sake of it isn't important |
15:32:20 | Araq | it's so much easier though when you don't know what you're doing |
15:32:28 | narimiran | :D :D |
15:32:40 | Cadey | the real trick is to see yourself as a professional beginner |
15:32:46 | FromGitter | <alehander42> but if you dont, you go and PR the wrong repo by mistake |
15:32:53 | Zevv | cadey: thats pretty true. |
15:33:11 | shashlick | @disruptek - what client do you use |
15:33:13 | * | navinmistry quit (Ping timeout: 245 seconds) |
15:33:17 | FromGitter | <alex65536> How does `sink` work? |
15:33:33 | daddoo | this is therapeutic? I'm reading as it scrolls by and thinking "Holy cow, look at all the stuff I don't understand yet!" |
15:33:35 | disruptek | my bot is nim. |
15:33:35 | Zevv | contributing elevates you beyond your own pet projects. you have the guts to talk to a mic on a computer, I dont |
15:33:38 | FromGitter | <alex65536> The docs say the parameter is consumed and is no longer accessible |
15:33:46 | * | disruptek waves at snooptek. |
15:34:01 | FromDiscord | <Kiloneie> Welp my october is gonna be videos after videos, and one party where i hope i don't break myself again o,o. |
15:34:08 | FromGitter | <alex65536> And the compiler checks that it's not used |
15:34:19 | FromGitter | <alex65536> But the following code compiles: |
15:34:21 | Cadey | alex65536: https://nim-lang.org/docs/destructors.html |
15:34:26 | FromGitter | <alex65536> `func consume(x: sink int) = discard "no impl" β β var x = 3 β consume x β var y = x + 4 ... [https://gitter.im/nim-lang/Nim?at=5d922081eb1eff63d650d9cb] |
15:34:30 | FromGitter | <alehander42> Kiloneie why dont you twitch? i find it much easier, because its nice to talk with people while you code |
15:34:47 | clyybber | * stream |
15:34:55 | clyybber | You can also stream on youtube |
15:34:59 | FromDiscord | <Kiloneie> i find it scary, my initial plan was to stream games, i waited 7 months for optic fiber, my shitty fucking internet provider |
15:35:13 | FromGitter | <alehander42> ohhhh, internet speed is important indeed |
15:35:19 | FromDiscord | <Kiloneie> so i made gaming videos instead, that got me no views at all... in 4 months. Now i am here π |
15:35:30 | clyybber | alex65536: Because this doesn't apply for ints |
15:35:34 | FromDiscord | <Kiloneie> i had 10/1 connection before, couldn't do a thing |
15:35:55 | clyybber | alex65536: Wrap your int in an object and see it work |
15:36:02 | * | whaletechno joined #nim |
15:36:03 | FromGitter | <alehander42> *holds the hand of* Zevv |
15:36:32 | FromDiscord | <Kiloneie> took me 8 hours for an hour of gaming video to upload. it was a nightmare. Now it takes like less than a minute for a Nim video with this connection. |
15:36:50 | clyybber | Nim videos are probably much smaller too |
15:37:06 | FromGitter | <alehander42> so probably you can stream |
15:37:08 | FromGitter | <alehander42> with that speed |
15:37:35 | Cadey | i should stream some nim programming at some point |
15:37:36 | * | pigmej joined #nim |
15:37:43 | FromGitter | <alex65536> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5d922147eb1eff63d650e319] |
15:37:46 | clyybber | Zevv: Araq is fast as fuck: https://github.com/nim-lang/Nim/pull/12308 |
15:37:48 | FromGitter | <alex65536> Still compiles |
15:38:09 | Araq | no, I was bored and I'm thankful for easy bugs |
15:38:16 | clyybber | lol |
15:38:24 | disruptek | shashlick: https://github.com/disruptek/xs/blob/master/bot.nim |
15:38:38 | FromDiscord | <Kiloneie> i got 100/100 now, i can, but... i really shouldn't yet, i am planning to do so once i get like 30-40 videos on Nim, have an audience to actually show up, and also have the knowledge to actually show them stuff, right now i don't know much. |
15:39:09 | clyybber | alex65536: Care to share the snippet? |
15:39:36 | disruptek | not sure anyone wants to watch me meander through code. it's rare that i have any idea what i'm doing. |
15:39:44 | clyybber | Araq: If you're bored, can you look at https://github.com/nim-lang/Nim/issues/12294 ? I have no idea whats going on there |
15:40:45 | disruptek | https://github.com/nim-lang/Nim/issues/11081 |
15:41:09 | Cadey | disruptek: you think i have any idea what i'm doing? |
15:41:33 | Cadey | i was probably gonna do some stuff re: hobbyist computational linguistics in Nim |
15:42:03 | FromGitter | <alex65536> clyybber: https://paste.ubuntu.com/p/Nmh4BhJswd/ |
15:42:27 | disruptek | Cadey: do you have any nlp experience or just gpt-2 play? |
15:42:37 | FromGitter | <alex65536> Is text in code tags transmitted from Gitter to IRC? |
15:42:38 | shashlick | @disruptek so you have two connections to irc - one with your client and this bot to notify? |
15:42:38 | Cadey | i'm not even doing GPT-2 :D |
15:42:45 | disruptek | markov chains? |
15:42:50 | disruptek | what are we talking about? |
15:42:52 | Cadey | 15:37 (FromGitter) <alex65536> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5d922147eb1eff63d650e319] |
15:42:54 | shashlick | Doesn't your client have notifications? |
15:43:08 | Cadey | disruptek: parsing streams of words in a conlang into an abstract idea of a sentence |
15:43:10 | disruptek | yes, but i watch the whole channel. everything. |
15:43:14 | Araq | clyybber: looked at it but haven't found the cause |
15:43:23 | disruptek | how do you think i'm so active in here? |
15:43:35 | shashlick | I use matterbridge and slack |
15:43:41 | Araq | I suspect that somehow the VM is dealing with a "destructor injected" AST |
15:43:56 | clyybber | Araq: Oh, and it can't deal with that? |
15:44:06 | shashlick | Also pull in all github notifications, forum posts, etc |
15:44:07 | disruptek | Cadey: i need someone with some semantics experience, but it might not require a 99% result. 80% might be good enough. |
15:44:09 | Araq | yeah. there is logic to avoid this |
15:44:39 | Cadey | disruptek: conlangs let you better control the semantics :D |
15:44:40 | clyybber | disruptek: Hows that `#?` thing called again? |
15:44:45 | shashlick | Cause I get mobile too then |
15:44:57 | disruptek | clyybber: you can ignore that, but it's a source code filter. |
15:45:05 | disruptek | called by the compiler. |
15:45:05 | Cadey | disruptek: https://christine.website/blog/mapatei-2019-09-22 |
15:45:13 | disruptek | are you looking at my PR for literate? |
15:45:26 | FromGitter | <alex65536> BTW, I use Nim 1.0 in Debian unstable to compile |
15:45:28 | Cadey | i'm currently working on the stream of words to a stream of phrases layer |
15:45:32 | clyybber | disruptek: Ah, I thought it was, but I forgot the syntax for them. |
15:45:50 | clyybber | disruptek: Dunno, just looked at some link u sent :P |
15:46:06 | disruptek | oh, that's just a comment now. i think i retabbed that file. |
15:46:36 | disruptek | my personal code is largely tabulated because expandtab is stupid. but i've been publishing more dogshit, so i've retabbed most of it. |
15:47:22 | FromGitter | <alex65536> BTW, is there a way to pass a parameter by copy in Nim, with the ability to change it inside? |
15:47:32 | disruptek | Cadey: #nim-offtopic? |
15:47:36 | Cadey | sure |
15:47:56 | clyybber | alex65536: Nope, just do `var paramName = paramName` |
15:47:58 | Zevv | clyybber: woot! |
15:48:03 | * | floppydh quit (Quit: WeeChat 2.6) |
15:48:07 | Zevv | you see, even Araq PR's! |
15:48:19 | FromGitter | <alex65536> Thanks :) |
15:49:39 | clyybber | alex65536: Not sure whats going on there, but you should get a hint "Copy passed to sink param" or something like that |
15:50:30 | FromGitter | <alex65536> clybber: |
15:50:36 | FromGitter | <alex65536> ```code paste, see link``` [https://gitter.im/nim-lang/Nim?at=5d92244b9d4cf1736045bdcf] |
15:50:48 | FromGitter | <alex65536> That's what I got |
15:50:53 | clyybber | Yeah, same |
15:51:59 | * | LargeEpsilon joined #nim |
15:53:47 | * | Trustable joined #nim |
15:56:11 | FromGitter | <alex65536> So, a bug? |
15:59:16 | FromGitter | <alex65536> > but you should get a hint "Copy passed to sink param" or something like that β And why only hint, but not a error? |
15:59:18 | FromDiscord | <Shield> @shashlick congrats for getting it to work, can you make a 32bit build? |
16:02:11 | clyybber | alex65536: Because it shouldn't error? Its only a performance hint |
16:02:53 | clyybber | alex65536: Also regarding your snippet, I don't think its a bug. You don't have `=` `=destroy` or `=sink` defined for your object type, so its just gonna ignore it |
16:04:13 | shashlick | @Shield - sure I can setup travis for that |
16:04:16 | shashlick | how come you want 32-bit |
16:06:59 | FromDiscord | <Shield> i'm currently on a 32bit window install and i can't really switch |
16:07:17 | shashlick | okay let me see |
16:08:12 | FromGitter | <alex65536> @clyyber: so, in this case `sink` should do nothing? |
16:10:39 | * | aEverr quit (Ping timeout: 265 seconds) |
16:11:18 | FromGitter | <alex65536> but with `seq[int]` it doesn't β β ```code paste, see link``` β β prints `@[9, 2, 3, 4]` ... [https://gitter.im/nim-lang/Nim?at=5d922926eb1eff63d6511dd7] |
16:11:39 | * | aEverr joined #nim |
16:13:08 | * | leorize quit (Remote host closed the connection) |
16:13:46 | * | leorize joined #nim |
16:14:20 | * | nif quit (Quit: ...) |
16:14:29 | * | nif joined #nim |
16:24:24 | * | navinmistry joined #nim |
16:27:47 | * | nsf joined #nim |
16:28:49 | * | navinmistry quit (Ping timeout: 250 seconds) |
16:37:41 | FromGitter | <Varriount> Neat, looks like Araq is investigating GC stuff |
16:45:24 | * | clyybber quit (Quit: WeeChat 2.6) |
16:52:15 | * | tiorock joined #nim |
16:52:16 | * | tiorock quit (Changing host) |
16:52:16 | * | tiorock joined #nim |
16:52:16 | * | rockcavera quit (Killed (orwell.freenode.net (Nickname regained by services))) |
16:52:16 | * | tiorock is now known as rockcavera |
16:59:51 | * | tklohna joined #nim |
17:05:39 | * | narimiran quit (Remote host closed the connection) |
17:06:17 | * | narimiran joined #nim |
17:08:22 | * | ehmry quit (Ping timeout: 245 seconds) |
17:10:16 | * | LargeEpsilon quit (Ping timeout: 240 seconds) |
17:11:46 | FromDiscord | <garageagle> How would I run a console command (eg. `ls`, `dir`) and capture the output? `execProcess()` only allows me to run programs. (I'm on windows btw) |
17:12:16 | tklohna | Hello everyone! I'm trying to compile nim to s390x, but I'm getting unsupported CPU. According to https://nim-lang.org/docs/packaging.html s390x should be "supported". Am I missing some necessary steps? :) |
17:13:24 | Zevv | well, your platform is pretty rare and it is not in the regular test suite, so you might have hit some unloved code maybe |
17:14:04 | tklohna | That's what I thought. I'm thinking of using nim to implement a test harness instead of our current written in C, so I'm testing all arches that we need |
17:14:29 | tklohna | welp, I'll dive into the code, but I don't see anything obvious |
17:15:38 | * | clyybber joined #nim |
17:15:40 | * | LargeEpsilon joined #nim |
17:18:16 | * | navinmistry joined #nim |
17:22:16 | FromGitter | <alehander42> yes, i guess one just needs to |
17:22:23 | FromGitter | <alehander42> fill in platform.nim |
17:22:31 | FromGitter | <alehander42> i cant see s390x |
17:22:52 | * | navinmistry quit (Ping timeout: 264 seconds) |
17:23:45 | FromGitter | <alehander42> one needs to add it to TSystemCPU, and an element to CPU |
17:23:57 | FromGitter | <alehander42> rebuild the compiler |
17:23:58 | FromGitter | <alehander42> and i guess that should be enough? |
17:24:15 | tklohna | I will tomorrow. Thanks! |
17:24:18 | tklohna | *try |
17:24:46 | FromGitter | <alehander42> it should be a simple fix away |
17:24:49 | FromGitter | <alehander42> thank you |
17:30:02 | * | nsf quit (Quit: WeeChat 2.5) |
17:32:22 | FromDiscord | <garageagle> How would I run a console command (eg. ls, dir) and capture the output? execProcess() only lets me run programs. |
17:32:37 | FromGitter | <alehander42> thats not true |
17:32:48 | narimiran | `execCmdEx` ? |
17:33:03 | * | nif quit (Quit: ...) |
17:33:08 | FromGitter | <alehander42> what i mean is, it is true sorry, but sometimes its enough to pass full path to `ls` etc |
17:33:13 | * | nif joined #nim |
17:33:31 | FromGitter | <alehander42> oh this is good |
17:34:10 | Araq | garageagle: use os.nim instead, don't run external, platform specific commands |
17:36:51 | disruptek | it makes araq angry. |
17:36:58 | disruptek | you wouldn't like him when he's angry. |
17:37:07 | * | LargeEpsilon quit (Ping timeout: 245 seconds) |
17:44:36 | * | Ven`` joined #nim |
17:44:44 | * | rockcavera quit (Remote host closed the connection) |
17:45:08 | * | ehmry joined #nim |
17:55:32 | * | navinmistry joined #nim |
17:57:06 | FromDiscord | <Kiloneie> Have a snickers |
17:57:13 | rayman22201 | too much irc history. I can't keep up lol. |
17:57:26 | FromDiscord | <Kiloneie> don't read it |
17:59:49 | * | navinmistry quit (Ping timeout: 250 seconds) |
18:01:51 | FromDiscord | <Shield> man building on windows is such a shitshow |
18:02:14 | FromDiscord | <Kiloneie> Wau i just made a cut mid sentence and replaced it perfectly O,O, voodoo luck |
18:03:10 | disruptek | you had me at `windows is such a shitshow`. |
18:04:15 | clyybber | disruptek: With araqs upcoming fix and my streams thing merged you *should* be able to run npeg at CT on the JS backend |
18:04:32 | disruptek | i saw that, thanks. π |
18:07:54 | clyybber | Araq: was just investigating the VM issue, and then saw your fix |
18:08:08 | clyybber | Can you explain why that assert was there in the first place? |
18:09:41 | * | couven92 joined #nim |
18:09:42 | disruptek | btw, did you see that windows-null-writes bug exelotl ran into? |
18:10:02 | clyybber | Nope, have a link? |
18:10:18 | disruptek | https://gist.github.com/exelotl/d286002d8f90f75bbd4543352e271f73#file-writewindows_fix-nim-L18-L22 |
18:10:29 | FromGitter | <alehander42> rayman22201 we need to generate highlights |
18:10:36 | disruptek | problem is that we're not writing nulls into files on windows. |
18:10:41 | * | al_ joined #nim |
18:10:51 | FromDiscord | <Shield> @shashlick so I tried to build Feud, I only managed to build the plugins (for some reason git in nimterop refuses to work so I had to download the libs manually) |
18:10:52 | disruptek | i think we're eliding them from console output but the code is eliding them from all writes. |
18:11:05 | FromDiscord | <Shield> I couldn't get past building scintilla for the bin, it gave me an error that string_view is missing, it's an experimental lib in gcc so I assume that it requires some special flag to use, copying it doesn't help, the compiler just gets stuck on PlatWin file |
18:11:31 | disruptek | i think we want it to be fixed for 1.0.2. |
18:11:33 | FromDiscord | <Shield> it doesn't say anything, it gives up silently without crashing lol |
18:11:38 | rayman22201 | @alehander42, lol indeed |
18:11:50 | disruptek | Shield: which platform? |
18:12:21 | clyybber | disruptek: WTH that's kinda funny. Unfortunately (not) I don't use windows anymore. |
18:12:50 | clyybber | Since wine and dxvk have advanced so far there is no reason for me anymore to dualboot |
18:13:22 | disruptek | yeah, it's weird because the code was in with an `if false` and then it got put in as part of a larger rollup for 1.0. to fix unicode or something. but, it's no beuno. |
18:14:02 | * | daddoo quit (Quit: Leaving) |
18:14:55 | Araq | clyybber: the assert was there because I thought about this incorrectly: for 'a[i] = move(a[j])' the dest "register" doesn't have to be set as a[i] is never in a register |
18:15:42 | Araq | the wrong assertion could be fixed by removing it, everything works out fine. Could have added a test case but I'm special |
18:16:21 | * | nsf joined #nim |
18:17:16 | FromDiscord | <Shield> @disruptek win7 32bit |
18:19:17 | clyybber | Araq: Cool, thanks. If you want I send a test case PR |
18:19:42 | Araq | after we got the azure pipelines to work |
18:19:54 | Araq | the CIs are unusably slow now :-) |
18:19:59 | Araq | :-( |
18:20:01 | disruptek | maybe someone with windows can look at exelotl's thing. |
18:20:27 | clyybber | Araq: Yeah, I noticed that too, wanted to ping narimiran about it, but I guess theres not much we can do |
18:20:47 | Araq | he's working on the azure thing |
18:21:23 | clyybber | Oh, cool. What benefits do those have? |
18:22:02 | narimiran | speeeeeeeeed |
18:22:07 | clyybber | Nice |
18:22:28 | FromDiscord | <Shield> I missed exelotl's bug, did he provide some minimal test? |
18:22:57 | disruptek | you can't write a string with nulls in it to a file on windows. |
18:23:00 | clyybber | More than a hundred PRs per week lol: https://github.com/CleverRaven/Cataclysm-DDA/pulse |
18:23:16 | disruptek | i posted the link to something he wrote in prep for a fix. |
18:26:55 | * | navinmistry joined #nim |
18:31:08 | * | navinmistry quit (Ping timeout: 245 seconds) |
18:35:32 | * | ng0 quit (Ping timeout: 260 seconds) |
18:38:30 | FromDiscord | <exelotl> hey I'm back and finished eating |
18:38:37 | FromDiscord | <exelotl> I'll pick it up now :) |
18:38:48 | shashlick | @Shield - you need v020 branch of nimterop |
18:39:26 | FromDiscord | <Shield> I do have v020, nimble downloaded that automatically |
18:39:33 | * | ng0 joined #nim |
18:39:49 | shashlick | okay can you `nimble clean && nimble release` and show me what your output is |
18:39:54 | shashlick | also what version of gcc do you have |
18:40:32 | FromDiscord | <Shield> I use the recomended version from Nim website |
18:40:44 | * | clyybber quit (Quit: WeeChat 2.6) |
18:41:25 | FromDiscord | <Shield> also can confirm exelotl's bug, it doesn't write null characters, when I edit that line, the program just hang while consuming cpu |
18:42:00 | disruptek | that's helpful. |
18:43:15 | shashlick | okay that might be too old - v4.x right? |
18:43:21 | shashlick | i use 8.1.0 |
18:46:24 | shashlick | @dom96 - please review - https://github.com/nim-lang/nimble/pull/714 |
18:46:34 | shashlick | https://github.com/nimble-test/issue280and524/pull/3 |
18:47:15 | FromDiscord | <Shield> it's 6.3.0 |
18:47:40 | FromDiscord | <Shield> i'll try to update and get back at you, feudc was built at least |
18:48:01 | shashlick | ya is scintilla related and feudc doesn't use that |
18:48:42 | FromDiscord | <Shield> well, the last error was related to scintilla, it failed to import string_view |
18:54:24 | FromDiscord | <Shield> i guess that may be the problem, scintilla requires gcc 7.1.0 or better |
18:57:39 | * | skoude joined #nim |
18:58:23 | FromDiscord | <Kiloneie> #7 is live ! |
18:58:23 | FromDiscord | <Kiloneie> LINK: https://youtu.be/Ystn3SG2yeU |
18:59:58 | FromDiscord | <Kiloneie> This one convinced me not to make 2 videos a day, this one was hard to record and edit <,< |
19:00:55 | * | rokups quit (Quit: Connection closed for inactivity) |
19:04:26 | * | navinmistry joined #nim |
19:08:36 | * | navinmistry quit (Ping timeout: 240 seconds) |
19:15:32 | * | clyybber joined #nim |
19:20:35 | FromDiscord | <Shield> gotta love those missing gcc dlls when you compile to c++ |
19:25:03 | FromDiscord | <Shield> compiling takes quite long, expecially for dlls, I think nimterop regenerates the bindings for each library separately |
19:26:11 | paxis | is there a reason why a DateTime object doesn't get replaced in fmt"{dt}"? |
19:28:29 | Araq | import times |
19:28:29 | Araq | var dt = initDateTime(01, mJan, 2000, 00, 00, 00) |
19:28:29 | Araq | check &"{dt:yyyy-MM-dd}", "2000-01-01" |
19:28:32 | Araq | works |
19:30:57 | * | NimBot joined #nim |
19:31:20 | paxis | so the format is a requirement? |
19:32:32 | FromDiscord | <juan_carlos> fmt"{$dt}" |
19:33:14 | paxis | i was doing echo &"Time: {dt}", or even just echo &"Time: {now()}" |
19:33:17 | disruptek | asynchttpserver runs an infinite loop when you ask it to serve. that loop crashes when any async client operation fails. doesn't seem like sensible server behavior. |
19:33:49 | Araq | disruptek: report it |
19:33:50 | paxis | the $ just converts to a string? |
19:34:22 | FromDiscord | <Kiloneie> $ is used to convert any basic type to string |
19:34:29 | disruptek | yeah, just throwing it out there for the masses. |
19:34:33 | paxis | ok, thanks! |
19:35:30 | disruptek | $ is a proc conventionally implemented for types which returns a string representation of instances of said type. |
19:35:57 | zedeus | dom96: please take a look at this when you have time https://github.com/zedeus/jester-example |
19:36:22 | disruptek | yeah, it's like 315 in asynchttpserver.nim in the stdlib. |
19:36:28 | disruptek | s/like/line/ |
19:37:19 | disruptek | zedeus: you wanna make an issue? |
19:38:35 | zedeus | I could but I'm not 100% sure about the cause yet, whether it's simply because of a request getting cancelled |
19:38:59 | disruptek | well, i am. |
19:39:21 | * | navinmistry joined #nim |
19:40:31 | * | pigmej quit (Quit: ZNC 1.7.3 - https://znc.in) |
19:40:35 | Araq | disruptek: when this code was written you couldn't use 'try' inside 'async' or something :P |
19:41:01 | disruptek | i think maybe the right solution is to make no changes and just have jester write a new mainloop. |
19:41:25 | disruptek | ie. leave the stdlib alone and just explain the behavior. |
19:41:50 | Araq | add a 'onError' callback maybe so that the server it not tied to a logging mechanism |
19:42:40 | disruptek | serve() could be an iterator that yields futures for each client connection. |
19:43:31 | * | pigmej joined #nim |
19:43:49 | * | navinmistry quit (Ping timeout: 250 seconds) |
19:45:40 | Araq | or that, *shrug*. or maybe simply document how the loop should look like and don't optimize for "a webserver takes 1 line of code" |
19:46:03 | disruptek | that's why i say, `do nothing` and explain. π |
19:46:23 | * | leorize quit (Remote host closed the connection) |
19:46:46 | disruptek | what's good about it is that it forces you to think about handling this situation once you get serious about serving requests. |
19:46:51 | * | leorize joined #nim |
19:53:14 | * | asymptotically quit (Quit: Leaving) |
19:53:47 | disruptek | but we're not exporting the client handling, so it does need a change. π |
19:57:50 | * | abm quit (Quit: Leaving) |
19:58:02 | Zevv | Will js tests run by `nim js -r mystuff.nim` work in the important-packages CI? |
19:58:22 | Zevv | aka, is node available? |
19:58:22 | lqdev[m] | just found this bug https://play.nim-lang.org/#ix=1K7v |
19:58:26 | lqdev[m] | is this known? |
19:59:39 | * | skoude quit (Ping timeout: 240 seconds) |
19:59:49 | Zevv | `result` = ((NI*) `x`.ClE_0)[1] < 0; |
19:59:51 | Zevv | whoa |
20:00:34 | * | couven92 quit (Quit: Client Disconnecting) |
20:00:52 | clyybber | lqdev[m]: I dont think so |
20:01:14 | shashlick | @Shield did it work |
20:01:32 | shashlick | Each dll is in a separate nimcache so it gets regenerated |
20:01:37 | shashlick | But only once |
20:06:04 | clyybber | Zevv: I'd like to use npeg for my parser, but I'm not sure its the right tool. |
20:06:13 | clyybber | Since I have to parse ascii art at some point |
20:06:25 | Zevv | it's never the right tool |
20:06:35 | Zevv | it's like duct tape and tie wraps |
20:06:53 | FromGitter | <Bennyelg> Anyone has an idea : β β ```code paste, see link``` β β I tried to add import models/post but it still persist [https://gitter.im/nim-lang/Nim?at=5d92605dd97d8e3549decddd] |
20:07:21 | Zevv | clyybber: but feel free to drop me a snippet of what you will be parsing! |
20:07:56 | clyybber | Zevv: Something like this: http://ix.io/1K7O |
20:08:08 | Araq | Zevv: yes, node is available |
20:08:15 | disruptek | you're parsing a roguelike? |
20:08:39 | clyybber | disruptek: I'm parsing map parts, yeah |
20:08:50 | Zevv | Araq: ok, thanks. With your fix of 12240 stuff now works, so I enabled the js test by default |
20:09:10 | Araq | https://theitbros.com/powershell-gui-for-scripts/ slightly offtopic but maybe "finish.exe" can make use of this... |
20:10:01 | lqdev[m] | Zevv: this happens because `finished` is a proc for checking whether a closure iterator is finished, but that proc only works on closure iterators (duh) |
20:10:02 | lqdev[m] | I'll report this later |
20:10:04 | FromDiscord | <Kiloneie> Make GUI version of installer ? Yes. |
20:10:12 | * | navinmistry joined #nim |
20:10:13 | Zevv | clyybber: that should be no problem. But is it work making a complete parser for that, or will it get more complex? |
20:10:29 | * | cgfuh quit (Quit: WeeChat 2.5) |
20:10:29 | clyybber | It's fairly simple so far |
20:10:36 | Zevv | lqdev[m]: Sure, but I ment the implementation. It's .emit.'ing nasty mangled C code |
20:10:43 | clyybber | I even got rid of StringStreams now, and am now looping manually |
20:12:01 | Araq | Kiloneie: we had one once but it couldn't be maintained |
20:12:07 | Zevv | clyybber: sure, whatever works for you |
20:12:17 | Araq | the installers are all pretty bad with "optional downloads" |
20:12:41 | clyybber | Zevv: I'm just wondering, is there some proof or research into whats the optimal way of parsing something? |
20:12:47 | Araq | and coding a mingw detection logic in a bad scripting language wasn't fun either. in the end only Nim could do it properly |
20:12:55 | testgovno[m] | ; |
20:13:06 | clyybber | ; |
20:13:07 | Araq | and I decided that programmers can run a console application |
20:13:21 | FromDiscord | <Kiloneie> well it is simple enough |
20:13:37 | FromDiscord | <Kiloneie> gamers can do that too, pirate ones |
20:13:52 | Araq | hi testgovno[m] |
20:14:07 | FromDiscord | <Kiloneie> pretty sure govno means shit |
20:14:28 | * | navinmistry quit (Ping timeout: 245 seconds) |
20:14:44 | clyybber | Yeah, in russian |
20:14:46 | Zevv | clyybber: there's tons of research and papers, and i dont think it's a closed subject yet. This was all pretty new to me when I started this, and I only scratched the surface. If you want performance, you hand write your parser. If you want flexible and low maintaince, generate something. |
20:14:50 | FromDiscord | <demotomohiro> I think installing Nim using scoop package manager is simplest. It automatically install gcc and set PATH. |
20:15:40 | Araq | cool but "automatically install gcc" is exactly what I didn't want |
20:15:58 | Araq | as the gcc can stay when update your Nim and it's quite a download |
20:18:31 | FromDiscord | <Shield> @shashlick it worked, I've spent some time chasing a missing dll, somehow I installed a gcc that doesn't have libgcc_s_dw2-1.dll twice |
20:19:39 | FromDiscord | <Shield> the save plugin fails tho, and sometimes it crashes, i'll recompile in debug mode to see if it'll give better errors, but it works |
20:20:15 | * | Vladar quit (Remote host closed the connection) |
20:23:03 | * | nsf quit (Quit: WeeChat 2.5) |
20:28:46 | FromDiscord | <garageagle> Is there a way to make `net.recv()` accept any amount of data? |
20:29:19 | disruptek | what a strange question. |
20:29:53 | disruptek | what are you trying to do? |
20:31:36 | FromDiscord | <garageagle> I'm used to python where you just put the maximum amount of data you want |
20:31:56 | disruptek | that's how it works here, too. |
20:32:11 | FromDiscord | <garageagle> I guess I could make my own by accepting one byte of data over and over until it times out |
20:32:40 | FromDiscord | <garageagle> hmm, maybe I'm implementing it wrong |
20:32:48 | FromDiscord | <garageagle> Let me look at my code again |
20:33:17 | * | LargeEpsilon joined #nim |
20:36:44 | FromDiscord | <Kiloneie> Notepad++ still uses Nimrod name for Nim. |
20:37:17 | * | LargeEpsilon quit (Ping timeout: 240 seconds) |
20:39:07 | FromDiscord | <exelotl> LOL i made a dumb mistake in my fix |
20:39:17 | FromDiscord | <exelotl> "why is fputc returning -1" |
20:39:31 | FromDiscord | <exelotl> cause I accidentally imported fputs under the name fputc |
20:41:39 | Araq | er why does 'nimble search wxWidgets' returns nothing? |
20:42:49 | * | rockcavera joined #nim |
20:44:03 | FromGitter | <alehander42> Kiloneie, they should stop |
20:44:11 | FromGitter | <alehander42> exelotl, hm |
20:44:30 | narimiran | Araq: https://nimble.directory/ also returns nothing. so either there is really nothing or somebody just didn't write their tags properly |
20:44:52 | Araq | I think I forgot to "Nimble publish" it |
20:45:46 | pigmej | Araq :D |
20:46:23 | Araq | nimble should search github... |
20:48:06 | Zevv | nooooh bah |
20:48:15 | oz | is there not something like this? nimble install --from-git https://server/somerepo.git |
20:48:56 | FromDiscord | <Kiloneie> why does running a .nims script trough cmd via nim "insertname.nims" which doesn't show any errors, do nothing... i put an echo in there, std.readLine, used mkDir(), nothing... |
20:49:34 | narimiran | oz there is |
20:49:46 | narimiran | nimble install <url> |
20:50:30 | * | navinmistry joined #nim |
20:50:36 | FromDiscord | <garageagle> `net.recv()` with no timeout (or timeout = -1) is basically blocking, right? |
20:52:57 | oz | narimiran: ah thanks, we're good then. :) |
20:54:53 | * | navinmistry quit (Ping timeout: 245 seconds) |
20:55:37 | * | narimiran quit (Ping timeout: 240 seconds) |
20:56:11 | oz | it could be fun to have sub-commands Γ la git/cargo, where if you have "nimble-something" somewhere in your path, you can invoke "nimble something" transparently. |
20:57:33 | Araq | oh my |
20:58:41 | Araq | if you can't design your system, give it thousands of options but put them under a hierarchy. |
21:07:26 | clyybber | Zevv: Haha, ok its starting to get ugly really fast. Guess I'm gonna use npeg :) |
21:08:03 | Zevv | show me? |
21:08:38 | clyybber | The ugly stuff? |
21:09:02 | Zevv | yesss |
21:09:04 | Zevv | I love that |
21:09:32 | Zevv | I used to be a programmar, but over the last years I'm moving more and more towards plumbing |
21:09:53 | clyybber | Its not much, but I already dont like it: http://ix.io/1Kai lol |
21:10:32 | Zevv | well, it's not *bad*, it's just how things go right? |
21:10:49 | clyybber | Yeah, but so much case and all. That screams for a macro |
21:11:31 | Zevv | with a peg parser you can't easily do semantic-dependent stuff though. |
21:11:50 | Zevv | so define A in your grammar while later wanting to match A is a pain |
21:12:02 | clyybber | Oh |
21:12:10 | clyybber | Well thats the ugly stuff I was wary about |
21:12:21 | Zevv | that's why I mentioned that now :) |
21:12:28 | * | Trustable quit (Remote host closed the connection) |
21:12:28 | clyybber | Hmm, then I'm gonna go manual, but help myself with some macros |
21:13:11 | * | daddoo joined #nim |
21:14:54 | Zevv | yeah, I'm not sure if any parser generator can help you with that. You can still go hybrid though - parse your definitions with a generated parser, and then use that info to parse your boards? |
21:14:59 | FromDiscord | <Kiloneie> Is there a way to get input from the console without having to press enter ? |
21:15:20 | FromDiscord | <Kiloneie> like just press a key and it takes it ? |
21:18:25 | FromDiscord | <Lunar> Basic steps to make a PEMDAS calculator? |
21:20:05 | Zevv | Kiloneie: There's some technicalities in that, and complications because of the very different way windows and unix work |
21:20:35 | FromDiscord | <Kiloneie> Well i wanna make a space invaders in the console <.< |
21:20:57 | Zevv | terminal.getch() might work, let me check |
21:21:22 | FromDiscord | <garageagle> `net.recv()` with no timeout (or when the timeout is -1) is basically blocking, right? |
21:21:39 | Zevv | kiloneie: http://ix.io/1Kan |
21:21:42 | Zevv | that was easy |
21:22:03 | Zevv | reading function and arrow keys is a mess though |
21:22:09 | FromDiscord | <Kiloneie> Oh wau thanks ! |
21:22:24 | FromDiscord | <Kiloneie> i will work from here |
21:24:17 | shashlick | @Shield awesome glad to hear your experience |
21:25:37 | disruptek | garageagle: yep. |
21:27:00 | * | navinmistry joined #nim |
21:31:08 | * | navinmistry quit (Ping timeout: 245 seconds) |
21:33:45 | * | artemis_coven joined #nim |
21:33:50 | * | artemis_coven is now known as sedfox |
21:39:37 | clyybber | Zevv: I found a more or less sane approach: http://ix.io/1Kd8 |
21:40:32 | * | ng0 quit (Quit: Alexa, when is the end of world?) |
21:43:20 | clyybber | Well, Imma get some sleep, good night |
21:43:22 | * | clyybber quit (Quit: WeeChat 2.6) |
21:45:13 | * | al_ quit (Quit: al_) |
21:45:19 | FromGitter | <zetashift> gnight |
21:45:49 | Zevv | clyybber: http://ix.io/1Ki2 |
21:45:56 | Zevv | oh, well |
21:50:04 | FromGitter | <zetashift> Is there something special about using VCC (using the 2019 installer) and Nim on Windows 10? |
21:51:09 | * | LargeEpsilon joined #nim |
21:55:17 | * | LargeEpsilon quit (Ping timeout: 240 seconds) |
21:56:09 | FromDiscord | <garageagle> People on IRC, we probably can't use emojis, can we? emoji --> π€ |
21:56:28 | disruptek | i will permit it. |
21:56:35 | FromDiscord | <garageagle> I'm guessing it just says `:thinking_face:` |
21:56:53 | FromGitter | <zetashift> on Gitter your emoji renders as an emoji @garageagle |
21:57:05 | FromDiscord | <garageagle> Ah, ok |
21:57:13 | rayman22201 | lol. depends on the client. My irc client renders it properly. some people with older clients don't. |
21:57:28 | * | clyybber joined #nim |
21:57:54 | daddoo | what should I have seen? I'm running hexchat |
21:59:02 | clyybber | solitudesf: Hi, are you on devel? |
21:59:30 | clyybber | Zevv: Oh thanks, nice |
22:01:07 | clyybber | solitudesf: Maybe you have `static int` in your signature and not `int` |
22:01:14 | * | solitudesf quit (Ping timeout: 240 seconds) |
22:01:27 | clyybber | Oh, well |
22:02:58 | clyybber | Good night again |
22:03:00 | * | clyybber quit (Quit: WeeChat 2.6) |
22:10:06 | * | oprypin quit (Quit: Bye) |
22:10:14 | * | oprypin joined #nim |
22:15:20 | * | daddoo quit (Quit: Leaving) |
22:41:40 | * | krux02 quit (Remote host closed the connection) |
22:44:34 | FromDiscord | <exelotl> made a PR for the write() bug, not sure if I need to do more https://github.com/nim-lang/Nim/pull/12314 |
22:45:01 | disruptek | i saw that, thanks. |
22:45:31 | FromDiscord | <exelotl> np, kinda confused by the whole backports thing. should I add a note to the changelog? |
22:46:16 | disruptek | i think it's a good idea, since someone might go looking to see if it was fixed. |
22:46:46 | FromDiscord | <exelotl> ok, will that disrupt the CI process? guess it doesn't matter if so |
22:46:59 | disruptek | right; it hasn't gotten to yours yet. |
22:47:09 | disruptek | i'd add the [backport] to the pr title, too. |
22:48:14 | FromDiscord | <garageagle> I'm trying to create a reverse shell application, but it isn't working for me. It seems that either the server isn't sending properly, or the client isn't receiving the data. Here's my code. Server: https://hastebin.com/ligujihiza.php Client: https://hastebin.com/etohewarox.pl |
22:48:17 | * | Ven`` quit (Quit: My MacBook has gone to sleep. ZZZzzzβ¦) |
22:49:25 | FromDiscord | <garageagle> I've made several of these in Python, so I'm trying to "translate" them into nim. |
22:53:53 | * | garageagle joined #nim |
22:54:38 | FromDiscord | <exelotl> disruptek: if I forgot to add [backport] in the initial commit message is that a problem? |
22:54:49 | disruptek | nah. |
22:57:34 | skrylar[m] | woo. finally wrote a cassowary from the paper |
22:59:19 | * | garageagle quit (Remote host closed the connection) |
23:08:18 | FromDiscord | <exelotl> lol maybe I'm overthinking this but this would be the only "bugfix" in the history of the changelog that doesn't refer to an issue number |
23:08:45 | disruptek | you could make an issue... π€· |
23:09:45 | FromDiscord | <exelotl> lol in that case I've basically done everything backwards |
23:10:01 | disruptek | doesn't matter. |
23:10:08 | FromDiscord | <mratsim> are you benchmarking license generation @disruptek? :p https://github.com/disruptek/golden |
23:10:23 | disruptek | yeah, gotta start somewhere. |
23:10:51 | FromDiscord | <mratsim> a new game in nim: https://github.com/liquid600pgm/memrecall |
23:11:31 | disruptek | awesome! |
23:17:22 | disruptek | mratsim: if you wanna gimme some benchmarks i'd appreciate it. i know you have done a lot of 'em. just looking for things that should be faster or that you care about regressing. |
23:22:53 | rayman22201 | disruptek do you want microbenchmarks? This might be a good list: https://github.com/kostya/benchmarks |
23:23:10 | disruptek | not picky. |
23:23:22 | rayman22201 | also There is also the classic https://benchmarksgame-team.pages.debian.net/benchmarksgame/which-programs-are-fastest.html |
23:25:48 | * | lqdev[m] uploaded an image: image.png (31KB) < https://matrix.org/_matrix/media/v1/download/matrix.org/tMWJVSkcgnBhCscijfVPvday > |
23:25:55 | lqdev[m] | @mratsim wow you're fast |
23:26:02 | lqdev[m] | I didn't even have to announce it lol |
23:26:26 | lqdev[m] | but as you can see on the provided screenshot β I have a problem building on ubuntu 16.04 |
23:27:37 | disruptek | i can't build due to: Error: undeclared field: 'SoundIoError' for type system.cint [declared in /home/adavidoff/git/Nim/lib/system.nim(2234, 3)] |
23:28:10 | lqdev[m] | try building with -f |
23:28:58 | disruptek | oh, i guess it did build. |
23:29:26 | disruptek | this is so cool! |
23:29:33 | lqdev[m] | anyways, any ideas on that build error I have? I need to submit the game to open jam till 3 AM |
23:30:07 | lqdev[m] | I don't want to require the most recent libc |
23:33:57 | * | actuallybatman quit (Ping timeout: 240 seconds) |
23:35:12 | * | actuallybatman joined #nim |
23:36:27 | disruptek | man, i'm terrible at this game. |
23:37:26 | lqdev[m] | I'm terrible at it too, lol |
23:37:34 | lqdev[m] | it's pretty challenging |
23:37:47 | disruptek | how do i flip the gravity? |
23:37:52 | disruptek | i think i missed a command. |
23:38:23 | lqdev[m] | you can flip the gravity using X, but you need the flip pack first |
23:38:34 | disruptek | yeah, i got it. just missed the X hint. |
23:41:52 | disruptek | this is fun. |
23:42:02 | lqdev[m] | quick question: do you have sound? if not, you may have to install the dependencies listed in rapid's readme |
23:42:11 | disruptek | yeah, i have sound and music. |
23:42:20 | lqdev[m] | nice |
23:42:41 | lqdev[m] | just making sure you get the intended experience lol |
23:43:05 | disruptek | not sure why i was getting that error, since it did produce a binary. |
23:43:33 | disruptek | is there a key to full-screen it? |
23:44:51 | lqdev[m] | nope, but you can maximize it |
23:45:16 | lqdev[m] | I never implemented full-screen in my engine, it might be a future plan |
23:45:46 | disruptek | grrr it's evil. |
23:47:11 | lqdev[m] | what's evil? |
23:47:35 | disruptek | blue room with two triangles. |
23:49:29 | lqdev[m] | assuming you're not on a detour, you should be in "the last sine wave". it's all about the timing, you need to press left at the right times |
23:52:29 | * | traviss quit (Quit: Leaving) |
23:53:59 | disruptek | i guess the titles are a little sluggish, but maybe 'cause i'm at 4k. |
23:54:57 | lqdev[m] | you mean they lag the world before displaying? |
23:55:35 | lqdev[m] | that's likely due to the texture packer, it needs a bit of time to find a suitable position for placing the texture |