How many years ago was this done?  Hasn't the hardware reality changed since 
then?  What might have been a justifiable crime then may just be a crime now.  

On Apr 26, 2013, at 10:12 AM, Paul Sandoz wrote:

> 
> On Apr 26, 2013, at 3:25 PM, Remi Forax <[email protected]> wrote:
> 
>> On 04/26/2013 01:43 PM, Paul Sandoz wrote:
>>> On Apr 26, 2013, at 1:26 AM, Kumar Srinivasan 
>>> <[email protected]> wrote:
>>>> On 4/25/2013 3:53 PM, Mike Duigou wrote:
>>>>> The restyling changes obfustucated things a bit but I didn't see anything 
>>>>> of concern in casual review.
>>>>> 
>>>>> I had hoped to see the updated SmallSet that didn't try to implement 
>>>>> Iterator directly.
>>>> Remi, Paul and Brian discussed that and struck a deal, maybe Paul/Brain
>>>> can shed some light on that.
>>>> 
>>> If we had stayed with the method names Iterator.forEach and 
>>> Iterable.forEach (the former was renamed to Iterator.forEachRemaining) then 
>>> that would have forced a change to SmallSet to fix its rampant layering 
>>> violation. I don't recall we struck a deal to fix it, but it would be nice 
>>> if we could do so.
>> 
>> The"rampant layering violation" was introduced consciously.
>> ASM is still used on small devices to re-transform bytecodes at runtime (ASM 
>> was originally created for that)
>> so the core of ASM tries to minimize its memory impact, hence use tricks to 
>> avoid to create more classes than it should.
>> 
> 
> Is it really so terribly constrained that there is no room for another class?
> 
> Out of curiosity how much does the static memory footprint increase by if you 
> add an additional class implementing an Iterator over 0, 1, or 2 elements?
> 
> Paul.

Reply via email to