19:49:10 | * | NimBot joined #nimrod |
19:49:17 | Araq | afaik it is public? |
19:49:30 | Araq | how can a module be private anyway? |
19:49:45 | dom96 | well, true. I mean, make its docs available? |
19:49:57 | dom96 | get the docgen to build them |
19:50:27 | Araq | hrm |
19:51:10 | Araq | the younger Araq may have had reasons to not add it yet |
19:57:13 | dom96 | perhaps younger araq was wrong. |
19:57:24 | dom96 | httpclient module already uses it |
19:57:41 | Araq | well parsing of URLs is quite some work |
19:57:57 | Araq | and parseurl is a bare bones implementation |
19:58:19 | Araq | and gradha will come and moan endlessly about every detail about it |
19:58:25 | dom96 | yes, well I think it's a nice start. |
19:58:37 | dom96 | oh give gradha a break |
19:59:05 | Araq | he he ;-) |
19:59:15 | Araq | ok add it, I don't mind |
19:59:23 | Araq | doesn't use regexes anymore, right? |
19:59:34 | Araq | don't like the dependency to pcre |
20:00:31 | dom96 | I really doubt it ever used regexes |
20:00:41 | dom96 | Unless younger dom enjoyed using regexes |
20:01:05 | dom96 | What file is it suppose to be added to again? |
20:09:24 | Araq | tools/web/nimrod.ini |
20:10:12 | dom96 | thanks |
20:10:40 | dom96 | fyi it's web/nimrod.ini :P |
20:11:51 | Araq | whatever :P |
20:55:21 | dom96 | That's a lot of merges with master. |
20:55:32 | Araq | sorry |
21:07:36 | * | Vladar joined #nimrod |
21:09:30 | Araq | hi Vladar |
21:09:58 | Araq | made a game with libtcod yet? |
21:11:11 | Vladar | Hi, Araq. Not yet, but will do, because wrapper need testing yet =) |
21:12:28 | Araq | test it with a real application ;-) |
21:13:19 | Vladar | It's a best way of testing ) |
21:14:18 | Vladar | Also, there is Nimrod sub-forum on the libtcod site now: http://doryen.eptalys.net/forum/index.php?board=48.0 |
21:17:27 | Araq | excellent :D |
21:27:02 | Araq | Vladar: ever tried endb? :D |
21:29:05 | Vladar | Yes, a little. But mostly I prefer some debug echo in code ) |
21:31:14 | Araq | cool so I didn't break it ;-) |
21:31:25 | Araq | it's hard to test :P |
21:48:56 | dom96 | Vladar: You think nimgame is ready for ludum dare? :P |
21:52:46 | Vladar | dom69, depends on a game. I'm pretty easy made asteroids demo on v0.2, now it has a sound module too. |
21:54:23 | dom96 | Vladar: ahh, well I will try my best to use it, although I will probably give up again and not make a game at all. |
21:54:27 | Vladar | For future nimgame versions I want to add tiles support, more gui elements, etc. |
21:56:56 | Vladar | dom96, look at that asteroids demo for game structure reference, I'll also provide some support if you will need it =) |
21:57:10 | dom96 | Vladar: Awesome, thanks :D |
21:57:30 | Araq | dom96: there is now a shallowPath for babel |
21:57:58 | dom96 | Araq: thanks :) |
21:58:25 | Araq | though maybe we should it call it 'babelPath' from now on |
21:59:07 | dom96 | perhaps |
21:59:08 | Araq | versioning support is very easy to support if the paths look like project/0.8.2/* |
21:59:55 | Araq | look at the diff, it's very simple to add what you need, you only need to edit commands.nim |
22:00:47 | Araq | with version support and --excludePath most things should be easy |
22:03:46 | dom96 | I dunno. I'm having a hard time thinking about this when I'm tired. |
22:04:22 | Araq | np, just finish babel and announce it |
22:04:50 | dom96 | But, we should involve other people in this discussion definitely. |
22:05:50 | dom96 | So explain fully how you imagine versioning should work. |
22:09:35 | Araq | babel/jester/0.8.0/* |
22:09:42 | Araq | babel/jester/0.9.0/* |
22:10:00 | Araq | --> compiler adds 0.9.0 to its path but not 0.8.0 |
22:10:28 | Araq | however you can --excludePath:babel/jester/0.9.0 to make it use 0.8.0 instead |
22:11:33 | dom96 | so where is the latest version? |
22:11:44 | dom96 | does the compiler determine that? |
22:12:46 | Araq | yes the compiler knows 0.9.0 > 0.8.0 and is the best version to choose |
22:13:28 | dom96 | hrm, not a bad idea. |
22:13:43 | dom96 | And I only now get what you meant heh |
22:14:09 | dom96 | So we will need to modify the compiler. |
22:14:33 | dom96 | I already wrote a version string comparison module |
22:14:39 | dom96 | So we can simply reuse that |
22:14:44 | Araq | ok |
22:15:10 | dom96 | but wouldn't it make more sense to have a way to specify the specific version you want? |
22:15:22 | dom96 | Instead of saying "I don't want 0.9.0, but the version before it" |
22:15:34 | dom96 | You won't be able to know for sure that the version before it is the one you want |
22:15:53 | Araq | *shrug* dunno |
22:16:07 | dom96 | Say you want 0.8.0 |
22:16:17 | dom96 | but the user also has 0.8.2 installed |
22:16:23 | dom96 | You do --excludePath:babel/jester/0.9.0 |
22:16:32 | Araq | and you get 0.8.2 |
22:16:33 | dom96 | It doesn't use 0.8.0, but 0.8.2 |
22:16:42 | Araq | but that's a feature :P |
22:16:49 | dom96 | how so? |
22:17:00 | Araq | --excludePath is only for fixing things |
22:17:55 | Araq | well 0.8.2 is likely to work anyway |
22:18:45 | dom96 | So you leave it to the developer of the app to fix each of the libraries' dependencies that their app depends on? |
22:19:08 | dom96 | i.e. Lib A doesn't work with 0.9.0 |
22:19:14 | Araq | yes |
22:19:26 | Araq | exactly for now we leave it to the poor developer |
22:19:36 | dom96 | The developer of Lib A knows that, but since --excludePath is just a quick fix, the dev does not in fact fix it. |
22:20:06 | dom96 | I suppose this would work, and allow for easy expansion if needs be. |
22:22:05 | Araq | I'm thinking about project/version vs. project-version |
22:22:28 | Araq | extra sub directories for the versioning is annoying IMO |
22:22:48 | dom96 | I don't think so. |
22:22:56 | dom96 | It's easier to determine the versions that are installed |
22:23:02 | dom96 | ls jester/ |
22:23:18 | dom96 | instead of ls . | grep jester- |
22:23:36 | dom96 | (If my Bash knowledge is correct) |
22:23:43 | Araq | jester- TAB |
22:24:13 | dom96 | In the terminal it's exactly the same really. |
22:24:26 | dom96 | But if I were to do it in Nimrod, it's a different story |
22:24:51 | Araq | you know you could use the same code as the compiler ... |
22:25:05 | * | Vladar quit (Quit: Leaving) |
22:25:13 | dom96 | Why do you think project/version is annoying? |
22:25:50 | Araq | because subdirectories are heavily overused |
22:26:19 | Araq | and all it achieves is that it's getting harder to get a proper overview |
22:26:53 | Araq | check out a random java repository on github :P |
22:26:55 | * | shevy joined #nimrod |
22:26:56 | dom96 | I prefer to get an overview of what packages are installed. Instead of seeing a huge list of packages and their different version combinations |
22:26:58 | shevy | hi |
22:27:09 | Araq | hi shevy |
22:27:16 | dom96 | hey shevy |
22:27:16 | shevy | \o/ talking about the nimrod package manager dom96? |
22:27:23 | dom96 | yep |
22:27:32 | dom96 | It's called babel btw :) |
22:28:17 | dom96 | Araq: I still fail to see how a sub-dir is annoying. |
22:28:24 | dom96 | IMO it organises the packages better |
22:28:40 | dom96 | That's what folders are for after all. |
22:29:13 | Araq | most of the time there will only be 1 version |
22:29:23 | Araq | so it's only a pointless additional sub-dir |
22:29:37 | Araq | that's annoying to navigate |
22:30:05 | dom96 | ok, fair enough. Your method is less annoying when there is only 1 version, but my method is less annoying when there are multiple. |
22:31:07 | Araq | you have a list of 50 packages, 4 of which have 2 versions |
22:31:20 | Araq | I fail how an extra directory helps anything |
22:31:21 | dom96 | I have thought of another problem. |
22:31:29 | dom96 | Each package refers to a git repo. |
22:31:49 | dom96 | How is babel meant to retrieve a specific version? |
22:32:18 | Araq | it's all stored in your json file |
22:32:40 | dom96 | That could work, I suppose. |
22:33:04 | dom96 | I don't like it however |
22:33:25 | Araq | what else could be the solution? |
22:34:04 | dom96 | yeah, i'm not seeing another solution except creating a full blown website to host the packages. |
22:34:49 | Araq | as far as babel is concerned it doesn't need to deal with versions at all |
22:35:02 | dom96 | it does. |
22:35:10 | Araq | you can treat different versions as completely different packages |
22:35:19 | dom96 | hrm. |
22:35:36 | Araq | helps for automatic dependencies too :-) |
22:42:48 | dom96 | That could work. But now I see a problem with your project-version |
22:42:58 | dom96 | What if the project name contains hyphens? |
22:43:15 | Araq | what about it? |
22:43:25 | dom96 | It will be a lot less ambiguous to just put it in a subdir |
22:43:26 | dom96 | :P |
22:43:28 | Araq | project-with-dashes-0.2.4 |
22:43:39 | Araq | still easy :P |
22:43:58 | dom96 | Project-54.2-0.23.9-1 |
22:44:02 | dom96 | What now? |
22:44:25 | dom96 | People like to make weird version strings :P |
22:47:57 | Araq | you know the best way to get something done is to pull weird corner cases out of your a** and pretend it's a realistic scenario |
22:48:27 | Araq | people need to keep their version strings sane anyway |
22:48:33 | Araq | or it can't work |
22:48:57 | Araq | but fine, lets use _ instead of - as a separator |
22:49:18 | dom96 | nah, I dislike _ |
22:51:20 | dom96 | so, should the package name simply include the version? |
22:51:44 | Araq | if not, babel should add it ... :P |
22:52:03 | dom96 | what I'm asking is: |
22:52:30 | dom96 | { "name": "jester-0.1.0"} vs. {"name":"jester", "version": "0.1.0"} |
22:53:26 | Araq | the later |
22:55:12 | dom96 | ok, we can also allow "latest" which will use the latest from git? |
22:56:54 | Araq | sure but it's a weird version name |
22:57:14 | dom96 | better suggestion? |
22:57:16 | Araq | I would simply leave out the 'version' then |
22:57:27 | dom96 | ok. |
22:57:39 | dom96 | Now, what's the best approach to git with versioning. I'm thinking tags. |
22:58:37 | dom96 | Then we can simply provide a "git-tag": "v0.1.0", if it's not there then simply use the version as the git tag |
23:00:48 | Araq | ok |
23:01:17 | dom96 | Alright, so we can conclude then? |
23:01:31 | Araq | we need the same for mercurial etc. I think |
23:01:43 | dom96 | yeah, but that's not needed now. |
23:02:06 | dom96 | In conclusion; |
23:02:16 | Araq | maybe just call it 'dvcs-tag'? |
23:02:18 | dom96 | Packages go into .babel/project-version/ |
23:02:25 | dom96 | ok. |
23:02:49 | dom96 | each packages specifies its version, if it's missing 'latest' is assumed. |
23:03:15 | dom96 | "excludePath" will need to be implemented in the Nimrod compiler. |
23:03:47 | dom96 | latest package will be installed as .babel/project (?) |
23:04:02 | Araq | yeah fine with me |
23:04:23 | Araq | or a version number could be enforced by babel |
23:04:33 | dom96 | "babelPath" also implemented in compiler? |
23:04:38 | Araq | yes |
23:05:47 | dom96 | So excluding the latest will just be "excludePath: jester/ ? |
23:06:40 | dom96 | maybe it should be installed under "jester-latest"? |
23:06:50 | Araq | nah |
23:07:01 | dom96 | jester-head |
23:07:08 | Araq | excludePath:jester is fine |
23:07:56 | dom96 | Feels a bit misleading |
23:09:06 | Araq | do it your way then |
23:09:11 | dom96 | I will go with jester-head |
23:09:20 | Araq | babel/jester-head |
23:09:25 | Araq | babel/abc-head |
23:09:29 | dom96 | mmm |
23:09:31 | Araq | babel/sdl-head |
23:09:38 | Araq | babel/gtk3-head |
23:09:42 | Araq | notice something? |
23:10:05 | Araq | it's ugly :P |
23:10:14 | Araq | it's redundant |
23:10:30 | dom96 | ugh, this isn't a beauty pageant |
23:10:41 | Araq | it doesn't help readability at all |
23:11:09 | dom96 | see, this wouldn't be a problem if it was a subdir of project/ ;) |
23:11:36 | Araq | it's still not a problem |
23:12:26 | dom96 | fine |
23:12:40 | dom96 | Once again, I shall listen to the almighty Araq. |
23:13:06 | Araq | yep and blame me if it breaks down |
23:13:29 | dom96 | I will be looking forward to that :P |
23:13:59 | dom96 | nah, i'm kidding. I'm sure it will be fine. |
23:14:25 | Araq | "leaving out the version means latest" is a simple rule and not suprising at all |
23:14:38 | dom96 | yeah. |
23:16:12 | dom96 | It just feels like saying "excludePath: jester" means "exclude all of jester" |
23:16:31 | dom96 | but hey, the concept of excludePath will require some reading anyway |
23:17:00 | dom96 | After you get to know what it really does, it makes sense |
23:17:11 | Araq | yeah |
23:18:05 | dom96 | ok, well that's sorted then |
23:18:17 | dom96 | Hopefully i'll be able to implement that tomorrow |
23:19:50 | Araq | ok great |
23:19:57 | Araq | I have to sleep now too, good night |
23:20:16 | dom96 | me too |
23:20:18 | dom96 | bye |