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

World: r3wp

[Core] Discuss core issues

Pekr
26-Jun-2007
[8364]
Brian - was there already any talk about rebcode on extended R3 testing 
team?
BrianH
29-Jun-2007
[8365]
Yeah. It's not there yet, but its primary implementation technique 
has been generalized for wider use. Several of the dialects that 
have been implemented so far operate in the same way that rebcode 
did, including DRAW.
TimW
30-Jun-2007
[8366x2]
How do you set or reset objects within other prototype objects. i.e.
prot: make object![
	num: none
	names: make object![
		a: copy "A"
		b: copy "B"
	]
]

x: make prot[
	foo: 56
	;how do I set a to be different
	;how do I add a 'c here to set
]
okay.  I got it working.
Anton
1-Jul-2007
[8368]
x: make prot [
	foo: 56
	names: make names [
		a: copy "Different"
		c: copy "Added"
	]
]
Henrik
2-Jul-2007
[8369]
Geomol, the book probably needs a good rewrite or rethinking. Only 
a few sections are still usable.
Sunanda
5-Jul-2007
[8370]
I'm trying to get a list of all the arguments to get-modes. But, 
right now, the online dictionary is broken for that function:
http://www.rebol.com/docs/words/wget-modes.html
Can anyone help?
(Meanwhile, I'll rambo the problem)
btiffin
5-Jul-2007
[8371]
Math question.  Aside from a routine! or Rebcode is there existing 
code to do 32bit by 32bit multiply in REBOL which evaluates to be 
equivalent to C code a * b;  with no overflow throw?
Ladislav
5-Jul-2007
[8372]
c-multiply: func [a [integer!] b [integer!]] [first (1x0 * a) * (1x0 
* b)]
Gregg
5-Jul-2007
[8373]
I thought I had a list somewhere, but can't find it. You probably 
already have all these.

files:
	file-modes
	copy-modes
net ports:
	network-modes
	interfaces
ports:
	port-modes
btiffin
5-Jul-2007
[8374]
Ladislav;  Thank you sir.
Sunanda
5-Jul-2007
[8375]
Thanks Gregg -- I was looking for the definite list of file modes: 
world-write etc.
A bit of extra Googling got me to here:
http://www.rebol.com/docs/core25.html#sect1.1.

It would have been easier with some SEO on the .com and .net sites.
Izkata
5-Jul-2007
[8376]
Like this?
>> print mold get-modes %Fonts.r 'file-modes

[status-change-date modification-date access-date owner-name group-name 
owner-id group-id owner-read owner-write owner-execute group-read 
group-write group-execute world-read world-write world-execute set-user-id 
set-group-id full-path]
>> print mold get-modes %Fonts.r 'world-write
false
Sunanda
6-Jul-2007
[8377]
Thanks Izkata.

The difficulty there is that it returns only the modes availlable 
on your platform.
I needed all the possible modes for cross-platform coding/
Pekr
7-Jul-2007
[8378]
guys, do you have recursive directory read function? Simply put - 
what I need for our kiosk is:

 - script running in the background, window-less
- script checks for new drive to appear periodically
- then it reads specific directory, e.g. %/e/kiosk-update

- then it reads files, and stores them to target dir, not carring 
about adding new dir/file, simply overwriting it

It is kind of one-sided sync :-)

I can't find anything usefull on rebol.org ....
Sunanda
7-Jul-2007
[8379]
Here's some code that traverses an entire dircetory tree:

http://www.rebol.org/cgi-bin/cgiwrap/rebol/ml-display-message.r?m=rmlTQBC
ICarii
7-Jul-2007
[8380x4]
what in the following code would cause cannot insert on port error?
updatedir: func [current-dir basedir /local contents base-contents 
item base-item item-info base-item-info][

 unless exists? current-dir [return] ;returns if source is not present 
 - eg someone removes a cd
	contents: read current-dir

 unless exists? basedir [make-dir basedir while [not exists? basedir][wait 
 0]]
	base-contents: read basedir
	foreach item contents [
		base-item: find base-contents item
		either dir? item [
			updatedir join current-dir item join basedir item
		][
			either none? base-item [

    write/binary join basedir item read/binary join current-dir item
			][
				item-info: info? join current-dir item
				base-item-info: info? join basedir base-item
				if item-info/date > base-item-info/date [

     write/binary join basedir item read/binary join current-dir item
				]
			]
		]
	]
]
updatedir %sourcedir/ %destdir/
when run repeatedly (if i trap the error) it completes successfully.. 
is there a 1 write at a time rule in rebol?
but apart from the error - is that the sort of thing you were looking 
for Petr?
Pekr
7-Jul-2007
[8384x3]
Icarii - yes, that might help ....
oh my, how usefull is read %/, if you can't use it further dynamically?

== [%c/ %d/ %e/ %g/]


it is missing one backslash. You simply can't  do thing like foreach 
drive drives [print exists? join drive "kiosk/"]
it has to be a bug, because it is not logical - it is a result of 
'read operation, yet if you query the result, e.g. exists? %c/ you 
get 'false result. That is not imo correct.
ICarii
7-Jul-2007
[8387]
that only probably happens under windows where the filesystem is 
so screwy
Pekr
7-Jul-2007
[8388]
:-)
Gabriele
7-Jul-2007
[8389x6]
petr, no, that is not a bug.
>> read %public/www.rebol.com/
== [%index.r %docs/ %bay.jpg %view/ %downloads/]
do you see %public/www.rebol.com/   in the block?
so what you do is, for any dir,
foreach file read dir [do-something-with dir/:file]
>> print-dir: func [dir] [foreach file read dir [print dir/:file]]
>> print-dir %public/www.rebol.com/
public/www.rebol.com/index.r
public/www.rebol.com/docs/
public/www.rebol.com/bay.jpg
public/www.rebol.com/view/
public/www.rebol.com/downloads/
>> print-dir %/
/c/
/d/
/e/
/f/
/g/
/h/
/z/
Gregg
7-Jul-2007
[8395]
Petr, my file-list stuff should be on REBOL.org.
Pekr
7-Jul-2007
[8396x3]
gabriele - how does it relate to my report?
I strictly refuse following result:

>> exists? %rebol.exe
== true
>> exists? %c/
== false
both queried items are result of regular 'read function call on filesystem 
...
Chris
7-Jul-2007
[8399]
>> change-dir %/
== %/
>> exists? %c/
== true
Pekr
7-Jul-2007
[8400x2]
still does not explain my results
what is first slash representing? It is a root-dir? Then it might 
make sense. Or is it just a syntax?
Chris
7-Jul-2007
[8402]
Yes, filesystem root.
Pekr
7-Jul-2007
[8403]
then your example stands for something like following?

>> exists? join %/ %c/
== true
Chris
7-Jul-2007
[8404]
Yep.
Pekr
7-Jul-2007
[8405x2]
so that %c/, even if being a drive assigned letter, is being treated 
as a directory here ....
hmm, ok, I will remember it, but it might confuse some ppl ....
Chris
7-Jul-2007
[8407]
Yes.  I think this is Rebol's way of handling Windows unique drive 
system.
Pekr
7-Jul-2007
[8408x3]
Sunanda - here is one fine doc about all possible modes - http://rebol.com/docs/changes.html#section-6.2
somehow can't set-modes for directory :-)
is there a bug or what? Can copy-modes be set for directory too?

>> modes: get-modes %sqlite/ get-modes %sqlite/ 'copy-modes

== [creation-date: 2-Jul-2007/10:20:05+2:00 access-date: 2-Jul-2007/10:20:07+2:00 
modification-date: 2-Jul-2007/
10:20:07+2:00 owner...

>> set-modes %sqlite/ modes
** Access Error: Cannot open /c/!rebol/view/sqlite/
** Near: set-modes %sqlite/ modes


I simply wanted also my copied directories, not only files, to carry 
on original attributes ....
Brock
7-Jul-2007
[8411x3]
Pekr, 
>>exists %/c/
= true
... even when not in the root directory.
>> exists? %/c/
== true
>> what-dir
== %/C/Program Files/rebol/view/
>>