Hi Carlos,

Did you check whether you can run TourDeJewel ? I have build SDK using
Maven and than TourDeJewel and I couldn't run application. I'm getting [1].
When I build HelloWorld and run I got the same.

[1] https://ibb.co/NKjNBMJ

Thanks,
Piotr

wt., 16 lip 2019 o 16:10 Carlos Rovira <[email protected]> napisał(a):

> Hi,
>
> thanks Josh for the update!
> One question about it: should separate the @extern classes in Jewel
> (dialogPollyfill and hljs classes) or with this change now can live in that
> library?
> Just to know it, although for other organizational purposes I think it
> should be probably separated.
>
> @Greg Dove <[email protected]>  just merged locally this changes and
> rebuild Crux branch and seems some changes are needed there when building
> ANT SDK. I probably can't do changes to try to solve this before you reach
> the problem since I'm busy with work things. Just copy here my log so it
> could be of help for you
>
> I suppose is the need to change in this branch from library-path to
> external-library-path
>
>
> compile-swf:
>
>      [echo] Compiling libs/Crux.swc
>
>      [echo] ROYALE_HOME: /Users/carlosrovira/Dev/Royale/Source/royale-asjs
>
>      [echo] ROYALE_SWF_COMPILER_HOME:
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs
>
>      [echo] ROYALE_COMPILER_HOME:
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/js
>
>      [java] args:
>
>      [java]
> +royalelib=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks
>
>      [java] +playerglobal.version=11.1
>
>      [java] +env.AIR_HOME=/Users/carlosrovira/Dev/Air/Sdks/AIR_SDK_25
>
>      [java] -compiler.strict-xml=true
>
>      [java] -compiler.targets=SWF,JSRoyale
>
>      [java] -metadata.date=07/16/19 12:12 +0200
>
>      [java] -metadata.dateFormat=MM/dd/yy HH:mm Z
>
>      [java] -swf-debugfile-alias=/org/apache/royale/0.9.6
>
>      [java]
>
> -output=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/target/Crux.swc
>
>      [java]
>
> -load-config=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/config/compile-swf-config.xml
>
>      [java]
>
> -js-load-config=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js-config.xml
>
>      [java]
>
> -js-load-config+=/Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/../../js/projects/CruxJS/src/main/config/compile-js-config.xml
>
>      [java] target:SWF
>
>      [java] target:JSRoyale
>
>      [java] COMPC
>
>      [java] Loading configuration:
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/config/compile-swf-config.xml
>
>      [java]
>
>      [java] 128421 bytes written to
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/target/Crux.swc
> in 3,234 seconds
>
>      [java] COMPCJSCRoyale
>
>      [java] 6.474858102 seconds
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XMLList depended on by mx.messaging.config.ServerConfig in
> the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XML depended on by mx.messaging.config.ServerConfig in the
> SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XML depended on by mx.messaging.channels.PollingChannel in
> the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition QName depended on by mx.utils.ObjectUtil in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XMLList depended on by mx.utils.ObjectUtil in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XML depended on by mx.utils.ObjectUtil in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XMLList depended on by mx.messaging.Channel in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XML depended on by mx.messaging.Channel in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XML depended on by mx.messaging.channels.AMFChannel in the
> SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> The definition XMLList depended on by mx.utils.UIDUtil in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/MXRoyaleJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
> The definition org.apache.royale.utils.Language depended on by
> org.apache.royale.reflection.nativejs.AS3Vector in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
> The definition org.apache.royale.utils.Language depended on by
> org.apache.royale.reflection.describeType in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
> The definition org.apache.royale.utils.Language depended on by
> org.apache.royale.reflection.getQualifiedClassName in the SWC
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/js/libs/ReflectionJS.swc
> could not be found
>
>      [java]
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/EventHandlerProcessor.as(23):
> col: 10 Definition org.apache.royale.utils.Language could not be found.
>
>      [java]
>
>      [java] import org.apache.royale.utils.Language;
>
>      [java]        ^
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/EventHandlerProcessor.as(106):
> col: 16 Access of possibly undefined property Language.
>
>      [java]
>
>      [java] method = Language.closure(method, bean.source,
> eventHandlerTag.host.name);
>
>      [java]          ^
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/EventHandlerProcessor.as(127):
> col: 15 Access of possibly undefined property Language.
>
>      [java]
>
>      [java] method = Language.closure(method, bean.source,
> eventHandlerTag.host.name);
>
>      [java]          ^
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/InjectProcessor.as(123):
> col: 61 Access of possibly undefined property QName.
>
>      [java]
>
>      [java] var bind:Boolean = injectTag.bind && !( destPropName is QName
> );
>
>      [java]                                                         ^
>
>      [java]
>
>      [java]
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/src/main/royale/org/apache/royale/crux/processors/InjectProcessor.as(137):
> col: 26 Access of possibly undefined property QName.
>
>      [java]
>
>      [java] if( destPropName is QName && injectTag.bind == true )
>
>      [java]                     ^
>
>      [java]
>
>      [java] Java Result: 3
>
>
> BUILD FAILED
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/build.xml:652: The
> following error occurred while executing this line:
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/build.xml:143:
> The following error occurred while executing this line:
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/build.xml:370:
> The following error occurred while executing this line:
>
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/build.xml:85:
> The following error occurred while executing this line:
>
>
> /Users/carlosrovira/Dev/Royale/Source/royale-asjs/frameworks/projects/Crux/build.xml:111:
> condition satisfied
>
>
> Total time: 12 minutes 8 seconds
>
> Error:Build stopped - build SDK with ANT
>
>
> Thanks!
>
> Carlos
>
>
>
>
> El mar., 16 jul. 2019 a las 0:20, Josh Tynjala (<[email protected]
> >)
> escribió:
>
> > The Maven royale-compiler build is fixed now. :)
> >
> > --
> > Josh Tynjala
> > Bowler Hat LLC <https://bowlerhat.dev>
> >
> >
> > On Mon, Jul 15, 2019 at 1:19 PM Josh Tynjala <[email protected]>
> > wrote:
> >
> > > FYI: Found an issue building royale-compiler with Maven. Working on the
> > > fix.
> > >
> > > --
> > > Josh Tynjala
> > > Bowler Hat LLC <https://bowlerhat.dev>
> > >
> > >
> > > On Mon, Jul 15, 2019 at 12:32 PM Josh Tynjala <
> [email protected]
> > >
> > > wrote:
> > >
> > >> Hey folks,
> > >>
> > >> I just pushed some commits to royale-compiler and royale-asjs, and I
> > >> wanted to add a little explanation, and some possible troubleshooting
> > >> advice if anything seems to have broken in your apps.
> > >>
> > >> My work over the last week has been to fix an issue related to
> > specifying
> > >> dependencies when compiling libraries for JS. As you probably know,
> the
> > >> compiler supports two options for adding libraries as dependencies,
> > >> library-path and external-library-path. The library-path compiler
> option
> > >> basically says "include all classes that I use from this SWC in the
> > final
> > >> output". It's typically what you use when compiling an app that uses a
> > >> library. The external-library-path compiler option basically says "if
> I
> > use
> > >> anything from this SWC, check that I'm using the types correctly, but
> > don't
> > >> include any of classes from this SWC in the final output".
> > >>
> > >> If you're compiling an app, you typically use library-path for
> > >> everything. You use external-library-path only for dependencies like
> > >> playerglobal.swc/airglobal.swc in Flash or typedef SWCs in JS.
> > Basically,
> > >> for an app project, external-library-path is for classes that are
> > provided
> > >> natively by the Flash runtime or a web browser, like Chrome or
> Firefox.
> > >>
> > >> When compiling libraries, external-library-path is also used to
> prevent
> > >> the compiler from creating a "fat" library that stuffs in all of the
> > >> dependencies. Let's say that you have a library, A.swc. It provides
> some
> > >> core functionality that is needed by both B.swc and C.swc. When we
> > compile
> > >> B.swc and C.swc, we don't want the classes from A.swc duplicated in
> > both of
> > >> them. So we add A.swc to the external-library-path when compiling
> B.swc
> > or
> > >> C.swc. Then, if you use those SWCs when compiling an app, you need to
> > add
> > >> A.swc, B.swc, and C.swc to the library-path.
> > >>
> > >> To put that in Royale terms, A.swc is something like LanguageJS.swc or
> > >> CoreJS.swc. They're some of our lowest-level SWCs in the framework.
> > B.swc
> > >> and C.swc are more like BasicJS.swc or JewelJS.swc, and they tend to
> > share
> > >> multiple classes from the lower-level stuff.
> > >>
> > >> Up until now, library-path and external-library-path were a little
> > quirky
> > >> when compiling to JS. It was related to the goog.provide() and
> > >> goog.require() calls that you might have seen in the generated JS.
> These
> > >> are from the module system that we use in Royale. The compiler didn't
> > know
> > >> how to differentiate between classes that had goog.provide() and
> classes
> > >> that were typedefs for JS libraries. It treated everything on the
> > >> external-library-path as a typedef, and this led to missing
> > goog.require()
> > >> calls in the generated JS. To work around this, when we specified
> > >> dependencies in our framework SWCs, we used library-path to ensure
> that
> > >> goog.require() would be used.
> > >>
> > >> This workaround of using library-path led to "fat" SWCs that contained
> > >> all of their dependencies. Low-level classes in SWCs like CoreJS were
> > >> duplicated in higher-level SWCs. This led to the compiler getting
> > confused
> > >> about exactly where a class was defined.
> > >>
> > >> This has resulted in some minor issues here and there, but nothing too
> > >> major until recently. However, Harbs noticed the other day that it
> > caused
> > >> the compiler to copy extra default CSS into apps from SWCs that you
> may
> > not
> > >> have been using. So, you might build an app with the Basic components,
> > but
> > >> you'd get extra CSS from Jewel or MaterialDesignLite. This could mess
> up
> > >> your app's styling pretty dramatically.
> > >>
> > >> I updated the compiler to better detect when a class needs
> > goog.require()
> > >> and when it's a typedef. If that class comes from a SWC, the compiler
> > knows
> > >> to check for an included file like, js/out/com/example/MyClass.js. If
> > the
> > >> generated JS is there, goog.require() is necessary. If it's missing,
> > it's
> > >> treated as a typedef class instead. If the class is an .as source file
> > >> instead, the compiler looks for the @externs asdoc tag to determine if
> > it's
> > >> a typedef class (and everything else needs goog.require() instead).
> > >>
> > >> By the way, if we ever support other module systems, it shouldn't be
> too
> > >> difficult to extend this code to detect different SWC layouts for each
> > >> module system.
> > >>
> > >> If your project is an app, this change should not cause any problems.
> > >> You're probably using library-path and external-library-path
> correctly.
> > >>
> > >> If you have a project that is a library, you should check your
> compiler
> > >> options to see if you are using library-path and external-library-path
> > >> correctly. If your library depends on another library, you probably
> > should
> > >> be using external-library-path because you don't want a "fat" SWC. In
> > other
> > >> words, if you're using library-path in a library project, you probably
> > need
> > >> to change that to external-library-path.
> > >>
> > >> If you have any custom typedef SWCs, you may want to recompile them.
> At
> > >> one point, the compiler had a bug where classes in typedef SWCs were
> > being
> > >> incorrectly added to the "js/out" folder in the SWC, but that was
> > >> incorrect. They should have been placed in an "externs" folder
> instead.
> > The
> > >> compiler handles this correctly now, but old typedef SWCs may look
> like
> > >> goog.require() SWCs instead. To be sure, you can open a SWC file in
> any
> > >> program that can read ZIP files, and you'll see the internal folder
> > >> structure. If a typedef SWC has a "js/out" folder, it's not going to
> > work
> > >> properly.
> > >>
> > >> If you're working directly out of the royale-compiler and royale-asjs
> > Git
> > >> repos, be sure to update and rebuild them both. The nightly builds
> > should
> > >> be updated shortly.
> > >>
> > >> When you build any apps, be sure to clean first, just to be sure that
> > you
> > >> have the latest JS files from the SWCs.
> > >>
> > >> If you run into any other problems with these changes, please let me
> > >> know. I'll get them fixed right away!
> > >>
> > >> --
> > >> Josh Tynjala
> > >> Bowler Hat LLC <https://bowlerhat.dev>
> > >>
> > >
> >
>
>
> --
> Carlos Rovira
> http://about.me/carlosrovira
>


-- 

Piotr Zarzycki

Patreon: *https://www.patreon.com/piotrzarzycki
<https://www.patreon.com/piotrzarzycki>*

Reply via email to