The MASM Forum

64 bit assembler => UASM Assembler Development => Topic started by: johnsa on April 06, 2017, 01:34:51 AM

Title: HJWasm 2.25 release
Post by: johnsa on April 06, 2017, 01:34:51 AM
Ok,

Grab 2.25 from the site or Github.

New features and updates:

1) Fixed another 16byte alignment issue for stackbase RSP.
2) Optimised some internal hashing, character validation and file buffering in the assembler, has reduced assembly times by about 5%
3) Added OPTION REDZONE:{yes/no} support for SystemV ABI to enable or disable this optimisation.
4) Added a full OO system and language extension set through the new macro engine. (This will be documented shortly).
Title: Re: HJWasm 2.25 release
Post by: jj2007 on April 06, 2017, 01:55:52 AM
Fine for my 32-bit sources, but with my 64-bit code templates I get a namespace conflict:
Error A2143: Symbol redefinition: INTERFACE

The offending line is from WinExtra.inc: INTERFACE equ IDirectDraw

See http://www.masmforum.com/board/index.php?topic=1647.msg12669#msg12669 for its usage.

That must have been introduced with version 2.25, because 2.24 of 4 April works fine.
Title: Re: HJWasm 2.25 release
Post by: johnsa on April 06, 2017, 02:00:56 AM
Run it with -nomlib

INTERFACE has become a reserved word.
-nomlib will disable that, if you don't need it.

Or you could rename INTERFACE equ IDirectDraw to DDINTERFACE equ IDirectDraw ?

Also how is the speed now? It should be even a touch better than before.
Title: Re: HJWasm 2.25 release
Post by: jj2007 on April 06, 2017, 02:07:34 AM
Speed is fine, although my timings are not very exact. About 5%, as you wrote above.
Title: Re: HJWasm 2.25 release
Post by: aw27 on April 06, 2017, 02:34:34 AM
Quote from: johnsa on April 06, 2017, 01:34:51 AM
Grab 2.25 from the site or Github.
It works now for what I got here.
Title: Re: HJWasm 2.25 release
Post by: powershadow on April 06, 2017, 06:58:27 PM
If include file not found, I get "Error A2168: General Failure", without any explanation.
Previous (2.24) version shows "Error A2106" for all not found files and even try's to compile the source.

Update: Even after correcting the path i got the same error, 2.24 compile this source fine.
Tested on Hjwasm32.
Title: Re: HJWasm 2.25 release
Post by: johnsa on April 06, 2017, 07:29:23 PM
Will check it out.
Title: Re: HJWasm 2.25 release
Post by: johnsa on April 06, 2017, 08:21:35 PM
powershadow, please try the version on the site (package) now. Still 2.25 dated 6th of April.
Title: Re: HJWasm 2.25 release
Post by: powershadow on April 07, 2017, 05:58:16 AM
Quote from: johnsa on April 06, 2017, 08:21:35 PM
powershadow, please try the version on the site (package) now. Still 2.25 dated 6th of April.
Error A2168: General Failure - fixed. But i can't compile all this new oop stuff. I get "Error A2209:Syntax error: CLASS" The same error for all new reserved words: "CLASS","CMETHOD","CSTATIC"... Maybe need some additional options for compile?
Would be great if in 'Samples' directory was samples for all new features since 2.22. :t
Title: Re: HJWasm 2.25 release
Post by: johnsa on April 07, 2017, 05:56:58 PM
It looks like it needs some solid examples, noted from the other thread too.

I'm going to make a quick example of the OO stuff in action and add it to the samples, I will also supply it separately.

You're right too, we need to update the samples to include some examples of all the new features, I'm on it! :)
Title: Re: HJWasm 2.25 release
Post by: johnsa on April 07, 2017, 07:50:52 PM
There was a small bug in the $DELETE implementation which I've fixed. The new packages are up on the site and Git, dated 7th April.
The packages now include a new sample oo1.asm which demonstrates a few of the new features and using the OO layer.
Title: Re: HJWasm 2.25 release
Post by: powershadow on April 08, 2017, 03:42:44 AM
OO stuff only for x64? Because x32 totally don't understand it.
Title: Re: HJWasm 2.25 release
Post by: johnsa on April 08, 2017, 03:57:41 AM
Correct. The whole macro lib feature is only for 64bit. We didn't look to implement anything for 32bit, a) because there is such a wealth of existing 32bit stuff to use in various includes and libraries and b)
64bit isn't just the future .. it's the present so why go back to 32bit :)
Title: Re: HJWasm 2.25 release
Post by: coder on April 08, 2017, 07:50:59 AM
Quote from: johnsa on April 08, 2017, 03:57:41 AM
64bit isn't just the future .. it's the present so why go back to 32bit :)

Yeah! That's the spirit bro!  :greenclp:
Title: Re: HJWasm 2.25 release
Post by: Adamanteus on April 11, 2017, 02:05:32 AM
 Nice and unique, but a little unfixing consistency, so till it is not new keywords - maybe better to have abilities to turn them off by macro-order number ?!
Title: Re: HJWasm 2.25 release
Post by: johnsa on April 11, 2017, 03:52:21 AM
It's an option. Alternatively, you should be able to replace any existing definition from the macrolib with your own, IE: if you declare an RV macro it will replace the built-in one.
Or you can switch the whole thing off with -nomlib. I would make consider grouping macros into blocks and having on/off per block.. but not per macro there would be too many options, and ordinal wouldn't work as the order may change.
Title: Re: HJWasm 2.25 release
Post by: Adamanteus on April 11, 2017, 05:46:49 AM
Really need by one, as they are inlayed to each other it won't be usefull - may be better add such option as purge or nomlib:name.