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

World: r3wp

[Red] Red language group

Kaj
29-Jun-2011
[2598]
Once there are 64 bits values, it may be possible to shuffle them 
as floating point values between libraries, without Red being aware 
what they're used for
Dockimbel
29-Jun-2011
[2599]
Good point.
Kaj
29-Jun-2011
[2600]
When floats are passed to C functions, can they be in normal registers 
or must they be in FPU registers?
Dockimbel
29-Jun-2011
[2601]
If the calling convention is cdecl, they are just pushed on stack.
Kaj
29-Jun-2011
[2602]
That seems like a nice shortcut, then
Dockimbel
29-Jun-2011
[2603x2]
That would only work for literal float values.
If you use a variable, you need to pass thru the registers.
Kaj
29-Jun-2011
[2605]
The FPU registers?
Dockimbel
29-Jun-2011
[2606x2]
In the float case, yes FPU registers.
IA32 32-bit registers can't hold C double floats (64-bit).
Kaj
29-Jun-2011
[2608x3]
I've started working on a cURL binding. It can print the cURL version 
now :-)
I could call it a port from the R3 binding, but it will be more like 
a rewrite
The dynamics in Red are quite different
Dockimbel
29-Jun-2011
[2611x4]
You mean in Red/System. Red does not exist yet.
I will improve the web site that make that difference more clear.
Red/System can hardly be compared to REBOL, they don't live at the 
same level of abstraction.
Great to know you are working on a new binding. Let me know when 
you will put it online, so I can add a link from red-lang.org.
Kaj
29-Jun-2011
[2615x2]
As long as Red proper doesn't exist, I use Red to refer to Red/System 
:-)
I'm careful not to do that in publications, though
Andreas
29-Jun-2011
[2617]
http://rebol.esperconsultancy.nl/Red-ZeroMQ-binding/doc/trunk/COPYRIGHT.txt
refers to Red :)
Kaj
29-Jun-2011
[2618]
Ah, yes, because it will be a binding for Red, even though the binding 
is written in Red/System
Andreas
29-Jun-2011
[2619]
Hmm, form me the AltME large font swallowed the "refers to Red :)" 
remark.
Kaj
29-Jun-2011
[2620x2]
Not on my screen size
Since R3 bindings are written in C, their level is comparable to 
a binding in Red/System. But the dynamics are quite different, that's 
what I meant
Andreas
29-Jun-2011
[2622]
looking forward to more weird bugs discovered by the curl binding 
:)
Kaj
29-Jun-2011
[2623x2]
I hope they were all shaken out with the other bindings :-)
Hm, a cURL progress callback needs floats. It's pretty limiting if 
you can't get progress feedback
Dockimbel
29-Jun-2011
[2625]
You should be able to pass 2 integers (if it's a 'double or just 
one if it's a 'single), then do the float->integer (by doing a * 
100 e.g.). Probably fun to code. :-)
Kaj
29-Jun-2011
[2626]
But you said they must be passed via the FPU?
Dockimbel
29-Jun-2011
[2627]
Right, if you want them in a variable. What I was proposing here 
is to split them from the stack by declaring 2 integers, so that 
the float gets stored in 2 arguments (supposing it is a double).
Kaj
29-Jun-2011
[2628]
If cdecl functions pass them on the stack, they may be shuffled between 
them
Dockimbel
29-Jun-2011
[2629]
The stack order for cdecl and stdcall (used by Red/System) is the 
same.
Oldes
29-Jun-2011
[2630]
Almost everything needs floats... better to wait for proper implementation.
Dockimbel
29-Jun-2011
[2631]
Well, it depends what are the boundaries of your "everything". From 
my own experience, except for 2D/3D and scientific calculations, 
they are rarely needed.
Oldes
29-Jun-2011
[2632x2]
Well, you need it for music and graphics. That's almost everything 
for me. I was checking the FMOD binding, and it's not so bad... at 
least if you don't need to change volume or some more advanced effects:)
Is this useful? http://en.wikibooks.org/wiki/X86_Disassembly/Floating_Point_Numbers
Andreas
29-Jun-2011
[2634]
It is another source to confirm that cdecl/stdcall both pass floating 
point arguments via the normal stack :)
Kaj
29-Jun-2011
[2635x3]
Got cURL to read a website and print it:
curl-begin curl-global-all
session: curl-new-session
curl-set session curl-set-upload?  as variant! no
curl-set session curl-set-url  as variant! "http://rebol.com"
curl-do session
curl-end-session session
curl-end
Not as concise as READ "http://rebol.com"but we'll get there
Kaj
30-Jun-2011
[2638x2]
Added a higher level interface that reduces that to
curl-begin
session: curl-new-session
curl-read session
curl-do session "http://rebol.com"
curl-end-session session
curl-end
NickA
30-Jun-2011
[2640]
Next: wxWidgets :)
Kaj
30-Jun-2011
[2641x4]
They say it's a man year work to port it
In any case, I'm not going to do it
But I can upload a file to FTP now
That's direct from disk, so large files can be uploaded without using 
much memory
GrahamC
1-Jul-2011
[2645]
Can you do multiple uploads concurrently?
Kaj
1-Jul-2011
[2646x2]
No, I can upload one file from disk exclusively. The binding is two 
days old
For multiple concurrent uploads before next week, use my R3 binding