Bug #9350
gap marking for LOG-MANAGER attributes and methods is probably wrong
100%
History
#1 Updated by Galya B over 1 year ago
What is the concern? I tested what I implemented, when I implemented it.
#2 Updated by Greg Shah over 1 year ago
These are some items in reports for an application being evaluated.
- attributes
LOGGING-LEVEL(conversion full/runtime stubs)LOG-ENTRY-TYPES(conversion full/runtime stubs)LOGFILE-NAME(conversion full/runtime stubs)
- method
WRITE-MESSAGE(conversion full/runtime stubs)
I think this is a problem for all of the LOG-MANAGER attributes and methods. I believe that runtime support should be "full" for everything except for LOGGING-LEVEL and LOG-ENTRY-TYPES which we should probably call "partial" since the runtime instrumentation is not done yet (see #3853).
Please fix this so that the reports are correct. Changes can be put into brnach 9198a.
#3 Updated by Greg Shah over 1 year ago
See Gap Analysis.
#4 Updated by Galya B over 1 year ago
How is this task different from #3853?
#5 Updated by Galya B over 1 year ago
#6 Updated by Greg Shah over 1 year ago
We have analytics tooling that allows us to evaluate the level of support for each 4GL language feature. This is reporting and analysis TRPL code that looks at the AST nodes for given features across a complete project. It looks for annotations in those nodes which tell it the level of support for conversion and the level of support for runtime. When we make changes to the implementation of a 4GL feature, we must keep the gap marking in synch with the changes we make. You've previously added support for these features but the gap marking is out of date.
The changes will go in rules/gaps/expressions.rules.
#7 Updated by Galya B over 1 year ago
- Status changed from New to WIP
- Assignee set to Galya B
The current state should be:
1. LOG-MANAGER attributes:- LOGFILE-NAME (KW_LOGF_NAM) - conversion full/runtime full
- LOG-THRESHOLD (KW_LOG_THRS) - conversion full/runtime full
- NUM-LOG-FILES (KW_NUM_LOGF) - conversion full/runtime full
- ENTRY-TYPES-LIST (KW_ENT_TLST) - conversion full/runtime full
- LOGGING-LEVEL (KW_LOGG_LEV) - conversion full/runtime partial
- LOG-ENTRY-TYPES (KW_LOG_EN_T) - conversion full/runtime partial
- WRITE-MESSAGE (KW_WR_MSG) - conversion full/runtime full
- CLEAR-LOG (KW_CLR_LOG) - conversion full/runtime full
- CLOSE-LOG (KW_CLOSE_LG) - conversion full/runtime full
Let me see how to fix rules/gaps/expressions.rules.
#8 Updated by Galya B over 1 year ago
Up in 9198a r15486.
Diff:
=== modified file 'rules/gaps/expressions.rules'
--- rules/gaps/expressions.rules 2024-07-01 08:01:37 +0000
+++ rules/gaps/expressions.rules 2024-12-10 14:24:00 +0000
@@ -245,6 +245,7 @@
** 065 GBB 20240301 Added conversion for multiple custom session attributes.
** 066 GBB 20240515 Added conversion for SESSION:GET-LOGIN-PARAMETER.
** 067 HC 20240630 Implemented support for WEB-FILE-UPLOAD statement.
+** 068 GBB 20241210 Fixing support level for LOG-MANAGER methods and attrs.
*/
-->
@@ -825,9 +826,9 @@
<rule>attrs.put(prog.kw_clnt_typ, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_clnt_ws , rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- client-workstation -->
<rule>attrs.put(prog.kw_clone_nd, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
- <rule>attrs.put(prog.kw_close_lg, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
+ <rule>attrs.put(prog.kw_close_lg, rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- close-log -->
<rule>attrs.put(prog.kw_clr_ap_c, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule> <!-- clear-appl-context -->
- <rule>attrs.put(prog.kw_clr_log , rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
+ <rule>attrs.put(prog.kw_clr_log , rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- clear-log -->
<rule>attrs.put(prog.kw_clr_s_ar, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_clr_sel , rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_cls_type, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule> <!-- class-type -->
@@ -978,7 +979,7 @@
<rule>attrs.put(prog.kw_end_user, rw.cvt_lvl_none | rw.rt_lvl_none)</rule> <!-- end-user-prompt -->
<rule>attrs.put(prog.kw_ent_ex_l, rw.cvt_lvl_full | rw.rt_lvl_none)</rule> <!-- entity-expansion-limit -->
<rule>attrs.put(prog.kw_entry , rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
- <rule>attrs.put(prog.kw_ent_tlst, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
+ <rule>attrs.put(prog.kw_ent_tlst, rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- entry-types-list -->
<rule>attrs.put(prog.kw_e_proc_c, rw.cvt_lvl_full | rw.rt_lvl_partial)</rule> <!-- not implemented in DataSets-->
<rule>attrs.put(prog.kw_err_col , rw.cvt_lvl_none | rw.rt_lvl_none)</rule> <!-- error-column -->
<rule>attrs.put(prog.kw_err_objd, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
@@ -1262,15 +1263,15 @@
<rule>attrs.put(prog.kw_loc_s_id, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_loc_type, rw.cvt_lvl_none | rw.rt_lvl_none)</rule> <!-- locator-type -->
<rule>attrs.put(prog.kw_log_a_ev, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule> <!-- log-audit-event -->
- <rule>attrs.put(prog.kw_log_en_t, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
+ <rule>attrs.put(prog.kw_log_en_t, rw.cvt_lvl_full | rw.rt_lvl_partial)</rule> <!-- log-entry-types -->
<rule>attrs.put(prog.kw_log_e_ts, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule> <!-- login-expiration-timestamp -->
- <rule>attrs.put(prog.kw_logf_nam, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
- <rule>attrs.put(prog.kw_logg_lev, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
+ <rule>attrs.put(prog.kw_logf_nam, rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- logfile-name -->
+ <rule>attrs.put(prog.kw_logg_lev, rw.cvt_lvl_full | rw.rt_lvl_partial)</rule> <!-- logging-level -->
<rule>attrs.put(prog.kw_log_host, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule> <!-- login-host -->
<rule>attrs.put(prog.kw_log_id , rw.cvt_lvl_none | rw.rt_lvl_none)</rule> <!-- log-id -->
<rule>attrs.put(prog.kw_logout , rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- logout -->
<rule>attrs.put(prog.kw_log_stat, rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- login-state -->
- <rule>attrs.put(prog.kw_log_thrs, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
+ <rule>attrs.put(prog.kw_log_thrs, rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- log-threshold -->
<rule>attrs.put(prog.kw_lookup , rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_lst_pair, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_mand , rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
@@ -1368,7 +1369,7 @@
<rule>attrs.put(prog.kw_num_itms, rw.cvt_lvl_full | rw.rt_lvl_full_restr)</rule> <!-- not implemented for in-browse combo boxes -->
<rule>attrs.put(prog.kw_num_lk_c, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_num_lns , rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
- <rule>attrs.put(prog.kw_num_logf, rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
+ <rule>attrs.put(prog.kw_num_logf, rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- num-log-files -->
<rule>attrs.put(prog.kw_num_msg , rw.cvt_lvl_full | rw.rt_lvl_full_restr)</rule>
<rule>attrs.put(prog.kw_num_parm, rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- num-parameters -->
<rule>attrs.put(prog.kw_num_ref , rw.cvt_lvl_full | rw.rt_lvl_partial)</rule> <!-- num-references, not for buffers -->
@@ -1731,7 +1732,7 @@
<rule>attrs.put(prog.kw_wr_fragm, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_write , rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_wr_json , rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- write-json -->
- <rule>attrs.put(prog.kw_wr_msg , rw.cvt_lvl_full | rw.rt_lvl_stub)</rule>
+ <rule>attrs.put(prog.kw_wr_msg , rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- write-message -->
<rule>attrs.put(prog.kw_wr_prins, rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_wr_stat , rw.cvt_lvl_full | rw.rt_lvl_full)</rule>
<rule>attrs.put(prog.kw_wr_xml , rw.cvt_lvl_full | rw.rt_lvl_full)</rule> <!-- write-xml -->
#9 Updated by Galya B over 1 year ago
- Status changed from WIP to Review
- % Done changed from 0 to 100
#10 Updated by Greg Shah over 1 year ago
- Status changed from Review to Internal Test
Code Review Task Branch 9198a Revision 15486
The changes are good.
I've checked in rev 15487 with minor comment additions to highlight that the "partial" relates to runtime instrumentation.