[REBOL] editor for /core here Re:

2000-05-30 Thread icimjs

Hi Volker,

I wrote this with your new editor. So, you beat me to it ;-). Well, not
really. I had something more light-weight and less capable in mind. I still
see a "market" for that.

BTW, I first had a weird bug, when I tried to run .readme. I was able to
track it down to the fact that I have my own word 'files defined in my
user.r. It's a function.

Because you ask value? 'files and only set files if it does not have a
value to a block, and because in my case 'files was set - to something
quite different - the word files was not set to a block. When you later
tried to access files/1 
if either files/1 ...
you inadvertently caused a very weird error.

I understand that you had problems putting everything in a context. That's
not surprising. Currently the use context mechanism is buggy and breaks
when the garbage collector kicks in.

Objects, however, are stable. Why not provide ed as an external function
and move everything else into an -ed object? 

The objects you use can become objects embedded in the -ed object.

Do you think that might work?

Anyway, I'm having fun using it (so far), have to learn a little more about
its commands. 
So far I've mastered .bs, .be, and .db :-)

You're right, word wrap is needed!



;- Elan  [: - )]




[REBOL] refinements Re:(6)

2000-05-30 Thread mjelinek

What you are missing is that I want the function element of door-man (speak)
to call a global function defined outside of the object to perform the
functionality. Otherwise, how the object gets defined (either through make
object! or a template object) doesn't really matter.

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Friday, May 26, 2000 5:14 PM
To: [EMAIL PROTECTED]
Subject: [REBOL] refinements Re:(5)


Michael Jelinek wrote:
 door-man: make object! [
 vocab1: "hello"
 vocab2: "world"
 speak: func [][say-greeting self]
 ]

 say-greeting: func [idiot][
 print [idiot/vocab1 idiot/vocab2]
 ]

 door-man/speak

May be I'm missing something crucial, but wouldn't this be simpler:

Person: [
vocab1: string!
vocab2: string!
speak: func [] [
print [vocab1 vocab2]
]
]

Extend: func [Base [block!] Extension [block!]] [
append copy/deep Base Extension
]

door-man: make object! Extend Person [
vocab1: "hello"
vocab2: "world"
]

door-man/speak

I'm sure that I must be missing something important. Can you let me know
what it is, please?

Andrew Martin
Black boxer...
ICQ: 26227169
http://members.xoom.com/AndrewMartin/
--




[REBOL] hidden variables in objects? Re:(14)

2000-05-30 Thread icimjs

Hi Jeff,

you wrote:
I wonder what Carl's thinking is
about why words default to NONE in functions, and UNSET at the global
and object contexts.  What's the deeper meaning?  

A few more fun samples, followed by a short comment:

1. Samples
 f: func [arg [any-type!] ] [ print value? 'arg ]
 f
false
 f 1
true

 f: func [ /refine arg [any-type!] ] [ print value? 'arg ]
 f
true
 f/refine
false

 o: make object! [ a: none unset 'a ]
 probe o

make object! [
a: unset
]

 type? o/a
== unset!


 in o 'b
== none
 value? in o 'b
== true

Of course. none is defined. 
Wouldn't it be better is in o 'b returned unset! instead of none?

 in o 'a
== a
 value? in o 'a
== false

because 'a in o is defined as unset!.

2. Comment
Is it really a puzzle? As soon as arguments are used as part of a function
declaration, they have entered into a state of existence and must be
initialized to some none-value. 



At 11:23 AM 5/29/00 -0600, you wrote:

  [EMAIL PROTECTED] wrote:
 The trick here is what does  SELF evaluate to  when you set 'x to
 it?  SELF at that time is an object, containing the words C and D,
 but those words haven't yet been assigned anything at the time you
 assign the word X to SELF.  

  I would assume they're unset in that stage (even if perhaps setting
 them to NONE  could make more sense  for an object,  like  it is for
 function contexts).

  Which makes me consider what are the real distinctions between NONE
and UNSET?  I tend to think that NONE, in REBOL, is closer to a
logical state, where as UNSET is more of an existential state.  For a
function, local variables defaulting to NONE eases a common question
function writers will ask in their code:

   if local-variable [do-something-with local-variable]

  I tend to think that words in the global context or in an object
context are more in an existential state. Once they are mentioned in a
given context the word exists but with no value.  They either are
filled in by the person mentioning that word in that context or not.
A word at the global context or in an object context isn't like a word
in a function context which may be changing all the time, being passed
in or not.  Those non function context variables seem more
existential. At least, that's how it all strikes me.  But. of course,
that's just my own formulation, and not necessarily the most in
keeping with REBOL's philosophy.  I wonder what Carl's thinking is
about why words default to NONE in functions, and UNSET at the global
and object contexts.  What's the deeper meaning?  There always is a
deeper purpose with most things in REBOL.  (-:

  Cheers--

   -jeff





;- Elan  [: - )]




[REBOL] color-code.r problem

2000-05-30 Thread mijit

I keep getting a
 write %color-script.html color-code read %color-code.r
** Script Error: repend has no value.
** Where: repend out data

I do not know what happened? Did I miss another script critical to the
execution of this one?




[REBOL] refinements Re:(9)

2000-05-30 Thread lmecir

Hi Michael,

just one warning. The code is not very universal, it may not work
correctly, if the word 'path-list or 'r-word are between the
refinements. (BTW, have you looked at my Refine function? - it has
got its limitations too - it is not suitable for the functions
with unevaluated arguments)

Regards
Ladislav

 That works! And yes, was close to what I was doing (but better).

 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
 Sent: Saturday, May 27, 2000 2:25 AM
 To: [EMAIL PROTECTED]
 Subject: [REBOL] refinements Re:(7)


 Hi, is this close to what you wanted to have?

 f1: function [/va /vb /vc][path-list r-word][
 path-list: to path! 'f2
 foreach r first :f1 [
 if all [
 refinement? r
 r  /local
 get r-word: bind to word! r 'r-word
 ] [
 insert tail :path-list r-word
 ]
 ]
 print ["Calling path:" mold :path-list]
 ]

 Regards
 Ladislav






[REBOL] Emacs Syntax Highlighting Re:(2)

2000-05-30 Thread tim

Thank You Matt!!
Tim
At 03:36 PM 5/30/00 +0900, you wrote:
Tim,

Attached is the REBOL mode lisp file (rebol.el) for emacs, and some
excellent comments/instructions posted by Jeff.

I have not had an opportunity to use REBOL mode extensively, but it
seems to work well.

Matt





[REBOL] hidden variables in objects? Re:(15)

2000-05-30 Thread lmecir

Hi Elan,

your puzzle:

o: make object! [ a: none unset 'a ]
in o 'b
value? in o 'b

; shows something, that is a bit different. Look here:

type? in o 'a
== word!
type? in o 'b
== none!

value? none
== true

Regards
Ladislav


 Hi Jeff,

 you wrote:
 I wonder what Carl's thinking is
 about why words default to NONE in functions, and UNSET at the
global
 and object contexts.  What's the deeper meaning?

 A few more fun samples, followed by a short comment:

 1. Samples
  f: func [arg [any-type!] ] [ print value? 'arg ]
  f
 false
  f 1
 true

  f: func [ /refine arg [any-type!] ] [ print value? 'arg ]
  f
 true
  f/refine
 false

  o: make object! [ a: none unset 'a ]
  probe o

 make object! [
 a: unset
 ]

  type? o/a
 == unset!
 

  in o 'b
 == none
  value? in o 'b
 == true

 Of course. none is defined.
 Wouldn't it be better is in o 'b returned unset! instead of
none?

  in o 'a
 == a
  value? in o 'a
 == false

 because 'a in o is defined as unset!.

 2. Comment
 Is it really a puzzle? As soon as arguments are used as part of
a function
 declaration, they have entered into a state of existence and
must be
 initialized to some none-value.



 At 11:23 AM 5/29/00 -0600, you wrote:
 
   [EMAIL PROTECTED] wrote:
  The trick here is what does  SELF evaluate to  when you set
'x to
  it?  SELF at that time is an object, containing the words C
and D,
  but those words haven't yet been assigned anything at the
time you
  assign the word X to SELF.
 
   I would assume they're unset in that stage (even if perhaps
setting
  them to NONE  could make more sense  for an object,  like  it
is for
  function contexts).
 
   Which makes me consider what are the real distinctions
between NONE
 and UNSET?  I tend to think that NONE, in REBOL, is closer to a
 logical state, where as UNSET is more of an existential state.
For a
 function, local variables defaulting to NONE eases a common
question
 function writers will ask in their code:
 
if local-variable [do-something-with local-variable]
 
   I tend to think that words in the global context or in an
object
 context are more in an existential state. Once they are
mentioned in a
 given context the word exists but with no value.  They either
are
 filled in by the person mentioning that word in that context or
not.
 A word at the global context or in an object context isn't like
a word
 in a function context which may be changing all the time, being
passed
 in or not.  Those non function context variables seem more
 existential. At least, that's how it all strikes me.  But. of
course,
 that's just my own formulation, and not necessarily the most in
 keeping with REBOL's philosophy.  I wonder what Carl's thinking
is
 about why words default to NONE in functions, and UNSET at the
global
 and object contexts.  What's the deeper meaning?  There always
is a
 deeper purpose with most things in REBOL.  (-:
 
   Cheers--
 
  -jeff
 
 
 
 

 ;- Elan  [: - )]






[REBOL] color-code.r problem Re:

2000-05-30 Thread larry

Hello mijit

REPEND is a recent addition to /Core currently only shipped with /View or
/Command.  It will be in the new version of /Core due very soon.  Meanwhile
you can use the source:

repend: func [
{Appends a reduced value to a series and returns the series head.}
series [series! port!]
value
/only "Appends a block value as a block"
][
head either only [insert/only tail series reduce :value
] [
insert tail series reduce :value
]
]

HTH

Larry

- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, May 30, 2000 11:27 AM
Subject: [REBOL] color-code.r problem


 I keep getting a
  write %color-script.html color-code read %color-code.r
 ** Script Error: repend has no value.
 ** Where: repend out data

 I do not know what happened? Did I miss another script critical to the
 execution of this one?





[REBOL] My 2 cent contribution Re:(2)

2000-05-30 Thread ryanc

I dont think that as evil, but it does'nt seem quite appropriate to me to push
so hard to the popular audience.

I do think that promoting great REBOL programs will help REBOLlion, but I think
that at this stage in the game we would be better off focusing on producing
wonderful CGI's and web tools that appeal to begginning and seasoned
programmers.

Getting ISP's familiar with REBOL help the cause considerably, so request REBOL
on your server, and make sure they know how cool it is. Try to get someone else
to request it too, so they dont think your just weird. Alot of times ISP's can
use programmers to help them, so let them know what your good at. Many people
goto their ISP for recommendations, so treating them really good is usaully
well worth it.

I believe beginners will find REBOL easier to learn than any other language, so
cadering to them will help.

Myself a seasoned programmer, what initially sucked me in to REBOL was those
slick one liners. They really got me. Show those to the non-REBOL programmers
you know and they probably will be amazed as I was.

 I had a relatively hard time learning the basics of REBOL since it did'nt
follow the funky conventions that I was accustomed too.  Once I was over the
"hump" it got real easy.  Now I can easily do amazing things I never even
considered before.  Let them know that.

--Ryan




[EMAIL PROTECTED] wrote:

 we could call it iloveyou.r
 that's evil.

 At 11:14 AM 5/28/00 -0500, you wrote:
 Run it all on the Rebol server.r script from the
 personal  computer.   (it has been done allready  but its in
 pieces all over the place)Make sure you put one of those
 thingamabobs (Reb link)  on it.  Rebolists should be encouragd to put
 this link on  their web page as well as a replacement for the guest books.
  Now What? we have our  first true means for networking in a one to
 many messaging enviornment.   Who can do it?   It's open because
 anyone can add their own gui's and upgrades to it through a  script list.
 Now users can customize with out having to program.(thats want  public
 users like about apps anyway when they are non trivial)




[REBOL] color-code.r problem Re:(2)

2000-05-30 Thread mijit

Hi! Now I have dl'ed a recent version of /View, shouldnt this have the
updated /Core?

Thanks.
- Original Message -
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, May 30, 2000 3:31 PM
Subject: [REBOL] color-code.r problem Re:


 Hello mijit

 REPEND is a recent addition to /Core currently only shipped with /View or
 /Command.  It will be in the new version of /Core due very soon.
Meanwhile
 you can use the source:

 repend: func [
 {Appends a reduced value to a series and returns the series head.}
 series [series! port!]
 value
 /only "Appends a block value as a block"
 ][
 head either only [insert/only tail series reduce :value
 ] [
 insert tail series reduce :value
 ]
 ]

 HTH

 Larry

 - Original Message -
 From: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Tuesday, May 30, 2000 11:27 AM
 Subject: [REBOL] color-code.r problem


  I keep getting a
   write %color-script.html color-code read %color-code.r
  ** Script Error: repend has no value.
  ** Where: repend out data
 
  I do not know what happened? Did I miss another script critical to the
  execution of this one?
 






[REBOL] hidden variables in objects? Re:(16)

2000-05-30 Thread icimjs

Hi Ladislav,

it wasn't really meant as a puzzle, just amusing. Yes, you're right:

type? in o 'b
== none!

My question regarding this behavior:

 Wouldn't it be better if in o 'b returned unset! instead of
none?

What do you think?

From a pragramatical point of view, the none return value is surely useful.
You can easily determine if the word is defined in the object.

At the same time, because 'b is not defined in o, I think it would be
cleaner, if it behaved like 'a that was set to unset!.

In the global context it does that:

1. z was never defined:
 unset 'z
 value? 'z
== false

2. y is defined and then unset.
 y: none
== none
 value? 'y
== true
 unset 'y
 value? 'y
== false


3. Summary:
a) I unset a non-defined 'z, and tested 'z using value? The result was false.
b) I set 'y to a value, and value? 'y returned true.
c) I unset 'y
d) Because of c) both 'z and 'y responded in the same way to value?.


4. In contrast, in an object, if I follow the same sequence of steps:

a) I unset 'z
b) I set 'y to a value
c) I unset 'y

 o: make object! [unset 'z y: none unset 'y ]

then the two words y and z in the object's context respond differently to
value?.

 value? in o 'y
== false
 value? in o 'z
== true

We know why 'z responds with true. As you pointed out, it's because 'z was
never defined in the context of the object 'o, therefore in o 'z returns
none, and none is a defined word.

'y was first defined in object o's context and then unset. It is known in
object o's context as an unset value. 

So when I go through the same step sequence globally (a .. c), 'y and 'z
are evaluated in the same way. If I go through the same step sequence in
the object 'o, 'y and 'z are treated different from each other.

a) I think it would be preferable if 'y and 'z were treated identical in
the object's context as well, like they are in the global context.
b) I think the preferable behavior would be for REBOL to return unset! for
in o 'z

as well as for 

in o 'y

instead of returning none for 

in o 'z

and 'y for 

in o 'y.

Opinions?


It would make objects more consistent within themselves and more consistent
with the way non-defined and unset values are treated globally.



value? none
== true

Regards
Ladislav


 Hi Jeff,

 you wrote:
 I wonder what Carl's thinking is
 about why words default to NONE in functions, and UNSET at the
global
 and object contexts.  What's the deeper meaning?

 A few more fun samples, followed by a short comment:

 1. Samples
  f: func [arg [any-type!] ] [ print value? 'arg ]
  f
 false
  f 1
 true

  f: func [ /refine arg [any-type!] ] [ print value? 'arg ]
  f
 true
  f/refine
 false

  o: make object! [ a: none unset 'a ]
  probe o

 make object! [
 a: unset
 ]

  type? o/a
 == unset!
 

  in o 'b
 == none
  value? in o 'b
 == true

 Of course. none is defined.
 Wouldn't it be better is in o 'b returned unset! instead of
none?

  in o 'a
 == a
  value? in o 'a
 == false

 because 'a in o is defined as unset!.

 2. Comment
 Is it really a puzzle? As soon as arguments are used as part of
a function
 declaration, they have entered into a state of existence and
must be
 initialized to some none-value.



 At 11:23 AM 5/29/00 -0600, you wrote:
 
   [EMAIL PROTECTED] wrote:
  The trick here is what does  SELF evaluate to  when you set
'x to
  it?  SELF at that time is an object, containing the words C
and D,
  but those words haven't yet been assigned anything at the
time you
  assign the word X to SELF.
 
   I would assume they're unset in that stage (even if perhaps
setting
  them to NONE  could make more sense  for an object,  like  it
is for
  function contexts).
 
   Which makes me consider what are the real distinctions
between NONE
 and UNSET?  I tend to think that NONE, in REBOL, is closer to a
 logical state, where as UNSET is more of an existential state.
For a
 function, local variables defaulting to NONE eases a common
question
 function writers will ask in their code:
 
if local-variable [do-something-with local-variable]
 
   I tend to think that words in the global context or in an
object
 context are more in an existential state. Once they are
mentioned in a
 given context the word exists but with no value.  They either
are
 filled in by the person mentioning that word in that context or
not.
 A word at the global context or in an object context isn't like
a word
 in a function context which may be changing all the time, being
passed
 in or not.  Those non function context variables seem more
 existential. At least, that's how it all strikes me.  But. of
course,
 that's just my own formulation, and not necessarily the most in
 keeping with REBOL's philosophy.  I wonder what Carl's thinking
is
 about why words default to NONE in functions, and UNSET at the
global
 and object contexts.  What's the deeper meaning?  There always
is a
 deeper purpose with most things in REBOL.  (-:
 
   Cheers--
 
  -jeff
 
 
 
 

 ;- Elan  [: - )]






;- Elan  [: - )]




[REBOL] REBOL/View/Command guidance Re:

2000-05-30 Thread icimjs

Hi Ryan,

sounds good. 

The critical issue for me here would be to check that REBOL/Command can
work well with the serial drivers you are using.

Since in Linux / U*x systems, serial drivers are implemented as special
files (if my memory serves me well, it's been ~ 15 years since I did serial
programming on u*x  machine), even REBOL/Core should be able to handle it
using non-buffered file ports. That shouldn't be a problem, but I'd test it
anyway.

In MS OSs you would have to access the serial port through a dll. And this
may be a little tougher to get right. REBOL's event-driven environment does
not scale well to IRQ driven, or polling driven Serial I/O. Haven't played
with Serial ports since Win 3.x, so again, my advice may be antiquated.

If you run into problems, you may want to try using one of the thoroughly
tested serial i/o libraries for MS Win, compile a dll application that does
the low-level serial i/o stuff, and use REBOL/Command to interface with the
dll.

At 12:04 PM 5/30/00 -0700, you wrote:
I need some guidance as to whether REBOL/View/Command has the
capabilities for an upcoming project.

A friend of mine is going to migrate a Visual BASIC security system
product to another language and maybe even from the Win9x platform.
This is a good time for him to learn REBOL, that is if REBOL/View and
REBOL/Command will be able to handle the problem at hand.

The system will need to communicate to two other devices via the serial
port. I assume REBOL/Command will do that with the help of some serial
driver programs.

It needs to run solely with a touch screen interface, which operates
like a mouse. REBOL/View should do this job I suppose.

There needs to be the ability to have multiple terminals/clients, which
run of a single server.  I expect that REBOL/Command could help us
there, since I could do that with REBOL/Core.

I assume REBOL/View can work as a client to REBOL/Command.  REBOL/View
being a visual version of REBOL/Core and REBOL/Command being a binary
executing version of REBOL/Core (amongst other things).

Am I on the right track here?  Will REBOL do this?

--Ryan




;- Elan  [: - )]




[REBOL] editor for /core here Re:(2)

2000-05-30 Thread agem



Hi Elan!

 Hi Volker,
 
 I wrote this with your new editor. So, you beat me to it ;-). Well, not
 really. I had something more light-weight and less capable in mind. I still
 see a "market" for that.
 
Well, i may get you :) 
i see a "market" too.
editors saves a lot formatting/gui-needs for skilled  users.
but, there comes /view and its editor should do most of the job?
yet, for fun:
light-weight: 
What capabilities would you like?
i think the main files are
copy.r display.r do-keys.r files.r macros.r types.r
~12K, (unpacked), maybe i can make a kernel?
and put the rest in a feature-layer.
Bo's redit is 8.5K archive, 7.5K + 14K extracted. Can i be smaller? ;-)

 BTW, I first had a weird bug, when I tried to run .readme. I was able to
 track it down to the fact that I have my own word 'files defined in my
 user.r. It's a function.
 
 Because you ask value? 'files and only set files if it does not have a
 value to a block, and because in my case 'files was set - to something
 quite different - the word files was not set to a block. When you later
 tried to access files/1 
 if either files/1 ...
 you inadvertently caused a very weird error.
 
oops! i have used 'files ?! 
will change this! some other stuff needs "-t" too.
and do a 
[if not value? -screbol-was-here- [-screbol-was-here-: true files: none ..]
at main loading?

keep backups now! check changes with
find-files "files"
find-files "files-t"

this should change "files" to "files-t" :

f: edit~/files.r
word-chars: charset [
#"a" - #"z" #"A" - #"Z" #"0" - #"9" "-._!*+=|?" ]
write f replace-word read f word-chars "files" "files-t"
;replace-word: func[a "string" g "wordchars" c "find" k "replace"  

or a more bloated solution (but for all editor-files at once)
(does not check if new word is allready there yet, be carefull!)
(in case of "files" the first solution is better.
replace-word will replace in strings too :( 
should rework based on carls rebol-parser :)

old-name: "files"
new-name: "files-t"
word-chars: charset [
#"a" - #"z" #"A" - #"Z" #"0" - #"9" "-._!*+=|?" ]
b: head editor-files
forskip b 2 [ 
a: do compose [ ( second b ) ] ; editor-files is ugly..
open-t/cache a
key-text/text: ( replace-word key-text/text word-chars
old-name new-name )
clean-marks
]
save-t

 I understand that you had problems putting everything in a context. That's
 not surprising. Currently the use context mechanism is buggy and breaks
 when the garbage collector kicks in.
 
 Objects, however, are stable. Why not provide ed as an external function
 and move everything else into an -ed object? 
 
 The objects you use can become objects embedded in the -ed object.
 
 Do you think that might work?
 

No. well depends on - i have tried it before and removed.
some problems:

crashes too. or too much writing like "ed/bs ed/be".
without this gc it would be cool:
my little command-line, defined in the object, would
remove the "ed/"-need by context, from outside i prepend "ed/", yes :)
but, using it, i entered some commands and rebol crashed :(

then my development-style: 
i reload files of the editor while it is running.
(because of this i use this [if not value ..] -style).
this means i have to extend/replace a used object.
extend: not clever enough yet. replace: crashes.

and the object is defined in multiple files
i used [editor: make editor[new stuff]] around the scripts,
but got crashes too: i think the [editor:] holds old ed no longer, 
but there is yet running stuff, so bang.

debugging: try to 'source code in an object..
and, using a longer name ('editor) typing tests
is awfull.

the ifdef-stuff does not work:
i expected 'b is defined in 'a this way, but:
 a: make object! [if true [b: 123] c: 234]
==
make object! [
c: 234
]  ;  object!
 b
==  123  ;  integer!

and the defined-check has to be 
 rewritten from [value? 'word] to [in editor 'word] :
(yep. this is discussed elsewhere yet :)
 value? 'a/c
==  true  ;  logic!
 value? 'a/d
==  true  ;  logic!
 in a 'c
==  c  ;  word!
 in a 'd
==  none  ;  none!

 Anyway, I'm having fun using it (so far), have to learn a little more about
 its commands. 
 So far I've mastered .bs, .be, and .db :-)

Going proud :) 
have i noted [f-t find-this], [n-t] (= "^f") somewhere?
and you must reformat the ugly sources with '.pretty yourself :)
(thanks carl:)

 You're right, word wrap is needed!

Thinking about it. parser is warming up :) 

 ;- Elan  [: - )]
 
Thanks for testing, whish-list, other feedback :)
i have more fun working on it now :)

Volker  {: - ) }
 




[REBOL] refinements Re:(9)

2000-05-30 Thread ingo

Hi, just to diversify,

here's my try ...

REBOL [
Title: "Test for refinement propagation" 
]

a: func [ /c "do c" /d "do d" /e "do e" /local x y ] [
either any [ c d e ] [
if c [print "C"]
if d [print "D"]
if e [print "E"]
] [
print "No refinement"
]
exit
]

; get refinements directly from the function to be called 
b: function head clear find copy third :a /local [call ref] [
call: copy [a]
foreach ref first :a [
if refinement? ref [
if not none? get bind to-word ref 'call [ append call to-word ref ]
]
]
do mold to-path call
]

b
b/a
b/c/d

halt ; - end of script 


regards,

Ingo

--  _ ._
ingo@)|_ /|  _| _  We ARE all ONE   www._|_o _   _ ._ _  
www./_|_) |o(_|(/_  We ARE all FREE ingo@| |(_|o(_)| (_| 
http://www.2b1.de/Rebol/ ._|  ._|




[REBOL] REBOL/View/Command guidance Re:

2000-05-30 Thread Petr . Krenzelok


[EMAIL PROTECTED] wrote:

 I need some guidance as to whether REBOL/View/Command has the
 capabilities for an upcoming project.

 A friend of mine is going to migrate a Visual BASIC security system
 product to another language and maybe even from the Win9x platform.
 This is a good time for him to learn REBOL, that is if REBOL/View and
 REBOL/Command will be able to handle the problem at hand.

 The system will need to communicate to two other devices via the serial
 port. I assume REBOL/Command will do that with the help of some serial
 driver programs.

Not a problem, lights on my parallel port tester are already blinking :-)

 It needs to run solely with a touch screen interface, which operates
 like a mouse. REBOL/View should do this job I suppose.

Hmm, don't know what do you expect of REBOL/View, but I think touch screen
should be irrelevant to REBOL/View directly, as it should be some kind of
driver, which should do the work.

 There needs to be the ability to have multiple terminals/clients, which
 run of a single server.  I expect that REBOL/Command could help us
 there, since I could do that with REBOL/Core.

Maybe REBOL/Serve, as it will have tasking/threading, security (probably
SSL?) etc.

 I assume REBOL/View can work as a client to REBOL/Command.  REBOL/View
 being a visual version of REBOL/Core and REBOL/Command being a binary
 executing version of REBOL/Core (amongst other things).

 Am I on the right track here?  Will REBOL do this?

The only one question is what do you expect of REBOL/View gui. I would
still more like to see /Core's multitasking ability than being dependant on
/Serve, /Command and having to launch yet-another-rebol from harddrive.

-pekr-



 --Ryan




[REBOL] REBOL/View/Command guidance Re:(2)

2000-05-30 Thread ryanc



[EMAIL PROTECTED] wrote:

 Hi Ryan,

 sounds good.

 The critical issue for me here would be to check that REBOL/Command can
 work well with the serial drivers you are using.

It all depends, but there is no problem with making a driver if needed.



 Since in Linux / U*x systems, serial drivers are implemented as special
 files (if my memory serves me well, it's been ~ 15 years since I did serial
 programming on u*x  machine), even REBOL/Core should be able to handle it
 using non-buffered file ports. That shouldn't be a problem, but I'd test it
 anyway.


Ah! Good point. I did'nt think about that.


 In MS OSs you would have to access the serial port through a dll. And this
 may be a little tougher to get right. REBOL's event-driven environment does
 not scale well to IRQ driven, or polling driven Serial I/O. Haven't played
 with Serial ports since Win 3.x, so again, my advice may be antiquated.


 If you run into problems, you may want to try using one of the thoroughly
 tested serial i/o libraries for MS Win, compile a dll application that does
 the low-level serial i/o stuff, and use REBOL/Command to interface with the
 dll.


I have suffered a few of the pains and labors of the serial port on windows
myself. Sounds like great advice.

Thanks a whole lot,
--Ryan


 At 12:04 PM 5/30/00 -0700, you wrote:
 I need some guidance as to whether REBOL/View/Command has the
 capabilities for an upcoming project.
 
 A friend of mine is going to migrate a Visual BASIC security system
 product to another language and maybe even from the Win9x platform.
 This is a good time for him to learn REBOL, that is if REBOL/View and
 REBOL/Command will be able to handle the problem at hand.
 
 The system will need to communicate to two other devices via the serial
 port. I assume REBOL/Command will do that with the help of some serial
 driver programs.
 
 It needs to run solely with a touch screen interface, which operates
 like a mouse. REBOL/View should do this job I suppose.
 
 There needs to be the ability to have multiple terminals/clients, which
 run of a single server.  I expect that REBOL/Command could help us
 there, since I could do that with REBOL/Core.
 
 I assume REBOL/View can work as a client to REBOL/Command.  REBOL/View
 being a visual version of REBOL/Core and REBOL/Command being a binary
 executing version of REBOL/Core (amongst other things).
 
 Am I on the right track here?  Will REBOL do this?
 
 --Ryan
 
 
 

 ;- Elan  [: - )]




[REBOL] REBOL/View/Command guidance Re:(2)

2000-05-30 Thread ryanc



[EMAIL PROTECTED] wrote:

 [EMAIL PROTECTED] wrote:

  I need some guidance as to whether REBOL/View/Command has the
  capabilities for an upcoming project.
 
  A friend of mine is going to migrate a Visual BASIC security system
  product to another language and maybe even from the Win9x platform.
  This is a good time for him to learn REBOL, that is if REBOL/View and
  REBOL/Command will be able to handle the problem at hand.
 
  The system will need to communicate to two other devices via the serial
  port. I assume REBOL/Command will do that with the help of some serial
  driver programs.

 Not a problem, lights on my parallel port tester are already blinking :-)

  It needs to run solely with a touch screen interface, which operates
  like a mouse. REBOL/View should do this job I suppose.

 Hmm, don't know what do you expect of REBOL/View, but I think touch screen
 should be irrelevant to REBOL/View directly, as it should be some kind of
 driver, which should do the work.

  There needs to be the ability to have multiple terminals/clients, which
  run of a single server.  I expect that REBOL/Command could help us
  there, since I could do that with REBOL/Core.

 Maybe REBOL/Serve, as it will have tasking/threading, security (probably
 SSL?) etc.

REBOL/Serve? Maybe. Tasking and threading would be real handy.



  I assume REBOL/View can work as a client to REBOL/Command.  REBOL/View
  being a visual version of REBOL/Core and REBOL/Command being a binary
  executing version of REBOL/Core (amongst other things).
 
  Am I on the right track here?  Will REBOL do this?

 The only one question is what do you expect of REBOL/View gui. I would
 still more like to see /Core's multitasking ability than being dependant on
 /Serve, /Command and having to launch yet-another-rebol from harddrive.


Yes, /View is the big question now.  Basically /View would need to present
graphical represention of a building with buttons on it. When you push a unlock
door button, /View would send the request to the server (/Core, /Command, or
/Serve) that would handle the request.  Some method of accessing controls not
in immediate view would be nice, like multiple pages or scroll bars.

Another thing is a way to put /View into a kiosk (full screen no escape) mode.
However I am sure RT would add this functionality without too much lobbying.

--Ryan


 -pekr-

 
 
  --Ryan




[REBOL] My 2 cent contribution Re:

2000-05-30 Thread greenboy

 [EMAIL PROTECTED] :
I think that at this stage in the game we would be better off focusing 
on producing wonderful CGI's and web tools that appeal to begginning 
and seasoned programmers.

I've been pushing in the Phoenix Developer Consortium for REBOL to be 
the default IPC (interprocess communiction) language for QNX's Realtime 
Platform OS, to pick up where ARexx left off on the Amiga.

( Hey, Bo, Carl, pekr :)



-- greenboy ---




[REBOL] editor for /core here Re:(2)

2000-05-30 Thread icimjs

[REBOL] editor for /core here Re:(2)

Hi Volker!

you wrote: 
[snipped quite a few things I cannot respond to right now. Later ...]
 
Thanks for testing, whish-list, other feedback :)
i have more fun working on it now :)

Since you appear to respond quite reasonably to my observations, here's more ;-)

(BTW, I've been using the editor on and off all day. Ran into a few out of range
errors, but recovery apparently works quite well.)

1. I wasn't able to figure out how to load a pre-existing file. Apparently internally
the function open-t/cache filename works quite well, when you subsequently call
ed. So I wrote my own little function. 

ef: func [filename [file!]] [ open-t/cache filename ed ]

(Ok. So I basically copied your .readme function.)

and added it to files.r.

Unless I overlooked your "open existing file" macro/function, why not include it?

2. How do I tell edi to forget a file that's in the cache?

3. Apparently cached files are not remembered from REBOL session to REBOL session. 
Can I change this behavior? I.e. can I restart edi in a new REBOL session and edi
will remember the files I had opened previously?

4. tt and ^l work well enough. Very useful!

5.  Can opening of duplicate copies of the same file be prevented?

There are a few things I plan to add, as soon as I have a moment.

TIA,

;- Elan [ : - ) ] / Oh, this email was also written in edi.r. What else? ;-)
 








[REBOL] Buy the book...

2000-05-30 Thread tbrownell

If I buy a copy of the book can I get an autographed
copy?

Tbrownell

__
Do You Yahoo!?
Send instant messages  get email alerts with Yahoo! Messenger.
http://im.yahoo.com/




[REBOL] Buy the book... Re:

2000-05-30 Thread andyyork

you can "buy" a copy of the bookthat don't mean you will ever get one.
"Bought " it back in Feb. with anticipated May pub. date. No book yet.

ay

-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, May 30, 2000 9:50 PM
To: [EMAIL PROTECTED]
Subject: [REBOL] Buy the book...


If I buy a copy of the book can I get an autographed
copy?

Tbrownell

__
Do You Yahoo!?
Send instant messages  get email alerts with Yahoo! Messenger.
http://im.yahoo.com/





[REBOL] Cookies getting in the way!

2000-05-30 Thread peter

Hi,

I am quite new to rebol, and like what I see so far.

One problem - trying to read the source for a page at a website that
uses cookies.

I have searched through the archives, and found a couple of cookie scripts,
but don't know how I would use these to enable me do get to the page.

Any ideas?  The site in question is an Aussie Shopping site
www.dstore.com.au they seem to be using MS Site Server to provide session
details in cookies???

Thanks
Peter Marriott




[REBOL] refinements Re:(7)

2000-05-30 Thread Al . Bri

[EMAIL PROTECTED] wrote:
 What you are missing is that I want the function element of door-man
(speak) to call a global function defined outside of the object to perform
the functionality.

I think your design needs better encapsulation. I prefer to have objects
which can act under their own power, without having to rely on unrelated
functions to hold their hand.
If you're trying to communicate between actor objects, making a
communications object or make a block/dialect with the message in it. So
that you reduce interdependence in the design.

I hope that helps.

Andrew Martin
ICQ: 26227169
http://members.xoom.com/AndrewMartin/
--




[REBOL] Buy the book... Re:

2000-05-30 Thread rickp

[EMAIL PROTECTED] wrote:
 
 If I buy a copy of the book can I get an autographed
 copy?
 
 Tbrownell
 
 __
 Do You Yahoo!?
 Send instant messages  get email alerts with Yahoo! Messenger.
 http://im.yahoo.com/

While we're on the book thing.
Bout that book...My order was placed on BUY.COM many moons ago. Today I
got an e-mail from them saying my order was cancelled. Seemed unfair,
but if BUY.com doesn't want me on their waiting list there's bound to be
another retailer willing to make room for me. Imagine that, turning down
future business.

eom
RIckp




[REBOL] REBOL/View/Command guidance Re:(3)

2000-05-30 Thread Petr . Krenzelok



[EMAIL PROTECTED] wrote:

   I assume REBOL/View can work as a client to REBOL/Command.  REBOL/View
   being a visual version of REBOL/Core and REBOL/Command being a binary
   executing version of REBOL/Core (amongst other things).
  
   Am I on the right track here?  Will REBOL do this?
 
  The only one question is what do you expect of REBOL/View gui. I would
  still more like to see /Core's multitasking ability than being dependant on
  /Serve, /Command and having to launch yet-another-rebol from harddrive.
 

 Yes, /View is the big question now.  Basically /View would need to present
 graphical represention of a building with buttons on it. When you push a unlock
 door button, /View would send the request to the server (/Core, /Command, or
 /Serve) that would handle the request.  Some method of accessing controls not
 in immediate view would be nice, like multiple pages or scroll bars.


It can be done imho in current state of things. However, I don't understand that
client/server aproach. What I need is ability to load View as a component to
/Command version, or just tasking/threading together with shell execution moved to
/Core (/View). I would like to see REBOL being more async, as /View's capability of
multiple windows is nice, but what for, if we are e.g. downloading some image to
one window, the behavior of REBOL is its blocked state.

 Another thing is a way to put /View into a kiosk (full screen no escape) mode.
 However I am sure RT would add this functionality without too much lobbying.

Hmm, you can take the whole screen. It's there from beta 2 IIRC.

Anyway, we should move such discussion to Ally list 

-pekr-



 --Ryan

 
  -pekr-
 
  
  
   --Ryan




[REBOL] Buy the book... Re:(2)

2000-05-30 Thread allenk


- Original Message - 
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, May 31, 2000 2:03 PM
Subject: [REBOL] Buy the book... Re:


 [EMAIL PROTECTED] wrote:
  
  If I buy a copy of the book can I get an autographed
  copy?
  
  Tbrownell
  
  __
  Do You Yahoo!?
  Send instant messages  get email alerts with Yahoo! Messenger.
  http://im.yahoo.com/
 
 While we're on the book thing.
 Bout that book...My order was placed on BUY.COM many moons ago. Today I
 got an e-mail from them saying my order was cancelled. Seemed unfair,
 but if BUY.com doesn't want me on their waiting list there's bound to be
 another retailer willing to make room for me. Imagine that, turning down
 future business.
 
 eom
 RIckp
 
 

Let's all just send the money direct to Elan instead...
So Elan what's your bank account number? 

Only kidding,

Allen K









[REBOL] Script Cleaner Re:(2)

2000-05-30 Thread carl

Yes.  We've been fixing core bugs as well in the View releases.  Once, B5 of View is 
open for everyone to use, we'll put out Core 2.3 as we promised.

And, we will also fix the REBOL header problem found in load/next, as you mention 
below.

-Carl

At 5/29/00 01:20 AM +0100, you wrote:

with /core on linux ( REBOL 2.2.0.4.2 )
this hangs, with view/beta4 it runs. ?!

parse script blk-rule: [
..
str: (print copy/part str 10)
prints lots of
REBOL [
Ti

And, my script with rebol[] in it fails, of course.
will change to  [join "RE" "BOL"] :-)

i like this script :-)

Volker

 Here's a useful little script for those of you who are
 diligently working on REBOL this Memorial Day weekend.
 
 -Carl
 
 REBOL [
 Title: "REBOL Script Cleaner"
 Author: "Carl Sassenrath"
 File:  %clean-script.r
 Date:  27-May-2000
 Email: [EMAIL PROTECTED]
 Purpose: {
 Cleans REBOL scripts by parsing the REBOL code
 and supplying standard indentation and spacing.
 }
 Note: {
 This script produces STANDARD script indentation and
 spacing.  No doubt you will want to modify it to use
 your own rules.  Send your enhancements and I will
 consider adding them to the distribution... but keep
 this header intact and keep the code clean.  No hacks.
 }
 Category: [script util text 3]
 History: [
 "Carl Sassenrath" 1.0.0 27-May-2000 "Original program."
 ]
 ]
 
 script-cleaner: make object! [
 
 out: none   ; output text
 spaced: off ; add extra bracket spacing
 indent: ""  ; holds indentation tabs
 
 emit-line: func [] [append out newline]
 
 emit-space: func [pos] [
 append out either newline = last out [indent][
 pick [#" " ""] found? any [
 spaced
 not any [find "[(" last out find ")]" first pos]
 ]
 ]
 ]
 
 emit: func [p1 p2] [emit-space p1  append out copy/part p1 p2]
 
 set 'clean-script func [
 "Returns new script text with standard spacing."
 script "Original Script text"
 /spacey "Optional spaces near brackets and parens"
 /local str new
 ][
 spaced: found? spacey
 out: append clear copy script newline
 parse script blk-rule: [
 some [
 str:
 newline (emit-line) |
 #";" thru newline new: (emit str new) |
 [#"[" | #"("] (emit str 1 append indent tab) blk-rule |
 [#"]" | #")"] (remove indent emit str 1) |
 skip (set [value new] load/next str  emit str new) :new
 ]
 ]
 remove out  ; remove first char
 ]
 ]
 
 ;Example:  print clean-script read %clean-script.r
 
 
 
 
 




[REBOL] My 2 cent contribution Re:(2)

2000-05-30 Thread Petr . Krenzelok



[EMAIL PROTECTED] wrote:

  [EMAIL PROTECTED] :
 I think that at this stage in the game we would be better off focusing
 on producing wonderful CGI's and web tools that appeal to begginning
 and seasoned programmers.

 I've been pushing in the Phoenix Developer Consortium for REBOL to be
 the default IPC (interprocess communiction) language for QNX's Realtime
 Platform OS, to pick up where ARexx left off on the Amiga.

 ( Hey, Bo, Carl, pekr :)

Aaaa grenboy here? Well, nice. As you can see, Amiga's for e.g.
developing their own scripting language - SHEEP. But I can understand them
- REBOL could be too complex for them, as they surely need something really
tightly integrated with AmiVerse, while being able to script capabilities
of their environment ...

As for REBOL, I believe there will be one for the Amiga too, it will not
just live so tight to AmiVerse because REBOL's multiplatform .

-pekr-

 -- greenboy ---




[REBOL] My 2 cent contribution Re:

2000-05-30 Thread greenboy

( Hey, Bo, Carl, pekr :)

Aaaa grenboy here? Well, nice. As you can see, Amiga's for e.g.
developing their own scripting language - SHEEP. But I can understand them
- REBOL could be too complex for them, as they surely need something really
tightly integrated with AmiVerse, while being able to script capabilities
of their environment ...

As for REBOL, I believe there will be one for the Amiga too, it will not
just live so tight to AmiVerse because REBOL's multiplatform .

As far as I have determined, just build a socket standard and let the
games begin. That's what I hope QNX will do. REBOL looks like a nice fit
for the default. When other platform constituencies feel increasingly 
the same we can actually begin to enjoy some transparency, some 
pervasive comfort.

New platforms, new language; should be better : }



-- greenboy ---