Commit graph

2493 commits

Author SHA1 Message Date
Ali Saidi
5f7952f8e1 fix for delayed state machine changes
--HG--
extra : convert_revision : db19e3687f48799725a9062e014588d318988cee
2005-09-29 17:09:53 -04:00
Steve Reinhardt
70a799a8cf Fix for qdo & new pool node build.
util/qdo:
    unset PROMPT_COMMAND in shell in case system sets
    it for us.

--HG--
extra : convert_revision : f9f20f7dc6b9585b60f3ce53aadd06e7d64f5179
2005-09-29 16:03:36 -04:00
Steve Reinhardt
a7807792be Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into  zizzer.eecs.umich.edu:/.automount/poolfs/z/home/stever/bk/m5

--HG--
extra : convert_revision : c777f18ba8462b7286ec8588b859de8f4091a772
2005-09-25 16:48:24 -04:00
Steve Reinhardt
23e75433d3 Create build_options/current dir when necessary.
build/SConstruct:
    Need to create build_options/current the first time through.

--HG--
extra : convert_revision : 13bf8c69a4a30671283a8b789ed21875b2301f24
2005-09-24 21:24:44 -04:00
Steve Reinhardt
76a32552c4 Split build options files into a static set of defaults
for committing to bk and a dynamically updated set which
are not under revision control.

build/SConstruct:
    Split build options into static defaults and dynamic "current" settings.

--HG--
rename : build/build_options/ALPHA_FS => build/build_options/default/ALPHA_FS
rename : build/build_options/ALPHA_FS_TL => build/build_options/default/ALPHA_FS_TL
rename : build/build_options/ALPHA_SE => build/build_options/default/ALPHA_SE
extra : convert_revision : 8219211a3f2ce955fd6e2c34c169cac3fc704854
2005-09-24 21:16:02 -04:00
Steve Reinhardt
310f608757 Clean up indentation in isa_desc.
arch/alpha/isa_desc:
    Little bit of re-ordering and indentation clean-up.

--HG--
extra : convert_revision : e538ff89d8b507c3e1aa68a032578fcaa645d7ee
2005-09-24 18:17:51 -04:00
Steve Reinhardt
6637874225 Fix IDE disk UDMA mode support mask to actually reflect support for
modes 4 *and below*, not just mode 4.

dev/ide_disk.cc:
    Fix UDMA mode support mask to actually reflect support for
    modes 4 *and below*, not just mode 4.

--HG--
extra : convert_revision : 3506d503a5e8ce8a8686fb3a552383d365be0d41
2005-09-24 15:22:28 -04:00
Steve Reinhardt
d60de7122d Add functions to System object to set up function-based events,
including automatically fixing up addresses to deal with
optionally executed Alpha gp update prolog.

SConscript:
    Remove freebsd_events.cc and linux_events.cc.
base/remote_gdb.cc:
cpu/pc_event.cc:
kern/system_events.cc:
kern/system_events.hh:
    PCEvents now schedule themselves in constructor.
cpu/pc_event.hh:
    PCEvents now schedule themselves in the constructor.
    Get rid of constructor versions that don't take an address and
    all the schedule() methods that are now unnecessary.
kern/freebsd/freebsd_system.cc:
kern/freebsd/freebsd_system.hh:
    Use new System methods to schedule function-based events.
    Move FreeBSD-specific function event classes into FreebsdSystem.
kern/linux/linux_system.cc:
kern/linux/linux_system.hh:
    Use new System methods to schedule function-based events.
    Move Linux-specific function event classes into LinuxSystem.
kern/tru64/tru64_events.hh:
    PCEvents now schedule themselves in constructor.
    Add DebugPrintfrEvent to encapsulate raw setting as new type
    (to work better with new System function-event method.)
kern/tru64/tru64_system.cc:
    Use new System methods to schedule function-based events.
kern/tru64/tru64_system.hh:
    Add DebugPrintfrEvent to encapsulate raw setting as new type
    (to work better with new System function-event method.)
sim/system.cc:
sim/system.hh:
    Add functions to set up function-based events, including
    automatically fixing up addresses to deal with optionally
    executed Alpha gp update prolog.

--HG--
extra : convert_revision : c2cf09144297b6602afe755a34a0a2227023783f
2005-09-24 14:20:29 -04:00
Steve Reinhardt
b15a7aaf5e Support for compiling and testing on pool via 'qdo' script.
For this to work qdo must be on your path.  I've copied it into
/usr/local/bin on zizzer.

build/SConstruct:
    Add BATCH and BATCH_CMD options to support compiling/testing
    on pool via qdo.

--HG--
extra : convert_revision : b7fc46465e897f7f15ed4a67f6735886917a6c4b
2005-09-22 15:27:42 -04:00
Nathan Binkert
e1c61e5b2f Tweak the set of coalesced interrupts
dev/ns_gige.cc:
    clean up usage of ISR_FOO macros
dev/ns_gige_reg.h:
    Clean up #defines
    make ISR_RXIDLE and ISR_TXIDLE coalesced

--HG--
extra : convert_revision : fd64fc6a441d096fc45737fdcb837de8868ca10a
2005-09-18 21:22:57 -04:00
Nathan Binkert
b1a1566818 fix the MAX_CHECKPOINTS stuff
sim/serialize.cc:
    Make the max checkpoint thing actually stop after the last
    checkpoint

--HG--
extra : convert_revision : 091179c4706e9876a9b7e826513c5c14ce6b72af
2005-09-18 21:20:24 -04:00
Nathan Binkert
02098f8e7b Totally re-work the way that jobfiles are done so there is more
information that can be used for other aspects of sending jobs.
New graphing output stuff with matplotlib.

util/pbs/job.py:
    Shuffle code around and create the JobDir class which encapsulates
    all of the functionality needed for making, organizing, and cleaning
    a job directory.
    Better status output
util/pbs/jobfile.py:
    Majory re-working of the jobfile code.
    A job file now consists of several objects that describe how
    jobs should be run, it includes information about checkpoints,
    and graphing.
util/pbs/send.py:
    use the new jobfile code.
    deal with the 15 character limit of pbs by truncating the name and
    using the raj hack.
util/stats/db.py:
    fix the __str__ function for nodes
    provide __getitem__ for the Database class
util/stats/stats.py:
    use the jobfile stuff to figure out what the proper naming
    and organziation of the graphs should be.
    move all output code to output.py, get rid of ploticus and use
    matplotlib

--HG--
rename : util/categories.py => util/stats/categories.py
extra : convert_revision : 0d793cbf6ad9492290e8ec875ce001c84095e1f7
2005-09-17 16:51:26 -04:00
Nathan Binkert
f88d7c7456 Fix the EtherDump parameters
dev/etherdump.cc:
    no default parameters anymore they should be in python
python/m5/objects/Ethernet.py:
    move the maxlen parameter for EtherDump into python

--HG--
extra : convert_revision : a796353a68907dfeb22059cd3ad536e6e8f60998
2005-09-17 10:47:16 -04:00
Nathan Binkert
36b9e9fcda Simple option cleanup in the config files.
--HG--
extra : convert_revision : 50b9a1bf79705badabc6e0a6b4402e79997866e6
2005-09-17 10:43:05 -04:00
Nathan Binkert
c7b211e71f various changes to the boot scripts
configs/boot/iscsi-client.rcS:
configs/boot/nfs-client-dbench.rcS:
    don't use the /proc/m5 stuff, use the m5 binary
configs/boot/nfs-client-nhfsstone.rcS:
    set up checkpoints
    change nhfsstone configuration
configs/boot/nfs-client.rcS:
    use more memory
configs/boot/nfs-server.rcS:
    change the writeback frequency
    load a larger simulated disk image.
    create more nfsd threads

--HG--
extra : convert_revision : 242dfd261d62782c06847d64b9f6aa06664a1ec9
2005-09-16 22:54:01 -04:00
Ali Saidi
d4de2ba0b4 only set an approriately sized piece of data. so break where appropriate
Again... how did this work?

--HG--
extra : convert_revision : 06dcab4ac9f5760c9847d0fa47fea67c4a46544a
2005-09-12 22:53:57 -04:00
Ali Saidi
00a2e4a120 Merge zizzer:/bk/m5
into  zeep.eecs.umich.edu:/z/saidi/work/m5

--HG--
extra : convert_revision : 792c2993791fdce6170c7b875fc6510c74faae65
2005-09-12 16:09:58 -04:00
Ali Saidi
332f184824 format string did not match variable size -> stack corruption
--HG--
extra : convert_revision : b7c5aaa9d1f1242cfe337d6555e476f622a2aa6d
2005-09-12 16:09:51 -04:00
Steve Reinhardt
4aa6805949 Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into  zizzer.eecs.umich.edu:/z/stever/bk/m5

--HG--
extra : convert_revision : 2d1c571b1507eb34b22f983d76ca48a7ca61c3b9
2005-09-12 08:59:20 -04:00
Steve Reinhardt
b80bddd8b6 More minor tweaks for fenv/cygwin.
build/SConstruct:
    No need to warn about regression failures w/o fenv.h anymore.

--HG--
extra : convert_revision : f40efb849f4c3063ebb58f6e277473467916573d
2005-09-12 08:59:14 -04:00
Ali Saidi
94bf249af4 Merge zizzer:/bk/m5
into  zeep.eecs.umich.edu:/z/saidi/work/m5

--HG--
extra : convert_revision : 3eff9b41fbf30ae0365adf05a71625c92ce1a4c0
2005-09-12 03:01:57 -04:00
Ali Saidi
c62760e3cb fixes for gcc 4.0
base/mysql.hh:
    include mysql_version to get rid of that annoying mysql error.
    make sure refcount is set in all constructors
base/pollevent.hh:
dev/ethertap.hh:
dev/pciconfigall.hh:
dev/tsunami_cchip.hh:
dev/tsunami_io.hh:
dev/tsunami_pchip.hh:
sim/param.cc:
    fix for gcc 4

--HG--
extra : convert_revision : be626af2f40ca402818996ef27249ae256c63ef1
2005-09-12 03:01:43 -04:00
Steve Reinhardt
11cb904ad7 Explicitly handle rounding on FP-to-integer conversions.
Seems to avoid the significant problems on platforms w/o fenv.h.

arch/alpha/isa_desc:
    Explicitly handle rounding on FP-to-integer conversions.
    Seems to avoid the significant problems on platforms w/o fenv.h.
    Get rid of FP "Fast" vs "General" distinction... more headache than
    it's worth.
arch/isa_parser.py:
    Fix bug with "%s" in C++ templates (must escape properly to
    pass through Python string interpolation).

--HG--
extra : convert_revision : de964d764e67e0934ac0ef535f53c974640731fb
2005-09-11 19:29:41 -04:00
Steve Reinhardt
845bdb0d8e Regression tests now run under scons!
For example, 'scons ALPHA_SE/test/opt/quick' will build
ALPHA_SE/m5.opt if necessary and run all the self-identified
"quick" tests on it.  Other possibilities:
- Run just test1: scons ALPHA_SE/test/opt/test1
- Run all tests:  scons ALPHA_SE/test/opt
- Run all tests on debug build: scons ALPHA_SE/test/debug
- Update test1 reference outputs in m5-test:
scons update_ref=y ALPHA_SE/test/opt/test1
The proper tests will be selected based on the setting
of FULL_SYSTEM, ALPHA_TLASER, etc.

README:
    Update directions to use scons-based test invocation.
SConscript:
    Return list of generated build environments to SConstruct
    so it can associate tests with each of them.
    Set 'M5Binary' attribute on each env to record name of
    generated binary to be tested.
build/SConstruct:
    - Support invoking m5-test tests via scons.
    - Add new non-sticky option category, for 'update_ref'.
    - Move existing "sticky" option definitions out of
    build_dir loop.  Someday we can generate help text
    from these.
    - Make 'CC' and 'CXX' sticky options; use environment vars as
    defaults if available.
    - Make config builder more scons-y.
python/m5/__init__.py:
    Make AddToPath() correctly handle relative path arguments.
    Assumes that sys.path[0] has the directory where the current
    Python file lives; new m5execfile() function sets this up
    properly for exec'd files.

--HG--
extra : convert_revision : 48896688592e210d8e63f96c34e57474853d0e66
2005-09-05 16:31:27 -04:00
Steve Reinhardt
9196fbfe5e Fixes to build with gcc 4.0.
sim/param.hh:
    Add "template<>" to explicit template specialization.

--HG--
extra : convert_revision : 05e2f4ad8141a8782fe09a0b6824baf56c9fc957
2005-09-02 21:30:02 -04:00
Steve Reinhardt
1b77c1e24b Force Unix EOL even on Windows (i.e. Cygwin).
--HG--
extra : convert_revision : 0aa171dc79c4d06d45e28d2907c7eb6d6fde433e
2005-09-02 17:23:03 -04:00
Steve Reinhardt
72900e7a1d Get rid of non-essential default-valued options.
This lets SConstruct set things like USE_MYSQL
based on the host w/o complaining.

build/build_options/ALPHA_FS_TL:
build/build_options/ALPHA_FS:
build/build_options/ALPHA_SE:
    Get rid of non-essential default-valued options.

--HG--
extra : convert_revision : 96308897d2b9269dbefffa6d50ac491379444030
2005-09-02 17:21:02 -04:00
Steve Reinhardt
39ce4fbaf9 Bug fix: can't increment an iterator after you erase
the thing it points to.  Somehow Linux doesn't care,
but Cygwin sure does.

--HG--
extra : convert_revision : 1209a75831f080f17a95433e546d7074f9f07332
2005-09-02 14:38:11 -04:00
Steve Reinhardt
809230bbde Fix to #define True/False option values as 0/1 in header.
--HG--
extra : convert_revision : 7fbae4816a4d0a5ed942e0ad8afed9464dd1ba11
2005-09-01 11:35:03 -04:00
Steve Reinhardt
23a9102d01 Convert type of max_time and progress_interval parameters
from Latency to Tick, and rename max_time to max_tick.

python/m5/objects/Root.py:
sim/root.cc:
    Convert type of max_time and progress_interval
    from Latency to Tick, and rename max_time to max_tick.

--HG--
extra : convert_revision : 2f2aacf6321c3003a0ce834acd8fb726abf27ce3
2005-09-01 11:32:58 -04:00
Nathan Binkert
1b39eb38bd more scons fixes for mysql
build/SConstruct:
    Only the major and minor mysql version numbers are guaranteed
    to be integers (e.g. 4.1.10a), and since that's all we care about
    only try to deal with those.
    for older versions of mysql, the strings returned by mysql_config may
    have quotes in them, remove those so things work

--HG--
extra : convert_revision : de32f3e76618f0caf4d5578edd61beaeef666eb6
2005-08-31 10:00:42 -04:00
Steve Reinhardt
919aa6dd00 Move options files from <build_dir>/build_options to build_options/<build_dir>.
build/SConstruct:
    Move options file from <build_dir>/build_options to build_options/<build_dir>.

--HG--
extra : convert_revision : 0363f79ef5c9c157d9018fcae9c5e055e38e552d
2005-08-31 00:19:37 -04:00
Steve Reinhardt
284e3e9c46 Add script to generate new build directories.
--HG--
extra : convert_revision : 2d2455ced5b33476bf88483c81ddf447a0658be2
2005-08-30 23:53:35 -04:00
Steve Reinhardt
87dfb4050e Fix to work with older versions of mysql_config that don't support --include.
Also add mysql version check.

--HG--
extra : convert_revision : 36b6174ed1c64e8c5516f6adee71f27e068ceca2
2005-08-30 23:34:36 -04:00
Steve Reinhardt
c4793184bd Build options are set via a build_options file in the
build directory instead of being inferred from the name
of the build directory.
Options are passed to C++ via config/*.hh files instead of
via the command line.  Build option flags are now always
defined to 0 or 1, so checks must use '#if' rather than
'#ifdef'.

SConscript:
    MySQL detection moved to SConstruct.
    Add config/*.hh files (via ConfigFile builder).
arch/alpha/alpha_memory.cc:
arch/alpha/ev5.cc:
arch/alpha/ev5.hh:
arch/alpha/isa_traits.hh:
base/fast_alloc.hh:
base/statistics.cc:
base/statistics.hh:
base/stats/events.cc:
base/stats/events.hh:
cpu/base.cc:
cpu/base.hh:
cpu/base_dyn_inst.cc:
cpu/base_dyn_inst.hh:
cpu/exec_context.cc:
cpu/exec_context.hh:
cpu/o3/alpha_cpu.hh:
cpu/o3/alpha_cpu_builder.cc:
cpu/o3/alpha_cpu_impl.hh:
cpu/o3/alpha_dyn_inst.hh:
cpu/o3/alpha_dyn_inst_impl.hh:
cpu/o3/alpha_params.hh:
cpu/o3/commit_impl.hh:
cpu/o3/cpu.cc:
cpu/o3/cpu.hh:
cpu/o3/fetch_impl.hh:
cpu/o3/iew.hh:
cpu/o3/iew_impl.hh:
cpu/o3/regfile.hh:
cpu/o3/rename_impl.hh:
cpu/o3/rob_impl.hh:
cpu/ozone/cpu.hh:
cpu/pc_event.cc:
cpu/simple/cpu.cc:
cpu/simple/cpu.hh:
sim/process.cc:
sim/process.hh:
    Convert compile flags from def/undef to 0/1.
    Set via #include config/*.hh instead of command line.
arch/alpha/isa_desc:
    Convert compile flags from def/undef to 0/1.
    Set via #include config/*.hh instead of command line.
    Revamp fenv.h support... most of the ugliness is hidden
    in base/fenv.hh now.
base/mysql.hh:
    Fix typo in #ifndef guard.
build/SConstruct:
    Build options are set via a build_options file in the
    build directory instead of being inferred from the name
    of the build directory.
    Options are passed to C++ via config/*.hh files instead of
    via the command line.
python/SConscript:
    Generate m5_build_env directly from scons options
    instead of indirectly via CPPDEFINES.
python/m5/convert.py:
    Allow '0' and '1' for booleans.
    Rewrite toBool to use dict.
base/fenv.hh:
    Revamp <fenv.h> support to make it a compile option
    (so we can test w/o it even if it's present) and to
    make isa_desc cleaner.

--HG--
extra : convert_revision : 8f97dc11185bef5e1865b3269c7341df8525c9ad
2005-08-30 13:18:54 -04:00
Steve Reinhardt
e007aa59e3 Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
into  zizzer.eecs.umich.edu:/z/stever/bk/m5

--HG--
extra : convert_revision : dc9d0dc344389063f7b2026bd7cf737bdab3ee8b
2005-08-26 08:18:23 -04:00
Steve Reinhardt
50186d1320 Add explicit check for Python version to SConstruct.
build/SConstruct:
    Add explicit check for Python version.

--HG--
extra : convert_revision : 19ee788f72d63eb301e4be4c0c5729a5025c379f
2005-08-26 08:18:12 -04:00
Nathan Binkert
bdd78df6d8 better debugging of the configuration builder.
--HG--
extra : convert_revision : 9c51937e8bcc1ff93e24bd507d662fd50b5de6a0
2005-08-23 11:47:55 -04:00
Nathan Binkert
c0de2e7f12 Clean up the passing of the boot command line to the kernel.
kern/linux/linux_system.cc:
    Don't hard code the address of the command line in the kernel,
    instead, deduce it from the location of known symbols.
    don't use strcpy, it's dangerous.
kern/linux/linux_system.hh:
    Don't hard code the address of the command line in the kernel,
    instead, deduce it from the location of known symbols.

--HG--
extra : convert_revision : 128b1d5dbd00b0b8571707da99f86f76e29abfd1
2005-08-23 11:47:12 -04:00
Nathan Binkert
c761aaae65 Lots of fixes to serialization and naming of various device
objects.  The improper serialization of arrays was particularly
bad.

dev/alpha_console.cc:
dev/isa_fake.cc:
dev/ns_gige.cc:
dev/pciconfigall.cc:
dev/tsunami_cchip.cc:
dev/tsunami_io.cc:
dev/tsunami_pchip.cc:
    the pio interface is a different simobject and should have a
    different name.
dev/ethertap.cc:
    fix serialization.
dev/ide_ctrl.cc:
    - the pio interface is a different simobject and should have a
    different name.
    - properly initialize variables
    - When serializing an array, the size is the number of elements,
    not the number of bytes!
dev/pcidev.cc:
    When serializing an array, the size is the number of elements,
    not the number of bytes!
dev/tsunami_io.hh:
    Don't make objects SimObjects if they're not exposed to python.
    Don't add serialization functions to events, it's generally not
    what you want.
    allow the real time clock and interval timer to serialize themselves,
    must pass a base name since it is not a SimObject and the values will
    be going into the section of the parent.

--HG--
extra : convert_revision : 3fc5de9b858ed770c8f385cf38b53242cf859c33
2005-08-23 11:45:52 -04:00
Nathan Binkert
1771ee203f don't use sprintf. It's not guaranteed to not scribble over memory.
base/remote_gdb.cc:
    use snprintf, it's safer
dev/ide_disk.cc:
    use strncpy instead of snprintf

--HG--
extra : convert_revision : 90455e3f6bcb4c771724298a5a0b79a5b483a85c
2005-08-23 11:38:27 -04:00
Steve Reinhardt
03e256b0f0 A few minor fixes to get things to build on Cygwin.
README:
    Clarify cygwin EIO error explanation.
build/SConstruct:
    Cygwin header files cause uninitialized var warnings.
dev/ide_ctrl.cc:
    Get rid of unnecessary byte-swap calls, some of which were
    too ambiguous for cygwin (or gcc 3.4.4).
dev/pcidev.cc:
    Disambiguate arg for overloaded byte swap operation
    (and fix it to be the correct one).

--HG--
extra : convert_revision : be37c6315aacbec6332b1d09e726b39b4aa18dce
2005-08-19 17:10:17 -04:00
Steve Reinhardt
40696ccda2 Minor tweaks for 1.1 release.
README:
    Updated for release 1.1.  Clarified several minor things (I hope).

--HG--
extra : convert_revision : a088f670739d33765611ce413b96854a1b51bb0f
2005-08-19 00:10:45 -04:00
Nathan Binkert
cee0d47e15 Fix another bug from the freebsd merge
--HG--
extra : convert_revision : b153b0c12b6678df148839617954a9a4c6fec7d4
2005-08-18 14:19:11 -04:00
Nathan Binkert
4f53a4705e Fix a couple of turbolaser problems that were introduced by the
new freebsd code.

dev/ns_gige.cc:
    g++ doesn't like it when you declare a variable inside a case
    label.  Pull the declaration outside.

--HG--
extra : convert_revision : d39e84fc58f2dd5b09c5948eedb4b1d7848e9817
2005-08-18 13:29:40 -04:00
Benjamin Nash
568868d38f Clean up freebsd_system.cc.
kern/freebsd/freebsd_system.cc:
    Use htog instead of htoa.

--HG--
extra : convert_revision : 09224d60ce5bb3827c9f046127ff6fc72fa008d6
2005-08-16 16:08:42 -04:00
Benjamin Nash
979d609656 Merge zed.eecs.umich.edu:/.automount/fox/y/mserrano/m5_dir/m5
into  zed.eecs.umich.edu:/z/benash/bk/m5

--HG--
extra : convert_revision : 9b7ca872187a13179118ad0651301d531332dc63
2005-08-16 15:45:30 -04:00
Miguel Serrano
1906abcde0 Uart fix.
dev/uart8250.cc:
    Fixed implementation of "transmit interrupt clear".

--HG--
extra : convert_revision : cb69d61413ea799d5d3825fe2f0891dd72995561
2005-08-16 15:44:57 -04:00
Benjamin Nash
0d82e0f8b6 Merge m5.eecs.umich.edu:/bk/m5
into  zed.eecs.umich.edu:/z/benash/bk/m5

--HG--
extra : convert_revision : 36bb126381caf84d85a566579225b02c15f8f356
2005-08-16 15:27:39 -04:00
Nathan Binkert
09bb203484 Updates to job scripts to accept more than 15 characters of jobname
Make the Link directory even more useful by working with
sub-directories.

util/pbs/job.py:
    Expose JOBNAME as a separate parameter from PBS_JOBNAME.  If the
    former exists, it is used as the jobname for starting the job, if
    it doesn't exist, PBS_JOBNAME is used.  This is to get around the 15
    character maximum pbs job name length.  While we're at it, shuffle
    things around to hopefully make things a bit more clear.
util/pbs/send.py:
    Make the Link directory functionality more sophisticated, copy
    sub-directories and links to directories.  (we still don't copy
    dotfiles though)
    Add the setname() function to contact pbs and use raj's hack to
    tell the webpage about longer jobnames. (it's gross, don't look)
    truncate the pbs job name to 15 characters so that it works.

--HG--
extra : convert_revision : 4a76b1a1c33721c7ca93e2fbb761f95bc3a2ac69
2005-08-16 11:27:49 -04:00