00:07:54 | * | gokr quit (Ping timeout: 276 seconds) |
00:16:19 | Varriount_ | federico3: Used a linked list possibly? Or create a ring buffer implementation. |
00:21:54 | cheatfate | Varriount_, linked lists producing leaks in current GC |
01:09:17 | * | alexsystemf_ quit (Quit: Connection closed for inactivity) |
01:21:27 | * | thotypous quit (Ping timeout: 264 seconds) |
01:24:02 | * | thotypous joined #nim |
01:29:28 | * | thotypous quit (Ping timeout: 252 seconds) |
01:30:51 | * | vendethiel joined #nim |
01:33:46 | * | piluex joined #nim |
01:34:46 | * | piluex left #nim (#nim) |
01:34:51 | * | piluex joined #nim |
01:34:55 | * | piluex left #nim (#nim) |
01:38:44 | * | thotypous joined #nim |
01:50:42 | * | brson_ quit (Quit: leaving) |
01:52:49 | * | thotypous quit (Ping timeout: 268 seconds) |
01:55:03 | * | vendethiel quit (Ping timeout: 264 seconds) |
01:56:08 | * | brson joined #nim |
01:58:04 | * | PMunch quit (Ping timeout: 252 seconds) |
02:03:30 | * | brson quit (Quit: leaving) |
02:12:27 | * | brson joined #nim |
02:26:08 | * | kingofoz quit (Ping timeout: 252 seconds) |
02:26:08 | * | chrisheller quit (Ping timeout: 252 seconds) |
02:27:23 | * | kingofoz joined #nim |
02:37:27 | * | ephja quit (Ping timeout: 260 seconds) |
02:51:00 | * | thotypous joined #nim |
02:52:44 | * | Jesin quit (Quit: Leaving) |
03:03:24 | * | darkf quit (Ping timeout: 276 seconds) |
03:05:09 | * | enthus1ast quit (Quit: Leaving.) |
03:12:12 | * | brson quit (Quit: leaving) |
03:12:17 | * | darkf joined #nim |
03:12:22 | * | thotypous quit (Ping timeout: 268 seconds) |
03:22:18 | * | chrisheller joined #nim |
03:25:27 | * | DecoPerson__ joined #nim |
03:30:12 | * | jck__ joined #nim |
03:32:34 | * | kingofoz quit (*.net *.split) |
03:32:37 | * | DecoPerson_ quit (*.net *.split) |
03:32:39 | * | jck quit (*.net *.split) |
03:32:40 | * | M-Quora1 quit (*.net *.split) |
03:32:41 | * | DecoPerson__ is now known as DecoPerson_ |
03:33:08 | * | M-Quora joined #nim |
03:33:48 | * | kingofoz joined #nim |
03:36:57 | * | bbl quit (Ping timeout: 260 seconds) |
03:37:12 | * | zama quit (Ping timeout: 276 seconds) |
03:38:27 | * | zama joined #nim |
03:52:38 | * | thotypous joined #nim |
03:54:49 | * | bbl joined #nim |
04:01:35 | * | endragor joined #nim |
04:52:47 | * | izi quit (Ping timeout: 260 seconds) |
04:53:33 | * | space-wizard quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
04:53:57 | * | izi joined #nim |
04:55:53 | * | space-wizard joined #nim |
05:20:42 | * | gokr joined #nim |
05:20:52 | * | space-wizard quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
05:22:18 | * | space-wizard joined #nim |
05:22:53 | * | space-wizard quit (Max SendQ exceeded) |
05:23:32 | * | space-wizard joined #nim |
05:25:19 | * | desophos_ joined #nim |
05:25:30 | * | pregressive joined #nim |
05:25:32 | * | endragor_ joined #nim |
05:26:16 | * | vqrs quit (Ping timeout: 264 seconds) |
05:28:04 | * | endragor quit (Ping timeout: 264 seconds) |
05:28:04 | * | thotypous quit (Ping timeout: 264 seconds) |
05:28:04 | * | zama quit (Ping timeout: 264 seconds) |
05:28:06 | * | Demon_Fox quit (Ping timeout: 264 seconds) |
05:28:07 | * | pregress_ quit (Ping timeout: 264 seconds) |
05:28:38 | * | thotypous joined #nim |
05:28:40 | * | bbl quit (Ping timeout: 264 seconds) |
05:28:40 | * | desophos quit (Ping timeout: 264 seconds) |
05:29:52 | * | zama joined #nim |
05:32:57 | * | vqrs joined #nim |
05:39:52 | * | Demon_Fox joined #nim |
05:40:37 | * | bbl joined #nim |
05:41:59 | * | McSpiros joined #nim |
05:47:12 | * | thotypous quit (Ping timeout: 276 seconds) |
06:01:33 | * | gokr quit (Ping timeout: 244 seconds) |
06:15:10 | * | thotypous joined #nim |
06:15:31 | * | space-wizard quit (Quit: My Mac has gone to sleep. ZZZzzz…) |
06:19:53 | * | vendethiel joined #nim |
06:20:58 | * | endragor joined #nim |
06:24:15 | * | endragor_ quit (Ping timeout: 276 seconds) |
06:30:09 | * | endragor quit (Remote host closed the connection) |
06:30:37 | * | endragor joined #nim |
06:42:53 | * | silven quit (Ping timeout: 244 seconds) |
06:44:04 | * | vendethiel quit (Ping timeout: 250 seconds) |
06:54:42 | * | endragor quit (Read error: Connection reset by peer) |
06:56:55 | * | yglukhov joined #nim |
07:02:13 | * | yglukhov quit (Ping timeout: 252 seconds) |
07:04:05 | * | bbl quit (*.net *.split) |
07:04:05 | * | vqrs quit (*.net *.split) |
07:04:06 | * | izi quit (*.net *.split) |
07:04:15 | * | vqrs_ joined #nim |
07:10:11 | * | gokr joined #nim |
07:10:35 | * | bbl joined #nim |
07:16:48 | * | izi joined #nim |
07:32:57 | * | vendethiel joined #nim |
07:49:01 | * | yglukhov joined #nim |
07:52:21 | * | Trustable joined #nim |
07:54:36 | * | thotypous quit (Ping timeout: 276 seconds) |
08:06:34 | * | chrisheller quit (Ping timeout: 252 seconds) |
08:08:04 | * | dorei joined #nim |
08:09:00 | * | kier quit (Ping timeout: 250 seconds) |
08:09:07 | * | kier joined #nim |
08:11:36 | * | _stowa quit (Ping timeout: 250 seconds) |
08:14:20 | * | _stowa joined #nim |
08:14:24 | * | ics quit (Quit: Connection closed for inactivity) |
08:17:26 | * | vendethiel quit (Ping timeout: 244 seconds) |
08:21:34 | * | nsf quit (Ping timeout: 250 seconds) |
08:22:59 | * | nsf joined #nim |
08:31:32 | * | vqrs_ quit (Ping timeout: 250 seconds) |
08:32:50 | * | wuehlmaus quit (Ping timeout: 250 seconds) |
08:34:05 | * | vqrs joined #nim |
08:34:09 | * | chrisheller joined #nim |
08:38:09 | * | wuehlmaus joined #nim |
08:38:32 | * | wuehlmaus is now known as Guest67019 |
08:39:20 | * | vqrs quit (Ping timeout: 250 seconds) |
08:47:28 | * | vqrs joined #nim |
08:49:52 | * | Demon_Fox quit (Quit: Leaving) |
08:56:21 | vegansk | yglukhov, hi! |
08:57:04 | * | coffeepot joined #nim |
08:58:33 | vegansk | yglukhov, I can't import methods that returns arrays using jnim. Is it unsupported or am I doing something wrong? |
09:11:47 | yglukhov | vegansk: hey |
09:11:52 | yglukhov | let me take a look... |
09:16:52 | * | desophos_ quit (Read error: Connection reset by peer) |
09:16:53 | yglukhov | yup. not supported. but should be pretty easy to do. jnim.nim:575 and jnim.nim:599: "elif T is seq:" and then convert jobject to seq. |
09:17:41 | * | vendethiel joined #nim |
09:17:46 | yglukhov | vegask, i could do it if you're not into it. but a bit later. |
09:18:01 | vegansk | Ok, I'll try to do it |
09:18:34 | yglukhov | kk thanks |
09:23:05 | * | alexsystemf_ joined #nim |
09:35:16 | * | alexsystemf_ quit (*.net *.split) |
09:36:12 | coffeepot | hey dom96, you about? |
09:36:23 | coffeepot | got an error updating to the latest nimble |
09:36:42 | coffeepot | at line 970 "undeclared identified '--'" |
09:37:02 | coffeepot | line 970 being "--path:"$lib/packages/docutils"" |
09:37:18 | coffeepot | any ideas? |
09:40:33 | * | vendethiel quit (Ping timeout: 276 seconds) |
09:44:11 | * | alexsystemf_ joined #nim |
09:46:10 | coffeepot | er, ignore the above... I don't know how those lines got into nimble.nim source... just deleted and re-gitted and everything's ok now. Odd, I literally did the same thing twice and it was fine second time *scratches head* |
09:51:10 | * | vendethiel joined #nim |
10:03:29 | * | arnetheduck joined #nim |
10:08:04 | * | filcuc joined #nim |
10:12:09 | Varriount_ | Araq_: Have you ever given thought to using copy-on-write memory mapped files for really long strings and/or sequences? |
10:14:48 | * | thotypous joined #nim |
10:14:51 | * | vendethiel quit (Ping timeout: 264 seconds) |
10:14:53 | * | ephja joined #nim |
10:15:20 | * | arnetheduck quit (Quit: Leaving) |
10:19:23 | * | arnetheduck joined #nim |
10:25:42 | vegansk | yglukhov, do you mind if I migrate test hello_world.nim to unittest? |
10:29:58 | arnetheduck | hey Araq_, any chance you can have a look at https://github.com/nim-lang/Nim/pull/4002? |
10:47:58 | * | IcyFoxy joined #nim |
10:49:05 | yglukhov | vegansk, sure why not |
10:49:30 | IcyFoxy | Hello world. Was reading some nim code and stumbled accross 'block: ..' and wondering if this is a one-shot loop like 'let i = 1; while (i--)' or a label after the block, where the 'break' is goto that label? |
10:49:43 | IcyFoxy | (Or some other magic) |
10:53:43 | * | PMunch joined #nim |
10:54:42 | ephja | it also introduces a new scope (think {...} in C) |
10:55:15 | ephja | as does if, while, for etc but which have more "features" |
10:55:25 | IcyFoxy | Yea |
10:55:32 | IcyFoxy | BTW: I'm more familiar with Rust than C. :P |
10:55:49 | ephja | pretty much the same there IIRC |
10:55:55 | IcyFoxy | Indeed. |
10:56:35 | IcyFoxy | Just curious as to how the block statement is implemented here. The one-shot loop would work, and so would a { .. goto label .. } label |
10:58:40 | * | tstm quit (Ping timeout: 264 seconds) |
10:59:42 | * | IcyFoxy is reading through some nim code and is happy with the language and may actually use it some day. :) |
10:59:56 | ephja | I'm not sure what goto has to do with it |
11:00:36 | IcyFoxy | skip ahead, exit the loops, etc. |
11:00:45 | IcyFoxy | block x: break x; |
11:01:06 | IcyFoxy | if that had code after the break, it'll be skipped as the break ends the runtime of the block. |
11:01:38 | ephja | right |
11:01:39 | * | tstm joined #nim |
11:02:27 | ephja | you can't have code after it (in the same block) |
11:02:28 | IcyFoxy | My guess for the one-shot loop is so the break keyword doesn't need to be overloaded, while if it is; then the goto method could be used. |
11:02:47 | * | elrood joined #nim |
11:02:49 | coffeepot | IcyFoxy, in case you haven't seen the offical docs: http://nim-lang.org/docs/manual.html#statements-and-expressions-block-statement |
11:02:49 | ephja | so it mostly makes sense to do it conditionally "if condition: break x" |
11:02:51 | IcyFoxy | You can if the break is conditionally accessed through an if, maybe in a loop looking for something. |
11:02:57 | IcyFoxy | coffeepot: I found that, but not the source. |
11:03:03 | coffeepot | ah ok :) |
11:03:16 | IcyFoxy | coffeepot: Thanks anyway. |
11:03:49 | IcyFoxy | going by the syntax. I guess it is a template in the one-shot loop case, or a macro if overloading the break. |
11:03:52 | coffeepot | np! |
11:04:05 | IcyFoxy | Or builtin |
11:04:55 | ephja | builtin yes, but I wonder if it could be replaced with a template |
11:05:17 | IcyFoxy | Depends how builtin, and to what C it actually compiles to. |
11:05:36 | ephja | {...} I think, but I'll check the generated C code |
11:05:51 | IcyFoxy | Check block: x; break x; |
11:08:06 | ephja | { goto LA1; } LA1: ; |
11:08:24 | IcyFoxy | So it is the goto method :P |
11:08:28 | IcyFoxy | Thanks ephja |
11:09:05 | IcyFoxy | (BTW. was moments away from finding myself. nix-shell -p nim; figured out nim and now looking at source) |
11:09:08 | IcyFoxy | :) |
11:09:12 | ephja | np.. human? |
11:09:35 | ephja | you never know. bots are really clever these days |
11:09:41 | ephja | yeah it's easy to check |
11:09:45 | * | IcyFoxy is a fox. Neither :P |
11:10:04 | ephja | --opt:none -d:release helps |
11:10:14 | IcyFoxy | Thanks |
11:11:29 | IcyFoxy | Why so much boilerplate for nim? |
11:11:37 | IcyFoxy | Or maybe little in contrast for generated. :P |
11:14:03 | ephja | code can be made to be very general |
11:14:22 | * | vendethiel joined #nim |
11:14:54 | IcyFoxy | Sure. |
11:15:29 | IcyFoxy | Also.. If you disable the GC. Does this mean that memory leaks or does everything get freed at teh end of scopes or... what's happening here? |
11:15:39 | * | IcyFoxy now used to rust's lifetimes ^ |
11:22:54 | ephja | I think collections will be postponed until the GC is enabled again |
11:23:45 | IcyFoxy | I mean, there is an option to not include the gc. |
11:23:53 | IcyFoxy | What happens when it is not even included? |
11:24:10 | ephja | so the GC heap is suitable for pre-allocations too |
11:24:57 | IcyFoxy | Again. What happens when the GC isn't even used? |
11:25:33 | IcyFoxy | Just fills ram, and allocates more? |
11:29:20 | ephja | I think so |
11:29:27 | IcyFoxy | Ouch |
11:31:05 | ephja | you can still do manual memory management |
11:31:29 | IcyFoxy | Sure. But I'm used to having rustc yell at me for lifetimes ;) |
11:32:06 | IcyFoxy | Or rather, it's beaten those errors mostly out of me. Luckily. |
11:32:13 | IcyFoxy | :D |
11:36:23 | ephja | fortunately there's no need to disable the GC in the majority of cases |
11:36:23 | * | enthus1ast joined #nim |
11:37:00 | ephja | but destructors (experimental)and overloading of `=` might help in such cases |
11:37:04 | IcyFoxy | ephja: It is nicer to have more predictable code. |
11:37:15 | IcyFoxy | time wise |
11:38:41 | IcyFoxy | Dead link. http://nim-lang.org/docs/manual.html#limitations-of-the-method-call-syntax |
11:38:55 | IcyFoxy | "See also: Limitations of the method call syntax." in #procedures-method-call-syntax |
11:44:39 | ephja | in what sense? GCs can sometimes outperform manual memory management IIRC |
11:44:42 | IcyFoxy | Is there any way to see if any nim packages depend on a library? |
11:45:04 | ephja | but if you want any guarantees regarding the order of destruction, then you really should use the aforementioned constructs in conjunction with stack allocation |
11:45:57 | IcyFoxy | ephja: Sure. And I'm not sure about GC research. I do know however that it was removed from Rust because of otherwise 'unnecessary overheads' (still an available external crate) |
11:46:20 | IcyFoxy | s/not sure about/not experienced with/ |
11:47:00 | IcyFoxy | Re my question about nimble / packages. Specifically looking for nim examples using the lmdb bindings. Cannot immediately find any such samples. |
11:48:18 | ephja | IcyFoxy: the most obvious way would be to look at the nimble file |
11:48:30 | ephja | "nimble dump" does require a local nimble file |
11:51:01 | IcyFoxy | Huh? That is just information about the package. I'm after anything that either depends on the lmdb package or any examples that use it. |
11:51:22 | IcyFoxy | If I have *every* nimble file, maybe I could solve the first question (if anything depends on it publicly) |
11:54:45 | ephja | I don't think there are any other ways |
11:55:04 | IcyFoxy | Okay. Thanks |
11:55:07 | ephja | actually, does that nimble search engine support it? |
11:55:24 | ephja | I've never used it, and I only heard about it yesterday. dom96? |
11:55:42 | IcyFoxy | nimble search engine? |
11:56:58 | IcyFoxy | nimble search lmdb yields only lmdb, and the packages.json doesn't include required packages (oddly enough) |
11:57:11 | ephja | I think there was a website for that |
11:57:13 | IcyFoxy | So, it cannot search based on this information alone. |
11:57:23 | IcyFoxy | I see |
11:58:40 | ephja | no it doesn't. it's all in the nimble file. it was probably done for the sake of simplicity. more advanced features could be added, but there's a lack of manpower |
11:59:03 | IcyFoxy | Sure |
11:59:05 | ephja | ideally it would be possible to fetch only the nimble file |
11:59:12 | * | vendethiel quit (Ping timeout: 260 seconds) |
11:59:23 | IcyFoxy | git doesn't help with that ideal requirement :P |
12:14:07 | ephja | speaking of nimble, it's really annoying when you forget to install new version of a lib that you're developing |
12:14:38 | ephja | sometimes it's a good idea to take a break in order to avoid going mad |
12:15:18 | ephja | a better approach would be to include the path in a cfg during development |
12:23:35 | vegansk | yglukhov, have a look please, when you have a time: https://github.com/yglukhov/jnim/pull/8 |
12:25:40 | * | vegansk is now known as veganskaway |
12:27:59 | * | pafmaf joined #nim |
12:29:52 | * | Trustable quit (Ping timeout: 264 seconds) |
12:30:28 | * | alexsystemf_ quit (Ping timeout: 264 seconds) |
12:30:28 | * | coffeepot quit (Ping timeout: 264 seconds) |
12:30:28 | * | nsf quit (Ping timeout: 264 seconds) |
12:31:04 | * | elrood quit (Ping timeout: 264 seconds) |
12:31:05 | * | _stowa quit (Ping timeout: 264 seconds) |
12:31:05 | * | kier quit (Ping timeout: 264 seconds) |
12:31:05 | * | izi quit (Ping timeout: 264 seconds) |
12:32:09 | * | coffeepot joined #nim |
12:32:55 | * | kier joined #nim |
12:34:42 | * | alexsystemf_ joined #nim |
12:35:29 | IcyFoxy | ephja: That would quickly get annoying indeed. |
12:37:41 | * | _stowa joined #nim |
12:41:43 | * | BitPuffin joined #nim |
12:46:04 | * | izi joined #nim |
12:47:28 | * | elrood joined #nim |
12:50:45 | * | filcuc quit (Ping timeout: 244 seconds) |
12:53:16 | * | Trustable joined #nim |
12:54:05 | * | nsf joined #nim |
13:12:22 | * | pafmaf quit (Quit: This computer has gone to sleep) |
13:12:40 | * | cheatfate_ joined #nim |
13:12:52 | * | coffeepot quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
13:14:46 | * | cheatfate quit (Read error: Connection reset by peer) |
13:24:02 | * | yglukhov quit (Read error: Connection reset by peer) |
13:24:14 | * | yglukhov joined #nim |
13:29:02 | * | yglukhov quit (Ping timeout: 260 seconds) |
13:31:05 | dom96 | IcyFoxy: there is no way to do that I'm afraid. |
13:31:25 | dom96 | we don't have a centralised package website like Rust's crates.io |
13:31:43 | * | yglukhov joined #nim |
13:32:09 | dom96 | regarding --gc:none, the compiler will give you warnings (or probably even errors) if you use procedures which allocate memory. |
13:32:32 | dom96 | (At least IIRC it will) |
13:32:44 | dom96 | Which is useful if you want to manage memory yourself. |
13:33:23 | * | vendethiel joined #nim |
13:33:46 | dom96 | But like ephja said, you may as well use the GC, especially since you can manually invoke it or set it so that it only ever collects memory for some specified amount of time. |
13:36:10 | ephja | I didn't get any errors, but I'll see if I get any warnings |
13:36:38 | ephja | yep |
13:41:51 | * | cheatfate_ is now known as cheatfate |
13:51:25 | * | gokr quit (Ping timeout: 252 seconds) |
13:53:41 | * | beatmox quit (Remote host closed the connection) |
13:54:18 | * | vendethiel quit (Ping timeout: 244 seconds) |
14:03:02 | * | elrood quit (Ping timeout: 250 seconds) |
14:07:22 | * | Trustable quit (Ping timeout: 250 seconds) |
14:15:39 | * | elrood joined #nim |
14:18:49 | * | doering joined #nim |
14:21:42 | * | Trustable joined #nim |
14:26:26 | * | Trustable quit (Ping timeout: 250 seconds) |
14:34:13 | * | darkf quit (Quit: gn) |
14:37:34 | * | McSpiros quit (Quit: Page closed) |
14:39:56 | * | Jesin joined #nim |
14:42:09 | * | Trustable joined #nim |
14:43:17 | IcyFoxy | dom96: Thanks. Although *yes* nimble does. The git packages.json is exactly the same as that for crates (which is also hosted on git). It just doesn't contain the dependency meta (which is good for any package manager to have on hand anyway) |
14:44:10 | IcyFoxy | crates.io is just a website. It's not so relevant. The actual listing is on git (although uploads, etc occur through the website; which IMHO is poor). |
14:46:08 | IcyFoxy | Although crates.io does have a few benefits, specifically hosting every published version (indefinately; and arguably not a good thing as this job is for VCS), reverse dependency seaches (requires in this case the nimble config). |
14:46:57 | * | space-wizard joined #nim |
14:47:46 | dom96 | "Although *yes* nimble does.", what does it have? |
14:48:09 | IcyFoxy | Actually just noticed the listing on crates' git repo doesn't include the dependency meta. |
14:48:16 | dom96 | I only ever said that Nimble doesn't have a centralised package website like Rust's crates.io |
14:48:32 | dom96 | Which is correct. |
14:48:53 | IcyFoxy | Both nimble and crates.io-index have listing of existance of packages. Neither track dependencies which IMHO is a horrible design. |
14:49:10 | dom96 | a crates.io-like website for Nimble would track dependencies. |
14:49:12 | IcyFoxy | dom96: I meant that nimble does (like crates) have a centralised index. Yes, no code. |
14:49:46 | IcyFoxy | crates.io tracks dependencies by holding complete archives... Which is bad. IT should just have the package meta. |
14:50:11 | dom96 | Updating Nimble's packages.json file with each package's reverse deps would cause far too much noise. |
14:50:19 | IcyFoxy | Such meta, could be realistically stored in the index and everyone could see all the dependencies. |
14:50:37 | IcyFoxy | Don't include reverse, just forward dependencies. |
14:51:07 | * | vendethiel joined #nim |
14:51:17 | IcyFoxy | Then user wants library X. nimble then knows that it also needs Y, which needs Z. It can then download X, Y, and Z at the same time and then attempt to build Z, then Y, then X. |
14:51:18 | dom96 | those can change between versions |
14:51:34 | dom96 | packages.json doesn't include any version information on purpose. |
14:51:44 | dom96 | it's just a list of package URLs |
14:51:44 | IcyFoxy | Sure, and so these listings should get updated accordingly. |
14:51:48 | IcyFoxy | I know |
14:52:08 | IcyFoxy | No version information limits things :P |
14:52:29 | dom96 | It works well enough :P |
14:52:43 | IcyFoxy | "works" and yet I cannot do my desired query. :P |
14:52:45 | dom96 | I don't recall seeing many package managers downloading packages and dependencies in parallel. |
14:53:14 | dom96 | That's something that would be provided by a Nimble website |
14:53:20 | IcyFoxy | Hmm? Gentoo's emerge, FreeBSD's ports, arch' abs, etc. |
14:53:30 | dom96 | Can cargo perform such a query without cargo.io? |
14:53:32 | IcyFoxy | Just a few examples |
14:53:39 | IcyFoxy | It *should* be able to |
14:53:46 | IcyFoxy | But it doesn't, because cargo too sucks :D |
14:54:25 | IcyFoxy | I may happen to have a mockup for an alternative to cargo for rust and will eventually start code for that.. But working on a database for a larger project first. |
14:55:24 | dom96 | Have you talked with Cargo's developers about it? |
14:56:15 | IcyFoxy | Mentioned a few things in the community, but no. And a joint effort although may be good... I expect my changes to be 'too much'. Although when I get things better defined, I'll speak with them more directly to see their view. |
14:57:32 | IcyFoxy | "too much" includes as being a piece of a p2p network that I am working on. Also far from being ready. |
14:57:51 | IcyFoxy | piece/integrated quite heavily. |
15:01:30 | IcyFoxy | dom96: My focus for package management is to have sources come as officially from their developers - complete signed history and have packages dependencies be reflected structurely. (Which all fits perfectly into my larger project in which I can discuss further if you're interested). |
15:02:02 | federico3 | packages dependencies be reflected structurely? |
15:05:05 | IcyFoxy | federico3: Yes. Specifically, to depend on another library. You depend on a package and specify the point in time that is known to work well; and additionally with static analysis/tracing of functions/types used between crates/libraries - it can be determined if a change *will* cause a failure to compile. (I.e. library X expects library Y to provide a function f of type u8 -> u8. And if that changes. Then it |
15:05:11 | IcyFoxy | cannot compile.) |
15:06:18 | federico3 | ...ooook |
15:06:30 | IcyFoxy | federico3: Follow? :) |
15:07:19 | federico3 | good luck predicting failures, it's a huge task and can only be partially successful |
15:07:52 | * | BitPuffin quit (Ping timeout: 252 seconds) |
15:08:06 | IcyFoxy | I know it'll only partially succeed. But that was just for known requirements / used types, which if ever changed will cause compilation to fail. |
15:08:18 | IcyFoxy | It doesn't catch everything, but it catches some serious low hanging fruit. |
15:09:24 | IcyFoxy | And having known good versions and configurations, if the latest doesn't work, and the traces cannot just be walked back to a state which works.. It can just fallback to the known good versions. |
15:10:37 | IcyFoxy | federico3: You asy huge task. What I described is not very difficult although it does require some hooks into the compilers to dump the types used from each crate. |
15:10:44 | federico3 | even when it works, it can only predics *build* failure, not bugs at runtime |
15:10:50 | IcyFoxy | Sure |
15:11:29 | * | huonw_ quit (Ping timeout: 260 seconds) |
15:11:31 | * | lokien quit (Ping timeout: 260 seconds) |
15:11:31 | * | pigmej quit (Ping timeout: 260 seconds) |
15:11:32 | * | OnO quit (Ping timeout: 260 seconds) |
15:11:47 | * | vendethiel quit (Remote host closed the connection) |
15:11:55 | IcyFoxy | Even better, digression tests can be automated with this concept and you can see which versions cause test cases to change in affect, or if benchmarks change drastically. |
15:11:56 | * | vendethiel joined #nim |
15:12:04 | * | AckZ quit (Ping timeout: 260 seconds) |
15:12:05 | * | NhanH quit (Ping timeout: 260 seconds) |
15:12:06 | * | CARAM__ quit (Ping timeout: 260 seconds) |
15:12:34 | IcyFoxy | Which significantly assists in figuring out where *exactly* changed logic in another crate breaks (or patches) your own code. |
15:12:40 | * | \u quit (Ping timeout: 260 seconds) |
15:13:17 | * | Xe quit (Ping timeout: 260 seconds) |
15:13:38 | IcyFoxy | federico3: This does assume that tests are in place... But they *should* be for any project large enough regardless. |
15:14:56 | IcyFoxy | Not meant to be perfect.. But integration between compiler and revision control system has some serious benefits for static analysis and continuious testing/debugging. |
15:16:08 | IcyFoxy | Also the tracings can be used to enforce semantic versioning as changing types in public functions and structs is a breaking change that should be reflected accordingly in the version. |
15:16:13 | IcyFoxy | federico3: Follow? |
15:16:19 | * | pregress_ joined #nim |
15:17:15 | * | alexsystemf_ quit (Ping timeout: 276 seconds) |
15:17:19 | IcyFoxy | Also... My *main* focus here isn't for the additional analysis (although good), but is really focused on ensuring that the code the developer uses, is the same code that the end users attempt to use when compiling. So integrity and security is my priority. |
15:17:43 | federico3 | sounds like a use case for a large CI system |
15:18:14 | federico3 | that depends on the scenario, you seem to be talking about development, not deployment |
15:19:22 | IcyFoxy | federico3: Indeed it would be useful for one such system, but I'm focusing on each project being able to make sure they don't break their things, and other people's projects by trivial mistakes. |
15:19:24 | * | Xe joined #nim |
15:20:28 | * | Matias joined #nim |
15:20:56 | federico3 | when it comes to real world deployment the chain development -> building deployable packages -> deploying involves different people across potentially long times |
15:21:00 | IcyFoxy | federico3: Deployment includes users testing, and actually using the software in development. And it is critical that the code the developer expects the end user gets is the same for debugging any issues. With a decent packaging system, the end user can submit their exact versions and configurations and the developer can then replicate this and reproduce any issues. |
15:21:03 | * | alexsystemf_ joined #nim |
15:21:21 | IcyFoxy | Sure. |
15:21:24 | * | asdf__ joined #nim |
15:21:32 | federico3 | and you want to relax the dependencies on versions as much as reasonably possible |
15:22:17 | IcyFoxy | Not necesarally. I want to relax them to the point that issues can be detected between versions. Official releases should use stable versions of everything when available. |
15:23:25 | * | pigmej joined #nim |
15:23:25 | * | OnO joined #nim |
15:23:39 | IcyFoxy | When compiling from source, you generally want either an old version, a stable version, or the bleeding edge. And all should be easy to reproduce at any time. |
15:23:49 | federico3 | yep |
15:24:38 | IcyFoxy | federico3: :) |
15:25:52 | * | thotypous quit (*.net *.split) |
15:25:55 | * | pregressive quit (*.net *.split) |
15:25:55 | * | M-Quora quit (*.net *.split) |
15:25:57 | * | Amun_Ra quit (*.net *.split) |
15:26:02 | * | asdf quit (*.net *.split) |
15:26:27 | * | ray joined #nim |
15:26:51 | * | ray is now known as Guest14462 |
15:28:02 | IcyFoxy | My larger project that this all fits in is effectively a decentralised p2p git, purposed for a lot more than revision control over source code. Alternative Internet infrastructure and framework for writing decentralised applications that rely on no backend servers, may use ACL lists for permissions within groups, etc. All data to be structured, including relationships between objects. |
15:28:08 | * | M-Quora joined #nim |
15:30:51 | * | Amun_Ra joined #nim |
15:31:25 | IcyFoxy | federico3: I'm aware that I've set myself a large task and I intend to be publishing my specifications and documentation somewhat soon (aiming for several months), along with the core primary components. |
15:31:31 | * | Amun_Ra is now known as Guest47345 |
15:32:54 | IcyFoxy | Although for now... I need to call the night. Good night all. IF anyone is interested, feel free to send me a /query anytime. |
15:33:02 | IcyFoxy | Happy hacking and good night to all. o/ |
15:33:09 | * | AckZ joined #nim |
15:33:28 | * | zielmicha quit (Read error: Connection reset by peer) |
15:33:36 | * | vendethiel quit (Ping timeout: 250 seconds) |
15:34:15 | yglukhov | dom96: can there be any reason why jester would stackoverflow on windows? it reproduces pretty often, upon loading tons of resources. |
15:34:29 | * | dorei quit (Quit: Page closed) |
15:35:26 | dom96 | yglukhov: possibly this? https://github.com/nim-lang/Nim/issues/3919 |
15:36:08 | * | NhanH joined #nim |
15:42:57 | * | Guest14462 quit (Changing host) |
15:42:57 | * | Guest14462 joined #nim |
15:42:59 | * | Guest14462 is now known as \u |
15:43:04 | * | tstm quit (Ping timeout: 264 seconds) |
15:44:05 | * | zielmicha joined #nim |
15:44:07 | * | huonw joined #nim |
15:44:26 | * | vendethiel joined #nim |
15:47:13 | * | tstm joined #nim |
15:48:49 | * | lokien joined #nim |
15:48:54 | * | CARAM__ joined #nim |
15:57:13 | yglukhov | dom96: hmm... maybe.. |
16:05:08 | CcxCZ | IcyFoxy: capabilities > ACLs http://waterken.sourceforge.net/aclsdont/current.pdf |
16:06:06 | * | vendethiel quit (Ping timeout: 250 seconds) |
16:06:29 | CcxCZ | You could even make object-capability checker for Nim in the vein of Emily: http://wiki.erights.org/wiki/Emily |
16:11:07 | * | yglukhov quit (Ping timeout: 252 seconds) |
16:14:40 | * | vendethiel joined #nim |
16:19:39 | * | vendethiel quit (Ping timeout: 276 seconds) |
16:20:23 | * | vendethiel joined #nim |
16:22:15 | * | themagician quit () |
16:25:53 | * | BitPuffin joined #nim |
16:28:06 | * | NhanH quit (Ping timeout: 276 seconds) |
16:28:07 | * | enthus1ast quit (Ping timeout: 260 seconds) |
16:32:18 | * | NhanH joined #nim |
16:38:04 | * | vendethiel quit (Ping timeout: 252 seconds) |
16:39:36 | * | beatmox joined #nim |
16:47:20 | * | vendethiel joined #nim |
17:03:55 | * | PMunch quit (Ping timeout: 252 seconds) |
17:10:37 | * | doering quit (Remote host closed the connection) |
17:11:39 | * | vendethiel quit (Ping timeout: 268 seconds) |
17:17:30 | * | ldlework quit (Ping timeout: 276 seconds) |
17:18:55 | * | alexsystemf_ quit (Ping timeout: 250 seconds) |
17:19:46 | * | huonw quit (Ping timeout: 250 seconds) |
17:21:29 | * | zielmicha_ joined #nim |
17:21:38 | * | ldlework joined #nim |
17:21:53 | * | Jesin quit (Quit: Leaving) |
17:22:22 | * | CARAM__ quit (Ping timeout: 250 seconds) |
17:22:52 | * | vendethiel joined #nim |
17:22:59 | * | jck joined #nim |
17:23:58 | * | alexsystemf_ joined #nim |
17:26:36 | * | zielmicha_ quit (Ping timeout: 276 seconds) |
17:26:53 | * | NhanH quit (*.net *.split) |
17:27:48 | * | zielmicha quit (*.net *.split) |
17:27:51 | * | asdf__ quit (*.net *.split) |
17:27:51 | * | Matias quit (*.net *.split) |
17:27:52 | * | Xe quit (*.net *.split) |
17:27:53 | * | space-wizard quit (*.net *.split) |
17:27:53 | * | elrood quit (*.net *.split) |
17:27:55 | * | arnetheduck quit (*.net *.split) |
17:27:55 | * | ephja quit (*.net *.split) |
17:27:56 | * | chrisheller quit (*.net *.split) |
17:27:59 | * | jck__ quit (*.net *.split) |
17:30:49 | * | Jesin joined #nim |
17:32:27 | * | M-Quora quit (Ping timeout: 276 seconds) |
17:34:19 | * | huonw joined #nim |
17:34:39 | * | arnetheduck joined #nim |
17:35:27 | * | Demon_Fox joined #nim |
17:37:09 | * | krux02 joined #nim |
17:39:52 | * | elrood joined #nim |
17:45:05 | * | M-Quora joined #nim |
17:45:45 | * | Xe joined #nim |
17:46:26 | * | Matias joined #nim |
17:49:03 | * | asdf__ joined #nim |
17:53:12 | * | space-wizard joined #nim |
17:57:36 | * | NhanH joined #nim |
17:57:39 | * | CARAM__ joined #nim |
17:58:37 | * | Guest47345 is now known as Amun_Ra |
18:01:55 | * | zielmicha_ joined #nim |
18:10:42 | * | PMunch joined #nim |
18:11:13 | * | yglukhov joined #nim |
18:13:14 | * | enthus1ast joined #nim |
18:15:14 | * | cnu- quit (Ping timeout: 250 seconds) |
18:15:15 | * | enthus1ast quit (Read error: Connection reset by peer) |
18:16:00 | * | yglukhov quit (Ping timeout: 276 seconds) |
18:16:14 | * | enthus1ast joined #nim |
18:16:30 | * | desophos joined #nim |
18:20:07 | * | chrisheller joined #nim |
18:23:36 | * | boopisaway is now known as boop |
18:25:06 | * | vendethiel quit (Ping timeout: 276 seconds) |
18:29:47 | * | Arrrr joined #nim |
18:29:47 | * | Arrrr quit (Changing host) |
18:29:47 | * | Arrrr joined #nim |
18:30:02 | * | \u quit (Ping timeout: 260 seconds) |
18:30:59 | * | ray joined #nim |
18:31:22 | * | ray is now known as Guest80700 |
18:34:02 | * | vendethiel joined #nim |
18:37:22 | IcyFoxy | CcxCZ: Correct. And I did intend for capabilities. Sorry for my mis-type re ACL. (Tired D:) |
18:37:36 | IcyFoxy | CcxCZ: I am not familiar with Emily however. |
18:48:41 | IcyFoxy | CcxCZ: For the record, my project is likely to be 100% Rust so 'unlikely' that nim will assist in any static validation. I am interested however for safe + abstraction access guarding in compilers though; which appears to be what you're suggesting. #![deny(unsafe)] is a no-brainer requirement that I'll have for applications, although my database depends on some unsafe transmutions from pointers to primitives |
18:48:47 | IcyFoxy | . Other than that, perfectly happy to restrict the stdlib/etc further which is convient as I'm aiming for a secure framework. |
18:49:10 | IcyFoxy | CcxCZ: I'd like to discuss this further if you have any suggestions for going about this. :) |
18:50:39 | * | yglukhov joined #nim |
18:50:41 | IcyFoxy | 100% rust at least for the core. The official set of applications I'll be providing also likely Rust although would happily include nim bindings if anyone (or if maybe I) wish to write applications in nim for the network. |
18:51:03 | * | desophos quit (Remote host closed the connection) |
18:57:02 | * | cnu- joined #nim |
18:57:14 | * | vendethiel quit (Ping timeout: 260 seconds) |
19:01:39 | * | cnu- quit (Ping timeout: 264 seconds) |
19:05:48 | * | cnu- joined #nim |
19:07:01 | * | vendethiel joined #nim |
19:07:41 | * | krux02 quit (Quit: Verlassend) |
19:13:14 | * | desophos joined #nim |
19:17:39 | * | desophos quit (Ping timeout: 260 seconds) |
19:20:17 | * | space-wi_ joined #nim |
19:20:18 | * | BitPuffin quit (Disconnected by services) |
19:20:23 | * | itPuffinB joined #nim |
19:21:41 | * | itPuffinB is now known as BitPuffin |
19:22:19 | * | huonw_ joined #nim |
19:22:44 | * | Jessin joined #nim |
19:22:48 | * | M-Quora quit (Ping timeout: 276 seconds) |
19:22:49 | * | huonw quit (Ping timeout: 276 seconds) |
19:22:50 | * | M-Quora joined #nim |
19:22:53 | * | space-wizard quit (Ping timeout: 276 seconds) |
19:22:54 | * | Jesin quit (Ping timeout: 276 seconds) |
19:22:55 | * | jck quit (Ping timeout: 276 seconds) |
19:22:56 | * | Amun_Ra quit (Ping timeout: 276 seconds) |
19:22:57 | * | Amun_Ra_ joined #nim |
19:23:12 | * | M-Quora quit (Changing host) |
19:23:12 | * | M-Quora joined #nim |
19:24:27 | * | BitPuffin quit (Read error: Connection reset by peer) |
19:24:39 | * | jck joined #nim |
19:28:09 | * | vendethiel quit (Ping timeout: 260 seconds) |
19:34:13 | * | Arrrr quit (Quit: WeeChat 1.4) |
19:35:44 | * | gokr joined #nim |
19:38:55 | * | zielmicha_ is now known as zielmicha |
19:39:24 | * | zielmicha is now known as Guest89517 |
19:41:36 | * | Guest89517 quit () |
19:43:16 | * | zielmicha_ joined #nim |
19:46:17 | * | ephja joined #nim |
19:47:14 | * | desophos joined #nim |
19:54:56 | * | Matias is now known as thotypous |
19:54:59 | * | enthus1ast quit (Quit: Leaving.) |
20:05:31 | gokr | IcyFoxy: Regarding lmdb, I instead chose Sophia, made a first trivial wrap - it's on nimble. |
20:05:57 | gokr | IcyFoxy: https://github.com/gokr/nim-sophia |
20:06:02 | IcyFoxy | gokr: Thanks. Sample code too? |
20:06:25 | IcyFoxy | I'm also not familiar with Sophia. Is this similar to LMDB? |
20:06:29 | gokr | yeah, there is one - but note that... the wrapper is very thin so the sample code is messy. |
20:06:35 | gokr | But the API is very small. |
20:06:42 | IcyFoxy | I see |
20:07:00 | gokr | Yeah, IMHO Sophia seems a more powerful choice: http://sophia.systems |
20:07:10 | IcyFoxy | Thanks |
20:07:35 | IcyFoxy | (I've actually not chosen LMDB for my own things... Writing an alternative from scratch in Rust.. Might find something from sophia to learn too!) |
20:07:52 | gokr | Yeah, and the guy behind Sophia seems awfully nice too. |
20:08:11 | gokr | And... it's being developed further. But already very impressive. |
20:08:36 | IcyFoxy | :) |
20:08:38 | gokr | It's the basis for Tarantool: http://tarantool.org |
20:08:41 | IcyFoxy | Thanks for the link |
20:08:45 | IcyFoxy | links |
20:09:07 | IcyFoxy | Happen to know any benchmarks? |
20:09:11 | gokr | Yeah |
20:09:32 | gokr | http://sophia.systems/performance.html |
20:10:47 | IcyFoxy | gokr: Doesn't compare against LMDB. Odd |
20:11:06 | gokr | Mmm, I think there are other comparisons... just don't have them handy. |
20:11:16 | IcyFoxy | Noted. |
20:11:56 | gokr | Dmitry (the guy behind Sophia) also has this: https://github.com/pmwkaa/ioarena |
20:12:00 | gokr | He is pmwkaa. |
20:12:17 | IcyFoxy | Noted, once again. :D |
20:12:44 | gokr | So he is very open and serious about the comparisons... which... well, let's just say I got a different impression from other authors of ... mentioned dbs. |
20:13:00 | IcyFoxy | Hehe |
20:13:24 | gokr | But mainly Sophia seems to have a much broader feature set. Good docs. Trivial API. |
20:13:38 | gokr | LMDB I am not even sure has its own homepage, it's simply inside LDAP, right? |
20:13:51 | IcyFoxy | Something like that |
20:14:17 | gokr | So anyway, I am integrating Sophia with my little lang written in Nim, that's why I made the binding. |
20:14:57 | * | yglukhov quit (Remote host closed the connection) |
20:15:15 | IcyFoxy | :) |
20:16:01 | IcyFoxy | CoW? |
20:16:07 | gokr | Cow? |
20:16:07 | IcyFoxy | memmap? |
20:16:12 | IcyFoxy | Copy on write |
20:16:13 | * | brson joined #nim |
20:16:20 | gokr | Oh, you mean in Sophia? |
20:16:33 | IcyFoxy | Like memmap private pages, flush on commit as the write. |
20:16:34 | IcyFoxy | Yea |
20:16:51 | IcyFoxy | I read a few instances of WAL |
20:17:14 | gokr | Check the docs, http://sophia.systems/v2.1/index.html |
20:17:19 | IcyFoxy | I'm there |
20:18:17 | IcyFoxy | Hmm |
20:18:31 | IcyFoxy | sophia.systems/v2.1/tutorial/api.html this have content for you? |
20:18:52 | gokr | yeah |
20:19:01 | IcyFoxy | Odd |
20:19:08 | IcyFoxy | Works now |
20:21:17 | IcyFoxy | I'll have to look into the finer details. Looks good. :) |
20:21:19 | IcyFoxy | Thanks again |
20:21:48 | gokr | If you decide to use it - please help out with the wrapper :) |
20:22:17 | IcyFoxy | gokr: If I use it, I'll be using rust ;) |
20:22:25 | gokr | Ah, sorry, forgot :) |
20:22:26 | IcyFoxy | Or at least, much more likely. |
20:22:41 | gokr | Have you used Nim? |
20:22:59 | IcyFoxy | Negative. I've taken occasional peeks at the language and I plan to XD |
20:23:00 | gokr | Curious to hear what people think of them both - from serious devs who actually have used both langs. |
20:23:29 | gokr | I really like Nim and... well, I don't see my "liking" the extra burden of memory management ;) |
20:23:38 | gokr | ok, gotta... go. later |
20:23:49 | IcyFoxy | gokr: Take care. o/ |
20:39:22 | * | pafmaf joined #nim |
20:39:46 | * | yglukhov joined #nim |
20:44:13 | * | pregress_ quit (Remote host closed the connection) |
20:51:22 | * | pafmaf quit (Quit: This computer has gone to sleep) |
20:58:43 | * | pregressive joined #nim |
21:14:39 | * | boop is now known as boopisaway |
21:15:59 | * | pregressive quit (Remote host closed the connection) |
21:45:58 | cheatfate | Araq_, is it possible to use custom compiler options, like "--mycustomoption:on"? |
21:47:09 | * | saml quit (Quit: Leaving) |
21:49:57 | * | vendethiel joined #nim |
21:55:09 | * | gokr quit (Ping timeout: 260 seconds) |
21:56:36 | * | cheatfate quit (Read error: Connection reset by peer) |
21:56:53 | * | cheatfate joined #nim |
22:15:51 | * | vendethiel quit (Ping timeout: 276 seconds) |
22:16:46 | * | enthus1ast joined #nim |
22:23:14 | * | zama quit (Ping timeout: 244 seconds) |
22:24:11 | * | yglukhov quit (Remote host closed the connection) |
22:25:25 | * | zama joined #nim |
22:25:58 | federico3 | Nim is now whitelisted for Travis CI |
22:45:09 | dom96 | federico3: ooh, does that mean we won't have to build Nim ourselves on Travis? |
22:45:16 | federico3 | dom96: correct! |
22:52:09 | * | zaquest quit (Read error: Connection reset by peer) |
23:03:08 | federico3 | ...or maybe not yet :( |
23:09:41 | * | zaquest joined #nim |
23:09:42 | * | space-wi_ quit (Ping timeout: 244 seconds) |
23:11:40 | * | elrood quit (Quit: Leaving) |
23:12:08 | * | desophos quit () |
23:13:20 | * | izi quit (Ping timeout: 244 seconds) |
23:16:18 | * | Matthias247 joined #nim |
23:33:14 | * | darkf joined #nim |
23:33:15 | * | desophos joined #nim |
23:47:30 | * | Trustable quit (Remote host closed the connection) |
23:48:05 | * | izi joined #nim |
23:57:58 | * | Matthias247 quit (Read error: Connection reset by peer) |