• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[!REBOL3] General discussion about REBOL 3

Robert
9-Apr-2013
[2311x2]
I don't take it that way.
I'm just wondering why things don't lift up... and the explanation 
given. I'm just wondering.
Pekr
9-Apr-2013
[2313]
Well, just count ppl here ... how many ppl are active? Even this 
channel is now split between here and Stack Overflow ...
Robert
9-Apr-2013
[2314x2]
From my experience one of the golden rules of life is (wow that gets 
philosophical): Waiting doesn't change thigns, you need to do it.
Sure, but if this is the conclusion, we better stop today and use 
something different.
Pekr
9-Apr-2013
[2316]
Yes, I know - if I would have to write some small util for me, it 
surely would be R3 nowadays. The only thing I might miss is better 
CALL and maybe ftp protocol. But it can be solved ....
Robert
9-Apr-2013
[2317]
And of course time is limited, tell me. Nevertheless, if it's important 
people will do things.
Pekr
9-Apr-2013
[2318]
Imo MaxV is trying to do the stuff, just look into his blog. He is 
just comparing what he was used to, with his new experience imo
GiuseppeC
9-Apr-2013
[2319x3]
Ladislav, my role in life is not to label what human beings are doing 
but change the way they look at things to overcome their obstacles.
Excuses come from tipical rapresentation of the reality inside ones 
mind.
Could you please complete the list of changes in REBOL3 than REBOL2 
? Your is very valuable information.
Ladislav
9-Apr-2013
[2322x2]
Could you please complete the list of changes in REBOL3

 - that is a problem: I do not think such a list can be made "complete". 
 Some changes actually are "code cleanup", e.g. Also, there is a time 
 problem: I would have to browse R3 Chat, CureCode, AltMe, DocBase, 
 Carl's blog, Carl's R3 doc, GitHub, whatnot to do it. Why do you 
 think I am the one who has got the time to do it?
OK, to be of some help I decided to compile a couple of notes of 
this kind as an article for the future reference/improvement.
GiuseppeC
9-Apr-2013
[2324]
Thanks Ladislav !
Endo
9-Apr-2013
[2325]
Great!
MaxV
9-Apr-2013
[2326]
To all people who want to dare in Documentation R3 GUI labirinth 
, you may use http://rebol.informe.com/wiki/view/Main_Pageto help 
community.
GiuseppeC
9-Apr-2013
[2327]
I think it could be a good start. However, Ladislav usualli works 
on REBOL wiki.
Gregg
9-Apr-2013
[2328x3]
I'm not waiting for anything in particular WRT R3. I am very anxious 
to have time to start using it more, and I am grateful to the Saphirion 
team for taking the lead on it and doing so much work. Because they 
have, I decided that what time I can make right now I will put behind 
Red, as I think I can provide more value there, and to give Doc some 
support for all his work too.
I'm also going to post more thoughts and questions about funcs, like 
I did with SPLIT-PATH, because now is the time to make any changes, 
IMO.
Ren is a new distraction now too. :-) But I think it will be good 
for all of us.
MaxV
11-Apr-2013
[2331]
Please, may you add some examples in the following pages?
http://rebol.informe.com/wiki/view/Rebol_3-set-face
http://rebol.informe.com/wiki/view/Rebol_3-get-face
Ladislav
13-Apr-2013
[2332x4]
How do you like this "Implementation artefact":

f: make function! reduce [[x /local x-v y-v] body: [
	x-v: either error? try [get/any 'x] [
		"x does not have a value!"
	] [
		rejoin ["x: " mold/all :x]
	]
	y-v: either error? try [get/any 'y] [
		"y does not have a value"
	] [
		rejoin ["y: " mold/all :y]
	]
	print [x-v y-v]
]]

g: make function! reduce [[y /local x-v y-v] body]

>> f 1
x: 1 y: 1
(specailly Andreas should have a look)
Just for comparison, these results are from R2:

f: make function! [x /local x-v y-v] body: [
	x-v: either error? try [get 'x] [
		"x does not have a value"
	] [
		rejoin ["x: " mold/all :x]
	]
	y-v: either error? try [get 'y] [
		"y does not have a value"
	] [
		rejoin ["y: " mold/all :y]
	]
	print [x-v y-v]
	unless value? 'y [g 2]
]

g: make function! [y /local x-v y-v] body

>> f 1
x: 1 y does not have a value
x does not have a value y: 2
http://issue.cc/r3/2025
Andreas
13-Apr-2013
[2336]
Very good catch, Ladislav. A rather nasty bug.
Ladislav
13-Apr-2013
[2337]
(remedy is not hard, already found out how to correct it)
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
[2360]
Yes, the reason why GOBs needed GC was that they did not fit within 
128 bits.