Project

General

Profile

Bug #9350

gap marking for LOG-MANAGER attributes and methods is probably wrong

Added by Greg Shah over 1 year ago. Updated over 1 year ago.

Status:
Internal Test
Priority:
Normal
Assignee:
Galya B
Target version:
-
Start date:
Due date:
% Done:

100%

billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:
reviewer:
production:
No
env_name:
topics:

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

#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

Greg Shah wrote:

See Gap Analysis.

Where is the gap marking for LOG-MANAGER?

#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
2. LOG-MANAGER methods:
  • 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.

Also available in: Atom PDF