Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

A penny saved is a penny to squander. -- Ambrose Bierce


devel / comp.lang.forth / How ISO C became unusable for operating systems development

SubjectAuthor
* How ISO C became unusable for operating systems developmentBrian Fox
+* Re: How ISO C became unusable for operating systems developmentminf...@arcor.de
|`* Re: How ISO C became unusable for operating systems developmentAnton Ertl
| `* Re: How ISO C became unusable for operating systems developmentPaul Rubin
|  `* Re: How ISO C became unusable for operating systems developmentminf...@arcor.de
|   `* Re: How ISO C became unusable for operating systems developmentPaul Rubin
|    +* Re: How ISO C became unusable for operating systems developmentminf...@arcor.de
|    |`* Re: How ISO C became unusable for operating systems developmentHans Bezemer
|    | `* Re: How ISO C became unusable for operating systems developmentminf...@arcor.de
|    |  +- Re: How ISO C became unusable for operating systems developmentWayne morellini
|    |  `* Re: How ISO C became unusable for operating systems developmentWayne morellini
|    |   `* Re: How ISO C became unusable for operating systems developmentminf...@arcor.de
|    |    `* Re: How ISO C became unusable for operating systems developmentWayne morellini
|    |     `* Re: How ISO C became unusable for operating systems developmentminf...@arcor.de
|    |      `- Re: How ISO C became unusable for operating systems developmentWayne morellini
|    `- Re: How ISO C became unusable for operating systems developmentWayne morellini
+* Re: How ISO C became unusable for operating systems developmentWayne morellini
|`* Re: How ISO C became unusable for operating systems developmentminf...@arcor.de
| `- Re: How ISO C became unusable for operating systems developmentWayne morellini
`- Re: How ISO C became unusable for operating systems developmentAnton Ertl

1
How ISO C became unusable for operating systems development

<c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16342&group=comp.lang.forth#16342

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:20aa:: with SMTP id 10mr4202111qvd.40.1642779044692;
Fri, 21 Jan 2022 07:30:44 -0800 (PST)
X-Received: by 2002:a05:6214:2508:: with SMTP id gf8mr4141558qvb.125.1642779044459;
Fri, 21 Jan 2022 07:30:44 -0800 (PST)
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 21 Jan 2022 07:30:44 -0800 (PST)
Injection-Info: google-groups.googlegroups.com; posting-host=99.242.210.36; posting-account=2z7GawoAAADc70p5SM5AbaCyzjLblS3g
NNTP-Posting-Host: 99.242.210.36
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
Subject: How ISO C became unusable for operating systems development
From: brian....@brianfox.ca (Brian Fox)
Injection-Date: Fri, 21 Jan 2022 15:30:44 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 4
 by: Brian Fox - Fri, 21 Jan 2022 15:30 UTC

An interesting read that I think supports Anton's observations on "undefined behaviour" in C and frustrations in using it to build GForth.

Maybe GForth should be written in GForth now. (?)

https://arxiv.org/abs/2201.07845

Re: How ISO C became unusable for operating systems development

<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16350&group=comp.lang.forth#16350

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:a892:: with SMTP id r140mr5201928qke.662.1642827983872;
Fri, 21 Jan 2022 21:06:23 -0800 (PST)
X-Received: by 2002:ad4:5be6:: with SMTP id k6mr6612156qvc.29.1642827983711;
Fri, 21 Jan 2022 21:06:23 -0800 (PST)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!feeder1.cambriumusenet.nl!feed.tweak.nl!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 21 Jan 2022 21:06:23 -0800 (PST)
In-Reply-To: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=202.153.83.178; posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 202.153.83.178
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Sat, 22 Jan 2022 05:06:23 +0000
Content-Type: text/plain; charset="UTF-8"
 by: minf...@arcor.de - Sat, 22 Jan 2022 05:06 UTC

Brian Fox schrieb am Freitag, 21. Januar 2022 um 16:30:46 UTC+1:
> An interesting read that I think supports Anton's observations on "undefined behaviour" in C and frustrations in using it to build GForth.
>
> Maybe GForth should be written in GForth now. (?)
>
> https://arxiv.org/abs/2201.07845

Thanks for the link.

To build the fastest Forth you have to write it in assembly, but you
lose portability - an old adage. C as 'universal portable assembly language'
has always been a compromise. Whether the compromise is weak
(and frustrating) or not depends on the design targets.

C++, Ada, Rust etc. are often not there for a new target platform,
but very often gcc is already available with hardware-specific libraries.

Therefore in practice there is just no other way than to cope with UB.

Re: How ISO C became unusable for operating systems development

<45519d71-6089-4ea7-9d34-ec5179ae2de3n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16352&group=comp.lang.forth#16352

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:58c1:: with SMTP id u1mr1055883qta.267.1642832911472;
Fri, 21 Jan 2022 22:28:31 -0800 (PST)
X-Received: by 2002:a05:620a:294f:: with SMTP id n15mr5217703qkp.419.1642832911288;
Fri, 21 Jan 2022 22:28:31 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 21 Jan 2022 22:28:31 -0800 (PST)
In-Reply-To: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=159.196.24.21; posting-account=WyLDIgoAAAAL9-lKxDxWp0Afty5A1XnH
NNTP-Posting-Host: 159.196.24.21
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <45519d71-6089-4ea7-9d34-ec5179ae2de3n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: waynemor...@gmail.com (Wayne morellini)
Injection-Date: Sat, 22 Jan 2022 06:28:31 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 74
 by: Wayne morellini - Sat, 22 Jan 2022 06:28 UTC

On Saturday, January 22, 2022 at 1:30:46 AM UTC+10, Brian Fox wrote:
> An interesting read that I think supports Anton's observations on "undefined behaviour" in C and frustrations in using it to build GForth.
>
> Maybe GForth should be written in GForth now. (?)
>
> https://arxiv.org/abs/2201.07845

I can't get to read this all today. But the solution is to have an sub ISO suitable for OS, Embedded maybe, and high speed Cv (C down low). But, one desire I have is a more universal transportable experience based on JavaScript engine. In the creation of new operating systems, you often lack application code base, by supporting the JavaScript engine (a constructed Java) libraries, even if not JavaScript itself (though it is basically C like) you get the other side. With this, is machine code particles (segments of machine code, which android supports, and Google had a proposal in use for web pages, which really needed total sandboxing), depending on which processor exists is which version loaded. In C development, it was 80% of the speed of assembler, but this means that at times it could be far slower, and these bottlenecks can kill code all of a sudden.

So, apart from above, what we really need is a universal assembler like language product, using the following criteria (as a subset of the above Cv, so that existing C libraries can be used). Here we have logical organising instruction flow structures that the compiler can ideally compile, with the user able to code the machine code particles for each processor supported directly. These days, outside embedded, we are co.inf to only a few processor options, bit, you only need to use one version of the assembler, and it would model the behaviour of that processor's and code's behaviour in translating to another processor. This is where expert translation techniques can be used in the compiler, done for experts and the chip manufacturers, products Cing a more streamlined performance automatically, few have the skill to by hand (with the option to do your own, as a particle, or get the auto generated version, and cisto use it. In this, as long as you don't revert to normal C context, you retain pure machine code flow, going back to C enables a context swap, so that the machine code or C state is swapped to the other, with the C compiler minimising the swap by compiling to be more compatible with the machine code particle. The developer can remain in assembler as much as they want. The trick developers need to use, is to minimise the cpu resources used, to what is needed, allowing the compiler more flexibility and in translating to another processor. If they need more, they can program one, or more particles. But, the experience is assembler in a C like construct. A number of high level C constructs would be available, but limited to those that can efficiently translate to machine code without loose. Here a little abstraction can be used, to program in a more C like fashion that it translated to 100% efficient machine language constructs. You can only program in an assembler that the compiler supports, but the little abstraction model, lies you to avoid local assembler versions, and just use that, and the compiler will use it to generate code. The trick is to always minimise and use less, so the compiler can do a better job. But, this all gives many natural options for portability and for performance efficiency, the developer just chooses the level they will work at, with specialists optimising certain machine code particles. As is done now, particularly in high end games code, where key routines or sections maybe machine code, to maximise engine performance. In OS development, drivers, and middleware, ideally, it should always be used, which would be a smoother experience. These are my thought related to my own OS development proposals. C fur portability, next round the actual language I was to use based on the processor virtual machine (developing machine code for the processor based on it), then machine code particle versions, if not complete machine code, in the finale round of development. In this, it can quickly be pushed out to new processors, when you get income to pay for it, you implement the OS code in VM, and when you get more money, you further refine it to machine code. At first there will only be a C platform for new processors, before you learn how to implement the VM, then learn custom machine code to maximise performance. The OS, drivers and middleware, are where your easiest to address common losses are, that add up. That was my corporate strategy. Once you get everything right, people's scripts will work faster (where you can't do anything but advise them on best coding). Compared to what was done, it would be a major improvement, as I was designing the instruction set, VM, communications and object structures, flow, processing, API's, language for maximum performance, where next to no wastage on the VOS on native processor, and next to no lose on many descent processors, in most of the system. As far as I know, there is only one machine code based OS on the x386 code.

Re: How ISO C became unusable for operating systems development

<e70a00c6-9539-4af2-9106-ad0b10264fe0n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16357&group=comp.lang.forth#16357

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:274c:: with SMTP id n73mr5654474qkn.48.1642847227925;
Sat, 22 Jan 2022 02:27:07 -0800 (PST)
X-Received: by 2002:a05:622a:1710:: with SMTP id h16mr6269295qtk.77.1642847227774;
Sat, 22 Jan 2022 02:27:07 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sat, 22 Jan 2022 02:27:07 -0800 (PST)
In-Reply-To: <45519d71-6089-4ea7-9d34-ec5179ae2de3n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=202.153.83.178; posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 202.153.83.178
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com> <45519d71-6089-4ea7-9d34-ec5179ae2de3n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e70a00c6-9539-4af2-9106-ad0b10264fe0n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Sat, 22 Jan 2022 10:27:07 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 25
 by: minf...@arcor.de - Sat, 22 Jan 2022 10:27 UTC

Wayne morellini schrieb am Samstag, 22. Januar 2022 um 07:28:32 UTC+1:
> On Saturday, January 22, 2022 at 1:30:46 AM UTC+10, Brian Fox wrote:
> > An interesting read that I think supports Anton's observations on "undefined behaviour" in C and frustrations in using it to build GForth.
> >
> > Maybe GForth should be written in GForth now. (?)
> >
> > https://arxiv.org/abs/2201.07845
> I can't get to read this all today. But the solution is to have an sub ISO suitable for OS, Embedded maybe, and high speed Cv (C down low). But, one desire I have is a more universal transportable experience based on JavaScript engine. In the creation of new operating systems, you often lack application code base, by supporting the JavaScript engine (a constructed Java) libraries, even if not JavaScript itself (though it is basically C like) you get the other side. With this, is machine code particles (segments of machine code, which android supports, and Google had a proposal in use for web pages, which really needed total sandboxing), depending on which processor exists is which version loaded. In C development, it was 80% of the speed of assembler, but this means that at times it could be far slower, and these bottlenecks can kill code all of a sudden.
<snip>

Containerization, sandboxing, JIT compilation etc. may be fine for user land.
But I doubt that these techniques are attractive for building performant OS
or Forth systems.

Re: How ISO C became unusable for operating systems development

<2022Jan22.124112@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16359&group=comp.lang.forth#16359

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: How ISO C became unusable for operating systems development
Date: Sat, 22 Jan 2022 11:41:12 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 34
Message-ID: <2022Jan22.124112@mips.complang.tuwien.ac.at>
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="2f8bd726d6d68d7479638f86682713fe";
logging-data="3340"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19BzehxC3qishqfGZMQPvgM"
Cancel-Lock: sha1:xR1CTrHHp89ULtGyAv2AkMrVEzo=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Sat, 22 Jan 2022 11:41 UTC

Brian Fox <brian.fox@brianfox.ca> writes:
>An interesting read that I think supports Anton's observations on "undefined behaviour" in C and frustrations in using it to build GForth.
>
>Maybe GForth should be written in GForth now. (?)

It is mostly written in Gforth. For the parts that use a GCC, we have
been thinking about how to eliminate them for some time:

@InProceedings{ertl14-c,
author = {M. Anton Ertl},
title = {How to get rid of {C}},
crossref = {euroforth14},
pages = {63--65},
url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef14/papers/ertl-c.pdf},
video = {http://www.forth-ev.de/wiki/doku.php/events:euroforth-2014:ridofc},
OPTnote = {Presentation slides}
}

@Proceedings{euroforth14,
title = {30th EuroForth Conference},
booktitle = {30th EuroForth Conference},
year = {2014},
key = {EuroForth'14},
url = {http://www.complang.tuwien.ac.at/anton/euroforth/ef14/papers/proceedings.pdf}
}

But we have not taken action yet.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2021: https://euro.theforth.net/2021

Re: How ISO C became unusable for operating systems development

<587300ea-b74e-4f0d-9f93-ed2c8c145013n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16361&group=comp.lang.forth#16361

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:4116:: with SMTP id j22mr6006346qko.465.1642858370594;
Sat, 22 Jan 2022 05:32:50 -0800 (PST)
X-Received: by 2002:a05:6214:76c:: with SMTP id f12mr7802947qvz.2.1642858370405;
Sat, 22 Jan 2022 05:32:50 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Sat, 22 Jan 2022 05:32:50 -0800 (PST)
In-Reply-To: <e70a00c6-9539-4af2-9106-ad0b10264fe0n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=49.182.84.217; posting-account=WyLDIgoAAAAL9-lKxDxWp0Afty5A1XnH
NNTP-Posting-Host: 49.182.84.217
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<45519d71-6089-4ea7-9d34-ec5179ae2de3n@googlegroups.com> <e70a00c6-9539-4af2-9106-ad0b10264fe0n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <587300ea-b74e-4f0d-9f93-ed2c8c145013n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: waynemor...@gmail.com (Wayne morellini)
Injection-Date: Sat, 22 Jan 2022 13:32:50 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 39
 by: Wayne morellini - Sat, 22 Jan 2022 13:32 UTC

On Saturday, January 22, 2022 at 8:27:08 PM UTC+10, minf...@arcor.de wrote:
> Wayne morellini schrieb am Samstag, 22. Januar 2022 um 07:28:32 UTC+1:
> > On Saturday, January 22, 2022 at 1:30:46 AM UTC+10, Brian Fox wrote:
> > > An interesting read that I think supports Anton's observations on "undefined behaviour" in C and frustrations in using it to build GForth.
> > >
> > > Maybe GForth should be written in GForth now. (?)
> > >
> > > https://arxiv.org/abs/2201.07845
> > I can't get to read this all today. But the solution is to have an sub ISO suitable for OS, Embedded maybe, and high speed Cv (C down low). But, one desire I have is a more universal transportable experience based on JavaScript engine. In the creation of new operating systems, you often lack application code base, by supporting the JavaScript engine (a constructed Java) libraries, even if not JavaScript itself (though it is basically C like) you get the other side. With this, is machine code particles (segments of machine code, which android supports, and Google had a proposal in use for web pages, which really needed total sandboxing), depending on which processor exists is which version loaded. In C development, it was 80% of the speed of assembler, but this means that at times it could be far slower, and these bottlenecks can kill code all of a sudden.
> <snip>
>
> Containerization, sandboxing, JIT compilation etc. may be fine for user land.
> But I doubt that these techniques are attractive for building performant OS
> or Forth systems.

Not really a fan of JIT. Above, the java script APIs can be used, and JavaScript generated if you want (I'm really for compiled JavaScript instead, or that demoted machine code technology Google supported, but in Sandbox containers).

Now, in my own design complete sand box virtual machine with virtually no overhead in a more efficient structure, whatever they call it nearly 30 years latter. As they have learnt today you definitely need virtualisation.

To isolate commercial systems from attacks yes, it's needed. Performance, need to do it right.

Re: How ISO C became unusable for operating systems development

<2022Jan22.192459@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16365&group=comp.lang.forth#16365

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: How ISO C became unusable for operating systems development
Date: Sat, 22 Jan 2022 18:24:59 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 40
Message-ID: <2022Jan22.192459@mips.complang.tuwien.ac.at>
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com> <492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="2f8bd726d6d68d7479638f86682713fe";
logging-data="3610"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19KphbON/BGDAYN85GFvEhg"
Cancel-Lock: sha1:txpkPXi19aKP18WY7DFyKhI1mCE=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Sat, 22 Jan 2022 18:24 UTC

"minf...@arcor.de" <minforth@arcor.de> writes:
>To build the fastest Forth you have to write it in assembly,

No, you have to write a native-code compiler, and you can write that
in Forth. Look at cmForth for a simple example or FLK for a more
complex one.

If you are thinking about the fastest threaded-code Forth systems:
Bernd Beuster thought that he could do better than Gforth by using
instructions like LODS, but on the 486 (current at the time) LODS took
twice as long as the equivalent sequence of simple instructions. And
if you look at
<http://www.complang.tuwien.ac.at/forth/performance.html>, you find
that on the 486 Gforth 0.4.9 beats all interpreters written in
assembly language except Marcel Hendrix' eforth+opt.

>C++, Ada, Rust etc. are often not there for a new target platform,
>but very often gcc is already available with hardware-specific libraries.

With gcc you get C++ and Ada, not yet Rust.

>Therefore in practice there is just no other way than to cope with UB.

Whatever you mean by "cope". We regularly go over gcc options and set
those that look like they disable UB nonsense (and some other things
we don't want). Currently we use the following options (each
introduced with "-f"):

no-gcse caller-saves no-defer-pop no-inline wrapv char-unsigned
no-strict-aliasing no-cse-follow-jumps no-reorder-blocks
no-reorder-blocks-and-partition no-toplevel-reorder no-trigraphs
align-labels=1 align-loops=1 align-jumps=1
no-delete-null-pointer-checks cf-protection=none

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2021: https://euro.theforth.net/2021

Re: How ISO C became unusable for operating systems development

<87lez733bz.fsf@nightsong.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16366&group=comp.lang.forth#16366

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: How ISO C became unusable for operating systems development
Date: Sat, 22 Jan 2022 12:47:28 -0800
Organization: A noiseless patient Spider
Lines: 6
Message-ID: <87lez733bz.fsf@nightsong.com>
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com>
<2022Jan22.192459@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="f4372f1c427fcbb2856617ecb4e393a0";
logging-data="657"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18QefqdZ9K8mQG3gvqRpCf3"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:Ddz7RmFr7k7b+abAA8r7UOyh5ZU=
sha1:MYQm66Uisq2WnUugzOLBGeseDKQ=
 by: Paul Rubin - Sat, 22 Jan 2022 20:47 UTC

anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:
> With gcc you get C++ and Ada, not yet Rust.

Rust is in progress: https://rust-gcc.github.io/

Maybe WASM will become another candidate for intermediate code.

Re: How ISO C became unusable for operating systems development

<c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16390&group=comp.lang.forth#16390

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:6214:529e:: with SMTP id kj30mr2300848qvb.48.1643031799992;
Mon, 24 Jan 2022 05:43:19 -0800 (PST)
X-Received: by 2002:ac8:5b96:: with SMTP id a22mr12461485qta.38.1643031799769;
Mon, 24 Jan 2022 05:43:19 -0800 (PST)
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Mon, 24 Jan 2022 05:43:19 -0800 (PST)
In-Reply-To: <87lez733bz.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f16:6f40:b9f3:c818:42c1:a92c;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f16:6f40:b9f3:c818:42c1:a92c
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Mon, 24 Jan 2022 13:43:19 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 8
 by: minf...@arcor.de - Mon, 24 Jan 2022 13:43 UTC

Paul Rubin schrieb am Samstag, 22. Januar 2022 um 21:47:31 UTC+1:
> an...@mips.complang.tuwien.ac.at (Anton Ertl) writes:
> > With gcc you get C++ and Ada, not yet Rust.
> Rust is in progress: https://rust-gcc.github.io/
>
> Maybe WASM will become another candidate for intermediate code.

AFAIK wasm modules run sandboxed. This seems contrary to Forth
with its emphasis on direct CPU and hardware control.

Re: How ISO C became unusable for operating systems development

<87zgnk25hy.fsf@nightsong.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16400&group=comp.lang.forth#16400

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: How ISO C became unusable for operating systems development
Date: Mon, 24 Jan 2022 13:22:49 -0800
Organization: A noiseless patient Spider
Lines: 5
Message-ID: <87zgnk25hy.fsf@nightsong.com>
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com>
<2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com>
<c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="d4fe14d364f00cc21a2224063a5f042c";
logging-data="29410"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/j5sD+ADWNgCrX04e2A6ER"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
Cancel-Lock: sha1:J6QNkk7iDLHqDbRxpSKjbwaYjbk=
sha1:9XszX9X03IaJyga9AGiAXfiY5cs=
 by: Paul Rubin - Mon, 24 Jan 2022 21:22 UTC

"minf...@arcor.de" <minforth@arcor.de> writes:
> AFAIK wasm modules run sandboxed.

That's just in browsers. Maybe wasm will metastasize elsewhere. Idk
whether that would be good or bad.

Re: How ISO C became unusable for operating systems development

<8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16406&group=comp.lang.forth#16406

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:a611:: with SMTP id p17mr1193080qke.605.1643100681382;
Tue, 25 Jan 2022 00:51:21 -0800 (PST)
X-Received: by 2002:a05:6214:19cc:: with SMTP id j12mr6275498qvc.59.1643100681201;
Tue, 25 Jan 2022 00:51:21 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Tue, 25 Jan 2022 00:51:21 -0800 (PST)
In-Reply-To: <87zgnk25hy.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f16:6f40:e4ab:d300:3a3c:340f;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f16:6f40:e4ab:d300:3a3c:340f
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Tue, 25 Jan 2022 08:51:21 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 10
 by: minf...@arcor.de - Tue, 25 Jan 2022 08:51 UTC

Paul Rubin schrieb am Montag, 24. Januar 2022 um 22:22:51 UTC+1:
> "minf...@arcor.de" <minf...@arcor.de> writes:
> > AFAIK wasm modules run sandboxed.
> That's just in browsers. Maybe wasm will metastasize elsewhere. Idk
> whether that would be good or bad.

I have to explore this further. On my 'exploration' list is binaryen
https://github.com/WebAssembly/binaryen

But it seems to be a complex optimizing compiler in its own world
and might do as many uncontrollable things under the hood as gcc.

Re: How ISO C became unusable for operating systems development

<a4595043-ee67-4222-b883-4e7fa62bfbd0n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16413&group=comp.lang.forth#16413

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:622a:14c8:: with SMTP id u8mr16438110qtx.197.1643119347105;
Tue, 25 Jan 2022 06:02:27 -0800 (PST)
X-Received: by 2002:a37:757:: with SMTP id 84mr2385344qkh.571.1643119346376;
Tue, 25 Jan 2022 06:02:26 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!nntp.club.cc.cmu.edu!5.161.45.24.MISMATCH!2.us.feeder.erje.net!feeder.erje.net!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Tue, 25 Jan 2022 06:02:26 -0800 (PST)
In-Reply-To: <87zgnk25hy.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=49.197.158.196; posting-account=WyLDIgoAAAAL9-lKxDxWp0Afty5A1XnH
NNTP-Posting-Host: 49.197.158.196
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <a4595043-ee67-4222-b883-4e7fa62bfbd0n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: waynemor...@gmail.com (Wayne morellini)
Injection-Date: Tue, 25 Jan 2022 14:02:27 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 22
 by: Wayne morellini - Tue, 25 Jan 2022 14:02 UTC

On Tuesday, January 25, 2022 at 7:22:51 AM UTC+10, Paul Rubin wrote:
> "minf...@arcor.de" <minf...@arcor.de> writes:
> > AFAIK wasm modules run sandboxed.
> That's just in browsers. Maybe wasm will metastasize elsewhere. Idk
> whether that would be good or bad.

Maybe I have listened to Rick Richards of Arius, or whatever, but why do people have to go crazy when something is mentioned. This is about C use on constructing operating systems, and alternative bits and pieces. My mention of Java script API's was on a higher level app code portability for kicking off new app bare operating systems, and establishing an independent app base that developers can program for sale across systems. This is about multi-level complete holistic solutions. Using not webassemble, but the old machine code sections to speed this up further. And hypervising/sandboxing need take virtually no performance hit. What bad designers and programmers do,; s irrelevant, those people are different and seperate from good design practice. C is the enemy itself. It was based of of wrong concepts. And demands the hardware support those wrong concepts to keep going. But, C, is where the base code base for operating systems, drivers and middleware are fur getting operating systems implemented quickly, and standard fur doing the other work.

Re: How ISO C became unusable for operating systems development

<e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16415&group=comp.lang.forth#16415

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:9a8c:: with SMTP id c134mr7622298qke.48.1643120831103;
Tue, 25 Jan 2022 06:27:11 -0800 (PST)
X-Received: by 2002:a05:6214:e64:: with SMTP id jz4mr10486821qvb.69.1643120830981;
Tue, 25 Jan 2022 06:27:10 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!nntp.club.cc.cmu.edu!144.202.29.153.MISMATCH!1.us.feeder.erje.net!feeder.erje.net!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Tue, 25 Jan 2022 06:27:10 -0800 (PST)
In-Reply-To: <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=82.95.228.79; posting-account=Ebqe4AoAAABfjCRL4ZqOHWv4jv5ZU4Cs
NNTP-Posting-Host: 82.95.228.79
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com> <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: the.beez...@gmail.com (Hans Bezemer)
Injection-Date: Tue, 25 Jan 2022 14:27:11 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 48
 by: Hans Bezemer - Tue, 25 Jan 2022 14:27 UTC

On Tuesday, January 25, 2022 at 9:51:22 AM UTC+1, minf...@arcor.de wrote:
> But it seems to be a complex optimizing compiler in its own world
> and might do as many uncontrollable things under the hood as gcc.
Well, Dennis has objected several times during the "standardization" process. What came out was certainly not what he intended it to be. IMHO he went wrong himself in several places, e.g. the operators. You cannot let the compiler decide what to do when you're stupid enough to add an integer to a float. You should simply bomb out. It's bad enough you can add an unsigned to signed. In that respect - although Forth is complete Wild West - it's behavior is much more consistent. You don't get to add a float to an integer without conversion - or you're in a world of pain.

This problem is even aggravated IMHO when you add other composed datatypes - without the proper precautions, like "longs". Again, Forth is far more transparent and consistent here. You do floats with F+ (both sides need to be float), double words with D+ and single words with +. I think C would have won in consistency is that had been a prerequisite to begin with.

Collating specific behavior with certain datatypes doesn't help either. Shifting right an unsigned gives you different behavior than signed. Nowadays, shifting a word by more bits than the wordsize is already "suspect". If I want a logical shift gimme a logical shift. If I want an arithmetic one I'll tell you.

That consistency of thought is what made me move to Forth (allow me to consider 4tH to be Forth). I simply like languages that do what they're told to do - and do not think for themselves. For that reason I wouldn't touch Python with a poke. So when the intended effect is not what I thought it would be - it's my fault only - and not what a programmer thought my intention was.

It's still possible to write portable code in C - but it certainly has to be an early design objective. And the current direction in which GCC is moving doesn't really help - I think we can quickly agree on that. Rust is not a "savior" IMHO, because it isn't a low level language. For Pete's sake - it is more like D or Go - and we already got those.

There once was a language called C--, but that one's dead AFAIK - and never really took off. Understandable, because they went into the same area of thought that C went. Still, I very much feel the need for a REAL low level language that is designed to make system level stuff. And doesn't try to sit in my chair. Recently I browsed a presentation of an American that converted (non-standard) Forth into intermediary code, that could be fed to (I believe) a GCC backend. I'd love a thing like that. However, AFAIK it's still in an experimental stage.

My two cents..

Hans Bezemer

Re: How ISO C became unusable for operating systems development

<7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16418&group=comp.lang.forth#16418

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:5708:: with SMTP id 8mr18100402qtw.689.1643138702441; Tue, 25 Jan 2022 11:25:02 -0800 (PST)
X-Received: by 2002:a37:60c1:: with SMTP id u184mr455669qkb.419.1643138702256; Tue, 25 Jan 2022 11:25:02 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!feeder.usenetexpress.com!tr1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Tue, 25 Jan 2022 11:25:02 -0800 (PST)
In-Reply-To: <e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f16:6f2c:885a:c715:56fd:739d; posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f16:6f2c:885a:c715:56fd:739d
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com> <492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at> <87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com> <87zgnk25hy.fsf@nightsong.com> <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com> <e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Tue, 25 Jan 2022 19:25:02 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 56
X-Received-Bytes: 4877
 by: minf...@arcor.de - Tue, 25 Jan 2022 19:25 UTC

the.bee...@gmail.com schrieb am Dienstag, 25. Januar 2022 um 15:27:12 UTC+1:
> On Tuesday, January 25, 2022 at 9:51:22 AM UTC+1, minf...@arcor.de wrote:
> > But it seems to be a complex optimizing compiler in its own world
> > and might do as many uncontrollable things under the hood as gcc.
> Well, Dennis has objected several times during the "standardization" process. What came out was certainly not what he intended it to be. IMHO he went wrong himself in several places, e.g. the operators. You cannot let the compiler decide what to do when you're stupid enough to add an integer to a float. You should simply bomb out. It's bad enough you can add an unsigned to signed. In that respect - although Forth is complete Wild West - it's behavior is much more consistent. You don't get to add a float to an integer without conversion - or you're in a world of pain.
>
> This problem is even aggravated IMHO when you add other composed datatypes - without the proper precautions, like "longs". Again, Forth is far more transparent and consistent here. You do floats with F+ (both sides need to be float), double words with D+ and single words with +. I think C would have won in consistency is that had been a prerequisite to begin with.
>
> Collating specific behavior with certain datatypes doesn't help either. Shifting right an unsigned gives you different behavior than signed. Nowadays, shifting a word by more bits than the wordsize is already "suspect". If I want a logical shift gimme a logical shift. If I want an arithmetic one I'll tell you.
>
> That consistency of thought is what made me move to Forth (allow me to consider 4tH to be Forth). I simply like languages that do what they're told to do - and do not think for themselves. For that reason I wouldn't touch Python with a poke. So when the intended effect is not what I thought it would be - it's my fault only - and not what a programmer thought my intention was.
>
> It's still possible to write portable code in C - but it certainly has to be an early design objective. And the current direction in which GCC is moving doesn't really help - I think we can quickly agree on that. Rust is not a "savior" IMHO, because it isn't a low level language. For Pete's sake - it is more like D or Go - and we already got those.
>
> There once was a language called C--, but that one's dead AFAIK - and never really took off. Understandable, because they went into the same area of thought that C went. Still, I very much feel the need for a REAL low level language that is designed to make system level stuff. And doesn't try to sit in my chair. Recently I browsed a presentation of an American that converted (non-standard) Forth into intermediary code, that could be fed to (I believe) a GCC backend. I'd love a thing like that. However, AFAIK it's still in an experimental stage.
>
> My two cents..
>
> Hans Bezemer

Another cent:
The original topic was UB in C as systems programming language.
If C is disqualified, so is C++, then remains ugly Ada.

Re: How ISO C became unusable for operating systems development

<43921e44-92dc-432f-b83b-01acf6925f51n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16419&group=comp.lang.forth#16419

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:90:: with SMTP id c16mr9878089qtg.349.1643162485380;
Tue, 25 Jan 2022 18:01:25 -0800 (PST)
X-Received: by 2002:a05:620a:4455:: with SMTP id w21mr16967001qkp.306.1643162485190;
Tue, 25 Jan 2022 18:01:25 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Tue, 25 Jan 2022 18:01:25 -0800 (PST)
In-Reply-To: <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=49.197.158.196; posting-account=WyLDIgoAAAAL9-lKxDxWp0Afty5A1XnH
NNTP-Posting-Host: 49.197.158.196
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com> <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
<e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com> <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <43921e44-92dc-432f-b83b-01acf6925f51n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: waynemor...@gmail.com (Wayne morellini)
Injection-Date: Wed, 26 Jan 2022 02:01:25 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 66
 by: Wayne morellini - Wed, 26 Jan 2022 02:01 UTC

On Wednesday, January 26, 2022 at 5:25:03 AM UTC+10, minf...@arcor.de wrote:
> the.bee...@gmail.com schrieb am Dienstag, 25. Januar 2022 um 15:27:12 UTC+1:
> > On Tuesday, January 25, 2022 at 9:51:22 AM UTC+1, minf...@arcor.de wrote:
> > > But it seems to be a complex optimizing compiler in its own world
> > > and might do as many uncontrollable things under the hood as gcc.
> > Well, Dennis has objected several times during the "standardization" process. What came out was certainly not what he intended it to be. IMHO he went wrong himself in several places, e.g. the operators. You cannot let the compiler decide what to do when you're stupid enough to add an integer to a float. You should simply bomb out. It's bad enough you can add an unsigned to signed. In that respect - although Forth is complete Wild West - it's behavior is much more consistent. You don't get to add a float to an integer without conversion - or you're in a world of pain.
> >
> > This problem is even aggravated IMHO when you add other composed datatypes - without the proper precautions, like "longs". Again, Forth is far more transparent and consistent here. You do floats with F+ (both sides need to be float), double words with D+ and single words with +. I think C would have won in consistency is that had been a prerequisite to begin with.
> >
> > Collating specific behavior with certain datatypes doesn't help either. Shifting right an unsigned gives you different behavior than signed. Nowadays, shifting a word by more bits than the wordsize is already "suspect". If I want a logical shift gimme a logical shift. If I want an arithmetic one I'll tell you.
> >
> > That consistency of thought is what made me move to Forth (allow me to consider 4tH to be Forth). I simply like languages that do what they're told to do - and do not think for themselves. For that reason I wouldn't touch Python with a poke. So when the intended effect is not what I thought it would be - it's my fault only - and not what a programmer thought my intention was.
> >
> > It's still possible to write portable code in C - but it certainly has to be an early design objective. And the current direction in which GCC is moving doesn't really help - I think we can quickly agree on that. Rust is not a "savior" IMHO, because it isn't a low level language. For Pete's sake - it is more like D or Go - and we already got those.
> >
> > There once was a language called C--, but that one's dead AFAIK - and never really took off. Understandable, because they went into the same area of thought that C went. Still, I very much feel the need for a REAL low level language that is designed to make system level stuff. And doesn't try to sit in my chair. Recently I browsed a presentation of an American that converted (non-standard) Forth into intermediary code, that could be fed to (I believe) a GCC backend. I'd love a thing like that. However, AFAIK it's still in an experimental stage.
> >
> > My two cents..
> >
> > Hans Bezemer
> Another cent:
> The original topic was UB in C as systems programming language.
> If C is disqualified, so is C++, then remains ugly Ada.

You mean Undefined Behaviour in C. There is a bigger issue with C that needs to be fixed, as far as OS design, with portability. Compiled JavaScript helps. .the problem is II, but I'm going spell it out so people know what it means, incomplete infrastructure in C for new OS construction use. C needed it's own high level portable virtual machine format. They are complementary.

Re: How ISO C became unusable for operating systems development

<4f853bd3-ea81-4185-b6df-3bd132ccf762n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16420&group=comp.lang.forth#16420

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:a750:: with SMTP id q77mr11660664qke.717.1643167011216;
Tue, 25 Jan 2022 19:16:51 -0800 (PST)
X-Received: by 2002:ad4:5be6:: with SMTP id k6mr22225033qvc.29.1643167011097;
Tue, 25 Jan 2022 19:16:51 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Tue, 25 Jan 2022 19:16:50 -0800 (PST)
In-Reply-To: <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=49.197.71.16; posting-account=WyLDIgoAAAAL9-lKxDxWp0Afty5A1XnH
NNTP-Posting-Host: 49.197.71.16
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com> <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
<e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com> <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4f853bd3-ea81-4185-b6df-3bd132ccf762n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: waynemor...@gmail.com (Wayne morellini)
Injection-Date: Wed, 26 Jan 2022 03:16:51 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 97
 by: Wayne morellini - Wed, 26 Jan 2022 03:16 UTC

On Wednesday, January 26, 2022 at 5:25:03 AM UTC+10, minf...@arcor.de wrote:
> the.bee...@gmail.com schrieb am Dienstag, 25. Januar 2022 um 15:27:12 UTC+1:
> > On Tuesday, January 25, 2022 at 9:51:22 AM UTC+1, minf...@arcor.de wrote:
> > > But it seems to be a complex optimizing compiler in its own world
> > > and might do as many uncontrollable things under the hood as gcc.
> > Well, Dennis has objected several times during the "standardization" process. What came out was certainly not what he intended it to be. IMHO he went wrong himself in several places, e.g. the operators. You cannot let the compiler decide what to do when you're stupid enough to add an integer to a float. You should simply bomb out. It's bad enough you can add an unsigned to signed. In that respect - although Forth is complete Wild West - it's behavior is much more consistent. You don't get to add a float to an integer without conversion - or you're in a world of pain.
> >
> > This problem is even aggravated IMHO when you add other composed datatypes - without the proper precautions, like "longs". Again, Forth is far more transparent and consistent here. You do floats with F+ (both sides need to be float), double words with D+ and single words with +. I think C would have won in consistency is that had been a prerequisite to begin with.
> >
> > Collating specific behavior with certain datatypes doesn't help either. Shifting right an unsigned gives you different behavior than signed. Nowadays, shifting a word by more bits than the wordsize is already "suspect". If I want a logical shift gimme a logical shift. If I want an arithmetic one I'll tell you.
> >
> > That consistency of thought is what made me move to Forth (allow me to consider 4tH to be Forth). I simply like languages that do what they're told to do - and do not think for themselves. For that reason I wouldn't touch Python with a poke. So when the intended effect is not what I thought it would be - it's my fault only - and not what a programmer thought my intention was.
> >
> > It's still possible to write portable code in C - but it certainly has to be an early design objective. And the current direction in which GCC is moving doesn't really help - I think we can quickly agree on that. Rust is not a "savior" IMHO, because it isn't a low level language. For Pete's sake - it is more like D or Go - and we already got those.
> >
> > There once was a language called C--, but that one's dead AFAIK - and never really took off. Understandable, because they went into the same area of thought that C went. Still, I very much feel the need for a REAL low level language that is designed to make system level stuff. And doesn't try to sit in my chair. Recently I browsed a presentation of an American that converted (non-standard) Forth into intermediary code, that could be fed to (I believe) a GCC backend. I'd love a thing like that. However, AFAIK it's still in an experimental stage.
> >
> > My two cents..
> >
> > Hans Bezemer
> Another cent:
> The original topic was UB in C as systems programming language.
> If C is disqualified, so is C++, then remains ugly Ada.

Rock the world. What about a forth in C compiler, where forth is implemented as a library and switch in C, where the forth code is identified and compiled using updated versions of colorforth's machine code words. Using the JavaScript API as an externally compiled library, where API's are compiled in for defined code, or as an external call to a java engine (looks messy, but things are messy when you design for compatibility). Implemented in an open source C compiler. People can do pure forth coding in C, either through the library, or as a switch forth on off, and pass variables in and out.. However, compiler time defined behaviour etc might be a challenge. But, at tjerisk of sounding like a certain person baiting, why not promote it to the C standard body as an improvement. They really need a light weight virtual machine with a near 1 to 1 ratio to machine code. The problem with previous efforts and machine code on web going to windows api, is lack of security and and controllable behaviour. Using hypervisor/sandboxing it can be secure.

The issue that people don't realise about sandboxing etc, is that if you are compiling to an embedded system, the whole system can be considered a sandbox with direct access. A sandbox also doesn't mean you don't have defined direct access to hardware, it can be set up to just deny you direct access if you don't have permission, and follow set global priority given by the user, the program, and otherwise access balancing. It dues not need to be completely deterministic, though it can be here, but it needs to be deterministic in terms of the demanded limits. In my own os design work. I had cycle based deterministic behaviour, that's like two to three decades ago. I do understand what I'm talking about and why. It will still be the same. Incompetent competing bloat. In the reasonable realtime embeddedised standard system, we should be able to virtually guarantee a maximum time period of servicing, and setup and load up the system to do that.

Now, on undefined behaviour, campaign for a defined mode in the C standard per processor target. A coexisting sub girl with switch on or off, and auto change depending on what called subroutine is used (this subroutine based auto switching can be done simply by having subroutines for each grouped into a different part of memory, do that an auto associative circuit can perform all hardware switching depending on if machine code is being performed in one part of memory or another, making this sort of switching on the next cycle. People don't understand here, or complain, but the solution is to understand. It all required thinking work.

Re: How ISO C became unusable for operating systems development

<d391064e-a845-4b6f-b1ec-ee7e485403dbn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16428&group=comp.lang.forth#16428

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:622a:cb:: with SMTP id p11mr9187018qtw.424.1643186818562;
Wed, 26 Jan 2022 00:46:58 -0800 (PST)
X-Received: by 2002:a05:622a:1704:: with SMTP id h4mr2907424qtk.86.1643186818372;
Wed, 26 Jan 2022 00:46:58 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 26 Jan 2022 00:46:58 -0800 (PST)
In-Reply-To: <4f853bd3-ea81-4185-b6df-3bd132ccf762n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f16:6f2c:885a:c715:56fd:739d;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f16:6f2c:885a:c715:56fd:739d
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com> <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
<e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com> <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
<4f853bd3-ea81-4185-b6df-3bd132ccf762n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d391064e-a845-4b6f-b1ec-ee7e485403dbn@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Wed, 26 Jan 2022 08:46:58 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 83
 by: minf...@arcor.de - Wed, 26 Jan 2022 08:46 UTC

Wayne morellini schrieb am Mittwoch, 26. Januar 2022 um 04:16:52 UTC+1:
> On Wednesday, January 26, 2022 at 5:25:03 AM UTC+10, minf...@arcor.de wrote:
> > the.bee...@gmail.com schrieb am Dienstag, 25. Januar 2022 um 15:27:12 UTC+1:
> > > On Tuesday, January 25, 2022 at 9:51:22 AM UTC+1, minf...@arcor.de wrote:
> > > > But it seems to be a complex optimizing compiler in its own world
> > > > and might do as many uncontrollable things under the hood as gcc.
> > > Well, Dennis has objected several times during the "standardization" process. What came out was certainly not what he intended it to be. IMHO he went wrong himself in several places, e.g. the operators. You cannot let the compiler decide what to do when you're stupid enough to add an integer to a float. You should simply bomb out. It's bad enough you can add an unsigned to signed. In that respect - although Forth is complete Wild West - it's behavior is much more consistent. You don't get to add a float to an integer without conversion - or you're in a world of pain.
> > >
> > > This problem is even aggravated IMHO when you add other composed datatypes - without the proper precautions, like "longs". Again, Forth is far more transparent and consistent here. You do floats with F+ (both sides need to be float), double words with D+ and single words with +. I think C would have won in consistency is that had been a prerequisite to begin with.
> > >
> > > Collating specific behavior with certain datatypes doesn't help either. Shifting right an unsigned gives you different behavior than signed. Nowadays, shifting a word by more bits than the wordsize is already "suspect". If I want a logical shift gimme a logical shift. If I want an arithmetic one I'll tell you.
> > >
> > > That consistency of thought is what made me move to Forth (allow me to consider 4tH to be Forth). I simply like languages that do what they're told to do - and do not think for themselves. For that reason I wouldn't touch Python with a poke. So when the intended effect is not what I thought it would be - it's my fault only - and not what a programmer thought my intention was.
> > >
> > > It's still possible to write portable code in C - but it certainly has to be an early design objective. And the current direction in which GCC is moving doesn't really help - I think we can quickly agree on that. Rust is not a "savior" IMHO, because it isn't a low level language. For Pete's sake - it is more like D or Go - and we already got those.
> > >
> > > There once was a language called C--, but that one's dead AFAIK - and never really took off. Understandable, because they went into the same area of thought that C went. Still, I very much feel the need for a REAL low level language that is designed to make system level stuff. And doesn't try to sit in my chair. Recently I browsed a presentation of an American that converted (non-standard) Forth into intermediary code, that could be fed to (I believe) a GCC backend. I'd love a thing like that. However, AFAIK it's still in an experimental stage.
> > >
> > > My two cents..
> > >
> > > Hans Bezemer
> > Another cent:
> > The original topic was UB in C as systems programming language.
> > If C is disqualified, so is C++, then remains ugly Ada.
> Rock the world. What about a forth in C compiler, where forth is implemented as a library and switch in C, where the forth code is identified and compiled using updated versions of colorforth's machine code words. Using the JavaScript API as an externally compiled library, where API's are compiled in for defined code, or as an external call to a java engine (looks messy, but things are messy when you design for compatibility). Implemented in an open source C compiler. People can do pure forth coding in C, either through the library, or as a switch forth on off, and pass variables in and out. However, compiler time defined behaviour etc might be a challenge. But, at tjerisk of sounding like a certain person baiting, why not promote it to the C standard body as an improvement. They really need a light weight virtual machine with a near 1 to 1 ratio to machine code. The problem with previous efforts and machine code on web going to windows api, is lack of security and and controllable behaviour. Using hypervisor/sandboxing it can be secure.

For instance, there is a Forth lib somewhere that lets you run a Forth interpreter
within a compiled C program. Nothing new but it also didn't hold against say Lua.

Building a VM for C and a parallel VM for Forth seems rather Frankensteinish to me.
That software model is not viable.

Re: How ISO C became unusable for operating systems development

<5ad2e377-77cd-4f55-9660-00a3700d2712n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16476&group=comp.lang.forth#16476

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:45a8:: with SMTP id bp40mr6005656qkb.48.1643378860212;
Fri, 28 Jan 2022 06:07:40 -0800 (PST)
X-Received: by 2002:a05:6214:1d2e:: with SMTP id f14mr7653183qvd.2.1643378860034;
Fri, 28 Jan 2022 06:07:40 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 28 Jan 2022 06:07:39 -0800 (PST)
In-Reply-To: <d391064e-a845-4b6f-b1ec-ee7e485403dbn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=159.196.24.21; posting-account=WyLDIgoAAAAL9-lKxDxWp0Afty5A1XnH
NNTP-Posting-Host: 159.196.24.21
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com> <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
<e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com> <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
<4f853bd3-ea81-4185-b6df-3bd132ccf762n@googlegroups.com> <d391064e-a845-4b6f-b1ec-ee7e485403dbn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5ad2e377-77cd-4f55-9660-00a3700d2712n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: waynemor...@gmail.com (Wayne morellini)
Injection-Date: Fri, 28 Jan 2022 14:07:40 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 82
 by: Wayne morellini - Fri, 28 Jan 2022 14:07 UTC

On Wednesday, January 26, 2022 at 6:46:59 PM UTC+10, minf...@arcor.de wrote:
> Wayne morellini schrieb am Mittwoch, 26. Januar 2022 um 04:16:52 UTC+1:
> > On Wednesday, January 26, 2022 at 5:25:03 AM UTC+10, minf...@arcor.de wrote:
> > > the.bee...@gmail.com schrieb am Dienstag, 25. Januar 2022 um 15:27:12 UTC+1:
> > > > On Tuesday, January 25, 2022 at 9:51:22 AM UTC+1, minf...@arcor.de wrote:

> For instance, there is a Forth lib somewhere that lets you run a Forth interpreter
> within a compiled C program. Nothing new but it also didn't hold against say Lua.
>
> Building a VM for C and a parallel VM for Forth seems rather Frankensteinish to me.
> That software model is not viable.

I see where you are going, but we are talking about two different things, and legacy compatibility between different systems. Is Frankensteinish. There is no forth VM, just forth compiled to optimised machine code, with access to other C subroutines in the program, java and the C libraries. Of course, you would keep it forth or forth using JavaScript API, for transportability between systems. That's developer self constraining, but they don't need to. There is no C VM either, just using JavaScript API for VM services, or JavaScript itself, complied to machine code, or machine code. It's flexible, you can just choose which flavour you want and stick to using that.. The thing you do develop, is support for sandboxing and hypervisor, and communications between these environments, so you can select and send file or data through the OS to another program environment. The user copies and pastes, setup events or allows limited communications, to preserve security.

So,

- C upgrades with switch to and from deterministic mode for embedded and is developers.

- Sandbox and hypervisor support and communications support.

- machine code support as mentioned previously

- JavaScript VM (API) support service, to provide code portability service across new OS's. Allowing easy programming of one version of a program, compatible with all new and old systems. This also allows anybody to make a new OS without commercial custom program.library, to immediately run that library, while custom commercial programs are being developed.

- Forth code switch on and off, using any api and allowed access to the system hardware. Allows support of a simpler model of next generation hardware. Leading to misc on cisc, and eventually misc. Bit, bssuclu, gives a lot of forth programmers C like development tools.

- Potentially JavaScript, but compiled to machine code.

- Ability to develop all low performance applicatins using JavaScript API. Ability, to add sections of C, forth, and or machine code, of higher performance is needed, requiring only customisation of those sections to transport code to new machines.

Very simple. Structured.

The issues it solves are:

- C drift to non deterministic behaviour.

- C modern security issues.

- further determinatistic behaviour through choice of structured machine code, based on processor loaded into or compiled

- A reduced complexity embedded mode, mini-F. That presents another type of processimg architecture support that can be plementef in stand alone chips.

- JavaScript API services for cross compatibility of code between different OS's, also supporting new novel OS's.

- A way to break down code performance, to reduce the amount of code needing to be adjusted.

Re: How ISO C became unusable for operating systems development

<06a6b01c-4248-4319-b4f4-be25929aefa4n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16479&group=comp.lang.forth#16479

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:622a:1105:: with SMTP id e5mr6696082qty.190.1643387792757;
Fri, 28 Jan 2022 08:36:32 -0800 (PST)
X-Received: by 2002:a05:6214:29ec:: with SMTP id jv12mr7544560qvb.87.1643387792616;
Fri, 28 Jan 2022 08:36:32 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 28 Jan 2022 08:36:32 -0800 (PST)
In-Reply-To: <5ad2e377-77cd-4f55-9660-00a3700d2712n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f16:6fc2:8199:9d2a:1039:74bf;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f16:6fc2:8199:9d2a:1039:74bf
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com> <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
<e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com> <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
<4f853bd3-ea81-4185-b6df-3bd132ccf762n@googlegroups.com> <d391064e-a845-4b6f-b1ec-ee7e485403dbn@googlegroups.com>
<5ad2e377-77cd-4f55-9660-00a3700d2712n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <06a6b01c-4248-4319-b4f4-be25929aefa4n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Fri, 28 Jan 2022 16:36:32 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 84
 by: minf...@arcor.de - Fri, 28 Jan 2022 16:36 UTC

Wayne morellini schrieb am Freitag, 28. Januar 2022 um 15:07:41 UTC+1:
> On Wednesday, January 26, 2022 at 6:46:59 PM UTC+10, minf...@arcor.de wrote:
> > Wayne morellini schrieb am Mittwoch, 26. Januar 2022 um 04:16:52 UTC+1:
> > > On Wednesday, January 26, 2022 at 5:25:03 AM UTC+10, minf...@arcor.de wrote:
> > > > the.bee...@gmail.com schrieb am Dienstag, 25. Januar 2022 um 15:27:12 UTC+1:
> > > > > On Tuesday, January 25, 2022 at 9:51:22 AM UTC+1, minf...@arcor.de wrote:
>
> > For instance, there is a Forth lib somewhere that lets you run a Forth interpreter
> > within a compiled C program. Nothing new but it also didn't hold against say Lua.
> >
> > Building a VM for C and a parallel VM for Forth seems rather Frankensteinish to me.
> > That software model is not viable.
> I see where you are going, but we are talking about two different things, and legacy compatibility between different systems. Is Frankensteinish. There is no forth VM, just forth compiled to optimised machine code, with access to other C subroutines in the program, java and the C libraries. Of course, you would keep it forth or forth using JavaScript API, for transportability between systems. That's developer self constraining, but they don't need to. There is no C VM either, just using JavaScript API for VM services, or JavaScript itself, complied to machine code, or machine code. It's flexible, you can just choose which flavour you want and stick to using that. The thing you do develop, is support for sandboxing and hypervisor, and communications between these environments, so you can select and send file or data through the OS to another program environment. The user copies and pastes, setup events or allows limited communications, to preserve security.
>
> So,
>
> - C upgrades with switch to and from deterministic mode for embedded and is developers.
>
> - Sandbox and hypervisor support and communications support.
>
> - machine code support as mentioned previously
>
> - JavaScript VM (API) support service, to provide code portability service across new OS's. Allowing easy programming of one version of a program, compatible with all new and old systems. This also allows anybody to make a new OS without commercial custom program.library, to immediately run that library, while custom commercial programs are being developed.
>
> - Forth code switch on and off, using any api and allowed access to the system hardware. Allows support of a simpler model of next generation hardware. Leading to misc on cisc, and eventually misc. Bit, bssuclu, gives a lot of forth programmers C like development tools.
>
> - Potentially JavaScript, but compiled to machine code.
>
> - Ability to develop all low performance applicatins using JavaScript API.. Ability, to add sections of C, forth, and or machine code, of higher performance is needed, requiring only customisation of those sections to transport code to new machines.
>
> Very simple. Structured.
>
>
> The issues it solves are:
>
> - C drift to non deterministic behaviour.
>
> - C modern security issues.
>
> - further determinatistic behaviour through choice of structured machine code, based on processor loaded into or compiled
>
> - A reduced complexity embedded mode, mini-F. That presents another type of processimg architecture support that can be plementef in stand alone chips.
>
> - JavaScript API services for cross compatibility of code between different OS's, also supporting new novel OS's.
>
> - A way to break down code performance, to reduce the amount of code needing to be adjusted.

Then you might be interested in:
https://bellard.org/quickjs/

Re: How ISO C became unusable for operating systems development

<fdf17cf7-fcee-492d-bba0-fdbeed1dc799n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=16482&group=comp.lang.forth#16482

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:622a:1105:: with SMTP id e5mr7113901qty.190.1643394362100;
Fri, 28 Jan 2022 10:26:02 -0800 (PST)
X-Received: by 2002:a05:6214:29ea:: with SMTP id jv10mr8571880qvb.46.1643394361888;
Fri, 28 Jan 2022 10:26:01 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 28 Jan 2022 10:26:01 -0800 (PST)
In-Reply-To: <06a6b01c-4248-4319-b4f4-be25929aefa4n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=159.196.24.21; posting-account=WyLDIgoAAAAL9-lKxDxWp0Afty5A1XnH
NNTP-Posting-Host: 159.196.24.21
References: <c58b954c-d920-458d-bcd0-5b20e8b9df31n@googlegroups.com>
<492018e9-04b2-4862-a250-4b95a4dde4c4n@googlegroups.com> <2022Jan22.192459@mips.complang.tuwien.ac.at>
<87lez733bz.fsf@nightsong.com> <c0d2e163-8232-4316-bb96-45042c385050n@googlegroups.com>
<87zgnk25hy.fsf@nightsong.com> <8f40430b-01d5-477c-8603-1e56382a0d2fn@googlegroups.com>
<e5c63726-5042-4970-bfb6-5838f1eebf35n@googlegroups.com> <7f0e0fbe-20af-4474-b286-bd6f9eeb2975n@googlegroups.com>
<4f853bd3-ea81-4185-b6df-3bd132ccf762n@googlegroups.com> <d391064e-a845-4b6f-b1ec-ee7e485403dbn@googlegroups.com>
<5ad2e377-77cd-4f55-9660-00a3700d2712n@googlegroups.com> <06a6b01c-4248-4319-b4f4-be25929aefa4n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <fdf17cf7-fcee-492d-bba0-fdbeed1dc799n@googlegroups.com>
Subject: Re: How ISO C became unusable for operating systems development
From: waynemor...@gmail.com (Wayne morellini)
Injection-Date: Fri, 28 Jan 2022 18:26:02 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 87
 by: Wayne morellini - Fri, 28 Jan 2022 18:26 UTC

On Saturday, January 29, 2022 at 2:36:33 AM UTC+10, minf...@arcor.de wrote:
> Wayne morellini schrieb am Freitag, 28. Januar 2022 um 15:07:41 UTC+1:
> > On Wednesday, January 26, 2022 at 6:46:59 PM UTC+10, minf...@arcor.de wrote:
> > > Wayne morellini schrieb am Mittwoch, 26. Januar 2022 um 04:16:52 UTC+1:
> > > > On Wednesday, January 26, 2022 at 5:25:03 AM UTC+10, minf...@arcor.de wrote:
> > > > > the.bee...@gmail.com schrieb am Dienstag, 25. Januar 2022 um 15:27:12 UTC+1:
> > > > > > On Tuesday, January 25, 2022 at 9:51:22 AM UTC+1, minf...@arcor..de wrote:
> >
> > > For instance, there is a Forth lib somewhere that lets you run a Forth interpreter
> > > within a compiled C program. Nothing new but it also didn't hold against say Lua.
> > >
> > > Building a VM for C and a parallel VM for Forth seems rather Frankensteinish to me.
> > > That software model is not viable.
> > I see where you are going, but we are talking about two different things, and legacy compatibility between different systems. Is Frankensteinish. There is no forth VM, just forth compiled to optimised machine code, with access to other C subroutines in the program, java and the C libraries. Of course, you would keep it forth or forth using JavaScript API, for transportability between systems. That's developer self constraining, but they don't need to. There is no C VM either, just using JavaScript API for VM services, or JavaScript itself, complied to machine code, or machine code. It's flexible, you can just choose which flavour you want and stick to using that. The thing you do develop, is support for sandboxing and hypervisor, and communications between these environments, so you can select and send file or data through the OS to another program environment. The user copies and pastes, setup events or allows limited communications, to preserve security.
> >
> > So,
> >
> > - C upgrades with switch to and from deterministic mode for embedded and is developers.
> >
> > - Sandbox and hypervisor support and communications support.
> >
> > - machine code support as mentioned previously
> >
> > - JavaScript VM (API) support service, to provide code portability service across new OS's. Allowing easy programming of one version of a program, compatible with all new and old systems. This also allows anybody to make a new OS without commercial custom program.library, to immediately run that library, while custom commercial programs are being developed.
> >
> > - Forth code switch on and off, using any api and allowed access to the system hardware. Allows support of a simpler model of next generation hardware. Leading to misc on cisc, and eventually misc. Bit, bssuclu, gives a lot of forth programmers C like development tools.
> >
> > - Potentially JavaScript, but compiled to machine code.
> >
> > - Ability to develop all low performance applicatins using JavaScript API. Ability, to add sections of C, forth, and or machine code, of higher performance is needed, requiring only customisation of those sections to transport code to new machines.
> >
> > Very simple. Structured.
> >
> >
> > The issues it solves are:
> >
> > - C drift to non deterministic behaviour.
> >
> > - C modern security issues.
> >
> > - further determinatistic behaviour through choice of structured machine code, based on processor loaded into or compiled
> >
> > - A reduced complexity embedded mode, mini-F. That presents another type of processimg architecture support that can be plementef in stand alone chips.
> >
> > - JavaScript API services for cross compatibility of code between different OS's, also supporting new novel OS's.
> >
> > - A way to break down code performance, to reduce the amount of code needing to be adjusted.
> Then you might be interested in:
> https://bellard.org/quickjs/

Thanks.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor