The MASM Forum
64 bit assembler => UASM Assembler Development => Topic started 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).
-
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.
-
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.
-
Speed is fine, although my timings are not very exact. About 5%, as you wrote above.
-
Grab 2.25 from the site or Github.
It works now for what I got here.
-
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.
-
Will check it out.
-
powershadow, please try the version on the site (package) now. Still 2.25 dated 6th of April.
-
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
-
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! :)
-
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.
-
OO stuff only for x64? Because x32 totally don't understand it.
-
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 :)
-
64bit isn't just the future .. it's the present so why go back to 32bit :)
Yeah! That's the spirit bro! :greenclp:
-
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 ?!
-
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.
-
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.