8.0.0
Changes from previous version:
Fixes
clingerrors including ASCII escape sequences are interpreted
correctly (210ee63)- Enhance the diff mapping ctrl unicodes to
'?'and only mapping
ctrl unicodes (e396b24) - Update Python's pretty print (
pp) on a geometry changeSIGWINCH
(90e18b7) - Pass options to
Concern.starthook (91fb6b3) - Avoid race condition in read/write cache from/to disk (73c1b01)
- Ignore non-ascii chars in Python 2.7 with
+term=ansi(fa506e5) - Fixed pathological regexs and incompatible ones with the Linear
Expected optimization (0f7282f, ebba12a) - Warn if no files were passed/found instead of crashing (637162d)
- Fix option parsing and defaults (e4c07ff, 38b9946)
- Do not cache some internal objects (25ec8af)
- Do not allow for abbreviations of long options (fae5ca8)
- Perform a read even if timeout is 0 (
_expect_prompt), fix
the message of the timeout (eb2107e) - Best effort for shutdown the runners (3bc281d)
- Count example once, even if
finish_parseis called twice (a9322b5)
Enhancements
- Capture greedy/non-greedy (heuristic): named tags are non-greedy as they
are used to capture interesting, typically short strings; unnamed tags are
non-greedy too except at the end of a line where typically capture
longer uninteresting outputs. (c94def0, fb88961, 6d5178c) - Better support for cling (the C/C++ interpreter) using
pyte(a
terminal emulator). (210ee63) - Full support for unicode inputs (running byexample with Python 2.x
and 3.x) (6cb12dd, 4b32b57, cd9b96e, 10421dc, 7906466). - Document the
--encodingoption (10421dc). - Send a
SIGWINCHon+geometrychange (90e18b7) - Support for terminal emulations:
+term=as-is(no emulation),+term=dumb
(removes any trailing whitespace, converts to spaces the tabs and uniforms
the new lines) and+term=ansi(full terminal emulation, useful forncursesbased
outputs). (9ca21ba, 2605f5d) - Improve to the cache system (still experimental) (99ff4d1,
f36b085, 19978f7) - Reimplemented part of the expected parsing: the
expected_tokenizer
(052cb45) - Reimplemented the parser for the expected as a state machine
(73ba50f, e07b787, 912290a, 02dc851, 6aebd27, 78096ea,
6b6ee55, bc9bbf9, 1998b69, 233afd3, 641c88d) - The target/language of Finders/Parsers can be a collection
(851b14f) - Simplify the check overlap (76cc8a8, e7e457b)
- The original (7.x)
+stop-on-silencestops the process only on
timeout; it was renamed to+stop-on-timeoutand the
+stop-on-silencewas fixed to do what it's supposed to do: stop
after some period of inactivity or silence. (8b46779, ba7a0c2) - Default timeout for internal ops
-x-dfl-timeout. (65c6c94,
a058d0f) - Renamed
+delaybeforesendto-x-delaybeforesend(b3b3009) -x-min-rcountto control the sensitivity of the incremental match
(fe57caf)--shebangrenamed to-x-shebang(86664f6)- Concern
eventgeneric event type; Process uses event for logging.
(d20c140, 89a4624) - Deterministic output (
pp) for Ruby Hashes. (9139d3e) - Ruby support: 2.0, 2.1, 2.2, 2.3, 2.4, 2.5 and 2.6; RVM environments
too (4d9fc17). - Recover the runner after a timeout and do not abort. (47557f7)
- Support for cancel an ongoing example. (802d88a)
Potential incompatible changes (examples)
- The unnamed tag's regex is greedy; named tags are not (c94def0)
- The C/C++ now require the use of a full terminal emulator
(+terminal=ansi) always and its geometry cannot change. (210ee63,
e6b2fa7) - Changed the default terminal emulation from
+term=as-isto+term=dumb
which it is more useful and reduce the need of+norm-ws(2605f5d). - The hacky
# >>Ruby prompt is not supported, superseded by Zone
Delimiter for Ruby files (.rb) (a5b5dcd)
Incompatible changes (examples)
- Limit the number of output rows for C/C++ examples (bedef7e)
- Do not allow an underscore in a tag name (38766d8)
- Capture greedy/non-greedy (heuristic): named tags are non-greedy as they
are used to capture interesting, typically short strings; unnamed tags are
non-greedy too except at the end of a line (c94def0, fb88961, 6d5178c) - Zone Delimiter: defined find zones where to find examples --
byexample
will not find examples anywhere anymore (b2adc93, fadc894). Examples
can be found only in code blocks and comments of a Markdown file; in the
docstrings of a Python file; in the comments of a Ruby file ... (see
each language) (46ef5d9, c0d6e05, f064ac7). Only prompt based examples
are supported. (bb86873, 0805192) - Use
?:and::as primary and secondary prompts for C/C++ examples
(582f33c) - Rename
stop-on-silencebystop-on-timeout(8b46779) - Implement
stop-on-silencefor shell (incompatible with 7.x)
(ba7a0c2) - To set options in the C/C++ examples, use
// byexample: ...only
(/* .. */is not supported anymore) (21060dac0)
Incompatible changes (lib)
- Refactor
_spawn_interpreter(3670321) - Refactor
PexepctMixin/ExampleRunnerpassing options explicitly
(_exec_and_wait,_expect_prompt,_change_terminal_geometry_ctx,
_change_terminal_geometry,runand_get_output) (2cfe8b6) - Refactor and removed unused code in
Expected(193a5a9, 426e480) - Explicit timeout value for
_expect_prompt(28be774)
Incompatible changes (modules)
- Each runner needs to implement its
ExampleRunner.runin terms of
PexepctMixin._run;PexepctMixin._runwill delegate the runner-specific
code callingPexepctMixin._run_impl(to be overridden by the runner)
(bea45a2) - Pass options to
Concern.starthook (91fb6b3) - Removed the concept of spurious endings and specific/generic finders
(2ddfd1d) - Extend
user_abortedto a more generic aborted hook;user_abortedis
not supported anymore. (4356a9a)
Others
- New dependency:
pyteversion 0.8.0. - Makefile: Allow run the tests using multiple processors (e379c42)
- Documentation refactor (87fcdca, eca2d80, 4b70016, 374dc09,
bc59213, 6f75b4f, f67e1dc, d6676dd, e0a17c8, 653b5b30) - Removed
--interact/--debugoption (e346c15) - Make provisional the Ruby and the Clipboard modules. (5345ec3)