Re: Reflection updates in amf_updates branch (compiler and as-js repos)

2019-03-02 Thread Greg Dove
'Thanks for working on this'

Alex, I'm just continuing what you started (in both cases - reflection in
general and AMFBinaryData). Thanks for building the foundation!

I did have AMF support also in mind when I was originally working on
fleshing out the reflection stuff, so I'm pleased to be able to try to
close some of the gaps now. I think the AMF code resembles the original
javascript lib that you ported a lot less now. As an aside, that original
js code had some issues which I can only assume were matched in the
serverside implementation that it was paired with, otherwise I would have
expected those to have been addressed (things like some of the reference
tracking not being aligned and a couple of issues with the way NaN was
being encoded iirc, and others). Anyway I think with side by side Unit
testing now it is much, much easier to work on than it was a few months
back.

'maybe we can find a pattern where the initializers can be added or removed
at publish time, so that we don't force a position on this topic in the
framework.'

For the js-default-initializers, I'm guessing you might be thinking
something like inlining a comment that could be removed during file copy
into the local project?

Something like:
/**
 * @private
 * @type {Array}
 */
MyInitialView.prototype.MyInitialView_warnings
//js-default-intializers=false = null;

And the copying task could do a string replace of
''//js-default-intializers=false"
with "" if the local project overrides it?

Something like that could be flexible, I guess, as long as it does not slow
down the compiler task too much, so yes - it (or some other idea you might
have perhaps) sounds good to me.

Other points:
My general question was more...  are we sure it makes a meaningful
difference to have this switched off for a 'normal' sized project.
Is the main goal of not having initializers defined in the framework to
make startup 'faster' or to reduce the minified output size (or both).

As an aside, I read something (can't remember exactly where) recently
suggesting that the approach we are currently using for the minification
part with string aliasing (single short variables for common string
literals) is not recommended. I did not dig deeper at this point to check
that or the validity of it, but the argument against it was because when
the javascript is gzipped it compresses better with the duplicated string
literals as they were originally. And the code executes faster once it is
expanded because each string literal is parsed directly instead of looked
up. Like I said, I did not check this, but actually it made some sense to
me, it was just not how I had been thinking about things... I was only
thinking about the file size of the minified js, not what happens to it
when it is deployed. In fact I had previously tried splitting all the qName
values in the reflection data to see if they could be minimised further
using the string aliasing by isolating common long package sequences. But
GCC decides that is not worth doing and recombines them all into the
original strings instead of storing their parts. So the reason I think it
is doing that is probably what I just mentioned. I will check this in the
coming week and report back. I mention this here only to illustrate that
what seems like a logical assumption for 'performance' may not be unless it
is viewed from different angles... in this case, some file size
minification settings may result in a larger gzipped version of the file
than if they were not applied (and also perhaps result in code that runs
slightly slower).

Likewise, not initializing by default may provide some faster startup, but
could perhaps have implications for performance during use of the app (for
slower lookups of the undefined properties). If that turned out to be true,
which performance is the most important? (this is just hypothetical at this
point, I did not try to test this yet). I guess having the option to switch
would serve both approaches.

In terms of 'conformance vs performance' I think that the less you adhere
to a standard the more you end up with that same type of issues that we
avoided the browser for and appreciated the flash avm so much for in the
first place. Essentially we are trying to get back to that level of
reliability and certainty and consistency.
I have not tried XML or Proxy yet (apart from encountering it with
RemoteObject I think). I'll look at these in the coming days.

I would hope there could be ways to get more developer support for runtime
checking things for untyped access by wrapping the heavy checking code with
 if (goog.DEBUG) {do checks and issue warnings etc}
so it is only present in debug build? This way at least it will provide
some good clues to developers when things are not working right.
there could even be a define to keep them in release build if preferred
(but off by default :) )
Just some thoughts (again I have not looked at the specific things you
mentioned yet, maybe I will get a reality 

Build failed in Jenkins: royale-typedefs #1147

2019-03-02 Thread Apache Royale CI Server
See 


--
Started by timer
[EnvInject] - Loading node environment variables.
Building on master in workspace 

 > git.exe rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git.exe config remote.origin.url 
 > https://github.com/apache/royale-typedefs.git # timeout=10
Fetching upstream changes from https://github.com/apache/royale-typedefs.git
 > git.exe --version # timeout=10
 > git.exe fetch --tags --progress 
 > https://github.com/apache/royale-typedefs.git 
 > +refs/heads/*:refs/remotes/origin/*
 > git.exe rev-parse "refs/remotes/origin/develop^{commit}" # timeout=10
 > git.exe rev-parse "refs/remotes/origin/origin/develop^{commit}" # timeout=10
Checking out Revision 1b53df8a7c49cad79ba23a2c84ae211391d32062 
(refs/remotes/origin/develop)
 > git.exe config core.sparsecheckout # timeout=10
 > git.exe checkout -f 1b53df8a7c49cad79ba23a2c84ae211391d32062
Commit message: "Need these typedefs from royale-extras"
 > git.exe rev-list --no-walk 1b53df8a7c49cad79ba23a2c84ae211391d32062 # 
 > timeout=10
[royale-typedefs] $ cmd.exe /C "C:\apache\apache-ant-1.9.9\bin\ant.bat main && 
exit %%ERRORLEVEL%%"
Buildfile: 


main:

download:
 [echo] 

[mkdir] Created dir: 


BUILD FAILED
:58:
 The following error occurred while executing this line:
:86:
 src 
'
 doesn't exist.

Total time: 0 seconds
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 -Xmx1g -Xms1g
Build step 'Invoke Ant' marked build as failure


Release Step 006 Succeeded

2019-03-02 Thread Apache Royale CI Server
Log in to the server, open a command prompt, change directory to 
C:\jenkins\workspace\Royale_Release_Step_006 and run the following commands:
git push
git push origin org.apache.royale.typedefs-0.9.6-rc1

You will need your Apache/Github username and 2FA token.

Build failed in Jenkins: royale-asjs_jsonly #2534

2019-03-02 Thread Apache Royale CI Server
See 


--
[...truncated 308.43 KB...]

check-sum:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

put-in-cache:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

copy-if-cached:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

download-dependency-zip:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

check-dependency:

download-dependency:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

echo-project-jar:
  [get] Getting: http://www.apache.org/licenses/LICENSE-2.0
  [get] To: C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\lib\guava-LICENSE.txt
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

double-check-file:
 [echo] Need file: ${still_no_file}

get-from-cache-if-needed:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

fail-if-not-found:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

download-dependency-jar:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

check-cache:

download-jar:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

get-if-not-cached:
  [get] Getting: 
https://repo1.maven.org/maven2/com/google/guava/guava/25.1-jre/guava-25.1-jre.jar
  [get] To: C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\lib\guava.jar
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

double-check-file:
 [echo] Need file: ${still_no_file}

get-from-cache-if-needed:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx
 [echo] ROYALE_COMPILER_HOME is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx

fail-if-not-found:
 [echo] basedir is C:\Program Files 
(x86)\Jenkins\workspace\royale-compiler\compiler-jx\src\main\resources
 [echo] 

Build failed in Jenkins: royale-compiler #748

2019-03-02 Thread Apache Royale CI Server
See 


--
[...truncated 16.83 KB...]
 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 


download-dependency:
 [echo] basedir is 

 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 


download-dependency:
 [echo] basedir is 

 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 


download-dependency:
 [echo] basedir is 

 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 


download-dependency:
 [echo] basedir is 

 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 


download-dependency:
 [echo] basedir is 

 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 


download-dependency:
 [echo] basedir is 

 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 


download-dependency:
 [echo] basedir is 

 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 


download-dependency:
 [echo] basedir is 

 [echo] ROYALE_COMPILER_HOME is 

 [echo] ROYALE_COMPILER_HOME is 


check-dependency:
 [echo] checking for 

Royale_Release_Step_006 - Build # 1 - Failure!

2019-03-02 Thread Apache Royale CI Server
Royale_Release_Step_006 - Build # 1 - Failure:

Check console output at 
http://apacheroyaleci.westus2.cloudapp.azure.com:8080/job/Royale_Release_Step_006/1/
 to view the results.

Release Step 005 Succeeded

2019-03-02 Thread Apache Royale CI Server
Log in to the server, open a command prompt, change directory to 
C:\jenkins\workspace\Royale_Release_Step_005 and run the following commands:
git push

You will need your Apache/Github username and 2FA token.