00:00:02 | * | junland quit (Quit: %ZNC Disconnected%) |
00:01:58 | FromDiscord | <exelotl> what's the best way to sanitise a URL path in Nim? |
00:03:24 | FromDiscord | <exelotl> so that someone can't use my web server to visit mysite.com/../../.ssh/id_rsa |
00:04:18 | * | junland joined #nim |
00:04:44 | * | fredrik92 is now known as couven92 |
00:07:55 | disruptek | relativeTo or absolutePath or normalizePath or some combo of same. |
00:16:12 | * | Hideki_ joined #nim |
00:19:26 | * | tane quit (Quit: Leaving) |
00:32:26 | FromDiscord | <exelotl> seems good |
00:32:26 | FromDiscord | <exelotl> https://cdn.discordapp.com/attachments/371759389889003532/683471672728354846/unknown.png |
00:37:31 | FromGitter | <Varriount> disruptek: Keep in mind that those procedures expect paths to be operating system paths. They expect different kinds of input on Windows |
00:37:51 | disruptek | yeah, it works best if you aren't on windows. |
00:38:01 | FromDiscord | <clyybber> as does everything |
00:38:06 | zedeus | ^ |
00:38:26 | FromDiscord | <exelotl> hmm maybe I'll go for something stricter |
00:54:24 | * | PMunch quit (Quit: leaving) |
00:57:20 | FromGitter | <WintonMc_twitter> https://youtu.be/xWMG_1karfM |
00:57:50 | FromGitter | <WintonMc_twitter> Nim Spanish: https://youtu.be/xWMG_1karfM |
00:59:22 | * | dwdv quit (Quit: quit) |
01:04:08 | FromDiscord | <clyybber> is this what the world hath cometh to? |
01:04:25 | FromDiscord | <clyybber> programming tutorials filmed in portrait? |
01:04:29 | FromDiscord | <clyybber> :p |
01:07:20 | FromDiscord | <Winton> > is this what the world hath cometh to? |
01:07:20 | FromDiscord | <Winton> @clyybber ? |
01:07:35 | FromDiscord | <clyybber> ? |
01:07:55 | FromDiscord | <Winton> > programming tutorials filmed in portrait? |
01:07:55 | FromDiscord | <Winton> @clyybber . |
01:08:02 | FromDiscord | <clyybber> . |
01:08:37 | FromDiscord | <Elegant Beef> I mean what why would it be recorded on a phone in potrait |
01:08:44 | FromDiscord | <Elegant Beef> Hopefully you arent coding on a phone |
01:10:13 | FromDiscord | <Winton> > Hopefully you arent coding on a phone |
01:10:13 | FromDiscord | <Winton> @Elegant Beef jaja |
01:10:21 | FromDiscord | <Elegant Beef> Wait you are? |
01:10:58 | FromDiscord | <Winton> > Wait you are? |
01:10:58 | FromDiscord | <Winton> @Elegant Beef what? |
01:11:22 | FromDiscord | <clyybber> @Winton |
01:11:25 | FromDiscord | <clyybber> you are |
01:11:29 | FromDiscord | <clyybber> @Winton |
01:11:43 | FromDiscord | <Winton> I'm not understanding, Sorry |
01:11:52 | FromDiscord | <clyybber> hey, np we were just joking |
01:12:12 | FromDiscord | <clyybber> I'm not too worried since you seem to be coding on your pc in the pfp |
01:13:19 | FromDiscord | <Winton> sorry I do not speak much English |
01:13:30 | FromDiscord | <clyybber> you are cool is what I am saying |
01:13:40 | FromDiscord | <Winton> I only made the video because there is not much in Spanish |
01:13:51 | FromDiscord | <clyybber> 👍 |
01:14:04 | FromDiscord | <Winton> ps decides to make the video either from my cell phone, I also explain in detail |
01:14:52 | FromDiscord | <Winton> after C #, I liked this from nim |
01:14:54 | FromDiscord | <clyybber> unfortunately. pero no hablo español. |
01:15:01 | FromDiscord | <Winton> C/C++ not |
01:15:24 | FromDiscord | <Winton> > unfortunately. pero no hablo español. |
01:15:24 | FromDiscord | <Winton> @clyybber haa Ok, I get it |
01:15:29 | FromDiscord | <clyybber> 🙂 |
01:15:32 | FromDiscord | <exelotl> en mi futuro, quiero ser un desarollador de los videojuegos |
01:15:36 | FromDiscord | <Winton> 😄 |
01:15:39 | FromDiscord | <exelotl> that's the only spanish I remember from school xD |
01:15:50 | FromDiscord | <Winton> > en mi futuro, quiero ser un desarollador de los videojuegos |
01:15:50 | FromDiscord | <Winton> @exelotl what lang? |
01:16:01 | FromDiscord | <clyybber> nim, what else? |
01:16:05 | FromDiscord | <Winton> > that's the only spanish I remember from school xD |
01:16:05 | FromDiscord | <Winton> @exelotl jajajajajjaa |
01:16:12 | FromDiscord | <exelotl> but the sentence is not correct anymore |
01:16:26 | FromDiscord | <clyybber> @Winton jajajajaja == hahahahaha? |
01:16:32 | FromDiscord | <exelotl> it should be: "soy un desarollador de los videojuegos" |
01:16:32 | FromDiscord | <clyybber> laughing? |
01:16:37 | FromDiscord | <exelotl> because I made it. xD |
01:16:41 | FromDiscord | <Winton> I learned a little English when I travel to Jamaica |
01:16:55 | FromDiscord | <Winton> > it should be: "soy un desarollador de los videojuegos" |
01:16:55 | FromDiscord | <Winton> @exelotl haa Ok |
01:17:17 | FromDiscord | <Winton> Spanish problem that they tell me is that it is more difficult than another language |
01:17:22 | FromDiscord | <Winton> confuses |
01:17:30 | FromDiscord | <clyybber> confuse moi |
01:18:15 | FromDiscord | <Winton> 😄 |
01:18:54 | * | Hideki_ quit (Ping timeout: 256 seconds) |
01:20:32 | FromDiscord | <exelotl> hey I noticed that https://github.com/h3rald/nimhttpd will gladly serve you "../../foo.txt" |
01:21:02 | FromDiscord | <exelotl> should I open an issue? |
01:21:40 | FromDiscord | <exelotl> or is it a case where the server isn't trying to be secure anyway so it's a futile effort |
01:21:55 | FromDiscord | <clyybber> opening an issue can't hurt |
01:22:01 | FromDiscord | <clyybber> except when it does |
01:23:07 | * | Jesin quit (Quit: Leaving) |
01:29:57 | * | Jesin joined #nim |
01:31:54 | * | couven92 quit (Read error: Connection reset by peer) |
01:32:22 | * | couven92 joined #nim |
02:05:07 | * | thomasross joined #nim |
02:35:04 | FromDiscord | <exelotl> Hey so I have a simple web server: http://ix.io/2d3L/nim |
02:35:46 | FromDiscord | <exelotl> I get the following warning: 'cbIter' is not GC-safe as it accesses 'mimes' which is a global using GC'ed memory [GcUnsafe2] |
02:36:20 | disruptek | {.gcsafe.} |
02:36:45 | disruptek | you're not going to write to modify it from multiple child threads, right? |
02:39:52 | FromDiscord | <exelotl> right, so should I use {.gcsafe.} in its block form then? |
02:40:27 | FromDiscord | <exelotl> it wouldn't compile until I added gcsafe to the request callback, and then the warning appeared |
02:41:37 | FromGitter | <Knaque> Trying to clear the terminal. Searching through the index revealed the linenoise.clearScreen() proc, which seemed like it might be what I was looking for. |
02:41:39 | FromGitter | <Knaque> Upon complation, however, I got a `fatal error: termios.h: No such file or directory`. Any thoughts? |
02:48:36 | leorize | https://nim-lang.github.io/Nim/terminal#eraseScreen%2CFile |
02:48:49 | leorize | @Knaque |
02:51:00 | FromGitter | <Knaque> Ah, I wouldn't have thought to search for 'erase'. Thanks. |
03:01:07 | * | chemist69 quit (Ping timeout: 240 seconds) |
03:03:32 | * | chemist69 joined #nim |
03:15:56 | * | Hideki_ joined #nim |
03:17:29 | * | muffindrake quit (Ping timeout: 272 seconds) |
03:19:22 | * | muffindrake joined #nim |
03:20:05 | * | Hideki_ quit (Ping timeout: 240 seconds) |
03:29:26 | * | dadada quit (Ping timeout: 240 seconds) |
03:31:15 | * | dadada joined #nim |
03:31:40 | * | dadada is now known as Guest22275 |
04:06:10 | * | chenhq2005 joined #nim |
04:07:29 | FromGitter | <gogolxdong> A silly question ,how to recv and send in Nim socket programming? |
04:08:00 | disruptek | example in swayipc |
04:08:03 | disruptek | !repo swayipc |
04:08:05 | disbot | https://github.com/disruptek/swayipc -- 9swayipc: 11swayipc (i3ipc) for Nim 15 3⭐ 0🍴 |
04:11:39 | FromGitter | <gogolxdong> tcp specific? |
04:11:57 | * | couven92 quit (Read error: Connection reset by peer) |
04:12:14 | FromGitter | <gogolxdong> This is AF_UNIX |
04:12:24 | * | couven92 joined #nim |
04:12:50 | * | chenhq2005 quit (Quit: No Ping reply in 180 seconds.) |
04:13:07 | disruptek | oh, i would think that'd be more common, actually. |
04:16:22 | * | chenhq2005 joined #nim |
04:16:35 | FromGitter | <gogolxdong> recv after sending |
04:19:04 | FromGitter | <gogolxdong> Is it tricky in Nim's stdlib? |
04:19:33 | disruptek | doubtful. |
04:22:18 | FromGitter | <gogolxdong> It blocks at recv after sending on the same socket, I think recv should run asynchronously before sending or creating a thread to recv before sending? |
04:23:03 | disruptek | most likely, you need to tell it how much to read. and then make sure there is that much available. |
04:24:00 | FromDiscord | <Winton> How could I download an mp4 with just a URL? |
04:24:17 | disruptek | using the httpclient module. |
04:25:05 | leorize | we have async sockets |
04:25:16 | FromDiscord | <Winton> I try to play videos via URL, to evade page advertising |
04:25:19 | FromGitter | <gogolxdong> demonstration is net.nim and asyncnet.nim missing these steps. |
04:26:29 | FromDiscord | <Winton> > <disruptek> using the httpclient module. |
04:26:29 | FromDiscord | <Winton> @gitterirc Thanks! |
04:26:36 | FromDiscord | <Winton> > <leorize> we have async sockets |
04:26:36 | FromDiscord | <Winton> @gitterirc perfect |
04:31:04 | * | rockcavera quit (Remote host closed the connection) |
04:40:19 | * | chenhq2005 quit (Quit: No Ping reply in 180 seconds.) |
04:41:43 | * | chenhq2005 joined #nim |
04:42:55 | FromGitter | <gogolxdong> according to the unittest of asyncnet https://play.nim-lang.org/#ix=2d4b, asynsocket doesn't work. How to make it? |
04:44:14 | * | rockcavera joined #nim |
04:46:56 | FromGitter | <gogolxdong> Is it impossible to recv after sending on the same socket in TCP context? |
04:51:34 | * | chenhq2005 quit (Ping timeout: 255 seconds) |
05:10:48 | * | sz0 quit (Quit: Connection closed for inactivity) |
05:28:57 | * | marmotini_ joined #nim |
05:37:23 | * | chenhq2005 joined #nim |
05:42:21 | * | marmotini_ quit (Remote host closed the connection) |
05:42:55 | * | marmotini_ joined #nim |
05:43:41 | * | tefter quit (Quit: WeeChat 2.7.1) |
05:47:59 | * | nsf joined #nim |
05:48:52 | * | marmotini_ quit (Ping timeout: 258 seconds) |
06:02:09 | * | crem quit (Ping timeout: 272 seconds) |
06:03:21 | * | crem joined #nim |
06:17:24 | FromGitter | <gogolxdong> I figured out recv works with unbuffered asyncsocket if given greater buffer than how much are available. |
06:24:13 | * | rockcavera quit (Remote host closed the connection) |
06:26:02 | * | uvegbot quit (Ping timeout: 256 seconds) |
06:30:41 | * | uvegbot joined #nim |
07:02:21 | * | solitudesf joined #nim |
07:18:01 | * | couven92 quit (Read error: Connection reset by peer) |
07:18:27 | * | couven92 joined #nim |
07:18:43 | * | hax-scramper quit (Read error: Connection reset by peer) |
07:19:10 | * | hax-scramper joined #nim |
07:32:59 | * | hax-scramper quit (Ping timeout: 260 seconds) |
07:33:57 | * | hax-scramper joined #nim |
07:42:24 | * | tane_ joined #nim |
07:47:37 | * | chenhq2005 quit (Read error: Connection reset by peer) |
08:00:00 | * | gmpreussner quit (Quit: kthxbye) |
08:04:54 | * | gmpreussner joined #nim |
09:18:03 | * | arecaceae quit (Remote host closed the connection) |
09:18:09 | FromDiscord | <Stuffe> how does one uninstall nim on osx when it was installed with choosenim? |
09:18:26 | * | arecaceae joined #nim |
09:22:17 | FromDiscord | <Rika> Use choosenim to uninstall? |
09:22:18 | * | jjido joined #nim |
09:23:42 | FromDiscord | <Stuffe> is there a command for that? |
09:24:14 | FromDiscord | <Stuffe> if so, it isn't "uninstall stable" and it isn't mentioned in the help thing |
09:24:58 | * | jjido quit (Client Quit) |
09:29:39 | * | sz0 joined #nim |
09:38:53 | * | krux02 joined #nim |
09:40:47 | * | lritter joined #nim |
09:43:40 | * | jjido joined #nim |
10:09:48 | * | jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
10:22:34 | * | solitudesf quit (Ping timeout: 258 seconds) |
10:34:54 | * | couven92 quit (Read error: Connection reset by peer) |
10:35:22 | * | couven92 joined #nim |
10:36:23 | * | couven92 quit (Read error: Connection reset by peer) |
10:36:47 | * | couven92 joined #nim |
10:45:15 | * | al1ranger joined #nim |
10:45:19 | * | jjido joined #nim |
10:59:49 | * | chemist69 quit (Ping timeout: 272 seconds) |
11:00:29 | * | chemist69 joined #nim |
11:06:45 | * | al1ranger quit (Quit: Leaving) |
11:19:54 | * | couven92 quit (Read error: Connection reset by peer) |
11:20:22 | * | couven92 joined #nim |
11:30:59 | * | dddddd quit (Ping timeout: 260 seconds) |
11:37:14 | dom96 | @Stuffe: rm -r ~/.choosenim ~/.nimble |
11:45:56 | * | couven92 quit (Read error: Connection reset by peer) |
11:46:24 | * | couven92 joined #nim |
11:52:33 | * | filcuc quit (Quit: Konversation terminated!) |
11:57:59 | * | fanta1 joined #nim |
11:58:56 | * | nsf quit (Quit: WeeChat 2.7) |
12:11:04 | FromDiscord | <Rika> That removes all of choosenim does it? |
12:12:03 | * | Vladar joined #nim |
12:16:55 | * | couven92 quit (Read error: Connection reset by peer) |
12:17:21 | * | couven92 joined #nim |
12:33:06 | * | marmotini_ joined #nim |
12:37:57 | FromDiscord | <Recruit_main70007> @Stuffe ^ |
12:40:21 | * | dwdv joined #nim |
12:41:10 | * | sagax quit (Ping timeout: 256 seconds) |
12:41:59 | lqdev[m] | it does, if you want to remove one specific version remove its corresponding dir in ~/.choosenim/toolchains |
12:54:41 | * | Hideki_ joined #nim |
13:14:10 | * | Hideki_ quit (Remote host closed the connection) |
13:14:55 | * | Hideki_ joined #nim |
13:19:05 | * | Hideki_ quit (Ping timeout: 240 seconds) |
13:27:10 | * | jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
13:47:54 | * | Hideki_ joined #nim |
13:49:20 | * | Hideki_ quit (Remote host closed the connection) |
13:49:36 | * | Hideki_ joined #nim |
14:10:03 | * | fanta1 quit (Quit: fanta1) |
14:21:43 | * | jjido joined #nim |
14:42:53 | * | arecaceae quit (Read error: Connection reset by peer) |
14:43:16 | * | arecaceae joined #nim |
14:44:33 | * | jjido quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
14:44:59 | * | Trustable joined #nim |
14:47:40 | FromGitter | <deech> Asked yesterday about getting access to the current `nimbleDir` in a `.nimble` file and it didn't seem to currently exist so I wrote a script that does it: https://github.com/deech/nimscript_utils/blob/master/nimble.nims. |
14:48:24 | FromGitter | <deech> In the `nimble` source there's branching for something called a `.babel` file which seemed like a legacy thing so I didn't include it. |
14:56:23 | Zevv | |
14:56:24 | Zevv | `> |
15:00:17 | * | Hideki_ quit (Remote host closed the connection) |
15:01:33 | * | Hideki_ joined #nim |
15:01:45 | * | rockcavera joined #nim |
15:03:49 | * | narimiran joined #nim |
15:04:17 | * | pbb_ quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
15:05:37 | * | my_dude joined #nim |
15:05:49 | * | Hideki_ quit (Ping timeout: 255 seconds) |
15:12:17 | * | sagax joined #nim |
15:15:39 | lqdev[m] | @deech yeah, babel is the old name of nimble and is reeeally old |
15:17:06 | * | pbb joined #nim |
15:24:36 | * | marmotini_ quit (Remote host closed the connection) |
15:25:11 | * | marmotini_ joined #nim |
15:28:11 | * | al_ joined #nim |
15:28:11 | * | al_ is now known as Guest94576 |
15:28:52 | * | marmotini_ quit (Read error: Connection reset by peer) |
15:29:06 | * | marmotini_ joined #nim |
15:29:16 | * | PMunch joined #nim |
15:30:35 | * | marmotini_ quit (Remote host closed the connection) |
15:31:11 | * | marmotini_ joined #nim |
15:35:08 | PMunch | Hmm, I think I should write a macro to make creating this macroutils module easier to write. But that means that every time you want to use it that macro needs to run.. |
15:35:22 | PMunch | So it might slow down your own macros a bit.. |
15:35:42 | * | marmotini_ quit (Ping timeout: 256 seconds) |
15:35:55 | * | Hideki_ joined #nim |
15:36:08 | leorize[m] | make it lightweight and it should be fine imo |
15:37:13 | PMunch | Yeah it would only be to tie the accessors to the creators |
15:54:05 | * | Hideki_ quit (Ping timeout: 240 seconds) |
15:59:29 | * | my_dude quit (Quit: my_dude) |
16:00:05 | * | ptdel joined #nim |
16:01:34 | FromDiscord | <exelotl> is there a way to run some code when an AsyncHttpServer starts? |
16:02:10 | FromDiscord | <exelotl> e.g. print "Listening on port xxxx" and open a browser window on the user's machine? |
16:03:14 | * | marmotini_ joined #nim |
16:04:53 | * | Hideki_ joined #nim |
16:05:37 | * | solitudesf joined #nim |
16:06:39 | * | Hideki_ quit (Remote host closed the connection) |
16:06:40 | disruptek | if only we had, like, a way to tell the computer what to do. |
16:07:20 | * | Hideki_ joined #nim |
16:07:23 | PMunch | exelotl, I don't think there's a callback for onStart if that's what you are looking for |
16:07:32 | Zevv | well I do that all day, but the stupid thing just doesnt want to understand |
16:07:33 | PMunch | But you can of course do those things when you start the server.. |
16:08:04 | PMunch | Computers are like an evil genie, they have to obey you, but they don't have to do what you mean |
16:09:16 | * | marmotini_ quit (Remote host closed the connection) |
16:09:40 | FromDiscord | <exelotl> right, I can of course do those things immediately before calling serve() |
16:09:51 | * | marmotini_ joined #nim |
16:10:05 | FromDiscord | <exelotl> but that's not actually correct, e.g. what if the socket creation fails |
16:10:51 | FromDiscord | <exelotl> now the message I printed was a lie, and the browser window opens to a dead page |
16:11:47 | * | Hideki_ quit (Ping timeout: 258 seconds) |
16:12:36 | PMunch | Well you could print "Trying to listen to port xxxx" then it wouldn't be a lie :P |
16:13:28 | FromDiscord | <exelotl> lol |
16:13:36 | FromDiscord | <exelotl> ok looks like I'm patching asynchttpserver |
16:13:46 | PMunch | And wouldn't it throw an exception if it doesn't manage to connect? |
16:14:05 | * | marmotini_ quit (Ping timeout: 240 seconds) |
16:17:38 | FromDiscord | <exelotl> yeah, but I'm also worried about cases where creating the socket could simply take a long time |
16:18:27 | FromDiscord | <exelotl> (not sure if that's a realistic thing to worry about, mind you) |
16:24:39 | * | dddddd joined #nim |
16:28:12 | * | sz0 quit (Quit: Connection closed for inactivity) |
16:29:27 | leorize | creating a socket is never a bottleneck fwiw |
16:29:51 | leorize | either it fails or it works |
16:43:12 | * | Hideki_ joined #nim |
16:45:05 | * | Kaivo quit (Quit: WeeChat 2.7.1) |
16:58:04 | disruptek | deech: multiple "nimble dir" values may be presented to the compiler via the --nimblePath option on the cli or in the .cfg or .nims files. does your solution account for this? does it account for removing such paths via --clearNimblePath? would you like me to implement this feature in nimph, where i have all this information at my fingertips? |
17:01:50 | * | Hideki_ quit (Ping timeout: 256 seconds) |
17:03:38 | * | PMunch quit (Quit: leaving) |
17:08:24 | * | fredrik92 joined #nim |
17:11:46 | * | couven92 quit (Ping timeout: 240 seconds) |
17:19:54 | FromDiscord | <exelotl> Made a userscript to auto-redirect to the devel docs |
17:19:58 | FromDiscord | <exelotl> https://gist.github.com/exelotl/c0c4b79932d977869811e518b2198b8c |
17:22:51 | * | leorize quit (Remote host closed the connection) |
17:29:30 | * | Vladar quit (Quit: Leaving) |
17:47:05 | shashlick | @deech - https://github.com/nim-lang/Nim/pull/13010 |
17:47:06 | disbot | ➥ Implement compileSetting() and compileSettingSeq() |
17:47:40 | FromGitter | <deech> disruptek, it doesn't. Didn't even know that was possible |
17:47:49 | * | Guest94576 quit (Quit: Guest94576) |
17:49:38 | FromGitter | <deech> Looking at `nimble` source I don't even see where it accounts for that ... |
17:49:47 | disruptek | well, nimble doesn't. |
17:50:12 | disruptek | the compiler is quite powerful. |
17:50:21 | FromGitter | <deech> Ah, I see ... |
17:51:03 | shashlick | Nimble only knows of one nimble dir |
17:51:12 | shashlick | Nim can handle multiple |
17:51:23 | * | pbb quit (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.) |
17:51:34 | disruptek | you can play with it using nim.cfg or nimph. |
17:52:33 | * | pbb joined #nim |
17:56:47 | * | solitudesf quit (Remote host closed the connection) |
18:21:38 | * | krux02 quit (Remote host closed the connection) |
19:03:54 | FromGitter | <melMass> Does the sleep proc of os need a special compilation flag ? I keep getting a Error: undeclared identifier: 'sleep' |
19:05:09 | shashlick | import os? |
19:05:18 | FromGitter | <melMass> I did :( |
19:05:58 | FromGitter | <melMass> (https://files.gitter.im/nim-lang/Nim/uojV/image.png) |
19:14:02 | FromGitter | <melMass> @FromIRC No idea ? |
19:16:57 | shashlick | can you share a snippet i can try |
19:17:00 | shashlick | plus, what version of nim |
19:17:47 | xace | if i import asyncfile, will the iterator lines() from io use the async version of readline()? |
19:18:13 | * | rockcavera quit (Remote host closed the connection) |
19:22:18 | xace | let me rephrase it to make it easier to understand: does `import asyncfile` use asyncfile.readline() when you `for l in lines(myfile):` ? |
19:33:25 | Araq | no. |
19:48:07 | * | menace joined #nim |
19:50:09 | * | nsf joined #nim |
20:00:25 | FromGitter | <melMass> I'm trying to compile this example, adding sleep before joining the threads: https://nim-lang.org/docs/threads.html |
20:01:44 | FromGitter | <melMass> Nim Compiler Version 1.1.1 Devel |
20:04:07 | FromGitter | <melMass> (Of course I'm doing other stuff but even this streamlined version does not work for some reason) |
20:04:24 | FromGitter | <melMass> I'm on OSX Mojave |
20:05:29 | * | menace left #nim (#nim) |
20:06:00 | * | uvegbot quit (Ping timeout: 256 seconds) |
20:07:12 | FromGitter | <melMass> (https://files.gitter.im/nim-lang/Nim/ELzX/image.png) |
20:07:31 | * | uvegbot joined #nim |
20:08:38 | FromGitter | <melMass> Ok sorry..... |
20:08:56 | FromGitter | <melMass> I had a file named os.nim, sorry for the time |
20:09:19 | * | clyybber joined #nim |
20:09:43 | * | clyybber quit (Client Quit) |
20:29:26 | * | krux02 joined #nim |
20:34:14 | FromDiscord | <agucova> Hi everyone |
20:34:27 | FromDiscord | <TheCrappyCoder> hey hey |
20:34:33 | krux02 | hi |
20:34:48 | FromDiscord | <agucova> I wanted to know what is the perception of language growth here. Do you guys think Nim will become a mainstream language in the long-run? |
20:34:55 | FromDiscord | <agucova> Or will it stay a niche language? |
20:35:24 | krux02 | agucova: Only time will tell. But Nim is certainly growing. |
20:35:42 | * | marmotini_ joined #nim |
20:35:47 | FromDiscord | <TheCrappyCoder> It's quite flexible with a wide variety of uses |
20:36:01 | FromDiscord | <TheCrappyCoder> It can compile to JavaScript, C++, and C |
20:36:18 | FromDiscord | <agucova> I started using Nim a couple weeks ago, and the features are just amazing, I can't complain. |
20:36:19 | FromDiscord | <TheCrappyCoder> I think is jack-of-all-trades enough to go mainstream over time |
20:37:07 | FromDiscord | <agucova> But I'm trying to see if I should place my bet on it becoming a mainstream language. I was just seeing Google Trends for "nim language", by example, and I noticed it was very constant with a sharp peak on this month. |
20:37:16 | FromDiscord | <TheCrappyCoder> mmh |
20:38:24 | FromDiscord | <agucova> But in general, google trends doesn't reflect organic growth |
20:38:38 | krux02 | agucova: there was fosdem. There were good talks about Nim. |
20:38:58 | FromDiscord | <agucova> Oh, you think that is the reason behind the sharp peak? |
20:39:12 | krux02 | google trends is just about search on google. For myself, I am very active in Nim, yet I don't search "Nim" at all on google. |
20:39:29 | * | marmotini_ quit (Remote host closed the connection) |
20:39:44 | * | marmotini_ joined #nim |
20:40:07 | disruptek | trends shows no data for belgium, for example. |
20:40:29 | krux02 | Nim is not yet a language where you just copy paste solutions from stack overflow. you generally have to implement the solutions on your own. Or you have to at least manually translate from other languages to Nim when you search for general programming advice. |
20:40:52 | FromDiscord | <agucova> Yeah, it's quite a bad benchmark, but it is an interesting benchmark for growth. (New users looking up the language or the documentation) |
20:40:55 | krux02 | disruptek, might have other reasons though. |
20:41:18 | krux02 | it certainly reflects interest. |
20:42:52 | FromDiscord | <agucova> Does anyone know if there is a way to get Github's language statistics directly? |
20:43:01 | * | nsf quit (Quit: WeeChat 2.7) |
20:43:06 | FromDiscord | <agucova> Most public rankings don't include languages beyond the top 10 or top 50 |
20:43:57 | FromDiscord | <agucova> It's on BigQuery, it seems |
20:44:12 | disruptek | i'm still seeing about 75% of stream traffic as random visitors from twitch, so we're pretty far from penetration there. |
20:45:30 | krux02 | well I guess watching people program isn't the most exciting thing to do. |
20:46:30 | disruptek | no, but it tells us that the people that there are still more curious people than engaged people. |
20:46:43 | disruptek | er, yeah, you get what i'm trying to type. |
20:51:52 | FromDiscord | <agucova> Oh, nim doesn't have a StackOverflow tag |
20:52:36 | FromDiscord | <agucova> Sorry, it does have one, nim-lang |
20:55:17 | disruptek | that should be fixed. |
20:58:15 | FromDiscord | <agucova> So, Github doesn't have historical info available, TIOBE only gives you the top 50, PYPL doesn't have Nim and StackOverflow doesn't let you check nim-lang in the Trends database. |
20:58:45 | FromDiscord | <agucova> We're stuck with Google Trends and I guess, Google Analytics of nim-lang.org? |
20:59:05 | * | Hideki joined #nim |
20:59:28 | * | Hideki is now known as Guest81329 |
21:01:48 | FromDiscord | <agucova> Oh, and the contribution graph for nim-lang/Nim. |
21:03:05 | * | Guest81329 quit (Ping timeout: 240 seconds) |
21:10:28 | * | fredrik92 quit (Read error: Connection reset by peer) |
21:10:56 | * | fredrik92 joined #nim |
21:12:12 | krux02 | agucova: I rememebr reading a top 100 from TIOBE, but you had to do some extra work to get it. it wasn't in the default information. |
21:12:46 | FromDiscord | <agucova> Huh, I'll try to find it |
21:13:27 | FromDiscord | <agucova> Oh, yeah |
21:13:51 | FromDiscord | <agucova> Tiobe does provide a list with the 51-100, but it's alphabetically order |
21:13:59 | FromDiscord | <agucova> ordered* |
21:14:20 | FromDiscord | <agucova> Unless someone wants to buy the $5000 USD database, we're kinda screwed |
21:18:21 | disruptek | not important. |
21:20:11 | * | marmotini_ quit (Remote host closed the connection) |
21:20:22 | * | abm joined #nim |
21:20:25 | * | chemist69 quit (Ping timeout: 240 seconds) |
21:20:46 | * | marmotini_ joined #nim |
21:21:48 | * | chemist69 joined #nim |
21:22:14 | * | marmotini_ quit (Read error: Connection reset by peer) |
21:22:29 | * | marmotini_ joined #nim |
21:26:35 | * | filcuc joined #nim |
21:27:11 | * | marmotini_ quit (Remote host closed the connection) |
21:27:47 | * | marmotini_ joined #nim |
21:32:31 | * | marmotini_ quit (Ping timeout: 265 seconds) |
21:43:26 | * | marmotini_ joined #nim |
21:48:00 | * | marmotini_ quit (Ping timeout: 256 seconds) |
21:59:27 | * | krux02 quit (Remote host closed the connection) |
22:06:00 | Araq | disruptek, will you stream today? |
22:06:52 | disruptek | probably. |
22:07:00 | disruptek | not sure what to work on, though. |
22:07:15 | disruptek | i don't think the status bounty concept is going to work. |
22:07:38 | Araq | why not? |
22:07:45 | * | tane_ quit (Quit: Leaving) |
22:08:03 | * | solitudesf joined #nim |
22:08:17 | shashlick | must be a sleepy day |
22:08:19 | * | clyybber joined #nim |
22:08:20 | disruptek | they don't seem to know what they want. |
22:08:23 | shashlick | sleep(2000) doesn't sleep at all for me |
22:08:29 | disruptek | also, what they want is useless to others. |
22:08:42 | disruptek | also, what they want is too trivial to implement and get paid for. |
22:08:52 | disruptek | also, i'm still waiting to get paid for what i /have/ implemented. |
22:09:13 | Araq | I'm sure you will see the money |
22:09:26 | clyybber | I just wonder how the money is calculated |
22:09:54 | clyybber | Like, do you tell them how much you worked on it? |
22:10:03 | clyybber | Or do you "prove" it somehow? |
22:10:30 | clyybber | Or do they say how much an issues bounty is worth, and if so why not write it on the issue itself? |
22:10:43 | clyybber | And the expected hours of work along it |
22:11:55 | disruptek | i asked for some pricing on one of the issues. maybe they will come up with something. |
22:12:20 | disruptek | "impl a flat file db with 1) fixed-length index, and 2) variable-length append-only data" |
22:12:48 | disruptek | what is this... 2hrs? 3hrs? i don't know that anyone is interested in embarking on such a project for less than $200-300. |
22:15:09 | * | Trustable quit (Remote host closed the connection) |
22:15:49 | disruptek | i think they will figure it out eventually. |
22:16:25 | * | Trustable joined #nim |
22:16:46 | disruptek | i was encouraged to see someone else taking on a bounty project, at least. |
22:20:53 | disruptek | clyybber: i had to give up last night. |
22:22:19 | * | solitudesf quit (Ping timeout: 255 seconds) |
22:23:09 | clyybber | disruptek: On what? |
22:23:58 | disruptek | fixing chronos for arc. |
22:24:41 | clyybber | ah |
22:25:48 | shashlick | posix.nanosleep is returning immediately for me |
22:26:39 | * | Trustable_2 joined #nim |
22:26:48 | * | Trustable_2 quit (Remote host closed the connection) |
22:26:48 | * | Trustable quit (Remote host closed the connection) |
22:26:58 | disruptek | add more nanos. |
22:27:00 | shashlick | yep it is returning -1, how do i print errno |
22:27:48 | * | Trustable joined #nim |
22:32:16 | shashlick | getting EINTR - something is interrupting every single sleep call |
22:33:27 | * | leorize joined #nim |
22:34:01 | * | letto quit (Ping timeout: 255 seconds) |
22:36:46 | FromDiscord | <mratsim> jangko worked for a year on bounties |
22:37:07 | shashlick | wth, how do i find out what signal is interrupting me |
22:37:12 | shashlick | cannot create a minimal example |
22:42:58 | disruptek | isn't there a perrno or something somewhere? i feel like i've used it before. |
22:43:55 | disruptek | sunless sea is boring. |
22:45:20 | shashlick | errno is in system, got that |
22:45:33 | shashlick | this is frustrating |
22:45:52 | shashlick | minimal example sleeps fine, but when i use sleep in my plugin system, it gets interrupted every single time |
22:51:45 | clyybber | disruptek: You think so? |
22:51:53 | clyybber | I thought about getting that game |
22:52:05 | disruptek | well, i can't figure out what's fun about it. |
22:52:23 | disruptek | i'll stream it if you want. |
22:52:34 | clyybber | I guess its slow |
22:53:15 | * | rockcavera joined #nim |
22:53:26 | clyybber | And harsh |
22:53:44 | clyybber | and perhaps unrewarding |
22:53:51 | clyybber | but I dunno, I didn't play it :p |
22:54:05 | disruptek | the ui is a little clicky. a little sluggish. |
22:55:27 | clyybber | disruptek: Did you play subnautica? Thats a great game |
22:55:44 | disruptek | i played 688 attack sub. |
22:56:26 | clyybber | its like that but on an alien planet |
22:56:33 | clyybber | and well, I won't spoil it for ya :p |
22:57:05 | disruptek | 688 is, like, ega graphics from the '80s iirc. |
22:57:14 | clyybber | yeah |
22:57:31 | disruptek | i guess i have 688 hunter killer. maybe that's a newer version. |
22:59:21 | disruptek | i watched the bg3 gameplay reveal and it made me want to play an rpg. |
22:59:25 | clyybber | I recently played teleglitch again, thats a cool game too |
22:59:44 | clyybber | disruptek: Oh |
22:59:54 | clyybber | Elona is a cool rpg |
23:00:27 | disruptek | wasn't teleglitch a 48hr game jam first? |
23:00:31 | disruptek | something like that? |
23:00:58 | clyybber | hmm, I don't know, but it could very well be |
23:01:28 | disruptek | we should do some coop. monaco or something. |
23:01:40 | disruptek | do we have any coop nim games? |
23:02:18 | disruptek | is it nwn that has nim underneath? |
23:02:23 | disruptek | nwn2 or something? |
23:03:59 | clyybber | I don't think there are many nim games at all |
23:05:03 | clyybber | ror2 is really cool |
23:05:05 | Araq | nwn2, yeah |
23:05:41 | disruptek | ror2? |
23:06:24 | clyybber | risk of rain 2 |
23:06:34 | clyybber | its coop |
23:06:38 | clyybber | and really fun |
23:06:50 | disruptek | i came really close to advertising my car business inside project CARS. |
23:07:11 | clyybber | lol really? |
23:07:23 | disruptek | yeah, it was only like $1500 iirc. |
23:07:44 | disruptek | to have my logo show up on trackside furniture? sure. |
23:07:51 | clyybber | cool |
23:08:00 | disruptek | i was too busy at the time. |
23:11:53 | Araq | clyybber, new problems with sink inference |
23:12:39 | Araq | if we change the type signature this can mean that you cannot pass the proc as a callback around anymore |
23:13:38 | Araq | if that happens you need to annotate the proc with .nosinks |
23:13:44 | Araq | yay, yet another pragma |
23:13:59 | disruptek | good news, bad news. |
23:14:15 | FromDiscord | <Recruit_main70007> Programming generic question: |
23:14:15 | FromDiscord | <Recruit_main70007> Is it possible to have an sleep() of 1 cpu tick? |
23:14:29 | disruptek | nah. |
23:14:49 | Araq | yeah, it's cpuRelax() |
23:15:00 | Araq | somewhere in the stdlib |
23:15:19 | disruptek | gtfo 1 cycle? really? |
23:15:54 | FromDiscord | <Recruit_main70007> Then what’s the maximum I can get? |
23:16:16 | disruptek | infinite cycles. |
23:16:16 | clyybber | Araq: Huh, but why? |
23:16:28 | clyybber | Oh |
23:16:31 | clyybber | I see |
23:17:13 | FromDiscord | <Recruit_main70007> I meant the minimum sorry :p |
23:17:26 | * | ptdel quit (Ping timeout: 240 seconds) |
23:17:30 | disruptek | try cpurelax under criterion. i am really curious. |
23:17:53 | FromDiscord | <Recruit_main70007> I cannot today, I will tomorrow |
23:18:14 | disruptek | pillars of eternity runs. i guess i will see you all in a couple weeks. |
23:18:25 | clyybber | lol |
23:18:34 | * | narimiran quit (Ping timeout: 255 seconds) |
23:20:03 | Araq | clyybber, now I wonder if we instead can have "sink parameters for statically resolved calls" |
23:20:19 | clyybber | Yeah |
23:20:35 | clyybber | And pass a non-sink version of the proc around for callbacks and closures |
23:22:19 | Araq | might be worse than .nosinks though |
23:23:35 | Araq | or we use push/pop infereSinks and only enable it for the stdlib |
23:23:57 | clyybber | Eh, but then whats the use |
23:24:26 | Araq | containers will still benefit from it, less work than patching the stdlib manually |
23:24:53 | clyybber | Yeah, but this feature is mostly useful for ppl writing procs themselves |
23:24:58 | clyybber | IMO |
23:25:12 | clyybber | since it makes code performant by default |
23:26:24 | disruptek | manual patching is no bid deal, afaict. |
23:26:29 | disruptek | s/bid/big/ |
23:26:41 | Araq | disruptek, been there, done that it sucks |
23:27:08 | disruptek | how is it much different than orc's runtime overhead? |
23:27:13 | Araq | inference plus .nosink seems to be the best working solution so far |
23:27:15 | disruptek | i mean, worst-case scenario... |
23:28:57 | clyybber | Araq: Automatic generation of a copy of the proc with .nosink. in cases where it would error normally? |
23:29:23 | clyybber | Which is basically "pass a non-sink version of the proc around for callbacks and closures" |
23:30:25 | * | ptdel joined #nim |
23:31:27 | Araq | meh, too complex |
23:31:39 | clyybber | Araq: We can make it explicit |
23:31:47 | clyybber | maybe a macro can work |
23:31:55 | clyybber | basically .toNonSinkVersion |
23:32:19 | Araq | yeah but that's close to what we already have |
23:32:26 | clyybber | Yeah |
23:32:36 | clyybber | just thinking about how to make it a bit more convinient |
23:33:11 | Araq | it already is, I only found one case in the suite |
23:33:30 | clyybber | Araq: Oh, nice |
23:33:51 | Araq | once 'koch boot --gc:arc' works we can gather some experience with the feature |
23:34:06 | clyybber | Araq: Instead of {.noDestroy.} can we add a nonsink annotation? |
23:34:24 | clyybber | Like proc someProc(a: nonsink T) |
23:34:38 | clyybber | which would prevent a from being inferred a sink |
23:34:50 | Araq | considered it but it's much harder to implement |
23:34:54 | clyybber | then we could make {.noSinks.} a macro |
23:35:21 | disruptek | what's the scenario you are trying to nosink? |
23:35:41 | clyybber | Araq: I think we need it eventually. |
23:36:12 | Araq | how? proc foo(x: sink T; y: S) {.nosinks.} # precise control |
23:36:18 | clyybber | Because we also might want to convert a proc (a: sink T, b: sink T) to a proc (a: T, b: sink T) |
23:36:41 | disruptek | ugh. |
23:37:13 | clyybber | Araq: Couldn't it be a matter of adding a symFlag and attaching it to the arg? |
23:37:19 | disruptek | yeah, a taint? |
23:37:23 | clyybber | And then skipping it in the inferrer? |
23:37:57 | Araq | as I said, let's gain some experience |
23:38:08 | Araq | as a first implementation, it works rather nicely already |
23:39:10 | clyybber | Ok |
23:39:32 | * | filcuc quit (Quit: Konversation terminated!) |
23:42:15 | * | lritter quit (Ping timeout: 260 seconds) |
23:43:20 | Araq | also related, scope based destruction is still not ready, it's much harder than it looks |
23:45:55 | clyybber | Hmm |
23:46:59 | Araq | I wonder if an optimization pass could us give the same benefits |
23:47:11 | Araq | without being to disruptive |
23:47:33 | clyybber | complexity cannot be eliminated, only transferred :p |
23:47:40 | clyybber | I think thats your quote |
23:48:58 | Araq | yeah but an optimizer can cheat more easily, "argh, too complex, I give up on this one" |
23:49:55 | clyybber | Yeah, but then you also get the opposite of predictable performance |
23:50:05 | clyybber | Also, thats lame :p |
23:50:44 | Araq | you get "predictable performance" beyond big-O by looking at the asm and profiling things |
23:51:51 | clyybber | Ok, but other langs can do it too, I'm sure we can too |
23:51:56 | clyybber | even if it gets complicated |
23:52:47 | Araq | ok |
23:52:58 | Araq | "Chip flaw exposes billions of WiFi devices" |
23:54:44 | * | Trustable quit (Remote host closed the connection) |
23:55:48 | clyybber | Kr00k? |
23:56:11 | Araq | yes |
23:57:16 | clyybber | it has a nice positive sideffect tho |
23:57:25 | * | dwdv quit (Ping timeout: 240 seconds) |
23:58:22 | * | NimBot joined #nim |
23:59:19 | clyybber | So that was the reason that lineageos pushed out nightly updates outside of their weekly schedule.. |