>I still need to figure out the duplicate hoisted variables in MXRoyale.

I can confirm it's still happening. It does not happen on my machine with a 
simple "mvn clean install".
________________________________
From: Josh Tynjala <joshtynj...@bowlerhat.dev>
Sent: Friday, April 7, 2023 2:01 AM
To: dev@royale.apache.org <dev@royale.apache.org>
Subject: Re: 0.9.10 Release

My latest commits make the Jewel and JewelJS SWC files match between my
macOS and Windows machines. I ended up having to switch to a different
Maven Sass plugin because I realized the one we were using was no longer
maintained, and it was misbehaving. This new plugin is based on the newer
Sass that doesn't support CRLF output at all, so the changes I talked about
in my previous email ended up being a strict requirement.

I still need to figure out the duplicate hoisted variables in MXRoyale.
I'll need to dive into that on another day.

--
Josh Tynjala
Bowler Hat LLC <https://bowlerhat.dev>


On Thu, Apr 6, 2023 at 9:57 AM Josh Tynjala <joshtynj...@bowlerhat.dev>
wrote:

> Some more findings:
>
> The difference in Jewel appears to be caused by defaults.css. The Maven
> build at some point was updated to force Sass to output CRLF on Windows, to
> keep Git from saying that the file is modified after regenerating it.
> Unfortunately, this breaks the ability to do a cross-platform reproducible
> build because every other platform uses LF. I'm probably going to undo this
> change (sorry, Greg!).  However, it looks like adding a .gitattributes file
> to the repo allows us to force line endings for specific files or
> extensions, regardless of autocrlf behavior. It should provide the same
> benefit as Greg's commit, while restoring reproducible builds. Side note: I
> also found that modern Sass doesn't even provide the option to use CRLF, so
> this change is probably for the best because we may need to upgrade Sass in
> the future.
>
> The situation with duplicates of hoisted variables in
> MXRoyaleBase/MXRoyale in JDK 17 might be a threading conflict (and probably
> could happen with JDK 11 too, if conditions are correct). When the issue
> reproduces, I see that the function scope actually contains duplicate
> definitions of every local variable, instead of just one of each.
> Interestingly, if I add enough logging to help myself debug this issue, the
> scope ends up containing one of each local variable, and it doesn't
> duplicate the hoisted variables anymore. That makes me think multiple
> threads may be manipulating the scope.
>
> --
> Josh Tynjala
> Bowler Hat LLC <https://bowlerhat.dev>
>
>
> On Wed, Apr 5, 2023 at 2:42 PM Josh Tynjala <joshtynj...@bowlerhat.dev>
> wrote:
>
>> Some preliminary findings:
>>
>> Jewel:
>> - Some plaintext [Embed] content was not matching up between macOS and
>> Windows. It was clearly a text encoding issue. I fixed a compiler bug
>> where it was using the system default encoding instead of UTF-8. A
>> workaround would be to use JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8.
>> - The SWF files inside the Jewel SWCs still do not match between my
>> machines. I still need to figure out why. Probably a missing compiler
>> option in the Jewel pom.xml file.
>>
>> MXRoyale and MXRoyaleBase:
>> - On Windows, I was seeing hoisted variables appear in the JS output
>> twice. I noticed that I was using JDK 11 on macOS, and JDK 17 on Windows.
>> When I switched to JDK 11 on Windows, the problem went away. It looks like
>> there's a bug in the compiler that needs to be fixed to support JDK 17.
>> Until then, I recommend building with JDK 11 or older (8 should be fine
>> too).
>>
>> --
>> Josh Tynjala
>> Bowler Hat LLC <https://bowlerhat.dev>
>>
>>
>> On Wed, Apr 5, 2023 at 10:11 AM Josh Tynjala <joshtynj...@bowlerhat.dev>
>> wrote:
>>
>>> Alright, I built the distribution locally with Maven on two different
>>> machines, and I can see that the following SWCs don't match: Jewel,
>>> MXRoyale, and MXRoyaleBase
>>>
>>> It affects both the JS and SWF versions of the SWCs.
>>>
>>> I'll see what I can do.
>>>
>>> --
>>> Josh Tynjala
>>> Bowler Hat LLC <https://bowlerhat.dev>
>>>
>>>
>>> On Mon, Apr 3, 2023 at 8:04 AM Josh Tynjala <joshtynj...@bowlerhat.dev>
>>> wrote:
>>>
>>>> Yes, it's on by default.
>>>>
>>>> I guess that there must be some other reason why the builds don't match
>>>> up. I just happened to notice this, in particular, was different between
>>>> the Ant build and the Maven build.
>>>>
>>>> You may need to extract the .swc files and manually compare the
>>>> contents to see what is different.
>>>>
>>>> --
>>>> Josh Tynjala
>>>> Bowler Hat LLC <https://bowlerhat.dev>
>>>>
>>>>
>>>> On Sun, Apr 2, 2023 at 4:01 AM Yishay Weiss <yishayj...@hotmail.com>
>>>> wrote:
>>>>
>>>>> Is that option on by default? I just tried building both on release
>>>>> machine and locally and am still getting the mismatch.
>>>>>
>>>>> <exec executable="${mvn}" dir="${artifactfolder}/sources"
>>>>> failonerror="true" >
>>>>>             <arg value="-X" />
>>>>>             <arg value="-P" />
>>>>>             <arg
>>>>> value="royale-release,apache-release,_reproducible-build,with-distribution,with-examples,with-manualtests,option-with-swf"
>>>>> />
>>>>>             <arg value="clean" />
>>>>>             <arg value="install" />
>>>>>         </exec>
>>>>>
>>>>> Is how it gets built now locally. Intuitively debug info should not be
>>>>> part of the release but I need to look into it further.
>>>>> ________________________________
>>>>> From: Josh Tynjala <joshtynj...@bowlerhat.dev>
>>>>> Sent: Tuesday, March 28, 2023 6:17 PM
>>>>> To: dev@royale.apache.org <dev@royale.apache.org>
>>>>> Subject: Re: 0.9.10 Release
>>>>>
>>>>> Hey Yishay,
>>>>>
>>>>> I recently made a commit that adds the swf-debugfile-alias compiler
>>>>> option
>>>>> for SWC files built by Maven. This compiler option was being used by
>>>>> Ant
>>>>> already, but it never got added to the Maven build. And I think that
>>>>> binaries would fail comparison without it. This may be why Release
>>>>> Step 11
>>>>> was failing for you.
>>>>>
>>>>> Basically, swf-debugfile-alias ensures that the debugging information
>>>>> in
>>>>> the SWC doesn't include the local path to the .as/.mxml source files
>>>>> (starting with something like C:\Users\joshtynjala\ or
>>>>> /Users/CoolGuy19/).
>>>>> Instead, it sets a generic path that will always match among builds
>>>>> from
>>>>> different machines. Considering this was missing, it sure sounds like a
>>>>> reason why binary comparison would fail.
>>>>>
>>>>> --
>>>>> Josh Tynjala
>>>>> Bowler Hat LLC <https://bowlerhat.dev>
>>>>>
>>>>>
>>>>> On Wed, Feb 22, 2023 at 10:38 AM Yishay Weiss <yishayj...@hotmail.com>
>>>>> wrote:
>>>>>
>>>>> > FYI I am put this on hold about 2 weeks ago after failing to debug a
>>>>> > binary reproducibility issue in as-js repo.
>>>>> >
>>>>> > @Harbs<mailto:harbs.li...@gmail.com>, can you see if the same issue
>>>>> > exists for you?
>>>>> >
>>>>> > You can follow instructions [1] and tell me if step 2 succeeded or
>>>>> failed
>>>>> > for you.
>>>>> >
>>>>> > Thanks.
>>>>> >
>>>>> > [1]
>>>>> >
>>>>> apacheroyale.francecentral.cloudapp.azure.com:8080/job/Royale_Release_Step_011/ws/Success-5.txt
>>>>> > <
>>>>> >
>>>>> http://apacheroyale.francecentral.cloudapp.azure.com:8080/job/Royale_Release_Step_011/ws/Success-5.txt
>>>>> > >
>>>>> > ________________________________
>>>>> > From: Josh Tynjala <joshtynj...@bowlerhat.dev>
>>>>> > Sent: Tuesday, January 17, 2023 10:08 PM
>>>>> > To: dev@royale.apache.org <dev@royale.apache.org>
>>>>> > Subject: Re: 0.9.10 Release
>>>>> >
>>>>> > Oops! I meant NO further changes. Sorry about that. You're good to
>>>>> go on my
>>>>> > end.
>>>>> >
>>>>> > --
>>>>> > Josh Tynjala
>>>>> > Bowler Hat LLC <https://bowlerhat.dev>
>>>>> >
>>>>> >
>>>>> > On Tue, Jan 17, 2023 at 11:32 AM Yishay Weiss <
>>>>> yishayj...@hotmail.com>
>>>>> > wrote:
>>>>> >
>>>>> > > Thanks for the update, let me know when to pull the trigger.
>>>>> > >
>>>>> > > Get Outlook for Android<https://aka.ms/AAb9ysg>
>>>>> > > ________________________________
>>>>> > > From: Josh Tynjala <joshtynj...@bowlerhat.dev>
>>>>> > > Sent: Tuesday, January 17, 2023 7:05:29 PM
>>>>> > > To: dev@royale.apache.org <dev@royale.apache.org>
>>>>> > > Subject: Re: 0.9.10 Release
>>>>> > >
>>>>> > > I've updated the release notes with my changes. I have further
>>>>> changes
>>>>> > > planned before the release.
>>>>> > >
>>>>> > > --
>>>>> > > Josh Tynjala
>>>>> > > Bowler Hat LLC <https://bowlerhat.dev>
>>>>> > >
>>>>> > >
>>>>> > > On Mon, Jan 16, 2023 at 12:40 AM Yishay Weiss <
>>>>> yishayj...@hotmail.com>
>>>>> > > wrote:
>>>>> > >
>>>>> > > > Hi Guys,
>>>>> > > >
>>>>> > > > We’re starting a new release soon. As it’s been a while and I
>>>>> expect
>>>>> > some
>>>>> > > > issues I have agreed with Harbs to do this release. 0.9.11
>>>>> should be
>>>>> > > easier
>>>>> > > > if we don’t wait too long, so the goal is for a different
>>>>> volunteer to
>>>>> > do
>>>>> > > > the next one.
>>>>> > > >
>>>>> > > > If anybody wants to commit changes they are welcome to do so
>>>>> now, and
>>>>> > > > update the release notes.
>>>>> > > >
>>>>> > > > Please make sure the integration tests are working post commits.
>>>>> > > >
>>>>> > > > Thanks,
>>>>> > > > Yishay
>>>>> > > >
>>>>> > >
>>>>> >
>>>>>
>>>>

Reply via email to