Alex, this is probably more a topic for dev list (and we can definitely
continue it there if need be, I would have done so, but could not figure
out how to link to *this* thread properly in the archives).

When you originally worked on this, did you eliminate using the GCC
approach to creating 'modules' (it used to be called 'modules' in older GCC
apparently, perhaps even the one we are currently locked to, but is now
called 'chunks' in more recent GCC versions) ?

Perhaps there is a technical difference or some other reason (e.g. the
feature may not have been well documented) that meant it could not be used.
However, if that was able to be used for royale modules, it seems like it
would be faster/easier, because it is a single release compilation pass
that splits the release build into multiple files, instead of using
multiple passes. After reading the description for that [1] it does seem
like it does all the hard work of avoiding the issues, in particular
avoiding the need for the various output and input files related for
renaming etc that are needed for multiple passes.


1.
https://github.com/google/closure-compiler/wiki/Chunk-output-for-dynamic-loading


On Wed, Jan 5, 2022 at 6:02 AM Alex Harui <aha...@adobe.com> wrote:

> Essentially, -externs-report is for the Closure (JS) Compiler.
> -link-report and -load-externs (one leading ‘-‘) is for the Royale Compiler
> to tell the Royale Compiler what classes to feed to the Closure Compiler.
> Both contain the same data (the set of classes used in the main app), just
> formatted differently and used differently.
>
>
>
> The –externs option for the Closure Compiler then tells the Closure
> Compiler not to look for classes in the set of files it is supposed to
> minify.
>
>
>
> So, you have the right settings for the main app, but for the module, it
> should be:
>
> *-js-compiler-option=--externs extrep.txt; -load-externs linkrep.txt;*
>
>
>
> However, even that won’t work today, as the Royale Compiler is not
> handling -load-externs on the JS prep for Closure Compiler.  I have some
> local changes to the compiler that mixes most of it, but am facing issues
> with how Closure handles package paths.  If that can be resolved, then we
> have a good chance of things working.
>
>
>
> -Alex
>
>
>
> *From: *Roman Isitua <romanisi...@gmail.com>
> *Reply-To: *"users@royale.apache.org" <users@royale.apache.org>
> *Date: *Tuesday, January 4, 2022 at 12:39 AM
> *To: *"users@royale.apache.org" <users@royale.apache.org>
> *Subject: *Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> Thanks for the update.
>
>
>
> I attempted the following:
>
>
>
> 1. In the main application, I use the following setting:
>
> *-externs-report=extrep.txt;  -link-report=linkrep.txt;*
>
>
>
> 2. In the module I use the following
>
>
>
> *-js-compiler-option=--externs extrep.txt;
> -js-compiler-option+=--load-externs linkrep.txt;*
>
>
>
> The main application compiles successfully, I get a compilation error with
> the module
>
>
>
> "--load-externs" is not a valid option
> Sample usage: --compilation_level (-O) VAL --externs VAL --js VAL
> --js_output_file VAL --warning_level (-W) [QUIET | DEFAULT
> | VERBOSE]
> Run with --help for all options and details
> Internal error: java.lang.NullPointerException
> com.google.javascript.jscomp.CommandLineRunner.createOptions(CommandLineRunner.java:1809)org.apache.royale.compiler.utils.JSClosureCompilerWrapper$CompilerOptionsParser.getOptions(JSClosureCompilerWrapper.java:529)org.apache.royale.compiler.utils.JSClosureCompilerWrapper.<init>(JSClosureCompilerWrapper.java:77)org.apache.royale.compiler.internal.codegen.mxml.royale.MXMLRoyalePublisher.publish(MXMLRoyalePublisher.java:395)org.apache.royale.compiler.clients.M
>
>
>
>
>
>
>
> I don't think I am using this option correctly.
>
>
>
>
>
>
>
> .....
>
>
>
> On Tue, Jan 4, 2022 at 8:44 AM Alex Harui <aha...@adobe.com> wrote:
>
> I found some time to investigate.  The -externs-report option is mostly
> working correctly, but other compiler changes are needed to try to avoid
> duplicate code in the module.  I might have time to investigate more this
> coming weekend.  It does appear that if we can correctly reference the
> app’s class from the module that it will work.  The Closure Compiler let me
> compile the module after I externalize and avoid requires on everything in
> the main app’s externs report and -js link report, but the references in
> the module have collapsed packages which is either incorrect or aliases
> need to be created.
>
>
>
> However I think this new approach has a better chance of working than
> trying to match renaming tables.
>
>
>
> -Alex
>
>
>
> *From: *Alex Harui <aha...@adobe.com>
> *Reply-To: *"users@royale.apache.org" <users@royale.apache.org>
> *Date: *Monday, January 3, 2022 at 2:30 PM
> *To: *"users@royale.apache.org" <users@royale.apache.org>
> *Subject: *Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> The -externs-report option should be similar to the -link-report option.
> It takes a filename.  The compiler should output the classes used in the JS
> compile into that file.  To use externs, I think you don’t need to prevent
> renaming in the application as long as public variables are exported.  I
> think you specify -externs-report when compiling the application.
>
>
>
> You may also need to output a -link-report from the application as well.
>
>
>
> I think you then specify the externs-report file as an -externs for the
> -js-compiler-options when compiling the module.  And maybe also specify the
> -link-report output as a -load-externs in the same way it was used when
> compiling Flex modules.  The goal for the module is, like Flex, to not have
> any classes in the module that exist in the main app.  Then it doesn’t
> matter about class renaming within the release-mode JS file.
>
>
>
> HTH,
>
> -Alex
>
>
>
> *From: *Roman Isitua <romanisi...@gmail.com>
> *Reply-To: *"users@royale.apache.org" <users@royale.apache.org>
> *Date: *Monday, January 3, 2022 at 12:37 PM
> *To: *"users@royale.apache.org" <users@royale.apache.org>
> *Subject: *Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
>
>
> I can confirm that classes are being renamed in both files.
>
>
>
> I have attempted your suggestion i.e. removing variable maps and property
> maps then use
>
> -externs-report;-export-public-symbols=true;-prevent-rename-public-symbols=true;
>
>
>
>
> I get the below error
>
>
>
> command line Error: configuration variable 'externs-report' expected 1
> argument(s), got 0.
>
>
>
> I cannot find any documentation on how to use the -externs-report
> argument.  What does it do ? and what are the acceptable values ?
>
>
>
> Regards,
>
>
>
>
>
> On Sun, Jan 2, 2022 at 9:06 AM Alex Harui <aha...@adobe.com> wrote:
>
> Hi Roman,
>
>
>
> It might be more complicated.  The settings are probably doing something
> since you reported that the error occurred in the app vs the module
> depending on the settings.
>
>
>
> I went back and looked at the original module example in
> examples/royale/ModuleExample and was surprised there weren’t more compiler
> settings.  I thought we’d found a way to externalize the main app’s code
> for the module.  Because if both the app and module have a copy of
> SimpleCSSValuesImpl or any other class that both JS files use, there could
> be issues as to which one gets loaded (maybe both) and what export aliases
> are pointing to.  Sounds like changing settings affected whether the
> aliases pointed at module code vs app code.
>
>
>
> I thought we were using similar settings to what we used for SWF where the
> module would not contain a copy of SimpleCSSValuesImpl so it would use the
> one loaded by the main app, but I didn’t see those settings.  We might need
> to make that work because otherwise I think static initializations won’t do
> the right thing.  Or maybe we’ve figured out that it is simpler just to
> write defensive code that doesn’t get broken.  But also, if the module has
> its own copy of code already loaded by the main app, that’s sort of a waste
> of bytes.  Maybe there was a minification issue with not having the module
> link in classes already linked into the main app.  I see an -externs-report
> option in the compiler but the example doesn’t seem to use it.
>
>
>
> You should be able to scan the JS files and see if a class is in both
> module and app and if it is getting renamed.
>
>
>
> I don’t know if I will have time to investigate further.  The currently
> recommended options for modules involving variable maps and property maps
> may need to be abandoned in favor of externs and preventing renames.
>
>
>
> -Alex
>
>
>
>
>
> *From: *Roman Isitua <romanisi...@gmail.com>
> *Reply-To: *"users@royale.apache.org" <users@royale.apache.org>
> *Date: *Saturday, January 1, 2022 at 3:02 AM
> *To: *"users@royale.apache.org" <users@royale.apache.org>
> *Subject: *Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> Alex, thank you for your detailed analysis of the error log.
>
>
>
> I agree with you that the best strategy is to prevent renaming of
> public/exports used by the module. I have tried different options to
> prevent renaming
>
> It appears none of them stops this. From my observation, it appears that
> this default options below
>
>
>
>
> -export-public-symbols=true;-prevent-rename-public-symbols=true;-prevent-rename-public-instance-accessors=true;
>
>
>
> Only seem to affect the main application (main module) but have no effect
> on the other modules even though I ensured they were applied in
> their respective module pom. I came to this conclusion when I decided to
> turn set -prevent-rename-public-symbols=false
>
>
>
> I noticed that I got the same error but this time around in the main
> module.
>
>
>
> Uncaught TypeError: this.rb[(intermediate value).Kd(...)] is not a function
>     at HN.iI.send (FrontEnd.js:970)
>     at nI.EH.Ea (FrontEnd.js:880)
>     at ON.q6 (FrontEnd.js:1815)
>     at TN.L2 (FrontEnd.js:2034)
>     at hF.Xf (FrontEnd.js:2063)
>     at lF.kb (FrontEnd.js:1233)
>     at lF.Vf (FrontEnd.js:1224)
>     at cF.O (FrontEnd.js:659)
>     at cF.M.w (FrontEnd.js:661)
>     at gQ.mA.M (FrontEnd.js:241)
>
>
>
> FrontEnd.js maps to FrontEnd.as in my application and is the entry point
> of the application. This confirms that -prevent-rename-public-symbols=false
> has
>
> an effect on the main module but no effect on other modules even though
> they were applied in the respective module pom's.
>
>
>
> Maybe there are other options I am overlooking.
>
>
>
> On Sat, Jan 1, 2022 at 9:31 AM Alex Harui <aha...@adobe.com> wrote:
>
> In case it helps, the minification (variable renaming) mechanism is
> essentially guaranteed to cause problems in modules.  The Closure Compiler
> basically takes variables, sees if it is worth renaming it, then gives it
> the name ‘a’, then ‘b’, and so-on, (it skips a few letters, IIRC), then
> moves on to ‘aa’, and ‘ab’, etc.  The odds that the compiler will encounter
> the same variables in the same order when compiling an app and one or more
> modules is close to zero.
>
>
>
> I did some work to try to dump the mapping of the renamed variables in the
> main app and use that when compiling the modules.  It was working for a
> while, then some code was added to the framework that started fooling the
> Closure Compiler.  I spent some time trying to fix the Closure Compiler,
> but ran out of time.  Meanwhile, Josh was adding more control over renaming
> so I moved on to other things.
>
>
>
> IMO, the best strategy to take would be to try to control what gets
> renamed.  All public/exports from the app that are used by the module
> should not be renamed.  That will definitely make the app and modules
> bigger, but unless the Closure Compiler folks become interested in
> runtime-loaded modules, it is challenging for the Royale compiler to allow
> aggressive renaming.
>
>
>
> I think what is going on with the exceptions below is that exporting
> doesn’t really prevent renaming.  It only sets up an externally-visible
> alias to a renamed variable.  Especially for static members.  So it isn’t
> sufficient to export public variables, the code within the module must not
> let the Closure Compiler think that the intra-module references can be
> renamed, in this case, from SimpleCSSValuesImpl to QI
>
>
>
> I don’t know the renaming options we’ve added to the Royale Compiler, so I
> don’t know if there is an option to control that.  I think there is a way
> to convince the Closure Compiler to not rename SimpleCSSValuesImpl because
> I’ve seen other class names not get renamed.
>
>
>
> HTH,
>
> -Alex
>
>
>
> *From: *Roman Isitua <romanisi...@gmail.com>
> *Reply-To: *"users@royale.apache.org" <users@royale.apache.org>
> *Date: *Friday, December 31, 2021 at 10:42 AM
> *To: *"users@royale.apache.org" <users@royale.apache.org>
> *Subject: *Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> I have tested on both. The error log is the same.
>
>
>
> I don't understand your second question. Kindly clarify ?
>
>
>
>
>
> I followed strictly the approach used for loading modules here in this
> example.
>
> This is the only method I know for loading modules. If there is another
> method please share.
>
>
>
>
>
>
> https://royale.apache.org/dividing-an-apache-royale-application-with-modules/
> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Froyale.apache.org%2Fdividing-an-apache-royale-application-with-modules%2F&data=04%7C01%7Caharui%40adobe.com%7Ce6e97a72825c47f3cb7408d9cf5dc8e8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637768823995426307%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=%2FPFnXurq9b33O%2FKKK97kgWf7BIyw36bCqDifUwta%2Bto%3D&reserved=0>
>
>
>
> On Fri, 31 Dec 2021, 19:14 Maria Jose Esteve, <mjest...@iest.com> wrote:
>
> @Roman, which branch did you compile the SDK from, ROYALE_INTERFACE_INFO
> or develop?
>
> Could you pass the Overview.mxml view to the main application? (to rule
> it out)
>
>
>
> Hiedra
>
>
>
> *De:* Roman Isitua <romanisi...@gmail.com>
> *Enviado el:* viernes, 31 de diciembre de 2021 17:56
> *Para:* users@royale.apache.org
> *Asunto:* Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> I have tried tracing where the errors are happening whenever I test the
> release version
>
> Uncaught TypeError: Ql.valuesImpl.init is not a function
>     at Hr.Cr.um (Overview.js:846)
>     at Function.ep.generateMXMLProperties (Overview.js:795)
>     at Hr.Sp.generateMXMLAttributes (Overview.js:599)
>     at new Hr (Overview.js:864)
>     at PN.M.loadHandler (FrontEnd.js:2042)
> 9Overview.js:173 Uncaught TypeError: this.createElement is not a function
>     at $B.V (Overview.js:173)
>     at new $B (FrontEnd.js:2430)
>     at EP.convert (FrontEnd.js:2430)
>     at Zy (FrontEnd.js:261)
>     at HTMLAnchorElement.Uy (FrontEnd.js:121)
>     at HTMLAnchorElement.Sy.b (FrontEnd.js:117)
>
>
>
>
>
> The highlighted code in red is declared as follows in the Overview.mxml
> (maven module)
>
>
>
> <j:valuesImpl>
>
>         <js:SimpleCSSValuesImpl/>
>
>     </j:valuesImpl>
>
>
>
> The j:valuesImpl points to the following code in jewel Module.js
>
>
>
> /**
>  * @nocollapse
>  * @export
>  * @type {org.apache.royale.core.IValuesImpl}
>  */
> org.apache.royale.jewel.Module.prototype.valuesImpl;
>
>
> org.apache.royale.jewel.Module.prototype.set__valuesImpl = function(value)
> {
>   org.apache.royale.core.ValuesManager.valuesImpl.init(this);
> };
>
>
>
>
>
> it appears this function is improperly renamed and whenever the app tries
> to load the module is not able to recognise it as a function.
>
>
>
> The same issue of improper function renaming is happening in the second
> error as well
>
>
>
> 9Overview.js:173 Uncaught TypeError: this.createElement is not a function
>
>
>
>
>
> On Thu, Dec 30, 2021 at 10:42 PM Roman Isitua <romanisi...@gmail.com>
> wrote:
>
>
>
> I have applied the js compiler option as follows
>
>
>
>
> <additionalCompilerOptions>-source-map=false;-compiler.show-binding-warnings=false;-js-default-initializers=true;-js-dynamic-access-unknown-members=true;
>             -js-compiler-option=--variable_map_output_file
> gccvars.txt;-js-compiler-option+=--property_map_output_file gccprops.txt
>           </additionalCompilerOptions>
>
>
>
>
>
> I get the same error as before when attempting to launch the jewel module.
>
>
>
> *Error! Filename not specified.*
>
>
>
>
>
> Same error trace.
>
>
>
> Uncaught TypeError: cm.valuesImpl.init is not a function
>     at Rr.Mr.yl (Overview.js:786)
>     at Function.iq.generateMXMLProperties (Overview.js:736)
>     at Rr.hq.generateMXMLAttributes (Overview.js:546)
>     at new Rr (Overview.js:804)
>     at LN.J.loadHandler (FrontEnd.js:1967)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
>     at oM.J.handleMouseOut (FrontEnd.js:1640)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:248)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
>     at oM.J.handleMouseOver (FrontEnd.js:1640)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:248)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
>     at oM.J.handleMouseOut (FrontEnd.js:1640)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:248)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
>     at oM.J.handleMouseOver (FrontEnd.js:1640)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:248)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
>     at oM.J.handleMouseOut (FrontEnd.js:1640)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:248)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
>     at oM.J.handleMouseOver (FrontEnd.js:1640)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:248)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1640 Uncaught TypeError: M is not a function
>     at oM.J.handleMouseOut (FrontEnd.js:1640)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:248)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> 3Overview.js:56 Uncaught TypeError: Cannot read properties of undefined
> (reading 'prototype')
>     at P (Overview.js:56)
>     at SG.convert (FrontEnd.js:904)
>     at ny (FrontEnd.js:248)
>     at HTMLElement.iy (FrontEnd.js:125)
>     at HTMLElement.b (FrontEnd.js:121)
>
>
>
> On Thu, Dec 30, 2021 at 6:56 PM Harbs <harbs.li...@gmail.com> wrote:
>
> 1. I’d get rid of the agressive minification options. It will likely cause
> issues. If you get it to work without those options, you can try to add
> them back in and see if it still works.
>
> 2. You seem to be missing the compiler options explained here:
> https://apache.github.io/royale-docs/features/modules#minification
> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapache.github.io%2Froyale-docs%2Ffeatures%2Fmodules%23minification&data=04%7C01%7Caharui%40adobe.com%7Ce6e97a72825c47f3cb7408d9cf5dc8e8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637768823995426307%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=mJ8hkJKoDX34n8LC3dpENGqf8KObR%2Bn1Gpm1LtBcFeU%3D&reserved=0>
>
>
>
> For a pom, it would look something like this (adjust your paths to match
> your setup):
>
>
>
> Main app:
>
> <additionalCompilerOptions>-source-map=true;-js-compiler-option=--variable_map_output_file
> gccvars.txt;-js-compiler-option+=--property_map_output_file
> gccprops.txt</additionalCompilerOptions>
>
>
>
> Module:
>
> <additionalCompilerOptions>-source-map=true;-js-compiler-option=--variable_map_input_file
> ../../../../../MainApp/bin/js-release/gccvars.txt;-js-compiler-option+=--property_map_input_file
> ../../../../../MainApp/bin/js-release/gccprops.txt</additionalCompilerOptions>
>
>
>
> On Dec 30, 2021, at 7:43 PM, Roman Isitua <romanisi...@gmail.com> wrote:
>
>
>
> I think it will be better for me to share my pom's that way you can see
> all the compilation options used.  The pom for the parent (FmClient2), the
> MainApp and one module (Overview) have been attached to this email.
>
>
>
>
>
> On Thu, Dec 30, 2021 at 6:22 PM Harbs <harbs.li...@gmail.com> wrote:
>
> Roman, can you share your full compiler options?
>
>
>
> I decided to remove the below settings completely
> -export-public-symbols=false
> -prevent-rename-protected-symbols=false
> -prevent-rename-public-symbols=false
> -prevent-rename-internal-symbols=false
>
>
> I enabled the below settings
>
> -js-dynamic-access-unknown-members=true;
> -js-default-initializers=true
>
>
> The release version starts up
>
>
>
> Hiedra, that’s great!
>
>
>
> On Dec 30, 2021, at 7:15 PM, Roman Isitua <romanisi...@gmail.com> wrote:
>
>
>
>
>
> Yes. I am testing with the sdk compiled on branch ROYALE_INTERFACE_INFO
>
>
>
> On Thu, Dec 30, 2021 at 6:10 PM Maria Jose Esteve <mjest...@iest.com>
> wrote:
>
> Roman, are you testing with the SDK compiled from the Harb branches,
> ROYALE_INTERFACE_INFO, or from develop?
>
>
>
> Hiedra
>
>
>
> *De:* Roman Isitua <romanisi...@gmail.com>
> *Enviado el:* jueves, 30 de diciembre de 2021 16:52
> *Para:* users@royale.apache.org
> *Asunto:* Re: Compiling Modules (was Re: Load time is very slow)
>
>
>
> I decided to remove the below settings completely
> -export-public-symbols=false
> -prevent-rename-protected-symbols=false
> -prevent-rename-public-symbols=false
> -prevent-rename-internal-symbols=false
>
>
> I enabled the below settings
>
> -js-dynamic-access-unknown-members=true;
> -js-default-initializers=true
>
>
> The release version starts up
>
>
>
>
>
>
>
> <image001.png>
>
>
>
>
>
> <image002.png>
>
>
>
> However, the moment I launch a module. I get the below error
>
>
>
> <image003.png>
>
>
>
>
>
> It appears to be failing when I launch the "*Overview*" module
> (by clicking the Overview side menu).
>
>
>
> So my current observation is that by retaining only two settings
>
>
>
> -js-dynamic-access-unknown-members=true;
> -js-default-initializers=true
>
>
>
> The release module starts up but the app fails whenever I launch a module.
>
>
>
> The smallest size settings in the documentation do not work. The app does
> not start up.
>
>
>
> -export-public-symbols=false
> -prevent-rename-protected-symbols=false
> -prevent-rename-public-symbols=false
> -prevent-rename-internal-symbols=false
>
>
>
>
>
>
>
> The error trace is below
>
>
>
>
>
> Uncaught TypeError: cm.valuesImpl.init is not a function
>     at Wr.Rr.pl
> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwr.rr.pl%2F&data=04%7C01%7Caharui%40adobe.com%7Ce6e97a72825c47f3cb7408d9cf5dc8e8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637768823995426307%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=LiGI53vuAFViSnH7BzWC8CjfC%2ByEivVwhCNHGkXecK0%3D&reserved=0>
> (Overview.js:792)
>     at Function.mq.generateMXMLProperties (Overview.js:743)
>     at Wr.lq.generateMXMLAttributes (Overview.js:551)
>     at new Wr (Overview.js:810)
>     at QN.J.loadHandler (FrontEnd.js:1978)
> 3Overview.js:56 Uncaught TypeError: Cannot read properties of undefined
> (reading 'prototype')
>     at P (Overview.js:56)
>     at VG.convert (FrontEnd.js:910)
>     at ny (FrontEnd.js:250)
>     at HTMLElement.iy (FrontEnd.js:125)
>     at HTMLElement.b (FrontEnd.js:121)
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOut (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOver (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOver @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOut (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOut @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOver (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOver @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOut (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOut @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOver (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOver @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOut (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOut @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOver (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOver @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
> FrontEnd.js:1649 Uncaught TypeError: M is not a function
>     at sM.J.handleMouseOut (FrontEnd.js:1649)
>     at Function.ny [as googFireListener] (FrontEnd.js:123)
>     at ny (FrontEnd.js:250)
>     at HTMLAnchorElement.iy (FrontEnd.js:125)
>     at HTMLAnchorElement.b (FrontEnd.js:121)
> J.handleMouseOut @ FrontEnd.js:1649
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:250
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
>
>
>
> On Thu, Dec 30, 2021 at 4:32 PM Roman Isitua <romanisi...@gmail.com>
> wrote:
>
> I get the same error even when I set
> the -js-dynamic-access-unknown-members=true;
>
>
>
> On Thu, Dec 30, 2021 at 4:24 PM Roman Isitua <romanisi...@gmail.com>
> wrote:
>
>
>
> Using the below settings,
>
> -export-public-symbols=false
> -prevent-rename-protected-symbols=false
> -prevent-rename-public-symbols=false
> -prevent-rename-internal-symbols=false
> -js-dynamic-access-unknown-members=false;
>
> -js-default-initializers=true
>
>
> Debug version runs fine. The release version does not start up
>
> <image004.png>
>
>
> I get the below errors
>
> Uncaught TypeError: Cannot read properties of undefined (reading 'apply')
>     at KE.hm (FrontEnd.js:1600)
>     at XE.M.Fb (FrontEnd.js:943)
>     at XE.M.uh (FrontEnd.js:937)
>     at FE.M.na
> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Ffe.m.na%2F&data=04%7C01%7Caharui%40adobe.com%7Ce6e97a72825c47f3cb7408d9cf5dc8e8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637768823995426307%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=tcMMByIOq69n4rop77jZJxdxDsEStDOp%2FcSfu%2BCqpKc%3D&reserved=0>
> (FrontEnd.js:497)
>     at FE.M.v (FrontEnd.js:497)
>     at dR.M.S (FrontEnd.js:213)
>     at dR.Nz.S (FrontEnd.js:217)
>     at dR.M.start (FrontEnd.js:1396)
>     at index.html:45
> :8080/favicon.ico:1 Failed to load resource: the server responded with a
> status of 404 (Not Found)
>
>
>
>
>
> FrontEnd.js is the start up class for the application. i.e. It implements
> the Jewel application class.
>
>
>
>
>
>
>
> On Thu, Dec 30, 2021 at 3:19 PM Roman Isitua <romanisi...@gmail.com>
> wrote:
>
> Hi Harb,
>
>
>
> Thanks for your response. I have gone through the documentation. I will do
> my test again starting with the smallest size option and share my findings.
>
>
>
> Regards,
>
>
>
> On Thu, Dec 30, 2021 at 10:59 AM Harbs <harbs.li...@gmail.com> wrote:
>
> Sorry for my deal in responding.
>
>
>
> Let’s take a step back.
>
>
>
> I’m not sure how you are compiling your modules. I just added some content
> to the module documentation page which explains what compiler options you
> need while compiling modules. (It still needs some editing.)
> https://apache.github.io/royale-docs/features/modules#minification
> <https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapache.github.io%2Froyale-docs%2Ffeatures%2Fmodules%23minification&data=04%7C01%7Caharui%40adobe.com%7Ce6e97a72825c47f3cb7408d9cf5dc8e8%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C637768823995426307%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=mJ8hkJKoDX34n8LC3dpENGqf8KObR%2Bn1Gpm1LtBcFeU%3D&reserved=0>
>
>
>
> Are you using those options?
>
>
>
> On Dec 29, 2021, at 2:19 AM, Maria Jose Esteve <mjest...@iest.com> wrote:
>
>
>
> Hi, Let me join you with these tests....
>
>
>
> @Harb, I have compiled the SDK from this branch, 
> feature/ROYALE_INTERFACE_INFO,
>  and when running in debug I get this error:
>
>
>
> Message on the PURGE CONSOLE is displayed:
>
>
>
> Cannot convert  org.apache.royale.reflection.beads.ClassAliasBead  to IBead
>
>
>
> Message in the IDE Window:
>
>
>
> Se produjo una excepción: TypeError: Cannot convert [object Object] to
> IBead
>
>   at App.org.apache.royale.core.ElementWrapper.addBead (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/core/ElementWrapper.js:114:11
> )
>
>     at App.org.apache.royale.core.HTMLElementWrapper.addBead (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/core/HTMLElementWrapper.js:43:65
> )
>
>     at App.org.apache.royale.jewel.Application.start (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/jewel/Application.js:246:10
> )
>
>     at App.App_loadXML (http://localhost:8080/WNetSuitePlus/App.js:1681:25
> )
>
>     at
> org.apache.royale.net.URLLoader.org.apache.royale.events.EventDispatcher.fireListeners
> (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/events/EventDispatcher.js:97:23
> )
>
>     at Function.goog.events.EventTarget.dispatchEventInternal_ (
> http://localhost:8080/WNetSuitePlus/library/closure/goog/events/eventtarget.js:381:26
> )
>
>     at
> org.apache.royale.net.URLLoader.org.apache.royale.events.EventDispatcher.dispatchEvent
> (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/events/EventDispatcher.js:72:37
> )
>
>     at org.apache.royale.net.URLLoader.jsEventHandler (
> http://localhost:8080/WNetSuitePlus/org/apache/royale/net/URLLoader.js:169:12
> )
>
>
>
> Call stack:
>
>
>
> <image003.png>
>
>
>
> [INFO] Executing MXMLC in tool group Royale with args: [
>
>
> -load-config=D:\Develop_Royale\Projects\WinPlusWebSuite\royaleapp\royalelogin\target\compile-app-config.xml,
>
> -js-default-initializers=true,
>
> -source-map=true,
>
> -js-dynamic-access-unknown-members=true,
>
>
> -keep-as3-metadata+=Inject,Dispatcher,EventHandler,Event,PostConstruct,PreDestroy,ViewAdded,ViewRemoved,Bindable,Transient,
>
> -keep-code-with-metadata=Inject,
>
> -show-binding-warnings=false,
>
> -export-public-symbols=false,
>
> -prevent-rename-protected-symbols=false,
>
> -prevent-rename-internal-symbols=false,
>
>
> -js-output=D:\Develop_Royale\Projects\WinPlusWebSuite\royaleapp\royalelogin\target\javascript,
>
> -compiler.targets=JSRoyale,
>
>
> D:\Develop_Royale\Projects\WinPlusWebSuite\royaleapp\royalelogin\src\main\royale\App.mxml
>
>
>
>
>
> The release execution does not change, the error is the same as before
> (SDK compilation from the develop branch):
>
>
>
> Se produjo una excepción: ReferenceError: Error #1065: Variable
> com.iest.winplusweb.models.MasterConfigSystemModel is not defined.
>
>   at yR (http://localhost:8080/WPWebRelease/App.js:3605:1771)
>
>     at Mya (http://localhost:8080/WPWebRelease/App.js:3343:365)
>
>     at AR.J.usa (http://localhost:8080/WPWebRelease/App.js:434:441)
>
>     at GFa.J.fromTypeDefinition (
> http://localhost:8080/WPWebRelease/App.js:5706:139)
>
>     at Function.YT.getTypeDescriptor (
> http://localhost:8080/WPWebRelease/App.js:4570:820)
>
>     at Function.fX.constructBean (
> http://localhost:8080/WPWebRelease/App.js:2336:472)
>
>     at r$.J.initialize (http://localhost:8080/WPWebRelease/App.js:5041:66)
>
>     at OW.J.init (http://localhost:8080/WPWebRelease/App.js:950:452)
>
>     at OW.J.u (http://localhost:8080/WPWebRelease/App.js:951:454)
>
>     at $$.J.addBead (http://localhost:8080/WPWebRelease/App.js:357:549)
>
>
>
> The main difference:
>
> project compiled from "SDK-develop" runs fine in js-debug and gives error
> in js-release and, compiled from "SDK-ROYALE_INTERFACE_INFO" does not
> launch because of conversion error.
>
>
>
> Hiedra
>
>
>
> *De:* Roman Isitua <romanisi...@gmail.com>
> *Enviado el:* martes, 28 de diciembre de 2021 15:55
> *Para:* users@royale.apache.org
> *Asunto:* Re: Load time is very slow
>
>
>
> @Harb
>
>
>
> I have checked out the feature/ROYALE_INTERFACE_INFO branch and compiled
> asjs and compiler. I have rebuilt my application with modules in release
> mode.
>
>
>
> I get the following error when I attempt to launch a module
>
>
>
>
>
> <image001.png>
>
>
>
>
>
> The module loads fine in debug mode
>
>
>
> <image002.png>
>
>
>
>
>
> Snippets of the log
>
>
>
> Overview.js:786 Uncaught TypeError: cm.valuesImpl.init is not a function
>     at Rr.Mr.yl (Overview.js:786)
>     at Function.iq.generateMXMLProperties (Overview.js:736)
>     at Rr.hq.generateMXMLAttributes (Overview.js:546)
>     at new Rr (Overview.js:804)
>     at LN.J.loadHandler (FrontEnd.js:1967)
> Mr.yl @ Overview.js:786
> iq.generateMXMLProperties @ Overview.js:736
> hq.generateMXMLAttributes @ Overview.js:546
> Rr @ Overview.js:804
> J.loadHandler @ FrontEnd.js:1967
> load (async)
> LN.loadModule @ FrontEnd.js:1965
> dN.loadModule @ FrontEnd.js:2406
> LD.Un @ FrontEnd.js:1809
> ny @ FrontEnd.js:123
> ny @ FrontEnd.js:248
> iy @ FrontEnd.js:125
> b @ FrontEnd.js:121
>
>
>
>
>
> I have attached the full log to this email.
>
>
>
>
>
>
>
>
>
> On Tue, Dec 28, 2021 at 2:51 PM Roman Isitua <romanisi...@gmail.com>
> wrote:
>
> Hi Maria,
>
>
>
> Prior to starting this mail discussion "Load time is very slow". I can
> confirm I have only been compiling in debug mode. My target\javascript\bin\
> only had js-debug. It was after I upgraded my royale sdk from 0.9.7 to
> 0.9.8 that I compiled in release mode.
>
>
>
>
>
>
>
> On Tue, Dec 28, 2021 at 2:24 PM Maria Jose Esteve <mjest...@iest.com>
> wrote:
>
> Hi, @Roman, I think you are doing a double compile can it be? My times are
> the same as yours and I always compile in debug and release.
>
>
>
> Look at your target folder " target\javascript\bin\" and if you have two
> folders: js-debug and js-release you are compiling always double.
>
>
>
> In my case, the architecture of my project as well as the Maven
> compilation files (pom.xml) were provided by an external company (we didn't
> know anything about Maven or Royale at that time) and I understand that
> this formula was chosen to show us the options we had.
>
>
>
> A priori and without doing any test as Harb has done, I think that
> modularity gives us the advantage of compiling parts of the code once and
> not compiling them again if they are not modified. So far WITH MY
> COMPILATION TIMES, sometimes more than 1 minute, this is fundamental. But
> of course, now we have the problem of minification of the modules and it is
> really a serious problem because it is impossible for us to deploy in
> production.
>
>
>
> I will try to separate the compiación realese with a profile and if I
> succeed I will pass it to you @Roman.
>
>
>
> @Harb what do you mean by compiling the ROYALE_INTERFACE_INFO branch?
>
>
>
> Hiedra
>
>
>
> *De:* Harbs <harbs.li...@gmail.com>
> *Enviado el:* lunes, 27 de diciembre de 2021 18:32
> *Para:* users@royale.apache.org
> *Asunto:* Re: Load time is very slow
>
>
>
> That doesn’t sound right.
>
>
>
> Are you sure you’re compiling debug and not release? That sounds like
> release build times.
>
>
>
> On Dec 27, 2021, at 3:31 PM, Roman Isitua <romanisi...@gmail.com> wrote:
>
>
>
>  Wow ! You are using a workstation with a bleeding edge processor.
>
>
>
>  I just compiled my app now. It took 44 seconds. (First compilation after
> ide start up.) Subsequently compilations are usually 19s to 20s.
>
>
>
>  My application code base is very very small compared to yours.  As we
> continue to add functionality, I expect the compile times to rise.
>
>
>
>
>
>
>
>
>
> <MainApp_pom.xml><Overview_pom.xml><fm_client2_pom.xml>
>
>
>
>

Reply via email to