DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ P T ┃
Length: 3199 (0xc7f) Types: TextFile Names: »PORTAGE«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
PBK 26-feb-89 How to build a portable Parameter_Parser: Step 1. Gather the R1K sources !!Voyager!Environment.Directory.Rev10_2_5.Units.Utilities. Parameter_parser'spec [no need to copy] Parameter_parser'body Parameter_parser.Get_Float Parameter_parser.Parse !!Voyager!Environment.Miscellaneous.Rev10_Working.Units.Utilities. Enumeration_Ops'spec Enumeration_Ops'body String_Sort_Generic'spec String_Sort_Generic'body Name_Sort Pure_Element_Table_sort'spec Pure_Element_Table_sort'body Not copied : Universal -- too big; replace by Text_IO.Float_IO.Get Minmax -- trivial Bounded -- looks like a twin brother to Bounded_String String_Utilities -- available everywhere Directory & Polymorphic_IO -- vain; need to be replaced anyhow ---- Step 2. Clean up the source and make sure everything compiles 2.1 Eliminates all special Rational pragmas 2.2 Substitutes Bounded_String to Bounded 2.3 Substitutes instanciation of Text_Io.Float_IO for P@.Get_Float 2.4 Fix some minor errors on out parameters (!!) 2.5 Build tests => [ R1k_Initial ] ---- Step 3. Get rid of dependencies to Directory and Polymorphic_IO 3.1 Eliminate the Rational-directory-name form of lexical element 3.2 Eliminate the "indirect file" form of option 3.3 Adjust comments to reflect changes 3.4 Regresssion test => [ R1k_Raw_port ] ---- Step 4. Spawn a target development path 4.1 Model contains Text_IO, String_Utilities, Bounded_String target_key is Mc68020_Os2000, all units are joined. 4.2 Add pragma Main to main tests programs => [ M68k_Raw_port ] ---- Step 5. Eliminate all unused code, reduce generic part 5.1 Exit: 3/4 of Enumeration_Ops, Minmax, Name_Sort, String_Sort_Generic Pure_Element_Table_Sort, Unbounded_String 5.2 Inline Get_Float and include remaining part of Enumeration_ops 5.3 Create a non generic package Parameter_Parser_Defs and move to it all declarations and subprogram that do not depend on generic formals. With this package only on Parameter_Parser'body for greater flexibility (and better R1000 compatibility). 5.4 Accept changes in target path. 5.5 Regression test 5.6 Check code sizes: with CDF 4.0.6, Debugging_Level=Full N instantiations => 6K + [16K .. 22K] * N bytes codes => [ R1K_Port_1, M68k_Port_1 ] ---- Possible improvements: A. More code can migrate to the non-generic part: some little code "massaging" needs to be done (not only pure region-copy as in above steps) -> risks of regression - procedure Diagnosis (which contain error messages) - some procedures in the main Parse algorithm (with additional parameters) B. Re-introduce directory-names and Indirect-files, but with a target system dependent file-name parser and Read function (?) ---- Nota bene: the view name is given between [ and ]. All units are joined accross R1K path and M68K path.