Opened 12 years ago
Last modified 21 months ago
#218 new enhancement
More Compreshensive Regression testing
Reported by: | Logicmoo | Owned by: | ehuelsmann |
---|---|---|---|
Priority: | minor | Milestone: | 1.9.2 |
Component: | interpreter | Version: | 1.1.0-dev |
Keywords: | Cc: | ||
Parent Tickets: |
Description
There are two types of ANSI tests.. Interpreted and Complied. (ansi.interpred and ansi.compiled)
There are also two ways to run ABCL
1) "abcl library compiled" - abcl.compiled
currently the way it is compiled into abcl.jar
2) "abcl library interpreted" - abcl.interpreted
the abcl.jar or classpath contains only .lisp files
this means it contains no "class or ABCL files"
So this means ABCL can run ANSI tests in four modes:
I) abcl.interpreted.ansi.interpreted
II) abcl.compiled.ansi.interpreted
III) abcl.interpreted.ansi.compiled
IV) abcl.compiled.ansi.compiled
The old maintainer started out only able to run I and III before ABCL had a compiler. This is why there is so much "Java code".
(Not to be confused with some new goal "just enough java code to get the system able to compile itself")
As time went on (as ABCL's compiler was implemented) II and IV can now be ran. With various failures being different and giving guidance to what to fix in the "compiler" or "Lisp code" when comparing all four modes.
Currently now we only run II and IV.
This ticket is an enhancement request to begin running ABCL in all four modes.
This I believe will help spot what "java code" really can be removed and what can be removed safely.
Although the new goal "just enough java code to get the system able to compile itself" is admirable, I think we should still work to support low regressions in modes I and III AND still reduce the "Java code"
Though, I'd like all 4 modes to be ran I haven't created the patch to help us build ABCL in such a method as to make this possible yet. If someone knows how, please do so. If not, I'll get around to it.
Change History (14)
comment:1 Changed 12 years ago by
comment:2 Changed 12 years ago by
easye: A command-line switch?
Perhaps, yes. That would make the current implementation easier to test w/o messing with the current ways of building. Simply, the switch would tell ABCL to ignore the the .cls/.abcl files and always use the .lisp
Way easier than my manual way of of testing: (this here is incomplete but you get the idea)
mkdir LISPHOME
xcopy src\org\*.lisp LISPHOME\org\ /d /e
javac -d LISPHOME -sourcepath src\ src\org\armedbear\lisp\*.java src\org\armedbear\lisp\util\*.java
javac -cp LISPHOME -d LISPHOME -sourcepath src\ src\org\armedbear\lisp\java\swing\*.java src\org\armedbear\lisp\protocol\*.java
javac -cp LISPHOME -d LISPHOME -sourcepath src\ src\org\armedbear\lisp\scripting\*.java
java -cp LISPHOME org.armedbear.lisp.Main
:cd ../ansi-tests
(load "doit.lsp")
Which also doesn't preclude re-disabling the compiler,
so a command line switch enabling of a boolean is still going to be the smartest choice.
comment:4 Changed 11 years ago by
Milestone: | 2.0.0 → 1.4.0 |
---|
comment:9 Changed 4 years ago by
Milestone: | 1.6.2 → 1.7.0 |
---|
comment:14 Changed 21 months ago by
Milestone: | 1.8.1 → 1.9.2 |
---|
Why do I think modes I and III are so important?
1) it used to work in earlier version of ABCL (pre 2008)
2) It will help make it possible again to "incrementally" write new compilation (leveraged for the authoring of the first compiler) They will be able to test mode I and III for sanity. Then when that is achieved, they may feel confident to complile their base system and start to compare III and IV (the big one!).
3) Will allow once again environments that have NO compilation to "extend the system" using only lisp files with the confidence the system is ANSI regression free.