World: r3wp
[RAMBO] The REBOL bug and enhancement database
older newer | first last |
Maxim 26-Oct-2006 [1902] | strange, I didn't even know about /parent !! |
BrianH 26-Oct-2006 [1903] | I like the idea from the R3 blogs about having SYSTEM be a function that generates objects, rather than an object. That way system/script would return an object that wouldn't mess up the infrastructure when it is changed. |
Maxim 26-Oct-2006 [1904x3] | its always safer to have hooks and apis, than direct data. |
which is why I dearly hope R3 adds accessors. | |
many points in many r3 discussion would be moot with this simple concept added to a new class! or current object! engine. | |
BrianH 26-Oct-2006 [1907] | I have been a big advocate of accessors here and in the blog comments, though mostly for interoperability with other object models that have them (all of the major platforms now). Safety is a good reason for them as well. |
Maxim 26-Oct-2006 [1908x3] | and invisible datatype... with accessors, I could code a liquid api which is completely hidden from users... totally non-aggressive to the way they currently code and yet still allow custom types of liquid, just by changing how the accessors are built. |
I could do magic objects ;-) | |
anyways... I'm getting OT... (rambo list) | |
BrianH 26-Oct-2006 [1911] | Indeed. |
Pekr 26-Oct-2006 [1912] | what do you mean by "accessor" in rebol terms? |
Anton 27-Oct-2006 [1913] | So, no objections to me creating a ticket for that ? |
Ladislav 27-Oct-2006 [1914] | no objections from me |
BrianH 27-Oct-2006 [1915] | Petr, there were discussions in the R3 blog about accessors. It's quicker to just look there. |
Pekr 27-Oct-2006 [1916] | I think I understand - it is simply that some "variable" is not variable, but a function? In Visual Objects, we could define variable being an accessor, you then normally used oMyObject:myVar: 3 - which could mean - you either assign it to variable, or (if an accessor), the same syntax is being used, but it was passed as a parameter to function, which could do type checking, whatever ... |
BrianH 27-Oct-2006 [1917] | Yup, something like that. Accessors were introduced in Self, then ported to Delphi (as properties), then from there to ActiveX, Java (as a coding convention), C# (and the rest of .NET), and then many other modern languages and platforms (most of the major ones). |
Maxim 27-Oct-2006 [1918x2] | python is defined from ground up with accessors, you can replace the in-built datatypes!!! |
I guess self is like that also. | |
BrianH 27-Oct-2006 [1920] | Python is designed that way now, but it didn't start that way. That's something I like about Python - when they add new features in a new version, they are not afraid to redesign the whole system to take advantage of the new features. |
Anton 28-Oct-2006 [1921] | Submitted the above crash code to RAMBO. |
Ladislav 3-Nov-2006 [1922x2] | what do you think about these: >> p: make port! http:// >> equal? reduce [p] reduce [p] == true >> equal? p p ** Access Error: Port none not open ** Near: equal? p p or >> a: tail [1] == [] >> remove head a == [] >> equal? reduce [a] reduce [a] == true >> equal? a a ** Script Error: Out of range or past end ** Near: equal? a a |
it looks inconsistent to me and incompatible with FIND and SORT as well | |
Gregg 3-Nov-2006 [1924] | It does look like a problem. Things like this are funny, because it seems like an obvious issue we would have hit long ago. :-\ |
Henrik 3-Nov-2006 [1925] | ladislav, you aren't causing Carl any sleepless nights now, are you? :-) |
Ladislav 3-Nov-2006 [1926] | no, he silently ignores my huge list |
Gregg 3-Nov-2006 [1927] | Except that I don't get the error you get on the second example. |
Ladislav 3-Nov-2006 [1928] | you don't? |
Gregg 3-Nov-2006 [1929x2] | No. Let me try a fresh console. |
Hmm. I got it this time. | |
Ladislav 3-Nov-2006 [1931] | it surprises me you didn't the first time |
Gregg 3-Nov-2006 [1932] | Me too. Let me check something. |
Henrik 3-Nov-2006 [1933] | ladislav, well it could be that he's incorporating fixes into R3. |
Gregg 3-Nov-2006 [1934x2] | Oh well, it happens every time now. Must have been something odd. Can't dupe it right now. |
Can't dupe it working that is. :-) | |
Ladislav 3-Nov-2006 [1936] | that does not surprise me like the opposite did |
Gregg 3-Nov-2006 [1937] | That one comes back to the old issue of out of range indexes, which has been around for a long time, correct? |
Ladislav 3-Nov-2006 [1938x2] | yes, it is an old issue, actually |
but my point is, that you cannot state comparing A with A may be an error without asking for trouble | |
Gregg 3-Nov-2006 [1940] | Agreed. |
Ladislav 3-Nov-2006 [1941] | it is clearly more useful to allow comparisons as FIND or SORT demonstrate than to forbid them |
Gregg 3-Nov-2006 [1942] | I would say that you can't do *anything* safely on a series reference. |
Maxim 3-Nov-2006 [1943] | linked lists being an exception. |
Gregg 3-Nov-2006 [1944] | It obviously doesn't affect much code, though, or we would all be screaming about it. |
Maxim 3-Nov-2006 [1945] | they are easy to break and fuck up. |
Ladislav 3-Nov-2006 [1946x4] | lists will be redesigned for R3 (with my contribution, I hope) |
Re the new SWITCH proposal. ( Mezz/switch1.r). It fails in the following cases (due to FIND datatype searching properties): switch-test: func [x] [ switch :x [ #[datatype! integer!] ["The first variant"] #[datatype! decimal!] #[datatype! block!] ["The second variant"] ] ] switch-test block! switch-test decimal! | |
(the old SWITCH implementation fails for similar cases too) | |
I guess it would be useful to have a FIND/LITERAL refinement to behave differently when searching for datatypes | |
Maxim 3-Nov-2006 [1950] | this is my gripe with lists: >> a: make list! [1 2 3] clear a tail? a ** Script Error: Out of range or past end ** Near: tail? a |
Ladislav 3-Nov-2006 [1951] | yes, that is an issue my proposal for lists solves |
older newer | first last |