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.
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.
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.
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
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 :)
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:
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.