I see that on the server I'm able to run TourDeJewel. [1] I will commit now one thing and see whether my code will be runnable.
[1] https://builds.apache.org/job/Royale-asjs/1954/artifact/examples/royale/TourDeJewel/target/javascript/bin/js-debug/index.html wt., 16 lip 2019 o 16:33 Piotr Zarzycki <[email protected]> napisał(a): > 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>* > -- Piotr Zarzycki Patreon: *https://www.patreon.com/piotrzarzycki <https://www.patreon.com/piotrzarzycki>*
