Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #7164

Re: enhance an array's static type by a lower length-bound.

Path csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!weretis.net!feeder4.news.weretis.net!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail
From Joshua Cranmer <Pidgeot18@verizon.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: enhance an array's static type by a lower length-bound.
Date Wed, 17 Aug 2011 12:34:05 -0500
Organization A noiseless patient Spider
Lines 26
Message-ID <j2gu2q$2tm$1@dont-email.me> (permalink)
References <slrnj4nm33.6gl.avl@gamma.logic.tuwien.ac.at>
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 7bit
Injection-Date Wed, 17 Aug 2011 17:34:18 +0000 (UTC)
Injection-Info mx04.eternal-september.org; posting-host="WpcHJSul77m+zlbR9GVqkA"; logging-data="2998"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+O/4liRij67X9LAH1hHlLBF8drNgSKiZU="
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0
In-Reply-To <slrnj4nm33.6gl.avl@gamma.logic.tuwien.ac.at>
Cancel-Lock sha1:WRlglCcq272lryWYphbFMUc1F5A=
Xref x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:7164

Show key headers only | View raw


On 8/17/2011 10:04 AM, Andreas Leitgeb wrote:
> I believe such a change would be source-compatible, but might require
> some severe changes at the bytecode/class-file-format level, to allow
> to specify such a lower bound in a type signature. Such a change should
> be possible in a way, that old class-files can still be used. e.g.:
>   get9th:(]10I)I    (currently without bounds:  get9th:([I)I )

You could do it by adding a few new annotations, one to annotate 
min-length values for method parameters/return value and one for the 
fields. Note that this means that the type information is lost at 
runtime, so an int[123] is sugared at runtime as int[] and could not be 
exposed as int[123] (you would also have to add more information into 
the LocalVariableTable).

The issue you get here is that often times the size of the array bound 
isn't useful in terms of a static number constant, but rather in terms 
of previous constants, e.g. if you want to get the i'th pixel of an rgb 
pixel byte array, you need to guarantee that the length is at least 3 * i.

On the other hand, I'm not sure the utility of this is particularly 
great. You wouldn't be able to avoid any more runtime checks beyond what 
the JIT could most likely already optimize out.

-- 
Beware of bugs in the above code; I have only proved it correct, not 
tried it. -- Donald E. Knuth

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

enhance an array's static type by a lower length-bound. Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-17 15:04 +0000
  Re: enhance an array's static type by a lower length-bound. Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-08-17 12:34 -0500
    Re: enhance an array's static type by a lower length-bound. Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-18 13:14 +0000
      Re: enhance an array's static type by a lower length-bound. Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-08-18 10:30 -0500
        Re: enhance an array's static type by a lower length-bound. Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-18 18:12 +0000
          Re: enhance an array's static type by a lower length-bound. Joshua Cranmer <Pidgeot18@verizon.invalid> - 2011-08-18 20:59 -0500
  Re: enhance an array's static type by a lower length-bound. Robert Klemme <shortcutter@googlemail.com> - 2011-08-17 20:42 +0200
    Re: enhance an array's static type by a lower length-bound. Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-18 21:44 +0000
      Re: enhance an array's static type by a lower length-bound. Robert Klemme <shortcutter@googlemail.com> - 2011-08-19 13:24 +0200
        Re: enhance an array's static type by a lower length-bound. Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-20 17:20 +0000
  Re: enhance an array's static type by a lower length-bound. Roedy Green <see_website@mindprod.com.invalid> - 2011-08-17 22:11 -0700
    Re: enhance an array's static type by a lower length-bound. Lew <lewbloch@gmail.com> - 2011-08-17 23:17 -0700
      Re: enhance an array's static type by a lower length-bound. Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-18 10:41 +0000
        Re: enhance an array's static type by a lower length-bound. Patricia Shanahan <pats@acm.org> - 2011-08-18 06:34 -0700
          Re: enhance an array's static type by a lower length-bound. Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-18 18:08 +0000
            Re: enhance an array's static type by a lower length-bound. Roedy Green <see_website@mindprod.com.invalid> - 2011-08-18 17:53 -0700
              Re: enhance an array's static type by a lower length-bound. Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2011-08-20 17:31 +0000
                Re: enhance an array's static type by a lower length-bound. Lew <lewbloch@gmail.com> - 2011-08-20 10:50 -0700
                Re: enhance an array's static type by a lower length-bound. Robert Klemme <shortcutter@googlemail.com> - 2011-08-21 10:47 +0200
          Re: enhance an array's static type by a lower length-bound. Michal Kleczek <kleku@poczta.onet.pl> - 2011-08-21 20:27 +0200

csiph-web