• 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
r4wp5907
r3wp58701
total:64608

results window for this page: [start: 46901 end: 47000]

world-name: r3wp

Group: Core ... Discuss core issues [web-public]
GrahamC:
6-Oct-2010
I think if you want a particular timestamp you would have to use 
set-modes.
Ladislav:
7-Oct-2010
Though with the above you can't specify a given timestamp
 - that is exactly what is needed
GrahamC:
7-Oct-2010
What's the safest way to check if a string ends in a "/" or not?
GrahamC:
7-Oct-2010
perhaps we need a new function : rear: func [ series ][ back tail 
series ]
Gabriele:
7-Oct-2010
Ladislav, note that on Unix, the TOUCH command creates the file if 
it does not exist. so I would not necessarily consider that a bug...
Ladislav:
7-Oct-2010
I do not consider it a bug, but I do want a different behaviour, 
which I have to simulate somehow
amacleod:
9-Oct-2010
whats the easiest way to assign a block of values to a block of words? 

fields: [ref lname fname]
data: [1 "Smith" "Bob"]
Henrik:
9-Oct-2010
:-) had amacleod not been a REBOLer, he might have said "stop making 
jokes".
amacleod:
9-Oct-2010
I've been assigning them one at a time this whole time...feel like 
a dope
Ladislav:
9-Oct-2010
And in R3, it will bypass the setting of locals with funct

 - in R2, as well as in R3, when using the SET function, you bypass 
 the collection of object locals. In R3, with FUNCT, you may not bypass 
 the collection as follows:

set [a: b:] [1 2]
Ladislav:
9-Oct-2010
COLLECT-WORDS is a native, but it is quite easy to define it in R2 
as a mezzanine
Group: !REBOL3-OLD1 ... [web-public]
Steeve:
29-Apr-2009
Didec, i have the same results than Peter with the A49.
And what you're saying is not the problem i pointed.

See, there something strange with the number of evaluations done.

>> dp [loop 1000000 [pick t x + 1]]
== make object! [
    timer: 517292
    evals: 4000011
    eval-natives: 2000004

>> dp [loop 1000000 [t/(x + 1)]]
== make object! [
    timer: 350263
    evals: 3000011
    eval-natives: 1000004


So the conclusion is that evaluating a path don't  follow the same 
scheme than a block evaluation.
Steeve:
29-Apr-2009
actually resolving a path is faster than calling a native function, 
it was not the case in the past
BrianH:
29-Apr-2009
Gabriele, thanks, I trust your memory better than mine about this. 
This is definitely a good reason why Carl is trying to do Rebin before 
he releases the host code - reducing direct access to internal data 
structures.
[unknown: 5]:
29-Apr-2009
It seems that was always promised but I don't see where that is becoming 
a reality.
BrianH:
29-Apr-2009
Remember that you asked that question before you ever complain about 
how we've been working on security lately instead of (pet bug). We've 
been catching a lot of flack lately for working on changes to the 
security model, changes that are necessary to make a browser plugin 
that won't get marked as malware. This was the original reason why 
R3 was started :)
Henrik:
29-Apr-2009
Ladislav, I'd like to make your article on Identity into a cookbook 
recipe, so it gets an official listing in the cookbooks list, so 
people can find it. Where do you think it would fit on this page:

http://www.rebol.net/cookbooks/
shadwolf:
29-Apr-2009
arg yeah rebol plugin is important and it's a bad thing if people 
considers it as a malware T__T
shadwolf:
29-Apr-2009
impossible cause rebol is nice like a puppy :P
shadwolf:
29-Apr-2009
well ... if you want to screw Pcs why using rebol anything else is 
 already enought to screw a poor PC
BrianH:
29-Apr-2009
Running a vbscript is not the same thing as running a vbscript in 
a browser. Browsers are for running malware, hopefully without getting 
caught by it. Hence the sandboxing, security restrictions, etc.
Henrik:
29-Apr-2009
I think ReBrowse will become more important than a browser plugin.
BrianH:
29-Apr-2009
There's no point to creating a web browser, even a kick-ass one. 
Look at Chrome: It is better in almost every way, but it only has 
< 2% market share (when last I checked). If you create a new browser, 
people will still use their old, crappy IE or Firefox.
BrianH:
29-Apr-2009
That's why ReBrowse won't be a web (html) browser.
Maxim:
29-Apr-2009
you can't tell a company that invested several years to start over 
from scratch.  it has to be able to migrate without changing the 
habits... rebol has to sink into the other model first, then slowly, 
if it worth it, people will start putting rebol in the center and 
eventually, something like rebrowse can replace the current framework 
or maybe even live besides it while the migration takes place.
Maxim:
29-Apr-2009
I've suffered of trying to get rebol INTO companies and it never 
works.  there is too much ground work to do, it costs a lot of money.
Maxim:
29-Apr-2009
a few throw-away utilities isn't the same as building the company 
IT over rebol.  its an entirely different ball-game.
Maxim:
29-Apr-2009
Ever tried to use rebol in a company that has only .net, python, 
or java code?  good luck.  it takes weeks before you can use most 
of the DB stuff they have built up, because there are sooo many modules 
out there, and they have huge frameworks, which actually DO more 
stuff than rebol .  rebuilding those libs is not even always possible....
Maxim:
29-Apr-2009
the /skip in many functions are implied records... and the reason 
they are there... not getting the record as a return values... is 
an oxymoron IMHO
Henrik:
29-Apr-2009
The R2 method is much more flexible. The R3 method is identical to 
"first select/skip", and I doubt there would be that much gained 
by having a specific alternative function for the R3 method.
Maxim:
29-Apr-2009
its like sort/skip there is a simple consistency in the implied records 
which I always like... other languages will have a framework just 
for that...
Henrik:
29-Apr-2009
hey, here's a fun one:

a: [1 2 3 4 5 6 7 8]

select/skip a 5 -4

hangs.
Maxim:
29-Apr-2009
(in regards to /skip)  post order makes my last post a bit out of 
context
BrianH:
29-Apr-2009
Clearly we are going to need a /SKIP doc in R3/Language/Options.
BrianH:
29-Apr-2009
We don't have consistency, so I figured I'd start with a fuunction 
I understand.
BrianH:
29-Apr-2009
move: make function! [[
    "Move a value or span of values in a series."
    source [series!] "Source series"
    offset [integer!] "Offset to move by, or index to move to"
    /part "Move part of a series"
    length [integer!] "The length of the part to move"
    /skip "Treat the series as records of fixed size"
    size [integer!] "Size of each record"
    /to {Move to an index relative to the head of the series}
][
    unless length [length: 1]
    if skip [
        offset: offset * size: max 1 size
        length: length * size
    ]
    part: take/part source length
    insert either to [at head source offset] [
        system/words/skip source offset
    ] part
]]
Maxim:
29-Apr-2009
ok, like a change remove combo
Henrik:
29-Apr-2009
BrianH, do we want consistency across all /SKIP or not? That is a 
big issue. Personally I would like it.
BrianH:
29-Apr-2009
We want consistency. We don't have it yet. So this is a start.
Maxim:
29-Apr-2009
IMO a partial record is valid, until you try an option which would 
break the /skip alignment... so sort/skip with inclomplete records 
would always be invalid.
Maxim:
29-Apr-2009
I'd rather have an error, than a corrupted data set.
Maxim:
29-Apr-2009
in a sense, EXTRACT, being a column selection for a flat record system, 
would mislead the dataset analysis.

I'd really prefer having an error, cause I can't know if there really 
is a none there of if its missing.


these decisions are always tuff... integrity or productivity.  large 
apps require the former, throw away code ususally prefer the later.
Maxim:
29-Apr-2009
maybe, as a helper for explicit flat record handling we could add 
a really simple func which returns true/false for complete records. 
 its not that its hard to write, just that its cleaner if we all 
use the same func for it.  what do you think?
BrianH:
29-Apr-2009
Maxim, it was decided that for R3 the bounds of a series were more 
of an implementation detail, not an error. A none in the middle of 
a block is considered the same as a none off the end of a block. 
That is why the ordinals (first and such) act like PICK now.
Maxim:
29-Apr-2009
I  usally use none as a no-value/don't care/error especially since 
I use ANY/ALL a lot, but for records, none and missing data are completely 
different.
BrianH:
29-Apr-2009
It's a design choice we made for R3 a couple years ago. Still a good 
choice, IMO.
BrianH:
29-Apr-2009
This makes a clear distinction between none and unset:
- None is missing data where missing data is OK.
- Unset is missing data where missing data is probably an error.
Maxim:
29-Apr-2009
I didn't yet realize that this decision had been applied so thoroughly 
 :-)  <  that's me with a smile, cause I can use ANY/ALL even more 
 :-D
BrianH:
29-Apr-2009
We have been improving the consistency of REBOL a lot in R3. Alpha 
49 had a lot of consistency improvements, for instance.
Maxim:
29-Apr-2009
its like reading... there is nothing here and here too  hehehe  I 
see none like a portable hole (remember in bugs bunny ;-)
Maxim:
29-Apr-2009
the irony of the portable hole, is that you can actually Take the 
hole... a pretty nice oxymoron  ;-)
BrianH:
29-Apr-2009
Not the same thing. If you have skip > length of the series, it will 
only do one iteration and your access to the results off the end 
will usally be none, unless you constrain it yourself. The question 
is whether negative skip should be silently constrained or generate 
an error, as a general rule.
BrianH:
29-Apr-2009
By the way, when you have 1-based indexing, 0 is a negative index 
:)
Maxim:
29-Apr-2009
yep... not the best for the math in index calculations.... hehehe 
but much more human readable for code and human interaction, so I 
still prefer one indexing after 9 years... even if the techy in me 
sometimes lets out a little <sigh>  in trying to get to the proper 
start/end of complex series extractions  hehehe
Maxim:
29-Apr-2009
if we align to first item of the block, then what would be the third, 
will become something else, when you hit the head of the series.... 
this adds a lot of complexity to the loop for nothing I think.
Maxim:
29-Apr-2009
but functions like insert are a bit simpler to use with 0 based, 
since a length is used as the value past an item in a series not 
the last character in it.


they both have advantages.   but trying to explain to someone that 
an index of 0 moves backwards isn't very obvious to promote as a 
feature ;-)


I'd have trouble justifying this to my kid which is learning to do 
math  :-D
BrianH:
29-Apr-2009
/skip is a length, not a index or an offset. I'm not sure what effect 
/skip past start should have.
Maxim:
29-Apr-2009
gimme me a minute will try to build a little example.
Maxim:
29-Apr-2009
ex:

a: next "1234567890"

probe head move/skip a 4 2

== "1456789023"
BrianH:
29-Apr-2009
Give me a moment and I can answer your concerns.
BrianH:
29-Apr-2009
If I want to keep local versions to compare to I keep them in another 
directory, then compare to the changes made by others. I only need 
to do this when I am working on the same file that others are working 
on, usually a sign that there is too much in the file (it needs to 
be broken up), or that I need to do a better job of talking to the 
other person.
BrianH:
29-Apr-2009
OK, Maxim, the MOVE/skip example you specify is not an error in MOVE, 
it is an error in the code calling MOVE in that example. MOVE was 
specifically designed to do something useful in that case, rather 
than generate an error.


The whole reason that MOVE takes one position and one offset is because 
that limit gets rid of a host of potential aliasing errors. MOVE 
is designed to be the most efficient and safe solution to the problem 
of moving stuff, and it should *never fail* unless the series is 
protected from changes. MOVE is a DWIM function: Do What I Mean. 
This goes for treating negative /skip lengths as an error too - having 
it magically constrain the /skip length to 1 or greater was a deliberate 
design choice, the result of a lot of discussion.


So the question is whether the error of having /skip lengths being 
less than 1 is worth worrying about, worth the overhead of generating 
an error and checking for that error every time you use the function. 
Don't be fooled, that overhead is really significant.


We've already changed other functions so they don't generate errors 
anymore, and just DWIM, like FIRST not complaining about bounds and 
acting like PICK 1 now. These changes have made these functions faster, 
and better to use. Generating an error is considered something to 
do when it is really important, as it sometimes is. How important 
is the /skip < 1 error?
Maxim:
29-Apr-2009
and I understand that adding too much verification to series handling 
code really slows the whole a lot.
Gabriele:
2-May-2009
I hope you never put "built-in chat system" as a milestone on Slashdot...
Henrik:
2-May-2009
so which other language has a direct hotline to the main developer 
in the console?
Henrik:
2-May-2009
But... it doesn't matter. The Slashdot crowd will laugh at anything 
thrown at them. Then there will be a few comments from developers. 
Then there will be comments like "but it's just like LISP or Scheme". 
It will be ridiculed no matter how well we do.
Henrik:
2-May-2009
In general, it is a much better idea to do marketing on ReBrowse. 
People will understand what it is. The right people will want to 
learn how it's built.
BrianH:
2-May-2009
Don't put tasks on the list - they are due for a redesign. Otherwise, 
cool :)
Izkata:
2-May-2009
At least don't call it a "chat system" without the description "direct 
hotline to the main developer", as that line would stand out and 
make people think it's a joke
BrianH:
2-May-2009
So far, R3 tasks don't work properly and should be considered a placeholder. 
We can't do a proper task model until there are changes to the basic 
semantics of REBOL. Fortunately most of those changes were done in 
the last month.
BrianH:
5-May-2009
And yes, Carl marks the native changes as done in CureCode the moment 
he gets a working build. I mark mezzanine changes as pending as soon 
as they are submitted to DevBase, then as build when they are released.
Henrik:
5-May-2009
Perhaps vector is a requirement for rebin.
BrianH:
5-May-2009
Sorry, Carl marks them as "built", even before they are released. 
A release usally comes within a day of that.
BrianH:
5-May-2009
Ones that aren't as huge either, and that can be accessed through 
a C API.
Maxim:
5-May-2009
now if we can be the go-between things like these libs and opengl 
.....   :-D  can you see where I'm going ?  we already have a dataflow 
engine which could act as the kernel for managing when updates need 
to occur, and all rebol is doing is the whiping, while the grunt 
work is done by the various libs out there  ...
BrianH:
5-May-2009
Henrik, could you test ticket 744? I don't have a Mac.
PeterWood:
6-May-2009
Re: #744. They no longer crash but the "launched" script uses the 
same console session as the original script so keyboard input and 
screen output gets mixed up. This is different from the behaviour 
under Windows where R3 opens a new console session for the "launched" 
script.
PeterWood:
6-May-2009
The following session shows that launch does not effectively run 
a script as a separate process and return immediately.

>> ans: "yes"      

== "yes"

 >> do [ while [ans <> "no"] [ans: ask "(l)aunch, yes or no ?" if 
 ans = "l" [launch %launched.r]]]
(l)aunch, yes or no ?l
Checking for rebol.r file in /Users/peter/Desktop/Rebol3/
Checking for user.r file in /Users/peter/Desktop/Rebol3/


Evaluating: /Users/peter/Desktop/Rebol3/launched.r

launched script
Do you want to continue running the launched script?yes

yes

Do you want to continue running the launched script?yes
yes
Do you want to continue running the launched script?yes
yes
Do you want to continue running the launched script?no
no
(l)aunch, yes or no ?y
(l)aunch, yes or no ?y
(l)aunch, yes or no ?no
== none

The source of %launched.r is:

REBOL []

print "launched script"

ans: ""
while [ans <> "no"] [

   print ans: ask "Do you want to continue running the launched script?"
]
PeterWood:
6-May-2009
Would you like me to open a new ticket for the above?
Henrik:
6-May-2009
The mac version appears to be working. At least call "ls" gives me 
a directory listing.
Henrik:
6-May-2009
I can't paste here, as copy/paste is broken. Will be a couple of 
minutes...
Henrik:
6-May-2009
I look forward to a VMWare with working copy/paste :-/
Henrik:
6-May-2009
It launches a script alright, but am not sure what proper behavior 
would be for returning.
BrianH:
6-May-2009
Yeah. CALL doesn't return a value yet. I'm waiting for the host source 
before I make proposals.
BrianH:
6-May-2009
>> source launch
launch: make function! [[
    {Runs a script as a separate process; return immediately.}
    script [file! string! none!] "The name of the script"
    /args arg [string! block! none!] "Arguments to the script"
    /local exe
][
    if file? script [script: to-local-file clean-path script]
    exe: to-local-file system/options/boot
    args: to-string reduce [{"} exe {" "} script {" }]
    if arg [append args arg]
    call args
]]
BrianH:
6-May-2009
I see bugs already. LAUNCH could use a revamp like LOAD.
Graham:
6-May-2009
Does R3 have a way to launch a Rebol console?
Graham:
6-May-2009
sometimes you want to start a Rebol console from an encapped application.
BrianH:
6-May-2009
Encapping is going to be different in R3, as is the console. It is 
intended that a graphical console will be developed, and callable 
from any graphical host. Hosts will be the new encapped apps.
Graham:
6-May-2009
a graphical console will be good.
Henrik:
6-May-2009
I have some radical ideas for a console. Carl will hate them. :-)
BrianH:
6-May-2009
Bug #460 was a FORSKIP bug, not a MAXIMUM-OF bug. FORSKIP now works 
with vectors, so the bug is now fixed.
Henrik:
6-May-2009
We could use some practical vector! recipes in the cookbook list. 
This will give people a good idea for what they can do.
Steeve:
6-May-2009
But we could have some vector maths innside Rebol too
ie. V + 15, could add 15 to all the cells inside a vector.
Currently math operations are not allowed with vectors... why ?
Henrik:
6-May-2009
BrianH, I can't aim at all. I've never worked with vectors before, 
which is why I asked. If there was a small practical example, say 
for loading an AIFF file into a vector! array, Carl could mention 
it in his blog.
Steeve:
6-May-2009
i don't ask for matrix operations currently (like adding or multiplying 
2 vectors).

I just wonder why simple tricks like adding or multiplyings all the 
cells with a scalar is not allowed
BrianH:
6-May-2009
And asking for it here doesn't help. Put in a CureCode ticket with 
proposed semantics (equivalent REBOL code is fine).
Steeve:
6-May-2009
sometimes i use a second tuple using it as a mask:
1.2.3 * 5 * 1.0.1 = 5.0.15
Steeve:
6-May-2009
if vectors could work that way.
Less the limit of 0-255 range
Less the limit of no negative values in a tuple
Rebolek:
6-May-2009
Henrik in fact there are small practical examples, say for loading 
AIFF file into a vector! array, see files area in R3-alpha world.
46901 / 6460812345...468469[470] 471472...643644645646647