World: r4wp
[!REBOL3] General discussion about REBOL 3
older newer | first last |
Andreas 13-Apr-2013 [2338] | Point the "frame" to the full function value instead of just the function's body. |
Ladislav 13-Apr-2013 [2339x2] | - not exactly |
(that would be quite incomfortable) | |
Andreas 13-Apr-2013 [2341] | Interested in any alternative fixes, but I see no discomfort for the above. |
Ladislav 13-Apr-2013 [2342x2] | Well, there is some discomfort. REB_FUNCTION values are not garbage collected. |
However, fortunately, the ARGS series is unique to function (since it is created specifically for the function), so it can be used instead of the body. | |
Andreas 13-Apr-2013 [2344] | That's indeed rather annoying. Seems the GC leaves much to be desired. |
Ladislav 13-Apr-2013 [2345] | (even if two functions have the same SPEC and BODY, they always have distinct ARGS) |
Andreas 13-Apr-2013 [2346] | Ok. That's better (even though it is a somewhat ugly hack). |
Ladislav 13-Apr-2013 [2347] | Well, but the fact that REB_FUNCTIONs don't need GC is not ugly IMO. |
Andreas 13-Apr-2013 [2348x2] | One negation too much. |
(Meaning: sorry, I'm not sure I understand what you are trying to say.) | |
Ladislav 13-Apr-2013 [2350x3] | You mean you dislike it? |
Integers, decimals, REB_FUNCTIONS, whatnot... don't need GC. | |
Only series and GOBs need GC | |
Andreas 13-Apr-2013 [2353x3] | Quite fortunate that you know already know enough of the GC to not mistakenly walk down the wrong road. |
I didn't yet check how REB_FUNCTIONs are created, but why should they _not_ be GC'd? | |
Are they pooled or managed using a custom allocator? | |
Ladislav 13-Apr-2013 [2356] | Exactly for the same reason why integers do not need GC. They are not allocated, so they don't need deallocation |
Andreas 13-Apr-2013 [2357x3] | Ah, so they can only be contained within a series. |
Ok. | |
(Or a gob, maybe.) | |
Ladislav 13-Apr-2013 [2360x2] | Yes, the reason why GOBs needed GC was that they did not fit within 128 bits. |
(GOB is 512 bits) | |
Andreas 13-Apr-2013 [2362] | So there's a "gob reference" value type? |
Ladislav 13-Apr-2013 [2363] | Yes |
Andreas 13-Apr-2013 [2364] | Ah, I see. A "gob value" is just a pointer to the real gob structure. |
Ladislav 13-Apr-2013 [2365] | REBGOB (the part needing GC) is 512 bits, while Reb_Gob (fits within 128 bits and points to a REBGOB) |
Andreas 13-Apr-2013 [2366x2] | REBGBO! :) |
Thanks for clarifying. | |
Ladislav 13-Apr-2013 [2368x3] | Yes, sorry, it is just struct Reb_Gob called REBGBO. |
BTW, REBGBO looks quite ugly to me | |
(I mean just the name) | |
Andreas 13-Apr-2013 [2371x2] | Maybe REBGBI (in analogy to REBSRI) would be better? |
Is the "index" field of REBGBO presently used? | |
Ladislav 13-Apr-2013 [2373x7] | yes |
you can write: next gob | |
So, actually, the "full GOB" is 544 bits, not just 512 | |
(when summing REBGOB and REBGBO while subtracting the pointer. | |
I am quite curious whether it would be possible to fit a Rebol value to less than 256 bits when using 64-bit memory pointers | |
I originally guessed 160 bits might suffice, but I would not bet on it now. | |
if not wanting to make some "big adjustments", it looks like absolutely necessary to go to at least 224 bits. | |
Andreas 13-Apr-2013 [2380x2] | I'd be quite interested in that as well. |
And I'd generally try to stay 64-bit aligned. | |
Ladislav 13-Apr-2013 [2382] | ...which yields exactly 256 bits :-( |
Andreas 13-Apr-2013 [2383] | 192 or 256, yes. |
Ladislav 13-Apr-2013 [2384x2] | some "values" contain 3 pointers, which gives 192 + type information + alignment = 256 |
Hi, all, a "stupid" question: R3 is still called "alpha" (and there *are* issues I want solved before moving it to beta). One of the issues is the "gotcha" represented by the DECIMAL! name. I know that it is used consistently in Rebol, but it is still a "gotcha" for any possible newcomers actually stating something like: "here mathematics is not welcome", which is not true so much as I (mathematician by the education) would say. Also, having a "truly decimal" datatype called MONEY! in R3, I would prefer a rename: MONEY! rename to DECIMAL! DECIMAL! rename to REAL! or FLOAT! (or something else that could be popular) So, how many of you prefer to keep the DECIMAL! name for the 64-bit IEEE 754 binary floating point format used in Rebol and how many of you prefer to rename the DECIMAL! datatype to something else? | |
Henrik 13-Apr-2013 [2386] | I would not mind this change. |
Andreas 13-Apr-2013 [2387] | I'm strongly in favour of this change (and would prefer float! over real!). |
older newer | first last |