<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>I did later notice size_t was there.<BR>
I think what I earlier noticed was ptrdiff_t nowhere.<BR>
 <BR>
> size_t = INTEGER.<BR><BR>
But unsigned presumably?<BR>
 <BR>
What I had was correct, right?<BR>
In C++ no header is needed for size_t, it is just so basic and widespread.<BR>
Not sure about ptrdiff_t.<BR>
 <BR>
Either way, they both do live in that middle ground between compiler and library -- a very low level --<BR>
as size_t is defined as the type of sizeof() expressions and ptrdiff_t is defined as the type you get when you subtract pointers. And you don't need nay header to use sizeof() or subtract pointers.<BR>
 <BR>
If it were really up to me, I'd have the Modula-3 language predefine all of int8, uint8, int16, uint16, int32, uint32, int64, uint64, size_t, ptrdiff_t, and maybe char and wchar_t and INTEGER.<BR>
There is a corralary dilemna here that I haven't figured out, and have seen code address that I haven't adjusted to yet. That is, the code uses uint32 "everywhere", instead of something "more abstract/vague". When it comes down to it, I suspect this is the right thing. The abstraction only seems to buy problems. UNLESS you have a processor with a larger natural integer that performs poorly on smaller integers, or a processor that perfs badly with 32 bit integers.<BR>
 <BR>
Perhaps Modula-3 has solved it ok, in that INTEGER == ptrdiff_t.<BR>
In many and growing systems, "int", besides its signedness, is too small for many occurences.<BR>
That is the problem I think in C. If Modula-3 has essentially defined INTEGER to be the size of a pointer, then ok.<BR>
 <BR>
 - Jay<BR><BR>

<HR id=stopSpelling>
<BR>
> CC: m3devel@elegosoft.com<BR>> From: hosking@cs.purdue.edu<BR>> Subject: Re: [M3devel] size_t?<BR>> Date: Mon, 11 Feb 2008 17:04:10 -0500<BR>> To: jayk123@hotmail.com<BR>> <BR>> Sorry.<BR>> <BR>> They belong in Cstddef.i3. size_t is already there. Let's try to <BR>> stick to the C ".h" structure.<BR>> <BR>> size_t = INTEGER.<BR>> <BR>> On Feb 11, 2008, at 4:51 PM, Jay wrote:<BR>> <BR>> > > These are OS-dependent! They should not be in BasicCtypes.<BR>> ><BR>> > 1) There is no Utypes on Windows.<BR>> > These are very basic types that belong at a very low level.<BR>> > In C++ for example, size_t is provided "automatically" by the <BR>> > compiler, no header is needed.<BR>> ><BR>> > 2) Are they really OS dependent? What OS makes my definitions wrong?<BR>> > On what 32 bit architecture is size_t not an unsigned 32 bit <BR>> > integer and ptrdiff_t not a signed 32 bit integer?<BR>> > Ditto for 64 bit.<BR>> > These should always be the same size as a pointer and with the <BR>> > proper signedness.<BR>> > Even if some of the *.i3 files make size_t = int, is that really <BR>> > correct?<BR>> > And, I assume int vs. long issue is not an issue here.<BR>> > Though they may be different types in C and C++, they need not be <BR>> > in Modula-3 (when they are the same size, of course)<BR>> ><BR>> > - Jay<BR>> ><BR>> ><BR>> ><BR>> > > CC: m3devel@elegosoft.com<BR>> > > From: hosking@cs.purdue.edu<BR>> > > Subject: Re: [M3devel] size_t?<BR>> > > Date: Mon, 11 Feb 2008 11:38:48 -0500<BR>> > > To: jayk123@hotmail.com<BR>> > ><BR>> > ><BR>> > > On Feb 11, 2008, at 6:23 AM, Jay wrote:<BR>> > ><BR>> > > > C:\dev2\cm3.2\m3-libs\m3core\src\C\Common\Cstddef.i3(12): size_t =<BR>> > > > INTEGER;<BR>> > > ><BR>> > > > really? it is signed?<BR>> > > > and we are sure this is going to be 64 bits on 64 bit targets?<BR>> > > ><BR>> > > > size_t and ptrdiff_t ought to be in BasicCtypes, right?<BR>> > > > That has a 32 bit and 64 bit version, at least.<BR>> > ><BR>> > > These are OS-dependent! They should not be in BasicCtypes.<BR>> > ><BR>> > > ><BR>> > > ><BR>> > > > Does INTEGER effectively equal int or ptrdiff_t?<BR>> > > ><BR>> > > > - Jay<BR>> ><BR>> > Need to know the score, the latest news, or you need your Hotmail®- <BR>> > get your "fix". Check it out.<BR>> <BR><BR><br /><hr />Climb to the top of the charts! Play the word scramble challenge with star power. <a href='http://club.live.com/star_shuffle.aspx?icid=starshuffle_wlmailtextlink_jan' target='_new'>Play now!</a></body>
</html>