Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

If you can't understand it, it is intuitively obvious.


devel / comp.arch / Re: Around the bike shed: Instruction names and assembler syntax

SubjectAuthor
* Around the bike shed: Instruction names and assembler syntaxThomas Koenig
+- Re: Around the bike shed: Instruction names and assembler syntaxTerje Mathisen
+* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|+- Re: Around the bike shed: Instruction names and assembler syntaxStephen Fuld
|+* Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
||`* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|| `* Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
||  `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
||   +* Re: Around the bike shed: Instruction names and assembler syntaxTerje Mathisen
||   |`- Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
||   `* Fortran for The Mill (was: Around the bike shed: Instruction namesThomas Koenig
||    `- Re: Fortran for The Mill (was: Around the bike shed: InstructionIvan Godard
|`* Re: Around the bike shed: Instruction names and assembler syntaxJohn Levine
| +- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
| +* Re: Around the bike shed: Instruction names and assembler syntaxEricP
| |`* Re: Around the bike shed: Instruction names and assembler syntaxJohn Levine
| | `* Re: Around the bike shed: Instruction names and assembler syntaxEricP
| |  `- Re: high and higner level assemblers, was Around the bike shed: Instruction nameJohn Levine
| `* Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
|  `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|   `* Re: Around the bike shed: Instruction names and assembler syntaxNiklas Holsti
|    `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|     `* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      +* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |`* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      | `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |  `* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      |   +- Re: Around the bike shed: Instruction names and assembler syntaxTerje Mathisen
|      |   `* Re: Around the bike shed: Instruction names and assembler syntaxStefan Monnier
|      |    +- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |    `* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      |     `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |      `* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      |       `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |        `* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      |         +* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |         |+* Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
|      |         ||+* Re: Around the bike shed: Instruction names and assembler syntaxTim Rentsch
|      |         |||`* Re: Around the bike shed: Instruction names and assembler syntaxJohn Levine
|      |         ||| +- Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|      |         ||| `- Re: Around the bike shed: Instruction names and assembler syntaxTim Rentsch
|      |         ||`- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |         |`* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      |         | `- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |         `* Re: Around the bike shed: Instruction names and assembler syntaxTim Rentsch
|      |          +* Re: Around the bike shed: Instruction names and assembler syntaxStefan Monnier
|      |          |`- Re: Around the bike shed: Instruction names and assembler syntaxTim Rentsch
|      |          `* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      |           +- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      |           `* Re: Around the bike shed: Instruction names and assembler syntaxTim Rentsch
|      |            `- Re: Around the bike shed: Instruction names and assembler syntaxStefan Monnier
|      +* Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
|      |`* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      | +* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      | |+* Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
|      | ||`* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      | || +- Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
|      | || `* Re: Around the bike shed: Instruction names and assembler syntaxJohn Levine
|      | ||  `- Re: Around the bike shed: Instruction names and assembler syntaxNiklas Holsti
|      | |`* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      | | `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      | |  `* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      | |   `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      | |    `- Re: Around the bike shed: Instruction names and assembler syntaxTerje Mathisen
|      | +- Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
|      | +* Re: Around the bike shed: Instruction names and assembler syntaxNiklas Holsti
|      | |`* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|      | | `- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|      | `* Re: Around the bike shed: Instruction names and assembler syntaxTerje Mathisen
|      |  `- Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
|      `* Re: Around the bike shed: Instruction names and assembler syntaxTim Rentsch
|       +* Re: Around the bike shed: Instruction names and assembler syntaxNiklas Holsti
|       |`* Re: Around the bike shed: Instruction names and assembler syntaxTim Rentsch
|       | `* Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
|       |  +* Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  |+* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|       |  ||+* Re: Around the bike shed: Instruction names and assembler syntaxEricP
|       |  |||+- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|       |  |||`* Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
|       |  ||| +* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|       |  ||| |+* Re: Around the bike shed: Instruction names and assembler syntaxNiklas Holsti
|       |  ||| ||+* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|       |  ||| |||`* Re: Around the bike shed: Instruction names and assembler syntaxTerje Mathisen
|       |  ||| ||| +- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|       |  ||| ||| `- Re: Around the bike shed: Instruction names and assembler syntaxStefan Monnier
|       |  ||| ||`* Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  ||| || `* Re: Around the bike shed: Instruction names and assembler syntaxNiklas Holsti
|       |  ||| ||  +* Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  ||| ||  |`* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|       |  ||| ||  | `* Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  ||| ||  |  `- Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|       |  ||| ||  `- Re: Around the bike shed: Instruction names and assembler syntaxEricP
|       |  ||| |+- Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
|       |  ||| |`- Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  ||| `- Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  ||+- Re: Around the bike shed: Instruction names and assembler syntaxStephen Fuld
|       |  ||+* Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  |||+* Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
|       |  ||||`* Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  |||| +* Re: Around the bike shed: Instruction names and assembler syntaxTom Gardner
|       |  |||| |+* Re: Around the bike shed: Instruction names and assembler syntaxDavid Brown
|       |  |||| |`- Re: Around the bike shed: Instruction names and assembler syntaxStefan Monnier
|       |  |||| `* Re: Around the bike shed: Instruction names and assembler syntaxIvan Godard
|       |  |||`- Re: Around the bike shed: Instruction names and assembler syntaxTerje Mathisen
|       |  ||`* Re: Around the bike shed: Instruction names and assembler syntaxAnton Ertl
|       |  |`- Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
|       |  `- Re: Around the bike shed: Instruction names and assembler syntaxTim Rentsch
|       +* Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig
|       `* Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
+- Re: Around the bike shed: Instruction names and assembler syntaxStefan Monnier
+* Re: Around the bike shed: Instruction names and assembler syntaxMitchAlsup
+* Re: Around the bike shed: Instruction names and assembler syntaxJames Van Buskirk
+- Re: Around the bike shed: Instruction names and assembler syntaxBGB
`* Re: Around the bike shed: Instruction names and assembler syntaxThomas Koenig

Pages:12345678910
Re: Around the bike shed: Instruction names and assembler syntax

<t078v7$5l5$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24050&group=comp.arch#24050

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: spamj...@blueyonder.co.uk (Tom Gardner)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 09:51:35 +0000
Organization: A noiseless patient Spider
Lines: 9
Message-ID: <t078v7$5l5$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<t05pln$ldu$1@dont-email.me>
<c1752c86-c84b-4294-8bdf-84eee2b783c7n@googlegroups.com>
<t072bg$k6k$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 8 Mar 2022 09:51:35 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="da077d2cf091c523ed05f994ce140cd5";
logging-data="5797"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19KkG/qhmOJk6XgrYmAKoEz"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
Firefox/52.0 SeaMonkey/2.49.4
Cancel-Lock: sha1:k85bR7xuJgJoQDTGDnKk4kNx3PE=
In-Reply-To: <t072bg$k6k$1@dont-email.me>
 by: Tom Gardner - Tue, 8 Mar 2022 09:51 UTC

On 08/03/22 07:58, David Brown wrote:
> I know there/are/ languages without operator precedence, where "a + b *
> c" is "(a + b) * c". And I expect that people who use them get used to
> it. But I think it would take a fair amount of effort for most people
> to change their thinking when starting with such a language, and
> mistakes and misunderstandings would be common.

Calculators are too often like that. Too many people
are adamant that 1+2*3 is 9.

Re: Around the bike shed: Instruction names and assembler syntax

<t3k*M7CIy@news.chiark.greenend.org.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24051&group=comp.arch#24051

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!nntp.terraraq.uk!nntp-feed.chiark.greenend.org.uk!ewrotcd!.POSTED!not-for-mail
From: theom+n...@chiark.greenend.org.uk (Theo)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: 08 Mar 2022 11:18:51 +0000 (GMT)
Organization: University of Cambridge, England
Lines: 31
Message-ID: <t3k*M7CIy@news.chiark.greenend.org.uk>
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <memo.20220226104336.7708a@jgd.cix.co.uk> <svgqq7$cll$1@newsreader4.netcologne.de> <nLf*r48Hy@news.chiark.greenend.org.uk> <ANidnT3Kb-ZszoL_nZ2dnUU7-LHNnZ2d@supernews.com> <svodqv$rc$1@dont-email.me> <oLf*yP-Hy@news.chiark.greenend.org.uk> <svprsc$buf$1@newsreader4.netcologne.de> <2022Mar3.130732@mips.complang.tuwien.ac.at> <Uy4UJ.91086$Lbb6.86739@fx45.iad> <2022Mar5.183421@mips.complang.tuwien.ac.at> <xH5VJ.57841$oF2.18867@fx10.iad> <q3k*BGyIy@news.chiark.greenend.org.uk> <uSrVJ.46122$mF2.25802@fx11.iad>
NNTP-Posting-Host: chiark.greenend.org.uk
X-Trace: chiark.greenend.org.uk 1646738333 18319 212.13.197.229 (8 Mar 2022 11:18:53 GMT)
X-Complaints-To: abuse@chiark.greenend.org.uk
NNTP-Posting-Date: Tue, 8 Mar 2022 11:18:53 +0000 (UTC)
User-Agent: tin/1.8.3-20070201 ("Scotasay") (UNIX) (Linux/3.16.0-11-amd64 (x86_64))
Originator: theom@chiark.greenend.org.uk ([212.13.197.229])
 by: Theo - Tue, 8 Mar 2022 11:18 UTC

EricP <ThatWouldBeTelling@thevillage.com> wrote:
> Yes, that makes sense.
> Even for a mid-80's TTL DRAM controller I would be
> surprised if it didn't have same-row detection.
> Its a few latches and xors.
>
> So you are saying that because LDM/STM do a single instruction fetch,
> then a sequence of data addresses, it allows same-row detection
> and just a column address strobe CAS will do.
> For a sequence of individual LD or ST, the instruction addresses
> would most likely be to a different row than their data addresses
> so same-row detect doesn't kick in, and requires full RAS and CAS.

Yes. So a traditional LD/ST (even if to contiguous addresses) gives you:

row(instr. fetch); col(IF); row(data0); col(data0);
row(instr. fetch); col(IF); row(data1); col(data1);
....
row(instr. fetch); col(IF); row(data15); col(data15);

whereas STM/LDM has:

row(IF); col(IF); row(data0); col(data0);
col(data1);
....
col(data15);

I'm not very familiar with 1980s DRAMs but I don't think they had multiple
banks so you could have several rows open at once.

Theo

Re: Around the bike shed: Instruction names and assembler syntax

<86a6e0egtl.fsf@linuxsc.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24053&group=comp.arch#24053

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: tr.17...@z991.linuxsc.com (Tim Rentsch)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 08 Mar 2022 05:04:22 -0800
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <86a6e0egtl.fsf@linuxsc.com>
References: <svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com> <svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me> <j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me> <2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com> <j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com> <749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com> <t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me> <pj2e2hpvcn97c170cmrugvd7uvi2sklmcs@4ax.com> <2022Mar8.091833@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: reader02.eternal-september.org; posting-host="eb9093df1d45a8730a0059165ce9d7b9";
logging-data="23619"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/F3qG2YnxD4bkKQoc144LWMEA2Kp6xb3U="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:JdR9B/hGzbm6w7bXXy0v3sxIe5M=
sha1:395ivcV8jo5nPJj09cGcYetlQJ8=
 by: Tim Rentsch - Tue, 8 Mar 2022 13:04 UTC

anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:

> George Neuner <gneuner2@comcast.net> writes:
>
>> On Mon, 7 Mar 2022 07:02:23 -0800, Ivan Godard
>> <ivan@millcomputing.com> wrote:
>>
>>> Which is why having no precedence at all, just lexical order on the
>>> page, gets rid of all the problems.
>>
>> Lisp tried that
>
> And Forth and Postscript (without all these parentheses). And, for
> infix, APL, Smalltalk and, as I learned here), Mary.

Smalltalk has three levels of precedence. Only the middle level,
binary operators, is evaluated left-to-right (in the absence of
parentheses). Also Smalltalk has blocks, which tend to partition
expressions by virtue of blocks syntactically requiring square
brackets surrounding the expressions inside the block.

Re: Around the bike shed: Instruction names and assembler syntax

<t07lon$cmk$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24054&group=comp.arch#24054

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 14:29:58 +0100
Organization: A noiseless patient Spider
Lines: 48
Message-ID: <t07lon$cmk$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<%upVJ.46116$mF2.13431@fx11.iad>
<369bc250-9ea8-43ac-8ff1-c84df13b8f60n@googlegroups.com>
<t05gs7$8g1$1@dont-email.me> <j8n3j6FojdnU1@mid.individual.net>
<t071mm$gh3$1@dont-email.me> <j8on5bF3b0bU1@mid.individual.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 8 Mar 2022 13:29:59 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c52bacc949cc36754019b6f709eed4a6";
logging-data="13012"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19IT1NOr+poPfjfWRM5bo4qsw1pDA6JAjo="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:z7SjLYWmLjcByyGcdbK2yzuyP0A=
In-Reply-To: <j8on5bF3b0bU1@mid.individual.net>
Content-Language: en-GB
 by: David Brown - Tue, 8 Mar 2022 13:29 UTC

On 08/03/2022 10:49, Niklas Holsti wrote:
> On 2022-03-08 9:47, David Brown wrote:
>> On 07/03/2022 20:09, Niklas Holsti wrote:
>>>
>>> In some viruses (I believe) the genetic code can be read in both
>>> directions along the DNA or RNA strand, and each direction produces
>>> different useful proteins.
>>
>> I know this is getting /really/ off-topic, but do you have any
>> references for that?  I know that transcription from DNA to RNA can run
>> in both directions at once, but AFAIUI in eukaryotes there are
>> mechanisms in place to identify the wrong half and reject it.
>>
>>  From the way proteins are coded and the complexity of most of them, I
>> find it hard to imagine that you could get two useful proteins from the
>> same RNA in different directions - it's like trying to run a
>> byte-reversed program.  It is (to me) a lot more believable that there
>> are bits of virus DNA or RNA that are simply backwards.
>
>
> My recollection may be at fault, and I may have confused "direction"
> with "sense" (that is, strand complementarity). Or I may have
> mis-remembered the use of different coding-frame phases that Ivan
> described (which is already an amazing feat of biology).
>
> The section titled "Ambisense" in
> https://en.wikipedia.org/wiki/Sense_(molecular_biology) seems to come
> close, but perhaps it only means that the same RNA strand contains
> sections that are read in one direction, and sections that are read in
> the other direction, but no section is read in both directions. That
> resembles the alternation of reading direction line by line that Ivan
> also described. So, sorry, that is the closest I can come to a
> reference. I would not have made my comment in a serious discussion
> without checking it better.

Fair enough. (IMHO it's fine to make comments based on knowledge that
is only half-remembered, along with phrases like "I believe" - maybe
you'll get lucky and someone else will provide more information for or
against the idea.)

It seems logical and reasonable (based on my limited understanding - I
am an interested layman, not a real biologist) to find viruses that have
their RNA or DNA running in either direction (or "sense"), and it also
seems reasonable to find some where different genes are in different
directions. A direction swap could occur as variation during
reproduction. But a gene that worked in either direction would be, I
think, very unlikely.

Re: Around the bike shed: Instruction names and assembler syntax

<t07lq1$cmk$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24055&group=comp.arch#24055

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 14:30:41 +0100
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <t07lq1$cmk$2@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<t05pln$ldu$1@dont-email.me>
<c1752c86-c84b-4294-8bdf-84eee2b783c7n@googlegroups.com>
<t072bg$k6k$1@dont-email.me> <t078v7$5l5$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 8 Mar 2022 13:30:41 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c52bacc949cc36754019b6f709eed4a6";
logging-data="13012"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1//12TSoqGYp04ok9kFXo488yXc2YI09Ik="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:Oz6UkiRrRsRecKQBfSShGVJhE4Q=
In-Reply-To: <t078v7$5l5$1@dont-email.me>
Content-Language: en-GB
 by: David Brown - Tue, 8 Mar 2022 13:30 UTC

On 08/03/2022 10:51, Tom Gardner wrote:
> On 08/03/22 07:58, David Brown wrote:
>> I know there/are/  languages without operator precedence, where "a + b *
>> c" is "(a + b) * c".  And I expect that people who use them get used to
>> it.  But I think it would take a fair amount of effort for most people
>> to change their thinking when starting with such a language, and
>> mistakes and misunderstandings would be common.
>
> Calculators are too often like that. Too many people
> are adamant that 1+2*3 is 9.

Yes, but people who think that are unlikely to become programmers!

Re: Around the bike shed: Instruction names and assembler syntax

<t07q01$ffv$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24056&group=comp.arch#24056

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 06:42:09 -0800
Organization: A noiseless patient Spider
Lines: 90
Message-ID: <t07q01$ffv$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<%upVJ.46116$mF2.13431@fx11.iad>
<369bc250-9ea8-43ac-8ff1-c84df13b8f60n@googlegroups.com>
<t05gs7$8g1$1@dont-email.me> <j8n3j6FojdnU1@mid.individual.net>
<t05n08$q3k$1@dont-email.me> <t072f3$1h5u$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 8 Mar 2022 14:42:09 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="419da9657d4dc13ce28acbb176be47a2";
logging-data="15871"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX187YDiNhBaonZiDsoJtcUDZ"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.1
Cancel-Lock: sha1:4CeSEa192AGjkLWg4BOUtNMS98o=
In-Reply-To: <t072f3$1h5u$1@gioia.aioe.org>
Content-Language: en-US
 by: Ivan Godard - Tue, 8 Mar 2022 14:42 UTC

On 3/8/2022 12:00 AM, Terje Mathisen wrote:
> Ivan Godard wrote:
>> On 3/7/2022 11:09 AM, Niklas Holsti wrote:
>>> On 2022-03-07 19:54, Ivan Godard wrote:
>>>> On 3/7/2022 9:36 AM, MitchAlsup wrote:
>>>>> On Monday, March 7, 2022 at 9:26:55 AM UTC-6, EricP wrote:
>>>>>> Ivan Godard wrote:
>>>>>>> On 3/7/2022 12:34 AM, David Brown wrote:
>>>>>>>>
>>>>>>>> Extra parenthesis makes things abundantly clear at a glance -
>>>>>>>> the reader
>>>>>>>> can be in no doubt. They are useful for operators that are
>>>>>>>> relatively
>>>>>>>> rarely used or rarely used in particular combinations, but they
>>>>>>>> are also
>>>>>>>> useful to give the reader an idea of how you are building up the
>>>>>>>> expression logically. Maybe "(a + b) + (c + d)" gives the reader
>>>>>>>> more
>>>>>>>> information than just "a + b + c + d". Making code clear to read
>>>>>>>> - so
>>>>>>>> that the compiler and the reader are in sync - is vital.
>>>>>>>
>>>>>>> Which is why having no precedence at all, just lexical order on the
>>>>>>> page, gets rid of all the problems.
>>>>>> Ah but then we will have the left-endians and the right-endians,
>>>>>> and heretics will still abound!
>>>>> <
>>>>> Is there any room for a middle-endian ? That is start from the middle
>>>>> and progress outwards in both directions simultaneously.
>>>>
>>>> No languages that I know of are middle-endian in that sense. However
>>>> several switch directions at each line: l2r->r2l->l2r->etc, an
>>>> endless snake.
>>>
>>>
>>> In some viruses (I believe) the genetic code can be read in both
>>> directions along the DNA or RNA strand, and each direction produces
>>> different useful proteins. So a language without precedence could be
>>> both left-to-right and right-to-left, computing two different useful
>>> answers at the same time.
>>>
>>
>>
>> Clever! Some also get more than one protein from a xna strand by
>> starting the frame on a different one of the three coding phases.
>>
>> I did that last trick in a memory-dumping utility for the B6500 that
>> had to entirely fit on an 80-column card, but I've never written code
>> that read backwards. As it happens, one could do that on a Mill,
>> because the two decoders read away from each other. Sounds like a
>> challenge for Terje!
>
>
> This is of course quite easy on a RISC style fixed-length instruction
> set, you just need to write code that makes sense in both directions.
>
> It is a bit more complicated with varible-length instructions like x86,
> where you will very quickly run into issues like prefix bytes (like REP
> CMPS etc), in order to use those for a block move I would need something
> like MOVS REP MOVS, while all/most function calls require hiding the
> opposite endian code inside immediates.
>
> I.e. almost certainly doable, but very hard to make it space-saving.
>
> Terje
>

But the RISC code, while it may make sense in both directions, there is
no CPU that will execute it in both directions. The B6500, with one,
two, and three-byte instruct-ions, had a choice of three reading frames,
all forward; when my dumper got to the end of the card it branched back
into the middle of one of the early instructions and executed the bits
again but in a different frame.

On a Mill not, the ebb entry is the head of two instructions sequences,
exu going toward higher addresses and flow toward lower addresses; the
interpretation of a given bit pattern depends on which sequence it is in
- perhaps a multiply in one and a load in the other. If you branch into
the point *between* two ebbs then your exu sequence will be the same
bits as the flow sequence of the ebb at next higher addresses, and your
flow sequence will be the same bits as the exu sequence of the ebb at
next lower addresses, whatever those bits mean in that context.

In the Mill this is more complicated because the instructions in a
sequence are bit-aligned and vary in width. However, one can imagine a
RISC fixed-length ISA that used a Mill-like dual-decode for its icache
advantages, so that the instructions would all align nicely although
varying in meaning depending on whether read forward or backward.

Truly a Terje-scale conundrum!

Re: Around the bike shed: Instruction names and assembler syntax

<t07q4o$ffv$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24057&group=comp.arch#24057

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 06:44:41 -0800
Organization: A noiseless patient Spider
Lines: 52
Message-ID: <t07q4o$ffv$2@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<%upVJ.46116$mF2.13431@fx11.iad>
<369bc250-9ea8-43ac-8ff1-c84df13b8f60n@googlegroups.com>
<t05gs7$8g1$1@dont-email.me> <j8n3j6FojdnU1@mid.individual.net>
<t071mm$gh3$1@dont-email.me> <j8on5bF3b0bU1@mid.individual.net>
<t07lon$cmk$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 8 Mar 2022 14:44:40 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="419da9657d4dc13ce28acbb176be47a2";
logging-data="15871"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/fE3GweuBIlw0D7pS2STjC"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.1
Cancel-Lock: sha1:GJ51j6JilfHZrdPLtGwzm9Rjv74=
In-Reply-To: <t07lon$cmk$1@dont-email.me>
Content-Language: en-US
 by: Ivan Godard - Tue, 8 Mar 2022 14:44 UTC

On 3/8/2022 5:29 AM, David Brown wrote:
> On 08/03/2022 10:49, Niklas Holsti wrote:
>> On 2022-03-08 9:47, David Brown wrote:
>>> On 07/03/2022 20:09, Niklas Holsti wrote:
>>>>
>>>> In some viruses (I believe) the genetic code can be read in both
>>>> directions along the DNA or RNA strand, and each direction produces
>>>> different useful proteins.
>>>
>>> I know this is getting /really/ off-topic, but do you have any
>>> references for that?  I know that transcription from DNA to RNA can run
>>> in both directions at once, but AFAIUI in eukaryotes there are
>>> mechanisms in place to identify the wrong half and reject it.
>>>
>>>  From the way proteins are coded and the complexity of most of them, I
>>> find it hard to imagine that you could get two useful proteins from the
>>> same RNA in different directions - it's like trying to run a
>>> byte-reversed program.  It is (to me) a lot more believable that there
>>> are bits of virus DNA or RNA that are simply backwards.
>>
>>
>> My recollection may be at fault, and I may have confused "direction"
>> with "sense" (that is, strand complementarity). Or I may have
>> mis-remembered the use of different coding-frame phases that Ivan
>> described (which is already an amazing feat of biology).
>>
>> The section titled "Ambisense" in
>> https://en.wikipedia.org/wiki/Sense_(molecular_biology) seems to come
>> close, but perhaps it only means that the same RNA strand contains
>> sections that are read in one direction, and sections that are read in
>> the other direction, but no section is read in both directions. That
>> resembles the alternation of reading direction line by line that Ivan
>> also described. So, sorry, that is the closest I can come to a
>> reference. I would not have made my comment in a serious discussion
>> without checking it better.
>
> Fair enough. (IMHO it's fine to make comments based on knowledge that
> is only half-remembered, along with phrases like "I believe" - maybe
> you'll get lucky and someone else will provide more information for or
> against the idea.)
>
> It seems logical and reasonable (based on my limited understanding - I
> am an interested layman, not a real biologist) to find viruses that have
> their RNA or DNA running in either direction (or "sense"), and it also
> seems reasonable to find some where different genes are in different
> directions. A direction swap could occur as variation during
> reproduction. But a gene that worked in either direction would be, I
> think, very unlikely.
>

Unlikely becomes trivial given enough time to work on it, and they have
had quite a while :-)

Re: Around the bike shed: Instruction names and assembler syntax

<_2KVJ.110958$H_t7.35296@fx40.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24058&group=comp.arch#24058

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx40.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com> <svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me> <j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me> <2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com> <j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com> <749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com> <t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me> <%upVJ.46116$mF2.13431@fx11.iad> <369bc250-9ea8-43ac-8ff1-c84df13b8f60n@googlegroups.com> <t05gs7$8g1$1@dont-email.me> <j8n3j6FojdnU1@mid.individual.net> <t071mm$gh3$1@dont-email.me> <j8on5bF3b0bU1@mid.individual.net>
In-Reply-To: <j8on5bF3b0bU1@mid.individual.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 53
Message-ID: <_2KVJ.110958$H_t7.35296@fx40.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Tue, 08 Mar 2022 14:50:34 UTC
Date: Tue, 08 Mar 2022 09:50:26 -0500
X-Received-Bytes: 4089
 by: EricP - Tue, 8 Mar 2022 14:50 UTC

Niklas Holsti wrote:
> On 2022-03-08 9:47, David Brown wrote:
>> On 07/03/2022 20:09, Niklas Holsti wrote:
>>>
>>> In some viruses (I believe) the genetic code can be read in both
>>> directions along the DNA or RNA strand, and each direction produces
>>> different useful proteins.
>>
>> I know this is getting /really/ off-topic, but do you have any
>> references for that? I know that transcription from DNA to RNA can run
>> in both directions at once, but AFAIUI in eukaryotes there are
>> mechanisms in place to identify the wrong half and reject it.
>>
>> From the way proteins are coded and the complexity of most of them, I
>> find it hard to imagine that you could get two useful proteins from the
>> same RNA in different directions - it's like trying to run a
>> byte-reversed program. It is (to me) a lot more believable that there
>> are bits of virus DNA or RNA that are simply backwards.
>
>
> My recollection may be at fault, and I may have confused "direction"
> with "sense" (that is, strand complementarity). Or I may have
> mis-remembered the use of different coding-frame phases that Ivan
> described (which is already an amazing feat of biology).
>
> The section titled "Ambisense" in
> https://en.wikipedia.org/wiki/Sense_(molecular_biology) seems to come
> close, but perhaps it only means that the same RNA strand contains
> sections that are read in one direction, and sections that are read in
> the other direction, but no section is read in both directions. That
> resembles the alternation of reading direction line by line that Ivan
> also described. So, sorry, that is the closest I can come to a
> reference. I would not have made my comment in a serious discussion
> without checking it better.

https://en.wikipedia.org/wiki/Reading_frame

"Any given sequence of DNA can therefore be read in six different ways:
Three reading frames in one direction (starting at different nucleotides)
and three in the opposite direction."

"A single strand of a nucleic acid molecule has a phosphoryl end, called
the 5′-end, and a hydroxyl or 3′-end. These define the 5′→3′ direction.
There are three reading frames that can be read in this 5′→3′ direction,
each beginning from a different nucleotide in a triplet.

In a double stranded nucleic acid, an additional three reading frames
may be read from the other, complementary strand in the 5′→3′ direction
along this strand. As the two strands of a double-stranded nucleic acid
molecule are antiparallel, the 5′→3′ direction on the second strand
corresponds to the 3′→5′ direction along the first strand."

Re: Around the bike shed: Instruction names and assembler syntax

<t07qn4$lig$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24059&group=comp.arch#24059

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!paganini.bofh.team!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 06:54:28 -0800
Organization: A noiseless patient Spider
Lines: 57
Message-ID: <t07qn4$lig$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<t05pln$ldu$1@dont-email.me>
<c1752c86-c84b-4294-8bdf-84eee2b783c7n@googlegroups.com>
<t072bg$k6k$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 8 Mar 2022 14:54:28 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="419da9657d4dc13ce28acbb176be47a2";
logging-data="22096"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19nK4F3Zb9YM4fsZp8zHb2p"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.1
Cancel-Lock: sha1:Zafy8zU1KFzAuaDCtIJ5J/27UTI=
In-Reply-To: <t072bg$k6k$1@dont-email.me>
Content-Language: en-US
 by: Ivan Godard - Tue, 8 Mar 2022 14:54 UTC

On 3/7/2022 11:58 PM, David Brown wrote:
> On 07/03/2022 22:48, MitchAlsup wrote:
>> On Monday, March 7, 2022 at 2:24:27 PM UTC-6, David Brown wrote:
>>> On 07/03/2022 16:02, Ivan Godard wrote:
>>>> On 3/7/2022 12:34 AM, David Brown wrote:
>>>>>
>>>>> Extra parenthesis makes things abundantly clear at a glance - the reader
>>>>> can be in no doubt. They are useful for operators that are relatively
>>>>> rarely used or rarely used in particular combinations, but they are also
>>>>> useful to give the reader an idea of how you are building up the
>>>>> expression logically. Maybe "(a + b) + (c + d)" gives the reader more
>>>>> information than just "a + b + c + d". Making code clear to read - so
>>>>> that the compiler and the reader are in sync - is vital.
>>>>
>>>> Which is why having no precedence at all, just lexical order on the
>>>> page, gets rid of all the problems.
>>> That would get rid of such problems (though obviously it is not
>>> applicable to C or C-like languages). However, it would introduce new
>>> problems - people expect "a + b * c" to have the same precedence as in
>>> normal mathematics.
>> <
>> Only when you have never written in a precedence-free language.
>> <
>> a + b * c
>> <
>> Reads just like ASM:
>> <
>> ADD Rt,Ra,Rb
>> MUL Rt,Rt,Rc
>
>
> I've written plenty of assembly. But assembly is not a precedence-free
> language - it is a language using prefix functional notation. That is a
> very different thing.
>
> I know there /are/ languages without operator precedence, where "a + b *
> c" is "(a + b) * c". And I expect that people who use them get used to
> it. But I think it would take a fair amount of effort for most people
> to change their thinking when starting with such a language, and
> mistakes and misunderstandings would be common.

Data point: I have not written APL, but have read quite a bit of
commentary, and while there were complaints about the symbolic notation
and the need for quite a bit of math background to grasp the effect of
some of the operators, I do not recall any complaints about absence of
precedence.

Data point: there was an operating system and quite a bit of embedded
code written in Mary1, with no complaints about precedence. That may
have been because people were thinking of their problem in machine terms
before coding, instead of mathematical expression terms, so they
naturally wrote the instructions they wanted in the order they wanted
them to execute, which was textual order in Mary. Multiply is not a
common operation in OS code once address multiplies are pulled into
subscript notation, which Mary did.

Re: Around the bike shed: Instruction names and assembler syntax

<VrKVJ.9330$4T.2233@fx24.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24060&group=comp.arch#24060

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.swapon.de!news.uzoreto.com!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx24.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <memo.20220226104336.7708a@jgd.cix.co.uk> <svgqq7$cll$1@newsreader4.netcologne.de> <nLf*r48Hy@news.chiark.greenend.org.uk> <ANidnT3Kb-ZszoL_nZ2dnUU7-LHNnZ2d@supernews.com> <svodqv$rc$1@dont-email.me> <oLf*yP-Hy@news.chiark.greenend.org.uk> <svprsc$buf$1@newsreader4.netcologne.de> <2022Mar3.130732@mips.complang.tuwien.ac.at> <Uy4UJ.91086$Lbb6.86739@fx45.iad> <2022Mar5.183421@mips.complang.tuwien.ac.at> <xH5VJ.57841$oF2.18867@fx10.iad> <q3k*BGyIy@news.chiark.greenend.org.uk> <uSrVJ.46122$mF2.25802@fx11.iad> <t3k*M7CIy@news.chiark.greenend.org.uk>
In-Reply-To: <t3k*M7CIy@news.chiark.greenend.org.uk>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 41
Message-ID: <VrKVJ.9330$4T.2233@fx24.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Tue, 08 Mar 2022 15:17:09 UTC
Date: Tue, 08 Mar 2022 10:16:44 -0500
X-Received-Bytes: 2780
 by: EricP - Tue, 8 Mar 2022 15:16 UTC

Theo wrote:
> EricP <ThatWouldBeTelling@thevillage.com> wrote:
>> Yes, that makes sense.
>> Even for a mid-80's TTL DRAM controller I would be
>> surprised if it didn't have same-row detection.
>> Its a few latches and xors.
>>
>> So you are saying that because LDM/STM do a single instruction fetch,
>> then a sequence of data addresses, it allows same-row detection
>> and just a column address strobe CAS will do.
>> For a sequence of individual LD or ST, the instruction addresses
>> would most likely be to a different row than their data addresses
>> so same-row detect doesn't kick in, and requires full RAS and CAS.
>
> Yes. So a traditional LD/ST (even if to contiguous addresses) gives you:
>
> row(instr. fetch); col(IF); row(data0); col(data0);
> row(instr. fetch); col(IF); row(data1); col(data1);
> ....
> row(instr. fetch); col(IF); row(data15); col(data15);
>
> whereas STM/LDM has:
>
> row(IF); col(IF); row(data0); col(data0);
> col(data1);
> ....
> col(data15);
>
> I'm not very familiar with 1980s DRAMs but I don't think they had multiple
> banks so you could have several rows open at once.
>
> Theo

Its that a TTL DRAM controller took up a whole board itself.
So while the DRAMs could each have a different row open,
most couldn't afford the logic to make use of it.
Also almost all DRAMs then were *1, that is 1 data bit in-out as
that maximizes the storage while minimizing the package pin count.
So a 32-bit wide memory required multiples of 32 chips,
which also was a fair amount board space.

Re: Around the bike shed: Instruction names and assembler syntax

<jwv7d94ihtm.fsf-monnier+comp.arch@gnu.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24061&group=comp.arch#24061

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: monn...@iro.umontreal.ca (Stefan Monnier)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 08 Mar 2022 10:31:18 -0500
Organization: A noiseless patient Spider
Lines: 9
Message-ID: <jwv7d94ihtm.fsf-monnier+comp.arch@gnu.org>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at>
<864k4bf8yv.fsf@linuxsc.com> <j8k20sF6k96U1@mid.individual.net>
<86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<t05pln$ldu$1@dont-email.me>
<c1752c86-c84b-4294-8bdf-84eee2b783c7n@googlegroups.com>
<t072bg$k6k$1@dont-email.me> <t078v7$5l5$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="7665945b956548fe1836d0c3d467eb82";
logging-data="4636"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19kbC9ibDIq9LmBVHA8TN2w"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Cancel-Lock: sha1:JVmbwWW86Jgjs9dHuldTEzk3CHc=
sha1:AwCz8LzMMCS09mXt+a3s8zhsoKE=
 by: Stefan Monnier - Tue, 8 Mar 2022 15:31 UTC

> Calculators are too often like that.
> Too many people are adamant that 1+2*3 is 9.

These calculators are the reason why HP's RPN was so popular:
It's like comparing an accumulator based ISA to
stack-based ISA.

Stefan

Re: Around the bike shed: Instruction names and assembler syntax

<jwv1qzcihm1.fsf-monnier+comp.arch@gnu.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24062&group=comp.arch#24062

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: monn...@iro.umontreal.ca (Stefan Monnier)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 08 Mar 2022 10:35:21 -0500
Organization: A noiseless patient Spider
Lines: 9
Message-ID: <jwv1qzcihm1.fsf-monnier+comp.arch@gnu.org>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at>
<864k4bf8yv.fsf@linuxsc.com> <j8k20sF6k96U1@mid.individual.net>
<86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<%upVJ.46116$mF2.13431@fx11.iad>
<369bc250-9ea8-43ac-8ff1-c84df13b8f60n@googlegroups.com>
<t05gs7$8g1$1@dont-email.me> <j8n3j6FojdnU1@mid.individual.net>
<t05n08$q3k$1@dont-email.me> <t072f3$1h5u$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="7665945b956548fe1836d0c3d467eb82";
logging-data="4636"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/vxHyiLSCGo/oxISgAiQyL"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
Cancel-Lock: sha1:NzW477EXAVrL79Br2AilbURTAgs=
sha1:fcCJIJjX8OGZwLG9Jwtwfhk6p+A=
 by: Stefan Monnier - Tue, 8 Mar 2022 15:35 UTC

> This is of course quite easy on a RISC style fixed-length instruction set,
> you just need to write code that makes sense in both directions.

I think it depends how you do the direction reversal: are just 32bit
words reversed (so it's really the same instructions just executed in
the other order), or are bytes reversed? how 'bout bit-by-bit?

Stefan

Re: Around the bike shed: Instruction names and assembler syntax

<Y2LVJ.50256$mF2.2890@fx11.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24063&group=comp.arch#24063

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx11.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <memo.20220226104336.7708a@jgd.cix.co.uk> <svgqq7$cll$1@newsreader4.netcologne.de> <nLf*r48Hy@news.chiark.greenend.org.uk> <ANidnT3Kb-ZszoL_nZ2dnUU7-LHNnZ2d@supernews.com> <svodqv$rc$1@dont-email.me> <oLf*yP-Hy@news.chiark.greenend.org.uk> <svprsc$buf$1@newsreader4.netcologne.de> <2022Mar3.130732@mips.complang.tuwien.ac.at> <Uy4UJ.91086$Lbb6.86739@fx45.iad> <e348105a-d9c8-4dda-a843-14e403ad804fn@googlegroups.com> <EUbUJ.32421$dln7.10284@fx03.iad> <1f1b31df-b5dd-490f-b2fe-138444616650n@googlegroups.com> <plMUJ.35998$mF2.6634@fx11.iad> <t006du$2f1$1@dont-email.me> <WfpVJ.96200$Lbb6.40450@fx45.iad> <t05bb4$jo8$1@dont-email.me> <IOsVJ.76022$41E7.35886@fx37.iad> <t05nad$1i9$1@dont-email.me>
In-Reply-To: <t05nad$1i9$1@dont-email.me>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 45
Message-ID: <Y2LVJ.50256$mF2.2890@fx11.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Tue, 08 Mar 2022 15:58:48 UTC
Date: Tue, 08 Mar 2022 10:58:28 -0500
X-Received-Bytes: 3646
 by: EricP - Tue, 8 Mar 2022 15:58 UTC

Ivan Godard wrote:
> On 3/7/2022 11:10 AM, EricP wrote:
>> Ivan Godard wrote:
>>> On 3/7/2022 7:10 AM, EricP wrote:
>>> > - user mode exception/signal handler entry,exit
>>>
>>> Why are exceptions different from calls you didn't ask for?
>>
>> If I was doing it, the OS deposits (pushes) a packet of exception info
>> and the return PC onto the apps' user mode stack, and OS returns to
>> the exception routine. User mode exception handler saves the full integer
>> context on the stack, and calls the exception dispatcher routine
>> passing pointers to the exception info and saved context structs as args.
>> Exception handlers can edit saved context as they wish.
>> When handlers return, exception dispatcher reloads the now possibly
>> edited
>> interrupted context, restores stack, and returns to the possibly
>> edited PC.
>
> How do you do it if there are no modes?

The main problem is how does exception information get delivered
to the offending execution, since exceptions are non-maskable so
a single set of registers could be overwritten by multiple exceptions.

Pushing an exception descriptor on the stack is the usual way to handle
this but that has its own issues, like page faults pushing the packet,
stack overflow, variable exception packet size complicates interrupt return.
Also it assumes the ISA has a designated stack register, and may require
coordination of stack allocation with the OS like Linux "red zones".

If its not hardware pushing the packet then the OS emulates this where
an exception halts the app thread, spilling its context to memory.
Then kernel thread edits the app stack and context to push the
exception packet on the app stack and the PC to a exception handler,
and then restarts the app thread. This is basically what WinNT does.

The main complaint that people seem to have is that exceptions are
too expensive, or that the trip through the operating system to
deliver them is too expensive.
Aside from page fault of valid addresses, which is handled by the OS anyway,
the only exception that is performance critical is the recent introduction
of hardware transaction memory HTM aborts delivered directly to the app.

Re: Around the bike shed: Instruction names and assembler syntax

<t07ugr$m5p$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24064&group=comp.arch#24064

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 16:59:22 +0100
Organization: A noiseless patient Spider
Lines: 30
Message-ID: <t07ugr$m5p$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<%upVJ.46116$mF2.13431@fx11.iad>
<369bc250-9ea8-43ac-8ff1-c84df13b8f60n@googlegroups.com>
<t05gs7$8g1$1@dont-email.me> <j8n3j6FojdnU1@mid.individual.net>
<t071mm$gh3$1@dont-email.me> <j8on5bF3b0bU1@mid.individual.net>
<t07lon$cmk$1@dont-email.me> <t07q4o$ffv$2@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 8 Mar 2022 15:59:23 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c52bacc949cc36754019b6f709eed4a6";
logging-data="22713"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18wtFgtLANOXIFxAAkH0m0Ht55j4DYDFvs="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:iAHwtxsM34O3Stc8D9WYrUz1CjI=
In-Reply-To: <t07q4o$ffv$2@dont-email.me>
Content-Language: en-GB
 by: David Brown - Tue, 8 Mar 2022 15:59 UTC

On 08/03/2022 15:44, Ivan Godard wrote:
> On 3/8/2022 5:29 AM, David Brown wrote:

>> It seems logical and reasonable (based on my limited understanding - I
>> am an interested layman, not a real biologist) to find viruses that have
>> their RNA or DNA running in either direction (or "sense"), and it also
>> seems reasonable to find some where different genes are in different
>> directions.  A direction swap could occur as variation during
>> reproduction.  But a gene that worked in either direction would be, I
>> think, very unlikely.
>>
>
> Unlikely becomes trivial given enough time to work on it, and they have
> had quite a while :-)

Evolution doesn't work that way in general. /Some/ unlikely things turn
up - the most realistic plausible scenarios for abiogenesis all depend
on some "win the lottery" coincidences. But mostly evolution works from
large numbers of small steps - and small steps are not going to get you
from a recipe for a useful protein into a recipe for a useful protein
that can be read backwards to produce a different useful protein.

Anyway, you need to read "very unlikely" with a Scottish accent. Then
you'll appreciate that it means "very, very, very unlikely - of the
level that it will probably never happen anywhere in the multiverse even
if the string theorists are right". (That estimate is based on my
current understanding - if someone has references showing I'm wrong
here, I'd be happy to read them.)

Re: Around the bike shed: Instruction names and assembler syntax

<t07urc$pe1$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24065&group=comp.arch#24065

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: david.br...@hesbynett.no (David Brown)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 17:04:59 +0100
Organization: A noiseless patient Spider
Lines: 72
Message-ID: <t07urc$pe1$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<t05pln$ldu$1@dont-email.me>
<c1752c86-c84b-4294-8bdf-84eee2b783c7n@googlegroups.com>
<t072bg$k6k$1@dont-email.me> <t07qn4$lig$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 8 Mar 2022 16:05:00 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="c52bacc949cc36754019b6f709eed4a6";
logging-data="26049"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+w6u3whEPlI2abP7r7SWJydtpey4xPpoU="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.11.0
Cancel-Lock: sha1:BSldUm/DyQ+t01gghmYnqnwqwcE=
In-Reply-To: <t07qn4$lig$1@dont-email.me>
Content-Language: en-GB
 by: David Brown - Tue, 8 Mar 2022 16:04 UTC

On 08/03/2022 15:54, Ivan Godard wrote:
> On 3/7/2022 11:58 PM, David Brown wrote:
>> On 07/03/2022 22:48, MitchAlsup wrote:
>>> On Monday, March 7, 2022 at 2:24:27 PM UTC-6, David Brown wrote:
>>>> On 07/03/2022 16:02, Ivan Godard wrote:
>>>>> On 3/7/2022 12:34 AM, David Brown wrote:
>>>>>>
>>>>>> Extra parenthesis makes things abundantly clear at a glance - the
>>>>>> reader
>>>>>> can be in no doubt.  They are useful for operators that are
>>>>>> relatively
>>>>>> rarely used or rarely used in particular combinations, but they
>>>>>> are also
>>>>>> useful to give the reader an idea of how you are building up the
>>>>>> expression logically.  Maybe "(a + b) + (c + d)" gives the reader
>>>>>> more
>>>>>> information than just "a + b + c + d".  Making code clear to read
>>>>>> - so
>>>>>> that the compiler and the reader are in sync - is vital.
>>>>>
>>>>> Which is why having no precedence at all, just lexical order on the
>>>>> page, gets rid of all the problems.
>>>> That would get rid of such problems (though obviously it is not
>>>> applicable to C or C-like languages). However, it would introduce new
>>>> problems - people expect "a + b * c" to have the same precedence as in
>>>> normal mathematics.
>>> <
>>> Only when you have never written in a precedence-free language.
>>> <
>>> a + b * c
>>> <
>>> Reads just like ASM:
>>> <
>>>         ADD    Rt,Ra,Rb
>>>         MUL    Rt,Rt,Rc
>>
>>
>> I've written plenty of assembly.  But assembly is not a precedence-free
>> language - it is a language using prefix functional notation.  That is a
>> very different thing.
>>
>> I know there /are/ languages without operator precedence, where "a + b *
>> c" is "(a + b) * c".  And I expect that people who use them get used to
>> it.  But I think it would take a fair amount of effort for most people
>> to change their thinking when starting with such a language, and
>> mistakes and misunderstandings would be common.
>
> Data point: I have not written APL, but have read quite a bit of
> commentary, and while there were complaints about the symbolic notation
> and the need for quite a bit of math background to grasp the effect of
> some of the operators, I do not recall any complaints about absence of
> precedence.

I think APL is so special that anyone writing code in it will not be
surprised by such minor differences from other languages - a lack of
operator precedence would be lost in the noise. And anyway, there are
so many operators in APL that assigning precedence levels would be
nearly impossible, and learning them would be worse. (Disclaimer - I
haven't written APL since trying it one weekend three decades ago.)

>
> Data point: there was an operating system and quite a bit of embedded
> code written in Mary1, with no complaints about precedence. That may
> have been because people were thinking of their problem in machine terms
> before coding, instead of mathematical expression terms, so they
> naturally wrote the instructions they wanted in the order they wanted
> them to execute, which was textual order in Mary. Multiply is not a
> common operation in OS code once address multiplies are pulled into
> subscript notation, which Mary did.
>
>

Re: Around the bike shed: Instruction names and assembler syntax

<t080t7$bll$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24066&group=comp.arch#24066

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 08:40:09 -0800
Organization: A noiseless patient Spider
Lines: 56
Message-ID: <t080t7$bll$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<%upVJ.46116$mF2.13431@fx11.iad>
<369bc250-9ea8-43ac-8ff1-c84df13b8f60n@googlegroups.com>
<t05gs7$8g1$1@dont-email.me> <j8n3j6FojdnU1@mid.individual.net>
<t071mm$gh3$1@dont-email.me> <j8on5bF3b0bU1@mid.individual.net>
<t07lon$cmk$1@dont-email.me> <t07q4o$ffv$2@dont-email.me>
<t07ugr$m5p$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 8 Mar 2022 16:40:08 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="419da9657d4dc13ce28acbb176be47a2";
logging-data="11957"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19bgdurRtsS8d3hfpmoMas3"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.1
Cancel-Lock: sha1:66ps5OqLq+1gG2K/bWeidvBnnwE=
In-Reply-To: <t07ugr$m5p$1@dont-email.me>
Content-Language: en-US
 by: Ivan Godard - Tue, 8 Mar 2022 16:40 UTC

On 3/8/2022 7:59 AM, David Brown wrote:
> On 08/03/2022 15:44, Ivan Godard wrote:
>> On 3/8/2022 5:29 AM, David Brown wrote:
>
>>> It seems logical and reasonable (based on my limited understanding - I
>>> am an interested layman, not a real biologist) to find viruses that have
>>> their RNA or DNA running in either direction (or "sense"), and it also
>>> seems reasonable to find some where different genes are in different
>>> directions.  A direction swap could occur as variation during
>>> reproduction.  But a gene that worked in either direction would be, I
>>> think, very unlikely.
>>>
>>
>> Unlikely becomes trivial given enough time to work on it, and they have
>> had quite a while :-)
>
> Evolution doesn't work that way in general. /Some/ unlikely things turn
> up - the most realistic plausible scenarios for abiogenesis all depend
> on some "win the lottery" coincidences. But mostly evolution works from
> large numbers of small steps - and small steps are not going to get you
> from a recipe for a useful protein into a recipe for a useful protein
> that can be read backwards to produce a different useful protein.
>
> Anyway, you need to read "very unlikely" with a Scottish accent. Then
> you'll appreciate that it means "very, very, very unlikely - of the
> level that it will probably never happen anywhere in the multiverse even
> if the string theorists are right". (That estimate is based on my
> current understanding - if someone has references showing I'm wrong
> here, I'd be happy to read them.)

If an xna string can be read to a protein in either direction, and
apparently some viruses do, then it will be read in both directions
accidentally. If one direction gives something useful then evolution
will optimize that direction, and that optimization will randomly
pessimize the junk that arises from the other direction.

However, xna is not an entropy-optimizing encoding, or at least not
much; there is a great deal of wasted entropy: multiple triplets that
code for the same acid, quite different sequences that fold to the same
functional shape, and so on. These will get randomly reshuffled while
maintaining the function of the primary read direction, while giving a
palette for evolution in the other read direction.

The result should be, eventually, dual use xna strings. However, those
strings are likely to be shorter than single-use strings. That's because
a single-point mutation is likely to be optimal only in one reading,
with the other reading either silent or pessimal. as a result, the
optimal-optimal mutations that are of benefit to the organism will be
less common than the optimal-don't care mutations of single-read xna. As
a result, the dual-read strand has less evolutionary responsiveness to
changing conditions, and should be suppressed. The suppression will be
length-sensitive.

Hence I expect that dual-read will not be found in full-protien
encodings, which are lengthy. However they are likely in short-strand
encodings of peptides. More: https://en.wikipedia.org/wiki/Peptide

Re: Around the bike shed: Instruction names and assembler syntax

<t0843g$78q$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24067&group=comp.arch#24067

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: spamj...@blueyonder.co.uk (Tom Gardner)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 17:34:40 +0000
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <t0843g$78q$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<t05pln$ldu$1@dont-email.me>
<c1752c86-c84b-4294-8bdf-84eee2b783c7n@googlegroups.com>
<t072bg$k6k$1@dont-email.me> <t078v7$5l5$1@dont-email.me>
<t07lq1$cmk$2@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 8 Mar 2022 17:34:40 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="da077d2cf091c523ed05f994ce140cd5";
logging-data="7450"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19VkWawgldUpEkbHXbhp173"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
Firefox/52.0 SeaMonkey/2.49.4
Cancel-Lock: sha1:K1gg/hc1SMm44vb9rlUGf6fU9b0=
In-Reply-To: <t07lq1$cmk$2@dont-email.me>
 by: Tom Gardner - Tue, 8 Mar 2022 17:34 UTC

On 08/03/22 13:30, David Brown wrote:
> On 08/03/2022 10:51, Tom Gardner wrote:
>> On 08/03/22 07:58, David Brown wrote:
>>> I know there/are/  languages without operator precedence, where "a + b *
>>> c" is "(a + b) * c".  And I expect that people who use them get used to
>>> it.  But I think it would take a fair amount of effort for most people
>>> to change their thinking when starting with such a language, and
>>> mistakes and misunderstandings would be common.
>>
>> Calculators are too often like that. Too many people
>> are adamant that 1+2*3 is 9.
>
> Yes, but people who think that are unlikely to become programmers!

Based on my experience, don't bet on it :(

Far too many people with computing degrees don't recognise an FSM,
even when they are coding one. Typical comment@ "FSMs? Aren't they
something to do with compilers?"

Re: Around the bike shed: Instruction names and assembler syntax

<t087om$uub$1@newsreader4.netcologne.de>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24068&group=comp.arch#24068

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd4-fef8-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Tue, 8 Mar 2022 18:37:10 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <t087om$uub$1@newsreader4.netcologne.de>
References: <svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com>
<svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com>
<j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com>
<749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
<t04g2j$7ip$1@dont-email.me> <t056q0$hom$1@dont-email.me>
<pj2e2hpvcn97c170cmrugvd7uvi2sklmcs@4ax.com>
<2022Mar8.091833@mips.complang.tuwien.ac.at>
Injection-Date: Tue, 8 Mar 2022 18:37:10 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd4-fef8-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd4:fef8:0:7285:c2ff:fe6c:992d";
logging-data="31691"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Tue, 8 Mar 2022 18:37 UTC

Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
> George Neuner <gneuner2@comcast.net> writes:
>>On Mon, 7 Mar 2022 07:02:23 -0800, Ivan Godard
>><ivan@millcomputing.com> wrote:
>>
>>>Which is why having no precedence at all, just lexical order on the
>>>page, gets rid of all the problems.
>>
>>Lisp tried that
>
> And Forth and Postscript (without all these parentheses). And, for
> infix, APL, Smalltalk and, as I learned here), Mary.
>
>>... how many people today use SExpr languages?
>
> Or any of the others.

I write PostScript now and then. Once I had occasion to translate
a few fairly complex equations to PostScript. The fastest way I
could find was to write a quick yacc, or rather bision, grammar.

For simpler formulas (which came before) I put the current state
of the stack into comments. Debugging consisted mostly of putting
a "debug" command, which wasn't defined, into the program and
examining the log file.

Other than that, the only relevant PostScript I ever wrote was some
additions to the gnuplot symbol table. It has far more symbols
than all the other terminals. For example, you get 16 differently
filled circle symbols, plus squares and diamonds. (You can test
it out by writing

gnuplot> set terminal postscript
....
gnuplot> set output "test.ps"
gnuplot> test
gnuplot> set output

which will at least display the first 33 symbols, including 17
of the ones I contributed).

I wrote this to help a friend who was doing his PhD thesis at
the time. His advisor insisted on a certain look of the graph
symbols, which meant that the institute's technical draftsman had
to do the drawings, but my friend wanted to use computer-generated
graphs (small wonder). So I had gnuplot generate these symbols
according to the institute's designs, and the patch was included
in the official distribution later.

Re: Around the bike shed: Instruction names and assembler syntax

<43194ead-6252-460c-a9f3-e6f01a475ab0n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24069&group=comp.arch#24069

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5c81:0:b0:2dd:97b6:bcc7 with SMTP id r1-20020ac85c81000000b002dd97b6bcc7mr14674613qta.412.1646766209245;
Tue, 08 Mar 2022 11:03:29 -0800 (PST)
X-Received: by 2002:a05:6808:1301:b0:2d5:4226:87e4 with SMTP id
y1-20020a056808130100b002d5422687e4mr3580155oiv.136.1646766208842; Tue, 08
Mar 2022 11:03:28 -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.arch
Date: Tue, 8 Mar 2022 11:03:28 -0800 (PST)
In-Reply-To: <Y2LVJ.50256$mF2.2890@fx11.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:5d24:3bc4:c8bd:a6ba;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:5d24:3bc4:c8bd:a6ba
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <memo.20220226104336.7708a@jgd.cix.co.uk>
<svgqq7$cll$1@newsreader4.netcologne.de> <nLf*r48Hy@news.chiark.greenend.org.uk>
<ANidnT3Kb-ZszoL_nZ2dnUU7-LHNnZ2d@supernews.com> <svodqv$rc$1@dont-email.me>
<oLf*yP-Hy@news.chiark.greenend.org.uk> <svprsc$buf$1@newsreader4.netcologne.de>
<2022Mar3.130732@mips.complang.tuwien.ac.at> <Uy4UJ.91086$Lbb6.86739@fx45.iad>
<e348105a-d9c8-4dda-a843-14e403ad804fn@googlegroups.com> <EUbUJ.32421$dln7.10284@fx03.iad>
<1f1b31df-b5dd-490f-b2fe-138444616650n@googlegroups.com> <plMUJ.35998$mF2.6634@fx11.iad>
<t006du$2f1$1@dont-email.me> <WfpVJ.96200$Lbb6.40450@fx45.iad>
<t05bb4$jo8$1@dont-email.me> <IOsVJ.76022$41E7.35886@fx37.iad>
<t05nad$1i9$1@dont-email.me> <Y2LVJ.50256$mF2.2890@fx11.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <43194ead-6252-460c-a9f3-e6f01a475ab0n@googlegroups.com>
Subject: Re: Around the bike shed: Instruction names and assembler syntax
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Tue, 08 Mar 2022 19:03:29 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 63
 by: MitchAlsup - Tue, 8 Mar 2022 19:03 UTC

On Tuesday, March 8, 2022 at 9:58:52 AM UTC-6, EricP wrote:
> Ivan Godard wrote:
> > On 3/7/2022 11:10 AM, EricP wrote:
> >> Ivan Godard wrote:
> >>> On 3/7/2022 7:10 AM, EricP wrote:
> >>> > - user mode exception/signal handler entry,exit
> >>>
> >>> Why are exceptions different from calls you didn't ask for?
> >>
> >> If I was doing it, the OS deposits (pushes) a packet of exception info
> >> and the return PC onto the apps' user mode stack, and OS returns to
> >> the exception routine. User mode exception handler saves the full integer
> >> context on the stack, and calls the exception dispatcher routine
> >> passing pointers to the exception info and saved context structs as args.
> >> Exception handlers can edit saved context as they wish.
> >> When handlers return, exception dispatcher reloads the now possibly
> >> edited
> >> interrupted context, restores stack, and returns to the possibly
> >> edited PC.
> >
> > How do you do it if there are no modes?
>
> The main problem is how does exception information get delivered
> to the offending execution, since exceptions are non-maskable so
<
FP-imprecise is maskable on essentially every machine.
<
You just have to have a good plan as to what happens when a masked
exception transpires. Many of them disappear silently (integer overflow
wraps), many of them get different results (FP overflows to infinity) and
some of them result in termination (page fault).
<
> a single set of registers could be overwritten by multiple exceptions.
>
> Pushing an exception descriptor on the stack is the usual way to handle
> this but that has its own issues, like page faults pushing the packet,
> stack overflow, variable exception packet size complicates interrupt return.
> Also it assumes the ISA has a designated stack register, and may require
> coordination of stack allocation with the OS like Linux "red zones".
>
> If its not hardware pushing the packet then the OS emulates this where
> an exception halts the app thread, spilling its context to memory.
> Then kernel thread edits the app stack and context to push the
> exception packet on the app stack and the PC to a exception handler,
> and then restarts the app thread. This is basically what WinNT does.
>
> The main complaint that people seem to have is that exceptions are
> too expensive, or that the trip through the operating system to
s/trip/excursion/
> deliver them is too expensive.
<
A lot of this is that: it takes hundreds of cycles to get from user mode code
exception to handler mode code, and hundreds of cycles to get back, then
another hundred cycles to get the caches warmed up again.
<
If only there were a way to make those "hundreds" into <say> 10-cycles.
<
> Aside from page fault of valid addresses, which is handled by the OS anyway,
> the only exception that is performance critical is the recent introduction
> of hardware transaction memory HTM aborts delivered directly to the app.
<
This is why I banned exceptions from ESM ATOMIC events. Exceptions inside
an ATOMIC event cause control transfer to failure location BEFORE raising
the exception.

Re: Around the bike shed: Instruction names and assembler syntax

<865yondvxo.fsf@linuxsc.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24094&group=comp.arch#24094

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: tr.17...@z991.linuxsc.com (Tim Rentsch)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Wed, 09 Mar 2022 06:47:47 -0800
Organization: A noiseless patient Spider
Lines: 62
Message-ID: <865yondvxo.fsf@linuxsc.com>
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <svd280$fiv$1@dont-email.me> <svh2tg$j53$1@gal.iecc.com> <svj2ki$q0p$4@newsreader4.netcologne.de> <svjblm$idv$1@dont-email.me> <j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me> <2022Mar1.133629@mips.complang.tuwien.ac.at> <864k4bf8yv.fsf@linuxsc.com> <j8k20sF6k96U1@mid.individual.net> <86mti2ekig.fsf@linuxsc.com> <749c68b2-8394-413d-9ce7-3e929637b392n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: reader02.eternal-september.org; posting-host="1412bf34eca16359aaf8eff3827b9264";
logging-data="1564"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+UvY6d9kVLB6h2IihkCN7tC6JjMJZlHvU="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:uqyUZUYIOHbubxASkV6OGpcxs3Y=
sha1:9TtW7OlKaATVFeB3+x/dHtyZja8=
 by: Tim Rentsch - Wed, 9 Mar 2022 14:47 UTC

MitchAlsup <MitchAlsup@aol.com> writes:

> On Sunday, March 6, 2022 at 5:20:10 PM UTC-6, Tim Rentsch wrote:
>
>> Niklas Holsti <niklas...@tidorum.invalid> writes:
>>
>>> On 2022-03-06 16:31, Tim Rentsch wrote:
>>>
>>>> an...@mips.complang.tuwien.ac.at (Anton Ertl) writes:
>>>>
>>>>> Ivan Godard <iv...@millcomputing.com> writes:
>>>>>
>>>>>> Declarable (!) precedence was a disaster
>>>>>> in A68 - what's the precedence of left circular shift?
>>>>
>>>> (For the record, I agree that declarable precedence is a bad
>>>> idea.)
>>>>
>>>>> IMO the general concept of precedence is a disaster. You can
>>>>> do implicit parenthesizing between well-established pairs of
>>>>> operators (e.g., a+b*c, but not "a or b and c"), or in a few
>>>>> cases it's intuitive (a<b+c, a<b and c), but that does not
>>>>> establish a transitive relation (don't accept a+b and c).
>>>>>
>>>>> My take would be to always require parenthesis when dealing
>>>>> with a pair of operators that are not among the few exceptions
>>>>> for which a binding relation is defined (when in doubt, don't
>>>>> add an exception, e.g., for the pair of "and" and "or").
>>>>
>>>> In my view this conclusion is exactly backwards. Taking C as a
>>>> canonical example, given that C does have precisely defined
>>>> precedence rules, it would be better if any redundant parentheses
>>>> were disallowed and flagged as errors by the compiler. In a very
>>>> short time there would be no confusion about what various
>>>> combinations of operators meant, and no worry about developers
>>>> misunderstanding them.
>>>
>>> I don't believe that for a second! Many programmers switch
>>> between languages, more or less frequently, and different
>>> languages have different operator symbols and sometimes different
>>> precedence systems. People forget fiddly things like precedences,
>>> especially when they are sure that they remember...
>>
>> That's why it's important to include the second part of my
>> proposal, where expected precedence relationships can be
>> indicated with whitespace, and have those be checked during
>> compilation. Doing that will also reinforce the learning
>> process, because reading code supplies an ongoing stream of
>> information about what the precedence relationships are in each
>> of the various languages.
>
> This sounds like a job for the text editor, coloring variables and
> operators differently based on precedence. Text editors already do
> this for key words in languages. They also match up ( with ) and [
> with ] and { with }. Seems like a natural extension.

It might be helpful for some people to use such a feature as a
transition tool, but the goal of the proposal would make such
tools unnecessary: to make realizing precedence relationships
completely autonomic, for both reading and writing, to the point
where any "help" from an editor tool would be at best a useless
distraction.

Re: Around the bike shed: Instruction names and assembler syntax

<jC5WJ.112266$H_t7.57770@fx40.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24099&group=comp.arch#24099

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.swapon.de!news.uzoreto.com!peer01.ams4!peer.am4.highwinds-media.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx40.iad.POSTED!not-for-mail
From: ThatWoul...@thevillage.com (EricP)
User-Agent: Thunderbird 2.0.0.24 (Windows/20100228)
MIME-Version: 1.0
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <memo.20220226104336.7708a@jgd.cix.co.uk> <svgqq7$cll$1@newsreader4.netcologne.de> <nLf*r48Hy@news.chiark.greenend.org.uk> <ANidnT3Kb-ZszoL_nZ2dnUU7-LHNnZ2d@supernews.com> <svodqv$rc$1@dont-email.me> <oLf*yP-Hy@news.chiark.greenend.org.uk> <svprsc$buf$1@newsreader4.netcologne.de> <2022Mar3.130732@mips.complang.tuwien.ac.at> <Uy4UJ.91086$Lbb6.86739@fx45.iad> <e348105a-d9c8-4dda-a843-14e403ad804fn@googlegroups.com> <EUbUJ.32421$dln7.10284@fx03.iad> <1f1b31df-b5dd-490f-b2fe-138444616650n@googlegroups.com> <plMUJ.35998$mF2.6634@fx11.iad> <t006du$2f1$1@dont-email.me> <WfpVJ.96200$Lbb6.40450@fx45.iad> <t05bb4$jo8$1@dont-email.me> <IOsVJ.76022$41E7.35886@fx37.iad> <t05nad$1i9$1@dont-email.me> <Y2LVJ.50256$mF2.2890@fx11.iad> <43194ead-6252-460c-a9f3-e6f01a475ab0n@googlegroups.com>
In-Reply-To: <43194ead-6252-460c-a9f3-e6f01a475ab0n@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 134
Message-ID: <jC5WJ.112266$H_t7.57770@fx40.iad>
X-Complaints-To: abuse@UsenetServer.com
NNTP-Posting-Date: Wed, 09 Mar 2022 17:38:23 UTC
Date: Wed, 09 Mar 2022 12:37:43 -0500
X-Received-Bytes: 8299
 by: EricP - Wed, 9 Mar 2022 17:37 UTC

MitchAlsup wrote:
> On Tuesday, March 8, 2022 at 9:58:52 AM UTC-6, EricP wrote:
>> Ivan Godard wrote:
>>> On 3/7/2022 11:10 AM, EricP wrote:
>>>> Ivan Godard wrote:
>>>>> On 3/7/2022 7:10 AM, EricP wrote:
>>>>>> - user mode exception/signal handler entry,exit
>>>>> Why are exceptions different from calls you didn't ask for?
>>>> If I was doing it, the OS deposits (pushes) a packet of exception info
>>>> and the return PC onto the apps' user mode stack, and OS returns to
>>>> the exception routine. User mode exception handler saves the full integer
>>>> context on the stack, and calls the exception dispatcher routine
>>>> passing pointers to the exception info and saved context structs as args.
>>>> Exception handlers can edit saved context as they wish.
>>>> When handlers return, exception dispatcher reloads the now possibly
>>>> edited
>>>> interrupted context, restores stack, and returns to the possibly
>>>> edited PC.
>>> How do you do it if there are no modes?
>> The main problem is how does exception information get delivered
>> to the offending execution, since exceptions are non-maskable so
> <
> FP-imprecise is maskable on essentially every machine.
> <
> You just have to have a good plan as to what happens when a masked
> exception transpires. Many of them disappear silently (integer overflow
> wraps), many of them get different results (FP overflows to infinity) and
> some of them result in termination (page fault).

Yes. But float exception masking different from interrupt masking.
Since it is enabled under user control, the OS has to be prepared
to deal with their possibile arrival in any case.

The problem for exceptions, and why they are different from maskable
interrupts, is reentrancy - exception are potentially infinitly reentrant.
Since exceptions are defined by the ISA, not triggering one is
often just a matter of not doing anything that could cause one.

Avoiding reentrancy in the float exception handler is as easy as
just not using any float instructions in the non-reentrant portion
of the OS handler until the HW exception info block has been saved
in a reentrant place, i.e. copy it to the threads' kernel stack.

Reentrancy is why I put Errors in a different category from Interrupts
and Exceptions. Like exceptions, errors are usually nonmaskable and
potentially infinitely reentrant. Like exceptions, some errors cause
instruction abort, others are delivered after instruction finishes.
Like interrupts, errors can be synchronous or asynchronous.
Unlike exceptions, some errors cannot be avoided by simply not doing
certain things, so you have to deal with the possible reentrancy
(e.g. memory errors in the memory error handler routine).
Unlike exceptions and interrupts, after errors instructions may
or may not be restartable, and this may be model specfic.
While exceptions are defined by the ISA, delivery of exception,
interrupt and error information is HW model specific.

> <
>> a single set of registers could be overwritten by multiple exceptions.
>>
>> Pushing an exception descriptor on the stack is the usual way to handle
>> this but that has its own issues, like page faults pushing the packet,
>> stack overflow, variable exception packet size complicates interrupt return.
>> Also it assumes the ISA has a designated stack register, and may require
>> coordination of stack allocation with the OS like Linux "red zones".
>>
>> If its not hardware pushing the packet then the OS emulates this where
>> an exception halts the app thread, spilling its context to memory.
>> Then kernel thread edits the app stack and context to push the
>> exception packet on the app stack and the PC to a exception handler,
>> and then restarts the app thread. This is basically what WinNT does.
>>
>> The main complaint that people seem to have is that exceptions are
>> too expensive, or that the trip through the operating system to
> s/trip/excursion/
>> deliver them is too expensive.
> <
> A lot of this is that: it takes hundreds of cycles to get from user mode code
> exception to handler mode code, and hundreds of cycles to get back, then
> another hundred cycles to get the caches warmed up again.
> <
> If only there were a way to make those "hundreds" into <say> 10-cycles.

I think everyone agrees that x86 has 40 years of barnacles attached
to its interrupts and exceptions.
And there are multiple ways to not step in the same cow pies.

Since I have super and user mode, I would start by pipelining the mode
change wherever possible, by attaching the Super/User flag to each uOp.
That gets rid of the pipeline drain and bubble for SysCall,
Return from Exception or Interrupt REI, and device interrupts.
It remains for exceptions as for me they are only recognized at retire.

A small hardware stack eliminates memory accesses to save the
nested interrupted PC and context.
Having exception and interrupt handler addresses calculated eliminates
the memory table lookup, allowing direct immediate handler dispatch.

An MMU with block address translate eliminates TLB misses for most OS
code and data.

A small special 4kB block of per-cpu SRAM can store the interrupt
and exception handler prologues and epilogues. Combined with the
MMU block translate allows the fetch buffers to be loaded immediately.

> <
>> Aside from page fault of valid addresses, which is handled by the OS anyway,
>> the only exception that is performance critical is the recent introduction
>> of hardware transaction memory HTM aborts delivered directly to the app.
> <
> This is why I banned exceptions from ESM ATOMIC events. Exceptions inside
> an ATOMIC event cause control transfer to failure location BEFORE raising
> the exception.

Yes, I don't want this as an exception either as I don't want to
roll back the register set to the start of the transaction.

Firstly because from a user point of view they will want to
pass information from inside a failed transaction to outside.

Secondly, from a hardware point of view, the current mechanism for
rolling back register changes is a checkpoint. However a checkpoint
retires when its associated instruction retires. The means that
the a transaction ATXSTART instruction could not retire until
it processed and was ready to retire the ATXCOMMIT instruction.
By not defining a transaction as a register checkpoint, it goes away.
Or I'd have to figure out a whole different way to manage
checkpoint, rollback, register rename and free lists.

So transaction abort is just a jump that can trigger asychronously,
tossing certain memory updates and writing a status register.

Re: Around the bike shed: Instruction names and assembler syntax

<2022Mar9.190023@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24102&group=comp.arch#24102

  copy link   Newsgroups: comp.arch
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.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Wed, 09 Mar 2022 18:00:23 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 32
Message-ID: <2022Mar9.190023@mips.complang.tuwien.ac.at>
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me> <2022Mar1.133629@mips.complang.tuwien.ac.at> <svl6qh$t5b$1@dont-email.me> <2022Mar1.184731@mips.complang.tuwien.ac.at> <svlsr2$ebn$1@dont-email.me> <2022Mar2.182320@mips.complang.tuwien.ac.at> <jwvv8wwujh4.fsf-monnier+comp.arch@gnu.org> <2022Mar5.192557@mips.complang.tuwien.ac.at> <t00c6q$hdc$1@dont-email.me> <2022Mar7.091957@mips.complang.tuwien.ac.at> <t056h7$bh5$1@dont-email.me>
Injection-Info: reader02.eternal-september.org; posting-host="10e81f0b1a5d8973f0d3a6a1f69d6872";
logging-data="12347"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Mq8TCDaK9nIed/iKIKtKW"
Cancel-Lock: sha1:ZLjim+soX2jHeqsA8Wc3r8D/n+k=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Wed, 9 Mar 2022 18:00 UTC

Ivan Godard <ivan@millcomputing.com> writes:
>On 3/7/2022 12:19 AM, Anton Ertl wrote:
>> I think that type systems are an area where formal descriptions are
>> relatively close to being good enough to being used. The main problem
>> is that every programming language has its own type system with its
>> own twists, that results in its own notation. There is no unifying
>> notation like (E)BNF or stack effect notation that is usable for
>> describing many languages.
>>
>> - anton
>
>There is such: VWG, perhaps others.

What formal notations I have seen in this area are not close to VWG.

>There are two problems: VWG itself
>is a mouthful, and to formalize a type system by any complete and
>correct means you have to have defined the system, and no new language
>has gotten all the arm-waving out.

If we had a successful formal notation, that would be no problem. The
way that the language designer wrote down the formal notation would
settle it; and if there were any problems with the result, they would
be attacked in later revisions; or in prose (like the dangling else is
dealt with in the Pascal Report).

But we have no successful formal notation for type systems.

- anton
--
'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>

Re: Around the bike shed: Instruction names and assembler syntax

<7a08d1b6-3683-4ae5-b8ac-4952af380452n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24103&group=comp.arch#24103

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a37:65cb:0:b0:67d:374a:4ecc with SMTP id z194-20020a3765cb000000b0067d374a4eccmr607307qkb.689.1646850351391;
Wed, 09 Mar 2022 10:25:51 -0800 (PST)
X-Received: by 2002:a05:6870:f2a5:b0:da:b3f:2b50 with SMTP id
u37-20020a056870f2a500b000da0b3f2b50mr6060912oap.239.1646850351127; Wed, 09
Mar 2022 10:25: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.arch
Date: Wed, 9 Mar 2022 10:25:50 -0800 (PST)
In-Reply-To: <jC5WJ.112266$H_t7.57770@fx40.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:bcfe:c7b0:9f9e:9c9d;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:bcfe:c7b0:9f9e:9c9d
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <memo.20220226104336.7708a@jgd.cix.co.uk>
<svgqq7$cll$1@newsreader4.netcologne.de> <nLf*r48Hy@news.chiark.greenend.org.uk>
<ANidnT3Kb-ZszoL_nZ2dnUU7-LHNnZ2d@supernews.com> <svodqv$rc$1@dont-email.me>
<oLf*yP-Hy@news.chiark.greenend.org.uk> <svprsc$buf$1@newsreader4.netcologne.de>
<2022Mar3.130732@mips.complang.tuwien.ac.at> <Uy4UJ.91086$Lbb6.86739@fx45.iad>
<e348105a-d9c8-4dda-a843-14e403ad804fn@googlegroups.com> <EUbUJ.32421$dln7.10284@fx03.iad>
<1f1b31df-b5dd-490f-b2fe-138444616650n@googlegroups.com> <plMUJ.35998$mF2.6634@fx11.iad>
<t006du$2f1$1@dont-email.me> <WfpVJ.96200$Lbb6.40450@fx45.iad>
<t05bb4$jo8$1@dont-email.me> <IOsVJ.76022$41E7.35886@fx37.iad>
<t05nad$1i9$1@dont-email.me> <Y2LVJ.50256$mF2.2890@fx11.iad>
<43194ead-6252-460c-a9f3-e6f01a475ab0n@googlegroups.com> <jC5WJ.112266$H_t7.57770@fx40.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7a08d1b6-3683-4ae5-b8ac-4952af380452n@googlegroups.com>
Subject: Re: Around the bike shed: Instruction names and assembler syntax
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Wed, 09 Mar 2022 18:25:51 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 174
 by: MitchAlsup - Wed, 9 Mar 2022 18:25 UTC

On Wednesday, March 9, 2022 at 11:38:27 AM UTC-6, EricP wrote:
> MitchAlsup wrote:
> > On Tuesday, March 8, 2022 at 9:58:52 AM UTC-6, EricP wrote:
> >> Ivan Godard wrote:
> >>> On 3/7/2022 11:10 AM, EricP wrote:
> >>>> Ivan Godard wrote:
> >>>>> On 3/7/2022 7:10 AM, EricP wrote:
> >>>>>> - user mode exception/signal handler entry,exit
> >>>>> Why are exceptions different from calls you didn't ask for?
<
Note the word exception here
<
> >>>> If I was doing it, the OS deposits (pushes) a packet of exception info
> >>>> and the return PC onto the apps' user mode stack, and OS returns to
> >>>> the exception routine. User mode exception handler saves the full integer
> >>>> context on the stack, and calls the exception dispatcher routine
> >>>> passing pointers to the exception info and saved context structs as args.
> >>>> Exception handlers can edit saved context as they wish.
> >>>> When handlers return, exception dispatcher reloads the now possibly
> >>>> edited
> >>>> interrupted context, restores stack, and returns to the possibly
> >>>> edited PC.
> >>> How do you do it if there are no modes?
> >> The main problem is how does exception information get delivered
> >> to the offending execution, since exceptions are non-maskable so
<
Note the word exception here
<
> > <
> > FP-imprecise is maskable on essentially every machine.
> > <
> > You just have to have a good plan as to what happens when a masked
> > exception transpires. Many of them disappear silently (integer overflow
> > wraps), many of them get different results (FP overflows to infinity) and
> > some of them result in termination (page fault).
<
> Yes. But float exception masking different from interrupt masking.
> Since it is enabled under user control, the OS has to be prepared
> to deal with their possibile arrival in any case.
<
I was answering the posed point. Interrupts are different from exceptions
and you specifically used the word exceptions. BTW in my design
interrupts are not masked, and certainly not masked by a CPU.
>
> The problem for exceptions, and why they are different from maskable
> interrupts, is reentrancy - exception are potentially infinitly reentrant.
> Since exceptions are defined by the ISA, not triggering one is
> often just a matter of not doing anything that could cause one.
>
> Avoiding reentrancy in the float exception handler is as easy as
> just not using any float instructions in the non-reentrant portion
> of the OS handler until the HW exception info block has been saved
> in a reentrant place, i.e. copy it to the threads' kernel stack.
>
> Reentrancy is why I put Errors in a different category from Interrupts
<
Can you define the term Error ? Error = "Machine Check" ?
<
> and Exceptions. Like exceptions, errors are usually nonmaskable and
> potentially infinitely reentrant. Like exceptions, some errors cause
> instruction abort, others are delivered after instruction finishes.
> Like interrupts, errors can be synchronous or asynchronous.
<
Interrupts are, by definition, asynchronous.
<
> Unlike exceptions, some errors cannot be avoided by simply not doing
> certain things, so you have to deal with the possible reentrancy
> (e.g. memory errors in the memory error handler routine).
<
How is this different from a page fault in the page fault handler ?
<
> Unlike exceptions and interrupts, after errors instructions may
> or may not be restartable, and this may be model specfic.
> While exceptions are defined by the ISA, delivery of exception,
> interrupt and error information is HW model specific.
> > <
> >> a single set of registers could be overwritten by multiple exceptions.
> >>
> >> Pushing an exception descriptor on the stack is the usual way to handle
> >> this but that has its own issues, like page faults pushing the packet,
> >> stack overflow, variable exception packet size complicates interrupt return.
> >> Also it assumes the ISA has a designated stack register, and may require
> >> coordination of stack allocation with the OS like Linux "red zones".
> >>
> >> If its not hardware pushing the packet then the OS emulates this where
> >> an exception halts the app thread, spilling its context to memory.
> >> Then kernel thread edits the app stack and context to push the
> >> exception packet on the app stack and the PC to a exception handler,
> >> and then restarts the app thread. This is basically what WinNT does.
> >>
> >> The main complaint that people seem to have is that exceptions are
> >> too expensive, or that the trip through the operating system to
> > s/trip/excursion/
> >> deliver them is too expensive.
> > <
> > A lot of this is that: it takes hundreds of cycles to get from user mode code
> > exception to handler mode code, and hundreds of cycles to get back, then
> > another hundred cycles to get the caches warmed up again.
> > <
> > If only there were a way to make those "hundreds" into <say> 10-cycles.
> I think everyone agrees that x86 has 40 years of barnacles attached
> to its interrupts and exceptions.
> And there are multiple ways to not step in the same cow pies.
>
> Since I have super and user mode, I would start by pipelining the mode
> change wherever possible, by attaching the Super/User flag to each uOp.
> That gets rid of the pipeline drain and bubble for SysCall,
> Return from Exception or Interrupt REI, and device interrupts.
> It remains for exceptions as for me they are only recognized at retire.
<
Lipstick on a pig......much of the need to drain the pipeline at Syscall is
because you need pending but unrecognized exceptions to be raised
in the thread before Syscall transfers control. Blame vonNeumann (i.e.,
precise exceptions); not me.
>
> A small hardware stack eliminates memory accesses to save the
> nested interrupted PC and context.
> Having exception and interrupt handler addresses calculated eliminates
> the memory table lookup, allowing direct immediate handler dispatch.
<
It is still likely missing its code cache footprint.
>
> An MMU with block address translate eliminates TLB misses for most OS
> code and data.
>
> A small special 4kB block of per-cpu SRAM can store the interrupt
> and exception handler prologues and epilogues. Combined with the
> MMU block translate allows the fetch buffers to be loaded immediately.
<
You could always to the PDP-11 trick: if control arrives; the core gets to
completely execute 1 instruction before relinquishing. This instruction
could be ENTER. Afterwards, you can take another interrupt/exception
to the same handler/thread.
<
> > <
> >> Aside from page fault of valid addresses, which is handled by the OS anyway,
> >> the only exception that is performance critical is the recent introduction
> >> of hardware transaction memory HTM aborts delivered directly to the app.
> > <
> > This is why I banned exceptions from ESM ATOMIC events. Exceptions inside
> > an ATOMIC event cause control transfer to failure location BEFORE raising
> > the exception.
<
> Yes, I don't want this as an exception either as I don't want to
> roll back the register set to the start of the transaction.
>
> Firstly because from a user point of view they will want to
> pass information from inside a failed transaction to outside.
<
how much more than "it failed" is wanted outside ? everything dealing
with intermediate state has become stale.
>
> Secondly, from a hardware point of view, the current mechanism for
> rolling back register changes is a checkpoint. However a checkpoint
> retires when its associated instruction retires. The means that
> the a transaction ATXSTART instruction could not retire until
> it processed and was ready to retire the ATXCOMMIT instruction.
> By not defining a transaction as a register checkpoint, it goes away.
<
I specifically left a means for code to leave a trail of data that can be
<say> printf()ed if the event fails. You can't to this with checkpoint
recovery. I agree.
<
> Or I'd have to figure out a whole different way to manage
> checkpoint, rollback, register rename and free lists.
<
Importantly, in my definition space: ATOMIC stuff is outside of
vonNeumann precision. Due to data dependencies, if an event fails
an instruction leaving a trail that is programmatically later than
another instruction also leaving a trail, the later can have executed
while the former did not. When the event fails, control transfers
as fast as possible with latent instructions being cancelled.
>
> So transaction abort is just a jump that can trigger asychronously,
> tossing certain memory updates and writing a status register.


Click here to read the complete article
Re: Around the bike shed: Instruction names and assembler syntax

<t0b0e2$7a9$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24104&group=comp.arch#24104

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: iva...@millcomputing.com (Ivan Godard)
Newsgroups: comp.arch
Subject: Re: Around the bike shed: Instruction names and assembler syntax
Date: Wed, 9 Mar 2022 11:50:27 -0800
Organization: A noiseless patient Spider
Lines: 32
Message-ID: <t0b0e2$7a9$1@dont-email.me>
References: <svcqrj$jj6$1@newsreader4.netcologne.de>
<j8666pFh0klU1@mid.individual.net> <svl27r$r8m$1@dont-email.me>
<2022Mar1.133629@mips.complang.tuwien.ac.at> <svl6qh$t5b$1@dont-email.me>
<2022Mar1.184731@mips.complang.tuwien.ac.at> <svlsr2$ebn$1@dont-email.me>
<2022Mar2.182320@mips.complang.tuwien.ac.at>
<jwvv8wwujh4.fsf-monnier+comp.arch@gnu.org>
<2022Mar5.192557@mips.complang.tuwien.ac.at> <t00c6q$hdc$1@dont-email.me>
<2022Mar7.091957@mips.complang.tuwien.ac.at> <t056h7$bh5$1@dont-email.me>
<2022Mar9.190023@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 9 Mar 2022 19:50:27 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="5f542763a2ddb2adf56facc010c4f50a";
logging-data="7497"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/PwDbuTGcIfX0SZ7SvmiuQ"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.6.1
Cancel-Lock: sha1:fsrGxkB3AT1N0BsSHLn/uWMpuWc=
In-Reply-To: <2022Mar9.190023@mips.complang.tuwien.ac.at>
Content-Language: en-US
 by: Ivan Godard - Wed, 9 Mar 2022 19:50 UTC

On 3/9/2022 10:00 AM, Anton Ertl wrote:
> Ivan Godard <ivan@millcomputing.com> writes:
>> On 3/7/2022 12:19 AM, Anton Ertl wrote:
>>> I think that type systems are an area where formal descriptions are
>>> relatively close to being good enough to being used. The main problem
>>> is that every programming language has its own type system with its
>>> own twists, that results in its own notation. There is no unifying
>>> notation like (E)BNF or stack effect notation that is usable for
>>> describing many languages.
>>>
>>> - anton
>>
>> There is such: VWG, perhaps others.
>
> What formal notations I have seen in this area are not close to VWG.
>
>> There are two problems: VWG itself
>> is a mouthful, and to formalize a type system by any complete and
>> correct means you have to have defined the system, and no new language
>> has gotten all the arm-waving out.
>
> If we had a successful formal notation, that would be no problem. The
> way that the language designer wrote down the formal notation would
> settle it; and if there were any problems with the result, they would
> be attacked in later revisions; or in prose (like the dangling else is
> dealt with in the Pascal Report).
>
> But we have no successful formal notation for type systems.

Depends on what "successful" means :-) If "does the job" then we have
some. If "is intellectually tractable in the face of politics" then we
don't.

Re: Around the bike shed: Instruction names and assembler syntax

<4a9e64df-f509-4e6e-8c6a-35db426d7dd8n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=24105&group=comp.arch#24105

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ac8:5a91:0:b0:2de:25c5:1d68 with SMTP id c17-20020ac85a91000000b002de25c51d68mr1233302qtc.94.1646856722864;
Wed, 09 Mar 2022 12:12:02 -0800 (PST)
X-Received: by 2002:a9d:638f:0:b0:5b2:344f:9e6e with SMTP id
w15-20020a9d638f000000b005b2344f9e6emr811368otk.144.1646856722478; Wed, 09
Mar 2022 12:12:02 -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.arch
Date: Wed, 9 Mar 2022 12:12:02 -0800 (PST)
In-Reply-To: <t0b0e2$7a9$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:bcfe:c7b0:9f9e:9c9d;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:bcfe:c7b0:9f9e:9c9d
References: <svcqrj$jj6$1@newsreader4.netcologne.de> <j8666pFh0klU1@mid.individual.net>
<svl27r$r8m$1@dont-email.me> <2022Mar1.133629@mips.complang.tuwien.ac.at>
<svl6qh$t5b$1@dont-email.me> <2022Mar1.184731@mips.complang.tuwien.ac.at>
<svlsr2$ebn$1@dont-email.me> <2022Mar2.182320@mips.complang.tuwien.ac.at>
<jwvv8wwujh4.fsf-monnier+comp.arch@gnu.org> <2022Mar5.192557@mips.complang.tuwien.ac.at>
<t00c6q$hdc$1@dont-email.me> <2022Mar7.091957@mips.complang.tuwien.ac.at>
<t056h7$bh5$1@dont-email.me> <2022Mar9.190023@mips.complang.tuwien.ac.at> <t0b0e2$7a9$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4a9e64df-f509-4e6e-8c6a-35db426d7dd8n@googlegroups.com>
Subject: Re: Around the bike shed: Instruction names and assembler syntax
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Wed, 09 Mar 2022 20:12:02 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 36
 by: MitchAlsup - Wed, 9 Mar 2022 20:12 UTC

On Wednesday, March 9, 2022 at 1:50:30 PM UTC-6, Ivan Godard wrote:
> On 3/9/2022 10:00 AM, Anton Ertl wrote:
> > Ivan Godard <iv...@millcomputing.com> writes:
> >> On 3/7/2022 12:19 AM, Anton Ertl wrote:
> >>> I think that type systems are an area where formal descriptions are
> >>> relatively close to being good enough to being used. The main problem
> >>> is that every programming language has its own type system with its
> >>> own twists, that results in its own notation. There is no unifying
> >>> notation like (E)BNF or stack effect notation that is usable for
> >>> describing many languages.
> >>>
> >>> - anton
> >>
> >> There is such: VWG, perhaps others.
> >
> > What formal notations I have seen in this area are not close to VWG.
> >
> >> There are two problems: VWG itself
> >> is a mouthful, and to formalize a type system by any complete and
> >> correct means you have to have defined the system, and no new language
> >> has gotten all the arm-waving out.
> >
> > If we had a successful formal notation, that would be no problem. The
> > way that the language designer wrote down the formal notation would
> > settle it; and if there were any problems with the result, they would
> > be attacked in later revisions; or in prose (like the dangling else is
> > dealt with in the Pascal Report).
> >
> > But we have no successful formal notation for type systems.
> Depends on what "successful" means :-) If "does the job" then we have
> some. If "is intellectually tractable in the face of politics" then we
> don't.
<
I, personally, have never seen a type system that can even annotate all of the
exceptions that can be raised on calculations of type, or explain why ADD can
overflow but AND cannot; or that ADD can overflow by 1-bit and multiply can
overflow by n-1-bits.

Pages:12345678910
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor