flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
LocoDelAssembly 23 Dec 2006, 05:43
Both works fine in FASMW 1.64 (throws the appropiate error of course but without any crash).
|
|||
![]() |
|
LocoDelAssembly 27 Dec 2006, 16:26
This bug keeps in version 27 December 2006
![]() |
|||
![]() |
|
Tomasz Grysztar 27 Dec 2006, 16:34
There would be a version number change if there was a modification of core. The frequent updates are due to the interface development (FASMW/FASMD mainly - note that packages for Linux/Unix were not updated).
|
|||
![]() |
|
Tomasz Grysztar 27 Dec 2006, 19:12
I guess you were concerned because of the delay between the report and the fix?
![]() Well, it seems that the server has been updated with a new version of Tomasz, which appears to be a bit slower... ![]() |
|||
![]() |
|
LocoDelAssembly 27 Dec 2006, 19:37
hahaha, thanks for the fix
![]() BTW, it's OK to no report any error? the following code compiles a nicely 0 byte binary Code: if (~eq) && () db "Hello" end if FASM 1.64 inmediately refuses to compile that code telling that there is an invalid value. Things like "if (~eq) && (~ /-*+-)" is also acepted by the lastest version but not accepted by FASM 1.64 and both doesn't accept "if (~eq) && ~ /-*+-" |
|||
![]() |
|
Tomasz Grysztar 27 Dec 2006, 19:51
This is the so called "lazy evaluation" - when the value before "&" is false, the rest is not even evaluated. Because of the bug that was corrected by 1.67.17, the earlier versions did not skip logical values containing round brackets correctly, however. And the fix in 1.67.17 contained a mistake that made the reported crash.
PS. Latest one DOES accept "if (~eq) && ~ /-*+-". PS2. Note that "&&" is interpreted as "& (empty logical value) &". |
|||
![]() |
|
LocoDelAssembly 27 Dec 2006, 20:18
Quote:
You're right :S Well, it's a little strange to allow invalid expressions, I though that this "lazy evaluation" was just not evaluate subexpresions when not needed BUT still verifying the validity of the entire expression once. Quote:
Sometimes I feel like writing in C apparently ![]() |
|||
![]() |
|
Tomasz Grysztar 27 Dec 2006, 21:28
I was still too hasty, one more correction was needed. There's a silent update, don't tell anyone.
![]() LocoDelAssembly wrote: Well, it's a little strange to allow invalid expressions, I though that this "lazy evaluation" was just not evaluate subexpresions when not needed BUT still verifying the validity of the entire expression once. The validity of the ENTIRE expression is still checked - the "if (~eq) && ~ /-*+-" is valid expression, but "if (~eq) & (~ /-*+-" is not. The values themselves are not checked, but since you can compare almost anything with the EQ or EQTYPE operators, that's not that strange. |
|||
![]() |
|
LocoDelAssembly 27 Dec 2006, 21:55
OK
![]() |
|||
![]() |
|
vid 31 Dec 2006, 08:30
just wondering: any chance to use EQ and EQTYPE on "(" and ")" ?
|
|||
![]() |
|
Tomasz Grysztar 31 Dec 2006, 08:53
There's no problem with this now.
|
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2023, Tomasz Grysztar. Also on GitHub, YouTube, Twitter.
Website powered by rwasa.