Opened 12 years ago

Last modified 22 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 Logicmoo

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.

comment:2 Changed 12 years ago by Logicmoo

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:3 Changed 11 years ago by Mark Evenson

Milestone: 2.02.0.0

Milestone renamed

comment:4 Changed 11 years ago by Mark Evenson

Milestone: 2.0.01.4.0

comment:5 Changed 8 years ago by Mark Evenson

Milestone: 1.4.01.5.0

Ticket retargeted after milestone closed

comment:6 Changed 8 years ago by Mark Evenson

Milestone: 1.5.01.6.0

Ticket retargeted after milestone closed

comment:7 Changed 5 years ago by Mark Evenson

Milestone: 1.6.01.6.1

Ticket retargeted after milestone closed

comment:8 Changed 5 years ago by Mark Evenson

Milestone: 1.6.11.6.2

Ticket retargeted after milestone closed

comment:9 Changed 5 years ago by Mark Evenson

Milestone: 1.6.21.7.0

comment:10 Changed 5 years ago by Mark Evenson

Milestone: 1.7.01.7.1

Ticket retargeted after milestone closed

comment:11 Changed 4 years ago by Mark Evenson

Milestone: 1.7.11.7.2

Ticket retargeted after milestone closed

comment:12 Changed 4 years ago by Mark Evenson

Milestone: 1.7.21.8.0

Milestone renamed

comment:13 Changed 4 years ago by Mark Evenson

Milestone: 1.8.01.8.1

Ticket retargeted after milestone closed

comment:14 Changed 22 months ago by Mark Evenson

Milestone: 1.8.11.9.2
Note: See TracTickets for help on using tickets.