Am I missing something for WebAssembly creation in Oxygene?

Carlo,

I’ll upload exactly what is created from scratch from the version I have (10.0.0.2285).

WebAsmTest2.zip (475.2 KB)

Marc,

You mention Publish there and I don’t see a Publish menu item. Should there be one? Once one has made a WebAssembly project and has built a debug and release versions, how does one publish? Won’t there be a Debug and Release folders under the Web folder (if the output of the compile puts the wasm and other files under the Web folder as I think you are saying Fire does) and so I can’t just copy the Web folder to some IIS server box?

This is what I get:

(Which is good; that’s what the default template does)

But I assume you aren’t using VS 2017 which must be doing things differently I’m guessing.

Here is what I get:

And here is what Edge Developer Tools says which points out some html minor errors:

I seemed to have missed this part; but you said 10.0.0.2285, that’s quite a few weeks old. Can you try latest beta?

Sure. I mentioned the version earlier. I thought that was the latest non-beta one, but I don’t even remember what I downloaded since it was more than a day ago :wink: Too many things to keep track of :slight_smile:

I’ll download and give it a whack. Back shortly…

yeah, but it does show the complete mismatch with what we’re seeing and you are :slight_smile:

No, YOU mentioned publish :wink:

“Do you have a solution for the PUBLISH problem”

Marc,

So how is one supposed to publish the webassembly project? Usually when I create web projects, there is a Publish menu item that allows me to publish a debug or release version and eliminates references to whether it is a debug or release version.

So how is one supposed to distribute these projects. Are we supposed to manually put together the html etc. and the debug or release code into a new folder and then copy that to the web?

Carlo,

I navigated to the portal myself and I see a bunch of choices. I probably had an older email announcing a new version of RemObjects with WebAssembly and just clicked on the link and didn’t see that it was taking me to some older versions. (It has been a year since I retired and I’ve been too busy being retired to do any programming.)

I see immediately by going to the portal myself that there is an Elements with Water, so I know that wasn’t on the page the link took me to because I would have noticed and tried to figure out what Fire and Water were and which one I needed.

Sorry for the confusion. If the version is the whole source of my problem, I apologize since I didn’t realize there was a newer one. (I thought it was really odd that no one else was having trouble and posting messages about it)

Would you still like me to get the latest beta, or just get the latest stable one?

… time passes …

Uh oh. I downloaded the latest beta and installed it. When I started up and tried to create the project, it asked about a license for Island. Is that now a separate license? If so, I’m going to have to look into getting it…

Then I doubly apologize, old version, not licensed. Island was apparently being tested in the version I got. I looked through my deleted emails and didn’t see where I got it, so I may have been searching for news of RemObjects on the web and a link there took me to that old version. Nothing Is Ever Easy…

Off I go to check out licensing etc… will get back to this later.

No island is the same license. You might have to re-login for the download though.

I checked my license. It says Oxygene. And the Water thing says it requires Elements license. I downloaded and installed 2305. But when creating the project in VS, that is when I got a dialog:

Click Change next to mtied, and re-enter your details.

Ok. I’ll have to figure out my password again :slight_smile: Back shortly…

… time passes …

Bummer. After changing my password because I couldn’t remember it (usually I rely on the browser to remember), I got past the license dialog. I recreated a new webassembly project and… All the same bad results :frowning: Same mismatch between index.html and wasm32, same error messages in Chrome, etc.

… time passes …

Tried Water which is the FIRST time I’ve seen it, and just created a new webassembly project and it doesn’t compile. It says “semicolon required”, but it looks like there is one there. I’ll poke around and see if I can figure out what it is talking about until I hear back from you on making the project work in VS 2017.

niee (Nothing Is Ever Easy)

… time passes …

ok, the Water build said:

E: identifier expected, got "module" [C:\Users\mtied\Documents\RemObjects Software\Elements\Water\Try 2\Module\Program.pas (1)]
E: semicolon (;) expected, got "module" [C:\Users\mtied\Documents\RemObjects Software\Elements\Water\Try 2\Module\Program.pas (1)]

I think I’ll uninstall this beta and go back to the last stable build…

… time passes …

Ok, with last Stable Water version. Same problem. I guessed that maybe it didn’t like the default name “module” so I changed it to MyModule. Then it compiled and didn’t complain about the name. (probably default should be something like “module1” or something that isn’t a reserved word if that is the problem).

But it got a different error still.

E: There was an exception executing the Island WebAssmebly linker: 'Object reference not set to an instance of an object.'

I’m assuming I should be creating a WebAssembly Module (there is a Static Library WebAssembly further down the list).

p.s. The error messages has a typo in the “WebAssmebly” word.

Indeed, “module” is a reserved word in Oxygene…

oops. fixed.

Can you set the build log to the highest level in Tools|Options, ands see if you get a fuller description for the NRE?

Yes, a Module is an “app”, a library is just a “dll-like” library you can put shared code it to reference from a module later.

I turned that on in Water. Where is the log for Water?

… time passes …

Ah, I see an option at the top there that SHOWS the log. Here it is:

"C:\Program Files (x86)\RemObjects Software\Elements\Bin\EBuild.exe" "C:\Users\mtied\Documents\RemObjects Software\Elements\Water\MyModule\MyModule.sln" --logger:fire --configuration:Debug --debug --statistics --verbosity:diagnostic "--xml:C:\Users\mtied\Documents\RemObjects Software\Elements\Water\MyModule\obj\MyModule.water.xml" --build --setting:TreatFixableErrorsAsWarnings=True
RemObjects EBuild. An open source build engine for Elements and beyond.
Copyright RemObjects Software 2016-2018. All Rights Reserved. Created by marc hoffman.
Version 10.0.0.2293 (develop) built on bajor, 20180608-164532. Commit ce2eeea.

   -> Task RemObjects.EBuild.BuildSolution started.
      -> Project MyModule started.
         -> Task RemObjects.EBuild.Elements.ElementsBuildProject started for MyModule.
            -> Task RemObjects.EBuild.Elements.ElementsSanityCheck started for MyModule, Island-WebAssembly.
            <- Task RemObjects.EBuild.Elements.ElementsSanityCheck finished for MyModule, Island-WebAssembly, took 0.0010s (0.0030s).
            -> Task RemObjects.EBuild.Elements.ElementsApplyLegacySettings started for MyModule, Island-WebAssembly.
               Mapping DefineConstants=DEBUG;TRACE; to ConditionalDefines
               Mapping AssemblyName=MyModule to BinaryName
            <- Task RemObjects.EBuild.Elements.ElementsApplyLegacySettings finished for MyModule, Island-WebAssembly, took 0.0070s (0.0070s).
            -> Task RemObjects.EBuild.Elements.ElementsPreparePlatforms started for MyModule.
               Preparing target 'Island-WebAssembly' (platform 'Island').
D:             Target-specific Settings, before prepare
D:               - <BinaryName = MyModule [Target: Island-WebAssembly]>
D:               - <ConditionalDefines = DEBUG;TRACE; [Target: Island-WebAssembly]>
D:               - <Mode = Island [Target: Island-WebAssembly]>
D:               - <SubMode = WebAssembly [Target: Island-WebAssembly]>
               -> Task RemObjects.EBuild.Elements.ElementsPreflightIsland started for MyModule.
               <- Task RemObjects.EBuild.Elements.ElementsPreflightIsland finished for MyModule, took 0.0000s (0.0010s).
               -> Task RemObjects.EBuild.Elements.ElementsPrepareIslandPlatform started for MyModule, Island-WebAssembly.
               <- Task RemObjects.EBuild.Elements.ElementsPrepareIslandPlatform finished for MyModule, Island-WebAssembly, took 0.0030s (0.0040s).
D:             Target-specific Settings, after prepare
D:               - <Architecture = wasm32 [Target: Island-WebAssembly]>
D:               - <BinaryName = MyModule [Target: Island-WebAssembly]>
D:               - <ConditionalDefines = DEBUG;TRACE; [Target: Island-WebAssembly]>
D:               - <FinalBinaryName = MyModule.wasm [Target: Island-WebAssembly]>
D:               - <Internal:ArchiveOutputType = gnu [Target: Island-WebAssembly]>
D:               - <Internal:CompilerFlags = --disableeh --disableatomic --thinlto --bc+ [Target: Island-WebAssembly]>
D:               - <Mode = Island [Target: Island-WebAssembly]>
D:               - <SubMode = WebAssembly [Target: Island-WebAssembly]>
            <- Task RemObjects.EBuild.Elements.ElementsPreparePlatforms finished for MyModule, took 0.0090s (0.0220s).
            -- Task RemObjects.EBuild.Elements.ElementsPreparePlatforms skipped for MyModule.
            -> Task RemObjects.EBuild.Elements.ElementsCheckForTargetlessReferences started for MyModule.
            <- Task RemObjects.EBuild.Elements.ElementsCheckForTargetlessReferences finished for MyModule, took 0.0050s (0.0050s).
            -> Task RemObjects.EBuild.Elements.ElementsResolveReferences started for MyModule.
               -> Target Island-WebAssembly started.
D:                Using cached data for ResolveReferences (1:27 PM <= 1:28 PM)
                  -> Task RemObjects.EBuild.Elements.ElementsValidateCachedIslandReferencesForTarget started for MyModule, Island-WebAssembly.
                  <- Task RemObjects.EBuild.Elements.ElementsValidateCachedIslandReferencesForTarget finished for MyModule, Island-WebAssembly, took 0.0020s (0.0020s).
               <- Target Island-WebAssembly finished.
            <- Task RemObjects.EBuild.Elements.ElementsResolveReferences finished for MyModule, took 0.0170s (0.0230s).
            -> Task RemObjects.EBuild.Elements.ElementsResolveSourceFiles started for MyModule.
            <- Task RemObjects.EBuild.Elements.ElementsResolveSourceFiles finished for MyModule, took 0.0060s (0.0070s).
            -- Task RemObjects.EBuild.Elements.ElementsPreCompileEchoes skipped for MyModule, Island-WebAssembly.
            -- Task RemObjects.EBuild.Elements.ElementsPreCompileToffee skipped for MyModule, Island-WebAssembly.
            -- Task RemObjects.EBuild.Elements.ElementsPreCompileCooper skipped for MyModule, Island-WebAssembly.
            -- Task RemObjects.EBuild.Elements.ElementsPreparePlatforms skipped for MyModule.
            -- Task RemObjects.EBuild.Elements.ElementsResolveReferences skipped for MyModule.
            -- Task RemObjects.EBuild.Elements.ElementsResolveSourceFiles skipped for MyModule.
            -> Task RemObjects.EBuild.Elements.ElementsPreCompileIsland started for MyModule, Island-WebAssembly.
               -- Task ProcessResources skipped for MyModule, Island-WebAssembly.
            <- Task RemObjects.EBuild.Elements.ElementsPreCompileIsland finished for MyModule, Island-WebAssembly, took 0.0000s (0.0010s).
            -> Task RemObjects.EBuild.Elements.ElementsCompile started for MyModule.
D:             Loading compiler from 'C:\Program Files (x86)\RemObjects Software\Elements\Bin\RemObjects.Elements.dll'
D:             Using cached data for CoreCompile-wasm32 (1:27 PM <= 1:28 PM)
D:             CompilerOutput for Island-WebAssembly
D:               - <CompilerOutput-wasm32: C:\Users\mtied\AppData\Local\RemObjects Software\EBuild\Obj\MyModule-9B9D5754B2AE5F76BC8354BE84E3E9FF4DFE4648\Debug\Island-WebAssembly\wasm32\MyModule.a [Target: Island-WebAssembly]>
D:               - <CompilerOutput-wasm32: C:\Users\mtied\AppData\Local\RemObjects Software\EBuild\Obj\MyModule-9B9D5754B2AE5F76BC8354BE84E3E9FF4DFE4648\Debug\Island-WebAssembly\wasm32\MyModule.fx [Target: Island-WebAssembly]>
D:               - <CompilerOutput-wasm32: C:\Users\mtied\AppData\Local\RemObjects Software\EBuild\Obj\MyModule-9B9D5754B2AE5F76BC8354BE84E3E9FF4DFE4648\Debug\Island-WebAssembly\wasm32\MyModule.o [Target: Island-WebAssembly]>
            <- Task RemObjects.EBuild.Elements.ElementsCompile finished for MyModule, took 0.0370s (0.0920s).
            -- Task RemObjects.EBuild.Elements.ElementsPostCompileEchoes skipped for MyModule, Island-WebAssembly.
            -- Task RemObjects.EBuild.Elements.ElementsPostCompileToffee skipped for MyModule, Island-WebAssembly.
            -- Task RemObjects.EBuild.Elements.ElementsPostCompileCooper skipped for MyModule, Island-WebAssembly.
            -- Task RemObjects.EBuild.Elements.ElementsCompile skipped for MyModule.
            -> Task RemObjects.EBuild.Elements.ElementsPostCompileIsland started for MyModule, Island-WebAssembly.
            <- Task RemObjects.EBuild.Elements.ElementsPostCompileIsland finished for MyModule, Island-WebAssembly, took 0.0000s (0.0000s).
            -> Task RemObjects.EBuild.Elements.ElementsLink started for MyModule.
               -> Task Link started for MyModule, Island-WebAssembly.
E:                There was an exception executing the Island WebAssmebly linker: 'Object reference not set to an instance of an object.'
D:                |    at RemObjects.Oxygene.MSBuild.WasmLinker.UseFunction(WasmFile aFile, IWasmFunction arg)
D:                |    at RemObjects.Oxygene.MSBuild.WasmLinker.Queue(WasmFile aSource, WasmCustomSection sec)
D:                |    at RemObjects.Oxygene.MSBuild.WasmLinker.LinkFiles()
D:                |    at RemObjects.Oxygene.MSBuild.WasmLinker.Execute()
D:                |    at RemObjects.Elements.Compiler.IslandWebAssemblyLinker.Link(EBuildTask aTask)
               <- Task Link failed for MyModule, Island-WebAssembly, took 2.4046s (2.4056s).
D:             LinkerOutput
D:               - <LinkerOutput-wasm32: C:\Program Files (x86)\RemObjects Software\Elements\Island\Reference Libraries\WebAssembly\wasm32\RemObjectsElements.js [Target: Island-WebAssembly]>
            <- Task RemObjects.EBuild.Elements.ElementsLink failed for MyModule, took 2.4066s (2.4996s).
         <- Task RemObjects.EBuild.Elements.ElementsBuildProject failed for MyModule, took 0.0000s (2.5006s).
      <- Project MyModule failed, took 2.5016s.
      Project 'MyModule' failed to build.
      Solution 'RemObjects.EBuild.BuildSolution' finished with nothing to do.
   <- Task RemObjects.EBuild.BuildSolution failed for MyModule, took 2.5075s (2.5095s).

     net time    gross time   task
-------------  ------------   -------------------------------
       0.000s        0.000s   ElementsPreflightIsland 
       0.000s        0.001s   ElementsPreCompileIsland 
       0.000s        0.000s   ElementsPostCompileIsland 
       0.000s        2.500s   ElementsDetermineFinalOutput 
       0.000s        2.500s   ElementsCopyFinalOutput 
       0.000s        2.500s   ElementsBuildProject 
       0.000s        0.004s   ElementsSanityCheck 
       0.002s        0.002s   ElementsValidateCachedIslandReferencesForTarget 
       0.002s        0.003s   ElementsPrepareIslandPlatform 
       0.004s        0.004s   ElementsCheckForTargetlessReferences 
       0.006s        0.006s   ElementsResolveSourceFiles 
       0.007s        0.007s   ElementsApplyLegacySettings 
       0.008s        0.022s   ElementsPreparePlatforms 
       0.017s        0.022s   ElementsResolveReferences 
       0.036s        0.092s   ElementsCompile 
       2.404s        2.405s   ElementsIslandLink 
       2.406s        2.499s   ElementsLink 
       2.507s        2.509s   BuildSolution
  • Messages | Show Build log
  • Ctrl+Alt+B
  • Click the activity label all to the right in the jump bar
    or
  • Choose Build log from the left of the jumpbar

Marc,

See the log in my previous message (I figured it out just before you posted :slight_smile: )

… time passes …

How do you turn OFF the log? I tried doing a second Ctrl+Alt+B and I tried clicking on the Message Show Build Log a second time. So far, I can’t get rid of it.

Never mind… I figured it out. I needed to change back to Minimal…

thanx. thats something Carlo will have to handle tomorrow, I’m afraid. This happens with a new project from template, no changes, with .2305?

Yes. I think so. Didn’t pay exact attention when tried 2305. Just installed it and tried and it failed. I’m fairly certain it failed the exact same way. I’ll go back to 2305 and try it again to be sure.