AltME groups: search
Help · search scripts · search articles · search mailing listresults summary
world | hits |
r4wp | 4382 |
r3wp | 44224 |
total: | 48606 |
results window for this page: [start: 48301 end: 48400]
world-name: r3wp
Group: #Boron ... Open Source REBOL Clone [web-public] | ||
Henrik: 28-Feb-2011 | R2 and R3 are not bundled, so when starting them, is the same as other unixes. | |
PeterWood: 24-Jun-2011 | Graham from Red - "Karl has failed to engage with the Rebol community as far as I can see." Personally, I have found Karl very approachable and responsive on the Boron MIL. | |
Group: World ... For discussion of World language [web-public] | ||
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 | (And I thought, LLVM was much better, but maybe I do something wrong or miss some option!?) | |
Geomol: 6-Dec-2011 | There is a /usr/bin/llvm-g++ command under OS X. The man page say: llvm-gcc uses gcc front-end and gcc's command line interface. So maybe it isn't "clang"!? I'm not sure. It's my first real experience with LLVM. | |
Geomol: 6-Dec-2011 | Because I had no experience with LLVM, because I started World dev. on older MacBook, because LLVM was many MB download, because I wasn't sure, I could get LLVM on Windows and Linux easily. | |
Geomol: 6-Dec-2011 | And I notice, at least one of my tests don't finish with the LLVM and clang versions, which is disturbing. :/ | |
Geomol: 6-Dec-2011 | So it seems, I made a good choise with gcc, because 1) it was easy to make World compile with LLVM and clang (if I choose that path now) and 2) it seems, some code doesn't work as intended with LLVM and clang. | |
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. | |
BrianH: 6-Dec-2011 | You might also look into LuaJIT, as it is supposedly faster than most VMs, and smaller too. | |
Geomol: 6-Dec-2011 | Thanks, Brian (LuaJIT). Could be later, when World is stable and the hunt for performance really starts. | |
Geomol: 6-Dec-2011 | Yeah, I've had it in the back of my head all the way with World. And then I just noticed, it was installed on this Mac. | |
Geomol: 6-Dec-2011 | So it's more about portability and maybe better error messages? | |
Andreas: 6-Dec-2011 | For typical end-users, clang is about fast compilation and good error diagnostics (at the moment). | |
Andreas: 6-Dec-2011 | LLVM can also be used as a set of compilation libraries, yes. And you can implement a JIT that way, yes. | |
Geomol: 7-Dec-2011 | When compiling blocks, each block instance has its own compiled code. And changing at one instance doesn't reset compilation for another (which would else add overhead). So: w> s: [1] == [1] w> do s == 1 w> t: tail s == [] w> insert t 2 == [2] w> do t == 2 w> s == [1 2] w> do s == 1 APPEND doesn't change at the block instance, so APPEND doesn't reset compilation. | |
Geomol: 7-Dec-2011 | Block compiled state will be reset by functions such as INSERT and REMOVE. And if the block is set to another location (NEXT/BACK with call-by-word for example). | |
Geomol: 7-Dec-2011 | And the WITH function would then be: with: func [obj body] [do compile/at body obj] | |
Geomol: 7-Dec-2011 | That code leads to an error, if c is compiled before f is redefined. The error system isn't very good atm., and I'll probably work on that next. I need more experience with World and more examples to say, if a compile reset is a good idea. | |
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: 7-Dec-2011 | Right, and we have to figure out, if we really need that. | |
Andreas: 7-Dec-2011 | (Then a mezzanine APPEND could just reset compiled state, and would behave identical to INSERT in that aspect.) | |
Geomol: 7-Dec-2011 | And I get a malloc error, when doing that a couple of times. Yes, crash. I'll hunt that down. | |
Andreas: 7-Dec-2011 | A possibility, but I think that would on the one hand make implementation more complex, and on the other would just introduce more semantic corner cases. | |
Andreas: 7-Dec-2011 | Such as a block being shared by a function and a global word. | |
Geomol: 7-Dec-2011 | Topic: routine! and handle! | |
Geomol: 7-Dec-2011 | At present without typecheck, World think string! when seeing a pointer in a routine spec. And the World types are just seen as comments. With typecheck on, the Would types are considered, and only certain combinations of World types and libffi (C) types makes sense, like string! and binary! for pointer. I'm about to implement handle!, and maybe handle! should be the default for pointer. And then it's required to specify typecheck, if string! or binary! want to be used with pointer. | |
Geomol: 8-Dec-2011 | I get a malloc error under OS X (64-bit), when redefining a function with code like: f: make function! reduce [pick :f 1 pick :f 2] I didn't find the error, so I tried it under WinXP (32-bit), and the error isn't there!? Any suggestions? | |
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. | |
Geomol: 9-Dec-2011 | Notice that the world-datatype after sint (the return type) will be optional too, even when typecheck is on. The argument names are optional too. The World types of the arguments are not optional, if typecheck is on, else they're just treated as comments and can be left out, but not their blocks, as those are used to count no. of arguments. Btw. argument types in functions and operators are treated as comments too in World. I plan to introduce [typecheck] special attribute for those too. | |
Geomol: 9-Dec-2011 | Naming pointer-adr, I considered also *pointer, but found it too C-like and 'pointer, so didn't quite like the syntax, even if it lead the thought to call-by-word. | |
Geomol: 9-Dec-2011 | I also considered leaving pointer-adr out, and let the call define, how the routine should be called. Something like: h: make handle! none sqlite3-open "test.db" 'h ; notice the lit-word! But this will slow calling routines down, because the call will have to look h up. | |
Geomol: 9-Dec-2011 | The reason, I put the world-types of the arguments into blocks is, that in the future, polymorphism could be introduced for routines. So routines could be called with different types of arguments, and internal conversion will then happen. This is for the future. Second reason is, that argument names are optional, so parsing the routine spec needs some way to figure out, what is name and what is type. | |
Geomol: 9-Dec-2011 | Today World types in routines are considered, when typecheck is on, and conversion is then carried out between the World type and the C type for the arguments, and the C type and the World type for the result. Examples with "clock" from libc under OS X: w> clock: make routine! [libc "clock" sint64] ; The simple version w> clock == 79551135 w> clock: make routine! [[typecheck ]libc "clock" sint64 real!] ; Result as real! w> clock == 79576741.0 w> clock: make routine! [[typecheck ]libc "clock" sint64 complex!] ; Result as complex! w> clock == 79621776+0i | |
Geomol: 9-Dec-2011 | - Updated cortex_alpha.pdf, the section about routine!, and added handle! and AS. | |
Geomol: 9-Dec-2011 | Regarding AS, the REBOL AS-BINARY and AS-STRING can be achieved with: as binary! ... as string! ... But it's also possible to do: w> as issue! "abc" == #abc w> as paren! [a b c] == (a b c) w> as tag! "title" == <title> and many other combinations. | |
Geomol: 9-Dec-2011 | Handles are made with: handle: make handle! none Some routines might return handles, and those are not necessary to made yourself. | |
Maxim: 9-Dec-2011 | one little note about handle! is that it should be immutable and cannot be created from within the interpreter beyond defining a null pointer, as above. value holding handles should only be returned from a routine. the idea here is that you should not be able to mangle handles, for a variety of reasons. | |
Maxim: 9-Dec-2011 | my only suggestion for structures... make it so the semantics are exactly the same as C. i.e. you take a C header file, and do: replace/all header-string "{" "[" replace/all header-string "}" "]" replace/all header-string "char *" "pointer" ... and basically you've got your simplest World version of the spec ;-) | |
Maxim: 9-Dec-2011 | btw, regarding the struct interface, making as close to C as possible allows you to support any binary api and will allow you support the more complex twists. things like arrays of pointers and pointers to arrays of pointers, etc... these things are often overlooked (like they where in R2) and create major headaches or downright project blocking in some cases. | |
GiuseppeC: 9-Dec-2011 | It comes as surprise you new REBOL inspired new language. It is inevitable that things like TOPAZ and RED are created after the long absence of CARL. There is a stong need from the market and the market is US programmers which cannot wait any longer. | |
GiuseppeC: 9-Dec-2011 | First of all a question: which will be the difference and improvements comparing to REBOL ? | |
GiuseppeC: 9-Dec-2011 | Now will come my considerations about Licensing and development. | |
Geomol: 9-Dec-2011 | Difference: Based on a virtual machine, that source can compile to. Many different design decisions, but many of those can be redone to be REBOL compatible by defining words. This is what %rebol.w is for. Improvements: Faster in many cases because of the VM. I try to make it better in all those areas, where I find REBOL not good enough. Datatypes like complex! and more in the future. I also try to cut into the bone and only create that at the core, that is really needed. I see that as an improvement. | |
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 | You are a programmer but you should be an inspirator and entrepreneur. Like a programmer you first released the alpha version before selling the idea ! :-) You came out from your BatCave after 2 years of silence telling us "look here what I have created". This is good as it proves you deliver other than promising. Somewhere, in the road to version 1.0 you will need help. It belongs to you teling us when you will have clear in your mind the whole project. Then, please SHARE THE VISION and ask for cooperation and involvement of other programmers. You are not alone. There is lot of skilled people here. They will be happy to give their input to you. This will avoid being World as a one man project and will put the basis for collaboration. | |
GiuseppeC: 9-Dec-2011 | Now 3 years have passed since then and no upgrade took place. I am still with the same idea: I believe that documentation and communication is everything. If someone has the willingnes to setup a linux system with the proper wiki software I am ready to DONATE MONEY for hosting. | |
GiuseppeC: 9-Dec-2011 | It will be the basis for World Documentation. You are a programmer and you know how much important is this aspect. I am sure we will find someone which could create the official World Web Site. | |
Geomol: 9-Dec-2011 | Somewhere, in the road to version 1.0 you will need help. It belongs to you teling us when you will have clear in your mind the whole project. Then, please SHARE THE VISION and ask for cooperation and involvement of other programmers. It's pretty clear in my mind, what version 1 is about. When I started, I wrote down the natives, which are really necessary to create a REBOL like language on a virtual machine. All the other functions should be able to be produced from this set of natives. I listed about 100. World currently has 83 natives implemented. Maybe some of them will get some more refinements before version 1, but you could say, the natives are 80% done. You may think of this project as the Wildman project (see that group), not on native hardware, but on a virtual machine. | |
Geomol: 9-Dec-2011 | And I listed close to 50 datatypes. World currently operate with 41 datatypes. | |
GiuseppeC: 9-Dec-2011 | As things are clear to you I suggest to spend a couple of days creating the White Paper, The structure of the programming language and the ROADMAP. You may think that you will loose 2 days but I am sure you will gain lot more. | |
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 | Point 3 is important for me and many others. If the project is open sourced I will be ready to donate. No waste of money donating to a private held company. | |
Geomol: 9-Dec-2011 | There are many ways to raise money: Yes, I know, and I plan to do something about it. :) | |
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. | |
Geomol: 9-Dec-2011 | When I started "Countdown: 10" 2 weeks ago, the C sources were close to 23'000 lines. Atm. World is 24'372 lines and growing. The project is moving forward fast. | |
GiuseppeC: 9-Dec-2011 | Geomol: don't make the mistakes of CARL. You strongly need developers and adoption from the open source community. We are now in the right momentum. Please belive me: you have more adavantages than disvantages and you won't loose the contro of your baby. | |
GiuseppeC: 9-Dec-2011 | I am not religius to my I will light a Candle in any case a GOD exists and could help you :-) | |
GrahamC: 9-Dec-2011 | Well, good luck but as in the tech news .. HP paid $1.2bn for WebOS and are now open sourcing it | |
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! | |
Geomol: 9-Dec-2011 | I have my hands full now, and I make really good progress. When we're around version 1 (or if I don't make more progress), it would make much more sense to think about open source. And as I've said, it may also make really good sense to open source parts along the way. I have considered library.c and library.h, which holds the C code for library! and routine!. That almost makes sense now. When I've implemented error! correctly (working on it), it really makes sense. You have only been able to run World for 5 days. Patience! :) | |
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 | And it may make sense to share code in some areas. | |
Kaj: 9-Dec-2011 | It's actually a lot like Linux. Every distro has something you need, but none of them has everything you need. If I want to build the Russian Syllable website, I can only use R3. If I need system integration and speed, I can only use Red. If I need to write web apps, only Topaz targets that. If I need open source, I can only use half of them. If I need dynamic binding, I can only use the interpreters. If I need infix operators, I can't use Boron, although I could use its predecessor. Etcetera ad nauseum | |
Geomol: 9-Dec-2011 | But doesn't "trying to do everything" mean, it becomes bloated and complex? | |
Kaj: 9-Dec-2011 | REBOL started out as a Swiss army knife, and was it bloated and complex? | |
Andreas: 9-Dec-2011 | Not much, no. But that also means I haven't yet changed my mind and still believe we need one :) | |
Geomol: 9-Dec-2011 | :) I see it as: I have compiled function, I would like to change -> I make changes -> I want the new version to run With compile reset, that can be cone at any point between first run and second. Doing it with COMPILE, it needs to be done right before 2nd run. But isn't that good enough? Or can we come up with situations, where it isn't? | |
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. | |
BrianH: 10-Dec-2011 | You can write this and it will work in R2 and R3, because the stuff before the header will be ignored: world [] rebol: none rebol [] | |
BrianH: 10-Dec-2011 | Any language that can do aliasing between the string and binary types, rather than requiring conversion, won't work. | |
Geomol: 11-Dec-2011 | My view is, implementing unicode everywhere will add to unnecesssary complexity. Each such level of complexity is a sure step to downfall. My first rule of development is simplicity, then performance, then low footprint, then maybe features. Words in World can hold 7-bit ASCII. Chars and strings can hold 8-bit characters. That's the level of simplicity, I aim at. I will have to deal with unicode, of course, and I'll do that, when World is a bit more mature. There could be a unicode! datatype. | |
Geomol: 12-Dec-2011 | There is a lot of interest from people from France in REBOL-like languages, it seems. The month stats for world-lang.org shows most visitor from France, closely followed by Denmark and United States. Then Germany, Switzerland, UK, Czech Rep., Japan, Canada and Malaysia. I should say, that I informed my SAS friend from France about this, so he could have spread the word too. | |
Geomol: 12-Dec-2011 | And 5 visitors from Brazil today. The Lua guys maybe? :) | |
Geomol: 13-Dec-2011 | That's cool, Brian! :) A note about KWATZ!, you suggest it to be text!, but it's not quite. It sure can be e.g. UTF-8 data: (Setting my Terminal program to character encoding Unicode (UTF-8) and trying to load 3 ASCII letters, 3 danish letters and 3 greek letters) w> load "abc ?????? ??????" == [abc #{C3A6C3B8C3A5} #{CEB1CEB2CEB3}] (Notice World isn't prepared to unicode yet, but can load it, as it can just be seen as bytes.) But beside text, KWATZ! can also handle all other data, like escape codes or any binary format maybe combined with more understandable data, you wanna load. | |
Geomol: 13-Dec-2011 | On the word KWATZ!, someone found a couple of good links: http://seedsforsanctuary.blogspot.com/2008/06/kwatz.html http://www.livingworkshop.net/kwatz.html I first heard the word in a dialogue between an AI and a poet in a very good book by Dan Simmons. [KWATZ!] | |
Geomol: 13-Dec-2011 | Also "Difference from REBOL" has almost nothing yet. I mostly code and not writing docs at this point. | |
btiffin: 13-Dec-2011 | Geomol; by text! I was referring to the old junk! argument. It's not really junk!, it's human text, encoded as humans see fit, gibberish or deep meaning symbolic. Naming things is hard. ;) KWATZ! is ok...but I don't get the 'ahhh, that's optimal in meaning and depth' from it - and I lean Buddhist and did see the Zen references. But kwatz is still sinking in, if it's going to (and perhaps that is the best kind of deep meaning). | |
btiffin: 13-Dec-2011 | 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. I'll admit to having some deeply ingrained misunderstandings about REBOL, so those will likely slip right on over to World. (I've got notes from Ladislav, Gabriele and a few others that pointed out these misunderstandings (and when documenting, misunderstandings are simply untruths and need to be treated that way)). In particular, I still don't see clearly the 'value - premake - type - make (and) word' semantics of REBOL (at least in terms of trying to explain it) I'm hoping your World engine code is let out so I get a chance to view my problem from a different angle and hopefully 'see the light'. I'll add that if you want to send any snippets for markup in LaTeX, I'll sign up for grunt work too. | |
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 | This is first release with struct!, so not all features are there, and it needs further testing. | |
Geomol: 15-Dec-2011 | Struct can be made in different ways: make struct! [[float f] none] make struct! [[f float] [1.0]] ; var name before type And there is a STRUCT helper func: struct [float f] none | |
GiuseppeC: 15-Dec-2011 | Hi, I am interested into building an maintaining documentation for those programming languages based on REBOL. It would be nice to have a DOCBASE for them. What I search is: - Someone ABLE to SETUP the Linux and the Wiki Software - Someone which would share with me the cost of hosting. Do you like the idea ? Write me at [giuseppe-:-chillemi-:-eu] | |
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: 15-Dec-2011 | I was able to load MagickWand under Linux, and it seems to work with uint32 datatypes to hold the handle (a C pointer). But it doens't work so well when using the handle! datatype for that. It would be nice, if it worked, I guess. It's probably some type casting problem. | |
Maxim: 15-Dec-2011 | actually, any library which returns a string could use a handle! as a return value instead. the handle could be used to store the reference to the string as-is and give it to another routine which requires a string on input. | |
Geomol: 18-Dec-2011 | World is free to use and can be found at https://github.com/Geomol/World Why don't you try those things out yourselves? I would like to comment, but I feel, you get most from it by trying it. | |
Geomol: 18-Dec-2011 | For minimum install, just pick one of the world_* files and cortex.w | |
Geomol: 18-Dec-2011 | Ladislav, if you did try and mean having that code inside a function, then there was a bug, which will be fixed in next release. | |
Geomol: 19-Dec-2011 | About bit operations, I looked at SHIFT. R2 got it at some point, but there is no ROTATE. Wouldn't that be useful too? I think about graphics operations and maybe other areas. | |
sqlab: 19-Dec-2011 | if you open and connect and the peer closes, this happens too | |
Geomol: 20-Dec-2011 | - Reimplemented bitset! as binary - Added native function: COMPLEMENT - Added native function: ROTATE - Added native function: SHIFT - Added << and >> operators to cortex.w - Added hex form for characters, ^(00) - ^(FF) - Added REFORM to rebol.w - Added DETAB to rebol.w - Added ENTAB to rebol.w - New test - Bugfixes | |
Geomol: 20-Dec-2011 | 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. | |
Geomol: 20-Dec-2011 | 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 | 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 | 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: 20-Dec-2011 | 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. | |
Geomol: 20-Dec-2011 | 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. |
48301 / 48606 | 1 | 2 | 3 | 4 | 5 | ... | 482 | 483 | [484] | 485 | 486 | 487 |