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

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp1023
r3wp10555
total:11578

results window for this page: [start: 4501 end: 4600]

world-name: r3wp

Group: RAMBO ... The REBOL bug and enhancement database [web-public]
Ladislav:
15-Jan-2007
this is a copy of a fresh REBOL interpreter console. Do you think 
it is covered by the documentation, or should I put it to RAMBO?
Maxim:
15-Jan-2007
and in any case, the reduced "a" is separate (copied) and in ram 
is probably equivalent to a: make string! 1...  so I guess the real 
bug is that structures do not properly identify regions of ram they 
point to.
Gabriele:
15-Jan-2007
i think it should be considered a bug, the old string should probably 
not be GCed or there should be some way to tell struct! what to do. 
(wasn't there a "save" attribute for structs?)
Maxim:
15-Jan-2007
does this grow to hundreds of MB of RAM if you do this in a loop?
Maxim:
16-Jan-2007
does replacing this:

dest to-image layout [origin 0x0 image (im) (size)]

by this:

dest to-image layout [origin 0x0 image im size]

do anything?
Ladislav:
18-Jan-2007
and, Gabriele, what do you think about the to integer! -2147483648.1 
issue? (it may be related!)
Volker:
26-Jan-2007
means the are same, even when created by mutiple inserts. Makes sense 
 to  do that  and  share an internal pointer.
Volker:
26-Jan-2007
.. let us move somewhere else? (do not want to command you ;)
Chris:
29-Jan-2007
What do you mean by 'text is clipped'?  Would the margin not add 
on to the end of the longest line?
Henrik:
3-Feb-2007
do load insert tail [] reduce ["12" 'to 'time!]
Henrik:
3-Feb-2007
do load tail ['a] 

Actually this seems to be enough to crash it.
Gabriele:
7-Feb-2007
Petr: first of all, we don't want 2.7 to introduce new bugs. (2.7 
is a merge of a number of branches of the code - Carl really needed 
to do this to simplify things - so there are many things that can 
break in such a scenario). Then, we want it to fix a few bugs too. 
:)
Maxim:
8-Feb-2007
I can't be sure... as I'm no flash expert, but my gut feeling is 
that since actual controls do receive the events... object controls 
should also be able to receive them ... I posted the bug mainly to 
make sure the enter key isn't forgotten... cause that is quite weird.
BrianH:
8-Feb-2007
I'm looking at the http protocol source, and I find no indication 
of any fix to the default line ending of ssl:// - do I have the right 
source? It is dated 5-Dec-2005...
Ladislav:
11-Feb-2007
but if you really want to do what you said, then you probably don't 
use the /only refinement, do you?
Anton:
13-Feb-2007
An issue raised by Joe in Core group 26-Nov-2006:
	launch {my-script.r param}

Joe wanted param to be parsed out and appear in system/script/args, 
however, it looks like instead the whole string is converted to a 
file and rebol tries to DO it.
Anton:
4-Mar-2007
I realised when mimicking the behaviour of DO EVENT, that the reason 
the target face is not given is because its impossible to know at 
the time DETECT is called. Events travel down through the face hierarchy 
through the DETECT functions, the evaluation of which could have 
an effect on the result. The DETECT function can block events or 
allow them through, depending on the result they return, which is 
programmable and therefore dynamic. So a DETECT function higher up 
in the face hierarchy which is evaluated before a DETECT lower in 
the face hierarchy cannot know which is the target-face, because 
the result of the lower DETECT may change the target-face.
Oldes:
7-Mar-2007
I really don't know, why everybody must be forced to rewrite some 
letters or do basic math only because of a few idiots. Just block 
their IPs or give the captcha only to some of these IP ranges (if 
you think, that there still can be someone innocent). That's what 
I would do.
Maxim:
7-Mar-2007
Gabriele, could a captcha be added easily and timely to RAMBO... 
as well as a "preview" step... hitting the "enter" is easy to do 
involuntarily.
Gabriele:
28-Apr-2007
when you do a read %dir/   and you get %subdir/   as a result, you 
know that the path to subdir is %dir/subdir/  so it seems consistent 
to me that a read %/ gives %a/ and the path is %/a/ .
Gregg:
28-Apr-2007
I've considered it a long-standing bug, because it didn't do that 
before, and I think Carl acknowledged it as a bug at one point. There 
are two ways to look at it, but the consistent-path model may be 
best in REBOL, meaning it's not a bug. Under Windows, where there 
is no concept of a root above the drive letters, it's more comfortable 
to think in terms of the drive spec being a top level entity. Not 
sure what's best for UNC usage.
Anton:
12-May-2007
Interesting problem: Why do I need BIND/COPY ?


The aim is to copy the values of the facets in face F2 to face F1.

f1: make face []
f2: make face [text: "hello"]

facets: [text]

set bind      facets f1 reduce bind      facets f2
f1/text ;== none   ; <-- why ???

f1/text: none
set bind/copy facets f1 reduce bind      facets f2
f1/text ;== "hello"

f1/text: none
set bind      facets f1 reduce bind/copy facets f2
f1/text ;== "hello"

f1/text: none
set bind/copy facets f1 reduce bind/copy facets f2
f1/text ;== "hello"
Henrik:
17-May-2007
I see. Unfortunately it seems I hit it close to every time I do a 
specific operation, but I have no time to debug it...
Henrik:
17-May-2007
it seems to be accumulative, since it does not happen in exactly 
the same spot every tine and is possibly related to Rugby's do-every 
function, because it seems to happen whenever the do-every is executed.
Volker:
17-May-2007
i had such a problem with massive gui and async. Workarounded the 
following way: recycle is off permanently. there is a thread (do-every 
or such) which checks how much memory was allocated and when it is 
to much it recycled. crashing stopped.
Oldes:
19-May-2007
just found, that youtube do not respect HTTP1.0 protocol => sends 
HTTP1.1 303 response even if client require HTTP1.0 (which is Rebol 
case). As there is no response specified for 303 in Rebol's http 
handler, it can be fixed using:

use [tmp][

 tmp: select second get in system/schemes/http/handler 'open to-set-word 
 'response-actions
	if none? find tmp 303
	insert tmp reduce [303 select tmp 302]
]
Oldes:
19-May-2007
whith the patch above you should be able to do for example:

trace/net on

p: open/direct http://www.youtube.com/get_video?video_id=FVbf9tOGwno&t=OEgsToPDskKR0Ng6kANs3Z4VNG81T2tZ
error? try [close p]
Anton:
21-May-2007
Oldes, note that you can do this, which looks clearer to me:

select second get in system/schemes/http/handler 'open [response-actions:]
Oldes:
21-May-2007
Note: Many pre-HTTP/1.1 user agents do not understand the 303

      status. When interoperability with such clients is a concern, the

      302 status code may be used instead, since most user agents react
      to a 302 response as described here for 303.
Gabriele:
24-May-2007
henrik, with recycle/off, no memory is ever reused, and obviously 
rebol is constantly allocating memory for temporary values and so 
on. so used memory grows. when you do a recycle, the gc will collect 
all the garbage and start reusing it for later allocations, so that 
memory used stops to grow until you get to the same point as before 
and rebol needs more memory.
Henrik:
24-May-2007
I just think there should be better clarity on what are do's and 
don'ts in terms of how to preserve memory and have a stable application 
at the same time. Some apps of mine never eat more than 3-5 MB RAM, 
while others eat 250 MB RAM, and I don't know what causes it.
Anton:
29-May-2007
You meant, center and *right* aligned text can not be edited.

But yes, this is a long-standing bug, and it's annoyed me a few times.
Actually, this is something that *could* be worked around.

We just need to figure out how caret-to-offset and offset-to-caret 
work, then write mezzanines to replace them. I've been meaning to 
do this for a while.
Anton:
12-Jun-2007
Also note, to get the caret and highlight handling / rendering working 
properly will require you to do in Rebgui the equivalent of the above 
ctx-text patching etc. That's quite a bit of work.
Anton:
19-Jun-2007
First run View 2.7.5.3.1 and do this:


 site: select load-thru http://www.rebol.net/reb/index.r[folder "Anton"]
	clear find site %index.r
	load-thru/update site/patch/caret-to-offset-patch.r

Do the main demo, showing patched AREA:

	do-thru site/patch/demo-caret-to-offset-patch.r

Three patched styles; AREA, FIELD, INFO:
	
	do-thru site/gui/demo-area.r
	do-thru site/gui/demo-field.r
	do-thru site/gui/demo-info.r

The initial experimental testing script:

	do-thru site/patch/test-caret-to-offset-patch.r
btiffin:
20-Sep-2007
Do we still bother reporting to RAMBO?  Is there any expecations 
for a production 2.7.6?  I'd vote; please please please.
BrianH:
1-Mar-2010
Wrong group, but good to know. MAKE op! clearly needs to do more 
parameter checking. CureCode it.
Gabriele:
31-Oct-2010
I do, but that's only useful to the author of the program in question, 
no?
Group: Syllable ... The free desktop and server operating system family [web-public]
BrianH:
23-Sep-2008
I tend to need the Server stuff more (auto startup, headless operation, 
remote console), so I don't use VirtualBox myself, nor do I have 
an available computer on which I can install VirtualBox, since all 
compatible computers I own have VMware Server installed, even this 
laptop.
BrianH:
23-Sep-2008
How many virtual network adapters do I need to configure? How many 
bridges? How many DHCP and NAT services?
BrianH:
13-Dec-2009
Different kernel, for one thing. Syllable Desktop has nothing to 
do with Linux. Server is the Syllable user space on the Linux kernel.
Graham:
8-Jun-2010
screencast to me just means copying the screen as you do things .. 
doesn't imply the need for sound or anything else unless you want 
to get fancy.
Kaj:
14-Aug-2010
There are ways to do installations that are not possible in the above 
ways, but they are more complicated. You could start the install 
CD in a virtual machine after you have mounted a physical disk or 
partition in the VM, and install to that. Then afterwards, you'd 
have to configure the bootloader on the physical disk to start that 
installation
ddharing:
26-Aug-2010
Kaj, if you had to do an elevator pitch for Syllable Server, how 
would you set it apart from all of the other Linux distributions? 
That is what the perception will be because Syllable Server has a 
Linux kernel.
ddharing:
28-Aug-2010
I have a looming project with Glad where this can be deployed. I'll 
be doing some extended load testing next week to see how our services 
run and verify the server's stability. These days a lot of software 
gets used for years and never makes it to 1.0. I'm running REBOL 
scripts, sqlite and Cheyenne. We'll also be using another third-part 
y so library for PLC communications.


Kaj, do you feel confident in Syllable Server's present state to 
run this kind of workload. I'm just looking for a personal opinion, 
of course. The ultimate decision and responsibility is mine. From 
the customer's perspective, our product is an embedded system running 
a custom version of Linux.
Kaj:
28-Aug-2010
Server is not yet very suitable for people such as Graham, who have 
lists of requirements that vary a lot from year to year because they 
want to cherry-pick it from the entire open source pool. But if you 
have a well defined set of software choices, and especially if you 
would like to package that up appliance style for customers, Syllable 
is a good base to do that on
Kaj:
2-Sep-2010
So the easiest way to do it now is to just use X11, which we eventually 
needed to have, anyway
Pekr:
6-Sep-2010
Do you know developers base of Haiku? Is that similar to Syllable, 
or bigger?
Kaj:
20-Sep-2010
Yes, ReiserFS is designed as the storage layer for a database system. 
In particular, it was designed and optimised to be very good at large 
numbers of small files, assuming they will be records in a database. 
This is exactly what we tend to do in native REBOL databases
ddharing:
24-Sep-2010
Kaj, do you have a favorite Live CD Linux that you use to install 
Syllable Server. I've been using Puppy Linux, but it doesn't have 
XZ-Utils or Reiser filesystem support in the default distribution.
ddharing:
25-Sep-2010
Have you ever evaluated TinyCore Linux? It's from the former developer 
of DSL (Damn Small Linux). On a modest Atom, it boots to a minimal 
desktop in about 7 seconds. Of course, it has almost nothing by default. 
The first thing you have to do is download packages of stuff you 
need.
shadwolf:
25-Sep-2010
i tryed syllable in a VM box  that's cool ...so actually there is 
 2 derivated from BeOS syllable desktop and Aiku. I would say Syllable 
is a step further than aiku. One question this OS seems to be  pretty 
accurated for small environement. Do you plan to relase a netbook 
adapted syllable ? something like an ubuntu remix but adapted for 
syllable.
BrianH:
17-Dec-2010
I may have to just do a system restore and then redo my customizations 
and app removals, still stuck with XP. Annoying and slow, but this 
provides the greatest support and flexibility on this platform. I 
need my 802.11n and (for now) Hamachi.
Andreas:
19-Mar-2011
Pertaining to the previous discussion in "Red": If you do
readelf -h `which ls` | grep Type
on Syllable, what type do you get? EXEC, DYN, something else?
Kaj:
25-Dec-2011
I'll have to do something about it, but I'm too busy
Kaj:
12-Jan-2012
Sorry, there's not much else to do than trying another mouse, unless 
you would want to debug and fix the problem in Syllable
Kaj:
12-Jan-2012
Yes, there's not much I can do to debug remotely on your system, 
except giving some advice
Evgeniy Philippov:
12-Jan-2012
BTW I think I will touch the instructions on a devel site. Is it 
clear how to do all of that, is there a clear link on a main site?
Evgeniy Philippov:
13-Jan-2012
It detects a PS2 AUX (mouse) port but fails to do smthings with a 
PS2 mouse a number of times.
Evgeniy Philippov:
13-Jan-2012
Hmm I'm completely lost in this README (at the url above). What should 
I do to recompile appserver/appserver/.../ps2mouse/ps2mouse.cpp ?
Pekr:
7-Feb-2012
And Kaj, now honestly you can tell me (decide for yourself, as this 
group is web public), why some ppl (or it's actually just one person) 
blames you from demotivating others? I always wonder, how such a 
thing as REBOL can make core developers to leave? What do you think 
about the topic? (not neccessary belonging into vent)
Kaj:
7-Feb-2012
People leave volunteer projects all the time, and it's very easy 
for a troll to make it seem like it has something to do with the 
people remaining. Suffice it to say that this is motivated by their 
own feelings of inferiority, and far beside the truth
Group: !REBOL3-OLD1 ... [web-public]
Ladislav:
3-May-2006
...as useful as I've found hash indexes to lists to be
 - do you have a short sample code you can post?
BrianH:
4-May-2006
As for the hash (or assoc) index and list data combo, it has some 
advantages. When you are inserting and removing data a lot lists 
have a known speed benefit but the real advantage as far as indexes 
are concerned is in how lists handle series offsets (I'm using the 
word offset here because I'm using the word index to refer to the 
external hash/assoc index).


Blocks encode their offsets as a number offset from the beginning 
of the series:

>> a: [a b c]
== [a b c]
>> b: skip a 2
== [c]
>> index? b
== 3
>> insert next a 'd
== [b c]
>> b
== [b c]
>> index? b
== 3

List offsets are pointers to the associated list element.

>> a: make list! [a b c]
== make list! [a b c]
>> b: skip a 2
== make list! [c]
>> index? b
== 3
>> insert next a 'd
== make list! [b c]
>> b
== make list! [c]
>> index? b
== 4


If you are indexing your data and your data in in a block, you need 
to update your index with almost every insertion and removal because 
the references to latter positions of the block in the index will 
be invalid. With list insertion and removal, external references 
are likely to still be valid unless the referenced elements themselves 
are deleted. If you are sure to delete the reference from the index 
(or replace it with nones) the rest of the index should be OK. New 
index references can just be tacked on the end, or put into the first 
empty entry. This makes live indexes a lot more practical.


On the down side, if you are using lists and they are long enough 
to make linear searches impractical, you really do need an external 
index for them to be useful. Also you need to balance the overhead 
and complexity of keeping the indexes updated against their benefit. 
This technique is not for the faint of heart unless you can get some 
guru to do algorithms for you.
Ladislav:
10-May-2006
example:

f: func [

    /local g return-from-f  ; any local word can do the same service
] [
    g: func [n] [
        if n = 0 [
            return 0 ; "classic" return, nothing special
        ]
        if n = 1 [

            return/from 1 'return-from-f ; this causes F to return the value
        ]
    ]
    g 0
    g 1
    g 0
]
f ; == 1
Ladislav:
12-May-2006
Regarding the example Volker wrote: yes, it is a way how to do similar 
things, but it differs - Catch/Throw ignore contexts, so the behaviour 
is not equivalent, although it looks so
Volker:
12-May-2006
Guessing: in recursion one typically goes into a function, guess 
a few ifs deep, does some work and returns. 
 either n > 0 [do-work exit][recurse n - 1]

If that is long, one ants to split that in multiple functions, indirect 
recursion
  f: func[n][  some-checks-or-return  g-checks n]
  g: func[n][either n > 0 [do-work exit/from f][f n - 1]
And that is not possible, one can only exit 'g itself.
JaimeVargas:
12-May-2006
The macros are just a way to do syntactic-enhancement. In a sense 
they are just templates to basic constructs.  But this templates 
are quite 'smart'
Gregg:
20-May-2006
I'd bet a lot of us have thought of that one. I haven't pushed for 
it, because it seems like the places I think I'd use it most would 
have exceptions in the other direction. That is, I want to reduce 
*almost* everything, but there are exceptions. I also thought about 
a version that let you specify the words you wanted reduced (reduce-only 
series words), and would do a deep reduce, then RT added /only, which 
works backwards from that, so I thought my idea would be confusing.
Louis:
20-May-2006
Is rebol3 going to support file locking? I think that is the correct 
term. I need for several users to be entering data into the same 
file at the same time. Is there a way to do this right now?
Pekr:
24-May-2006
do you think it is easy to emulate those languages?
Geomol:
24-May-2006
How do you best support other languages from REBOL (if you want to)?

- Directly parsing other languages with their syntax from REBOL is 
a way to make old programs written in those languages run. You need 
to parse strings for this to work, and that may not be very fast.

- Making new dialects based on those languages, but with the minimal 
REBOL syntax may be good for new programs, written in those languages. 
One thing, that irritates me in other languages (also C) is their 
syntax. You have to write so much unnecessarily, and it's easy to 
make a mistake (e.g. put a ';' in a wrong place), and your program 
then doesn't work as inteded. All the extra also makes it less easy 
to read programs, written in those languages.


It's possible to make cross-compilers, that'll read old programs 
and produce a new format.
Geomol:
25-May-2006
Uhhh, parallel vector processing! If you get that working and can 
use the hardware to do the actual calculations, then you'll get lots 
of speed!
Pekr:
7-Jun-2006
but that is not the point. I just first could not follow, how they 
work with widgets, and then I found out - they have separated code 
and widget definitions. At first it looks strange .... it is like 
having 'feel(s) , event maintanance, app logic, without seeing what 
actually you are working with. But I do understand, why they keep 
widget defs outside in external file, which is kind of simple (as 
VID is), with static positioning - it is very easy to import to visual 
GUI builder ....
Pekr:
7-Jun-2006
btw - how do we refer to instantiated style - still a 'style? Or 
will we adapt widget name too?
Anton:
8-Jun-2006
BrianH, do you know what structure rebol currently uses for holding 
symbols ? Red/Black trees are complex, so it will take a fair effort 
to implement and debug.
Henrik:
31-Jul-2006
I strongly doubt that RT would be wasting time. It's just that there 
is so much to do and R3 is one component in a large amount of software. 
Had this been some single-purpose program (like LIST-VIEW), we would 
see more rapid fire releases. :-)
Henrik:
31-Jul-2006
it would also help if the community could do a little bit. GUI Design 
for example didn't have to stop, just because Carl goes to France.
Henrik:
7-Aug-2006
I wonder with portability, when it will be time to discuss how to 
port r3? I remember hearing that it would be possible for 3rd party 
developers to do their own port
Henrik:
21-Aug-2006
I would definitely prefer that 'i is bound to the block. You might 
want to do adjustments to 'i during the loop, although I don't really 
use that, but sometimes it can be useful with variable stepping or 
resetting.
JaimeVargas:
23-Aug-2006
Maybe unset! should be expelled from the  ALL and ANY natives. After 
all there is not much that you can do with unset!, but expelling 
it is going to be hard. Lad, I am curious about your opinion.
Henrik:
31-Aug-2006
I had a few problems with 'join and 'rejoin in the beginning because 
I somehow expected them to be a bit like form and reform, using the 
same arguments as input. That's of course not logical, but I think 
that the 'word and 're-word naming of functions, doesn't entirely 
fit and actually limits the naming scheme, making it a disadvantage 
rather than an advantage.


Does 'recycle have anything to do with 'reduce? Or 'remove? No. One 
might think up a 'move function that does 'reduce. That would clash 
with 'remove, but 're- has two different meanings.


Words in rebol usually have sensible naming, something you can pick 
out of the dictionary and it'll make sense, except for those with 
're- in front of them. If you take them out of context and try to 
explain them, you have to know about 'reduce, but the dictionary 
meaning of the 're- words is something different. I don't have any 
suggestions on how to change this though, other than add a dash: 
re-form, re-join, re-mold...:-)
JaimeVargas:
31-Aug-2006
I think the form use to produce the  reduce effect is incorrect. 
Most probablay it needs to written using DO/NEXT.
Anton:
31-Aug-2006
If we make the right decisions about which functions are important 
enough to have their own word, we free ourselves with clearer code 
etc. Imagine if there was no DO function, but that functionality 
was a refinement of LOAD or REDUCE   --->    We would write REDUCE/DO 
 all the time.
BrianH:
1-Sep-2006
I am currently rewriting delimit and conjoin to implement a few of 
my own ideas for it. You do yours and we'll compare.
BrianH:
1-Sep-2006
It could be tightened up a little in the empty data case, so I'm 
going to do that and post it again when I post conjoin.
Anton:
2-Sep-2006
Brian, I think Jaime was making the same point, as I do above, about 
speed vs clarity, with regards to /copy. Some benchmarking is needed 
comparing:

- delimit/copy data    ; <--- delimit with /copy refinement implemented
- delimit copy data    ; <--- delimit without /copy refinement
BrianH:
5-Sep-2006
I was just using the same refinement /copy that bind uses, but I 
agree that its reuse as a local variable isn't very readable. I should 
use /local like my conjoin does. Speaking of conjoin, what do you 
think of the one above? The only speedup I can see to do is to replace 
the insert reduce with four inserts, but otherwise it seems useful.
BrianH:
7-Sep-2006
The series function standard is
    function data-to-be-operated-on modfier-arguments

That's what I used with conjoin. It was also intentional that the 
data block not be reduced by conjoin. I see conjoin as an operation 
that you pipe data through, like utilities on Unix. If you want the 
data reduced, go ahead and do so - if not, don't.
Anton:
8-Sep-2006
That's what conjoin allows you to do - compress the common delimiter.
Volker:
8-Sep-2006
But do such blocks happen often enough? IE more often then using 
conjoin to format results? I personally think not, but others may 
code different.
Pekr:
14-Sep-2006
sorry - I don't properly follow the discussion, so I even don't know, 
what conjoin should do in opposite to join, or rejoin ... I am fine 
with both old names ...
BrianH:
15-Sep-2006
Well, REBOL blocks can double as datasets, with either nested blocks 
or fixed-length records. You could probably do a variant on conjoin 
that could convert either of these types to a CSV file, even with 
one that has its records delimited by something other than a comma, 
like a tab. Creating a new function to do this based on the techniques 
in conjoin would currently be easier than using conjoin to perform 
this task.
Volker:
18-Sep-2006
But we need a way to enforce cleanup? something like 'finally? If 
a module provides an
  open-do-close [my-code]
my code should not be able to avoid the close?
BrianH:
18-Sep-2006
I would normally be on the side of dynamic break - it would be easier 
to teach, and the rest of REBOL follows that model. What would be 
the major advantage of lexical break in a non-compiled language? 
REBOL code blocks aren't really lexically associated with their control 
structures in the DO dialect, as my conjoin and delimit functions 
above demonstrate. This isn't rebcode you know.
Ladislav:
18-Sep-2006
no, because in the case I am programming a control function I do 
not want to force the users to specify the destination just because 
they are using my control function
Robert:
17-Nov-2006
I'm always wondering why people depend on the next release to start 
their app... take what you have and do it. There is always a way. 
It's like with a team. You got the people you have and good management 
is, to get to the goal with your team you have. Winning with a dreamteam 
is no art.
Henrik:
17-Nov-2006
I'm always wondering why people depend on the next release to start 
their app... take what you have and do it.
 <--- Precisely!
Louis:
23-Nov-2006
rebol [
	purpose: "Demonstrate how to use the findany function."
	note:  {This is a function I would like included in Rebol3.
		One of you experts (I don't remember who) made this function 

                for me, and I use it all the time. Do you see any ways it can
		be improved before I submit it? --- Louis
	}
]

s: "findany will return true if it finds in this sentence any of 
the strings you enter in the request box."
print [s newline]

forever [

 bs: copy parse (request-text/title "Enter the strings you want to 
 find separated by a space.") none

	findany: func [ 
	     "Searches string x for any substring found in block ys."
	     x [string!] "string"
	     ys [block!] "block of substrings"
	    /local pos
	] [
	    foreach y ys [
	         if pos: find x y [return pos]
	     ]
	]

either findany s bs [print true][print false]

]
halt
Louis:
23-Nov-2006
rebol [
	purpose: "Demonstrate how to use the findall function."
	note:  {This is a function I would like included in Rebol3.
		This is my function. Do you see any ways it can
		be improved before I submit it? --- Louis}
]

s: "findall will return true only if it finds in this sentence all 
the strings you enter in the request box."
print [s newline]

forever [

 bs: copy parse (request-text/title "Enter the strings you want to 
 find separated by a space.") none

	findall: func [
		"Seaches string s for all substrings find in block bs."
		s [string!] "string to search in"
		bs [block!] "block of strings to search for"
	][
		findit: func [
			s [string!] "string to search in"
		        b [string!] "string to search for" 
		][
			if find s b [either find s b [true][false]]
		]
		foreach b bs [either findit s b [true][break/return false]]
	]

either findall s bs [print true][print false]

]
halt
[unknown: 5]:
24-Nov-2006
Louis, the way I benchmark in REBOL is to do a trace count.  In other 
words if the execution of the trace generates more output than another 
method then I assume that method is less efficient.
4501 / 1157812345...4445[46] 4748...112113114115116