<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/test/lisp, branch scratch/macos-process-args</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Add condition-case success handler (bug#47677)</title>
<updated>2021-04-15T13:41:13+00:00</updated>
<author>
<name>Mattias Engdegård</name>
</author>
<published>2021-04-07T09:31:07+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7893945cc8f9421d0be5b07b9ed404bdf25ce140'/>
<id>7893945cc8f9421d0be5b07b9ed404bdf25ce140</id>
<content type='text'>
Allow a condition-case handler on the form (:success BODY) to be
specified as the success continuation of the protected form, with
the specified variable bound to its result.

* src/eval.c (Fcondition_case): Update the doc string.
(internal_lisp_condition_case): Implement in interpreter.
(syms_of_eval): Defsym :success.
* lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case):
Implement in byte-compiler.
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Allow self-TCO
from success handler.
* doc/lispref/control.texi (Handling Errors): Update manual.
* etc/NEWS: Announce.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases)
(bytecomp-condition-case-success):
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Add test cases.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Allow a condition-case handler on the form (:success BODY) to be
specified as the success continuation of the protected form, with
the specified variable bound to its result.

* src/eval.c (Fcondition_case): Update the doc string.
(internal_lisp_condition_case): Implement in interpreter.
(syms_of_eval): Defsym :success.
* lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case):
Implement in byte-compiler.
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Allow self-TCO
from success handler.
* doc/lispref/control.texi (Handling Errors): Update manual.
* etc/NEWS: Announce.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases)
(bytecomp-condition-case-success):
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Add test cases.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rearrange argument handling in Tramp scp calls.</title>
<updated>2021-04-14T11:25:36+00:00</updated>
<author>
<name>Michael Albinus</name>
</author>
<published>2021-04-14T11:25:36+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=8aaf13eae6a0edcaf6528ba0490ed351ef00e2b3'/>
<id>8aaf13eae6a0edcaf6528ba0490ed351ef00e2b3</id>
<content type='text'>
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
Use `start-process' instead of `start-process-shell-command'.
(tramp-make-copy-program-file-name): Do not quote `localname'.

* test/lisp/net/tramp-tests.el (tramp-method-out-of-band-p): Declare.
(tramp--test-windows-nt-and-batch-p)
(tramp--test-windows-nt-and-pscp-psftp-p): Remove, and also all callees.
(tramp--test-windows-nt-and-out-of-band-p)
(tramp--test-windows-nt-and-scp-p): New defuns.
(tramp-test17-dired-with-wildcards)
(tramp-test40-special-characters)
(tramp-test40-special-characters-with-stat)
(tramp-test40-special-characters-with-perl)
(tramp-test40-special-characters-with-ls, tramp-test41-utf8)
(tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl)
(tramp-test41-utf8-with-ls): Use them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
Use `start-process' instead of `start-process-shell-command'.
(tramp-make-copy-program-file-name): Do not quote `localname'.

* test/lisp/net/tramp-tests.el (tramp-method-out-of-band-p): Declare.
(tramp--test-windows-nt-and-batch-p)
(tramp--test-windows-nt-and-pscp-psftp-p): Remove, and also all callees.
(tramp--test-windows-nt-and-out-of-band-p)
(tramp--test-windows-nt-and-scp-p): New defuns.
(tramp-test17-dired-with-wildcards)
(tramp-test40-special-characters)
(tramp-test40-special-characters-with-stat)
(tramp-test40-special-characters-with-perl)
(tramp-test40-special-characters-with-ls, tramp-test41-utf8)
(tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl)
(tramp-test41-utf8-with-ls): Use them.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix calculator-string-to-number yet again (bug#47694)</title>
<updated>2021-04-11T12:00:09+00:00</updated>
<author>
<name>Eli Barzilay</name>
</author>
<published>2021-04-10T19:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=686c366f8a63c448d06e5f08d604374fb316bc57'/>
<id>686c366f8a63c448d06e5f08d604374fb316bc57</id>
<content type='text'>
* lisp/calculator.el (calculator-string-to-number):
The last bugfix changed the code to just blindly replace ".e".  This
has some minor problems like making "-." parse as 0.0 instead of -0.0,
and ".1.e1" is parsed as 1 instead of 0.1.  Instead, replace the first
"." that is followed by a non-digit with ".0".  Since this has had
several problems over the years, add some tests too.  (Also, restore
the original if-indentation style.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/calculator.el (calculator-string-to-number):
The last bugfix changed the code to just blindly replace ".e".  This
has some minor problems like making "-." parse as 0.0 instead of -0.0,
and ".1.e1" is parsed as 1 instead of 0.1.  Instead, replace the first
"." that is followed by a non-digit with ".0".  Since this has had
several problems over the years, add some tests too.  (Also, restore
the original if-indentation style.)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typo in cconv</title>
<updated>2021-04-11T10:41:21+00:00</updated>
<author>
<name>Mattias Engdegård</name>
</author>
<published>2021-04-11T10:38:37+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=01a513bf0beb9478e2ef801ca28ebc992455fe3c'/>
<id>01a513bf0beb9478e2ef801ca28ebc992455fe3c</id>
<content type='text'>
* lisp/emacs-lisp/cconv.el (cconv-convert): Typo.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/emacs-lisp/cconv.el (cconv-convert): Typo.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Edebug: Disable backtracking when hitting a &amp;define keyword.</title>
<updated>2021-04-10T16:19:49+00:00</updated>
<author>
<name>Philipp Stephani</name>
</author>
<published>2021-03-18T11:40:08+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=53dfd85a7f971875e716a55f010ee508bce89eed'/>
<id>53dfd85a7f971875e716a55f010ee508bce89eed</id>
<content type='text'>
Edebug doesn't deal well with backtracking out of definitions, see
Bug#41988.  Rather than trying to support this rare situation (e.g. by
implementing a multipass parser), prevent it by adding an implicit
gate.

* lisp/emacs-lisp/edebug.el (edebug--match-&amp;-spec-op): Disable
backtracking when hitting a &amp;define keyword.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests-duplicate-&amp;define): New unit test.
(edebug-tests--duplicate-&amp;define): New helper macro.

* doc/lispref/edebug.texi (Backtracking): Mention &amp;define in the list
of constructs that disable backtracking.

* etc/NEWS: Document new behavior.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Edebug doesn't deal well with backtracking out of definitions, see
Bug#41988.  Rather than trying to support this rare situation (e.g. by
implementing a multipass parser), prevent it by adding an implicit
gate.

* lisp/emacs-lisp/edebug.el (edebug--match-&amp;-spec-op): Disable
backtracking when hitting a &amp;define keyword.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests-duplicate-&amp;define): New unit test.
(edebug-tests--duplicate-&amp;define): New helper macro.

* doc/lispref/edebug.texi (Backtracking): Mention &amp;define in the list
of constructs that disable backtracking.

* etc/NEWS: Document new behavior.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix condition-case optimiser bug</title>
<updated>2021-04-09T17:20:55+00:00</updated>
<author>
<name>Mattias Engdegård</name>
</author>
<published>2021-04-09T16:59:09+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=59342f689eaa4839b0fc15351ae48b4f1074a6fc'/>
<id>59342f689eaa4839b0fc15351ae48b4f1074a6fc</id>
<content type='text'>
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't
perform incorrect optimisations when a condition-case variable shadows
another lexical variable.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
New test case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't
perform incorrect optimisations when a condition-case variable shadows
another lexical variable.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
New test case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Better compiler warning tests</title>
<updated>2021-04-09T17:20:55+00:00</updated>
<author>
<name>Mattias Engdegård</name>
</author>
<published>2021-04-09T16:49:16+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b7a7e879d02570cbf74aa87686b6b0ed4e6b0c3b'/>
<id>b7a7e879d02570cbf74aa87686b6b0ed4e6b0c3b</id>
<content type='text'>
These changes allow all bytecomp-tests to be run interactively.

* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--with-warning-test)
(bytecomp--define-warning-file-test): Interpret any space in the
pattern as arbitrary whitespace to tolerate line breaks.
Don't abuse the expected-failure mechanism when checking
for the expected absense of a warning.
(bytecomp/*.el): Rewrite patterns to work with line breaks
in the middle.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These changes allow all bytecomp-tests to be run interactively.

* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--with-warning-test)
(bytecomp--define-warning-file-test): Interpret any space in the
pattern as arbitrary whitespace to tolerate line breaks.
Don't abuse the expected-failure mechanism when checking
for the expected absense of a warning.
(bytecomp/*.el): Rewrite patterns to work with line breaks
in the middle.
</pre>
</div>
</content>
</entry>
<entry>
<title>Clean up bytecomp-tests.el</title>
<updated>2021-04-09T17:20:54+00:00</updated>
<author>
<name>Mattias Engdegård</name>
</author>
<published>2021-04-09T16:42:12+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=a2a7cfde29aa71f9ea503b8dc467d694f6e5b69f'/>
<id>a2a7cfde29aa71f9ea503b8dc467d694f6e5b69f</id>
<content type='text'>
Now all test cases are run with both lexical and dynamic binding
where applicable, comparing interpreted against compiled results.
Previously, almost all tests were only run with dynamic binding
which was definitely not intended.

* test/lisp/emacs-lisp/bytecomp-tests.el
(byte-opt-testsuite-arith-data): Rename to bytecomp-tests--test-cases.
(bytecomp-check-1, bytecomp-explain-1, bytecomp-tests)
(bytecomp-lexbind-tests, bytecomp-lexbind-check-1)
(bytecomp-lexbind-explain-1): Remove.
(bytecomp-tests--eval-interpreted, bytecomp-tests--eval-compiled)
(bytecomp-tests-lexbind, bytecomp-tests-dynbind)
(bytecomp-tests--test-cases-lexbind-only): New.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now all test cases are run with both lexical and dynamic binding
where applicable, comparing interpreted against compiled results.
Previously, almost all tests were only run with dynamic binding
which was definitely not intended.

* test/lisp/emacs-lisp/bytecomp-tests.el
(byte-opt-testsuite-arith-data): Rename to bytecomp-tests--test-cases.
(bytecomp-check-1, bytecomp-explain-1, bytecomp-tests)
(bytecomp-lexbind-tests, bytecomp-lexbind-check-1)
(bytecomp-lexbind-explain-1): Remove.
(bytecomp-tests--eval-interpreted, bytecomp-tests--eval-compiled)
(bytecomp-tests-lexbind, bytecomp-tests-dynbind)
(bytecomp-tests--test-cases-lexbind-only): New.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use lexical-binding in loadhist.el and add tests</title>
<updated>2021-04-09T11:44:44+00:00</updated>
<author>
<name>Stefan Kangas</name>
</author>
<published>2021-04-09T11:44:44+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=841dcfa7c351118aef402e58c3a204b671e1fe13'/>
<id>841dcfa7c351118aef402e58c3a204b671e1fe13</id>
<content type='text'>
* lisp/loadhist.el: Use lexical-binding.
* test/lisp/loadhist-tests.el: New file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/loadhist.el: Use lexical-binding.
* test/lisp/loadhist-tests.el: New file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Self-TCO in `condition-case` error handlers</title>
<updated>2021-04-09T08:55:37+00:00</updated>
<author>
<name>Mattias Engdegård</name>
</author>
<published>2021-04-08T20:48:02+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=612d73167688a9a9742478373933c4af5e3f8720'/>
<id>612d73167688a9a9742478373933c4af5e3f8720</id>
<content type='text'>
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Recognise
`condition-case` handlers as being in the tail position.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Extend test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Recognise
`condition-case` handlers as being in the tail position.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Extend test.
</pre>
</div>
</content>
</entry>
</feed>
