You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@royale.apache.org by Greg Dove <gr...@gmail.com> on 2020/10/13 19:21:08 UTC

Re: Module users - question

Just for future reference, I found this information which appears to be a
different workflow (compared to Flex modules) for GCC:

https://stackoverflow.com/questions/10395810/how-do-i-split-my-javascript-into-modules-using-googles-closure-compiler
https://www.syntaxsuccess.com/viewarticle/lazy-loading-with-the-closure-compiler

This seems to offer a possible way to compile everything into the main
application and then split parts of that out into something like what we
thought of as modules in Flex world. The workflow for Flex was more to
compile the application and use compiler outputs from that to 'configure'
separate compilations for module builds (by excluding classes already
included in main app).

Just adding this for now, it may be helpful for someone







On Mon, Sep 28, 2020 at 8:49 AM Carlos Rovira <ca...@apache.org>
wrote:

> Hi Greg,
>
> thanks for the info. very useful.
>
> I think in Flex we use to:
>
> 1.- export libraries as RSL (Resource Shared Libraries). Maybe you remember
> the *.swz (Maybe that extension is not accurate since I'm talking from
> memory). That library was used to export framework libraries and also user
> libraries that need to be reused cross modules.
> 2.- I think  in modules we just linked the external swcs as "external", so
> the swc definitions was used to compile the module, but never added to the
> module (SWF).
>
> So at runtime, the app was loading all RSLs, and using classes in that main
> SWF. Then as the user was loading a Module, the module was using the
> definitions already loaded in RSLs.
>
> So I think this will be the same, but with the difference that we currently
> do not have "ApplicationDomain" right?
>
>
> El dom., 27 sept. 2020 a las 21:06, Greg Dove (<gr...@gmail.com>)
> escribió:
>
> > Hi Chris, Carlos,  I understand that Crux is working in debug mode, but I
> > am also working with others to port an app with modules, so that is
> 'front
> > and centre' in my thinking as well. That app will use Robotlegs, so I
> > expect issues could be similar.
> >
> > Things I have tried:
> >
> > (a) without using link-reports, but with using
> variable-map/properties-map
> > outbound/inbound
> >
> > classes are being redefined in the module js, but only exported in the
> app
> > js.
> > This means there are two copies of classes. The same renaming is being
> used
> > in the module as the main app (so org.apache.royale.utils.Language might
> be
> > renamed as 'P' in the main app, it is redefined as a new 'P' in the
> module,
> > but only exported as 'org.apache.royale.utils.Language' in the main app).
> >
> > Apart from module code being much larger than it needs to be, this breaks
> > 'x is Y' or 'x as Y' language checks for instances defined in the app
> > before the module code is run. It also means that reflection accesses the
> > old ('exported') class definition with getDefinitionByName (for example)
> > and not the new one. And it means that event bubbling can be messed up
> > because the check for the parent being an EventDispatcher doesn't work
> > (because EventDispatcher has been redefined since the original that was
> > used in the main app, and bubbling works by checking if 'parent is
> > EventDispatcher')
> >
> > Another issue is that dead-code elimination can mean something is omitted
> > in one of these definitions and not in the other.
> >
> > What I don't know is whether
> > -I am doing something wrong
> > -There is some sort of regression
> > -this is not new, but has not been observed as an issue under the
> specific
> > use cases in the past
> >
> > (b)  I was able to compile and build using link-report-js.xml. I was
> hoping
> > this would fix things, but it did not
> >
> > (c) I tried switching gcc to SIMPLE_OPTIMIZATIONS but that also did not
> fix
> > the problem
> >
> > (d) tried combination of (b) and (c)
> >
> > Anyway, I can't spend more time on this until next weekend, but I just
> > wanted to check for consensus on the status of modules.
> >
> >
> >
> > On Mon, Sep 28, 2020 at 3:49 AM Carlos Rovira <ca...@apache.org>
> > wrote:
> >
> > > Hi,
> > >
> > > crux app with lots of crux modules are the final objective. So getting
> > that
> > > to work right is essential for Royale and for a 1.0 version (IMHO).
> > >
> > > El dom., 27 sept. 2020 a las 13:03, Christofer Dutz (<
> > > christofer.dutz@c-ware.de>) escribió:
> > >
> > > > Hi Greg,
> > > >
> > > > For the sake of completeness (I know you know that I try to do all
> > sorts
> > > > of "crazy" stuff ;-) )
> > > > In my application I make extensive use of modules. Every module on
> the
> > > > server-side has a set of up to 3 frontend modules (Main,
> User-Settings,
> > > > System-Settings)
> > > > Depending on the logged in users permissions the main loader
> > application
> > > > loads all of the modules the user is allowed to use.
> > > >
> > > > Inside each module I create a Crux context, which becomes a child
> > > context,
> > > > accessing services of the main loader application.
> > > >
> > > > Chris
> > > >
> > > >
> > > > Am 27.09.20, 07:02 schrieb "Greg Dove" <gr...@gmail.com>:
> > > >
> > > >     I'd be keen to hear others who are using/have used modules in
> > Royale.
> > > >
> > > >     Outside of very simple examples I see issues with release builds.
> > > >
> > > >     For those that use them (with success) what build settings have
> you
> > > > used?
> > > >
> > > >     In particular:
> > > >     -are you using link-report as output from the application and
> input
> > > to
> > > > the
> > > >     modules, as was the case in Flex?
> > > >     -are you switching off any ADVANCED_OPTIMIZATIONS in GCC to get
> > > > modules to
> > > >     work?
> > > >
> > > >     thanks,
> > > >     Greg
> > > >
> > > >
> > >
> > > --
> > > Carlos Rovira
> > > http://about.me/carlosrovira
> > >
> >
>
>
> --
> Carlos Rovira
> http://about.me/carlosrovira
>

Re: Module users - question

Posted by Carlos Rovira <ca...@apache.org>.
Very interesting Greg,
I think we need to go over this to have real module support.
Anyone that could take care of this?
Thanks

El mar., 13 oct. 2020 a las 21:21, Greg Dove (<gr...@gmail.com>)
escribió:

> Just for future reference, I found this information which appears to be a
> different workflow (compared to Flex modules) for GCC:
>
>
> https://stackoverflow.com/questions/10395810/how-do-i-split-my-javascript-into-modules-using-googles-closure-compiler
>
> https://www.syntaxsuccess.com/viewarticle/lazy-loading-with-the-closure-compiler
>
> This seems to offer a possible way to compile everything into the main
> application and then split parts of that out into something like what we
> thought of as modules in Flex world. The workflow for Flex was more to
> compile the application and use compiler outputs from that to 'configure'
> separate compilations for module builds (by excluding classes already
> included in main app).
>
> Just adding this for now, it may be helpful for someone
>
>
>
>
>
>
>
> On Mon, Sep 28, 2020 at 8:49 AM Carlos Rovira <ca...@apache.org>
> wrote:
>
> > Hi Greg,
> >
> > thanks for the info. very useful.
> >
> > I think in Flex we use to:
> >
> > 1.- export libraries as RSL (Resource Shared Libraries). Maybe you
> remember
> > the *.swz (Maybe that extension is not accurate since I'm talking from
> > memory). That library was used to export framework libraries and also
> user
> > libraries that need to be reused cross modules.
> > 2.- I think  in modules we just linked the external swcs as "external",
> so
> > the swc definitions was used to compile the module, but never added to
> the
> > module (SWF).
> >
> > So at runtime, the app was loading all RSLs, and using classes in that
> main
> > SWF. Then as the user was loading a Module, the module was using the
> > definitions already loaded in RSLs.
> >
> > So I think this will be the same, but with the difference that we
> currently
> > do not have "ApplicationDomain" right?
> >
> >
> > El dom., 27 sept. 2020 a las 21:06, Greg Dove (<gr...@gmail.com>)
> > escribió:
> >
> > > Hi Chris, Carlos,  I understand that Crux is working in debug mode,
> but I
> > > am also working with others to port an app with modules, so that is
> > 'front
> > > and centre' in my thinking as well. That app will use Robotlegs, so I
> > > expect issues could be similar.
> > >
> > > Things I have tried:
> > >
> > > (a) without using link-reports, but with using
> > variable-map/properties-map
> > > outbound/inbound
> > >
> > > classes are being redefined in the module js, but only exported in the
> > app
> > > js.
> > > This means there are two copies of classes. The same renaming is being
> > used
> > > in the module as the main app (so org.apache.royale.utils.Language
> might
> > be
> > > renamed as 'P' in the main app, it is redefined as a new 'P' in the
> > module,
> > > but only exported as 'org.apache.royale.utils.Language' in the main
> app).
> > >
> > > Apart from module code being much larger than it needs to be, this
> breaks
> > > 'x is Y' or 'x as Y' language checks for instances defined in the app
> > > before the module code is run. It also means that reflection accesses
> the
> > > old ('exported') class definition with getDefinitionByName (for
> example)
> > > and not the new one. And it means that event bubbling can be messed up
> > > because the check for the parent being an EventDispatcher doesn't work
> > > (because EventDispatcher has been redefined since the original that was
> > > used in the main app, and bubbling works by checking if 'parent is
> > > EventDispatcher')
> > >
> > > Another issue is that dead-code elimination can mean something is
> omitted
> > > in one of these definitions and not in the other.
> > >
> > > What I don't know is whether
> > > -I am doing something wrong
> > > -There is some sort of regression
> > > -this is not new, but has not been observed as an issue under the
> > specific
> > > use cases in the past
> > >
> > > (b)  I was able to compile and build using link-report-js.xml. I was
> > hoping
> > > this would fix things, but it did not
> > >
> > > (c) I tried switching gcc to SIMPLE_OPTIMIZATIONS but that also did not
> > fix
> > > the problem
> > >
> > > (d) tried combination of (b) and (c)
> > >
> > > Anyway, I can't spend more time on this until next weekend, but I just
> > > wanted to check for consensus on the status of modules.
> > >
> > >
> > >
> > > On Mon, Sep 28, 2020 at 3:49 AM Carlos Rovira <carlosrovira@apache.org
> >
> > > wrote:
> > >
> > > > Hi,
> > > >
> > > > crux app with lots of crux modules are the final objective. So
> getting
> > > that
> > > > to work right is essential for Royale and for a 1.0 version (IMHO).
> > > >
> > > > El dom., 27 sept. 2020 a las 13:03, Christofer Dutz (<
> > > > christofer.dutz@c-ware.de>) escribió:
> > > >
> > > > > Hi Greg,
> > > > >
> > > > > For the sake of completeness (I know you know that I try to do all
> > > sorts
> > > > > of "crazy" stuff ;-) )
> > > > > In my application I make extensive use of modules. Every module on
> > the
> > > > > server-side has a set of up to 3 frontend modules (Main,
> > User-Settings,
> > > > > System-Settings)
> > > > > Depending on the logged in users permissions the main loader
> > > application
> > > > > loads all of the modules the user is allowed to use.
> > > > >
> > > > > Inside each module I create a Crux context, which becomes a child
> > > > context,
> > > > > accessing services of the main loader application.
> > > > >
> > > > > Chris
> > > > >
> > > > >
> > > > > Am 27.09.20, 07:02 schrieb "Greg Dove" <gr...@gmail.com>:
> > > > >
> > > > >     I'd be keen to hear others who are using/have used modules in
> > > Royale.
> > > > >
> > > > >     Outside of very simple examples I see issues with release
> builds.
> > > > >
> > > > >     For those that use them (with success) what build settings have
> > you
> > > > > used?
> > > > >
> > > > >     In particular:
> > > > >     -are you using link-report as output from the application and
> > input
> > > > to
> > > > > the
> > > > >     modules, as was the case in Flex?
> > > > >     -are you switching off any ADVANCED_OPTIMIZATIONS in GCC to get
> > > > > modules to
> > > > >     work?
> > > > >
> > > > >     thanks,
> > > > >     Greg
> > > > >
> > > > >
> > > >
> > > > --
> > > > Carlos Rovira
> > > > http://about.me/carlosrovira
> > > >
> > >
> >
> >
> > --
> > Carlos Rovira
> > http://about.me/carlosrovira
> >
>


-- 
Carlos Rovira
Apache Member & Apache Royale PMC
*Apache Software Foundation*
http://about.me/carlosrovira