<<06-12-2012>>

19:49:10*NimBot joined #nimrod
19:49:17Araqafaik it is public?
19:49:30Araqhow can a module be private anyway?
19:49:45dom96well, true. I mean, make its docs available?
19:49:57dom96get the docgen to build them
19:50:27Araqhrm
19:51:10Araqthe younger Araq may have had reasons to not add it yet
19:57:13dom96perhaps younger araq was wrong.
19:57:24dom96httpclient module already uses it
19:57:41Araqwell parsing of URLs is quite some work
19:57:57Araqand parseurl is a bare bones implementation
19:58:19Araqand gradha will come and moan endlessly about every detail about it
19:58:25dom96yes, well I think it's a nice start.
19:58:37dom96oh give gradha a break
19:59:05Araqhe he ;-)
19:59:15Araqok add it, I don't mind
19:59:23Araqdoesn't use regexes anymore, right?
19:59:34Araqdon't like the dependency to pcre
20:00:31dom96I really doubt it ever used regexes
20:00:41dom96Unless younger dom enjoyed using regexes
20:01:05dom96What file is it suppose to be added to again?
20:09:24Araqtools/web/nimrod.ini
20:10:12dom96thanks
20:10:40dom96fyi it's web/nimrod.ini :P
20:11:51Araqwhatever :P
20:55:21dom96That's a lot of merges with master.
20:55:32Araqsorry
21:07:36*Vladar joined #nimrod
21:09:30Araqhi Vladar
21:09:58Araqmade a game with libtcod yet?
21:11:11VladarHi, Araq. Not yet, but will do, because wrapper need testing yet =)
21:12:28Araqtest it with a real application ;-)
21:13:19VladarIt's a best way of testing )
21:14:18VladarAlso, there is Nimrod sub-forum on the libtcod site now: http://doryen.eptalys.net/forum/index.php?board=48.0
21:17:27Araqexcellent :D
21:27:02AraqVladar: ever tried endb? :D
21:29:05VladarYes, a little. But mostly I prefer some debug echo in code )
21:31:14Araqcool so I didn't break it ;-)
21:31:25Araqit's hard to test :P
21:48:56dom96Vladar: You think nimgame is ready for ludum dare? :P
21:52:46Vladardom69, depends on a game. I'm pretty easy made asteroids demo on v0.2, now it has a sound module too.
21:54:23dom96Vladar: 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:27VladarFor future nimgame versions I want to add tiles support, more gui elements, etc.
21:56:56Vladardom96, look at that asteroids demo for game structure reference, I'll also provide some support if you will need it =)
21:57:10dom96Vladar: Awesome, thanks :D
21:57:30Araqdom96: there is now a shallowPath for babel
21:57:58dom96Araq: thanks :)
21:58:25Araqthough maybe we should it call it 'babelPath' from now on
21:59:07dom96perhaps
21:59:08Araqversioning support is very easy to support if the paths look like project/0.8.2/*
21:59:55Araqlook at the diff, it's very simple to add what you need, you only need to edit commands.nim
22:00:47Araqwith version support and --excludePath most things should be easy
22:03:46dom96I dunno. I'm having a hard time thinking about this when I'm tired.
22:04:22Araqnp, just finish babel and announce it
22:04:50dom96But, we should involve other people in this discussion definitely.
22:05:50dom96So explain fully how you imagine versioning should work.
22:09:35Araqbabel/jester/0.8.0/*
22:09:42Araqbabel/jester/0.9.0/*
22:10:00Araq--> compiler adds 0.9.0 to its path but not 0.8.0
22:10:28Araqhowever you can --excludePath:babel/jester/0.9.0 to make it use 0.8.0 instead
22:11:33dom96so where is the latest version?
22:11:44dom96does the compiler determine that?
22:12:46Araqyes the compiler knows 0.9.0 > 0.8.0 and is the best version to choose
22:13:28dom96hrm, not a bad idea.
22:13:43dom96And I only now get what you meant heh
22:14:09dom96So we will need to modify the compiler.
22:14:33dom96I already wrote a version string comparison module
22:14:39dom96So we can simply reuse that
22:14:44Araqok
22:15:10dom96but wouldn't it make more sense to have a way to specify the specific version you want?
22:15:22dom96Instead of saying "I don't want 0.9.0, but the version before it"
22:15:34dom96You won't be able to know for sure that the version before it is the one you want
22:15:53Araq*shrug* dunno
22:16:07dom96Say you want 0.8.0
22:16:17dom96but the user also has 0.8.2 installed
22:16:23dom96You do --excludePath:babel/jester/0.9.0
22:16:32Araqand you get 0.8.2
22:16:33dom96It doesn't use 0.8.0, but 0.8.2
22:16:42Araqbut that's a feature :P
22:16:49dom96how so?
22:17:00Araq--excludePath is only for fixing things
22:17:55Araqwell 0.8.2 is likely to work anyway
22:18:45dom96So you leave it to the developer of the app to fix each of the libraries' dependencies that their app depends on?
22:19:08dom96i.e. Lib A doesn't work with 0.9.0
22:19:14Araqyes
22:19:26Araqexactly for now we leave it to the poor developer
22:19:36dom96The developer of Lib A knows that, but since --excludePath is just a quick fix, the dev does not in fact fix it.
22:20:06dom96I suppose this would work, and allow for easy expansion if needs be.
22:22:05AraqI'm thinking about project/version vs. project-version
22:22:28Araqextra sub directories for the versioning is annoying IMO
22:22:48dom96I don't think so.
22:22:56dom96It's easier to determine the versions that are installed
22:23:02dom96ls jester/
22:23:18dom96instead of ls . | grep jester-
22:23:36dom96(If my Bash knowledge is correct)
22:23:43Araqjester- TAB
22:24:13dom96In the terminal it's exactly the same really.
22:24:26dom96But if I were to do it in Nimrod, it's a different story
22:24:51Araqyou know you could use the same code as the compiler ...
22:25:05*Vladar quit (Quit: Leaving)
22:25:13dom96Why do you think project/version is annoying?
22:25:50Araqbecause subdirectories are heavily overused
22:26:19Araqand all it achieves is that it's getting harder to get a proper overview
22:26:53Araqcheck out a random java repository on github :P
22:26:55*shevy joined #nimrod
22:26:56dom96I 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:58shevyhi
22:27:09Araqhi shevy
22:27:16dom96hey shevy
22:27:16shevy\o/ talking about the nimrod package manager dom96?
22:27:23dom96yep
22:27:32dom96It's called babel btw :)
22:28:17dom96Araq: I still fail to see how a sub-dir is annoying.
22:28:24dom96IMO it organises the packages better
22:28:40dom96That's what folders are for after all.
22:29:13Araqmost of the time there will only be 1 version
22:29:23Araqso it's only a pointless additional sub-dir
22:29:37Araqthat's annoying to navigate
22:30:05dom96ok, 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:07Araqyou have a list of 50 packages, 4 of which have 2 versions
22:31:20AraqI fail how an extra directory helps anything
22:31:21dom96I have thought of another problem.
22:31:29dom96Each package refers to a git repo.
22:31:49dom96How is babel meant to retrieve a specific version?
22:32:18Araqit's all stored in your json file
22:32:40dom96That could work, I suppose.
22:33:04dom96I don't like it however
22:33:25Araqwhat else could be the solution?
22:34:04dom96yeah, i'm not seeing another solution except creating a full blown website to host the packages.
22:34:49Araqas far as babel is concerned it doesn't need to deal with versions at all
22:35:02dom96it does.
22:35:10Araqyou can treat different versions as completely different packages
22:35:19dom96hrm.
22:35:36Araqhelps for automatic dependencies too :-)
22:42:48dom96That could work. But now I see a problem with your project-version
22:42:58dom96What if the project name contains hyphens?
22:43:15Araqwhat about it?
22:43:25dom96It will be a lot less ambiguous to just put it in a subdir
22:43:26dom96:P
22:43:28Araqproject-with-dashes-0.2.4
22:43:39Araqstill easy :P
22:43:58dom96Project-54.2-0.23.9-1
22:44:02dom96What now?
22:44:25dom96People like to make weird version strings :P
22:47:57Araqyou 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:27Araqpeople need to keep their version strings sane anyway
22:48:33Araqor it can't work
22:48:57Araqbut fine, lets use _ instead of - as a separator
22:49:18dom96nah, I dislike _
22:51:20dom96so, should the package name simply include the version?
22:51:44Araqif not, babel should add it ... :P
22:52:03dom96what I'm asking is:
22:52:30dom96{ "name": "jester-0.1.0"} vs. {"name":"jester", "version": "0.1.0"}
22:53:26Araqthe later
22:55:12dom96ok, we can also allow "latest" which will use the latest from git?
22:56:54Araqsure but it's a weird version name
22:57:14dom96better suggestion?
22:57:16AraqI would simply leave out the 'version' then
22:57:27dom96ok.
22:57:39dom96Now, what's the best approach to git with versioning. I'm thinking tags.
22:58:37dom96Then 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:48Araqok
23:01:17dom96Alright, so we can conclude then?
23:01:31Araqwe need the same for mercurial etc. I think
23:01:43dom96yeah, but that's not needed now.
23:02:06dom96In conclusion;
23:02:16Araqmaybe just call it 'dvcs-tag'?
23:02:18dom96Packages go into .babel/project-version/
23:02:25dom96ok.
23:02:49dom96each packages specifies its version, if it's missing 'latest' is assumed.
23:03:15dom96"excludePath" will need to be implemented in the Nimrod compiler.
23:03:47dom96latest package will be installed as .babel/project (?)
23:04:02Araqyeah fine with me
23:04:23Araqor a version number could be enforced by babel
23:04:33dom96"babelPath" also implemented in compiler?
23:04:38Araqyes
23:05:47dom96So excluding the latest will just be "excludePath: jester/ ?
23:06:40dom96maybe it should be installed under "jester-latest"?
23:06:50Araqnah
23:07:01dom96jester-head
23:07:08AraqexcludePath:jester is fine
23:07:56dom96Feels a bit misleading
23:09:06Araqdo it your way then
23:09:11dom96I will go with jester-head
23:09:20Araqbabel/jester-head
23:09:25Araqbabel/abc-head
23:09:29dom96mmm
23:09:31Araqbabel/sdl-head
23:09:38Araqbabel/gtk3-head
23:09:42Araqnotice something?
23:10:05Araqit's ugly :P
23:10:14Araqit's redundant
23:10:30dom96ugh, this isn't a beauty pageant
23:10:41Araqit doesn't help readability at all
23:11:09dom96see, this wouldn't be a problem if it was a subdir of project/ ;)
23:11:36Araqit's still not a problem
23:12:26dom96fine
23:12:40dom96Once again, I shall listen to the almighty Araq.
23:13:06Araqyep and blame me if it breaks down
23:13:29dom96I will be looking forward to that :P
23:13:59dom96nah, i'm kidding. I'm sure it will be fine.
23:14:25Araq"leaving out the version means latest" is a simple rule and not suprising at all
23:14:38dom96yeah.
23:16:12dom96It just feels like saying "excludePath: jester" means "exclude all of jester"
23:16:31dom96but hey, the concept of excludePath will require some reading anyway
23:17:00dom96After you get to know what it really does, it makes sense
23:17:11Araqyeah
23:18:05dom96ok, well that's sorted then
23:18:17dom96Hopefully i'll be able to implement that tomorrow
23:19:50Araqok great
23:19:57AraqI have to sleep now too, good night
23:20:16dom96me too
23:20:18dom96bye