Versioning info, was Re: Languages with no reserved words?
- From: "Arthur J. O'Dwyer" <ajonospam@xxxxxxxxxxxxxx>
- Date: Sun, 19 Feb 2006 14:04:58 -0500 (EST)
On Sun, 19 Feb 2006 thomas.mertes@xxxxxx wrote:
randyhow...@xxxxxxxxxxxxxxxxx wrote:
Is that versioning info in the include file name?
Most of the language definitions (statements, operators, types, ... )
are defined in "seed7_05.s7i". This makes "seed7_05.s7i" special.
Without it, it would not be Seed7. A different language or a new version
of Seed7 could be defined in a another include file. So it is really a
versioning info in the include file name.
You can see it this way:
The programmer informs the interpreter (or compiler) which version
of the language he is using (Currently there is just one version).
You haven't clarified the key point for me (and I bet for Randy):
Is this a Good Use of versioning, or a Bad Use?
A hypothetical example of good use, in C: [1]
#include <stdio_C89.h>
/* #include <stdio_C99.h> adds snprintf */
A hypothetical example of bad use, in C:
#include <stdio_gcc321.h>
/* next version of GCC will #include <stdio_gcc401.h> */
In other words, is this really "versioning info," or would it be more accurately described as "branch info"? The latter is okay; you can develop two different branches of your language in parallel, and a client
can write code to work with one branch forever. But if it's really versioning information --- i.e., the next version of your compiler or
libraries will increment the _05 to an _06 --- then it will be impossible
for anyone to write stable code in Seed7, because every time a new version comes out, people will have to update all their $include directives.
So the important decision points are:
(1) Does the _05 ever change to _06? If so, that could be bad; continue.
If not, remove it entirely, and then your design will be good.
(2) How often will that number change? If more than once every decade,
that's very bad; rethink your design. If not, continue.
(3) Will it be possible to release bugfix versions of seed7_05.s7i once
the first version of seed7_06.s7i is released? If not, that's very bad;
rethink your design. If so, your design is okay.
my $.02,
-Arthur
[1] - C doesn't actually do either kind of versioning, which is a Good Thing because it avoids the bad use, and a minor Bad Thing because it avoids the good use. However, avoiding versioning altogether means that
you get some backwards compatibility --- you can usually compile C89
with a C99 compiler, which you wouldn't be able to do if there were
funky suffixes on all the standard #includes.
.
- Follow-Ups:
- Re: Versioning info, was Re: Languages with no reserved words?
- From: thomas . mertes
- Re: Versioning info, was Re: Languages with no reserved words?
- From: Randy Howard
- Re: Versioning info, was Re: Languages with no reserved words?
- References:
- Languages with no reserved words?
- From: casioculture
- Re: Languages with no reserved words?
- From: thomas . mertes
- Re: Languages with no reserved words?
- From: Randy Howard
- Re: Languages with no reserved words?
- From: thomas . mertes
- Languages with no reserved words?
- Prev by Date: Re: Recursion
- Next by Date: Re: Versioning info, was Re: Languages with no reserved words?
- Previous by thread: Re: Languages with no reserved words?
- Next by thread: Re: Versioning info, was Re: Languages with no reserved words?
- Index(es):
Relevant Pages
|