about BigEndian and LittleEndian

M

Mark McIntyre

I've never heard of this definition before.

FWIW this is the /only/ common meaning I've head of.
This is the only meaning I was aware of.

Whereas this is not what moot means as far as I'm concerned.

Of course. we're excluding the old english moot meaning a meeting
place. As in Entmoot fwiw.
 
C

CBFalconer

Gene said:
Another way it is used is with the meaning: "Your question
assumes something that is not the case, and so is unaswerable."

Or, as has often arisen over the bridge table, at a suitable point
in play:

Nu?
 
M

Martijn Lievaart

In <[email protected]> Martijn


And no genuine bytes at all, so byte swapping is a non issue ;-) One of
the most C-unfriendly platforms, BTW.

One thing that actually had me wondering for years. Is there a C compiler
for a CYBER-CDC? If so, how complient is it?

M4
 
J

J. J. Farrell

Dan Pop said:
In <[email protected]> Gene Wirchenko

While the dictionary is correct, in general, it is dead wrong in the
context of "moot question", which means a question rendered irrelevant
by other arguments. I've never seen it used with any other meaning.

Typical example of moot question, picked from comp.std.c: does the
standard require EXIT_SUCCESS to be defined as zero?

I don't think it's wrong at all. The only place I've come across
"moot question" used in that sense is comp.lang.c; and each time
I've thought "what a strange usage".
 
G

glen herrmannsfeldt

Dan said:
(snip)


^^^^^^^^^^^^^^^^^^^^^^^^^
Isn't it instructions and *read-only* data?

Static data. Initialized static variables would likely go there. Well,
the Fortran compilers I used to use only had static variables. I would
expect C static external variables also, though I never looked to see.

(I do remember initializing large Fortran arrays to zero and generating
large object decks.)

If the program is linked as reentrant, it could be stored in read only
pages.
It's also common Unix terminology:
fangorn:~/tmp 217> size a.out
text data bss dec hex filename
855 220 24 1099 44b a.out

I don't think I ever knew what bss stands for.
 
C

Chris \( Val \)

| >
[snip]

| Perhaps you've heard the phrase "moot court"?

[snip]

No, but I've heard of a guy named "bull' in night court ;-).

Cheers.
Chris Val
 
D

Dan Pop

In said:
"Block started by symbol", according to Dennis Ritchie:

And, IIRC, it was introduced by an IBM assembler, which supported it as
a directive, along with BES, "block ended by symbol". Back in the late
fifties or so.

The Unix semantics is: uninitialised data segment.

Dan
 
M

Mark A. Odell

And, IIRC, it was introduced by an IBM assembler, which supported it as
a directive, along with BES, "block ended by symbol". Back in the late
fifties or so.

The Unix semantics is: uninitialised data segment.

Which I always thought was a misnomer as the block is zeroed. I suppose it
means the programmer did not initialize items in this segment.
 
D

Dan Pop

In said:
(e-mail address removed) (Dan Pop) wrote in

Which I always thought was a misnomer as the block is zeroed.

The idea is that there is no image for this segment in the executable
file. It comes already zeroed by the OS, as any piece of memory obtained
from the OS, for obvious security reasons.
I suppose it
means the programmer did not initialize items in this segment.

Anything initialised to all zeroes *by default* gets there. If you
initialise to all zeroes explicitly, the stuff goes into the data
segment and actually increases the executable size. At least, this is
what gcc is doing:

fangorn:~/tmp 262> cat default.c
int a[10000];

int main()
{
return 0;
}
fangorn:~/tmp 263> gcc default.c
fangorn:~/tmp 264> ls -l a.out
-rwxr-xr-x 1 danpop sysprog 13214 Nov 26 17:10 a.out*
fangorn:~/tmp 265> size a.out
text data bss dec hex filename
839 220 40032 41091 a083 a.out
fangorn:~/tmp 266> cat explicit.c
int a[10000] = {0};

int main()
{
return 0;
}
fangorn:~/tmp 267> gcc explicit.c
fangorn:~/tmp 268> ls -l a.out
-rwxr-xr-x 1 danpop sysprog 53263 Nov 26 17:11 a.out*
fangorn:~/tmp 269> size a.out
text data bss dec hex filename
839 40240 24 41103 a08f a.out

I certainly didn't expect that!

Dan
 
M

Mark A. Odell

The idea is that there is no image for this segment in the executable
file. It comes already zeroed by the OS, as any piece of memory
obtained from the OS, for obvious security reasons.


Anything initialised to all zeroes *by default* gets there.

Yes, of course.
If you
initialise to all zeroes explicitly, the stuff goes into the data
segment and actually increases the executable size. At least, this is
what gcc is doing:

I find this behaviour to be true for many toolchains. I'm for ever
removing the initializer on definitions like:

static int arr[ARR_SIZE] = { 0 };

to keep our image sizes down. I suppose, from an implementor's view, this
is correct although somewhat silly behavior.
 
C

CBFalconer

Chris said:
Is that in Nu Trump play?

Not necessarily. Consider the following end position, where the
actual cards are known for one reason or another, and the lead is
with South, Diamonds trumps (or no trumps):

North:
S: x
H: Ax
East: West:
S: A C: xxx
H: KQ
South:
S: x
H: x
D: x

South places the x of D on the table, gazes sweetly upon East, and
clearly enunciates "Nu?". :)

Note: you may interchange East and West if desired. I can also
construct scenarios that call for two Nus during one trick. For
the defence, no nus is good nus.
 
G

glen herrmannsfeldt

Dan said:
And, IIRC, it was introduced by an IBM assembler, which supported it as
a directive, along with BES, "block ended by symbol". Back in the late
fifties or so.

I started with OS/360 assembly, and it seems it was gone by then.

-- glen
 
S

Sheldon Simms

"Block started by symbol", according to Dennis Ritchie:
<news:3B0F2DB0.3910CDAF%[email protected]>.

There is an older meaning "binary symbolic subroutine" from
Fortran. From the John Backus paper "The History of FORTRAN I, II, II":

In the early fall of 1957 we started to plan ways of correcting these
shortcomings; a document dated September 25, 1957 ... This document is
titled "Proposed Specifications for FORTRAN II for the 704"; ...
It describes how symbolic information is retained in the relocatable
binary form of a subroutine so that the "binary symbolic subroutine
[BSS] loader" can implement references to separately compiled
subroutines.
 
D

Dave Thompson

^^^^^^^^^^^^^^^^^^^^^^^^^
Isn't it instructions and *read-only* data?
I believe it's all initialized data; read-only data, or at least
literals, will normally be put in the same CSECT as code and
modifiable data in another, so the first can be pure (originally and I
think still called reentrant) but the second not.

- David.Thompson1 at worldnet.att.net
 
G

glen herrmannsfeldt

Dave said:
I believe it's all initialized data; read-only data, or at least
literals, will normally be put in the same CSECT as code and
modifiable data in another, so the first can be pure (originally and I
think still called reentrant) but the second not.

Old Fortran compilers would put everything into the same CSECT. All
variables were static, and initialized ones were in the same CSECT, and
initialized with TXT records.

The PL/I compilers that I knew used a separate CSECT for initialized data.

Newer processors with large cache line size and separate instruction and
data caches run significantly slower if data and instructions are close
together. That is one reason to keep them separate.

uninitialized static external variables (not in C) would be COM
sections, initialized ones (from Fortran BLOCK DATA for example) would
be CSECTs.

-- glen
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,102
Messages
2,570,645
Members
47,247
Latest member
GabrieleL2

Latest Threads

Top