On Fri, Jan 22, 2016 at 2:41 PM, ron minnich <[email protected]> wrote:

> My one suggestion would be that you use the name capacity instead of size.
> These things always confuse me because I can never remember if the size is
> size or len ... I'd spell the full name out (not cap) just to make sure
> people really mean it when they type it -- my fingers tend to type size
> automagically and it's caused me grief.
>

Done. Though technically no one should ever touch 'capacity'; it should be
more or less opaque.

Don't we want to throw an error or panic or return an error if a slice_put
> fails? How serious is that?
>

I made it return 0 if given an out of bounds index. Similarly with
slice_del. I'm not sure if it's serious or not...it's going to depend on
context.

realloc: nemo did a study (I can get the paper) on whether it's best to
> call realloc with exact sizes or the size*2 type style. Most allocators pad
> underneath, as they have their own rules of thumb, and he concluded based
> on measurement that it's best to call with exact numbers for that reason.
> Things performed better when code did not try to outthink the allocator.
> Note that that rule has failed for me, badly, on Go, but it seems to work
> for most C usages.
>

If we were going to do that, we could get rid of 'capacity' entirely, but
I'm tempted to let this stand unless it starts to be a problem.

But, further, most allocators will let you know how much space they
> pre-allocated for your request. So, in Plan 9, people would do stuff like
> this:
> x->ptr = alloc(whatever);
> x->len = whatever;
> x->cap = alloc_cap(x);
>
> where alloc_cap is the way for the allocator to tell you the cap instead
> of you trying to tell it the cap via the size*2 rubric.
>

The nice thing here is that all of this is hidden behind an interface, so
it's easy to change if need-be.

size*2 is dicey anyway if things get big, as people find when their arrays
> get to 4k.
>

If we're getting beyond 4ish k, this is probably the wrong interface... But
let's see when/if we get a second user.

That said, I think this is basically find as is. Just a few thoughts. I am
> a bit worried about the silent errors.
>

PTAL. Silent errors are no longer silent.

        - Dan C.


On Fri, Jan 22, 2016 at 11:30 AM Dan Cross <[email protected]> wrote:
>
>> The following changes since commit
>> 6ae8195b99f28d2f2735dcde2a723a4bde3142ef:
>>
>>   Add taps for pipes. (2016-01-14 16:04:46 -0500)
>>
>> are available in the git repository at:
>>
>>   [email protected]:dancrossnyc/akaros.git slice
>>
>> for you to fetch changes up to 85de5d2b5f19f17a615eef83d61905b9d5a4878b:
>>
>>   Slices: A growable list of pointers. (2016-01-22 14:29:47 -0500)
>>
>> ----------------------------------------------------------------
>> Dan Cross (1):
>>       Slices: A growable list of pointers.
>>
>>  kern/include/slice.h | 24 ++++++++++++++++++++++++
>>  kern/lib/Kbuild      |  3 ++-
>>  kern/lib/slice.c     | 87
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  3 files changed, 113 insertions(+), 1 deletion(-)
>>  create mode 100644 kern/include/slice.h
>>  create mode 100644 kern/lib/slice.c
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Akaros" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Akaros" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to