commit e6a700a28e87a9ba4eb90fb6e455581d68ea61ec (HEAD, refs/remotes/origin/master) Author: Michael Albinus Date: Sat Jun 19 10:35:06 2021 +0200 Handle case remote uid is 0 in some Tramp related tests * test/lisp/filenotify-tests.el: * test/lisp/shadowfile-tests.el: Set `tramp-allow-unsafe-temporary-files' to t. diff --git a/test/lisp/filenotify-tests.el b/test/lisp/filenotify-tests.el index 13350b2442..e0fa66a5d9 100644 --- a/test/lisp/filenotify-tests.el +++ b/test/lisp/filenotify-tests.el @@ -200,7 +200,10 @@ Return nil when any other file notification watch is still active." (setq file-notify-debug nil password-cache-expiry nil - tramp-verbose 0) + tramp-verbose 0 + ;; When the remote user id is 0, Tramp refuses unsafe temporary files. + tramp-allow-unsafe-temporary-files + (or tramp-allow-unsafe-temporary-files noninteractive)) ;; This should happen on hydra only. (when (getenv "EMACS_HYDRA_CI") diff --git a/test/lisp/shadowfile-tests.el b/test/lisp/shadowfile-tests.el index 7b9c2ff63b..7c9d05ac1c 100644 --- a/test/lisp/shadowfile-tests.el +++ b/test/lisp/shadowfile-tests.el @@ -72,6 +72,9 @@ (setq password-cache-expiry nil shadow-debug (getenv "EMACS_HYDRA_CI") tramp-verbose 0 + ;; When the remote user id is 0, Tramp refuses unsafe temporary files. + tramp-allow-unsafe-temporary-files + (or tramp-allow-unsafe-temporary-files noninteractive) ;; On macOS, `temporary-file-directory' is a symlinked directory. temporary-file-directory (file-truename temporary-file-directory) shadow-test-remote-temporary-file-directory commit b9f339e8f8f6194001ca2f00d9d172851ca482bd Author: Mattias Engdegård Date: Fri Jun 18 15:02:58 2021 +0200 ; * src/comp.c (ADD_IMPORTED): Fix broken macro. diff --git a/src/comp.c b/src/comp.c index 056d0860d8..ea05952627 100644 --- a/src/comp.c +++ b/src/comp.c @@ -2687,7 +2687,7 @@ declare_runtime_imported_funcs (void) Lisp_Object field_list = Qnil; #define ADD_IMPORTED(f_name, ret_type, nargs, args) \ - { \ + do { \ Lisp_Object name = intern_c_string (STR (f_name)); \ Lisp_Object field = \ make_mint_ptr (declare_imported_func (name, ret_type, nargs, args)); \ commit ac73d77cedf2095db198219746f1607b61b1b582 Author: Mattias Engdegård Date: Thu Jun 17 11:18:46 2021 +0200 Fix Morse for non-ASCII letters * lisp/play/morse.el (morse-code): Downcase letters in the table because they must match downcased input. diff --git a/lisp/play/morse.el b/lisp/play/morse.el index 66a826fbd4..bfb25ba1d5 100644 --- a/lisp/play/morse.el +++ b/lisp/play/morse.el @@ -79,17 +79,16 @@ ("8" . "---..") ("9" . "----.") ;; Non-ASCII - ("Ä" . ".-.-") - ("Æ" . ".-.-") - ("Á" . ".--.-") - ("Å" . ".--.-") - ;; ligature character?? ("Ch" . "----") - ("ß" . ".../...") - ("É" . "..-..") - ("Ñ" . "--.--") - ("Ö" . "---.") - ("Ø" . "---.") - ("Ü" . "..--") + ("ä" . ".-.-") + ("æ" . ".-.-") + ("á" . ".--.-") + ("å" . ".--.-") + ("ß" . ".../...") ; also ...--.. + ("é" . "..-..") + ("ñ" . "--.--") + ("ö" . "---.") + ("ø" . "---.") + ("ü" . "..--") ;; Recently standardized ("@" . ".--.-.")) "Morse code character set.") commit 6af9f1f3efc98f3ad736db9e2cf6dfb63bf7e3ff Author: Eli Zaretskii Date: Fri Jun 18 14:28:16 2021 +0300 Improve and update the 'etags' test suite * lib-src/etags.c (mercury_pr): Remove redundant comment. * test/manual/etags/merc-src/accumulator.m: Add more complex declarations. * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: * test/manual/etags/CTAGS.good: Adapt to latest changes in 'etags' and the test suite. (Bug#47408) diff --git a/lib-src/etags.c b/lib-src/etags.c index bd57ede2f3..c39c93db33 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -6597,8 +6597,6 @@ mercury_pr (char *s, char *last, ptrdiff_t lastlen) && c_isspace (s[pos - namelength - offset])) --offset; - /* There is no need to correct namelength or call notinname. */ - make_tag (s + pos - namelength - offset, namelength - 1, true, s, pos - offset - 1, lineno, linecharno); return pos; diff --git a/test/manual/etags/CTAGS.good b/test/manual/etags/CTAGS.good index e265836fd2..84a56b23cf 100644 --- a/test/manual/etags/CTAGS.good +++ b/test/manual/etags/CTAGS.good @@ -3102,6 +3102,7 @@ foperator c-src/etags.c 2411 force_auto_save_soon c-src/emacs/src/keyboard.c /^force_auto_save_soon (void)$/ force_explicit_name c-src/etags.c 265 force_quit_count c-src/emacs/src/keyboard.c 10387 +foreign_export merc-src/accumulator.m /^:- pragma foreign_export("C", unravel_univ(in, out/ formatSize objc-src/PackInsp.m /^-(const char *)formatSize:(const char *)size inBuf/ found c-src/emacs/src/lisp.h 2344 fracas html-src/software.html /^Fracas$/ @@ -3230,20 +3231,6 @@ help_form_saved_window_configs c-src/emacs/src/keyboard.c 2156 helpwin pyt-src/server.py /^def helpwin(helpdict):$/ hide_cursor cp-src/screen.cpp /^void hide_cursor(void)$/ hlds merc-src/accumulator.m /^:- import_module hlds.$/ -hlds.assertion merc-src/accumulator.m /^:- import_module hlds.assertion.$/ -hlds.goal_util merc-src/accumulator.m /^:- import_module hlds.goal_util.$/ -hlds.hlds_error_util merc-src/accumulator.m /^:- import_module hlds.hlds_error_util.$/ -hlds.hlds_goal merc-src/accumulator.m /^:- import_module hlds.hlds_goal.$/ -hlds.hlds_module merc-src/accumulator.m /^:- import_module hlds.hlds_module.$/ -hlds.hlds_out merc-src/accumulator.m /^:- import_module hlds.hlds_out.$/ -hlds.hlds_out.hlds_out_util merc-src/accumulator.m /^:- import_module hlds.hlds_out.hlds_out_util.$/ -hlds.hlds_pred merc-src/accumulator.m /^:- import_module hlds.hlds_pred.$/ -hlds.hlds_promise merc-src/accumulator.m /^:- import_module hlds.hlds_promise.$/ -hlds.instmap merc-src/accumulator.m /^:- import_module hlds.instmap.$/ -hlds.pred_table merc-src/accumulator.m /^:- import_module hlds.pred_table.$/ -hlds.quantification merc-src/accumulator.m /^:- import_module hlds.quantification.$/ -hlds.status merc-src/accumulator.m /^:- import_module hlds.status.$/ -hlds.vartypes merc-src/accumulator.m /^:- import_module hlds.vartypes.$/ htmltreelist prol-src/natded.prolog /^htmltreelist([]).$/ hybrid_aligned_alloc c-src/emacs/src/gmalloc.c /^hybrid_aligned_alloc (size_t alignment, size_t siz/ hybrid_calloc c-src/emacs/src/gmalloc.c /^hybrid_calloc (size_t nmemb, size_t size)$/ @@ -3272,6 +3259,7 @@ ignore_mouse_drag_p c-src/emacs/src/keyboard.c 1256 ill=\relax tex-src/texinfo.tex /^\\let\\refill=\\relax$/ immediate_quit c-src/emacs/src/keyboard.c 174 impatto html-src/softwarelibero.html /^Impatto pratico del software libero$/ +implementation merc-src/accumulator.m /^:- implementation.$/ in_word_set c-src/etags.c /^in_word_set (register const char *str, register un/ inattribute c-src/etags.c 2400 inc cp-src/Range.h /^ double inc (void) const { return rng_inc; }$/ @@ -3320,6 +3308,7 @@ integertonmstr pas-src/common.pas /^function integertonmstr; (* (TheInteger : in intensity1 f-src/entry.for /^ & intensity1(efv,fv,svin,svquad,sfpv,maxp,val/ intensity1 f-src/entry.strange_suffix /^ & intensity1(efv,fv,svin,svquad,sfpv,maxp,val/ intensity1 f-src/entry.strange /^ & intensity1(efv,fv,svin,svquad,sfpv,maxp,val/ +interface merc-src/accumulator.m /^:- interface.$/ interface_locate c-src/c.c /^interface_locate(void)$/ intern c-src/emacs/src/lisp.h /^intern (const char *str)$/ intern_c_string c-src/emacs/src/lisp.h /^intern_c_string (const char *str)$/ @@ -3451,9 +3440,6 @@ level c-src/emacs/src/lisp.h 3153 lex prol-src/natded.prolog /^lex(W,SynOut,Sem):-$/ lexptr y-src/cccp.y 332 libs merc-src/accumulator.m /^:- import_module libs.$/ -libs.globals merc-src/accumulator.m /^:- import_module libs.globals.$/ -libs.optimization_options merc-src/accumulator.m /^:- import_module libs.optimization_options.$/ -libs.options merc-src/accumulator.m /^:- import_module libs.options.$/ licenze html-src/softwarelibero.html /^Licenze d'uso di un programma$/ limit cp-src/Range.h /^ double limit (void) const { return rng_limit; }$/ line c-src/etags.c 2493 @@ -3595,7 +3581,6 @@ mcheck c-src/emacs/src/gmalloc.c /^mcheck (void (*func) (enum mcheck_status))$/ mcheck_status c-src/emacs/src/gmalloc.c 283 mcheck_used c-src/emacs/src/gmalloc.c 2012 mdbcomp merc-src/accumulator.m /^:- import_module mdbcomp.$/ -mdbcomp.sym_name merc-src/accumulator.m /^:- import_module mdbcomp.sym_name.$/ me22b lua-src/test.lua /^ local function test.me22b (one)$/ me_22a lua-src/test.lua /^ function test.me_22a(one, two)$/ memalign c-src/emacs/src/gmalloc.c /^memalign (size_t alignment, size_t size)$/ @@ -3890,11 +3875,6 @@ parse_return_error y-src/cccp.y 70 parse_solitary_modifier c-src/emacs/src/keyboard.c /^parse_solitary_modifier (Lisp_Object symbol)$/ parse_tool_bar_item c-src/emacs/src/keyboard.c /^parse_tool_bar_item (Lisp_Object key, Lisp_Object / parse_tree merc-src/accumulator.m /^:- import_module parse_tree.$/ -parse_tree.error_util merc-src/accumulator.m /^:- import_module parse_tree.error_util.$/ -parse_tree.prog_data merc-src/accumulator.m /^:- import_module parse_tree.prog_data.$/ -parse_tree.prog_mode merc-src/accumulator.m /^:- import_module parse_tree.prog_mode.$/ -parse_tree.prog_util merc-src/accumulator.m /^:- import_module parse_tree.prog_util.$/ -parse_tree.set_of_var merc-src/accumulator.m /^:- import_module parse_tree.set_of_var.$/ pat c-src/etags.c 262 pattern c-src/etags.c 260 pdlcount c-src/emacs/src/lisp.h 3046 @@ -4277,6 +4257,7 @@ step_everybody cp-src/clheir.cpp /^void step_everybody(void)$/ stop_polling c-src/emacs/src/keyboard.c /^stop_polling (void)$/ store_info merc-src/accumulator.m /^:- type store_info$/ store_user_signal_events c-src/emacs/src/keyboard.c /^store_user_signal_events (void)$/ +stored_goal_plain_call merc-src/accumulator.m /^:- inst stored_goal_plain_call for goal_store.stor/ str go-src/test1.go 9 strcaseeq c-src/etags.c /^#define strcaseeq(s,t) (assert ((s)!=NULL && (t)!=/ streq c-src/etags.c /^#define streq(s,t) (assert ((s)!=NULL || (t)!=NULL/ @@ -4484,9 +4465,6 @@ tpcmd c-src/h.h 15 track-mouse c-src/emacs/src/keyboard.c /^DEFUN ("internal--track-mouse", Ftrack_mouse, Stra/ tracking_off c-src/emacs/src/keyboard.c /^tracking_off (Lisp_Object old_value)$/ traffic_light cp-src/conway.cpp /^void traffic_light(int x, int y)$/ -transform_hlds.accumulator merc-src/accumulator.m /^:- module transform_hlds.accumulator.$/ -transform_hlds.accumulator merc-src/accumulator.m /^:- end_module transform_hlds.accumulator.$/ -transform_hlds.goal_store merc-src/accumulator.m /^:- import_module transform_hlds.goal_store.$/ translate c-src/emacs/src/regex.h 361 treats cp-src/c.C 131 tt prol-src/natded.prolog /^tt:-$/ @@ -4533,6 +4511,7 @@ unblock_input_to c-src/emacs/src/keyboard.c /^unblock_input_to (int level)$/ unchar c-src/h.h 99 unexpand-abbrev c-src/abbrev.c /^DEFUN ("unexpand-abbrev", Funexpand_abbrev, Sunexp/ univ merc-src/accumulator.m /^:- import_module univ.$/ +unravel_univ merc-src/accumulator.m /^:- some [T] pred unravel_univ(univ::in, T::out) is/ unread_switch_frame c-src/emacs/src/keyboard.c 204 unsignedp y-src/cccp.y 112 unwind c-src/emacs/src/lisp.h 2962 diff --git a/test/manual/etags/ETAGS.good_1 b/test/manual/etags/ETAGS.good_1 index e05b8f2aaf..4eae68b5c2 100644 --- a/test/manual/etags/ETAGS.good_1 +++ b/test/manual/etags/ETAGS.good_1 @@ -3881,38 +3881,15 @@ Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % \global\def={=3307,107500 \def\normalbackslash{\normalbackslash3321,107882 -merc-src/accumulator.m,4275 -:- module transform_hlds.accumulator145,5333 +merc-src/accumulator.m,3228 +:- interface146,5371 :- import_module hlds148,5386 -:- import_module hlds.hlds_module149,5409 -:- import_module hlds.hlds_pred150,5444 :- import_module univ152,5478 -:- pred accu_transform_proc(159,5793 -:- import_module hlds.assertion168,6135 -:- import_module hlds.goal_util169,6168 -:- import_module hlds.hlds_error_util170,6201 -:- import_module hlds.hlds_goal171,6240 -:- import_module hlds.hlds_out172,6273 -:- import_module hlds.hlds_out.hlds_out_util173,6305 -:- import_module hlds.hlds_promise174,6351 -:- import_module hlds.instmap175,6387 -:- import_module hlds.pred_table176,6418 -:- import_module hlds.quantification177,6452 -:- import_module hlds.status178,6490 -:- import_module hlds.vartypes179,6520 +:- pred accu_transform_proc159,5793 +:- implementation166,6115 :- import_module libs180,6552 -:- import_module libs.globals181,6575 -:- import_module libs.optimization_options182,6606 -:- import_module libs.options183,6650 :- import_module mdbcomp184,6681 -:- import_module mdbcomp.sym_name185,6707 :- import_module parse_tree186,6742 -:- import_module parse_tree.error_util187,6771 -:- import_module parse_tree.prog_data188,6811 -:- import_module parse_tree.prog_mode189,6850 -:- import_module parse_tree.prog_util190,6889 -:- import_module parse_tree.set_of_var191,6928 -:- import_module transform_hlds.goal_store192,6968 :- import_module assoc_list194,7013 :- import_module bool195,7042 :- import_module int196,7065 @@ -3933,69 +3910,71 @@ merc-src/accumulator.m,4275 :- type accu_goal_store234,8091 :- type accu_subst238,8216 :- type accu_warning240,8264 -:- pred generate_warnings(334,12550 -:- pred generate_warning(342,12895 -:- pred should_attempt_accu_transform(365,13886 -:- pred should_attempt_accu_transform_2(398,15406 -:- pred accu_standardize(440,17390 -:- pred identify_goal_type(465,18169 -:- pred is_recursive_case(549,21175 +:- pred generate_warnings334,12550 +:- pred generate_warning342,12895 +:- pred should_attempt_accu_transform365,13886 +:- pred should_attempt_accu_transform_2398,15406 +:- pred accu_standardize440,17390 +:- pred identify_goal_type465,18169 +:- pred is_recursive_case549,21175 :- type store_info560,21713 -:- func initialize_goal_store(570,22060 -:- pred accu_store(580,22421 -:- pred identify_recursive_calls(601,23288 -:- pred identify_out_and_out_prime(626,24396 +:- func initialize_goal_store570,22060 +:- pred accu_store580,22421 +:- pred identify_recursive_calls601,23288 +:- pred identify_out_and_out_prime626,24396 :- type accu_sets676,26425 -:- pred accu_stage1(689,26977 -:- pred accu_stage1_2(727,28347 -:- pred accu_sets_init(781,30557 -:- func set_upto(796,30984 -:- pred accu_before(812,31498 -:- pred accu_assoc(835,32477 -:- pred accu_construct(862,33712 -:- pred accu_construct_assoc(896,35307 -:- pred accu_update(938,37069 -:- pred member_lessthan_goalid(964,38219 +:- pred accu_stage1689,26977 +:- pred accu_stage1_2727,28347 +:- pred accu_sets_init781,30557 +:- func set_upto796,30984 +:- pred accu_before812,31498 +:- pred accu_assoc835,32477 +:- pred accu_construct862,33712 +:- pred accu_construct_assoc896,35307 +:- pred accu_update938,37069 +:- pred member_lessthan_goalid964,38219 :- type accu_assoc975,38652 -:- pred accu_is_associative(986,39138 -:- pred associativity_assertion(1014,40263 -:- pred commutativity_assertion(1037,41242 -:- pred accu_is_update(1057,41952 -:- pred is_associative_construction(1078,42802 +:- pred accu_is_associative986,39138 +:- pred associativity_assertion1014,40263 +:- pred commutativity_assertion1037,41242 +:- pred accu_is_update1057,41952 +:- pred is_associative_construction1078,42802 :- type accu_substs1095,43480 :- type accu_base1103,43744 -:- pred accu_stage2(1124,44605 -:- pred accu_substs_init(1179,46957 -:- pred acc_var_subst_init(1194,47573 -:- pred create_new_var(1207,48147 -:- pred accu_process_assoc_set(1223,48862 -:- pred accu_has_heuristic(1297,52081 -:- pred accu_heuristic(1304,52336 -:- pred accu_process_update_set(1318,52906 -:- pred accu_divide_base_case(1380,55844 -:- pred accu_related(1412,57146 -:- pred lookup_call(1449,58601 -:- pred accu_stage3(1470,59432 -:- pred acc_proc_info(1508,61326 -:- pred acc_pred_info(1556,63449 -:- pred accu_create_goal(1600,65285 -:- func create_acc_call(1621,66400 -:- pred create_orig_goal(1634,66987 -:- pred create_acc_goal(1662,68157 -:- func create_new_orig_recursive_goals(1709,70225 -:- func create_new_recursive_goals(1723,70918 -:- func create_new_base_goals(1738,71717 -:- pred acc_unification(1749,72156 -:- pred accu_top_level(1766,72896 -:- pred update_accumulator_pred(1856,76290 -:- func accu_rename(1876,77253 -:- func base_case_ids(1889,77784 -:- func base_case_ids_set(1898,78048 -:- func accu_goal_list(1905,78269 -:- pred calculate_goal_info(1916,78680 -:- func chain_subst(1932,79319 -:- pred chain_subst_2(1938,79482 -:- end_module transform_hlds.accumulator1953,79939 +:- pred accu_stage21124,44605 +:- pred accu_substs_init1179,46957 +:- pred acc_var_subst_init1194,47573 +:- pred create_new_var1207,48147 +:- pred accu_process_assoc_set1223,48862 +:- pred accu_has_heuristic1297,52081 +:- pred accu_heuristic1304,52336 +:- pred accu_process_update_set1318,52906 +:- pred accu_divide_base_case1380,55844 +:- pred accu_related1412,57146 +:- inst stored_goal_plain_call1444,58415 +:- pred lookup_call1449,58601 +:- pred accu_stage31470,59432 +:- pred acc_proc_info1508,61326 +:- pred acc_pred_info1556,63449 +:- pred accu_create_goal1600,65285 +:- func create_acc_call1621,66400 +:- pred create_orig_goal1634,66987 +:- pred create_acc_goal1662,68157 +:- func create_new_orig_recursive_goals1709,70225 +:- func create_new_recursive_goals1723,70918 +:- func create_new_base_goals1738,71717 +:- pred acc_unification1749,72156 +:- pred accu_top_level1766,72896 +:- pred update_accumulator_pred1856,76290 +:- func accu_rename1876,77253 +:- func base_case_ids1889,77784 +:- func base_case_ids_set1898,78048 +:- func accu_goal_list1905,78269 +:- pred calculate_goal_info1916,78680 +:- func chain_subst1932,79319 +:- pred chain_subst_21938,79482 +:- some [T] pred unravel_univ1956,80060 +:- pragma foreign_export1957,80116 c-src/c.c,76 T f(1,0 diff --git a/test/manual/etags/ETAGS.good_2 b/test/manual/etags/ETAGS.good_2 index c3d2726ece..45979d6a76 100644 --- a/test/manual/etags/ETAGS.good_2 +++ b/test/manual/etags/ETAGS.good_2 @@ -4454,38 +4454,15 @@ Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % \global\def={=3307,107500 \def\normalbackslash{\normalbackslash3321,107882 -merc-src/accumulator.m,5996 -:- module transform_hlds.accumulator145,5333 +merc-src/accumulator.m,4915 +:- interface146,5371 :- import_module hlds148,5386 -:- import_module hlds.hlds_module149,5409 -:- import_module hlds.hlds_pred150,5444 :- import_module univ152,5478 -:- pred accu_transform_proc(159,5793 -:- import_module hlds.assertion168,6135 -:- import_module hlds.goal_util169,6168 -:- import_module hlds.hlds_error_util170,6201 -:- import_module hlds.hlds_goal171,6240 -:- import_module hlds.hlds_out172,6273 -:- import_module hlds.hlds_out.hlds_out_util173,6305 -:- import_module hlds.hlds_promise174,6351 -:- import_module hlds.instmap175,6387 -:- import_module hlds.pred_table176,6418 -:- import_module hlds.quantification177,6452 -:- import_module hlds.status178,6490 -:- import_module hlds.vartypes179,6520 +:- pred accu_transform_proc159,5793 +:- implementation166,6115 :- import_module libs180,6552 -:- import_module libs.globals181,6575 -:- import_module libs.optimization_options182,6606 -:- import_module libs.options183,6650 :- import_module mdbcomp184,6681 -:- import_module mdbcomp.sym_name185,6707 :- import_module parse_tree186,6742 -:- import_module parse_tree.error_util187,6771 -:- import_module parse_tree.prog_data188,6811 -:- import_module parse_tree.prog_mode189,6850 -:- import_module parse_tree.prog_util190,6889 -:- import_module parse_tree.set_of_var191,6928 -:- import_module transform_hlds.goal_store192,6968 :- import_module assoc_list194,7013 :- import_module bool195,7042 :- import_module int196,7065 @@ -4506,127 +4483,130 @@ merc-src/accumulator.m,5996 :- type accu_goal_store234,8091 :- type accu_subst238,8216 :- type accu_warning240,8264 -accu_transform_proc(247,8578 -:- pred generate_warnings(334,12550 -generate_warnings(337,12669 -:- pred generate_warning(342,12895 -generate_warning(345,13001 -:- pred should_attempt_accu_transform(365,13886 -should_attempt_accu_transform(370,14123 -:- pred should_attempt_accu_transform_2(398,15406 -should_attempt_accu_transform_2(405,15763 -:- pred accu_standardize(440,17390 -accu_standardize(442,17455 -:- pred identify_goal_type(465,18169 -identify_goal_type(469,18359 -:- pred is_recursive_case(549,21175 -is_recursive_case(551,21253 +accu_transform_proc247,8578 +:- pred generate_warnings334,12550 +generate_warnings337,12669 +:- pred generate_warning342,12895 +generate_warning345,13001 +:- pred should_attempt_accu_transform365,13886 +should_attempt_accu_transform370,14123 +:- pred should_attempt_accu_transform_2398,15406 +should_attempt_accu_transform_2405,15763 +:- pred accu_standardize440,17390 +accu_standardize442,17455 +:- pred identify_goal_type465,18169 +identify_goal_type469,18359 +:- pred is_recursive_case549,21175 +is_recursive_case551,21253 :- type store_info560,21713 -:- func initialize_goal_store(570,22060 -initialize_goal_store(573,22166 -:- pred accu_store(580,22421 -accu_store(584,22576 -:- pred identify_recursive_calls(601,23288 -identify_recursive_calls(604,23406 -:- pred identify_out_and_out_prime(626,24396 -identify_out_and_out_prime(631,24631 +:- func initialize_goal_store570,22060 +initialize_goal_store573,22166 +:- pred accu_store580,22421 +accu_store584,22576 +:- pred identify_recursive_calls601,23288 +identify_recursive_calls604,23406 +:- pred identify_out_and_out_prime626,24396 +identify_out_and_out_prime631,24631 :- type accu_sets676,26425 -:- pred accu_stage1(689,26977 -accu_stage1(693,27155 -:- pred accu_stage1_2(727,28347 -accu_stage1_2(731,28515 -:- pred accu_sets_init(781,30557 -accu_sets_init(783,30605 -:- func set_upto(796,30984 -set_upto(798,31039 -:- pred accu_before(812,31498 -accu_before(815,31639 -:- pred accu_assoc(835,32477 -accu_assoc(838,32617 -:- pred accu_construct(862,33712 -accu_construct(865,33856 -:- pred accu_construct_assoc(896,35307 -accu_construct_assoc(899,35457 -:- pred accu_update(938,37069 -accu_update(941,37210 -:- pred member_lessthan_goalid(964,38219 -member_lessthan_goalid(967,38342 +:- pred accu_stage1689,26977 +accu_stage1693,27155 +:- pred accu_stage1_2727,28347 +accu_stage1_2731,28515 +:- pred accu_sets_init781,30557 +accu_sets_init783,30605 +:- func set_upto796,30984 +set_upto798,31039 +:- pred accu_before812,31498 +accu_before815,31639 +:- pred accu_assoc835,32477 +accu_assoc838,32617 +:- pred accu_construct862,33712 +accu_construct865,33856 +:- pred accu_construct_assoc896,35307 +accu_construct_assoc899,35457 +:- pred accu_update938,37069 +accu_update941,37210 +:- pred member_lessthan_goalid964,38219 +member_lessthan_goalid967,38342 :- type accu_assoc975,38652 -:- pred accu_is_associative(986,39138 -accu_is_associative(989,39250 -:- pred associativity_assertion(1014,40263 -associativity_assertion(1017,40404 -:- pred commutativity_assertion(1037,41242 -commutativity_assertion(1040,41369 -:- pred accu_is_update(1057,41952 -accu_is_update(1060,42066 -:- pred is_associative_construction(1078,42802 -is_associative_construction(1081,42898 +:- pred accu_is_associative986,39138 +accu_is_associative989,39250 +:- pred associativity_assertion1014,40263 +associativity_assertion1017,40404 +:- pred commutativity_assertion1037,41242 +commutativity_assertion1040,41369 +:- pred accu_is_update1057,41952 +accu_is_update1060,42066 +:- pred is_associative_construction1078,42802 +is_associative_construction1081,42898 :- type accu_substs1095,43480 :- type accu_base1103,43744 -:- pred accu_stage2(1124,44605 -accu_stage2(1131,44946 -:- pred accu_substs_init(1179,46957 -accu_substs_init(1182,47097 -:- pred acc_var_subst_init(1194,47573 -acc_var_subst_init(1198,47718 -:- pred create_new_var(1207,48147 -create_new_var(1210,48288 -:- pred accu_process_assoc_set(1223,48862 -accu_process_assoc_set(1229,49150 -:- pred accu_has_heuristic(1297,52081 -accu_has_heuristic(1299,52161 -:- pred accu_heuristic(1304,52336 -accu_heuristic(1307,52457 -:- pred accu_process_update_set(1318,52906 -accu_process_update_set(1325,53221 -:- pred accu_divide_base_case(1380,55844 -accu_divide_base_case(1385,56059 -:- pred accu_related(1412,57146 -accu_related(1415,57270 -:- pred lookup_call(1449,58601 -lookup_call(1452,58715 -:- pred accu_stage3(1470,59432 -accu_stage3(1477,59826 -:- pred acc_proc_info(1508,61326 -acc_proc_info(1512,61485 -:- pred acc_pred_info(1556,63449 -acc_pred_info(1559,63597 -:- pred accu_create_goal(1600,65285 -accu_create_goal(1607,65628 -:- func create_acc_call(1621,66400 -create_acc_call(1625,66569 -:- pred create_orig_goal(1634,66987 -create_orig_goal(1638,67176 -:- pred create_acc_goal(1662,68157 -create_acc_goal(1667,68380 -:- func create_new_orig_recursive_goals(1709,70225 -create_new_orig_recursive_goals(1712,70368 -:- func create_new_recursive_goals(1723,70918 -create_new_recursive_goals(1727,71108 -:- func create_new_base_goals(1738,71717 -create_new_base_goals(1741,71831 -:- pred acc_unification(1749,72156 -acc_unification(1751,72225 -:- pred accu_top_level(1766,72896 -accu_top_level(1770,73058 -:- pred update_accumulator_pred(1856,76290 -update_accumulator_pred(1859,76411 -:- func accu_rename(1876,77253 -accu_rename(1879,77363 -:- func base_case_ids(1889,77784 -base_case_ids(1891,77846 -:- func base_case_ids_set(1898,78048 -base_case_ids_set(1900,78113 -:- func accu_goal_list(1905,78269 -accu_goal_list(1907,78349 -:- pred calculate_goal_info(1916,78680 -calculate_goal_info(1918,78753 -:- func chain_subst(1932,79319 -chain_subst(1934,79378 -:- pred chain_subst_2(1938,79482 -chain_subst_2(1941,79576 -:- end_module transform_hlds.accumulator1953,79939 +:- pred accu_stage21124,44605 +accu_stage21131,44946 +:- pred accu_substs_init1179,46957 +accu_substs_init1182,47097 +:- pred acc_var_subst_init1194,47573 +acc_var_subst_init1198,47718 +:- pred create_new_var1207,48147 +create_new_var1210,48288 +:- pred accu_process_assoc_set1223,48862 +accu_process_assoc_set1229,49150 +:- pred accu_has_heuristic1297,52081 +accu_has_heuristic1299,52161 +:- pred accu_heuristic1304,52336 +accu_heuristic1307,52457 +:- pred accu_process_update_set1318,52906 +accu_process_update_set1325,53221 +:- pred accu_divide_base_case1380,55844 +accu_divide_base_case1385,56059 +:- pred accu_related1412,57146 +accu_related1415,57270 +:- inst stored_goal_plain_call1444,58415 +:- pred lookup_call1449,58601 +lookup_call1452,58715 +:- pred accu_stage31470,59432 +accu_stage31477,59826 +:- pred acc_proc_info1508,61326 +acc_proc_info1512,61485 +:- pred acc_pred_info1556,63449 +acc_pred_info1559,63597 +:- pred accu_create_goal1600,65285 +accu_create_goal1607,65628 +:- func create_acc_call1621,66400 +create_acc_call1625,66569 +:- pred create_orig_goal1634,66987 +create_orig_goal1638,67176 +:- pred create_acc_goal1662,68157 +create_acc_goal1667,68380 +:- func create_new_orig_recursive_goals1709,70225 +create_new_orig_recursive_goals1712,70368 +:- func create_new_recursive_goals1723,70918 +create_new_recursive_goals1727,71108 +:- func create_new_base_goals1738,71717 +create_new_base_goals1741,71831 +:- pred acc_unification1749,72156 +acc_unification1751,72225 +:- pred accu_top_level1766,72896 +accu_top_level1770,73058 +:- pred update_accumulator_pred1856,76290 +update_accumulator_pred1859,76411 +:- func accu_rename1876,77253 +accu_rename1879,77363 +:- func base_case_ids1889,77784 +base_case_ids1891,77846 +:- func base_case_ids_set1898,78048 +base_case_ids_set1900,78113 +:- func accu_goal_list1905,78269 +accu_goal_list1907,78349 +:- pred calculate_goal_info1916,78680 +calculate_goal_info1918,78753 +:- func chain_subst1932,79319 +chain_subst1934,79378 +:- pred chain_subst_21938,79482 +chain_subst_21941,79576 +:- some [T] pred unravel_univ1956,80060 +:- pragma foreign_export1957,80116 +unravel_univ1961,80340 c-src/c.c,76 T f(1,0 diff --git a/test/manual/etags/ETAGS.good_3 b/test/manual/etags/ETAGS.good_3 index 85897febbf..36edc38961 100644 --- a/test/manual/etags/ETAGS.good_3 +++ b/test/manual/etags/ETAGS.good_3 @@ -4288,38 +4288,15 @@ Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % \global\def={=3307,107500 \def\normalbackslash{\normalbackslash3321,107882 -merc-src/accumulator.m,4275 -:- module transform_hlds.accumulator145,5333 +merc-src/accumulator.m,3228 +:- interface146,5371 :- import_module hlds148,5386 -:- import_module hlds.hlds_module149,5409 -:- import_module hlds.hlds_pred150,5444 :- import_module univ152,5478 -:- pred accu_transform_proc(159,5793 -:- import_module hlds.assertion168,6135 -:- import_module hlds.goal_util169,6168 -:- import_module hlds.hlds_error_util170,6201 -:- import_module hlds.hlds_goal171,6240 -:- import_module hlds.hlds_out172,6273 -:- import_module hlds.hlds_out.hlds_out_util173,6305 -:- import_module hlds.hlds_promise174,6351 -:- import_module hlds.instmap175,6387 -:- import_module hlds.pred_table176,6418 -:- import_module hlds.quantification177,6452 -:- import_module hlds.status178,6490 -:- import_module hlds.vartypes179,6520 +:- pred accu_transform_proc159,5793 +:- implementation166,6115 :- import_module libs180,6552 -:- import_module libs.globals181,6575 -:- import_module libs.optimization_options182,6606 -:- import_module libs.options183,6650 :- import_module mdbcomp184,6681 -:- import_module mdbcomp.sym_name185,6707 :- import_module parse_tree186,6742 -:- import_module parse_tree.error_util187,6771 -:- import_module parse_tree.prog_data188,6811 -:- import_module parse_tree.prog_mode189,6850 -:- import_module parse_tree.prog_util190,6889 -:- import_module parse_tree.set_of_var191,6928 -:- import_module transform_hlds.goal_store192,6968 :- import_module assoc_list194,7013 :- import_module bool195,7042 :- import_module int196,7065 @@ -4340,69 +4317,71 @@ merc-src/accumulator.m,4275 :- type accu_goal_store234,8091 :- type accu_subst238,8216 :- type accu_warning240,8264 -:- pred generate_warnings(334,12550 -:- pred generate_warning(342,12895 -:- pred should_attempt_accu_transform(365,13886 -:- pred should_attempt_accu_transform_2(398,15406 -:- pred accu_standardize(440,17390 -:- pred identify_goal_type(465,18169 -:- pred is_recursive_case(549,21175 +:- pred generate_warnings334,12550 +:- pred generate_warning342,12895 +:- pred should_attempt_accu_transform365,13886 +:- pred should_attempt_accu_transform_2398,15406 +:- pred accu_standardize440,17390 +:- pred identify_goal_type465,18169 +:- pred is_recursive_case549,21175 :- type store_info560,21713 -:- func initialize_goal_store(570,22060 -:- pred accu_store(580,22421 -:- pred identify_recursive_calls(601,23288 -:- pred identify_out_and_out_prime(626,24396 +:- func initialize_goal_store570,22060 +:- pred accu_store580,22421 +:- pred identify_recursive_calls601,23288 +:- pred identify_out_and_out_prime626,24396 :- type accu_sets676,26425 -:- pred accu_stage1(689,26977 -:- pred accu_stage1_2(727,28347 -:- pred accu_sets_init(781,30557 -:- func set_upto(796,30984 -:- pred accu_before(812,31498 -:- pred accu_assoc(835,32477 -:- pred accu_construct(862,33712 -:- pred accu_construct_assoc(896,35307 -:- pred accu_update(938,37069 -:- pred member_lessthan_goalid(964,38219 +:- pred accu_stage1689,26977 +:- pred accu_stage1_2727,28347 +:- pred accu_sets_init781,30557 +:- func set_upto796,30984 +:- pred accu_before812,31498 +:- pred accu_assoc835,32477 +:- pred accu_construct862,33712 +:- pred accu_construct_assoc896,35307 +:- pred accu_update938,37069 +:- pred member_lessthan_goalid964,38219 :- type accu_assoc975,38652 -:- pred accu_is_associative(986,39138 -:- pred associativity_assertion(1014,40263 -:- pred commutativity_assertion(1037,41242 -:- pred accu_is_update(1057,41952 -:- pred is_associative_construction(1078,42802 +:- pred accu_is_associative986,39138 +:- pred associativity_assertion1014,40263 +:- pred commutativity_assertion1037,41242 +:- pred accu_is_update1057,41952 +:- pred is_associative_construction1078,42802 :- type accu_substs1095,43480 :- type accu_base1103,43744 -:- pred accu_stage2(1124,44605 -:- pred accu_substs_init(1179,46957 -:- pred acc_var_subst_init(1194,47573 -:- pred create_new_var(1207,48147 -:- pred accu_process_assoc_set(1223,48862 -:- pred accu_has_heuristic(1297,52081 -:- pred accu_heuristic(1304,52336 -:- pred accu_process_update_set(1318,52906 -:- pred accu_divide_base_case(1380,55844 -:- pred accu_related(1412,57146 -:- pred lookup_call(1449,58601 -:- pred accu_stage3(1470,59432 -:- pred acc_proc_info(1508,61326 -:- pred acc_pred_info(1556,63449 -:- pred accu_create_goal(1600,65285 -:- func create_acc_call(1621,66400 -:- pred create_orig_goal(1634,66987 -:- pred create_acc_goal(1662,68157 -:- func create_new_orig_recursive_goals(1709,70225 -:- func create_new_recursive_goals(1723,70918 -:- func create_new_base_goals(1738,71717 -:- pred acc_unification(1749,72156 -:- pred accu_top_level(1766,72896 -:- pred update_accumulator_pred(1856,76290 -:- func accu_rename(1876,77253 -:- func base_case_ids(1889,77784 -:- func base_case_ids_set(1898,78048 -:- func accu_goal_list(1905,78269 -:- pred calculate_goal_info(1916,78680 -:- func chain_subst(1932,79319 -:- pred chain_subst_2(1938,79482 -:- end_module transform_hlds.accumulator1953,79939 +:- pred accu_stage21124,44605 +:- pred accu_substs_init1179,46957 +:- pred acc_var_subst_init1194,47573 +:- pred create_new_var1207,48147 +:- pred accu_process_assoc_set1223,48862 +:- pred accu_has_heuristic1297,52081 +:- pred accu_heuristic1304,52336 +:- pred accu_process_update_set1318,52906 +:- pred accu_divide_base_case1380,55844 +:- pred accu_related1412,57146 +:- inst stored_goal_plain_call1444,58415 +:- pred lookup_call1449,58601 +:- pred accu_stage31470,59432 +:- pred acc_proc_info1508,61326 +:- pred acc_pred_info1556,63449 +:- pred accu_create_goal1600,65285 +:- func create_acc_call1621,66400 +:- pred create_orig_goal1634,66987 +:- pred create_acc_goal1662,68157 +:- func create_new_orig_recursive_goals1709,70225 +:- func create_new_recursive_goals1723,70918 +:- func create_new_base_goals1738,71717 +:- pred acc_unification1749,72156 +:- pred accu_top_level1766,72896 +:- pred update_accumulator_pred1856,76290 +:- func accu_rename1876,77253 +:- func base_case_ids1889,77784 +:- func base_case_ids_set1898,78048 +:- func accu_goal_list1905,78269 +:- pred calculate_goal_info1916,78680 +:- func chain_subst1932,79319 +:- pred chain_subst_21938,79482 +:- some [T] pred unravel_univ1956,80060 +:- pragma foreign_export1957,80116 c-src/c.c,76 T f(1,0 diff --git a/test/manual/etags/ETAGS.good_4 b/test/manual/etags/ETAGS.good_4 index 828a6b864c..e726a993a9 100644 --- a/test/manual/etags/ETAGS.good_4 +++ b/test/manual/etags/ETAGS.good_4 @@ -4043,38 +4043,15 @@ Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % \global\def={=3307,107500 \def\normalbackslash{\normalbackslash3321,107882 -merc-src/accumulator.m,4275 -:- module transform_hlds.accumulator145,5333 +merc-src/accumulator.m,3228 +:- interface146,5371 :- import_module hlds148,5386 -:- import_module hlds.hlds_module149,5409 -:- import_module hlds.hlds_pred150,5444 :- import_module univ152,5478 -:- pred accu_transform_proc(159,5793 -:- import_module hlds.assertion168,6135 -:- import_module hlds.goal_util169,6168 -:- import_module hlds.hlds_error_util170,6201 -:- import_module hlds.hlds_goal171,6240 -:- import_module hlds.hlds_out172,6273 -:- import_module hlds.hlds_out.hlds_out_util173,6305 -:- import_module hlds.hlds_promise174,6351 -:- import_module hlds.instmap175,6387 -:- import_module hlds.pred_table176,6418 -:- import_module hlds.quantification177,6452 -:- import_module hlds.status178,6490 -:- import_module hlds.vartypes179,6520 +:- pred accu_transform_proc159,5793 +:- implementation166,6115 :- import_module libs180,6552 -:- import_module libs.globals181,6575 -:- import_module libs.optimization_options182,6606 -:- import_module libs.options183,6650 :- import_module mdbcomp184,6681 -:- import_module mdbcomp.sym_name185,6707 :- import_module parse_tree186,6742 -:- import_module parse_tree.error_util187,6771 -:- import_module parse_tree.prog_data188,6811 -:- import_module parse_tree.prog_mode189,6850 -:- import_module parse_tree.prog_util190,6889 -:- import_module parse_tree.set_of_var191,6928 -:- import_module transform_hlds.goal_store192,6968 :- import_module assoc_list194,7013 :- import_module bool195,7042 :- import_module int196,7065 @@ -4095,69 +4072,71 @@ merc-src/accumulator.m,4275 :- type accu_goal_store234,8091 :- type accu_subst238,8216 :- type accu_warning240,8264 -:- pred generate_warnings(334,12550 -:- pred generate_warning(342,12895 -:- pred should_attempt_accu_transform(365,13886 -:- pred should_attempt_accu_transform_2(398,15406 -:- pred accu_standardize(440,17390 -:- pred identify_goal_type(465,18169 -:- pred is_recursive_case(549,21175 +:- pred generate_warnings334,12550 +:- pred generate_warning342,12895 +:- pred should_attempt_accu_transform365,13886 +:- pred should_attempt_accu_transform_2398,15406 +:- pred accu_standardize440,17390 +:- pred identify_goal_type465,18169 +:- pred is_recursive_case549,21175 :- type store_info560,21713 -:- func initialize_goal_store(570,22060 -:- pred accu_store(580,22421 -:- pred identify_recursive_calls(601,23288 -:- pred identify_out_and_out_prime(626,24396 +:- func initialize_goal_store570,22060 +:- pred accu_store580,22421 +:- pred identify_recursive_calls601,23288 +:- pred identify_out_and_out_prime626,24396 :- type accu_sets676,26425 -:- pred accu_stage1(689,26977 -:- pred accu_stage1_2(727,28347 -:- pred accu_sets_init(781,30557 -:- func set_upto(796,30984 -:- pred accu_before(812,31498 -:- pred accu_assoc(835,32477 -:- pred accu_construct(862,33712 -:- pred accu_construct_assoc(896,35307 -:- pred accu_update(938,37069 -:- pred member_lessthan_goalid(964,38219 +:- pred accu_stage1689,26977 +:- pred accu_stage1_2727,28347 +:- pred accu_sets_init781,30557 +:- func set_upto796,30984 +:- pred accu_before812,31498 +:- pred accu_assoc835,32477 +:- pred accu_construct862,33712 +:- pred accu_construct_assoc896,35307 +:- pred accu_update938,37069 +:- pred member_lessthan_goalid964,38219 :- type accu_assoc975,38652 -:- pred accu_is_associative(986,39138 -:- pred associativity_assertion(1014,40263 -:- pred commutativity_assertion(1037,41242 -:- pred accu_is_update(1057,41952 -:- pred is_associative_construction(1078,42802 +:- pred accu_is_associative986,39138 +:- pred associativity_assertion1014,40263 +:- pred commutativity_assertion1037,41242 +:- pred accu_is_update1057,41952 +:- pred is_associative_construction1078,42802 :- type accu_substs1095,43480 :- type accu_base1103,43744 -:- pred accu_stage2(1124,44605 -:- pred accu_substs_init(1179,46957 -:- pred acc_var_subst_init(1194,47573 -:- pred create_new_var(1207,48147 -:- pred accu_process_assoc_set(1223,48862 -:- pred accu_has_heuristic(1297,52081 -:- pred accu_heuristic(1304,52336 -:- pred accu_process_update_set(1318,52906 -:- pred accu_divide_base_case(1380,55844 -:- pred accu_related(1412,57146 -:- pred lookup_call(1449,58601 -:- pred accu_stage3(1470,59432 -:- pred acc_proc_info(1508,61326 -:- pred acc_pred_info(1556,63449 -:- pred accu_create_goal(1600,65285 -:- func create_acc_call(1621,66400 -:- pred create_orig_goal(1634,66987 -:- pred create_acc_goal(1662,68157 -:- func create_new_orig_recursive_goals(1709,70225 -:- func create_new_recursive_goals(1723,70918 -:- func create_new_base_goals(1738,71717 -:- pred acc_unification(1749,72156 -:- pred accu_top_level(1766,72896 -:- pred update_accumulator_pred(1856,76290 -:- func accu_rename(1876,77253 -:- func base_case_ids(1889,77784 -:- func base_case_ids_set(1898,78048 -:- func accu_goal_list(1905,78269 -:- pred calculate_goal_info(1916,78680 -:- func chain_subst(1932,79319 -:- pred chain_subst_2(1938,79482 -:- end_module transform_hlds.accumulator1953,79939 +:- pred accu_stage21124,44605 +:- pred accu_substs_init1179,46957 +:- pred acc_var_subst_init1194,47573 +:- pred create_new_var1207,48147 +:- pred accu_process_assoc_set1223,48862 +:- pred accu_has_heuristic1297,52081 +:- pred accu_heuristic1304,52336 +:- pred accu_process_update_set1318,52906 +:- pred accu_divide_base_case1380,55844 +:- pred accu_related1412,57146 +:- inst stored_goal_plain_call1444,58415 +:- pred lookup_call1449,58601 +:- pred accu_stage31470,59432 +:- pred acc_proc_info1508,61326 +:- pred acc_pred_info1556,63449 +:- pred accu_create_goal1600,65285 +:- func create_acc_call1621,66400 +:- pred create_orig_goal1634,66987 +:- pred create_acc_goal1662,68157 +:- func create_new_orig_recursive_goals1709,70225 +:- func create_new_recursive_goals1723,70918 +:- func create_new_base_goals1738,71717 +:- pred acc_unification1749,72156 +:- pred accu_top_level1766,72896 +:- pred update_accumulator_pred1856,76290 +:- func accu_rename1876,77253 +:- func base_case_ids1889,77784 +:- func base_case_ids_set1898,78048 +:- func accu_goal_list1905,78269 +:- pred calculate_goal_info1916,78680 +:- func chain_subst1932,79319 +:- pred chain_subst_21938,79482 +:- some [T] pred unravel_univ1956,80060 +:- pragma foreign_export1957,80116 c-src/c.c,76 T f(1,0 diff --git a/test/manual/etags/ETAGS.good_5 b/test/manual/etags/ETAGS.good_5 index 5b1dc4f7bc..5133cc9e2b 100644 --- a/test/manual/etags/ETAGS.good_5 +++ b/test/manual/etags/ETAGS.good_5 @@ -5023,38 +5023,15 @@ Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % \global\def={=3307,107500 \def\normalbackslash{\normalbackslash3321,107882 -merc-src/accumulator.m,5996 -:- module transform_hlds.accumulator145,5333 +merc-src/accumulator.m,4915 +:- interface146,5371 :- import_module hlds148,5386 -:- import_module hlds.hlds_module149,5409 -:- import_module hlds.hlds_pred150,5444 :- import_module univ152,5478 -:- pred accu_transform_proc(159,5793 -:- import_module hlds.assertion168,6135 -:- import_module hlds.goal_util169,6168 -:- import_module hlds.hlds_error_util170,6201 -:- import_module hlds.hlds_goal171,6240 -:- import_module hlds.hlds_out172,6273 -:- import_module hlds.hlds_out.hlds_out_util173,6305 -:- import_module hlds.hlds_promise174,6351 -:- import_module hlds.instmap175,6387 -:- import_module hlds.pred_table176,6418 -:- import_module hlds.quantification177,6452 -:- import_module hlds.status178,6490 -:- import_module hlds.vartypes179,6520 +:- pred accu_transform_proc159,5793 +:- implementation166,6115 :- import_module libs180,6552 -:- import_module libs.globals181,6575 -:- import_module libs.optimization_options182,6606 -:- import_module libs.options183,6650 :- import_module mdbcomp184,6681 -:- import_module mdbcomp.sym_name185,6707 :- import_module parse_tree186,6742 -:- import_module parse_tree.error_util187,6771 -:- import_module parse_tree.prog_data188,6811 -:- import_module parse_tree.prog_mode189,6850 -:- import_module parse_tree.prog_util190,6889 -:- import_module parse_tree.set_of_var191,6928 -:- import_module transform_hlds.goal_store192,6968 :- import_module assoc_list194,7013 :- import_module bool195,7042 :- import_module int196,7065 @@ -5075,127 +5052,130 @@ merc-src/accumulator.m,5996 :- type accu_goal_store234,8091 :- type accu_subst238,8216 :- type accu_warning240,8264 -accu_transform_proc(247,8578 -:- pred generate_warnings(334,12550 -generate_warnings(337,12669 -:- pred generate_warning(342,12895 -generate_warning(345,13001 -:- pred should_attempt_accu_transform(365,13886 -should_attempt_accu_transform(370,14123 -:- pred should_attempt_accu_transform_2(398,15406 -should_attempt_accu_transform_2(405,15763 -:- pred accu_standardize(440,17390 -accu_standardize(442,17455 -:- pred identify_goal_type(465,18169 -identify_goal_type(469,18359 -:- pred is_recursive_case(549,21175 -is_recursive_case(551,21253 +accu_transform_proc247,8578 +:- pred generate_warnings334,12550 +generate_warnings337,12669 +:- pred generate_warning342,12895 +generate_warning345,13001 +:- pred should_attempt_accu_transform365,13886 +should_attempt_accu_transform370,14123 +:- pred should_attempt_accu_transform_2398,15406 +should_attempt_accu_transform_2405,15763 +:- pred accu_standardize440,17390 +accu_standardize442,17455 +:- pred identify_goal_type465,18169 +identify_goal_type469,18359 +:- pred is_recursive_case549,21175 +is_recursive_case551,21253 :- type store_info560,21713 -:- func initialize_goal_store(570,22060 -initialize_goal_store(573,22166 -:- pred accu_store(580,22421 -accu_store(584,22576 -:- pred identify_recursive_calls(601,23288 -identify_recursive_calls(604,23406 -:- pred identify_out_and_out_prime(626,24396 -identify_out_and_out_prime(631,24631 +:- func initialize_goal_store570,22060 +initialize_goal_store573,22166 +:- pred accu_store580,22421 +accu_store584,22576 +:- pred identify_recursive_calls601,23288 +identify_recursive_calls604,23406 +:- pred identify_out_and_out_prime626,24396 +identify_out_and_out_prime631,24631 :- type accu_sets676,26425 -:- pred accu_stage1(689,26977 -accu_stage1(693,27155 -:- pred accu_stage1_2(727,28347 -accu_stage1_2(731,28515 -:- pred accu_sets_init(781,30557 -accu_sets_init(783,30605 -:- func set_upto(796,30984 -set_upto(798,31039 -:- pred accu_before(812,31498 -accu_before(815,31639 -:- pred accu_assoc(835,32477 -accu_assoc(838,32617 -:- pred accu_construct(862,33712 -accu_construct(865,33856 -:- pred accu_construct_assoc(896,35307 -accu_construct_assoc(899,35457 -:- pred accu_update(938,37069 -accu_update(941,37210 -:- pred member_lessthan_goalid(964,38219 -member_lessthan_goalid(967,38342 +:- pred accu_stage1689,26977 +accu_stage1693,27155 +:- pred accu_stage1_2727,28347 +accu_stage1_2731,28515 +:- pred accu_sets_init781,30557 +accu_sets_init783,30605 +:- func set_upto796,30984 +set_upto798,31039 +:- pred accu_before812,31498 +accu_before815,31639 +:- pred accu_assoc835,32477 +accu_assoc838,32617 +:- pred accu_construct862,33712 +accu_construct865,33856 +:- pred accu_construct_assoc896,35307 +accu_construct_assoc899,35457 +:- pred accu_update938,37069 +accu_update941,37210 +:- pred member_lessthan_goalid964,38219 +member_lessthan_goalid967,38342 :- type accu_assoc975,38652 -:- pred accu_is_associative(986,39138 -accu_is_associative(989,39250 -:- pred associativity_assertion(1014,40263 -associativity_assertion(1017,40404 -:- pred commutativity_assertion(1037,41242 -commutativity_assertion(1040,41369 -:- pred accu_is_update(1057,41952 -accu_is_update(1060,42066 -:- pred is_associative_construction(1078,42802 -is_associative_construction(1081,42898 +:- pred accu_is_associative986,39138 +accu_is_associative989,39250 +:- pred associativity_assertion1014,40263 +associativity_assertion1017,40404 +:- pred commutativity_assertion1037,41242 +commutativity_assertion1040,41369 +:- pred accu_is_update1057,41952 +accu_is_update1060,42066 +:- pred is_associative_construction1078,42802 +is_associative_construction1081,42898 :- type accu_substs1095,43480 :- type accu_base1103,43744 -:- pred accu_stage2(1124,44605 -accu_stage2(1131,44946 -:- pred accu_substs_init(1179,46957 -accu_substs_init(1182,47097 -:- pred acc_var_subst_init(1194,47573 -acc_var_subst_init(1198,47718 -:- pred create_new_var(1207,48147 -create_new_var(1210,48288 -:- pred accu_process_assoc_set(1223,48862 -accu_process_assoc_set(1229,49150 -:- pred accu_has_heuristic(1297,52081 -accu_has_heuristic(1299,52161 -:- pred accu_heuristic(1304,52336 -accu_heuristic(1307,52457 -:- pred accu_process_update_set(1318,52906 -accu_process_update_set(1325,53221 -:- pred accu_divide_base_case(1380,55844 -accu_divide_base_case(1385,56059 -:- pred accu_related(1412,57146 -accu_related(1415,57270 -:- pred lookup_call(1449,58601 -lookup_call(1452,58715 -:- pred accu_stage3(1470,59432 -accu_stage3(1477,59826 -:- pred acc_proc_info(1508,61326 -acc_proc_info(1512,61485 -:- pred acc_pred_info(1556,63449 -acc_pred_info(1559,63597 -:- pred accu_create_goal(1600,65285 -accu_create_goal(1607,65628 -:- func create_acc_call(1621,66400 -create_acc_call(1625,66569 -:- pred create_orig_goal(1634,66987 -create_orig_goal(1638,67176 -:- pred create_acc_goal(1662,68157 -create_acc_goal(1667,68380 -:- func create_new_orig_recursive_goals(1709,70225 -create_new_orig_recursive_goals(1712,70368 -:- func create_new_recursive_goals(1723,70918 -create_new_recursive_goals(1727,71108 -:- func create_new_base_goals(1738,71717 -create_new_base_goals(1741,71831 -:- pred acc_unification(1749,72156 -acc_unification(1751,72225 -:- pred accu_top_level(1766,72896 -accu_top_level(1770,73058 -:- pred update_accumulator_pred(1856,76290 -update_accumulator_pred(1859,76411 -:- func accu_rename(1876,77253 -accu_rename(1879,77363 -:- func base_case_ids(1889,77784 -base_case_ids(1891,77846 -:- func base_case_ids_set(1898,78048 -base_case_ids_set(1900,78113 -:- func accu_goal_list(1905,78269 -accu_goal_list(1907,78349 -:- pred calculate_goal_info(1916,78680 -calculate_goal_info(1918,78753 -:- func chain_subst(1932,79319 -chain_subst(1934,79378 -:- pred chain_subst_2(1938,79482 -chain_subst_2(1941,79576 -:- end_module transform_hlds.accumulator1953,79939 +:- pred accu_stage21124,44605 +accu_stage21131,44946 +:- pred accu_substs_init1179,46957 +accu_substs_init1182,47097 +:- pred acc_var_subst_init1194,47573 +acc_var_subst_init1198,47718 +:- pred create_new_var1207,48147 +create_new_var1210,48288 +:- pred accu_process_assoc_set1223,48862 +accu_process_assoc_set1229,49150 +:- pred accu_has_heuristic1297,52081 +accu_has_heuristic1299,52161 +:- pred accu_heuristic1304,52336 +accu_heuristic1307,52457 +:- pred accu_process_update_set1318,52906 +accu_process_update_set1325,53221 +:- pred accu_divide_base_case1380,55844 +accu_divide_base_case1385,56059 +:- pred accu_related1412,57146 +accu_related1415,57270 +:- inst stored_goal_plain_call1444,58415 +:- pred lookup_call1449,58601 +lookup_call1452,58715 +:- pred accu_stage31470,59432 +accu_stage31477,59826 +:- pred acc_proc_info1508,61326 +acc_proc_info1512,61485 +:- pred acc_pred_info1556,63449 +acc_pred_info1559,63597 +:- pred accu_create_goal1600,65285 +accu_create_goal1607,65628 +:- func create_acc_call1621,66400 +create_acc_call1625,66569 +:- pred create_orig_goal1634,66987 +create_orig_goal1638,67176 +:- pred create_acc_goal1662,68157 +create_acc_goal1667,68380 +:- func create_new_orig_recursive_goals1709,70225 +create_new_orig_recursive_goals1712,70368 +:- func create_new_recursive_goals1723,70918 +create_new_recursive_goals1727,71108 +:- func create_new_base_goals1738,71717 +create_new_base_goals1741,71831 +:- pred acc_unification1749,72156 +acc_unification1751,72225 +:- pred accu_top_level1766,72896 +accu_top_level1770,73058 +:- pred update_accumulator_pred1856,76290 +update_accumulator_pred1859,76411 +:- func accu_rename1876,77253 +accu_rename1879,77363 +:- func base_case_ids1889,77784 +base_case_ids1891,77846 +:- func base_case_ids_set1898,78048 +base_case_ids_set1900,78113 +:- func accu_goal_list1905,78269 +accu_goal_list1907,78349 +:- pred calculate_goal_info1916,78680 +calculate_goal_info1918,78753 +:- func chain_subst1932,79319 +chain_subst1934,79378 +:- pred chain_subst_21938,79482 +chain_subst_21941,79576 +:- some [T] pred unravel_univ1956,80060 +:- pragma foreign_export1957,80116 +unravel_univ1961,80340 c-src/c.c,76 T f(1,0 diff --git a/test/manual/etags/ETAGS.good_6 b/test/manual/etags/ETAGS.good_6 index 68cbaa9b0a..75047951a8 100644 --- a/test/manual/etags/ETAGS.good_6 +++ b/test/manual/etags/ETAGS.good_6 @@ -5023,38 +5023,15 @@ Section\xreftie'char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno % \global\def={=3307,107500 \def\normalbackslash{\normalbackslash3321,107882 -merc-src/accumulator.m,5996 -:- module transform_hlds.accumulator145,5333 +merc-src/accumulator.m,4915 +:- interface146,5371 :- import_module hlds148,5386 -:- import_module hlds.hlds_module149,5409 -:- import_module hlds.hlds_pred150,5444 :- import_module univ152,5478 -:- pred accu_transform_proc(159,5793 -:- import_module hlds.assertion168,6135 -:- import_module hlds.goal_util169,6168 -:- import_module hlds.hlds_error_util170,6201 -:- import_module hlds.hlds_goal171,6240 -:- import_module hlds.hlds_out172,6273 -:- import_module hlds.hlds_out.hlds_out_util173,6305 -:- import_module hlds.hlds_promise174,6351 -:- import_module hlds.instmap175,6387 -:- import_module hlds.pred_table176,6418 -:- import_module hlds.quantification177,6452 -:- import_module hlds.status178,6490 -:- import_module hlds.vartypes179,6520 +:- pred accu_transform_proc159,5793 +:- implementation166,6115 :- import_module libs180,6552 -:- import_module libs.globals181,6575 -:- import_module libs.optimization_options182,6606 -:- import_module libs.options183,6650 :- import_module mdbcomp184,6681 -:- import_module mdbcomp.sym_name185,6707 :- import_module parse_tree186,6742 -:- import_module parse_tree.error_util187,6771 -:- import_module parse_tree.prog_data188,6811 -:- import_module parse_tree.prog_mode189,6850 -:- import_module parse_tree.prog_util190,6889 -:- import_module parse_tree.set_of_var191,6928 -:- import_module transform_hlds.goal_store192,6968 :- import_module assoc_list194,7013 :- import_module bool195,7042 :- import_module int196,7065 @@ -5075,127 +5052,130 @@ merc-src/accumulator.m,5996 :- type accu_goal_store234,8091 :- type accu_subst238,8216 :- type accu_warning240,8264 -accu_transform_proc(247,8578 -:- pred generate_warnings(334,12550 -generate_warnings(337,12669 -:- pred generate_warning(342,12895 -generate_warning(345,13001 -:- pred should_attempt_accu_transform(365,13886 -should_attempt_accu_transform(370,14123 -:- pred should_attempt_accu_transform_2(398,15406 -should_attempt_accu_transform_2(405,15763 -:- pred accu_standardize(440,17390 -accu_standardize(442,17455 -:- pred identify_goal_type(465,18169 -identify_goal_type(469,18359 -:- pred is_recursive_case(549,21175 -is_recursive_case(551,21253 +accu_transform_proc247,8578 +:- pred generate_warnings334,12550 +generate_warnings337,12669 +:- pred generate_warning342,12895 +generate_warning345,13001 +:- pred should_attempt_accu_transform365,13886 +should_attempt_accu_transform370,14123 +:- pred should_attempt_accu_transform_2398,15406 +should_attempt_accu_transform_2405,15763 +:- pred accu_standardize440,17390 +accu_standardize442,17455 +:- pred identify_goal_type465,18169 +identify_goal_type469,18359 +:- pred is_recursive_case549,21175 +is_recursive_case551,21253 :- type store_info560,21713 -:- func initialize_goal_store(570,22060 -initialize_goal_store(573,22166 -:- pred accu_store(580,22421 -accu_store(584,22576 -:- pred identify_recursive_calls(601,23288 -identify_recursive_calls(604,23406 -:- pred identify_out_and_out_prime(626,24396 -identify_out_and_out_prime(631,24631 +:- func initialize_goal_store570,22060 +initialize_goal_store573,22166 +:- pred accu_store580,22421 +accu_store584,22576 +:- pred identify_recursive_calls601,23288 +identify_recursive_calls604,23406 +:- pred identify_out_and_out_prime626,24396 +identify_out_and_out_prime631,24631 :- type accu_sets676,26425 -:- pred accu_stage1(689,26977 -accu_stage1(693,27155 -:- pred accu_stage1_2(727,28347 -accu_stage1_2(731,28515 -:- pred accu_sets_init(781,30557 -accu_sets_init(783,30605 -:- func set_upto(796,30984 -set_upto(798,31039 -:- pred accu_before(812,31498 -accu_before(815,31639 -:- pred accu_assoc(835,32477 -accu_assoc(838,32617 -:- pred accu_construct(862,33712 -accu_construct(865,33856 -:- pred accu_construct_assoc(896,35307 -accu_construct_assoc(899,35457 -:- pred accu_update(938,37069 -accu_update(941,37210 -:- pred member_lessthan_goalid(964,38219 -member_lessthan_goalid(967,38342 +:- pred accu_stage1689,26977 +accu_stage1693,27155 +:- pred accu_stage1_2727,28347 +accu_stage1_2731,28515 +:- pred accu_sets_init781,30557 +accu_sets_init783,30605 +:- func set_upto796,30984 +set_upto798,31039 +:- pred accu_before812,31498 +accu_before815,31639 +:- pred accu_assoc835,32477 +accu_assoc838,32617 +:- pred accu_construct862,33712 +accu_construct865,33856 +:- pred accu_construct_assoc896,35307 +accu_construct_assoc899,35457 +:- pred accu_update938,37069 +accu_update941,37210 +:- pred member_lessthan_goalid964,38219 +member_lessthan_goalid967,38342 :- type accu_assoc975,38652 -:- pred accu_is_associative(986,39138 -accu_is_associative(989,39250 -:- pred associativity_assertion(1014,40263 -associativity_assertion(1017,40404 -:- pred commutativity_assertion(1037,41242 -commutativity_assertion(1040,41369 -:- pred accu_is_update(1057,41952 -accu_is_update(1060,42066 -:- pred is_associative_construction(1078,42802 -is_associative_construction(1081,42898 +:- pred accu_is_associative986,39138 +accu_is_associative989,39250 +:- pred associativity_assertion1014,40263 +associativity_assertion1017,40404 +:- pred commutativity_assertion1037,41242 +commutativity_assertion1040,41369 +:- pred accu_is_update1057,41952 +accu_is_update1060,42066 +:- pred is_associative_construction1078,42802 +is_associative_construction1081,42898 :- type accu_substs1095,43480 :- type accu_base1103,43744 -:- pred accu_stage2(1124,44605 -accu_stage2(1131,44946 -:- pred accu_substs_init(1179,46957 -accu_substs_init(1182,47097 -:- pred acc_var_subst_init(1194,47573 -acc_var_subst_init(1198,47718 -:- pred create_new_var(1207,48147 -create_new_var(1210,48288 -:- pred accu_process_assoc_set(1223,48862 -accu_process_assoc_set(1229,49150 -:- pred accu_has_heuristic(1297,52081 -accu_has_heuristic(1299,52161 -:- pred accu_heuristic(1304,52336 -accu_heuristic(1307,52457 -:- pred accu_process_update_set(1318,52906 -accu_process_update_set(1325,53221 -:- pred accu_divide_base_case(1380,55844 -accu_divide_base_case(1385,56059 -:- pred accu_related(1412,57146 -accu_related(1415,57270 -:- pred lookup_call(1449,58601 -lookup_call(1452,58715 -:- pred accu_stage3(1470,59432 -accu_stage3(1477,59826 -:- pred acc_proc_info(1508,61326 -acc_proc_info(1512,61485 -:- pred acc_pred_info(1556,63449 -acc_pred_info(1559,63597 -:- pred accu_create_goal(1600,65285 -accu_create_goal(1607,65628 -:- func create_acc_call(1621,66400 -create_acc_call(1625,66569 -:- pred create_orig_goal(1634,66987 -create_orig_goal(1638,67176 -:- pred create_acc_goal(1662,68157 -create_acc_goal(1667,68380 -:- func create_new_orig_recursive_goals(1709,70225 -create_new_orig_recursive_goals(1712,70368 -:- func create_new_recursive_goals(1723,70918 -create_new_recursive_goals(1727,71108 -:- func create_new_base_goals(1738,71717 -create_new_base_goals(1741,71831 -:- pred acc_unification(1749,72156 -acc_unification(1751,72225 -:- pred accu_top_level(1766,72896 -accu_top_level(1770,73058 -:- pred update_accumulator_pred(1856,76290 -update_accumulator_pred(1859,76411 -:- func accu_rename(1876,77253 -accu_rename(1879,77363 -:- func base_case_ids(1889,77784 -base_case_ids(1891,77846 -:- func base_case_ids_set(1898,78048 -base_case_ids_set(1900,78113 -:- func accu_goal_list(1905,78269 -accu_goal_list(1907,78349 -:- pred calculate_goal_info(1916,78680 -calculate_goal_info(1918,78753 -:- func chain_subst(1932,79319 -chain_subst(1934,79378 -:- pred chain_subst_2(1938,79482 -chain_subst_2(1941,79576 -:- end_module transform_hlds.accumulator1953,79939 +:- pred accu_stage21124,44605 +accu_stage21131,44946 +:- pred accu_substs_init1179,46957 +accu_substs_init1182,47097 +:- pred acc_var_subst_init1194,47573 +acc_var_subst_init1198,47718 +:- pred create_new_var1207,48147 +create_new_var1210,48288 +:- pred accu_process_assoc_set1223,48862 +accu_process_assoc_set1229,49150 +:- pred accu_has_heuristic1297,52081 +accu_has_heuristic1299,52161 +:- pred accu_heuristic1304,52336 +accu_heuristic1307,52457 +:- pred accu_process_update_set1318,52906 +accu_process_update_set1325,53221 +:- pred accu_divide_base_case1380,55844 +accu_divide_base_case1385,56059 +:- pred accu_related1412,57146 +accu_related1415,57270 +:- inst stored_goal_plain_call1444,58415 +:- pred lookup_call1449,58601 +lookup_call1452,58715 +:- pred accu_stage31470,59432 +accu_stage31477,59826 +:- pred acc_proc_info1508,61326 +acc_proc_info1512,61485 +:- pred acc_pred_info1556,63449 +acc_pred_info1559,63597 +:- pred accu_create_goal1600,65285 +accu_create_goal1607,65628 +:- func create_acc_call1621,66400 +create_acc_call1625,66569 +:- pred create_orig_goal1634,66987 +create_orig_goal1638,67176 +:- pred create_acc_goal1662,68157 +create_acc_goal1667,68380 +:- func create_new_orig_recursive_goals1709,70225 +create_new_orig_recursive_goals1712,70368 +:- func create_new_recursive_goals1723,70918 +create_new_recursive_goals1727,71108 +:- func create_new_base_goals1738,71717 +create_new_base_goals1741,71831 +:- pred acc_unification1749,72156 +acc_unification1751,72225 +:- pred accu_top_level1766,72896 +accu_top_level1770,73058 +:- pred update_accumulator_pred1856,76290 +update_accumulator_pred1859,76411 +:- func accu_rename1876,77253 +accu_rename1879,77363 +:- func base_case_ids1889,77784 +base_case_ids1891,77846 +:- func base_case_ids_set1898,78048 +base_case_ids_set1900,78113 +:- func accu_goal_list1905,78269 +accu_goal_list1907,78349 +:- pred calculate_goal_info1916,78680 +calculate_goal_info1918,78753 +:- func chain_subst1932,79319 +chain_subst1934,79378 +:- pred chain_subst_21938,79482 +chain_subst_21941,79576 +:- some [T] pred unravel_univ1956,80060 +:- pragma foreign_export1957,80116 +unravel_univ1961,80340 c-src/c.c,76 T f(1,0 diff --git a/test/manual/etags/merc-src/accumulator.m b/test/manual/etags/merc-src/accumulator.m index 94a6b1d858..c82dbf58ff 100644 --- a/test/manual/etags/merc-src/accumulator.m +++ b/test/manual/etags/merc-src/accumulator.m @@ -1952,3 +1952,11 @@ not commutativity_assertion(ModuleInfo, AssertIds, Args0, _) %---------------------------------------------------------------------------% :- end_module transform_hlds.accumulator. %---------------------------------------------------------------------------% + +:- some [T] pred unravel_univ(univ::in, T::out) is det. +:- pragma foreign_export("C", unravel_univ(in, out), "ML_unravel_univ"). +:- pragma foreign_export("C#", unravel_univ(in, out), "ML_unravel_univ"). +:- pragma foreign_export("Java", unravel_univ(in, out), "ML_unravel_univ"). + +unravel_univ(Univ, X) :- + univ_value(Univ) = X. commit 0ffcf7479c49ad5e0f9f675124c7cf741197aedd Author: Fabrice Nicol Date: Thu Jun 17 19:59:52 2021 +0200 Fix Mercury support, notably qualified procedures. Correct the previous fix (did not correctly handle qualified types). Also fix the following issues: - remove module name (+ dot) from tags, as prefixing module name is often inconsistent in code and may cause tags to be too specific. - now tag 0-arity predicates and functions (':- func foo_14.') - now tag one-word declarations (':- interface.') * lib-src/etags.c (mercury_pr): Pass the correct NAME and NAMELEN arguments to 'make_tag'. (mercury_decl): Return more information about the declaration or definition it finds. This allows mercury_pr to be smarter. (Bug#47408) diff --git a/lib-src/etags.c b/lib-src/etags.c index 9f20e44caf..bd57ede2f3 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -6081,10 +6081,10 @@ prolog_atom (char *s, size_t pos) pos++; if (s[pos] != '\'') break; - pos++; /* A double quote */ + pos++; /* A double quote */ } else if (s[pos] == '\0') - /* Multiline quoted atoms are ignored. */ + /* Multiline quoted atoms are ignored. */ return 0; else if (s[pos] == '\\') { @@ -6119,6 +6119,13 @@ static void mercury_skip_comment (linebuffer *, FILE *); static bool is_mercury_type = false; static bool is_mercury_quantifier = false; static bool is_mercury_declaration = false; +typedef struct +{ + size_t pos; /* Position reached in parsing tag name. */ + size_t namelength; /* Length of tag name */ + size_t totlength; /* Total length of parsed tag: this field is currently + reserved for control and debugging. */ +} mercury_pos_t; /* * Objective-C and Mercury have identical file extension .m. @@ -6374,10 +6381,12 @@ static const char *Mercury_decl_tags[] = {"type", "solver type", "pred", "initialise", "finalise", "mutable", "module", "interface", "implementation", "import_module", "use_module", "include_module", "end_module", "some", "all"}; -static size_t +static mercury_pos_t mercury_decl (char *s, size_t pos) { - if (s == NULL) return 0; + mercury_pos_t null_pos = {0, 0, 0}; + + if (s == NULL) return null_pos; size_t origpos; origpos = pos; @@ -6398,7 +6407,8 @@ mercury_decl (char *s, size_t pos) if (is_mercury_quantifier) { if (strcmp (buf, "pred") != 0 && strcmp (buf, "func") != 0) /* Bad syntax. */ - return 0; + return null_pos; + is_mercury_quantifier = false; /* Reset to base value. */ found_decl_tag = true; } @@ -6418,7 +6428,7 @@ mercury_decl (char *s, size_t pos) is_mercury_quantifier = true; } - break; /* Found declaration tag of rank j. */ + break; /* Found declaration tag of rank j. */ } else /* 'solver type' has a blank in the middle, @@ -6461,24 +6471,36 @@ mercury_decl (char *s, size_t pos) if (found_decl_tag) pos = skip_spaces (s + pos) - s; /* Skip len blanks again. */ else - return 0; + return null_pos; } /* From now on it is the same as for Prolog except for module dots. */ + size_t start_of_name = pos; + if (c_islower (s[pos]) || s[pos] == '_' ) { /* The name is unquoted. Do not confuse module dots with end-of-declaration dots. */ + int module_dot_pos = 0; while (c_isalnum (s[pos]) || s[pos] == '_' || (s[pos] == '.' /* A module dot. */ && s + pos + 1 != NULL - && (c_isalnum (s[pos + 1]) || s[pos + 1] == '_'))) + && (c_isalnum (s[pos + 1]) || s[pos + 1] == '_') + && (module_dot_pos = pos))) /* Record module dot position. + Erase module from name. */ ++pos; - return pos - origpos; + if (module_dot_pos) + { + start_of_name = module_dot_pos + 2; + ++pos; + } + + mercury_pos_t position = {pos, pos - start_of_name + 1, pos - origpos}; + return position; } else if (s[pos] == '\'') { @@ -6493,28 +6515,37 @@ mercury_decl (char *s, size_t pos) ++pos; /* A double quote. */ } else if (s[pos] == '\0') /* Multiline quoted atoms are ignored. */ - return 0; + return null_pos; else if (s[pos] == '\\') { if (s[pos+1] == '\0') - return 0; + return null_pos; pos += 2; } else ++pos; } - return pos - origpos; + + mercury_pos_t position = {pos, pos - start_of_name + 1, pos - origpos}; + return position; } else if (is_mercury_quantifier && s[pos] == '[') /* :- some [T] pred/func. */ { for (++pos; s + pos != NULL && s[pos] != ']'; ++pos) {} - if (s + pos == NULL) return 0; + if (s + pos == NULL) return null_pos; ++pos; pos = skip_spaces (s + pos) - s; - return mercury_decl (s, pos) + pos - origpos; + mercury_pos_t position = mercury_decl (s, pos); + position.totlength += pos - origpos; + return position; + } + else if (s[pos] == '.') /* as in ':- interface.' */ + { + mercury_pos_t position = {pos, pos - origpos + 1, pos - origpos}; + return position; } else - return 0; + return null_pos; } static ptrdiff_t @@ -6523,6 +6554,7 @@ mercury_pr (char *s, char *last, ptrdiff_t lastlen) size_t len0 = 0; is_mercury_type = false; is_mercury_quantifier = false; + bool stop_at_rule = false; if (is_mercury_declaration) { @@ -6530,38 +6562,46 @@ mercury_pr (char *s, char *last, ptrdiff_t lastlen) len0 = skip_spaces (s + 2) - s; } - size_t len = mercury_decl (s, len0); - if (len == 0) return 0; - len += len0; - - if (( (s[len] == '.' /* This is a statement dot, not a module dot. */ - || (s[len] == '(' && (len += 1)) - || (s[len] == ':' /* Stopping in case of a rule. */ - && s[len + 1] == '-' - && (len += 2))) - && (lastlen != len || memcmp (s, last, len) != 0) + mercury_pos_t position = mercury_decl (s, len0); + size_t pos = position.pos; + int offset = 0; /* may be < 0 */ + if (pos == 0) return 0; + + /* Skip white space for: + a. rules in definitions before :- + b. 0-arity predicates with inlined modes. + c. possibly multiline type definitions */ + + while (c_isspace (s[pos])) { ++pos; ++offset; } + + if (( ((s[pos] == '.' && (pos += 1)) /* case 1 + This is a statement dot, + not a module dot. */ + || c_isalnum(s[pos]) /* 0-arity procedures */ + || (s[pos] == '(' && (pos += 1)) /* case 2: arity > 0 */ + || ((s[pos] == ':') /* case 3: rules */ + && s[pos + 1] == '-' && (stop_at_rule = true))) + && (lastlen != pos || memcmp (s, last, pos) != 0) ) /* Types are often declared on several lines so keeping just the first line. */ - || is_mercury_type) + + || is_mercury_type) /* When types are implemented. */ { - char *name = skip_non_spaces (s + len0); - size_t namelen; - if (name >= s + len) - { - name = s; - namelen = len; - } - else - { - name = skip_spaces (name); - namelen = len - (name - s); - } - /* Remove trailing non-name characters. */ - while (namelen > 0 && notinname (name[namelen - 1])) - namelen--; - make_tag (name, namelen, true, s, len, lineno, linecharno); - return len; + size_t namelength = position.namelength; + if (stop_at_rule && offset) --offset; + + /* Left-trim type definitions. */ + + while (pos > namelength + offset + && c_isspace (s[pos - namelength - offset])) + --offset; + + /* There is no need to correct namelength or call notinname. */ + + make_tag (s + pos - namelength - offset, namelength - 1, true, + s, pos - offset - 1, lineno, linecharno); + return pos; } return 0;