World: r3wp
[World] For discussion of World language
older newer | first last |
Geomol 20-Dec-2011 [737x2] | About copying from a port, I get a zero, if the port is closed, but just under OS X and Linux. Windows version seems to hang in that situation. Networking code is open source, and you're welcome to suggest changes. I consider using a lib for networking instead of coding it all by hand. |
SHIFT and ROTATE can only operate on 64-bit integers for now. We have to see, if operating on binary! and maybe other datatypes is needed. | |
sqlab 20-Dec-2011 [739] | at the moment i am just in holiday and have only limited access and not the infrastructure i am used too. maybe when i am back, i will have a look at the code. |
Geomol 20-Dec-2011 [740] | Suggestion: Some routines return a pointer to a structure, like LOCALTIME (from LIBC). The structure is struct tm and consists of 11 fields. In World, we can define LOCALTIME to return a pointer to a handle!, but how should we get to all the data fields? I suggest, TO should be used to copy data from a handle to a structure, like: tm: struct [ sint sec sint min sint hour sint mday ... ] none h: localtime time ; time is some variable holding seconds to tm h ; This will copy the data (pointed to by h) to tm Comments? Concerns? |
PeterWood 20-Dec-2011 [741] | As I understand localtime is not thread safe, the thread safe version locatime_r requires the address of a tm structure as an argument. (Though it returns the pointer to that same structure if the call is succesful. In general, isn't it a better option for strucutures to be allocated in World rather than the called function? |
Geomol 20-Dec-2011 [742x2] | Yes, it's probably a better idea to use routines, where you can allocate the structure in World, and handle the routine a pointer to it. But some routines does the other thing. In the case of localtime, it's a static buffer. Some routines in some libraries dynamic allocate memory, that the user can deallocate again with other routines. (Oldes pointed me to such a case in ImageMagick.) If World should support calling such routines and be able to operate on the result, we need something like my suggestion, I think. |
In the ImageMagick/MagickWand example, it was a string, and it's possible to get the string from a handle in World with: to string! handle I thought of something similar with structs. | |
PeterWood 20-Dec-2011 [744] | The to approach seems neat syntactically but is there a danger it would be slow with large data structures? |
Geomol 20-Dec-2011 [745x4] | I don't think so, as it's a simple memcpy. The C code looks like this: if (rb->type == STRUCT_T) { if (rc->type == HANDLE_T) { Struct *U = (Struct *) rb->value.rc; memcpy (U->u, (char *) ((Handle *) rc->value.rc)->pointer, U->size); } else invalid_argument (W, rc); } else invalid_argument (W, rb); |
The alternative (as I see it) is to not be able to access such structures. | |
Routines able to operate on structures, you define in World and give a pointer to to the routine, doesn't need this memcpy, and it'll work today. | |
To avoid the memcpy, the AS function could be used to redefine a handle to a struct. Like: as tm handle , but then handle is redefined as a struct, and it now points to a mem area, the routine made. So this can't be deallocated by World, and the memory management has to deal with that situation. Not good in my view. | |
Geomol 22-Dec-2011 [749x4] | New release at https://github.com/Geomol/World |
- Added ability to run script from command line - Added command line options: -i -q -v - Added usage (view usage for example with: world -?) - Now cortex.w is found, even if world is started from other directory (using argv[0] in C) - Added facility to copy handle data to struct: to <struct> <handle> - Removed ?? (not useful because of binding rules) | |
I found a way under OS X using AppleScript to launch World scripts from the Finder by dobble-click, and to start World the same way, if anybody is interested. It may be useful for REBOL and other languages as well. The method makes a world.app. Speak up, if you need it. | |
I would like to hear your experiences with launching world scripts from command line, or use world to run services, etc. | |
Oldes 22-Dec-2011 [753x2] | world_win32 -? crashes on W7 64bit |
ech.. crashes completely when I run it from CMD... starting by clicking on icon is fine | |
Geomol 22-Dec-2011 [755x3] | I test under WinXP with cmd and with cygwin bash terminal, and it works: C:\world\src>.\world.exe -? Loading Cortex... Done usage: .\world.exe [options] [script] ... I should get a Win7 soon, then I can test that. |
And then I should be able to make 64-bit Windows version too. | |
You should also be able to see the usage with any other option not recognizes, like: world -h Maybe the -? is the problem? | |
Maxim 22-Dec-2011 [758] | I'm not sure about allowing typecasting from handle!. it sort of defeats the purpose of an opaque pointer handler IMHO. the better alternative would be to allow the routine to define what struct pointer type it returns directly. |
BrianH 22-Dec-2011 [759x3] | The argv(0) method doesn't work in some circumstances on Windows. R3 has been running into some problems because of that. |
http://issue.cc/r3/1892shows some circumstances that will trigger the problem, so it's a good model for building tests. | |
Andreas wrote this earlier, in response to your question about this: Is there a way to figure out, what directory a command launches from, which will work across platforms? Yes and no. There are platform-specific ways. This gist of it: - Linux: readlink("/proc/self/exe") - OSX: _NSGetExecutablePath - Win32: GetModuleFileNameW (We recently discussed this issue in relation to R3 as well.) | |
Geomol 22-Dec-2011 [762] | The argv method was fast to implement and works in my cases, so I went with that for now. It maybe will need to be replaced by something else. Putting cortex.w (and user.w later) into an install dir like Library/Application Support/world/ could be a way under OSX, and something similar on other platforms. |
Geomol 23-Dec-2011 [763] | New version uploaded with system/options/args and some changes to quiet mode. |
Gregg 23-Dec-2011 [764] | Great to see continuing progress John! |
Geomol 26-Dec-2011 [765] | Thanks, Gregg. Some thoughts... I create World, because I need the tool. So when I have the functionality planned, I've reached one of my goals, because I then have the tool, I need for my own future developments. For World to become a success for others to use also, it needs to be better in crucial ways than the tools, others use today. Therefore I also focus on making World slim (not bloated), stable and bug-free, very well defined, easily integratable and with good performance. There still is work to do in all these areas. |
btiffin 28-Dec-2011 [766] | I have World calling COBOL code. It'll be nice to get a full on 64 bit core though. Much mucking about with 32 bit libraries, compiling COBOL in a VBox etc. Getting close to automating the Dictionary wiki pages as well. Adding to the old topic of openeness. OpenCOBOL is open source, but very few people fork it. Roger is the principal developer, and we wait for his releases ... but we get to see the compiler, build it on our platforms. John, I don't want to see World core open so I can change it, I'd like to see it open so I can read it, build to suit, learn things. So, if it's not asking too much, put the core code up in a read-only repo and ignore the forks while you develop? Lastly; fun and looking forward. |
Geomol 29-Dec-2011 [767x2] | I have a Win7 (64-bit) install now and did some work yesterday on porting World. I ran into problems with building libffi, which World use. I will look into it. |
Another try to close the topic on openness: So you expect to get man-years of work open-sourced for free? And this in a situation, where I get nothing from doing so? Please, be serious! World is not a hobby-project for me. I have invested a lot of time and money in this. I have my hands full, and the World project do very good progress right now. I see no business benefit from making World open source at this point in time. Case closed. :) | |
Pekr 29-Dec-2011 [769] | Geomol - it is just that you depreciate psychological factors. Ppl, especially with previous experience with RT, are very carefull here. In the end, you might just wonder, why noone is interested in such a model anymore. And in the end, it is just end result, which matters. You either get some community surrounding World, or you might wonder, why while your product is excellent, noone really cares anymore. Or - you might end up finding some nice niche e.g. embedded market, having lots of customers, etc. There is many possibilities, how your decision might influence something. What I really don't understand is one thing - you sound too protective. You have full right to sound that way. But what escapes my mind is - "when I get nothing from doing so?". And what do you get from actually not doing so? Also - do you expect any harm, caused to the business side of your project, by eventually open-sourcing? As for me - I am used to commercial and licensed products. I just wanted to point out, that in the end, your attitude, might be contraproductive. If you keep product developed, ppl might feel safe, but ppl might also be carefull with their contribution to the project, because such kind of REBOL related project already failed big time. Not your falt, that's for sure, but the negative assumption is in the air nonentheless. |
Steeve 29-Dec-2011 [770] | And so he wants support for free. :-) Joke appart, I feel bad because we saw many projects failed because of the same reason. A language implementation itself without real businnes application will get you nothing but some fame. And so he wants support for free. :-) |
Geomol 29-Dec-2011 [771x4] | I don't ask for your support. I bring World to the awareness of you guys, because you might benefit some a REBOL like language in the current situation with REBOL. I could just have continued keeping my mouth shut and made the tool, I need, without others knowing about it. |
benefit *from* a REBOL like ... | |
And I won't like World to become in a situation, where there are lots of bugs and no progress for years, and it's still close sourced. That won't happen. | |
I feel bad because we saw many projects failed because of the same reason. Don't feel bad! A month ago, you didn't know about World. Now you do, and now you have an extra option. Where is no reason to feel bad. Afaik projects like Boron are open source, and you may put it in the category of "failed projects". So open source doesn't equal success. | |
Steeve 29-Dec-2011 [775] | Boron is not |
PeterWood 29-Dec-2011 [776] | Have you thought of some "escrow" type arrangement to give people the confidence that World will not just disappear at some time in the future? It doesn't have to be a full commercial arrangement but perhaps you could give a copy of the source to somebody that you trust with instructions on what circumstances it would be released (and how it should be released). |
Geomol 29-Dec-2011 [777] | ok, my bad. I don't know enough about Boron. |
Steeve 29-Dec-2011 [778] | And it's the very reason Boron failed |
PeterWood 29-Dec-2011 [779x2] | Boron is fully open source - it is published on gitorious |
It is published under the LGPL. | |
Steeve 29-Dec-2011 [781] | uh !? |
Geomol 29-Dec-2011 [782] | :) I take my words "my bad" back. |
PeterWood 29-Dec-2011 [783] | https://gitorious.org/boron/boron |
Geomol 29-Dec-2011 [784] | Peter, no, I haven't seen a reason for an "escrow" type arrangement yet. World has just been available for 3 weeks or so. And I feel, World isn't quite yet in a situation, where I would build larger projects with it. Close to version 1, maybe around going from alpha to beta release, it could be justified to make arrangements. |
Steeve 29-Dec-2011 [785] | Ok people, look at the red light :) Flashhhhhhh !!!! |
Geomol 29-Dec-2011 [786] | I bet, you play sorcerer, when you roleplay! :) |
older newer | first last |