Re: Time to finish RedyCode 1.0
- Posted by petelomax Jan 31, 2017
- 3679 views
- I would like to get RedyCode working with Phix, too.
I should warn you that is not likely to be trivial. Some quick tips follow.
First you will need to hide /std from Phix (but not OE), eg
--/* include std/dll.e include std/machine.e --*/
There is no way Phix can support all of std/, the best I can do is extract individual routines one at a time, as needed.
Of course all the ones that get used the most often have already been done.
Second, you'll need a bodged euphoria/info.e, specifically
--/**/constant version_info = {0,0,0,0,0,0,"unknown",0} --/* constant version_info = machine_func(M_EU_INFO, {}) --*/
and
global function arch_bits() --/**/ return sprintf( "%d-bit", machine_bits() ) --/* return sprintf( "%d-bit", 8 * sizeof( C_POINTER ) ) --*/ end function
Thirdly, you will probably need a fair bit of sequence-op stuff such as
--/**/ plblpos = sq_add(wrect[1..2],wcprops[wcpLabelPos][idx]) --/* plblpos = wrect[1..2] + wcprops[wcpLabelPos][idx] --*/
Lastly, Phix has recently (possibly temporarily) ditched "without warning".
To avoid warnings on implicit forward calls, make them explicit.
Just copy the declaration line higher up, prefixed with forward, eg:
forward procedure update_var(string name) ... update_var(xxx) ... procedure update_var(string name) end procedure
The recent experience with Judith's IDE on Phix went much more smoothly than I expect RedyCode will, because it was all 3.0-compatible code (and no std/).
Pete