Changeset 2118 for trunk


Ignore:
Timestamp:
May 18, 2012, 1:38:58 PM (7 years ago)
Author:
ksherdy
Message:

Added static buffer management macros. Copyback support in preparation for xmlwf perf tests.

Location:
trunk/symbol_table
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/symbol_table/main_template.cpp

    r2103 r2118  
    33 * Author: Ken Herdy
    44 *
    5  * A simple test driver that perform an 'identity' translation of CSV (single) seperate symbol values
    6  * and prints results to standard output.
    7  *
    8  * Length sorted symbol table main.
    9  *
    10  * Lookahead versus Lookback
     5 * A simple test driver.
     6 *
     7 * Lookahead versus COPYBACK
    118 *
    129 * The current implementation applies bit stream length grouping based on 'end' markers.
     
    2219 * contiguously in memory, BitBlock struct members are copied into contiguous memory positions.
    2320 *
    24  * Design Considerations.
    25  *
    26  * (1) Hash table memory allocation.
    27  * (2) Negative shift values.
    28  * (3) Whether to specialized Hash/Symbol classes on symbol length...
    29  *
    3021 */
    31 
    32 #undef IDISA_ALWAYS_INLINE
    3322
    3423#include "transpose.hpp"
     
    8473
    8574    ///////////////////////////////////////////////////////////////////////////
    86     // Stream Definitions
    87     ///////////////////////////////////////////////////////////////////////////
    88 
    89     // Byte Segments - Raw byte streams - With lookback.
    90     BitBlock aligned_buffer[SEGMENT_ALLOC_SIZE];
    91     uint8_t * lookback = (uint8_t *)aligned_buffer;
    92     memset(lookback,0,LOOKBACK_SIZE);
    93     uint8_t * raw_buffer = &lookback[LOOKBACK_SIZE];
    94 
    95     // Bit Segments - Hash bit streams - With lookback.
     75    // Parallel Data Streams with optional CopyBack
     76    ///////////////////////////////////////////////////////////////////////////
     77    uint8_t * COPYBACK;
     78    uint8_t * raw_buffer;
     79    ALLOC_STATIC_ALIGNED_BYTE_BUFFER(COPYBACK, raw_buffer);
    9680
    9781    // hash 0
    98     BitBlock aligned_h0[SEGMENT_ALLOC_SIZE/8];
    99     BitBlock * lookback_h0 = (BitBlock *) aligned_h0;
    100     memset(lookback_h0,0,LOOKBACK_SIZE/BLOCK_SIZE);
    101     BitBlock * h0 = &lookback_h0[LOOKBACK_SIZE/BLOCK_SIZE];
     82    BitBlock * COPYBACK_h0;
     83    BitBlock * h0;
     84    ALLOC_STATIC_ALIGNED_BITBLOCK_BUFFER(COPYBACK_h0, h0);
    10285
    10386    // hash 1
    104     BitBlock aligned_h1[SEGMENT_ALLOC_SIZE/8];
    105     BitBlock * lookback_h1 = (BitBlock *) aligned_h1;
    106     memset(lookback_h1,0,LOOKBACK_SIZE/BLOCK_SIZE);
    107     BitBlock * h1 = &lookback_h1[LOOKBACK_SIZE/BLOCK_SIZE];
     87    BitBlock * COPYBACK_h1;
     88    BitBlock * h1;
     89    ALLOC_STATIC_ALIGNED_BITBLOCK_BUFFER(COPYBACK_h1, h1);
    10890
    10991    // starts
    110     BitBlock aligned_starts[SEGMENT_ALLOC_SIZE/8];
    111     BitBlock * lookback_starts = (BitBlock *) aligned_starts;
    112     memset(lookback_starts,0,LOOKBACK_SIZE/BLOCK_SIZE);
    113     BitBlock * starts = &lookback_starts[LOOKBACK_SIZE/BLOCK_SIZE];
     92    BitBlock * COPYBACK_starts;
     93    BitBlock * starts;
     94    ALLOC_STATIC_ALIGNED_BITBLOCK_BUFFER(COPYBACK_starts, starts);
    11495
    11596    // follows_0 - Arbitrary length symbols
    116     BitBlock aligned_follows_0[SEGMENT_ALLOC_SIZE/8];
    117     BitBlock * lookback_follows_0 = (BitBlock *) aligned_follows_0;
    118     memset(lookback_follows_0,0,LOOKBACK_SIZE/BLOCK_SIZE);
    119     BitBlock * follows_0 = &lookback_follows_0[LOOKBACK_SIZE/BLOCK_SIZE];
    120 
    121     // BitSteams - Without lookback
     97    BitBlock * COPYBACK_follows_0;
     98    BitBlock * follows_0;
     99    ALLOC_STATIC_ALIGNED_BITBLOCK_BUFFER(COPYBACK_follows_0, follows_0);
     100
     101    ///////////////////////////////////////////////////////////////////////////
     102    // Parallel Data Streams - No CopyBack
     103    ///////////////////////////////////////////////////////////////////////////
     104
    122105    Basis_bits basis_bits[SEGMENT_BLOCKS];
    123106    Markers markers[SEGMENT_BLOCKS];
     
    159142    PERF_SEC_END(parser_timer, SEGMENT_SIZE);
    160143
    161     // copy loopback bytes
    162     memmove(lookback,&raw_buffer[SEGMENT_SIZE-LOOKBACK_SIZE],LOOKBACK_SIZE);
    163     // copy loopback bits
    164     memmove(lookback_h0,&((uint8_t *)h0)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
    165     memmove(lookback_h1,&((uint8_t *)h1)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
    166 
    167     memmove(lookback_starts,&((uint8_t *)starts)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
    168     memmove(lookback_follows_0,&((uint8_t *)follows_0)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
    169 
    170     //lookback_h0[0] = h0[SEGMENT_BLOCKS-1];
    171     //lookback_h1[0] = h1[SEGMENT_BLOCKS-1];
     144    COPY_BACK_BYTE_BUFFER(COPYBACK, raw_buffer);
     145    COPY_BACK_BITBLOCK_BUFFER(COPYBACK_h0,h0);
     146    COPY_BACK_BITBLOCK_BUFFER(COPYBACK_h1,h1);
     147    COPY_BACK_BITBLOCK_BUFFER(COPYBACK_starts,starts);
     148    COPY_BACK_BITBLOCK_BUFFER(COPYBACK_follows_0,follows_0);
     149
    172150    is.read ((char *)(raw_buffer), SEGMENT_SIZE);
    173151    chars_avail = is.gcount();
    174152
    175     // test
    176153    #ifdef IDENTITY_TEST
    177 
    178     cout << "," << endl; // prepend delimeter
    179 
    180154    uint32_t blk_offset;
    181155    for(int blk=0;blk<SEGMENT_BLOCKS;blk++) {
    182156        blk_offset = blk * BLOCKSIZE;
    183157        gid_type gid;
    184         ForwardScanner<BitBlock, scanword_t> fscanner(&(groups[blk].starts));
    185 
    186         fscanner.scan_to_next();
    187         while(!fscanner.is_done()) {
    188             gid = gids.at[fscanner.get_pos() + blk_offset];
    189             cout << string((char *)st.get_raw_data(gid), st.get_lgth(gid)) << ",";
    190             fscanner.scan_to_next();
     158
     159        #ifdef INDEX_AT_FOLLOWS
     160            ForwardScanner<BitBlock, scanword_t> scanner(&(groups[blk].follows));
     161        #else
     162            ForwardScanner<BitBlock, scanword_t> scanner(&(groups[blk].starts));
     163        #endif
     164
     165        scanner.scan_to_next();
     166        while(!scanner.is_done()) {
     167                gid = gids.at[scanner.get_pos() + blk_offset];
     168                cout << string((char *)st.get_raw_data(gid), st.get_lgth(gid)) << ",";
     169                scanner.scan_to_next();
    191170        }
    192171    }
     
    240219        blk_offset = blk * BLOCKSIZE;
    241220        gid_type gid;
    242         ForwardScanner<BitBlock, scanword_t> fscanner(&(groups[blk].starts));
    243 
    244         fscanner.scan_to_next();
    245         while(!fscanner.is_done()) {
    246                 gid = gids.at[fscanner.get_pos() + blk_offset];
     221
     222        #ifdef INDEX_AT_FOLLOWS
     223            ForwardScanner<BitBlock, scanword_t> scanner(&(groups[blk].follows));
     224        #else
     225            ForwardScanner<BitBlock, scanword_t> scanner(&(groups[blk].starts));
     226        #endif
     227
     228        scanner.scan_to_next();
     229        while(!scanner.is_done()) {
     230                gid = gids.at[scanner.get_pos() + blk_offset];
    247231                cout << string((char *)st.get_raw_data(gid), st.get_lgth(gid)) << ",";
    248                 fscanner.scan_to_next();
     232                scanner.scan_to_next();
    249233        }
    250234    }
  • trunk/symbol_table/src/Makefile

    r2113 r2118  
    2121###########################################################################
    2222id: basis_bits.hpp buffer.hpp byte_pool.hpp hash_strms.hpp  hash_table.hpp ../lib/hash.hpp  group_strms.hpp  symbol_table.hpp  main.cpp  marker_strms.hpp symbol_table.hpp transpose.hpp
    23         $(CC) -o id main.cpp $(AFLAGS) -DID_STRATEGY -DBUFFER_PROFILING #-DID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG #-DHASH_TABLE_HPP_DEBUG
     23        $(CC) -E -o id main.cpp $(AFLAGS) -DID_STRATEGY -DBUFFER_PROFILING #-DID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG #-DHASH_TABLE_HPP_DEBUG
    2424
    2525div2: basis_bits.hpp buffer.hpp byte_pool.hpp hash_strms.hpp  hash_table.hpp ../lib/hash.hpp  group_strms.hpp  symbol_table.hpp  main.cpp  marker_strms.hpp symbol_table.hpp transpose.hpp
     
    3939###########################################################################
    4040id_diff_test: id
    41         $(CC) -o id main.cpp $(AFLAGS) -DID_STRATEGY -DIDENTITY_TEST
     41        $(CC) -o id main.cpp $(AFLAGS) -DID_STRATEGY -DIDENTITY_TEST -DINDEX_AT_FOLLOWS
    4242        python $(TEST_SCRIPT) id -d
    4343        diff -rq --exclude=".svn" $(TEST_SRC_DIR) $(TEST_DST_DIR) || exit 0
    4444
    4545div2_diff_test: div2
    46         $(CC) -o div2 main.cpp $(AFLAGS) -DDIV2_STRATEGY -DIDENTITY_TEST
     46        $(CC) -o div2 main.cpp $(AFLAGS) -DDIV2_STRATEGY -DIDENTITY_TEST -DINDEX_AT_FOLLOWS
    4747        python $(TEST_SCRIPT) div2 -d
    4848        diff -rq --exclude=".svn" $(TEST_SRC_DIR) $(TEST_DST_DIR) || exit 0
    4949
    5050logbase2_diff_test: logbase2
    51         $(CC) -o logbase2 main.cpp $(AFLAGS) -DLOGBASE2_STRATEGY -DIDENTITY_TEST
     51        $(CC) -o logbase2 main.cpp $(AFLAGS) -DLOGBASE2_STRATEGY -DIDENTITY_TEST -DINDEX_AT_FOLLOWS
    5252        python $(TEST_SCRIPT) logbase2 -d
    5353        diff -rq --exclude=".svn" $(TEST_SRC_DIR) $(TEST_DST_DIR) || exit 0
    5454
    5555div2_logbase2_diff_test: div2_logbase2
    56         $(CC) -o div2_logbase2 main.cpp $(AFLAGS) -DDIV2_LOGBASE2_STRATEGY -DIDENTITY_TEST
     56        $(CC) -o div2_logbase2 main.cpp $(AFLAGS) -DDIV2_LOGBASE2_STRATEGY -DIDENTITY_TEST -DINDEX_AT_FOLLOWS
    5757        python $(TEST_SCRIPT) div2_logbase2 -d
    5858        diff -rq --exclude=".svn" $(TEST_SRC_DIR) $(TEST_DST_DIR) || exit 0
    5959
    6060bit_byte_diff_test: bit_byte
    61         $(CC) -o bit_byte main.cpp $(AFLAGS) -DBIT_BYTE_STRATEGY -DIDENTITY_TEST
     61        $(CC) -o bit_byte main.cpp $(AFLAGS) -DBIT_BYTE_STRATEGY -DIDENTITY_TEST -DINDEX_AT_FOLLOWS
    6262        python $(TEST_SCRIPT) bit_byte -d
    6363        diff -rq --exclude=".svn" $(TEST_SRC_DIR) $(TEST_DST_DIR) || exit 0
  • trunk/symbol_table/src/buffer.hpp

    r2115 r2118  
    11#ifndef BUFFER_HPP
    22#define BUFFER_HPP
     3///////////////////////////////////////////////////////////////////////////
     4// Buffer Constants
     5///////////////////////////////////////////////////////////////////////////
     6//
     7// NOTE:    Buffer segments are defined as multiples of BLOCK_SIZE.
     8//          BLOCK_SIZE defined as a number of bytes.
     9#define PADDING_BLOCKS 0
     10#define PADDING_SIZE (BLOCK_SIZE * PADDING_BLOCKS)
     11#define COPYBACK_BLOCKS 2
     12#define COPYBACK_SIZE (BLOCK_SIZE * COPYBACK_BLOCKS)
     13#define SEGMENT_BLOCKS  4
     14#define SEGMENT_SIZE (BLOCK_SIZE * SEGMENT_BLOCKS)
     15#define BUFFER_SIZE (COPYBACK_SIZE + SEGMENT_SIZE + PADDING_SIZE)
    316
    417///////////////////////////////////////////////////////////////////////////
    5 // Buffer Management
     18// Statically Allocated Parallel Data Buffer Management
     19//
     20// Parallel data buffers with optional copyback/padding segments.
     21//
     22// |COPYBACK BLOCKS|WORKING SEGMENT BLOCKS|PADDING BLOCKS|
     23//
     24// WARNING: Statically allocated bitblock arrays must remain in scope.
     25//
    626///////////////////////////////////////////////////////////////////////////
    7 #define PADDING_BLOCKS 0
    8 #define PADDING_SIZE BLOCK_SIZE * PADDING_BLOCKS
    9 #define LOOKBACK_BLOCKS 4
    10 #define LOOKBACK_SIZE BLOCK_SIZE * LOOKBACK_BLOCKS
    11 #define SEGMENT_BLOCKS  5000                            // Slurp file
    12 #define SEGMENT_SIZE BLOCK_SIZE * (SEGMENT_BLOCKS)      // A multiple of BLOCK_SIZE (n bytes)
    13 #define SEGMENT_ALLOC_SIZE (LOOKBACK_SIZE + SEGMENT_SIZE + PADDING_SIZE) // / sizeof(BitBlock)
     27#define ALLOC_STATIC_ALIGNED_BYTE_BUFFER(copyback, base) \
     28        BitBlock aligned_##base[BUFFER_SIZE]; \
     29        copyback = (uint8_t *)aligned_##base; \
     30        memset(copyback,0,COPYBACK_SIZE); \
     31        base = &copyback[COPYBACK_SIZE]; \
     32
     33#define ALLOC_STATIC_ALIGNED_BITBLOCK_BUFFER(copyback, base) \
     34        BitBlock aligned_##base[BUFFER_SIZE/8]; \
     35        copyback = (BitBlock *) aligned_##base; \
     36        memset(copyback,0,COPYBACK_SIZE/8); \
     37        base = &copyback[COPYBACK_BLOCKS]; \
     38
     39#define COPY_BACK_BYTE_BUFFER(copyback, base) \
     40do {    memmove(copyback,&((uint8_t *)base)[SEGMENT_SIZE-COPYBACK_SIZE],COPYBACK_SIZE);\
     41} while(0)
     42
     43#define COPY_BACK_BITBLOCK_BUFFER(copyback, base) \
     44do {    memmove(copyback,&((uint8_t *)base)[(SEGMENT_SIZE-COPYBACK_SIZE)/8],COPYBACK_SIZE/8);\
     45} while(0)
    1446
    1547#endif // BUFFER_HPP
  • trunk/symbol_table/src/symbol_table.hpp

    r2113 r2118  
    3636
    3737#ifdef ID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG
    38 static void print_symbol_debug(gid_type gid, const uint8_t buffer [], const int32_t spos, const uint32_t epos, const uint32_t lgth) {
     38static void print_symbol_debug(gid_type gid, const uint8_t buffer [], const int32_t spos, const uint32_t fpos, const uint32_t lgth) {
    3939        cout << "{Symbol:{";
    4040        cout << "GID:" << gid;
     
    4242        cout << ",Value:'" << string((char *)&(buffer[spos]), lgth) << "'";
    4343        cout << ",Start:" << spos;
    44         cout << ",Follows:" << epos;
     44        cout << ",Follows:" << fpos;
    4545        cout << "}}" << endl;
    4646}
     
    315315
    316316                        if(spos < 0) { // boundary case
     317                                        #ifdef ID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG
     318                                            cout << "Boundary Case: ";
     319                                        #endif
     320
    317321                                        spos = (BLOCK_SIZE - (-1 * spos)) & (BLOCK_SIZE - 1);
    318322                                        blk_count = (lgth/BLOCK_SIZE)+1;
     
    324328                        gid = h_table.lookup_or_insert(buffer_base, spos, lgth, h0_base, h1_base, gid_factory, gid_data); // WARNING: spos must be >= 0
    325329
    326                         #ifdef ID_SYMBOL_STORE_SYMBOL_GIDS_AT_FOLLOW_POSITION
    327                         gids.at[blk_offset + epos] = gid;
     330                        #ifdef INDEX_AT_FOLLOWS
     331                            gids.at[blk_offset + fpos] = gid;
    328332                        #else
    329                         gids.at[blk_offset + fpos - gid_data.get_bytes_lgth(gid)] = gid;
     333                            gids.at[blk_offset + fpos - gid_data.get_bytes_lgth(gid)] = gid;
    330334                        #endif
    331335
     
    372376
    373377                while(starts_rscanner.is_done()) { // boundary case
    374                           starts_base--;
     378                        #ifdef ID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG
     379                            cout << "Boundary Case: ";
     380                        #endif
     381
     382                        starts_base--;
    375383
    376384                        blk_count++;
     
    392400                gid = h_table.lookup_or_insert(buffer_base, spos, lgth, h0_base, h1_base, gid_factory, gid_data);
    393401
    394                 #ifdef ID_SYMBOL_STORE_SYMBOL_GIDS_AT_END_POSITION
    395                 gids.at[blk_offset + epos] = gid;
     402                #ifdef INDEX_AT_FOLLOWS
     403                    gids.at[blk_offset + fpos] = gid;
    396404                #else
    397                 gids.at[blk_offset + fpos - lgth] = gid;
     405                    gids.at[blk_offset + fpos - lgth] = gid;
    398406                #endif
    399407
     
    419427        gid_type gid;
    420428        int32_t spos;
    421         int32_t epos;
     429        int32_t fpos;
    422430        ForwardScanner<BitBlock, scanword_t> fscanner(&follows);
    423431
    424432        fscanner.scan_to_next();
    425         epos = fscanner.get_pos();
    426         spos = (epos - lgth);
     433        fpos = fscanner.get_pos();
     434        spos = (fpos - lgth);
    427435
    428436        if(!fscanner.is_done() && (spos < 0) ) { // block boundary case
     
    445453
    446454        #ifdef ID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG
    447                         print_symbol_debug(gid, lb_buffer, lb_spos, epos, lgth);
     455                        print_symbol_debug(gid, lb_buffer, lb_spos, fpos, lgth);
    448456        #endif
    449457
    450458        fscanner.scan_to_next();
    451         epos = fscanner.get_pos();
    452         spos = (epos - lgth);
     459        fpos = fscanner.get_pos();
     460        spos = (fpos - lgth);
    453461
    454462        }
     
    460468
    461469        #ifdef ID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG
    462                 print_symbol_debug(gid, buffer, spos, epos, lgth);
     470                print_symbol_debug(gid, buffer, spos, fpos, lgth);
    463471        #endif
    464472
    465473                fscanner.scan_to_next();
    466                 epos = fscanner.get_pos();
    467                 spos = (epos - lgth);
     474                fpos = fscanner.get_pos();
     475                spos = (fpos - lgth);
    468476        }
    469477
  • trunk/symbol_table/symbol_table.pro.user

    r2059 r2118  
    22<qtcreator>
    33 <data>
    4   <variable>ProjectExplorer.Project.ActiveTarget</variable>
     4  <variable>RunConfiguration0-BaseEnvironmentBase</variable>
     5  <value type="int">2</value>
     6 </data>
     7 <data>
     8  <variable>RunConfiguration0-CommandLineArguments</variable>
     9  <valuelist type="QVariantList"/>
     10 </data>
     11 <data>
     12  <variable>RunConfiguration0-ProFile</variable>
     13  <value type="QString">symbol_table.pro</value>
     14 </data>
     15 <data>
     16  <variable>RunConfiguration0-RunConfiguration.name</variable>
     17  <value type="QString">symbol_table</value>
     18 </data>
     19 <data>
     20  <variable>RunConfiguration0-UseDyldImageSuffix</variable>
     21  <value type="bool">false</value>
     22 </data>
     23 <data>
     24  <variable>RunConfiguration0-UseTerminal</variable>
     25  <value type="bool">false</value>
     26 </data>
     27 <data>
     28  <variable>RunConfiguration0-UserEnvironmentChanges</variable>
     29  <valuelist type="QVariantList"/>
     30 </data>
     31 <data>
     32  <variable>RunConfiguration0-UserSetName</variable>
     33  <value type="bool">false</value>
     34 </data>
     35 <data>
     36  <variable>RunConfiguration0-UserSetWorkingDirectory</variable>
     37  <value type="bool">false</value>
     38 </data>
     39 <data>
     40  <variable>RunConfiguration0-UserWorkingDirectory</variable>
     41  <value type="QString"></value>
     42 </data>
     43 <data>
     44  <variable>RunConfiguration0-type</variable>
     45  <value type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
     46 </data>
     47 <data>
     48  <variable>activeRunConfiguration</variable>
    549  <value type="int">0</value>
    650 </data>
    751 <data>
    8   <variable>ProjectExplorer.Project.EditorSettings</variable>
     52  <variable>activebuildconfiguration</variable>
     53  <value type="QString">Debug</value>
     54 </data>
     55 <data>
     56  <variable>buildConfiguration-Debug</variable>
    957  <valuemap type="QVariantMap">
    10    <value key="EditorConfiguration.Codec" type="QByteArray">System</value>
     58   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
     59   <value key="QtVersionId" type="int">0</value>
     60   <value key="ToolChain" type="int">0</value>
     61   <value key="buildConfiguration" type="int">2</value>
    1162  </valuemap>
    1263 </data>
    1364 <data>
    14   <variable>ProjectExplorer.Project.Target.0</variable>
     65  <variable>buildConfiguration-Release</variable>
    1566  <valuemap type="QVariantMap">
    16    <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Desktop</value>
    17    <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Desktop</value>
    18    <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.DesktopTarget</value>
    19    <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
    20    <value key="ProjectExplorer.Target.ActiveDeployConfiguration" type="int">0</value>
    21    <value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
    22    <valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
    23     <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
    24      <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
    25       <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
    26       <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
    27       <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
    28       <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
    29       <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value>
    30      </valuemap>
    31      <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap">
    32       <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
    33       <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
    34       <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
    35       <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
    36       <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
    37       <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
    38      </valuemap>
    39      <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value>
    40      <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value>
    41      <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Build</value>
    42      <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value>
    43     </valuemap>
    44     <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap">
    45      <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
    46       <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
    47       <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
    48       <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
    49       <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
    50       <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
    51        <value type="QString">clean</value>
    52       </valuelist>
    53       <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
    54      </valuemap>
    55      <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value>
    56      <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value>
    57      <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Clean</value>
    58      <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value>
    59     </valuemap>
    60     <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value>
    61     <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
    62     <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
    63     <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Debug</value>
    64     <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Debug</value>
    65     <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
    66     <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
    67     <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/nigelm/workspace2/icxml/src/xerces-c-3.1.1/src/symbol_table-build-desktop</value>
    68     <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
    69     <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
    70     <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
    71    </valuemap>
    72    <valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap">
    73     <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
    74      <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
    75       <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
    76       <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
    77       <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
    78       <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
    79       <value key="QtProjectManager.QMakeBuildStep.QMakeForced" type="bool">false</value>
    80      </valuemap>
    81      <valuemap key="ProjectExplorer.BuildStepList.Step.1" type="QVariantMap">
    82       <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
    83       <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
    84       <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
    85       <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
    86       <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
    87       <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
    88      </valuemap>
    89      <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">2</value>
    90      <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Build</value>
    91      <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Build</value>
    92      <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Build</value>
    93     </valuemap>
    94     <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.1" type="QVariantMap">
    95      <valuemap key="ProjectExplorer.BuildStepList.Step.0" type="QVariantMap">
    96       <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString"></value>
    97       <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
    98       <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
    99       <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
    100       <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
    101       <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
    102      </valuemap>
    103      <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">1</value>
    104      <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Clean</value>
    105      <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Clean</value>
    106      <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Clean</value>
    107     </valuemap>
    108     <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">2</value>
    109     <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
    110     <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
    111     <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Release</value>
    112     <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
    113     <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
    114     <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
    115     <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/nigelm/workspace2/icxml/src/xerces-c-3.1.1/src/symbol_table-build-desktop</value>
    116     <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">2</value>
    117     <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
    118     <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
    119    </valuemap>
    120    <value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">2</value>
    121    <valuemap key="ProjectExplorer.Target.DeployConfiguration.0" type="QVariantMap">
    122     <valuemap key="ProjectExplorer.BuildConfiguration.BuildStepList.0" type="QVariantMap">
    123      <value key="ProjectExplorer.BuildStepList.StepsCount" type="int">0</value>
    124      <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">Deploy</value>
    125      <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Deploy</value>
    126      <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.BuildSteps.Deploy</value>
    127     </valuemap>
    128     <value key="ProjectExplorer.BuildConfiguration.BuildStepListCount" type="int">1</value>
    129     <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">No deployment</value>
    130     <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">No deployment</value>
    131     <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">ProjectExplorer.DefaultDeployConfiguration</value>
    132    </valuemap>
    133    <value key="ProjectExplorer.Target.DeployConfigurationCount" type="int">1</value>
    134    <valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
    135     <value key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName" type="QString">symbol_table</value>
    136     <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">symbol_table</value>
    137     <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
    138     <value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
    139     <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/>
    140     <value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">symbol_table.pro</value>
    141     <value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
    142     <value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
    143     <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
    144     <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">false</value>
    145     <value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString"></value>
    146     <value key="RunConfiguration.QmlDebugServerPort" type="uint">3768</value>
    147     <value key="RunConfiguration.UseCppDebugger" type="bool">true</value>
    148     <value key="RunConfiguration.UseQmlDebugger" type="bool">false</value>
    149    </valuemap>
    150    <value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
     67   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
     68   <value key="QtVersionId" type="int">0</value>
     69   <value key="buildConfiguration" type="int">0</value>
    15170  </valuemap>
    15271 </data>
    15372 <data>
    154   <variable>ProjectExplorer.Project.TargetCount</variable>
    155   <value type="int">1</value>
     73  <variable>buildconfiguration-Debug-buildstep0</variable>
     74  <valuemap type="QVariantMap">
     75   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
     76  </valuemap>
    15677 </data>
    15778 <data>
    158   <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
    159   <value type="QString">{3369d8a0-08d7-4ba0-929a-410d90a79a51}</value>
     79  <variable>buildconfiguration-Debug-buildstep1</variable>
     80  <valuemap type="QVariantMap">
     81   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
     82  </valuemap>
    16083 </data>
    16184 <data>
    162   <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
    163   <value type="int">8</value>
     85  <variable>buildconfiguration-Debug-cleanstep0</variable>
     86  <valuemap type="QVariantMap">
     87   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Debug</value>
     88   <value key="cleanConfig" type="bool">true</value>
     89   <valuelist key="makeargs" type="QVariantList">
     90    <value type="QString">clean</value>
     91   </valuelist>
     92  </valuemap>
     93 </data>
     94 <data>
     95  <variable>buildconfiguration-Release-buildstep0</variable>
     96  <valuemap type="QVariantMap">
     97   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
     98  </valuemap>
     99 </data>
     100 <data>
     101  <variable>buildconfiguration-Release-buildstep1</variable>
     102  <valuemap type="QVariantMap">
     103   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
     104  </valuemap>
     105 </data>
     106 <data>
     107  <variable>buildconfiguration-Release-cleanstep0</variable>
     108  <valuemap type="QVariantMap">
     109   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString">Release</value>
     110  </valuemap>
     111 </data>
     112 <data>
     113  <variable>buildconfigurations</variable>
     114  <valuelist type="QVariantList">
     115   <value type="QString">Debug</value>
     116   <value type="QString">Release</value>
     117  </valuelist>
     118 </data>
     119 <data>
     120  <variable>buildstep0</variable>
     121  <valuemap type="QVariantMap">
     122   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
     123   <value key="mkspec" type="QString"></value>
     124  </valuemap>
     125 </data>
     126 <data>
     127  <variable>buildstep1</variable>
     128  <valuemap type="QVariantMap">
     129   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
     130  </valuemap>
     131 </data>
     132 <data>
     133  <variable>buildsteps</variable>
     134  <valuelist type="QVariantList">
     135   <value type="QString">trolltech.qt4projectmanager.qmake</value>
     136   <value type="QString">trolltech.qt4projectmanager.make</value>
     137  </valuelist>
     138 </data>
     139 <data>
     140  <variable>cleanstep0</variable>
     141  <valuemap type="QVariantMap">
     142   <value key="ProjectExplorer.BuildConfiguration.DisplayName" type="QString"></value>
     143   <value key="clean" type="bool">true</value>
     144  </valuemap>
     145 </data>
     146 <data>
     147  <variable>cleansteps</variable>
     148  <valuelist type="QVariantList">
     149   <value type="QString">trolltech.qt4projectmanager.make</value>
     150  </valuelist>
     151 </data>
     152 <data>
     153  <variable>defaultFileEncoding</variable>
     154  <value type="QByteArray">System</value>
     155 </data>
     156 <data>
     157  <variable>project</variable>
     158  <valuemap type="QVariantMap"/>
    164159 </data>
    165160</qtcreator>
Note: See TracChangeset for help on using the changeset viewer.