FreeBASIC 1.09.0 Release

General discussion for topics related to the FreeBASIC project or its community.
Post Reply
fxm
Moderator
Posts: 12084
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by fxm »

paul doe wrote:So I'd say the warning in the manual is not a bad idea, indeed...
Proposed warning to add at description paragraph end of SUB and FUNCTION pages:
Warning for 64-bit compiler only: Regarding the choice of user procedure identifier names, an additional restriction to the normal Identifier Rules also excludes in the global namespace all register names or other symbols from the assembler format used, because causing assembler errors or runtime bugs (due to the 64-bit compiler not decorating procedure names).
[edit] (28 Aug 2021)
Done.
paul doe
Moderator
Posts: 1730
Joined: Jul 25, 2017 17:22
Location: Argentina

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by paul doe »

Looks good to me. Also, the clarification by srvaldez could also prove useful in helping resolving this issue if it already happens.
fxm
Moderator
Posts: 12084
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by fxm »

This is why I spoke of "..... all register names or other symbols from the assembler format used, .....".
fxm
Moderator
Posts: 12084
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by fxm »

Manpcnin wrote:Hey I have a minor feature request. Could we get a compiler intrinsic for "-O <level>"?
See at viewtopic.php?p=285110#p285110.
dodicat
Posts: 7976
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by dodicat »

Why does this not work.
(I will delete the post afterwards)

Code: Select all

 sub aa:end sub:aa
 sub ab:end sub:ab
 sub ac:end sub:ac
 sub ad:end sub:ad
 sub ae:end sub:ae
 sub af:end sub:af
 sub ag:end sub:ag
 sub ah:end sub:ah
 sub ai:end sub:ai
 sub aj:end sub:aj
 sub ak:end sub:ak
 sub al:end sub:al
 sub am:end sub:am
 sub an:end sub:an
 sub ao:end sub:ao
 sub ap:end sub:ap
 sub aq:end sub:aq
 sub ar:end sub:ar
 sub at:end sub:at
 sub au:end sub:au
 sub av:end sub:av
 sub aw:end sub:aw
 sub ax:end sub:ax
 sub ay:end sub:ay
 sub az:end sub:az
 sub ba:end sub:ba
 sub bb:end sub:bb
 sub bc:end sub:bc
 sub bd:end sub:bd
 sub be:end sub:be
 sub bf:end sub:bf
 sub bg:end sub:bg
 sub bh:end sub:bh
 sub bi:end sub:bi
 sub bj:end sub:bj
 sub bk:end sub:bk
 sub bl:end sub:bl
 sub bm:end sub:bm
 sub bn:end sub:bn
 sub bo:end sub:bo
 sub bp:end sub:bp
 sub bq:end sub:bq
 sub br:end sub:br
 sub bs:end sub:bs
 sub bt:end sub:bt
 sub bu:end sub:bu
 sub bv:end sub:bv
 sub bw:end sub:bw
 sub bx:end sub:bx
 sub by:end sub:by
 sub bz:end sub:bz
 sub ca:end sub:ca
 sub cb:end sub:cb
 sub cc:end sub:cc
 sub cd:end sub:cd
 sub ce:end sub:ce
 sub cf:end sub:cf
 sub cg:end sub:cg
 sub ch:end sub:ch
 sub ci:end sub:ci
 sub cj:end sub:cj
 sub ck:end sub:ck
 sub cl:end sub:cl
 sub cm:end sub:cm
 sub cn:end sub:cn
 sub co:end sub:co
 sub cp:end sub:cp
 sub cq:end sub:cq
 sub cr:end sub:cr
 sub cs:end sub:cs
 sub ct:end sub:ct
 sub cu:end sub:cu
 sub cv:end sub:cv
 sub cw:end sub:cw
 sub cx:end sub:cx
 sub cy:end sub:cy
 sub cz:end sub:cz
 sub da:end sub:da
 sub db:end sub:db
 sub dc:end sub:dc
 sub dd:end sub:dd
 sub de:end sub:de
 sub df:end sub:df
 sub dg:end sub:dg
 sub dh:end sub:dh
 sub di:end sub:di
 sub dj:end sub:dj
 sub dk:end sub:dk
 sub dl:end sub:dl
 sub dm:end sub:dm
 sub dn:end sub:dn
 sub dp:end sub:dp
 sub dq:end sub:dq
 sub dr:end sub:dr
 sub ds:end sub:ds
 sub dt:end sub:dt
 sub du:end sub:du
 sub dv:end sub:dv
 sub dw:end sub:dw
 sub dx:end sub:dx
 sub dy:end sub:dy
 sub dz:end sub:dz
 sub ea:end sub:ea
 sub eb:end sub:eb
 sub ec:end sub:ec
 sub ed:end sub:ed
 sub ee:end sub:ee
 sub ef:end sub:ef
 sub eg:end sub:eg
 sub eh:end sub:eh
 sub ei:end sub:ei
 sub ej:end sub:ej
 sub ek:end sub:ek
 sub el:end sub:el
 sub em:end sub:em
 sub en:end sub:en
 sub eo:end sub:eo
 sub ep:end sub:ep
 sub eq:end sub:eq
 sub er:end sub:er
 sub es:end sub:es
 sub et:end sub:et
 sub eu:end sub:eu
 sub ev:end sub:ev
 sub ew:end sub:ew
 sub ex:end sub:ex
 sub ey:end sub:ey
 sub ez:end sub:ez
 sub fa:end sub:fa
 sub fb:end sub:fb
 sub fc:end sub:fc
 sub fd:end sub:fd
 sub fe:end sub:fe
 sub ff:end sub:ff
 sub fg:end sub:fg
 sub fh:end sub:fh
 sub fi:end sub:fi
 sub fj:end sub:fj
 sub fk:end sub:fk
 sub fl:end sub:fl
 sub fm:end sub:fm
 sub fn:end sub:fn
 sub fo:end sub:fo
 sub fp:end sub:fp
 sub fq:end sub:fq
 sub fr:end sub:fr
 sub fs:end sub:fs
 sub ft:end sub:ft
 sub fu:end sub:fu
 sub fv:end sub:fv
 sub fw:end sub:fw
 sub fx:end sub:fx
 sub fy:end sub:fy
 sub fz:end sub:fz
 sub ga:end sub:ga
 sub gb:end sub:gb
 sub gc:end sub:gc
 sub gd:end sub:gd
 sub ge:end sub:ge
 sub gf:end sub:gf
 sub gg:end sub:gg
 sub gh:end sub:gh
 sub gi:end sub:gi
 sub gj:end sub:gj
 sub gk:end sub:gk
 sub gl:end sub:gl
 sub gm:end sub:gm
 sub gn:end sub:gn
 sub go:end sub:go
 sub gp:end sub:gp
 sub gq:end sub:gq
 sub gr:end sub:gr
 sub gs:end sub:gs
 sub gt:end sub:gt
 sub gu:end sub:gu
 sub gv:end sub:gv
 sub gw:end sub:gw
 sub gx:end sub:gx
 sub gy:end sub:gy
 sub gz:end sub:gz
 sub ha:end sub:ha
 sub hb:end sub:hb
 sub hc:end sub:hc
 sub hd:end sub:hd
 sub he:end sub:he
 sub hf:end sub:hf
 sub hg:end sub:hg
 sub hh:end sub:hh
 sub hi:end sub:hi
 sub hj:end sub:hj
 sub hk:end sub:hk
 sub hl:end sub:hl
 sub hm:end sub:hm
 sub hn:end sub:hn
 sub ho:end sub:ho
 sub hp:end sub:hp
 sub hq:end sub:hq
 sub hr:end sub:hr
 sub hs:end sub:hs
 sub ht:end sub:ht
 sub hu:end sub:hu
 sub hv:end sub:hv
 sub hw:end sub:hw
 sub hx:end sub:hx
 sub hy:end sub:hy
 sub hz:end sub:hz
 sub ia:end sub:ia
 sub ib:end sub:ib
 sub ic:end sub:ic
 sub id:end sub:id
 sub ie:end sub:ie
 sub ig:end sub:ig
 sub ih:end sub:ih
 sub ii:end sub:ii
 sub ij:end sub:ij
 sub ik:end sub:ik
 sub il:end sub:il
 sub im:end sub:im
 sub in:end sub:in
 sub io:end sub:io
 sub ip:end sub:ip
 sub iq:end sub:iq
 sub ir:end sub:ir
 sub it:end sub:it
 sub iu:end sub:iu
 sub iv:end sub:iv
 sub iw:end sub:iw
 sub ix:end sub:ix
 sub iy:end sub:iy
 sub iz:end sub:iz
 sub ja:end sub:ja
 sub jb:end sub:jb
 sub jc:end sub:jc
 sub jd:end sub:jd
 sub je:end sub:je
 sub jf:end sub:jf
 sub jg:end sub:jg
 sub jh:end sub:jh
 sub ji:end sub:ji
 sub jj:end sub:jj
 sub jk:end sub:jk
 sub jl:end sub:jl
 sub jm:end sub:jm
 sub jn:end sub:jn
 sub jo:end sub:jo
 sub jp:end sub:jp
 sub jq:end sub:jq
 sub jr:end sub:jr
 sub js:end sub:js
 sub jt:end sub:jt
 sub ju:end sub:ju
 sub jv:end sub:jv
 sub jw:end sub:jw
 sub jx:end sub:jx
 sub jy:end sub:jy
 sub jz:end sub:jz
 sub ka:end sub:ka
 sub kb:end sub:kb
 sub kc:end sub:kc
 sub kd:end sub:kd
 sub ke:end sub:ke
 sub kf:end sub:kf
 sub kg:end sub:kg
 sub kh:end sub:kh
 sub ki:end sub:ki
 sub kj:end sub:kj
 sub kk:end sub:kk
 sub kl:end sub:kl
 sub km:end sub:km
 sub kn:end sub:kn
 sub ko:end sub:ko
 sub kp:end sub:kp
 sub kq:end sub:kq
 sub kr:end sub:kr
 sub ks:end sub:ks
 sub kt:end sub:kt
 sub ku:end sub:ku
 sub kv:end sub:kv
 sub kw:end sub:kw
 sub kx:end sub:kx
 sub ky:end sub:ky
 sub kz:end sub:kz
 sub la:end sub:la
 sub lb:end sub:lb
 sub lc:end sub:lc
 sub ld:end sub:ld
 sub le:end sub:le
 sub lf:end sub:lf
 sub lg:end sub:lg
 sub lh:end sub:lh
 sub li:end sub:li
 sub lj:end sub:lj
 sub lk:end sub:lk
 sub ll:end sub:ll
 sub lm:end sub:lm
 sub ln:end sub:ln
 sub lo:end sub:lo
 sub lp:end sub:lp
 sub lq:end sub:lq
 sub lr:end sub:lr
 sub ls:end sub:ls
 sub lt:end sub:lt
 sub lu:end sub:lu
 sub lv:end sub:lv
 sub lw:end sub:lw
 sub lx:end sub:lx
 sub ly:end sub:ly
 sub lz:end sub:lz
 sub ma:end sub:ma
 sub mb:end sub:mb
 sub mc:end sub:mc
 sub md:end sub:md
 sub me:end sub:me
 sub mf:end sub:mf
 sub mg:end sub:mg
 sub mh:end sub:mh
 sub mi:end sub:mi
 sub mj:end sub:mj
 sub mk:end sub:mk
 sub ml:end sub:ml
 sub mm:end sub:mm
 sub mn:end sub:mn
 sub mo:end sub:mo
 sub mp:end sub:mp
 sub mq:end sub:mq
 sub mr:end sub:mr
 sub ms:end sub:ms
 sub mt:end sub:mt
 sub mu:end sub:mu
 sub mv:end sub:mv
 sub mw:end sub:mw
 sub mx:end sub:mx
 sub my:end sub:my
 sub mz:end sub:mz
 sub na:end sub:na
 sub nb:end sub:nb
 sub nc:end sub:nc
 sub nd:end sub:nd
 sub ne:end sub:ne
 sub nf:end sub:nf
 sub ng:end sub:ng
 sub nh:end sub:nh
 sub ni:end sub:ni
 sub nj:end sub:nj
 sub nk:end sub:nk
 sub nl:end sub:nl
 sub nm:end sub:nm
 sub nn:end sub:nn
 sub no:end sub:no
 sub np:end sub:np
 sub nq:end sub:nq
 sub nr:end sub:nr
 sub ns:end sub:ns
 sub nt:end sub:nt
 sub nu:end sub:nu
 sub nv:end sub:nv
 sub nw:end sub:nw
 sub nx:end sub:nx
 sub ny:end sub:ny
 sub nz:end sub:nz
 sub oa:end sub:oa
 sub ob:end sub:ob
 sub oc:end sub:oc
 sub od:end sub:od
 sub oe:end sub:oe
 sub of:end sub:of
 sub og:end sub:og
 sub oh:end sub:oh
 sub oi:end sub:oi
 sub oj:end sub:oj
 sub ok:end sub:ok
 sub ol:end sub:ol
 sub om:end sub:om
 sub oo:end sub:oo
 sub op:end sub:op
 sub oq:end sub:oq
 sub os:end sub:os
 sub ot:end sub:ot
 sub ou:end sub:ou
 sub ov:end sub:ov
 sub ow:end sub:ow
 sub ox:end sub:ox
 sub oy:end sub:oy
 sub oz:end sub:oz
 sub pa:end sub:pa
 sub pb:end sub:pb
 sub pc:end sub:pc
 sub pd:end sub:pd
 sub pe:end sub:pe
 sub pf:end sub:pf
 sub pg:end sub:pg
 sub ph:end sub:ph
 sub pi:end sub:pi
 sub pj:end sub:pj
 sub pk:end sub:pk
 sub pl:end sub:pl
 sub pm:end sub:pm
 sub pn:end sub:pn
 sub po:end sub:po
 sub pp:end sub:pp
 sub pq:end sub:pq
 sub pr:end sub:pr
 sub ps:end sub:ps
 sub pt:end sub:pt
 sub pu:end sub:pu
 sub pv:end sub:pv
 sub pw:end sub:pw
 sub px:end sub:px
 sub py:end sub:py
 sub pz:end sub:pz
 sub qa:end sub:qa
 sub qb:end sub:qb
 sub qc:end sub:qc
 sub qd:end sub:qd
 sub qe:end sub:qe
 sub qf:end sub:qf
 sub qg:end sub:qg
 sub qh:end sub:qh
 sub qi:end sub:qi
 sub qj:end sub:qj
 sub qk:end sub:qk
 sub ql:end sub:ql
 sub qm:end sub:qm
 sub qn:end sub:qn
 sub qo:end sub:qo
 sub qp:end sub:qp
 sub qq:end sub:qq
 sub qr:end sub:qr
 sub qs:end sub:qs
 sub qt:end sub:qt
 sub qu:end sub:qu
 sub qv:end sub:qv
 sub qw:end sub:qw
 sub qx:end sub:qx
 sub qy:end sub:qy
 sub qz:end sub:qz
 sub ra:end sub:ra
 sub rb:end sub:rb
 sub rc:end sub:rc
 sub rd:end sub:rd
 sub re:end sub:re
 sub rf:end sub:rf
 sub rg:end sub:rg
 sub rh:end sub:rh
 sub ri:end sub:ri
 sub rj:end sub:rj
 sub rk:end sub:rk
 sub rl:end sub:rl
 sub rm:end sub:rm
 sub rn:end sub:rn
 sub ro:end sub:ro
 sub rp:end sub:rp
 sub rq:end sub:rq
 sub rr:end sub:rr
 sub rs:end sub:rs
 sub rt:end sub:rt
 sub ru:end sub:ru
 sub rv:end sub:rv
 sub rw:end sub:rw
 sub rx:end sub:rx
 sub ry:end sub:ry
 sub rz:end sub:rz
 sub sa:end sub:sa
 sub sb:end sub:sb
 sub sc:end sub:sc
 sub sd:end sub:sd
 sub se:end sub:se
 sub sf:end sub:sf
 sub sg:end sub:sg
 sub sh:end sub:sh
 sub si:end sub:si
 sub sj:end sub:sj
 sub sk:end sub:sk
 sub sl:end sub:sl
 sub sm:end sub:sm
 sub sn:end sub:sn
 sub so:end sub:so
 sub sp:end sub:sp
 sub sq:end sub:sq
 sub sr:end sub:sr
 sub ss:end sub:ss
 sub st:end sub:st
 sub su:end sub:su
 sub sv:end sub:sv
 sub sw:end sub:sw
 sub sx:end sub:sx
 sub sy:end sub:sy
 sub sz:end sub:sz
 sub ta:end sub:ta
 sub tb:end sub:tb
 sub tc:end sub:tc
 sub td:end sub:td
 sub te:end sub:te
 sub tf:end sub:tf
 sub tg:end sub:tg
 sub th:end sub:th
 sub ti:end sub:ti
 sub tj:end sub:tj
 sub tk:end sub:tk
 sub tl:end sub:tl
 sub tm:end sub:tm
 sub tn:end sub:tn
 sub tp:end sub:tp
 sub tq:end sub:tq
 sub tr:end sub:tr
 sub ts:end sub:ts
 sub tt:end sub:tt
 sub tu:end sub:tu
 sub tv:end sub:tv
 sub tw:end sub:tw
 sub tx:end sub:tx
 sub ty:end sub:ty
 sub tz:end sub:tz
 sub ua:end sub:ua
 sub ub:end sub:ub
 sub uc:end sub:uc
 sub ud:end sub:ud
 sub ue:end sub:ue
 sub uf:end sub:uf
 sub ug:end sub:ug
 sub uh:end sub:uh
 sub ui:end sub:ui
 sub uj:end sub:uj
 sub uk:end sub:uk
 sub ul:end sub:ul
 sub um:end sub:um
 sub un:end sub:un
 sub uo:end sub:uo
 sub up:end sub:up
 sub uq:end sub:uq
 sub ur:end sub:ur
 sub us:end sub:us
 sub ut:end sub:ut
 sub uu:end sub:uu
 sub uv:end sub:uv
 sub uw:end sub:uw
 sub ux:end sub:ux
 sub uy:end sub:uy
 sub uz:end sub:uz
 sub va:end sub:va
 sub vb:end sub:vb
 sub vc:end sub:vc
 sub vd:end sub:vd
 sub ve:end sub:ve
 sub vf:end sub:vf
 sub vg:end sub:vg
 sub vh:end sub:vh
 sub vi:end sub:vi
 sub vj:end sub:vj
 sub vk:end sub:vk
 sub vl:end sub:vl
 sub vm:end sub:vm
 sub vn:end sub:vn
 sub vo:end sub:vo
 sub vp:end sub:vp
 sub vq:end sub:vq
 sub vr:end sub:vr
 sub vs:end sub:vs
 sub vt:end sub:vt
 sub vu:end sub:vu
 sub vv:end sub:vv
 sub vw:end sub:vw
 sub vx:end sub:vx
 sub vy:end sub:vy
 sub vz:end sub:vz
 sub wa:end sub:wa
 sub wb:end sub:wb
 sub wc:end sub:wc
 sub wd:end sub:wd
 sub we:end sub:we
 sub wf:end sub:wf
 sub wg:end sub:wg
 sub wh:end sub:wh
 sub wi:end sub:wi
 sub wj:end sub:wj
 sub wk:end sub:wk
 sub wl:end sub:wl
 sub wm:end sub:wm
 sub wn:end sub:wn
 sub wo:end sub:wo
 sub wp:end sub:wp
 sub wq:end sub:wq
 sub wr:end sub:wr
 sub ws:end sub:ws
 sub wt:end sub:wt
 sub wu:end sub:wu
 sub wv:end sub:wv
 sub ww:end sub:ww
 sub wx:end sub:wx
 sub wy:end sub:wy
 sub wz:end sub:wz
 sub xa:end sub:xa
 sub xb:end sub:xb
 sub xc:end sub:xc
 sub xd:end sub:xd
 sub xe:end sub:xe
 sub xf:end sub:xf
 sub xg:end sub:xg
 sub xh:end sub:xh
 sub xi:end sub:xi
 sub xj:end sub:xj
 sub xk:end sub:xk
 sub xl:end sub:xl
 sub xm:end sub:xm
 sub xn:end sub:xn
 sub xo:end sub:xo
 sub xp:end sub:xp
 sub xq:end sub:xq
 sub xr:end sub:xr
 sub xs:end sub:xs
 sub xt:end sub:xt
 sub xu:end sub:xu
 sub xv:end sub:xv
 sub xw:end sub:xw
 sub xx:end sub:xx
 sub xy:end sub:xy
 sub xz:end sub:xz
 sub ya:end sub:ya
 sub yb:end sub:yb
 sub yc:end sub:yc
 sub yd:end sub:yd
 sub ye:end sub:ye
 sub yf:end sub:yf
 sub yg:end sub:yg
 sub yh:end sub:yh
 sub yi:end sub:yi
 sub yj:end sub:yj
 sub yk:end sub:yk
 sub yl:end sub:yl
 sub ym:end sub:ym
 sub yn:end sub:yn
 sub yo:end sub:yo
 sub yp:end sub:yp
 sub yq:end sub:yq
 sub yr:end sub:yr
 sub ys:end sub:ys
 sub yt:end sub:yt
 sub yu:end sub:yu
 sub yv:end sub:yv
 sub yw:end sub:yw
 sub yx:end sub:yx
 sub yy:end sub:yy
 sub yz:end sub:yz
 sub za:end sub:za
 sub zb:end sub:zb
 sub zc:end sub:zc
 sub zd:end sub:zd
 sub ze:end sub:ze
 sub zf:end sub:zf
 sub zg:end sub:zg
 sub zh:end sub:zh
 sub zi:end sub:zi
 sub zj:end sub:zj
 sub zk:end sub:zk
 sub zl:end sub:zl
 sub zm:end sub:zm
 sub zn:end sub:zn
 sub zo:end sub:zo
 sub zp:end sub:zp
 sub zq:end sub:zq
 sub zr:end sub:zr
 sub zs:end sub:zs
 sub zt:end sub:zt
 sub zu:end sub:zu
 sub zv:end sub:zv
 sub zw:end sub:zw
 sub zx:end sub:zx
 sub zy:end sub:zy
 sub zz:end sub:zz


 
On compile it throws out compiler errors( Assembler messages)
But the line numbers in in the .asm file do not line up with the error line numbers.
So it makes it difficult to pin point the error in 'call'

Code: Select all

   .asm: Assembler messages:
Path to the .asm:6718: Error: operand type mismatch for `call'
Path to the .asm:6722: Error: operand type mismatch for `call'
Path to the .asm:6743: Error: operand type mismatch for `call'
Path to the .asm:6747: Error: operand type mismatch for `call'
Path to the .asm:6769: Error: operand type mismatch for `call'
Path to the .asm:6773: Error: operand type mismatch for `call'
Path to the .asm:6780: Error: operand type mismatch for `call'
Path to the .asm:6795: Error: operand type mismatch for `call'
Path to the .asm:6799: Error: operand type mismatch for `call'
Path to the .asm:6805: Error: operand type mismatch for `call'
Path to the .asm:6829: Error: invalid use of operator "EQ"
Path to the .asm:6831: Error: operand type mismatch for `call'
Path to the .asm:6857: Error: operand type mismatch for `call'
Path to the .asm:6869: Error: invalid use of operator "GE"
Path to the .asm:6883: Error: operand type mismatch for `call'
Path to the .asm:6884: Error: invalid use of operator "GT"
Path to the .asm:6997: Error: invalid use of operator "LE"
Path to the .asm:7012: Error: invalid use of operator "LT"
Path to the .asm:7049: Error: invalid use of operator "NE"
Path to the .asm:7191: Error: operand type mismatch for `call'
Path to the .asm:7192: Error: operand type mismatch for `call'

Results:
Compilation failed
 
Tried in various ides -gen gcc 64 bits, all the numbers were out.
srvaldez
Posts: 3373
Joined: Sep 25, 2005 21:54

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by srvaldez »

dodicat, that the error line does not match worries me also, same thing happened to my gs example
however it compiles and runs without complaints if you use -asm att
dodicat
Posts: 7976
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by dodicat »

Thanks srvaldez.
I am trying to enumerate all those names which clash (without any complier switches) as you probably have guessed.
I can do all the 2,3, and 4 character names, there are a lot of combinations, but I can automate the process if the line numbers in the compiler log matched up with the lines in the .asm file, which they don't.
I have tried bare bones console compile as well as several ides with no luck.
srvaldez
Posts: 3373
Joined: Sep 25, 2005 21:54

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by srvaldez »

dodicat, I just looked at the assembler output and they match perfectly so the error line numbers are ok ( option -RR )
however, I don't know if fbc will continue to report all errors until the end of the source code or at some point bail out with too many errors
I don't know if there's someway to force fbc to continue till the end regardless the number of errors
dodicat
Posts: 7976
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by dodicat »

Hi srvaldez
-maxerr Can find you most of them.
-rr here does not match up properly.
...
Bleeding heck, -RR is OK, but -rr is not.
Thanks srvaldez.
dodicat
Posts: 7976
Joined: Jan 10, 2006 20:30
Location: Scotland

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by dodicat »

srvaldez
using maxerr "inf" as switch.
Here are all the 2 and 3 digit names which cause a compile error.

Code: Select all


      AH
      AL
      AXL
      BH
      BL
      BPL
      BXL
      CH
      CL
      CS
      CXL
      DH
      DIL
      DL
      DS
      DXL
      EAX
      EBP
      EBX
      ECX
      EDI
      EDX
      EIP
      EQ
      ES
      ESI
      ESP
      FS
      GE
      GS
      GT
      LE
      LT
      NE
      RIP
      SIL
      SPL
      SS
      ST 
None of the four digit combinations caused a compile error.
It took nearly two hours to compile all combinations of four digits (456910 lines).
There will be many silent errors of course overall, 2, 3, or 4 digits (compile success), these will probably cause a crash at runtime.
I am not sure how to get and enumerate these, perhaps getting a glossary of every gnu assembler keyword and testing (could be automated of course).
To date I haven't found a complete list, only bits and pieces.
Maybe it should be noted at a convenient place that switch -RR should be used (as you have found), and not -rr if you require an accurate error line number in the .asm file.
I must have wasted half an hour messing with -rr, mainly because I use fbide (-RR is not possible)
SARG
Posts: 1757
Joined: May 27, 2005 7:15
Location: FRANCE

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by SARG »

AXL, BXL, CXL, DXL : Don't know what they are.....

It seems I did a mistake with eax ecx edx ebx esi edi esp ebp r8d r9d r10d r11d r12d r13d r14d R15d which give a compilation error.
However ax and so on don't ?????

I change my post in wiki improvements.
@fxm sorry you need to change the documentation.
fxm
Moderator
Posts: 12084
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by fxm »

'On' is a FreeBASIC keyword (On Error, On Goto, On Gosub).
SARG
Posts: 1757
Joined: May 27, 2005 7:15
Location: FRANCE

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by SARG »

and so on = etc :-)

I wanted to say ax , bx, etc only 16 bits don't throw an assembler error while eax, ebx 32 bits throw surprisingly an error
Last edited by SARG on Aug 31, 2021 23:41, edited 1 time in total.
fxm
Moderator
Posts: 12084
Joined: Apr 22, 2009 12:46
Location: Paris suburbs, FRANCE

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by fxm »

For an easier search, I have reordered the names in alphabetical order (like dodicat):
Identifier Rules
srvaldez
Posts: 3373
Joined: Sep 25, 2005 21:54

Re: FreeBASIC 1.08.1 and 1.09.0 Development

Post by srvaldez »

thank you dodicat, I like your outside-of-the-box approach to find solutions to a problem
like SARG I don't know about AXL, BXL, CXL, DXL the only thing thar occurs to me is that it could possibly refer to AX-low and so on but then why is there no AXH ?
Post Reply