Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

I am NOT a kludge! I am a computer! -- tts


devel / comp.arch / Re: New computer architecture patent approved by UKIPO

SubjectAuthor
* New computer architecture patent approved by UKIPOIr. Hj. Othman bin Hj. Ahmad
+* Re: New computer architecture patent approved by UKIPOMitchAlsup
|`* Re: New computer architecture patent approved by UKIPOOthman Ahmad
| `* Re: New computer architecture patent approved by UKIPOGeorge Neuner
|  `* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   +* Re: New computer architecture patent approved by UKIPOTerje Mathisen
|   |+* Re: New computer architecture patent approved by UKIPOBakul Shah
|   ||`- Re: New computer architecture patent approved by UKIPOMitchAlsup
|   |+* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||`* Re: New computer architecture patent approved by UKIPOBakul Shah
|   || `* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||  +* Re: New computer architecture patent approved by UKIPOIvan Godard
|   ||  |`* Re: New computer architecture patent approved by UKIPOrobf...@gmail.com
|   ||  | +* Re: New computer architecture patent approved by UKIPOGeorge Neuner
|   ||  | |+- Re: New computer architecture patent approved by UKIPOAnton Ertl
|   ||  | |`- Re: New computer architecture patent approved by UKIPOTim Rentsch
|   ||  | `* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||  |  `* Re: New computer architecture patent approved by UKIPOTerje Mathisen
|   ||  |   +* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||  |   |`* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||  |   | +* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||  |   | |`- Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||  |   | +* Re: New computer architecture patent approved by UKIPOJimBrakefield
|   ||  |   | |+- Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||  |   | |`* Re: New computer architecture patent approved by UKIPOmac
|   ||  |   | | `* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||  |   | |  `* Re: subscripts, wasNew computer architecture patent approved by UKIPOJohn Levine
|   ||  |   | |   `- Re: subscripts, wasNew computer architecture patent approved by UKIPOMitchAlsup
|   ||  |   | `- Re: New computer architecture patent approved by UKIPOTerje Mathisen
|   ||  |   +* Re: New computer architecture patent approved by UKIPOBakul Shah
|   ||  |   |+* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||  |   ||+* Re: New computer architecture patent approved by UKIPOBakul Shah
|   ||  |   |||`- Re: New computer architecture patent approved by UKIPOIvan Godard
|   ||  |   ||`- Re: New computer architecture patent approved by UKIPOIvan Godard
|   ||  |   |+- Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||  |   |`* Re: New computer architecture patent approved by UKIPOTerje Mathisen
|   ||  |   | `- Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||  |   `- Re: New computer architecture patent approved by UKIPODavid Brown
|   ||  `* Re: New computer architecture patent approved by UKIPOBakul Shah
|   ||   +- Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||   `* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||    `* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||     +* Re: New computer architecture patent approved by UKIPOStefan Monnier
|   ||     |`- Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||     `* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||      +* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |+- Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |`* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||      | +- Re: New computer architecture patent approved by UKIPOJimBrakefield
|   ||      | `* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |  +- Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |  `* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||      |   +- Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |   +* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |   |`* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |   | `* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |   |  `* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |   |   `* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |   |    `* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |   |     +* Re: New computer architecture patent approved by UKIPOBrian G. Lucas
|   ||      |   |     |`* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |   |     | `- Re: New computer architecture patent approved by UKIPOBrian G. Lucas
|   ||      |   |     `- Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |   `* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |    +* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||      |    |`* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |    | +* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||      |    | |+* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |    | ||`- Re: New computer architecture patent approved by UKIPODavid Brown
|   ||      |    | |`* Re: New computer architecture patent approved by UKIPODavid Brown
|   ||      |    | | `- Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |    | `* Re: New computer architecture patent approved by UKIPOEricP
|   ||      |    |  `* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |    |   `* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||      |    |    `- Re: New computer architecture patent approved by UKIPOMarcus
|   ||      |    +- Re: New computer architecture patent approved by UKIPOStefan Monnier
|   ||      |    `* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |     `* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |      `* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |       `* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |        `* Re: New computer architecture patent approved by UKIPOStephen Fuld
|   ||      |         `* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |          +* Re: New computer architecture patent approved by UKIPOIvan Godard
|   ||      |          |`- Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |          +* Re: New computer architecture patent approved by UKIPOÖö Tiib
|   ||      |          |+* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |          ||`* Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |          || `- Re: New computer architecture patent approved by UKIPOTim Rentsch
|   ||      |          |`- Re: New computer architecture patent approved by UKIPOÖö Tiib
|   ||      |          `* Re: New computer architecture patent approved by UKIPOTerje Mathisen
|   ||      |           +- Re: New computer architecture patent approved by UKIPOMitchAlsup
|   ||      |           `* Re: New computer architecture patent approved by UKIPOTim Rentsch
|   ||      |            +- Re: New computer architecture patent approved by UKIPOMarcus
|   ||      |            `- Re: New computer architecture patent approved by UKIPOTerje Mathisen
|   ||      `* Re: New computer architecture patent approved by UKIPOThomas Koenig
|   ||       `- Re: New computer architecture patent approved by UKIPODavid Brown
|   |`- Re: New computer architecture patent approved by UKIPOThomas Koenig
|   `* Re: New computer architecture patent approved by UKIPOTim Rentsch
|    `* Re: New computer architecture patent approved by UKIPOThomas Koenig
|     +* Re: New computer architecture patent approved by UKIPOThomas Koenig
|     |`* Re: New computer architecture patent approved by UKIPONiklas Holsti
|     `* Re: New computer architecture patent approved by UKIPOTim Rentsch
`* Re: New computer architecture patent approved by UKIPOMarcus

Pages:12345
Re: New computer architecture patent approved by UKIPO

<4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:22ed:: with SMTP id p13mr34612016qki.768.1641320990152;
Tue, 04 Jan 2022 10:29:50 -0800 (PST)
X-Received: by 2002:a05:6808:2396:: with SMTP id bp22mr42048863oib.78.1641320989876;
Tue, 04 Jan 2022 10:29:49 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Tue, 4 Jan 2022 10:29:49 -0800 (PST)
In-Reply-To: <sr21c0$rhg$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:4ce0:ecdb:e44f:1566;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:4ce0:ecdb:e44f:1566
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de>
<sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me>
<sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me>
<sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
Subject: Re: New computer architecture patent approved by UKIPO
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Tue, 04 Jan 2022 18:29:50 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 86
 by: MitchAlsup - Tue, 4 Jan 2022 18:29 UTC

On Tuesday, January 4, 2022 at 11:49:54 AM UTC-6, Stephen Fuld wrote:
> On 1/3/2022 6:56 PM, Stephen Fuld wrote:
> > On 1/3/2022 5:59 PM, MitchAlsup wrote:
> >> On Monday, January 3, 2022 at 7:31:39 PM UTC-6, Stephen Fuld wrote:
> >>> On 1/3/2022 5:04 PM, MitchAlsup wrote:
> >>>> On Monday, January 3, 2022 at 4:12:44 PM UTC-6, Stephen Fuld wrote:
> >>>>> On 1/3/2022 1:10 AM, David Brown wrote:
> >>> snip
> >>>>>> I think the best organisation for a language is to have as much as
> >>>>>> possible be part of the standard library (or libraries), with core
> >>>>>> language features aimed primarily at making it practical to implement
> >>>>>> such libraries efficiently and use them conveniently and safely.
> >>>>> I am not sure I agree with that. For some features, having them in the
> >>>>> library leads to harder to comprehend code. Going back to my old
> >>>>> example, inserting a bit field into a variable, if implemented as
> >>>>> purely
> >>>>> a library function might look something like
> >>>>>
> >>>>> X = insertbits(X,4,3,0x010b)
> >>>>>
> >>>>> Whereas if it was a pseudo function in the language (such as it is in
> >>>>> Fortran), it is more like
> >>>>>
> >>>>> Bits (X,4,3) = 0x010b
> >>>> <
> >>>> Wouldn't something like:
> >>>> <
> >>>> x<3:4> = 0x01b;
> >>>> or
> >>>> x[3:4] = 0x01b;
> >>>> or in Ada fashion
> >>>> x'bits<3:4> = 0x01b;
> >>>> <
> >>>> be even MORE natural ?
> >>> Sure. As I said before, I have no problems with that. But I don't see
> >>> how that syntax can be accommodated via function call syntax either.
> >> <
> >> Perhaps it should NOT be accommodated via function call syntax.
> >
> > That is the point I was trying to make arguing against every optional
> > feature being in the library. I absolutely agree with you.
> >
> >
> >> <
> >> But this leads to problems where one is allowed to modify some bits of
> >> a struct
> >> and not others--can one use the word const on the structure member
> >> elements
> >> that are not written, allowing (by default) those without to be
> >> written ? That is
> >> we have a partial l-value ?
> >
> > Good questions. Obviously, this needs to all be worked out, hopefully
> > in some sort of standard. :-(
> After thinking about this some more -
>
> This seems similar to allowing modification of one element of a struct
> and not another, even without bit field operations. So perhaps the same
> rules should apply.
<
Yes, indeed, the same rules apply for all containers (even those which are not
necessarily the bit-width of native containers).
>
> And, I think that to minimize coding errors, perhaps one should not
> allow bit field modification on structs, only on the elements of a
> struct. If you wanted a modification to span two adjacent elements of a
> struct, you would have to code two assignment statements, but the
> compiler would be free to optimize this into a single set of operations.
<
I, personally, think that vector of bit fields, each having a given width,
is the proper abstraction. If these things cross natural container boundaries
the compiler has to emit code to "do the right thing".
<
struct { unsigned long int a : 13[42]; }
<
This creates a structure (with struct alignment) containing 42 containers
each container having 13-bits. You can get at each container using array
notation a[i] as either an r-value or as an l-value.
<
But this is just sufficient for static field definitions. And static bit-fields
is all I have ever used, so my knowledge base takes a hard stop on dynamic
bit fields.
>
> I am not saying this is the definitive answer - just more thoughts.
> --
> - Stephen Fuld
> (e-mail address disguised to prevent spam)

Re: New computer architecture patent approved by UKIPO

<sr2e7b$l1c$1@dont-email.me>

  copy mid

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

  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: New computer architecture patent approved by UKIPO
Date: Tue, 4 Jan 2022 13:29:17 -0800
Organization: A noiseless patient Spider
Lines: 89
Message-ID: <sr2e7b$l1c$1@dont-email.me>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org>
<sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me>
<sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me>
<sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me>
<sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me>
<80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me>
<2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me>
<4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 4 Jan 2022 21:29:15 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="de80ed7290c9d686a431169b61ac8f21";
logging-data="21548"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/JZW/ZOhWIxREFhMBlUjvs"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.4.1
Cancel-Lock: sha1:FoE8KHdMaYJmN8zX965beG5i7To=
In-Reply-To: <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
Content-Language: en-US
 by: Ivan Godard - Tue, 4 Jan 2022 21:29 UTC

On 1/4/2022 10:29 AM, MitchAlsup wrote:
> On Tuesday, January 4, 2022 at 11:49:54 AM UTC-6, Stephen Fuld wrote:
>> On 1/3/2022 6:56 PM, Stephen Fuld wrote:
>>> On 1/3/2022 5:59 PM, MitchAlsup wrote:
>>>> On Monday, January 3, 2022 at 7:31:39 PM UTC-6, Stephen Fuld wrote:
>>>>> On 1/3/2022 5:04 PM, MitchAlsup wrote:
>>>>>> On Monday, January 3, 2022 at 4:12:44 PM UTC-6, Stephen Fuld wrote:
>>>>>>> On 1/3/2022 1:10 AM, David Brown wrote:
>>>>> snip
>>>>>>>> I think the best organisation for a language is to have as much as
>>>>>>>> possible be part of the standard library (or libraries), with core
>>>>>>>> language features aimed primarily at making it practical to implement
>>>>>>>> such libraries efficiently and use them conveniently and safely.
>>>>>>> I am not sure I agree with that. For some features, having them in the
>>>>>>> library leads to harder to comprehend code. Going back to my old
>>>>>>> example, inserting a bit field into a variable, if implemented as
>>>>>>> purely
>>>>>>> a library function might look something like
>>>>>>>
>>>>>>> X = insertbits(X,4,3,0x010b)
>>>>>>>
>>>>>>> Whereas if it was a pseudo function in the language (such as it is in
>>>>>>> Fortran), it is more like
>>>>>>>
>>>>>>> Bits (X,4,3) = 0x010b
>>>>>> <
>>>>>> Wouldn't something like:
>>>>>> <
>>>>>> x<3:4> = 0x01b;
>>>>>> or
>>>>>> x[3:4] = 0x01b;
>>>>>> or in Ada fashion
>>>>>> x'bits<3:4> = 0x01b;
>>>>>> <
>>>>>> be even MORE natural ?
>>>>> Sure. As I said before, I have no problems with that. But I don't see
>>>>> how that syntax can be accommodated via function call syntax either.
>>>> <
>>>> Perhaps it should NOT be accommodated via function call syntax.
>>>
>>> That is the point I was trying to make arguing against every optional
>>> feature being in the library. I absolutely agree with you.
>>>
>>>
>>>> <
>>>> But this leads to problems where one is allowed to modify some bits of
>>>> a struct
>>>> and not others--can one use the word const on the structure member
>>>> elements
>>>> that are not written, allowing (by default) those without to be
>>>> written ? That is
>>>> we have a partial l-value ?
>>>
>>> Good questions. Obviously, this needs to all be worked out, hopefully
>>> in some sort of standard. :-(
>> After thinking about this some more -
>>
>> This seems similar to allowing modification of one element of a struct
>> and not another, even without bit field operations. So perhaps the same
>> rules should apply.
> <
> Yes, indeed, the same rules apply for all containers (even those which are not
> necessarily the bit-width of native containers).
>>
>> And, I think that to minimize coding errors, perhaps one should not
>> allow bit field modification on structs, only on the elements of a
>> struct. If you wanted a modification to span two adjacent elements of a
>> struct, you would have to code two assignment statements, but the
>> compiler would be free to optimize this into a single set of operations.
> <
> I, personally, think that vector of bit fields, each having a given width,
> is the proper abstraction. If these things cross natural container boundaries
> the compiler has to emit code to "do the right thing".
> <
> struct { unsigned long int a : 13[42]; }
> <
> This creates a structure (with struct alignment) containing 42 containers
> each container having 13-bits. You can get at each container using array
> notation a[i] as either an r-value or as an l-value.
> <
> But this is just sufficient for static field definitions. And static bit-fields
> is all I have ever used, so my knowledge base takes a hard stop on dynamic
> bit fields.

Looks like you have invented a possible new ISA. Perhaps we should call
it "432"?

Re: New computer architecture patent approved by UKIPO

<44daa853-5cad-4445-8852-40718583b133n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:22ed:: with SMTP id p13mr35101397qki.768.1641332077130; Tue, 04 Jan 2022 13:34:37 -0800 (PST)
X-Received: by 2002:a05:6808:1448:: with SMTP id x8mr252539oiv.84.1641332076887; Tue, 04 Jan 2022 13:34:36 -0800 (PST)
Path: i2pn2.org!i2pn.org!news.swapon.de!news.uzoreto.com!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.arch
Date: Tue, 4 Jan 2022 13:34:36 -0800 (PST)
In-Reply-To: <sr2e7b$l1c$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:4ce0:ecdb:e44f:1566; posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:4ce0:ecdb:e44f:1566
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com> <37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com> <msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me> <sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me> <squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com> <sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com> <sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me> <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com> <sr2e7b$l1c$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <44daa853-5cad-4445-8852-40718583b133n@googlegroups.com>
Subject: Re: New computer architecture patent approved by UKIPO
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Tue, 04 Jan 2022 21:34:37 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 88
 by: MitchAlsup - Tue, 4 Jan 2022 21:34 UTC

On Tuesday, January 4, 2022 at 3:29:18 PM UTC-6, Ivan Godard wrote:
> On 1/4/2022 10:29 AM, MitchAlsup wrote:
> > On Tuesday, January 4, 2022 at 11:49:54 AM UTC-6, Stephen Fuld wrote:
> >> On 1/3/2022 6:56 PM, Stephen Fuld wrote:
> >>> On 1/3/2022 5:59 PM, MitchAlsup wrote:
> >>>> On Monday, January 3, 2022 at 7:31:39 PM UTC-6, Stephen Fuld wrote:
> >>>>> On 1/3/2022 5:04 PM, MitchAlsup wrote:
> >>>>>> On Monday, January 3, 2022 at 4:12:44 PM UTC-6, Stephen Fuld wrote:
> >>>>>>> On 1/3/2022 1:10 AM, David Brown wrote:
> >>>>> snip
> >>>>>>>> I think the best organisation for a language is to have as much as
> >>>>>>>> possible be part of the standard library (or libraries), with core
> >>>>>>>> language features aimed primarily at making it practical to implement
> >>>>>>>> such libraries efficiently and use them conveniently and safely.
> >>>>>>> I am not sure I agree with that. For some features, having them in the
> >>>>>>> library leads to harder to comprehend code. Going back to my old
> >>>>>>> example, inserting a bit field into a variable, if implemented as
> >>>>>>> purely
> >>>>>>> a library function might look something like
> >>>>>>>
> >>>>>>> X = insertbits(X,4,3,0x010b)
> >>>>>>>
> >>>>>>> Whereas if it was a pseudo function in the language (such as it is in
> >>>>>>> Fortran), it is more like
> >>>>>>>
> >>>>>>> Bits (X,4,3) = 0x010b
> >>>>>> <
> >>>>>> Wouldn't something like:
> >>>>>> <
> >>>>>> x<3:4> = 0x01b;
> >>>>>> or
> >>>>>> x[3:4] = 0x01b;
> >>>>>> or in Ada fashion
> >>>>>> x'bits<3:4> = 0x01b;
> >>>>>> <
> >>>>>> be even MORE natural ?
> >>>>> Sure. As I said before, I have no problems with that. But I don't see
> >>>>> how that syntax can be accommodated via function call syntax either.
> >>>> <
> >>>> Perhaps it should NOT be accommodated via function call syntax.
> >>>
> >>> That is the point I was trying to make arguing against every optional
> >>> feature being in the library. I absolutely agree with you.
> >>>
> >>>
> >>>> <
> >>>> But this leads to problems where one is allowed to modify some bits of
> >>>> a struct
> >>>> and not others--can one use the word const on the structure member
> >>>> elements
> >>>> that are not written, allowing (by default) those without to be
> >>>> written ? That is
> >>>> we have a partial l-value ?
> >>>
> >>> Good questions. Obviously, this needs to all be worked out, hopefully
> >>> in some sort of standard. :-(
> >> After thinking about this some more -
> >>
> >> This seems similar to allowing modification of one element of a struct
> >> and not another, even without bit field operations. So perhaps the same
> >> rules should apply.
> > <
> > Yes, indeed, the same rules apply for all containers (even those which are not
> > necessarily the bit-width of native containers).
> >>
> >> And, I think that to minimize coding errors, perhaps one should not
> >> allow bit field modification on structs, only on the elements of a
> >> struct. If you wanted a modification to span two adjacent elements of a
> >> struct, you would have to code two assignment statements, but the
> >> compiler would be free to optimize this into a single set of operations.
> > <
> > I, personally, think that vector of bit fields, each having a given width,
> > is the proper abstraction. If these things cross natural container boundaries
> > the compiler has to emit code to "do the right thing".
> > <
> > struct { unsigned long int a : 13[42]; }
> > <
> > This creates a structure (with struct alignment) containing 42 containers
> > each container having 13-bits. You can get at each container using array
> > notation a[i] as either an r-value or as an l-value.
> > <
> > But this is just sufficient for static field definitions. And static bit-fields
> > is all I have ever used, so my knowledge base takes a hard stop on dynamic
> > bit fields.
<
> Looks like you have invented a possible new ISA. Perhaps we should call
> it "432"?
<
Off your meds ?

Re: New computer architecture patent approved by UKIPO

<02c680fe-3003-4e0b-8d09-0b3408a8b28cn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:6214:2423:: with SMTP id gy3mr48167169qvb.44.1641346165019;
Tue, 04 Jan 2022 17:29:25 -0800 (PST)
X-Received: by 2002:a9d:ba8:: with SMTP id 37mr36454875oth.227.1641346164748;
Tue, 04 Jan 2022 17:29:24 -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, 4 Jan 2022 17:29:24 -0800 (PST)
In-Reply-To: <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=94.246.251.164; posting-account=pysjKgkAAACLegAdYDFznkqjgx_7vlUK
NNTP-Posting-Host: 94.246.251.164
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de>
<sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me>
<sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me>
<sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me> <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <02c680fe-3003-4e0b-8d09-0b3408a8b28cn@googlegroups.com>
Subject: Re: New computer architecture patent approved by UKIPO
From: oot...@hot.ee (Öö Tiib)
Injection-Date: Wed, 05 Jan 2022 01:29:25 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 95
 by: Öö Tiib - Wed, 5 Jan 2022 01:29 UTC

On Tuesday, 4 January 2022 at 20:29:51 UTC+2, MitchAlsup wrote:
> On Tuesday, January 4, 2022 at 11:49:54 AM UTC-6, Stephen Fuld wrote:
> > On 1/3/2022 6:56 PM, Stephen Fuld wrote:
> > > On 1/3/2022 5:59 PM, MitchAlsup wrote:
> > >> On Monday, January 3, 2022 at 7:31:39 PM UTC-6, Stephen Fuld wrote:
> > >>> On 1/3/2022 5:04 PM, MitchAlsup wrote:
> > >>>> On Monday, January 3, 2022 at 4:12:44 PM UTC-6, Stephen Fuld wrote:
> > >>>>> On 1/3/2022 1:10 AM, David Brown wrote:
> > >>> snip
> > >>>>>> I think the best organisation for a language is to have as much as
> > >>>>>> possible be part of the standard library (or libraries), with core
> > >>>>>> language features aimed primarily at making it practical to implement
> > >>>>>> such libraries efficiently and use them conveniently and safely.
> > >>>>> I am not sure I agree with that. For some features, having them in the
> > >>>>> library leads to harder to comprehend code. Going back to my old
> > >>>>> example, inserting a bit field into a variable, if implemented as
> > >>>>> purely
> > >>>>> a library function might look something like
> > >>>>>
> > >>>>> X = insertbits(X,4,3,0x010b)
> > >>>>>
> > >>>>> Whereas if it was a pseudo function in the language (such as it is in
> > >>>>> Fortran), it is more like
> > >>>>>
> > >>>>> Bits (X,4,3) = 0x010b
> > >>>> <
> > >>>> Wouldn't something like:
> > >>>> <
> > >>>> x<3:4> = 0x01b;
> > >>>> or
> > >>>> x[3:4] = 0x01b;
> > >>>> or in Ada fashion
> > >>>> x'bits<3:4> = 0x01b;
> > >>>> <
> > >>>> be even MORE natural ?
> > >>> Sure. As I said before, I have no problems with that. But I don't see
> > >>> how that syntax can be accommodated via function call syntax either.
> > >> <
> > >> Perhaps it should NOT be accommodated via function call syntax.
> > >
> > > That is the point I was trying to make arguing against every optional
> > > feature being in the library. I absolutely agree with you.
> > >
> > >
> > >> <
> > >> But this leads to problems where one is allowed to modify some bits of
> > >> a struct
> > >> and not others--can one use the word const on the structure member
> > >> elements
> > >> that are not written, allowing (by default) those without to be
> > >> written ? That is
> > >> we have a partial l-value ?
> > >
> > > Good questions. Obviously, this needs to all be worked out, hopefully
> > > in some sort of standard. :-(
> > After thinking about this some more -
> >
> > This seems similar to allowing modification of one element of a struct
> > and not another, even without bit field operations. So perhaps the same
> > rules should apply.
> <
> Yes, indeed, the same rules apply for all containers (even those which are not
> necessarily the bit-width of native containers).
> >
> > And, I think that to minimize coding errors, perhaps one should not
> > allow bit field modification on structs, only on the elements of a
> > struct. If you wanted a modification to span two adjacent elements of a
> > struct, you would have to code two assignment statements, but the
> > compiler would be free to optimize this into a single set of operations.
> <
> I, personally, think that vector of bit fields, each having a given width,
> is the proper abstraction. If these things cross natural container boundaries
> the compiler has to emit code to "do the right thing".
> <
> struct { unsigned long int a : 13[42]; }
> <
Interesting idea! Were the "long" and "int" keywords used there
"just because" ... or for some meaning?
> This creates a structure (with struct alignment) containing 42 containers
> each container having 13-bits. You can get at each container using array
> notation a[i] as either an r-value or as an l-value.
> <
Why only in struct? If to think ... then 64 bit pointers and sizes could
operate in exabyte with bit-by-bit precision.

> But this is just sufficient for static field definitions. And static bit-fields
> is all I have ever used, so my knowledge base takes a hard stop on dynamic
> bit fields.

That might be perhaps like with most compression algorithms (that operate
usually at one bit granularity with varying bit width values). It is rather tricky
to organize random access passably enough or to prevent few bit errors
from corrupting whole data ... but that does not make these useless.

Re: New computer architecture patent approved by UKIPO

<d7f7199e-2403-4764-863c-b2670133c3bcn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:ad4:5bc9:: with SMTP id t9mr48219621qvt.70.1641347743120;
Tue, 04 Jan 2022 17:55:43 -0800 (PST)
X-Received: by 2002:a05:6830:154d:: with SMTP id l13mr37463440otp.282.1641347742905;
Tue, 04 Jan 2022 17:55:42 -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, 4 Jan 2022 17:55:42 -0800 (PST)
In-Reply-To: <02c680fe-3003-4e0b-8d09-0b3408a8b28cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:4ce0:ecdb:e44f:1566;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:4ce0:ecdb:e44f:1566
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de>
<sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me>
<sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me>
<sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me> <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
<02c680fe-3003-4e0b-8d09-0b3408a8b28cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d7f7199e-2403-4764-863c-b2670133c3bcn@googlegroups.com>
Subject: Re: New computer architecture patent approved by UKIPO
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Wed, 05 Jan 2022 01:55:43 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 57
 by: MitchAlsup - Wed, 5 Jan 2022 01:55 UTC

On Tuesday, January 4, 2022 at 7:29:25 PM UTC-6, oot...@hot.ee wrote:
> On Tuesday, 4 January 2022 at 20:29:51 UTC+2, MitchAlsup wrote:

> > > And, I think that to minimize coding errors, perhaps one should not
> > > allow bit field modification on structs, only on the elements of a
> > > struct. If you wanted a modification to span two adjacent elements of a
> > > struct, you would have to code two assignment statements, but the
> > > compiler would be free to optimize this into a single set of operations.
> > <
> > I, personally, think that vector of bit fields, each having a given width,
> > is the proper abstraction. If these things cross natural container boundaries
> > the compiler has to emit code to "do the right thing".
> > <
> > struct { unsigned long int a : 13[42]; }
> > <
> Interesting idea! Were the "long" and "int" keywords used there
> "just because" ... or for some meaning?
<
Technically, unsigned is an int, long is an int in most contexts (but not long double)
so, I just use them all for clarity.
<
> > This creates a structure (with struct alignment) containing 42 containers
> > each container having 13-bits. You can get at each container using array
> > notation a[i] as either an r-value or as an l-value.
> > <
> Why only in struct? If to think ... then 64 bit pointers and sizes could
> operate in exabyte with bit-by-bit precision.
<
C only <currently> has bit fields inside of structs (¿and unions?) and this is
the context in which the : operator denotes bit field length.
<
Also notice I did not enable the taking of a bit-field's address (&) nor did I
allow for dereferencing of a bit-fields container--except through array indexing.
<
> > But this is just sufficient for static field definitions. And static bit-fields
> > is all I have ever used, so my knowledge base takes a hard stop on dynamic
> > bit fields.
<
> That might be perhaps like with most compression algorithms (that operate
> usually at one bit granularity with varying bit width values). It is rather tricky
> to organize random access passably enough or to prevent few bit errors
> from corrupting whole data ... but that does not make these useless.

Re: New computer architecture patent approved by UKIPO

<sr3hkf$ati$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: m.del...@this.bitsnbites.eu (Marcus)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Wed, 5 Jan 2022 08:33:34 +0100
Organization: A noiseless patient Spider
Lines: 57
Message-ID: <sr3hkf$ati$1@dont-email.me>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org>
<sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me>
<sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me>
<sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me>
<sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me>
<sqvth6$jmc$1@dont-email.me> <sr01pk$4n7$1@dont-email.me>
<qu%AJ.131496$IB7.67516@fx02.iad> <sr20l4$k8f$2@dont-email.me>
<sr211q$n4l$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 5 Jan 2022 07:33:35 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f13b5f0cca220f0fdace4d120e8f104d";
logging-data="11186"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18PmWTBINCrHpKXGsuJFquhddJ5wnODFEs="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
Cancel-Lock: sha1:mbeWApUxLx78eRVUmZwJQ65m0RA=
In-Reply-To: <sr211q$n4l$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Marcus - Wed, 5 Jan 2022 07:33 UTC

On 2022-01-04, Thomas Koenig wrote:
> Stephen Fuld <sfuld@alumni.cmu.edu.invalid> schrieb:
>> On 1/4/2022 9:29 AM, EricP wrote:
>>> Stephen Fuld wrote:
>>>> On 1/3/2022 2:32 PM, David Brown wrote:
>>>>> On 03/01/2022 23:12, Stephen Fuld wrote:
>>>>>> On 1/3/2022 1:10 AM, David Brown wrote:
>>>>>>> On 02/01/2022 18:24, Stephen Fuld wrote:
>>>>>>> And if
>>>>>>> you can make the library modular, then having an "optional feature"
>>>>>>> simply becomes a choice of including the library
>>>>>>> header/module/unit/whatever in your program.
>>>>>>
>>>>>> Yes.  Optional library functions are fine for many things things
>>>>>> that do
>>>>>> a lot of work per call, but ISTM are not appropriate for some other
>>>>>> types of things.
>>>>>>
>>>>>
>>>>> They are absolutely fine for small things too.  However, you want inline
>>>>> definitions to avoid function call overhead and hugely improve the
>>>>> optimisation opportunities.  (And ideally you want a language to have a
>>>>> good system of pre-compiled or pre-analysed modules, rather than pure
>>>>> textual inclusion like C++ prior to C++20.)
>>>>
>>>>
>>>> I am in regard to C++ where you are in regard to Fortran, so I can't
>>>> really comment, but if the compiler knows that a particular function
>>>> can be inlined, doesn't it mean the compiler knows what the function
>>>> does? And if that is true, then ISTM that it is a matter of syntax
>>>> preference, i.e. ease of user comprehension, whether to have the
>>>> compiler recognize the function or some equivalent syntax?
>>>
>>> The VAX Ada85 compiler supported modular separate compilation and inlining.
>>
>> snipped description
>>
>> Interesting. Do current C compilers do something equivalent?
>
> Link-time optimization might come closest >
> gcc with the -flto option, for example, generates a special object
> code which contains GIMPLE (its SSA intermediate representation)
> which is then optimized together, including inlining, cloning,
> constant propagation and all the rest of the fun stuff.
>
> This is especially valuable for a language which has a large
> potential overhead in procedure calls, like Fortran's assumed-shape
> arrays have.
>

I think LTO is more powerful than what Eric described, which I think
requires that the "header file" (interface definition) contains enough
information to tell how functions are called etc. C/C++ has no such
mechanism (header files are just preprocessor text, with no guarantee of
what is contained within them).

/Marcus

Re: New computer architecture patent approved by UKIPO

<sr45i2$4hl$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!paganini.bofh.team!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Wed, 5 Jan 2022 13:13:38 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sr45i2$4hl$1@newsreader4.netcologne.de>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org>
<sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me>
<sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me>
<sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me>
<sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqve0b$gt$1@newsreader4.netcologne.de>
<9da4e1d9-3f2a-4cb3-8d23-3c4ac60eaf85n@googlegroups.com>
<sqvueb$cev$1@newsreader4.netcologne.de>
<950fd4f6-74ca-4451-b5bc-1eda2c4cf55an@googlegroups.com>
<sr0u5h$vpu$1@newsreader4.netcologne.de>
Injection-Date: Wed, 5 Jan 2022 13:13:38 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:7488:0:7285:c2ff:fe6c:992d";
logging-data="4661"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Wed, 5 Jan 2022 13:13 UTC

Thomas Koenig <tkoenig@netcologne.de> schrieb:

> Maybe here's a better version:
>
> https://godbolt.org/z/9xKcfaezM
>
> This is a version tranlsated from what gfortran hands to gcc's
> middle end into C, for those who do not have a Fortran compiler :-)
>
> What does your compiler make of that function?

So I finally installed the My 66000 compiler. For anybody who,
like me, is unfamiliar with LLVM: It took me a bit to find the
-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=My66000 option.

I did remove the superflous (long int)(int) casts, which were
introduced by a minor bug in the original Fortran code.

The inner loop of the code for zeroing the array is

{
long S_19;
long D_3939;

D_3939 = S_18 * stride_15 + D_3933;
S_19 = 1;
while (1)
{
if (S_19 > D_3934)
goto L_1;
c_0[S_19 * D_3937 + D_3939] = 0.0;
S_19 = S_19 + 1;
}
L_1:;
}

where the inner loop is translated with "clang -O3 --target=my66000
-S mm.c" to

..LBB0_4: ; %if.end96
; Parent Loop BB0_3 Depth=1
; => This Inner Loop Header: Depth=2
std #0,[r24]
add r23,r23,#-1
add r24,r24,r27
bne0 r23,.LBB0_4
; %bb.5:

so no LOOP statement. Would this not be beneficial, or is it
simply a pattern that is currently not yet recognized?

Re: New computer architecture patent approved by UKIPO

<sr4egk$pdt$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: bage...@gmail.com (Brian G. Lucas)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Wed, 5 Jan 2022 09:46:25 -0600
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <sr4egk$pdt$1@dont-email.me>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org>
<sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me>
<sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me>
<sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me>
<sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqve0b$gt$1@newsreader4.netcologne.de>
<9da4e1d9-3f2a-4cb3-8d23-3c4ac60eaf85n@googlegroups.com>
<sqvueb$cev$1@newsreader4.netcologne.de>
<950fd4f6-74ca-4451-b5bc-1eda2c4cf55an@googlegroups.com>
<sr0u5h$vpu$1@newsreader4.netcologne.de>
<sr45i2$4hl$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 5 Jan 2022 15:46:29 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="bb2336f740ed319e86779507bc33d685";
logging-data="26045"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/EP2O04T3cMCfs07IybFq5"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.3.0
Cancel-Lock: sha1:06lyw7kjOVHxE11F+mEgeEMxp1k=
In-Reply-To: <sr45i2$4hl$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Brian G. Lucas - Wed, 5 Jan 2022 15:46 UTC

On 1/5/22 07:13, Thomas Koenig wrote:
....

> where the inner loop is translated with "clang -O3 --target=my66000
> -S mm.c" to
>
> .LBB0_4: ; %if.end96
> ; Parent Loop BB0_3 Depth=1
> ; => This Inner Loop Header: Depth=2
> std #0,[r24]
> add r23,r23,#-1
> add r24,r24,r27
> bne0 r23,.LBB0_4
> ; %bb.5:
>
> so no LOOP statement. Would this not be beneficial, or is it
> simply a pattern that is currently not yet recognized?
>

The LOOP optimization is off by default. Add "-enable-vvm" to flags
passed to the LLVM My66000 backend. I don't know how to pass that via Clang,
I just get the *.ll IR and run the backend separately.

Brian

Re: New computer architecture patent approved by UKIPO

<sr4ehq$ak2$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Wed, 5 Jan 2022 15:47:06 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sr4ehq$ak2$1@newsreader4.netcologne.de>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org>
<sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me>
<sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me>
<sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me>
<sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqve0b$gt$1@newsreader4.netcologne.de>
<9da4e1d9-3f2a-4cb3-8d23-3c4ac60eaf85n@googlegroups.com>
<sqvueb$cev$1@newsreader4.netcologne.de>
<950fd4f6-74ca-4451-b5bc-1eda2c4cf55an@googlegroups.com>
<sr0u5h$vpu$1@newsreader4.netcologne.de>
<sr45i2$4hl$1@newsreader4.netcologne.de>
Injection-Date: Wed, 5 Jan 2022 15:47:06 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:7488:0:7285:c2ff:fe6c:992d";
logging-data="10882"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Wed, 5 Jan 2022 15:47 UTC

Thomas Koenig <tkoenig@netcologne.de> schrieb:
> Thomas Koenig <tkoenig@netcologne.de> schrieb:
>
>> Maybe here's a better version:
>>
>> https://godbolt.org/z/9xKcfaezM
>>
>> This is a version tranlsated from what gfortran hands to gcc's
>> middle end into C, for those who do not have a Fortran compiler :-)
>>
>> What does your compiler make of that function?
>
> So I finally installed the My 66000 compiler. For anybody who,
> like me, is unfamiliar with LLVM: It took me a bit to find the
> -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=My66000 option.
>
> I did remove the superflous (long int)(int) casts, which were
> introduced by a minor bug in the original Fortran code.
>
> The inner loop of the code for zeroing the array is
>
> {
> long S_19;
> long D_3939;
>
> D_3939 = S_18 * stride_15 + D_3933;
> S_19 = 1;
> while (1)
> {
> if (S_19 > D_3934)
> goto L_1;
> c_0[S_19 * D_3937 + D_3939] = 0.0;
> S_19 = S_19 + 1;
> }
> L_1:;
> }
>
> where the inner loop is translated with "clang -O3 --target=my66000
> -S mm.c" to
>
> .LBB0_4: ; %if.end96
> ; Parent Loop BB0_3 Depth=1
> ; => This Inner Loop Header: Depth=2
> std #0,[r24]
> add r23,r23,#-1
> add r24,r24,r27
> bne0 r23,.LBB0_4
> ; %bb.5:
>
> so no LOOP statement. Would this not be beneficial, or is it
> simply a pattern that is currently not yet recognized?

.... or did I miss an option I should have specified?

Re: New computer architecture patent approved by UKIPO

<sr53bk$pm8$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.neodome.net!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Wed, 5 Jan 2022 21:42:12 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sr53bk$pm8$1@newsreader4.netcologne.de>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org>
<sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me>
<sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me>
<sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me>
<sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqve0b$gt$1@newsreader4.netcologne.de>
<9da4e1d9-3f2a-4cb3-8d23-3c4ac60eaf85n@googlegroups.com>
<sqvueb$cev$1@newsreader4.netcologne.de>
<950fd4f6-74ca-4451-b5bc-1eda2c4cf55an@googlegroups.com>
<sr0u5h$vpu$1@newsreader4.netcologne.de>
<sr45i2$4hl$1@newsreader4.netcologne.de> <sr4egk$pdt$1@dont-email.me>
Injection-Date: Wed, 5 Jan 2022 21:42:12 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:7488:0:7285:c2ff:fe6c:992d";
logging-data="26312"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Wed, 5 Jan 2022 21:42 UTC

Brian G. Lucas <bagel99@gmail.com> schrieb:
> On 1/5/22 07:13, Thomas Koenig wrote:
> ...
>
>> where the inner loop is translated with "clang -O3 --target=my66000
>> -S mm.c" to
>>
>> .LBB0_4: ; %if.end96
>> ; Parent Loop BB0_3 Depth=1
>> ; => This Inner Loop Header: Depth=2
>> std #0,[r24]
>> add r23,r23,#-1
>> add r24,r24,r27
>> bne0 r23,.LBB0_4
>> ; %bb.5:
>>
>> so no LOOP statement. Would this not be beneficial, or is it
>> simply a pattern that is currently not yet recognized?
>>
>
> The LOOP optimization is off by default. Add "-enable-vvm" to flags
> passed to the LLVM My66000 backend. I don't know how to pass that via Clang,
> I just get the *.ll IR and run the backend separately.

Got it, thanks.

Just getting through things. One thing struck me at first glance:
Is the ISA not well suited to tail-call optimization?

I ran a gfortran library file (preprocessed) and got code like

(condition branches here)

mov r1,r26
mov r2,r28
mov r3,r30
call _gfortran_maxloc0_8_r8
..Ltmp96:
br .LBB1_45

(where the last branch is to an EXIT) for a tail call:

if (mask ==
((void *)0)
|| *mask)
{
maxloc0_8_r8 (retarray, array, back);
return;
}

or is this simply something that is not yet on the agenda because
100 things have a higher coolness factor and a higher need?

Re: New computer architecture patent approved by UKIPO

<01d0964a-d204-4cff-bb99-aff607b2ee28n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:620a:2849:: with SMTP id h9mr40123550qkp.766.1641453440063;
Wed, 05 Jan 2022 23:17:20 -0800 (PST)
X-Received: by 2002:aca:646:: with SMTP id 67mr5249171oig.175.1641453439421;
Wed, 05 Jan 2022 23:17:19 -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, 5 Jan 2022 23:17:19 -0800 (PST)
In-Reply-To: <d7f7199e-2403-4764-863c-b2670133c3bcn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=94.246.251.164; posting-account=pysjKgkAAACLegAdYDFznkqjgx_7vlUK
NNTP-Posting-Host: 94.246.251.164
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de>
<sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me>
<sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me>
<sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me> <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
<02c680fe-3003-4e0b-8d09-0b3408a8b28cn@googlegroups.com> <d7f7199e-2403-4764-863c-b2670133c3bcn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <01d0964a-d204-4cff-bb99-aff607b2ee28n@googlegroups.com>
Subject: Re: New computer architecture patent approved by UKIPO
From: oot...@hot.ee (Öö Tiib)
Injection-Date: Thu, 06 Jan 2022 07:17:20 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 26
 by: Öö Tiib - Thu, 6 Jan 2022 07:17 UTC

On Wednesday, 5 January 2022 at 03:55:44 UTC+2, MitchAlsup wrote:
> On Tuesday, January 4, 2022 at 7:29:25 PM UTC-6, oot...@hot.ee wrote:

> > > This creates a structure (with struct alignment) containing 42 containers
> > > each container having 13-bits. You can get at each container using array
> > > notation a[i] as either an r-value or as an l-value.
> > > <
> > Why only in struct? If to think ... then 64 bit pointers and sizes could
> > operate in exabyte with bit-by-bit precision.
> <
> C only <currently> has bit fields inside of structs (¿and unions?) and this is
> the context in which the : operator denotes bit field length.
> <
> Also notice I did not enable the taking of a bit-field's address (&) nor did I
> allow for dereferencing of a bit-fields container--except through array indexing.
> <
OK, I suspect I see. Array indexing of C is defined as array to pointer
decay, pointer and integer addition and then dereference of result. So
a[i] (or i[a]) must work same as *(a + i). Your operator [] has meaning
that does not involve special bit-pointers. That kind of pointers however
might be fun to have.

Re: New computer architecture patent approved by UKIPO

<sr68ni$bd3$1@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!To5nvU/sTaigmVbgRJ05pQ.user.46.165.242.91.POSTED!not-for-mail
From: terje.ma...@tmsw.no (Terje Mathisen)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Thu, 6 Jan 2022 09:20:09 +0100
Organization: Aioe.org NNTP Server
Message-ID: <sr68ni$bd3$1@gioia.aioe.org>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org>
<sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me>
<sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me>
<sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me>
<sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me>
<80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me>
<2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me>
<4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="11683"; posting-host="To5nvU/sTaigmVbgRJ05pQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101
Firefox/68.0 SeaMonkey/2.53.10.2
X-Notice: Filtered by postfilter v. 0.9.2
 by: Terje Mathisen - Thu, 6 Jan 2022 08:20 UTC

MitchAlsup wrote:
> On Tuesday, January 4, 2022 at 11:49:54 AM UTC-6, Stephen Fuld wrote:
> I, personally, think that vector of bit fields, each having a given width,
> is the proper abstraction. If these things cross natural container boundaries
> the compiler has to emit code to "do the right thing".
> <
> struct { unsigned long int a : 13[42]; }
> <
> This creates a structure (with struct alignment) containing 42 containers
> each container having 13-bits. You can get at each container using array
> notation a[i] as either an r-value or as an l-value.
> <
> But this is just sufficient for static field definitions. And static bit-fields
> is all I have ever used, so my knowledge base takes a hard stop on dynamic
> bit fields.

I like your syntax, but as you say, it only works for static setups.

In reality, I'd estimate 90-99% of all bitfield operations today are in
the form of decompressing data, be it from zip/gz/etc, or h.264/ogg
vorbis or other codecs, and these are all dynamic.

Terje

--
- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"

Re: New computer architecture patent approved by UKIPO

<e822b7cc-9f1c-4930-8e56-5ce64bf743d7n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:19a3:: with SMTP id u35mr52036502qtc.303.1641492280162;
Thu, 06 Jan 2022 10:04:40 -0800 (PST)
X-Received: by 2002:a9d:bf7:: with SMTP id 110mr43595586oth.94.1641492279938;
Thu, 06 Jan 2022 10:04:39 -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: Thu, 6 Jan 2022 10:04:39 -0800 (PST)
In-Reply-To: <sr68ni$bd3$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:19f4:580e:a114:b4b6;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:19f4:580e:a114:b4b6
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de>
<sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me>
<sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me>
<sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me> <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
<sr68ni$bd3$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <e822b7cc-9f1c-4930-8e56-5ce64bf743d7n@googlegroups.com>
Subject: Re: New computer architecture patent approved by UKIPO
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Thu, 06 Jan 2022 18:04:40 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 29
 by: MitchAlsup - Thu, 6 Jan 2022 18:04 UTC

On Thursday, January 6, 2022 at 2:20:08 AM UTC-6, Terje Mathisen wrote:
> MitchAlsup wrote:
> > On Tuesday, January 4, 2022 at 11:49:54 AM UTC-6, Stephen Fuld wrote:
> > I, personally, think that vector of bit fields, each having a given width,
> > is the proper abstraction. If these things cross natural container boundaries
> > the compiler has to emit code to "do the right thing".
> > <
> > struct { unsigned long int a : 13[42]; }
> > <
> > This creates a structure (with struct alignment) containing 42 containers
> > each container having 13-bits. You can get at each container using array
> > notation a[i] as either an r-value or as an l-value.
> > <
> > But this is just sufficient for static field definitions. And static bit-fields
> > is all I have ever used, so my knowledge base takes a hard stop on dynamic
> > bit fields.
> I like your syntax, but as you say, it only works for static setups.
>
> In reality, I'd estimate 90-99% of all bitfield operations today are in
> the form of decompressing data, be it from zip/gz/etc, or h.264/ogg
> vorbis or other codecs, and these are all dynamic.
<
The bit field INSTRUCTIONs can be worked dynamically,
The bit field SYNTAX in C war not so enabled.
>
> Terje
>
> --
> - <Terje.Mathisen at tmsw.no>
> "almost all programming can be viewed as an exercise in caching"

Re: New computer architecture patent approved by UKIPO

<bc11fdaa-8888-4bb0-a835-9f2fa893b1f9n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
X-Received: by 2002:a05:622a:180c:: with SMTP id t12mr53755713qtc.507.1641492518162;
Thu, 06 Jan 2022 10:08:38 -0800 (PST)
X-Received: by 2002:a54:4887:: with SMTP id r7mr6304464oic.44.1641492517941;
Thu, 06 Jan 2022 10:08:37 -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: Thu, 6 Jan 2022 10:08:37 -0800 (PST)
In-Reply-To: <01d0964a-d204-4cff-bb99-aff607b2ee28n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:291:29f0:19f4:580e:a114:b4b6;
posting-account=H_G_JQkAAADS6onOMb-dqvUozKse7mcM
NNTP-Posting-Host: 2600:1700:291:29f0:19f4:580e:a114:b4b6
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de>
<sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me>
<sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me>
<sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me> <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
<02c680fe-3003-4e0b-8d09-0b3408a8b28cn@googlegroups.com> <d7f7199e-2403-4764-863c-b2670133c3bcn@googlegroups.com>
<01d0964a-d204-4cff-bb99-aff607b2ee28n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <bc11fdaa-8888-4bb0-a835-9f2fa893b1f9n@googlegroups.com>
Subject: Re: New computer architecture patent approved by UKIPO
From: MitchAl...@aol.com (MitchAlsup)
Injection-Date: Thu, 06 Jan 2022 18:08:38 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 40
 by: MitchAlsup - Thu, 6 Jan 2022 18:08 UTC

On Thursday, January 6, 2022 at 1:17:21 AM UTC-6, oot...@hot.ee wrote:
> On Wednesday, 5 January 2022 at 03:55:44 UTC+2, MitchAlsup wrote:
> > On Tuesday, January 4, 2022 at 7:29:25 PM UTC-6, oot...@hot.ee wrote:
>
> > > > This creates a structure (with struct alignment) containing 42 containers
> > > > each container having 13-bits. You can get at each container using array
> > > > notation a[i] as either an r-value or as an l-value.
> > > > <
> > > Why only in struct? If to think ... then 64 bit pointers and sizes could
> > > operate in exabyte with bit-by-bit precision.
> > <
> > C only <currently> has bit fields inside of structs (¿and unions?) and this is
> > the context in which the : operator denotes bit field length.
> > <
> > Also notice I did not enable the taking of a bit-field's address (&) nor did I
> > allow for dereferencing of a bit-fields container--except through array indexing.
> > <
> OK, I suspect I see. Array indexing of C is defined as array to pointer
> decay, pointer and integer addition and then dereference of result. So
> a[i] (or i[a]) must work same as *(a + i). Your operator [] has meaning
> that does not involve special bit-pointers. That kind of pointers however
> might be fun to have.
<
I am suggesting the the [] operator in the context of bit-fields does not have
the pointer+integer arithmetics that the <open> [] operator has. This is the
same as the , operator operating in <open> context simply throws the
left hand side away, while in argument context it provides separators for
individual definitions on the entry point definition, and acts like a list
creator on the calling side.

Re: New computer architecture patent approved by UKIPO

<sr7e57$unb$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: bage...@gmail.com (Brian G. Lucas)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Thu, 6 Jan 2022 12:58:47 -0600
Organization: A noiseless patient Spider
Lines: 35
Message-ID: <sr7e57$unb$1@dont-email.me>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org>
<sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me>
<sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me>
<sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me>
<sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me>
<sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me>
<squehs$m87$1@dont-email.me> <sqve0b$gt$1@newsreader4.netcologne.de>
<9da4e1d9-3f2a-4cb3-8d23-3c4ac60eaf85n@googlegroups.com>
<sqvueb$cev$1@newsreader4.netcologne.de>
<950fd4f6-74ca-4451-b5bc-1eda2c4cf55an@googlegroups.com>
<sr0u5h$vpu$1@newsreader4.netcologne.de>
<sr45i2$4hl$1@newsreader4.netcologne.de> <sr4egk$pdt$1@dont-email.me>
<sr53bk$pm8$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 6 Jan 2022 18:58:47 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="e77d7e13168ba356ba35e92b2ce019a8";
logging-data="31467"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19V8CVk4GTVxyxY9OaE4k86"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.3.0
Cancel-Lock: sha1:aS2D/mB6YwTiJwAb1yhAxhKfzk0=
In-Reply-To: <sr53bk$pm8$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Brian G. Lucas - Thu, 6 Jan 2022 18:58 UTC

On 1/5/22 15:42, Thomas Koenig wrote:
....
>
> Just getting through things. One thing struck me at first glance:
> Is the ISA not well suited to tail-call optimization?
>
> I ran a gfortran library file (preprocessed) and got code like
>
> (condition branches here)
>
> mov r1,r26
> mov r2,r28
> mov r3,r30
> call _gfortran_maxloc0_8_r8
> .Ltmp96:
> br .LBB1_45
>
> (where the last branch is to an EXIT) for a tail call:
>
> if (mask ==
> ((void *)0)
> || *mask)
> {
> maxloc0_8_r8 (retarray, array, back);
> return;
> }
>
> or is this simply something that is not yet on the agenda because
> 100 things have a higher coolness factor and a higher need?
>
Some tail calls should work, but yes, this was low on the priority list.

Brian

Re: New computer architecture patent approved by UKIPO

<86y23sw0z8.fsf@linuxsc.com>

  copy mid

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

  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: New computer architecture patent approved by UKIPO
Date: Thu, 06 Jan 2022 21:47:55 -0800
Organization: A noiseless patient Spider
Lines: 24
Message-ID: <86y23sw0z8.fsf@linuxsc.com>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com> <37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com> <msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: reader02.eternal-september.org; posting-host="e2005ac63493a238c185f329f8e563ad";
logging-data="9596"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/PKh5dy27G+ORgWEAn1Naoy05bCthb1dk="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:FrfohI025TW72q5+TjRw504uvxM=
sha1:0Y0NJzdMVvp9TbB4fjogi0rsMtw=
 by: Tim Rentsch - Fri, 7 Jan 2022 05:47 UTC

Thomas Koenig <tkoenig@netcologne.de> writes:

> George Neuner <gneuner2@comcast.net> schrieb:
>
>> On Sat, 25 Dec 2021 16:53:06 -0800 (PST), Othman Ahmad
>> <othmana@gmail.com> wrote:
>>
>>> vectors are arrays. define arrays and operators to for these
>>> arrays
>>
>> You need to be careful with that analogy: a vector and a 1D array
>> look very similar, but a vector of vectors is not the same as a 2D
>> array.
>
> Very much so.
>
> It is one of the weaknesses of C that a multi-dimensional array
> is not very well supported. You either have the pointer forest,
> or you have to roll your own indexing manually.

C does have multidimensional arrays (ie, not just pointer forests
or indexing done manually). It may not have the kind of such
arrays that you are used to using, but it does have arrays that
have more than one dimension.

Re: New computer architecture patent approved by UKIPO

<86czl4vx9j.fsf@linuxsc.com>

  copy mid

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

  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: New computer architecture patent approved by UKIPO
Date: Thu, 06 Jan 2022 23:08:08 -0800
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <86czl4vx9j.fsf@linuxsc.com>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me> <sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me> <squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com> <sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com> <sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me> <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com> <02c680fe-3003-4e0b-8d09-0b3408a8b28cn@googlegroups.com> <d7f7199e-2403-4764-863c-b2670133c3bcn@googlegroups.com> <01d0964a-d204-4cff-bb99-aff607b2ee28n@googlegroups.com> <bc11fdaa-8888-4bb0-a835-9f2fa893b1f9n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: reader02.eternal-september.org; posting-host="e2005ac63493a238c185f329f8e563ad";
logging-data="22253"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+U9OYH1+tkYETYEF1ctxgPwPIa7s3bXf4="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:QGu39ytK/LW33g0B14cWwFSdGI4=
sha1:brnr+GD/+NmrgsOPF/ZwzUnki9I=
 by: Tim Rentsch - Fri, 7 Jan 2022 07:08 UTC

MitchAlsup <MitchAlsup@aol.com> writes:

[ on using [] to index arrays of chosen-width bit values ]

> I am suggesting the the [] operator in the context of bit-fields
> does not have the pointer+integer arithmetics that the <open> []
> operator has. This is the same as the , operator operating in
> <open> context simply throws the left hand side away, while in
> argument context it provides separators for individual definitions
> on the entry point definition, and acts like a list creator on the
> calling side.

This analogy doesn't quite hold up. The commas in a function
call expression are not comma operators, ie, the distinction
is syntactic, not semantic. Presumably using [] to access
arrays of chosen-width bit values would hinge on a semantic
distinction, not a syntactic one.

Re: New computer architecture patent approved by UKIPO

<86zgo7vrex.fsf@linuxsc.com>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.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: New computer architecture patent approved by UKIPO
Date: Fri, 07 Jan 2022 01:14:30 -0800
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <86zgo7vrex.fsf@linuxsc.com>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com> <37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com> <5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com> <msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com> <sqcvuq$l2h$1@newsreader4.netcologne.de> <sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqhcec$sp3$1@dont-email.me> <8a5ce1cf-0145-407b-8bb5-6c31e4ec115an@googlegroups.com> <9rhosg5gc3gsl3rlqs5h93dpmvg1h2inqk@4ax.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: reader02.eternal-september.org; posting-host="e2005ac63493a238c185f329f8e563ad";
logging-data="11768"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX193Sd0uVRntNKwgEv+DR2AlHkppEYTVWQE="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:7/2qzNzJxpe+VEE9B5pCFxkeXYo=
sha1:K+lOzQutnkA9IQ063d6l28lkurk=
 by: Tim Rentsch - Fri, 7 Jan 2022 09:14 UTC

George Neuner <gneuner2@comcast.net> writes:

> C supports 'vectors of vectors' ... not multi-dimensional arrays.
>
> E.g., suppose you define 'int arr[2][10]'.
>
> In C you will get a block of memory that can hold 20 contiguous ints
> ... but that block has no internal structure: nothing but compiler
> warnings prevent you from referencing arr[1][2] as arr[-1][22], or
> as arr[0][12], or as arr[2][-8], etc. Or referencing outside the
> array's memory block entirely.

That has nothing to do with dimensionality. The array bounds
are there, even if there is no guarantee that C will check them,
for multidimensional arrays as well as for one-dimensional arrays.

> In a language with true arrays, [...]

Plenty of languages have arrays without bounds checking.
And everyone calls them arrays, despite what you may think.

Re: New computer architecture patent approved by UKIPO

<sr90eg$roe$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Fri, 7 Jan 2022 09:17:04 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sr90eg$roe$1@newsreader4.netcologne.de>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <86y23sw0z8.fsf@linuxsc.com>
Injection-Date: Fri, 7 Jan 2022 09:17:04 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:7488:0:7285:c2ff:fe6c:992d";
logging-data="28430"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Fri, 7 Jan 2022 09:17 UTC

Tim Rentsch <tr.17687@z991.linuxsc.com> schrieb:
> Thomas Koenig <tkoenig@netcologne.de> writes:
>
>> George Neuner <gneuner2@comcast.net> schrieb:
>>
>>> On Sat, 25 Dec 2021 16:53:06 -0800 (PST), Othman Ahmad
>>> <othmana@gmail.com> wrote:
>>>
>>>> vectors are arrays. define arrays and operators to for these
>>>> arrays
>>>
>>> You need to be careful with that analogy: a vector and a 1D array
>>> look very similar, but a vector of vectors is not the same as a 2D
>>> array.
>>
>> Very much so.
>>
>> It is one of the weaknesses of C that a multi-dimensional array
>> is not very well supported. You either have the pointer forest,
>> or you have to roll your own indexing manually.
>
> C does have multidimensional arrays (ie, not just pointer forests
> or indexing done manually). It may not have the kind of such
> arrays that you are used to using,

I should have qualified my statement with "In order to do useful
things, you either have...".

>but it does have arrays that
> have more than one dimension.

In order to be useful, such an array should

- have a size that can be determined at run-time

- have no artificial limitations in size imposed, for example,
by the stack

- be able to be passed to a function, in which it should be
accessed the same way that it was accessed in the calling
function

If I have missed such a feature in C, please provide a short example
program which reads an integer n, generates an n*n integer array
and passes it to a function which fills it with the absolute
difference between the indices, and then the calling function
prints out the array. In order to be useful, the program should
work with moderate n (let's say n=10000) on a Linux system with
default stack size, which is 8 MB.

Re: New computer architecture patent approved by UKIPO

<86v8yvvor2.fsf@linuxsc.com>

  copy mid

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

  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: New computer architecture patent approved by UKIPO
Date: Fri, 07 Jan 2022 02:12:01 -0800
Organization: A noiseless patient Spider
Lines: 28
Message-ID: <86v8yvvor2.fsf@linuxsc.com>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com> <sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me> <sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me> <sqj27b$bnu$1@dont-email.me> <sqk3hf$4bb$1@dont-email.me> <sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me> <sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me> <sqsn46$cpn$1@dont-email.me> <squehs$m87$1@dont-email.me> <sqvscq$t3g$1@dont-email.me> <80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com> <sr081n$rcg$1@dont-email.me> <2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com> <sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me> <4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com> <sr68ni$bd3$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: reader02.eternal-september.org; posting-host="e2005ac63493a238c185f329f8e563ad";
logging-data="2670"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+06Lo3YYxpks7aNulHImZgi2VxOGiCPCk="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:TObjzAf7lhX4f7PniEJFpTSlCeg=
sha1:geDnmHd9cCCiXd7AoiE2oCdGS6A=
 by: Tim Rentsch - Fri, 7 Jan 2022 10:12 UTC

Terje Mathisen <terje.mathisen@tmsw.no> writes:

[ concerning "static" versus "dynamic" bitfield access ]

> In reality, I'd estimate 90-99% of all bitfield operations today

Presumably you mean by cycles used, not by lines of code written to
perform the accesses. Yes? Or if the kinds of applications listed
below are the only ones needing dynamic bitfield access, then
clearly the demand is not large enough to add dynamic bitfield
operations to the C language.

> are in the form of decompressing data, be it from zip/gz/etc, or
> h.264/ogg vorbis or other codecs, and these are all dynamic.

My impression is this kind of application takes input in the form
of a "stream" of bits, more or less like an entire input (or
perhaps major pieces of the input) makes up an enormous shift
register. Parcels of varying widths are conceptually taken from
the "top" of the shift register, which is then (conceptually)
shifted so the next parcel is at the top. This kind of operation
is not like bitfields in the usual sense of the term (and
certainly not like the suggested forms that started this
discussion). What they are is more like bit-level addressing of
varying bit-width parcels, which may cross arbitrary memory
boundaries. That model is not, I think, a good fit for the
architectures and memory systems used in most processors
today, which means it is also not a good fit for adding to C.

Re: New computer architecture patent approved by UKIPO

<sr97ja$uqm$1@dont-email.me>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: m.del...@this.bitsnbites.eu (Marcus)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Fri, 7 Jan 2022 12:19:05 +0100
Organization: A noiseless patient Spider
Lines: 38
Message-ID: <sr97ja$uqm$1@dont-email.me>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me>
<sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me>
<sqj27b$bnu$1@dont-email.me> <sqk3hf$4bb$1@dont-email.me>
<sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me>
<sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me>
<sqsn46$cpn$1@dont-email.me> <squehs$m87$1@dont-email.me>
<sqvscq$t3g$1@dont-email.me>
<80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me>
<2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me>
<4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
<sr68ni$bd3$1@gioia.aioe.org> <86v8yvvor2.fsf@linuxsc.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 7 Jan 2022 11:19:06 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="0eb89e610650f4962d5f377dad77e9cf";
logging-data="31574"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/Zok5R/Vut7Wfe+Wh6dID/wsXWpX6bIdM="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.14.0
Cancel-Lock: sha1:DK1oxlip3enlB4BW0XjdH7WlEvs=
In-Reply-To: <86v8yvvor2.fsf@linuxsc.com>
Content-Language: en-US
 by: Marcus - Fri, 7 Jan 2022 11:19 UTC

On 2022-01-07, Tim Rentsch wrote:
> Terje Mathisen <terje.mathisen@tmsw.no> writes:
>
> [ concerning "static" versus "dynamic" bitfield access ]
>
>> In reality, I'd estimate 90-99% of all bitfield operations today
>
> Presumably you mean by cycles used, not by lines of code written to
> perform the accesses. Yes? Or if the kinds of applications listed
> below are the only ones needing dynamic bitfield access, then
> clearly the demand is not large enough to add dynamic bitfield
> operations to the C language.
>
>> are in the form of decompressing data, be it from zip/gz/etc, or
>> h.264/ogg vorbis or other codecs, and these are all dynamic.
>
> My impression is this kind of application takes input in the form
> of a "stream" of bits, more or less like an entire input (or
> perhaps major pieces of the input) makes up an enormous shift
> register. Parcels of varying widths are conceptually taken from
> the "top" of the shift register, which is then (conceptually)
> shifted so the next parcel is at the top. This kind of operation
> is not like bitfields in the usual sense of the term (and
> certainly not like the suggested forms that started this
> discussion). What they are is more like bit-level addressing of
> varying bit-width parcels, which may cross arbitrary memory
> boundaries. That model is not, I think, a good fit for the
> architectures and memory systems used in most processors
> today, which means it is also not a good fit for adding to C.
>

Another way of looking at bitfield operations (in a CPU) is that they
optimize certain classes of SHIFT + MASK (optionally + SIGN_EXTEND)
operations. Such sequences can be detected by a good compiler, and no
special language constructs are needed.

However, having language support can greatly help the programmer write
code that will map to optimal machine code.

Re: New computer architecture patent approved by UKIPO

<sr9gen$1dvf$1@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!Liunnst7X9VOeBBqqVtBCw.user.46.165.242.91.POSTED!not-for-mail
From: terje.ma...@tmsw.no (Terje Mathisen)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Fri, 7 Jan 2022 14:50:16 +0100
Organization: Aioe.org NNTP Server
Message-ID: <sr9gen$1dvf$1@gioia.aioe.org>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<sqf32u$irb$1@gioia.aioe.org> <sqh6rs$uqh$1@dont-email.me>
<sqh87v$6en$1@dont-email.me> <sqha6a$h95$1@dont-email.me>
<sqj27b$bnu$1@dont-email.me> <sqk3hf$4bb$1@dont-email.me>
<sqkqg3$3js$1@dont-email.me> <sql09e$pfs$1@dont-email.me>
<sql2c8$36g$1@dont-email.me> <sqn50p$g8p$1@dont-email.me>
<sqsn46$cpn$1@dont-email.me> <squehs$m87$1@dont-email.me>
<sqvscq$t3g$1@dont-email.me>
<80320128-7c46-4d0f-b21b-c5456b8ca772n@googlegroups.com>
<sr081n$rcg$1@dont-email.me>
<2d485c86-e4ce-435a-85df-31d72432375dn@googlegroups.com>
<sr0d1k$mu3$1@dont-email.me> <sr21c0$rhg$1@dont-email.me>
<4e656741-3162-4a8e-b169-1fb1039e3893n@googlegroups.com>
<sr68ni$bd3$1@gioia.aioe.org> <86v8yvvor2.fsf@linuxsc.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="47087"; posting-host="Liunnst7X9VOeBBqqVtBCw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101
Firefox/68.0 SeaMonkey/2.53.10.2
X-Notice: Filtered by postfilter v. 0.9.2
 by: Terje Mathisen - Fri, 7 Jan 2022 13:50 UTC

Tim Rentsch wrote:
> Terje Mathisen <terje.mathisen@tmsw.no> writes:
>
> [ concerning "static" versus "dynamic" bitfield access ]
>
>> In reality, I'd estimate 90-99% of all bitfield operations today
>
> Presumably you mean by cycles used, not by lines of code written to
> perform the accesses. Yes? Or if the kinds of applications listed

Absolutely so! How many cycles total are users waiting on these
particular operations, not how many hours are developers spending
writing the code. :-)

> below are the only ones needing dynamic bitfield access, then
> clearly the demand is not large enough to add dynamic bitfield
> operations to the C language.
>
>> are in the form of decompressing data, be it from zip/gz/etc, or
>> h.264/ogg vorbis or other codecs, and these are all dynamic.
>
> My impression is this kind of application takes input in the form
> of a "stream" of bits, more or less like an entire input (or
> perhaps major pieces of the input) makes up an enormous shift
> register. Parcels of varying widths are conceptually taken from
> the "top" of the shift register, which is then (conceptually)
> shifted so the next parcel is at the top. This kind of operation

Exactly right, with the additional wrinkle that you usually don't know
how many bits you need until you've processed them.

> is not like bitfields in the usual sense of the term (and
> certainly not like the suggested forms that started this
> discussion). What they are is more like bit-level addressing of
> varying bit-width parcels, which may cross arbitrary memory
> boundaries. That model is not, I think, a good fit for the
> architectures and memory systems used in most processors
> today, which means it is also not a good fit for adding to C.
>
Probably correct.

Codecs get custum VLSI/GPU helpers, compression (zip/gz/etc) tends to be
pure sw, which makes it still very important.

Terje

--
- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"

Re: New computer architecture patent approved by UKIPO

<srabfa$q0j$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Fri, 7 Jan 2022 21:31:22 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <srabfa$q0j$1@newsreader4.netcologne.de>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <86y23sw0z8.fsf@linuxsc.com>
<sr90eg$roe$1@newsreader4.netcologne.de>
Injection-Date: Fri, 7 Jan 2022 21:31:22 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:7488:0:7285:c2ff:fe6c:992d";
logging-data="26643"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Fri, 7 Jan 2022 21:31 UTC

Thomas Koenig <tkoenig@netcologne.de> schrieb:
> Tim Rentsch <tr.17687@z991.linuxsc.com> schrieb:

[...]

>> C does have multidimensional arrays (ie, not just pointer forests
>> or indexing done manually). It may not have the kind of such
>> arrays that you are used to using,
>
> I should have qualified my statement with "In order to do useful
> things, you either have...".
>
>>but it does have arrays that
>> have more than one dimension.
>
> In order to be useful, such an array should
>
> - have a size that can be determined at run-time
>
> - have no artificial limitations in size imposed, for example,
> by the stack
>
> - be able to be passed to a function, in which it should be
> accessed the same way that it was accessed in the calling
> function

In case my reference wasn't clear, here is a Fortran implementation
of what I mean.

I am leaving out assumed-shape arrays, I'm not sure everybody
knows the syntax. So, the equivalent of

$ cat a.f90
module x
implicit none
contains
subroutine foo(x,n)
integer :: n
integer, dimension(n,n) :: x
integer :: i,j
do i=1,n
do j=1,n
x(i,j) = abs(i-j)
end do
end do
end subroutine foo
end module x
program main
use x
implicit none
integer, dimension(:,:), allocatable :: f
integer :: n,i,j
read (*,*) n
allocate (f(n,n))
call foo(f,n)
do j=1,n
do i=1,n
write (*,'(G0,X)',advance="no" ) f(i,j)
end do
write (*,'()')
end do
end program main
$ gfortran -O2 a.f90
$ echo 3 | ./a.out
0 1 2
1 0 1
2 1 0
$ echo 10000 | ./a.out | wc -l
10000

(the last command will run a couple of minutes due to I/O overhead).

Re: New computer architecture patent approved by UKIPO

<j3rrtoFgr1eU1@mid.individual.net>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: niklas.h...@tidorum.invalid (Niklas Holsti)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Sat, 8 Jan 2022 00:07:52 +0200
Organization: Tidorum Ltd
Lines: 119
Message-ID: <j3rrtoFgr1eU1@mid.individual.net>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <86y23sw0z8.fsf@linuxsc.com>
<sr90eg$roe$1@newsreader4.netcologne.de>
<srabfa$q0j$1@newsreader4.netcologne.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: individual.net pH+HfXkHEqxhZ5n+9caEgQvB8g/QghE/TNTylJLrsrRko2i8Ol
Cancel-Lock: sha1:+pLuTCOaQWJDqBY+BdVrHP9bEBQ=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0)
Gecko/20100101 Thunderbird/78.14.0
In-Reply-To: <srabfa$q0j$1@newsreader4.netcologne.de>
Content-Language: en-US
 by: Niklas Holsti - Fri, 7 Jan 2022 22:07 UTC

On 2022-01-07 23:31, Thomas Koenig wrote:
> Thomas Koenig <tkoenig@netcologne.de> schrieb:
>> Tim Rentsch <tr.17687@z991.linuxsc.com> schrieb:
>
> [...]
>
>>> C does have multidimensional arrays (ie, not just pointer forests
>>> or indexing done manually). It may not have the kind of such
>>> arrays that you are used to using,
>>
>> I should have qualified my statement with "In order to do useful
>> things, you either have...".
>>
>>> but it does have arrays that
>>> have more than one dimension.
>>
>> In order to be useful, such an array should
>>
>> - have a size that can be determined at run-time
>>
>> - have no artificial limitations in size imposed, for example,
>> by the stack
>>
>> - be able to be passed to a function, in which it should be
>> accessed the same way that it was accessed in the calling
>> function
>
> In case my reference wasn't clear, here is a Fortran implementation
> of what I mean.
>
> I am leaving out assumed-shape arrays, I'm not sure everybody
> knows the syntax. So, the equivalent of
>
> $ cat a.f90
> module x
> implicit none
> contains
> subroutine foo(x,n)
> integer :: n
> integer, dimension(n,n) :: x
> integer :: i,j
> do i=1,n
> do j=1,n
> x(i,j) = abs(i-j)
> end do
> end do
> end subroutine foo
> end module x
> program main
> use x
> implicit none
> integer, dimension(:,:), allocatable :: f
> integer :: n,i,j
> read (*,*) n
> allocate (f(n,n))
> call foo(f,n)
> do j=1,n
> do i=1,n
> write (*,'(G0,X)',advance="no" ) f(i,j)
> end do
> write (*,'()')
> end do
> end program main
> $ gfortran -O2 a.f90
> $ echo 3 | ./a.out
> 0 1 2
> 1 0 1
> 2 1 0
> $ echo 10000 | ./a.out | wc -l
> 10000
>
> (the last command will run a couple of minutes due to I/O overhead).

The challenge may have been intended specifically for C, but as the
thread has talked about several languages, here is an Ada equivalent.
For simplicity I nested the Foo procedure into the main procedure, but
it could of course be in a separate module (a package) with trivial
syntax changes.

A difference to the Fortran solution is that when the array F is passed
to Foo, the parameter must be written "F.all" instead of plain "F", as
Foo is declared to take a Matrix, while F is a pointer (access) to a
Matrix. I could have avoided that by making Foo take an "access Matrix"
parameter, but then I could not have declared that parameter to be only
an output (result) parameter.

with Ada.Text_IO, Ada.Integer_Text_IO;
procedure Big_Matrix is
use Ada.Text_IO, Ada.Integer_Text_IO;
type Matrix is array (Positive range <>, Positive range <>)
of Integer;

procedure Foo (X : out Matrix) is
begin
for I in X'Range(1) loop
for J in X'Range(2) loop
X(I,J) := abs (I - J);
end loop;
end loop;
end Foo;

N : Natural;

begin
Get (N);
declare
F : access Matrix := new Matrix (1 .. N, 1 .. N);
begin
Foo (F.all);
for J in F'Range(2) loop
for I in F'Range(1) loop
Put (F(I,J), Width => 9);
end loop;
New_Line;
end loop;
end;
end Big_Matrix;

Re: New computer architecture patent approved by UKIPO

<sraif0$uvn$1@newsreader4.netcologne.de>

  copy mid

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

  copy link   Newsgroups: comp.arch
Path: i2pn2.org!i2pn.org!aioe.org!news.mixmin.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoe...@netcologne.de (Thomas Koenig)
Newsgroups: comp.arch
Subject: Re: New computer architecture patent approved by UKIPO
Date: Fri, 7 Jan 2022 23:30:40 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <sraif0$uvn$1@newsreader4.netcologne.de>
References: <1153ff5f-dc38-452b-beb6-4531181466fdn@googlegroups.com>
<37581437-09ba-4d4f-9f38-f9cb5656c07dn@googlegroups.com>
<5528b6bc-5fcb-4906-aaa0-fa6cebb72803n@googlegroups.com>
<msnjsgdvb8st1nf4o03o19u9opldfs4a1o@4ax.com>
<sqcvuq$l2h$1@newsreader4.netcologne.de> <86y23sw0z8.fsf@linuxsc.com>
<sr90eg$roe$1@newsreader4.netcologne.de>
<srabfa$q0j$1@newsreader4.netcologne.de> <j3rrtoFgr1eU1@mid.individual.net>
Injection-Date: Fri, 7 Jan 2022 23:30:40 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-7488-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:7488:0:7285:c2ff:fe6c:992d";
logging-data="31735"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Fri, 7 Jan 2022 23:30 UTC

Niklas Holsti <niklas.holsti@tidorum.invalid> schrieb:
> On 2022-01-07 23:31, Thomas Koenig wrote:
>> Thomas Koenig <tkoenig@netcologne.de> schrieb:

> The challenge may have been intended specifically for C,

Definitely.

> but as the
> thread has talked about several languages, here is an Ada equivalent.

Just for the record, I was aware that Ada can do this :-)

> For simplicity I nested the Foo procedure into the main procedure, but
> it could of course be in a separate module (a package) with trivial
> syntax changes.

Actually, I made the Fortran program not use the more advanced
features of passing an assumed-shape array (not that the callee
makes assumptions about the array, but that the shape is assumed
from the caller - I always find that bit of terminolgy a little
confusing), but this sort of feature would definitely not follow
the "small language" philosophy of C.

>
> A difference to the Fortran solution is that when the array F is passed
> to Foo, the parameter must be written "F.all" instead of plain "F", as
> Foo is declared to take a Matrix, while F is a pointer (access) to a
> Matrix. I could have avoided that by making Foo take an "access Matrix"
> parameter, but then I could not have declared that parameter to be only
> an output (result) parameter.
>
>
> with Ada.Text_IO, Ada.Integer_Text_IO;
> procedure Big_Matrix is
> use Ada.Text_IO, Ada.Integer_Text_IO;
> type Matrix is array (Positive range <>, Positive range <>)
> of Integer;
>
> procedure Foo (X : out Matrix) is
> begin
> for I in X'Range(1) loop
> for J in X'Range(2) loop
> X(I,J) := abs (I - J);
> end loop;
> end loop;
> end Foo;

The equivalent of that in Fortran would be

subroutine foo(x)
integer, dimension(:,:), intent(out) :: x
integer :: i,j
do i=1,size(x,1)
do j=1,size(x,2)
x(i,j) = abs(i-j)
end do
end do
end subroutine foo

Someday, somebody maybe write up the history of which language
infuenced which. I believe Fortran modules were strongly influenced
by Ada packages, and the separation between public and private
specifications was only introduced in Fortran with the 2008 standard
with submodules.

Pages:12345
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor