AltME groups: search
Help · search scripts · search articles · search mailing listresults summary
world | hits |
r4wp | 917 |
r3wp | 9345 |
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 / 10262 | 1 | 2 | 3 | 4 | 5 | ... | 99 | 100 | 101 | [102] | 103 |