r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[Core] Discuss core issues

Dockimbel
9-Mar-2010
[16035]
Not processing user's reports on your product is a good way to not 
build a community of users. If users care to spend their (valuable) 
time in reporting issues or defects, maybe RT can also spend some 
time in fixing them  (at least those native ones). But maybe I'm 
the only one interested in R2 bug fixing...
BrianH
9-Mar-2010
[16036x3]
Nope. But those bugs only get fixed in releases.
And you have said that you will help process the RAMBO tickets when 
the time comes, by assisting with migrating them to CureCode where 
they can be dealt with.
I expect that there will be a new R2 release relatively soon, but 
we can't schedule it yet due to external circumstances that affect 
the people working on it. That doesn't mean that work on it has stopped 
or should stop, and it doesn't mean that you should give up on reporting 
bugs. Please use RAMBO until we can retire it - the tickets should 
be there when we need them.
Henrik
9-Mar-2010
[16039]
Reporting the wait bug documents it, even if it gets fixed or not, 
so other users can (as I do) browse through RAMBO to either confirm 
the bug or to see if someone offers a fix or a workaround. It would 
be a problem if RAMBO was a closed system where you could not freely 
study the reports, but you can, and Curecode is the same. Do people 
not ever take notes, when stumbling onto something unusual?
Dockimbel
9-Mar-2010
[16040]
Brian: no problem for assisting in migrating RAMBO to CC, even if 
the tool is not the main issue IMO.
BrianH
9-Mar-2010
[16041]
Right, the tool is not the (only) issue. The big issue is that since 
there isn't a schedule for when the next release of R2 will be due 
to outside considerations, people think that the bugs are being ignored, 
the release isn't coming soon and noone is working on it. None of 
those are true, so it's a perceptual problem. In the meanwhile, we 
continue to work on a new R2 as time permits, no worries.
Graham
9-Mar-2010
[16042]
And same applies for reporting spam on the blog comments ... no point 
in reporting it if it does not get removed.
Nicolas
11-Mar-2010
[16043]
Has anyone researched the minimum operating system environment required 
to run rebol? I think that was one of the goals of Rebol 3 at one 
point.
Henrik
11-Mar-2010
[16044]
Does anyone know an implementation of the Fletcher checksum algorithm 
in REBOL or does REBOL 2 do this?
Gregg
12-Mar-2010
[16045]
I checked Henrik, since it sounded familiar, but I don't have a REBOL 
version.
Janko
17-Mar-2010
[16046]
Anyone had/has any need / desire to make a Rebol to RServe (R - the 
statistics language) library / protocol?
jocko
18-Mar-2010
[16047]
I am not an R user, but I think of interest to offer such links between 
languages : I have done a simple Matlab extension for Rebol and if 
I find enough time, I will do also a Python extension
jdishun
23-Mar-2010
[16048]
I have done several searches but haven't found what I'm looking for. 
I've looked at binding discussions until I went cross-eyed. Not a 
complaint, just an explanation of why I am consulting the "biological 
repository". I want to build a function that can access its own name, 
so I can assign it to a name and then just invoke that name to activate 
functionality using the name . The simplest example is -- name [] 
[......print name]. I would rather not use an object but will if 
necessary. My apologies if everyone else knows how to do this.
ChristianE
23-Mar-2010
[16049x3]
Jim, bad news first: By design functions in REBOL have no name. In 
REBOL, Functions are first class values which /may/ be referenced 
by one word, by more than one word or by no word at all
E.g.:
>> calc: reduce [func [v] [v / 2] func [v] [v * 2] func [v] [v * 
3]]
== [func [v][v / 2] func [v][v * 2] func [v][v * 3]]

>> do reduce [first calc second calc third calc 1]
== 3

>> set [half double triple] calc
== [func [v][v / 2] func [v][v * 2] func [v][v * 3]]

>> half double triple 1
== 3

>> set [a b c] first calc
jdishun
23-Mar-2010
[16052]
Thanks Christian Is there any good news?
ChristianE
23-Mar-2010
[16053x11]
The functions in the CALC block have no names at all. But you can 
assign them to words, as is done later on. You can assign one function 
to different words. What's the name of the first function in CALC, 
is it 1) HALF, is it 2) A, is it 3) B or is it 4) C ? There is virtually 
no way for REBOL to decide that.
Good news there are.
There are implementation details which may be used (as in: may be 
"hacked") to get the desired effect. Just give me a moment to dig 
for the answer to your question
>> test: func [/local self] [self: get in disarm self: try [1 / 0] 
'where print ["My name is" uppercase form self]]
>> test
My name is TEST
Oops
>> test: func [/local self] [self: get in disarm try [1 / 0] 'where 
print ["My name is" uppercase form self]]
>> test
My name is TEST
But be carefull
>> again: :test
>> again
My name is AGAIN
The exact same function may return another name if assigned to another 
word.
Or it may return no name at all:
>> do reduce [:test]
My name is NONE
Steeve
23-Mar-2010
[16064]
nice trick
ChristianE
23-Mar-2010
[16065x2]
Credit where credit belongs, that trick is courtesy of Gabriele.
Who was the first to come up with this trick iirc.
jdishun
23-Mar-2010
[16067]
I probably didn't explain it well -- that's the behavior I want! 
Including the NONE.


Clever - I understand about creating an error object.  ... I could 
look look it up, but can you give me a quick explanation of  "/local" 
- sounds very interesting.
ChristianE
23-Mar-2010
[16068x9]
All words after the /LOCAL refinement are words local to the function, 
all words preceeding /LOCAL are function arguments
>> additon: func [one two /local three] [three: one + two] 
>> addition 1 2
== 3
The above can be written as
>> test: function [] [self] [self: get in disarm try [1 / 0] 'where 
print ["My name is" uppercase form self]]
>> test
My name is TEST
(a function with no arguments and one local word SELF)
Way shorter:
>> test: does [print ["My name is" uppercase form get in disarm try 
[1 / 0] 'where]]
>> test
My name is TEST
(no local words here)
With DOES being shorthand for a function with no arguments.
jdishun
23-Mar-2010
[16077]
I'm out of synch - but  --does  "self" have special meaning or is 
it just a varible name? If so how does it get set to  the name.
ChristianE
23-Mar-2010
[16078x3]
No, SELF is as good a word as any other, the above example with DOES 
shows that you don't need a word at all.
Just break it into little steps:
>> test: function [] [error me] [error: disarm try [1 / 0] probe 
error me: error/where print ["My name is" uppercase form me]]
>> test
make object! [
    code: 400
    type: 'math
    id: 'zero-divide
    arg1: none
    arg2: none
    arg3: none
    near: [1 / 0]
    where: 'test
]
My name is TEST
jdishun
23-Mar-2010
[16081]
Now I think I remember -- the error object contains the name of the 
function -- correct?
ChristianE
23-Mar-2010
[16082x2]
So to say. It isn't very precise, though. What's happening here is:
In the disarmed error object REBOL tells you where your code breaks; 
it breaks when trying to evaluate the word 'TEST
jdishun
23-Mar-2010
[16084]
Yes - the "little steps" reminds me about "where". That nails it

Many many thanks.