Author Topic: SE Custom Menus : Size Limitation : SE Menu Module will not load  (Read 9149 times)

PurdueEEGrad

  • Senior Community Member
  • Posts: 115
  • Hero Points: -17
I am testing the current SE V19 Release Candidate 02 - (SE V19 RC2) -
using four SE Menu Module testcases (as attached). 

I have attached 4 testcases (V_04, V_05_A, V_05_B, V_06) - that show a
size limitation on menus.  All four are pretty much identical - except
around line 785. 

My test results - to load the SE module are;

   V_04     -  Pass (see Line 785)  -  No submenu
   V_05_A   -  Fail (see Line 787)  -  submenu "PoiNT"
   V_05_B   -  Fail (see Line 787)  -  submenu "SCoPe"
   V_06     -  Pass (see Line 785)  -  submenu "PoiNT"   (Note submenu "PoiNT" loads OK)

The last testcase (V_06) shows that the two failing testcases have no bugs
in syntax (V_05_A, B).  In V_06 - I commented out a previous submenu
section (submenu "Base Action High Level") - to make room for the submenu
items in V_05_A, B - to prove the syntax is OK. 

Thus : The two failing testcases - appear to fail - due to a size
limitation of custom menus in SE (and not a SE code syntax problem).

In summary:

The SE custom menu in testcase V_04 loads OK - and actually works (when
the macros are loaded). 

NOTE : I did not attach the SE Macro module - that has the commands used
by the menus.  The macros work just fine.  Its the menu size problem that
is the issue (herein). 

Near as I can tell....

The SE custom menu in testcase V_05_A - Fails the load process - due to a
menu size limitation. 

The SE custom menu in testcase V_05_B - Fails the load process - due to a
menu size limitation. 

I have found some other issues with custom menus - but this post is
focused on what appears to be a size limitation.  The failing testcases
(attached) - appear to be one submenu item too many (right on the cusp of
the failure point). 

Is there a size limitation?  - and can this be fixed - so that SE can
perform like any other Windows application (ie; Large scale menus are no
problem). 

When any SE custom menus get around this size - a massive failure can
occur in the SE GUI - which I will post in another topic (under SE V19
RC2 beta testing).

PurdueEEGrad

  • Senior Community Member
  • Posts: 115
  • Hero Points: -17
Re: SE Custom Menus : Size Limitation : SE Menu Module will not load
« Reply #1 on: November 03, 2014, 06:35:49 PM »
I have attached a nominal size SE menu module - ..V_07..  - for testing
the SE menu size limitation. 

I have 'hidden' some menu subitem sets (within the attached module) - by
just commenting them out of the code set (see attached). 

This way the attached module can be loaded as is - without crashing the SE
app. 

Removing the comment syntax - will 'unhide' those code sections (see section
maps attached - in screenshot format) - currently hidden to pass underneath
the SE menu size limitation (and thus allow the module to be loaded and used
without crashing SE).

These hidden subitem sets - can be uncommented - to further test the SE
menu size limitation issue herein. 

The total number of SE submenu items (as attached) - is 175 - via Level 2,
Level 3 items. 

The total number of low level SE menu items - at the bottom - level 4 - is
388. 

This would be a nominal cardinality - between 100->1000 menu items.

Note : A full menu for the complete tag lexicon I am using - is around 530 items (at present).

Note : The SE menu modules (such as that attached) - allow less SE toolbar
modules to be needed (for various code domains) - as well as provide a
handy reference - to the software artifact tag lexicon (ie; the dictionary
of tags I am using for some corporate/government enterprize level
clients). 

We use different tools than Slickedit - to maintain tags and generate code
- using automated code generators - for different environments. 

... in this context ....

The attached SE menu size testcase module (..V_07..) - and some screen
shots - can help replicate some of the SE module load/unload issues we are
seeing with the SE V19 application. 

Some of the harder to replicate errors I am seeing - in the SE V19 beta -
seem to be related to nominal cardinality issues - rather than specific
SE menu load issues (ie; They occur in other SE code domains - such as
macros or toolbars - not just menu items).

Trivial cardinality being 1->10, 10->100 : and nominal being 100->100
code artifacts - in various code domains.

BTW : My (1) Options and (2) Color code domain SE modules - are all
trivial in cardinality - ranging around 1->10 code artifacts (in my SE
Module set - to set up my SE edit console environment). 

I hope the attached - can frame the use case - for nominal menu sizes -
for the SE dev team. 

PurdueEEGrad

  • Senior Community Member
  • Posts: 115
  • Hero Points: -17
Re: SE Custom Menus : Size Limitation : SE Menu Module will not load
« Reply #2 on: November 07, 2014, 05:19:57 AM »
I tested SE V19 RC4 - with the attached SE Module - in my SE Module
library (for my SE edit console configuration). 

The good news is that RC4 does not crash : It loads the (attached) module
- with no stack errors (as in RC2). 

The bad news is the RC4 SE Menu size restriction is still too small for my
current needs for SE V19 (use case attached - discussion below). 

-------------------------------------------------

The attached SE custom menu cardinality metrics are;

[1] Total menu items :  384 (3x numeric expansion of grep tags - due to search scope specifications)

[2] Total grep items :  128 (unique grep tags)

Note again : The 3x scope multiplication of grep tag cardinality - due to
searching in workspace, project and file scope. 

A 4x grep operation scope multiplier - would result in a refactored menu
that includes open buffers (ie; workspace, project, file, open buffers). 

A 4x multiplier would produce 512 menu items (for the attached tag lexicon).

If the fixed SE menu limit could be increased - in the final V19 release :
The attached SE Module (in my SE Module library set) - is an example use
case of why. 

NOTE : What ever the fixed SE menu limit is : When hit - the SE macro
loading process - could post a message box - indicating that the module
loaded OK - but the menu was truncated due to SE menu cardinality limits.

I have attached a screen shot of the truncated module - to show the
difference between - the (a) attached SE menu module - and (b) what
actually gets created in the SE environment (for SE V19 RC4).

As can be seen in the screen shot - the following menu sections are
not created - even though the SE module defines them.

CCV_Bit
CCV_OOP
CCV_State

If the SE menu item limit - could be increased to 512 items (100->1000
range of cardinality) - that would go a long way in having formal grep
tags in a working lexicon (available) - without taking up the screen real
estate in Toolbars. 

A final SE V19 Release of 1000 items - would go a long way in helping SE
users (such as myself) - in pushing the limits of - code tag lexicon based
- code visibility tool features (such as herein - for the SE application). 

PurdueEEGrad

  • Senior Community Member
  • Posts: 115
  • Hero Points: -17
Re: SE Custom Menus : Size Limitation : SE Menu Module will not load
« Reply #3 on: November 17, 2014, 03:01:40 PM »
I have been testing SE RC5 - relative to large user defined menus.

SE RC5 still has issues with large size menus - but it does not crash and
seems more stable - when large menu sizes are loaded. 

Attached are;

[1] Screenshot : Module loaded OK - with no error messages, etc.

[2] Screenshot : With new MDI item - Menu display fails - with error message "Can't find form".

[3] Screenshot : Example SE custom menu - for code domain pattern evolution - grep menu items

[4] SE Module  : That has a large menu size - and shows the error in screenshots [1,2]

------------ Discussion -----------------------------------

Screenshot [3] - shows a use case example - of why a Slickedit customer -
would want to use large custom menu sizes in Slickedit.  Basically the
menu items provide grep operations - to find code artifacts tagged via a
"_xxx" lexicon approach - for software language independent code
visibility issues (ie; the ability to find code artifacts quickly - using
the code artifact lexicon dictionary (which is over 500 tags long). 

Attachment [4] - is an example of a large SE custom menu - with 189 submenu
items - and 384 menu items (at the bottom level - where grep macros are called).
So Attachment [4] contains 384 grep operations - most of which use the lexicon
mentioned above.

Screenshot [1,2] - show the SE RC5 error - whereby : SE loads the attached
module with no error message - but exhibits an error when the MDI Menu item -
tries to display the menu.

------------ Test replication -----------------------------

Load the attached SE module (attached item [4]) - and use;

SE MDI Menu -> Macro -> Menus : _mdi_menu (Open)

To create a "Code Map" SE MDI Menu item - and execute the;

ccv_pop_SEM_01_Base_srh_mnu()

.. macro - defined in the attached SE Module (item [4] above).

When you execute the MDI Menu item "Code Map" - you should get the
same error message as the screenshot [2] (attached).

------------ Bad Behavior ---------------------------------

After the error message comes up - you can look for the large
menu item via;

SE MDI Menu -> Macro -> Menus : [look for _ccv_SEM_01_Base_srh_mnu]

As it turns out, the large SE custom menu was never really loaded -
during the SE module load process - of the attached SE module (item [4]).

------------ Desired Behavior -----------------------------

IF:
(1) Slickedit is loading a  module - AND
(2) that module defines a SE custom menu - AND
(3) the menu exceeds the maximum allowable size

THEN:
(4) SE should display a 'Menu Exceeds Maximum Size' error message - AND
(5) The module should be rejected for loading - AND
(6) The module should have no residue in the SE State space - AND
(7) The module should NOT show up in the module list   

Note that (7) above - is a problem with the attached screenshot [1] - where
the module DOES show up

------------ Alternate Desired Behavior -------------------

[1] The module shows up in the SE user module list - but its colored red.
[2] The SE module is presented in a buffer
[3] The cursor is at the line - where the last VALID menu item is.
[4] The first menu item (text line) to exceed the size limit - is colored in red.

------------ Summary --------------------------------------

Slickedit is the world's greatest programming tool - because software
engineers can use it to push the envelope of programming productivity
(excuse the soap box approach).  In screenshot [3] (attached) - an example
of some pragmatic experimentation - with Slickedit and language independent
code visibility of software patterns (from low, high to holistic system
designs) - is attached to show why someone would want to use large custom
menus in Slickedit. 

.... in this experimental - pushing the envelope context ....

The Alternate Desired Behavior would be the best solution.

The key point - is that any menu size limit - should be detected by
Slickedit - and flagged right away.