Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #130268

Re: Global variables

From Lew Pitcher <lew.pitcher@digitalfreehold.ca>
Newsgroups comp.lang.c
Subject Re: Global variables
Followup-To comp.lang.c
Date 2018-05-06 15:21 -0400
Organization The Pitcher Digital Freehold
Message-ID <pcnkjb$i85$1@dont-email.me> (permalink)
References (17 earlier) <slrnpem0sv.jmn.dan@xps-linux.djph.net> <ffEGC.34377$U32.22742@fx04.am4> <pch9jg$66e$1@dont-email.me> <M6DHC.72415$Ze.56654@fx39.am4> <pcng2e$i93$1@dont-email.me>

Followups directed to: comp.lang.c

Show all headers | View raw


David Brown wrote:
[snip]
> The C standards don't have anything to say about having multiple
> definitions (identical or otherwise) of a variable in a program.

 6.7 Declarations
  3 If an identifier has no linkage, there shall be no more than one
                                                    ================
    declaration of the identifier (in a declarator or type specifier) with
    the same scope and in the same name space, ...
...
 6.9 External definitions
  3 There shall be no more than one external definition for each identifier
                   ================
    declared with internal linkage in a translation unit. Moreover, if an
    identifier declared with internal linkage is used in an expression
    (other than as a part of the operand of a sizeof or _Alignof operator
    whose result is an integer constant), there shall be exactly one
                                                         ===========
    external definition for the identifier in the translation unit.

...

  6.9.2 External object definitions
   2 A declaration of an identifier for an object that has file scope
     without an initializer, and without a storage-class specifier or with
     the storage-class specifier static, constitutes a tentative definition.
     If a translation unit contains one or more tentative definitions for an
                                    =================================
     identifier, and the translation unit contains no external definition
     for that identifier, then the behavior is exactly as if the translation
     unit contains a file scope declaration of that identifier, with the
     composite type as of the end of the translation unit, with an
     initializer equal to 0.



> Early
> pre-standard C toolchains supported it, and code was written that used
> it - so later toolchains kept it for compatibility.  I think that was a
> mistake.
> 
> It is not hard to find examples of code using such multiple definitions.
>   That does not mean that it is something everyone does, and it
> certainly does not mean it is a problem with the language or the tools -
> merely that some programmers don't know how to use the language and
> tools to write well-structured code.  I fully agree that such bad
> structure would not be in published code if tools did not commonly
> support it or commonly diagnosed it.  Having the language had explicitly
> ban it is not enough - C++ /does/ have a rule against multiple
> definitions of objects, but people manage to break that rule in the same
> way.
> 
> 
>> 
>> (Funny how a simple tool is more adept at this stuff than an elaborate
>> one.)
> 
> Not really, no.  A car is a good deal harder to learn to control than a
> tricycle.  Simple does not mean better (nor does it mean worse) - it
> just means simple.
> 
>> 
>> --------------
>> 
>> There was another source error in that project, which was the widespread
>> use of () parameter list rather than (void). The danger here is that
>> arguments to those functions are unchecked. If the program might not
>> crash, it shows a misunderstanding of what a function does.
> 
> Another mistake from the programmer, not the language.  (But as already
> noted by Keith and myself, and probably agreed by many others, it would
> be better if common tools gave a warning on such legal but obsolete and
> dangerous constructs.)
> 
>> 
>> Again, only my compiler said anything (in default mode). I could used a
>> compatibility switch, but I decided to fix the source code.
>> 
>> Maybe more people should do that.
>> 
>> (This project did have a very simple makefile, but it was hardly needed:
>> just compile the 5 files and link them.)
>> 
>>> C #include files can be used for other more flexible uses too, which
>>> modules cannot.
>> 
>> You mean general text include?
>> 
>> Having modules doesn't preclude the use of a file include feature. But
>> it would be confusing if C had both as you'd then have modules, #include
>> used instead of modules, and #include used for other purposes.
> 
> It is relatively rare for #include to be used for general source
> inclusion, but it does happen.  One example I have seen is to divide a
> program into parts but then to compile them together as one translation
> unit for efficiency reasons.  I have also seen (and used myself) files
> that are generated externally, such as to define const arrays of data
> that you want directly linked into a program.  Then you might have
> something like:
> 
> // In file pics.c
> const uint8_t smiley_face_picture_data[] = {
> #include "pics/smile_face.inc"
> };
> 
> const uint8_t sad_face_picture_data[] = {
> #include "pics/sad_face.inc"
> };
> 
> The ".inc" files are generated by something else, like a Python script
> called automatically from the project's Makefile (yes, make does a great
> deal more than just call the compiler), and they consist of just
> comma-separated lists of data values.
> 
> 
> I have also seen include files used for portability, such as:
> 
> // In file xxx.c
> 
> #include "port/start_packed_struct.h"
> packed_struct {
> char c;
> int i;
> };
> #include "port/end_packed_struct.h"
> 
> 
> For one compiler, you might have:
> 
> // port/start_packed_struct.h
> struct __attribute__((__packed__))
> 
> // port/end_packed_struct.h
> 
> 
> For another, you might have:
> 
> // port/start_packed_struct.h
> #pragma push
> #pragma pack 1
> struct
> 
> // port/end_packed_struct.h
> #pragma pop
> 
> 
> 
> That is just three cases where flexible include files can be very
> helpful - but where they don't fit the common model of a "header file"
> with extern declarations and related declarations and definitions.  And
> none of these would work with a more rigid (but safer) module system.
> 
> 
>> 
>>>> Nothing stops you including the same .h header file 20 times, and so
>>>> many header files have messy #ifdef guards to prevent this.
>>>
>>> The #ifdef guards are cheap, simple, and very familiar to all C
>>> programmers.  A "proper" C module concept would not need them, but they
>>> are not a hardship.
>> 
>> #ifdef guards still require that the header file is rescanned token by
>> token to get to the matching #endif. Unless compilers jump through hoops
>> to avoid that.
> 
> Compilers are very good at handling these efficiently.  The time taken
> by gcc and other serious compilers to skip over duplicate headers is
> absolutely negligible.  I am sure the developers of these tools have
> worked hard to make them so - but the effort required by compiler
> developers has never been a criteria for features of C.  (This is
> different from some languages, such as Pascal, where ease of
> implementation was very important in the language design.)
> 
>> 
>>> Look, it is actually fairly simple.  Not as simple as it could have
>>> been, perhaps, but not hard.
>>>
>>> "extern int abc;" /declares/ "abc" to be an integer with external
>>> (global) linkage - but it does not define it, allocate space for it, or
>>> provide any initialisation for it.
>>>
>>> "int abc;" is a "tentative definition" - if no full definition
>>> ("external definition" in the C standards) is found by the end of that
>>> translation unit, then it is treated as if it were a full definition
>>> "int abc = 0;".
>>>
>>> "int abc = 0;" or other initialisation is always a full definition.
>> 
>> You say it's simple but then go into rather a long explanation.
> 
> It /is/ simple - but I gave an explanation of how and why it works, with
> all the rules, to help teach you.  Perhaps naïvely I thought you could
> learn from it and then write correct code afterwards, rather than merely
> using it as another example of something you don't understand about C
> and can therefore be used to claim C is "broken".
> 
>> 
>> A lot of source code doesn't do this because it's not enforced.
>> 
>> Module-scope variables very often are not initialised.
> 
> Often they are initialised, often they are not.  I could not guess at
> the proportions.
> 
>> 'extern' is often
>> not used.
> 
> "extern" is used all the time in declarations and in headers.  Code that
> has variable declarations in headers should use "extern" in almost all
> cases (occasionally "static" is used instead) - if the code does not
> have "extern" or "static" on something that should be a non-defining
> object declaration, the code is bad.  ("extern" is entirely optional for
> non-defining function declarations - I like to use it, but many people
> do not.  We are concerned with objects here.)
> 
>> So projects are full of tentative which are not defined
>> anywhere, but no errors are raised.
> 
> It is fine to have tentative definitions - they become "real"
> definitions (or "external definition") at the end of the translation
> unit.  There is only a problem if more than one translation unit has
> definitions for the same identifier in the same program - something that
> happens easily if you have tentative definitions in a header file.
> 
> 
>> 
>> Here's how it works in one of my current languages; names declared at
>> module scope:
>> 
>>  int abc            # defined variable, not exported
>> 
>>  global int def     # defined variable, exported
>> 
>> There is no need for an 'extern' version, as 'import' takes care of
>> those details.
> 
> I would not want that.  I prefer to have the interface for a module -
> the exported part - declared independently.  Sure, it means a little
> duplication - but nothing difficult, and it will all be checked by the
> compiler.  I greatly prefer C's methods (with appropriately structured
> and constrained header files, and aided by good tools), or Modula 2
> (where interface files are independent of implementation files).  Pascal
> (where these are two sections within the same file) is okay.  Python's
> method is very poor - /everything/ is exported, and available from other
> files via a module import statement - unless you use ugly underscores
> everywhere.  Your method is a little better than Python's, as you need
> an explicit "global" for exporting symbols, but it still means they are
> scattered around the implementation file rather than in a dedicated
> interface file containing only the API and documentation.
> 
>>  > THAT is simple.
>> 
> 
> That is one simple way to do it.  C has a different simple way to do it.
>   Other languages have other ways to do it - usually simple, but perhaps
> with different rules.
> 
> There is nothing difficult or confusing about C's method.  I think it is
> sub-optimal - I would prefer a better choice of default qualifiers.
> (I'd prefer "static const" by default, and require an explicit "var" for
> variable data and an explicit "extern" - or "global" if you prefer - for
> exported data.)


-- 
Lew Pitcher
"In Skills, We Trust"
PGP public key available upon request

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

The case AGAINST C Real Troll <real.troll@trolls.com> - 2018-04-30 02:10 +0000
  Re: The case AGAINST C cross@spitfire.i.gajendra.net (Dan Cross) - 2018-04-30 03:14 +0000
    Re: The case AGAINST C Tim Rentsch <txr@alumni.caltech.edu> - 2018-04-30 05:48 -0700
    Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-04-30 14:58 +0100
    Re: The case AGAINST C Davs <johndemeert0@gmail.com> - 2018-05-07 04:18 -0700
      Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 05:26 -0700
      Re: The case AGAINST C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2018-05-07 11:21 -0400
        Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 09:21 -0700
        Re: The case AGAINST C Robert Wessel <robertwessel2@yahoo.com> - 2018-05-07 12:13 -0500
          Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 10:24 -0700
          Re: The case AGAINST C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2018-05-07 13:27 -0400
            Re: The case AGAINST C scott@slp53.sl.home (Scott Lurndal) - 2018-05-07 17:33 +0000
              Re: The case AGAINST C Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2018-05-07 13:50 -0400
              Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 10:56 -0700
            Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-08 09:26 +0200
          Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-08 09:19 +0200
            Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-08 00:42 -0700
            Re: The case AGAINST C supercat@casperkitty.com - 2018-05-08 06:54 -0700
              Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-08 07:24 -0700
              Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-08 17:15 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-08 09:31 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-08 18:48 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-08 10:33 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-08 23:36 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-08 15:08 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-09 00:56 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-08 16:17 -0700
                Re: The case AGAINST C Geoff <geoff@invalid.invalid> - 2018-05-08 11:09 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-08 23:43 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-08 15:24 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-09 00:58 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-09 08:11 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-09 08:51 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-09 11:45 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-09 13:03 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-09 23:40 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-09 15:48 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-10 13:48 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-10 08:28 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-11 10:06 +0200
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-11 02:22 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-11 05:29 -0700
                Re: The case AGAINST C scott@slp53.sl.home (Scott Lurndal) - 2018-05-11 13:31 +0000
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-11 15:47 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-11 09:16 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-12 17:43 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-12 14:06 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-10 00:13 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-10 01:31 -0700
                Re: The case AGAINST C Wouter Verhelst <w@uter.be> - 2018-05-11 18:01 +0200
                Re: The case AGAINST C Geoff <geoff@invalid.invalid> - 2018-05-10 08:30 -0700
                Re: The case AGAINST C Wouter Verhelst <w@uter.be> - 2018-05-09 09:29 +0200
                Re: The case AGAINST C Geoff <geoff@invalid.invalid> - 2018-05-10 08:41 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-11 04:43 -0700
              Re: The case AGAINST C Richard Damon <Richard@Damon-Family.org> - 2018-05-08 21:24 -0400
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-09 09:10 +0200
            Re: The case AGAINST C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-05-08 19:52 +0000
              Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-08 23:48 +0200
  Re: The case AGAINST C Tim Rentsch <txr@alumni.caltech.edu> - 2018-04-29 22:07 -0700
  Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-04-30 12:22 +0100
    Re: The case AGAINST C Melzzzzz <Melzzzzz@zzzzz.com> - 2018-04-30 12:08 +0000
      Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-04-30 13:38 +0100
        Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-04-30 06:05 -0700
        Re: The case AGAINST C supercat@casperkitty.com - 2018-04-30 07:39 -0700
        Re: The case AGAINST C Ed Kellett <e@kellett.im> - 2018-04-30 15:53 +0100
          Re: The case AGAINST C supercat@casperkitty.com - 2018-04-30 08:14 -0700
            Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-04-30 21:26 -0700
          Re: The case AGAINST C Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2018-04-30 09:00 -0700
            Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-01 04:58 -0700
          Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-04-30 18:07 +0100
            Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-01 05:33 -0700
              Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-01 05:58 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-01 06:27 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-01 14:37 +0100
                Re: The case AGAINST C Melzzzzz <Melzzzzz@zzzzz.com> - 2018-05-01 13:41 +0000
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-01 16:48 +0100
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-01 10:11 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-01 11:00 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-01 19:26 +0100
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-01 11:40 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-01 12:53 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-01 22:03 +0100
                Re: The case AGAINST C Ian Collins <ian-news@hotmail.com> - 2018-05-02 09:10 +1200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-01 14:21 -0700
                Re: The case AGAINST C Ian Collins <ian-news@hotmail.com> - 2018-05-02 09:26 +1200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-01 15:23 -0700
                Re: The case AGAINST C scott@slp53.sl.home (Scott Lurndal) - 2018-05-02 14:07 +0000
                Re: The case AGAINST C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-05-03 06:28 +0000
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-01 23:03 +0100
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-02 04:52 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-02 05:12 -0700
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-02 05:34 -0700
                Re: The case AGAINST C scott@slp53.sl.home (Scott Lurndal) - 2018-05-02 14:08 +0000
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-02 07:39 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-02 17:13 +0100
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-02 11:01 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-02 21:51 +0100
                Re: The case AGAINST C Ian Collins <ian-news@hotmail.com> - 2018-05-03 08:52 +1200
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-02 22:42 +0100
                Re: The case AGAINST C Ian Collins <ian-news@hotmail.com> - 2018-05-03 09:57 +1200
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-02 23:22 +0100
                Re: The case AGAINST C Ian Collins <ian-news@hotmail.com> - 2018-05-03 10:29 +1200
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-03 00:14 +0100
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-03 03:59 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-03 04:15 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-03 12:50 +0100
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-03 13:36 -0700
                Of course I get it... (Was: The case AGAINST C) gazelle@shell.xmission.com (Kenny McCormack) - 2018-05-03 08:44 +0000
                Re: The case AGAINST C Dan Purgert <dan@djph.net> - 2018-05-03 12:42 +0000
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-03 05:52 -0700
                Re: The case AGAINST C Dan Purgert <dan@djph.net> - 2018-05-03 12:56 +0000
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-03 05:58 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-03 14:36 +0100
                Re: The case AGAINST C already5chosen@yahoo.com - 2018-05-03 13:27 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-03 22:43 +0100
                Re: The case AGAINST C already5chosen@yahoo.com - 2018-05-03 15:17 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-04 00:50 +0100
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-03 15:41 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-04 11:36 +0200
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-04 08:52 -0700
                Re: The case AGAINST C scott@slp53.sl.home (Scott Lurndal) - 2018-05-04 17:28 +0000
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-04 12:06 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-05 18:45 +0200
                Re: The case AGAINST C scott@slp53.sl.home (Scott Lurndal) - 2018-05-06 18:43 +0000
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-06 23:35 +0200
                Re: The case AGAINST C scott@slp53.sl.home (Scott Lurndal) - 2018-05-07 13:23 +0000
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 06:30 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-07 16:25 +0200
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-07 07:32 -0700
                Re: The case AGAINST C Keith Thompson <kst-u@mib.org> - 2018-05-04 09:09 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-04 18:12 +0100
                Global variables bartc <bc@freeuk.com> - 2018-05-06 14:07 +0100
                Re: Global variables David Brown <david.brown@hesbynett.no> - 2018-05-06 20:03 +0200
                Re: Global variables Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2018-05-06 15:21 -0400
                Re: Global variables Keith Thompson <kst-u@mib.org> - 2018-05-06 13:07 -0700
                Re: Global variables Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2018-05-06 16:13 -0400
                Re: Global variables David Brown <david.brown@hesbynett.no> - 2018-05-06 23:39 +0200
                Re: Global variables Richard Damon <Richard@Damon-Family.org> - 2018-05-06 17:50 -0400
                Re: Global variables David Brown <david.brown@hesbynett.no> - 2018-05-06 23:57 +0200
                Re: Global variables Richard Damon <Richard@Damon-Family.org> - 2018-05-06 19:56 -0400
                Re: Global variables Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-05-07 03:21 +0100
                Re: Global variables David Brown <david.brown@hesbynett.no> - 2018-05-07 09:09 +0200
                Re: Global variables Keith Thompson <kst-u@mib.org> - 2018-05-07 08:49 -0700
                Re: Global variables bartc <bc@freeuk.com> - 2018-05-06 20:55 +0100
                Re: Global variables David Brown <david.brown@hesbynett.no> - 2018-05-06 23:51 +0200
                Re: Global variables Keith Thompson <kst-u@mib.org> - 2018-05-06 15:40 -0700
                Re: Global variables bartc <bc@freeuk.com> - 2018-05-06 23:54 +0100
                Re: Global variables Ian Collins <ian-news@hotmail.com> - 2018-05-07 15:12 +1200
                Re: Global variables David Brown <david.brown@hesbynett.no> - 2018-05-07 09:03 +0200
                Re: Global variables Tim Rentsch <txr@alumni.caltech.edu> - 2018-05-18 20:23 -0700
                Re: Global variables Steve Carroll <frelwizzen@gmail.com> - 2018-05-18 20:44 -0700
                Re: Global variables David Brown <david.brown@hesbynett.no> - 2018-05-19 17:22 +0200
                Re: Global variables supercat@casperkitty.com - 2018-05-19 11:56 -0700
                Re: Global variables supercat@casperkitty.com - 2018-05-06 16:28 -0700
                Re: Global variables Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2018-05-06 14:19 -0400
                Re: Global variables bartc <bc@freeuk.com> - 2018-05-06 20:16 +0100
                Re: Global variables David Brown <david.brown@hesbynett.no> - 2018-05-06 23:09 +0200
                Re: Global variables bartc <bc@freeuk.com> - 2018-05-06 23:41 +0100
                Re: The case AGAINST C Keith Thompson <kst-u@mib.org> - 2018-05-03 09:13 -0700
                Re: The case AGAINST C Dan Purgert <dan@djph.net> - 2018-05-03 17:29 +0000
                Re: The case AGAINST C gazelle@shell.xmission.com (Kenny McCormack) - 2018-05-03 19:24 +0000
                Re: The case AGAINST C Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-05-04 05:46 +0000
                Re: The case AGAINST C Dan Purgert <dan@djph.net> - 2018-05-04 10:55 +0000
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-04 04:03 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-04 12:31 +0100
                Re: The case AGAINST C already5chosen@yahoo.com - 2018-05-04 05:10 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-04 13:24 +0100
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 06:26 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 06:35 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 07:06 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 07:19 -0700
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-04 06:37 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 08:19 -0700
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-04 12:07 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-04 16:31 +0100
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 08:41 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 09:50 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 10:04 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 13:51 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-04 14:30 -0700
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-04 15:14 -0700
                Re: The case AGAINST C Robert Wessel <robertwessel2@yahoo.com> - 2018-05-04 11:18 -0500
                Re: The case AGAINST C Keith Thompson <kst-u@mib.org> - 2018-05-04 09:05 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-04 17:55 +0100
                Re: The case AGAINST C Keith Thompson <kst-u@mib.org> - 2018-05-04 10:54 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-04 19:18 +0100
                Re: The case AGAINST C Keith Thompson <kst-u@mib.org> - 2018-05-04 11:24 -0700
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-06 16:45 +0200
                Re: The case AGAINST C jameskuyper@alumni.caltech.edu - 2018-05-04 11:51 -0700
                Re: The case AGAINST C supercat@casperkitty.com - 2018-05-04 12:15 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-04 21:56 +0100
                Re: The case AGAINST C David Brown <david.brown@hesbynett.no> - 2018-05-06 17:01 +0200
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-06 17:54 +0100
                Re: The case AGAINST C Keith Thompson <kst-u@mib.org> - 2018-05-06 13:38 -0700
                Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-06 21:49 +0100
                Re: The case AGAINST C Richard Damon <Richard@Damon-Family.org> - 2018-05-06 17:19 -0400
                Re: The case AGAINST C Keith Thompson <kst-u@mib.org> - 2018-05-06 15:24 -0700
                Re: The case AGAINST C Keith Thompson <kst-u@mib.org> - 2018-05-06 15:16 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-06 23:55 -0700
                Re: The case AGAINST C Steve Carroll <frelwizzen@gmail.com> - 2018-05-06 11:59 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-01 14:51 -0700
                Re: The case AGAINST C Steven Petruzzellis <frelwizzen@gmail.com> - 2018-05-02 04:46 -0700
                Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-01 11:45 -0700
              Re: The case AGAINST C fir <profesor.fir@gmail.com> - 2018-05-01 06:10 -0700
        Re: The case AGAINST C C W Rose <cwr@seckford.org> - 2018-05-02 15:23 +0100
          Re: The case AGAINST C bartc <bc@freeuk.com> - 2018-05-02 17:36 +0100
  Re: The case AGAINST C "Mr. Man-wai Chang" <toylet.toylet@gmail.com> - 2018-04-30 22:03 +0800
  Re: The case AGAINST C Jens Stuckelberger <Jens_Stuckelberger@nowhere.net> - 2018-05-01 13:46 +0000

csiph-web