[M3devel] TextLiteral.MaxBytes -- use LONGINT or Target.Int more?
Jay
jay.krell at cornell.edu
Wed Sep 4 03:48:02 CEST 2013
How about in unsafe code? Just untraced ref T?
TextLiteral: ok I guess not. Can always break them up and concat them...compiler could do that.
I'd like to have m3-sys/mklib just keep everything in memory. Less code & maybe faster.
Thanks,
- Jay
On Sep 3, 2013, at 1:12 PM, Tony Hosking <hosking at cs.purdue.edu> wrote:
> On Sep 3, 2013, at 1:50 PM, Jay K <jay.krell at cornell.edu> wrote:
>
>> I think it isn't just TextLiteral.MaxBytes.
>>
>>
>> How do I declare an unbouned-ly sized array?
>
> Can’t do in M3. It’s not type safe.
>
>> At the end of a record?
>> Doesn't matter?
>>
>>
>> For TextLiteral.MaxBytes, are you ok then with a 512MB limit, even for 64bit?
>
> Can you really imagine typing a literal that is 512MB in length?
>
>>
>>
>> - Jay
>>
>>
>> From: hosking at cs.purdue.edu
>> Date: Tue, 3 Sep 2013 13:00:08 -0400
>> To: jay.krell at cornell.edu
>> CC: m3devel at elegosoft.com
>> Subject: Re: [M3devel] TextLiteral.MaxBytes -- use LONGINT or Target.Int more?
>>
>> Yes, I want to avoid use of LONGINT in the compiler proper.
>> If you want to talk about target sized integer values in the front-end then yes, Target.Int is what you want, I suppose.
>> But I still don’t understand the precise use-case that you are proposing.
>> In the case of TextLiteral.MaxBytes why would 512 Mb ever be too small?
>> I cannot imaging a text literal that big, ever.
>>
>> On Sep 3, 2013, at 12:55 PM, Jay K <jay.krell at cornell.edu> wrote:
>>
>> How do you suggest 32bit code deal with file sizes? And record/array offsets/sizes for 64bit targets?
>> double? That offers I think 53 bits, which is pretty good, but pesky floating point..
>> A library without infix notation?
>> C and C++ have been using __int64 and long long for this for going on 20 years.
>> And C++ has infix notation for arbitrary types.
>>
>>
>> I guess I will plumb Target.Int through?
>> I've started this before but it got tedious.
>>
>>
>> - Jay
>>
>> CC: m3devel at elegosoft.com
>> From: antony.hosking at gmail.com
>> Subject: Re: [M3devel] TextLiteral.MaxBytes -- use LONGINT or Target.Int more?
>> Date: Tue, 3 Sep 2013 08:11:32 -0400
>> To: jay.krell at cornell.edu
>>
>> Don't plumb LONGINT throughout. I still consider it an abomination.
>>
>> Sent from my iPad
>>
>> On Sep 3, 2013, at 1:53 AM, Jay K <jay.krell at cornell.edu> wrote:
>>
>> I've complained about this before.
>>
>>
>> The frontend keeps track of things in bits in INTEGER.
>> Therefore TextLiteral.MaxBytes is around 512MB.
>>
>>
>> We could raise it for 64bit targets, but the 32bit cross compile to 64bits would fail.
>>
>>
>> Fixing this mostly but not entirely would be to plumb through LONGINT
>> "everywhere" instead of INTEGER.
>> We would still lose the sign bit and bits vs. bytes would lose us another 3 bits.
>> So we'd have a 60 bit limit instead of a 64bit limit.
>>
>>
>> Fixing it even more would require Target.Int.
>>
>>
>> Thoughts?
>>
>>
>> Is LONGINT safe to use now throughout cm3/m3front/m3middle/m3back?
>> Do we still require bootstrapping from LONGINT-less compilers?
>>
>>
>> Any lingering doubts as to its syntax and meaning?
>> I still think it should be named INT64.
>> Because in the future I want INT128 and I don't want LONGINT to grow in size.
>>
>>
>> Would it be considered adequate as a replacement for Target.Int?
>>
>>
>> If instead I plumb through Target.Int, any complaints?
>> Target.Int has the following advantages:
>> When we need INT128 in the future, it is a very very very simple and small change.
>> I already extended Target.Int from 64 bits to 72 bits.
>> It works with old frontends.
>>
>>
>> Target.Int has the following disadvantages:
>> no operator overloading so usage is cumbersome
>> slower
>> I still don't fully understand it, e.g. division
>>
>>
>>
>> - Jay
>>
>>
>>
>> Antony Hosking | Associate Professor | Computer Science | Purdue University
>> 305 N. University Street | West Lafayette | IN 47907 | USA
>> Mobile +1 765 427 5484
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20130903/61ba75de/attachment-0002.html>
More information about the M3devel
mailing list