On 2/6/13 8:42 AM, Jacob Carlborg wrote:
On 2013-02-06 13:02, Robert wrote:
On Wed, 2013-02-06 at 08:56 +0100, Don wrote:
Eg, are there entire top-level branches which are obsolete? How
many stupid names are there (eg, "std.algorithm2") which were

Well in order to avoid such "stupid" names, I think it would be a good
idea to keep the standard library small. Include only the things that
are important to be "standard" in order to ensure interoperability
between libraries.

Instead we should offer a central place for D libraries, like CPAN for
perl or http://pypi.python.org/pypi for python.

Here you go:

https://github.com/jacob-carlborg/orbit/wiki/Orbit-Package-Manager-for-D

I will replace the Ruby code with D.

That's awesome. I skimmed the docs and the capabilities are pretty much what I'd expect. We should push for integrating Orbit in the standard distro. That entails a formal proposal, community review and voting etc. etc.

One question - since you mention replacing Ruby with D, I'm thinking it may be a good opportunity to just use D syntax everywhere. The arguments have been hashed already - a D user is supposed to know of all syntaxes that of D itself etc.

As an example I was looking at https://github.com/jacob-carlborg/orbit/wiki/orbfile which has:

orb "dwt", "0.5.3" # specifies an exact version
orb "sqlite" # uses the latest version
orb "orange", "> 0.0.1" # uses any version greater than "0.0.1", basically any comparison operator is allowed here orb "derelict", "~> 0.3.4" # uses any version above "0.3.4" that is "0.x.y", i.e. won't use any "1.x.y" version

Nice enough but there's no shame about

orb("dwt", "0.5.3"); // specifies an exact version
orb("sqlite"); // uses the latest version
orb("orange", "> 0.0.1"); // uses any version greater than "0.0.1", basically any comparison operator is allowed here orb("derelict", "~> 0.3.4"); // uses any version above "0.3.4" that is "0.x.y", i.e. won't use any "1.x.y" version

The alternative orbspec https://github.com/jacob-carlborg/orbit/wiki/orbspec%20specification also has its own syntax:

# orange.orbspec
# name "orange" # inferred from the name of the orbspec
version "1.0.0"
author "Jacob Carlborg"
type :library
files << ["a.d", "b.di"] # an array of source files

This is in a way worse because there's a tidbit of syntax for each element. I'm thinking:

spec = "orange";
version = "1.0.0";
author = "Jacob Carlborg";
type = "library";
files = ["a.d", "b.di"]; // an array of source files

This code can be imported into an environment that has the appropriate definitions.

Hash table literals may also be also very useful.

Thoughts?


Andrei

Reply via email to