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

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp917
r3wp9345
total:10262

results window for this page: [start: 10101 end: 10200]

world-name: r3wp

Group: #Boron ... Open Source REBOL Clone [web-public]
Carl:
8-Feb-2006
PS: I'd really like to get more help with REBOL.  Problem is, out 
of 100 users, there are normally only about 1 or 2 that will help 
out.
Carl:
8-Feb-2006
Yes, everyone seems to ignore all the bugs in other programs, like 
Win32 itself. But,... not to get onto that track.
[unknown: 9]:
8-Feb-2006
Altme is buggy.

  Graham...........on that I have to call BS!  AltME has less bugs 
  in it that almost any multifunctional application I know of.  It 
  should get a bloody award.
Joe:
9-Feb-2006
It's great to find out about this project. It would help a lot if 
any of you know the developers of the two previous related projects 
(sievertsen.de - freebell.sf.net) and (softinnov.org - dockimbel 
- r#) and get them to contribute to Orca. It looks like orca is very 
close to getting some momentum !
JaimeVargas:
9-Feb-2006
Sunanda. I fully agree, and the reason for my asking. I will wait 
for a bit more input before deciding which route. An solution is 
to create rebol-compat mezz. That way you get the best of both worlds.
Anton:
11-Jul-2006
May have to wait for Jaime to get back for the answer to that one, 
he manages the chatroom.
Kaj:
11-Jul-2006
How to get in as guest?
Henrik:
12-Jul-2006
how does rebol.net get its chat lists? is it a separate script that 
digs through the archives stored on one machine?
Anton:
12-Jul-2006
It's not webcentric, as Reichart is at pains to explain so often. 
:)  but that's what we get to look at most of the time at the moment.
JaimeVargas:
12-Jul-2006
That is the simplest. I just need to get meme9 to provide logs for 
it. So people can get up to speed.
Pekr:
13-Jul-2006
If we get extensible R3, who needs open source just for the sake 
of open source? The only part closed will be the language itself 
...
Pekr:
13-Jul-2006
my opinion is, that Orca should stick to compatibility mode right 
now, before it is clear, what R3 offers on its own feature wise (tail 
recursion etc. discussed here), because later, if Orca now goes its 
own way, it may not be easily possible to get on pair with R3 compatibility 
wise ....
Anton:
13-Jul-2006
Kaj, and anyone else new to the discussion, I'm trying to get a consensus 
on the future direction of Orca. It is a divergence from Rebol, as 
stated on these pages:
http://trac.geekisp.com/orca/wiki/OrcaProject
http://trac.geekisp.com/orca/wiki/OrcaBehavior
JaimeVargas:
13-Jul-2006
Life is funny for months, I encourage people to work on Orca, when 
KarlR and myself decide to quit, we get new fuel. Funny.
Henrik:
13-Jul-2006
that is sure to get someones atttention
Anton:
13-Jul-2006
Kaj, also, we can get web published here very easily if/when we want.
Kaj:
13-Jul-2006
The other issue is that Karl is continuing with Thune. That's going 
to be the first place to get code from to integrate with Orca, and 
that would make it LGPL again
Anton:
13-Jul-2006
Alright, I'd better get back to coding...
Kaj:
19-Sep-2006
I'll start doing some things on the project site in the future, but 
I've got a lot of other stuff going on, so it will take some time 
until I get to it
Normand:
3-Dec-2006
As Orca is backtracking Rebol why not backtrack the name : lober 
a lob in tennis is to get the ball over the other player : ).  It 
is free on Freshmeat.
Kaj:
21-Nov-2009
A little, but you get to load the entire environment over and over 
again for each, possibly short-lived, REBOL process you start
Kaj:
21-Nov-2009
I will not get into the anti-divisive properties of the LGPL and 
GPL here
Kaj:
21-Nov-2009
Syllable is an open source project and was always clearly presented 
as such. We do that for one overriding reason only: to never get 
in the Atari/Amiga/RiscOS/BeOS situation again, where commercial 
entities destroy your platform
Group: Red ... Red language group [web-public]
james_nak:
3-Dec-2011
I agree with Gregg, great job. I tempted to pull out my Sharp Zaurus 
SL-6000 (xscale-based) just to see if I could get Red to compile 
on that but I had better return to my "work".  :-(
Janko:
23-Dec-2011
that is awesome, making bindings to api-s is rewarding by itself 
(because you get to see results/apps) to those that need it so now 
that core runs on it I am sure rest will follow.
ArthurIngram:
24-Dec-2011
is it possible to get guide for new bees and info on the IDE.... 
from reading it looks like the GUI will be gtk+
Dockimbel:
28-Dec-2011
I will give it a new try to see if I can get Gtk binding working.
Dockimbel:
28-Dec-2011
If I remove the atexit() dependency, I get segfaults on first calls 
to external functions (on printing the GTK version).
Pekr:
29-Dec-2011
I think we don't, so maybe just a preparation for what is about to 
come one day :-) IIRC Doc was investigating, what would it take to 
get floats supported by RED/System :-)
Kaj:
5-Jan-2012
The people who are supposed to be wise don't get it, either:
Dockimbel:
8-Jan-2012
Also, I will get my hands on the Raspberry first, we'll see for others 
after that. (I admit that the BeagleBone boars specs are seducing 
too)
Andreas:
8-Jan-2012
I have a rather nice Cortex-M3 based board lying around as well. 
So maybe I'll get around to tackle the Thumb profile some day :)
Kaj:
8-Jan-2012
On Syllable, I get:
Kaj:
9-Jan-2012
On Syllable, I now get:
Oldes:
10-Jan-2012
Is it already possible to get input args (when I run the app from 
console)?
Oldes:
26-Jan-2012
btw... if I do print float, I get result like: 100.00000000000000 
. I guess you know this issue.
Pekr:
26-Jan-2012
that's it - you just get used to it. Now imagine your source code 
- if Oldes is right, then 99% of time you are going to see print-line, 
instead of print, in your source code. Well, it depends how often 
do you actually print :-)
Kaj:
26-Jan-2012
Your statement seems to be that R2 and R3 are compatible. Examples 
cannot prove that. Counterexample falsifying that: for my CMS of 
towards 4000 lines, although I wrote it in basic R2 to avoid porting 
issues, I had to make extensive changes throughout and a number of 
alternative functions and wrappers to get it to work on R3
PeterWood:
27-Jan-2012
I removed run-test.r as it was becoming difficult to get working 
once we needed to have tests not only in the red-system/tests dir. 
(I now use a script in another language which seems to be more flexible 
in it's file path handling.)

I've emailed a copy of the run-test.r to Oldes.


I'll take another look at getting run-test.r to run a test from any 
directory. If I can I'll restore it, if not I'll chane the docs.
Dockimbel:
28-Jan-2012
Code review of your pull request finished. Only minor things except 
maybe for the addition in `get-variable-spec` that might cause some 
issues.
Dockimbel:
28-Jan-2012
Also, do not forget to `git rebase` your forked branch to get all 
the latest commits.
Andreas:
31-Jan-2012
i.e. you won't get a "funcall" node in the AST
BrianH:
1-Feb-2012
In some other REBOL-like languages there are some inherent conflicts 
between some path element types (notably dates) and the path separator 
/ itself, plus the final : on a set-path is considered part of the 
path instead of being a set-word element contained in the path, and 
the same for a leading : in a get-path not being part of a get-word 
first element (in R3). There's a fairly well-defined set of precedence 
rules, but for REBOL-like languages other than Red those rules are 
not very well documented, and they can therefore sometimes vary from 
language to language.
Oldes:
1-Feb-2012
is it possible to get pointer value from variable declared as c-string?
GrahamC:
6-Feb-2012
So a few natives get written in R/S, and then use those to write 
the core of Red.  And those that need to be rewritten in R/s can 
be done as a later optimization.
Pekr:
11-Feb-2012
I am trying to wrap our LED screen control dll. I am not sure how 
well it is defined, as LED Studio and surrounding SW is rather weak 
and sometimes crashes, but I tried in R2, thinking I again reached 
some R2 DLL interfacing limit/bug, and am trying now in Red/System. 
Well, my first attempt to wrap some DLL functions here. So - I can 
turn-on/off led screen, even if I don't set COM port, open-sending-card, 
etc. But when I try to call functions to get e.g. brightness, contrast, 
it crashes. Those funcs are defined as e.g.:

typedef int	 (WINAPI *LSN_GETBRIGHT)();       // 0..100
typedef bool (WINAPI *LSN_SETBRIGHT)(int);
typedef int (WINAPI *LSN_GETCOLORTEMP)(int);//ScreenNumb

typedef bool (WINAPI *LSN_SETCOLORTEMP)(int,int);//ScreenNumb,nColorId 
0,1,2,3


None of above functions work for me, although above code is from 
sources to LEDSet application, where those funcitons work, those 
are just being set via dialog boxes (which I can invoke even from 
Red/System, so those are part of DLL ...

My definitions are:

      led-get-brightness: "LSN_GetBright" [
         return: [integer!]
      ]           

      led-set-brightness: "LSN_SetBright" [
         brightness [integer!]
         return: [integer!]
      ]

      led-get-color-temperature: "LSN_GetColorTemp" [
          screen-number [integer!]
          return: [integer!]
       ]                 


etc. So what coul be causing run time error? I am running on a PC, 
where I don't have internal LED screen communication card. I thought, 
that DLL functionality might check for the screen, can't find it, 
and so the app returns error, which does not fit return value - e.g. 
some error code/string, or a dialog box. But moving the exe to the 
PC where the card is, it i just the same - some functions work, I 
can see LED screen being turned on/off, but those brightness etc. 
don't ....
Pekr:
11-Feb-2012
The error I get is something like this:

*** Runtime Error 99: unknown error
*** at: 7572FC56h
Kaj:
12-Feb-2012
You should bind the GetProcAddress function (I think there are already 
Red/System Windows examples floating around that use it), find out 
how to get the value of the g_hLedCtrlInst library handle, and use 
them to load the functions like the C code does
Pekr:
12-Feb-2012
hmm, as I am not loading the library myself (IIRC R2 had something 
like addres-of), but Red/System is doing so. I wonder, if there is 
a way of how actually get the library handle ...
Pekr:
12-Feb-2012
Hmm, so in my case the situation in Red/System is even worse than 
possibly in R2 and World, where I could get such a handle from load/library 
directive, whereas in Red/System, what you describe, is writing completly 
separate layer. In fact, C's LoadLibrary is not difficult to handle, 
but still - a C level coding, which I thought is almost eliminated 
for wrapping purposes ...
Pekr:
12-Feb-2012
So, if I would wrap LoadLibrary and GetProcAddress, I could get what 
you describe? :-)
Pekr:
12-Feb-2012
#import [

   "LedCtrl.dll" cdecl [

      led-is-power?: "LSN_IsPower" [
         return: [logic!]
      ]

      led-open-card: "LSN_OpenCard" [
          return: [logic!]
      ]  

      led-get-screen-number: "LSN_GetLedScrNumb" [
          return: [integer!]
      ]

      led-set-power: "LSN_Power" [
         power-on? [logic!]
         return: [logic!]
      ]

      led-get-brightness: "LSN_GetBright" [
         return: [integer!]
      ]
Pekr:
12-Feb-2012
led-get-brightness is the first one to fail ...
Pekr:
12-Feb-2012
Kaj - so I defined following functions. It returns something :-) 
Hopefully I have an integer handle, representing the "address"? of 
the requested function. Now is the last step you described - how 
should I invoke it?

   "Kernel32.dll" stdcall [

      load-library: "LoadLibraryA" [
         name [c-string!]
         return: [integer!]
      ]
       
      get-proc-address: "GetProcAddress" [
         library-handle [integer!]
         function-name  [c-string!]
         return: [integer!] 
       ]

   ]

print ["load-library: " handle: load-library "LedCtrl.dll" lf]

print ["get-proc-address: " get-proc-address handle "LSN_IsPower" 
lf]
Kaj:
12-Feb-2012
led-power? as function! get-proc-address handle "LSN_IsPower"
Kaj:
12-Feb-2012
get-proc-address should really be defined as return: [function!] 
but that's not currently supported
Pekr:
12-Feb-2012
I wrapped a dialog box call, as DLL can cal e.g. LSN_BrightDlg, and 
it opens in English. When I explicitly call a language setting function, 
later on, set/get brightness still crashes ... I will see moving 
to the PC, where the sending card to LED screen actually is.
Pekr:
12-Feb-2012
I tested it initially also on that machine. As I said - I was able 
to turn screen on/off, to get is-power? returning proper values ....
Pekr:
14-Feb-2012
We tried to manual load library and get the proc address to be able 
to wrap a function, which crashes Red (as well as REBOL, World). 
It might be, that the library is not properly constructed for such 
a case. But Kaj mentioned something like parameter being a function! 
type, which is not supported, nor do we know, if it is planned, or 
if it even help our case ....
Pekr:
14-Feb-2012
here's what he meant: "get-proc-address should really be defined 
as return: [function!] but that's not currently supported"
Pekr:
14-Feb-2012
OK, so if I understand it correctly, Red/System loads the library 
at an executable load time, whereas load/library does so dynamically 
in the app run-time. Stil - I wonder, if we could get a handle to 
such a library? I mean, syntactically #import is just like preprocessor 
construct - you can't assign it to any variable. Not sure it would 
be usefull, to be able to retrieve a handle to such wrapped library 
plus handles (entry points) to wrapped function calls?
Pekr:
14-Feb-2012
Doc - we have got the right function names, that is not the problem. 
The problem is the crash, and we were trying to identify, if Red/System 
library wrapping system still needs some improvements for some cases, 
or simply the DLL is doing something internally, that some functions 
work, and some crash. Here's example:


fpGetBright= (LSN_GETBRIGHT)GetProcAddress(g_hLedCtrlInst, "LSN_GetBright");
wrapped as:
led-get-brightness: "LSN_GetBright" [return: [integer!]]


Btw - how do I wrap properly function, which does not return any 
result? I tried just without the return clause, but it is not possible. 
Is e.g. return: [] (empty block allowed?)
Pekr:
14-Feb-2012
I think too, it is not a Red/System. I used the generated exe also 
on a LED screen PC. I can turn screen on/off, led-is-power? works 
correctly, ditto for led-is-locked?, but led-get-brightness fails 
... so if some functions work, it means that DLL has properly exported 
values? All use the same declaration ...
Evgeniy Philippov:
14-Feb-2012
Steeve: The Red/system's compiler is not that far advanced. It can't 
perform dead code analysis. it's why it will get stuck with macros.


Evgeniy: dead code analysis for boolean constants is fairly simple 
and straigtforward

I could even help write


the only thing necessary is a boolean flag for a value that it is 
a CompileTimeConstant


if we have "IF(value)" and value is FALSE, we just remove the false 
code branch

from memory. And do not output code for it.

This renders #if useless...


Steeve: Yeah it seems pretty straightforward, feel free to ask in 
#Red :-)))))


Evgeniy: In Oberon, you can write VAR Procedure1: PROCEDURE1; BEGIN 
IF (ARCH1) Procedure1:=Arch1Module.Procedure1 ELSE Procedure1:=ArchOther.Procedure1 
END END


that's not so simple: there can be absent libraries and headers and 
files in dependent files on different archs. This must be taken into 
account and makes an implementation slightly complex.


Steeve, I've already asked that by previous discussion. I thought 
that this technique is obvious.
Dockimbel:
14-Feb-2012
After using `??` a few hours, I realized that it was a mistake to 
use it as a shortcut for `print-line`. It is readable when used on 
a word, but with a block, it looks too esoteric and hurt the feelings 
of old rebolers that see it as a syntax error. So, I want to get 
rid of `??` but can't find anything to replace it that would be both 
short and consistent with `print`and `print-line`. I think that I'll 
just deprecate `??` but won't remove it for now as some of you are 
heavily using it.
Pekr:
16-Feb-2012
I am able to disrupt R2 compilation session to the state, where its 
restart is needed. Not a big deal, but maybe you will see something 
obvious. The code causing it is as follows:

print ["led-set-language: " led-set-language 3 lf]


The trouble is, that led-set-language does not return any value (void). 
This is understandable, that 'print has problem with such a clause. 
The error returned was:

Compiling led/led.reds ...
Script: "Red/System IA-32 code emitter" (none)

*** Compiler Internal Error: Script Error : Out of range or past 
end
*** Where: resolve-path-head
*** Near:  [second either head? path [
compiler/resolve-type path/1
]]


Correcting the issue (moving function call away from the print block, 
I get another error:

Compiling led/led.reds ...
Script: "Red/System IA-32 code emitter" (none)

*** Compiler Internal Error: Script Error : Out of range or past 
end
*** Where: resolve-path-head
*** Near:  [second either head? path [
compiler/resolve-type path/1
]]


This error repeats, untill I restart the R2 compiler session, which 
is a proof, that I corrected the source code, as aftern the R2 restart, 
I can get clean pass ...
Dockimbel:
16-Feb-2012
Webkit: can't run it on Windows, I was able to get a suitable libwebkit 
but it fails to find some functions in the dependent DLL. Trying 
on Linux.
Dockimbel:
16-Feb-2012
I'll search deeper tomorrow, sleep time now. I'll postpone the 0.2.4 
release until I get a clearer view on this issue.
Kaj:
17-Feb-2012
Now the WebKit browser starts loading the Red site, but halfway I 
get this:
Dockimbel:
19-Feb-2012
I even get "*** Compilation Error: unknown directive enum" when testing 
it. :-)


I was wondering if I haven't introduced some regressions when merging 
the float-partial branch, but all the enum tests are running fine...
Endo:
19-Feb-2012
in many other language we should give the name of the enumaration 
to get a value from it.

without using this way, it is almost impossible to use enumarations 
without a clash.
Oldes:
20-Feb-2012
if I compile just:
c = 0;

I get: *** Compilation Error: local variable c used before being 
initialized!

it's not bug related to enumerations.
Dockimbel:
20-Feb-2012
Kaj: in order to get the LazySunday browser working, you need to 
add at the beginning of %math.reds:

#if target = 'IA-32 [
	system/fpu/mask/zero-divide: on
	system/fpu/mask/invalid-op:  on
	system/fpu/update
]


This will disable the exceptions used by Red/System to raise runtime 
errors on float operations. All x87 exceptions should be disabled 
when  calling C functions.
Dockimbel:
21-Feb-2012
Kaj: I have enabled underflow and overflow exceptions in x87 by default 
for Red/System. This will help us write more reliable code. We'll 
be able to optionally disable all FPU exceptions once we get support 
for INF and NaN. So the init code for C lib is now:

#if target = 'IA-32 [
	system/fpu/mask/underflow: on
	system/fpu/mask/overflow: on
	system/fpu/mask/zero-divide: on
	system/fpu/mask/invalid-op:  on
	system/fpu/update
]

or in shorter, but less readable form:

#if target = 'IA-32 [
	system/fpu/control-word:  033Fh 
	system/fpu/update
]
Pekr:
22-Feb-2012
One question towards library wrapping and type casting. One DLL function 
is defined as:

typedef bool (WINAPI *LSN_OPENCARD)(void);//open led card 


When I defined the return type of wrapper funciton as LOGIC!, it 
was always true. When I defined it as an integer, it was either 1, 
or some really high integer number. So i took Cyphre's advice towards 
R2's interface, and in R2 I used CHAR, and in Red/System, I used 
BYTE! type.


Pity construct of a type return: "as integer! [byte!]" is not allowed, 
but at least I now get correct result - 0, or 1, in my print statement, 
where I do: print [as integer! led-open-card lf]


So my question is - why using Red/System's LOGIC! did not work? Is 
C level BOOL a clearly defined type, or can it be defined in various 
ways, so I can't say, that I can automatically use LOGIC! = BOOL 
logic, when wrapping stuff?
Kaj:
22-Feb-2012
The "other standard" for true is -1, but there are no signed integers 
in red/System, so that's where you get the high value from
Pekr:
22-Feb-2012
or: return: as logic! as integer! [byte!], so that I would get true/false 
directly :-)
Kaj:
22-Feb-2012
Oh, right, the other way around. But how do you get a high integer 
from a library, then?
Dockimbel:
22-Feb-2012
Kaj: the same way as you get a low integer. :) The signed representation 
is just a convention, the actual data remains the same, signed or 
unsigned.
Group: Topaz ... The Topaz Language [web-public]
Gabriele:
3-Nov-2011
(ie. what I want to avoid is someone from here not being able to 
get in because there are people coming even though they are not really 
interested etc.)
james_nak:
3-Nov-2011
Henrik, it was nice to see you. That was a very cool meeting. OK, 
I'm going to get a camera.
Gabriele:
3-Nov-2011
i'll check back in a bit in case someone else is around. in any case, 
it was a great talk. i guess we can repeat this next month or so 
- my afternoon seems to be the best time. too bad Peter didn't get 
to meet everyone else. :)
Gabriele:
21-Nov-2011
Not yet, there's no point at this time. But, there's no reason why 
it could not work. It should also be not that difficult to get it 
to work with Appcelerator Titanium.
Pekr:
23-Nov-2011
What's going to be a usage scenario though? I will have to compile, 
in order to get reasonable performance? I mean - I develop in Topaz, 
but client gets clean JS?
Gabriele:
24-Nov-2011
note that in practice, you'll have a dialect that specifies the whole 
web application, and when you deploy it to production, you get html, 
css, js etc. generated. but, nobody forces you to use the dialect.
PeterWood:
26-Nov-2011
I wrote some notes on how to get and install Topaz at https://github.com/giesse/Project-SnowBall/wiki/Topaz-:-Getting-Started


There a little old but should still work. If not please let me know.
Gabriele:
8-Feb-2012
but, i guess you can use CALL to run node.js, or you can get node.js 
to listen to a tcp port and connect to it from REBOL, etc.
Group: World ... For discussion of World language [web-public]
Geomol:
29-Nov-2011
That's interesting reading. Can an instruction set for a CPU be copyrighted 
then?


Funny that the story is about SAS Institute and a company called 
"World Programming". A very dear frind of me works at SAS Institute 
France just south of Paris. I have to get his comments on that story. 
:)
Geomol:
30-Nov-2011
Hand me 100k, and you can get a pre-pre-release! ;p


Or you can wait a bit and see it as a little extra early x-mas present.
Geomol:
2-Dec-2011
Q: Will this language be an open or closed source project?


A: Long answer: The plan is to fully open source it at some point, 
when version 1 is ready. Host depending sources are open in the alpha 
release, and it may make sense to open source more and more along 
the way, like sources for the different datatypes. The IT world is 
constantly changing. My nephew just went to the Devoxx Java conference 
in Belgium. Everybody had portable Mac computers. That was very different 
just a few years ago. Who knows, what devices we'll use in 5 years? 
I like to bring my software with me to new platforms. To be able 
to support new platforms faster, open source is a good thing. But 
some things needs to be fulfilled, before I'll open source it all.

1. This isn't a hobby project. I've invested a lot of time and work 
in this project, and I need to find a way to get something back from 
all that. One option is to have a good manual ready for developers 
to buy, open source it to get a lot of developers interested, and 
make a profit that way. There may be other ways (like someone or 
some company paying me to open source or make projects in World).

2. I need to know more about the consequences of open sourcing it, 
so I can avoid any nasty surprises. Knowing more from other similar 
projects could help. I need to figure out a proper license.

3. Even if I keep the sources simple and clean, I would like to clean 
up even more, before it can be open sourced.

A: Short answer: Currently it's partly open source.

Q: What is the main target?

A: The World prompt is a very powerful tool. Being what is known 
as "network transparent" helps in the era of the Internet. Server 
scripting and client scripting are obvious uses. The ability to easily 
make dialects makes it possible to wrap the language around the problem 
instead of trying to change the problem to fit the language. Interfacing 
with other technologies ... see "Introduction" on http://world-lang.org
in a few days.

Q: Is it closer to R2, R3, RED, Topaz architecture?

A: World run its code within a custom made virtual machine (VM). 
Compiling in World compiles World sources to this VM. This happen 
when source code is run or if explicitly compiled. REBOL is always 
interpreted (AFAIK), so that's different. I'm far from an expert 
in Red and Topaz, but as I understand it, Topaz is compiled/translated 
to JavaScript. So the JavaScript engine can be seen as the VM in 
World. And Red is compiled to native code, so that's different too. 
As I see it, all these languages work differently and can complement 
each other. (Help me here, if I'm wrong in any of this.)

Q: What was the main motivation, aka - why yet another language?

A: After I've learned REBOL, I find it frustrating to program in 
most (all) other languages. The difference is like when humans moved 
from carving words in stones to using a printing press a la Gutenberg. 
Then I found, I couldn't complete projects like my Canvas RPaint 
program on all major platforms (Win32, OS X and Linux), I couldn't 
run my code on new portable devices, and I needed better performance 
with scientific applications. With my background in graphics, music 
and science, I expect the language to develop into those areas.


Q: If (you) don't have any other target, why don't you work on Red? 
Or fork a project from Red?

A: I started initial work on World in late March 2009. The first 
post in the Red group here in AltME is from 27-Feb-2011. At that 
time, World was more than 7'000 lines of C.
Geomol:
2-Dec-2011
Q: Does World compile into bytecodes (a la java) or machine languages?

A: Into bytecodes for the virtual machine. Each VM instruction is 
32 bytes (256 bits) including data and register pointers.

Q: Can you do operators with more or less than 2 arguments?

A: Not yet. I've considered post-fix operators (1 argument), and 
it shouldn't be too hard to implement. To motivate me, I would like 
to figure out some really good examples. With more arguments, I can 
only think of the ternary operator ("THE ternary operator"). I'm 
not sure, World needs that.

Q: Is range! a series! type?

A: No, range! is a component datatype. It has two components just 
like pair!.

Q: What platforms are supported?

A: For now Mac OS X (64 bit), Linux (32 bit) and Windows (Win32). 
The code is very portable. It took me a few hours to port to Linux 
from OS X and just a few days to Windows.

Q: What platforms do you plan to support in the future?

A: It would be cool to see World on all thinkable platforms. I personally 
don't have time to support all. World is not a hobby project, and 
I'm open for business opportunities to support other platforms. The 
host depending code is open source. I mainly think 64-bit.


Q: I'm a little sorry to see the R2-style port model instead of the 
R3 style. Are all ports direct at least?

A: Yes, ports are direct (no buffering). The ports and networking 
are some of the most recent implemented. More work is needed in this 
area. I would like to keep it simple and fast, yet flexible so we're 
all happy.


Q: What in the world is going on with the World Programming Language? 
This looks like something that must have been under wraps for a long 
time. What's getting released?

A: I didn't speak up about this, until I was sure, there were no 
show-stoppers. The open alpha of World/Cortex is being released as 
executables for Mac OS X, Linux and Windows (Win32), as are the platform 
dependent sources and initial documentation. World implement 74 natives 
and more than 40 datatypes. The Cortex extension (cortex.w) implement 
100 or so mezzanine functions and some definitions. The REBOL extension 
(or REBOL dialect in rebol.w) implement close to 50 mezzanine functions 
(not all functionality) and some definitions.

Q: Did you do some speed benchmark? (R3 vs R2 vc World) ?
A: Yes:

(All tests under OS X using R2 v. 2.7.7.2.5 and R3 v. 2.100.111.2.5)

- A mandelbrot routine (heavy calculations using complex! arithmetic) 
is 6-7 times faster in World than code doing the same without complex! 
in R2 and 11-12 times faster than R3. If using same code, it's 2.5 
times faster in World than R2 and 4.2 times faster than R3.
- A simple WHILE loop like:
n: 1000000 while [0 < n: n - 1] []

is 1.8 times faster in World than in R2 and 2.8 times faster than 
in R3.

- I tested networking in two ways. One sending one byte back and 
forth between client and server task 100'000 times using PICK to 
get it, and another sending 1k bytes back and forth 10'000 times 
using COPY/PART to get it from the port. Both were around 3 times 
faster in World than in R2. (I didn't test this in R3.)

- I tested calling "clock" and "tanh" routines in the libc library. 
I called those routines 1'000'000 times in a loop and subtracted 
the time of the same loop without calling. Calling "clock" is 2.4 
times faster in World than in R2. Calling "tanh" (with argument 1.0) 
is 5.9 times faster in World than in R2. (I didn't test this in R3.)


(Some functions are mezzanines in World, which are natives in REBOL, 
so they'll in most cases be slower in World.)
BrianH:
2-Dec-2011
REBOL code is interpreted, but not its source. The slow part of a 
source interpreter is parsing the source into the intermediate code, 
the AST. REBOL is an AST evaluator. The advantage to that relative 
to a bytecode VM is that you can extend the runtime with more fast 
operations without breaking the bytecode encoding, but the disadvantage 
is that the interpreter overhead is larger so if you want your operations 
to be efficient you have to use larger ones. This is why C-like code 
is slow in REBOL, but high-level code can be fast.


If you want to get the advantages of a bytecode VM with the extensibility 
advantages of REBOL's model you could go with an address-threaded 
interpreter. Address-threaded interpreters have more data going through 
the processor than bytecode interpreters do, but it you need to support 
higher-level operations they are more efficient overall. However, 
if you don't need to support higher-level operations and only need 
to support a tiny number of low-level operations then bytecode can 
be encoded in a much smaller amount of space. If your language is, 
for instance, a spreadsheet formula evaluator then you might even 
be able to have 4-bit bytecodes, with two operations per byte, and 
have an interpreter that fits entirely in the instruction cache of 
a processor. Bytecodes can be much faster then.


Still, Lua's bytecode VM, as efficient as it is, has been running 
into performance limits as well. Fortunately, a bytecode model that 
maps well enough to the native code model (remember what I said earlier 
about C-like bytecode VMs?) can have the bytecodes translated to 
native code at runtime and then execute the native code. For C-like 
code that is usually even faster than address-threading. This is 
why LuaJIT has been doing so well when compared to Lua's bytecode 
VM.


World being Lua-like means that it can improve using methods similar 
to the ones that Lua has been using to improve. That's definitely 
a good thing, since it means that Geomol doesn't have to work from 
scratch :)
Geomol:
2-Dec-2011
I need to get things done, and get things rolling, so I won't answer 
any more questions at this point. You get the last countdown tomorrow, 
and the intro and being able to try it out yourself in 2 days, if 
all goes well.

Again thanks for the interest! And remember to have fun!
james_nak:
4-Dec-2011
Re: naming convention from ann-reply

You could use the same names as they are now: world_linux.xxx and 
then suggest the user can/should rename his version as world.xxx. 
That way a person can get going immediately without that step if 
he wants to.
Pekr:
4-Dec-2011
It is quite a long time I last used it to get R3 sources ;-)
Geomol:
4-Dec-2011
nooo too much work for me. :)


Well, for now I would not have time enough to deal with lots of bug 
reports. At a later time, when I'm mostly done coding on it, and 
have removed all the bugs, I already know about, and added missing 
features, bug reports are very welcome. But simple tests, like you 
see in the test/ dir is a good idea. I can handle a couple of falsed 
tests at a time now. So maybe that's a way.


What do you guys think is a good way? What way will get to the goal 
knowing I'm booked with things to do already.
sqlab:
5-Dec-2011
I do not remember clear, if all versions of R2 or R3 gave warnings 
at first start, but now they are in my exception list. And at least 
once I got suspicious of R2 too, as it initialized / loaded libraries 
not needed.


The curious thing is, that now I do not get a warning at start of 
world again. And I did not allow it, but choosed "ask again".
Oldes:
5-Dec-2011
I guess you will get it once you type TEST end enter.
Andreas:
5-Dec-2011
For GCC, you can see get the target machine tuple with the "-dumpmachine" 
flag. This would give you stuff like:
i486-linux-gnu
x86_64-linux-gnu
arm-linux-gnueabi
i686-apple-darwin10
i586-mingw32msvc
BrianH:
5-Dec-2011
(sorry, that was bad syntax, but you get the idea)
10101 / 1026212345...99100101[102] 103