🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.modula2
Article #4695

Re: Is this a compiler bug?

#4695
From: R_Tim_Coslet
Date: Sat, 04 Mar 1989 23:19
34 lines
1673 bytes
In Article: <291@val.UUCP>
	aubrey@val.UUCP (Aubrey McIntosh) Writes:
>           recPtr( cardinalvariable ) ^ := expression                     
>I still don't know why I can't dereference a pointer function type, but it
>seems to be forbidden.                                                    

This is forbidden, because "pointers" and "cardinals" may not be the same
size and the "pointers" may not "have the same structure" as "cardinals" do.

For example many 8086 implementations of pointers use a 32 bit number:
the upper 16 bits contain the "segment" and the lower 16 bits contain the
"address" in that "segment". The 8086 uses this to generate a 20 bit address.

Pointer: ssssaaaa

	ssss0
	 aaaa
	-----
	xxxxx = Physical memory address

"casting" a cardinal to a pointer on this machine would produce garbage.


A better way to do it is to implement a "machine-specific" variant record
definition (with no tag variable). Then if you need to generate a "custom"
pointer you assign to the fields under one name and use them under the other...

	trick.addr := {machine specific value(s)...}
	trick.val^ := expression

                                        R. Tim Coslet

Usenet: R_Tim_Coslet@cup.portal.com
BIX:    r.tim_coslet 
Technical Details
Message-ID: <15394@cup.portal.com>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!leah!itsgw!steinmetz!uunet!portal!cup.portal.com!R_Tim_Coslet
References: <1712@psu-cs.UUCP> <291@val.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!leah!itsgw!steinmetz!uunet!portal!cup.portal.com!R_Tim_Coslet
From: R_Tim_Coslet@cup.portal.com
Newsgroups: comp.lang.modula2
Subject: Re: Is this a compiler bug?
Message-ID: <15394@cup.portal.com>
Date: 4 Mar 89 23:19:28 GMT
References: <1712@psu-cs.UUCP> <291@val.UUCP>
Organization: The Portal System (TM)
Lines: 34