• 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
r4wp4382
r3wp44224
total:48606

results window for this page: [start: 24301 end: 24400]

world-name: r3wp

Group: Rebol School ... Rebol School [web-public]
Janko:
16-Apr-2009
I need to see more how this is used before I start optimising, I 
thought I can make some optimisation without complicating it all 
up and make it less elegant to use and extend
TomBon:
16-Apr-2009
hi janko,

have you seen the erlang concept of concurrent distributed programming? 
http://erlang.org/doc/getting_started/part_frame.html
perhaps you can find there some additional ideas.
A robust and complete p2p component in rebol would be fantastic.
Janko:
16-Apr-2009
TomBon ... yes , erlangs actors are the inspiration for this, although 
I don't have plan to mimic them entirelly .. actors/processes there 
are main building blocks of app in erlang, you can have many thousands 
of them , spawn them all the time etc..  here so far my goal is more 
to use them for distributted computing part, communication between 
various processes/computers ( I have servers that need to talk to 
bots etc.. and back)
sqlab:
16-Apr-2009
Do I understand that you want to send actors a message and they should 
act upon the elements of an objects of the sending process?
Janko:
16-Apr-2009
no no,... upthere I was trying to make actors lighter... each actor 
is a object now , and each carries around code in it's methods so 
it's not as lightweight as it could be.. but this is more of a theoretical 
probem for now.. as I said I am more interested in them for distributted 
programming so I maybe won't be spawning and having 100 000 actors 
around like in erlang for ecample
Janko:
16-Apr-2009
I will post new version with some updates in few days, it will have 
some similar pattern matching/deconstruction for messages, remote 
actor spawning too, actors could remove themselves, and hopefully 
some solution for addressing actors more elegantly by then
Janko:
16-Apr-2009
if we would need really lighweight actors they would have to be made 
with blocks so that they would hold just data , .. rebol creates 
1.000.000 blocks with key and empty string in 4 sec and 70MB, but 
it is question if this is really needed, with objects you can very 
nicely as normal objects extend them into new types of actors
TomBon:
16-Apr-2009
for this small overhead you buy objects which are much better and 
flexible.
Anton:
20-Apr-2009
On 19-Feb-2009 in this group I said that Tiny C Compiler (TCC) had 
problems. Well, I tried again using the latest version from git repository 
and successfully created a shared object library which can be accessed 
by Rebol. So, Vladimir's tunel.r code, which I ported to C, can now 
be compiled using TCC (as well as GCC). This is good because TCC 
is much smaller (and faster) than GCC and can hopefully be integrated 
in nice, small cross-platform packages.
Pekr:
20-Apr-2009
I wonder what would be the option? REBOL would found out there is 
a "rebcode" in it, it would be a C code, and then your app would 
have to compile and link it in order for being able to execute it? 
Could there be a precompiled (or compile at first run) option? Because 
if not, then it would be slow, no?
BrianH:
20-Apr-2009
The plugin model should be compatible with a wide variety of licenses, 
so there may be better candidates for this kind of thing. Most of 
the other languages in REBOL's class are working on LLVM, CIL and 
JVM backends, but those are all pretty large. Perhaps libjit now 
that it is LGPL - that would be a plugin-compatible license, I expect.
BrianH:
20-Apr-2009
I'm interested to see who gets there first: The languages that try 
to graft safety and high-level features onto C (Cyclone, Vala, ...) 
or the efforts to speed up languages that already have the safety 
and high-level features.
Janko:
20-Apr-2009
BrianH, yes interesting question... ocaml is closing in to c if you 
want FP, Java speed-wise also but has a bigger ram usage and startup 
times I guess. but it's also hard to say "what is the high level" 
that we want. Is it Java like, is it dynamic langs, is it FP
Anton:
21-Apr-2009
(Actually, you need to read this file first, and follow Usage instructions 
to install TCC first. Then you can do-thru as above..)
Pekr:
21-Apr-2009
Anton - what form is TCC in? Few dlls? Executable? You could probably 
create "new REBOL" using SDK - simply bundle it into new exe with 
all stuff you need (IIRC SDK allows loading internal binary stuff). 
Or pack it into one file, give it plugin suffix :-) Then normally 
read and decompress it, then load it :-)
Vladimir:
25-Apr-2009
1. What method would you recomend for printing invoices ?

    I promised my sister, I will make small aplication for invoices till 
    the end of this week :)

    I guess best way would be making HTML or PDF file and then leting 
    systm deal with actual printing ?

    Or making a face looking just like the needed document (like print 
    preview) and then printing that picture ?

2. Is there a way to scale face ? like zoom in and out ?
Dockimbel:
25-Apr-2009
This driver is best suited for direct printing, i.e., when you don't 
need to generate a document. Invoices are document that need to be 
saved and transmitted, so I would recommend generating PDF files 
in such case.
Henrik:
25-Apr-2009
VID to postscript provides easy layout and simple previews of postscript 
layouts and I've found that converting to bitmaps is not always fast 
enough for what I need.
ChristianE:
26-Apr-2009
Vladimir, it's fairly easy to - instead of HTML - generate an XSL-FO 
directly from REBOL and use the open source FO-Processor FOP from 
the Apache group to generate PDFs. You don't have to delve into XSL-Transformations 
yet have the full power of exact control over the layout.
PatrickP61:
28-Apr-2009
I need a little help to figure something out.

I have been using R3 for some time and I have a small mystery I can't 
figure out.

Some time ago, I created a script called REBOL.r3a which simply invoked 
the r3-curr.exe file (which is currently a copy of the r3-a49.exe 
that was just released).
This script was simply defined a path for the T variable:
t:	does [do %test.r]

my purpose was to simply type the letter T to invoke the test.r script 
as a quick way of running it while I had the test.r script open in 
an editor on a separate window.
PatrickP61:
28-Apr-2009
So here is the mystery.

I had copied over the r3-a49.exe into the r3-curr.exe and ran it 
directly,

Then I accidentally typed T at the prompt, what I got surprised me:
>> t
** Access error: cannot open: %test.r reason:
** Where: read case load applier do t
** Near: read source case [
    binary? :content [content]
    string...

** Note: use WHY? for more about this error
PatrickP61:
28-Apr-2009
I can't figure it out.

I know that Rebol will try to run REBOL.r and USER.r, but both of 
them do not have this definition.  Where else could this assignment 
be made from?
PatrickP61:
28-Apr-2009
You have it too.  I confirmed it has been there since r3-a32.exe 
and thought it was somehow somthing I screwed up
PeterWood:
28-Apr-2009
It's in A49 on both Mac OS x and Linux Libc.
PeterWood:
28-Apr-2009
I asked on R3 chat and got this answer:


Re #3821: T won't make it to the final distribution - it's for the 
test phase.
It's not even documented. I expect that the function 
will go away inn the code
reorganization.
Janko:
12-Jun-2009
I have one question ... I have parse blocks stored in some external 
block:  parsers: [  aaa [ ( variable + 1 ) to abc ] ]  so I do select 
parsers 'aaaa to get that block .. and then I >>parse string get-parse-bock<< 
 


The problem is that "variable" in that block is defined in the function 
where parse happens ... and it's undefined inside parse block in 
this case ... any ideas how to bind it to it's outer variable... 
I haven't used bind or use before but I thought I can do something 
like this with bind .. but I can't make it work and I also don't 
"get" the bind example in docs
Janko:
12-Jun-2009
hm.. it seems I was using the parameters reverse and bind is exactly 
for this :)
Janko:
12-Jun-2009
...
I don't get this example:
    >> words: [a b c]
    >> fun: func [a b c][print bind words 'a]
    >> fun 1 2 3
    1 2 3

You give it just 'a to bind but is seems to bind b and c too??
Janko:
12-Jun-2009
now that I know and read the docs I get that this is written , but 
I haven't before
PatrickP61:
15-Jul-2009
Asking for help on a formatting problem


I have the following block that cotains some rebol code which I wish 
to print  on the console and then execute the code:
>> code-blk: [print "ok"]          
== [print "ok"]              <-- assigned a code block just fine
>> do code-blk
== ok                            <-- looks good so far 
>> print code-blk

== ok                           <-- Nope that isn't what I was looking 
for, but I understand why since it is like print the results of print 
"ok"
>> print form code-blk

== print ok                  <-- getting closer to what I desire, 
but the quotes are missing
>> print mold form code-blk

== "print ok"               <-- not what I desired   -- I want the 
original code block to be printed as   print "ok" with the quotes

Any ideas on how to fix this?
Graham:
6-Aug-2009
and for that mailing list question ... on how to format yyyymmdd


rejoin  [ now/year next form 100 + now/month next form 100 + now/day 
]
== "20090806"
Gregg:
7-Aug-2009
Doesn't measure that much faster here, and you have to add the FORM 
call as well. Still nice. :-)


If performance is important, you can do two things: 1) cache NOW, 
2) cache the whole result once a day.
Graham:
7-Aug-2009
I ran 10,000 iterations with 'form and found it was 5x faster :)
Graham:
1-Jan-2010
Basically the data about the user Graham was set to a zero byte file 
when my site was hacked .. and vanilla looks at the user file when 
it displays a snip authored  by that user.  It was unable to load 
this data causing an error, and since I authored many of the snips, 
it caused most of the site to go down.
BrianH:
7-Mar-2010
And you don't need funct here because there are no locals (though 
it's a cool function) :)
PatrickP61:
7-Mar-2010
So the main difference between FUNC and FUNCT is that variables outside 
of the function can be referenced ... right?
BrianH:
7-Mar-2010
Look at the source of FUNCT, it's a good lesson on function creation 
tricks. And compare the R2 and R3 versions.
PatrickP61:
7-Mar-2010
I'm an old mainframe cobol kind of guy, and I trying to setup something 
that resembles the perform statement:
debug?: on
perform: funct [paragraph] [

 if debug? [print form ["para " paragraph]]      ;<-- when debug? 
 is on, the paragraph name will be printed before it is "performed"
	do paragraph
	]
a000-mainline:
          perform b100-init
          perform b200-term
b100-init: print "init"
b200-term: print "term"
perform a000-mainline
halt

expected results:
para a000-mainline
para b100-init
init
para b200-term
term
halt


my intention is to define each paragraph and then "perform" them. 
 But I haven't figured it out yet.
PatrickP61:
7-Mar-2010
if debug? [print "para " paragraph]  <-- this isn't working just 
right.  I only get "para" and nothing after that when I expect the 
paragraph name to be printed.  Do I need mold or something like that?
BrianH:
7-Mar-2010
And you can use FUNC here instead of FUNCT. FUNCT has more definition-time 
overhead.
PatrickP61:
7-Mar-2010
Thank you again Steeve and BrianH.  Now it is so easy for me to just 
set the DEBUG? value and see my script being executed!
BrianH:
7-Mar-2010
Notice the use of the lit-word calling convention in the PERFORM 
function: This passes the word unevaluated and lets you get from 
it later.
PatrickP61:
7-Mar-2010
What is the best way to determine the number of seconds that has 
occurred between two timestamps?

I want to determine that offset, then apply it to another timestamp 
and then get a new timestamp.  
ex:
ts-bgn:		01-jan-2001/01:01:01
ts-end:		02-mar-2004/05:06:07
ts-offset:	ts-end - ts-bgn

I am hoping to get the difference in the number of days, and the 
number of hours, minutes, seconds. but I only get the number of days 
1156

Is it possible to get a fraction of a day that is accurate enough 
to the second?

ts-offset:	to-decimal (ts-end - ts-bgn)		This gives 1156.0 which 
is not right.  Any ideas?
Reichart:
8-Mar-2010
Patrick

REBOL has a LOT of words (functions).

It really is worth it to just read all of them (even quickly) it 
is a lot of fun, and realize the amazing depth of it.


When I get a new peice of software (or even hardware) I simply read 
the whole manual from front to back.  I know I might not understand 
it all that way, BUT, I then at least know what it does, and what 
it does not do.  It is sort of like walking around a new house quickly.


You might not remember where everything is, but you mind keeps working 
even afterward, helping you fill things in.
Steeve:
8-Mar-2010
Yeah sort of Mental Health.

Even after all these years I still check the list of all words, regularly.
And I still make discoveries.
My last one ?
TRY/EXCEPT
PatrickP61:
8-Mar-2010
Hi all, I have a problem to figure out.


I have a special needs child that uses a talker device to speak for 
her.  It will log all of the words buttons she pushes to a file. 
 Problem is, the timestamp was not adjusted to the correct time and 
date, as a result each record with a timestamp is off by 6 years, 
3 months, 25 days, 6 hours and 17 minutes.  The format of the file 
is like this:

30th 6pm
*[YY-MM-DD=03-06-30]*
18:04:38 RECORD ON
22:55:13 CTL "Switch User Area from ..."
...
*[YY-MM-DD=03-07-01]*
06:19:12 CTL "..."
06:19:37 PAG "..."
...


As you can see, it is a simple text file that contains a header record 
for the date, and then each line has a time along with various info.

What I would like to do is this:

1.  Compute the offset time (to adjust the erroneous timestamp to 
the correct time)
2.  Go through the file record by record.

3.  When you find a date header record, "*[YY-MM-DD=" grab the erroneous 
date (pos 12-19 as yy-mm-dd), but do NOT write it out.

4.  When you find a time record (hh:mm:ss in pos 1-8), put the bad 
date and time together and then subtract the offset time from it 
to get the right date and time.

5.  If the right date has changed from the prior record, write out 
the corrected date header record.

6.  write out the corrected time record (replacing the wrong time 
with the right time)

7.  Any other records other than a date header or time trailer, just 
write out as is.
PatrickP61:
8-Mar-2010
I havent figured out LOAD or PARSE just yet, nor the other part of 
capturing / changing the dates and times
BrianH:
8-Mar-2010
And profile them to see which is better:


>> dp [to-date map-each x reverse parse head insert copy/part at 
"*[YY-MM-DD=03-06-30]*" 12 8 "20" "-" [to-integer x]]
== make object! [
    timer: 0:00:00.000023
    evals: 43
    eval-natives: 14
    eval-functions: 5
    series-made: 11
    series-freed: 0
    series-expanded: 0
    series-bytes: 731
    series-recycled: 0
    made-blocks: 6
    made-objects: 0
    recycles: 0
]


>> dp [to-date replace/all form reverse parse copy/part at "*[YY-MM-DD=03-06-30]*" 
12 8 "-" " " "-"]
== make object! [
    timer: 0:00:00.00004
    evals: 103
    eval-natives: 30
    eval-functions: 5
    series-made: 8
    series-freed: 0
    series-expanded: 0
    series-bytes: 530
    series-recycled: 0
    made-blocks: 2
    made-objects: 0
    recycles: 0
]
PatrickP61:
8-Mar-2010
Ok, I get the if x is modified it won't change the original,

What I don't get is that and empty block [ ] is just empty.  It is 
not like a word or anything is it?

Yes, i did see the performance numbers.  that is good to see!
BrianH:
8-Mar-2010
The empty block is a value, even if it doesn't contain other values, 
and it is a value that can be modified.
BrianH:
8-Mar-2010
I profile code patterns all the time, and when writing functions 
I use the best code patterns. This leads to better functions, even 
if you don't profile the whole function (which you can't always do).
PatrickP61:
8-Mar-2010
Ok so back to my question.

A will reference a specific memory and each time it is eval, a new 
empty block is setup.

B will reference a different memory place, and each time it is eval, 
that same memory can be modified.

C will reference a different memory place, that can also be modified 
by either using C or changing X.


But is there any significant difference to the following, if both 
reference a NEW memory location that is empty?
x:	copy [ ]
y:	[ ]

Sorry, I am really trying to understand
PatrickP61:
8-Mar-2010
(after you have modified some values into x and Y, I mean)  -- hope 
I didn't confuse others out there.
PatrickP61:
10-Mar-2010
I have a question about the APPEND function.

>> loop 10 [x: "a" append x "b"]
== "abbbbbbbbbb"


I would have expected the the final result to be just "ab" (after 
the 10th iteration).


But in this example, X has been assigned to the string "a" and then 
"b" is appended to it 10 times.

If X has been "reset" to the letter "a" again in each interation, 
why doesn't the previous "b" also go away since X has been reinitialized 
to just the letter "a"?
PatrickP61:
10-Mar-2010
>> loop 10 [x: "a" append x "b"]

And yet, if I repeat the exact same comand 10 times, I do NOT get 
the same result

x: "a" append x "b"
=="ab"
x: "a" append x "b"
=="ab"
Henrik:
10-Mar-2010
This means also that doing this:

>> x: "a"
== "a"
>> x: "a"
== "a"


you are creating two separate strings, both assigned to 'x and the 
last assignment overwrites the first one.
Davide:
12-Mar-2010
I need a small function "my-compose" that takes a blocks, deep search 
tag! values and change it with the value of the word into the tag.
For example, if I have a test function like this:

x: 1
test: func [y /local z] [
	z: 3
	my-compose [ 
		print [ <x> + (<y> + <z>)]
	]
]

Calling:

test 2 

should return:

>> [print 1 + (2 + 3)]

My problem is to do the right bind in the parse:

my-compose: function [code [block!]] [elem rule pos] [
	rule: [any [

  pos: set elem tag! (change/only pos **magical-bind-here** to word! 
  to string! elem ) |		    	
		pos: any-block! :pos into rule |
		skip
	]]
	parse code rule
]
Davide:
12-Mar-2010
Now I'm using this function: 


my-compose: function [code [block!] params [block!]] [elem rule pos 
temp] [
	rule: [any [

  pos: set elem tag! (temp: select params to word! to string! elem 
  if not none? temp [change/only pos temp]) |		    	
		pos: any-block! :pos into rule |
		skip
	]]
	parse code rule    
]

And I call it using:

my-compose [print <x> + (<y> + <z>)] reduce ['x x 'y y 'z z]


It works but the second block is redundant and I would eliminate 
it.
Chris:
15-Mar-2010
do func [local][local] "local" - works in R2 and R3...
BrianH:
15-Mar-2010
The only keyword in R3's DO dialect is 'rebol, but it is not reserved 
and you can use it elsewhere. However, many words are predefined 
and some are protected - this doesn't make them keywords though. 
Many of the built-in functions and dialects have keywords though.
BrianH:
15-Mar-2010
The HELP function treats the /local refinement specially in function 
specs, but the function spec dialect doesn't: /local is just another 
refinement. Some of the mezzanine function creators treat /local 
the same way HELP does (particularly HAS, FUNCT and FUNCTION), but 
that's just a convention, not a reservation. The duplicate word error 
PeterWood got above would happen if any argument word was duplicated, 
not just 'local.
BrianH:
15-Mar-2010
R2's function spec dialect has keywords: The attributes [throw] and 
[catch] and the type names in the type spec blocks. R3's function 
spec dialect doesn't currently have keywords, even those that R2 
has; you can use any type name you like. Eventually R3 will have 
set-word function attributes and they will likely be keywords, though 
you'll probably still be able to use the same words as arguments 
or types if you like since those aren't expressed with set-words.
BrianH:
15-Mar-2010
The 'system word is predefined and protected, but not a keyword in 
any built-in dialect in R2 or R3.
Ladislav:
15-Mar-2010
...the DO dialect doesn't, except for one: The word 'rebol before 
the header

 - actually, I would say, that the word 'rebol is a keyword of the 
 script specification dialect (i.e. I would make a distinction between 
 "plain Do dialect" and "script specification dialect (s)", there 
 actually are two variants of the script spec dialect, one for "normal 
 script", one for "embedded"script"
Sunanda:
15-Mar-2010
Thanks for the various explanations and examples.


My conclusion.....At the very least. use of LOCAL as a variable should 
be flagged somewhere as a potential gotcha. 


Consider the six R3 functions below. Some print NONE, some print 
999 -- not every developer will have enough guru-fu to know which 
do what:

local: 999
 f: closure [] [print local] f
 f: does [print local] f
 f: func [][print local] f
 f: funco [][print local] f
 f: funct [][print local] f
 f: has [] [print local] f
BrianH:
15-Mar-2010
In R2 DO of a block or string didn't require (or use) the header, 
but DO of a script does. In R3 it's the same for DO of a block, but 
strings are treated like scripts now, and the header is optional, 
unless you need information in it. So DO script has a 'rebol keyword, 
but DO block doesn't. And DO block is what we think of as being the 
DO dialect.
BrianH:
15-Mar-2010
Btw, if RETURN and EXIT go definitional in R3, 'return and 'exit 
will effectively become keywords in functions.
Ladislav:
15-Mar-2010
(and the word return: in the spec seems to be the discerning indicator)
Andreas:
15-Mar-2010
And even if all functions get definitionally scoped RETURN/EXIT, 
they wouldn't become keywords at all.
PeterWood:
15-Mar-2010
... which also explains the "apparent" inconsistency in Sunanda's 
list of function creation mezzanines ... both funct and has always 
specify the local refinement in the funciton specification.
BrianH:
16-Mar-2010
Ladislav, you keeep suggesting that there will be the option of dynamically 
scoped RETURN and EXIT if we switch to definitionally scoped. There 
is no indication that this is the case, and the increased complexity 
that would add to function calls is a serious indication otherwise. 
It's probably going to be only definitional or only dynamic, not 
an option of either/or. And either way we will need a workaround 
attribute: something like [throw] for dynamic, something else for 
definitional.
BrianH:
16-Mar-2010
Andreas, MAKE function! doesn't execute the code in the code block, 
it just makes the function. Your workaround applies to the code when 
it is executing. When the function is being made, the words 'return 
and 'exit will be treated specially in the function code block (if 
we go definitional for those functions), but when the code is run 
later the words are nothing special. It's similar to the situation 
with 'self and BIND or MAKE object!.
Ladislav:
16-Mar-2010
you keeep suggesting that there will be the option of dynamically 
scoped RETURN and EXIT if we switch to definitionally scoped. There 
is no indication that this is the case

 - citation: "Allows return as a dynamic function to still work (when 
 return not in function spec.)" see http://www.rebol.com/r3/notes/errors.html
BrianH:
16-Mar-2010
That is why I said that the section in question needs to be rewritten 
and split up. As it is it makes no sense and mixes unrelated stuff.
BrianH:
16-Mar-2010
And it wouldn't work with EXIT, since the dynamically scoped version 
of the function wouldn't be able to call the definitionally scoped 
RETURN. The whole section gives the impression of not being thought 
through. And we're in the wrong group for this discussion.
Ladislav:
16-Mar-2010
Just a note, which may as well be put here, I guess: since R2, Rebol 
"mixes" definitionally scoped and dynamic constucts, and it looks, 
that this mix will stay with us even in R3
Davide:
21-Mar-2010
using _prev and _next instead of function the result is:
Time per iteration = 0:00:00.00056687
Geomol:
21-Mar-2010
I don't think, Java is as C++ in performace. C++ can be compared 
to C in performace, and Java is at least 8 times slower. See e.g.:
http://www.timestretch.com/FractalBenchmark.html
Paul:
21-Mar-2010
David you can dump those mezzanines and just use make function! instead 
of 'does and 'func.  Maybe use the operators such as <> instead of 
not equal? and use chain assignment here and there were applicable.
Gregg:
14-Apr-2010
I've done the same thing as Max, and if there is just one refinement, 
I'll still use EITHER. If you have a scenario where there's an entry 
point that delegates work and requires multiple options, consider 
making it a dialected func.
BrianH:
14-Apr-2010
The APPLY mezzanine in 2.7.7 has a minor, obscure bug that is fixed 
in a later R2/Forward release, and later R2 mezzanine source. But 
aside from that it works fine, and I have used it in production code 
with no errors (the bug was so obscure that it never came up in practice 
or testing).
BrianH:
14-Apr-2010
Without APPLY or something like it, you end up having to do some 
tricky stuff sometimes. See this REMOLD backport for instance:

remold: func [
	"Reduces and converts a value to a REBOL-readable string."
	value [any-type!] "The value to reduce and mold"
	/only "For a block value, mold only its contents, no outer []"
	/all "Mold in serialized format"
	/flat "No indentation"
][ ; Nasty, but the best you can do without native APPLY
	do pick pick pick [[[
		[mold reduce :value]
		[mold/flat reduce :value]
	] [
		[mold/all reduce :value]
		[mold/all/flat reduce :value]
	]] [[
		[mold/only reduce :value]
		[mold/only/flat reduce :value]
	] [
		[mold/only/all reduce :value]
		[mold/only/all/flat reduce :value]
	]]] not only not all not flat
]
; Note: Uses APPLY in R3.
BrianH:
14-Apr-2010
And that REMOLD should be using get/any 'value instead of :value 
- an R3-ism that crept into the code.
BrianH:
14-Apr-2010
No, but it supports molding unset! values and errors.
Maxim:
14-Apr-2010
cool! its easy to trip R2 when scanning blocks and an unset! value 
lies there
BrianH:
14-Apr-2010
We did a *lot* to make R3 easier and more powerful :)
BrianH:
14-Apr-2010
Nevermind, I think the [any-type!] in R3's REMOLD is the error, not 
the :value in the backport. I'll fix it now and put in a ticket.
Steeve:
14-Apr-2010
i tried without 'clear just now, and as I thought, it's broken right 
now
BrianH:
14-Apr-2010
I tried with clear just now, and it was broken.
BrianH:
14-Apr-2010
Just traced through, and the changes are persistent but the clear 
cleans up any extras. So it works from the outside, though it's not 
recursion-safe in R2 or R3, and not task-safe in R3.
Ladislav:
15-Apr-2010
Is there a faster way to replace the first two charcters in the given 
string by the fifth and sixth character of the same string?
 
>> s: "123456789"
== "123456789"

>> change s copy/part at s 5 2
== "3456789"

>> s
== "563456789"
Henrik:
15-Apr-2010
I suppose using pick and poke is not faster.
Janko:
18-Apr-2010
hm .. anyone has any idea why rebpro on linux says "Set-Net not provided." 
I googled but couldn't find the point why is this.
I tried do-ing prot.r and mezz.r
Janko:
18-Apr-2010
but set-net is defined .. but messages this. And if I 
do %/usr/share/cheyenne/rebol-sdk-276/source/mezz.r
do %/usr/share/cheyenne/rebol-sdk-276/source/prot.r
Janko:
18-Apr-2010
aha.. you get set-net not provided also... maybe you call set-user-name 
also in user.r and that produces the error
Janko:
18-Apr-2010
I will try do-ing all the mezz* files first and see if then it will 
work
Janko:
18-Apr-2010
what happens to you if you do mezz.r and prot.r before calling set-net?
Janko:
18-Apr-2010
hm.. what does #include in mezz.r do? is this like preprocessing 
directive and inefective at runtime?
Janko:
18-Apr-2010
I also do-ed all prot-* that were in prot.r with no effect?


does this have something to do with licences?? Because word set-net 
is there but it just messages this. And set-net is in all free versions 
of rebol (and hopefully you can send email from them all along) so 
I am quite confused.
Ladislav:
19-Apr-2010
(R2 and R3 are compatible in this)
24301 / 4860612345...242243[244] 245246...483484485486487