FCODE suite: Difference between revisions

From OpenBIOS
Jump to navigation Jump to search
Line 9: Line 9:
== Downloading the OpenBIOS FCode Suite? ==
== Downloading the OpenBIOS FCode Suite? ==


* Modified Sources and Makefiles  
* Modified Sources and Makefiles. Available as a Tar-File:  TokzrNewSrcFiles.tar.bz2
  Available as a Tar-File:  TokzrNewSrcFiles.tar.bz2


* User's Guide documents
* User's Guide documents
      There are three documents, all in html format, plus a sub-directory of templates that provide common formatting support.
There are three documents, all in html format, plus a sub-directory of templates that provide common formatting support.
      It is important that these be kept in the same directory, as there are some links from one file to another.
 
      The documents are User's Guides to:
It is important that these be kept in the same directory, as there are some links from one file to another.
 
The documents are User's Guides to:
* the New Features of the Tokenizer,
* the New Features of the Tokenizer,
* the Detokenizer, and
* the Detokenizer, and
* the Local Values feature, which is mentioned briefly in the Tokenizer User's Guide and described fully in the Local Values document.
* the Local Values feature, which is mentioned briefly in the Tokenizer User's Guide and described fully in the Local Values document.
      Available as a Tar-File:  Documents.tar.bz2
 
Available as a Tar-File:  Documents.tar.bz2


* Executable binaries for three platforms
* Executable binaries for three platforms
      There are three programs: the Tokenizer, the Detokenizer and the ROMHeaders utility.
There are three programs: the Tokenizer, the Detokenizer and the ROMHeaders utility.
      There is a version for each of three platforms (i.e., combinations of Processor and O/S): Cygwin running on an X86, GNU Linux running on a Power-PC, and AIX running on a Power-PC.
 
      There are two variants of each version: One that has level-2 Optimization and one that has no optimization at all, which I provided for purposes of Debugging. Optimization causes some routines and variables to become obscured and inaccessible to debuggers, and also re-arranges the sequence of execution in a way that can become confusing during single-stepping.
There is a version for each of three platforms (i.e., combinations of Processor and O/S): Cygwin running on an X86, GNU Linux running on a Power-PC, and AIX running on a Power-PC.
      And finally, for each, there is a "stripped" and an "unstripped" executable image. The "unstripped" image has an extension of "unstripped"; the "stripped" image has no extension.
 
      There are separate directories for the Debug and Optim(ized Level)2 variants.
There are two variants of each version: One that has level-2 Optimization and one that has no optimization at all, which I provided for purposes of Debugging. Optimization causes some routines and variables to become obscured and inaccessible to debuggers, and also re-arranges the sequence of execution in a way that can become confusing during single-stepping.
      Under each are sub-directories for the different platforms, within which the executable images reside.
 
      Available as a Tar-File:  Binaries.tar.bz2
And finally, for each, there is a "stripped" and an "unstripped" executable image. The "unstripped" image has an extension of "unstripped"; the "stripped" image has no extension.
 
There are separate directories for the Debug and Optim(ized Level)2 variants.
 
Under each are sub-directories for the different platforms, within which the executable images reside.
 
Available as a Tar-File:  Binaries.tar.bz2


* Includ-able tokenizer-source files for Local Values Support (explained in  
* Includ-able tokenizer-source files for Local Values Support (explained in  
one of the User's Guide documents)
one of the User's Guide documents)
      Five files: One supplies the basic functionality, the second adds a development-time facility, the third generates a variant behavior ("Global" scope rather than scope limited to a single Device-Node) and the fourth combines the "Global" variant behavior with the development-time facility. The fifth allows the choice of combinations to be governed by command-line switches, and is probably the best to use with Make-files in commercial development and production environments.
 
      There is commentation in each one explaining how it is to be used.
Five files: One supplies the basic functionality, the second adds a development-time facility, the third generates a variant behavior ("Global" scope rather than scope limited to a single Device-Node) and the fourth combines the "Global" variant behavior with the development-time facility. The fifth allows the choice of combinations to be governed by command-line switches, and is probably the best to use with Make-files in commercial development and production environments.
      Available as a Tar-File:  LoclValSupport.tar.bz2
 
There is commentation in each one explaining how it is to be used.
 
Available as a Tar-File:  LoclValSupport.tar.bz2


* A list of "Still To Be Done" items, excerpted from the commentation in the Sources
* A list of "Still To Be Done" items, excerpted from the commentation in the Sources
      The source files have, scattered among their commentation, an occasional item discussing a feature or implementation detail that might be worth attention in future revisions. This file is a collection of all of them in a single convenient location.
 
      Available as a Tar-File:  StillToBeDonesList.tar.bz2
The source files have, scattered among their commentation, an occasional item discussing a feature or implementation detail that might be worth attention in future revisions. This file is a collection of all of them in a single convenient location.
 
Available as a Tar-File:  StillToBeDonesList.tar.bz2


== Unit-Test Suite ==
== Unit-Test Suite ==

Revision as of 23:56, 5 October 2006

What is the OpenBIOS FCODE Suite?

OpenBIOS provides a sophisticated set of FCODE utilities: A tokenizer, a detokenizer, and a PCI rom header utility.

In August 2006 David Paktor, of the IBM Corporation, sent us a comprehensive set of contributions to the OpenBIOS FCODE suite. We have not yet fully proofread and integrated these changes into the official OpenBIOS development tree, but in the meantime we want to offer you the opportunity to download the files directly.

These files are offered without any warranty. If you experience problems, please contact the OpenBIOS mailinglist.

Downloading the OpenBIOS FCode Suite?

  • Modified Sources and Makefiles. Available as a Tar-File: TokzrNewSrcFiles.tar.bz2
  • User's Guide documents

There are three documents, all in html format, plus a sub-directory of templates that provide common formatting support.

It is important that these be kept in the same directory, as there are some links from one file to another.

The documents are User's Guides to:

  • the New Features of the Tokenizer,
  • the Detokenizer, and
  • the Local Values feature, which is mentioned briefly in the Tokenizer User's Guide and described fully in the Local Values document.

Available as a Tar-File: Documents.tar.bz2

  • Executable binaries for three platforms

There are three programs: the Tokenizer, the Detokenizer and the ROMHeaders utility.

There is a version for each of three platforms (i.e., combinations of Processor and O/S): Cygwin running on an X86, GNU Linux running on a Power-PC, and AIX running on a Power-PC.

There are two variants of each version: One that has level-2 Optimization and one that has no optimization at all, which I provided for purposes of Debugging. Optimization causes some routines and variables to become obscured and inaccessible to debuggers, and also re-arranges the sequence of execution in a way that can become confusing during single-stepping.

And finally, for each, there is a "stripped" and an "unstripped" executable image. The "unstripped" image has an extension of "unstripped"; the "stripped" image has no extension.

There are separate directories for the Debug and Optim(ized Level)2 variants.

Under each are sub-directories for the different platforms, within which the executable images reside.

Available as a Tar-File: Binaries.tar.bz2

  • Includ-able tokenizer-source files for Local Values Support (explained in

one of the User's Guide documents)

Five files: One supplies the basic functionality, the second adds a development-time facility, the third generates a variant behavior ("Global" scope rather than scope limited to a single Device-Node) and the fourth combines the "Global" variant behavior with the development-time facility. The fifth allows the choice of combinations to be governed by command-line switches, and is probably the best to use with Make-files in commercial development and production environments.

There is commentation in each one explaining how it is to be used.

Available as a Tar-File: LoclValSupport.tar.bz2

  • A list of "Still To Be Done" items, excerpted from the commentation in the Sources

The source files have, scattered among their commentation, an occasional item discussing a feature or implementation detail that might be worth attention in future revisions. This file is a collection of all of them in a single convenient location.

Available as a Tar-File: StillToBeDonesList.tar.bz2

Unit-Test Suite

The suite of unit-test cases

This is the accumulation of test-cases that were created in the course of development. Some of these are a straightforward invocation of a feature, others are convoluted combinations of features whose interaction needed to be carefully watched, and still others are collections of coding errors, for purposes of verifying the Error-detection capabilities of the Tokenizer. They are grouped into sub-directories representing broad categories.

One small set of items might be of particular interest: In a subdirectory called TokMisc/OldTkzr are two test-case source files, called ContErr0.fth and SimplStrEscs.fth together with output files that have .OldTkzr. in their names. These are the "Log" file, FCode binary output, and DeTokenization of the FCode binary, respectively, as they appear after having been run through the "old" tokenizer (version 0.6.10, dated 2005-10-15).

The proper operation of the Test-suite has some dependency on the directory structure. Specifically, it expects the LocalValues directory, containing the Local Values Support files, to be a sibling of the parent (an "uncle" if you will) of the directory in which the Test-suite resides. There are sym-links that will clarify this.

Available as a Tar-File: TestSrc.tar.bz2

Test Tools

The tools to run the Unit-Test Suite as a batch and examine the results for changes relative to the results from a previous run

The process of manually running a unit-test and comparing against the previous output, after every change, became unwieldy, especially when it came to running the entire suite of tests. These scripts were developed to automate both processes: AutoExec automates the execution, and AutoCompare automates the comparison. Again, there is commentation in each explaining how it is used.

Available as a Tar-File: TestTools.tar.bz2

Unit-Test Suite Logs

These can be used as base-lines for comparison against future versions, or, if so be, versions compiled for additional platforms.

Note that a comparison of these against each other will not yield exact identity. Some of the test-cases, for instance, code the current date and time, others display a complete file-path, and still one other attempts to load a file for encoding using a syntax that is erroneous on some O/S's but not on others.

All in all, five or six file differences will be expected to be reported by AutoCompare.