I've considered the aspects you describe before bothering
your with this proposal.
1. As for strengthening CCL version precision:
Yes, fasl file format is reflected as -f86 in
asdf:implementation-identifier for CCL. And the fasl
format is not necessary changed between CCL releases,
so the fasl format remains parsable/loadable by both
ccl-1.9-f96 and ccl-1.10-f96.
But the code stored in that file format may still be broken
due to compiler bugs, so we may want to recompile on
new compiler.
Especially, if the old compiler was NOT a release, but an intermediate
development version or a release candidate - I would want to recompile
when I switch from 1.10 release candidate to proper 1.10.
ASDF already segregates fasls of the same -f86 format, built
by different releases. Example cache directories:
~/.cache/common-lisp/ccl-1.10-f96-linux-x86/
~/.cache/common-lisp/ccl-1.9-f96-linux-x86/
~/.cache/common-lisp/abcl-1.3.0-fasl42-linux-x86/
~/.cache/common-lisp/abcl-1.3.0-svn-14683-fasl42-linux-x86/
~/.cache/common-lisp/ecl-13.5.1-unknown-linux-i686/ ;; release 13.5.1
~/.cache/common-lisp/ecl-13.5.1-237af2e8-linux-i686/ ;; git version after release 13.5.1
~/.cache/common-lisp/sbcl-1.2.0-linux-x86/
~/.cache/common-lisp/sbcl-1.2.0.69-615be91-linux-x86/
Unlike the other lisps in the above example,
CCL's asdf:implementation-identifier never has source control revision,
even in trunk versions. Moreover, for the other lisps the release
version means exact source code version, while
in CCL version 1.10 allows wide variety of
versions, including release candidates.
I admit that Allegro also updates itself
by patches, and this information is omitted
in implementation-identifier:
But at least Allegro release candidate will not be
named same was as a proper release (I hope).
Therefore, I think it make sense to strengthen
CCL implementation identifier, and svn revision
is the only precise enough attribute for all cases.
But I don't insist, it's just a proposal for your consideration.
2. Is -rc1 redundant if we use svn revision number.
Only matters if you consider (1) convincing, and agree
to strengthen CCL's implementation identifier.
2.1 Consider -rc1 as a part of human readable version number:
1.9, 1.10-rc1, 1.10.
If SVN revision number makes -rc1 redundant, then
the 1.9 and 1.10 numbers are technically redundant too.
But the human readable version number is convenient - it is
good to understand immediately what of my lisps created that fasl directory.
2.2 The long path problem on Windows indeed exists, I"ve been bitten
by it. But the fasl path is long because it consists of the path to the
cache directory + the full path of the original source:
Robert, Fare
I've considered the aspects you describe before bothering
your with this proposal.
1. As for strengthening CCL version precision:
Yes, fasl file format is reflected as -f86 in implementation- identifier for CCL. And the fasl
asdf:
format is not necessary changed between CCL releases,
so the fasl format remains parsable/loadable by both
ccl-1.9-f96 and ccl-1.10-f96.
But the code stored in that file format may still be broken
due to compiler bugs, so we may want to recompile on
new compiler.
Especially, if the old compiler was NOT a release, but an intermediate
development version or a release candidate - I would want to recompile
when I switch from 1.10 release candidate to proper 1.10.
ASDF already segregates fasls of the same -f86 format, built
by different releases. Example cache directories:
~/.cache/ common- lisp/ccl- 1.10-f96- linux-x86/ common- lisp/ccl- 1.9-f96- linux-x86/ common- lisp/abcl- 1.3.0-fasl42- linux-x86/ common- lisp/abcl- 1.3.0-svn- 14683-fasl42- linux-x86/ common- lisp/ecl- 13.5.1- unknown- linux-i686/ ;; release 13.5.1 common- lisp/ecl- 13.5.1- 237af2e8- linux-i686/ ;; git version after release 13.5.1 common- lisp/sbcl- 1.2.0-linux- x86/ common- lisp/sbcl- 1.2.0.69- 615be91- linux-x86/
~/.cache/
~/.cache/
~/.cache/
~/.cache/
~/.cache/
~/.cache/
~/.cache/
Unlike the other lisps in the above example, tion-identifier never has source control revision,
CCL's asdf:implementa
even in trunk versions. Moreover, for the other lisps the release
version means exact source code version, while
in CCL version 1.10 allows wide variety of
versions, including release candidates.
I admit that Allegro also updates itself identifier:
by patches, and this information is omitted
in implementation-
~/.cache/ common- lisp/acl- 8.2-linux- x86/ common- lisp/acl- 9.0-linux- x86/
~/.cache/
But at least Allegro release candidate will not be
named same was as a proper release (I hope).
Therefore, I think it make sense to strengthen
CCL implementation identifier, and svn revision
is the only precise enough attribute for all cases.
But I don't insist, it's just a proposal for your consideration.
2. Is -rc1 redundant if we use svn revision number.
Only matters if you consider (1) convincing, and agree
to strengthen CCL's implementation identifier.
2.1 Consider -rc1 as a part of human readable version number:
1.9, 1.10-rc1, 1.10.
If SVN revision number makes -rc1 redundant, then
the 1.9 and 1.10 numbers are technically redundant too.
But the human readable version number is convenient - it is
good to understand immediately what of my lisps created that fasl directory.
2.2 The long path problem on Windows indeed exists, I"ve been bitten
by it. But the fasl path is long because it consists of the path to the
cache directory + the full path of the original source:
/home/ anton/. cache/common- lisp/ccl- 1.9-f96- linux-x64/ home/anton/ prj/cl- test-grid/ cl-test- grid2/agent/ agent.lx64fsl
-rc is just 3 letters, not a significant addition.
2.3 The -rc only appears in release candidate, normal
releases don't have it, so the question is irrelevant to normal releases.