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: 29501 end: 29600]
world-name: r3wp
Group: Core ... Discuss core issues [web-public] | ||
BrianH: 2-Feb-2009 | Doc: "The only support I expect is R2 C-level bugs fixing." Don't forget mezzanine bug fixing and the backports, which are community support. No new C-level features are likely, except for backported tweaks to the natives. New mezzanine-level features we can add ourselves, but remember that R2 is in compatibility mode right now. We shouldn't break the existing R2-compatible code if we can avoid it, since that compaatibility is the main advantage of supporting R2. Future releases of R2 will have even more backported functions from R3, but these will be in a separate file of the source. It is likely that this separate file will need to be loaded if you want to use its functions, so there will be no new predefined words by default. You can load the file if you want to make your code more R3 compatible. This is likely the best way to ensure compatibility. | |
Dockimbel: 2-Feb-2009 | I've workaround it. It was only appearing on resetting workers using USR1 signal. Now I've fixed it and it seems ok. I'll release the fix tonight, so everyone can test it. | |
eFishAnt: 5-Feb-2009 | It is gzip data, and the to-binary was a hack. It doesn't work either way. I thought the REBOL script in the library, gunzip.r might work for me, but it is a rather crazy script that I don't quite understand, but the GUN in GUNzip.r shot me in the foot. | |
eFishAnt: 5-Feb-2009 | decompress wants a string, and binary is a string, so that's what made me think to do to-binary... | |
Janko: 8-Feb-2009 | With all the retrospection going on, can I somehow get whole current namespace/memory image/state of rebol interpreter as a block and save it to a file for example? | |
Janko: 8-Feb-2009 | ot at least all "user-namespace" , for example I define dew functions, and few variables, then I run app for a while, can I at some point get values of all my words ("variables" + functions) and "export" them | |
Janko: 8-Feb-2009 | (and Doc) | |
[unknown: 5]: 8-Feb-2009 | Janko, what a lot of us do when we build a script is create one large object and build our functions and values off of it. | |
Janko: 8-Feb-2009 | yes, I agree... I am asking because if this could be done then you could use rebol in a same way as smalltalk and factor are which are "image based" languages ... this brings some interesting usages.. | |
Janko: 8-Feb-2009 | for example a server that can replicate itself... or save it's state and then run from exactly same state, or in games, editing them without restarting... editing "live image" which should be possible because you can redefine words in rebol, but then you need to save whole current state. | |
[unknown: 5]: 8-Feb-2009 | Janko, I had left to shower and eat lunch. Sorry, but you need to check the status on the left. Often times we just disappear. That is kinda what is nice about Altme in a sense is that you know when someone is available or here now by the status. | |
Janko: 12-Feb-2009 | usage example: >> codes: [ [ a: 12 + 23 b: a + 100 c: b * a ] [ t: join "aaa" join "bbb" "ccc" find t "b" ] ] >> para-do codes 35 aaabbbccc 135 bbbccc 4725 == [4725 "bbbccc"] (it collects results of all blocks when done and returns them) | |
Janko: 12-Feb-2009 | also.. something para-do could be made so that it would send code blocks to multiple rebol processes via tcp or pipes maybe and collect results back | |
Janko: 12-Feb-2009 | it can do 1000 blocks with 5 expressions in 0.03s on my (little slower) comp , 10.000 in 0.25s , 100.000 in 3.75s ... so it seems stepping the blocks is not horribly slow, and I am sure my func could be made better | |
Steeve: 12-Feb-2009 | clearly, it could be faster but i'm not sure of the interest of such thing. If i want a small granularity in a process, i build tiny functions and push them in a to-do stack | |
Steeve: 13-Feb-2009 | ouch Brian, one second more and it was my reply :) | |
BrianH: 13-Feb-2009 | Tomc, you can't do copyless and get subseries, but you can build a block of before and after references. | |
BrianH: 13-Feb-2009 | The resluting block will be pairs of references to the beginning and end of his subseries. He can then get any subseries he needs by referencing it using the beginning and references with the /part option of COPY or INSERT, though using CHANGE or REMOVE will mess up the offsets of any subsequent references unless he is referring to a list! type. | |
Tomc: 13-Feb-2009 | a rose by any name .... new and block both end up with the data so it is still copying | |
Tomc: 13-Feb-2009 | Ahhh! I see hmmm I think all I will need to do is reorder *between* references and subject those sub-blocks to further partitioning | |
BrianH: 13-Feb-2009 | The new block is really an index (in the database sense). You can sort and manipulate the index, then use the result to build a new version of the data if you like. | |
Tomc: 13-Feb-2009 | positions get messed up if and only if the end points of the sub range are shuffled in the sort ... | |
Tomc: 13-Feb-2009 | and as their index can be known beefore hand they can be reset if needed. i think | |
BrianH: 13-Feb-2009 | However, sorting the index won't change any of the references that the index is pointing to, because the underlying data doesn't change. Once you are done sorting and manipulating your index you can commit the changes, which means building new data from the index references. | |
Tomc: 13-Feb-2009 | all movement between (and including ) two reffrences stays between those same two reffrences | |
Tomc: 13-Feb-2009 | and yes the span (# of columns) is the same for sorting and skipping | |
Tomc: 13-Feb-2009 | the initial offset (which column) the sort is on changes, but that is sort/skip/compare/part ref1 span column ref2 Brian's concern is what does this sort do to ref5 and ref 6 position. are they still valid. time to experiment | |
Tomc: 13-Feb-2009 | thanks Brian and Steeve. good night | |
TomBon: 19-Feb-2009 | how can this avoided? does a object! defined within a object! (embedded) breaks with the clone/ingherit rule? calling a function within a object! which e.g. changing a value within the embedded object! changing the parent AND the child object!. template: make object! [ obj-in-obj: make object! [a: make integer! 0] b: make integer! 0 c: func [val] [ obj-in-obj/a: val b: val ] ] wcopy: make template [] probe template probe wcopy wcopy/c 1000 probe template probe wcopy what I am doing wrong here? and is there any easy way to clear a object at once without resetting every single variable in the object | |
TomBon: 19-Feb-2009 | I have a big loop (20.000+) which fills many objects with datas. the objects contains also functions writing and calculating data within other objects (all within a global context/object). each loop is a new run, so I need a new or cleared set of objects for every loop. looks like cloning doesn't work for me (see above). I could reset every single value, but this will cost me a day minimum. do I overseen some simple solution here? | |
sqlab: 19-Feb-2009 | Why you do not make your template just an unevaluated block and then you always generate a new object or you never change your template, just the descendants ? | |
DideC: 19-Feb-2009 | You need a 'make-deep function that (recursively ?) digg into the copied object and copy each subobject it find. I'm sure people arround have one in their HD (not me). | |
TomBon: 19-Feb-2009 | YES! thx a lot graham and paul. it works. | |
[unknown: 5]: 19-Feb-2009 | TomBon, keep in mind that you can create the spec for an object and use it as your template as well. | |
TomBon: 19-Feb-2009 | yes but the objects also containing functions and nested objects etc. graham approach is very compatible with the current codebase I have so far but thx for reminding me with this paul. | |
[unknown: 5]: 21-Feb-2009 | What was confusing me is assignment and how it works with lit-word | |
Izkata: 21-Feb-2009 | It's always felt consistent to me - the context is being evaluated, and lit-word!s reduce to word!s, word!s reduce to functions and values, while other datatypes reduce to themselves: >> X: [{One} 'Two] == ["One" 'Two] >> ? X/1 ? X/2 X/1 is a string of value: "One" X/2 is a lit-word of value: 'Two >> X: reduce X ;Here is where typing it in on the terminal evaluates to == ["One" Two] >> ? X/1 ? X/2 X/1 is a string of value: "One" X/2 is a word of value: Two >> X: reduce X ** Script Error: Two has no value ** Near: Two ...and the reasoning behind lit-word!/word! acting differently is that those are special datatypes where other values can be bound to them | |
Janko: 21-Feb-2009 | (I participatted in this discussion already one time and it also seems consistent to me) | |
Janko: 21-Feb-2009 | Paul: I think Brian or Henrik told that time that 'word is "active" something and rebol reduces it when encounters it in the same way as it would auto-reduce function a: get-two not assign it to a (at least that was my compilation of it that time :) ) | |
Janko: 21-Feb-2009 | and we all know that blocs don't get evaluated / reduced by itself so [ word ] stays [ word ] even fi word is undefined or func or anything so [ 'word ] also stays [ 'word ] | |
[unknown: 5]: 21-Feb-2009 | That makes no sense to me Janko. By the way it was me and Henrik that both thought it was inconsistent. | |
Rebolek: 21-Feb-2009 | Paul, it is consinstent: read first word - it's >lit-word?< evaluate it - it's a function that takes one argument read second word (first and only argument for that function) - it's >'test< evaluate it - lit-word! evaulates to word! pass it to the function - word! is passed, not lit-word! | |
[unknown: 5]: 21-Feb-2009 | See I read the documentation on lit-word? and it states: Returns TRUE for lit-word values. | |
Janko: 21-Feb-2009 | yes, I get this delete example :) good point ,... I would have to look in what manner I used blocks with "random" words (if I did) to see what could happen.. I did some when I was playing with dialects.. and to store data in [ key "value" ] manner | |
Janko: 21-Feb-2009 | is make-two a function ? it is but when you write it it gets evaled to 2 and if you write >>function? make-two<< you get false , same here it is but it get's evaled to word | |
[unknown: 5]: 21-Feb-2009 | And REBOL does see 'test as a lit-word. A trace shows this: >> string? 'test Trace: string? (word) Trace: 'test (lit-word) Result: false (logic) == false | |
Izkata: 21-Feb-2009 | Does this help? X contains the code you see and type, the lit-word! typed in. It gets reduced to its word value.. >> X: [type? 'one] == [type? 'one] >> type? X/2 == lit-word! >> do X == word! | |
Janko: 21-Feb-2009 | how do you make this trace (I never used it, and also don't understand what exactly it shows) | |
Izkata: 21-Feb-2009 | And the interpreter converts it to a word! before passing it to 'lit-word? | |
Izkata: 21-Feb-2009 | Rebol, the interpreter, sees a lit-word!. Trace shows this. It *then* evaluates it to a word!, *then* passes it to lit-word?, and lit-word? never sees the original lit-word! | |
Rebolek: 21-Feb-2009 | first is function! that gets evaluated. it takes one argument - block! that argument is also evaluated and block! is evaluated to block!. then it returns first value of that block. this value is not evaluated - but that's ok, it's 'first's behaviour | |
Oldes: 21-Feb-2009 | But it's better to submit it as a wish into CureCore and see what Carl means | |
[unknown: 5]: 21-Feb-2009 | Izkata, I'm sure that REBOL is written in C language and in C we use a char type for this. So it is possible to detect the ' character. | |
Oldes: 21-Feb-2009 | And here? >> get-word? :test == false >> type? :test == lit-word! | |
BrianH: 21-Feb-2009 | If you want DO to just get a value and not treat active values as values, use a get-word expression. This is evaluation model stuff. You need to be able to distinguish between the data that your code is working on, from the data that your code *is*, itself. | |
BrianH: 21-Feb-2009 | The difference is between your data: >> ['a] == ['a] and the data of the DO function: >> 'a == a Just because your code is data, doesn't mean your code is *your* data. It is actually DO's data, and DO interprets its data as what we think of as the REBOL syntax. I didn't see you complain that the set-word! in your code was treated as an assignment, or that the word! print is treated as a function call. The treatment of lit-word! values *in code* is no different from those. | |
Anton: 21-Feb-2009 | It looks like what Paul wants is for lit-word? to take its argument literally. eg: *lit-word?: func ['val][lit-word? :val] *lit-word? 'hello ; == true but this ends up causing problems, as discovered elsewhere with functions taking arguments literally, eg: my-val: first ['hello] *lit-word? my-val ; == false <---------- Unexpected because MY-VAL taken literally. and *lit-word? first ['hello] ; == ['hello] <----- Unexpected because FIRST was not evaluated. | |
BrianH: 22-Feb-2009 | Paul, in REBOL 'test is a lit-word!. The problem is that you are getting datatypes and evaluation rules mixed up. When you are evaluating your own data, you can treat lit-words any way you like. When DO is evaluating *its* data (what you would call normal REBOL code), it treats lit-words as active values. Active values are normally evaluated when DO encounters them - the only exception is when they are just retrieved from some word they are assigned to, either using GET, or DO's shortcut for GET: get-words. All of DO's active values work this way. And there is a good reason DO treats lit-words as active values: If there were no active lit-words, DO wouldn't be able to refer to word values without breaking words as variables, and normal REBOL code would cease to function. When I say that it is not a bug that lit-words are active values, I am understating things. What is really the case is that lit-words being active values is the *entire reason for their existence* - if they weren't active values, there would be no point to them at all. Oh, and REBOL code wouldn't be able to work with its current syntax. | |
[unknown: 5]: 22-Feb-2009 | I have no beef with DO and how it works elsewhere. Again, only how lit-word? and other functions work in that regard. | |
[unknown: 5]: 22-Feb-2009 | and 'test is a lit-word | |
BrianH: 22-Feb-2009 | You aren't passing 'test as an argument to LIT-WORD? whenn you do this: lit-word? 'test ==false What you are doing is *evaluating* 'test and then passing *that* value to LIT-WORD?. There's a difference. | |
Anton: 22-Feb-2009 | When, you've typed something at the console: >> 'test , and you press Enter, it is as if this is happening in a script: do ['test] The result is equivalent - a lit-word reduces to a word, which is returned. | |
Rebolek: 22-Feb-2009 | yes, and >> lit-word? 'a can be written as >> do lit-word? do 'a or >> (lit-word? ('a)) | |
[unknown: 5]: 22-Feb-2009 | I made one that works like I want and it doesn't use lit-word? at all | |
[unknown: 5]: 23-Feb-2009 | And many agreed with him are wrong also. | |
[unknown: 5]: 23-Feb-2009 | Here is what BrianH said: You aren't passing 'test as an argument to LIT-WORD? whenn you do this: lit-word? 'test ==false What you are doing is *evaluating* 'test and then passing *that* value to LIT-WORD?. There's a difference. | |
[unknown: 5]: 23-Feb-2009 | Brian is saying that 'test would get evaluated to a word and *THAT* value is then in turn passed to lit-word? function. But that isn't the case. Because if it was indeed a word! at that point then there is no way my function could detect it as a lit-word! | |
[unknown: 5]: 23-Feb-2009 | You can use that also Doc and it still works. | |
Geomol: 23-Feb-2009 | And that is what it does, right? So no problem there? | |
BrianH: 23-Feb-2009 | Just add one function: quote: func [ "Returns the value passed to it without evaluation." :value [any-type!] ] [ :value ] And you can pretend that there are no lit-word!, get-word! or set-word! types. It needs R3's get-word! parameter semantics though. | |
BrianH: 23-Feb-2009 | Paul, you have answered Henrik's question: make logic! works like C code, returning true when C would. TRUE? returns true when REBOL would treat it as true, not C. TRUE? is useful for AND, OR and XOR as well. | |
BrianH: 23-Feb-2009 | It was Carl's function, and he *needs* it for his code, so TRUE? will definitely be a mezzanine, not a library function. | |
Geomol: 23-Feb-2009 | So in R3, zero is true and other than zero is false? I remember something about this. Why was it made this way? | |
Henrik: 23-Feb-2009 | I think TRUE? provides equivalent evaluation to TRUE or FALSE in the case for IF and EITHER. Often you won't need to convert some type to logic! in order to evaluate it with IF or EITHER, but TRUE? allows you to display what IF and EITHER would evaluate to and it's necessary for PICK. I did not know it was different from make logic!, but to me it this difference just makes TRUE? more valid and important in general. | |
BrianH: 23-Feb-2009 | Paul, in R2 and R1 as well. The code is exactly the same. | |
BrianH: 23-Feb-2009 | Just do one script and you can start porting your code. And it works in 2.6.2. | |
BrianH: 23-Feb-2009 | Paul has deciphered the plan. I think it should stay a separate script. It breaks tons of R2 code. I expect that we won't be doing a 2.7.7 soon, and when we do it will just be compatible bug fixes. The future compatibility stuff will be in the R2-Future collection. | |
BrianH: 23-Feb-2009 | And no new natives in future R2 versions, just compatible fixes to errors in existing natives. The only changes will be to make less behavior cause errors. And you can include R2-Forward in one line of code now, in 2.6.2 even. | |
[unknown: 5]: 23-Feb-2009 | Brian, I suggest not waiting for Carl and just offer a library of all the mezzanines that can be incorporated by just 'DOing the script to import them. | |
BrianH: 23-Feb-2009 | Mezzanine code has license restrictions. I can only release this at all because I wrote almost all of the original mezzanines and didn't assign copyright to REBOL Tech or Carl. | |
BrianH: 23-Feb-2009 | Henrik, the R3 changes to the graphics and port models are not supported. The post-2.7.5 R2 VID changes are not R3 compatible (nor is any R2 VID or RebGUI code) so they should go in another file, which I think should still be external if it would break existing R2 code. | |
BrianH: 23-Feb-2009 | The whole point of this is to make new R2 releases mostly unnecessary, and nothing to wait for for most people. | |
BrianH: 23-Feb-2009 | Yes, and then release it. Don't wait for a new R2 release. | |
Henrik: 23-Feb-2009 | I have some plans for such a kit, but it depends on if I will get time to do it and if it collides with R3 GUI development. It involves removing some parts of the current VID, like the WindowsXP style buttons and making SET-FACE and GET-FACE uniform for all styles. Also adding some new styles and the new resize scheme would go under that. It would make VID way less painful to use. | |
Henrik: 23-Feb-2009 | It's about half done and I have a bunch of code files for this. I was going to use it for a large VID project, but it has been dropped, cutting away 6 months of work for me (phew!). | |
Henrik: 23-Feb-2009 | BrianH, what happened to the idea of including prebol in R3? And if it goes in, would it be included in R2-Forward? | |
BrianH: 23-Feb-2009 | A1: Still under discussion, and won't happen before the module rework. A2: Yes. | |
BrianH: 23-Feb-2009 | For that matter, after the module rework so will modules, to the extent that I can do it. Probably based on Gabriele's code if I can convince him to MIT it - his code is currently BSD, and BSD's non-promotion clause may be at odds with the extensive attribution I've put in R2-Forward. That's why I used MIT: BSD licensing is too restrictive. | |
BrianH: 23-Feb-2009 | The same goes for pre-open-source Java and .NET code on the MS runtime instead of Mono: No GPL2 code, and no static linking of LGPL2 code, even if you do provide the source. You gotta use an exception like Classpath to use (L)GPL2. (L)GPL3 fixes this. | |
MaxV: 23-Feb-2009 | wow, thanks. Now I understand rebol put inside the second elemet "-" and not between the first and the second. | |
Gabriele: 24-Feb-2009 | Probably based on Gabriele's code if I can convince him to MIT it - his code is currently BSD, and BSD's non-promotion clause may be at odds with the extensive attribution I've put in R2-Forward. That's why I used MIT: BSD licensing is too restrictive. - Brian, first, you are being paranoid about BSD, second, the license for my code has not been decided yet and I have no preference for BSD over MIT over anything else. | |
Graham: 26-Feb-2009 | You can always take a windows path, or UNC path and convert it to-rebol-file \\bens2000as\c$\myTestdir | |
Graham: 3-Mar-2009 | Cheyenne is listening on port 8002 and gives a 404 if a browser is used. | |
Graham: 4-Mar-2009 | I've asked the user to install Firefox and make it the default browser to see if that helps. | |
Graham: 4-Mar-2009 | So, if the user has an empty value in the registry for the default browser, I guess that would cause this ...and :arg1 would be the browser .exe | |
BrianH: 5-Mar-2009 | kib2: "Does that mean that we can use unicode encoding with the help of r2-forward ?" No, I only can only spoof datatypes that don't exist in R2, and R2 has a string! type. The code should be equivalent if the characters in the string are limited to the first 256 codepoints of Unicode (aka Latin-1), though only the first 128 codepoints (aka ASCII) can be converted from binary! to string and have the binary data be the same as minimized UTF-8. | |
BrianH: 5-Mar-2009 | There are ASCII? and LATIN1? functions that test, char!, string!, binary! and integer! in exactly the same way as the R3 natives, and a UTF? function that tests the BOM. When ENCODE and DECODE are written in R3, I'll backport them too if I can, though they probably won't generate string! values. | |
BrianH: 5-Mar-2009 | See the notes for what can and can't be supported. The unsupported list may grow or shrink with changes to R3 or more information. | |
Chris: 7-Mar-2009 | What is the etiquette for using metadata in a REBOL header? Here's some scenarios: A) From Viewtop: REBOL [ type: 'index ] title "My RebPage" This is clearly ok, and a good way for an application to determine the disposition of data - in this case a Dialect. B) I use this for QM modules: REBOL [ type: 'module exports: [do-something] ] var: 1 do-something: func [val][val * var] This adds a little more, as the 'exports block is more than just an 'id, it's contents are bound to the application. Moreover, 'exports is not in the standard header. C) A hypothetical dialect definition with some 'do code (I'll use VID to demonstrate): REBOL [ title: "My Application Window" type: 'vid locals: [mybtn myarea] on-close: [save-all quit] options: [resize min-size (config/min)] ] h1 "My Small App" myarea: area "Some Text" mybtn: btn "Submit" [save-all] Now obviously all these cases can be fleshed out with R2, but is this abuse of the header? There's still no security issue 'loading the file, indeed it takes a special handler to actually execute the code. But again, is this taking the header where it shouldn't go? What of R3? | |
Maxim: 7-Mar-2009 | my own rule was, if its something you can edit and don't want to have to "look" for in the code, its ok. |
29501 / 48606 | 1 | 2 | 3 | 4 | 5 | ... | 294 | 295 | [296] | 297 | 298 | ... | 483 | 484 | 485 | 486 | 487 |