Hi Piotr, I couldn't try, probably could not until tomorrow. Sorry El mar., 16 jul. 2019 a las 16:34, Piotr Zarzycki (< [email protected]>) escribió:
> 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>* > -- Carlos Rovira http://about.me/carlosrovira
