• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

AltME groups: search

Help · search scripts · search articles · search mailing list

results summary

worldhits
r4wp93
r3wp371
total:464

results window for this page: [start: 1 end: 100]

world-name: r4wp

Group: #Red ... Red language group [web-public]
Pekr:
29-Feb-2012
I know. OK, maybe I need an advice. I was looking into some C code 
educatory example, which contained something like:

char multi[5][10];

decomposed to:

    multi[0] = {'0','1','2','3','4','5','6','7','8','9'}
    multi[1] = {'a','b','c','d','e','f','g','h','i','j'}
    multi[2] = {'A','B','C','D','E','F','G','H','I','J'}
    multi[3] = {'9','8','7','6','5','4','3','2','1','0'}
    multi[4] = {'J','I','H','G','F','E','D','C','B','A'}


which gets stored in a memory block of a "0123456789abcdefghijABCDEFGHIJ9876543210JIHGFEDCBA" 
value.


If I would be supposed (for any reason :-), to interface to such 
a construct, I would simply use a pointer in Red, and would be responsible 
to manually decompose/treat the value of arrays, not to break it 
for the C level code?
Andreas:
29-Feb-2012
And, as you know, an array type and a pointer type are (for most 
things) interchangeable, a `char[50]` is the same as a `char*`, therefore 
a `char[5][10]` is also the same as a `char*`.
Rebolek:
29-Jun-2012
another question :) how to get pointer to integer! ? as byte-ptr! 
converts the value and doesn't return address.
Rebolek:
10-Jul-2012
If I create struct! inside function and return pointer to that struct 
(as I cannot return struct), how can I get the struct from that pointer?
Kaj:
11-Jul-2012
Oh right, the pointer is returned from the function, not the value
Kaj:
11-Jul-2012
You should check the allocation for being a null pointer, though
DocKimbel:
13-Jul-2012
It looks like we haven't tested floats pointer arithmetic enough.
DocKimbel:
24-Jul-2012
I've pushed the enhanced get-word syntax support, so it's now possible 
to get a pointer on integer!, byte!, float! and float32! variables 
(without having to wrap them in a struct!). For example:

	s: declare int-ptr!
	a: 123
	s: :a
	print s/value		;-- will output 123


I will add the ARM backend support for that and update the documentation 
tonight.
Kaj:
25-Aug-2012
As c-string! and struct! are already implicit pointers, the only 
pointed datatypes allowed are integer! and byte! (logic! pointer 
is not needed).
Kaj:
25-Aug-2012
Pointer declaration is only required for local pointer variables 
in functions' specification block. In such case, the datatype declaration 
can be omitted and left to the inferencer to guess.
DocKimbel:
14-Sep-2012
The main drawback right now to support direct Red script execution 
is REBOL inability to execute native code from memory. The workaround 
would be to provide a DLL to pass the memory pointer and call the 
Red code, but as I aim at a single Red binary, this option wouldn't 
be very satisfying.
PeterWood:
15-Sep-2012
This is the merge that seems to have caused the problem:

Schulz:Red peter$ git checkout master
Switched to branch 'master'
Schulz:Red peter$ git merge upstream/master
Updating 525097b..ffb1f68
Fast-forward

 red-system/compiler.r                           |   77 ++++++++++++++---------
 red-system/linker.r                             |    2 +-

 red-system/loader.r                             |   67 +++++++++++++++-----

 red-system/targets/IA-32.r                      |   33 ++++++++--
 red-system/targets/target-class.r               |   13 ++--
 red-system/tests/source/compiler/pointer-test.r |    4 +-
 6 files changed, 136 insertions(+), 60 deletions(-)
Arnold:
10-Oct-2012
Well I changed some text in this file, I changed it online in a black 
background box where I could not see my cursor nor the arrow pointer, 
so it sucked :( 

I thought it would be possible to edit the file offline but that 
is something to find out how to do next time ;)

Now I added a comment and it says I want to commit 182 changes into 
the master branch, which is not what I want, but Github says I want 
that. Including my comments it could be I typed in total 182 characters 
including the ones I deleted (?) but the 182 are the commits from 
the 0.3.0 branche I think. 

Me and my friend Github >:|
DocKimbel:
14-Oct-2012
The compiler is using two ways to encode the fact that a function 
is used as a callback:

- through the CDECL attribute presence (destined to be called by 
external code)

- through the internal CALLBACK flag that is assigned to all functions 
that get their pointer passed as argument (get-word! syntax).
Kaj:
14-Oct-2012
Normally a function can't be used before it's defined. How could 
I pass a pointer to a function that's not defined yet?
DocKimbel:
16-Oct-2012
Fixed missing function! pointer dereferencing in ARM backend, all 
my Red tests are now running fine on Linux-ARM backend.
DanielN:
29-Oct-2012
Run-All    v0.8.2
Quick-Test v0.9.1
REBOL       2.7.8.4.2
Red/System Test Suite

ok - logic.............................81 / 81
ok - byte..............................40 / 40
ok - c-string..........................20 / 20
ok - struct...........................116 / 116
ok - pointer...........................69 / 69
ok - cast..............................88 / 88
ok - alias.............................23 / 23
ok - length............................11 / 11
ok - null..............................11 / 11
ok - enum..............................19 / 19
ok - float.............................60 / 60
ok - float32...........................55 / 55
ok - lib...............................13 / 13
ok - get-pointer........................5 / 5
ok - float-pointer.....................61 / 61
ok - namespace........................109 / 109
ok - not...............................44 / 44
ok - size..............................37 / 37
ok - function...........................6 / 6
ok - case..............................64 / 64
ok - switch............................85 / 85
ok - exit...............................9 / 9
ok - return............................25 / 25
ok - modulo............................29 / 29
ok - math-mixed.......................114 / 114
ok - infix..............................2 / 2
ok - conditional.......................13 / 13
ok - common............................16 / 16
ok - byte-auto.......................3636 / 3636
ok - integer-auto....................2778 / 2778
ok - maths-auto......................1661 / 1661
ok - float-auto......................1617 / 1617
ok - float32-auto....................1023 / 1023
ok - alias-compile......................3 / 3
ok - cast-compile......................16 / 16
ok - comp-err...........................2 / 2
ok - exit-err...........................3 / 3
ok - int-literals-err...................1 / 1
ok - output.............................3 / 3
ok - return-err.........................5 / 5
ok - conditions-required-err...........23 / 23
ok - inference-err......................1 / 1
ok - callback-err.......................2 / 2
ok - infix-compile......................3 / 3
ok - not-compile........................1 / 1
ok - print..............................3 / 3
ok - enumerations compile..............12 / 12
ok - pointer-compile....................2 / 2
ok - namespace compiler tests...........5 / 5

ok - Red/System Test Suite..........12031 / 12031
       in 0:00:42.94891
BrianH:
2-Nov-2012
In R3, a symbol is the internal unique string that a word refers 
to. A word is a pointer to a symbol and another to its binding. Same 
in Red?
BrianH:
7-Nov-2012
People overestimate what linking means. It really is as simple as 
a pointer, the same thing that it means in a linked list.
DocKimbel:
8-Nov-2012
Jerry: here is a quick overview:


Red values are stored contiguously in series slots (128-bit cells). 
Series buffers are allocated from large chunks of memory of type 
series-frame!. Series value in slots store just a head offset and 
a pointer to a node!. The node! is another pointer to the series 
buffer. So series buffer are indirectly accessed, allowing them to 
be moved in memory (for reallocating with bigger/smaller size or 
moved by GC).
DocKimbel:
8-Nov-2012
A series buffer has header, with OFFSET and TAIL pointers that define 
respectively the begin and end of series slots. The OFFSET pointer 
allow to reserve space at head of the series for optimizing insertions 
at head. Series slots size can be 1 (binary/UTF-8/Latin-1), 2 (UCS-2), 
4 (UCS-4) or 16 (value!) bytes wide.
Ladislav:
15-Nov-2012
Oldes: C does have pointer arithmetic, which is, in many ways, isomorphic 
to SKIP
BrianH:
20-Nov-2012
For handle!, what type are you using to be an opaque pointer-sized 
type that all pointer operations are prohibited on? Can such a thing 
be typedefed?
BrianH:
20-Nov-2012
If you had an ability to create an opaque value of any size that 
will fit in a value slot, or maybe just limited to pointer size, 
only accessible from Red/system code, that would be a good replacement 
for handle!.
BrianH:
3-Dec-2012
Adrian, tablets with styluses are rare now; the iPad led the way 
toward finger-only interfaces. It's been announced that the Surface 
Pro will have a stylus, but it's a passive one. The Android tablets 
with styluses are passive too, just using the stylus for a sharper 
pointer. An active stylus is an expensive peice of electronics, while 
a passive stylus is just plastic with maybe some metal or rubber 
on it, so you can see why they're preferring passive now. Hover is 
going away for a lot of platforms, or was never there for some of 
the new ones.
Jerry:
21-Dec-2012
Red/System Question: In Struct A, there is a menber which points 
to struct B. In Struct B, there is a member which is a function pointer, 
whose parameter is a pointer to Struct A. ... How can I do this in 
Red/System. This is not a fiction case. I am studying SQLite surce 
code, struct sqlite3_file and struct sqlite3_io_methods are exactly 
like this.
PeterWood:
22-Dec-2012
There are no arrays in this bootstrap version of Red/System. So you 
have to manage this with a pointer:

Red/System []

s: declare struct! [
  c  [byte!]
  i1 [integer!]
  i2 [integer!]
  i3 [integer!]
]

; intialise the structure
s/c: #"a"
s/i1: 1
s/i2: 2
s/i3: 3

;create a pointer and point it at the first integer
i: as integer! s

i: i + 4                          ;; set i to address of first integer
ip: as pointer! [integer!] i

;; add the integers
sum: 0
count: 3
until [
  sum: sum + ip/value
  ip: ip + 1
  count: count - 1
  count = 0
]

print ["The sum of the integers is " sum lf]
Jerry:
25-Dec-2012
Red/System Questions:


I am translating a piece of code from C to Red/System, I don't know 
how to translate the following C code:


success = OSAtomicCompareAndSwapPtrBarrier(NULL, newzone,  (void 
* volatile *)&_zone_); // C

my problems are: 

1. In Red/Sys, _sqliteZone_ is a struct! (which is a pointer in Red/Sys), 
so I cannot use :_zone_ to get it's address.
2. "(void * volatile *)" in C => "as byte-ptr!" in Red/Sys ??

Thanks!
Jerry:
25-Dec-2012
1. _zone_ is a struct pointer. I need to pass a pointer to a struct 
pointer as the 3rd parameter, that's why I try to use get-word here.
DocKimbel:
25-Dec-2012
For 1., you can achieve it this way:

    s: declare struct! [n [integer!]]
    p: declare int-ptr!
    p/value: as-integer s

then `p` becomes a pointer on `s`.


I might extend get-word syntax to struct! and pointer! too, someone 
just needs to add a ticket to Github to remind me of that.
Kaj:
25-Dec-2012
I usually solve such double references by wrapping the needed pointer 
in an extra struct. See the *-reference! types here:
DocKimbel:
29-Dec-2012
You should wait for me to add the marshalling and unmarshalling functions 
(that will be used everywhere Red needs to interface with non-Red 
code). In your code example, it should be: 1 + length? version (as 
it needs to account for terminal NUL character). Also, you need to 
get sure that the source c-string! buffer is always available or 
make a copy of it (a pointer to it is stored as a UTF-8 cache, unused 
yet, but intended for speeding up I/O, still experimental, not sure 
it will stay for v1.0).
Arnold:
14-Jan-2013
With the implementation of a random function on Red/System I have 
some questions:

#DEFINE seems to become obsolete towards version 2, no preprocessor 
anymore, so any progress on a decision? https://github.com/dockimbel/Red/wiki/Alternatives-to-Red-System-pre-processor-%23define


How are you supposed to implement an array, I can figure out some 
things about using a pointer, but I cannot believe it will work with 
the example value of 40000000h 

http://static.red-lang.org/red-system-specs.html#section-4.8(.3)

I do not have a clue if this is a realistic value as a memory-address, 
that is why a simple array could come in handy.


At this moment I will not worry about support of a L(ong) or 64 bit 
type, I'll work with 32 bits for now.
DocKimbel:
14-Jan-2013
How are you supposed to implement an array, I can figure out some 
things about using a pointer, but I cannot believe it will work with 
the example value of 40000000h

What are you missing from using pointers?


I do not have a clue if this is a realistic value as a memory-address, 
that is why a simple array could come in handy.


The example is just showing how to do a dereferencing. It will probably 
crash on most systems if you use it with that value (reading should 
be safe on Windows, but writing not, as it is the default read-only 
memory starting page for PE executables). If you have a better alternative 
example that can work for real on all OS, feel free to submit a pull 
request. For example, retrieving the pointer value from an OS or 
C lib call would maybe be better (but much longer). My intention 
in this example was just to show how to dereference a pointer, how 
the pointer is initialized is a lesser concern.
Rebolek:
31-Jan-2013
Can I pass function pointer as an argument to another function in 
Red/System?
Kaj:
31-Jan-2013
Also, in some places you have to cast the function pointer to an 
integer to pass it
Kaj:
31-Jan-2013
Since Red needed jump tables, you can also go the other way around, 
and cast an integer/pointer to a function, then call it
Bo:
8-Feb-2013
Thanks!  When I use load-image, it looks like it is returning a pointer. 
 Is that correct?
Bo:
8-Feb-2013
If 'load-image returns a pointer, how do I know when I have reached 
the end of the image?
Bo:
8-Feb-2013
Better yet, assuming 'load-image returns a pointer, how do I access 
the first memory location referenced by the pointer?
Kaj:
8-Feb-2013
See the function spec in GDK.reds. It returns a pointer to an image! 
struct, so if you want to access the image internally, you have to 
go by that struct definition
DocKimbel:
19-Mar-2013
I have fixed a pointer arithmetic bug on ARM backend. Now all Red 
tests, including interpreter's one are passing (same as for IA-32), 
console is working fully too. I have a few more tests to add before 
making the 0.3.2 release tomorrow (finally!).
DocKimbel:
22-Mar-2013
I plan to write an HOW-TO guide for that someday, but in the meantime 
and in a nutshell, this is what is required:

1) NAT_<name> enum entry in %macros.reds (order matters!)


2) pointer entry in REGISTER argument block (same order as in macros) 
in %natives.reds


3) an entry point implementation in %natives.reds (if the code is 
too big you can move it elsewhere as long as the entry point is in 
natives.
Oldes:
22-Mar-2013
What if I want native, which takes one integer! argument? stack/arguments 
seems to return pointer
DocKimbel:
22-Mar-2013
stack/arguments will return you a pointer on a series slot in stack. 
If you want to access it's data value, you need:

    int: as red-integer! stack/arguments
    print int/value

Modifying is straightforward:
    int/value: int/value + 1		;-- incrementing example.


Last return value should be at stack/arguments position, in this 
case, it is already.
DocKimbel:
17-Apr-2013
From a routine, if str is a red-string! pointer, this is the dispatch 
code you would need to use:

s: GET_BUFFER(str)
switch GET_UNIT(str) [
	Latin-1 [...conversion code...]
	UCS-2 [...conversion code...]
	UCS-4 [...conversion code...]
]
DocKimbel:
18-Apr-2013
Currently no, the freeing function requires a memory frame pointer 
in addition to the buffer pointer. It is meant for internal use only 
for now.
Oldes:
13-May-2013
So I must call some commands in the middle, instead of just data 
and setting pointer to it, right?
DocKimbel:
13-May-2013
Line 369: it's for getting the memory pointer for last section, but 
it seems it's lacking an offset for skipping that last section size.
Oldes:
13-May-2013
Ok, so the main problem will be, that oh/headers-size = 1024, but 
the pointer to code as a first section is 512. Now I must find why.
Kaj:
15-Jun-2013
The pointer initialisation earlier needs to be
Kaj:
15-Jun-2013
It should actually crash on what you have now, but if it doesn't, 
it pokes a value over an unitialised pointer, so any value in your 
program could be corrupted
DocKimbel:
16-Jun-2013
OTOH, you can always use pointer arithmetics to get a 0-base indexing 
model.
Arnold:
16-Jun-2013
About the pointer, I got the example of pointer/value: value somewhere, 
not saying from the fossil repository but might very well be so. 
The pointer: :value suggested confuses me. I tend to stick to what 
I had figured out. I prefer to avoid pointers almost always at all 
costs because of the trouble they can be. A good description is needed 
of how they are best used in  Red(/System).
Kaj:
17-Jun-2013
pointer/value: value
Kaj:
17-Jun-2013
pointer: :value
Kaj:
17-Jun-2013
initialises the pointer itself. It sets the address of where the 
array is in memory
Kaj:
17-Jun-2013
You have to initialise a pointer before you can use it
Kaj:
17-Jun-2013
Yes, but the C code is not dereferencing the pointer there; it's 
initialising the pointer
DocKimbel:
17-Jun-2013
You can always have an unsigned integer using a simple pointer.
Arnold:
20-Jun-2013
The deobfuscating Knuth's random program project is progressing into 
its final stage. It turned out that with getting the results of the 
program the same only the first part of the puzzle got solved. To 
use it in real programs you use the provided ran_arr_next function. 
This involved some pointer aritmetic that is not 100%  supported 
by Red/System. I finally got the function to produce the same results 
as the C version. The downside is it is now quite a mess with pointer 
indeces and other variables, so a lot of cleaning up to do and/or 
rework only using the index on the array approach.
DocKimbel:
20-Jun-2013
This involved some pointer aritmetic that is not 100%  supported 
by Red/System.
 What is it lacking precisely?
Arnold:
20-Jun-2013
It is just slightly different. The possibility to go back to the 
first element of the array or store that address. :(ran_arr_buf/1) 
would make it a lot easier. 

I already had a lot of help from Peter on this (thumbs up!) and I 
made good progress by now.

I get the pointer of the array and I can go up and down  using + 
and -, this works great, and the pointer is going along with it then 
and I suspect that if I do 
ptr: ran_arr_buf 
and I progress ran_arr_buf by 1 that I progress ptr too.

I now kinda solved it by using an additional variable. When I reach 
a 100, I subtract 100 from the array ran_array_buf to go back. 

Tonight and tomorrow I have some time to clean up my code and I can 
experiment some more. 

It is proven it can be done, but keeping the extra variable is surely 
slowing down compared to C's pure pointer solution.
Arnold:
20-Jun-2013
my trouble seems to arise from the different roles the array and 
the pointer play in the C code vs the Red/System code. In C the pointer 
is used as indicator for initialisation and signals when a kind of 
reshuffle is required and it points to the next generated value. 
In Red/System the array points to the current/next value and a pointer 
is not needed, and you can no longer use it as before to signal the 
status. This complicates things in this case.
Arnold:
20-Jun-2013
Oh nice effect. array1: 1 2 3 4 5 
m: 2
;;print array/m ;; 2
array1: array1 + 2
;;print array/m ;; 5

it is tricky to move the array pointer around, beware of the dog 
;)
DocKimbel:
20-Jun-2013
You seem quite confused about pointers in Red/System. 


1) There's no "array" as distinct entity in Red/System, but you have 
indexed access, so you can "simulate" arrays to some extent.


2) "In C the pointer is used as indicator for initialisation and 
signals when a kind of reshuffle is required and it points to the 
next generated value." I don't understand this sentence, you should 
stick to C terminology (terms like "signals", "reshuffle" and "generated 
value" are alien to me in a C language context).


3) "In Red/System the array points to the current/next value and 
a pointer is not needed, and you can no longer use it as before to 
signal the status." I don't understand this one either... There's 
no array, only pointers. "to signal the status" has no meaning to 
me...sorry.
DocKimbel:
24-Jun-2013
You should try passing the function! pointer as integer! then type-cast 
it inside the function. IIRC, function! cannot be  yet used in a 
Red/System func spec block.
Arnold:
26-Jun-2013
I ask this obviously because I want to replicate the REBOL behaviour 
of the random function that takes different arguments like random 
"abcdef" shuffeling the string; random 1.0 giving a random real between 
0 and 1; random 6 giving an integer from 1 up and to 6. 

So in a sense I need a return type that differs too. REBOL (R3) solves 
this as far as I understand it by returning the pointer to the value 
(and somehow the type of the variable).I ask this obviously because 
I want to replicate the REBOL behaviour of the random function that 
takes different arguments like random "abcdef" shuffeling the string; 
random 1.0 giving a random real between 0 and 1; random 6 giving 
an integer from 1 up and to 6. 

So in a sense I need a return type that differs too. REBOL (R3) solves 
this as far as I understand it by returning the pointer to the value 
(and somehow the type of the variable).
Bo:
27-Jun-2013
img1 is a pointer to an array of those bytes, I should have said.
Kaj:
27-Jun-2013
Further, the bumping of r, g and b each iteration is relatively much 
work, because you're also having to use them as indexes. It's more 
efficient to make a byte pointer for each and advance those
Kaj:
27-Jun-2013
But it's probably even faster to iterate through the image with one 
integer pointer, because the pixels happen to be four bytes, and 
then use indexes of 2, 3 and 4 for r, g and b
Bo:
27-Jun-2013
So are you saying that if 'img1 is a pointer, to do the following?

	img1r: img1 + 2
	img1g: img1 + 3
	img1b: img1 + 4

and then

	img1r: img1r + 4
	img1g: img1g + 4
	img1b: img1b + 4

would be faster than what I'm doing now?
Bo:
29-Jun-2013
Finished my first crack at recursion in Red/System.  Works great! 
 Uncovered a bug (not in recursion, but in pointer indexing), but 
found a way to work around it for now.
PeterWood:
29-Jun-2013
In Red/System:

p: declare int-ptr! 				;; pointer 

i: 1                                                             
             ;; integer

p: :i						;; set p to address of i
print as integer! p				;; prints the address of p

      ;; the cast (as integer!) is to allow print to treat the value as
						;; an intteger
print p/value					;;  prints the value of i
						;; no cast needed as i is already an integer!
print p/1					;; equivalent to print p/value

Hope this helps.
Kaj:
1-Jul-2013
gives you a pointer to memory address 64, which is invalid
Kaj:
3-Jul-2013
Remember that a c-string! is a pointer to a memory address. Much 
like a string! in REBOL is a reference to the storage of a series 
value that can be referenced by multiple string!s, each with their 
own index
Kaj:
3-Jul-2013
In the case of read-string you get a c-string!, so you can get the 
size with LENGTH?. For read-file-binary that's not possible, so you 
pass a pointer to an integer! to be informed about the read size
DocKimbel:
28-Jul-2013
If you want to print an integer in hex format in Red/System, you 
can also achieve it by a simple casting to a pointer type:

    print as byte-ptr! int
Arnold:
29-Jul-2013
Red/System: Could it be that if you 
#define MAX-SIZE 100
my-array: as int-ptr! allocate MAX-SIZE * size? integer!
then using  
my-array/MAX-SIZE 
gives a compilation error??
*** Compilation Error: undefined pointer index variable
Group: Announce ... Announcements only - use Ann-reply to chat [web-public]
Kaj:
10-Dec-2012
It was enabled by the function pointer casting in Red 0.3.0 and the 
new functionality of the preprocessor. It proves that such a low 
level and performance critical thing can be done with Red
Group: Rebol School ... REBOL School [web-public]
Endo:
20-Jun-2012
Guiseppe: "Could it be written as: ..."
TO ANY doesn't work.
but ANY [TO "..." BREAK | TO "..." BREAK] works.

just be careful using ANY and TO together, because they both don't 
advance the series pointer. So you can easily put the console in 
an infinit loop (escape key also doesn't work)
Marco:
16-Sep-2012
How can I convert an integer! that is a pointer to a C struct returned 
by a library function to a binary! ?
BrianH:
16-Sep-2012
With more C code that copies the binary to a REBOL-allocated buffer. 
You can't deallocate a pointer in REBOL.
Gregg:
16-Sep-2012
Will this work?

    LPINT-def: [value [integer!]] none
    LPINT: make struct! LPINT-def none

    make-LPINT: does [make struct! LPINT-def none]

    get-dereferenced-data: func [

        {Given a pointer to memory, copy the target data into a REBOL struct.}
        pointer [struct!]   "LPINT structure"

        struct-def [block!] "Contains a sub-struct that is the real struct 
        you want."
        /local struct data orig-pointer result
    ] [

        struct: make struct! compose/deep/only [ ; make wrapper struct
            sub [struct! (struct-def)]
        ] none

        orig-pointer: third struct              ; store original inner pointer

        change third struct third pointer       ; change inner pointer to 
        ref'd data

        data: copy third struct/sub             ; copy data from the inner 
        struct
        ;print mold data

        change third struct orig-pointer        ; restore inner pointer

        result: make struct! struct-def none    ; make result struct

        change third result data                ; change data in result struct
        ;probe result
        struct: data: orig-pointer: none
        ;recycle
        result
    ]

It's from some old code, so no guarantees.
Marco:
16-Sep-2012
ok it seems to work. it becomes:

 integer-address: get-address "hello" ; function courtesy of Anton 
 Rolls
	pointer: make-LPINT
	pointer/value: integer-address
	probe third get-dereferenced-data pointer [l1 [int] l2 [int]]
Ladislav:
16-Sep-2012
You can't deallocate a pointer in REBOL.

 - that is false, use the http://www.fm.tul.cz/~ladislav/rebol/library-utils.r
Sujoy:
7-Jun-2013
thanks graham. 
endo - looking at cURL...thanks for the pointer
Kees:
17-Jul-2013
Question about an example from the R3 docs:

str: "abcdef"
end: find str "d"
for s str end 1 [print s]
abcdef
bcdef
cdef
def


find finds the d at position 4, if I replace end with 4, I get the 
same result.
However: type? end says string! and no pointer

If I replace the text in str, end still equals to "def", so it does 
not point
at str any more.
Can someone explane this?
DideC:
17-Jul-2013
In Rebol, there is no "pointer" (C like).

string!, binary! are series. Series are groups of elements (character, 
octet) so a word! (like str or end) associated to a serie hold also 
a position on it.
Group: !REBOL3 ... General discussion about REBOL 3 [web-public]
Andreas:
25-Feb-2013
I discovered some interesting PARSE functionality, which I have not 
known about before. TO and THRU with integer arguments seem to do 
absolute positioning:

>> parse "abcd" ["abc" to 2 "bcd"]
== true


Anyone seen this before? I added a CC ticket as a reminder to document 
it (http://issue.cc/r3/1964) -- if anyone knows about a place where 
this is documented already, I'd be happy about a pointer.
Andreas:
13-Apr-2013
Ah, I see. A "gob value" is just a pointer to the real gob structure.
Ladislav:
13-Apr-2013
(when summing REBGOB and REBGBO while subtracting the pointer.
Geomol:
29-May-2013
Some exmplanation:


W->top_of_series is a stack holding the different types of series 
being entered in the lexer, defined as:

#define BLOCK_BEGIN_T		58
#define PAREN_BEGIN_T		59
#define LONG_STRING_BEGIN_T	60
#define PATH_BEGIN_T		61
#define GET_PATH_BEGIN_T	62
#define LIT_PATH_BEGIN_T	63
#define BINARY_BEGIN_T		64
#define SET_GET_PATH_T		65


The code about trace is just, if tracing is on or off in World. W->top_of_code 
is a pointer to where the code for the virtual machine in World is 
being created, and W->code is the bottom of that stack in instructions, 
W->top the top. do_string executes a string of World code.

world-name: r3wp

Group: Core ... Discuss core issues [web-public]
shadwolf:
14-Jan-2005
thank you ladislave for single int variable that's easy (like header) 
but for file content it's ver hard and harder I think to attribute 
to a REBOL struct based pointer the content of the file
shadwolf:
14-Jan-2005
that's not that way it has to be done sorry I made a mistake. It's 
only a: SMD2Header

but in this case you can't have a declaration like SMD2Header *myheader; 
that is the common way to do it in C SMD2Header struct will became 
a type in C, In rebol you only make a pointer to the struct so with 
vectorials struct based array mofifying one data will modify all 
data in the array
shadwolf:
14-Jan-2005
if you want to load 3 MD2 files you need only to make other main 
pointer to the information you retrieve from the file
Group: Script Library ... REBOL.org: Script library and Mailing list archive [web-public]
Jean-François:
1-May-2007
Gabriele, That is great !

I hadn't noticed the extra info poping up. Just that simple extra 
info is very helpful when inspecting/reading code (well for me anyway). 
Thank you.

The fact I hadn't noticed it might be a counter argument to Sunanda's 
fear of being annoyed by it. You really have to leave your pointer 
on it.


Any new language (natural or artificial) feels like "Scriptio continua" 
( http://en.wikipedia.org/wiki/Scriptio_continua) 

at first and all these visual cues are very helpfull in building 
the program's tree in your mind.


Imagine yourself a beginner at german reading a text that would have 
been colorized to accentuate its different elements. Hovering over 
a colored word would give you a translation or even maybe just a 
picture to prevent you from thinking in your first language.
Group: Rebol School ... Rebol School [web-public]
[unknown: 9]:
4-Apr-2006
I think of Rebol very differently than most people I assume, but 
I have created languages, so I look at them from the inside out.


To Rebol is a giant state-machine that operates on strings.  It is 
a statemachine because it "remembers" what you did to a string last.



Imagine if all you had was sets of strings: "abcdefghijklmnopqrstuvwxyz" 
"1234567890" "one two three four" "name: Bob phone: 123-4567 Age: 
46"


Rebol tracks these strings, and keeps some overhead information for 
them such as where the current pointer (cursor) is in them.  That 
is about it.

Now, lets create 400 variations of string commands.


We will want a way to pull just the age out of that last string. 
 We create a word called "Select"  you pass Select a word (a substring) 
such as "age", and it return the next separate substring, in this 
case "46"


So there really are not 400 commands, actually there are more like 
5, and all these other commands are variations.
JaimeVargas:
4-Apr-2006
So all no pointer math here.
denismx:
4-Apr-2006
No pointer math, like in Java. But maybe they are pointers anyway, 
of similar.
1 / 464[1] 2345