9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] structure allocation.
@ 2006-03-07  2:30 erik quanstrom
  2006-03-07  2:37 ` geoff
  0 siblings, 1 reply; 27+ messages in thread
From: erik quanstrom @ 2006-03-07  2:30 UTC (permalink / raw)
  To: 9fans

the open-source drivers for the DAC960 have a number
of structures declared like

typedef struct {
	char f;
	ulong l;
	char g;
	ulong m;
} __attribute__((packed)) Dac960fu;

with comments such as:

/*
 * Command result buffers, as placed in system memory by the controller.
 */

how is this handled in plan 9?

- erik


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07  2:30 [9fans] structure allocation erik quanstrom
@ 2006-03-07  2:37 ` geoff
  2006-03-07  3:00   ` erik quanstrom
  0 siblings, 1 reply; 27+ messages in thread
From: geoff @ 2006-03-07  2:37 UTC (permalink / raw)
  To: 9fans

You declare it like this:

typedef struct {
	char	f;
	uchar	l[4];
	char	g;
	uchar	m[4];
} Dac960fu;

and convert l and m using the usual integer-to-bytes and
bytes-to-integers macros or functions, presumably the little-endian
versions.  Mylex were crazy to lay the data out this way.



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07  2:37 ` geoff
@ 2006-03-07  3:00   ` erik quanstrom
  2006-03-07  3:11     ` Russ Cox
                       ` (2 more replies)
  0 siblings, 3 replies; 27+ messages in thread
From: erik quanstrom @ 2006-03-07  3:00 UTC (permalink / raw)
  To: 9fans, geoff

okay.

many things about this interface don't make sense to me.
but it's hard at this point to tell if driver is obfuscated or what.

the space/time tradeoff here seems interesting. is pushing 3 more bytes
over a pci bus really slower than doing the alignment on an ad-hoc basis?

the trouble is these structures go on forever and have many
bitfields. (in one i count 46 fields, all integers of random width,
randomly intermixed.)

- erik

geoff@collyer.net writes

|
| You declare it like this:
|
| typedef struct {
| 	char	f;
| 	uchar	l[4];
| 	char	g;
| 	uchar	m[4];
| } Dac960fu;
|
| and convert l and m using the usual integer-to-bytes and
| bytes-to-integers macros or functions, presumably the little-endian
| versions.  Mylex were crazy to lay the data out this way.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07  3:00   ` erik quanstrom
@ 2006-03-07  3:11     ` Russ Cox
  2006-03-07  4:13     ` geoff
  2006-03-07  9:23     ` Charles Forsyth
  2 siblings, 0 replies; 27+ messages in thread
From: Russ Cox @ 2006-03-07  3:11 UTC (permalink / raw)
  To: 9fans

you can put #pragma pack on / #pragma pack off
around the offending structures too, but we won't
put code using that into the distribution.

russ



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07  3:00   ` erik quanstrom
  2006-03-07  3:11     ` Russ Cox
@ 2006-03-07  4:13     ` geoff
  2006-03-07 15:41       ` Ronald G Minnich
  2006-03-07 17:47       ` Bakul Shah
  2006-03-07  9:23     ` Charles Forsyth
  2 siblings, 2 replies; 27+ messages in thread
From: geoff @ 2006-03-07  4:13 UTC (permalink / raw)
  To: 9fans

I suspect that the difference in time to access unaligned packed data
vs. aligned data is irrelevant when compared with the general
complexity of running a modern host adaptor.

A more rational layout would be

typedef struct {
	uchar	l[4];
	uchar	m[4];
	char	f;
	char	g;
} Dac960fu;

which takes 12 bytes (including padding at the end) vs. 10 for the
unaligned packed version.  Since PCI buses transfer whole longs, it
would take 3 transfers in either case.  If you've got 46 integers of
variable size, it makes sense to sort them by size, at least as a
first cut, to minimise space wasted by padding.  You can also
sometimes pack more tightly than a simple sort would suggest (e.g., if
you have shorts and chars).

It sounds like the folks who designed the dac960 either didn't think
much about how drivers would access it, or they were hog wild over
gcc's packed data attribute (does microsoft's compiler have something
similar?).



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07  3:00   ` erik quanstrom
  2006-03-07  3:11     ` Russ Cox
  2006-03-07  4:13     ` geoff
@ 2006-03-07  9:23     ` Charles Forsyth
  2006-03-07 11:54       ` erik quanstrom
       [not found]       ` <000501c641de$afc905d0$14aaa8c0@utelsystems.local>
  2 siblings, 2 replies; 27+ messages in thread
From: Charles Forsyth @ 2006-03-07  9:23 UTC (permalink / raw)
  To: 9fans

> the trouble is these structures go on forever and have many
> bitfields. (in one i count 46 fields, all integers of random width,
> randomly intermixed.)

they shouldn't rely on bitfields.  in particular, the language does
not guarantee which order they are assigned to bits in a larger
unit (ie, left to right or right to left).

the nice thing is that in the plan 9 environment, you get to
fix such mistakes and do much better (although it's always
tedious to discover that late in the day)



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07  9:23     ` Charles Forsyth
@ 2006-03-07 11:54       ` erik quanstrom
  2006-03-07 13:55         ` jmk
       [not found]       ` <000501c641de$afc905d0$14aaa8c0@utelsystems.local>
  1 sibling, 1 reply; 27+ messages in thread
From: erik quanstrom @ 2006-03-07 11:54 UTC (permalink / raw)
  To: 9fans, Charles Forsyth

thanks to all for the information.

i was suprised that the plan9 c compiler supports bit fields.

- erik

Charles Forsyth <forsyth@terzarima.net> writes

|
| > the trouble is these structures go on forever and have many
| > bitfields. (in one i count 46 fields, all integers of random width,
| > randomly intermixed.)
|
| they shouldn't rely on bitfields.  in particular, the language does
| not guarantee which order they are assigned to bits in a larger
| unit (ie, left to right or right to left).
|
| the nice thing is that in the plan 9 environment, you get to
| fix such mistakes and do much better (although it's always
| tedious to discover that late in the day)


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07 11:54       ` erik quanstrom
@ 2006-03-07 13:55         ` jmk
  0 siblings, 0 replies; 27+ messages in thread
From: jmk @ 2006-03-07 13:55 UTC (permalink / raw)
  To: 9fans

On Tue Mar  7 06:55:24 EST 2006, quanstro@quanstro.net wrote:
> thanks to all for the information.
>
> i was suprised that the plan9 c compiler supports bit fields.
>
> - erik

they were only added under duress.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
       [not found]       ` <000501c641de$afc905d0$14aaa8c0@utelsystems.local>
@ 2006-03-07 14:21         ` "Nils O. Selåsdal"
  2006-03-07 14:30           ` uriel
  2006-03-08  0:28           ` erik quanstrom
  0 siblings, 2 replies; 27+ messages in thread
From: "Nils O. Selåsdal" @ 2006-03-07 14:21 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

erik quanstrom wrote:
> thanks to all for the information.
>
> i was suprised that the plan9 c compiler supports bit fields.
Just pretend they arn't there ? :-)
You can't set them as part of a struct initializer btw.



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07 14:21         ` "Nils O. Selåsdal"
@ 2006-03-07 14:30           ` uriel
  2006-03-07 14:43             ` Russ Cox
  2006-03-07 14:48             ` C H Forsyth
  2006-03-08  0:28           ` erik quanstrom
  1 sibling, 2 replies; 27+ messages in thread
From: uriel @ 2006-03-07 14:30 UTC (permalink / raw)
  To: 9fans

> erik quanstrom wrote:
>> thanks to all for the information.
>>
>> i was suprised that the plan9 c compiler supports bit fields.
> Just pretend they arn't there ? :-)
> You can't set them as part of a struct initializer btw.

If I recall correctly #pragma pack used to be #pragma hjdicks,
I liked better the old name.  Damned political correctness.

uriel



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07 14:30           ` uriel
@ 2006-03-07 14:43             ` Russ Cox
  2006-03-07 14:48             ` C H Forsyth
  1 sibling, 0 replies; 27+ messages in thread
From: Russ Cox @ 2006-03-07 14:43 UTC (permalink / raw)
  To: 9fans

> If I recall correctly #pragma pack used to be #pragma hjdicks,
> I liked better the old name.  Damned political correctness.

I made the change, and I did it because pack is a better name.
It is less obscure and accurately describes the effect of the
pragma.  If it had been named #pragma xyzzy, I would have
renamed it for exactly the same reasons.

Russ



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07 14:30           ` uriel
  2006-03-07 14:43             ` Russ Cox
@ 2006-03-07 14:48             ` C H Forsyth
  1 sibling, 0 replies; 27+ messages in thread
From: C H Forsyth @ 2006-03-07 14:48 UTC (permalink / raw)
  To: 9fans

> If I recall correctly #pragma pack used to be #pragma hjdicks,
> I liked better the old name.  Damned political correctness.

better still is just to forget about it and not use it.
there is little point to it since it will trap on enough platforms
to make it useless in portable code.  the one minor thing it does that won't trap
in some cases (changing the rounding size for structs, provided
they are never put in an array) can be done other ways.
use it only in similar ways to those originally intended: you've got a big lump of imported protocol
code that's made unfortunate assumptions and you've got an architecture
that won't trap unaligned accesses, and the ends justify the means.



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07  4:13     ` geoff
@ 2006-03-07 15:41       ` Ronald G Minnich
  2006-03-07 15:53         ` C H Forsyth
  2006-03-08  0:06         ` erik quanstrom
  2006-03-07 17:47       ` Bakul Shah
  1 sibling, 2 replies; 27+ messages in thread
From: Ronald G Minnich @ 2006-03-07 15:41 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

geoff@collyer.net wrote:
> I suspect that the difference in time to access unaligned packed data
> vs. aligned data is irrelevant when compared with the general
> complexity of running a modern host adaptor.
>

It can get worse. Clever use of align and packed resulted, in Xen, in
longword accesses which were odd-byte-aligned half the time, odd-short
aligned 1/4 the time; i.e., misaligned 3/4 of the time. All this from a
goal to be efficient! I kind of wonder how much this packed/aligned
mania results in unaligned accesses in the end ...

This did get fixed. But it's a real warning against the kind of
cleverness that people resort to with gcc nowadays -- just wander
through the linux kernel sometime -- grep unlikely if you wish.

> It sounds like the folks who designed the dac960 either didn't think
> much about how drivers would access it, or they were hog wild over
> gcc's packed data attribute (does microsoft's compiler have something
> similar?).
>

Packed has been around in compilers for realtime and embedded for 30
years -- dare I admit to using it at some time? Nah. You were none of
you born then anyway, so you can't prove a thing. That code is on a
magtape in a landfill somewhere in Pennsylvania.

ron


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07 15:41       ` Ronald G Minnich
@ 2006-03-07 15:53         ` C H Forsyth
  2006-03-08  0:06         ` erik quanstrom
  1 sibling, 0 replies; 27+ messages in thread
From: C H Forsyth @ 2006-03-07 15:53 UTC (permalink / raw)
  To: 9fans

> This did get fixed. But it's a real warning against the kind of
> cleverness that people resort to with gcc nowadays -- just wander
> through the linux kernel sometime -- grep unlikely if you wish.

yes, people do all that micromanagement, and then wade through pages of code
to get anywhere



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07  4:13     ` geoff
  2006-03-07 15:41       ` Ronald G Minnich
@ 2006-03-07 17:47       ` Bakul Shah
  1 sibling, 0 replies; 27+ messages in thread
From: Bakul Shah @ 2006-03-07 17:47 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

> It sounds like the folks who designed the dac960 either didn't think
> much about how drivers would access it, or they were hog wild over
> gcc's packed data attribute (does microsoft's compiler have something
> similar?).

I suspect that as usual either the h/w designers weren't
thinking about the driver guys or didn't listen to them, or
the driver guys didn't come on board until after the "design
was done".  The h/w logic is probably doing the equivalent of

	for (i = 0; i < 10; i++) {
		data_bus <= byte[i];
		assert ready;
		wait ack;
	}

In the scheme of things this particular register layout may
have come about because that is how the design evolved or it
was an arbitrary choice or it minimized the number of logic
gates to fit in the fewest number of PALs (likely the DAC960
still carries some logic originally designed for a board full
of PALs and what not).


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07 15:41       ` Ronald G Minnich
  2006-03-07 15:53         ` C H Forsyth
@ 2006-03-08  0:06         ` erik quanstrom
  2006-03-08  2:21           ` Ronald G Minnich
  1 sibling, 1 reply; 27+ messages in thread
From: erik quanstrom @ 2006-03-08  0:06 UTC (permalink / raw)
  To: 9fans, Ronald G Minnich

what compiler were you using with packed structures in 1976?

- erik

Ronald G Minnich <rminnich@lanl.gov> writes

| Packed has been around in compilers for realtime and embedded for 30
| years -- dare I admit to using it at some time? Nah. You were none of
| you born then anyway, so you can't prove a thing. That code is on a
| magtape in a landfill somewhere in Pennsylvania.
|
| ron


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-07 14:21         ` "Nils O. Selåsdal"
  2006-03-07 14:30           ` uriel
@ 2006-03-08  0:28           ` erik quanstrom
  1 sibling, 0 replies; 27+ messages in thread
From: erik quanstrom @ 2006-03-08  0:28 UTC (permalink / raw)
  To: 9fans, Nils O. Selåsdal

i've done well in ignoring them so far. ;-)

"Nils O. Selåsdal" <NOS@Utel.no> writes

|
| erik quanstrom wrote:
| > thanks to all for the information.
| >
| > i was suprised that the plan9 c compiler supports bit fields.
| Just pretend they arn't there ? :-)
| You can't set them as part of a struct initializer btw.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  0:06         ` erik quanstrom
@ 2006-03-08  2:21           ` Ronald G Minnich
  2006-03-08  2:50             ` geoff
  0 siblings, 1 reply; 27+ messages in thread
From: Ronald G Minnich @ 2006-03-08  2:21 UTC (permalink / raw)
  To: erik quanstrom; +Cc: 9fans

erik quanstrom wrote:
> what compiler were you using with packed structures in 1976?
>
> - erik
>

It was 1978. It was called Microl, and was developed by someone I know
at HP.

We used it to write code for Z80s. It also had bit fields that were NOT
a botch and a type-safe linker. In fact, it had some features that I was
not to see in the C world until several decades later.

ron


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  2:21           ` Ronald G Minnich
@ 2006-03-08  2:50             ` geoff
  2006-03-08  4:10               ` Bruce Ellis
  2006-03-08 12:11               ` Brantley Coile
  0 siblings, 2 replies; 27+ messages in thread
From: geoff @ 2006-03-08  2:50 UTC (permalink / raw)
  To: 9fans

I was implicitly referring to C compilers.  Heck, Pascal had packed
data in the early 1970s, possibly even the late 1960s.



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  2:50             ` geoff
@ 2006-03-08  4:10               ` Bruce Ellis
  2006-03-08  4:37                 ` Russ Cox
  2006-03-08 12:11               ` Brantley Coile
  1 sibling, 1 reply; 27+ messages in thread
From: Bruce Ellis @ 2006-03-08  4:10 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

i still like hjdicks  it is obscure enough that no-one would think it's
a feature (or guess it).  it was required because we had a large
slab of 3rd-party code that assumed it could read packets off the
wire (assuming correct endian) and do no marshaling.

#pragam pack

looks like a feature.

i was there when it happened (after a nice italian meal).

ken asked "Do i really have to do this?"

P: Yes, there's buckets of code that rely on it.

K: *some expression of disbelief*

P: well hj are just dicks

done deal

it also turned out to be important for inferno on machines with
greater than 32 bit alignment requirements.  the 64 bit mips
is an example.  took but a recompile with hjdicks in the right
place (it takes an optional alignment parameter).  same with
the ps2 which has 128 bit issues.

thanks for telling me that it has been changed.

brucee

On 3/8/06, geoff@collyer.net <geoff@collyer.net> wrote:
> I was implicitly referring to C compilers.  Heck, Pascal had packed
> data in the early 1970s, possibly even the late 1960s.


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  4:10               ` Bruce Ellis
@ 2006-03-08  4:37                 ` Russ Cox
  2006-03-08  4:55                   ` Bruce Ellis
  0 siblings, 1 reply; 27+ messages in thread
From: Russ Cox @ 2006-03-08  4:37 UTC (permalink / raw)
  To: 9fans

> thanks for telling me that it has been changed.

You knew it was changed; you just blocked out the trauma.
http://marc.theaimsgroup.com/?t=111559007700007&r=1&w=2

Russ



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  4:37                 ` Russ Cox
@ 2006-03-08  4:55                   ` Bruce Ellis
  2006-03-08  5:03                     ` Russ Cox
  0 siblings, 1 reply; 27+ messages in thread
From: Bruce Ellis @ 2006-03-08  4:55 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

oh that, great - doesn't help at all if you can't specify alignment.

brucee

On 3/8/06, Russ Cox <rsc@swtch.com> wrote:
> > thanks for telling me that it has been changed.
>
> You knew it was changed; you just blocked out the trauma.
> http://marc.theaimsgroup.com/?t=111559007700007&r=1&w=2
>
> Russ


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  4:55                   ` Bruce Ellis
@ 2006-03-08  5:03                     ` Russ Cox
  2006-03-08  5:05                       ` Bruce Ellis
  0 siblings, 1 reply; 27+ messages in thread
From: Russ Cox @ 2006-03-08  5:03 UTC (permalink / raw)
  To: 9fans

> oh that, great - doesn't help at all if you can't specify alignment.

who said you can't?  it's not mentioned in the thread
because it wasn't relevant, but the old code is there,
just now accessed as #pragma pack and in every
compiler instead of just vc.

russ



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  5:03                     ` Russ Cox
@ 2006-03-08  5:05                       ` Bruce Ellis
  2006-03-08  5:09                         ` Russ Cox
  0 siblings, 1 reply; 27+ messages in thread
From: Bruce Ellis @ 2006-03-08  5:05 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

who said you could?

brucee

On 3/8/06, Russ Cox <rsc@swtch.com> wrote:
> > oh that, great - doesn't help at all if you can't specify alignment.
>
> who said you can't?  it's not mentioned in the thread
> because it wasn't relevant, but the old code is there,
> just now accessed as #pragma pack and in every
> compiler instead of just vc.
>
> russ


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  5:05                       ` Bruce Ellis
@ 2006-03-08  5:09                         ` Russ Cox
  2006-03-08  5:12                           ` Bruce Ellis
  0 siblings, 1 reply; 27+ messages in thread
From: Russ Cox @ 2006-03-08  5:09 UTC (permalink / raw)
  To: 9fans

>>> oh that, great - doesn't help at all if you can't specify alignment.
>> who said you can't?  it's not mentioned in the thread
> who said you could?

http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/cc/dpchk.c



^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  5:09                         ` Russ Cox
@ 2006-03-08  5:12                           ` Bruce Ellis
  0 siblings, 0 replies; 27+ messages in thread
From: Bruce Ellis @ 2006-03-08  5:12 UTC (permalink / raw)
  To: Fans of the OS Plan 9 from Bell Labs

ok, sorry for not reading the source.  i have my own.

brucee

On 3/8/06, Russ Cox <rsc@swtch.com> wrote:
> >>> oh that, great - doesn't help at all if you can't specify alignment.
> >> who said you can't?  it's not mentioned in the thread
> > who said you could?
>
> http://plan9.bell-labs.com/sources/plan9/sys/src/cmd/cc/dpchk.c


^ permalink raw reply	[flat|nested] 27+ messages in thread

* Re: [9fans] structure allocation.
  2006-03-08  2:50             ` geoff
  2006-03-08  4:10               ` Bruce Ellis
@ 2006-03-08 12:11               ` Brantley Coile
  1 sibling, 0 replies; 27+ messages in thread
From: Brantley Coile @ 2006-03-08 12:11 UTC (permalink / raw)
  To: 9fans

> I was implicitly referring to C compilers.  Heck, Pascal had packed
> data in the early 1970s, possibly even the late 1960s.

The first Pascal compiler became operational in 1970, on a CDC 6400.
For those born after Nixon, the CDC 6000 series was a 60 bit word
addressable machine.  That explains the packed keyword.

Implementing a recursive programing language on a machine that stores
the return address of a procedure call in the first word of the
procedure was a trick.  The speed of the original Pascal compiler on
the CDC machine wasn't that good.  I used the compiler at the
University of Georgia in the late 1970's.  Software to talk to our
packet network was written in it.

The packed keyword is still in the Pascal spec, but was dropped in Modula-2,
and Oberon.



^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2006-03-08 12:11 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-07  2:30 [9fans] structure allocation erik quanstrom
2006-03-07  2:37 ` geoff
2006-03-07  3:00   ` erik quanstrom
2006-03-07  3:11     ` Russ Cox
2006-03-07  4:13     ` geoff
2006-03-07 15:41       ` Ronald G Minnich
2006-03-07 15:53         ` C H Forsyth
2006-03-08  0:06         ` erik quanstrom
2006-03-08  2:21           ` Ronald G Minnich
2006-03-08  2:50             ` geoff
2006-03-08  4:10               ` Bruce Ellis
2006-03-08  4:37                 ` Russ Cox
2006-03-08  4:55                   ` Bruce Ellis
2006-03-08  5:03                     ` Russ Cox
2006-03-08  5:05                       ` Bruce Ellis
2006-03-08  5:09                         ` Russ Cox
2006-03-08  5:12                           ` Bruce Ellis
2006-03-08 12:11               ` Brantley Coile
2006-03-07 17:47       ` Bakul Shah
2006-03-07  9:23     ` Charles Forsyth
2006-03-07 11:54       ` erik quanstrom
2006-03-07 13:55         ` jmk
     [not found]       ` <000501c641de$afc905d0$14aaa8c0@utelsystems.local>
2006-03-07 14:21         ` "Nils O. Selåsdal"
2006-03-07 14:30           ` uriel
2006-03-07 14:43             ` Russ Cox
2006-03-07 14:48             ` C H Forsyth
2006-03-08  0:28           ` erik quanstrom

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).