AltME groups: search
Help · search scripts · search articles · search mailing listresults summary
world | hits |
r4wp | 708 |
r3wp | 7013 |
total: | 7721 |
results window for this page: [start: 7601 end: 7700]
world-name: r3wp
Group: #Boron ... Open Source REBOL Clone [web-public] | ||
JaimeVargas: 8-Feb-2006 | One thing worries me. AltME hasn't change much in the last two years. I haven't add anything beyond its basic functionality, however two major bugs have persited during this time: - Recycle bug - Losing postings | |
Pekr: 10-Feb-2006 | IIRC Doc did not planned to be 100% compatible either. IIRC he wanted to introduce two layers to networking. It comes from his experience when working with networking (Uniserve etc.). I think that redesign is the right time for language to correct/improve some of concepts. I expect REBOL 3.0 to go that route. 2.0 was rewrite too. | |
Pekr: 10-Feb-2006 | and you can always use your old 2.x SDK to improve on your apps .... having time to redesign for new branch (3.0) | |
JaimeVargas: 19-Apr-2006 | Basics ops benchmark, measured using Ladislav time-blk tools, results in seconds: ;REBOL ;getword 0.08612 ;setword 0.2006635 ;funccall 0.194279125 ;make-object 1.750536 ;ORCA ;getword 0.072630 ;setword 0.133684 ;funccall 0.177569 ;make-object 0.917472 | |
james_nak: 20-Apr-2006 | I'll have to try to carve out a bunch of time. I've never compiled anything on my Z. Sounds like fun though. | |
Graham: 11-Jul-2006 | We can't let you in right now The limit of people who can chat in this account has been reached. As people come and go slots may open up. You can try again at any time. | |
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 | I rather spend time coding Orca than coding tools. IRC is fine for chatting. | |
JaimeVargas: 12-Jul-2006 | I just don't see the use of being compatible. I actually see it like a wast of time. 100% compatibility means importing the gotchas, the bugs, and the problems in certain designs. Like the port system. | |
[unknown: 9]: 12-Jul-2006 | All good points, and I respected your points from the start. The other side is true as well, and not actually in conflict with your goals, just your time, which is what is most valuable. | |
Anton: 13-Jul-2006 | R2 is not dead. I am still using it ! It will be very useful for some time to come. It will take a long while for R3 to stabilise to the point at which R2 is now. | |
Anton: 13-Jul-2006 | Actually, that's another issue: Do we make a separate fork for R3, (considering it may not stabilise for some time.) ? | |
Mchean: 13-Jul-2006 | thanks - i think this is a really good idea, should of happened a long time ago | |
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 | |
Pekr: 17-Nov-2009 | I think not, not for a long time ... | |
Kaj: 21-Nov-2009 | This eats memory and startup and teardown time | |
Maxim: 21-Nov-2009 | so once we have the host and Carl realized that he'd waste less time giving us a bit more control, there is a chance for a bit more core->host migration still. | |
Davide: 23-Jun-2010 | Nice! Boron )> t: now loop 10000000 [a: div mul sub add 11 2 3 4 5] print ["time:" sub now t] time: 0:00:04.797 R2 >> t: now/precise loop 10000000 [a: divide multiply subtract add 11 2 3 4 5] print ["time:" difference now/precise t] time: 0:00:07.594 R3 >> t: now/precise loop 10000000 [a: divide multiply subtract add 11 2 3 4 5] print ["time:" difference now/precise t] time: 0:00:07.563 | |
NickA: 23-Jun-2010 | I'm sure there would be an an enormous learning curve for me, but I'm really tempted to spend some time digging into this source... | |
NickA: 23-Jun-2010 | I want to try to compile ORCA for Windows too - I tried briefly once in the past, but ran into problems and didn't have time to play with it. | |
NickA: 8-Sep-2010 | Kaj, thanks for noting that standard input example - it is new. In June, Boron's user manual version was 0.1.2 and the windows release was 0.1.4. It's really encouraging to see work accomplished :) I donated a small amount back in June to Karl using the paypal link - if he's motivated by money to do more work, I'd support that without reservation. I don't have much time right now to explore much, but I'd love to see a continuing active open source alternative. | |
Group: Red ... Red language group [web-public] | ||
PeterWood: 12-Feb-2012 | I guess you're correct; Red/System is not generally good enough to wrap "any and all" C libraries yet. What is most important to me about Red/System at this time is that it needs to be good enough to allow Red to be developed. I believe the addition of partial float support to Red/System was not absolutely essential for the development of Red though I'm sure it will help. There are lots of other improvements that could and will eventually be made to Red/System but they don't seem as important as work on Red ... at least to me. | |
Kaj: 12-Feb-2012 | What your binding still does differently than the C code is that the C code loads the functions dynamically, while Red #import embeds loader symbols in the executable format. I think GetProcAddress is the standard Windows function to load symbols manually at run time | |
Pekr: 12-Feb-2012 | I think I understand what you think, but I got lost in translation :-) I will have to think about it few times and try to do some experiments.Thank for putting some time into the topic ... | |
Kaj: 12-Feb-2012 | If they're not in the list, that would explain why they don't work, because the manual loading is needed to pull them in at run time | |
Kaj: 12-Feb-2012 | All in all, if it's possible to load the functions manually, it should also be possible to import them at load time with the regular #import method. So something else may be wrong in the binding | |
Kaj: 12-Feb-2012 | The Red/System situation is certainly not worse: it's the other way around. You can program manual loading with just a few well defined functions, the same that R2 and World use. But normally, you use automatic loading by the operating system, which is the standard and most efficient way to do it, and which R2 and World can't use because they execute bindings at run time | |
Evgeniy Philippov: 13-Feb-2012 | Haha. So you advicate a sShort time progress with Eternal | |
Evgeniy Philippov: 13-Feb-2012 | Sorry. So you advocate a short time progress with Eternal regress and pain of recompiling included files and unavailability of metaprogramming possibility? No-preprocessor languages can easily be analysed metaprogrammatically and transformed, and preprocessor languages cannot (almost). | |
Pekr: 13-Feb-2012 | It does :-) It does not print newline by default, although it will be 90% time of requested feature. Just because the compatibility to C, Doc introduced print-line, which will be equivalent to ??. So 90% of your time your code is going to be ridden with print-line or ??, becaue we don't like 'prin ... | |
Evgeniy Philippov: 13-Feb-2012 | I.e. after each #define and after it the #include, we would need to recompile the included file. That's enourmous lossage of time and resources. | |
Dockimbel: 14-Feb-2012 | Pekr: (short answer) Red/System (and Red) generate executable binaries while R2/R3, while World and all other interpreted languages just run code in an interpreter or VM. This is a big difference, because Red can use the OS to load libraries at "load-time" instead of having to write code to do it (as all others interpreted languages require). This is also faster than loading manually. Red/System doesn't have yet a x-platform extension for adding "run-time" library loading support, just because we don't need it at all for now, but it can be added easily, by wrapping libFFI for example, or implementing it purely in Red/System. | |
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? | |
Dockimbel: 14-Feb-2012 | Evgeniy: (short answer) 1) IIRC, there's no recompilation of included files in Red/System, the only overhead is parsing the preprocessor directives and reducing them. I agree that the whole compilation process would be significantly faster without a preprocessor, but that's another topic. 2) Preprocessor is a handy addition for compiled languages, that's why it was introduced in Red/System, not because it was a planned feature, but just because we _needed_ it for going further. The distinctive # prefix is used to make it clear both for users and the compiler that these parts are reduced at "compile-time" instead of "run-time" and avoid confusing both users and the compiler. For example, from your examples, the compiler has no way to distinguish a "compile-time" IF from a "run-time" IF, unless you make it a lot slower by doing static analysis and complex inference (the cost would be huge compared to the preprocessor). Also, this might also introduce a lot of new restrictions in the language semantics, which is not desirable. 3) IMPORT is better than INCLUDE: you might have missed it, but we can't yet generate libraries, so importing Red/System code now is not an option. | |
Dockimbel: 14-Feb-2012 | Pekr: you've mixed up completly "load-time" and "run-time" library loading. You don't need a library handle at "load-time" (unless you want to hack something in the OS). Also, you don't need any of your code above, just the #import declaration with the right function names (finding the right names seems to be the most complex part in the case of the library with the weird API you're using) | |
Pekr: 14-Feb-2012 | As for compilation time. I don't know guys, but Red/System compiles REALLY fast. I do remember my dos times, where compiling took 30 secs. Where's the problem? It's not imo about the compilation speed, at least for me - it is about the process of building app vs dynamic prototyping using interpreter. I don't like much the compile/build/run process, but I expect something like R2 console for prototyping appear in distant future for Red .... | |
Dockimbel: 14-Feb-2012 | Compilation time: absolute speed is not the issue currently, we're talking about relative speed of the preprocessing compared to whole compilation time. | |
Pekr: 14-Feb-2012 | It is a pity that my first attempt has some such problems. Just don't loose the time with it, if you have more important stuff to do. Kaj tried to do his best here, ditto Andreas. | |
Kaj: 16-Feb-2012 | I've seen that before during development, but it had been fixed for quite some time. It must be generated during cleanup | |
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. | |
Endo: 20-Feb-2012 | which could be problem in a big source. ...prevent passing... catch in compile time would be nice for sure. | |
Oldes: 20-Feb-2012 | I don't have time to check it now more deeply... maybe in the evening. | |
Pekr: 22-Feb-2012 | I got that error too. I thought it is related to my weak attempts to wrap my led library (which still can be the case), as I saw the error for the first time yesterday ... | |
PeterWood: 22-Feb-2012 | The runtime errors that I got were correct - in the sense that the compiler and run-time acted correctly. | |
Kaj: 22-Feb-2012 | http://en.allexperts.com/q/C-1040/time-milliseconds-Windows.htm | |
Kaj: 22-Feb-2012 | But stupid Windows measures wall-clock time instead of processor time | |
Kaj: 23-Feb-2012 | Syllable Server, AMD Athlon XP 1800+ (256 KB L2 cache) CPU Time Relative C (GCC -O3) .14 1 C (GCC 4.4.3 i686) .24 2 Red/System .26 2 Ruby 1.8.7.248 (i486) 29 200 Boron (i486) 31 200 REBOL 3 2.100.111.4.4 41 300 ORCA (i486) 50 350 REBOL 2 2.7.7 55 400 World 10:27:00 * > 260,000 *: Aborted after this time. | |
Group: Topaz ... The Topaz Language [web-public] | ||
Dockimbel: 11-Oct-2011 | We should make a new Google Hangout session tomorrow at 19:00 CEST. Guests are welcome to ask questions about Red & Topaz. I am waiting for Gabriele to confirm the meeting date/time. | |
Dockimbel: 12-Oct-2011 | Chat closed now. We were four peoples online this time (even 5 during a minute with Reichart coming to say hello). | |
Dockimbel: 12-Oct-2011 | I was out of time to prepare some Red/System demos to show, maybe next time. | |
Gabriele: 15-Oct-2011 | James: I can schedule around almost any time as long as I know in advance. Henrik: yes, however, knowing which times / days of week are best for most people would help. :) | |
Henrik: 15-Oct-2011 | Gabriele, yes, however my theory is that if you pick a time (one that is friendly to people on both sides of the planet), people will eventually start showing up, if you are consistently using that date. | |
Endo: 20-Oct-2011 | if time is ok for me count me in. | |
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. :) | |
PeterWood: 4-Nov-2011 | Looks like I'll have to stay up until 3:30 in the morning next time :-) | |
Gabriele: 4-Nov-2011 | Peter, you may try to convince the others to show up earlier instead. ;) Endo: it was very informal, so it's hard to write a written summary or anything like that... though, Hangouts with extra has a note thing, next time we can try to use that. In any case, if you have a preferred date / time for next month, we can try to be there. | |
Gabriele: 14-Nov-2011 | Janko, there are two cases here: 1) debugging the interpreter itself 2) debugging your own code (for eg. a web app written in Topaz) I think that (2) is what interests you - in that case, you use the interpreter during development, so it's just the same as debugging in REBOL (well, I hope to provide a few more tools, but even without debugging REBOL code is not that difficult most of the time). Think of compilation as an optimization step, that you do only for production deployment etc. and only for some parts of your code (the parts where performance is important). | |
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. | |
BrianH: 28-Nov-2011 | It appears to be standard (it's the one in IE, so if you have IE9 it is as standard as V8). However, it doesn't seem to have one of the objects or functions that Topaz's bootstrap depends on. Some time I'll try to do a proper port. In the meanwhile, Node just requires installing a package on Windows (at least as of the last couple months), so any Cygwin-related criticism can be ignored now :) | |
Group: World ... For discussion of World language [web-public] | ||
Pekr: 29-Nov-2011 | Hmm, reading some docs - there' s so many nice things about the R3, pity it is not open-sourced, or that Carl can't devote more time to its development ... | |
Andreas: 30-Nov-2011 | 1.5 more Qs: how long has this been in the making in general & how much time have you spent programming it? | |
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.) | |
Geomol: 2-Dec-2011 | Q: We already know that your physics background influenced the new complex numbers datatype. Should we expect further progress of this kind (physics/science)? A: After pointing this language out to a couple of friends from university, I was quickly asked to give scientific examples, like making a Lorentz attractor. There will come examples like that. Also I have some contacts at the Niels Bohr Institute (Copenhagen University), that I would like to show the language to and see, if we can create some projects. Q: How long has this been in the making in general & how much time have you spent programming it? A: I started R&D late March 2009. In March 2010, I had >7'000 lines of C. Then I took almost a year break from World and started up again Spring 2011. I have used much time on it this year (2011). So I've used 1-2 years effectively, I guess. Q: Is there a way loading and interfacing pure object files, how about callbacks? A: I don't have much experience in this area. Two of the closed alpha testers have looked at interfacing with sqlite3, which uses callbacks for some stuff. I would say, it doesn't work 100% yet, but it's being worked on. I need to see examples of loading and interfacing with pure object files to judge, how much of such functionality should be in World. Q: Wouldn't it be useful to treat the kwatz! type same way as binary! so you don't need to always convert it? I mean, all functions that are able to take binary! arg should be able to use the kwatz! as well...or do you think are there any problems regarding that? A: I've thought of that and came to the decision, that KWATZ! should be treated with some care. Are we always sure, we want to treat that data as binary? I need more experience using KWATZ! to judge that. Conversion could be fast, if the AS function was introduced, which should just change the type without copying. Q: Is there a call-in interface available, meaning I can embed World in other programs? A: Not yet. Internally I do call World functions from C (to parse URLs) by pushing arguments on the VM stack and call the execute_vm() C function. I imagine an interface much like in Lua (lua_call), but a little more work is needed, before we're there. This is an alpha release, so things will change/be added, before we move to beta release. Q: Regarding your thesis I guess you have something like an integrated db or a special datatype for permanent storage too.. ? A: Too early! :) Q: What subset of REBOL2 will run without change in World? A: Uh, ah, hard to tell at this point. When I need new functionality in World (because I want to run some of my R2 scripts), I consider, if it should be part of World/Cortex or if the new functions should go into the REBOL expansion/dialect (%rebol.w). I want World/Cortex to be small and compact. The idea with %rebol.w is, that much of R2 code could run, after this script has run. Q: Are there datatype and function comparisons between World and REBOL2? A: No, I haven't documented that ... yet. Maybe someone else wanna document that!? But there are differences, like the REBOL decimal!, which in World is called real!. And then %rebol.w just include the line: decimal!: :real! , so REBOL scripts using that will run. Q: How many people were working on this World? :) Is it just a single man project? A: Yes, just me. Q: Will there be a GUI? A: I would really need a GUI for my own work at some point. I have ideas, but nothing set in stone yet. And I want World to be open, so different GUIs should be possible, also the native GUIs in the different OS. Q: Are you rich enough to buy Rebol Technologies and employ Carl? :-) A: [KWATZ!] | |
BrianH: 2-Dec-2011 | When we tried something similar to the LOAD/on-kwatz trick in R3 (named LOAD/on-error there) it turned out to slow down LOAD so much that it made it unusable - something about switching back and forth between native and interpreter execution schemes. The alternative of having a kwatz! type returned had the effect of changing a load-time check for syntax errors in the source code into a runtime check for invalid values, but only if you are expecting such things and testing for them explicitly. Under normal circumstances a kwatz-accepting loader would often result in code that would run slightly wrong but not trigger an error to help you figure out why. This is why you should make sure that your regular code loader triggers errors by default when it encounters unexpected syntax. An option to be more forgiving would be helpful when loading dialects that explicitly support particular kinds of extended syntax - and thus are expecting kwatz! - or for loading user data for analysis. | |
Geomol: 2-Dec-2011 | REBOL on the other side, interpret the REBOL source all the time, like every time the same function is called. In World, the function is compiled to VM code, the first time, it's called, after that the compiled code is just run (unless the source is compiled again). | |
Maxim: 2-Dec-2011 | single level Mark and Sweep GC? or did you put a bit of time into making it a bit more powerful (multi-zone, multi-level, multi-threaded, etc.) ? | |
Geomol: 4-Dec-2011 | :) Look at the bottom of the %cortex.w file. You'll see the test function and the m function. I just include them for now, because I call those two scripts all the time. | |
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. | |
Geomol: 4-Dec-2011 | And the defining rules for routines will most likely change, so don't use a lot of time making routines, unless you're ready to change your code later. | |
Geomol: 4-Dec-2011 | Cool! As I add features, functions, refinements, that wiki has to be kept up to date to be really useful. I don't have time to do it all myself. | |
Geomol: 5-Dec-2011 | In other words, the pair! is ignored at this time. | |
Geomol: 5-Dec-2011 | Maybe I should tell a bit, how I work, to make it easier for you to understand, what you've got for now. I do much of assembly line programming, because it reduces the time of development. So when I wrote the lexer, I didn't just implement e.g. numbers, because arithmetics would be the first functionality, I would finish. I implemented all 40-50 datatypes, I wanted in World, in the lexer at the same time. So the lexer is prepared for more datatypes, than what actually works for now, and you will just see "Valid <something>" from the lexer, when it recognizes such a type. | |
Geomol: 6-Dec-2011 | My first experience with LLVM. I tried to compile World with llvm-g++ under OS X. When compiling with gcc, I normally use -O2 option. I compared performance with the Mandelbrot test. Between compilations, I deleted all .o files and executable, so new compile started from scratch. Compiling with llvm-g++: With -O2 option, file size grow to 105% and execution time extend to 105% (slower). With -O3 option, file size grow to 106% and execution time is the same. With -O4 option (also Link Time Optimization), file size extend to 122% and execution time grow to 107% (slower). Then I tried to compile with gcc and -O3 option. Now file size grow to 105% and execution time shortened to 85% (faster). Has anyone had similar experience with LLVM? | |
Geomol: 6-Dec-2011 | I tried compile with clang. More results, first with gcc, then clang: gcc -O2 option size: 346136 time: 0:00:00.681560 clang -O2 option size: 349976 time: 0:00:00.736821 clang -O3 option size: 354072 time: 0:00:00.643053 clang -O4 option size: 382888 time: 0:00:00.734845 | |
Geomol: 6-Dec-2011 | gcc -O3 option size: 362304 time: 0:00:00.579858 It seems, gcc beat LLVM and clang here on performance, if I use -O3 option. | |
Geomol: 7-Dec-2011 | Correct. World is not designed to cope with such cases, where words changes from functions taking arguments to passive non-function values, or if number of arguments changes to a function. To change the behaviour of the c block, a compile is needed. So question is, if that compile should be executed by a COMPILE call, or if the compile state of the block could be reset, and in this case, it would be compiled, the next time, it was executed with DO. | |
Geomol: 9-Dec-2011 | More about routines. The next release of World will introduce the handle! datatype. It's used to hold pointers, which are normally handled by structs and integers in R2. If we take the sqlite3_open routine as an example: http://www.sqlite.org/c3ref/open.html The routine takes a pointer to a pointer as its 2nd argument, and this is the db handle updated by the routine. The handle is again used in sqlite3_close: http://www.sqlite.org/c3ref/close.html , but this time, it's the handle itself as the argument, not its address. In World, using routines should be as easy as possible, and the consequence is, the definition of the routine gets some complexity. World uses libffi as the underlying motor to carry out the calls. libffi defines 15 datatypes, where World uses 14 of them (not longdouble). Beside "pointer", I will introduce "pointer-adr", and routines like sqlite3_open can use that. Then the address of the handle will be given as an argument. Routines like sqlite3_close should just use "pointer", and World will internally typecast the handle to an integer (32- or 64-bit depending on version), and give that to the routine. | |
GiuseppeC: 9-Dec-2011 | Geomol, I am reconnectin to the Rebol3 world after a long time of absence. | |
GiuseppeC: 9-Dec-2011 | You are the project LEADER and you are the creator of this wonderful project. You have a VISION, a destination. Back in time, when CARL was developing REBOL3 he created a roadmap explaining us what would be the structure of the language, its modules and how they cooperate. This inspired suggestions from the community, changes in the roadmap but more preciosuly it created expectation, commitment and willingnes to cooperate. | |
GiuseppeC: 9-Dec-2011 | As you may know I am the creator of the REBOL2 DocBase section. I have asked for long time the upgrade of the software to a later version which supports multiple languages. | |
GiuseppeC: 9-Dec-2011 | Personally I have a great private project in mind and a skilled developer for it. The project is blocked because he want to make money now and someone who finances the project. I told him that First of all we must show a concept application. This will sell the application itself and we start fundraising. Until something usable won't be ready I will not be able to sell the idea. He refuses this view and we are blocked. As you are writing a programming language you are in a worst scenarion than us. You need to have a commercial class programming language ready for the mass to sell it and this is not the case. Commercial Class mean: IDE, Solution for interfacing SQL Databases, Solutions for communicating, Solutions for interfacing to other projects. This is too much for one man to accomplish. You need to live, you need money and World is your Hobby project (Isn't it ?) Open sourcing and delegating is the solution for creating a mature project: you seth the path, the specifications, the rules, the others will help. I won't give a Penny and Time to REBOL Tech. because its source is closed and this model is wasting my precious life waiting for Carl to resurrect. Open Sourcing solves this problem. Don't you think that if REBOL was open sourced many developers would have inproved it in Carls absence ? Do you think that someone, like an university will donate money to a private held project ? I don't think so. When we (you) will have a mature project and you will be able to show to the world the advantages of your solutions money will come. Think of SQL lite. There is a consortium behind it. Other open source solutions have the same consortiums behind them. There are many ways to raise money: You can produce vertical solutions for your baby.You can give consulency to companies and other institutions, you can create products with World. These are few that comes into my mind. | |
GiuseppeC: 9-Dec-2011 | I repeat: I am ready to cooperate once you will chose an open source licence. I am ready to give money and TIME. Carl didn't seem to apreciate. Hope you will. | |
Geomol: 9-Dec-2011 | You list of 5 things: 1) Not sure, I wanna do that. It takes time away from me finishing version 1. 2) I have set the goals for ver. 1. 3) No (see Q&A) 4) "Ask for cooperation" - World would need schemes for the different protocols. I will welcome others work in that area. Me (and most likely others too) would like to see World on more platforms than the current 3. Host kit is open source. I will welcome ports to other platforms. (That's what I can think of for now, but I'll keep it in mind.) 5) It's faster for me to write the documentation than building a comm/doc infrastructure. I'll write the World 'bible'. Work has started, and I'll use more time on it, when version 1 is a bit closer. | |
GiuseppeC: 9-Dec-2011 | Personal I discourage you from closing the part/all of the source. Having learnt from REBOL Tech., the language itself will not sell and closing the source closes the opportunity of cooperation. An open source give you a boost into the develpment and believe me: you stongly need cooperation. However I am not GOD and I cannot force you into making anything. I could only share my opinions and give you time to thing on them. | |
GiuseppeC: 9-Dec-2011 | Lets the time talk for this. I prey for you. | |
Geomol: 9-Dec-2011 | I just thought of another way to help. Make a list of REBOL functions missing. There are many missing from %rebol.w And there already is a wiki started with differences from REBOL at: https://github.com/Geomol/World/wiki/Differences-from-REBOL I don't have time to write it. But everybody can write in that wiki. Now, go try World out. And remember to have fun! | |
Steeve: 9-Dec-2011 | I second Giuseppe. I will not invest any time or money in a new closed source project. Not anymore. Geomol, do you really think you can follow the same model than Carl with better results ? You should aknowledge the fact than nobody win money just because they designed or a created a new programming language. I was possible back in 90's but not anymore. | |
Geomol: 9-Dec-2011 | Disadvantages: me loosing focus and loosing time, when having to answer all kinds of questions and approve new developments. The horror of World being fragmented to 100 versions, where none of them are compatible. You wouldn't like that! I make sure, that doesn't happen. You need surplus of time and resources to open source things like this, if you wanna be sure, it doesn't run off rails. Look at how many ways, you can do any single thing in Linux. It's way too fragmented in most areas. | |
Geomol: 9-Dec-2011 | About instructions being 256 bit, half can be used to hold constants of the types: - complex! : 2 double - range! : 2 64-bit int (also pair! in the future) - tuple! : 14 bytes + length (could be 15 bytes) - date! : 128-bit in all The rest is used for opcode, type of constant and a register offset. I put a 32-bit filler in, when going from 32- to 64-bit to reach a 64-bit boundary. So it should be possible to go down to 192-bit instructions without loosing functionality. To reach 128-bit instructions, the above constants needs to be spread over two instructions, which will hit performance. But it's important to notice, there is room for improvements here. It hasn't been important for me to uptimize in this area yet, so that's why it is like this for now, but that time will come. | |
Geomol: 14-Dec-2011 | It's not really junk!, it's human text, encoded as humans see fit, gibberish or deep meaning symbolic. Funny, when I first implemented KWATZ!, I called it gibberish!, but I found KWATZ! better suited and more interesting. And it kinda give you the same feeling, as when you see a computer go down with a "Guru Meditation". :) And if you don't mind, I may start poking around in your wiki as btiffin on GitHub. Feel free to tear any writings apart. The idea with the wiki is, that it's for everybody to edit, so it's not really "mine". And as I have very little time for documentation right now, I will only contribute a little. It may be needed to step in at some point and clear things up, make different pages consistent with each other etc., and that may be me, who does that, but it could be somebody else too. For the dictionary, it may be an idea to write a script, which does most of the documentation (I think, there's an old REBOL script for that lying around somewhere, which may be suited with some modification). system/words may be needed to do that properly, and that's not in World yet. I produce LaTeX output with my NicomDoc format, so I'm covered there with the documentation, I'll do (a proper manual). Regarding cortex.w - is that in the far-plan? Yes, the binary will be as basic as possible. I even consider removing definitions of natives from the binary, as it's possible to define them in cortex.w. Same could be done with datatypes with a little change to World. Then the binary could only define MAKE and DATATYPE! (and probably also SYSTEM), and the rest could be build from that. It's a good idea to split the doc up in a native section and a mezzanine section. And then there's rebol.w, which will make it possible to run even more REBOL scripts. There could be a dictionary for that too. | |
Geomol: 15-Dec-2011 | There seem to be a problem with routines returning a handle. A library like MagickWand (part of ImageMagick) works this way. I'm not able to test it with MagickWand, as I'm not able to load that library for different reasons, and I don't wanna use too much time on it. So I'm after another library, that has a routine, which returns a handle, so I can test. A library easily to get for OS X, Linux and Windows would be nice. Any suggestions? | |
Geomol: 20-Dec-2011 | 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? | |
Geomol: 29-Dec-2011 | 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 | 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. | |
PeterWood: 29-Dec-2011 | 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: 3-Jan-2012 | Under OS X, I get an empty binary, which is expected behaviour. Under WinXP, the process hangs here. The OS X and Linux version of World use standard BSD networking, the Windows version use MS networking, where an init is needed. You're welcome to suggest changes to the host specific sources. At this stage, I won't use a lot of time on Windows specific sources, as I don't use that platform very much. I consider using cURL for networking, as that could give a lot of features fast. If I find, it adds too much to the overall size of World, it could be cut along the way by moving features from cURL to World sources. | |
Gregg: 27-Jan-2012 | I admit that I haven't made time to dig into World, but there is already a *lot* there from what I have seen. Personally, I am very interested. I am also very interested in leveraging community efforts in support of all the REBOL-like languages that are available. | |
Geomol: 28-Jan-2012 | Then reality check: This group was started 2 months ago. It's easy to go through it and look for my blue and yellow releases and notes. That's a lot of progress in 2 months. If you see it otherwise, then you're blind. The C sources of World has grown a lot in those two months, and it's quality work with few errors considering the amount. You will most likely see the progress of World come in waves. I had worked intensely on it more than full time since before summer. Yes, more than full time (more than 8 hours a day, also week-ends), so that's a lot of man hours. The last month, I've done paid freelance work too. At the same time, for World I'm researching better networking (cURL), getting lib calls to work under Windows 64 using libffi and finishing the memory model, so circular references are coped with correctly. Why didn't I say so? Because I like to announce things, when it's done, instead of giving false hopes, but now I made an exception. 1) I'm not going to give my work away for free at this time. That's because I see no benefit in doing so. 2) World will not come in a situation like REBOL, with lots of errors for a long time and still closed source. If I wasn't able to continue work on World (to fix errors, make further progress or whatever), and if people relied on work already done, then I would open source it. As this isn't the current situation with World, this is no argument to open source it. If you don't like my model, move on. Negative rants here are not productive. |
7601 / 7721 | 1 | 2 | 3 | 4 | 5 | ... | 74 | 75 | 76 | [77] | 78 |