• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[#Red] Red language group

Gerard
13-Jun-2012
[476]
While dreaming about the next best thing coming from the Red community 
... here are some IDEs for ARMs processors http://www.ti.com/lsds/ti/dsp/support/dev_tool/ccs_overview.page
 and then some emulators and analyzers http://www.ti.com/lsds/ti/dsp/support/emulator_analyzer_overview.page
Rebolek
14-Jun-2012
[477x3]
I've tried running Red/System on my Synology USBstation 2 and hello-world.reds 
works without problem. Great! Howerev, when I tried to run Kai's 
C-linrary (or other extensions), I ended up with this error:
./C-library: symbol lookup error: ./C-library: undefined symbol: 
atexit
any ideas how to solve this problem?
Pekr
14-Jun-2012
[480]
try to search the "atexit" at REBOL3 world, there's few remarks about 
that ...
Rebolek
14-Jun-2012
[481x3]
Thanks, I look into it.
Seems like atexit() is not implemented in some glibc versions.
Well, some progress! I changed atexit to __cxa_atexit and now I can 
run cURL test (with "Couldn't resolve host name" error). Mandelbrot 
and Fibonacci tests from C-library examples give me "Illegal instruction" 
error.
DocKimbel
14-Jun-2012
[484]
Is your platform ARM-based?
Rebolek
14-Jun-2012
[485]
Yes, it's got ARMv5TE processor. I guess it doesn't have FPU unit 
(so no wonder Mandelbrot test  doesn't run). I'm running some tests 
and I've got the Fibonacci demo running (after removing to-float).
DocKimbel
14-Jun-2012
[486x2]
An FPU-emulation should be available anyway, but might require a 
different calling convention than the one used by ARM port of Red/System 
currently.
I guess we would need a new compilation flag to choose between differents 
ABI.
Janko
14-Jun-2012
[488x2]
Hi, I am looking into OAuth. I see (and thank you a lot for this!) 
that Chriss Ross Gill created OAuth client part in the twitter library: 
http://reb4.me/r/twitter.html, I am reading into it, but does he 
or anyone else know how much additional work would be needed to do 
the rebol OAuth server part ?
Ah sorry! I wanted to post this to web, but got "internet got busy" 
and while I was trying to fix it I posted here
Kaj
14-Jun-2012
[490x3]
There's already a switch in the C library binding from atexit to 
__cxa_atexit for Syllable. I vaguely remember the problem was indeed 
also reported for other systems on ARM platforms. I can switch it 
for ARM as well as long as we don't have more specific info
Done
The last info was that there are still bugs remaining in Red on ARM 
to get the bindings working, so that's probably the problem with 
cURL
DocKimbel
14-Jun-2012
[493]
Still callback issues?
Kaj
14-Jun-2012
[494]
Dunno, you reported them :-)
DocKimbel
14-Jun-2012
[495]
I remember that Andreas should have made an entry in the bugtracker 
to describe a semantic issue with callbacks that could lead to crashes 
if the programmer was not very careful, but I can't find it. I guess 
I should dig out my IRC logs.
Kaj
14-Jun-2012
[496x2]
https://github.com/dockimbel/Red/issues/204
All I know is that you didn't get cURL and GTK working on ARM Debian
DocKimbel
14-Jun-2012
[498x2]
Thanks, so it seems we fixed that one.
Yep, GTK, not so far, cURL, I don't remember, will need to test it 
again.
Pekr
14-Jun-2012
[500]
Doc - I might have idea of how you will aproach port model in Red. 
What about events? Carl said, R3 had fast implementation, but we 
also looked into libraries like liboop, libevent, etc. What is the 
plan in that regard? I expect you created Red because you envisioned 
the concurrency is a must? I hope that RED will be a killer in fast 
event handling and concurrency :-)
Kaj
14-Jun-2012
[501]
LibEv is better
Pekr
14-Jun-2012
[502]
there is also some small library for threading, photonthreads, or 
something like that?
Andreas
14-Jun-2012
[503]
(protothreads)
DocKimbel
14-Jun-2012
[504]
Well, we need to integrate an R3-like async port/event system with 
multithreading (both internal threads and OS threads), that's the 
real challenge. So port! might be implemented as a sub-class of actor! 
(basically a message-based object). This is still rought as I haven't 
worked on the details of ports and actors yet. I'm not sure that 
using an external library for that very sensitive part would be a 
good idea, because we probably only need a tiny subset of the features 
provided by those libs and we need a perfect integration with the 
rest of the runtime/language. You can count of me to implement the 
solution that will give us the best performances, as this is a critical 
feature for being able to implement state-of-the-art servers...and 
you know that we want a very fast Cheyenne v2. ;-)
Pekr
14-Jun-2012
[505x2]
Those libraries might be good for inspiration - their code is MIT/BSD, 
cross-platform, documented limitations, etc. But I agree. I simply 
want event port being just another kind of ports, funcitoning as 
a kind of seris - lookup, traversla, sort, filtering, etc :-)
Can't wait, when we get to that level in RED .....
DocKimbel
14-Jun-2012
[507x3]
Protothreads is an interesting minimalistic approach to cooperative 
concurrency, but probably too limited for implementing something 
like task! or actor! BTW, I'm not sure if task! will be required 
in Red, in R3, it starts a new OS thread IIRC, although, I might 
use it to spawn a new process instead, as threads management will 
be covered by actors.
Those libraries might be good for inspiration

 Certainly! I have read the source of libevent in its early versions, 
 lot of interesting code there, but nothing really new since the famous 
 "C10K problem" article more than ten years ago.
I simply want event port being just another kind of ports, funcitoning 
as a kind of seris
 

Hasn't that model been abandoned in R3?
Pekr
14-Jun-2012
[510x3]
as Kaj said - there is new spin-off, LibEv, from 2007 - lighter, 
faster, removed original restrictions, etc. I do remember the C10K 
article, I suggested it to Carl, he read it, but his opinion was 
similar to your - simply that we don't need all those features. He 
probably wanted to rely on what is available under particular OSes 
...
Well, R3 moved to devices abstraction, that's first difference to 
R2 - an abstracted platform agnostic Core and surroundings. Not sure 
if there is any practical benefit ...
so, under R3, evt: open event:// works ...
DocKimbel
14-Jun-2012
[513x2]
I think that REBOL only uses select() for low level events handling, 
I would be surprized if it used the much faster alternatives (which 
are the core of libevent and derivatives).
Can you call all the series navigation actions on R3 ports?
Pekr
14-Jun-2012
[515x3]
you can look into Other section - that can be good reminder into 
ports, schemes, devices and low level event system - http://rebol.net/wiki/Table_Of_Contents
as for navigation, not sure ...
http://rebol.net/wiki/Event_System
Kaj
14-Jun-2012
[518x2]

I simply want event port being just another kind of ports, funcitoning 
as a kind of seris" 

Hasn't that model been abandoned in R3?"
Yes, R3 ports are thinner and more specialised
Gerard
14-Jun-2012
[520x2]
Hi Doc, check for a new donation from me through PayPal.  I could 
afford 100 Euros this time. Hope it will help you a bit more.
Recently tried to run the Hello World on my Android based Galaxy 
Samsung Tab 10 but after seeing the "executing ..." msg. Nothing 
appeared. I will try to look at what could be done but I suspect 
I also have to first learn a bit more about Android and my machine 
to help ... I'm very patient and began to read about the ARM. and 
Android itself. What an evolving world we live in ...
Steeve
14-Jun-2012
[522x2]
Doc: Working Actions I tested in R3: append, change, copy, pick, 
head, at, length?, tail; tail?,empty?, clear, first
Bugous/missing: last, foreach, second, third...
Oups! (skip, back, next )are also working
BrianH
15-Jun-2012
[524x2]
Steeve: first, second and so on are not actions in R3, they just 
call PICK. PICK is implemented for ports.
I prefer that model; more consistent.