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

World: r3wp

[Core] Discuss core issues

eFishAnt
5-Feb-2009
[12297]
decompress wants a string, and binary is a string, so that's what 
made me think to do to-binary...
Dockimbel
5-Feb-2009
[12298]
The error code is probably the one returned by the underlying layer 
(assuming REBOL uses internally zlib) :

#define Z_ERRNO        (-1)
#define Z_STREAM_ERROR (-2)
#define Z_DATA_ERROR   (-3)
#define Z_MEM_ERROR    (-4)
#define Z_BUF_ERROR    (-5)
#define Z_VERSION_ERROR (-6)

(from http://www.zlib.net/manual.html#Constants)
Gabriele
6-Feb-2009
[12299x2]
If it's gzip data, you need to add REBOL's "footer" with the decompressed 
length for decompress to work.
(just 4 bytes at the end, i don't remember if it's little or big 
endian though, i'd guess it would be network endian for compatibility 
across all platforms)
Anton
6-Feb-2009
[12301]
Looks little endian.
>> compress "abc"
== #{789C4B4C4A0600024D012703000000}
eFishAnt
6-Feb-2009
[12302]
Thanks, some very insightful info there.  This is one of those times 
for me to build a little script before putting it into the huge one...;-)
Janko
8-Feb-2009
[12303x4]
Hi, I have 2 questions that I have been wondering for a while... 
if they would be true it would mean that rebol can *also* easily 
mimic the 2 models of  some specific languages that offer then ..
With all the retrospection going on, can I somehow get whole current 
namespace/memory image/state of rebol interpreter as a block and 
save it to a file for example?
ot at least all "user-namespace" , for example I define dew functions, 
and few variables, then I run app for a while, can I at some point 
get values of all my words ("variables" + functions) and "export" 
them
hm, I see there is system/words but I didn't manage to really see 
what's in because if I probe it it blocks my computer , too many 
words probably..
[unknown: 5]
8-Feb-2009
[12307]
;just use:

first system/words
Dockimbel
8-Feb-2009
[12308]
or >> help system/words
Janko
8-Feb-2009
[12309x3]
hi Paul ... yes, I just am hacking that :) this is how I got my defined 
words:  next find first system/words 'et .. well at least names of 
them
(and Doc)
hm.. now it doesn't work
[unknown: 5]
8-Feb-2009
[12312x2]
Janko, what a lot of us do when we build a script is create one large 
object and build our functions and values off of it.
Then instead of looking through first system/words you can simply 
do first whatever-your-object-name-is.
Will
8-Feb-2009
[12314]
word-block: func [/init /dif /list /show /local f t w][
	if init [
		init-words: query system/words
		query/clear system/words
	]
	if dif [intersect init-words query system/words]
	if list [query system/words]
]
Janko
8-Feb-2009
[12315]
aha, yes.. this is good option... but if it's possible without this 
it would be even better.. so you are not limited
Will
8-Feb-2009
[12316]
old stuff, not sure.. ;-)
Janko
8-Feb-2009
[12317x2]
(my answer  was to Paul)
Will: what does word-block do?
Will
8-Feb-2009
[12319]
launch rebol, then word-block/init, define some words, then word-block/dif 
should get you your defined word!
[unknown: 5]
8-Feb-2009
[12320]
Janko, that is up to each on how they desire to code.
Janko
8-Feb-2009
[12321x2]
ok, so I get list of words .. but can I export (write to file) sources/definitions 
of functions ?  >> source somefunc<< prints it but I would need to 
get a string
aha Will I will try
Will
8-Feb-2009
[12323]
sorry, word-block/list not /dif ..
Janko
8-Feb-2009
[12324x8]
yes, I agree... I am asking because if this could be done then you 
could use rebol in a same way as smalltalk and factor are which are 
"image based" languages ... this brings some interesting usages..
for example a server that can replicate itself... or save it's state 
and then run from exactly same state, or in games, editing them without 
restarting... editing "live image" which should be possible because 
you can redefine words in rebol, but then you need to save whole 
current state.
(that was the reason why I wanted to embed smalltalk into game engine, 
but I would much rather do this with rebol)
aha!!!
print join mold first :bbbb mold second :bbbb ; bbbb is some func
Will, your word works great :)
I will experiment a little with this when I find time, thanks all
hm.. what am I speaking crazy stuff, or where did you all go? :)
[unknown: 5]
8-Feb-2009
[12332]
Janko, I had left to shower and eat lunch.  Sorry, but you need to 
check the status on the left.  Often times we just disappear.  That 
is kinda what is nice about Altme in a sense is that you know when 
someone is available or here now by the status.
Janko
8-Feb-2009
[12333]
:) I was joking .. no problem at all
Gabriele
9-Feb-2009
[12334]
Janko, the short answer is that you can... except for bindings. (So, 
in general, no, you can't just save the current state of an app, 
unless the app is designed for that from the start.)
Janko
9-Feb-2009
[12335]
can I ask what does it mean "except for bindings" ? you mean like 
native code libs (bindings) .. or binding in rebol sense which I 
heard about, but don't fully understand what it means
Henrik
9-Feb-2009
[12336]
He means rebol bindings. This is a good read on bindings: http://www.fm.tul.cz/~ladislav/rebol/contexts.html
Will
9-Feb-2009
[12337]
where is Ladislav? buuuu 8(
Janko
9-Feb-2009
[12338]
Henrik, thanks I will read it
Henrik
10-Feb-2009
[12339]
Was CHMOD ever implemented for the FTP scheme in REBOL 2?
Anton
10-Feb-2009
[12340x2]
I don't think so, no.
That is, it was never built in. Somebody might've hacked it in for 
their particular situation.
Henrik
10-Feb-2009
[12342]
ok, thanks
Janko
12-Feb-2009
[12343x4]
This is continued from the talk we had with BrianH in the R3 group.. 
but it's R2 code so  (about do/next)
paralel doer:
para-do: func [ codes- /local codes cnt values code- value- all-done 
] [
  codes: copy codes-
	cnt: length? codes
  values: make block! cnt
	loop cnt [ append values none ]
	until [ 
		all-done: true
		repeat idx cnt [
			code: pick codes idx
			if not empty? code [
				set/any [ value- code- ] do/next code
				codes/:idx: code-
				values/:idx: value-
				all-done: false
				print mold value-
			]
		] all-done
	] 
	values
]
usage example: 

>> codes: [ [ a: 12 + 23 b: a + 100 c: b * a ] [ t: join "aaa" join 
"bbb" "ccc" find t "b"  ] ] 
>> para-do codes
35
aaabbbccc
135
bbbccc
4725
== [4725 "bbbccc"]
(it collects results of all blocks when done and returns them)