[m-dev.] shims

Paul Bone paul at bone.id.au
Tue Sep 16 11:30:38 AEST 2014

On Tue, Sep 16, 2014 at 11:19:19AM +1000, Mark Brown wrote:
> On Tue, Sep 16, 2014 at 10:43 AM, Paul Bone <paul at bone.id.au> wrote:
> > Eww.  Well I understand that this would be possible in this way but if I
> > actually expect people to use it I think a nicer syntax would be best.
> >
> > Such as making it an (optional) part of module declrations.
> >
> > :- module my_module (2.3.1).
> I also suggested 'feature' items, which might look nicer.

I saw that and thought it very similar to detecting predicates based on
name, arity, and type/mode/detism.  But it's not as behaviour might change.

> Versions are not always ordered linearly. You can get a version with
> patch A, a version with patch B, then a version with both patches.


Each proposal has benifits and drawbacks compared to every other proposal.
It may be good to implement multiple proposals.  This does make things
complex, however I think that by making things like versions easy to
express you reduce complexity.  

> >> (You keep the earlier minor versions since these represent backwards
> >> compatible changes, but you remove the earlier major version.)
> ... and in so doing, you indicate directly what changes are backwards
> compatible without relying on any conventions regarding numbering
> schemes.

Yep.  I beleive that the semantic versioning numbering scheme is less
complex than a series of numbered feature items.  But that feature items can
be used (in addition to version numbers) for non-linear changes.  For
example if you're developing a library and I fork it to work on a new
feature but my feature is not yet merged into your upstream library.

Paul Bone

More information about the developers mailing list