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

World: r3wp

[!REBOL3]

Graham
8-Feb-2010
[582]
Pekr, are you sure it's not just control chars printing to windows 
console causing beep?
Pekr
8-Feb-2010
[583x3]
could be a GC problem? Maybe above "beep" means there might be some 
memory leak?
maybe ... who knows ... should not beep ....
it surely is about control chars ...
Graham
8-Feb-2010
[586]
why should it not beep?
Gabriele
8-Feb-2010
[587]
Petr, most likely you get the beep when the string is printed to 
the windows console.
Pekr
8-Feb-2010
[588]
R2 does not beep (but it has its own console)
Gabriele
8-Feb-2010
[589x2]
that is, windows does respect the BEL character.
ie. try print "^(07)"
Pekr
8-Feb-2010
[591]
yes, but I am denerved by that beeping :-)
Graham
8-Feb-2010
[592]
and this is the windows console
Gabriele
8-Feb-2010
[593]
don't include that char in your tests then, or don't print it out 
;)
Pekr
8-Feb-2010
[594]
Yes, it does so ... I will suggest the ticket dismissal ...
Graham
8-Feb-2010
[595]
more unnerving is the non reproducible parse!
Pekr
8-Feb-2010
[596]
Graham - sqlab's code uses random sets, no? What is non reproducible 
exactly?
Graham
8-Feb-2010
[597]
parse dataset "^/" returns a different value
Pekr
8-Feb-2010
[598x2]
for each consetutive run on the same dataset?
consecutive
Graham
8-Feb-2010
[600x2]
length? parse data "^/"
do that a few times
Pekr
8-Feb-2010
[602x2]
>> parse "abc^/def^/ghi^/" "^/"
== ["abc" "def" "ghi"]
I get three value block for each run ...
Graham
8-Feb-2010
[604]
on the large set ... not small sets
Pekr
8-Feb-2010
[605]
OK, I will try ...
Graham
8-Feb-2010
[606]
he just generates a large set of random chars
Pekr
8-Feb-2010
[607x3]
strange ... I even tried to do those consecutive parse examples on 
the copy of data ... the result is still random ...
I thought that first parse might disrupt the input, which is used 
for the second parse too. But it does not work even for the copy 
of the data ...
Following code almost kills my DualCore notebook. View exe consumes 
almost 1GB of RAM :-)

c: ""
for i 0 255 1 [	append c to-char i ]
data: to-string array/initial 255 * 255 random c 
print length? data
m: parse copy data "^/"
print length? m

print length? data
i: parse copy data "^/"
print length? i
Steeve
8-Feb-2010
[610]
did you calculate how many strings you build ?
Sunanda
8-Feb-2010
[611x2]
I tried that code in R2 and R3.....R3 took about twice the memory.

UNICODE strings plus unoptimised data structures may account for 
the difference.
Worth noting too perhaps: after trying the test three times, unsetting 
'c and 'm and recycling .... R3 got stuck trying to get into 'chat 

Possibly some screwed up garbage collection when recycling large 
elements? The failure is repeatable.
Henrik
8-Feb-2010
[613]
http://www.rebol.net/r3blogs/0307.html

A bit of work to do for those interested.
Henrik
9-Feb-2010
[614]
I looked at Ratio's import-email function on the blog and was wondering 
if R3 is supposed to have an import-email function? He claim's R2's 
import-email function is buggy and there is really an unfixed report 
in RAMBO.
Oldes
9-Feb-2010
[615]
Is there any RFC related to the email string which is being parsed?
Henrik
9-Feb-2010
[616]
RFC 2822?
Graham
9-Feb-2010
[617x4]
I'm not aware of any bugs with import-email... but of course it does 
die if you get non compliant email
I used to run a routine to fix an email first before running import-email 
on it .....  ie. add missing fields etc
R3 chat seems to be so much slower these days ...
Is there something wrong with the server?
Maxim
9-Feb-2010
[621]
I think there is a blog entry about this...
Graham
9-Feb-2010
[622]
and a chat message .. tcp outages on rebo.net
james_nak
10-Feb-2010
[623]
Here's a newbie question:  In general, do scripts written for R2 
run under R3 as is or are there specific changes one must go through 
first.  I read that many of you are running older projects in R3 
and wondering how you are approaching the changes that might exist. 
Thanks.
Henrik
10-Feb-2010
[624]
there are many subtle changes, so I wouldn't expect too many scripts 
run out of the box. GUI scripts won't work at all.
james_nak
10-Feb-2010
[625]
OK, thanks Henrik. BTW, since your last info on the vid-kit. It's 
been working like magic, even the list-view!
Sunanda
10-Feb-2010
[626]
Ladislav and I have both written about our early experiences:
   http://www.rebol.org/art-display-index.r?a=R3

Note the use of the RCO object (REBOL Compatibility Object)  that 
attempts to make scripts R2 and R3 runnable.
james_nak
10-Feb-2010
[627]
Thanks Sunanda. I've been holding off R3 as it takes "my all" just 
to write stuff in R2 and generally they are tools that "have to work." 
I feel badly though because so many of you are putting so much effort 
into it. I could definitely give a non-guru perspective. Thanks for 
all you guys do.
Henrik
10-Feb-2010
[628]
james, cool :-) I hope to get back to work on it soon.
Claude
10-Feb-2010
[629x3]
hi, would like to know why have this error want i try to import a 
file in R3.
rebol[
	file: %carte-joueur.r
]

joueur: make object! [
	id: none
	nom: none
	prenom: none
	date-naissance: none
	adresse: none
	code-postal: none
	commune: none
	pays: none
]
rebol[
	file: %carte-db-joueur.r
]


db-joueur: make object! [
	table: 't_joueurs
	oo: make joueur []
	
	
	list: func[
		o[object!]
		/local
		fields-in-file
		where
		test-nom
		test-prenom
	][
		fields-in-file: select my-db/tables :table
		where: copy []

  if all[(not o/id = 0) (not none? o/id) (not empty? o/id)]  [append 
  where compose [id = (o/id)]]

  if all[(not none? o/nom) (not empty? o/nom)] [append where compose 
  [find nom (o/nom)]]

  if all[(not none? o/prenom) (not empty? o/prenom)] [append where 
  compose [find prenom (o/prenom)]]

   return self/find-where fields-in-file compose/deep [all [(where)]]
	]
	
	find-obj: func[
		o[object!]
		/local
		fields-in-file
		where
	][
		fields-in-file: select my-db/tables :table
		obj: none
		where: copy []
		
		foreach field fields-in-file [
			if not none? o/:field [
				append where compose/deep [(field) = (o/:field)]
			]
		]

  return self/find-where fields-in-file compose/deep [all [(where)]]
	]
	
	find-where: func [
		fields-in-file [block!]
		where[block!]
		/local
		return-list
		data
		obj
	][
		return-list: copy []
		data: copy []	
		obj: none
		either not empty? where [
			data: (db-select/where * :table :where)
		][
			data: (db-select * :table )
		]
		do compose/deep [
			foreach [(fields-in-file)]  [(data)] [
				obj: make oo []
				set obj reduce [(fields-in-file)]
				append return-list obj
			]
		]
		return return-list

	]
	
	insert: func[
		o[object!]
	][
		db-insert :table compose [next (skip get o 1)]
	]
	
	update: func[
		o[object!]
	][
		do compose/deep [db-update/where (table) 
			[(skip select my-db/tables :table 1)]
			[(skip get o 1)]
			compose[id = (o/id)]
		]
	]
	
	delete: func[
		o[object!]
	][
		db-delete/where :table compose[id = (o/id)]
	]

	commit: func[
	][
		db-commit :table
	]
]