World: r3wp
[Core] Discuss core issues
older newer | first last |
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) | |
older newer | first last |