<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 06 Dec 2012, at 22:45, Martin wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="font-family: monospace; ">I am currently fixing some of the PascalScript issues. When working with strings, it sometimes needs to inc/dec the refcount (or access the length)<br><br>Current code does calculate the position of that data as either 1 or 2 times sizeof(Pointer) in front of the actual data. (Not guaranteed for the future, but currently it is there)<br></span></span></blockquote><div><br></div><div>Not in svn trunk.</div><br><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Monaco; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; "><span class="Apple-style-span" style="font-family: monospace; ">Then it accesses the refcount/length using a 32bit type.<br>This raises 2 questions:<br>- 1 does on a 64bit target the length/ref count ever exceed the 32bit range?<br></span></span></blockquote><div><br></div><div>That depends on the program. The RTL definitely can deal with such situations.</div></div><div><br></div><div>I think a standard RTL unit to provide such functionality would be better than all this hacking. I'm not sure whether the best approach would be to reuse the include files from the system unit (so there is no duplicate maintenance), or to create a separate unit with a different interface so that the system unit/compiler interface can continue to evolve independently without breaking the external interface for programs using that unit (but that would require exhaustive tests for every single routine in that unit in order to prevent bit rot).</div><div><br></div><div><br></div><div>Jonas</div></body></html>