]> mj.ucw.cz Git - moe.git/log
moe.git
12 years agoFixed a couple of typos in the documentation python
Martin Mares [Fri, 24 Jun 2011 18:04:22 +0000 (20:04 +0200)]
Fixed a couple of typos in the documentation

13 years agoMerge branch 'python-newpipe' into python
Tomas Gavenciak [Wed, 12 Jan 2011 13:54:26 +0000 (14:54 +0100)]
Merge branch 'python-newpipe' into python

Attempt at order-defined pipelines

13 years agoRefactor
Tomas Gavenciak [Wed, 12 Jan 2011 13:47:46 +0000 (14:47 +0100)]
Refactor

Changed log to global module moe.logs
Use "from moe.logs import *" to get log, userlog, testlog and pipelog.
testlog (and possibly pipelog) are pointed to different places during
run. testlog is either separate, or main log.

Scale time (to match tasktypes/batch)

13 years agoWrote new pipeline
Tomas Gavenciak [Wed, 12 Jan 2011 09:32:15 +0000 (10:32 +0100)]
Wrote new pipeline

13 years agoMake logs global (class was stupid)
Tomas Gavenciak [Tue, 11 Jan 2011 18:52:39 +0000 (19:52 +0100)]
Make logs global (class was stupid)

13 years agoStarted rewrite to dependency based pipelines
Tomas Gavenciak [Tue, 11 Jan 2011 18:00:44 +0000 (19:00 +0100)]
Started rewrite to dependency based pipelines

13 years agoStatus file docs: A couple of minor improvements
Martin Mares [Sat, 27 Nov 2010 14:05:19 +0000 (15:05 +0100)]
Status file docs: A couple of minor improvements

13 years agoWhitespace cleanup
Martin Mares [Sat, 27 Nov 2010 14:02:15 +0000 (15:02 +0100)]
Whitespace cleanup

13 years agoMinor updates (docs, status.py)
Tomas Gavenciak [Sat, 27 Nov 2010 13:56:50 +0000 (14:56 +0100)]
Minor updates (docs, status.py)

Change base classes of Status and InvalidStatusFile
Fix some docs typos and invalid format

13 years agoFix in status parsing, add test, add update test
Tomas Gavenciak [Sat, 27 Nov 2010 13:21:44 +0000 (14:21 +0100)]
Fix in status parsing, add test, add update test

Status parser did not check for all subtrees to be closed, fix
Add test for the above bug
Add tests for status update

13 years agoTests for status, status.py fixes, minor changes
Tomas Gavenciak [Sat, 27 Nov 2010 13:06:07 +0000 (14:06 +0100)]
Tests for status, status.py fixes, minor changes

Tests for Status (except for Status.update)
Add status_test.py to "make test"
Status.do_read(): input from iterator of lines, implement multiline vals
Status.read(): remove default sys.stdin, adapt to do_read()
Removed "Moe" prefix from status exception name

13 years agoSeveral changes in status.py, wrote docs
Tomas Gavenciak [Sat, 27 Nov 2010 11:54:30 +0000 (12:54 +0100)]
Several changes in status.py, wrote docs

Documented the new semantics of status file (unique keys, multiline
  entries, merge/update)
Rewrite Status to reflect docs
Renamed Status exception to MoeInvalidStatusFile
Added Status.update according to docs

13 years agoRethemed html docs (sidebar optional)
Tomas Gavenciak [Tue, 23 Nov 2010 19:13:56 +0000 (20:13 +0100)]
Rethemed html docs (sidebar optional)

13 years agoAdded function config_escape
Tomas Gavenciak [Tue, 23 Nov 2010 19:12:06 +0000 (20:12 +0100)]
Added function config_escape

For safe constructon configuration commands as strings, tested, documented.

13 years agoRewrite docs of config
Tomas Gavenciak [Tue, 23 Nov 2010 17:56:39 +0000 (18:56 +0100)]
Rewrite docs of config

Much better now (or even finished?!)

13 years agoMinor fix in log, extend default config
Tomas Gavenciak [Fri, 24 Sep 2010 14:15:58 +0000 (16:15 +0200)]
Minor fix in log, extend default config

13 years agoMoving things around, WIP batch tasktype via hooks
Tomas Gavenciak [Fri, 24 Sep 2010 14:13:12 +0000 (16:13 +0200)]
Moving things around, WIP batch tasktype via hooks

Trying to make testutils a collection of useful functions and hooks
and to make tasktypes/batch as minimalistic as possible
(and to make writing new task types easy as well)

13 years agoChanged pipeline.insert syntax - now guesses the function name
Tomas Gavenciak [Fri, 24 Sep 2010 14:10:46 +0000 (16:10 +0200)]
Changed pipeline.insert syntax - now guesses the function name

13 years agoAdded unfix(), corrected fix()
Tomas Gavenciak [Fri, 24 Sep 2010 14:00:27 +0000 (16:00 +0200)]
Added unfix(), corrected fix()

13 years agoAdapted test-pipeline runner in dummy tasktype to use "with parse"
Tomas Gavenciak [Wed, 22 Sep 2010 22:09:06 +0000 (00:09 +0200)]
Adapted test-pipeline runner in dummy tasktype to use "with parse"

Creating the text to be parsed is not really safe - testname must not
include ', otherwise the parsing may fail

Hmm ...
Maybe another way?

13 years agoAdd context manager to ConfigTree.parse
Tomas Gavenciak [Wed, 22 Sep 2010 21:59:52 +0000 (23:59 +0200)]
Add context manager to ConfigTree.parse

Now we can do:

with parse("..."):
  use modified config
  raise exception

Also adapted one test. Yay!

13 years agoAdded ConfigTree.remove, adapted parse and parse_file
Tomas Gavenciak [Wed, 22 Sep 2010 21:26:32 +0000 (23:26 +0200)]
Added ConfigTree.remove, adapted parse and parse_file

parse(_file) returns list of operations.
remove removes these from the config

Includes a testcase

13 years agoFixed ConfigVar.variables in case of no operations
Tomas Gavenciak [Wed, 22 Sep 2010 21:25:14 +0000 (23:25 +0200)]
Fixed ConfigVar.variables in case of no operations

13 years agoAdded a paranoid test for evaluation order
Tomas Gavenciak [Wed, 22 Sep 2010 21:19:04 +0000 (23:19 +0200)]
Added a paranoid test for evaluation order

13 years agoFixed variable-list returning functions and removing operations in config.py
Tomas Gavenciak [Wed, 22 Sep 2010 21:15:18 +0000 (23:15 +0200)]
Fixed variable-list returning functions and removing operations in config.py

ConfigExpression.variables returns set instead of a list
 - multiple occurences of one variable broke removing
   operation from variable
Adapted and simplified ConfigVar.variables

13 years agoModified test.py (almost rewrite) python-dummy-working
Tomas Gavenciak [Sat, 18 Sep 2010 21:44:09 +0000 (23:44 +0200)]
Modified test.py (almost rewrite)

13 years agoRenamed MoeStatus -> Status
Tomas Gavenciak [Sat, 18 Sep 2010 21:40:13 +0000 (23:40 +0200)]
Renamed MoeStatus -> Status

13 years agoWriting status uses dump
Tomas Gavenciak [Sat, 18 Sep 2010 21:38:03 +0000 (23:38 +0200)]
Writing status uses dump

Also use 'with' around IO

13 years agoMinor pretty-printing
Tomas Gavenciak [Sat, 18 Sep 2010 21:31:20 +0000 (23:31 +0200)]
Minor pretty-printing

13 years agoFix the hooks in eval.py (self -> e), status writing
Tomas Gavenciak [Sat, 18 Sep 2010 20:46:44 +0000 (22:46 +0200)]
Fix the hooks in eval.py (self -> e), status writing

13 years agoUpdates in status and pipeline debugging
Tomas Gavenciak [Sat, 18 Sep 2010 20:42:51 +0000 (22:42 +0200)]
Updates in status and pipeline debugging

New eval.debug_dump_status()
Remove extra newlines from debug messages
Rename status.str_lines -> status.dump

13 years agoNew task "sum" - dummy for now
Tomas Gavenciak [Sat, 18 Sep 2010 20:39:42 +0000 (22:39 +0200)]
New task "sum" - dummy for now

Minor config changes

13 years agoFixed dummy task type
Tomas Gavenciak [Sat, 18 Sep 2010 20:33:28 +0000 (22:33 +0200)]
Fixed dummy task type

Configure "TEST=" properly
Fix running the test pipe

13 years agoMany changes to pipeline.py
Tomas Gavenciak [Sat, 18 Sep 2010 16:12:21 +0000 (18:12 +0200)]
Many changes to pipeline.py

Rename MoePipeline -> Pipeline
Add Eval and skip_to to Pipeline properties
Asserts when inserting to pipeline
Rewrite dump to return strings instead of writing to file
Some docstrings, clenup

Update eval.py to new constructor

13 years agoPipeline functions now get keyword arguments
Tomas Gavenciak [Sat, 18 Sep 2010 16:10:08 +0000 (18:10 +0200)]
Pipeline functions now get keyword arguments

No dependence on order, Eval argument called `e`
Fixed dummy extension and task type

13 years agoFixed pipeline.insert args order
Tomas Gavenciak [Sat, 18 Sep 2010 15:28:23 +0000 (17:28 +0200)]
Fixed pipeline.insert args order

13 years agoMinor fix config dumping
Tomas Gavenciak [Sat, 18 Sep 2010 07:40:56 +0000 (09:40 +0200)]
Minor fix config dumping

13 years agoMinor fix extensions loading in eval.py
Tomas Gavenciak [Sat, 18 Sep 2010 07:40:25 +0000 (09:40 +0200)]
Minor fix extensions loading in eval.py

13 years agoFixes around DEBUG_LEVEL
Tomas Gavenciak [Sat, 18 Sep 2010 07:36:02 +0000 (09:36 +0200)]
Fixes around DEBUG_LEVEL

Introduce DEBUG_LEVEL dependency on VERBOSITY
TODO: solve DEBUG_LEVEL better (specially in eval.py?)

13 years agoFix log.py
Tomas Gavenciak [Sat, 18 Sep 2010 07:34:09 +0000 (09:34 +0200)]
Fix log.py

13 years agoMinor fix in util.py
Tomas Gavenciak [Sat, 18 Sep 2010 07:33:24 +0000 (09:33 +0200)]
Minor fix in util.py

13 years agoFix dummy task-type
Tomas Gavenciak [Sat, 18 Sep 2010 07:32:30 +0000 (09:32 +0200)]
Fix dummy task-type

13 years agoFix dummy extension
Tomas Gavenciak [Sat, 18 Sep 2010 07:30:53 +0000 (09:30 +0200)]
Fix dummy extension

13 years agoMoved some basic settings from eval.py to config
Tomas Gavenciak [Sat, 18 Sep 2010 07:14:30 +0000 (09:14 +0200)]
Moved some basic settings from eval.py to config

Updated config format
Fix a typo in eval.py

13 years agoFixes in config and config parsing
Tomas Gavenciak [Sat, 18 Sep 2010 07:13:31 +0000 (09:13 +0200)]
Fixes in config and config parsing

Module name error, better exception information

13 years agoAdded status write to string
Tomas Gavenciak [Sat, 18 Sep 2010 06:58:05 +0000 (08:58 +0200)]
Added status write to string

Writing to file still direct, but I would like to rewrite using strings.

13 years agoMade ConfigTree.fix take list os well, added test
Tomas Gavenciak [Sat, 11 Sep 2010 16:35:09 +0000 (18:35 +0200)]
Made ConfigTree.fix take list os well, added test

13 years agoTimeline change, multiple changes in Eval
Tomas Gavenciak [Sat, 11 Sep 2010 15:59:38 +0000 (17:59 +0200)]
Timeline change, multiple changes in Eval

I am sorry for this giga-commit, but it would be too much
work to split it

Update (some) docs, small timeline change
(move loading tasktype from init to pipeline)

Eval.stat -> Eval.status (cosmetic)
Add basic (builtins) and testing configuration
Eval.init fills mainline with basic hooks
Eval.init loads and initializes extensions
Increase indentation (2 by gavento -> 4 by MJ)
Write all main hooks in Eval
Eval.hook_init_tasktype loads tasktype module

It may not seem so, but most of the important
code is reused :-)

13 years agoMoved module loading, use __import__() now
Tomas Gavenciak [Sat, 11 Sep 2010 15:55:09 +0000 (17:55 +0200)]
Moved module loading, use __import__() now

General util.load_module returns module by name.
Hook adding in pipeline removed (and distributed to
tasktype module loading and extension module loading, both in Eval)

13 years agoForgotten __init__.py
Tomas Gavenciak [Sat, 11 Sep 2010 15:53:42 +0000 (17:53 +0200)]
Forgotten __init__.py

13 years agoHOOKS->EXTENSIONS (with explanation), added dummy extension
Tomas Gavenciak [Sat, 11 Sep 2010 15:45:12 +0000 (17:45 +0200)]
HOOKS->EXTENSIONS (with explanation), added dummy extension

Hooks had some problems - the hook modules have to insert self
into the pipeline, but cannot decide into which (only main) and
cannot see Eval during init() (or use the logs)

Having HOOKS with explicit timing:
HOOKS="m:8:my_main_pipeline_hook t:79:cleanup_in_test_pipeline"
would be a possibility, but a little too complex.

Extension is almost the same thing as hook (sugary name change),
but can do anything during init, can insert multiple hooks
(to both main and test pipelines), read/change configuration
and use logs.

Good extension example is fetching tasks via RSYNC or GIT.

13 years agoAdded dummy task type
Tomas Gavenciak [Sat, 11 Sep 2010 15:44:43 +0000 (17:44 +0200)]
Added dummy task type

13 years agoUpdate makefile
Tomas Gavenciak [Fri, 10 Sep 2010 21:56:49 +0000 (23:56 +0200)]
Update makefile

13 years agoAdd ConfigTree.fix, improve parse_file and use it in Eval.init
Tomas Gavenciak [Fri, 10 Sep 2010 21:55:03 +0000 (23:55 +0200)]
Add ConfigTree.fix, improve parse_file and use it in Eval.init

13 years agoPlayed with the documentation
Tomas Gavenciak [Fri, 10 Sep 2010 21:36:11 +0000 (23:36 +0200)]
Played with the documentation

No real work done, really. Just fun.

Created a hyperlink! (and base docs for moe.eval)

13 years agoMinor doc updates and fixes
Tomas Gavenciak [Fri, 10 Sep 2010 20:37:37 +0000 (22:37 +0200)]
Minor doc updates and fixes

Fixed syntactic typo in eval.py

13 years agoUpdated documentation and tidyed up eval.py
Tomas Gavenciak [Fri, 10 Sep 2010 19:44:28 +0000 (21:44 +0200)]
Updated documentation and tidyed up eval.py

Updated INIT part of the timeline
Shifted some stuff in eval.py around
(re)Created Eval.run() (run in init did not make sense)

Made an observation:
  Tried porgrameer make many mitsakes.

13 years agoFidex several errors in log.py
Tomas Gavenciak [Fri, 10 Sep 2010 19:36:01 +0000 (21:36 +0200)]
Fidex several errors in log.py

several copy'n'paste errors, forgot to set the level, doc errors,
change main log Formatter

13 years agoRewriting eval.py with new log, config and timeline
Tomas Gavenciak [Fri, 10 Sep 2010 19:14:40 +0000 (21:14 +0200)]
Rewriting eval.py with new log, config and timeline

Moving initializaton together, remaining init_* will be called from main pipeline
Most changes are moves and rewrites - the meaning did not change much
The actions are as listed in doc/timeline

13 years agoCreated documentation
Tomas Gavenciak [Fri, 10 Sep 2010 18:24:47 +0000 (20:24 +0200)]
Created documentation

Unsing Sphinx, restructured text
Updated documentation strings in config.py and config_parser.py
Makefile for running nosetests and building docs

13 years agoRewrite of moe.log using python logging
Tomas Gavenciak [Fri, 10 Sep 2010 17:47:00 +0000 (19:47 +0200)]
Rewrite of moe.log using python logging

Bells, whistles, formatters, per-test logfiles included!

13 years agoRenamed conf -> config, refactoring inside config
Tomas Gavenciak [Tue, 7 Sep 2010 12:16:57 +0000 (14:16 +0200)]
Renamed conf -> config, refactoring inside config

Added ConfigTree.parse and ConfigTree.parse_file
Minor global renaming changes inside parser and tests

13 years agoAdded shorthand access moe.ConfTree[key] to conf
Tomas Gavenciak [Tue, 7 Sep 2010 11:30:22 +0000 (13:30 +0200)]
Added shorthand access moe.ConfTree[key] to conf

13 years agoUpdated tests, added priority (levels) test
Tomas Gavenciak [Sat, 10 Jul 2010 11:40:43 +0000 (13:40 +0200)]
Updated tests, added priority (levels) test

13 years agoFixed small error (which should manifest anyway)
Tomas Gavenciak [Sat, 10 Jul 2010 11:36:38 +0000 (13:36 +0200)]
Fixed small error (which should manifest anyway)

13 years agoImplemented varname as a shorthand for "{varname}"
Tomas Gavenciak [Sat, 10 Jul 2010 11:05:23 +0000 (13:05 +0200)]
Implemented varname as a shorthand for "{varname}"

Fixed: variable parsing at end of file
Updated grammar and tests, new test

13 years agoAdd unicode and file parsing test
Tomas Gavenciak [Sat, 10 Jul 2010 10:38:50 +0000 (12:38 +0200)]
Add unicode and file parsing test

13 years agoTest variable fixing, update TODO
Tomas Gavenciak [Sat, 10 Jul 2010 09:20:53 +0000 (11:20 +0200)]
Test variable fixing, update TODO

13 years agoFixed stupid order error in fixing
Tomas Gavenciak [Sat, 10 Jul 2010 09:11:21 +0000 (11:11 +0200)]
Fixed stupid order error in fixing

13 years agoSanitize by adding newlines detween defs
Tomas Gavenciak [Sat, 10 Jul 2010 08:56:07 +0000 (10:56 +0200)]
Sanitize by adding newlines detween defs

13 years agoImplemented simple variable fixing.
Tomas Gavenciak [Sat, 10 Jul 2010 08:46:36 +0000 (10:46 +0200)]
Implemented simple variable fixing.

13 years agoFix local import name
Tomas Gavenciak [Sat, 10 Jul 2010 08:42:22 +0000 (10:42 +0200)]
Fix local import name

13 years agoConfig parser: added one forgotten WS
Martin Mares [Fri, 9 Jul 2010 18:47:48 +0000 (20:47 +0200)]
Config parser: added one forgotten WS

14 years agoSeveral new tests, updated, all passed
Tomas Gavenciak [Sat, 29 May 2010 17:34:06 +0000 (13:34 -0400)]
Several new tests, updated, all passed

Also covers all important code

14 years agoNow moe module, update ConfigError, minor fix
Tomas Gavenciak [Sat, 29 May 2010 17:26:47 +0000 (13:26 -0400)]
Now moe module, update ConfigError, minor fix

14 years agoNew ConfigError subclasses, move re_VARNAME
Tomas Gavenciak [Sat, 29 May 2010 16:59:57 +0000 (12:59 -0400)]
New ConfigError subclasses, move re_VARNAME

Moved re_VARNAME to conf.py
Minor fix VARNAME checking in ConfigTree.lookup()

14 years agoFixed invalidating conditions and chained condition parsing
Tomas Gavenciak [Sat, 29 May 2010 16:42:04 +0000 (12:42 -0400)]
Fixed invalidating conditions and chained condition parsing

14 years agoFixed minor bug in conf condition eval
Tomas Gavenciak [Sat, 29 May 2010 15:57:26 +0000 (11:57 -0400)]
Fixed minor bug in conf condition eval

Fixed mismatch of params of eval(cl, depth)

14 years agoMany fixes to config parser, many (passed) tests.
Tomas Gavenciak [Sat, 29 May 2010 03:50:54 +0000 (23:50 -0400)]
Many fixes to config parser, many (passed) tests.

Not complete test coverage yet. See notes in conf.test.py

14 years agoFixed minor type typo
Tomas Gavenciak [Sat, 29 May 2010 03:48:43 +0000 (23:48 -0400)]
Fixed minor type typo

14 years agoIncluded *.pyc to .gitignore
Tomas Gavenciak [Sat, 29 May 2010 03:48:08 +0000 (23:48 -0400)]
Included *.pyc to .gitignore

14 years agoConfig parser complete, but completely untested.
Tomas Gavenciak [Tue, 25 May 2010 02:18:19 +0000 (22:18 -0400)]
Config parser complete, but completely untested.

Dozens of bugs await!

14 years agoChanges to config operations structure.
Tomas Gavenciak [Tue, 25 May 2010 01:55:07 +0000 (21:55 -0400)]
Changes to config operations structure.

Changed config operaiton from triplets to a helper class,
added operation level (as priority) instead of index and
optional source. Changed dump format.
Removal now by operation instead of index.

Test updated and passed, but still not full coverage. WIP parser test.

14 years agoSyntax constants localized to parser class.
Tomas Gavenciak [Mon, 24 May 2010 01:25:39 +0000 (21:25 -0400)]
Syntax constants localized to parser class.

14 years agoComplete, but untested config parser.
Tomas Gavenciak [Sun, 23 May 2010 16:00:41 +0000 (12:00 -0400)]
Complete, but untested config parser.

14 years agoRenamed VARNAME_re to re_VARNAME
Tomas Gavenciak [Sun, 23 May 2010 15:59:47 +0000 (11:59 -0400)]
Renamed VARNAME_re to re_VARNAME

14 years agoChanged clause->formula in ConfigCondition, added formula pretty-printing
Tomas Gavenciak [Sun, 23 May 2010 14:02:39 +0000 (10:02 -0400)]
Changed clause->formula in ConfigCondition, added formula pretty-printing

14 years agoNew file for conf parser, move and update conf file syntax
Tomas Gavenciak [Sat, 22 May 2010 01:36:58 +0000 (21:36 -0400)]
New file for conf parser, move and update conf file syntax

14 years agoAdded syntax for config files (to be reviewed)
Tomas Gavenciak [Tue, 11 May 2010 01:55:50 +0000 (21:55 -0400)]
Added syntax for config files (to be reviewed)

Add TODO note obput fixing variables

14 years agoImporoved and shortened conf.py code
Tomas Gavenciak [Sun, 9 May 2010 00:31:51 +0000 (20:31 -0400)]
Imporoved and shortened conf.py code

Removed subtrees, now only one namespace
Transparent variable creation upon lookup
Implemented general condition clauses (AND, OR, NOT, ==, !=)
Conditions now have 'parent' condition (containing condition block)
Variables refer to only one condition (and indirectly its parents)
Renamed get_value -> evaluate and evaluate -> value
Improved max-depth checking
Updated the test/example (still no conditions)
pprint replaced with dump (for consistency, but still returns an iterator)
Some dovumentation (with TODO's)

14 years agoNew module for config evaluation. Basic testing.
Tomas Gavenciak [Fri, 7 May 2010 00:15:19 +0000 (20:15 -0400)]
New module for config evaluation. Basic testing.

Implemented:
* Configuration tree,
* Variables,
* Variable-setting operations ('SET' and 'APPEND')
* Equality conditions (WIP, not tested yet),
* Substitution expressions with text and variables,
* Pretty-printing,
* Caching for variables and conditions with invalidation along reverse-dependencies,
* Add and remove operations from variables with correct reverse-dependency handling (add and remove)

TODO: smarter conditions, variable lookup (and maybe transparent creation),
possibly cleanup of unused variables and conditions

(tests full coverage except conditions)

14 years agoSaved the example task
Martin Mares [Sat, 15 Aug 2009 01:08:46 +0000 (03:08 +0200)]
Saved the example task

14 years agoBetter logging of exceptions
Martin Mares [Fri, 14 Aug 2009 09:01:34 +0000 (11:01 +0200)]
Better logging of exceptions

14 years agoMake "+=" insert spaces as necessary
Martin Mares [Fri, 14 Aug 2009 09:01:25 +0000 (11:01 +0200)]
Make "+=" insert spaces as necessary

14 years agoRemoved config resolution caching
Martin Mares [Fri, 14 Aug 2009 08:28:53 +0000 (10:28 +0200)]
Removed config resolution caching

14 years agoImplemented syntax checkers and output filters
Martin Mares [Fri, 14 Aug 2009 08:25:33 +0000 (10:25 +0200)]
Implemented syntax checkers and output filters

14 years agoBackward-compatible point files implemented
Martin Mares [Fri, 14 Aug 2009 07:58:18 +0000 (09:58 +0200)]
Backward-compatible point files implemented

14 years agoUnify names of exception variables
Martin Mares [Fri, 14 Aug 2009 07:45:38 +0000 (09:45 +0200)]
Unify names of exception variables

14 years agoe.cfgs[x] can be shortened to e[x]
Martin Mares [Fri, 14 Aug 2009 07:44:26 +0000 (09:44 +0200)]
e.cfgs[x] can be shortened to e[x]

14 years agoJudges can return single-line verdicts on stderr instead of producing a status file
Martin Mares [Fri, 14 Aug 2009 07:40:37 +0000 (09:40 +0200)]
Judges can return single-line verdicts on stderr instead of producing a status file