World: r3wp
[!REBOL3]
older newer | first last |
BrianH 19-Jan-2011 [7157] | That means expanding the complaint of #1830 and giving it a different justification. |
Andreas 19-Jan-2011 [7158] | Since you are the one who dismissed it in the first place, feel free to go ahead and do as you deem right. |
BrianH 19-Jan-2011 [7159x2] | Depending on how #1830 is resolved, #1831 and #1832 will either need to be dismissed or rewritten. I'm going to have to defer them until #1830 is decided upon. |
Done. Check out the new http://issue.cc/r3/1830for the whole issue. | |
Maxim 20-Jan-2011 [7161] | pulled myweight. |
Ladislav 20-Jan-2011 [7162x2] | I do not want to use the "immediate value" notion, since it is an "implementation detail" in the sense, thant e.g. Doc's attempt implementation, while attempting to be compatible, has drawn the line differently. |
And, if done properly, you would not be able to discern | |
Andreas 20-Jan-2011 [7164] | So if the new-line attribute is immutable, is that observable? |
Ladislav 20-Jan-2011 [7165] | Yes, the immutability *is* |
Andreas 20-Jan-2011 [7166] | And would that mean that calling the new-line function creates a new copy of the value, toggles the new-line bit, and places that new value in the appropriate slot? |
Ladislav 20-Jan-2011 [7167] | I may not follow what you are after, but is a sign of integers immutable, and is that (according to your opinion) observable? |
BrianH 20-Jan-2011 [7168x2] | In theory the immediate values are supposed to be immutable, and not have multiple references. In practice the value slots are mutable, and the containers of the value slots can have multiple references to them, so the difference is not as cut and dried as that. |
Nonetheless, the newline attribute is no more mutable than tuples or typesets. | |
Andreas 20-Jan-2011 [7170x4] | I guess that the sign of an integer would be immutable, and probably observably so. |
The simplified gist of what I'm after is: | |
Does new-line modify the 128-bit value slot? I assume so. | |
How do then have come to conclusion regarding the immutability of the new-line attribute? | |
Ladislav 20-Jan-2011 [7174] | In theory the immediate values are supposed to be immutable - three objections: - immediate values are not definable in Rebol (you can define such a typeset, but that does not mean, every compatible interpreter would need to implement them the way they are implemented in one specific case) - the sentence is uninformative ("are supposed" does not mean "are") - "in theory" is uninformative as well (what theory?) |
Andreas 20-Jan-2011 [7175] | But I think I know where I am going wrong. |
Ladislav 20-Jan-2011 [7176] | Andreas, I can define a function modifying a 128-bit slot so, that only the sign of an integer is changed. Would you consider that relevant? |
BrianH 20-Jan-2011 [7177] | I was using the English idiomatic meaning of "in theory", not the scientific jargon meaning. |
Ladislav 20-Jan-2011 [7178] | ("define a function" == "define a function in rebol") in my above statement |
Andreas 20-Jan-2011 [7179x3] | Ladislav, if you can do that in pure REBOL, I would consider it very interesting at least. |
Ah, thanks :) | |
And despite that, you maintain that the sign of an integer is immutable in REBOL? | |
Ladislav 20-Jan-2011 [7182x2] | Sure |
My definition of mutability does not depend on that | |
Andreas 20-Jan-2011 [7184] | Yes, I'm starting to understand that. |
BrianH 20-Jan-2011 [7185] | I consider the new-line attribute to be an attribute of the value slot, that just gets copied over to new value slots when the value is copied. But you could consider it to be part of the value that doesn't affect anything other than display. It's mutable if the value slot is not protected, but the mutation doesn't get carried over to the copies, so it's what we generally call "immutable" in REBOL: It's just assigning a new value to the value slot. |
Ladislav 20-Jan-2011 [7186] | Well, my POV is expressed in the article, and it differs from yours, as you may have spotted, Brian. |
Andreas 20-Jan-2011 [7187x3] | Ladislav, wouldn't changing the sign bit in-place affect the "numeric representation" attribute, and therefore make that attribute volatile? |
I guess that's where I was going with the "observable". | |
And here it's getting a bit philosophical, so I leave it at that. | |
Ladislav 20-Jan-2011 [7190] | Hmm, actually, not. That is exactly where my POV differs from yours, as well as from Brian's. Let's consider a value 1 being "stored" in a block B (whatever that means). Now, if the block B is not protected in some way, I am able to replace the value by, say #[none] e.g. Does that mean I mutated the value 1, mutating the slot? Actually, what I mutated was just the block B, replacing 1 by #[none], but I did not even attempt to mutate 1, if you are still with me. |
Andreas 20-Jan-2011 [7191] | Yes, I follow. |
BrianH 20-Jan-2011 [7192x2] | far that matches what I said above. |
So far | |
Ladislav 20-Jan-2011 [7194] | So, while "directly mutating the 128-bit slot", I did not mutate the value it contained before. |
Andreas 20-Jan-2011 [7195x2] | In another reality, you of course did mutate the value. |
Only that it's not of any importance to call what you mutated "value". | |
Ladislav 20-Jan-2011 [7197] | In another reality == depending on the definition used |
Andreas 20-Jan-2011 [7198x2] | Yes, exactly. |
So, for example, if we talk assembler you would of course use an XOR instruction to mutate the new-line bit of the value slot. | |
Ladislav 20-Jan-2011 [7200] | In my definition, I mutated a value, but it was the block B, not 1 |
Andreas 20-Jan-2011 [7201x2] | Yes. |
And I think the point why your definition makes a lot of sense is that we can neither observe nor does it matter, if the new-line bit is modified directly by XOR or a MOV,XOR,MOV sequence. | |
Ladislav 20-Jan-2011 [7203] | if we talk assembler - well, I actually do not have any problem to use the same definition there - if I mutate the memory, I say, that I mutate the memory, not the value it contained |
Maxim 20-Jan-2011 [7204] | and what happens when you mutate the memory of the value it contained? nuclear holocaust ? ;-) |
Andreas 20-Jan-2011 [7205] | And of course I think we also agree, that the new-line bit being observably a value attribute is an implementation detail that should not leak through either. |
Ladislav 20-Jan-2011 [7206] | hmm, but it does leak, as opposed e.g. to the "immediateness" of values, which does not leak, in fact |
older newer | first last |