00:02:30 | * | gokr quit (Ping timeout: 248 seconds) |
00:11:06 | * | nsf quit (Quit: WeeChat 1.6) |
00:25:34 | * | chemist69 quit (Ping timeout: 258 seconds) |
00:28:03 | * | chemist69 joined #nim |
00:32:21 | * | devted quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
00:46:56 | * | vlad1777d quit (Quit: Leaving) |
01:19:20 | * | yglukhov joined #nim |
01:23:31 | * | yglukhov quit (Ping timeout: 245 seconds) |
01:32:05 | * | def-pri-pub quit (Read error: Connection reset by peer) |
01:36:45 | * | def-pri-pub joined #nim |
02:05:14 | * | ftsf quit (Ping timeout: 258 seconds) |
02:05:31 | * | ftsf joined #nim |
02:11:01 | * | chemist69 quit (Ping timeout: 245 seconds) |
02:16:40 | * | brson quit (Quit: leaving) |
02:22:35 | * | devted joined #nim |
02:31:36 | * | chemist69 joined #nim |
03:05:24 | * | ludocode quit (*.net *.split) |
03:05:24 | * | CcxWrk quit (*.net *.split) |
03:05:24 | * | JStoker quit (*.net *.split) |
03:05:25 | * | RushPL quit (*.net *.split) |
03:05:25 | * | jonafato- quit (*.net *.split) |
03:05:25 | * | Amrykid quit (*.net *.split) |
03:05:32 | * | jonafato joined #nim |
03:05:37 | * | ludocode joined #nim |
03:05:46 | * | Amrykid joined #nim |
03:06:01 | * | JStoker joined #nim |
03:06:03 | * | JStoker quit (Changing host) |
03:06:03 | * | JStoker joined #nim |
03:07:30 | * | CcxWrk joined #nim |
03:21:06 | * | yglukhov joined #nim |
03:26:00 | * | yglukhov quit (Ping timeout: 272 seconds) |
03:30:00 | * | vasher_ quit (Quit: Connection closed for inactivity) |
03:57:02 | * | pafmaf quit (Ping timeout: 264 seconds) |
03:57:23 | * | pafmaf joined #nim |
04:04:14 | * | pafmaf quit (Ping timeout: 264 seconds) |
04:05:23 | * | pafmaf joined #nim |
04:13:50 | * | pafmaf quit (Ping timeout: 264 seconds) |
04:14:23 | * | pafmaf joined #nim |
04:41:30 | * | devted quit (Quit: Sleeping.) |
05:22:59 | * | yglukhov joined #nim |
05:27:32 | * | yglukhov quit (Ping timeout: 255 seconds) |
05:28:56 | * | space-wizard quit (Quit: My MacBook has gone to sleep. ZZZzzz…) |
05:33:07 | * | def-pri-pub quit (Quit: leaving) |
05:38:13 | * | krux02 quit (Remote host closed the connection) |
06:13:35 | * | Snircle quit (Quit: Textual IRC Client: www.textualapp.com) |
06:15:22 | * | NimBot joined #nim |
06:16:03 | * | NimBot joined #nim |
06:16:18 | * | NimBot joined #nim |
06:21:53 | * | nsf joined #nim |
06:25:16 | * | bjz joined #nim |
06:38:40 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
06:42:16 | * | chemist69 quit (Ping timeout: 245 seconds) |
06:44:54 | * | chemist69 joined #nim |
07:11:55 | * | bjz joined #nim |
07:12:48 | * | yglukhov joined #nim |
07:15:47 | * | ftsf quit (Quit: :q!) |
07:17:11 | * | yglukhov quit (Ping timeout: 246 seconds) |
07:41:10 | * | rokups joined #nim |
07:44:00 | * | Vladar joined #nim |
08:25:20 | * | Andris_zbx joined #nim |
08:25:25 | * | jinshil quit (Quit: Good-bye!) |
08:29:08 | * | yglukhov joined #nim |
08:29:08 | * | yglukhov quit (Remote host closed the connection) |
08:31:10 | * | yglukhov joined #nim |
08:54:37 | * | odc joined #nim |
09:03:48 | * | vlad1777d joined #nim |
09:44:17 | * | chemist69 quit (Quit: WeeChat 1.6) |
09:44:38 | * | chemist69 joined #nim |
09:45:39 | * | chemist69 quit (Client Quit) |
09:45:57 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
09:46:44 | * | subsetpark quit (Quit: Connection closed for inactivity) |
09:53:26 | * | chemist69 joined #nim |
09:57:19 | * | mjanssen joined #nim |
10:30:46 | * | subsetpark joined #nim |
10:52:42 | * | jinshil joined #nim |
11:02:11 | * | bjz joined #nim |
11:09:06 | * | Arrrr joined #nim |
11:10:42 | * | arnetheduck quit (Remote host closed the connection) |
11:11:39 | * | bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
11:13:42 | * | gokr joined #nim |
11:17:42 | dom96 | cheatfate: your nickname has been changed, and the forum should be faster now |
11:19:17 | * | bjz joined #nim |
11:22:45 | cheatfate | dom96, thanks |
11:55:47 | * | bodie_ quit (*.net *.split) |
11:55:48 | * | beatmox quit (*.net *.split) |
11:55:48 | * | dom96 quit (*.net *.split) |
11:55:48 | * | ldlework quit (*.net *.split) |
11:55:54 | * | ldleworker joined #nim |
11:56:08 | * | beatmox joined #nim |
11:56:59 | * | bodie_ joined #nim |
11:57:14 | * | dom96 joined #nim |
12:04:43 | * | Snircle joined #nim |
12:06:33 | Arrrr | Really fast, what changed to be faster now? |
12:07:40 | dom96 | Araq optimised the database |
12:07:47 | dom96 | https://github.com/nim-lang/nimforum/commit/e65168db55a91874abecefc5abb76aaa4a68e365 |
12:17:17 | Arrrr | It pays off |
12:30:25 | * | bjz_ joined #nim |
12:31:27 | * | bjz quit (Ping timeout: 256 seconds) |
12:34:27 | * | corecode_ is now known as corecode |
13:29:47 | * | Arrrr quit (Quit: WeeChat 1.5) |
14:00:49 | * | bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
14:04:58 | * | jinshil quit (Quit: client terminated!) |
14:27:31 | hohlerde | "faster" is an underestimation |
14:54:42 | tstm | Yeah, database indices are a thing. |
15:06:31 | * | yglukhov_ joined #nim |
15:08:00 | * | devted joined #nim |
15:09:32 | * | yglukhov quit (Ping timeout: 256 seconds) |
15:10:46 | * | yglukhov_ quit (Ping timeout: 248 seconds) |
15:13:27 | * | Matthias247 joined #nim |
15:20:32 | * | NimBot joined #nim |
15:22:54 | * | yglukhov quit (Ping timeout: 258 seconds) |
15:24:41 | * | flyx quit (Excess Flood) |
15:25:12 | * | flyx|znc joined #nim |
15:25:30 | * | flyx|znc is now known as flyx |
15:28:32 | * | krux02 quit (Quit: Leaving) |
15:31:06 | * | gangstacat_ quit (Quit: Ĝis) |
15:35:36 | Araq | federico3: what would you use instead? |
15:37:20 | * | gangstacat joined #nim |
15:39:03 | federico3 | Araq: it really depends on the use-case. Are you talking about the forum or in general? |
15:39:13 | Araq | the forum. |
15:39:15 | * | Matthias247 quit (Read error: Connection reset by peer) |
15:42:36 | federico3 | I don't have metrics from the forum at hand, but often for a simple single-host, single-threaded application with a very small dataset and a simple access pattern (i.e. 99% of the queries are listing contents by thread/page) one option is to keep the dataset in memory serialize it atomically to disk when there's a change |
15:47:28 | Araq | even the "really put this dat on hard disk, it's crucial" step is non trivial. |
15:48:21 | Araq | *data |
15:48:23 | euantor | if you want to keep it in memory, you might as well choose something purpose written to be fault tolerant such as redis |
15:48:41 | euantor | but a DB is a better choice for forum data in my opinion |
15:48:51 | federico3 | Araq: you mean doing sync() reliably? |
15:48:56 | Araq | yes. |
15:49:17 | Araq | sqlite's implementation for this is not trivial iirc |
15:49:47 | federico3 | and along that line, the idea that memory is "volatile" and data on disk is "persistent" is an oversemplification |
15:50:18 | Araq | not too mention that the serialization format will likely be json or worse. |
15:52:10 | * | yglukhov joined #nim |
15:53:38 | federico3 | euantor: we are talking single-host here :) |
15:55:38 | euantor | federico3: For now we are - Nim might have millions of users this time next year ;) |
15:56:13 | * | yglukhov quit (Ping timeout: 240 seconds) |
15:56:17 | euantor | And then you don't want to be running a forum for all of those on one host with a hand rolled in memory store with very little testing |
16:02:31 | * | yglukhov joined #nim |
16:02:37 | * | couven92 joined #nim |
16:05:58 | * | Salewski joined #nim |
16:08:14 | Salewski | Araq, inside module tables.nim you do not define your own index operator [] for the table, but you write hundreds of times somethink like |
16:08:19 | Salewski | if isFilled(t.data[h].hcode): yield (t.data[h].key, t.data[h].val) |
16:08:33 | Salewski | Is that for performance reasons? |
16:08:52 | Araq | nah, I'm still learning Nim. |
16:10:09 | Salewski | So you suggest that I shall define [] for my robin hood hash, for internal use also? No performance decrease for inline proc? |
16:10:58 | Araq | these days I might write something like template `!`*(field: untyped): untyped {.dirty.} = t.data[h].field |
16:11:18 | Araq | if isFilled(!hcode): yield (!key, !val) |
16:12:14 | Salewski | And you used template maxHash(t): untyped = high(t.data) |
16:12:28 | Araq | that's for a different reason. |
16:12:29 | Salewski | Would we use a inline proc for that now? |
16:14:14 | Araq | my rule of thumb is: internal use, use a template, external use, use a proc. |
16:15:54 | Araq | and often you can shorten the code further with templates like I tried to show you with my '!' example |
16:16:13 | Salewski | That is a bit different from stated elsewhere -- I think in manual we have: use proc when possible, then template, and finally macro |
16:17:02 | * | yglukhov quit (Remote host closed the connection) |
16:17:08 | Salewski | For me templates looks a bit unsecure like C macros still... |
16:17:35 | * | yglukhov joined #nim |
16:18:36 | Salewski | Bye -- will try to understand your template example from above, thanks. |
16:21:53 | * | yglukhov quit (Ping timeout: 240 seconds) |
16:22:36 | * | couven92 quit (Quit: Client disconnecting) |
16:30:06 | * | arnetheduck joined #nim |
16:33:30 | Salewski | I still would need a hint for the xxhash: http://forum.nim-lang.org/t/2695 # should I try to avoid using the header pragma, because it would not work with LLVM? |
16:33:49 | Araq | oh yeah, wanted to reply |
16:34:09 | Salewski | Would be fine, thanks. |
16:34:28 | Araq | in a nutshell, don't use .header and the LLVM backend works with it |
16:34:55 | Araq | instead of .importc, header ensure the data layouts actually match |
16:35:22 | Araq | and for procs, use importc, but not .nodecl and not .header |
16:37:21 | Salewski | OK, bye. |
16:37:24 | * | Salewski left #nim (#nim) |
16:44:09 | * | odc quit () |
17:07:17 | * | couven92 joined #nim |
17:11:40 | * | space-wizard joined #nim |
17:20:35 | * | devted quit (Read error: Connection reset by peer) |
17:35:15 | * | pregressive joined #nim |
17:48:34 | * | devted joined #nim |
18:16:44 | * | def-pri-pub joined #nim |
18:23:38 | * | brson joined #nim |
18:25:35 | * | Andris_zbx quit (Remote host closed the connection) |
18:58:54 | * | byte512 quit (Ping timeout: 272 seconds) |
18:59:00 | * | LiberalSquash joined #nim |
18:59:04 | * | LiberalSquash left #nim (#nim) |
19:18:54 | * | yglukhov joined #nim |
19:24:34 | * | yglukhov quit (Remote host closed the connection) |
19:34:47 | * | dddddd joined #nim |
19:37:13 | * | yglukhov joined #nim |
19:40:21 | * | vasher_ joined #nim |
19:45:20 | * | Trustable joined #nim |
19:53:46 | * | yglukhov quit (Remote host closed the connection) |
19:54:33 | * | yglukhov joined #nim |
20:01:08 | * | Jesin quit (Quit: Leaving) |
20:02:30 | * | brson quit (Ping timeout: 256 seconds) |
20:07:32 | * | vlad1777d quit (Quit: Leaving) |
20:10:37 | * | Vladar quit (Quit: Leaving) |
20:11:04 | * | Gilga joined #nim |
20:39:01 | * | Jesin joined #nim |
20:41:36 | * | Mat4 joined #nim |
20:50:06 | * | yglukhov quit (Remote host closed the connection) |
20:51:04 | * | bjz_ joined #nim |
20:56:36 | * | Trustable quit (Remote host closed the connection) |
20:56:45 | * | subsetpark quit (Quit: Connection closed for inactivity) |
21:01:32 | * | brson joined #nim |
21:02:01 | * | rokups quit (Quit: Connection closed for inactivity) |
21:03:00 | * | yglukhov joined #nim |
21:04:51 | * | couven92 quit (Quit: Client disconnecting) |
21:07:13 | * | yglukhov quit (Ping timeout: 240 seconds) |
21:24:15 | * | yglukhov joined #nim |
21:25:14 | * | Gilga quit (Ping timeout: 246 seconds) |
21:28:55 | * | bjz_ quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) |
21:31:22 | * | Mat4 left #nim ("Leaving") |
21:33:00 | dom96 | Nimble 0.8.0 is out https://github.com/nim-lang/nimble/blob/master/changelog.markdown#080---05012017 |
21:33:57 | FromGitter | <martinium> @dom96 Good work |
21:35:31 | dom96 | thanks :) |
21:36:13 | FromGitter | <rivasiv> congratulations :) |
21:54:11 | * | Matthias247 joined #nim |
21:59:06 | * | MajorKong joined #nim |
21:59:33 | * | MajorKong left #nim ("WeeChat 1.6") |
22:05:19 | euantor | Nice one :) |
22:18:47 | * | gokr quit (Ping timeout: 246 seconds) |
22:19:27 | * | bjz joined #nim |
22:20:24 | * | bjz quit (Client Quit) |
22:43:48 | def-pri-pub | How does one update nimble? |
22:49:56 | euantor | I think you can do it via nimble? `nimble update nimble` might do the trick? |
22:50:56 | dom96 | unfortunately it may not be so easy |
22:51:17 | dom96 | it depends how you installed Nimble and what version of Nim you have |
22:51:34 | euantor | Nope, didn't work for me, but I'm not sure I have the nimble bin directory in my path |
22:51:35 | dom96 | also, it would be `nimble install nimble` |
22:51:46 | euantor | Yeah, I just ran that myself |
22:55:30 | def-pri-pub | I installed nimble from the Nim git repo |
23:00:10 | * | 07EAAAAGG quit (Quit: -) |
23:09:23 | * | confundus joined #nim |
23:12:37 | dom96 | What library do you guys recommend for cmd line parsing? |
23:14:34 | * | pregressive quit (Remote host closed the connection) |
23:15:10 | * | pregressive joined #nim |
23:17:12 | dom96 | I guess docopt it is |
23:19:50 | * | pregressive quit (Ping timeout: 248 seconds) |
23:20:24 | * | confundus quit (Quit: leaving) |
23:34:00 | Araq | parseopt, the one and only |
23:34:54 | Araq | the only library that understood you don't need much when you have a string case statement in the language :P |
23:35:37 | * | yglukhov quit (Remote host closed the connection) |
23:39:01 | * | devted quit (Ping timeout: 248 seconds) |
23:41:49 | * | nsf quit (Quit: WeeChat 1.6) |
23:44:17 | * | jinshil joined #nim |