r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Red] Red language group

Dockimbel
11-Mar-2011
[275x2]
The compiler chokes on the new version of this function, but works 
with the old one.
It was missing a to-integer conversion: power-of-2?: func [n [integer!]][if 
zero? n - 1 and n [to integer! log-2 n]]
Steeve
11-Mar-2011
[277x2]
ah, yes sorry
Should have tested with the compiler.
sorry
Dockimbel
11-Mar-2011
[279]
Fixed. Thanks for the nice code reduction ;-)
Steeve
11-Mar-2011
[280x2]
well it should be a little little faster aswell ;-)
I saw some rooms for code factorization also, but you want it as 
fast as it can, I guess
Dockimbel
11-Mar-2011
[282]
For now, it's a prototype code, it doesn't need to be much micro-optimized 
as it will be fully rewritten in a few months using the Red language.
Steeve
11-Mar-2011
[283x2]
I see that you use a lot, nested EITHER structures.
Personnaly I prefer flat CASE structures, more readable.
And i also think CASE could be faster.
Yeah, it's temporary.
Dockimbel
11-Mar-2011
[285]
I guess you're looking at IA32.r/emit-path code?
Steeve
11-Mar-2011
[286]
yes
Dockimbel
11-Mar-2011
[287]
I need to factorize the code first, there's some redundancies, but 
it's also untested code. So, once it will work ok, I'll clean it 
up.
Steeve
11-Mar-2011
[288]
Go Go Gadget
Dockimbel
11-Mar-2011
[289x2]
:-)
Btw, you've opened an issue ticket too...good opportunity for me 
to test github's tickets management options.
Steeve
11-Mar-2011
[291]
Hm... I did nothing though.
Dockimbel
11-Mar-2011
[292x2]
It seems a ticket is opened for each pull request...
I guess it's automated.
Steeve
11-Mar-2011
[294]
I just click ramdomly like a foul
Dockimbel
11-Mar-2011
[295]
lol
Steeve
11-Mar-2011
[296]
But how can I resync my fork, I wonder...
I don't see your modification
Dockimbel
11-Mar-2011
[297x2]
I guess you need to pull changes from my repo (dockimbel/Red)
This is my commit: https://github.com/dockimbel/Red/commit/e9c6e78cf77ed388b688681d463a9960952f5a79
Steeve
11-Mar-2011
[299x2]
got it
it's in the 'fork queue'
But I can't apply my previous commits, they failed.
I just applied your commit and now it's ok.
So it's ok.
Dockimbel
11-Mar-2011
[301]
Are you using a Git client or just github's web UI?
Steeve
11-Mar-2011
[302x3]
Both of them.
TortoiseGit on my PC
I made a clone of my fork on my PC
I only forgot, that I must commit the both
Andreas
11-Mar-2011
[305x2]
steeve, locally do a "git pull --rebase" from doc's repo
(that's the effect of one shortcoming of github's fork queue)
Dockimbel
11-Mar-2011
[307]
Good to know!
Dockimbel
13-Mar-2011
[308]
Thanks to Andreas' help, we now have a first experimental support 
for Linux/ELF for Red/System. It's still very limited (basically 
just being able to call a system function with an argument), but 
it's a good start. It should be extended in the next days to support 
compilation of the hello.reds demo script.
Oldes
13-Mar-2011
[309]
Nice. So you will not postpone it?
Dockimbel
13-Mar-2011
[310x3]
Nope, seems that a ELF support large enough to run the demo script 
could be doable tomorrow or in the next days.
Btw, Red/System is now able to do syscalls directly, bypassing the 
libc dependency.
We'll see if this can hold long enough to avoid calling the libc 
at all.
Kaj
13-Mar-2011
[313]
Will that be optional? The libc interface is actually much more portable 
than kernel interfaces
Andreas
13-Mar-2011
[314x3]
yes
libc support will come as soon as we get support for a loader done
but syscall support is nice (and lean) on it's own :)
Kaj
13-Mar-2011
[317x2]
It is
So can't Red load dynamic libraries yet?
Andreas
13-Mar-2011
[319]
not on linux/elf, no
Kaj
13-Mar-2011
[320]
Ah
Dockimbel
13-Mar-2011
[321x2]
Kaj: I had a quick look at *BSD syscalls, there are pretty much the 
same as Linux (at least for the most used ones). The calling convention 
is different thought, but can be supported by one or two more lines 
of code in Red/System emitter.
When I see how Carl fights with various libc versions...I wonder 
if syscalls are not an easier path even if it can have some minor 
porting costs here and there? Anyway, a libc mapping will be possible 
soon, so all options are open.
Kaj
13-Mar-2011
[323x2]
I'm not sure the current R3 versions for different GLibC versions 
make any difference. It's R2 that has problems, but usually with 
the higher level X libraries
The syscall calling convention on Syllable is also different. It 
doesn't use SYSENTER/SYSEXIT yet