Le 24/08/2012 11:46, Jeff Squyres a écrit : > On Aug 24, 2012, at 4:26 AM, Brice Goglin wrote: > >> The question that remains is about the naming. Right now, it's >> "valarray" but it don't like it. What it really means is "custom array >> of float values". Maybe just "values", or "floats", or "custom floats", >> or ... ? > > Random question: why floats and not doubles?
Likely because we have floats in the distance matrices but it didn't matter for this use. > Another name suggestion: cached_floats (cached_doubles) It's not really about caching, it's more about annotating the topology by merging multiple inputs together (XML topology + benchmark outputs + application info) inside the same XML file. > If the goal is to be able to store some data that will also show up in the > XML (and text/gui output?) I don't plan to display any of this to lstopo. > , why not make the mechanism more general? E.g., the values array should be > a union, with an enum indicating its type, and support a small number of > intrinsic types: float (or double), string, int (and/or long?). > I thought about that but I wasn't sure it was worth doing it. When you say type, are you talking about the type that appears in the array of values, or about the global annotation type? I though about doing this struct values { char *name; type /* FLOATS or something else in the future */ union { floats { unsigned nr; unsigned *indexes; floats *values; }; }; }; This is vague enough to support other kinds of annotations (even if I don't expect many additions). Ideally, we would merge the "info" attribute into this, but it would break the ABI (because of the get_info_by_name() inline function). You're talking about this instead? struct values { char *name; type /* DOUBLE or ULLONG */ unsigned nr; unsigned * indexes; void * values; /* sizeof(type) * nr */ }; This one is easy to implement. Not sure if we would want float/double/int/long/ulong/llong/... or only double/ullong. I just need something clear enough for importing/exporting as string in the XML output. String is really needed since we have info attributes. It's not an array, but I don't think it matters much. Brice