* Re: master 63d69bd1549 07/11: Use new baseline indent rule in c-ts-mode [not found] ` <20241202021023.2C8B8521785@vcs3.savannah.gnu.org> @ 2024-12-02 21:02 ` Andrea Corallo 2024-12-03 0:38 ` Yuan Fu 0 siblings, 1 reply; 13+ messages in thread From: Andrea Corallo @ 2024-12-02 21:02 UTC (permalink / raw) To: emacs-devel; +Cc: Yuan Fu Yuan Fu <casouri@gmail.com> writes: > branch: master > commit 63d69bd154987bcc0434e0f85e09bf5dfa07b827 > Author: Yuan Fu <casouri@gmail.com> > Commit: Yuan Fu <casouri@gmail.com> > > Use new baseline indent rule in c-ts-mode > > Rework the indent rules in c-ts-mode using > c-ts-common-baseline-indent-rule. Also reworked internal > functions for setting indent styles to make it simpler and (more > importantly) more readable. Now there's a single function, > c-ts-mode--simple-indent-rules, that returns a value that can go > straight to treesit-simple-indent-rules. > > * lisp/progmodes/c-ts-mode.el: > (c-ts-mode--indent-style-setter): Simplify. > (c-ts-mode--get-indent-style): Remove function. > (c-ts-mode--prompt-for-style): Use a hard-coded list of styles. > This is a tiny downgrade from the computed lists but is > acceptable. > (c-ts-mode-set-style): Use c-ts-mode--simple-indent-rules. > (c-ts-mode--standalone-grandparent): Docstring change. > (c-ts-mode--for-loop-indent-rule): New function. > (c-ts-mode--preproc-indent-rules): New variable. Copied from > old indent rules and added some new rule. > (c-ts-mode--macro-heuristic-rules): > (c-ts-mode--simple-indent-rules): > (c-ts-mode--parenthesized-expression-indent-rule): > (c-ts-mode--label-indent-rules): New functions. > (c-ts-mode): > (c++-ts-mode): Use c-ts-mode--simple-indent-rules. > --- Hi Yuan, this commit on my test-bench seems to introduce on master the following two failures: c-ts-mode-test-indentation-bsd, c-ts-mode-test-indentation. Could you have a look? Andrea ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 63d69bd1549 07/11: Use new baseline indent rule in c-ts-mode 2024-12-02 21:02 ` master 63d69bd1549 07/11: Use new baseline indent rule in c-ts-mode Andrea Corallo @ 2024-12-03 0:38 ` Yuan Fu 2024-12-03 8:05 ` Andrea Corallo 0 siblings, 1 reply; 13+ messages in thread From: Yuan Fu @ 2024-12-03 0:38 UTC (permalink / raw) To: Andrea Corallo; +Cc: emacs-devel > On Dec 2, 2024, at 1:02 PM, Andrea Corallo <acorallo@gnu.org> wrote: > > Yuan Fu <casouri@gmail.com> writes: > >> branch: master >> commit 63d69bd154987bcc0434e0f85e09bf5dfa07b827 >> Author: Yuan Fu <casouri@gmail.com> >> Commit: Yuan Fu <casouri@gmail.com> >> >> Use new baseline indent rule in c-ts-mode >> >> Rework the indent rules in c-ts-mode using >> c-ts-common-baseline-indent-rule. Also reworked internal >> functions for setting indent styles to make it simpler and (more >> importantly) more readable. Now there's a single function, >> c-ts-mode--simple-indent-rules, that returns a value that can go >> straight to treesit-simple-indent-rules. >> >> * lisp/progmodes/c-ts-mode.el: >> (c-ts-mode--indent-style-setter): Simplify. >> (c-ts-mode--get-indent-style): Remove function. >> (c-ts-mode--prompt-for-style): Use a hard-coded list of styles. >> This is a tiny downgrade from the computed lists but is >> acceptable. >> (c-ts-mode-set-style): Use c-ts-mode--simple-indent-rules. >> (c-ts-mode--standalone-grandparent): Docstring change. >> (c-ts-mode--for-loop-indent-rule): New function. >> (c-ts-mode--preproc-indent-rules): New variable. Copied from >> old indent rules and added some new rule. >> (c-ts-mode--macro-heuristic-rules): >> (c-ts-mode--simple-indent-rules): >> (c-ts-mode--parenthesized-expression-indent-rule): >> (c-ts-mode--label-indent-rules): New functions. >> (c-ts-mode): >> (c++-ts-mode): Use c-ts-mode--simple-indent-rules. >> --- > > Hi Yuan, > > this commit on my test-bench seems to introduce on master the following > two failures: c-ts-mode-test-indentation-bsd, > c-ts-mode-test-indentation. > > Could you have a look? > > Andrea Hey Andrea, sorry about that. The tests do pass on my machine. How does the test-bench run the tests? Yuan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 63d69bd1549 07/11: Use new baseline indent rule in c-ts-mode 2024-12-03 0:38 ` Yuan Fu @ 2024-12-03 8:05 ` Andrea Corallo 0 siblings, 0 replies; 13+ messages in thread From: Andrea Corallo @ 2024-12-03 8:05 UTC (permalink / raw) To: Yuan Fu; +Cc: emacs-devel Yuan Fu <casouri@gmail.com> writes: >> On Dec 2, 2024, at 1:02 PM, Andrea Corallo <acorallo@gnu.org> wrote: >> >> Yuan Fu <casouri@gmail.com> writes: >> >>> branch: master >>> commit 63d69bd154987bcc0434e0f85e09bf5dfa07b827 >>> Author: Yuan Fu <casouri@gmail.com> >>> Commit: Yuan Fu <casouri@gmail.com> >>> >>> Use new baseline indent rule in c-ts-mode >>> >>> Rework the indent rules in c-ts-mode using >>> c-ts-common-baseline-indent-rule. Also reworked internal >>> functions for setting indent styles to make it simpler and (more >>> importantly) more readable. Now there's a single function, >>> c-ts-mode--simple-indent-rules, that returns a value that can go >>> straight to treesit-simple-indent-rules. >>> >>> * lisp/progmodes/c-ts-mode.el: >>> (c-ts-mode--indent-style-setter): Simplify. >>> (c-ts-mode--get-indent-style): Remove function. >>> (c-ts-mode--prompt-for-style): Use a hard-coded list of styles. >>> This is a tiny downgrade from the computed lists but is >>> acceptable. >>> (c-ts-mode-set-style): Use c-ts-mode--simple-indent-rules. >>> (c-ts-mode--standalone-grandparent): Docstring change. >>> (c-ts-mode--for-loop-indent-rule): New function. >>> (c-ts-mode--preproc-indent-rules): New variable. Copied from >>> old indent rules and added some new rule. >>> (c-ts-mode--macro-heuristic-rules): >>> (c-ts-mode--simple-indent-rules): >>> (c-ts-mode--parenthesized-expression-indent-rule): >>> (c-ts-mode--label-indent-rules): New functions. >>> (c-ts-mode): >>> (c++-ts-mode): Use c-ts-mode--simple-indent-rules. >>> --- >> >> Hi Yuan, >> >> this commit on my test-bench seems to introduce on master the following >> two failures: c-ts-mode-test-indentation-bsd, >> c-ts-mode-test-indentation. >> >> Could you have a look? >> >> Andrea > > Hey Andrea, sorry about that. The tests do pass on my machine. How does the test-bench run the tests? > > Yuan Seems 44fcd37a486399be048fb03b9456497af78632fe fixed c-ts-mode-test-indentation-bsd. I still see: Running 4 tests (2024-12-03 03:51:05+0100, selector `(not (or (tag :expensive-test) (tag :unstable) (tag :nativecomp)))') passed 1/4 c-ts-mode-test-filling (0.033575 sec) Test c-ts-mode-test-indentation backtrace: signal(ert-test-failed (("Mismatch in test \"For Loop with Multi-lin ert-fail(("Mismatch in test \"For Loop with Multi-line Condition (GN ert-test--erts-test(((code lambda nil (c-ts-mode) (setq-local indent ert-test-erts-file("/home/andcor03/emacs-ci/emacs-ci-repo1/test/lisp #f(compiled-function () #<bytecode 0x165c3552b49c3535>)() #f(compiled-function () #<bytecode -0x1132e651e2fb7509>)() handler-bind-1(#f(compiled-function () #<bytecode -0x1132e651e2fb750 ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name c-ts-mode-test-indentation :documenta ert-run-or-rerun-test(#s(ert--stats :selector (not (or ... ... ...)) ert-run-tests((not (or (tag :expensive-test) (tag :unstable) (tag :n ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable) ( ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) ( command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l command-line() normal-top-level() Test c-ts-mode-test-indentation condition: (ert-test-failed ("Mismatch in test \"For Loop with Multi-line Condition (GNU Style)\", file /home/andcor03/emacs-ci/emacs-ci-repo1/test/lisp/progmodes/c-ts-mode-resources/indent.erts" #("int main()\n{\n for (\n int i = 0;\n i < b;\n i++\n )\n {\n return 0;\n }\n}\n" 0 108 (fontified nil)) "int main()\n{\n for (\n int i = 0;\n i < b;\n i++\n )\n {\n return 0;\n }\n}\n")) FAILED 2/4 c-ts-mode-test-indentation (0.016936 sec) at lisp/progmodes/c-ts-mode-tests.el:26 Configuring with --with-native-compilation=no --with-x-toolkit=no Regards Andrea ^ permalink raw reply [flat|nested] 13+ messages in thread
[parent not found: <20241202021023.5060A521787@vcs3.savannah.gnu.org>]
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests [not found] ` <20241202021023.5060A521787@vcs3.savannah.gnu.org> @ 2024-12-04 8:19 ` Michael Albinus 2024-12-05 6:50 ` Yuan Fu 0 siblings, 1 reply; 13+ messages in thread From: Michael Albinus @ 2024-12-04 8:19 UTC (permalink / raw) To: emacs-devel; +Cc: Yuan Fu Yuan Fu <casouri@gmail.com> writes: Hi Yuan, > branch: master > commit 44fcd37a486399be048fb03b9456497af78632fe > Author: Yuan Fu <casouri@gmail.com> > Commit: Yuan Fu <casouri@gmail.com> > > Add more c-ts-mode indent tests This fails on emba: --8<---------------cut here---------------start------------->8--- Running 4 tests (2024-12-04 01:34:21+0000, selector `(and (not (or (tag :unstable) (tag :nativecomp))) (or "^treesit" "-ts-"))') passed 1/4 c-ts-mode-test-filling (0.242501 sec) Test c-ts-mode-test-indentation backtrace: signal(ert-test-failed (("Mismatch in test \"For Loop with Multi-lin ert-fail(("Mismatch in test \"For Loop with Multi-line Condition (GN ert-test--erts-test(((code lambda nil (c-ts-mode) (setq-local indent ert-test-erts-file("/checkout/test/lisp/progmodes/c-ts-mode-resource #f(compiled-function () #<bytecode 0x165c4c7bd62c9ac5>)() #f(compiled-function () #<bytecode -0x13aaedb12a291e2f>)() handler-bind-1(#f(compiled-function () #<bytecode -0x13aaedb12a291e2 ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test ert-run-test(#s(ert-test :name c-ts-mode-test-indentation :documenta ert-run-or-rerun-test(#s(ert--stats :selector (and (not ...) (or "^t ert-run-tests((and (not (or (tag :unstable) (tag :nativecomp))) (or ert-run-tests-batch((and (not (or (tag :unstable) (tag :nativecomp)) ert-run-tests-batch-and-exit((and (not (or (tag :unstable) (tag :nat eval((ert-run-tests-batch-and-exit '(and (not (or (tag :unstable) (t command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l command-line() normal-top-level() Test c-ts-mode-test-indentation condition: (ert-test-failed ("Mismatch in test \"For Loop with Multi-line Condition (GNU Style)\", file /checkout/test/lisp/progmodes/c-ts-mode-resources/indent.erts" #("int main()\n{\n for (\n int i = 0;\n i < b;\n i++\n )\n {\n return 0;\n }\n}\n" 0 108 (fontified nil)) "int main()\n{\n for (\n int i = 0;\n i < b;\n i++\n )\n {\n return 0;\n }\n}\n")) FAILED 2/4 c-ts-mode-test-indentation (0.132145 sec) at lisp/progmodes/c-ts-mode-tests.el:26 passed 3/4 c-ts-mode-test-indentation-bsd (0.087755 sec) passed 4/4 c-ts-mode-test-indentation-preproc (0.049779 sec) Ran 4 tests, 3 results as expected, 1 unexpected (2024-12-04 01:34:23+0000, 1.849321 sec) --8<---------------cut here---------------end--------------->8--- See <https://emba.gnu.org/emacs/emacs/-/jobs/93972/raw>. Best regards, Michael. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-04 8:19 ` master 44fcd37a486 08/11: Add more c-ts-mode indent tests Michael Albinus @ 2024-12-05 6:50 ` Yuan Fu 2024-12-05 7:37 ` Michael Albinus 0 siblings, 1 reply; 13+ messages in thread From: Yuan Fu @ 2024-12-05 6:50 UTC (permalink / raw) To: Michael Albinus; +Cc: emacs-devel > On Dec 4, 2024, at 12:19 AM, Michael Albinus <michael.albinus@gmx.de> wrote: > > Yuan Fu <casouri@gmail.com> writes: > > Hi Yuan, > >> branch: master >> commit 44fcd37a486399be048fb03b9456497af78632fe >> Author: Yuan Fu <casouri@gmail.com> >> Commit: Yuan Fu <casouri@gmail.com> >> >> Add more c-ts-mode indent tests > > This fails on emba: > > --8<---------------cut here---------------start------------->8--- > Running 4 tests (2024-12-04 01:34:21+0000, selector `(and (not (or (tag :unstable) (tag :nativecomp))) (or "^treesit" "-ts-"))') > passed 1/4 c-ts-mode-test-filling (0.242501 sec) > Test c-ts-mode-test-indentation backtrace: > signal(ert-test-failed (("Mismatch in test \"For Loop with Multi-lin > ert-fail(("Mismatch in test \"For Loop with Multi-line Condition (GN > ert-test--erts-test(((code lambda nil (c-ts-mode) (setq-local indent > ert-test-erts-file("/checkout/test/lisp/progmodes/c-ts-mode-resource > #f(compiled-function () #<bytecode 0x165c4c7bd62c9ac5>)() > #f(compiled-function () #<bytecode -0x13aaedb12a291e2f>)() > handler-bind-1(#f(compiled-function () #<bytecode -0x13aaedb12a291e2 > ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test > ert-run-test(#s(ert-test :name c-ts-mode-test-indentation :documenta > ert-run-or-rerun-test(#s(ert--stats :selector (and (not ...) (or "^t > ert-run-tests((and (not (or (tag :unstable) (tag :nativecomp))) (or > ert-run-tests-batch((and (not (or (tag :unstable) (tag :nativecomp)) > ert-run-tests-batch-and-exit((and (not (or (tag :unstable) (tag :nat > eval((ert-run-tests-batch-and-exit '(and (not (or (tag :unstable) (t > command-line-1(("-L" ":." "-l" "ert" "--eval" "(setq treesit-extra-l > command-line() > normal-top-level() > Test c-ts-mode-test-indentation condition: > (ert-test-failed > ("Mismatch in test \"For Loop with Multi-line Condition (GNU Style)\", file /checkout/test/lisp/progmodes/c-ts-mode-resources/indent.erts" > #("int main()\n{\n for (\n int i = 0;\n i < b;\n i++\n )\n {\n return 0;\n }\n}\n" > 0 108 (fontified nil)) > "int main()\n{\n for (\n int i = 0;\n i < b;\n i++\n )\n {\n return 0;\n }\n}\n")) > FAILED 2/4 c-ts-mode-test-indentation (0.132145 sec) at lisp/progmodes/c-ts-mode-tests.el:26 > passed 3/4 c-ts-mode-test-indentation-bsd (0.087755 sec) > passed 4/4 c-ts-mode-test-indentation-preproc (0.049779 sec) > > Ran 4 tests, 3 results as expected, 1 unexpected (2024-12-04 01:34:23+0000, 1.849321 sec) > --8<---------------cut here---------------end--------------->8--- > > See <https://emba.gnu.org/emacs/emacs/-/jobs/93972/raw>. > > Best regards, Michael. This is baffling. I assume the pipeline build the latest tree-sitter-c/cpp grammar right? I just updated my grammar and tree-sitter lib to the latest and the tests still pass on my machine. Is tree-sitter version also the latest? Yuan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-05 6:50 ` Yuan Fu @ 2024-12-05 7:37 ` Michael Albinus 2024-12-06 7:30 ` Yuan Fu 0 siblings, 1 reply; 13+ messages in thread From: Michael Albinus @ 2024-12-05 7:37 UTC (permalink / raw) To: Yuan Fu; +Cc: emacs-devel Yuan Fu <casouri@gmail.com> writes: Hi Yuan, > This is baffling. I assume the pipeline build the latest > tree-sitter-c/cpp grammar right? I just updated my grammar and > tree-sitter lib to the latest and the tests still pass on my > machine. Is tree-sitter version also the latest? See test/infra/Dockerfile.emba. The emacs-tree-sitter container image is created prior every run, the treesitter grammars mentioned there are installed. If you want to reproduce the problem in the emba environment, see admin/notes/emba. It explains how to create and run the docker container locally. > Yuan Best regards, Michael. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-05 7:37 ` Michael Albinus @ 2024-12-06 7:30 ` Yuan Fu 2024-12-07 1:04 ` Yuan Fu 0 siblings, 1 reply; 13+ messages in thread From: Yuan Fu @ 2024-12-06 7:30 UTC (permalink / raw) To: Michael Albinus; +Cc: emacs-devel > On Dec 4, 2024, at 11:37 PM, Michael Albinus <michael.albinus@gmx.de> wrote: > > Yuan Fu <casouri@gmail.com> writes: > > Hi Yuan, > >> This is baffling. I assume the pipeline build the latest >> tree-sitter-c/cpp grammar right? I just updated my grammar and >> tree-sitter lib to the latest and the tests still pass on my >> machine. Is tree-sitter version also the latest? > > See test/infra/Dockerfile.emba. The emacs-tree-sitter container image is > created prior every run, the treesitter grammars mentioned there are > installed. Ah, so the image uses Debian bookworm, which AFAIK is the current stable release, so it probably doesn’t have the latest tree-sitter library. Let me try to run the pipeline with tree-sitter built from upstream. Yuan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-06 7:30 ` Yuan Fu @ 2024-12-07 1:04 ` Yuan Fu 2024-12-07 7:49 ` Eli Zaretskii 0 siblings, 1 reply; 13+ messages in thread From: Yuan Fu @ 2024-12-07 1:04 UTC (permalink / raw) To: Michael Albinus; +Cc: Emacs Devel, Andrea Corallo > On Dec 5, 2024, at 11:30 PM, Yuan Fu <casouri@gmail.com> wrote: > > > >> On Dec 4, 2024, at 11:37 PM, Michael Albinus <michael.albinus@gmx.de> wrote: >> >> Yuan Fu <casouri@gmail.com> writes: >> >> Hi Yuan, >> >>> This is baffling. I assume the pipeline build the latest >>> tree-sitter-c/cpp grammar right? I just updated my grammar and >>> tree-sitter lib to the latest and the tests still pass on my >>> machine. Is tree-sitter version also the latest? >> >> See test/infra/Dockerfile.emba. The emacs-tree-sitter container image is >> created prior every run, the treesitter grammars mentioned there are >> installed. > > Ah, so the image uses Debian bookworm, which AFAIK is the current stable release, so it probably doesn’t have the latest tree-sitter library. Let me try to run the pipeline with tree-sitter built from upstream. > > Yuan I didn’t run the pipeline built from upstream, but I tried running the tests locally with the tree-sitter library used in the pipeline. The pipeline uses tree-sitter provided by bookworm, which is v0.20.7, a pretty old version. And indeed, with that version of tree-sitter I can see the test failure. Andrea, which version of tree-sitter do you have on your test bench? Since tree-sitter is still relatively unstable, maybe we want to use upstream tree-sitter for the test suite? Yuan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-07 1:04 ` Yuan Fu @ 2024-12-07 7:49 ` Eli Zaretskii 2024-12-11 6:15 ` Yuan Fu 0 siblings, 1 reply; 13+ messages in thread From: Eli Zaretskii @ 2024-12-07 7:49 UTC (permalink / raw) To: Yuan Fu; +Cc: michael.albinus, emacs-devel, acorallo > From: Yuan Fu <casouri@gmail.com> > Date: Fri, 6 Dec 2024 17:04:42 -0800 > Cc: Emacs Devel <emacs-devel@gnu.org>, > Andrea Corallo <acorallo@gnu.org> > > > > > On Dec 5, 2024, at 11:30 PM, Yuan Fu <casouri@gmail.com> wrote: > > > > > > > >> On Dec 4, 2024, at 11:37 PM, Michael Albinus <michael.albinus@gmx.de> wrote: > >> > >> Yuan Fu <casouri@gmail.com> writes: > >> > >> Hi Yuan, > >> > >>> This is baffling. I assume the pipeline build the latest > >>> tree-sitter-c/cpp grammar right? I just updated my grammar and > >>> tree-sitter lib to the latest and the tests still pass on my > >>> machine. Is tree-sitter version also the latest? > >> > >> See test/infra/Dockerfile.emba. The emacs-tree-sitter container image is > >> created prior every run, the treesitter grammars mentioned there are > >> installed. > > > > Ah, so the image uses Debian bookworm, which AFAIK is the current stable release, so it probably doesn’t have the latest tree-sitter library. Let me try to run the pipeline with tree-sitter built from upstream. > > > > Yuan > > I didn’t run the pipeline built from upstream, but I tried running the tests locally with the tree-sitter library used in the pipeline. The pipeline uses tree-sitter provided by bookworm, which is v0.20.7, a pretty old version. And indeed, with that version of tree-sitter I can see the test failure. > > Andrea, which version of tree-sitter do you have on your test bench? > > Since tree-sitter is still relatively unstable, maybe we want to use upstream tree-sitter for the test suite? I don't think this is practical. I'd rather mark that test as expected failure or "unstable", if we cannot know the version of the tree-sitter library used for the test. Or maybe you could rewrite the test so that it works in both old and new versions of the library. (FWIW, I use 0.20.8, with the latest grammar libraries, and the test fails here as well. Due to the issues with ABI breakage in the tree-sitter library, I decided that I will upgrade only when 0.25 is released, because it also bumps the language ABI version, which we can detect in Emacs.) ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-07 7:49 ` Eli Zaretskii @ 2024-12-11 6:15 ` Yuan Fu 2024-12-11 23:50 ` Andrea Corallo 0 siblings, 1 reply; 13+ messages in thread From: Yuan Fu @ 2024-12-11 6:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Michael Albinus, Emacs Devel, acorallo > On Dec 6, 2024, at 11:49 PM, Eli Zaretskii <eliz@gnu.org> wrote: > >> From: Yuan Fu <casouri@gmail.com> >> Date: Fri, 6 Dec 2024 17:04:42 -0800 >> Cc: Emacs Devel <emacs-devel@gnu.org>, >> Andrea Corallo <acorallo@gnu.org> >> >> >> >>> On Dec 5, 2024, at 11:30 PM, Yuan Fu <casouri@gmail.com> wrote: >>> >>> >>> >>>> On Dec 4, 2024, at 11:37 PM, Michael Albinus <michael.albinus@gmx.de> wrote: >>>> >>>> Yuan Fu <casouri@gmail.com> writes: >>>> >>>> Hi Yuan, >>>> >>>>> This is baffling. I assume the pipeline build the latest >>>>> tree-sitter-c/cpp grammar right? I just updated my grammar and >>>>> tree-sitter lib to the latest and the tests still pass on my >>>>> machine. Is tree-sitter version also the latest? >>>> >>>> See test/infra/Dockerfile.emba. The emacs-tree-sitter container image is >>>> created prior every run, the treesitter grammars mentioned there are >>>> installed. >>> >>> Ah, so the image uses Debian bookworm, which AFAIK is the current stable release, so it probably doesn’t have the latest tree-sitter library. Let me try to run the pipeline with tree-sitter built from upstream. >>> >>> Yuan >> >> I didn’t run the pipeline built from upstream, but I tried running the tests locally with the tree-sitter library used in the pipeline. The pipeline uses tree-sitter provided by bookworm, which is v0.20.7, a pretty old version. And indeed, with that version of tree-sitter I can see the test failure. >> >> Andrea, which version of tree-sitter do you have on your test bench? >> >> Since tree-sitter is still relatively unstable, maybe we want to use upstream tree-sitter for the test suite? > > I don't think this is practical. I'd rather mark that test as > expected failure or "unstable", if we cannot know the version of the > tree-sitter library used for the test. > > Or maybe you could rewrite the test so that it works in both old and > new versions of the library. > > (FWIW, I use 0.20.8, with the latest grammar libraries, and the test > fails here as well. Due to the issues with ABI breakage in the > tree-sitter library, I decided that I will upgrade only when 0.25 is > released, because it also bumps the language ABI version, which we can > detect in Emacs.) I dug into it, and the culprit is a bug in older tree-sitter versions where (the C equivalent of) treesit-node-field-name-for-child gives the wrong field name. I rewrote the indent function so it uses child node index instead of field name to match indentation rules. Now the tests should pass. Yuan ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-11 6:15 ` Yuan Fu @ 2024-12-11 23:50 ` Andrea Corallo 2024-12-11 23:53 ` Andrea Corallo 0 siblings, 1 reply; 13+ messages in thread From: Andrea Corallo @ 2024-12-11 23:50 UTC (permalink / raw) To: Yuan Fu; +Cc: Eli Zaretskii, Michael Albinus, Emacs Devel Yuan Fu <casouri@gmail.com> writes: >> On Dec 6, 2024, at 11:49 PM, Eli Zaretskii <eliz@gnu.org> wrote: >> >>> From: Yuan Fu <casouri@gmail.com> >>> Date: Fri, 6 Dec 2024 17:04:42 -0800 >>> Cc: Emacs Devel <emacs-devel@gnu.org>, >>> Andrea Corallo <acorallo@gnu.org> >>> >>> >>> >>>> On Dec 5, 2024, at 11:30 PM, Yuan Fu <casouri@gmail.com> wrote: >>>> >>>> >>>> >>>>> On Dec 4, 2024, at 11:37 PM, Michael Albinus <michael.albinus@gmx.de> wrote: >>>>> >>>>> Yuan Fu <casouri@gmail.com> writes: >>>>> >>>>> Hi Yuan, >>>>> >>>>>> This is baffling. I assume the pipeline build the latest >>>>>> tree-sitter-c/cpp grammar right? I just updated my grammar and >>>>>> tree-sitter lib to the latest and the tests still pass on my >>>>>> machine. Is tree-sitter version also the latest? >>>>> >>>>> See test/infra/Dockerfile.emba. The emacs-tree-sitter container image is >>>>> created prior every run, the treesitter grammars mentioned there are >>>>> installed. >>>> >>>> Ah, so the image uses Debian bookworm, which AFAIK is the current >>>> stable release, so it probably doesn’t have the latest tree-sitter >>>> library. Let me try to run the pipeline with tree-sitter built >>>> from upstream. >>>> >>>> Yuan >>> >>> I didn’t run the pipeline built from upstream, but I tried running >>> the tests locally with the tree-sitter library used in the >>> pipeline. The pipeline uses tree-sitter provided by bookworm, which >>> is v0.20.7, a pretty old version. And indeed, with that version of >>> tree-sitter I can see the test failure. >>> >>> Andrea, which version of tree-sitter do you have on your test bench? >>> >>> Since tree-sitter is still relatively unstable, maybe we want to use upstream tree-sitter for the test suite? >> >> I don't think this is practical. I'd rather mark that test as >> expected failure or "unstable", if we cannot know the version of the >> tree-sitter library used for the test. >> >> Or maybe you could rewrite the test so that it works in both old and >> new versions of the library. >> >> (FWIW, I use 0.20.8, with the latest grammar libraries, and the test >> fails here as well. Due to the issues with ABI breakage in the >> tree-sitter library, I decided that I will upgrade only when 0.25 is >> released, because it also bumps the language ABI version, which we can >> detect in Emacs.) > > I dug into it, and the culprit is a bug in older tree-sitter versions > where (the C equivalent of) treesit-node-field-name-for-child gives > the wrong field name. I rewrote the indent function so it uses child > node index instead of field name to match indentation rules. Now the > tests should pass. > > Yuan Confirm Thanks Andrea ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-11 23:50 ` Andrea Corallo @ 2024-12-11 23:53 ` Andrea Corallo 2024-12-12 6:08 ` Yuan Fu 0 siblings, 1 reply; 13+ messages in thread From: Andrea Corallo @ 2024-12-11 23:53 UTC (permalink / raw) To: Yuan Fu; +Cc: Eli Zaretskii, Michael Albinus, Emacs Devel Andrea Corallo <acorallo@gnu.org> writes: > Yuan Fu <casouri@gmail.com> writes: > >>> On Dec 6, 2024, at 11:49 PM, Eli Zaretskii <eliz@gnu.org> wrote: >>> >>>> From: Yuan Fu <casouri@gmail.com> >>>> Date: Fri, 6 Dec 2024 17:04:42 -0800 >>>> Cc: Emacs Devel <emacs-devel@gnu.org>, >>>> Andrea Corallo <acorallo@gnu.org> >>>> >>>> >>>> >>>>> On Dec 5, 2024, at 11:30 PM, Yuan Fu <casouri@gmail.com> wrote: >>>>> >>>>> >>>>> >>>>>> On Dec 4, 2024, at 11:37 PM, Michael Albinus <michael.albinus@gmx.de> wrote: >>>>>> >>>>>> Yuan Fu <casouri@gmail.com> writes: >>>>>> >>>>>> Hi Yuan, >>>>>> >>>>>>> This is baffling. I assume the pipeline build the latest >>>>>>> tree-sitter-c/cpp grammar right? I just updated my grammar and >>>>>>> tree-sitter lib to the latest and the tests still pass on my >>>>>>> machine. Is tree-sitter version also the latest? >>>>>> >>>>>> See test/infra/Dockerfile.emba. The emacs-tree-sitter container image is >>>>>> created prior every run, the treesitter grammars mentioned there are >>>>>> installed. >>>>> >>>>> Ah, so the image uses Debian bookworm, which AFAIK is the current >>>>> stable release, so it probably doesn’t have the latest tree-sitter >>>>> library. Let me try to run the pipeline with tree-sitter built >>>>> from upstream. >>>>> >>>>> Yuan >>>> >>>> I didn’t run the pipeline built from upstream, but I tried running >>>> the tests locally with the tree-sitter library used in the >>>> pipeline. The pipeline uses tree-sitter provided by bookworm, which >>>> is v0.20.7, a pretty old version. And indeed, with that version of >>>> tree-sitter I can see the test failure. >>>> >>>> Andrea, which version of tree-sitter do you have on your test bench? >>>> >>>> Since tree-sitter is still relatively unstable, maybe we want to use upstream tree-sitter for the test suite? >>> >>> I don't think this is practical. I'd rather mark that test as >>> expected failure or "unstable", if we cannot know the version of the >>> tree-sitter library used for the test. >>> >>> Or maybe you could rewrite the test so that it works in both old and >>> new versions of the library. >>> >>> (FWIW, I use 0.20.8, with the latest grammar libraries, and the test >>> fails here as well. Due to the issues with ABI breakage in the >>> tree-sitter library, I decided that I will upgrade only when 0.25 is >>> released, because it also bumps the language ABI version, which we can >>> detect in Emacs.) >> >> I dug into it, and the culprit is a bug in older tree-sitter versions >> where (the C equivalent of) treesit-node-field-name-for-child gives >> the wrong field name. I rewrote the indent function so it uses child >> node index instead of field name to match indentation rules. Now the >> tests should pass. >> >> Yuan > > Confirm But introduces progmodes/c-ts-mode.el:379:13: Warning: the function ‘treesit-node-check’ is not known to be defined. on non treesit configs :) Andrea ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: master 44fcd37a486 08/11: Add more c-ts-mode indent tests 2024-12-11 23:53 ` Andrea Corallo @ 2024-12-12 6:08 ` Yuan Fu 0 siblings, 0 replies; 13+ messages in thread From: Yuan Fu @ 2024-12-12 6:08 UTC (permalink / raw) To: Andrea Corallo; +Cc: Eli Zaretskii, Michael Albinus, Emacs Devel > On Dec 11, 2024, at 3:53 PM, Andrea Corallo <acorallo@gnu.org> wrote: > > Andrea Corallo <acorallo@gnu.org> writes: > >> Yuan Fu <casouri@gmail.com> writes: >> >>>> On Dec 6, 2024, at 11:49 PM, Eli Zaretskii <eliz@gnu.org> wrote: >>>> >>>>> From: Yuan Fu <casouri@gmail.com> >>>>> Date: Fri, 6 Dec 2024 17:04:42 -0800 >>>>> Cc: Emacs Devel <emacs-devel@gnu.org>, >>>>> Andrea Corallo <acorallo@gnu.org> >>>>> >>>>> >>>>> >>>>>> On Dec 5, 2024, at 11:30 PM, Yuan Fu <casouri@gmail.com> wrote: >>>>>> >>>>>> >>>>>> >>>>>>> On Dec 4, 2024, at 11:37 PM, Michael Albinus <michael.albinus@gmx.de> wrote: >>>>>>> >>>>>>> Yuan Fu <casouri@gmail.com> writes: >>>>>>> >>>>>>> Hi Yuan, >>>>>>> >>>>>>>> This is baffling. I assume the pipeline build the latest >>>>>>>> tree-sitter-c/cpp grammar right? I just updated my grammar and >>>>>>>> tree-sitter lib to the latest and the tests still pass on my >>>>>>>> machine. Is tree-sitter version also the latest? >>>>>>> >>>>>>> See test/infra/Dockerfile.emba. The emacs-tree-sitter container image is >>>>>>> created prior every run, the treesitter grammars mentioned there are >>>>>>> installed. >>>>>> >>>>>> Ah, so the image uses Debian bookworm, which AFAIK is the current >>>>>> stable release, so it probably doesn’t have the latest tree-sitter >>>>>> library. Let me try to run the pipeline with tree-sitter built >>>>>> from upstream. >>>>>> >>>>>> Yuan >>>>> >>>>> I didn’t run the pipeline built from upstream, but I tried running >>>>> the tests locally with the tree-sitter library used in the >>>>> pipeline. The pipeline uses tree-sitter provided by bookworm, which >>>>> is v0.20.7, a pretty old version. And indeed, with that version of >>>>> tree-sitter I can see the test failure. >>>>> >>>>> Andrea, which version of tree-sitter do you have on your test bench? >>>>> >>>>> Since tree-sitter is still relatively unstable, maybe we want to use upstream tree-sitter for the test suite? >>>> >>>> I don't think this is practical. I'd rather mark that test as >>>> expected failure or "unstable", if we cannot know the version of the >>>> tree-sitter library used for the test. >>>> >>>> Or maybe you could rewrite the test so that it works in both old and >>>> new versions of the library. >>>> >>>> (FWIW, I use 0.20.8, with the latest grammar libraries, and the test >>>> fails here as well. Due to the issues with ABI breakage in the >>>> tree-sitter library, I decided that I will upgrade only when 0.25 is >>>> released, because it also bumps the language ABI version, which we can >>>> detect in Emacs.) >>> >>> I dug into it, and the culprit is a bug in older tree-sitter versions >>> where (the C equivalent of) treesit-node-field-name-for-child gives >>> the wrong field name. I rewrote the indent function so it uses child >>> node index instead of field name to match indentation rules. Now the >>> tests should pass. >>> >>> Yuan >> >> Confirm > > But introduces > > progmodes/c-ts-mode.el:379:13: Warning: the function ‘treesit-node-check’ is not known to be defined. > > on non treesit configs :) > > Andrea Ah! I’m sorry :) Pushed the fix to master. I promise we’ll be free of these problems soon ;) Yuan ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-12-12 6:08 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <173310542049.252624.8341603519407599366@vcs3.savannah.gnu.org> [not found] ` <20241202021023.2C8B8521785@vcs3.savannah.gnu.org> 2024-12-02 21:02 ` master 63d69bd1549 07/11: Use new baseline indent rule in c-ts-mode Andrea Corallo 2024-12-03 0:38 ` Yuan Fu 2024-12-03 8:05 ` Andrea Corallo [not found] ` <20241202021023.5060A521787@vcs3.savannah.gnu.org> 2024-12-04 8:19 ` master 44fcd37a486 08/11: Add more c-ts-mode indent tests Michael Albinus 2024-12-05 6:50 ` Yuan Fu 2024-12-05 7:37 ` Michael Albinus 2024-12-06 7:30 ` Yuan Fu 2024-12-07 1:04 ` Yuan Fu 2024-12-07 7:49 ` Eli Zaretskii 2024-12-11 6:15 ` Yuan Fu 2024-12-11 23:50 ` Andrea Corallo 2024-12-11 23:53 ` Andrea Corallo 2024-12-12 6:08 ` Yuan Fu
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.