I've just put it on my website. It has now "eqtype" operator implemented (there were no better propositions for its name, so I've used the first one), and a fix for the waste of processor cache that parser was doing - because I've got a notice that with latest includes from arkane compilation is strangely slow, and when I was trying to figure out why, I've found that one problem. After fixing it parser does it's work with large sets of equates faster by a factor about 3 on my Duron, I don't know how it'll affect it on other processors - please check it.
Nice, just got it and it works great!
EDIT: NM, found that i was saying format pe gui once already and the file said it again, found this out from the HELLO example
OT: How would you make a WNDCLASSEX structure (for RegisterClassEx function). If you could answer this it would be great, thanks!
Looking forward to future releases,
kairon
EDIT: NM, found that i was saying format pe gui once already and the file said it again, found this out from the HELLO example
OT: How would you make a WNDCLASSEX structure (for RegisterClassEx function). If you could answer this it would be great, thanks!
Looking forward to future releases,
kairon
Whooa!!! Nice job.. it's way too fast than before...
From my 800mhz p3 256mb SDRAM... it took FASM(1.43) 2.8 - 4.0 seconds to assemble(tab.asm - included on the windows.inc translation) but now it just took 1.1 s...
thanks and keep up the good work... :alright:
From my 800mhz p3 256mb SDRAM... it took FASM(1.43) 2.8 - 4.0 seconds to assemble(tab.asm - included on the windows.inc translation) but now it just took 1.1 s...
thanks and keep up the good work... :alright:
OT: How would you make a WNDCLASSEX structure (for RegisterClassEx function). If you could answer this it would be great, thanks!
struc WNDCLASSEX
{
.cbSize dd ?
.style dd ?
.lpfnWndProc dd ?
.cbClsExtra dd ?
.cbWndExtra dd ?
.hInstance dd ?
.hIcon dd ?
.hCursor dd ?
.hbrBackground dd ?
.lpszMenuName dd ?
.lpszClassName dd ?
.hIconSm dd ?
.size = $-.cbSize
}
...
proc WinMain, hInst, hPrevInst, pCmdLine, nCmdShow
wcx WNDCLASSEX
msg MSG
hWnd HWND ?
enter
mov [wcx.cbSize], wcx.size
mov [wcx.style], CS_VREDRAW or CS_HREDRAW
...
lea eax, [wcx]
invoke RegisterClassEx, eax
Ok Privalov,
After you send me a version 1.43.77 :grin:
I got half by half (~0.6 from ~1.2). But for 1.44 beta1 I got ~0.8 :o
Anyway, thank you for hard work :alright: (I think Masm still better in larg eqaute file processing).
After you send me a version 1.43.77 :grin:
I got half by half (~0.6 from ~1.2). But for 1.44 beta1 I got ~0.8 :o
Anyway, thank you for hard work :alright: (I think Masm still better in larg eqaute file processing).
I got half by half (~0.6 from ~1.2). But for 1.44 beta1 I got ~0.8
That's strange, because I've actually got it faster on my system with that later version. So it's very processor-dependent. But I'll try to find some better optimization for the hash scanner (current is dirty).
Thanks Privalov for the 1.44:alright:
Here is an idea for the next release of FASM.
The Sphinx C-- language has an interesting feature,it allows to build a
kind of source code based library:
An example in C--, we have an 'include' file which contains
functions declared with ( : )
:void firstfunc(dword a,b)
{
.
.
}
:void secondfunc()
{
.
}
:void anotherfunc(word c)
{
.
}
The unused functions (declared with : ) are not included in the source
file. Suppose, I am invoking only the "firstfunc" function.It will be included in my source code.
These functions are acting like a hybrid of procedure and macro.
Privalov,could you introduce this feature in next versions of FASM?
Regards,
Vortex
Here is an idea for the next release of FASM.
The Sphinx C-- language has an interesting feature,it allows to build a
kind of source code based library:
An example in C--, we have an 'include' file which contains
functions declared with ( : )
:void firstfunc(dword a,b)
{
.
.
}
:void secondfunc()
{
.
}
:void anotherfunc(word c)
{
.
}
The unused functions (declared with : ) are not included in the source
file. Suppose, I am invoking only the "firstfunc" function.It will be included in my source code.
These functions are acting like a hybrid of procedure and macro.
Privalov,could you introduce this feature in next versions of FASM?
Regards,
Vortex
Why? What if functions are depended on others? Current model is fine.
You can easily implement it with macros:
macro lproc name
{ if used name
name: }
macro endlp
{ ret
end if}
lproc exampleproc
; ...
endlp
1.44 beta 2 is out - now I've also optimized a bit the hash scanner, but I haven't tested it on other processors that Duron yet, so please check it.
Why? What if functions are depended on others? Current model is fine.
Hello Comrade!
Did you ever use the Sphinx C-- compiler? The hybrid functions are very usefull. Even,if they are depended
on others,there is no any problem with them. :) The concept:By declaring hybrid functions, you can build
a kind of library for FASM. :)
Privalov,
Thanks for your reply!:alright:
Regards,
Vortex
1.44 beta 2 is out - now I've also optimized a bit the hash scanner, but I haven't tested it on other processors that Duron yet, so please check it.
the GUI version 1.44 beta 2 compile speed better in two times :)
processor AMD-K5 100 MHz :)
8.6 sec --> 4.5 sec :alright:
Hi, everybody
Maybe it's time to think about of making some kind of fast accessible form
of storing structures, equates, etc which usually don't need more than one pass.
2Privalov, if it's possible just dump to file already parsed equates, strucs def. etc, to a file and than on a next run when such file is included map it to fasm' process address space.
Maybe it's time to think about of making some kind of fast accessible form
of storing structures, equates, etc which usually don't need more than one pass.
2Privalov, if it's possible just dump to file already parsed equates, strucs def. etc, to a file and than on a next run when such file is included map it to fasm' process address space.
Wow!, It's faster than before :grin: (now ~0.4 on Celeron 1.2G Tulatin)
Ahhh!, I like it. :tongue:
Keep growing, Fasm! :alright:
(I'm still waiting for your 'back indent').
Ahhh!, I like it. :tongue:
Keep growing, Fasm! :alright:
(I'm still waiting for your 'back indent').
Looks like that timestamp is generated as minus two days.
Yes, you have discovered something I'd call "January bug" :grin:
It's fixed now.
It's fixed now.
Small bug report for FASMW 1.43 on (1.44 beta 3 included):
When you load FASMW in Windows XP and highlight some text and then hit "Backspace" the text is simply moved back a line instead of deleted.
When you load FASMW in Windows XP and highlight some text and then hit "Backspace" the text is simply moved back a line instead of deleted.
This is not a bug. Turn off "secure selection" to get the default Windows behaviour (this question had to be answered many times before).
Perhaps it should be turned off by default then.
(1.44 beta 3) ,
Arggg!, It turn back to ~0.6 :mad:
dunno why:confused:
Arggg!, It turn back to ~0.6 :mad:
dunno why:confused:
Arggg!, It turn back to ~0.6
dunno why
Must some fault of alignment. As I have tested it on my machine, on Duron it doesn't affect the speed noticeably, but maybe on Intel processors we need some certain alignment for hash scanner loop.
If you want, we can contact by mail and you'll do some testing for me.