00:10:00 | * | brson quit (Quit: leaving) |
00:12:52 | * | brson joined #nim |
00:46:33 | * | brson quit (Ping timeout: 240 seconds) |
00:48:05 | * | brson joined #nim |
00:55:30 | * | libman quit (Remote host closed the connection) |
01:02:12 | * | yglukhov joined #nim |
01:06:24 | * | yglukhov quit (Ping timeout: 244 seconds) |
01:26:33 | * | castlelore quit (Quit: WeeChat 1.4) |
01:29:16 | * | brson quit (Ping timeout: 252 seconds) |
01:32:08 | * | desophos quit (Remote host closed the connection) |
01:32:50 | * | desophos joined #nim |
01:36:53 | * | desophos quit (Ping timeout: 244 seconds) |
01:55:08 | * | bozaloshtsh joined #nim |
02:18:14 | * | desophos joined #nim |
02:22:49 | * | fredrik92 quit (Read error: Connection reset by peer) |
02:33:55 | * | kulelu88 quit (Quit: Leaving) |
02:39:04 | * | yglukhov joined #nim |
02:43:31 | * | yglukhov quit (Ping timeout: 250 seconds) |
03:03:35 | * | yglukhov joined #nim |
03:08:47 | * | yglukhov quit (Ping timeout: 276 seconds) |
03:11:10 | * | Varriount quit (Disconnected by services) |
03:11:10 | * | Varriount_ joined #nim |
03:39:40 | * | yglukhov joined #nim |
03:44:32 | * | yglukhov quit (Ping timeout: 276 seconds) |
04:04:05 | * | yglukhov joined #nim |
04:09:03 | * | yglukhov quit (Ping timeout: 276 seconds) |
04:12:57 | * | kingofoz quit (Ping timeout: 268 seconds) |
04:13:42 | * | kingofoz joined #nim |
04:15:20 | * | roarde joined #nim |
04:18:03 | * | roarde left #nim (#nim) |
04:27:00 | * | brson joined #nim |
04:28:43 | * | brson quit (Client Quit) |
04:40:09 | * | yglukhov joined #nim |
04:44:57 | * | yglukhov quit (Ping timeout: 260 seconds) |
04:52:19 | * | u0_a92 quit (Ping timeout: 260 seconds) |
04:53:50 | * | u0_a92 joined #nim |
05:04:15 | * | yglukhov joined #nim |
05:09:15 | u0_a92 | exit |
05:09:19 | * | u0_a92 quit (Quit: leaving) |
05:09:30 | * | yglukhov quit (Ping timeout: 276 seconds) |
05:26:32 | * | s4 joined #nim |
05:56:49 | * | desophos quit (Read error: Connection reset by peer) |
06:21:03 | * | nsf quit (Ping timeout: 250 seconds) |
06:23:47 | * | gunn_ quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
06:30:18 | * | vendethiel- quit (Ping timeout: 246 seconds) |
06:32:45 | * | arnetheduck quit (Ping timeout: 250 seconds) |
06:44:51 | * | space-wizard quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
06:51:33 | * | Varriount_ quit (Ping timeout: 240 seconds) |
06:52:00 | * | gokr joined #nim |
06:54:04 | * | Varriount joined #nim |
07:14:21 | * | castlelore joined #nim |
07:26:02 | * | yglukhov joined #nim |
07:30:33 | * | yglukhov quit (Ping timeout: 240 seconds) |
07:35:17 | * | castlelore quit (Ping timeout: 276 seconds) |
07:47:30 | * | dorei joined #nim |
07:49:36 | * | castlelore joined #nim |
08:07:43 | * | yglukhov joined #nim |
08:12:09 | * | yglukhov quit (Ping timeout: 246 seconds) |
08:20:03 | * | Arrrr joined #nim |
08:20:03 | * | Arrrr quit (Changing host) |
08:20:03 | * | Arrrr joined #nim |
08:34:41 | * | Trustable joined #nim |
08:35:42 | * | yglukhov joined #nim |
08:40:24 | * | yglukhov quit (Ping timeout: 260 seconds) |
08:55:42 | * | yglukhov joined #nim |
09:00:16 | * | Demon_Fox quit (Quit: Leaving) |
09:00:54 | * | yglukhov quit (Ping timeout: 276 seconds) |
09:15:50 | * | yglukhov joined #nim |
09:16:50 | * | McSpiros joined #nim |
09:20:35 | * | yglukhov quit (Ping timeout: 276 seconds) |
09:24:56 | * | elrood joined #nim |
09:35:58 | * | yglukhov joined #nim |
09:40:25 | * | yglukhov quit (Ping timeout: 252 seconds) |
09:56:11 | * | yglukhov joined #nim |
10:00:45 | * | yglukhov quit (Ping timeout: 268 seconds) |
10:03:13 | * | Arrrr quit (Ping timeout: 268 seconds) |
10:13:22 | * | Amun_Ra quit (Ping timeout: 250 seconds) |
10:15:05 | * | Amun_Ra joined #nim |
10:16:13 | * | yglukhov joined #nim |
10:19:57 | * | Arrrr joined #nim |
10:19:57 | * | Arrrr quit (Changing host) |
10:19:57 | * | Arrrr joined #nim |
10:20:47 | * | yglukhov quit (Ping timeout: 244 seconds) |
10:29:41 | dom96 | Maybe it's time we get rid of strong spaces from the manual? https://www.reddit.com/r/programming/comments/4gnehl/pied_piper_compression_code_shown_on_silicon/d2j5khk |
10:34:45 | Arrrr | No wonder the person that came with that comment is a rustacian |
10:36:26 | * | yglukhov joined #nim |
10:37:23 | elrood | might be a good idea. it's a constant source of ridicule |
10:38:49 | dom96 | Indeed. |
10:39:25 | dom96 | I'm writing a reply which will hopefully alleviate some people's first reactions. |
10:40:40 | * | yglukhov quit (Ping timeout: 250 seconds) |
10:51:40 | * | arnetheduck joined #nim |
10:56:33 | * | yglukhov joined #nim |
11:00:59 | * | yglukhov quit (Ping timeout: 250 seconds) |
11:01:24 | niv | that whitespace precedence thing is really weird to look at |
11:09:00 | federico3 | yep, please remove that |
11:09:07 | * | yglukhov joined #nim |
11:14:02 | * | yglukhov quit (Ping timeout: 260 seconds) |
11:16:05 | Arrrr | I don't see why is that so bad. Not that i use it, but won't affect me anyway |
11:17:33 | elrood | the thing is, it's not that bad to actual or former users of the language. most are just surprised when they notice it's there, while it didn't affect them at all |
11:19:07 | elrood | on the other hand, to anybody considering nim as a new language it's like waving a red flag, saying the design decisions the language is based on might not be completely sane |
11:19:30 | elrood | for a young language it's somewhat of the equivalent of shooting yourself in your little toe |
11:19:31 | * | enthus1ast joined #nim |
11:20:51 | niv | i think it looks adorable once you get used to it, but it's a really ugly thing to mess with established foundations |
11:21:14 | niv | not worth the mental overhead, imo, since you're already used to parsing parens |
11:23:12 | dom96 | well I replied |
11:23:27 | Arrrr | THe comments there doesn't provide any insight of why is bad. The first poster said that the feature made nim, among others things, great (which i'm sure he actually thought the opposite), and the one that responded complained on the contributors, but nothing else. |
11:26:06 | niv | dom96: dont take it too hard. the internet is vicious and always paints everything in the darkest picture for extra drama points |
11:26:21 | niv | experimental, random features or just incomplete stuff, bugs - it's all assumed to be malicious first |
11:28:22 | federico3 | Arrrr: insight of why is bad? Strong spaces are difficult to read, opening the door to a lot of bugs |
11:28:51 | flyx | I hear there are people who write code with non-monospace fonts ^^ |
11:29:12 | federico3 | right, and for them it would be a mess |
11:29:17 | * | yglukhov joined #nim |
11:29:33 | niv | flyx: yes, there are many weird people in the world :) |
11:29:35 | flyx | but it has been a long time since I saw that |
11:29:46 | flyx | it was in RealBasic afair |
11:29:50 | niv | there are also people writing code without syntax highlighting |
11:29:59 | niv | or without indentation |
11:30:01 | Arrrr | Yes, and you could argue that allowing unsafe features leads to bugs and makes code harder to read. Should nim ban those? |
11:30:04 | dom96 | niv: Don't worry, i'm not. I like to think that even though Nim is painted in a bad light there, it's better than not being mentioned at all :) |
11:30:29 | Arrrr | On the bright side, there is no such thing as bad publicity. |
11:30:38 | dom96 | You could argue that you can configure your editor to show spaces as some special character |
11:30:44 | niv | pretty much. and its just one small feature. anyone interested will check it out regardless |
11:30:47 | dom96 | Many people have their editor configured to do that |
11:30:54 | niv | yes, they're weird too |
11:31:00 | cheatfate | Araq_, hows is you work with GC? because current GC is annoying with deep recursions on linked lists |
11:31:03 | niv | CRAZY, I say |
11:31:21 | elrood | well, even without drama points strong spaces are just not a good idea. they counteract everything one learned in basic maths, violate the principle of least surprise, open up a pandora's box for unexpected bugs with no good reason.. |
11:32:01 | Arrrr | But by that argument why should stick to c syntax |
11:32:33 | niv | its more than language syntax, its basic math conventions. bad thing to mess with those. imo. |
11:32:43 | dom96 | To be fair, there is still A LOT of people who say that significant whitespace at all is a bad idea |
11:32:47 | dom96 | and diss Python because of it |
11:33:02 | dom96 | I can only imagine what people said when Python was first announced |
11:33:10 | niv | dom96: well whitespace is taste so that can be argued :) i personally used to hate it, but since using nim i wish other languages would do it too |
11:33:19 | Arrrr | Yeah, once i thought python syntax was bad. |
11:33:41 | niv | i figure it's all just a case of getting used to things. adapting to new things is what humans are good at so perception skews a lot after a while |
11:33:45 | niv | and it doesnt matter in the end |
11:33:46 | dom96 | Indeed. So imagine if you first learned programming with Nim (which had strong spaces by default). |
11:33:52 | * | yglukhov quit (Ping timeout: 260 seconds) |
11:34:06 | dom96 | It would likely seem natural to you. |
11:34:29 | niv | yeeah, but i still think the point can be made that it's a more invasive change than indentation, especially if you have a math background (i.e. went to school :D) |
11:34:33 | dom96 | I think Araq deserves props for trying something new |
11:34:33 | federico3 | Python wasn't the first language with significant whitespace *for indentation* |
11:34:36 | dom96 | i.e. actually innovating |
11:34:43 | Arrrr | Yes, going against basic math conventions is, after all, going agains conventions. |
11:35:11 | niv | oh im not bashing it. i still think its cute. but i would never use it, especially if i want to bring in new people to the project that havent had worked with nim before |
11:35:32 | dom96 | While it's innovative, I agree that I don't think it's the right way to go. |
11:35:47 | niv | good chat, lets do that again soon |
11:35:53 | dom96 | s/ that/,/ |
11:36:38 | Arrrr | Meh, i dont agree. If increasing your popularity was the only or first concern, again, we would be using ancient syntax by now. |
11:37:11 | Arrrr | There is always a new language that do things different. Some of them may be ugly and die in hell, but maybe one makes popular a new concept |
11:37:28 | Arrrr | But at first, we dont know. Everything new will cause at first rejection |
11:37:50 | elrood | let's politely disagree here. python's indentation is an entirely different matter, and nim's syntax for the most part is pleasant to read and work with. alienating every mathematicially affined person on the planet is playing in another league |
11:38:18 | dom96 | To be fair, most of us (including myself) are just predicting the problems with strong spaces. |
11:38:26 | dom96 | We haven't actually tried it yet |
11:38:40 | elrood | because nobody in their right state of mind would? ;) |
11:39:20 | Arrrr | But that may be true when programming languages were used mainly but mathematicians. |
11:39:29 | Arrrr | *have been |
11:39:40 | Araq_ | strong spaces again? |
11:39:54 | Araq_ | should I remove #! strongSpaces to make this discussion stop? |
11:40:02 | Araq_ | any new insights? |
11:40:04 | federico3 | yes please :) |
11:40:30 | Araq_ | #! strongSpaces right now are on par with trigraphs in C/C++. |
11:40:50 | Araq_ | technically they exist, I know no code base that uses them. |
11:41:12 | Araq_ | can I now spread FUD about C/C++ never going mainstream anytime soon? |
11:41:20 | niv | what's C++? |
11:41:41 | niv | never heard of it. must be esoteric claptrap |
11:41:52 | Xe | niv: something some person made to justify their employment a long time ago and has roped people into using since |
11:42:09 | niv | haha. yeah, there's a great many interpretations on it's purpose :D |
11:42:49 | elrood | to be frank, it's less about this discussion, we here probably don't mind all that badly. but if you want to help nim's adoption along it would perhaps be a good idea to get rid of strong spaces once and for all |
11:43:04 | Xe | ya know |
11:43:07 | niv | yes, kill it before anyone actually starts using it :D |
11:43:12 | Xe | i'll open a github issue |
11:44:14 | Arrrr | You know what comes next |
11:44:35 | dom96 | Style insensitivity? :P |
11:44:45 | niv | programmer insensitivity |
11:46:04 | dom96 | In other news, it looks like the people want a Nim Slack https://twitter.com/nim_lang/status/725289411412414465 |
11:46:44 | niv | i dont like slack :( its slow and clunky and always goes through a web interface |
11:47:07 | Xe | fuck slack |
11:47:34 | dom96 | What if I create a IRC #nim <-> Slack #nim bridge? |
11:47:48 | niv | https://get.slack.help/hc/en-us/articles/201727913-Connecting-to-Slack-over-IRC-and-XMPP |
11:47:50 | Xe | we already have gitter |
11:47:53 | federico3 | with a bridge, ok |
11:48:19 | flyx | um, how can one view the results of this poll? |
11:48:20 | niv | people could still connect with their irc clients if they wanted to. but i never tried it |
11:48:21 | dom96 | Xe: Yeah, but I'm already running Slack anyway. |
11:48:28 | dom96 | flyx: need to vote on it I guess |
11:48:32 | dom96 | I'll make a screenshot |
11:48:42 | Xe | dom96: slack app eats up gigs of ram for me |
11:48:46 | flyx | dom96: I'd need a twitter account for that |
11:48:52 | dom96 | Xe: same heh |
11:49:11 | Araq_ | removing strong spaces altogether could be a strategic mistake though. Might be wiser to leave it in so that people have something easy and obvious to work off. |
11:49:12 | niv | i dont like the slack native app either. its just a web wrapper loading a full instance of chrome |
11:49:46 | dom96 | flyx: http://i.imgur.com/Tw0Dd9z.png |
11:50:01 | flyx | Xe: from how it looks I guess it could be made with electron, which would explain why it eats RAM |
11:50:13 | flyx | dom96: thanks |
11:50:15 | Araq_ | dom96: yeah, IRC #nim <-> Slack #nim bridge!!!! |
11:50:26 | Araq_ | isn't that even something for your book? |
11:50:43 | niv | bonus points for writing it in nim |
11:51:00 | dom96 | Araq_: Writing a bridge in Nim? lol |
11:51:11 | flyx | ah yes, they even link it at electron's website |
11:51:13 | Araq_ | sure, what else? |
11:51:14 | niv | yes, NIH it |
11:51:19 | niv | ignore all the existing ones :D |
11:51:26 | * | BitPuffin joined #nim |
11:51:34 | Xe | dom96: Why not Matrix? |
11:51:37 | dom96 | Araq_: Sure, it's not like I don't have enough projects to maintain :P |
11:51:58 | dom96 | Xe: The main reason for Slack is because of how many people are already using it, and therefore have the client installed. |
11:52:03 | elrood | dom96, your poll is flawed, it only counts twitter users :P |
11:52:18 | dom96 | elrood: true, wanna implement polling functionality in NimBot? ;) |
11:52:22 | Xe | dom96: I don't approve of locking Nim into a walled chat garden |
11:52:37 | elrood | micro$oft not trusting in slack enough to acquire the company is probably a strong point, though ;) |
11:53:15 | dom96 | Xe: It's just an alternative though, if it's bridged you'll be able to use either IRC or Slack. |
11:53:54 | elrood | dom96, you don't really want to give me commit access to nimbot, i might use it ;) |
11:54:35 | * | McSpiros quit (Quit: Page closed) |
11:55:40 | dom96 | elrood: not quite sure what you mean |
11:56:02 | dom96 | Araq_: I think it's wiser to remove strong spaces. |
11:57:03 | * | BitPuffin quit (Ping timeout: 240 seconds) |
11:58:56 | * | BitPuffin joined #nim |
11:59:29 | * | yglukhov joined #nim |
12:02:33 | * | yglukhov quit (Remote host closed the connection) |
12:04:26 | * | yglukhov joined #nim |
12:11:05 | dom96 | wow, mikra just contributed $200 https://salt.bountysource.com/teams/nim |
12:15:01 | Arrrr | thank you mikra |
12:15:31 | * | GangstaCat quit (Ping timeout: 250 seconds) |
12:15:41 | dom96 | ^^ :) |
12:18:03 | dom96 | We're now 50% of the way towards our "One day per week" goal :D |
12:19:33 | dom96 | It's really awesome to see that people are willing to part with their hard earned cash to help Nim. |
12:22:29 | flyx | I wonder why Crystal lang has so many backers. I had a look at it once, but I didn't see any unique features |
12:22:38 | niv | because ruby |
12:22:55 | flyx | I equally wonder about ruby ^^ |
12:23:37 | dom96 | I think many fans of Ruby see it as a compiled Ruby. |
12:24:04 | Arrrr | We could ask BlaXpirit |
12:24:13 | dom96 | There are a occasional people in #crystal-lang asking why something they do in Ruby doesn't work in Crystal. |
12:24:27 | niv | ruby is etremely productive. rails is mindblowing for getting stuff done in as little time as possible |
12:24:30 | niv | the lure is there |
12:25:09 | dom96 | Another interesting thing to note is that they get $600 off some Anonymous person. |
12:26:11 | dom96 | so that's already almost all of what we got so far. |
12:26:50 | Araq_ | cheatfate: what do you mean with deep recursions? that's been fixed since quite some time on devel. I hope. |
12:26:54 | * | BitPuffin quit (Ping timeout: 268 seconds) |
12:27:05 | niv | i tried it briefly and it worked well but nim just feels .. more mature and more useful. dunno. purely subjective. |
12:27:21 | dom96 | btw I will likely post a large portion of that money as a bounty on various issues, so if you guys have any suggestions for issues which deserve a bounty feel free to let me know :) |
12:27:46 | niv | asyncdispatch + threads and all the niggles with templates/try/etc :D |
12:28:26 | niv | i'd invest the money towards things that block 1.0. real bugs and issues that are unexpected but people run into and then dont know what to do |
12:28:30 | federico3 | meanwhile, $megaco invest millions on the JVM |
12:28:35 | * | novavis joined #nim |
12:28:53 | * | GangstaCat joined #nim |
12:29:50 | dom96 | federico3: and 95% of that is spent on employees who spend 60% of their working time on Reddit/YouTube (probably). |
12:30:58 | dom96 | niv: that sounds like a good idea. But I would also like to put some of it towards "easy" issues to encourage newcomers to contribute. |
12:31:45 | niv | fair enough. hard to balance though unless you want to risk it that people just do small PRs to grab those 5 dollars and then never reappear |
12:32:28 | yglukhov | dom96: what do you think of https://github.com/nim-lang/Nim/pull/4122 ? |
12:32:36 | flyx | JVM is big in megacorps because they long ago failed to hire capable admins. so they invented JavaEE and application servers so that the developers can do the admin job because it's part of their product |
12:32:51 | dom96 | yglukhov: oh thanks for reminding me. In like it in general :) |
12:32:58 | niv | flyx: isnt that what's called devops nowadays? |
12:33:40 | dom96 | s/In/I/ |
12:34:31 | yglukhov | dom96, ok, waiting for your comments/accept then =) |
12:34:50 | flyx | niv: devops is mostly the movement to get developers to learn real admin stuff instead of fucking with a loosy application server |
12:34:55 | dom96 | Gah, need to run to Tesco first. Will review afterwards! |
12:34:58 | dom96 | bbl |
12:35:04 | federico3 | flyx: that and much more |
12:35:07 | yglukhov | ok |
12:37:17 | cheatfate | Araq_, please take look on comment for https://gist.github.com/cheatfate/fa97356b397df46730ed6e20458f903c |
12:37:32 | cheatfate | Araq_, its about recursion in GC |
12:38:52 | niv | --gc:workdamnit |
12:40:30 | Araq_ | cheatfate: linked list with 50_000_000 elements? ... ok... well with gc:v2 it will be gone. |
12:41:33 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
12:41:55 | cheatfate | Araq_, its not a 50_000_000 linked nodes... its just 781250 linked nodes |
12:42:18 | * | novavis joined #nim |
12:42:28 | Araq_ | ouch. |
12:43:08 | Araq_ | well I tried to fix it once but the algorithm is infested to the core and so it only produced more crashes |
12:43:12 | niv | Araq_: do you have any idea what this could be? https://gist.github.com/niv/abdca03f7954880171e2db9f06e27d2c it only happened once, at random. the code where it triggered was a weird place, creating a new tuple i think |
12:44:07 | niv | the very same code ran just fine after that, for many many test runs |
12:44:14 | Araq_ | thinking about it. I can fix it tonight, I hope. |
12:44:45 | cheatfate | yglukhov, usage of your timers as usage of sleepAsync() slowdown whole asyncdispatch... That is the problem |
12:45:32 | Araq_ | niv: yeah I have some ideas. |
12:45:37 | cheatfate | yglukhov, its like you can process 150,000 requests per second without timeouts and only 10,000 requests with timeout |
12:46:03 | niv | Araq_: okay, just wanted to hand it over in case you can make use of it. looked like a GC bug to me what what do i know .. |
12:46:25 | niv | execution context was a while true: loop polling events off asyncdispatch, creating a tuple for each event |
12:49:05 | Araq_ | cheatfate: is that async's very poor timers implementation? |
12:49:11 | Araq_ | or something else? |
12:50:35 | cheatfate | Araq_, its because we need to use hardware timers, RegisterWaitForSingleObject for windows, kqueue - EVFILT_ITMER for bsd/macos, timerfd - for linux... |
12:52:11 | cheatfate | Araq_, even usage of epochTime() slowdown the whole polling process |
12:52:53 | yglukhov | cheatfate: i call to epochTime() only if there are active timers present. |
12:53:51 | yglukhov | cheatfate: is there a better/faster function to get process time? |
12:55:53 | niv | epochtime is using gettimeofday underneath? |
12:56:32 | cheatfate | yglukhov, problem is not in epochTime() problem is handling timers in such way... |
12:57:24 | yglukhov | cheatfate: then i don't get your point. from such perspective my solution is no worse than it was |
12:59:36 | cheatfate | yglukhov, last 2 monthes i'm working on the hardware implementation of timers and another staff |
12:59:37 | cheatfate | https://gist.github.com/cheatfate/21799cf43e3af13d275dc1863d43b68e |
12:59:48 | cheatfate | this is windows version of what i'm proposing to use |
13:01:09 | cheatfate | and this variant gives only 2-5% slowdown |
13:06:22 | cheatfate | i want to add to asyncdispatch - timers, processes, signals, user events and maybe in future filesystem events |
13:06:48 | niv | inotify support would be awesome |
13:08:39 | cheatfate | niv, its a problem just because all OS has very different mechanisms of filesystem notifications... (inotify - linux, bsd/macos - kqueue, windows - ReadDirectoryChangesW) |
13:08:56 | niv | yeah. i was just giving it as an example :) |
13:09:02 | federico3 | niv: https://github.com/nim-lang/Nim/blob/devel/lib/pure/fsmonitor.nim |
13:09:11 | Araq_ | yglukhov: the JS backend supports .varargs, right? |
13:09:56 | cheatfate | federico3, this is only linux implementation |
13:11:11 | federico3 | yep, but it's a beginning |
13:14:14 | cheatfate | federico3, its even not starting... :) you need to check functionality of kqueue |
13:15:27 | yglukhov | Araq_: i think it should... |
13:16:12 | cheatfate | Araq_, do i need fill an issue on this bug to remind you? |
13:18:05 | Araq_ | cheatfate: no. |
13:21:22 | Araq_ | yglukhov: yeah never mind, works. |
13:22:26 | * | desophos joined #nim |
13:26:33 | * | desophos quit (Ping timeout: 240 seconds) |
13:28:35 | * | desophos joined #nim |
13:33:14 | * | desophos quit (Ping timeout: 260 seconds) |
13:43:01 | cheatfate | Araq_, i want to make PR with queue again but i dont want to replace your queue, just because it is not faster than yours on small amounts of memory (depends on arch and compiler) |
13:43:25 | * | s4 quit (Quit: Konversation terminated!) |
13:43:46 | cheatfate | Araq_, but it threading safe so we can use it in asyncdispatch |
13:44:34 | Araq_ | cheatfate: idea: use the new queue privately in asyncdispatch not exposing it for now |
13:47:57 | cheatfate | Araq_, looks like you and dom96 not really wants to update asyncdispatch, or maybe you want to switch to reactor? |
13:48:30 | Araq_ | what makes you say this? |
13:49:00 | Araq_ | we long for your patches but it needs to be reasonably clean and stable. |
13:50:26 | Araq_ | or let me put it this way: I know you're working on it and so I work on something else. ;-) |
13:51:52 | reactormonk | What's the proper way to do https://gist.github.com/reactormonk/cab00e6420d9f0074f39cd67bf908067 ? |
13:53:00 | dom96 | cheatfate: yglukhov's patch is good enough for now |
13:53:12 | dom96 | if you can implement hardware timers in a nice way then I will merge your changes |
13:53:29 | niv | dom96: have you checked out reactor.nim? |
13:53:41 | dom96 | niv: not in much detail |
13:54:04 | niv | it's using libuv instead of kqueue/polling and apparently supports threadpools |
13:54:26 | dom96 | pretty sure zielmicha said that it didn't support threadpools yet |
13:54:37 | niv | the documentation claims otherwise |
13:54:47 | niv | https://networkos.net/nim/reactor.nim/doc/ |
13:56:26 | cheatfate | niv, but libuv using kqueue/polling :) |
13:56:41 | niv | okay, fine |
13:57:32 | dom96 | niv: you can easily spawn procedures and use asyncdispatch at the same time |
13:58:37 | * | enthus1ast1 joined #nim |
13:59:05 | niv | dom96: huh. |
13:59:26 | Araq_ | proc zero[S](T: typedesc[seq]): S = @[] |
13:59:29 | Araq_ | reactormonk: |
13:59:52 | dom96 | niv: In fact, give me a second and I'll show you an example from my book. |
14:00:01 | * | enthus1ast quit (Ping timeout: 268 seconds) |
14:00:03 | * | dom96 needs to finally push some examples to github |
14:00:30 | niv | dom96: i never realised. i thought native threading and asyncdispatch was completely incompatible. |
14:01:58 | cheatfate | niv, it will be a problem if you start `await`ing in other threads... |
14:02:35 | niv | cheatfate: i figured as much, but i can still do cpu intensive stuff on different threads and await for those then? |
14:02:56 | dom96 | yep, you can't run the event loop in other threads. |
14:03:09 | dom96 | Also, 'await' doesn't support FlowVar[T] |
14:03:20 | niv | i need to read up on threading in nim |
14:03:27 | dom96 | (It really should) |
14:03:42 | dom96 | But Araq had his reasons for making it incompatible with Future[T] (even though they are basically the same things) |
14:03:53 | reactormonk | Araq_, do I need to change the multiply as well? https://gist.github.com/2f617e2a7fe27851ff8cea8e5da53872 gives me monoid.nim(17, 14) Error: type mismatch: got (int literal(3), int literal(3)) |
14:03:56 | niv | threadpool exports it's own await thing |
14:05:05 | dom96 | niv: yeah, but it blocks the current thread |
14:05:20 | niv | dom96: much like pthread_join(), right? |
14:05:41 | niv | i'll go RTFM |
14:05:52 | dom96 | kinda yes |
14:06:16 | cheatfate | Araq_, the problem is that you never accept PR which modifies more than 1 file... it would be long discussion after you will want to split it... but my way to split PRs on smaller chunks also not working... so maybe it would be better for me to make some kind of reactor... |
14:10:39 | niv | dom96: does it make sense to have one poll asyncdispatch thing per thread? |
14:15:24 | dom96 | niv: https://github.com/dom96/nim-in-action-code/blob/master/Chapter3/ChatApp/src/client.nim |
14:15:46 | dom96 | niv: nope, that is precisely what won't work |
14:16:35 | * | dorei quit (Quit: Page closed) |
14:18:33 | * | Varriount quit (Ping timeout: 240 seconds) |
14:37:09 | Araq_ | cheatfate: not true, in fact IMHO I'm very forgiving when it comes to PRs. But as long as a PR is like "ok, only works on Windows for now" or "ok, but breaks existing code" it's hard to accept it. |
14:38:15 | Araq_ | and breaking existing code is acceptable if there is a clear migration path and it's caught at compile-time. |
14:39:57 | * | Trustable quit (Remote host closed the connection) |
14:41:12 | Araq_ | in fact, once a PR arrives that's like "ok, I started from scratch, it's much faster than the original, the API is incompatible but as flexible and it supports more features" you can count on me pushing it forward (=fighting with dom96? ;-) |
14:42:37 | * | Trustable joined #nim |
14:44:15 | niv | dom96: thanks for the example! |
14:45:21 | cheatfate | Araq_, ok, thanks, then i will continue |
14:47:54 | * | Trustable quit (Remote host closed the connection) |
14:49:20 | * | Trustable joined #nim |
14:56:31 | dom96 | I don't see any reason why you would need to change the API. |
14:56:44 | Araq_ | ha ha ha. good one, dom96. |
14:57:08 | dom96 | ? |
14:58:41 | cheatfate | dom96, is your question to me? |
14:58:58 | dom96 | No, my question is to Araq. |
15:00:06 | Araq_ | dom96: sockets are not streams, threadpools don't support async await, SSL support is tedious, etc etc. There is a reason for everything of course, but these are all reasons that warrant changing the API. |
15:00:37 | Araq_ | s/warrant/justify |
15:04:01 | cheatfate | dom96, your declaration of epoll in posix/epoll.nim is made only for usage in selectors.nim... if i want to use 64bit value i need to redeclare all epoll functions/structures... |
15:04:47 | cheatfate | and i know why u made it in such way, just because you dont want to resolve "nim union bug" :) |
15:05:36 | cheatfate | but you can at least declare it as 64bit value |
15:05:52 | * | Deavmi_mobile joined #nim |
15:05:55 | Deavmi_mobile | ello.all |
15:10:53 | dom96 | cheatfate: it is, yes. |
15:11:30 | * | Pisuke is now known as MyMind |
15:12:30 | dom96 | Araq_: Threadpools + async are a problem, but you don't even know how to get it to work. |
15:12:38 | dom96 | Even if you were to write it from scratch |
15:12:50 | Araq_ | I'm not blaming you at all. |
15:12:59 | dom96 | The rest is just silly. Sockets are indeed not streams, why would they be? |
15:13:14 | dom96 | As for SSL, I have no idea in what way it is tedious? |
15:13:19 | Araq_ | dunno, seems like they could be |
15:13:58 | dom96 | then you can easily write a stream abstraction which makes use of the current API |
15:15:41 | Araq_ | actually I can't for async sockets because the streams API is wrong. |
15:15:51 | * | deavmi_mobile2 joined #nim |
15:16:05 | Araq_ | streams: proc read(buffer...) # after call buffer is filled. |
15:16:20 | Araq_ | async: proc read(oncompletion: proc(data)) |
15:17:08 | dom96 | indeed |
15:19:40 | dom96 | Araq_: Are you happy with yglukhov's heapqueue implementation? https://github.com/nim-lang/Nim/pull/4122 |
15:20:06 | Araq_ | SSL is tedious because of the dependency but yeah I suppose you're right and it's not an API problem |
15:21:09 | dom96 | yep, so we're left with thread pools :) |
15:21:34 | dom96 | And I still have no idea how they should work really. |
15:23:16 | cheatfate | dom96, they must work like poll() in every thread... |
15:23:53 | dom96 | right, but then how do you run iterators in different threads? |
15:24:00 | dom96 | that is the problem IMO |
15:24:16 | Araq_ | dom96: I'm sorry for the asshole laughing but it's not inconceivable somebody comes up with a better API for async, is it? |
15:25:05 | dom96 | Araq_: sure, it's not. But I don't want people coming up with a new API just because they don't feel like understanding the old one. |
15:25:56 | dom96 | If there is a valid reason for API breakage then so be it |
15:26:11 | dom96 | But if it's just a case of "Well, I just decided to rewrite it" |
15:26:17 | dom96 | then I will not be happy |
15:27:51 | dom96 | And yes, the laughing wasn't nice. |
15:28:45 | dom96 | Araq_: Now, are you happy with heapqueue being in the stdlib? https://github.com/nim-lang/Nim/pull/4122/files |
15:29:59 | * | enthus1ast joined #nim |
15:31:52 | cheatfate | dom96, api breakage is the only way to improve asyncdispatch |
15:32:14 | * | enthus1ast1 quit (Ping timeout: 260 seconds) |
15:32:16 | * | brson joined #nim |
15:32:36 | dom96 | cheatfate: why? |
15:32:40 | cheatfate | dom96, for example sleepAsync() |
15:33:37 | cheatfate | i dont know what are the goals of this function... but one of them is for implementing timeouts |
15:33:48 | Araq_ | dom96: yup, generic collections in general cause no problem to be in the stdlib. |
15:33:57 | cheatfate | in `future or sleepAsync()` |
15:34:14 | dom96 | yes, what is the problem with this function? |
15:34:54 | cheatfate | currently nobody cares about sleepAsync() future resources if real future completed first... |
15:35:23 | cheatfate | but if i implement sleepAsync() with more system specific staff, i need to free system resources... |
15:35:40 | cheatfate | even if it not used any more |
15:35:50 | cheatfate | not used = not needed |
15:37:01 | cheatfate | so i need to implement something like this https://gist.github.com/cheatfate/21799cf43e3af13d275dc1863d43b68e |
15:37:17 | cheatfate | proc withTimeout*[T](fut: Future[T], timeout: int): Future[void] = |
15:37:42 | cheatfate | so i can free system resources even if `fut` completed first |
15:38:47 | dom96 | Ahh, so the problem is that with `future or sleepAsync()` if `sleepAsync` completes first, then there is no way to cancel `future`? |
15:40:04 | cheatfate | if `future` completes first, there is no way to free resources allocated by `sleepAsync()` too |
15:41:40 | cheatfate | another problem is a `kqueue` selectors problem, just because selectors.nim support only EVFILT_READ, EVFILT_WRITE, EVFILT_ERROR... so there no way to add os specific timers/signals/processes |
15:41:50 | dom96 | Technically, `or` could free the resources I think |
15:42:18 | dom96 | if future.finished: free sleepAsync(); result.complete |
15:42:26 | dom96 | if sleepAsync().finished: free future; |
15:42:29 | dom96 | result.complete |
15:42:35 | dom96 | (Pseudo-code) |
15:42:50 | dom96 | Don't you think that would work? |
15:42:58 | cheatfate | but currently we dont have `free` |
15:43:00 | dom96 | Araq_: Cool. Merging. |
15:43:13 | dom96 | cheatfate: indeed. And I have been saying for a long time that it is on my todo list |
15:43:21 | dom96 | cheatfate: It's an API addition |
15:43:31 | dom96 | it doesn't need any API modifications |
15:43:46 | dom96 | Araq_: Oh, I see you made comments. |
15:44:16 | Araq_ | dom96: doesn't matter, we can change it later |
15:44:52 | * | gokr quit (Ping timeout: 250 seconds) |
15:45:17 | dom96 | Araq_: Would be nice to get a test for this timer stuff too |
15:45:25 | dom96 | but it's not fair to get yglukhov to make that :) |
15:45:34 | dom96 | Merged |
15:46:18 | cheatfate | dom96, what about `kqueue` selectors problem? |
15:46:51 | dom96 | cheatfate: I didn't personally write `kqueue` so I'm not sure |
15:47:11 | dom96 | cheatfate: But selector's API isn't as important to keep the same as asyncdispatcher's |
15:48:11 | cheatfate | dom96, ok let me explain another one problem |
15:48:14 | yglukhov | dom96, Araq_, thanks! |
15:49:44 | cheatfate | dom96, for example i want to adopt postgresql/mysql or any other libraries to be async |
15:50:09 | cheatfate | dom96, some libraries like postgresql i can obtain os specific socket/file handle |
15:50:35 | cheatfate | dom96, but i can't use it in windows just because we using iocp staff for windows only |
15:51:08 | cheatfate | cheatfate, so its possible to adopt postgresql to linux/bsd/macos easily but not windows... |
15:51:35 | dom96 | That's a tough one because I don't know how those libraries work under the hood |
15:51:39 | dom96 | so I can't advise you here |
15:52:03 | dom96 | Go ahead and show me what you would like to change in the API to support them and then I will likely be able to give you a better answer |
15:52:05 | cheatfate | dom96, libraries doesnt matter, we need to have posibility to extend asyncdispatch |
15:52:36 | cheatfate | like i need to add library specific poller() |
15:53:28 | dom96 | I'm sure that can be an additional feature which can be added without disrupting the current API |
15:54:27 | * | libman joined #nim |
15:55:11 | cheatfate | i'm just trying to say, that current api is not very flexible, current asyncdispatch is looks like Proof Of Concept not like production stable API |
15:56:22 | cheatfate | I can't even write windows benchmarking tool just because asyncdispatch connect() uses strings as address, and perform dns resolution at every call |
15:57:41 | dom96 | Fair enough. All I'm trying to say is that you CAN make it more flexible by adding things to the current API |
15:57:52 | dom96 | but without changing what is already there |
15:59:43 | * | SoulMelody joined #nim |
15:59:54 | Araq_ | dom96: yeah but it's also a question of "how much does it break". for example the 'or sleepAsync()' always seemed like an overly clever idea. the underlying OS stuff tends to supports timeouts but how can you pass this information down to it when it's attached via 'or'? |
16:01:01 | dom96 | Araq_: Okay. Again, I'm not sure how timeouts/timers (which is it?) work in epoll/kqueue/iocp. |
16:01:24 | dom96 | I imagine that you tell it "Please notify me after x ms" |
16:01:32 | dom96 | if that is the case then sleepAsync will be able to easily adopt it |
16:02:02 | dom96 | sleepAsync(100) -> Please notify me after 100 ms -> sleepAsyncFuture.complete() # boom |
16:02:47 | dom96 | if however, you need to pass it to the socket function, for example: recv(buffer, 1000, timeout = 100) |
16:02:53 | dom96 | then it's an issue |
16:03:12 | dom96 | but surely, epoll/kqueue/iocp support timers |
16:03:39 | dom96 | indeed, it looks like it: http://man7.org/linux/man-pages/man2/timerfd_create.2.html |
16:04:03 | * | enthus1ast quit (Ping timeout: 276 seconds) |
16:04:46 | * | SoulMelody quit (Quit: Manjaro-KDE user leaving!) |
16:06:16 | cheatfate | sleepAsync() was just as example, the main api breakage can cause to make asyncdispatch extendable... to let people easily adopt other libraries, like postgres, mysql, mongo or any other staff |
16:07:11 | dom96 | I think I refuted that though. |
16:07:26 | cheatfate | i know nobody likes to write any documentation, or RFC |
16:08:00 | cheatfate | but it looks we need to make async api rfc |
16:08:19 | cheatfate | and doesn't matter if some of functions not implemented yet |
16:08:46 | cheatfate | because currently i dont understand how to adopt `process termination` to asyncdispatch |
16:09:15 | cheatfate | so i have already implemented it in code, but i dont understand how to make it as API |
16:11:12 | cheatfate | and this will be very usefull when you async talking with GDB for example |
16:16:23 | cheatfate | dom96, and this is not api breaks its api improvements but i think somebody (maybe you?) need to write rfc |
16:19:06 | cheatfate | dom96, we need something like this https://www.python.org/dev/peps/pep-3156/ |
16:19:20 | cheatfate | not so big but at least with core features enlisted |
16:19:33 | dom96 | cheatfate: I know, it takes far too much time to write stuff like that though |
16:20:28 | cheatfate | dom96, then just make list of core features you want to make for asyncdispatch... |
16:20:58 | dom96 | okay, i'll make an issue |
16:21:06 | cheatfate | dom96, then when somebody implement it you will not be so aggressive on PRs |
16:21:28 | dom96 | hrm, am I agressive on PRs? :( |
16:21:54 | cheatfate | dom96, and also i'm pinging you on `callSoon` |
16:22:53 | cheatfate | do you remember what i'm talking about? |
16:23:01 | dom96 | of course |
16:23:12 | dom96 | I've still got it in my Github notifications so that I don't forget :) |
16:25:02 | cheatfate | dom96, main problem is in "closure", "gcsafe" and other pragmas when you modify future.cb() to callSoon(future.cb)... for some reason windows OVERLAPPED callbacks declarations fall into errors |
16:25:41 | dom96 | Got this so far: https://github.com/nim-lang/Nim/issues/4123 |
16:25:48 | dom96 | will add more as I remember/am reminded |
16:28:26 | cheatfate | put callSoon first! its much easy than everything else |
16:29:07 | cheatfate | and i have already implemented all timers... |
16:29:08 | * | space-wizard joined #nim |
16:31:55 | cheatfate | dom96, and could you please give some time intervals |
16:31:57 | * | yglukhov quit (Ping timeout: 260 seconds) |
16:32:11 | dom96 | cheatfate: time intervals? |
16:33:17 | cheatfate | when can we expect completion of callsoon() at least? |
16:35:21 | dom96 | I can't estimate that |
16:35:31 | * | desophos joined #nim |
16:37:16 | dom96 | Anybody here who could sort this out? https://www.reddit.com/r/programming/comments/4gnehl/pied_piper_compression_code_shown_on_silicon/d2kkx9j |
16:37:27 | dom96 | (math.gcd giving inconsistent results) |
16:40:29 | cheatfate | dom96, "I can't estimate that" looks weird |
16:43:02 | dom96 | huh? |
16:45:12 | cheatfate | i think callSoon is just 1 hour of your attention... |
16:50:35 | cheatfate | dom96, its just a one hour :) |
16:51:21 | dom96 | cheatfate: I bet it would take longer :) |
16:51:36 | dom96 | I would do it now but I've got a test tomorrow and a University assignment to code unfortunately |
16:54:24 | * | gokr joined #nim |
17:08:07 | * | gokr quit (Ping timeout: 260 seconds) |
17:16:05 | * | yglukhov joined #nim |
17:39:57 | * | silven quit (Ping timeout: 244 seconds) |
17:40:43 | * | silven joined #nim |
17:49:30 | * | Guest54448 is now known as Vivek |
17:49:34 | * | Vivek quit (Changing host) |
17:49:34 | * | Vivek joined #nim |
17:53:25 | * | yglukhov quit (Remote host closed the connection) |
17:58:23 | * | yglukhov joined #nim |
18:10:08 | * | rektide joined #nim |
18:25:52 | * | Deavmi_mobile quit (Read error: No route to host) |
18:25:54 | * | deavmi_mobile2 quit (Read error: No route to host) |
18:26:08 | * | Deavmi_mobile joined #nim |
18:27:17 | * | deavmi_mobile2 joined #nim |
18:48:28 | deavmi_mobile2 | dom69: good luck with thee assessment :) hope you do excellent! |
18:50:53 | dom96 | deavmi_mobile2: thanks :) |
18:51:36 | * | pregressive quit (Remote host closed the connection) |
18:52:13 | * | pregressive joined #nim |
18:56:33 | * | pregressive quit (Ping timeout: 240 seconds) |
18:57:16 | * | deavmi_mobile2 quit (Read error: Connection reset by peer) |
18:57:16 | * | Deavmi_mobile quit (Read error: Connection reset by peer) |
18:59:48 | * | deavmi_mobile joined #nim |
18:59:54 | * | Deavmi_m1bile joined #nim |
19:00:27 | * | brson quit (Read error: Connection reset by peer) |
19:06:17 | * | desophos quit (Remote host closed the connection) |
19:14:11 | * | brson joined #nim |
19:14:17 | * | nsf joined #nim |
19:19:50 | * | Arrrr quit (Quit: WeeChat 1.4) |
19:22:17 | * | Deavmi_m2bile joined #nim |
19:25:00 | * | Deavmi_m1bile quit (Ping timeout: 250 seconds) |
19:25:44 | * | deavmi_mobile quit (Ping timeout: 276 seconds) |
19:26:28 | * | deavmi_mobile joined #nim |
19:36:34 | * | yglukhov quit (Remote host closed the connection) |
19:40:28 | * | brson quit (Ping timeout: 252 seconds) |
19:42:30 | * | gokr joined #nim |
19:44:46 | * | pregressive joined #nim |
19:52:14 | * | Ven joined #nim |
19:54:55 | * | yglukhov joined #nim |
19:56:45 | * | brson joined #nim |
20:01:18 | gokr | dom96: IMHO gitter is more fitting for open source projects. We messed with setting up a slack channel for Evothings, but ... then we just switched to gitter and didn't look back. |
20:02:42 | gokr | The gitter desktop app (built with node webkit, almost the same as electron) is quite ok. We are moving our IDE from node webkit to electron btw. |
20:06:53 | * | desophos joined #nim |
20:08:50 | * | Ven quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
20:11:45 | * | desophos quit (Ping timeout: 246 seconds) |
20:14:29 | * | desophos joined #nim |
20:15:26 | * | vendethiel joined #nim |
20:18:28 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
20:18:48 | * | novavis joined #nim |
20:20:13 | * | enthus1ast joined #nim |
20:24:05 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
20:25:15 | * | novavis joined #nim |
20:32:27 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
20:34:26 | * | novavis joined #nim |
20:35:44 | * | novavis quit (Client Quit) |
20:36:37 | * | novavis joined #nim |
21:10:19 | * | Demon_Fox joined #nim |
21:17:13 | * | elrood quit (Quit: Leaving) |
21:27:13 | * | novavis quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
21:30:01 | * | brson quit (Read error: Connection reset by peer) |
21:35:18 | * | brson joined #nim |
21:53:56 | * | onionhammer quit (Quit: WeeChat 1.0.1) |
21:56:42 | * | dmi0 joined #nim |
22:01:26 | * | onionhammer joined #nim |
22:02:03 | * | castlelore quit (Quit: WeeChat 1.4) |
22:03:12 | * | castlelore joined #nim |
22:04:03 | * | rinukkusu quit (Ping timeout: 240 seconds) |
22:04:22 | * | castlelore quit (Client Quit) |
22:04:46 | * | PMunch joined #nim |
22:05:01 | * | castlelore joined #nim |
22:05:07 | * | kier quit (Ping timeout: 252 seconds) |
22:05:25 | * | kier joined #nim |
22:07:53 | * | vendethiel quit (Ping timeout: 250 seconds) |
22:07:57 | * | rinukkusu joined #nim |
22:08:00 | * | Matthias247 joined #nim |
22:08:03 | * | heinrich5991 quit (Ping timeout: 276 seconds) |
22:10:07 | * | deavmi_mobile quit (Read error: Connection reset by peer) |
22:10:07 | * | Deavmi_m2bile quit (Read error: Connection reset by peer) |
22:11:04 | * | Deavmi_mobile joined #nim |
22:13:30 | * | vendethiel joined #nim |
22:16:10 | * | Matthias247 quit (Read error: Connection reset by peer) |
22:20:26 | * | heinrich5991 joined #nim |
22:35:11 | * | vendethiel quit (Ping timeout: 250 seconds) |
22:36:31 | * | gokr quit (Ping timeout: 244 seconds) |
22:37:37 | * | gokr joined #nim |
22:40:37 | * | pregress_ joined #nim |
22:43:51 | * | pregressive quit (Ping timeout: 250 seconds) |
22:45:45 | libman | Anyone try Nim in WebAssembly yet? |
22:46:27 | * | derka joined #nim |
22:46:44 | libman | Electron.JS would support it eventually, so I guess it's a GUI option for Nim... 3:) |
22:46:53 | * | dmi0 quit (Quit: Leaving) |
22:47:49 | * | dmi0 joined #nim |
22:48:20 | * | dmi0 quit (Client Quit) |
22:53:00 | * | derka quit (Ping timeout: 250 seconds) |
22:58:34 | * | Matthias247 joined #nim |
23:00:51 | * | derka joined #nim |
23:03:46 | * | yglukhov_ joined #nim |
23:06:06 | * | derka_ joined #nim |
23:06:17 | * | yglukhov quit (Ping timeout: 260 seconds) |
23:06:23 | * | derka quit (Ping timeout: 268 seconds) |
23:06:23 | * | derka_ is now known as derka |
23:13:41 | Araq_ | libman: I'm developing something but don't like to say more for now. |
23:14:08 | * | Jesin quit (Quit: Leaving) |
23:14:18 | * | libman braces himself. |
23:15:14 | libman | It could be anything! nimBook? nimPhone? I'm gonna short Apple now just in case. |
23:16:40 | * | Jesin joined #nim |
23:19:38 | * | brson quit (Read error: Connection reset by peer) |
23:19:57 | * | brson joined #nim |
23:20:41 | * | brson quit (Client Quit) |
23:21:57 | * | brson joined #nim |
23:22:51 | * | derka quit (Quit: derka) |
23:25:55 | * | onionhammer quit (Quit: WeeChat 1.0.1) |
23:29:14 | Araq_ | lol |
23:31:19 | * | Matthias247 quit (Read error: Connection reset by peer) |
23:47:29 | * | derka joined #nim |
23:49:21 | * | onionhammer joined #nim |
23:58:11 | * | derka quit (Quit: derka) |
23:59:58 | * | yglukhov_ quit (Remote host closed the connection) |