* bug#64567: 29.0.92; c-ts-mode fails to parse syslogger.c of postgres source
[not found] <87r0pf1eal.fsf@qq.com>
@ 2023-07-11 0:30 ` Yang Yingchao via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-11 11:58 ` Eli Zaretskii
0 siblings, 1 reply; 3+ messages in thread
From: Yang Yingchao via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-07-11 0:30 UTC (permalink / raw)
To: 64567
[-- Attachment #1: Type: text/plain, Size: 4005 bytes --]
1. get source file from
<https://github.com/postgres/postgres/blob/master/src/backend/postmaster/syslogger.c>
1. open it, and move to line 567, then we can see function
`SysLogger_Start(void)` is not highlighted properly.
`treesit-explore-mode` shows some error too:
```
(ERROR type: (primitive_type)
(function_declarator declarator: (identifier)
parameters:
(parameter_list (
(parameter_declaration type: (primitive_type))
)))
```
And when cusor is inside this function, and `treesit-beginning-of-defun`
will move cusor to `SysLoggerMain()` which is actully the function
before `SysLogger_Start()`.
In GNU Emacs 29.0.92 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.38, cairo version 1.17.8) of 2023-07-11 built on tbook
Repository revision: 419b4d44914701cedf308df58c3e5789715c87e7
Repository branch: HEAD
System Description: Gentoo Linux
Configured using:
'configure 'CFLAGS=-O2 -march=native -pipe -g' LDFLAGS= --with-xml2
--with-json --with-modules --without-pop --without-imagemagick
--with-native-compilation --with-pgtk --with-xft --with-harfbuzz
--with-tree-sitter --without-x --without-ns'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK
PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM GTK3 ZLIB
Important settings:
value of $LANG: zh_CN.UTF8
value of $XMODIFIERS: @im=fcitx
locale-coding-system: utf-8-unix
Major mode: C/*
Minor modes in effect:
treesit-explore-mode: t
tooltip-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
None found.
Features:
(shadow sort emacsbug mail-extr message sendmail mailcap yank-media puny
dired dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg
rfc6068 epg-config gnus-util text-property-search time-date mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
c-ts-mode c-ts-common treesit vc-git diff-mode easy-mmode vc-dispatcher
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs comp comp-cstr warnings icons subr-x rx cl-seq cl-macs
gv cl-extra help-mode cl-loaddefs cl-lib bytecomp byte-compile
china-util rmc iso-transl tooltip cconv eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win
pgtk-win term/common-win pgtk-dnd tool-bar dnd fontset image regexp-opt
fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode
register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty make-network-process
native-compile emacs)
Memory information:
((conses 16 456295 34678)
(symbols 48 9761 0)
(strings 32 44677 2133)
(string-bytes 1 1728443)
(vectors 16 41351)
(vector-slots 8 598570 44421)
(floats 8 58 41)
(intervals 56 38142 182)
(buffers 984 14))
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#64567: 29.0.92; c-ts-mode fails to parse syslogger.c of postgres source
2023-07-11 0:30 ` bug#64567: 29.0.92; c-ts-mode fails to parse syslogger.c of postgres source Yang Yingchao via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2023-07-11 11:58 ` Eli Zaretskii
2023-07-12 1:05 ` Yang Yingchao via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 3+ messages in thread
From: Eli Zaretskii @ 2023-07-11 11:58 UTC (permalink / raw)
To: yang.yingchao, Yuan Fu, Theodor Thornhill; +Cc: 64567
> Date: Tue, 11 Jul 2023 08:30:51 +0800
> From: Yang Yingchao via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> 1. get source file from
> <https://github.com/postgres/postgres/blob/master/src/backend/postmaster/syslogger.c>
> 1. open it, and move to line 567, then we can see function
> `SysLogger_Start(void)` is not highlighted properly.
>
> `treesit-explore-mode` shows some error too:
>
> ```
> (ERROR type: (primitive_type)
> (function_declarator declarator: (identifier)
> parameters:
> (parameter_list (
> (parameter_declaration type: (primitive_type))
> )))
>
> ```
>
> And when cusor is inside this function, and `treesit-beginning-of-defun`
> will move cusor to `SysLoggerMain()` which is actully the function
> before `SysLogger_Start()`.
It's because of this:
#ifdef EXEC_BACKEND
switch ((sysloggerPid = syslogger_forkexec()))
#else
switch ((sysloggerPid = fork_process()))
#endif
The 2 'switch' statements inside preprocessor conditions cause the
parser to fail. I'm not sure we can do anything with this, except
report this to the developers of the tree-sitter C grammar, but I CC
Yuan and Theo just in case they have some ideas.
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#64567: 29.0.92; c-ts-mode fails to parse syslogger.c of postgres source
2023-07-11 11:58 ` Eli Zaretskii
@ 2023-07-12 1:05 ` Yang Yingchao via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 0 replies; 3+ messages in thread
From: Yang Yingchao via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-07-12 1:05 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 64567, Yuan Fu, Theodor Thornhill
[-- Attachment #1: Type: text/plain, Size: 1380 bytes --]
Sure, thanks.
On Tue, Jul 11 2023, Eli Zaretskii <eliz@gnu.org> wrote:
>> Date: Tue, 11 Jul 2023 08:30:51 +0800
>> From: Yang Yingchao via "Bug reports for GNU Emacs,
>> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>>
>> 1. get source file from
>> <https://github.com/postgres/postgres/blob/master/src/backend/postmaster/syslogger.c>
>> 1. open it, and move to line 567, then we can see function
>> `SysLogger_Start(void)` is not highlighted properly.
>>
>> `treesit-explore-mode` shows some error too:
>>
>> ```
>> (ERROR type: (primitive_type)
>> (function_declarator declarator: (identifier)
>> parameters:
>> (parameter_list (
>> (parameter_declaration type: (primitive_type))
>> )))
>>
>> ```
>>
>> And when cusor is inside this function, and `treesit-beginning-of-defun`
>> will move cusor to `SysLoggerMain()` which is actully the function
>> before `SysLogger_Start()`.
>
> It's because of this:
>
>
> #ifdef EXEC_BACKEND
> switch ((sysloggerPid = syslogger_forkexec()))
> #else
> switch ((sysloggerPid = fork_process()))
> #endif
>
> The 2 'switch' statements inside preprocessor conditions cause the
> parser to fail. I'm not sure we can do anything with this, except
> report this to the developers of the tree-sitter C grammar, but I CC
> Yuan and Theo just in case they have some ideas.
Regards,
-- *Yang Yingchao*
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-07-12 1:05 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <87r0pf1eal.fsf@qq.com>
2023-07-11 0:30 ` bug#64567: 29.0.92; c-ts-mode fails to parse syslogger.c of postgres source Yang Yingchao via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-07-11 11:58 ` Eli Zaretskii
2023-07-12 1:05 ` Yang Yingchao via Bug reports for GNU Emacs, the Swiss army knife of text editors
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).