Table of Contents
1. Programs
1.1. Anamonitor 3.0.0 (06/6/2005)
1.2. Anamonitor 2.0.0
1.3. ATCP Protocol 0.2.2 (01/10/2005)
1.4. AnaMezzanines 1.0.0 (01/10/2005)
1.5. Resize-vid
1.6. FTP Handler (0.1.57.2)
2. Patches
2.1. Edit-text 1.0.2 (05/12/03)
2.2. Win-offset? and Screen-offset? (28/09/03)
2.3. Modal system (wake-event.r 1.0.4) (28/09/03)
2.4. Inform
3. Debug Tools
3.1. Dump-Face (View) (04/10/03)
3.2. Dump-Style (View) (04/10/03)
4. Function Changes in Rebol View (31/10/03)
5. Function Changes in Rebol Core (27/11/03)
6. Examples, tips, hack
6.1. Use Dns async to connect to spam servers (04/10/03)
6.2. Port are object? (in port!) (04/10/03)
6.3. Again: port are object? (04/10/03)
6.4. Can I bind to a set-word? (04/10/03)
6.5. Double-key (how to merge three image with one magic pipeline)
6.6. Launch (from every script)
6.7. Boot time (what happens before Big-Bang?)
6.8. Words or not words? (how to break every limits)
6.9. Not only words in paths (the fool on the path)
6.10. Are you sure I am an object? (about fool object)
7. Info
7.1. Aknowledgements
A visual monitor for object/block/functions.Works only under View 1.3.1 or more (see Anamonitor 2.0.0 for previous versions).
Version 3.0.0 (shift click for download)
Read the (2.0.0) doc in text format
Read the GNU GPL License
A visual monitor for object/block/functions. If you find any bug send an email to me.Works with View 1.2.#
Version 2.0.0 (shift click for download)
Read the doc in text format
Read the GNU GPL License
Version 0.2.2 (Beta) Fixed the read tail bugAn handler to make async tcp connections with proxy support more easy. Released under the GNU GPL License.
(shift click for download)
Read the draft doc
Read the GNU GPL License
Alternative mezzanines.Version 1.0.0 (shift click for download)
Read the GNU GPL License
Resize-vid makes creating resizable windows a trivial job; with automatic resizing of the faces they contain (auto-resize).Read the doc
resize-vid.r 1.0.0 (shift click to download)
Zip file with code, examples, docs
(Now in Core and View 1.3.1.)The standard Rebol FTP handler has a lot of problems which make it unusable on many systems.
This started like a patch to the existing FTP Rebol handler and now is totally different, with a different internal logic about directories and cache handling.
Any bug report is welcome: FTP it is not a full standardized system, so it must be tested system by system.
The version 0.1.57.2 adds the NLIST command: see the start of source to understand when/how to use it.
Some of these patches are now part of View 1.3.1.
(Now in View 1.3.1 but without undo/redo)This patch corrects the cursor movements in area and field and add optional undo/redo and Esc key (the last only in field). The 1.0.1 version correct other bugs in RT code (first letter bug and delete bug). The 1.0.2 version correct another bug in RT code: unprintable key and hide field. (See the script header for more info) This patch without the undo support is now part of last Rebol betas (1.2.47).
(Now in View 1.3.1.)Standard Rebol code does not calculate the panel edges. This patch is now part of last Rebol betas (1.2.47).
(Obsolete)Standard Rebol modal system does not work in every situation. This is an experimental patch. If you find some situations in which this patch does not work, email me, the fine tuning of the modal system is hard to find because there are many combinations of events/configurations. This code is the evolution of an initial version which appeared on the mailing list. Include win-offset? and screen-offset? patch. At least other two versions appearead on the mailing list and in other sites. This is the last one.
(Now in View 1.3.1.)Standard Rebol code does not add the window-feel to the panel, so keys shortcuts are not detected. This patch fix it, adding keys to all the standard rebol functions which use inform (request, alert and so on)
Change the system dump-face to give a better view of nested faces and detect faces in more than one pane
Dump a style and clone it
Some Rebol functions can be moved from the global contexts to a local context, and some new functions can be embedded in a local context. This documents list only global functions added or removed.1.2.10.3.1 is a experimental version
1.2.8.3.1 is a beta version
1.2.1.3.1 is the last released version
Differences between 1.2.10.3.1 and 1.2.1.3.1
Differences between 1.2.10.3.1 and 1.2.8.3.1
Differences between 1.2.8.3.1 and 1.2.1.3.1
Some Rebol functions can be moved from the global contexts to a local context, and some new functions can be embedded in a local context. This documents list only global functions added or removed.
In this section you can find strange tricks, hacks, curiosity about Rebol language with links to the rebol mailing list (if any).
Example code to use dns:// in async mode with dns spam server
More yes than no. If you patch the 'in function, you can use a port (and its local context) like any other object.
Use this trick at your own risk.insert first find third :in block! port! port: make port! [scheme: 'tcp awake: func[port][]] type? get in port 'awake ;== function!
The tcp port! can be extended at construct time, like objects:
But other schemes have a different behaviour:p: make port! [scheme: 'tcp foo: 1] p/foo ; ==1
p: make port! [scheme: 'http foo: 1] p/foo ** Script Error: Invalid path value: foo ** Near: p/foo
No. But with this trick, you can bind also to set-word! and get-word!
The same can be done for the 'in function. Use this trick at your own risk.insert first find next find third :bind block! block! reduce [get-word! set-word!] bind [a] first [:a] bind [a] first [a:]
This code demonstrates how to merge three images with 2 key colors
To use Launch in every Rebol script, put this line in your user.r
Now you can access Launch using true-launch in every script. Pay attention: this can break your Rebol security.true-launch: :launch
To see what happens before a Rebol script is started, you can put in your user.r
or start Rebol with the -t or --trace command line option:trace on
Read the mailing list;under Window rebol -t script-name rebol -t --do ""
To not waste the global words space (4000 words - 8000 in last beta version) , instead of
you can do:data1: load %data.r data2: load "foo bar"
this only works if the strings contain only true data and not Rebol code to execute (because there is a bug in Rebol which prevents to use this kind of words in some situations).data1: to block! read %data.r data2: to block! "foo bar"
Almost every Rebol value can be in a path (not only words or get-words):
you can mix direct and indirect values:x: [<33> [#op [hey [10:0 [3.3.3 [at@rebol [$2 [%" a" found] ]]]]]]] x/<33>/#op/hey/10:0/3.3.3/at@rebol/$2/%" a" ; == found
I find very useful to use tag! in path:x: [<33> [#op [hey [10:0 [3.3.3 [at@rebol [$2 [%" a" found] ]]]]]]] v1: <33> v2: 10:0 x/:v1/#op/hey/:v2/3.3.3/at@rebol/$2/%" a" ; == found
Note that strings cannot be used in the same mode:x: [<TITLE> "Rebol"] x/<TITLE> ;== "Rebol" v: <TITLE> ; indirect x/:v ;== "Rebol"
with strings you must always use the indirect version:x: ["TITLE" "Rebol"] x/"TITLE" ** Syntax Error: Invalid path -- x/ ** Near: (line 1) x/"TITLE"
Read the mailing listv: "TITLE" x/:v ;== "Rebol"
The value returned by
is the value of the local word 'self at the end of the block execution:make object! block
Use it at your own risk: this surely generates very unreadeable code.type? make object! []; == object! type? make object! [self: 3]; == integer! type? make object! [self: "i'm a string!"]; == string! type? make object! [self: func[]["i'm a function!"]]; == function!
Contact me for bugs and requests.
Thanks to Gabriele Santilli for hosting this site.