Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Often statistics are used as a drunken man uses lampposts -- for support rather than illumination.


computers / comp.os.linux.misc / Re: Contents of file changed while application is reading it

SubjectAuthor
* Contents of file changed while application is reading itClark Smith
+- Re: Contents of file changed while application is reading itRich
+* Re: Contents of file changed while application is reading itRobert Heller
|+* Re: Contents of file changed while application is reading itCarlos E.R.
||`- Re: Contents of file changed while application is reading itThe Natural Philosopher
|`* Re: Contents of file changed while application is reading itThe Natural Philosopher
| `* Re: Contents of file changed while application is reading itDavid W. Hodgins
|  +* Re: Contents of file changed while application is reading itThe Natural Philosopher
|  |+- Re: Contents of file changed while application is reading itDavid W. Hodgins
|  |`* Re: Contents of file changed while application is reading itRichard Kettlewell
|  | `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|  |  +- Re: Contents of file changed while application is reading itCarlos E.R.
|  |  `- Re: Contents of file changed while application is reading itRichard Kettlewell
|  `* Re: Contents of file changed while application is reading itCarlos E.R.
|   +* Re: Contents of file changed while application is reading itRichard Kettlewell
|   |`- Re: Contents of file changed while application is reading itCarlos E.R.
|   `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|    `* Re: Contents of file changed while application is reading itCarlos E.R.
|     `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|      +- Re: Contents of file changed while application is reading itDavid W. Hodgins
|      +* Re: Contents of file changed while application is reading itCarlos E.R.
|      |`* Re: Contents of file changed while application is reading it28A.I873
|      | `* Re: Contents of file changed while application is reading itCarlos E.R.
|      |  `* Re: Contents of file changed while application is reading it28A.I873
|      |   +* Re: Contents of file changed while application is reading itThe Natural Philosopher
|      |   |`* Re: Contents of file changed while application is reading it28A.I873
|      |   | `* Re: Contents of file changed while application is reading itCharlie Gibbs
|      |   |  `* Re: Contents of file changed while application is reading it28A.I873
|      |   |   `* Re: Contents of file changed while application is reading itCharlie Gibbs
|      |   |    `* Re: Contents of file changed while application is reading it28A.I873
|      |   |     +- Re: Contents of file changed while application is reading itCharlie Gibbs
|      |   |     `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|      |   |      `* Re: Contents of file changed while application is reading itCarlos E.R.
|      |   |       +* Re: Contents of file changed while application is reading itCharlie Gibbs
|      |   |       |+* Re: Contents of file changed while application is reading itCarlos E. R.
|      |   |       ||`* Re: Contents of file changed while application is reading itRich
|      |   |       || `- Re: Contents of file changed while application is reading itCarlos E.R.
|      |   |       |+* Re: Contents of file changed while application is reading itThe Natural Philosopher
|      |   |       ||`- Re: Contents of file changed while application is reading itCharlie Gibbs
|      |   |       |`- Re: Contents of file changed while application is reading itRich
|      |   |       `* Re: Contents of file changed while application is reading it28B.I874
|      |   |        `* Re: Contents of file changed while application is reading itCharlie Gibbs
|      |   |         +* Re: Contents of file changed while application is reading itAllodoxaphobia
|      |   |         |+* Re: Contents of file changed while application is reading itThe Natural Philosopher
|      |   |         ||`- Re: Contents of file changed while application is reading itCharlie Gibbs
|      |   |         |`- Re: Contents of file changed while application is reading it28B.I874
|      |   |         `- Re: Contents of file changed while application is reading it28B.I874
|      |   `* Re: Contents of file changed while application is reading itDavid W. Hodgins
|      |    `- Re: Contents of file changed while application is reading it28A.I873
|      `* Re: Contents of file changed while application is reading itRobert Riches
|       `* Re: Contents of file changed while application is reading itCarlos E.R.
|        `* Re: Contents of file changed while application is reading it28A.I873
|         `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|          `* Re: Contents of file changed while application is reading it28A.I873
|           `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|            `* Re: Contents of file changed while application is reading it28A.I873
|             `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|              +* Re: Contents of file changed while application is reading itDavid W. Hodgins
|              |`* Re: Contents of file changed while application is reading it28A.I873
|              | `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|              |  `- Re: Contents of file changed while application is reading it28A.I873
|              `* Re: Contents of file changed while application is reading it28A.I873
|               +* Re: Contents of file changed while application is reading itThe Natural Philosopher
|               |`- Re: Contents of file changed while application is reading it28A.I873
|               `* Re: Contents of file changed while application is reading itRichard Kettlewell
|                +* Re: Contents of file changed while application is reading itThe Natural Philosopher
|                |`* Re: Contents of file changed while application is reading itRichard Kettlewell
|                | `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|                |  `* Re: Contents of file changed while application is reading itRichard Kettlewell
|                |   `- Re: Contents of file changed while application is reading itThe Natural Philosopher
|                `* Re: Contents of file changed while application is reading it28B.I874
|                 `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|                  +* Re: Contents of file changed while application is reading itDan Espen
|                  |`- Re: Contents of file changed while application is reading it28B.I874
|                  `* Re: Contents of file changed while application is reading it28B.I874
|                   `* Re: Contents of file changed while application is reading itThe Natural Philosopher
|                    `- Re: Contents of file changed while application is reading it28B.I874
+* Re: Contents of file changed while application is reading itDan Espen
|+* Re: Contents of file changed while application is reading itThe Natural Philosopher
||`- Re: Contents of file changed while application is reading it28A.I873
|`- Re: Contents of file changed while application is reading itCarlos E.R.
`- Re: Contents of file changed while application is reading itThe Natural Philosopher

Pages:1234
Re: Contents of file changed while application is reading it

<Y_6cnX9ArrHJ4Jj5nZ2dnZfqn_adnZ2d@earthlink.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=10176&group=comp.os.linux.misc#10176

  copy link   Newsgroups: comp.os.linux.misc
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!69.80.99.22.MISMATCH!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 06 Mar 2023 05:42:44 +0000
Subject: Re: Contents of file changed while application is reading it
Newsgroups: comp.os.linux.misc
References: <ttg9pl$301qu$1@dont-email.me> <DKqdnUe7v8BlT2b-nZ2dnZfqn_qdnZ2d@giganews.com> <ttgq6m$279gm$25@dont-email.me> <op.10zzw9sea3w0dxdave@hodgins.homeip.net> <t2aucjxrkf.ln2@Telcontar.valinor> <tthv4d$27bbi$22@dont-email.me> <vacucjxlnh.ln2@Telcontar.valinor> <tthvvq$27bbi$26@dont-email.me> <5q8vcjxgqm.ln2@Telcontar.valinor> <E_KcnbZiKM629mD-nZ2dnZfqn_adnZ2d@earthlink.com> <au81djx3vj.ln2@Telcontar.valinor> <n82dnezIYPQRv2P-nZ2dnZfqnPWdnZ2d@earthlink.com> <ttl9mo$27bbi$27@dont-email.me> <WNGdnchgFpfFdmP-nZ2dnZfqnPWdnZ2d@earthlink.com> <9TPLL.243396$Ldj8.162746@fx47.iad> <v4ednWJZ6tlFgJ35nZ2dnZfqnPqdnZ2d@earthlink.com> <Ms6ML.188091$Sgyc.182208@fx40.iad> <hp-cnWTQsqs575z5nZ2dnZfqn_adnZ2d@earthlink.com> <ttsf2n$279gm$65@dont-email.me> <e6u8djxuiu.ln2@Telcontar.valinor> <yNOdnQVWhIAhvZn5nZ2dnZfqnPGdnZ2d@earthlink.com> <0TVML.172384$b7Kc.85981@fx39.iad>
From: 28B.I...@noabzba.net (28B.I874)
Organization: gear transect
Date: Mon, 6 Mar 2023 00:42:43 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <0TVML.172384$b7Kc.85981@fx39.iad>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Message-ID: <Y_6cnX9ArrHJ4Jj5nZ2dnZfqn_adnZ2d@earthlink.com>
Lines: 61
X-Usenet-Provider: http://www.giganews.com
NNTP-Posting-Host: 68.222.41.46
X-Trace: sv3-yVVJ2mAo5Fv3PIteL6v05WLABIonspai0SsnhB4DWom4Q6mQdme4RE0tQQIcQtQpd2BY1p0HVCoskKa!x/G9C/mxSm8GNcAVrLPTPSJ71Jt5dEOZrGmN3+/1KXUMJA6+9FCyK8ryrXLgDefHR9dAc78GJaZT!7Xy2aNjHm+WYRKSScMI=
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 4246
 by: 28B.I874 - Mon, 6 Mar 2023 05:42 UTC

On 3/5/23 12:35 AM, Charlie Gibbs wrote:
> On 2023-03-05, 28B.I874 <28B.I874@noabzba.net> wrote:
>
>> Most software, ONE third is the actual "doing stuff"
>> part - the other TWO thirds revolves around handling
>> potential user screw-ups.
>
> And a lot of that work can be avoided if you
>
> 1. convince the user that he/she is stupid
> and is only getting what he/she deserves
>
> or
>
> 2. sell the users on your new corporate policy:
> "That's not a bug, it's a feature!"

Well, there are psychology issues there ...

Convince the user that they are "above average"
and are GETTING FINE SOFTWARE SUITED FOR THEIR
TALENTS :-)

> Microsoft's greatest crime against humanity is that they
> have lowered users' standards so far as to wean them off
> reliability. "Re-boot, re-format, re-install" is now the
> Way of the Universe in the minds of most users, and they'll
> meekly shrug their shoulders and accept the massive drain
> on their time (and wallets) - as long as the screens are
> pretty. I've heard this described as "trout management":
> dangle something shiny with a hook in it in front of them
> and they'll strike every time.

Yep. the "three-key salute" is the usual fix for M$ stuff.

What I really don't like is that they keep dumbing-down
their mainline apps - like their Office stuff. Options
that used to be there just AREN'T anymore. A few more
disappear with every release.

Yea ... making that "complicated" stuff work is EXPENSIVE
for them.

So, their strategy has just been to dumb-down the users,
their expectations.

> It's morally wrong to allow a sucker to keep his money.
> -- W.C. Fields

Dear WC :-)

And I liked his co-star Mae West too ... how'd she stay
out of jail, much less on-screen, in the 30s ??? :-)

(Research Mae - she was the Real Deal - writer/actress/
de-facto director/producer for most of her life in a
wide variety of media projects. A lot of IQ/talent
behind that 'madame' persona)

Re: Contents of file changed while application is reading it

<Y_6cnX5ArrEK4Jj5nZ2dnZfqn_YAAAAA@earthlink.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=10177&group=comp.os.linux.misc#10177

  copy link   Newsgroups: comp.os.linux.misc
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!69.80.99.22.MISMATCH!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 06 Mar 2023 05:43:50 +0000
Subject: Re: Contents of file changed while application is reading it
Newsgroups: comp.os.linux.misc
References: <ttg9pl$301qu$1@dont-email.me> <DKqdnUe7v8BlT2b-nZ2dnZfqn_qdnZ2d@giganews.com> <ttgq6m$279gm$25@dont-email.me> <op.10zzw9sea3w0dxdave@hodgins.homeip.net> <t2aucjxrkf.ln2@Telcontar.valinor> <tthv4d$27bbi$22@dont-email.me> <vacucjxlnh.ln2@Telcontar.valinor> <tthvvq$27bbi$26@dont-email.me> <5q8vcjxgqm.ln2@Telcontar.valinor> <E_KcnbZiKM629mD-nZ2dnZfqn_adnZ2d@earthlink.com> <au81djx3vj.ln2@Telcontar.valinor> <n82dnezIYPQRv2P-nZ2dnZfqnPWdnZ2d@earthlink.com> <ttl9mo$27bbi$27@dont-email.me> <WNGdnchgFpfFdmP-nZ2dnZfqnPWdnZ2d@earthlink.com> <9TPLL.243396$Ldj8.162746@fx47.iad> <v4ednWJZ6tlFgJ35nZ2dnZfqnPqdnZ2d@earthlink.com> <Ms6ML.188091$Sgyc.182208@fx40.iad> <hp-cnWTQsqs575z5nZ2dnZfqn_adnZ2d@earthlink.com> <ttsf2n$279gm$65@dont-email.me> <e6u8djxuiu.ln2@Telcontar.valinor> <yNOdnQVWhIAhvZn5nZ2dnZfqnPGdnZ2d@earthlink.com> <0TVML.172384$b7Kc.85981@fx39.iad> <slrnu097dk.20ob.trepidation@vps.jonz.net>
From: 28B.I...@noabzba.net (28B.I874)
Organization: gear transect
Date: Mon, 6 Mar 2023 00:43:50 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <slrnu097dk.20ob.trepidation@vps.jonz.net>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Message-ID: <Y_6cnX5ArrEK4Jj5nZ2dnZfqn_YAAAAA@earthlink.com>
Lines: 19
X-Usenet-Provider: http://www.giganews.com
NNTP-Posting-Host: 68.222.41.46
X-Trace: sv3-ajuOH4HSkYZ0vO8+5jnH827ZTpxMZYcO8bXFWgSqFHle6mB/B1hB6PrOFCWELnWH/WlnNvbwp6xSt/g!fxobyyDTYSepb91K+wvyNTJn+eLGXV0XNRz+9D/ZLxr91w7ZVlGJB+2Jj9NLu0KOjtDx/NMNWOm0!MNSn4Wmf4FQSY2FXAqk=
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 3009
 by: 28B.I874 - Mon, 6 Mar 2023 05:43 UTC

On 3/5/23 8:48 AM, Allodoxaphobia wrote:
> On Sun, 05 Mar 2023 05:35:56 GMT, Charlie Gibbs wrote:
>>
>> Microsoft's greatest crime against humanity is that they
>> have lowered users' standards so far as to wean them off
>> reliability. "Re-boot, re-format, re-install" is now the
>> Way of the Universe in the minds of most users, and they'll
>> meekly shrug their shoulders and accept the massive drain
>> on their time (and wallets) - as long as the screens are
>> pretty. I've heard this described as "trout management":
>> dangle something shiny with a hook in it in front of them
>> and they'll strike every time.
>
> Microsoft LONG AGO gave up any focus on fault-tolerant systems.
> Their main focus now is on fault-tolerant customers.

I think they won.

Must have studied DC pols .....

Re: Contents of file changed while application is reading it

<DfWcncAlN-hkH5j5nZ2dnZfqn_qdnZ2d@earthlink.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=10179&group=comp.os.linux.misc#10179

  copy link   Newsgroups: comp.os.linux.misc
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-1.nntp.ord.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 06 Mar 2023 06:06:48 +0000
Subject: Re: Contents of file changed while application is reading it
Newsgroups: comp.os.linux.misc
References: <ttg9pl$301qu$1@dont-email.me>
<DKqdnUe7v8BlT2b-nZ2dnZfqn_qdnZ2d@giganews.com>
<ttgq6m$279gm$25@dont-email.me> <op.10zzw9sea3w0dxdave@hodgins.homeip.net>
<t2aucjxrkf.ln2@Telcontar.valinor> <tthv4d$27bbi$22@dont-email.me>
<vacucjxlnh.ln2@Telcontar.valinor> <tthvvq$27bbi$26@dont-email.me>
<slrntvqvr2.dmi.spamtrap42@one.localnet> <du71djxs8i.ln2@Telcontar.valinor>
<1JScnZYeWsEBbGP-nZ2dnZfqnPudnZ2d@earthlink.com>
<ttn9gg$279gm$46@dont-email.me>
<2GqdnVP81dcMgZ35nZ2dnZfqnPednZ2d@earthlink.com>
<ttpr01$279gm$50@dont-email.me>
<dYudnfNen9mG55z5nZ2dnZfqn_ednZ2d@earthlink.com>
<ttsejp$279gm$64@dont-email.me>
<qPadnQSthu_CfJ_5nZ2dnZfqn_ednZ2d@earthlink.com>
<wwvcz5o7sfd.fsf@LkoBDZeT.terraraq.uk>
<CtScnbUpEtjMcp75nZ2dnZfqnPWdnZ2d@earthlink.com>
<tu264t$vn7i$18@dont-email.me>
From: 28B.I...@noabzba.net (28B.I874)
Organization: gear transect
Date: Mon, 6 Mar 2023 01:06:43 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <tu264t$vn7i$18@dont-email.me>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <DfWcncAlN-hkH5j5nZ2dnZfqn_qdnZ2d@earthlink.com>
Lines: 122
X-Usenet-Provider: http://www.giganews.com
NNTP-Posting-Host: 68.222.41.46
X-Trace: sv3-OTAaSpAzr9tVziY0sCFrPmG+3uZ6sz1v6Q4AyxoqhbtPIbzmKULSxUElKksrDipP/ZZm3+wbPl2K0rv!RvSIVj00I2PwhDkWNbDYYVL3AaWCxOiDzA6rVdkjOdmFXrPZzVim9rfQVxT4fSmVhRl6LeCI4UJX!AmOn35cyDI0Av6Y3lBM=
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: 28B.I874 - Mon, 6 Mar 2023 06:06 UTC

On 3/5/23 8:40 AM, The Natural Philosopher wrote:
> On 05/03/2023 01:24, 28B.I874 wrote:
>> On 3/4/23 4:54 AM, Richard Kettlewell wrote:
>>> "28A.I873" <28A.I873@noabzba.net> writes:
>>>>    Ah ... an interesting technical question about 'C' ...
>>>>    assume you're looking for the position of a given
>>>>    character in a string .......
>>>>
>>>>      for(x=0;x<strlen(TheStr);x++)
>>>>      {
>>>>        if(TheStr[x]==TheChar) return(x);
>>>>      }
>>>>      return(-1);
>>>>
>>>>   is a pretty common approach. HOWEVER, the QUESTION,
>>>>   is "strlen(TheStr)" calculated over and over again
>>>>   for every iteration ??? That seems SLOW, esp if
>>>>   TheStr is BIG.
>>>
>>> The short answer to your question is: stop hand-coding the search and
>>> use strchr.
>>
>>
>>    The above  was just an example. Usually you'd want
>>    to do a lot more than JUST find the index of TheChar.
>>    strchr() gets rid of those few lines of code, but
>>    what is IT doing, how they code it ? Same thing ?
>>    Kinda has to be. I can dig into the .h and see ...
>>
> I would code it - if its what think it is, as
>
> char *strchr( char *p, char a)
>     {
>     do {
>         if (a==*p) return p;
>          }
> while (*p++);
> return NULL;
> }

Also very good. Saves a line or two and a local var, so
maybe faster.

But I do prefer clear indexes to pointer math ...

However in a "simple" case like this, either is
fairly clear. Now if you start nesting, or worse
recurring, it gets yucky quick :-)

> I think I DID code it once years ago, when I was asked to create stdlib
> and basic  I/O functions for an embedded processor board.
>
> A modern c compiler would take that and make about 5 lines of assembler,
> and caching would make it lightning fast.

Not MUCH cache in microcontrollers. Sometimes none.
However I've seen compilers recognize when they can
"re-use" registers that aren't part of what you're
doing at the moment - and accessing those is fast.

>>    Now just a few more lines and you have a "find Nth
>>    instance of TheChar" and a few more lines you have
>>    strtok() and a few more you have "return Nth ascii-
>>    delimited field of TheStr" - which I needed yesterday
>>    to parse-out stuff generated by a system() call so
>>    I whipped this together >>
>>      void StrField(char *ss,char *dlims,int fn)
>>      {
>>        int cnt=0;
>>        char *p;
>>        p=strtok(ss,dlims);
>>        while (p != NULL)
>>        {
>>          if(cnt++>=fn) { strcpy(ss,p); return; } // found, return
>>          p=strtok(NULL,dlims);                   // get another chip
>>        }
>>        ss[0]=0;   // else return nothing
>>      }
>>
>>    which is a bit clunk but worked ok for what I needed.
>>
>>> The long answer is that it depends on the type of the pointer.
>>>
>>> If it’s ‘char *TheStr’ then the compiler is entitled to assume that
>>> the string doesn’t change during the execution of the code fragment. GCC
>>> and Clang will therefore call strlen only once.
>>
>>    Hmmm ... but look at strtok():
>>
>>      char *strtok(char *str, const char *delim)
>>
>>    and a number of other "mod in-place" functions that DO
>>    change the length of your *TheStr before all is done.
>>    Sometimes you need to waste memory creating a safe copy
>>    before  you call such functions. Fine if TheStr is 255
>>    bytes, not so great if it's megabytes.
>>
>>> If it’s ‘volatile char *TheStr’ then this assumption is prohibited - the
>>> string “may be modified in ways unknown to the implementation” in the
>>> language of the spec. (The intention is support memory-mapped hardware.)
>>> In this case a compiler must call strlen every time round the loop (and
>>> indeed GCC and Clang do so).
>>
>>    Got it. The bugaboo with compilers (and lots of other things)
>>    is that it is difficult to write a 'general solution' when
>>    the INTENT of the user may not be so clear. 'volatile char*'
>>    is one way to help with that but you never REALLY know what
>>    the user has in mind.
>>
>>    Anyhow, just for fun, I'm gonna actually CHECK to see when
>>    strlen() is and is not re-evoked in loops like the sample
>>    above.
>

Re: Contents of file changed while application is reading it

<FgWdnThtdob-G5j5nZ2dnZfqn_udnZ2d@earthlink.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=10180&group=comp.os.linux.misc#10180

  copy link   Newsgroups: comp.os.linux.misc
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!69.80.99.26.MISMATCH!Xl.tags.giganews.com!local-2.nntp.ord.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 06 Mar 2023 06:21:23 +0000
Subject: Re: Contents of file changed while application is reading it
Newsgroups: comp.os.linux.misc
References: <ttg9pl$301qu$1@dont-email.me> <DKqdnUe7v8BlT2b-nZ2dnZfqn_qdnZ2d@giganews.com> <ttgq6m$279gm$25@dont-email.me> <op.10zzw9sea3w0dxdave@hodgins.homeip.net> <t2aucjxrkf.ln2@Telcontar.valinor> <tthv4d$27bbi$22@dont-email.me> <vacucjxlnh.ln2@Telcontar.valinor> <tthvvq$27bbi$26@dont-email.me> <slrntvqvr2.dmi.spamtrap42@one.localnet> <du71djxs8i.ln2@Telcontar.valinor> <1JScnZYeWsEBbGP-nZ2dnZfqnPudnZ2d@earthlink.com> <ttn9gg$279gm$46@dont-email.me> <2GqdnVP81dcMgZ35nZ2dnZfqnPednZ2d@earthlink.com> <ttpr01$279gm$50@dont-email.me> <dYudnfNen9mG55z5nZ2dnZfqn_ednZ2d@earthlink.com> <ttsejp$279gm$64@dont-email.me> <qPadnQSthu_CfJ_5nZ2dnZfqn_ednZ2d@earthlink.com> <wwvcz5o7sfd.fsf@LkoBDZeT.terraraq.uk> <CtScnbUpEtjMcp75nZ2dnZfqnPWdnZ2d@earthlink.com> <tu264t$vn7i$18@dont-email.me> <tu2g16$1crqf$1@dont-email.me>
From: 28B.I...@noabzba.net (28B.I874)
Organization: gear transect
Date: Mon, 6 Mar 2023 01:21:22 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <tu2g16$1crqf$1@dont-email.me>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <FgWdnThtdob-G5j5nZ2dnZfqn_udnZ2d@earthlink.com>
Lines: 53
X-Usenet-Provider: http://www.giganews.com
NNTP-Posting-Host: 68.222.41.46
X-Trace: sv3-XXYVzr6IugKEKpSOJ/prdVa1h/kabSuK5d6t84RImGkvOpB2tGwi7F9jIgDn9t/zTv8eqJt4+JadhD1!WNd6gTOtOhCRUPuyPT+6SNQMCl4YZPWuHaYu26m7eoHOnaPwzfQigl/zcOzC/vp6stz05JrjwI5b!9GvAqwiZvHfCBqnE2dE=
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
X-Received-Bytes: 4416
 by: 28B.I874 - Mon, 6 Mar 2023 06:21 UTC

On 3/5/23 11:29 AM, Dan Espen wrote:
> The Natural Philosopher <tnp@invalid.invalid> writes:
>
>> On 05/03/2023 01:24, 28B.I874 wrote:
>>> On 3/4/23 4:54 AM, Richard Kettlewell wrote:
>>>> "28A.I873" <28A.I873@noabzba.net> writes:
>>>>>    Ah ... an interesting technical question about 'C' ...
>>>>>    assume you're looking for the position of a given
>>>>>    character in a string .......
>>>>>
>>>>>      for(x=0;x<strlen(TheStr);x++)
>>>>>      {
>>>>>        if(TheStr[x]==TheChar) return(x);
>>>>>      }
>>>>>      return(-1);
>>>>>
>>>>>   is a pretty common approach. HOWEVER, the QUESTION,
>>>>>   is "strlen(TheStr)" calculated over and over again
>>>>>   for every iteration ??? That seems SLOW, esp if
>>>>>   TheStr is BIG.
>>>>
>>>> The short answer to your question is: stop hand-coding the search and
>>>> use strchr.
>>>   The above  was just an example. Usually you'd want
>>>   to do a lot more than JUST find the index of TheChar.
>>>   strchr() gets rid of those few lines of code, but
>>>   what is IT doing, how they code it ? Same thing ?
>>>   Kinda has to be. I can dig into the .h and see ...
>>>
>> I would code it - if its what think it is, as
>>
>> char *strchr( char *p, char a)
>
> I believe if you look at string.h you might see that gcc goes a bit
> farther toward optimizing than any C code would do.

We'll have to check. A few issues have been mentioned here
and I think they deserve at least a little investigation
and/or benchmarking. There are trix and then there are the
PERFECT trix. Lots of lib routines involve scanning down
a string in one or more places, so it's important.

DID like Mr.Natural's pointery solution to the basic 'find
char in string'. It'll be in my next projects (with creds).

Note that strtok() does NOT take a char as the delimiter but
a STRING ... ie you can have multiple delims. I've used this
to advantage in ascii-delimited multivalue DB records (which
I sometimes make for simple apps - SO easy to assemble as you
go along). Easy to read also. ('general-purpose' EDITING, well,
that's not so easy ... "intent" becomes involved as there are
a number of ways to structure fields/sub-fields/sub-sub-fields)

Re: Contents of file changed while application is reading it

<tu4b99$vlig$23@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=10185&group=comp.os.linux.misc#10185

  copy link   Newsgroups: comp.os.linux.misc
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: tnp...@invalid.invalid (The Natural Philosopher)
Newsgroups: comp.os.linux.misc
Subject: Re: Contents of file changed while application is reading it
Date: Mon, 6 Mar 2023 09:20:40 +0000
Organization: A little, after lunch
Lines: 62
Message-ID: <tu4b99$vlig$23@dont-email.me>
References: <ttg9pl$301qu$1@dont-email.me>
<DKqdnUe7v8BlT2b-nZ2dnZfqn_qdnZ2d@giganews.com>
<ttgq6m$279gm$25@dont-email.me> <op.10zzw9sea3w0dxdave@hodgins.homeip.net>
<t2aucjxrkf.ln2@Telcontar.valinor> <tthv4d$27bbi$22@dont-email.me>
<vacucjxlnh.ln2@Telcontar.valinor> <tthvvq$27bbi$26@dont-email.me>
<slrntvqvr2.dmi.spamtrap42@one.localnet> <du71djxs8i.ln2@Telcontar.valinor>
<1JScnZYeWsEBbGP-nZ2dnZfqnPudnZ2d@earthlink.com>
<ttn9gg$279gm$46@dont-email.me>
<2GqdnVP81dcMgZ35nZ2dnZfqnPednZ2d@earthlink.com>
<ttpr01$279gm$50@dont-email.me>
<dYudnfNen9mG55z5nZ2dnZfqn_ednZ2d@earthlink.com>
<ttsejp$279gm$64@dont-email.me>
<qPadnQSthu_CfJ_5nZ2dnZfqn_ednZ2d@earthlink.com>
<wwvcz5o7sfd.fsf@LkoBDZeT.terraraq.uk> <ttv5cm$27bbi$63@dont-email.me>
<wwvmt4sn4lp.fsf@LkoBDZeT.terraraq.uk> <ttvbog$279gm$79@dont-email.me>
<wwvjzzv4091.fsf@LkoBDZeT.terraraq.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 6 Mar 2023 09:20:41 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="22cf8bd1c556ce9c5a96ae5ec6358852";
logging-data="1037904"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/UcvdYi1qkygv1FH/VXE7X9r7lC3Qdog8="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.7.1
Cancel-Lock: sha1:rHKYkw1wGMOkwKFziJ0ibxJMmO4=
In-Reply-To: <wwvjzzv4091.fsf@LkoBDZeT.terraraq.uk>
Content-Language: en-GB
 by: The Natural Philosop - Mon, 6 Mar 2023 09:20 UTC

On 05/03/2023 16:43, Richard Kettlewell wrote:
> The Natural Philosopher <tnp@invalid.invalid> writes:
>> On 04/03/2023 11:22, Richard Kettlewell wrote:
>>> It’s suitable for coping with signals/interrupts too, yes.
>>> The point that sometimes causes confusion is that it’s _not_
>>> suitable
>>> for managing concurrent access from multiple threads.
>>
>> If I understand what exactly you mean by that, the question would be
>> 'why not?'
>
> ‘volatile’ affects what assembler instructions the compiler generates -
> it forces it to generate read and write instructions that otherwise
> wouldn’t be there.
>
> However, at runtime, the CPU core may re-order memory operations
> compared to how they appear in the assembler code, in pursuit of higher
> performance.
>
> Within a single core, this is invisible the programmer: a re-ordering
> isn’t allowed to change the execution of single-threaded code.
>
> With multiple cores, however, the effects can be visible. A memory write
> on CPU 1 may not be visible in a memory read by CPU 2 for many cycles
> after it was executed. There are more complex examples: for instance if
> CPU 1 does two memory writes, CPU 2 might see the effect of the second
> before the effect of the first.
>
> The exact rules differ between CPU architectures. x86 is one of the most
> forgiving (though even there a store may be re-ordered after a load) -
> presumably there is a lot of logic dedicated to maintaining consistency
> between cores. Arm is one of the least forgiving.
>
> For a programmer there are two solutions (or three if you count avoiding
> concurrency).
>
> * Use memory barrier instructions, which prohibit re-orderings across
> them. These instructions are generally built into locks, semaphores,
> etc, so properly written threaded code is already immunized against
> the issue.
>
> This explains the language in
> https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_12:
> it is telling us which functions have to include a memory barrier.
>
> * Use atomic operations, which provide a set of memory operations with
> guarantees about re-ordering built in.
>
> (See https://en.cppreference.com/w/c/atomic for atomic operations in
> C.)
>

Ah. Thanks Richard. I never thought about multiple *cores*.

That explains it all nicely.

--
It’s easier to fool people than to convince them that they have been fooled.
Mark Twain

Re: Contents of file changed while application is reading it

<tu4bog$vn7i$29@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=10186&group=comp.os.linux.misc#10186

  copy link   Newsgroups: comp.os.linux.misc
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: tnp...@invalid.invalid (The Natural Philosopher)
Newsgroups: comp.os.linux.misc
Subject: Re: Contents of file changed while application is reading it
Date: Mon, 6 Mar 2023 09:28:48 +0000
Organization: A little, after lunch
Lines: 86
Message-ID: <tu4bog$vn7i$29@dont-email.me>
References: <ttg9pl$301qu$1@dont-email.me>
<DKqdnUe7v8BlT2b-nZ2dnZfqn_qdnZ2d@giganews.com>
<ttgq6m$279gm$25@dont-email.me> <op.10zzw9sea3w0dxdave@hodgins.homeip.net>
<t2aucjxrkf.ln2@Telcontar.valinor> <tthv4d$27bbi$22@dont-email.me>
<vacucjxlnh.ln2@Telcontar.valinor> <tthvvq$27bbi$26@dont-email.me>
<slrntvqvr2.dmi.spamtrap42@one.localnet> <du71djxs8i.ln2@Telcontar.valinor>
<1JScnZYeWsEBbGP-nZ2dnZfqnPudnZ2d@earthlink.com>
<ttn9gg$279gm$46@dont-email.me>
<2GqdnVP81dcMgZ35nZ2dnZfqnPednZ2d@earthlink.com>
<ttpr01$279gm$50@dont-email.me>
<dYudnfNen9mG55z5nZ2dnZfqn_ednZ2d@earthlink.com>
<ttsejp$279gm$64@dont-email.me>
<qPadnQSthu_CfJ_5nZ2dnZfqn_ednZ2d@earthlink.com>
<wwvcz5o7sfd.fsf@LkoBDZeT.terraraq.uk>
<CtScnbUpEtjMcp75nZ2dnZfqnPWdnZ2d@earthlink.com>
<tu264t$vn7i$18@dont-email.me>
<DfWcncAlN-hkH5j5nZ2dnZfqn_qdnZ2d@earthlink.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 6 Mar 2023 09:28:48 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="22cf8bd1c556ce9c5a96ae5ec6358852";
logging-data="1039602"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/qOzBm1k9ztqw8bVRg5msLd8omIYnq+Z4="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
Thunderbird/102.7.1
Cancel-Lock: sha1:+nW7QBi0cjCQwtU/RyTFZ9xsMvw=
In-Reply-To: <DfWcncAlN-hkH5j5nZ2dnZfqn_qdnZ2d@earthlink.com>
Content-Language: en-GB
 by: The Natural Philosop - Mon, 6 Mar 2023 09:28 UTC

On 06/03/2023 06:06, 28B.I874 wrote:
> On 3/5/23 8:40 AM, The Natural Philosopher wrote:
>> On 05/03/2023 01:24, 28B.I874 wrote:
>>> On 3/4/23 4:54 AM, Richard Kettlewell wrote:
>>>> "28A.I873" <28A.I873@noabzba.net> writes:
>>>>>    Ah ... an interesting technical question about 'C' ...
>>>>>    assume you're looking for the position of a given
>>>>>    character in a string .......
>>>>>
>>>>>      for(x=0;x<strlen(TheStr);x++)
>>>>>      {
>>>>>        if(TheStr[x]==TheChar) return(x);
>>>>>      }
>>>>>      return(-1);
>>>>>
>>>>>   is a pretty common approach. HOWEVER, the QUESTION,
>>>>>   is "strlen(TheStr)" calculated over and over again
>>>>>   for every iteration ??? That seems SLOW, esp if
>>>>>   TheStr is BIG.
>>>>
>>>> The short answer to your question is: stop hand-coding the search and
>>>> use strchr.
>>>
>>>
>>>    The above  was just an example. Usually you'd want
>>>    to do a lot more than JUST find the index of TheChar.
>>>    strchr() gets rid of those few lines of code, but
>>>    what is IT doing, how they code it ? Same thing ?
>>>    Kinda has to be. I can dig into the .h and see ...
>>>
>> I would code it - if its what think it is, as
>>
>> char *strchr( char *p, char a)
>>      {
>>      do {
>>          if (a==*p) return p;
>>           }
>> while (*p++);
>> return NULL;
>> }
>
>
>   Also very good. Saves a line or two and a local var, so
>   maybe faster.
>
>   But I do prefer clear indexes to pointer math ...
>
Pointers dont need an extra variable to iterate through a string.
When I first learnt C with very stupid compilers, trhat was an
advantage, as an indierect load from memory was a lot faster than using
an offset to a pointer

>   However in a "simple" case like this, either is
>   fairly clear. Now if you start nesting, or worse
>   recurring, it gets yucky quick  :-)
>
>
>> I think I DID code it once years ago, when I was asked to create
>> stdlib and basic  I/O functions for an embedded processor board.
>>
>> A modern c compiler would take that and make about 5 lines of
>> assembler, and caching would make it lightning fast.
>
>   Not MUCH cache in microcontrollers. Sometimes none.
>   However I've seen compilers recognize when they can
>   "re-use" registers that aren't part of what you're
>   doing at the moment - and accessing those is fast.
>
>
>
Oh this board was an 8088. It was the monitor and control board for a
specialised minicomputer. Sort of like a complex bios on a board. In
charge of booting everything up board by board and then testing the
interboard comms. I think. In its own right it was a pretty nice little
personal computer. Serial comms and a floppy drive and I ported FORTH
onto it as well..

>
--
In a Time of Universal Deceit, Telling the Truth Is a Revolutionary Act.

- George Orwell

Re: Contents of file changed while application is reading it

<xoCcndrYgN02bZj5nZ2dnZfqn_ednZ2d@earthlink.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=10188&group=comp.os.linux.misc#10188

  copy link   Newsgroups: comp.os.linux.misc
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border-2.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-1.nntp.ord.giganews.com!nntp.earthlink.com!news.earthlink.com.POSTED!not-for-mail
NNTP-Posting-Date: Mon, 06 Mar 2023 13:54:51 +0000
Subject: Re: Contents of file changed while application is reading it
Newsgroups: comp.os.linux.misc
References: <ttg9pl$301qu$1@dont-email.me>
<DKqdnUe7v8BlT2b-nZ2dnZfqn_qdnZ2d@giganews.com>
<ttgq6m$279gm$25@dont-email.me> <op.10zzw9sea3w0dxdave@hodgins.homeip.net>
<t2aucjxrkf.ln2@Telcontar.valinor> <tthv4d$27bbi$22@dont-email.me>
<vacucjxlnh.ln2@Telcontar.valinor> <tthvvq$27bbi$26@dont-email.me>
<slrntvqvr2.dmi.spamtrap42@one.localnet> <du71djxs8i.ln2@Telcontar.valinor>
<1JScnZYeWsEBbGP-nZ2dnZfqnPudnZ2d@earthlink.com>
<ttn9gg$279gm$46@dont-email.me>
<2GqdnVP81dcMgZ35nZ2dnZfqnPednZ2d@earthlink.com>
<ttpr01$279gm$50@dont-email.me>
<dYudnfNen9mG55z5nZ2dnZfqn_ednZ2d@earthlink.com>
<ttsejp$279gm$64@dont-email.me>
<qPadnQSthu_CfJ_5nZ2dnZfqn_ednZ2d@earthlink.com>
<wwvcz5o7sfd.fsf@LkoBDZeT.terraraq.uk>
<CtScnbUpEtjMcp75nZ2dnZfqnPWdnZ2d@earthlink.com>
<tu264t$vn7i$18@dont-email.me>
<DfWcncAlN-hkH5j5nZ2dnZfqn_qdnZ2d@earthlink.com>
<tu4bog$vn7i$29@dont-email.me>
From: 28B.I...@noabzba.net (28B.I874)
Organization: gear transect
Date: Mon, 6 Mar 2023 08:54:43 -0500
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <tu4bog$vn7i$29@dont-email.me>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 8bit
Message-ID: <xoCcndrYgN02bZj5nZ2dnZfqn_ednZ2d@earthlink.com>
Lines: 92
X-Usenet-Provider: http://www.giganews.com
NNTP-Posting-Host: 68.222.41.46
X-Trace: sv3-b7FA2K5PKZ7iU481hO+vh/lNx2f+GhpwqLj4pNFCoaIPvyZrs/cQx6Se7nj/wTKgp2VxQak6uXZDXDs!TXq7Z8o0Hvj07DqSKa5j3a9o/Ekqo90onls4yLCRzvW2K5vtSi5b5As3qe0hb4xX6Gj/kGH3rLDV!nXApNYSo25y4fday4Bs=
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.40
 by: 28B.I874 - Mon, 6 Mar 2023 13:54 UTC

On 3/6/23 4:28 AM, The Natural Philosopher wrote:
> On 06/03/2023 06:06, 28B.I874 wrote:
>> On 3/5/23 8:40 AM, The Natural Philosopher wrote:
>>> On 05/03/2023 01:24, 28B.I874 wrote:
>>>> On 3/4/23 4:54 AM, Richard Kettlewell wrote:
>>>>> "28A.I873" <28A.I873@noabzba.net> writes:
>>>>>>    Ah ... an interesting technical question about 'C' ...
>>>>>>    assume you're looking for the position of a given
>>>>>>    character in a string .......
>>>>>>
>>>>>>      for(x=0;x<strlen(TheStr);x++)
>>>>>>      {
>>>>>>        if(TheStr[x]==TheChar) return(x);
>>>>>>      }
>>>>>>      return(-1);
>>>>>>
>>>>>>   is a pretty common approach. HOWEVER, the QUESTION,
>>>>>>   is "strlen(TheStr)" calculated over and over again
>>>>>>   for every iteration ??? That seems SLOW, esp if
>>>>>>   TheStr is BIG.
>>>>>
>>>>> The short answer to your question is: stop hand-coding the search and
>>>>> use strchr.
>>>>
>>>>
>>>>    The above  was just an example. Usually you'd want
>>>>    to do a lot more than JUST find the index of TheChar.
>>>>    strchr() gets rid of those few lines of code, but
>>>>    what is IT doing, how they code it ? Same thing ?
>>>>    Kinda has to be. I can dig into the .h and see ...
>>>>
>>> I would code it - if its what think it is, as
>>>
>>> char *strchr( char *p, char a)
>>>      {
>>>      do {
>>>          if (a==*p) return p;
>>>           }
>>> while (*p++);
>>> return NULL;
>>> }
>>
>>
>>    Also very good. Saves a line or two and a local var, so
>>    maybe faster.
>>
>>    But I do prefer clear indexes to pointer math ...
>>
> Pointers dont need an extra variable to iterate through a string.
> When I first learnt C with very stupid compilers, trhat was an
> advantage, as an indierect load from memory was a lot faster than using
> an offset to a pointer

I'm gonna use your method, at least for these simpler
cases where it's easy to keep track of what's what.
In 'complex' stuff though, I'll sacrifice a little
speed/size for down-the-road clarity.

>>    However in a "simple" case like this, either is
>>    fairly clear. Now if you start nesting, or worse
>>    recurring, it gets yucky quick  :-)
>>
>>
>>> I think I DID code it once years ago, when I was asked to create
>>> stdlib and basic  I/O functions for an embedded processor board.
>>>
>>> A modern c compiler would take that and make about 5 lines of
>>> assembler, and caching would make it lightning fast.
>>
>>    Not MUCH cache in microcontrollers. Sometimes none.
>>    However I've seen compilers recognize when they can
>>    "re-use" registers that aren't part of what you're
>>    doing at the moment - and accessing those is fast.
>>
>>
>>
> Oh this board was an 8088. It was the monitor and control board for a
> specialised minicomputer. Sort of like a complex bios on a board. In
> charge of booting everything up board by board and then testing the
> interboard comms. I think. In its own right it was a pretty nice little
> personal computer. Serial comms and a floppy drive and I ported FORTH
> onto it as well..

Oh, by 'embedded' I was assuming micro-controllers,
8051s or even PICs.

The 8088 wasn't the worlds greatest chip but it was
a 'microprocessor' and that gives a lot more wiggle
room.

Pages:1234
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor