• Re: POWER trends, Concertina II Instead

    From quadi@quadibloc@ca.invalid to comp.arch on Mon Mar 23 19:18:49 2026
    From Newsgroup: comp.arch

    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for most
    practical purposes is a dual-core or quad-core cluster "a core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as to cheat themselves?

    But then there was the famous lawsuit against AMD because in some of their older chips, two cores shared one vector unit.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Mon Mar 23 14:36:14 2026
    From Newsgroup: comp.arch

    On 3/23/2026 2:16 PM, quadi wrote:
    On Sun, 22 Mar 2026 11:22:36 +0000, Thomas Koenig wrote:

    Ah, that's where the people who furnished the Fountainhead project at
    Data General got their ideas about programming-language dependent
    microcode from.

    IBM did do a lot of things connected with making their computers more powerful by doing stuff in microcode. Much better known than the 360/25 FORTRAN was a project to implement APL in microcode.


    I am ending up on a similar sort of path, but it is more:
    Turn various annoying/expensive edge cases in RISC-V into trap handlers.

    Or, say:
    Slaps hood of RISC-V;
    "You wouldn't believe how many non-free but rarely encountered and
    essentially useless edge cases we fit in there".

    Like, in some cases, it may make sense to impose limits on what is
    allowed, and don't allow something unless allowing it actually has a meaningful value-added.


    But, it sort of represents a transition of sorts:
    Early on: Every instruction in the ISA needs to actually work in full;
    Adds RISC-V, ends up hard-wiring everything, and it pays some cost;
    Recent: Starts pruning stuff back, better to just trap...
    And, maybe emulate if it "does actually happen in practice".
    But, often it doesn't actually happen in practice,
    but the cost of allowing for it in hardware is non-zero.

    ...

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stefan Monnier@monnier@iro.umontreal.ca to comp.arch on Mon Mar 23 15:52:27 2026
    From Newsgroup: comp.arch

    BGB [2026-03-23 14:36:14] wrote:
    Slaps hood of RISC-V;
    "You wouldn't believe how many non-free but rarely encountered and essentially useless edge cases we fit in there".

    I'd be interested to hear about the cases you encountered.


    === Stefan
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From John Levine@johnl@taugh.com to comp.arch on Mon Mar 23 21:10:16 2026
    From Newsgroup: comp.arch

    It appears that quadi <quadibloc@ca.invalid> said:
    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for most
    practical purposes is a dual-core or quad-core cluster "a core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as to cheat >themselves?

    Probably because they have a model that says that getting some money from people
    who buy a larger system is better than getting no money from people who don't.

    They do the same thing on their z mainframes. There is a thing called Integrated Facility for Linux (IFL) which is a regular CPU with a
    microcode tweak so that it can only run linux, not z/OS. An IFL is
    considerably cheaper than a regular CPU even though it's physically
    identical.
    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Mon Mar 23 21:38:47 2026
    From Newsgroup: comp.arch

    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for most
    practical purposes is a dual-core or quad-core cluster "a core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as to cheat themselves?

    If (non-IBM) software is paid for per core by IBM's customers, then
    the IBM customer has an advantage, which is a possible motivation
    to buy IBM hardware, if software license costs dominate.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Mon Mar 23 17:38:24 2026
    From Newsgroup: comp.arch

    On 3/23/2026 2:52 PM, Stefan Monnier wrote:
    BGB [2026-03-23 14:36:14] wrote:
    Slaps hood of RISC-V;
    "You wouldn't believe how many non-free but rarely encountered and
    essentially useless edge cases we fit in there".

    I'd be interested to hear about the cases you encountered.


    JAL and JALR:
    Rd as pretty much anything other than X0 or X1;
    It is cheaper for hardware to hard-wire the link register.


    Most instructions:
    Rd is X0..X3:
    X0/ZR: Most instructions are Hint instructions;
    X1/RA: Mostly doesn't happen (excluding LD)
    X2/SP: Mostly doesn't happen
    X3/GP: Mostly doesn't happen
    X1: Rarely used as an input except for JALR and SD.
    X2: Primarily used as a base register, or adjusted by an ADDI
    X3: Almost exclusively used as a base register.

    For most instructions, can disallow using X1..X3 as inputs.
    Particularly as inputs for Rs2.

    These registers can be treated as special because they may either need
    special handling in the register fetch logic or because it makes sense
    for architectural reasons to have "side-channel access for them".

    Contrast, X4..X31 can be treated as "true GPRs".


    Most other edge cases are more narrow in scope.

    Some others, like "REM*", are just so rarely used as to not be worth
    bothering with supporting natively.

    So, say:
    MULW: Semi-common;
    MUL: Semi-Rare
    DIVW: Semi-Rare
    DIV: Rare
    REMW and REM: Very rare.

    MUL and DIVW are in a gray area:
    Rare enough to make it hard to justify making them fast;
    Too common to justify throwing them to a trap handler.

    REM and REMW cross into the domain where a trap handler starts seeming sane.

    Some LUTS can be saved by narrowing the scope of the Shift-ADD unit to
    not include REM/REMW.

    The 'A' instructions ("AMOxx"):
    Mostly unused in practice.
    May see LR/SC in Mutex handling, but can trap for this.
    Less efficient than using a syscall, but, ...
    These have "noble purpose", but not the same as saying this makes sense.



    F/D:
    Mu original FPU design: Simpler/cheaper
    The RV F/D extensions required adding a bunch of stuff;
    Now I am thinking it makes more sense to go back to a simpler FPU and
    trap on anything that the simple FPU doesn't do natively.

    So, at the ISA level, we want it to look like all of F/D is present and
    works, and implements full IEEE semantics.

    But, what is actually needed here, is more narrow in scope.

    So, "actual FPU":
    FADD/FSUB/FMUL
    DAZ+FTZ
    RNE and RTZ only (with DYN for C land FPU ops)
    ...

    Then pretty much anything else either immediately traps (like FDIV or
    FMADD), or traps based on inputs or outputs:
    Any of the operations encountering a subnormal input;
    Output goes out of range (overflow/underflow);
    Rounding fails for RNE (would carry across too many bits of the mantissa);
    FMUL with low-order input bits as non-zero (in IEEE emulation mode).

    ...


    Or, say:
    RV64I (Mostly)
    M: Partial
    A: Skip (Emulated)
    F/D: Partial
    C: Maybe/Optional (needed for RV64GC).

    Then, just sorta pretend it is RV64G or RV64GC.


    Part of the goal being to find practical ways to reduce costs enough to
    allow use on cheaper FPGA boards (within the limit though that the FPGA
    boards will still need DDR RAM chips or similar). Like, as-is, one needs
    one some the larger chips from the Spartan-7 Artix-7 lines (but, a lot
    of the boards with the smaller Spartan and Artix FPGAs tend to lack RAM chips).

    Well, even if something like an Arty board or Nexys-A7 or similar is
    kinda expensive (say, vs a CMod).

    For cheaper cores, could implement RV64IM and then emulate the rest in
    trap handlers.



    If running an OS like Linux on this, it is likely the case that it will
    not see the "true" hardware level interfaces, but rather that a firmware
    level will first deal with exceptions.

    Hardware exception, first goes to firmware;
    FPU emulation, TLB Miss, etc:
    Firmware deals with it.
    Else:
    Hand it off to OS;
    Mimics the normal RISC-V privileged ISA

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From antispam@antispam@fricas.org (Waldek Hebisch) to comp.arch on Tue Mar 24 04:09:13 2026
    From Newsgroup: comp.arch

    Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:

    Interesting that Power and S390x still persevere. For S390x I expect
    that the customers are not price-sensitive, and lots of legacy code in assembly language tied to some proprietary OS makes porting extra-hard
    and extra-risky. For Power, maybe the AS/400 customers are in a
    similar position. For MIPS, HPPA and SPARC there were lots of Unix
    customers for whom the jump to Linux was not that hard. For Alpha the
    VMS customer base apparently was not captured with enough ties to
    sustain Alpha (or later IA-64).

    My impression was that IBM was biggest player in "business" sector.
    I am not sure what was the size of other vendors, but I saw a lot
    of SPARC-s at universities. However, universities are price and
    performance sensitive and adapt at switching to different hardware,
    so this market was lost to RISC vendors. Business users (at least
    some of them) seem to be willing to pay a lot of money to avoid
    change. So IMO, IBM having largest market was able to cover more
    developement than other vendors. Because IBM was large and had
    tradition of long term support it was seen as safer choice. IIUC
    HPPA had production problems and HP going for IA-64 broke confidence
    in long term viablity of HPPA. I think Alpha had similar situation:
    DEC folded and HP had too many architectures. And HP actively
    tried to migrate customers from Alpha to IA-64. When IA-64 disater
    became clear those customers did not go back for Alpha. As noted
    SPARC had performance problem. I have no first hand experience with
    Power, but various published numbers suggested that it performed
    well. I think that business users who wanted best performace
    from a single box probably believed that Power gives them this.

    I would be not surprised if some Alpha, MIPS, HPPA and SPARC
    customers migrated to Power instead of Intel. Conseqently,
    IBM almost surely lost in number of customers, but could
    even increase monetary value of its market.
    --
    Waldek Hebisch
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Tim Rentsch@tr.17687@z991.linuxsc.com to comp.arch on Mon Mar 23 21:10:06 2026
    From Newsgroup: comp.arch

    John Levine <johnl@taugh.com> writes:

    According to Tim Rentsch <tr.17687@z991.linuxsc.com>:

    quadi <quadibloc@ca.invalid> writes:

    On Tue, 17 Mar 2026 20:18:00 +0000, John Dallman wrote:

    Think about it. If this is possible, the parity checks must be
    implemented by microcode.

    It is true that nearly all System/360 models, except the Model 75 and the >>> 91/95/195, were microcoded.

    There was also the 360/44 if I am not mistaken.

    The 360/44 was an odd machine with a hardware implmentation of a
    scientific subset of the 360's instruction set. It had optional
    priority interrupt and a high speed direct data channel intended for real-time data acquisition and control. It also had a knob to control floating point precision, so you could get less accurate answers
    faster, which I suppose was intended to help tight time budgets in
    real-time calculations.

    No question that the 360/44 was a niche model, and no doubt IBM
    considered it as such.

    I don't think they made very many of them. The 16-bit rack mounted 1800
    was a lot more popular.

    I looked around for some numbers but didn't find any. It's likely
    they were targeted for particular kinds of environments. On the
    other hand IBM kept building and selling them until the early 1970s,
    when the 360 was superseded by the 370.

    Also as it turns out a 360/44 was the machine on which I first
    learned to program, in both Fortran and 360/assembler.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Tue Mar 24 10:41:28 2026
    From Newsgroup: comp.arch

    On Mon, 23 Mar 2026 19:18:49 -0000 (UTC)
    quadi <quadibloc@ca.invalid> wrote:

    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for most practical purposes is a dual-core or quad-core cluster "a core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as to
    cheat themselves?


    Because Oracle on Power is more popular than DB2 on Power.
    They are trying to help their customers to cheat Larry.

    But then there was the famous lawsuit against AMD because in some of
    their older chips, two cores shared one vector unit.

    John Savard

    I don't think that IBM is concerned by such lawsuits. Their lawyers
    were always superb.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Mar 24 11:36:02 2026
    From Newsgroup: comp.arch

    On Tue, 24 Mar 2026 10:41:28 +0200, Michael S wrote:
    On Mon, 23 Mar 2026 19:18:49 -0000 (UTC)
    quadi <quadibloc@ca.invalid> wrote:
    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for most
    practical purposes is a dual-core or quad-core cluster "a core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as to
    cheat themselves?

    Because Oracle on Power is more popular than DB2 on Power.
    They are trying to help their customers to cheat Larry.

    That almost makes sense, although I would be surprised if Oracle couldn't easily deal with this through technical and legal countermeasures.

    As for the AMD lawsuit... AFAIK PowerPC chips don't have anything like the shared vector unit of some AMD chips, so I don't think that IBM's legal
    team even enters the question. This was just a passing comment on why redefining cores might make sense.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Mar 24 11:40:50 2026
    From Newsgroup: comp.arch

    On Mon, 23 Mar 2026 17:38:24 -0500, BGB wrote:

    F/D:
    Mu original FPU design: Simpler/cheaper The RV F/D extensions required
    adding a bunch of stuff;
    Now I am thinking it makes more sense to go back to a simpler FPU and
    trap on anything that the simple FPU doesn't do natively.

    So, at the ISA level, we want it to look like all of F/D is present and works, and implements full IEEE semantics.

    I can't comment on the other RISC-V edge cases, and the principle of
    trapping things that are exremely rare certainly is sound... but depending
    on the usage case of a particular RISC-V implementation, of course,
    anything that heavily uses floating-point is going to encounter denormals often enough so that handling them by trapping is likely to noticeably
    affect performance.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Tue Mar 24 18:12:24 2026
    From Newsgroup: comp.arch

    Thomas Koenig <tkoenig@netcologne.de> writes:
    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for most
    practical purposes is a dual-core or quad-core cluster "a core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as to cheat >> themselves?

    If (non-IBM) software is paid for per core by IBM's customers, then
    the IBM customer has an advantage, which is a possible motivation
    to buy IBM hardware, if software license costs dominate.

    Why would an ISV pay the cost of the Power port and then charge less
    for the license on a similar-capacity machine. My guess is they would
    not. There may be some subsidy from IBM at work, but in the end, IBM
    will charge this cost to the Power customers in one way or another.

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Mar 24 19:19:29 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 3/23/2026 2:52 PM, Stefan Monnier wrote:
    BGB [2026-03-23 14:36:14] wrote:
    Slaps hood of RISC-V;
    "You wouldn't believe how many non-free but rarely encountered and
    essentially useless edge cases we fit in there".

    I'd be interested to hear about the cases you encountered.


    JAL and JALR:
    Rd as pretty much anything other than X0 or X1;
    It is cheaper for hardware to hard-wire the link register.

    They did this because they wanted to put all those STs in prologue
    and all those LDs in epilogue in separate subroutines (ASM with
    multiple entry points).

    Most instructions:
    Rd is X0..X3:
    X0/ZR: Most instructions are Hint instructions;
    X1/RA: Mostly doesn't happen (excluding LD)
    X2/SP: Mostly doesn't happen
    X3/GP: Mostly doesn't happen

    These have to go somewhere::
    a) My 66000 needs no zero register
    b) My 66000 needs no Frame Pointer 90%+ of the time
    c) R0 gets Return address on a call (non-safe-stack mode)
    *CSP-- gets Return address on a safe-stack call
    R0 is a GPR at other times
    R0 is a proxy for IP when used as base register
    RO is a proxy for zero when used as index register

    X1: Rarely used as an input except for JALR and SD.
    X2: Primarily used as a base register, or adjusted by an ADDI
    X3: Almost exclusively used as a base register.

    For most instructions, can disallow using X1..X3 as inputs.
    Particularly as inputs for Rs2.

    So, in effect RISC-V only has 28 GPRs ....

    These registers can be treated as special because they may either need special handling in the register fetch logic or because it makes sense
    for architectural reasons to have "side-channel access for them".

    Contrast, X4..X31 can be treated as "true GPRs".


    Most other edge cases are more narrow in scope.

    Some others, like "REM*", are just so rarely used as to not be worth bothering with supporting natively.

    So, say:
    MULW: Semi-common;
    MUL: Semi-Rare
    Surprising.
    DIVW: Semi-Rare
    DIV: Rare
    REMW and REM: Very rare.
    unsurprising.

    MUL and DIVW are in a gray area:
    Rare enough to make it hard to justify making them fast;
    Too common to justify throwing them to a trap handler.

    Mc 88100 had 4 cycle MUL in 1987--why do less now ??

    REM and REMW cross into the domain where a trap handler starts seeming sane.

    If you have high speed MUL and tolerable speed DIV you can make REM
    only MUL cycles slower than DIV.

    Some LUTS can be saved by narrowing the scope of the Shift-ADD unit to
    not include REM/REMW.

    The 'A' instructions ("AMOxx"):
    Mostly unused in practice.
    May see LR/SC in Mutex handling, but can trap for this.
    Less efficient than using a syscall, but, ...
    These have "noble purpose", but not the same as saying this makes sense.

    I agree that ATOMIC stuff is absolutely necessary !!
    I might disagree that LL/SC is noble.


    F/D:
    Mu original FPU design: Simpler/cheaper
    The RV F/D extensions required adding a bunch of stuff;
    Now I am thinking it makes more sense to go back to a simpler FPU and
    trap on anything that the simple FPU doesn't do natively.

    I used to think that way: now I prefer an FPU that "does everything else" {FDIV, SQRT, SIN, COS, LN, EXP, POW, ATAN, Conversions, ...}

    So, at the ISA level, we want it to look like all of F/D is present and works, and implements full IEEE semantics.

    Finally...

    But, what is actually needed here, is more narrow in scope.

    So, "actual FPU":
    FADD/FSUB/FMUL
    DAZ+FTZ
    That removes the need for IEEE semantics.
    RNE and RTZ only (with DYN for C land FPU ops)
    Err, no.
    ...

    Then pretty much anything else either immediately traps (like FDIV or FMADD), or traps based on inputs or outputs:

    So any calculation with other than RNE and RTZ trap ?!?
    Unworkable.

    Any of the operations encountering a subnormal input;
    Thinking small again.
    Output goes out of range (overflow/underflow);
    Thinking very small again.
    Rounding fails for RNE (would carry across too many bits of the mantissa); FMUL with low-order input bits as non-zero (in IEEE emulation mode).

    So, let me get this right:
    a) you support IEEE 754-2019 semantics
    b) but don't want to actually support IEEE 754-2019 semantics !?!?

    ...


    Or, say:
    RV64I (Mostly)
    M: Partial
    A: Skip (Emulated)
    F/D: Partial
    C: Maybe/Optional (needed for RV64GC).

    Then, just sorta pretend it is RV64G or RV64GC.


    Part of the goal being to find practical ways to reduce costs enough to allow use on cheaper FPGA boards (within the limit though that the FPGA boards will still need DDR RAM chips or similar). Like, as-is, one needs
    one some the larger chips from the Spartan-7 Artix-7 lines (but, a lot
    of the boards with the smaller Spartan and Artix FPGAs tend to lack RAM chips).

    Well, even if something like an Arty board or Nexys-A7 or similar is
    kinda expensive (say, vs a CMod).

    For cheaper cores, could implement RV64IM and then emulate the rest in
    trap handlers.

    A chip with 16 cores is not "core bound" but {PCIe root complex, DRAM controller, L3, intra-chip interconnect, often l2, and Pin interface}
    bound.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Mar 24 14:35:43 2026
    From Newsgroup: comp.arch

    On 3/24/2026 6:40 AM, quadi wrote:
    On Mon, 23 Mar 2026 17:38:24 -0500, BGB wrote:

    F/D:
    Mu original FPU design: Simpler/cheaper The RV F/D extensions required
    adding a bunch of stuff;
    Now I am thinking it makes more sense to go back to a simpler FPU and
    trap on anything that the simple FPU doesn't do natively.

    So, at the ISA level, we want it to look like all of F/D is present and
    works, and implements full IEEE semantics.

    I can't comment on the other RISC-V edge cases, and the principle of
    trapping things that are exremely rare certainly is sound... but depending
    on the usage case of a particular RISC-V implementation, of course,
    anything that heavily uses floating-point is going to encounter denormals often enough so that handling them by trapping is likely to noticeably
    affect performance.


    Potentially it is cause for concern.


    Looking at the stats:
    For Quake (with a generic RISC-V build), at 50 MHz, the IEEE emulation
    handler would trigger roughly 400-500 times per second, which falls
    below the limit of 1000 for "frequent enough to be major cause for concern".

    Checking, roughly 90% of these are due to rounding faults, with the
    remaining 10% due to underflows and subnormals.

    or, around 50 interrupts/second for actual underflow or denormals, which
    is in the same area as the TLB miss rate.


    So:
    Looks like the limited rounding propagation is the bigger issue here;
    A difference between 4 and 8 bit carry propagation limit does not make a strong impact on results (many of the carry propagation failures seem to reflect cases where the carry would need to propagate over a large
    number of bits).

    But, as noted, it is easier (for the HW) to propagate a carry over 4 or
    8 bits, and then give up (either giving the RTZ result or trapping),
    than it is to potentially deal with a carry across all 64 bits.

    There was a possible concern for "FMUL low-order-bits non-zero", but
    this seems to be rare enough to be ignored (rarer than either underflows
    or rounding faults). This models the case where low-order non-zero bits
    in an FMUL could potentially effect the ULP rounding.

    But, yeah, looks like the major-issue scenario in this case is more due
    to the limited carry propagation.



    There is a much lower incidence of hard-misses, due to the absence of
    FDIV and FMADD and similar being used, but this is more because the
    build (via GCC) had already told it not to use these (via command-line options).

    These are the main instructions that pose a bigger risk to performance.

    ...


    Would be N/A to test with Doom or similar, since these don't really use FPU.

    Also can't really test with Quake 3 Arena, because of the case of
    "building stuff that uses TKRA-GL using GCC + RISC-V performs like epic
    dog crap" issue (too slow to be worth messing with).

    Compiling with BGBCC is less applicable in this case as it currently
    defaults to compiling the code in a way which would not use the IEEE
    emulation modes (the code needs to "opt in" to this stuff).

    ...

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Tue Mar 24 13:48:49 2026
    From Newsgroup: comp.arch

    On 3/24/2026 12:35 PM, BGB wrote:
    On 3/24/2026 6:40 AM, quadi wrote:
    On Mon, 23 Mar 2026 17:38:24 -0500, BGB wrote:

    F/D:
    Mu original FPU design: Simpler/cheaper The RV F/D extensions required
    adding a bunch of stuff;
    Now I am thinking it makes more sense to go back to a simpler FPU and
    trap on anything that the simple FPU doesn't do natively.

    So, at the ISA level, we want it to look like all of F/D is present and
    works, and implements full IEEE semantics.

    I can't comment on the other RISC-V edge cases, and the principle of
    trapping things that are exremely rare certainly is sound... but
    depending
    on the usage case of a particular RISC-V implementation, of course,
    anything that heavily uses floating-point is going to encounter denormals
    often enough so that handling them by trapping is likely to noticeably
    affect performance.


    Potentially it is cause for concern.


    Looking at the stats:

    I would be reluctant to assume generality for any statistics where the benchmarks were strictly game programs. There are publicly available
    programs that, I suspect, are different enough from games to give you potentially different results.
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Mar 24 17:40:52 2026
    From Newsgroup: comp.arch

    On 3/24/2026 2:19 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 3/23/2026 2:52 PM, Stefan Monnier wrote:
    BGB [2026-03-23 14:36:14] wrote:
    Slaps hood of RISC-V;
    "You wouldn't believe how many non-free but rarely encountered and
    essentially useless edge cases we fit in there".

    I'd be interested to hear about the cases you encountered.


    JAL and JALR:
    Rd as pretty much anything other than X0 or X1;
    It is cheaper for hardware to hard-wire the link register.

    They did this because they wanted to put all those STs in prologue
    and all those LDs in epilogue in separate subroutines (ASM with
    multiple entry points).

    I do this, but via a different approach:
    MOV X1 into a different register and then JAL to a the shared prolog;
    GCC doesn't do this at all;
    So, it turns into a feature that isn't actually used,
    and requires paying the non-zero cost of generic LR forwarding.



    Most instructions:
    Rd is X0..X3:
    X0/ZR: Most instructions are Hint instructions;
    X1/RA: Mostly doesn't happen (excluding LD)
    X2/SP: Mostly doesn't happen
    X3/GP: Mostly doesn't happen

    These have to go somewhere::
    a) My 66000 needs no zero register
    b) My 66000 needs no Frame Pointer 90%+ of the time
    c) R0 gets Return address on a call (non-safe-stack mode)
    *CSP-- gets Return address on a safe-stack call
    R0 is a GPR at other times
    R0 is a proxy for IP when used as base register
    RO is a proxy for zero when used as index register


    For RISC-V and XG3, X0 is the Zero-Register.
    For XG3, using ZR as a base is understood as PC-rel.

    For XG1/XG2, R1 was understood as GBR, but for XG3 this is redundant
    with X3, so I have mostly ended up using X3 instead when X3 is intended
    (with the tweak of supporting non-scaled Disp33 displacements).


    For RV encodings, can't really do this as there is seemingly a need to
    use this case for Absolute Address.

    Could maybe make a case for X1 with RISC-V encodings being used for PC-rel.


    X1: Rarely used as an input except for JALR and SD.
    X2: Primarily used as a base register, or adjusted by an ADDI
    X3: Almost exclusively used as a base register.

    For most instructions, can disallow using X1..X3 as inputs.
    Particularly as inputs for Rs2.

    So, in effect RISC-V only has 28 GPRs ....


    Yes, of which 12 are callee saved...

    I did evaluate it, and noted that the balance:
    4 SPRs
    1 ABI Reserved (TP)
    15 scratch;
    12 callee saved.
    Was "sane enough" for the base registers.

    I did end up doing the "move F4..F7 over to being callee-save" thing, as
    in the combined space:
    5+31+28
    Was a better balance than:
    5+35+24

    In terms of implementation, TP is treated as a GPR though (since its
    role is mostly ABI related).


    I left F0..F3 as-is mostly because BGBCC was using them as "FPU stomp registers".

    Where, my compiler was using both X5..X7 and F0..F3 as stomp registers
    (which may be stomped without warning whenever dealing with a "pseudo-instruction" and as such the compiler's register allocator and
    similar is not allowed to assume that these registers can safely hold a
    value between instructions).


    These registers can be treated as special because they may either need
    special handling in the register fetch logic or because it makes sense
    for architectural reasons to have "side-channel access for them".

    Contrast, X4..X31 can be treated as "true GPRs".


    Most other edge cases are more narrow in scope.

    Some others, like "REM*", are just so rarely used as to not be worth
    bothering with supporting natively.

    So, say:
    MULW: Semi-common;
    MUL: Semi-Rare
    Surprising.
    DIVW: Semi-Rare
    DIV: Rare
    REMW and REM: Very rare.
    unsurprising.

    MUL and DIVW are in a gray area:
    Rare enough to make it hard to justify making them fast;
    Too common to justify throwing them to a trap handler.

    Mc 88100 had 4 cycle MUL in 1987--why do less now ??


    MULW (32-bit) is fast, mostly for sake of DSPs allowing for fast 32-bit multiply.


    MUL (64-bit) is harder to make fast...
    This is a pretty big ask for the DSPs.
    Shift-and-ADD works, but is slower.

    There isn't really a good intermediate option.


    REM and REMW cross into the domain where a trap handler starts seeming sane.

    If you have high speed MUL and tolerable speed DIV you can make REM
    only MUL cycles slower than DIV.


    Doing REM as DIV+MUL+SUB works good enough in practice.
    REM being so rarely used that there isn't much reason to care...

    While arguably the same Shift-and-ADD unit that does MUL/DIV can also do
    REM, it is debatable whether REM is even common enough to justify the additional LUT cost in the shift and ADD unit, vs just trapping.


    DIV is more common, but not quite enough to fall into the "common enough
    to make fast" case, nor rare enough to justify trapping. If you had a
    500 to 1000 cycle DIV, programs will notice...


    Hot patching DIV/REM/etc can make sense though (since the performance
    impact of a hot-patch is less than a trap for a semi-common event).



    Some LUTS can be saved by narrowing the scope of the Shift-ADD unit to
    not include REM/REMW.

    The 'A' instructions ("AMOxx"):
    Mostly unused in practice.
    May see LR/SC in Mutex handling, but can trap for this.
    Less efficient than using a syscall, but, ...
    These have "noble purpose", but not the same as saying this makes sense. >>
    I agree that ATOMIC stuff is absolutely necessary !!
    I might disagree that LL/SC is noble.

    There is only a small subset of AMO that "actually makes sense", namely
    the ability to to an Atomic Exchange.


    The rest of 'A' being a case of:
    Could almost be used like x86 Load-Op or Op-Store, except not;
    Has basically the same implementation cost as doing these for ALU ops;
    But, without the same useful benefits.
    GCC doesn't use them, and most code has no reason to use them.

    If emulated, they may still appear atomic from the POV of the application:
    Not exactly like it can be preempted in the middle of an interrupt.

    The interrupt handler can deal with the mess of trying to make it appear atomic in the external RAM map.




    F/D:
    Mu original FPU design: Simpler/cheaper
    The RV F/D extensions required adding a bunch of stuff;
    Now I am thinking it makes more sense to go back to a simpler FPU and
    trap on anything that the simple FPU doesn't do natively.

    I used to think that way: now I prefer an FPU that "does everything else" {FDIV, SQRT, SIN, COS, LN, EXP, POW, ATAN, Conversions, ...}

    So, at the ISA level, we want it to look like all of F/D is present and
    works, and implements full IEEE semantics.

    Finally...


    At this stage, I am not saying that one doesn't have it at the ISA
    level, but it is harder to justify it at the hardware level.

    I at some point reached a limit of realizing:
    These are not one any the same.


    And that there are "some" ways to "have your cake and eat it too"
    regarding ISA features that don't really exist in the underlying hardware.

    Not necessarily elegant, or entirely transparent, but yeah.


    But, what is actually needed here, is more narrow in scope.

    So, "actual FPU":
    FADD/FSUB/FMUL
    DAZ+FTZ
    That removes the need for IEEE semantics.
    RNE and RTZ only (with DYN for C land FPU ops)
    Err, no.
    ...

    Then pretty much anything else either immediately traps (like FDIV or
    FMADD), or traps based on inputs or outputs:

    So any calculation with other than RNE and RTZ trap ?!?
    Unworkable.


    DYN may work if the rounding mode in the control register is RNE or RTZ.
    Else trap.

    Seems typically programs never change it to anything other than RNE.


    Any of the operations encountering a subnormal input;
    Thinking small again.
    Output goes out of range (overflow/underflow);
    Thinking very small again.
    Rounding fails for RNE (would carry across too many bits of the mantissa); >> FMUL with low-order input bits as non-zero (in IEEE emulation mode).

    So, let me get this right:
    a) you support IEEE 754-2019 semantics
    b) but don't want to actually support IEEE 754-2019 semantics !?!?


    ISA pretends to support 754-2019 semantics...
    CPU doesn't actually support 754-2019 semantics...


    So, solution:
    Traps and hot-patching to turn it all into JITted code that awkwardly
    pretends to support 754-2019 semantics...

    And, hardware then mostly needs to be able to help out with the
    emulation, without overly exposing its terribleness in ways that are
    visible to the application.


    Which, admittedly, is potentially kinda crap from a performance POV, but
    does "scale down" nicely (as well as scaling up to more capable implementations).


    And, it can scale up:
    If one has the resource budget to afford a better FPU, one can do so,
    and performance benefits more so than had runtime calls been used.

    But, granted, runtime-calls with soft-patching (via function pointers)
    can perform better than "trap and hot patch" in cases where one knows
    the CPU is unlikely to have a feature in hardware.

    And, for better results, it still helps if the compiler produces some
    amount of hot-patching zones (designated by specific patterns) which are intended for the trap-handles to have places to patch over the "likely
    needing to be emulated" instructions (to patch over instructions in
    RISC-V, one generally needing a space within the JAL range with which to
    deal with branching to wherever the JIT traces will be located).


    Though, statistically speaking, most ".text" sections are less than 1MB,
    so for ELF binaries one can prefix them with a few pages worth of space
    (and "probably" have something in range), which then branches off to
    some other area of memory holding the JIT compiled instruction traces.


    sadly, doesn't deal with sporadic events, like rounding failures, where
    the average-case cost of a hot-patch and detection logic would likely
    exceed the average case of trapping every time.


    Things like "Pseudo-Q" and RV-V could lean heavily into this, likely
    doing per-trace JIT compilation (turning the RV-V into something the CPU
    can actually handle).


    As for how this would handle multiple levels:
    UEFI => Linux => Application
    Is less obvious.

    The UEFI level could manage low-level memory management, but the Linux
    Kernel would still have control over things like context switches and
    virtual memory. And any patching the firmware does would need to be transparent as far as an OS like Linux were concerned (and may not
    appreciate if the firmware was overwriting application-level
    instructions with JALs).

    So, generic case would still need to be trap-and-emulate.

    ...



    ...


    Or, say:
    RV64I (Mostly)
    M: Partial
    A: Skip (Emulated)
    F/D: Partial
    C: Maybe/Optional (needed for RV64GC).

    Then, just sorta pretend it is RV64G or RV64GC.


    Part of the goal being to find practical ways to reduce costs enough to
    allow use on cheaper FPGA boards (within the limit though that the FPGA
    boards will still need DDR RAM chips or similar). Like, as-is, one needs
    one some the larger chips from the Spartan-7 Artix-7 lines (but, a lot
    of the boards with the smaller Spartan and Artix FPGAs tend to lack RAM
    chips).

    Well, even if something like an Arty board or Nexys-A7 or similar is
    kinda expensive (say, vs a CMod).

    For cheaper cores, could implement RV64IM and then emulate the rest in
    trap handlers.

    A chip with 16 cores is not "core bound" but {PCIe root complex, DRAM controller, L3, intra-chip interconnect, often l2, and Pin interface}
    bound.

    No...

    But trying to fit a single core with a non-awful FPU into an FPGA with
    33k LUTs is an issue...


    And, if you can afford 40 or 45 kLUT for the CPU core, can probably
    afford a "less bad" FPU.

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Mar 24 18:09:55 2026
    From Newsgroup: comp.arch

    On 3/24/2026 3:48 PM, Stephen Fuld wrote:
    On 3/24/2026 12:35 PM, BGB wrote:
    On 3/24/2026 6:40 AM, quadi wrote:
    On Mon, 23 Mar 2026 17:38:24 -0500, BGB wrote:

    F/D:
    Mu original FPU design: Simpler/cheaper The RV F/D extensions required >>>> adding a bunch of stuff;
    Now I am thinking it makes more sense to go back to a simpler FPU and
    trap on anything that the simple FPU doesn't do natively.

    So, at the ISA level, we want it to look like all of F/D is present and >>>> works, and implements full IEEE semantics.

    I can't comment on the other RISC-V edge cases, and the principle of
    trapping things that are exremely rare certainly is sound... but
    depending
    on the usage case of a particular RISC-V implementation, of course,
    anything that heavily uses floating-point is going to encounter
    denormals
    often enough so that handling them by trapping is likely to noticeably
    affect performance.


    Potentially it is cause for concern.


    Looking at the stats:

    I would be reluctant to assume generality for any statistics where the benchmarks were strictly game programs.  There are publicly available programs that, I suspect, are different enough from games to give you potentially different results.


    Maybe...

    Are you thinking I should try porting LINPACK or similar?...
    Or something like ODE or Bullet?...
    ...


    Many other options being closed/proprietary, or having dependencies
    which I am not inclined to try porting (like Python or Racket).


    I guess one option (for pushing floating-point and maybe stepping on
    more IEEE edge cases more often) could be to run a naive floating-point implementation of a FFT (Fast Fourier Transform) or similar (probably at double precision).

    ...

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Tue Mar 24 16:33:52 2026
    From Newsgroup: comp.arch

    On 3/24/2026 4:09 PM, BGB wrote:
    On 3/24/2026 3:48 PM, Stephen Fuld wrote:
    On 3/24/2026 12:35 PM, BGB wrote:
    On 3/24/2026 6:40 AM, quadi wrote:
    On Mon, 23 Mar 2026 17:38:24 -0500, BGB wrote:

    F/D:
    Mu original FPU design: Simpler/cheaper The RV F/D extensions required >>>>> adding a bunch of stuff;
    Now I am thinking it makes more sense to go back to a simpler FPU and >>>>> trap on anything that the simple FPU doesn't do natively.

    So, at the ISA level, we want it to look like all of F/D is present >>>>> and
    works, and implements full IEEE semantics.

    I can't comment on the other RISC-V edge cases, and the principle of
    trapping things that are exremely rare certainly is sound... but
    depending
    on the usage case of a particular RISC-V implementation, of course,
    anything that heavily uses floating-point is going to encounter
    denormals
    often enough so that handling them by trapping is likely to noticeably >>>> affect performance.


    Potentially it is cause for concern.


    Looking at the stats:

    I would be reluctant to assume generality for any statistics where the
    benchmarks were strictly game programs.  There are publicly available
    programs that, I suspect, are different enough from games to give you
    potentially different results.


    Maybe...

    Are you thinking I should try porting LINPACK or similar?...
    Or something like ODE or Bullet?...

    This is not my area of expertise, but I know there are people here who
    can make better suggestions than I can. The goal is to get the usage
    stats he is looking for that is beyond the realm of games that he has
    been using. Preferably something that is freely available and relatively generalized.

    So, people, what would you recommend for BGB to use for FP testing?
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Mar 25 01:20:38 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 3/24/2026 2:19 PM, MitchAlsup wrote:
    -------------------------

    Mc 88100 had 4 cycle MUL in 1987--why do less now ??


    MULW (32-bit) is fast, mostly for sake of DSPs allowing for fast 32-bit multiply.


    MUL (64-bit) is harder to make fast...

    64×64 integer multiply is 1 gate delay slower than 32×32 (except
    for wire delay due to size) it is YOUR implementation technology
    that so distorts your view.

    This is a pretty big ask for the DSPs.
    Shift-and-ADD works, but is slower.

    There isn't really a good intermediate option.

    use something other than FPGA.
    ------------------------
    At this stage, I am not saying that one doesn't have it at the ISA
    level, but it is harder to justify it at the hardware level.

    In 3nm a GBOoO core with its L2 and interconnect interface is right
    around 1mm^2 ...
    -----------------
    But trying to fit a single core with a non-awful FPU into an FPGA with
    33k LUTs is an issue...

    So myopic...


    And, if you can afford 40 or 45 kLUT for the CPU core, can probably
    afford a "less bad" FPU.

    One can afford 200,000,000 transistor cores these days.
    It is YOUR medium that distorts YOUR PoV.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Mar 25 01:21:32 2026
    From Newsgroup: comp.arch


    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP testing?

    SPEC FP.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Tue Mar 24 18:37:31 2026
    From Newsgroup: comp.arch

    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP testing?

    SPEC FP.


    Is there a version of SPEC FP that is available for free? I get the impression that BGB doesn't have a lot of money to spend on such things.
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Wed Mar 25 02:47:48 2026
    From Newsgroup: comp.arch

    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP testing?

    SPEC FP.


    Is there a version of SPEC FP that is available for free?  I get the impression that BGB doesn't have a lot of money to spend on such things.


    Yeah, and not going to use a proprietary benchmark here...


    Did go and test running double-precision FFT, but found that its results
    were even more strongly biased into rounding-miss handling; and at a
    rate high enough to be worth caring about (would spend around 4% of the
    CPU time in the trap handlers).

    And, in this case, the rounding miss case dominates by around 99%.



    I guess one possibility could be to test some algorithms which are
    designed to exploit some of the weaker cases, such as generating a lot
    of denormals, and/or doing a lot of FDIV, mostly as this is currently
    also likely to step on the weak cases.

    Well, and presumably something more realistic than just "divide small
    numbers by very big numbers a bunch of times in a loop and add all the
    results together". Could step on the slow cases a lot, but by itself
    wouldn't represent a particularly realistic use-case.

    Though, do a multiply-accumulate loop with a bunch of very tiny but
    non-zero scale factors could make sense.



    At present, does look like rounding-miss handling is actually the bigger
    area of concern (and I will probably actually need to address this one
    in hardware).


    And also that in many of the places where it would occur, it would
    happen across a significant number of bits.

    To avoid this, would likely need to figure out a cheap low-latency way
    to do the carry propagation.

    TBD, if done (possibly as a dedicated module), could maybe try to
    combine it with the "set mantissa to 0" logic.

    So, there could be a 2-bit input state, say:
    00: Output value is the input;
    01: Output value is the input, but incremented;
    10: Output clears everything to 0;
    11: output clears mantissa to 0s, sets exponent all 1s (Inf).


    Likely option is carry-select, but could make sense to use smaller
    chunking (8 or 12 bits)? And, get a little more wacky with the
    carry-chain handling (such as feeding all the carry bits into a big
    casez to generate the selector bits for each 8-bit chunk).

    Then, unclear if a fan-in, fan-out shape would be better for timing than
    the more traditional "chain of 1 bit MUXing" approach.

    But, as noted, there was often a need for a special case for "output
    went out of range, set mantissa to 0", and it is possible that the
    module could also address this scenario, which also typically introduces
    its own MUX (*).

    *: Though, could be side-stepped if zero handling was turned into
    "exponent is zero, mantissa holds random garbage, and Inf no longer
    exists" but this is a little "too cheap".


    ...

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Wed Mar 25 07:50:55 2026
    From Newsgroup: comp.arch

    I've added another header type to the basic architecture.
    I had a "zero-overhead" way to indicate how many 32-bit words at the end
    of a block are reserved for data; the three bits required to do that, plus
    the overhead bits to indicate the block began with a block header, left
    room for a simple register-to-register operate instruction.
    But what if your next instruction has to be a memory-reference instruction instead? Do you have to use a whole 32-bit header just to include three
    bits of information?
    Finally, I came up with a solution. The new header type is 64 bits long.
    That distributes the overhead bits between two instructions, so now both
    of the instructions embedded in the header can be either a register-to- register operate instruction, or a restricted memory-reference instruction.
    Of course, those restrictions mean that it still wouldn't be trivial for a compiler to generate code that has pseudo-immediates and yet doesn't lose
    32 bits for a header in each block where they appear.
    I felt it was still worth doing to provide a mechanism for avoiding
    punitive overhead costs, even if it was no panacea; it would be there for programmers to take advantage of when they could.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Wed Mar 25 11:24:00 2026
    From Newsgroup: comp.arch

    In article <10pt2p7$108s0$1@paganini.bofh.team>, antispam@fricas.org
    (Waldek Hebisch) wrote:

    IIUC HPPA had production problems and HP going for IA-64 broke
    confidence in long term viablity of HPPA.

    HP were quite clear that IA-64 was replacing PA-RISC. There was a gradual transition of available machines and several versions of HP-UX supported
    both architectures. If IA-64 had been a good architecture, it would all
    have gone reasonably smoothly. However, it has killed off HP-UX, and HP
    now offer Linux on their biggest machines, which are x86-64.

    I think Alpha had similar situation: DEC folded and HP had too
    many architectures.

    DEC was bought by Compaq, and Compaq terminated Alpha development. Then
    HP bought Compaq and sold the Alpha IP and remaining development teams to Intel.

    And HP actively tried to migrate customers from Alpha to IA-64.
    When IA-64 disater became clear those customers did not go back
    for Alpha.

    Going back to Alpha wasn't practical. Depending on when they decided to
    give up on IA-64, they might have had some obsolete systems still
    available, or no systems at all.

    x86-64 Linux took most of those customers because it was available, cheap
    and effective.

    I have no first hand experience with Power, but various published
    numbers suggested that it performed well.

    It certainly did at the time; I don't have experience with the recent generations, because my customers stopped wanting it.

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Mar 25 18:03:51 2026
    From Newsgroup: comp.arch


    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP testing?

    SPEC FP.


    Is there a version of SPEC FP that is available for free?

    There should be !

    I get the impression that BGB doesn't have a lot of money to spend on such things.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Wed Mar 25 18:31:40 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP testing?

    SPEC FP.


    Is there a version of SPEC FP that is available for free?  I get the
    impression that BGB doesn't have a lot of money to spend on such things.


    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark , Whetstone https://www.netlib.org/benchmark/whetstone.c , Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench https://github.com/embench/embench-iot .
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Wed Mar 25 20:31:35 2026
    From Newsgroup: comp.arch

    Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
    Thomas Koenig <tkoenig@netcologne.de> writes:
    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for most
    practical purposes is a dual-core or quad-core cluster "a core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as to cheat >>> themselves?

    If (non-IBM) software is paid for per core by IBM's customers, then
    the IBM customer has an advantage, which is a possible motivation
    to buy IBM hardware, if software license costs dominate.

    Why would an ISV pay the cost of the Power port and then charge less
    for the license on a similar-capacity machine.

    They pay per core. If the core happens to have 8-way multithreading
    and has more performance because of that - well, that's what hardware
    vendors have to deal with.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Wed Mar 25 13:59:02 2026
    From Newsgroup: comp.arch

    On 3/25/2026 11:31 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP testing?

    SPEC FP.


    Is there a version of SPEC FP that is available for free?  I get the
    impression that BGB doesn't have a lot of money to spend on such things. >>>

    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark , Whetstone https://www.netlib.org/benchmark/whetstone.c , Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would respond.
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Wed Mar 25 23:05:15 2026
    From Newsgroup: comp.arch

    On Wed, 25 Mar 2026 20:31:35 -0000 (UTC)
    Thomas Koenig <tkoenig@netcologne.de> wrote:

    Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
    Thomas Koenig <tkoenig@netcologne.de> writes:
    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for
    most practical purposes is a dual-core or quad-core cluster "a
    core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as
    to cheat themselves?

    If (non-IBM) software is paid for per core by IBM's customers, then
    the IBM customer has an advantage, which is a possible motivation
    to buy IBM hardware, if software license costs dominate.

    Why would an ISV pay the cost of the Power port and then charge less
    for the license on a similar-capacity machine.

    They pay per core. If the core happens to have 8-way multithreading
    and has more performance because of that - well, that's what hardware
    vendors have to deal with.


    Didn' you mean "software vendors have to deal with" ?
    In case of Oracle, they certainly fight back, by charging more per
    each POWER core than per other types of cores. But they can not charge
    too much, because there exists competition, including from IBM
    themselves (DB2).

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Wed Mar 25 21:11:03 2026
    From Newsgroup: comp.arch

    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 20:31:35 -0000 (UTC)
    Thomas Koenig <tkoenig@netcologne.de> wrote:

    Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
    Thomas Koenig <tkoenig@netcologne.de> writes:
    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for
    most practical purposes is a dual-core or quad-core cluster "a
    core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as
    to cheat themselves?

    If (non-IBM) software is paid for per core by IBM's customers, then
    the IBM customer has an advantage, which is a possible motivation
    to buy IBM hardware, if software license costs dominate.

    Why would an ISV pay the cost of the Power port and then charge less
    for the license on a similar-capacity machine.

    They pay per core. If the core happens to have 8-way multithreading
    and has more performance because of that - well, that's what hardware
    vendors have to deal with.


    Didn' you mean "software vendors have to deal with" ?

    Yes.

    In case of Oracle, they certainly fight back, by charging more per
    each POWER core than per other types of cores. But they can not charge
    too much, because there exists competition, including from IBM
    themselves (DB2).

    At least there's *some* competition going on...

    It must have been a heavy blow for IBM when SAP moved exclusively
    to their own database (and away from mainframes).
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Wed Mar 25 23:12:19 2026
    From Newsgroup: comp.arch

    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:
    On 3/25/2026 11:31 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP
    testing?
    SPEC FP.


    Is there a version of SPEC FP that is available for free? I get
    the impression that BGB doesn't have a lot of money to spend on
    such things.

    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c , Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would
    respond.

    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys. That's why SPEC was so successful
    when they published their first suite in 1989.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Wed Mar 25 16:13:38 2026
    From Newsgroup: comp.arch

    On 3/25/2026 1:31 PM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP testing?

    SPEC FP.


    Is there a version of SPEC FP that is available for free?  I get the
    impression that BGB doesn't have a lot of money to spend on such things. >>>

    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark , Whetstone https://www.netlib.org/benchmark/whetstone.c , Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench https://github.com/embench/embench-iot .



    Will look into it...


    So, Whetstone reports 9.1 MIPs for an RV64 build (GCC).
    Also reports 9.1 when built for XG3 with BGBCC.

    So, compiler and ISA choice doesn't seem to strongly influence this case.

    So, apparently 0.182 MWIPS/MHz.

    Checking: Jumps to 12.5 MIPS (0.25 MWIPS/MHz) if I drop to single
    precision (and single precision versions of the C math functions, which
    are still "double" internally just typically using fewer N-R stages and
    Taylor expansions).


    Apparently this is "in the general area" of a lot of 90s era machines...

    Checking stats:
    This one would also be highly rounding-dominated.



    In other news, the rounding situation was bad enough that I went and implemented a full-width low-latency rounding module, and FPGA timing
    has survived.

    <===

    /*
    Attempt at a low-latency FP64 Rounding Module.

    Mode:
    00: Pass input unchanged.
    01: Round input up
    10: Zero
    11: Overflowed to Infinity.
    */

    `ifndef HAS_JX2FPUDOROUND64_D
    `define HAS_JX2FPUDOROUND64_D

    module FpuDoRound64(valOut, valIn, mode);

    input[63:0] valIn;
    output[63:0] valOut;
    input[1:0] mode;

    reg[8:0] tValRndA0p;
    reg[8:0] tValRndA1p;
    reg[8:0] tValRndA2p;
    reg[8:0] tValRndA3p;
    reg[8:0] tValRndA4p;
    reg[8:0] tValRndA5p;
    reg[8:0] tValRndA6p;
    reg[8:0] tValRndA7p;

    reg[7:0] tValRndCp;
    reg[15:0] tValRndSm;

    reg[63:0] tValOut;
    assign valOut = tValOut;


    always @*
    begin
    tValRndA0p = { 1'b0, valIn[ 7: 0] } + 1;
    tValRndA1p = { 1'b0, valIn[15: 8] } + 1;
    tValRndA2p = { 1'b0, valIn[23:16] } + 1;
    tValRndA3p = { 1'b0, valIn[31:24] } + 1;
    tValRndA4p = { 1'b0, valIn[39:32] } + 1;
    tValRndA5p = { 1'b0, valIn[47:40] } + 1;
    tValRndA6p = { 1'b0, valIn[55:48] } + 1;
    tValRndA7p = { 1'b0, valIn[63:56] } + 1;

    tValRndCp = {
    tValRndA7p[8], tValRndA6p[8],
    tValRndA5p[8], tValRndA4p[8],
    tValRndA3p[8], tValRndA2p[8],
    tValRndA1p[8], tValRndA0p[8] };

    casez( { tValRndCp, mode } )
    10'bzzzzzzzz00: tValRndSm=16'b0000_0000_0000_0000;
    10'bzzzzzzz001: tValRndSm=16'b0000_0000_0000_0001;
    10'bzzzzzz0101: tValRndSm=16'b0000_0000_0000_0101;
    10'bzzzzz01101: tValRndSm=16'b0000_0000_0001_0101;
    10'bzzzz011101: tValRndSm=16'b0000_0000_0101_0101;
    10'bzzz0111101: tValRndSm=16'b0000_0001_0101_0101;
    10'bzz01111101: tValRndSm=16'b0000_0101_0101_0101;
    10'bz011111101: tValRndSm=16'b0001_0101_0101_0101;
    10'b0111111101: tValRndSm=16'b0101_0101_0101_0101;
    10'b1111111101: tValRndSm=16'b1101_0101_0101_0101;
    10'bzzzzzzzz10: tValRndSm=16'b1010_1010_1010_1010;
    10'bzzzzzzzz11: tValRndSm=16'b1111_1010_1010_1010;
    endcase

    case(tValRndSm[1:0])
    2'b00: tValOut[7:0]=valIn[7:0];
    2'b01: tValOut[7:0]=tValRndA0p[7:0];
    default: tValOut[7:0]=8'h00;
    endcase
    case(tValRndSm[3:2])
    2'b00: tValOut[15:8]=valIn[15:8];
    2'b01: tValOut[15:8]=tValRndA1p[7:0];
    default: tValOut[15:8]=8'h00;
    endcase
    case(tValRndSm[5:4])
    2'b00: tValOut[23:16]=valIn[23:16];
    2'b01: tValOut[23:16]=tValRndA2p[7:0];
    default: tValOut[23:16]=8'h00;
    endcase
    case(tValRndSm[7:6])
    2'b00: tValOut[31:24]=valIn[31:24];
    2'b01: tValOut[31:24]=tValRndA3p[7:0];
    default: tValOut[31:24]=8'h00;
    endcase
    case(tValRndSm[9:8])
    2'b00: tValOut[39:32]=valIn[39:32];
    2'b01: tValOut[39:32]=tValRndA4p[7:0];
    default: tValOut[39:32]=8'h00;
    endcase
    case(tValRndSm[11:10])
    2'b00: tValOut[47:40]=valIn[47:40];
    2'b01: tValOut[47:40]=tValRndA5p[7:0];
    default: tValOut[47:40]=8'h00;
    endcase

    case(tValRndSm[13:12])
    2'b00: tValOut[55:48]=valIn[55:48];
    2'b01: tValOut[55:48]=tValRndA6p[7:0];
    2'b10: tValOut[55:48]=8'h00;
    2'b11: tValOut[55:48]=8'hF0;
    endcase

    case(tValRndSm[15:14])
    2'b00: tValOut[63:56]=valIn[63:56];
    2'b01: tValOut[63:56]=tValRndA7p[7:0];
    2'b10: tValOut[63:56]=8'h00;
    2'b11: tValOut[63:56]={ valIn[63], 7'h7F };
    endcase
    end

    endmodule

    `endif




    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Wed Mar 25 16:29:56 2026
    From Newsgroup: comp.arch

    On 3/25/2026 4:12 PM, Michael S wrote:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:

    On 3/25/2026 11:31 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP
    testing?
    SPEC FP.


    Is there a version of SPEC FP that is available for free?  I get
    the impression that BGB doesn't have a lot of money to spend on
    such things.

    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c , Dhrystone
    https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would
    respond.


    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys. That's why SPEC was so successful
    when they published their first suite in 1989.

    But, you don't need to pay for Dhrystone or Whetstone or similar...

    I would imagine the situation for getting SPEC for a custom machine is
    not so cheap or easy.


    I had been running a different version of Dhrystone (2.1) vs the linked
    2.2a (apparently).

    Typical Dhrystone scores came out between around 70k and 90k (0.8 to
    1.02 DMIPS/MHz). This particular needle hasn't moved much in a while,
    and variance tends mostly to be about things like minor compiler tweaks
    making things faster or slower (with minor variation between ISA modes).


    Note yet looked into porting CoreMark or similar.

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Wed Mar 25 22:34:44 2026
    From Newsgroup: comp.arch

    Thomas Koenig wrote:
    Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
    Thomas Koenig <tkoenig@netcologne.de> writes:
    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 03:28:36 +0200, Michael S wrote:

    POWER tries to minimize software licensing expenses.
    Including by playing dirty game of calling something that for most
    practical purposes is a dual-core or quad-core cluster "a core".

    I'm a bit puzzled. Why would IBM design their PowerPC chips so as to cheat >>>> themselves?

    If (non-IBM) software is paid for per core by IBM's customers, then
    the IBM customer has an advantage, which is a possible motivation
    to buy IBM hardware, if software license costs dominate.

    Why would an ISV pay the cost of the Power port and then charge less
    for the license on a similar-capacity machine.

    My last-1 job before I retired was as CTO of Open iT, which actually
    madk a very good living out of gathering debug information from license servers and then letting customers use that to optimize the number of
    actual licenses they needed.

    Paying per core can easily cost so much for some of these codes that you
    will replace a one or two-year old server/workstation with one with
    better performance/core: The licence savings from needing fewer cores
    can make the payback time very short.

    That said, if you are in such a situation (think big manufacturing of
    cars or planes), those license costs are typically so high that a full
    Open iT installation, including initial installation, tuning and courses
    on how to run them, had a 20x return on investment for just the first year.

    I.e
    Not installing Open iT or one of our competitors is very stupid.

    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Thu Mar 26 11:02:18 2026
    From Newsgroup: comp.arch

    On Wed, 25 Mar 2026 07:50:55 +0000, quadi wrote:

    Finally, I came up with a solution. The new header type is 64 bits long.
    That distributes the overhead bits between two instructions, so now both
    of the instructions embedded in the header can be either a register-to- register operate instruction, or a restricted memory-reference
    instruction.

    However, the opcode space I used for that new header type turned out to be already in use for 15-bit short instructions. However, I was able to fix
    this problem, and doing so was considerably easier than I had feared.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Thu Mar 26 11:16:27 2026
    From Newsgroup: comp.arch

    On Thu, 26 Mar 2026 11:02:18 +0000, quadi wrote:

    However, the opcode space I used for that new header type turned out to
    be already in use for 15-bit short instructions. However, I was able to
    fix this problem, and doing so was considerably easier than I had
    feared.

    And then I saw an obvious tweak so that opcode space would be less
    fragmented.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Thu Mar 26 20:00:22 2026
    From Newsgroup: comp.arch

    On Sun, 22 Mar 2026 08:31:25 +0000, Anton Ertl wrote:

    It is based on the assumption that System i (if that is this week's name
    for AS/400) has enough margin to pay for Power development, while
    RS/6000 (whatever its current name is) competes head-on with Intel and
    AMD servers in the Linux and pretty much also in the AIX markets. My
    guess is that IBM charges very little or nothing of Power development to RS/6000, but while it is available thanks to System i, they sell it;
    even if they made no profits on that, one benefit would be the marketing aspect of supporting the architecture that long, longer than all the competitors from the 1990s).

    I have no numbers to support my guesses, but the fact that Power is
    still there while everything else including SPARC has been cancelled
    makes me doubt that the AIX and Linux business are keeping Power alive.

    I am certainly in full agreement with your analysis.

    For the moment, System z has not yet gone the way of the Unisys
    mainframes, and so it isn't made as software running on PowerPC
    hardware... but that day may yet come.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Thu Mar 26 20:29:47 2026
    From Newsgroup: comp.arch

    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:

    On 3/25/2026 11:31 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP
    testing?
    SPEC FP.


    Is there a version of SPEC FP that is available for free?  I get
    the impression that BGB doesn't have a lot of money to spend on
    such things.

    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c , Dhrystone
    https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would
    respond.


    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys.

    Coremark was initially developed in 2009 (17 years ago), embench
    in 2019 (a bit less than seven years ago). If somebody recognized
    them as toys 37 years ago, they had access to a time machine.

    For Dhrystone and Whetstone - interesting for historical comparisons
    and if/when the compiler does not optimize too aggresively. Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).

    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC: First, it is paywalled.
    Second, they refuse to change sources or their verification
    conditions even when the code is wrong, and depends (for example)
    on re-ordering of an expression that compilers are allowed to do.
    They would rather pessimize everybody else's code.

    It is useful if run continuosly to catch regressions, especially
    speed, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163 .
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Thu Mar 26 22:24:22 2026
    From Newsgroup: comp.arch

    Thomas Koenig <tkoenig@netcologne.de> writes:
    Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
    Why would an ISV pay the cost of the Power port and then charge less
    for the license on a similar-capacity machine.

    They pay per core. If the core happens to have 8-way multithreading
    and has more performance because of that - well, that's what hardware
    vendors have to deal with.

    That's not an answer to my question. The ISVs can charge on whatever
    basis they want. They may charge per core, or per thread, or based on
    some benchmark results they have on the hardware. Or they may just
    save the cost of porting to Power, like John Dallman's company is
    doing. So why would an ISV port to Power and then charge so much less
    for the same capacity on Power that people pay the hardware premium
    because it saves them in ISV licensing fees. Any ISV that does that
    is the enemy of their own profits.

    As for the claim that Power has more performance because of 8-way multithreading, I did a little experiment, all based on the latex
    benchmark in <http://www.complang.tuwien.ac.at/anton/latex-bench/>. I compared a Power10 machine and a Ryzen 8700G (Zen 4)

    The value of CORE in the following command was 8-15 on the Power10 and
    5,13 on the 8700G. Both signify the threads of one core.

    Interestingly, it's hard to see on Linux-Power that the hardware has
    fewer cores than threads and which threads belong to which core. I
    finally found it out by measuring the slowdowns when assigning tasks
    to "CPUs".

    for i in 0 1 2 3 4 5 6 7; do (mkdir -p $i; cd $i; cp ../bench.tex ../types.bib .; latex bench >/dev/null; bibtex bench >/dev/null; latex bench >/dev/null; taskset -c $CORE perf stat -r 100 latex bench >/dev/null 2>timing) & done; wait; cat */timing

    This runs 8 single-threaded tasks, each a 100 times (for averaging out
    timing variations), on a single core (if CORE is set correctly).

    On the Power 10 I see:

    grep -h elapsed */timing|sort -n
    1.307213 +- 0.000873 seconds time elapsed ( +- 0.07% )
    1.30727 +- 0.00111 seconds time elapsed ( +- 0.08% )
    1.308162 +- 0.000841 seconds time elapsed ( +- 0.06% )
    1.308368 +- 0.000781 seconds time elapsed ( +- 0.06% )
    1.31040 +- 0.00223 seconds time elapsed ( +- 0.17% )
    1.31081 +- 0.00308 seconds time elapsed ( +- 0.23% )
    1.31085 +- 0.00219 seconds time elapsed ( +- 0.17% )
    1.31112 +- 0.00324 seconds time elapsed ( +- 0.25% )

    On the Ryzen 8700G I see:

    1.69460 +- 0.00313 seconds time elapsed ( +- 0.18% )
    1.69974 +- 0.00264 seconds time elapsed ( +- 0.16% )
    1.69979 +- 0.00302 seconds time elapsed ( +- 0.18% )
    1.70200 +- 0.00426 seconds time elapsed ( +- 0.25% )
    1.70213 +- 0.00565 seconds time elapsed ( +- 0.33% )
    1.70286 +- 0.00599 seconds time elapsed ( +- 0.35% )
    1.70381 +- 0.00636 seconds time elapsed ( +- 0.37% )
    1.7049 +- 0.0109 seconds time elapsed ( +- 0.64% )

    So the Power 10 looks faster in this setting indeed than the 8700G.
    There is one caveat: This latex benchmark is somewhat sensitive to how
    many LaTeX packages are installed on the system. I tried to estimate
    this with

    strace -e trace=file latex bench 2>&1 >/dev/null |wc -l

    This gave me 1025 on the Power 10 machine and 1255 on the 8700G, so
    the 8700G apparently has to search through more packages, but it's not
    clear how much this affects the run-time. Probably not the factor 1.3
    in speed difference.

    Let's see how the machines fare with only a single thread (same script
    as above, but without 1 2 3 4 5 6 7):

    Power 10: 0.475022 +- 0.000204 seconds time elapsed ( +- 0.04% )

    Ryzen 8700G: 0.270851 +- 0.000569 seconds time elapsed ( +- 0.21% )

    So here the 8700G clearly wins.

    What about two threads?

    Power 10:
    0.475873 +- 0.000257 seconds time elapsed ( +- 0.05% )
    0.475875 +- 0.000265 seconds time elapsed ( +- 0.06% )

    No slowdown from SMT? Strange. I was wondering if maybe there were
    two cores in the set 8-15, but when trying 8-9, the result is similar,
    so unless the core numbering is strange for 8-9, but straightforward
    for 8-15, Power 10 has a slow start, but the scales well with more
    threads.

    Ryzen 8700G:
    0.399935 +- 0.000251 seconds time elapsed ( +- 0.06% )
    0.400696 +- 0.000637 seconds time elapsed ( +- 0.16% )

    By contrast, the 8700G suffers measurably from the second thread, but
    two threads on the same core on the 8700G are still faster then two
    threads on Power 10.

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Fri Mar 27 03:32:07 2026
    From Newsgroup: comp.arch

    On Thu, 26 Mar 2026 20:29:47 -0000 (UTC)
    Thomas Koenig <tkoenig@netcologne.de> wrote:
    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:

    On 3/25/2026 11:31 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP
    testing?
    SPEC FP.


    Is there a version of SPEC FP that is available for free? I
    get the impression that BGB doesn't have a lot of money to
    spend on such things.

    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c ,
    Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would
    respond.


    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys.

    Coremark was initially developed in 2009 (17 years ago), embench
    in 2019 (a bit less than seven years ago). If somebody recognized
    them as toys 37 years ago, they had access to a time machine.

    I was talking about Dhrystone and Whetstone.
    Coremarks and embench were never intended to measure performance of Server/Workstation/PC class of computers. Since ~2015 we can add
    smartphones to the list of machines that this marks are not intended to evaluate.
    For Dhrystone and Whetstone - interesting for historical comparisons
    and if/when the compiler does not optimize too aggresively. Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).

    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC: First, it is paywalled.
    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for qualified non profit organizations and $50 accredited academic
    institutions."
    Second, they refuse to change sources or their verification
    conditions even when the code is wrong, and depends (for example)
    on re-ordering of an expression that compilers are allowed to do.
    They would rather pessimize everybody else's code.

    It is useful if run continuosly to catch regressions, especially
    speed, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163 .

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Fri Mar 27 03:50:23 2026
    From Newsgroup: comp.arch

    On Thu, 26 Mar 2026 22:24:22 GMT
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    Thomas Koenig <tkoenig@netcologne.de> writes:
    Anton Ertl <anton@mips.complang.tuwien.ac.at> schrieb:
    Why would an ISV pay the cost of the Power port and then charge
    less for the license on a similar-capacity machine.

    They pay per core. If the core happens to have 8-way multithreading
    and has more performance because of that - well, that's what hardware >vendors have to deal with.

    That's not an answer to my question. The ISVs can charge on whatever
    basis they want. They may charge per core, or per thread, or based on
    some benchmark results they have on the hardware. Or they may just
    save the cost of porting to Power, like John Dallman's company is
    doing. So why would an ISV port to Power and then charge so much less
    for the same capacity on Power that people pay the hardware premium
    because it saves them in ISV licensing fees. Any ISV that does that
    is the enemy of their own profits.

    As for the claim that Power has more performance because of 8-way multithreading, I did a little experiment, all based on the latex
    benchmark in <http://www.complang.tuwien.ac.at/anton/latex-bench/>.
    I compared a Power10 machine and a Ryzen 8700G (Zen 4)

    The value of CORE in the following command was 8-15 on the Power10 and
    5,13 on the 8700G. Both signify the threads of one core.

    Interestingly, it's hard to see on Linux-Power that the hardware has
    fewer cores than threads and which threads belong to which core. I
    finally found it out by measuring the slowdowns when assigning tasks
    to "CPUs".

    for i in 0 1 2 3 4 5 6 7; do (mkdir -p $i; cd $i; cp ../bench.tex ../types.bib .; latex bench >/dev/null; bibtex bench >/dev/null;
    latex bench >/dev/null; taskset -c $CORE perf stat -r 100 latex bench >/dev/null 2>timing) & done; wait; cat */timing

    This runs 8 single-threaded tasks, each a 100 times (for averaging out
    timing variations), on a single core (if CORE is set correctly).

    On the Power 10 I see:

    grep -h elapsed */timing|sort -n
    1.307213 +- 0.000873 seconds time elapsed ( +- 0.07% )
    1.30727 +- 0.00111 seconds time elapsed ( +- 0.08% )
    1.308162 +- 0.000841 seconds time elapsed ( +- 0.06% )
    1.308368 +- 0.000781 seconds time elapsed ( +- 0.06% )
    1.31040 +- 0.00223 seconds time elapsed ( +- 0.17% )
    1.31081 +- 0.00308 seconds time elapsed ( +- 0.23% )
    1.31085 +- 0.00219 seconds time elapsed ( +- 0.17% )
    1.31112 +- 0.00324 seconds time elapsed ( +- 0.25% )

    On the Ryzen 8700G I see:

    1.69460 +- 0.00313 seconds time elapsed ( +- 0.18% )
    1.69974 +- 0.00264 seconds time elapsed ( +- 0.16% )
    1.69979 +- 0.00302 seconds time elapsed ( +- 0.18% )
    1.70200 +- 0.00426 seconds time elapsed ( +- 0.25% )
    1.70213 +- 0.00565 seconds time elapsed ( +- 0.33% )
    1.70286 +- 0.00599 seconds time elapsed ( +- 0.35% )
    1.70381 +- 0.00636 seconds time elapsed ( +- 0.37% )
    1.7049 +- 0.0109 seconds time elapsed ( +- 0.64% )

    So the Power 10 looks faster in this setting indeed than the 8700G.
    There is one caveat: This latex benchmark is somewhat sensitive to how
    many LaTeX packages are installed on the system. I tried to estimate
    this with

    strace -e trace=file latex bench 2>&1 >/dev/null |wc -l

    This gave me 1025 on the Power 10 machine and 1255 on the 8700G, so
    the 8700G apparently has to search through more packages, but it's not
    clear how much this affects the run-time. Probably not the factor 1.3
    in speed difference.

    Let's see how the machines fare with only a single thread (same script
    as above, but without 1 2 3 4 5 6 7):

    Power 10: 0.475022 +- 0.000204 seconds time elapsed ( +- 0.04% )

    Ryzen 8700G: 0.270851 +- 0.000569 seconds time elapsed ( +- 0.21% )

    So here the 8700G clearly wins.

    What about two threads?

    Power 10:
    0.475873 +- 0.000257 seconds time elapsed ( +- 0.05% )
    0.475875 +- 0.000265 seconds time elapsed ( +- 0.06% )

    No slowdown from SMT? Strange. I was wondering if maybe there were
    two cores in the set 8-15, but when trying 8-9, the result is similar,
    so unless the core numbering is strange for 8-9, but straightforward
    for 8-15, Power 10 has a slow start, but the scales well with more
    threads.

    Ryzen 8700G:
    0.399935 +- 0.000251 seconds time elapsed ( +- 0.06% )
    0.400696 +- 0.000637 seconds time elapsed ( +- 0.16% )

    By contrast, the 8700G suffers measurably from the second thread, but
    two threads on the same core on the 8700G are still faster then two
    threads on Power 10.

    - anton


    In SAP-SD bnchmark 240-core POWER10 scored 285,030
    For comparison, 384-core EPYC 9965 scored 266,100
    So, 1.73x higher per-core scores for POWER10.

    And this particular SAP benchmark is close to embarassingly purrallel.
    In less easy benchmarks, like TPC-C, per core advantage of POWER10 is
    likely higher, but nowadays nobody submits TPC-C results.

    https://www.sap.com/dmc/exp/2018-benchmark-directory/#/sd








    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From John Levine@johnl@taugh.com to comp.arch on Fri Mar 27 01:20:51 2026
    From Newsgroup: comp.arch

    According to quadi <quadibloc@ca.invalid>:
    I have no numbers to support my guesses, but the fact that Power is
    still there while everything else including SPARC has been cancelled
    makes me doubt that the AIX and Linux business are keeping Power alive.

    I am certainly in full agreement with your analysis.

    For the moment, System z has not yet gone the way of the Unisys
    mainframes, and so it isn't made as software running on PowerPC
    hardware... but that day may yet come.

    I wouldn't hold my breath. z17 can have up to 208 cores, 64TB RAM,
    and a hardware AI accelerator. That's rather a lot to simulate
    even before you look at the I/O, up to 12 drawers each with 16
    PCIe+ cards that can connect to various kinds of disks and networks.
    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Fri Mar 27 07:21:16 2026
    From Newsgroup: comp.arch

    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 08:31:25 +0000, Anton Ertl wrote:

    It is based on the assumption that System i (if that is this week's name
    for AS/400) has enough margin to pay for Power development, while
    RS/6000 (whatever its current name is) competes head-on with Intel and
    AMD servers in the Linux and pretty much also in the AIX markets. My
    guess is that IBM charges very little or nothing of Power development to
    RS/6000, but while it is available thanks to System i, they sell it;
    even if they made no profits on that, one benefit would be the marketing
    aspect of supporting the architecture that long, longer than all the
    competitors from the 1990s).

    I have no numbers to support my guesses, but the fact that Power is
    still there while everything else including SPARC has been cancelled
    makes me doubt that the AIX and Linux business are keeping Power alive.

    I am certainly in full agreement with your analysis.

    For the moment, System z has not yet gone the way of the Unisys
    mainframes, and so it isn't made as software running on PowerPC
    hardware... but that day may yet come.

    See the upthread numbers from the IBM annual report I posted -
    the combination of IBM Z and Power has very nice margins.

    One feature which I find fascinating is that they record a
    checkpoint of the CPU architectural state at each cycle so they
    can transparently move and move and restart processes (their
    R-unit, if you want to google it).

    I don't think anybody else does that.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Fri Mar 27 08:07:47 2026
    From Newsgroup: comp.arch

    Thomas Koenig <tkoenig@netcologne.de> writes:
    One feature which I find fascinating is that they record a
    checkpoint of the CPU architectural state at each cycle so they
    can transparently move and move and restart processes (their
    R-unit, if you want to google it).

    I don't think anybody else does that.

    Every modern OoO architecture checkpoints the CPU architectural state
    at every branch and every potentially-trapping instruction, possibly
    more than once per cycle. However, checkpointing the remainder of the process's state and using all of that to move the process is another
    issue. VMs tend to feature the ability to save and move their guests;
    I don't know what they use for that, what the granularity is and why
    one would want to do that on a per-cycle basis, though.

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Fri Mar 27 08:12:57 2026
    From Newsgroup: comp.arch

    Michael S <already5chosen@yahoo.com> writes:
    In SAP-SD bnchmark 240-core POWER10 scored 285,030
    For comparison, 384-core EPYC 9965 scored 266,100
    So, 1.73x higher per-core scores for POWER10.

    I would not buy an EPYC 9965 with 2.25GHz Zen5c cores if I wanted
    per-core performance. More something like the Ryzen 9850X3D (or its
    upcoming 16-core sibling). Or, if an EPYC is desired, a 9275F with
    4GHz Zen5 cores.

    And this particular SAP benchmark is close to embarassingly purrallel.
    In less easy benchmarks, like TPC-C, per core advantage of POWER10 is
    likely higher, but nowadays nobody submits TPC-C results.

    My expectations are the opposite: The 1920 threads of a 240-core
    Power-10 should shine in embarrasingly parallel benchmarks (compared
    to the 768 threads of the dual-socket EPYC 9965), whereas the better single-thread performance of Zen5 should help benchmarks that are not embarrasingly parallel.

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Niklas Holsti@niklas.holsti@tidorum.invalid to comp.arch on Fri Mar 27 10:33:57 2026
    From Newsgroup: comp.arch

    On 2026-03-27 2:50, Michael S wrote:

    And this particular SAP benchmark is close to embarassingly
    purrallel.
    ^^^^^^^^^

    Hm... something to do with herding multiple cats, purrhaps?

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Fri Mar 27 08:37:25 2026
    From Newsgroup: comp.arch

    anton@mips.complang.tuwien.ac.at (Anton Ertl) writes:
    As for the claim that Power has more performance because of 8-way >multithreading, I did a little experiment, all based on the latex
    benchmark in <http://www.complang.tuwien.ac.at/anton/latex-bench/>. I compared a Power10 machine and a Ryzen 8700G (Zen 4)

    The value of CORE in the following command was 8-15 on the Power10 and
    5,13 on the 8700G. Both signify the threads of one core.

    I now also did it on a Core i5 1135G7 (Tiger Lake), with CORE=3,7, and
    measured 1-8 parallel single-threaded tasks on one core. I reduced
    the repetition count to 50 to reduce the waiting time.

    There is one caveat: This latex benchmark is somewhat sensitive to how
    many LaTeX packages are installed on the system. I tried to estimate
    this with

    strace -e trace=file latex bench 2>&1 >/dev/null |wc -l

    This gave me 1025 on the Power 10 machine and 1255 on the 8700G,

    and 1413 on the 1135G7 machine. So the results are not really for the
    same workload. The script I used is

    rm -rf [0-7]; for i in 0 1 2 3 4 5 6 7; do (mkdir -p $i; cd $i; cp ../bench.tex ../types.bib .; latex bench >/dev/null; bibtex bench >/dev/null; latex bench >/dev/null; taskset -c $CORE perf stat -r 50 latex bench >/dev/null 2>timing) & done; wait; grep -h elapsed */timing|sort -n

    The results are (reporting the slowest result output by the sort,
    numbers are seconds, lower is better):

    8700G 8700G
    tasks Power10 SMT on SMT off 1135G7
    1 0.475022 0.270851 0.268371 0.302320
    2 0.475875 0.400696 0.54893 0.529775
    3 0.6817 0.6106 0.84062 0.8004
    4 0.75381 0.82037 1.15060 1.08822
    5 0.9574 1.0358 1.4670 1.3839
    6 1.1182 1.2592 1.7783 1.6785
    7 1.2289 1.4795 2.0997 1.9768
    8 1.31267 1.7060 2.4117 2.33397

    I unintentionally measured the 8700G with SMT off (my usual
    configuration) on my first measurements of the 8700G today, only to
    find out that the results for 8 tasks were quite different from
    yesterday. Then I enabled SMT, and measured again.

    SMT on Zen4 seems to work somewhat better (throughput increase for 2
    tasks: factor 1.35) than on Tiger Lake (factor 1.14).

    The slowdowns from running more tasks than hardware threads are small,
    but measureable:

    1.06 for 8700G SMT on when comparing 8 tasks to 2,
    1.12 for the 8700G SMT off when comparing 8 tasks to 1,
    1.10 for 1135G7 when comparing 8 tasks to 2.

    My guess is that a lot of this is due to Spectre mitigations.
    Spectre-immune hardware would probably suffer less from context switch overhead.

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Mar 27 12:45:57 2026
    From Newsgroup: comp.arch

    On Fri, 27 Mar 2026 03:32:07 +0300, Michael S wrote:

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for qualified non profit organizations and $50 accredited academic
    institutions."

    I would agree that $50 is not very expensive, but I would not say the same
    for $1,000. Unless you have reason to believe that the poster with the
    project under discussion is a student, therefore, I am puzzled.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Fri Mar 27 12:46:00 2026
    From Newsgroup: comp.arch

    In article <2026Mar26.232422@mips.complang.tuwien.ac.at>, anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    The ISVs can charge on whatever basis they want. They may charge
    per core, or per thread, or based on some benchmark results they
    have on the hardware. Or they may just save the cost of porting
    to Power, like John Dallman's company is doing.

    As another example, the libraries I work on are licensed to ISVs. They
    charge on whatever basis they want, and pay my employer a royalty based
    on their sales.

    We could not justify buying a new set of machines to keep on running AIX
    once there were no paying customers for it, and the old hardware was too
    slow for the ever-expanding testing. IBM's lack of any plan for a C++11 compiler during a crucial period did not help. They switched to Clang
    later on.

    Incidentally, part of the death of proprietary Unixes was the gradual abandonment by the vendors of their own compilers, often in advance of
    the OS.

    IBM still have their classic XL series compilers, but the modern "Open XL" series are Clang, on zOS as well as AIX. The C and C++ compilers on IBM i
    were dropped in 2011 if Wikipedia is correct.

    Oracle don't seem to have updated their "Developer Studio" product since
    2018.

    HP's compiler died with HP-UX, and SGI's with Irix. DEC's Unix compilers
    are dead, along with Tru64. The VMS compilers are sort of alive: VMS
    Software, Inc. maintains their front-ends, but the backends have been
    replaced with a translation layer from the DEC intermediate
    representation to LLVM IR.

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Mar 27 12:49:15 2026
    From Newsgroup: comp.arch

    On Sun, 22 Mar 2026 08:49:43 +0000, Anton Ertl wrote:

    AFAIK AIX has continued to be big-endian, only Linux switched.

    Huh? I thought Linux was of course little-endian on x86... and big-endian
    on big-endian hardware. Of course, by now it may have dropped support for
    all big-endian architectures.

    As for POWER, I wasn't aware that it gained the option of running in a little-endian mode, but it's certainly possible they followed the lead of
    ARM in becoming endian-agnostic.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From EricP@ThatWouldBeTelling@thevillage.com to comp.arch on Fri Mar 27 09:08:04 2026
    From Newsgroup: comp.arch

    Anton Ertl wrote:
    Thomas Koenig <tkoenig@netcologne.de> writes:
    One feature which I find fascinating is that they record a
    checkpoint of the CPU architectural state at each cycle so they
    can transparently move and move and restart processes (their
    R-unit, if you want to google it).

    I don't think anybody else does that.

    Every modern OoO architecture checkpoints the CPU architectural state
    at every branch and every potentially-trapping instruction, possibly
    more than once per cycle. However, checkpointing the remainder of the process's state and using all of that to move the process is another
    issue. VMs tend to feature the ability to save and move their guests;
    I don't know what they use for that, what the granularity is and why
    one would want to do that on a per-cycle basis, though.

    - anton

    Looking at:

    High Availability and Scalability of Mainframe Environments
    using System z and zOS as example, 2013

    2.6.1. Transparent CPU Sparing

    Transparent CPU Sparing is an error detection and correction mechanism
    which allows error detection during instruction execution and transparent
    error correction if spare processors have been configured to the system.
    The process is also called transient error recovery. It was introduced with
    5th generation of CMOS processors and the original design uses two physical execution units on each core or physical PU (see figure 2.6)

    Every Physical Processing Unit (actual Core on a PU chip) contains two execution units. Each instruction is fetched concurrently from the L1 cache
    by both execution units and processed. The result is compared and if it is equal processing is resumed with the next instruction. If the result is not equal the instruction is executed again to find out whether a temporary
    error existed. If it is still not the same an error mark is set. The R-Unit
    now signals the higher cache structures that the processing unit is running
    an error recovery process. The error recovery process resets all data store activities of the failing instruction. The CPU is now ready to get out of
    the configuration. The CPU is stopped and the CPU clock is stopped too.
    The error is signaled to the service assist processor and the service
    element. One possibility is now that the CPU is just configured out of the system. In this case the effect for the operating systems depend on their
    error recovery. A linux system for example may crash because a CPU fails.
    z/OS can mask the CPU and continue to process with the remaining CPUs in
    case more than 1 CPU is configured for the system. PR/SMTM can also mask
    the error by dispatching the logical CPs to fewer physical CPs.

    2.6.2. CPU Error Detection for newer System z machines

    For System z9 each CPU chip includes two cores. System z10, z196 and
    zEC12 the CPU chip does not contain the execution units two times.
    Instead an error correcting code (ECC) protected processor state is used
    inside the recovery unit (RU) to employ the same reliability features than
    its predecessors. Thousands of error checkers (parity, residue,
    illegal state, hardware redundancy compares, and so on) are embedded within
    the microprocessors and system cache hierarchy. Every instruction that
    executes successfully, and without error, updates the check-pointed state.
    Any error associated with the execution of an instruction blocks completion, and its associated state is not check-pointed.

    Upon detection of an error within the microprocessor, execution is stopped,
    and the core enters a sophisticated recovery sequence. All the cores nonarchitectural facilities are reset, and the hardened architectural facilities are corrected as needed. Next, the core retries execution,
    starting at the checkpointed state. In this way, the microprocessor can
    recover after any soft failure. However, if instruction execution continues
    to fail, a sparing event is initiated on a spare core, whereby millicode
    copies the architectural state from the failing to the spare core.
    Then, the failing core is removed from and the spare core is added to
    the system configuration, and task execution restarts on the spare core1."



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Fri Mar 27 13:47:00 2026
    From Newsgroup: comp.arch

    In article <10q5ucb$3nqnp$2@dont-email.me>, quadibloc@ca.invalid (quadi)
    wrote:

    On Sun, 22 Mar 2026 08:49:43 +0000, Anton Ertl wrote:
    AFAIK AIX has continued to be big-endian, only Linux switched.

    Huh? I thought Linux was of course little-endian on x86... and
    big-endian on big-endian hardware. Of course, by now it may have
    dropped support for all big-endian architectures.

    It has not. It still supports MC68000 and IVM Z.

    As for POWER, I wasn't aware that it gained the option of running
    in a little-endian mode, but it's certainly possible they followed
    the lead of ARM in becoming endian-agnostic.

    It became bi-endian; it actually has support for setting endianness
    per-page as well as per-process. Linux on IBM Power switched to
    little-endian make software porting from x86 easier. That came in at
    POWER8 in 2014.

    <https://www.ibm.com/support/pages/just-faqs-about-little-endian>

    <https://developer.ibm.com/articles/l-power-little-endian-faq-trs/>

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Fri Mar 27 16:54:16 2026
    From Newsgroup: comp.arch

    On Fri, 27 Mar 2026 12:45:57 -0000 (UTC)
    quadi <quadibloc@ca.invalid> wrote:

    On Fri, 27 Mar 2026 03:32:07 +0300, Michael S wrote:

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250
    for qualified non profit organizations and $50 accredited academic institutions."

    I would agree that $50 is not very expensive, but I would not say the
    same for $1,000. Unless you have reason to believe that the poster
    with the project under discussion is a student, therefore, I am
    puzzled.

    John Savard

    I don't suggest that BGB should pay anything. What I suggest is that in
    more common situation than his the price is affordablle.

    In case of BGB, I'd suggest grabbing an illegal copy of SPEC
    suit somewhere on the net.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Bill Findlay@findlaybill@blueyonder.co.uk to comp.arch on Fri Mar 27 16:41:20 2026
    From Newsgroup: comp.arch

    On 27 Mar 2026, Niklas Holsti wrote
    (in article <n2mtnlFm9rsU1@mid.individual.net>):

    On 2026-03-27 2:50, Michael S wrote:

    And this particular SAP benchmark is close to embarassingly
    purrallel.
    ^^^^^^^^^

    Hm... something to do with herding multiple cats, purrhaps?

    Perhaps IBM have reverted to the use of their whiskers.
    --
    Bill Findlay

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Fri Mar 27 17:27:58 2026
    From Newsgroup: comp.arch

    John Dallman <jgd@cix.co.uk> schrieb:
    In article <10q5ucb$3nqnp$2@dont-email.me>, quadibloc@ca.invalid (quadi) wrote:

    On Sun, 22 Mar 2026 08:49:43 +0000, Anton Ertl wrote:
    AFAIK AIX has continued to be big-endian, only Linux switched.

    Huh? I thought Linux was of course little-endian on x86... and
    big-endian on big-endian hardware. Of course, by now it may have
    dropped support for all big-endian architectures.

    It has not. It still supports MC68000 and IVM Z.

    And given that Red Hat is a subsidiary of IBM, and Red Hat is a
    major contributor to the Linux kernel, that is unlikely to change.

    The easiest way to influence open source development is to let
    work capable developers on these project.

    Simlar for gcc.

    powerpc64-unknown-linux-gnu and powerpc64le-unknown-linux-gnu are
    primary platforms, s390x-linux-gnu is a secondary platform.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Fri Mar 27 18:50:19 2026
    From Newsgroup: comp.arch


    Thomas Koenig <tkoenig@netcologne.de> posted:

    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:

    On 3/25/2026 11:31 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP
    testing?
    SPEC FP.


    Is there a version of SPEC FP that is available for free?  I get
    the impression that BGB doesn't have a lot of money to spend on
    such things.

    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c , Dhrystone
    https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would
    respond.


    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys.

    Coremark was initially developed in 2009 (17 years ago), embench
    in 2019 (a bit less than seven years ago). If somebody recognized
    them as toys 37 years ago, they had access to a time machine.

    For Dhrystone and Whetstone - interesting for historical comparisons
    and if/when the compiler does not optimize too aggresively.

    To a certain extent, Whetstone is responsible for getting rid of
    interpreters and requiring compilers.

    Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).

    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC: First, it is paywalled.

    In my opinion, SPEC should unpaywall all source not within 2 generations/releases of present.

    Second, they refuse to change sources or their verification
    conditions even when the code is wrong, and depends (for example)
    on re-ordering of an expression that compilers are allowed to do.

    To change wrong previous source would change everyone's results--
    including those no longer around--diminishing historical utility.

    They would rather pessimize everybody else's code.

    It is useful if run continuosly to catch regressions, especially
    speed, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163 .

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Fri Mar 27 18:52:25 2026
    From Newsgroup: comp.arch


    Thomas Koenig <tkoenig@netcologne.de> posted:

    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 08:31:25 +0000, Anton Ertl wrote:

    It is based on the assumption that System i (if that is this week's name >> for AS/400) has enough margin to pay for Power development, while
    RS/6000 (whatever its current name is) competes head-on with Intel and
    AMD servers in the Linux and pretty much also in the AIX markets. My
    guess is that IBM charges very little or nothing of Power development to >> RS/6000, but while it is available thanks to System i, they sell it;
    even if they made no profits on that, one benefit would be the marketing >> aspect of supporting the architecture that long, longer than all the
    competitors from the 1990s).

    I have no numbers to support my guesses, but the fact that Power is
    still there while everything else including SPARC has been cancelled
    makes me doubt that the AIX and Linux business are keeping Power alive.

    I am certainly in full agreement with your analysis.

    For the moment, System z has not yet gone the way of the Unisys mainframes, and so it isn't made as software running on PowerPC hardware... but that day may yet come.

    See the upthread numbers from the IBM annual report I posted -
    the combination of IBM Z and Power has very nice margins.

    One feature which I find fascinating is that they record a
    checkpoint of the CPU architectural state at each cycle so they
    can transparently move and move and restart processes (their
    R-unit, if you want to google it).

    While everybody else just checkpoints every cycle for branch
    prediction recovery.

    I don't think anybody else does that.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Fri Mar 27 18:53:31 2026
    From Newsgroup: comp.arch


    Niklas Holsti <niklas.holsti@tidorum.invalid> posted:

    On 2026-03-27 2:50, Michael S wrote:

    And this particular SAP benchmark is close to embarassingly
    purrallel.
    ^^^^^^^^^

    Hm... something to do with herding multiple cats, purrhaps?

    Can you herd singular cats ???
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Fri Mar 27 18:56:01 2026
    From Newsgroup: comp.arch


    quadi <quadibloc@ca.invalid> posted:

    On Fri, 27 Mar 2026 03:32:07 +0300, Michael S wrote:

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for qualified non profit organizations and $50 accredited academic institutions."

    What about someone (me) just screwing around that has nothing to do with academia, not necessarily non-profit, nor industrial or commercial.

    I would agree that $50 is not very expensive, but I would not say the same for $1,000. Unless you have reason to believe that the poster with the project under discussion is a student, therefore, I am puzzled.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Fri Mar 27 18:53:52 2026
    From Newsgroup: comp.arch

    quadi <quadibloc@ca.invalid> writes:
    On Sun, 22 Mar 2026 08:49:43 +0000, Anton Ertl wrote:

    AFAIK AIX has continued to be big-endian, only Linux switched.

    Huh? I thought Linux was of course little-endian on x86... and big-endian
    on big-endian hardware. Of course, by now it may have dropped support for >all big-endian architectures.

    Linux works fine in big-endian mode of Power and on S390x, and other
    supported big-endian hardware (e.g., m68k, hppa, mipseb, armeb). It's
    just that IBM decided that they wanted to switch their support for
    Linux on Power to little-endian. So on https://popcon.debian.org/ you
    see, e.g., ppc64 (big-endian) and ppc64el (little-endian).

    IBM also changed the hardware to implement little-endian differently:
    Earlier they performed some xoring of some address bits of
    sub-machine-word accesses with the little-endian flag, but that meant
    that unaligned accesses did not work, unlike for big-endian Power.
    With the more recent hardware the little-endian mode accesses bytes at
    the same hardware address as in big-endian mode, and wider loads and
    stores do the reversing compared to the big-endian mode. The new
    little-endian mode supports unaligned accesses.

    Power has had byte-swapping loads (not sure about stores) for a very
    long time (since the beginning?), so the new little-endian mode does
    require little, if any, additional hardware.

    As for POWER, I wasn't aware that it gained the option of running in a >little-endian mode, but it's certainly possible they followed the lead of >ARM in becoming endian-agnostic.

    Power has had a little-endian mode since the beginning, like basically
    all architectures from the time, e.g., MIPS (where both big-endian and little-endian machines actually appeared).

    Once you require alignment (every RISC did, big-endian Power was the
    first defector in the RISC camp), supporting both byte orders by
    xoring some bits in the address costs only a few gates, and once the
    first architecture boasted it, the others followed, probably due to
    FOMO. The biggest cost was probably the documentation.

    Even for Alpha (where little-endian operation was a pure software
    thing before the BWX instructions were added) the documentation says
    how to use Alpha as big-endian CPU.

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Fri Mar 27 14:25:08 2026
    From Newsgroup: comp.arch

    On 3/26/2026 3:29 PM, Thomas Koenig wrote:
    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:

    On 3/25/2026 11:31 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 3/24/2026 8:37 PM, Stephen Fuld wrote:
    On 3/24/2026 6:21 PM, MitchAlsup wrote:

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> posted:

    So, people, what would you recommend for BGB to use for FP
    testing?
    SPEC FP.


    Is there a version of SPEC FP that is available for free?  I get
    the impression that BGB doesn't have a lot of money to spend on
    such things.

    Yeah, and not going to use a proprietary benchmark here...

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c , Dhrystone
    https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would
    respond.


    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys.

    Coremark was initially developed in 2009 (17 years ago), embench
    in 2019 (a bit less than seven years ago). If somebody recognized
    them as toys 37 years ago, they had access to a time machine.

    For Dhrystone and Whetstone - interesting for historical comparisons
    and if/when the compiler does not optimize too aggresively. Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).


    Yes, whatever sorts of heavy-lifting optimizations would apply to
    Whetstone and Dhrystone seemingly either don't apply to BGBCC, or were sufficiently fundamental as to escape notice.

    I have noted though that there isn't as strong of a performance
    advantage for GCC on RISC-v, but there is a stronger advantage on
    x86-64. Seems like whatever heavy-lifting is being done in terms of optimizations may be more in target specific code rather than generic stuff.


    Like, Dhrystone 2.1 via GCC on x86-64 showing a somewhat inflated number
    vs Clang (middle) or MSVC (lower). Where, often numbers are a bit
    closer, but it depends somewhat on coding style (with GCC seemingly
    preferring a more abstracted/idiomatic style, and MSVC preferring raw
    pointer derefs and bit twiddling).

    Both GCC and Clang have had more of a history of trying to exploit UB
    for optimization, whereas MSVC has usually been more conservative here.

    In the case of BGBCC, I had mostly been aiming for a more conservative approach, like MSVC. It does have some support for things like TBAA and similar, but they are opt-in. There are cases where optimization does
    break things, but these are usually seen as bugs.


    But, alas, my testing has mostly been building 90s games and looking for
    cases where stuff is buggy.

    Though, there was still the issue of inconsistent demo desyncs in ROTT,
    but I have never found the source of this one.


    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC: First, it is paywalled.
    Second, they refuse to change sources or their verification
    conditions even when the code is wrong, and depends (for example)
    on re-ordering of an expression that compilers are allowed to do.
    They would rather pessimize everybody else's code.

    It is useful if run continuosly to catch regressions, especially
    speed, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163 .


    Some sort of combination test-corpus and benchmark could make sense,
    more so if it were free...

    But, alas, if it is paywalled and kept under tight control, I am much
    less interested personally.


    It still seems interesting though that Quake seemed to have a higher
    rate of stumbling onto IEEE related traps than either my FFT test, or Whetstone.


    Looks like Whetstone seems to spend a bulk of its time in a few places:
    sin/cos
    fdiv/frcp
    atan

    Its most heavily instructions being (descending order):
    FMUL
    FADD
    FSUB
    MOV.Q (or, LD/SD/FLD/FSD)

    So, would seem that Whetstone is primarily FPU bound, and could be
    faster if faster algorithms existed for the above math functions vs the existing Newton-Raphson and Taylor Series expansions.


    Relative to clock speeds, apparently also beating out the 486DX.

    Though, from what I can gather, generally losing on scalar FPU
    performance relative to the PowerPC 6xx chips...


    As for functionality, have noted that Whetstone seems to break on the BGBCC+RV64G target, will need to investigate. Works when built using GCC
    (for RV64G) or by BGBCC for other targets (such as XG3).

    Also was messing around with Heretic some more, where Heretic and Hexen
    tend to get worse performance (than Doom or Doom2) despite being Doom
    engine games. Well, and building Heretic for XG3 recently managed to
    point out a compiler bug (WEXifier reordering instructions in a place
    where it shouldn't have).


    Had noted though that with Heretic there continues to be an annoyance
    that one ambient sound kinda ruins the immersion:
    A voice line that goes: "Hoo Hoo Hoo, Haa Haa Haa"
    Like, the game is mostly going for a medieval fantasy thing, and this
    ambient sound is more reminiscent of an "amusement park funhouse" vibe.

    Maybe add some random skeletons that drop from the ceiling to go with
    all the monster closets.

    Say:
    "Behold, the key is in the middle of the room"
    Picks up key, invariably a bunch of monster closets open up so one gets stormed with enemies (and, in later episodes, throwing the "Iron Lich"
    bosses in the monster closets for good measure).

    Doom and Doom2 were at least more subtle about all the monster closets.

    And not so much like: Player touches key, suddenly several closets open
    up to reveal cyberdemons...




    Could maybe try to find it and comment out whatever code causes this,
    but alas, don't want to do too many needless changes here.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Fri Mar 27 14:31:59 2026
    From Newsgroup: comp.arch

    On 3/27/2026 1:56 PM, MitchAlsup wrote:

    quadi <quadibloc@ca.invalid> posted:

    On Fri, 27 Mar 2026 03:32:07 +0300, Michael S wrote:

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for
    qualified non profit organizations and $50 accredited academic
    institutions."

    What about someone (me) just screwing around that has nothing to do with academia, not necessarily non-profit, nor industrial or commercial.


    Same general camp here...

    I also try to mostly respect copyright, and try to avoid patents.

    But, if one mostly limits themselves to things that were in-use 20+
    years ago, the risk of stumbling onto patent issues is reduced.


    I would agree that $50 is not very expensive, but I would not say the same >> for $1,000. Unless you have reason to believe that the poster with the
    project under discussion is a student, therefore, I am puzzled.

    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Fri Mar 27 21:38:43 2026
    From Newsgroup: comp.arch

    Michael S <already5chosen@yahoo.com> schrieb:
    On Thu, 26 Mar 2026 20:29:47 -0000 (UTC)
    Thomas Koenig <tkoenig@netcologne.de> wrote:

    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:

    On 3/25/2026 11:31 AM, Thomas Koenig wrote:

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c ,
    Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would
    respond.


    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys.

    Coremark was initially developed in 2009 (17 years ago), embench
    in 2019 (a bit less than seven years ago). If somebody recognized
    them as toys 37 years ago, they had access to a time machine.


    I was talking about Dhrystone and Whetstone.
    Coremarks and embench were never intended to measure performance of Server/Workstation/PC class of computers.

    Does that mean that they are useless to run on these computers,
    and that no information can be gained from them?

    Also, it is not really clear if BGB's machine falls into
    server/workstation/PC class.

    Since ~2015 we can add
    smartphones to the list of machines that this marks are not intended to evaluate.

    For Dhrystone and Whetstone - interesting for historical comparisons
    and if/when the compiler does not optimize too aggresively. Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).

    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC: First, it is paywalled.

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for qualified non profit organizations and $50 accredited academic
    institutions."

    So it would be 1000 Dollars for a volunteer co-developer of a
    compiler, like me. Thanks, but no thanks - I draw the line
    somewhere.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Fri Mar 27 21:42:17 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    quadi <quadibloc@ca.invalid> schrieb:
    On Sun, 22 Mar 2026 08:31:25 +0000, Anton Ertl wrote:

    It is based on the assumption that System i (if that is this week's name >> >> for AS/400) has enough margin to pay for Power development, while
    RS/6000 (whatever its current name is) competes head-on with Intel and
    AMD servers in the Linux and pretty much also in the AIX markets. My
    guess is that IBM charges very little or nothing of Power development to >> >> RS/6000, but while it is available thanks to System i, they sell it;
    even if they made no profits on that, one benefit would be the marketing >> >> aspect of supporting the architecture that long, longer than all the
    competitors from the 1990s).

    I have no numbers to support my guesses, but the fact that Power is
    still there while everything else including SPARC has been cancelled
    makes me doubt that the AIX and Linux business are keeping Power alive. >> >
    I am certainly in full agreement with your analysis.

    For the moment, System z has not yet gone the way of the Unisys
    mainframes, and so it isn't made as software running on PowerPC
    hardware... but that day may yet come.

    See the upthread numbers from the IBM annual report I posted -
    the combination of IBM Z and Power has very nice margins.

    One feature which I find fascinating is that they record a
    checkpoint of the CPU architectural state at each cycle so they
    can transparently move and move and restart processes (their
    R-unit, if you want to google it).

    While everybody else just checkpoints every cycle for branch
    prediction recovery.

    Does not help if somebody fires a bullet into your CPU - as long
    as the R-unit is spared, things can continue :-)
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Fri Mar 27 20:59:30 2026
    From Newsgroup: comp.arch

    On 3/27/2026 4:38 PM, Thomas Koenig wrote:
    Michael S <already5chosen@yahoo.com> schrieb:
    On Thu, 26 Mar 2026 20:29:47 -0000 (UTC)
    Thomas Koenig <tkoenig@netcologne.de> wrote:

    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:

    On 3/25/2026 11:31 AM, Thomas Koenig wrote:

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c ,
    Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas. I hoped someone (and I suspected you :-)) would
    respond.


    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys.

    Coremark was initially developed in 2009 (17 years ago), embench
    in 2019 (a bit less than seven years ago). If somebody recognized
    them as toys 37 years ago, they had access to a time machine.


    I was talking about Dhrystone and Whetstone.
    Coremarks and embench were never intended to measure performance of
    Server/Workstation/PC class of computers.

    Does that mean that they are useless to run on these computers,
    and that no information can be gained from them?

    Also, it is not really clear if BGB's machine falls into server/workstation/PC class.


    Probably, the ISA could be used in theory on PC/workstation, but as-is, probably no...


    If it even saw use in mobile, this would probably be a big step up.

    If anything, it could make more sense for embedded and DSP.


    If I were to place bets, probably:
    Servers move to ARM;
    PC's follow maybe a short time later;
    Mobile then starts moving to RISC-V or similar;
    Probably followed by server and PCs.

    Likely with less inertia for ARM to RISC-V, as an x86-64 to ARM
    transition would have already greatly reduced the friction (particularly
    if Microsoft dies off as a major player in the OS space, and RISC-V
    addresses some of its remaining shortcomings). The likely motivation for
    the move is that if ARM gains top position, they might become
    increasingly draconian and effectively drive everyone away (with RISC-V remaining as the "we don't need to answer to anyone" option).


    But, in the nearer term, x86-64 becomes easier to emulate but also less attractive to run on real hardware, as if Moore's Law ends, this may
    well shift power balances some and cause x86-64 to become a less
    attractive option (cores will need more power and area relative to computational power).

    Though, in-order vs OoO is a little closer it seems (more area and more
    power, but also, better performance per watt). But, then again, if one
    were clearly better in all regards, it would have won already, vs the
    current split:
    OoO for higher-performance higher-power-use devices;
    In-order for lower performance, lower-power devices.

    So, in much the same way, in-order doesn't currently hold in the server
    space, much as OoO can't capture the budget smartphone market.


    But, in the present, will anyone likely do much serious work with an
    FPGA based soft processor; Not really.



    But, we may be looking at a different situation in 2050.
    Though, early 2030s may see the rise of ARM in the PC space.
    Well, alongside a lot of older x86-64 PCs being kept alive...

    Probably also not going to be much around in terms of money or jobs for
    most people (just whatever they can get, and basic survival). Say, with
    whole "economy" thing going totally to crap (far worse than it is already).

    Well, and then say someone comes along flogging off post-scarcity
    economics via bowing down to an AI overlord, and UBI and such, but then
    it doesn't work and everything still goes totally to crap (as they
    didn't really fix anything, and the underlying system is still broken), ...

    ...


    But, such situations could shift the balances of power in the CPU space.

    Granted, different possibilities could emerge, say if:
    Moore's law doesn't end;
    Economy doesn't mostly collapse;
    ...


    Since ~2015 we can add
    smartphones to the list of machines that this marks are not intended to
    evaluate.

    For Dhrystone and Whetstone - interesting for historical comparisons
    and if/when the compiler does not optimize too aggresively. Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).

    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC: First, it is paywalled.

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for
    qualified non profit organizations and $50 accredited academic
    institutions."

    So it would be 1000 Dollars for a volunteer co-developer of a
    compiler, like me. Thanks, but no thanks - I draw the line
    somewhere.


    Yeah, if I had that much money to burn on stuff like this, could
    probably get a "Nexys Video" board or similar, would probably get more
    use out of this than I would get out of SPEC...


    But, alas, it may not matter.

    I can't do much, mostly just experiment with stuff, and hope it matters
    to someone with more resources to realize it as "something actually useful".

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sat Mar 28 02:21:29 2026
    From Newsgroup: comp.arch

    On 2026-03-27 9:59 p.m., BGB wrote:
    On 3/27/2026 4:38 PM, Thomas Koenig wrote:
    Michael S <already5chosen@yahoo.com> schrieb:
    On Thu, 26 Mar 2026 20:29:47 -0000 (UTC)
    Thomas Koenig <tkoenig@netcologne.de> wrote:

    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:
    On 3/25/2026 11:31 AM, Thomas Koenig wrote:

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c ,
    Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas.  I hoped someone (and I suspected you :-)) would >>>>>> respond.

    My response is: those are toy benchmarks. Even 37 years ago people
    already recognize them as toys.

    Coremark was initially developed in 2009 (17 years ago), embench
    in 2019 (a bit less than seven years ago).  If somebody recognized
    them as toys 37 years ago, they had access to a time machine.


    I was talking about Dhrystone and Whetstone.
    Coremarks and embench were never intended to measure performance of
    Server/Workstation/PC class of computers.

    Does that mean that they are useless to run on these computers,
    and that no information can be gained from them?

    Also, it is not really clear if BGB's machine falls into
    server/workstation/PC class.


    Probably, the ISA could be used in theory on PC/workstation, but as-is, probably no...


    If it even saw use in mobile, this would probably be a big step up.

    If anything, it could make more sense for embedded and DSP.


    If I were to place bets, probably:
      Servers move to ARM;
      PC's follow maybe a short time later;
      Mobile then starts moving to RISC-V or similar;
      Probably followed by server and PCs.

    Likely with less inertia for ARM to RISC-V, as an x86-64 to ARM
    transition would have already greatly reduced the friction (particularly
    if Microsoft dies off as a major player in the OS space, and RISC-V addresses some of its remaining shortcomings). The likely motivation for
    the move is that if ARM gains top position, they might become
    increasingly draconian and effectively drive everyone away (with RISC-V remaining as the "we don't need to answer to anyone" option).


    But, in the nearer term, x86-64 becomes easier to emulate but also less attractive to run on real hardware, as if Moore's Law ends, this may
    well shift power balances some and cause x86-64 to become a less
    attractive option (cores will need more power and area relative to computational power).

    Though, in-order vs OoO is a little closer it seems (more area and more power, but also, better performance per watt). But, then again, if one
    were clearly better in all regards, it would have won already, vs the current split:
      OoO for higher-performance higher-power-use devices;
      In-order for lower performance, lower-power devices.

    So, in much the same way, in-order doesn't currently hold in the server space, much as OoO can't capture the budget smartphone market.


    But, in the present, will anyone likely do much serious work with an
    FPGA based soft processor; Not really.



    But, we may be looking at a different situation in 2050.
      Though, early 2030s may see the rise of ARM in the PC space.
      Well, alongside a lot of older x86-64 PCs being kept alive...

    Probably also not going to be much around in terms of money or jobs for
    most people (just whatever they can get, and basic survival). Say, with whole "economy" thing going totally to crap (far worse than it is already).

    Well, and then say someone comes along flogging off post-scarcity
    economics via bowing down to an AI overlord, and UBI and such, but then
    it doesn't work and everything still goes totally to crap (as they
    didn't really fix anything, and the underlying system is still broken), ...

    ...


    But, such situations could shift the balances of power in the CPU space.

    Granted, different possibilities could emerge, say if:
      Moore's law doesn't end;
      Economy doesn't mostly collapse;
      ...


    Since ~2015 we can add
    smartphones to the list of machines that this marks are not intended to
    evaluate.

    For Dhrystone and Whetstone - interesting for historical comparisons
    and if/when the compiler does not optimize too aggresively. Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).

    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC:  First, it is paywalled.

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for
    qualified non profit organizations and $50 accredited academic
    institutions."

    So it would be 1000 Dollars for a volunteer co-developer of a
    compiler, like me.  Thanks, but no thanks - I draw the line
    somewhere.


    Yeah, if I had that much money to burn on stuff like this, could
    probably get a "Nexys Video" board or similar, would probably get more
    use out of this than I would get out of SPEC...


    But, alas, it may not matter.

    I can't do much, mostly just experiment with stuff, and hope it matters
    to someone with more resources to realize it as "something actually
    useful".

    ...


    I do not dare to do trend analysis. But I think OoO machines will make
    it into more devices based on the simple demand for better performance
    and lower power consumption. Also as the technology is better understood.

    One never can tell exactly what the future holds, suddenly a bolt of
    lightning appears and there is a new contender on the block. Every
    generation seems to have a new CPU.

    Not sure about the FPGA based soft-processor. The FPGA based processors
    can reach into the hundreds of MHz now. They may gain in possible
    applications if they gain better performance and power characteristics.

    I wonder if a local academic license for SPEC-CPU could be “borrowed” or rented. Seeing as it is only $50 for accredited academic institutions.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sat Mar 28 08:41:57 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    For Dhrystone and Whetstone - interesting for historical comparisons
    and if/when the compiler does not optimize too aggresively.

    To a certain extent, Whetstone is responsible for getting rid of
    interpreters and requiring compilers.

    Interesting.


    Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).

    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC: First, it is paywalled.

    In my opinion, SPEC should unpaywall all source not within 2 generations/releases of present.

    Second, they refuse to change sources or their verification
    conditions even when the code is wrong, and depends (for example)
    on re-ordering of an expression that compilers are allowed to do.

    To change wrong previous source would change everyone's results--
    including those no longer around--diminishing historical utility.

    That is clear (and was also made the argument by the SPEC
    person on the PR).

    The issue here is the check for what is considered "correct" as
    a a result. I'd have to look up the PR for details, but what
    they were checking was something like 1.0/10.0*10.0 >= 1, where
    the compiler, by the language definion, was allowed to rearrange
    terms, and rounding errots could lead to either results.

    This is a clear error in the program, which just happened to work.
    And for SPEC to shrug their shoulders and basically say "not our
    problem" - that was what I found unacceptable.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Sat Mar 28 04:09:41 2026
    From Newsgroup: comp.arch

    On 3/28/2026 1:21 AM, Robert Finch wrote:
    On 2026-03-27 9:59 p.m., BGB wrote:
    On 3/27/2026 4:38 PM, Thomas Koenig wrote:
    Michael S <already5chosen@yahoo.com> schrieb:
    On Thu, 26 Mar 2026 20:29:47 -0000 (UTC)
    Thomas Koenig <tkoenig@netcologne.de> wrote:

    Michael S <already5chosen@yahoo.com> schrieb:
    On Wed, 25 Mar 2026 13:59:02 -0700
    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:
    On 3/25/2026 11:31 AM, Thomas Koenig wrote:

    You could use coremark, https://github.com/eembc/coremark ,
    Whetstone https://www.netlib.org/benchmark/whetstone.c ,
    Dhrystone https://homepages.cwi.nl/~steven/dry.c or embench
    https://github.com/embench/embench-iot .

    Thank you Thomas.  I hoped someone (and I suspected you :-)) would >>>>>>> respond.

    My response is: those are toy benchmarks. Even 37 years ago people >>>>>> already recognize them as toys.

    Coremark was initially developed in 2009 (17 years ago), embench
    in 2019 (a bit less than seven years ago).  If somebody recognized
    them as toys 37 years ago, they had access to a time machine.


    I was talking about Dhrystone and Whetstone.
    Coremarks and embench were never intended to measure performance of
    Server/Workstation/PC class of computers.

    Does that mean that they are useless to run on these computers,
    and that no information can be gained from them?

    Also, it is not really clear if BGB's machine falls into
    server/workstation/PC class.


    Probably, the ISA could be used in theory on PC/workstation, but as-
    is, probably no...


    If it even saw use in mobile, this would probably be a big step up.

    If anything, it could make more sense for embedded and DSP.


    If I were to place bets, probably:
       Servers move to ARM;
       PC's follow maybe a short time later;
       Mobile then starts moving to RISC-V or similar;
       Probably followed by server and PCs.

    Likely with less inertia for ARM to RISC-V, as an x86-64 to ARM
    transition would have already greatly reduced the friction
    (particularly if Microsoft dies off as a major player in the OS space,
    and RISC-V addresses some of its remaining shortcomings). The likely
    motivation for the move is that if ARM gains top position, they might
    become increasingly draconian and effectively drive everyone away
    (with RISC-V remaining as the "we don't need to answer to anyone"
    option).


    But, in the nearer term, x86-64 becomes easier to emulate but also
    less attractive to run on real hardware, as if Moore's Law ends, this
    may well shift power balances some and cause x86-64 to become a less
    attractive option (cores will need more power and area relative to
    computational power).

    Though, in-order vs OoO is a little closer it seems (more area and
    more power, but also, better performance per watt). But, then again,
    if one were clearly better in all regards, it would have won already,
    vs the current split:
       OoO for higher-performance higher-power-use devices;
       In-order for lower performance, lower-power devices.

    So, in much the same way, in-order doesn't currently hold in the
    server space, much as OoO can't capture the budget smartphone market.


    But, in the present, will anyone likely do much serious work with an
    FPGA based soft processor; Not really.



    But, we may be looking at a different situation in 2050.
       Though, early 2030s may see the rise of ARM in the PC space.
       Well, alongside a lot of older x86-64 PCs being kept alive...

    Probably also not going to be much around in terms of money or jobs
    for most people (just whatever they can get, and basic survival). Say,
    with whole "economy" thing going totally to crap (far worse than it is
    already).

    Well, and then say someone comes along flogging off post-scarcity
    economics via bowing down to an AI overlord, and UBI and such, but
    then it doesn't work and everything still goes totally to crap (as
    they didn't really fix anything, and the underlying system is still
    broken), ...

    ...


    But, such situations could shift the balances of power in the CPU space.

    Granted, different possibilities could emerge, say if:
       Moore's law doesn't end;
       Economy doesn't mostly collapse;
       ...


    Since ~2015 we can add
    smartphones to the list of machines that this marks are not intended to >>>> evaluate.

    For Dhrystone and Whetstone - interesting for historical comparisons >>>>> and if/when the compiler does not optimize too aggresively. Since
    BGB's compiler is hand-made, that should not matter too much
    (no work by a single person can compete with the man-centuries
    that go into a major compiler).

    That's why SPEC was so successful
    when they published their first suite in 1989.

    I have two main gripes about SPEC:  First, it is paywalled.

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for >>>> qualified non profit organizations and $50 accredited academic
    institutions."

    So it would be 1000 Dollars for a volunteer co-developer of a
    compiler, like me.  Thanks, but no thanks - I draw the line
    somewhere.


    Yeah, if I had that much money to burn on stuff like this, could
    probably get a "Nexys Video" board or similar, would probably get more
    use out of this than I would get out of SPEC...


    But, alas, it may not matter.

    I can't do much, mostly just experiment with stuff, and hope it
    matters to someone with more resources to realize it as "something
    actually useful".

    ...


    I do not dare to do trend analysis. But I think OoO machines will make
    it into more devices based on the simple demand for better performance
    and lower power consumption. Also as the technology is better understood.

    One never can tell exactly what the future holds, suddenly a bolt of lightning appears and there is a new contender on the block. Every generation seems to have a new CPU.



    IMO, one can speculate so long as they don't take their speculations as absolutes, but rather probabilities.


    So, say, it seems like there are a few possible paths:
    Moore's Law continues as before, economy recovers.
    x86-64 continues due to prior inertia.
    Moore's Law stalls, economy recovers.
    ARM takes over.
    OoO likely remains dominant for performance-oriented cores.
    More's Law stalls, US economy collapses.
    Probably many people will be happy enough to get *anything*.
    Most likely in-order cores and RISC-V win longer term.
    ARM gaining intermediate dominance, before becoming a villain.
    Also PRC government doesn't like ARM...
    Cost and power-use become some of the dominant factors for CPUs.
    Peak performance, not as much...

    Latter scenario is in some ways the less desirable one, but can't be
    entirely ruled out (and at present is starting to seem like the more
    likely one).

    Granted, a lot still depends on which route China goes in this
    situation. They are invested a fair bit in RISC-V. Whereas, if US
    economy collapses, this would likely do a pretty big blow to both Intel
    and AMD.

    Decided to go see what Grok thinks, apparently it comes to a similar conclusion given a similar scenario.


    Well, one can place bets here:
    Does the US economy survive?
    Does DJT make it to the end of his current term?
    ...
    Roll d20...


    Not sure about the FPGA based soft-processor. The FPGA based processors
    can reach into the hundreds of MHz now. They may gain in possible applications if they gain better performance and power characteristics.


    Though getting these sorts of speeds need more expensive FPGAs.

    About the biggest/fastest FPGA I could probably get (and still use with
    the free version of Vivado) being the XC7A200T-2 that would come in the
    "Nexys Video".

    In some past dummy runs, I could push my cores up to 75 (more easily)
    and 100 MHz with this FPGA (but would still mostly be stuck at 50MHz for
    the XC7A100T-1).


    Issue: Can't really afford a Nexys Video at present either.

    Much of what little income I did have has dried up recently, so have
    needed to be more conservative with expenses.

    The Kintex FPGAs are faster, but most are not usable in the free version
    of Vivado.


    There is also the possibility of getting a DE-10, but past attempts did
    not show particularly efficient resource utilization for Intel/Altera
    FPGAs, and I would likely need some level of redesign here (also along
    with very different external interfaces vs the boards I have).

    Well, stuff like embedded ARM SoC's, a shared bus architectures, and
    hard RAM controllers. Vs the Spartan/Artix where they just sorta plug
    the RAM into normal IO pins and let the RAM controller run in terms of
    the FPGA fabric.



    I wonder if a local academic license for SPEC-CPU could be “borrowed” or rented. Seeing as it is only $50 for accredited academic institutions.


    Dunno there...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sat Mar 28 11:54:37 2026
    From Newsgroup: comp.arch

    On 2026-03-27, MitchAlsup <user5857@newsgrouper.org.invalid> wrote:

    quadi <quadibloc@ca.invalid> posted:

    On Fri, 27 Mar 2026 03:32:07 +0300, Michael S wrote:

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for
    qualified non profit organizations and $50 accredited academic
    institutions."

    What about someone (me) just screwing around that has nothing to do with academia, not necessarily non-profit, nor industrial or commercial.

    No exception there.

    Looking at

    https://spec.org/order/index.html

    they seem to have multiplied the number of benchmarks; for 1000 Dollars,
    you would only get a single one of their CPU benchmarks. They have 38
    current benchmarks for sale. Ordering all of them would set you back
    94500 Dollars.

    Sounds excessive if you ask me.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Sat Mar 28 13:56:24 2026
    From Newsgroup: comp.arch

    On 3/28/2026 6:54 AM, Thomas Koenig wrote:
    On 2026-03-27, MitchAlsup <user5857@newsgrouper.org.invalid> wrote:

    quadi <quadibloc@ca.invalid> posted:

    On Fri, 27 Mar 2026 03:32:07 +0300, Michael S wrote:

    Yes. But they are not very expensive. Their Web site says:
    "The SPEC CPU 2017 Benchmark price is $1000 for new customers, $250 for >>>> qualified non profit organizations and $50 accredited academic
    institutions."

    What about someone (me) just screwing around that has nothing to do with
    academia, not necessarily non-profit, nor industrial or commercial.

    No exception there.

    Looking at

    https://spec.org/order/index.html

    they seem to have multiplied the number of benchmarks; for 1000 Dollars,
    you would only get a single one of their CPU benchmarks. They have 38 current benchmarks for sale. Ordering all of them would set you back
    94500 Dollars.

    Sounds excessive if you ask me.

    Yeah... I don't have anywhere near that much...

    And, if I did, wouldn't burn it on benchmarks.

    ...


    While, say, I have a machine shop:
    Much of the money for this stuff was put up by my parents;
    Right now, it is still at a loss (has not recovered the cost of the
    machines and tools).

    Partly it was a case of no real work coming in (the companies that
    formerly wanted parts made having mostly "gone quiet" as of late).

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Sat Mar 28 19:23:55 2026
    From Newsgroup: comp.arch

    Robert Finch <robfi680@gmail.com> writes:
    I wonder if a local academic license for SPEC-CPU could be “borrowed” or >rented. Seeing as it is only $50 for accredited academic institutions.

    I don't think they will have SPEC CPU at your local university
    library, but I might be surprised.

    Another approach would be for you to do a research project with a
    university, then they could buy SPEC CPU for $50 as part of the
    project, and you could use it.

    Or you could just approach SPEC and tell them that you are a hobbyist,
    and if they have an appropriate price for that category (maybe with
    the addition that you won't submit official results, which probably is
    a large part of the cost that companies cause for SPEC).

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Sat Mar 28 20:47:47 2026
    From Newsgroup: comp.arch


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

    ERROR "unexpected byte sequence starting at index 102: '\xE2'" while decoding:

    Robert Finch <robfi680@gmail.com> writes:
    I wonder if a local academic license for SPEC-CPU could be “borrowed” or
    rented. Seeing as it is only $50 for accredited academic institutions.

    I don't think they will have SPEC CPU at your local university
    library, but I might be surprised.

    I would be surprised if any local university that does CPU research
    of any kind does not already have a PSEC benchmark suite, if not
    more than one.

    Another approach would be for you to do a research project with a
    university, then they could buy SPEC CPU for $50 as part of the
    project, and you could use it.

    As indicated above, it is most likely that they already have it;
    UNLESS you are starting off a new CPU research program by <say>
    teaching classes and running labs; in which case, $50 is incidental.

    Or you could just approach SPEC and tell them that you are a hobbyist,
    and if they have an appropriate price for that category (maybe with
    the addition that you won't submit official results, which probably is
    a large part of the cost that companies cause for SPEC).

    - anton
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Mon Mar 30 03:47:22 2026
    From Newsgroup: comp.arch

    On Sat, 28 Mar 2026 20:47:47 +0000, MitchAlsup wrote:

    As indicated above, it is most likely that they already have it; UNLESS
    you are starting off a new CPU research program by <say> teaching
    classes and running labs; in which case, $50 is incidental.

    It may well be that BGB is, somehow, in a position to take advantage of
    SPEC at a reasonable cost.

    But, if he is not, there's Dhrystone, Whetstone, Coremark, and Embench, according to an earlier post. I'd advise to take advantage of those,
    however inferior they may be, since that's something one can do without problems.

    Later on, if the results are encouraging, opportunities might arise.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Mon Mar 30 03:50:46 2026
    From Newsgroup: comp.arch

    On Mon, 30 Mar 2026 03:47:22 +0000, quadi wrote:

    On Sat, 28 Mar 2026 20:47:47 +0000, MitchAlsup wrote:

    As indicated above, it is most likely that they already have it; UNLESS
    you are starting off a new CPU research program by <say> teaching
    classes and running labs; in which case, $50 is incidental.

    It may well be that BGB is, somehow, in a position to take advantage of
    SPEC at a reasonable cost.

    But, if he is not, there's Dhrystone, Whetstone, Coremark, and Embench, according to an earlier post. I'd advise to take advantage of those,
    however inferior they may be, since that's something one can do without problems.

    Later on, if the results are encouraging, opportunities might arise.

    And, from the Embench web site, I see that it is at least claimed to be
    modern and superior to CoreMark and Dhrystone. Since it is for _embedded_ processors, and nothing is claimed relative to Whetstone, I presume it
    does not address floating-point performance.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Mar 31 00:53:22 2026
    From Newsgroup: comp.arch

    On Thu, 26 Mar 2026 11:16:27 +0000, quadi wrote:

    And then I saw an obvious tweak so that opcode space would be less fragmented.

    Additional header types have been added, primarily to allow for a security feature to control which instructions may be the target of a branch.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Mar 31 13:11:37 2026
    From Newsgroup: comp.arch

    On Tue, 31 Mar 2026 00:53:22 +0000, quadi wrote:

    Additional header types have been added, primarily to allow for a
    security feature to control which instructions may be the target of a
    branch.

    And now I've changed the restrictions which apply to the memory-reference instructions within a Type II header; restricting them to aligned operands allowed me to allow all 32 registers as destination registers.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stefan Monnier@monnier@iro.umontreal.ca to comp.arch on Tue Mar 31 12:21:05 2026
    From Newsgroup: comp.arch

    It may well be that BGB is, somehow, in a position to take advantage of
    SPEC at a reasonable cost.
    But, if he is not, there's Dhrystone, Whetstone, Coremark, and Embench, according to an earlier post.

    There's also the option of using SPEC just as a source of inspiration
    and make your own benchmarks using some of the same applications they
    use: many(most?) are Free Software.


    === Stefan
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Wed Apr 1 07:49:04 2026
    From Newsgroup: comp.arch

    On Tue, 31 Mar 2026 12:21:05 -0400, Stefan Monnier wrote:

    make your own benchmarks using some of the same applications they
    use: many(most?) are Free Software.

    Since the application of SPEC is to compare different CPU architectures,
    if it makes use of other applications in its testing, I suppose they would _have_ to be open-source programs... in order for it to be possible to
    compile them to run on the CPU architecture being benchmarked.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Wed Apr 1 07:58:24 2026
    From Newsgroup: comp.arch

    On 3/20/2026 9:44 PM, quadi wrote:
    On Fri, 20 Mar 2026 19:29:24 +0000, MitchAlsup wrote:

    quadi <quadibloc@ca.invalid> posted:

    On Thu, 19 Mar 2026 22:24:09 +0000, MitchAlsup wrote:

    Even given all the snipped below text--unless you can get ISA
    finished and get a compiler written, software ported and a
    microarchitecture built--it is nothing but a mental exercise.

    I can't argue with that; it is indisputable.

    But I needed to get the basis right before proceeding with the hard
    work.

    20 years ago I had similar notions. But my experience with My 66000
    changed my mind.
    a) you have to have a compiler that can compile most things
    so that you can see the deficiencies with your ISA
    b) you have to have /bin/utils/ mostly compiled to see whatever
    damage you have done to yourself in terms of external variables and
    functions; SBI into and out of your OS; SBI' into and out of your
    HyperVisor, ...

    And after using these for a while, go back and correct the ISA.

    If you fix ISA too soon you cut off much of your future.

    It may well be that when I get to the point of porting Linux, I'll find my current design is a disaster.

    I think you are undervaluing Mitch's (and also BGB's) advice. Look at
    it this way. Your plan is to wait until you port Linux to find any
    flaws in your architecture.

    But getting to that point is a lot of work, both in hardware design
    (memory system - caches, paging, including TLBs etc, hardware reset, I/O capabilities - you need these to boot, etc.) and software
    (developing/porting a compiler, compiling the C library, writing a BIOS,
    . . .).

    However, note that developing a working compiler is a part of that "to
    do" list. By doing that work, which you would have to do anyway,
    earlier in the design process, there are three possible outcomes.

    1. You find no problems and have developed the perfect architecture - possible, but with all due respect, not likely.

    2. You find that it is, as you say, a disaster. This will save you a
    lot of time wasted in doing the other stuff above for a disaster
    architecture.

    3. You find some things that could be improved, e.g. instructions that the compiler never generates, common instruction sequences that could be combined into a single, or a shorter sequence of, new instruction(s), etc.

    If #1, you haven't wasted anything, as you would have to do the work
    anyway. If #2, you will have saved yourself a lot of otherwise wasted
    time and effort. If #3, you will have improved your product with no
    work that you wouldn't have had to do anyway.

    I absolutely understand that developing/porting a compiler is a vastly different exercise than designing an ISA. And I also realize that you
    seem to prefer rearranging the bits in the ISA to the other tasks. I
    apologize in advance for saying this, but I am reminded of rearranging
    the deck chairs . . . :-( But if you are serious about trying to get something developed, it seems you should "adjust" you efforts.
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Wed Apr 1 19:14:05 2026
    From Newsgroup: comp.arch

    quadi <quadibloc@ca.invalid> schrieb:
    On Tue, 31 Mar 2026 12:21:05 -0400, Stefan Monnier wrote:

    make your own benchmarks using some of the same applications they
    use: many(most?) are Free Software.

    Since the application of SPEC is to compare different CPU architectures,
    if it makes use of other applications in its testing, I suppose they would _have_ to be open-source programs... in order for it to be possible to compile them to run on the CPU architecture being benchmarked.

    Supplied in source form <> open source.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Wed Apr 1 14:53:27 2026
    From Newsgroup: comp.arch

    On 4/1/2026 9:58 AM, Stephen Fuld wrote:
    On 3/20/2026 9:44 PM, quadi wrote:
    On Fri, 20 Mar 2026 19:29:24 +0000, MitchAlsup wrote:

    quadi <quadibloc@ca.invalid> posted:

    On Thu, 19 Mar 2026 22:24:09 +0000, MitchAlsup wrote:

    Even given all the snipped below text--unless you can get ISA
    finished and get a compiler written, software ported and a
    microarchitecture built--it is nothing but a mental exercise.

    I can't argue with that; it is indisputable.

    But I needed to get the basis right before proceeding with the hard
    work.

    20 years ago I had similar notions. But my experience with My 66000
    changed my mind.
    a) you have to have a compiler that can compile most things
        so that you can see the deficiencies with your ISA
    b) you have to have /bin/utils/ mostly compiled to see whatever
        damage you have done to yourself in terms of external variables and >>>     functions; SBI into and out of your OS; SBI' into and out of your >>>     HyperVisor, ...

    And after using these for a while, go back and correct the ISA.

    If you fix ISA too soon you cut off much of your future.

    It may well be that when I get to the point of porting Linux, I'll
    find my
    current design is a disaster.

    I think you are undervaluing Mitch's (and also BGB's) advice.  Look at
    it this way.  Your plan is to wait until you port Linux to find any
    flaws in your architecture.

    But getting to that point is a lot of work, both in hardware design
    (memory system - caches, paging, including TLBs etc, hardware reset, I/O capabilities - you need these to boot, etc.) and software (developing/ porting a compiler, compiling the C library, writing a BIOS, . . .).

    However, note that developing a working compiler is a part of that "to
    do" list.  By doing that work, which you would have to do anyway,
    earlier in the design process, there are three possible outcomes.


    By writing a compiler (and emulator), you can also see where a lot of
    flaws lie.
    As well as deficiencies, where improvements could help...
    And, also, what corners can be cut.

    Though, the latter can also be done by analysis or emulation as well (if
    a feature is basically never used, it can be dropped without much impact).

    Even an assembler + emulator can be a good start, and an assembler can
    be easier than a full C compiler.



    Say, for example, my current high-probability list of "may fall back to emulating if I were to do it again" (if implementing RISC-V support again):
    JAL and JALR with Rd other than X0/X1 (pretty much never used);
    REM and REMW (rare).

    Whether or not to omit DIV/DIVW is on the fence:
    Option 1:
    Only MULW (32b) exists;
    Issue: RISC-V lacks widening multiply, so kinda needs MUL and MULHU.
    Where: MUL (64b), DIV, DIVW, REM, REMW are traps.
    Option 2:
    Have MULW, MUL, DIVW, and DIV;
    If one pays cost for a Shift-and-ADD module, they can do both;
    Unit naturally produces REM result as well, but...
    REM is rarely used enough to almost not be worth it.
    But, if one has DIV, it is near equal cost.

    In XG1/2/3, fastest strategy to do a larger multiply was to implement it
    using 32*32 => 64 bit multiply.

    On RV, only natively supported option is MUL and MULH/MULHU. This works, though ironically building a large 128-bit multiplier this way is slower
    than using the 32-bit multipliers.



    As well as, already back to trap-and-emulate:
    Pretty much all of the 'AMO*' instructions;
    FDIV.x
    Had supported it with the Shift-Add unit;
    On average, patching it to an N-R function can be faster.
    FSQRT.x
    Doing this in HW in a way that "doesn't suck" is a problem;
    Patching and N-R is faster than prior attempts at HW sqrt.
    ...

    Granted, non-patched trap-and-emulate is slower than the attempts to do
    this in hardware.


    If I were to do a clean-slate for XG3, might drop some stuff and do some things differently, but a little stuck on some points (mostly would be reorganizing parts of the listing to be more coherent). Some changes I
    ended up making initially I ended up back-tracking on as they would have created too much pain for doing everything with shared decoders
    (reorganizing the instruction listings is a bridge too far).


    Still likely better off than where I would be if I were just designing everything solely based on intuition.

    As noted, I originally picked SH-4 as a starting point rather than
    RISC-V (SH-4 had seemed "better" but was actually far worse in some
    ways). But, had I picked RISC-V to start out with, none of this would
    exist...


    Nevermind if the ISA projects convergent evolved enough that it started
    to seem sane to glue them together into some sort of chimera ISA...



    1.    You find no problems and have developed the perfect architecture - possible, but with all due respect, not likely.

    2.    You find that it is, as you say, a disaster.  This will save you a lot of time wasted in doing the other stuff above for a disaster architecture.

    3.    You find some things that could be improved, e.g. instructions
    that the compiler never generates, common instruction sequences that
    could be combined into a single, or a shorter sequence of, new instruction(s), etc.

    If #1, you haven't wasted anything, as you would have to do the work anyway.  If #2, you will have saved yourself a lot of otherwise wasted
    time and effort.  If #3, you will have improved your product with no
    work that you wouldn't have had to do anyway.

    I absolutely understand that developing/porting a compiler is a vastly different exercise than designing an ISA. And I also realize that you
    seem to prefer rearranging the bits in the ISA to the other tasks. I apologize in advance for saying this, but I am reminded of rearranging
    the deck chairs . . . :-(   But if you are serious about trying to get something developed, it seems you should "adjust" you efforts.


    Yes, basically the major point that can be made here...

    Needless complexity that mostly amounts to endlessly moving the
    furniture around doesn't really tend to amount to much.





    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 04:12:36 2026
    From Newsgroup: comp.arch

    On Wed, 01 Apr 2026 07:58:24 -0700, Stephen Fuld wrote:

    And I also realize that you
    seem to prefer rearranging the bits in the ISA to the other tasks.

    Aside from it being easier... until now, I've been very dissatisfied with
    my attempts at a new, practical ISA. They just weren't really achieving
    the goals I had set for myself.

    The basic goal grew out of these observations:

    a) these days, nearly all architectures are RISC architectures. Existing
    CISC architectures are legacy architectures, kept around because a lot of software was written for them. And there are basically just two of them:
    x86 and z/Architecture. 680x0 is kept alive by Amiga enthusiasts, but I
    don't think that really counts.

    b) CISC architectures have some advantages over RISC. For example, on the
    IBM 360, a register-to-register operate instruction takes up 16 bits,
    while on a typical RISC architecture, it takes up 32 bits.

    So I wanted to create something that combined the advantages of CISC and
    RISC.

    Because I can only squeeze 16 possibilities into four bits, 256
    possibilities into eight bits, 65,536 possibilities into sixteen bits, and
    so on, though, I kept having to compromise one part or another of my
    design more severely than I could be content with. It's taken years to get where I am now.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 05:51:37 2026
    From Newsgroup: comp.arch

    On Fri, 03 Apr 2026 04:12:36 +0000, quadi wrote:

    So I wanted to create something that combined the advantages of CISC and RISC.

    Your post reminded me of the character flaw I have that has been another
    part of why every previous iteration of Concertina II was DOOMED.

    I am, apparently, GREEDY. No matter how close an iteration of Concertina
    II gets to my goals, I always want MORE! So I keep modifying it to squeeze more in, until it becomes clearly apparent that the design has become ridiculously complex, and will collapse under its own weight.

    This has happened again... I am about to update my web site to include a modification to Concertina II in order to more fully approach my goal of
    being able to do everything that either CISC or RISC does,

    If I had 1/16 of the potential opcode space available, remedying this
    omission would be very simple. I would just have a block format which consisted of a four-bit prefix, and fourteen 18-bit regions, in which 18-
    bit and 36-bit instructions could be placed. Then I could have both the
    full 17-bit short instruction format and memory-reference instructions
    with two extra bits so that I could have operate memory-reference
    instructions and not just load and store memory-reference instructions.

    But I _don't_ have that much opcode space available. What remains of the possible opcode space is just tiny dregs compared to that.

    But it is enough to have a header and... fourteen 17-bit regions.

    This allows me two choices.

    I could have the 17-bit register-to-register operate instructions, but no other short instructions. They can begin with anything but 11. In a 34-bit space, 11 can be followed by any combination of 32 bits.

    Or, I could have 34-bit memory-to-register operate instructions. I just
    have to add two bits to a memory-to-register load and store instruction to increase its opcode from five bits to seven, enough for the standard
    operate instructions. There's no room for a C bit to indicate if the instruction updates the condition codes, but CISC architectures didn't
    have one of those anyways.

    I can have one, but not both.

    Except I still have four bits left that I can use.

    So the first bit will indicate which choice is made for instructions that begin in the first two 17-bit regions, and the remaining three will each indicate which choice is made for instructions that begin in groups of
    four 17-bit regions.

    It's not exactly the full IBM System/360 programming experience, but it
    comes as close as I can get.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 07:04:54 2026
    From Newsgroup: comp.arch

    On Fri, 03 Apr 2026 05:51:37 +0000, quadi wrote:

    It's not exactly the full IBM System/360 programming experience, but it
    comes as close as I can get.

    While it made sense to want to keep the header overhead to a minimum, observing the placement restrictions would be... difficult... for a
    compiler to do automatically. Hence, I had to accompany this new header by another version, 48 bits long instead of 32 bits long, which didn't impose
    any placement restrictions.

    That way, the compiler or the code generator can just spew out
    instructions belonging to the subset these headers provide, and the one
    with the placement restrictions but lower overhead can be used whenever
    the sequence of generated instructions fortuitously happens to meet the placement restrictions. A compiler can do that much.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Fri Apr 3 14:48:40 2026
    From Newsgroup: comp.arch

    In article <10qnenk$1lc5c$1@dont-email.me>, quadibloc@ca.invalid (quadi)
    wrote:

    b) CISC architectures have some advantages over RISC. For example,
    on the IBM 360, a register-to-register operate instruction takes up
    16 bits, while on a typical RISC architecture, it takes up 32 bits.

    I think you need to analyse the properties of what you're calling RISC
    and CISC a bit more carefully.

    For example, the core instruction set of the IBM 360 is practical to use
    as a load-store architecture, whereas the x86 is not, because it has too
    few registers. RISCs are invariably load-store.

    Simple register-register operations will fit into 16-bit instructions,
    provided you have 16 or fewer general-purpose registers, and you'll
    settle for two-operand instructions. Is that a good enough reason for
    limiting yourself to 16 registers? Quite a few designs have decided not,
    but some have, such as SuperH, usually because they wanted very compact
    code.

    You also need to consider what kind of usage you're designing for. You
    seem to be going for "general-purpose computing," meaning fast desktops
    and servers compatible with them. That's a market where the ISA, at
    present, controls what software you have readily available, and how
    difficult the implementation is, but doesn't have a drastic effect on performance.

    Performance is largely a question of the processor implementation and the
    cache and memory performance, not the ISA. ISAs can make things slower,
    see Itanium, but they don't seem able to make things faster. At present.

    You're trying to unify two styles of ISA, but neither style is really well-defined. You keep coming up with concepts that seem extremely
    complicated, whereas good engineering concepts are usually simple.
    However, you are doing fairly well at enumerating the consequences of
    changes. You can use that as a research process.

    To do that, you need to analyse your concepts more carefully and reduce
    them to a number of simple requirements. See what comes from that. Then
    try discarding some of them, one at a time, to see what changes.

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Fri Apr 3 07:53:49 2026
    From Newsgroup: comp.arch

    On 4/2/2026 9:12 PM, quadi wrote:
    On Wed, 01 Apr 2026 07:58:24 -0700, Stephen Fuld wrote:

    And I also realize that you
    seem to prefer rearranging the bits in the ISA to the other tasks.

    Aside from it being easier... until now, I've been very dissatisfied with
    my attempts at a new, practical ISA. They just weren't really achieving
    the goals I had set for myself.

    The basic goal grew out of these observations:

    a) these days, nearly all architectures are RISC architectures. Existing
    CISC architectures are legacy architectures, kept around because a lot of software was written for them. And there are basically just two of them:
    x86 and z/Architecture. 680x0 is kept alive by Amiga enthusiasts, but I
    don't think that really counts.

    b) CISC architectures have some advantages over RISC. For example, on the
    IBM 360, a register-to-register operate instruction takes up 16 bits,
    while on a typical RISC architecture, it takes up 32 bits.

    Yes, but . . . S/360 had 16 GPRs, thus register number was encoded in 4
    bits. The technology has changed (mostly the speed difference between
    logic and memory) causing most of the leading RISC systems have 32 GPRs,
    (to reduce memory accesses) which requires five bits to encode. That
    wouldn't fit in a 16 bit instruction.

    So I wanted to create something that combined the advantages of CISC and RISC.

    But given today's technology, that advantage of CISC has been overtaken
    such that restricting yourself to 16 registers leads to more
    instructions to do the work and thus worse performance.
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Fri Apr 3 14:58:04 2026
    From Newsgroup: comp.arch


    quadi <quadibloc@ca.invalid> posted:

    On Wed, 01 Apr 2026 07:58:24 -0700, Stephen Fuld wrote:

    And I also realize that you
    seem to prefer rearranging the bits in the ISA to the other tasks.

    Aside from it being easier... until now, I've been very dissatisfied with
    my attempts at a new, practical ISA. They just weren't really achieving
    the goals I had set for myself.

    The basic goal grew out of these observations:

    a) these days, nearly all architectures are RISC architectures. Existing CISC architectures are legacy architectures, kept around because a lot of software was written for them. And there are basically just two of them:
    x86 and z/Architecture. 680x0 is kept alive by Amiga enthusiasts, but I don't think that really counts.

    b) CISC architectures have some advantages over RISC. For example, on the IBM 360, a register-to-register operate instruction takes up 16 bits,
    while on a typical RISC architecture, it takes up 32 bits.

    So I wanted to create something that combined the advantages of CISC and RISC.

    So did I. My 66000 is a near-RISC architecture that incorporates
    several CISC-like pieces of functionality. However, I include
    nothing that prevents multi-instruction decoding, or instructions
    that require both Memory and Calculation--and most importantly
    nothing that prevents the pipelining of instructions. The final
    point means that one can implement a small 1-wide IO machine as
    well as multiple GBOoO machines.

    While it may incorporate things not normally considered RISC, it
    does not "break the camels back" either.

    In addition, it has a fully defined MMU, interconnect bus architecture, HostBridge and PCIe trees to peripheral devices, and its own overhead
    free interrupt system. These, combined, take as long to develop as the
    ISA and compiler. While working on these, I found several deficiencies
    in ISA !!

    Because I can only squeeze 16 possibilities into four bits, 256 possibilities into eight bits, 65,536 possibilities into sixteen bits, and so on, though, I kept having to compromise one part or another of my
    design more severely than I could be content with. It's taken years to get where I am now.

    Count fewer bits, find more entropy.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Fri Apr 3 15:08:19 2026
    From Newsgroup: comp.arch


    jgd@cix.co.uk (John Dallman) posted:

    In article <10qnenk$1lc5c$1@dont-email.me>, quadibloc@ca.invalid (quadi) wrote:

    b) CISC architectures have some advantages over RISC. For example,
    on the IBM 360, a register-to-register operate instruction takes up
    16 bits, while on a typical RISC architecture, it takes up 32 bits.

    I think you need to analyse the properties of what you're calling RISC
    and CISC a bit more carefully.

    For example, the core instruction set of the IBM 360 is practical to use
    as a load-store architecture, whereas the x86 is not, because it has too
    few registers. RISCs are invariably load-store.

    Simple register-register operations will fit into 16-bit instructions, provided you have 16 or fewer general-purpose registers, and you'll
    settle for two-operand instructions. Is that a good enough reason for limiting yourself to 16 registers? Quite a few designs have decided not,
    but some have, such as SuperH, usually because they wanted very compact
    code.

    You also need to consider what kind of usage you're designing for. You
    seem to be going for "general-purpose computing," meaning fast desktops
    and servers compatible with them. That's a market where the ISA, at
    present, controls what software you have readily available, and how
    difficult the implementation is, but doesn't have a drastic effect on performance.

    Performance is largely a question of the processor implementation and the cache and memory performance, not the ISA. ISAs can make things slower,
    see Itanium, but they don't seem able to make things faster. At present.

    One of the fascinating things I keep running into with My 66000 is that removing instructions does not, in any large way, shorten the critical
    path through code--except in the case where LD instructions get converted
    into constant operands leaving only a stream of calculation instructions.

    You're trying to unify two styles of ISA, but neither style is really well-defined. You keep coming up with concepts that seem extremely complicated, whereas good engineering concepts are usually simple.
    However, you are doing fairly well at enumerating the consequences of changes. You can use that as a research process.

    To do that, you need to analyse your concepts more carefully and reduce
    them to a number of simple requirements. See what comes from that. Then
    try discarding some of them, one at a time, to see what changes.

    Well stated!

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 16:00:06 2026
    From Newsgroup: comp.arch

    On Fri, 03 Apr 2026 07:53:49 -0700, Stephen Fuld wrote:

    But given today's technology, that advantage of CISC has been overtaken
    such that restricting yourself to 16 registers leads to more
    instructions to do the work and thus worse performance.

    But I don't restrict myself to 16 registers, I have 32 registers just like RISC! Which is exactly why it was so incredibly difficult to fit the
    complete ISA into the bits available.

    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 16:28:42 2026
    From Newsgroup: comp.arch

    On Fri, 03 Apr 2026 15:08:19 +0000, MitchAlsup wrote:
    jgd@cix.co.uk (John Dallman) posted:
    In article <10qnenk$1lc5c$1@dont-email.me>, quadibloc@ca.invalid
    (quadi) wrote:

    b) CISC architectures have some advantages over RISC. For example, on
    the IBM 360, a register-to-register operate instruction takes up 16
    bits, while on a typical RISC architecture, it takes up 32 bits.

    I think you need to analyse the properties of what you're calling RISC
    and CISC a bit more carefully.

    For example, the core instruction set of the IBM 360 is practical to
    use as a load-store architecture, whereas the x86 is not, because it
    has too few registers. RISCs are invariably load-store.

    Simple register-register operations will fit into 16-bit instructions,
    provided you have 16 or fewer general-purpose registers, and you'll
    settle for two-operand instructions. Is that a good enough reason for
    limiting yourself to 16 registers? Quite a few designs have decided
    not, but some have, such as SuperH, usually because they wanted very
    compact code.

    At one point, I was going to start on Concertina III as a CISC design with
    16 registers. But for what I was doing, it seemed as though the 16-bit
    short instructions, and the memory-reference instructions which saved one
    bit (still using 3-bit fields for index and base registers) wouldn't fit
    in a single opcode space - so I turned back to Concertina II, and had unexpected success in *finally* squeezing everything in.

    You also need to consider what kind of usage you're designing for. You
    seem to be going for "general-purpose computing," meaning fast desktops
    and servers compatible with them. That's a market where the ISA, at
    present, controls what software you have readily available, and how
    difficult the implementation is, but doesn't have a drastic effect on
    performance.

    One of the possible applications of my ISA is definitely general-purpose computing.

    But I've thrown in the instructions the System/360 had that today's microprocessors tend not to have, so there's some database goodess.

    I've thrown in vector instructions - not _only_ the common SIMD type, but
    also ones similar to the ones of the Cray I. So no-holds-barred speed-
    focused scientific computing is an application area I've attempted to
    address.

    And I have a header format that lets me predicate instructions and
    explicitly indicate parallelism. On top of that, I have instructions that
    use banks of 128 registers instead of 32. That's a hallmark of a VLIW instruction set, aimed at embedded systems without enough transistors for
    OoO.

    So my focus does seem vague.

    But your mention of how difficult it is to get into general-purpose
    computing, since Windows demands x86 and Android demands ARM to get at
    each one's respective immense pool of software... actually reveals my motivation for attempting my insane ISA which is, as noted before, "architecture-agnostic".

    Remember the movie Highlander. "There can be only one." If the market
    dynamics of software availability promote consolidation on a single ISA,
    then that ISA really ought to... do everything and therefore satisfy
    everyone.

    The ISA admits of different types of implementations. Subset
    implementations are possible, and so are implementations that perform a
    subset of the instructions efficiently, and throw the rest to microcode.

    The intention is basically to make it possible for one software ecosystem
    to embrace all possible use cases for a computer.

    Performance is largely a question of the processor implementation and
    the cache and memory performance, not the ISA. ISAs can make things
    slower, see Itanium, but they don't seem able to make things faster. At
    present.

    The Itanium was definitely overcomplicated. Because of that, assembly-
    language programming for the Itanium would have been daunting for most programmers.

    While one can just wave one's hand and say "Everybody uses compilers these days", a little assembly code is usually needed to get things started.

    But the Itanium design was _intended_ to make things faster. Lots of registers. Explicit indication of when instructions can execute in
    parallel. So one attains part of the advantage of OoO without OoO and its complexity.

    This was very attractive at the time: one of the iterations of the Itanium
    was the first microprocessor to have over one billion transistors. So if
    it already had an immense number of transistors, but that wasn't enough
    for an OoO implementation - getting performance any way you could makes
    sense.

    I do believe that Ivan Godard, though, explained that the Itanium did fail
    in achieving the performance goals it hoped for. I include banks of 128 registers, and block headers that allow instructions to be labelled as to whether or not they can be executed in parallel, so my ISA allows for a non-OoO implementation which uses those block types to achieve increased performance.

    So by combining RISC, CISC, _and_ VLIW, I have produced the first ISA for
    an "architecture-agnostic" computer, something it was not imagined that
    could possibly exist. I do that, though, by only making modest additions
    to an ordinary ISA, instead of having three completely independent
    instruction sets for a real waste of opcode space.

    One of the fascinating things I keep running into with My 66000 is that removing instructions does not, in any large way, shorten the critical
    path through code--except in the case where LD instructions get
    converted into constant operands leaving only a stream of calculation instructions.

    You're trying to unify two styles of ISA, but neither style is really
    well-defined. You keep coming up with concepts that seem extremely
    complicated, whereas good engineering concepts are usually simple.
    However, you are doing fairly well at enumerating the consequences of
    changes. You can use that as a research process.

    To do that, you need to analyse your concepts more carefully and reduce
    them to a number of simple requirements. See what comes from that. Then
    try discarding some of them, one at a time, to see what changes.

    Well stated!

    For some reason, John Dallman's post didn't show up on my server, at least
    not quite yet.

    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Fri Apr 3 17:35:40 2026
    From Newsgroup: comp.arch

    In article <1775228899-5857@newsgrouper.org>,
    user5857@newsgrouper.org.invalid (MitchAlsup) wrote:

    To do that, you need to analyse your concepts more carefully and
    reduce them to a number of simple requirements. See what comes
    from that. Then try discarding some of them, one at a time, to
    see what changes.

    Well stated!

    Thanks! I found a way to describe what I've done in my more successful
    pieces of design, and it seemed worth writing down.

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 17:54:29 2026
    From Newsgroup: comp.arch

    On Fri, 03 Apr 2026 05:51:37 +0000, quadi wrote:

    This has happened again... I am about to update my web site to include a modification to Concertina II in order to more fully approach my goal of being able to do everything that either CISC or RISC does,

    And I've now added an additional type of header. I should have expected
    that to happen, since obviously having thirteen types of header is unlucky!

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Fri Apr 3 19:49:40 2026
    From Newsgroup: comp.arch

    In article <10qoprp$23e9$2@dont-email.me>, quadibloc@ca.invalid (quadi)
    wrote:

    But I've thrown in the instructions the System/360 had that today's microprocessors tend not to have, so there's some database goodess.

    You definitely ought to find out how much those instructions are used in today's descendants of System/360. While the 360 was a more carefully
    designed architecture than its predecessors, it was by no means perfect.

    I've thrown in vector instructions - not _only_ the common SIMD
    type, but also ones similar to the ones of the Cray I. So
    no-holds-barred speed-focused scientific computing is an
    application area I've attempted to address.

    Those features did not establish a continuing lineage in ISAs. Modern
    commodity microprocessors vastly outperform the Cray-1, and modern supercomputers are built out of them.

    Effective engineering involves _compromises_. By refusing to compromise
    in favour of simplicity, you're ignoring decades of practical experience,


    And I have a header format that lets me predicate instructions and explicitly indicate parallelism. On top of that, I have
    instructions that use banks of 128 registers instead of 32. That's
    a hallmark of a VLIW instruction set, aimed at embedded systems
    without enough transistors for OoO.

    Is there a market for such processors? If so, what is currently failing
    to meet the needs of that market?

    But your mention of how difficult it is to get into general-purpose computing, since Windows demands x86 and Android demands ARM to get
    at each one's respective immense pool of software...

    That isn't as clear as you seem to think. Android exists for x86, and is
    used for a few purposes that don't require running from battery power.

    Windows exists for ARM, and is slowly gaining market share. It isn't
    mainstream yet, but nor has it failed, although Microsoft's early errors
    in marketing it have not helped.

    The meaningful difference between ARM and x86 in today's market is "how
    much battery life do you need, and how large a battery can you fit in the device?"

    If the market dynamics of software availability promote consolidation
    on a single ISA,

    This is unproven. Several companies have tried to do this over history,
    but none have succeeded.

    then that ISA really ought to... do everything and therefore satisfy everyone.

    That is self-contradictory. An ISA that does everything will inevitably
    need more transistors to implement than one suited to only some roles.
    That means it will cost more, and will be selected against in device
    design.

    The ISA admits of different types of implementations. Subset
    implementations are possible, and so are implementations that
    perform a subset of the instructions efficiently, and throw the
    rest to microcode.

    This will still be far more complex than an ARM Cortex-M0.

    The Itanium was definitely overcomplicated. Because of that, assembly-language programming for the Itanium would have been
    daunting for most programmers.

    That wasn't the hard part. It was pretty comprehensible, at the assembler level. I only wrote tiny amounts of Itanium assembler, but I read a _lot_
    of it in the the debuggers while digging out compiler bugs

    But the Itanium design was _intended_ to make things faster. Lots
    of registers. Explicit indication of when instructions can execute
    in parallel. So one attains part of the advantage of OoO without
    OoO and its complexity.

    It was indeed, intended to be faster. It demonstrated very clearly that
    just throwing resources at the problem and expecting the compiler to make
    use of them all can fail very comprehensively.

    This was very attractive at the time: one of the iterations of the
    Itanium was the first microprocessor to have over one billion
    transistors. So if it already had an immense number of transistors,
    but that wasn't enough for an OoO implementation - getting
    performance any way you could makes sense.

    Except that AMD's OoO Opteron, with fewer transistors and less advanced manufacturing, outperformed Itanium McKinley significantly.

    I'm not repeating other's statements here. I ported the same mathematical modelling software to both platforms. The Opteron kit was much simpler,
    used less power, and ran faster. Getting the software working well on
    Opteron was under 5% of the work it had taken for Itanium.

    Itanium was a comprehensive failure. The descendants of Opteron dominate today's computing. Itanium was confined to niche markets within a few
    years of its launch, and is now discontinued. If you're imitating Itanium design without a _lot_ of insight into what went wrong with it, you are
    heading in the wrong direction.

    The technical virtues of Opteron meant that the smaller company, AMD,
    defeated the larger company, Intel. Intel weren't half-hearted about
    Itanium. For several years they were utterly committed to it. But they
    had the choice of producing Opteron-compatibles or loosing their main
    markets to AMD.

    I do believe that Ivan Godard, though, explained that the Itanium
    did fail in achieving the performance goals it hoped for.

    It did. Utterly. Intel did not try to redesign and revive it. They seem
    to have understood that it was the wrong approach. They did continue to
    produce it until 2021, but their development work on it was quite
    limited.

    I include banks of 128 registers, and block headers that allow
    instructions to be labelled as to whether or not they can be
    executed in parallel, so my ISA allows for a non-OoO implementation
    which uses those block types to achieve increased performance.

    Well, the number of people with Itanium experience who are still working
    is shrinking. So this may not be a huge disadvantage for you. But anyone
    who does have that experience will be extra-sceptical of your design. It
    smacks of imitation without understanding.

    So by combining RISC, CISC, _and_ VLIW, I have produced the first
    ISA for an "architecture-agnostic" computer, something it was not
    imagined that could possibly exist. I do that, though, by only
    making modest additions to an ordinary ISA, instead of having three completely independent instruction sets for a real waste of opcode
    space.

    You have not, however, done any testing of the design, such as creating a simulator or a compiler. Without that work, your design is very much conceptual, and of doubtful practicality.

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 20:37:27 2026
    From Newsgroup: comp.arch

    On Fri, 03 Apr 2026 19:48:00 +0100, John Dallman wrote:

    Those features did not establish a continuing lineage in ISAs. Modern commodity microprocessors vastly outperform the Cray-1, and modern supercomputers are built out of them.

    As computers developed, they added features. Hardware multiply, floating point. When vector arithmetic was added within the Cray I, that made it a
    more powerful computer.

    At least one processor similar to the Cray I is in current production -
    the NEC SX-Aurora TSUBASA.

    Modern supercomputers are built of thousands of commodity microprocessors.
    If each CPU core could be a supercomputer in its own right, that would
    make supercomputers built from them more powerful.

    Is there a market for such processors? If so, what is currently failing
    to meet the needs of that market?

    The TMS320C6000 is still around. The idea isn't to make something to
    replace it, but to offer its useful feature within a general-purpose
    computer, so the same ISA can be used everywhere.

    That isn't as clear as you seem to think. Android exists for x86, and is
    used for a few purposes that don't require running from battery power.

    Windows exists for ARM, and is slowly gaining market share. It isn't mainstream yet, but nor has it failed, although Microsoft's early errors
    in marketing it have not helped.

    I'm aware of this, but oversimplified for space.

    The meaningful difference between ARM and x86 in today's market is "how
    much battery life do you need, and how large a battery can you fit in
    the device?"

    To the extent that this is true, it's because of advances in Just-in-Time compilation, so that binaries for other processors can be used without a crippling speed penalty, not because operating systems have been ported to other architectures.

    You have not, however, done any testing of the design, such as creating
    a simulator or a compiler. Without that work, your design is very much conceptual, and of doubtful practicality.

    That's certainly true enough. I hope to now be in a position to spend time fleshing out the ISA specification. Once I have an ISA defined, I can then
    try to do things for it.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Fri Apr 3 22:03:52 2026
    From Newsgroup: comp.arch


    jgd@cix.co.uk (John Dallman) posted:

    In article <10qoprp$23e9$2@dont-email.me>, quadibloc@ca.invalid (quadi) wrote:

    But I've thrown in the instructions the System/360 had that today's microprocessors tend not to have, so there's some database goodess.

    You definitely ought to find out how much those instructions are used in today's descendants of System/360. While the 360 was a more carefully designed architecture than its predecessors, it was by no means perfect.

    I've thrown in vector instructions - not _only_ the common SIMD
    type, but also ones similar to the ones of the Cray I. So
    no-holds-barred speed-focused scientific computing is an
    application area I've attempted to address.

    Those features did not establish a continuing lineage in ISAs. Modern commodity microprocessors vastly outperform the Cray-1, and modern supercomputers are built out of them.

    There are currently 2 established schools of thought:
    a) SIMD is the way forward--it only requires OpCodes×DataSizes of instructions.
    b) CRAY-vectors--it only requires OpCodes×DataSizes plus some vector-
    masking facility.
    both result in thousands of instructions in ISA
    neither can be considered RISC

    SIMD only works when the vector data is dense (opposite of scatter/gather.) CRAY-vector only works when vector length can 'absorb' memory latency.
    Neither seems to be true <rather> universally today.

    Effective engineering involves _compromises_. By refusing to compromise
    in favour of simplicity, you're ignoring decades of practical experience,

    And in the view of some of us; wasting time--but it is your time so do
    as you please.

    And I have a header format that lets me predicate instructions and explicitly indicate parallelism. On top of that, I have
    instructions that use banks of 128 registers instead of 32. That's
    a hallmark of a VLIW instruction set, aimed at embedded systems
    without enough transistors for OoO.

    Is there a market for such processors?

    Only if he ever gets done, develops compilers and SW, and then also
    develops chips which can be bought and used as designed.

    If so, what is currently failing
    to meet the needs of that market?

    For a new product, there are 3 potentials:
    a) significantly higher performance
    b) significantly lower power
    c) significantly lower cost

    But your mention of how difficult it is to get into general-purpose computing, since Windows demands x86 and Android demands ARM to get
    at each one's respective immense pool of software...

    No one is going to set a foot down in the general purpose market without
    first setting up some other market foothold.

    That isn't as clear as you seem to think. Android exists for x86, and is
    used for a few purposes that don't require running from battery power.

    Windows exists for ARM, and is slowly gaining market share.

    I might note: W11 is losing Windows market share while Linux doubled its
    market share last year.

    It isn't mainstream yet, but nor has it failed, although Microsoft's early errors
    in marketing it have not helped.

    The meaningful difference between ARM and x86 in today's market is "how
    much battery life do you need, and how large a battery can you fit in the device?"

    If the market dynamics of software availability promote consolidation
    on a single ISA,

    This is unproven. Several companies have tried to do this over history,
    but none have succeeded.

    then that ISA really ought to... do everything and therefore satisfy everyone.

    That is self-contradictory. An ISA that does everything will inevitably
    need more transistors to implement than one suited to only some roles.
    That means it will cost more, and will be selected against in device
    design.

    It also means it takes longer for each iteration--including the one that
    first brings it to market--loosing out on whatever performance, power, or
    cost advantage it had back when you started {6+ years ago.}

    Looking back on the first generation of RISC (1983-ish): Mediocracy
    First Wins. BUT only if it is compelling to SW already present in
    the market.

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 23:35:26 2026
    From Newsgroup: comp.arch

    I have realized, on further thought, that not having a C bit to turn on or
    off changing the condition codes is too violent a departure from the RISC nature of much of Concertina II. It's very important to be able to delay a branch instruction until some time after the condition code it uses was
    set, so as to allow the pipeline to work well.
    So I've modified the format of the 34-bit memory-to-register operate instructions to add in a C bit, at the cost of only letting them use the
    first sixteen registers as destinations.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 3 23:45:41 2026
    From Newsgroup: comp.arch

    On Fri, 03 Apr 2026 22:03:52 +0000, MitchAlsup wrote:

    And in the view of some of us; wasting time--but it is your time so do
    as you please.

    I think I should note that my ambitions are somewhat modest.

    Although many people feel that x86 is somewhat flawed, of course even a
    major corporation with billions of dollars behind it would find it
    difficult to dethrone it.

    Instead, to the extent I have a _practical_ goal, it would be to provide
    an alternative to RISC-V. The mechanism RISC-V uses to allow instructions longer than 32 bits seems to me to be flawed in that it doesn't seem to me
    to be conducive to high code density. Commercial instruction sets, like
    that of the PowerPC on the RISC side, or 680x0 on the RISC side, seem to
    me to be better in this area.

    So I want to supply an unencumbered ISA that offers high code density as
    an alternative to those who seek it. As a standard specification thrown
    out into the wild with no idea who, if anyone, might have a use for it,
    I've tried to make a place for everything in it. Including the VLIW
    features, even though it may well be that they're useless.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Sat Apr 4 13:30:40 2026
    From Newsgroup: comp.arch

    In article <10qpjf5$9scf$2@dont-email.me>, quadibloc@ca.invalid (quadi)
    wrote:

    Instead, to the extent I have a _practical_ goal, it would be to
    provide an alternative to RISC-V. The mechanism RISC-V uses to
    allow instructions longer than 32 bits seems to me to be flawed in
    that it doesn't seem to me to be conducive to high code density.

    RISC-V has a compressed encoding, which is a lot less convoluted. What is unsatisfactory about that?

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Sat Apr 4 14:27:15 2026
    From Newsgroup: comp.arch

    On Wed, 01 Apr 2026 07:58:24 -0700, Stephen Fuld wrote:

    I
    apologize in advance for saying this, but I am reminded of rearranging
    the deck chairs . . . :-(

    I've just rearranged the deck chairs on the neo-Itanium some more... but
    it wasn't entirely a useless exercise. It freed up more opcode space for
    the headers, and *that* let me shorten two headers, which were 64 bits
    long, to only 48 bits in length, reducing header overhead.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Sat Apr 4 14:29:20 2026
    From Newsgroup: comp.arch

    On Sat, 04 Apr 2026 13:29:00 +0100, John Dallman wrote:

    RISC-V has a compressed encoding, which is a lot less convoluted. What
    is unsatisfactory about that?

    I can't answer that offhand, but I will look up its compressed encoding. I suspect it will have a design philosophy vastly different from anything I
    am comfortable with, or perhaps even able to comprehend.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Sat Apr 4 14:51:19 2026
    From Newsgroup: comp.arch

    On Sat, 04 Apr 2026 14:29:20 +0000, quadi wrote:
    On Sat, 04 Apr 2026 13:29:00 +0100, John Dallman wrote:

    RISC-V has a compressed encoding, which is a lot less convoluted. What
    is unsatisfactory about that?

    I can't answer that offhand, but I will look up its compressed encoding.
    I suspect it will have a design philosophy vastly different from
    anything I am comfortable with, or perhaps even able to comprehend.

    Ah. They're a lot like Thumb Mode on the ARM.

    Compared to that, my 17-bit short instructions are not terribly
    convoluted, they're as plain as the 16-bit instructions on the System 360, with some instructions from 16-bit minicomputers added.

    In order to combine 15-bit instruction pairs, which start with the bits
    11, with basic load store instructions, which start with anything else but
    11, into a 32-bit instruction set... which has to include some
    _additional_ 32-bit instructions, like operate instructions and
    conditional branch instructions.... the 15-bit instructions did become convoluted, I have to admit.

    But that is merely the inevitable, if unfortunate, byproduct of my having achieved the apparently impossible feat of squeezing short instructions
    the short instructions and 32-bit load and store instructions with banks
    of 32 registers (like RISC) and full base-index addressing (like CISC)
    into a *single opcode space*, without having to switch into a different
    mode (like Thumb Mode) for the 16-bit instructions - which some have
    claimed, by allowing instructions to be interpreted in an unexpected
    manner, is a security risk.

    When one seeks to squeeze opcode space to the extent that I have... things
    get messy.

    As is illustrated by the famous page from MAD magazine

    https://www.tomrichmond.com/r-i-p-lenny-the-beard-brenner/12/04/2016/

    which inspired the very name of the Concertina II architecture.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Sat Apr 4 15:40:17 2026
    From Newsgroup: comp.arch

    On Sat, 04 Apr 2026 14:51:19 +0000, quadi wrote:

    without having to
    switch into a different mode (like Thumb Mode) for the 16-bit
    instructions - which some have claimed, by allowing instructions to be interpreted in an unexpected manner, is a security risk.

    On further reflection, I see that my response could be seen as doing everything _but_ actually answering your (specific) question (as asked).

    After all, I still have enough opcode space lying around, despite my
    heroic efforts to squeeze out every last little trace of available opcode space in each nook and cranny of my ISA that I could choose some
    combination of sixteen fixed bits as a prefix... to be followed by fifteen 16-bit long instructions in the rest of the instruction block.

    If I saw great merit in the RISC-V condensed instructions, or the similar instructions of ARM's Thumb Mode, I could surely do that. Why haven't I?

    My short instructions do include branch instructions with 8-bit relative displacements. Those have a minicomputer precedent in the PDP-11 and the closely similar TI 9900 microprocessor. Load and store instructions with
    small displacements, however, seem to violate the principle of separating
    code from data. Oh, no; that's an argument against using, say, the
    instruction set of the Honeywell 316/516 or the HP 2115, but the condensed mode instructions do have a short field to specify a base register.

    Dang. I've divided my 32 integer registers into four groups of eight...

    the first, for index registers
    the second, for base registers associated with 20-bit displacements
    (for z/Architecture compatibility, if you need to ask)
    the third, for base registers associated with 12-bit displacements
    the fourth, for base registers associated with 16-bit displacements

    so I don't have eight more integer registers to associate with 8-bit displacements!

    Ah, well, as the 20-bit displacements are an obscure and rarely used
    feature, I _could_ give that segment of register space a dual use, since
    there would be little conflict.

    In one previous iteration of Concertina II, I *did* include, for some
    reason that escapes me now, a complete instruction set with shorter instructions. However, instead of being 16 bits long, they were, if memory serves, 22 bits long. The idea had been to have something that would
    harmonize with the rest of the instruction set, to allow mixing of instructions of both types, rather than something suitable to stand-alone programs that had to be tiny and probably belonged on a different kind of
    CPU entirely.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Sat Apr 4 15:59:28 2026
    From Newsgroup: comp.arch


    jgd@cix.co.uk (John Dallman) posted:

    In article <10qpjf5$9scf$2@dont-email.me>, quadibloc@ca.invalid (quadi) wrote:

    Instead, to the extent I have a _practical_ goal, it would be to
    provide an alternative to RISC-V. The mechanism RISC-V uses to
    allow instructions longer than 32 bits seems to me to be flawed in
    that it doesn't seem to me to be conducive to high code density.

    RISC-V has a compressed encoding, which is a lot less convoluted. What is unsatisfactory about that?

    a) it eats 3/4 of the OpCode space
    b) it allows for only 12-bit displacements


    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Sat Apr 4 19:36:16 2026
    From Newsgroup: comp.arch

    On Sat, 04 Apr 2026 15:59:28 +0000, MitchAlsup wrote:

    a) it eats 3/4 of the OpCode space

    I did not read the spec carefully enough to notice that.

    Where my Concertina II is parsimonious with opcode space to the point of insanity, given that its purpose is to accomplish, within the available
    opcode space, things that by any rights ought to require several extra
    bits beyond what is available in a 32-bit word... RISC-V is even more profligate with opcode space than I had vaguely recalled.

    On the other hand, if I were trying to add to my architecture a super
    short form of the memory-reference instructions, they would also only
    allow 12-bit displacements. Even with eight-bit displacements, though, the only way I could fit memory-reference instructions into sixteen bits would
    be to only have one destination register. This could be managed if I were desperate enough, but at the moment I don't see a point.

    In the context of Concertina II, therefore, with the baggage that is
    needed for instructions to fit in, a complete 16-bit instruction set would
    be a _tour-de-force_ of little or no utility. I think I shall cosider this
    an omen, and eschew adding one more header type to Concertina II in order
    to support a block type consisting entirely of, say, 22-bit instructions
    for maximum code compactness. Alternating decent 32-bit memory-reference instructions with 16-bit short instructions for register operate
    instructions provides about the same code compactness in a more
    traditional manner.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Sat Apr 4 22:54:40 2026
    From Newsgroup: comp.arch

    In article <1775318368-5857@newsgrouper.org>,
    user5857@newsgrouper.org.invalid (MitchAlsup) wrote:

    jgd@cix.co.uk (John Dallman) posted:
    RISC-V has a compressed encoding, which is a lot less convoluted.
    What is unsatisfactory about that?

    a) it eats 3/4 of the OpCode space

    OK, that _is_ unsatisfactory.

    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Sat Apr 4 23:49:49 2026
    From Newsgroup: comp.arch

    On Sat, 04 Apr 2026 22:53:00 +0100, John Dallman wrote:
    In article <1775318368-5857@newsgrouper.org>, user5857@newsgrouper.org.invalid (MitchAlsup) wrote:

    a) it eats 3/4 of the OpCode space

    OK, that _is_ unsatisfactory.

    I certainly don't _disagree_. But, even if I'm playing Devil's advocate by saying so... it depends on your goals.

    It's hard enough to fit instructions into 16 bits that do useful work.
    It's even harder to fit them into even less space.

    Whereas, 32 bits is a lot of space. In Concertina II, I use about 3/4 of
    the 32-bit opcode space... on load-store instructions with full base-index addressing. And they include _other_ luxuries you don't find on a typical
    RISC machine. I have a fourth floating-point type, Medium, which is 48
    bits long, in addition to single, double, and extended precision. The
    integer load-store instructions, for integer types shorter than the full
    width of a 64-bit register, don't just consist of Load and Store, they
    also have Unsiged Load and Insert. So when you load a 32-bit value into a 64-bit integer register, you can choose - sign extend, zero fill, or leave alone as what happens to the more significant bits. Like the System/360
    did for putting 8 and 16 bit values in 32-bit general registers.

    If you eschew such luxuries, as one would if designing a classic RISC
    system, you probably could fit a decent ISA into 30 bits.

    Their goals are not mine, so I did not do what they did.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From antispam@antispam@fricas.org (Waldek Hebisch) to comp.arch on Sun Apr 5 03:15:00 2026
    From Newsgroup: comp.arch

    John Dallman <jgd@cix.co.uk> wrote:
    In article <1775318368-5857@newsgrouper.org>, user5857@newsgrouper.org.invalid (MitchAlsup) wrote:

    jgd@cix.co.uk (John Dallman) posted:
    RISC-V has a compressed encoding, which is a lot less convoluted.
    What is unsatisfactory about that?

    a) it eats 3/4 of the OpCode space

    OK, that _is_ unsatisfactory.

    That means that 32 bit instruction loose less that 2 bits, which
    means about 5% longer programs which do not use compressed encoding.
    IIUC gain from compressed instruction is closer to 30% saving, so
    there is very siginifcant net gain. IMO anybody who complains
    about use of code space for compressed instruction does not
    understand the fundamantal principle of compression: there is no
    free lunch, you can not compress everything. Some things will
    need longer encoding. As long as things which have short encoding
    are frequent _on average_ there will be gain. And it is
    natural to allocate large percentage of code space to them,
    because there are still enough longer codes and haveing more
    short codes leads to smaller average length.
    --
    Waldek Hebisch
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Sun Apr 5 09:38:43 2026
    From Newsgroup: comp.arch

    jgd@cix.co.uk (John Dallman) writes:
    In article <1775318368-5857@newsgrouper.org>, >user5857@newsgrouper.org.invalid (MitchAlsup) wrote:

    jgd@cix.co.uk (John Dallman) posted:
    RISC-V has a compressed encoding, which is a lot less convoluted.
    What is unsatisfactory about that?

    a) it eats 3/4 of the OpCode space

    OK, that _is_ unsatisfactory.

    Why?

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Sun Apr 5 13:52:23 2026
    From Newsgroup: comp.arch

    On Sun, 05 Apr 2026 09:38:43 GMT
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    jgd@cix.co.uk (John Dallman) writes:
    In article <1775318368-5857@newsgrouper.org>, >user5857@newsgrouper.org.invalid (MitchAlsup) wrote:

    jgd@cix.co.uk (John Dallman) posted:
    RISC-V has a compressed encoding, which is a lot less
    convoluted. What is unsatisfactory about that?

    a) it eats 3/4 of the OpCode space

    OK, that _is_ unsatisfactory.

    Why?

    - anton

    Compared to Nios2:
    - shorter immediate
    - less complete support for comparison + branch
    May be, the latter has other reasons, but the former is almost
    ceratinly caused by smaller encoding space.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From jgd@jgd@cix.co.uk (John Dallman) to comp.arch on Sun Apr 5 12:44:40 2026
    From Newsgroup: comp.arch

    In article <2026Apr5.113843@mips.complang.tuwien.ac.at>, anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    a) it eats 3/4 of the OpCode space
    OK, that _is_ unsatisfactory.
    Why?

    I was making an unconscious assumption, which is probably unwarranted:
    that the compressed instruction set was a fairly small subset of the full
    one. If it was, then taking 3/4 of the opcode space would be quite bad.
    My thinking about compressed ISAs is influenced by ARM, where T32 is a
    separate mode from the A64 that I've actually used for all the ARM
    platforms I've ported software to.

    If the compressed instruction set has most of the operations of the uncompressed one, but is smaller because it addresses subsets of the
    registers and has smaller displacements and immediates, there's a
    question of if there is a "primary" instruction set, and if so, what it
    is?




    John
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Sun Apr 5 13:48:10 2026
    From Newsgroup: comp.arch

    Michael S <already5chosen@yahoo.com> writes:
    On Sun, 05 Apr 2026 09:38:43 GMT
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    jgd@cix.co.uk (John Dallman) writes:
    In article <1775318368-5857@newsgrouper.org>,
    user5857@newsgrouper.org.invalid (MitchAlsup) wrote:

    jgd@cix.co.uk (John Dallman) posted:
    RISC-V has a compressed encoding, which is a lot less
    convoluted. What is unsatisfactory about that?

    a) it eats 3/4 of the OpCode space

    OK, that _is_ unsatisfactory.

    Why?

    - anton

    Compared to Nios2:
    - shorter immediate
    - less complete support for comparison + branch
    May be, the latter has other reasons, but the former is almost
    ceratinly caused by smaller encoding space.

    Nios2 is a 32-bit-only instruction set. RISC-V needs encoding space
    for differentiating between 32-bit and 64-bit instructions (and, I
    think, 128-bit instructions), e.g., lw and ld, plus not strictly
    necessary ones like addw that we have thanks to the wide spread of
    I32LP64. My guess is that the lack of 64-bit support was Nios2's
    fatal flaw, so Intel/Altera switched to RISC-V-based NiosV.

    More importantly, Nios2 does not contain compressed instructions at
    all. Do you consider any use of encoding space for compressed
    instructions unsatisfactory? If not, how much encoding space would
    you spend on them?

    Concerning compare-and-branch, the instruction sets have: Nios2 has

    Nios2: beq bge bgeu blt bltu bne
    RV32I: beq bge bgeu blt bltu bne

    The RISC-V manual says:
    |Note, BGT, BGTU, BLE, and BLEU can be synthesized by reversing the
    |operands to BLT, BLTU, BGE, and BGEU, respectively.

    The Nios2 manual mentions, in Table 8-3, the assembler
    pseudo-instructions bgt bgtu ble bleu.

    I fail to see any difference in support for compar-and-branch
    instructions.

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Sun Apr 5 14:30:05 2026
    From Newsgroup: comp.arch

    jgd@cix.co.uk (John Dallman) writes:
    In article <2026Apr5.113843@mips.complang.tuwien.ac.at>, >anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    a) it eats 3/4 of the OpCode space
    OK, that _is_ unsatisfactory.
    Why?

    I was making an unconscious assumption, which is probably unwarranted:
    that the compressed instruction set was a fairly small subset of the full >one.

    It naturally is. Even if it has 3/4 of the encoding space, it has <16
    bits of encoding space, whereas the non-compressed instructions have
    ~30bits of encoding space (1/4 of 32 bits; actually they have left
    encoding space for longer encodings, so it's a little below 30 bits
    for the 32-bit encodings).

    My thinking about compressed ISAs is influenced by ARM, where T32 is a >separate mode from the A64 that I've actually used for all the ARM
    platforms I've ported software to.

    ARM A64 is quite a different architecture style from ARM A32 or
    RISC-V: ARM64 goes for whatever functionality you can fit in a
    load/store architecture with a fixed 32 bits of instructions.

    RISC-V goes for simple instructions, with compression for keeping
    programs small and (for larger implementations) microarchitectural
    combining of instructions into, e.g., more elaborate addressing modes
    instead of having such addressing modes in the instruction set.
    RISC-V has only one instruction set (with lots of extensions) for 32
    bits and 64 bits, whereas ARM has completely different instruction
    sets for 32 bits (A32 and T32) and 64 bits (A64).

    Both are quite effective at producing compact programs.

    One significant difference (at least as far as RV64G is concerned,
    there are extensions that do not satisfy this principle) is that
    instructions have at most two source and at most one destination
    register, whereas the A64 architecturs apparently put no such limits
    on their architecture at all, with some instructions having 4 source
    registers and some having 3 destination registers (and that's for the
    simple instructions; AFAIK some crypto instructions or somesuch read
    and write a lot of registers, but one does not expect them to run in
    one cycle).

    If the compressed instruction set has most of the operations of the >uncompressed one, but is smaller because it addresses subsets of the >registers and has smaller displacements and immediates, there's a
    question of if there is a "primary" instruction set, and if so, what it
    is?

    For RISC-V it is clear that the uncompressed instructions are the
    primary instruction set. The compressed instructions are just a more
    compact encoding of some common uncompressed instructions. If you use
    an instruction that does not have a compressed encoding (whether the
    opcode is not there, or one of the other fields does not match the
    limitations of the corresponding compressed instruction), you just use
    the 32-bit encoding.

    For ARM T32, A32 is the primary instruction set. I have not looked
    much at T32, but AFAIK it works similar to RISC-V with the C
    (compressed) extension. I think that the 32-bit-encoded instructions
    in T32 do not have the same encoding as in A32, though.

    The architectural style of A32 is a load/store architecture with not
    many opcodes and relatively elaborate addressing modes; apparently
    they then had some encoding space to spend, and they spent it on
    things that were cheap to implement on the hardware they were
    designing: conditional execution and shifts.

    For an instruction set that works the other way, Intel APX, AVX, and
    AVX512 come to mind: E.g., in case of APX, the primary instruction set
    has 16 GPRs and two operands (e.g., subq %rax, %rbx), and APX adds
    encodings to allow specifying 32 GPRs and three operands. Similarly
    for SSE (primary), AVX (adds 256-bit width and third operand), and
    AVX512 (adds 512-bit width, 16->32 registers, and predication). And
    the APX encodings, the VEX (AVX) and EVEX (AVX512) encodings all take additional space compared to the primary encoding.

    One might even consider AMD64 to be such a design: The "primary"
    instruction set has 8 GPRs and only few 64-bit instructions, the
    secondary instruction set extends this to 16 registers and a complete
    set of 64-bit instructions. However, given that the "primary"
    instruction set is incomplete, can one really call it the "primary"
    instruction set?

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Sun Apr 5 18:34:12 2026
    From Newsgroup: comp.arch

    On Sun, 05 Apr 2026 13:48:10 GMT
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    Michael S <already5chosen@yahoo.com> writes:
    On Sun, 05 Apr 2026 09:38:43 GMT
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    jgd@cix.co.uk (John Dallman) writes:
    In article <1775318368-5857@newsgrouper.org>,
    user5857@newsgrouper.org.invalid (MitchAlsup) wrote:

    jgd@cix.co.uk (John Dallman) posted:
    RISC-V has a compressed encoding, which is a lot less
    convoluted. What is unsatisfactory about that?

    a) it eats 3/4 of the OpCode space

    OK, that _is_ unsatisfactory.

    Why?

    - anton

    Compared to Nios2:
    - shorter immediate
    - less complete support for comparison + branch
    May be, the latter has other reasons, but the former is almost
    ceratinly caused by smaller encoding space.

    Nios2 is a 32-bit-only instruction set. RISC-V needs encoding space
    for differentiating between 32-bit and 64-bit instructions (and, I
    think, 128-bit instructions), e.g., lw and ld, plus not strictly
    necessary ones like addw that we have thanks to the wide spread of
    I32LP64. My guess is that the lack of 64-bit support was Nios2's
    fatal flaw, so Intel/Altera switched to RISC-V-based NiosV.


    If it was a case, Intel would supply RV64 NiosV. Atm. they didn't.
    Me thinks, there was no reason except for saving few tens of thousands
    dollars per year on maintanance of Nios2 gcc tools. Neglectiong much
    higher cost that porting from 2 to 5 costs to their customers.

    More importantly, Nios2 does not contain compressed instructions at
    all. Do you consider any use of encoding space for compressed
    instructions unsatisfactory? If not, how much encoding space would
    you spend on them?


    It's not so much about encoding space. FPGA resource spent at support
    of compressed form are non-negligible, esp. so for lower performance "economical" variants of core. In higher end implementations, where few
    dozens LUTs are less visible, it would likely manifest itself both as
    lower achievable clock rate and as higher cost of branch mis-predict.
    And branch predictors in soft cores, even those marked as
    high-performance, are very primitive relatively to what we accustomed
    to in "hard" cores in last 30 or so years.
    If I'd get something excellent in return, like ArmV7-M, then I'd guess
    I would be willing to pay the price, at least for some of the uses. But
    RV32IC is not at that level.

    Concerning compare-and-branch, the instruction sets have: Nios2 has

    Nios2: beq bge bgeu blt bltu bne
    RV32I: beq bge bgeu blt bltu bne

    The RISC-V manual says:
    |Note, BGT, BGTU, BLE, and BLEU can be synthesized by reversing the
    |operands to BLT, BLTU, BGE, and BGEU, respectively.

    The Nios2 manual mentions, in Table 8-3, the assembler
    pseudo-instructions bgt bgtu ble bleu.

    I fail to see any difference in support for compar-and-branch
    instructions.

    - anton

    It seems, I misremembered.
    Probably had in mind comparison with immediate with result going into
    register (SLTI/SLTIU in RV, cmplti/cmpeqi/cmpltui/cmpgei/cmpnei/cmpgeui
    in Nios2).

    It was long time ago when I looked into details.









    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Mon Apr 6 01:16:15 2026
    From Newsgroup: comp.arch

    On 4/5/2026 6:43 AM, John Dallman wrote:
    In article <2026Apr5.113843@mips.complang.tuwien.ac.at>, anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    a) it eats 3/4 of the OpCode space
    OK, that _is_ unsatisfactory.
    Why?

    I was making an unconscious assumption, which is probably unwarranted:
    that the compressed instruction set was a fairly small subset of the full one. If it was, then taking 3/4 of the opcode space would be quite bad.
    My thinking about compressed ISAs is influenced by ARM, where T32 is a separate mode from the A64 that I've actually used for all the ARM
    platforms I've ported software to.

    If the compressed instruction set has most of the operations of the uncompressed one, but is smaller because it addresses subsets of the registers and has smaller displacements and immediates, there's a
    question of if there is a "primary" instruction set, and if so, what it
    is?


    Can RV-C be used standalone? No.
    Is RV-C even particularly effective? No.


    If you had instead had an encoding where:
    Imm/Disp forms were 1 or 2 bits shorter;
    Most of the other instructions had 4-bit register fields
    (Say: X8..X23)
    ...

    The hit rate could have been improved, and thus better code density.

    IMHO: As a 16-bit compressed encoding scheme:
    RV-C is both more dog chewed and less effective than XG1's 16-bit
    encodings, which in turn have a pretty close association with SuperH
    encodings (even if the instruction layout differs).


    Or, FWIW: Had RV-C been designed mostly as a copy-paste of a SuperH-like design, it would have likely been much more effective at its task than
    what we ended up with.

    Which, as can be noted, RV-C is only a good fit if we assume that the
    vast majority of the instructions within a typical program binary are
    held in small leaf functions.


    Looks at some stats across a few programs:
    Roughly 20% of the functions are leaf functions.

    Also most used variables in my current compiler stats:
    X8 (9.9%), X23 (6.4%), X22 (6.3%), X10 (6.2%),
    X20 (4.7%), X21 (3.8%), X9 (3.5%), X11 (2.7%)

    How many overlap with the X8..X15 set? 4.
    Even X8..X11, X20..X23, could have had a somewhat better hit rate.

    What about X12..X15:
    X12 (1.8%), X13 (1.7%), X14 (0.4%), X15 (0.3%)
    Vs, say, X24..X27 (callee save):
    X24 (1.6%), X25(1.4%), X26(2.4%), X27(1.5%)

    Surely X28..X31 (scratch) are high traffic?...
    X28 (0.03%), X29 (0.05%), X30 (0.07%), X31 (0.09%)
    So much usage I had to add another 0...


    Seems like there is a pattern here:
    Callee save registers are higher traffic.

    Some design choices often cited in the design of RISC-V and RV-C appear
    to be wrong...


    Lots of emphasis on the priorities of leaf functions, when it should
    have been the other way around.

    Or, most of your code and CPU cycles are not in functions at the bottom
    of the call-stack, rather the ones located somewhere in the middle.



    Well, and needlessly large Imm/Disp fields on RV-C ops.

    Or, comparison between XG1 and RV-C:
    SP-Rel Disp:
    XG1: 4 bits
    RV-C: 6 bits
    Generic Reg+Disp:
    XG1: 3 bits
    RV-C: 5 bits

    Only instructions that need largish immediate values are LI and ADDI,
    pretty much everything else could have used Imm3 or Imm4.


    Do you need a full Shift-Imm instruction? No.
    More effective for encoding space could have been, say:
    SLLI Rn4, {1/2/3/4, 8/16/24/32}
    SRLI ...
    Would have also used 2 bits less encoding space per instruction.
    Say, picking the 8 most common shift amounts, vs every shift amount.
    Or, stay with Reg3 and save 3 bits.

    People may disagree, but, alas...

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Mon Apr 6 16:33:40 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 4/5/2026 6:43 AM, John Dallman wrote:
    In article <2026Apr5.113843@mips.complang.tuwien.ac.at>, anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:
    ---------------
    Some design choices often cited in the design of RISC-V and RV-C appear
    to be wrong...

    Captain Obvious strikes again.

    Lots of emphasis on the priorities of leaf functions, when it should
    have been the other way around.

    At best, maybe: The code I have access to shows that leaf functions are
    closer to 50% than 20%--it is high enough that serious effort needs to
    go to not needing ANY overhead to leaf functions (Sorry IBM 360 BAL
    prologue and epilogue.)

    Or, most of your code and CPU cycles are not in functions at the bottom
    of the call-stack, rather the ones located somewhere in the middle.

    Small loops consume more CPU cycles than calls and returns (too). --------------
    Only instructions that need largish immediate values are LI and ADDI,
    pretty much everything else could have used Imm3 or Imm4.

    I do not need an LI instruction at all.

    Do you need a full Shift-Imm instruction? No.
    More effective for encoding space could have been, say:
    SLLI Rn4, {1/2/3/4, 8/16/24/32}
    SRLI ...
    Would have also used 2 bits less encoding space per instruction.

    And how do you support j << k ?

    Say, picking the 8 most common shift amounts, vs every shift amount.
    Or, stay with Reg3 and save 3 bits.

    Heading in wrong direction...

    People may disagree, but, alas...

    Only the smart ones ...
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Mon Apr 6 16:22:04 2026
    From Newsgroup: comp.arch

    On 4/6/2026 11:33 AM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/5/2026 6:43 AM, John Dallman wrote:
    In article <2026Apr5.113843@mips.complang.tuwien.ac.at>,
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:
    ---------------
    Some design choices often cited in the design of RISC-V and RV-C appear
    to be wrong...

    Captain Obvious strikes again.

    Lots of emphasis on the priorities of leaf functions, when it should
    have been the other way around.

    At best, maybe: The code I have access to shows that leaf functions are closer to 50% than 20%--it is high enough that serious effort needs to
    go to not needing ANY overhead to leaf functions (Sorry IBM 360 BAL
    prologue and epilogue.)


    I seemingly have a case of, roughly:
    20% are leaf functions;
    16%: Can static assign all variables to registers (Tiny Leaf)
    4%: Fails to static assign everything
    80%: Non-Leaf functions
    10%: can static assign all variables to registers
    70%: Can only partially static assign variables to registers.

    In Tiny Leaf functions:
    Prolog/Epilog cost drops to 0;
    No stack frame is created.

    In the non-tiny leaf functions, they are counted as leaves, but they
    will still have a prolog/epilog and stack frame as usual.


    Otherwise:
    22% of code footprint is prologs+epilogs;
    78% of code footprint is function bodies.

    Average stack frame size:
    Around 440 bytes (55 QWORDs).


    Typical frame layout being:
    --- Top
    Saved LR
    Saved registers
    Stack Canary (typically if arrays are present)
    Storage Area (arrays or structs)
    Local Variables
    Argument overflow area
    --- Bottom
    With BGBCC using solely fixed-size frames (if "alloca" or VLAs are used,
    the memory is heap-backed).


    Or, most of your code and CPU cycles are not in functions at the bottom
    of the call-stack, rather the ones located somewhere in the middle.

    Small loops consume more CPU cycles than calls and returns (too).

    Yes, true.
    Much better to have all of the inner-loop variables in registers rather
    than using spill and fill.

    There is a scaling metric where variables within a loop body have a
    higher weight than those outside of the loop body (and nested loops
    compound this).


    --------------
    Only instructions that need largish immediate values are LI and ADDI,
    pretty much everything else could have used Imm3 or Imm4.

    I do not need an LI instruction at all.


    For normal RV, ADDI is used for small LI. RV-C has:
    C.LI Xd, Imm6 //Xd=Imm6
    C.ADDI Xd, Imm6 //Xd=Xd+Imm6
    C.LUI Xd. Imm6 //Xd=Imm6<<12


    For XG1, had followed the SH pattern and had:
    MOV Imm8, Rn
    ADD Imm8, Rn
    Granted, 8 is more than 6.
    So, the XG1 encodings were more expensive here.

    There was no LUI, instead had:
    LDSH8 / SHORI8 Imm8u, R0 //R0=(R0<< 8)|Imm8u //16-bit encoding
    LDSH / SHORI Imm16u, Rn //Rn=(Rn<<16)|Imm16u //32-bit encoding

    So, composing a 32-bit constant was initially done as (8B):
    MOV Imm16hi, Rn
    SHORI Imm16lo, Rn
    Which was trivially extended to 48 or 64 bit constants.

    Or, 24-bit (6B):
    MOV Imm8hi, Rn
    SHORI Imm16lo, Rn


    This sort of thing mostly died off if using jumbo-prefixes though.



    Do you need a full Shift-Imm instruction? No.
    More effective for encoding space could have been, say:
    SLLI Rn4, {1/2/3/4, 8/16/24/32}
    SRLI ...
    Would have also used 2 bits less encoding space per instruction.

    And how do you support j << k ?


    Generic case: Probably fall back to a 32-bit encoding.
    Could use multiple ops, but this is worse than using a 32-bit instruction.

    Could have a variable shift instruction as a 16-bit instruction, but
    variable shifts are comparably rarer so likely a lower priority for
    16-bit ops.


    Say, picking the 8 most common shift amounts, vs every shift amount. >> Or, stay with Reg3 and save 3 bits.

    Heading in wrong direction...


    It is mostly debatable if shift is common enough to justify burning this
    much encoding space in 16-bit land.



    People may disagree, but, alas...

    Only the smart ones ...


    Granted, but probably no one is going to be redesigning RV-C here, so it
    is mostly hypothetical anyways...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Mon Apr 6 22:41:12 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 4/6/2026 11:33 AM, MitchAlsup wrote:

    --------------
    Only instructions that need largish immediate values are LI and ADDI,
    pretty much everything else could have used Imm3 or Imm4.

    I do not need an LI instruction at all.


    For normal RV, ADDI is used for small LI. RV-C has:
    C.LI Xd, Imm6 //Xd=Imm6

    MOV Rd,Immed{16,32,64}

    C.ADDI Xd, Imm6 //Xd=Xd+Imm6

    ADD Rd,Rd,Immed{16,32,64}

    C.LUI Xd. Imm6 //Xd=Imm6<<12

    MOV Rd,Immed{16,32,64}

    Immediates come in {16,32,64}bit quanta.
    ---------------
    So, composing a 32-bit constant was initially done as (8B):
    MOV Imm16hi, Rn
    SHORI Imm16lo, Rn
    Which was trivially extended to 48 or 64 bit constants.

    Composing is for weak ISAs
    -----------------

    It is mostly debatable if shift is common enough to justify burning this much encoding space in 16-bit land.

    it remains debatable if compression adds more or subtracts more.



    People may disagree, but, alas...

    Only the smart ones ...


    Granted, but probably no one is going to be redesigning RV-C here, so it
    is mostly hypothetical anyways...

    RISC-V is simply the 2020's version of "mediocracy first wins".
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Mon Apr 6 23:17:18 2026
    From Newsgroup: comp.arch

    On Sat, 04 Apr 2026 19:36:16 +0000, quadi wrote:

    In the context of Concertina II, therefore, with the baggage that is
    needed for instructions to fit in, a complete 16-bit instruction set
    would be a _tour-de-force_ of little or no utility. I think I shall
    cosider this an omen, and eschew adding one more header type to
    Concertina II in order to support a block type consisting entirely of,
    say, 22-bit instructions for maximum code compactness.

    Instead, I ended up adding another header type to create a block
    consisting of three 80-bit instructions of a special format.

    Why? I saw a YouTube video about the TRACE Multiflow computer, and decided that, if that's what real VLIW instructions should look like, then I
    should offer some approximation of that instruction set in addition to my attempt at doing VLIW with my existing ordinary general-purpose
    instruction set.

    So now I have 80-bit instructions consisting of two 32-bit instructions,
    plus one 16-bit address constant that they both share. This differs from
    the TRACE Multiflow in that it had three instructions in its large instructions, which shared one 32-bit immediate (actually, its large instructions were really two "large" instructions together, one for each
    of two beats) with two integer instructions and one floating instruction.

    This is, of course, an even worse idea - it saddles the Concertina II with what was the fatal flaw, in my opinion, of the Itanium - being tied to one particular era in the development of the microprocessor, where a
    particular number of instructions can execute in parallel because a
    particular number of arithmetic units fits in a core.

    Actually, though, since each 32-bit component instruction has its own
    break bit, I *kind of* avoid that disaster, but a lot else is oriented
    around associating exactly two instructions together and sharing stuff
    between them.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Mon Apr 6 23:31:49 2026
    From Newsgroup: comp.arch

    On 2026-04-06 6:41 p.m., MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/6/2026 11:33 AM, MitchAlsup wrote:

    --------------
    Only instructions that need largish immediate values are LI and ADDI,
    pretty much everything else could have used Imm3 or Imm4.

    I do not need an LI instruction at all.


    For normal RV, ADDI is used for small LI. RV-C has:
    C.LI Xd, Imm6 //Xd=Imm6

    MOV Rd,Immed{16,32,64}

    C.ADDI Xd, Imm6 //Xd=Xd+Imm6

    ADD Rd,Rd,Immed{16,32,64}

    C.LUI Xd. Imm6 //Xd=Imm6<<12

    MOV Rd,Immed{16,32,64}

    Immediates come in {16,32,64}bit quanta.
    ---------------
    So, composing a 32-bit constant was initially done as (8B):
    MOV Imm16hi, Rn
    SHORI Imm16lo, Rn
    Which was trivially extended to 48 or 64 bit constants.

    Composing is for weak ISAs
    -----------------

    Variety is the spice of life.

    7, 25, 46, 64, 85, 103, 124, 142, 163 and 181 bit immediates in the ISA.

    I think I got them all. Immediate might begin with a seven-bit field
    from a register spec, or a 25-bit immediate from immediate mode
    instruction. A constant postfix then adds 39-bits and there can be up to
    four postfixes. Current hardware just allows two postfixes though. Could
    not see much sense going beyond 64-bits, but wanted coverage for
    potentially 128-bit constants. A wide constant could be specified to
    cover multiple lanes for a SIMD instruction.
    Immediates can substitute for most register values.


    It is mostly debatable if shift is common enough to justify burning this
    much encoding space in 16-bit land.

    it remains debatable if compression adds more or subtracts more.

    It probably depends on the program. Sometime compressing cost performance.
    Does performing two ops in one instruction count as a form of compression?



    People may disagree, but, alas...

    Only the smart ones ...


    Granted, but probably no one is going to be redesigning RV-C here, so it
    is mostly hypothetical anyways...

    RISC-V is simply the 2020's version of "mediocracy first wins".

    I was seriously considering a RISCV clone, perhaps using 48-bit
    instructions.

    With convergence of architectures, I worry about a single point of
    failure forming.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 7 04:48:14 2026
    From Newsgroup: comp.arch

    On Mon, 06 Apr 2026 23:31:49 -0400, Robert Finch wrote:

    Variety is the spice of life.

    7, 25, 46, 64, 85, 103, 124, 142, 163 and 181 bit immediates in the ISA.

    I think I got them all.

    Oh my. I went to great effort in my Concertina II design to make room available for 8, 16, 32, and 64-bit immediates - and also 48-bit
    immediates - ao that I would avoid the need to use an immediate of a
    shorter length than the type of quantity I was using it to supply.

    I thought that my ISA was the most wretchedly overcomplicated ISA in
    existence (well, if you don't count x86)... but perhaps you have a good
    reason for this particular diversity of immediate value lengths.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 7 04:49:49 2026
    From Newsgroup: comp.arch

    On Mon, 06 Apr 2026 22:41:12 +0000, MitchAlsup wrote:

    RISC-V is simply the 2020's version of "mediocracy first wins".

    I presume that's just a typo for _mediocrity_. Of course, when mediocrity first wins, mediocracy - the rule of the mediocre - can be the result.

    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 7 03:12:48 2026
    From Newsgroup: comp.arch

    On 4/6/2026 11:48 PM, quadi wrote:
    On Mon, 06 Apr 2026 23:31:49 -0400, Robert Finch wrote:

    Variety is the spice of life.

    7, 25, 46, 64, 85, 103, 124, 142, 163 and 181 bit immediates in the ISA.

    I think I got them all.

    Oh my. I went to great effort in my Concertina II design to make room available for 8, 16, 32, and 64-bit immediates - and also 48-bit
    immediates - ao that I would avoid the need to use an immediate of a
    shorter length than the type of quantity I was using it to supply.

    I thought that my ISA was the most wretchedly overcomplicated ISA in existence (well, if you don't count x86)... but perhaps you have a good reason for this particular diversity of immediate value lengths.


    I have ended up reducing the number of immediate lengths over time:
    XG1: 3, 4, 5, 8, 9, 10, 16; 17, 33, 64
    16b: 3, 4, 5, 8, 12
    32b: 5, 8, 9, 10, 11, 16, 17, 29, 33, 64
    XG2: 6, 10, 12, 16; 17, 33, 64
    XG3: 6, 10, 16; 17, 33, 64

    Where, for 32b:
    5/6: Using register field as Imm
    9/10: Typical Disp/Imm
    16: Generally dedicated Imm16 encodings
    17: Typically Immediate Synthesis via a Jumbo Prefix
    29: Imm5 + Jumbo_Imm (XG1 only)
    Becomes an alternate Imm33 case in XG2 and XG3,
    but only for certain ops.
    33: 9/10 + Jumbo
    64: 9/10 + 2x Jumbo

    Dropped (in XG3):
    8 bit, via BRcc (fate: Replaced)
    12 bit: BRccZ
    2RI-Imm10: In general, sort of in a dropped-but-limbo state.
    Dropped whole block as nearly all had been rendered N/A (*).

    *: Most had been effectively obsoleted via the introduction of a Zero Register.


    For 17/33/64: These are good "magic number sizes".

    At present, there are no immediate values larger than 64 bits. If you
    want to load a 128 bit constant into a register pair, strategy is to
    load each half into a register.


    Ironically, I have noted that the Binary16->Binary64 constant load
    instruction is still unexpectedly effective at loading FP128 values.


    Like, it folds the low 4 exponent bits into the mantissa, but the
    operation itself still basically works (essentially functioning as
    S.E9.M6 rather than S.E5.M10).

    Still typically needs another instruction to load 0 into the low 64 bits though.


    Formally though, RISC-V lacks any direct equivalent.
    Though, in these cases, one can generally do, say:
    LUI X5, ImmHi
    SLLI X5, X5, 32
    FMV.D.X Fd+1, X5
    FMV.D.X Fd+0, X0

    So, merely 2x the number of instructions in this case.


    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 7 10:24:40 2026
    From Newsgroup: comp.arch

    On Tue, 07 Apr 2026 03:12:48 -0500, BGB wrote:

    I have ended up reducing the number of immediate lengths over time:
    XG1: 3, 4, 5, 8, 9, 10, 16; 17, 33, 64

    I suppose the idea of having immediates that are 9, 17, and 33 bits long
    is when you want the range of 8, 16, or 32 bit values, but you're feeding
    a calculation using integers of a larger size, and so you want the ranges
    of both unsigned and signed numbers of those lengths - which a signed
    value one bit longer gives you. Like the 9 bit type in Java bytecode.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Tue Apr 7 07:11:37 2026
    From Newsgroup: comp.arch

    On 2026-04-07 12:48 a.m., quadi wrote:
    On Mon, 06 Apr 2026 23:31:49 -0400, Robert Finch wrote:

    Variety is the spice of life.

    7, 25, 46, 64, 85, 103, 124, 142, 163 and 181 bit immediates in the ISA.

    I think I got them all.

    Oh my. I went to great effort in my Concertina II design to make room available for 8, 16, 32, and 64-bit immediates - and also 48-bit
    immediates - ao that I would avoid the need to use an immediate of a
    shorter length than the type of quantity I was using it to supply.

    I thought that my ISA was the most wretchedly overcomplicated ISA in existence (well, if you don't count x86)... but perhaps you have a good reason for this particular diversity of immediate value lengths.

    John Savard

    I went with the provide as many bits as would fit approach, then let the assembler choose the best size rather than try to find creative ways to
    use the extra bits. There are extra unused bits but they are bits that
    would be wasted if the size were restricted to something smaller. For instance, 46 bits provides 32-bit constants, if it were restricted to 32
    bits then 14 bits would be wasted in the instruction. Other size have
    not too bad coverage. 64 for 64 bits, 85 works for 80-bit
    extended-double precision constants. 193 not too bad for 96-bit triples.
    Some sizes like 46 may be good for 64-bit constant use.

    Constants can also be applied for load/store displacements. 46-bits may
    work for addressing.

    Note instructions are a bit more sensible. They only work on 8,16,32,64
    bit data. So, a 46-bit constant can be supplied for an instruction
    working on 64-bits.

    The extra bits of immediate constants can also be abused to allow extra
    data to be stored in the instruction stream. A 103 bits constant could
    be specified for instruction operating on 64-bits. The other 39 bits
    could be used to hide a 32-bit constant.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stefan Monnier@monnier@iro.umontreal.ca to comp.arch on Tue Apr 7 09:20:38 2026
    From Newsgroup: comp.arch

    MitchAlsup [2026-04-06 22:41:12] wrote:
    RISC-V is simply the 2020's version of "mediocracy first wins".

    Yet, oddly, RISC-V is the most recently appeared of the mainstream ISAs.


    === Stefan
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 7 14:20:04 2026
    From Newsgroup: comp.arch

    On Mon, 06 Apr 2026 23:17:18 +0000, quadi wrote:

    So now I have 80-bit instructions consisting of two 32-bit instructions,

    I have decided that this addition to the instruction set was indeed far
    too silly, so I am going to remove it.

    However, this was still a useful exercise.

    I decided to avoid changing the header numbers around too much, and this instruction format had some attractive features, so I'm keeping it in a different form which doesn't involve exotic VLIW stuff like pairing up instructions.

    But, far more importantly, this exercise led me to realize that my paired 15-bit short instructions, which had been around for a long time within
    many iterations of Concertina II, had a fatal flaw!

    They usually included *conditional branch instructions* with 8-bit displacements. However, the 16-bit register-to-register instructions, due
    to space limitations, couldn't have a C bit, and so I decided not to allow them to set the condition codes.

    This wasn't _utterly_ preposterous, since short instructions could always
    be mixed with full-sized 32-bit instructions in the same block, so a 32-
    bit operate instruction could set the condition codes for later use by a
    short branch instruction... and the short instructions don't include even
    load store memory reference instructions, so they have no pretensions to completeness.

    But it's still bad.

    But now that I have had to transmogrify the first member of a pair of two short instructions in order to squeeze out more opcode space... this gives
    me the opportunity of...

    putting the C bit in, and taking the branch instructions out, of the first member of a pair of short instructions!

    Of course, while conditional branches do come after setting the condition codes, they're supposed to come longer than immediately after for the good
    of the pipeline in the space where this ISA is partially positioned, but
    it at least gives the appearance of making sense.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 7 14:50:12 2026
    From Newsgroup: comp.arch

    On Tue, 07 Apr 2026 14:20:04 +0000, quadi wrote:

    But now that I have had to transmogrify the first member of a pair of
    two short instructions in order to squeeze out more opcode space... this gives me the opportunity of...

    putting the C bit in, and taking the branch instructions out, of the
    first member of a pair of short instructions!

    Of course, while conditional branches do come after setting the
    condition codes, they're supposed to come longer than immediately after
    for the good of the pipeline in the space where this ISA is partially positioned, but it at least gives the appearance of making sense.

    It has just dawned on me that if the 15-bit short instructions are in need
    of the ability to set the condition codes, *so are the 17-bit short instructions*.

    But if I squeeze an extra bit out of _them_, then they lose their very
    reason for existence - having both the source and destination register
    operand fields being five bits long and unrestricted.

    I _could_ replace them by 18-bit short instructions, but tearing apart all
    the block header formats pertaining to variable-length instructions hardly bears thinking about...

    I thought that this time, I finally got it right. But now I've reached the point I thought I would finally manage to avoid - the point where the iteration collapses under its own weight, and needs to be abandoned
    entirely. This one went further - the contradiction became apparent in something that had been around a long time, through many iterations.

    And the easiest response would just be to restrict the register operands somewhat - with nine bits, instead of eight, they would still be less restricted... and *add* a new block format that allows for 18-bit short instructions. That would let me stay with the current iteration. But while that is in keeping with my approach on previous occasions to dealing with issues that come up, it's sufficiently ugly that I think I need to give
    this careful thought before proceeding.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 7 15:25:42 2026
    From Newsgroup: comp.arch

    On Tue, 07 Apr 2026 14:50:12 +0000, quadi wrote:

    It has just dawned on me that if the 15-bit short instructions are in
    need of the ability to set the condition codes, *so are the 17-bit short instructions*.

    Given that the 17-bit instructions are used in connection with _variable-
    width instructions_, which means that there's more flexibility in mixing full-sized 32-bit instructions with short instructions... requiring a 32-
    bit operate instruction to set the condition codes is not so bad.

    So I will not attempt to change the format of the 17-bit instruction, and maybe add an 18-bit short instruction.

    It is indeed impossible to squeeze a quart into a pint pot; I'm trying to
    make the most efficient possible use of the pint of opcode space that I
    have so as to get a result that's "almost as good" as the quart I really want... and when I do that, I have to accept that there will be a little
    bit of pain involved. There will have to be compromises.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 7 16:59:09 2026
    From Newsgroup: comp.arch


    quadi <quadibloc@ca.invalid> posted:

    On Tue, 07 Apr 2026 14:50:12 +0000, quadi wrote:

    It has just dawned on me that if the 15-bit short instructions are in
    need of the ability to set the condition codes, *so are the 17-bit short instructions*.

    Given that the 17-bit instructions are used in connection with _variable- width instructions_, which means that there's more flexibility in mixing full-sized 32-bit instructions with short instructions... requiring a 32-
    bit operate instruction to set the condition codes is not so bad.

    The word "flailing" comes to mind.


    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 7 13:23:20 2026
    From Newsgroup: comp.arch

    On 4/7/2026 5:24 AM, quadi wrote:
    On Tue, 07 Apr 2026 03:12:48 -0500, BGB wrote:

    I have ended up reducing the number of immediate lengths over time:
    XG1: 3, 4, 5, 8, 9, 10, 16; 17, 33, 64

    I suppose the idea of having immediates that are 9, 17, and 33 bits long
    is when you want the range of 8, 16, or 32 bit values, but you're feeding
    a calculation using integers of a larger size, and so you want the ranges
    of both unsigned and signed numbers of those lengths - which a signed
    value one bit longer gives you. Like the 9 bit type in Java bytecode.


    For the 17 and 33 bit cases, this was the major point:
    -32768 .. 65535: Covers a big chunk of constants;
    -2G .. 4G: Covers most of the rest.
    Comparably, the set that a full needs 64 bits is small, but "nice to have".


    The pattern is weaker for 9s, because while true, it is still in the
    domain where the "values near 0" bell-curve still dominates.

    Much outside the low 10-12 bits, the main bell-curve drops off, and
    leaves the 16/17 bit, and 32/33 bit spikes. Both spikes are followed by
    a relative "no man's land" where there is relatively little until
    reaching the next power of 2.

    This is most notable between 34 and 60 bits, where there is "hardly
    anything".



    XG1 mostly had 9u constants, so 0..511, but some instructions like ADD
    and ADDS.L had 9u and 9n variants, so was effectively a 10-bit constant
    (or 11 bits in XG2).


    This quirk was kept in XG3, so it retains the effective 11 bit ADD constant.

    ADDU.L also keeps this pattern, but doing so effectively wastes some
    encoding space as ADDU.L is much less common than ADDS.L (but, removing instructions still makes for issues, even if less common).


    AND ended up with 10s (in XG2/3), whereas OR and XOR ended up with 10u.
    This was related to the relative probability of the constants used with
    these instructions (negative constant values to AND were semi-common,
    but much rarer for OR or XOR, which favored from having more range).


    Displacements were also 9u in XG1.

    Originally, this is because:
    This is what I could afford in the encodings;
    Was the point where (scaled) load/store had the best hit rate.
    So, 9u: 2K with DWORD, 4K with QWORD.
    9u had a better hit rate than 8u and 9s.

    In XG2/3, expanded to 10s, as in this case the hit rate for 10s slightly
    beats that of 10u, though it was still pretty close here.


    In an early form of BJX2, the idea was to go with Disp5u for Load/Store displacements, but it didn't take long to realize that 5-bit
    displacements were insufficient.

    So, spending encoding space on Disp9u and Imm9u/Imm9n encodings became a priority (9s ended up mostly not being a thing at the time).


    So, some stats for scaled Load/Store Disp hit-rates:
    5u: 87.6%
    6u: 93.7%
    9u: 99.4%
    10u: 99.5%
    10s: 99.7%

    Vs, 12s unscaled:
    12s: 99.8%

    For ALU ops (eg, ADD/SUB):
    5u: 40.2%
    9u: 68.1%
    5n: 10.3%
    9n: 27.5%
    5un: 50.5% (what an early form of BJX2 had used)
    9un: 95.6% ("XG1 ADD 3RI" falls here)

    On to XG2/XG3 variants:
    6s: 50.5% (same as 5un)
    10u: 69.2%
    10n: 27.9%
    10s: 95.6% (same as 9un)
    10un: 97.1% ("XG2/3 ADD 3RI" fall here)

    And, RV:
    12s: 97.3%


    Or, RV's Load/Store hits ~ 0.1% more than XG3's, and its ADD hits 0.2%
    more (as slight wins for its larger Imm/Disp encodings for 32-bit instructions). This win mostly evaporates if Jumbo Prefixes are in play.

    In this case, the advantage of having twice the GPRs tends to win over
    the 0.1 to 0.2% lost due to smaller Imm/Disp in this case.



    The blob of constants between 12 and 17 bits is an area that RISC-V
    misses (needs to drop back to LUI+ADDI, but they are still common enough
    to make this fallback a pain point).

    This is an additional ~ 2% of cases for ADD and MOV (with around 0.7% of constants in the 18-33 bit range).


    Though, having the ability to encode:
    MOV Imm17s, Rd
    ADD Imm16s, Rn

    Would address most of it, mostly because unlike constant loads, the
    ADD/SUB curve seems to mostly fall in the -32768..32767 range, where
    adding values of 32768..65535 is statistically less common; so in this
    case a 16-bit constant mostly serves the same effect.


    The delta between 17 and 33 bits, while statistically modest, is largely
    a factor of encoding size: If you are going to be using a Jumbo Prefix,
    makes sense to go for 33 bits.

    But, then, doesn't make sense to go for "more" than 33 bits, and better
    to leave the remaining bits for opcode and similar.




    Patterns are different for branch instructions:
    Conditional branch instructions have a big "near 0" spike.
    Drops to hardly anything past a few kB.
    Conditional branches pretty much never cross between functions.
    +/- 512 instruction words actually seems like a decent range here.

    Unconditional branch instructions tend to cover a range of MB.
    Usually, whatever is the "typical maximum size" for a ".text" section.

    so, basically:
    Conditional branches have a much narrower and sharper bell curve;
    Unconditional branches are much wider and flatter.


    Can note also that a "Load and convert Binary16 to Binary64" instruction
    has a somewhat higher hit rate for floating point constants than a
    simpler "Load Imm16 into high 16 bits of a 64-bit register" instruction
    would have had.


    ...



    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 7 14:31:56 2026
    From Newsgroup: comp.arch

    On 4/6/2026 5:41 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/6/2026 11:33 AM, MitchAlsup wrote:

    --------------
    Only instructions that need largish immediate values are LI and ADDI,
    pretty much everything else could have used Imm3 or Imm4.

    I do not need an LI instruction at all.


    For normal RV, ADDI is used for small LI. RV-C has:
    C.LI Xd, Imm6 //Xd=Imm6

    MOV Rd,Immed{16,32,64}

    C.ADDI Xd, Imm6 //Xd=Xd+Imm6

    ADD Rd,Rd,Immed{16,32,64}

    C.LUI Xd. Imm6 //Xd=Imm6<<12

    MOV Rd,Immed{16,32,64}

    Immediates come in {16,32,64}bit quanta.
    ---------------

    For XG3 2RI, it is:
    MOV: 17s/33/64
    ADD: 16s/33/64

    For 3RI:
    ADD*: 10un/33/64
    Most Others: 10s/33/64

    For RV:
    ADD: 12s

    Both 2RI and 3RI, and MOV/ADD cases, share a single encoding.

    While maybe "less encodings, more good", 12s by itself isn't quite
    sufficient, more so when 12s failing typically means needing 3 or 4 instructions as a fallback.


    ADD comes in several variants:
    ADD : Same as ADD in RV64
    ADDS.L: ADDW in RV64
    ADDU.L: ADDWU in older BitManip (*1)

    *1: Then ADDWU was dropped before it became "B", with the justification
    that there wasn't much difference in SPEC scores between ADDWU and an ADD+ADD.UW pair. Me: Somewhat annoyed.


    So, composing a 32-bit constant was initially done as (8B):
    MOV Imm16hi, Rn
    SHORI Imm16lo, Rn
    Which was trivially extended to 48 or 64 bit constants.

    Composing is for weak ISAs

    Possibly, but still more flexible than LUI+ADDI, as well as burning less encoding space than LUI, which is a big space waster (effectively 25
    bits of encoding space right there).


    The other thing is Jumbo Prefixes, which while they also burn a big
    chunk of encoding space, are comparably much more "heavy hitters" even
    if compared with something like LUI (in effect, RISC-V with jumbo
    prefixes effectively mostly doesn't need LUI anymore).



    It is mostly debatable if shift is common enough to justify burning this
    much encoding space in 16-bit land.

    it remains debatable if compression adds more or subtracts more.

    Possibly.


    As noted, I decided to drop it for XG2 and XG3, which have 32-bits as
    the smallest instruction size.


    Both RG64GC and XG1 have 16-bit encodings, but different:
    XG1's 16-bit encoding scheme is, listing-wise, still pretty similar to
    SuperH;
    RV-C is very limited in scope, with very much chewed encodings, that
    don't map particularly well to my compiler's output.


    But, if going with RV and XG3, makes more sense to go with RV64GC on the
    RV side:
    RV-C plays well with RISC-V and uses the same register space, etc, even
    if arguably worse than XG1.



    Both RV64GC and XG1 can serve a functionally similar role (code density
    over performance), with XG3 serving a similar role to XG2 (even if for
    some still not super obvious reason, XG3 still tends to have 6% worse
    code density than XG2 despite being pretty much 1:1 in terms of ISA
    features; so likely there is some difference somewhere in terms of
    compiler behavior).

    Though, there is a practical difference in a few ABI points:
    XG3 is using an 8 argument ABI vs 16 argument in XG2;
    28 callee save registers vs 31;
    No register spill-zone on the stack
    With differences in vararg handling.
    ...

    Though, most of this to reduce friction with RISC-V (and a 16-arg ABI
    hurts worse with RV64GC worse than a 16-arg ABI helps with XG3).


    As for RV64GC+JX vs XG1, code density and performance is pretty
    comparable (main annoyance just that the 'C' encodings kinda suck).


    I did look into pair encodings for XG3, but they also kinda sucked and wouldn't really make enough of a difference to be worth the added hassle.





    People may disagree, but, alas...

    Only the smart ones ...


    Granted, but probably no one is going to be redesigning RV-C here, so it
    is mostly hypothetical anyways...

    RISC-V is simply the 2020's version of "mediocracy first wins".

    Possibly...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 7 19:32:49 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 4/7/2026 5:24 AM, quadi wrote:
    On Tue, 07 Apr 2026 03:12:48 -0500, BGB wrote:

    I have ended up reducing the number of immediate lengths over time:
    XG1: 3, 4, 5, 8, 9, 10, 16; 17, 33, 64

    I suppose the idea of having immediates that are 9, 17, and 33 bits long
    is when you want the range of 8, 16, or 32 bit values, but you're feeding
    a calculation using integers of a larger size, and so you want the ranges of both unsigned and signed numbers of those lengths - which a signed
    value one bit longer gives you. Like the 9 bit type in Java bytecode.


    For the 17 and 33 bit cases, this was the major point:
    -32768 .. 65535: Covers a big chunk of constants;
    -2G .. 4G: Covers most of the rest.
    Comparably, the set that a full needs 64 bits is small, but "nice to have".


    The pattern is weaker for 9s, because while true, it is still in the
    domain where the "values near 0" bell-curve still dominates.

    Much outside the low 10-12 bits, the main bell-curve drops off, and
    leaves the 16/17 bit, and 32/33 bit spikes. Both spikes are followed by
    a relative "no man's land" where there is relatively little until
    reaching the next power of 2.

    This is most notable between 34 and 60 bits, where there is "hardly anything".

    If you have FP64 constants, there is a lot of data in here.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 7 14:52:32 2026
    From Newsgroup: comp.arch

    On 4/7/2026 2:32 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/7/2026 5:24 AM, quadi wrote:
    On Tue, 07 Apr 2026 03:12:48 -0500, BGB wrote:

    I have ended up reducing the number of immediate lengths over time:
    XG1: 3, 4, 5, 8, 9, 10, 16; 17, 33, 64

    I suppose the idea of having immediates that are 9, 17, and 33 bits long >>> is when you want the range of 8, 16, or 32 bit values, but you're feeding >>> a calculation using integers of a larger size, and so you want the ranges >>> of both unsigned and signed numbers of those lengths - which a signed
    value one bit longer gives you. Like the 9 bit type in Java bytecode.


    For the 17 and 33 bit cases, this was the major point:
    -32768 .. 65535: Covers a big chunk of constants;
    -2G .. 4G: Covers most of the rest.
    Comparably, the set that a full needs 64 bits is small, but "nice to have". >>

    The pattern is weaker for 9s, because while true, it is still in the
    domain where the "values near 0" bell-curve still dominates.

    Much outside the low 10-12 bits, the main bell-curve drops off, and
    leaves the 16/17 bit, and 32/33 bit spikes. Both spikes are followed by
    a relative "no man's land" where there is relatively little until
    reaching the next power of 2.

    This is most notable between 34 and 60 bits, where there is "hardly
    anything".

    If you have FP64 constants, there is a lot of data in here.



    When one gets up to around 64 bits, there is a big blob of various
    64-bit data:
    Binary64 constants;
    EIGHTCC values;
    Various 64-bit magic numbers;
    ...

    But, basically none of these fall within reach until one gets to full
    64-bit constants.


    Though, in the grand scheme of "all numerical constants", still a pretty
    small slice, pretty small towards the huge number of constants that
    hover near 0.


    Then, within the realm of floating point constants, a significant
    majority of the common ones can be represented exactly using Binary16.

    If one were to map similar to RISC-V, it would likely appear as:
    FCNV.D.H Fd, Imm16_FP16
    Or similar.


    As can noted, notably more effective than simply loading the high 16
    bits and setting all the other bits to 0.

    Though, pattern doesn't really extend much to Binary32: Loading a
    Binary32 constant via converting it into Binary64, doesn't gain much
    over just loading the high 32 bits of a register and zero-filling the
    low half (though, the difference here is 3 bits of exponent vs mantissa).


    Had made the recent observation that the Binary16 encoding scheme is
    also reasonably effective against Float128 constants. So, don't need to
    do anything special, the instruction still works as before.

    Could define it as using a special S.E9.M6 format when applied to
    Float128, but this would be more of a formality.

    ...

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Wed Apr 8 19:50:53 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> schrieb:

    Then, within the realm of floating point constants, a significant
    majority of the common ones can be represented exactly using Binary16.

    s/majority/minority/
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Wed Apr 8 15:03:23 2026
    From Newsgroup: comp.arch

    On 4/8/2026 2:50 PM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:

    Then, within the realm of floating point constants, a significant
    majority of the common ones can be represented exactly using Binary16.

    s/majority/minority/


    ?...

    The vast majority of the floating point constants in typical code are
    things like:
    0, 1.0, 2.0, 3.0
    1.5, 2.5
    0.375, 0.625, ...
    ...

    Mostly all things that can be represented exactly.

    Things like 0.1 and (1.0/3.0), M_PI, etc, can't be represented.

    But, are comparably less common.

    Likewise, most of the sorts of constants that appear in "sin()" are also
    non representable, there are comparably few of them.

    So, the instruction remains effective.

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Wed Apr 8 20:25:40 2026
    From Newsgroup: comp.arch

    On Tue, 07 Apr 2026 16:59:09 +0000, MitchAlsup wrote:

    The word "flailing" comes to mind.

    Sadly, I'm not in a position to disagree.

    The set of variable-length instructions with built-in predication and
    explicit indication of parallelism I've come up with...

    would have, as their ideal block header, 0 followed by 15 bits, indicating which 16-bit areas of the block begin a new instruction.

    That's half the opcode space!

    I could achieve that - the load-store memory reference instructions that
    begin with 00, 01, and 10 could be squeezed into just 10 if I restricted
    them to only aligned operands. So I could impose this restriction only on
    the first 32-bit instruction slot of a block without a header.

    But that's totally in opposition to having the instruction set behave like RISC unless I choose to add in a header.

    And then I realized: I had _already_ made a rule that, in the absence of a header, the first instruction slot, if it has a pair of 15-bit
    instructions, imposes more restrictions on them to make room for headers.

    I am not sure how to react to this discovery at this time.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Wed Apr 8 15:15:42 2026
    From Newsgroup: comp.arch

    On 4/8/2026 1:03 PM, BGB wrote:
    On 4/8/2026 2:50 PM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:

    Then, within the realm of floating point constants, a significant
    majority of the common ones can be represented exactly using Binary16.

    s/majority/minority/


    ?...

    The vast majority of the floating point constants in typical code are
    things like:
      0, 1.0, 2.0, 3.0
      1.5, 2.5
      0.375, 0.625, ...
      ...

    Mostly all things that can be represented exactly.

    Things like 0.1 and (1.0/3.0), M_PI, etc, can't be represented.

    But, are comparably less common.

    Likewise, most of the sorts of constants that appear in "sin()" are also
    non representable, there are comparably few of them.

    So, the instruction remains effective.

    I don't want to seem like a nag, but couldn't the difference between
    your experience and Thomas' be due to familiarity with different
    workloads - Thomas with scientific codes and you with games?
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Thu Apr 9 01:27:52 2026
    From Newsgroup: comp.arch


    quadi <quadibloc@ca.invalid> posted:

    On Tue, 07 Apr 2026 16:59:09 +0000, MitchAlsup wrote:

    The word "flailing" comes to mind.

    Sadly, I'm not in a position to disagree.

    The set of variable-length instructions with built-in predication and explicit indication of parallelism I've come up with...

    would have, as their ideal block header, 0 followed by 15 bits, indicating which 16-bit areas of the block begin a new instruction.

    That's half the opcode space!

    I could achieve that - the load-store memory reference instructions that begin with 00, 01, and 10 could be squeezed into just 10 if I restricted them to only aligned operands. So I could impose this restriction only on the first 32-bit instruction slot of a block without a header.

    But that's totally in opposition to having the instruction set behave like RISC unless I choose to add in a header.

    Instead, I chose to use 1/16th of the OpCode space for instructions that
    can have a constant {and sized arithmetic} in lieu of a register.

    And then I realized: I had _already_ made a rule that, in the absence of a header, the first instruction slot, if it has a pair of 15-bit
    instructions, imposes more restrictions on them to make room for headers.

    I am not sure how to react to this discovery at this time.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Thu Apr 9 02:24:44 2026
    From Newsgroup: comp.arch

    On Wed, 08 Apr 2026 20:25:40 +0000, quadi wrote:

    And then I realized: I had _already_ made a rule that, in the absence of
    a header, the first instruction slot, if it has a pair of 15-bit instructions, imposes more restrictions on them to make room for
    headers.

    I realized what I needed to do; apply the less restricted form only when a header (not going into variable-length instructions) was present, and
    retain the more restricted form for an entire block without a header.

    But when I looked at the relevant page to edit it, I found that this
    sensible choice was the one I had already made, not the dangerous one I
    had feared that I made.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Wed Apr 8 23:34:52 2026
    From Newsgroup: comp.arch

    On 4/8/2026 5:15 PM, Stephen Fuld wrote:
    On 4/8/2026 1:03 PM, BGB wrote:
    On 4/8/2026 2:50 PM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:

    Then, within the realm of floating point constants, a significant
    majority of the common ones can be represented exactly using Binary16.

    s/majority/minority/


    ?...

    The vast majority of the floating point constants in typical code are
    things like:
       0, 1.0, 2.0, 3.0
       1.5, 2.5
       0.375, 0.625, ...
       ...

    Mostly all things that can be represented exactly.

    Things like 0.1 and (1.0/3.0), M_PI, etc, can't be represented.

    But, are comparably less common.

    Likewise, most of the sorts of constants that appear in "sin()" are
    also non representable, there are comparably few of them.

    So, the instruction remains effective.

    I don't want to seem like a nag, but couldn't the difference between
    your experience and Thomas' be due to familiarity with different
    workloads - Thomas with scientific codes and you with games?


    Could be.

    I guess the thing would be to maybe find some codebases and do more far-reaching stats to figure out the statistical probabilities of the
    various types of constants.


    Though, granted, there is a range of common simple constants, namely
    those based around factors of 10, that pose a problem and are not exact:
    0.1, 0.2, 0.3, ..., 0.7, 0.8, 0.9

    So, if a person types 0.1*x, the 0.1 can't be represented exactly,
    whereas if they typed 0.125 it could, but not if they round to 0.13, ...


    I guess, if common, these exceptions could be common enough to cause a problem, and are a known problem.


    One possibility I had considered before was an encoding that could
    encode constants as a scaled factor of 1/3 or 1/5.

    Where, "(2^n)*(1/5)*M" would have a better hit rate against decimal
    scale rounding.

    But, in my past modeling, it didn't seem like it would save enough to be
    worth the cost as the number of constants this would save was modest (as Binary16 was seemingly already pretty effective).

    Something like a 3 digit "Decimal16" could be more effective, but the
    harder problem is converting this efficiently to Binary64.

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Thu Apr 9 17:35:11 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 4/8/2026 5:15 PM, Stephen Fuld wrote:
    On 4/8/2026 1:03 PM, BGB wrote:
    On 4/8/2026 2:50 PM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:

    Then, within the realm of floating point constants, a significant
    majority of the common ones can be represented exactly using Binary16. >>>
    s/majority/minority/


    ?...

    The vast majority of the floating point constants in typical code are
    things like:
       0, 1.0, 2.0, 3.0
       1.5, 2.5
       0.375, 0.625, ...
       ...

    Mostly all things that can be represented exactly.

    Things like 0.1 and (1.0/3.0), M_PI, etc, can't be represented.

    But, are comparably less common.

    Likewise, most of the sorts of constants that appear in "sin()" are
    also non representable, there are comparably few of them.

    So, the instruction remains effective.

    I don't want to seem like a nag, but couldn't the difference between
    your experience and Thomas' be due to familiarity with different
    workloads - Thomas with scientific codes and you with games?


    Could be.

    I guess the thing would be to maybe find some codebases and do more far-reaching stats to figure out the statistical probabilities of the various types of constants.


    Though, granted, there is a range of common simple constants, namely
    those based around factors of 10, that pose a problem and are not exact:
    0.1, 0.2, 0.3, ..., 0.7, 0.8, 0.9

    Let's look at these often encountered constants: many times they are used
    in simple arithmetic moslty with FP32s and less often FP64. LLVM has a
    rule where by it only uses an FP32 constant when it is exact! So, code
    that looks like::

    f1 = f2*0.1;

    is compiled into::

    CVTFD Rd,Rf2
    FMULD Rd,Rd,#0.1D0
    CVTDF RF1,Rd

    Which is why My 66000 ISA makes a shorter FP calculation with a larger
    FP constant is calculated as a mixed size FP calculation with a single rounding::

    FMULF Rf1,Rf2,#0.1D0

    Instead of the above.

    So, if a person types 0.1*x, the 0.1 can't be represented exactly,
    whereas if they typed 0.125 it could, but not if they round to 0.13, ...

    Compilers need to obey what is written in source code under the rules of
    the source code language.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Thu Apr 9 15:44:34 2026
    From Newsgroup: comp.arch

    On 4/9/2026 12:35 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/8/2026 5:15 PM, Stephen Fuld wrote:
    On 4/8/2026 1:03 PM, BGB wrote:
    On 4/8/2026 2:50 PM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:

    Then, within the realm of floating point constants, a significant
    majority of the common ones can be represented exactly using Binary16. >>>>>
    s/majority/minority/


    ?...

    The vast majority of the floating point constants in typical code are
    things like:
       0, 1.0, 2.0, 3.0
       1.5, 2.5
       0.375, 0.625, ...
       ...

    Mostly all things that can be represented exactly.

    Things like 0.1 and (1.0/3.0), M_PI, etc, can't be represented.

    But, are comparably less common.

    Likewise, most of the sorts of constants that appear in "sin()" are
    also non representable, there are comparably few of them.

    So, the instruction remains effective.

    I don't want to seem like a nag, but couldn't the difference between
    your experience and Thomas' be due to familiarity with different
    workloads - Thomas with scientific codes and you with games?


    Could be.

    I guess the thing would be to maybe find some codebases and do more
    far-reaching stats to figure out the statistical probabilities of the
    various types of constants.


    Though, granted, there is a range of common simple constants, namely
    those based around factors of 10, that pose a problem and are not exact:
    0.1, 0.2, 0.3, ..., 0.7, 0.8, 0.9

    Let's look at these often encountered constants: many times they are used
    in simple arithmetic moslty with FP32s and less often FP64. LLVM has a
    rule where by it only uses an FP32 constant when it is exact! So, code
    that looks like::

    f1 = f2*0.1;

    is compiled into::

    CVTFD Rd,Rf2
    FMULD Rd,Rd,#0.1D0
    CVTDF RF1,Rd

    Which is why My 66000 ISA makes a shorter FP calculation with a larger
    FP constant is calculated as a mixed size FP calculation with a single rounding::

    FMULF Rf1,Rf2,#0.1D0

    Instead of the above.


    I had experimented with FPU Immediate values, but they were mostly as a
    small 5 or 6 bit format (E3.M3 or S.E3.M2).

    Gains from these were fairly small:
    Hit rate isn't that all that high;
    Not commonly used enough to justify spending 3R encodings on them.


    Using a Jumbo-prefix to synthesize an Imm16 could be more useful, where
    the Imm17s immediate-synthesis case if applied to a FPU instruction
    would synthesize a Binary16 immediate instead.

    Well, maybe. Thought I remembered this, but seems my existing docs and implementation don't agree. Weird (one of those "think you remember
    something, then it doesn't exist" things). Could be worth considering at
    least I guess.

    I guess here I can decide between:
    Jumbo_Op(ImmSynth) + FPU_Op => FPU_OP Binary16
    Or:
    Jumbo_Imm + FPU_Op => FPU_OP Binary64_Trunc32

    Latter case would work for XG2 and XG3, but not with XG1 or RV+JX, where
    it would only be possible to encode the former. But, the encoding size
    would be equivalent, and "high 32 bits of a Binary64" could encode more.

    Both types could fit within the existing pipeline logic though.


    There were a few 2RI encodings that could support a special case
    S.E5.M4, but these no longer formally exist in XG3.


    So, if a person types 0.1*x, the 0.1 can't be represented exactly,
    whereas if they typed 0.125 it could, but not if they round to 0.13, ...

    Compilers need to obey what is written in source code under the rules of
    the source code language.


    If the compiler could round on behalf of the user, this would simplify
    things, but yeah, this is not allowed...

    Only exact values are allowed, unless a type suffix is used (then it is rounded as per that type).



    Had recently got some minor code density improvements in XG3, have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit
    encoding on XG3 (this was a spill-over from the RV path, it was doing
    this rather than using the NOT_2R encoding);
    Was encoding SP-rel address loads as "ADD SP, Disp, Rd" rather than
    "LEA.Q (SP, Disp), Rd", also due to the RV path (LEA.Q has longer reach
    than ADD in this case);
    ...

    There are still a lot of cases where:
    Bxx Rs, Rt, Lablel
    Are being encoded as:
    Bxx Rs, Rt, .L0
    BRA Label
    .L0:
    In cases where doing so is unnecessary (short forward branches).
    Need to figure out a good way to address this.
    There is a mechanism to address this for C functions, but not currently
    for ASM blobs.

    Likely option though being to adapt a similar mechanism to that used for
    C functions to the ASM blobs (errm, keeping track of the total size from
    the "simulation pass", and then assuming it is in-range if the size of
    the ASM blob is within the limit and the target label exists within the current ASM blob).

    The other (slightly faster, but still doesn't help code density) option
    being to just use Disp33 encodings.

    But, yeah, mostly a few issues I noticed while skimming over the
    generated ASM code.



    Recently, I made the observation that I have ended up with 4 different implementations of Float128 logic:
    A version used in BGBCC (uses structs with 2 members);
    A version used in TestKern for FP128 emulation;
    Accepts inputs/outputs as pointers to 64-bit pairs;
    Two versions used in the C library:
    A prior implementation in ASM for XG1/XG2.
    A newer implementation in C natively using __int128.

    Seems almost a little redundant, but FP128 handling isn't quite
    heavyweight enough to allow full consolidation without paying overhead
    costs for consolidation.


    Mentioned it to Grok, it was strongly in favor of consolidation, but
    didn't really seem to get that the ASM support code for the Int128 layer
    was fully independent from the Float128 handling (and, from the C code's
    POV, that they were merely exposed as normal 128-bit integer types, and
    not some sort of an explicit library). Then it kept thinking that this
    stuff "sort of" behaves like the GNU GMP library or something.

    or, failing to see why using int128 for the C library's support code is preferable to using structs with two 64-bit members even despite the comparably poor handling of "__int128" on RV64G.


    One remote possibility though being to find some way to glue ALUX
    encodings onto RISC-V via JX or similar.

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Fri Apr 10 01:11:57 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit
    encoding on XG3

    XOR Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

    AND Rd,~RS,#15

    Is a 32-bit encoding, too.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Thu Apr 9 21:09:31 2026
    From Newsgroup: comp.arch

    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit
    encoding on XG3

    XOR Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

    AND Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2 transition AND
    became signed wheres OR and XOR remained unsigned, because in this case negative immediate values for AND were more common but for OR and XOR
    was rare, and XG3 kept the same pattern.

    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less efficient
    on XG3; but I did carry over the NOT 2R instruction from before.

    Even if, yeah, having a signed immediate would have avoided the need to
    keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather than the 10u/10n scheme for ADD and similar (to not burn as much encoding space).

    Changing these at this point would break binary compatibility though.

    Well, win-some, lose some.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sat Apr 11 01:41:03 2026
    From Newsgroup: comp.arch

    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, have
    noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit
    encoding on XG3

    Although rarely used, could there be an explicit COM instruction? It
    needs only one (or two) register field. With a 32-bit encoding there is
    22 bits available for the opcode.

          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2 transition AND
    became signed wheres OR and XOR remained unsigned, because in this case negative immediate values for AND were more common but for OR and XOR
    was rare, and XG3 kept the same pattern.

    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less efficient
    on XG3; but I did carry over the NOT 2R instruction from before.

    Even if, yeah, having a signed immediate would have avoided the need to
    keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather than the 10u/10n scheme for ADD and similar (to not burn as much encoding space).

    Changing these at this point would break binary compatibility though.

    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Sat Apr 11 01:45:05 2026
    From Newsgroup: comp.arch

    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, have
    noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit
    encoding on XG3

    Although rarely used, could there be an explicit COM instruction? It
    needs only one (or two) register field. With a 32-bit encoding there is
    22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of
    changing OR and XOR from 10u to 10s seemed acceptable:
    XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
    XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough to
    make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small
    enough".


    Doing similar for ADDS.L would not go over as well though, as it would
    have a roughly 3% adverse impact on code-side. There isn't really a good
    way to shrink the 10un encodings to 10s (and trying to change behavior
    here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than
    ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which is
    the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and ADDS.L encodings would be to try to free up some more of the Imm10 space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was Imm10u
    (contrast to XOR being Imm10s), but in the XG1->XG2 transition AND
    became signed wheres OR and XOR remained unsigned, because in this
    case negative immediate values for AND were more common but for OR and
    XOR was rare, and XG3 kept the same pattern.

    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from
    before.

    Even if, yeah, having a signed immediate would have avoided the need
    to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather than
    the 10u/10n scheme for ADD and similar (to not burn as much encoding
    space).

    Changing these at this point would break binary compatibility though.

    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
    FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn //XG1/2/3
    FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or an
    encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo prefixes
    (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well (which
    also has immediate synthesis).





    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sat Apr 11 07:32:47 2026
    From Newsgroup: comp.arch

    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, have
    noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit
    encoding on XG3

    Although rarely used, could there be an explicit COM instruction? It
    needs only one (or two) register field. With a 32-bit encoding there
    is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of changing OR and XOR from 10u to 10s seemed acceptable:
      XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
      XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough to
    make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small enough".


    Doing similar for ADDS.L would not go over as well though, as it would
    have a roughly 3% adverse impact on code-side. There isn't really a good
    way to shrink the 10un encodings to 10s (and trying to change behavior
    here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which is
    the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and ADDS.L encodings would be to try to free up some more of the Imm10 space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was
    Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2 transition
    AND became signed wheres OR and XOR remained unsigned, because in
    this case negative immediate values for AND were more common but for
    OR and XOR was rare, and XG3 kept the same pattern.

    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from
    before.

    Even if, yeah, having a signed immediate would have avoided the need
    to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather than
    the 10u/10n scheme for ADD and similar (to not burn as much encoding
    space).

    Changing these at this point would break binary compatibility though.

    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with
    Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
      FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
      FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or an encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo prefixes
    (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well (which
    also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value to
    it. With S.E3.M3 the smallest exponent encoded as a zero is -3. All
    zeros is 1/8 not zero. So, a special trap for zero needs to be added, in
    which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA with seven-bit immediates.




    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sat Apr 11 13:41:39 2026
    From Newsgroup: comp.arch

    Robert Finch <robfi680@gmail.com> schrieb:

    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value to
    it. With S.E3.M3 the smallest exponent encoded as a zero is -3. All
    zeros is 1/8 not zero. So, a special trap for zero needs to be added, in which case 1/8 cannot be represented.

    Why not use the IEEE-like encoding, with hidden bit and special
    handling of zero exponents for zeros and denorms? You can skip the
    maximum exponent special handling, probably, unless you want a short
    encoding for NaN.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Sat Apr 11 07:28:50 2026
    From Newsgroup: comp.arch

    On 4/11/2026 4:32 AM, Robert Finch wrote:
    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, have >>>>>> noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit >>>>>> encoding on XG3

    Although rarely used, could there be an explicit COM instruction? It
    needs only one (or two) register field. With a 32-bit encoding there
    is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of
    changing OR and XOR from 10u to 10s seemed acceptable:
       XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
       XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough
    to make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small
    enough".


    Doing similar for ADDS.L would not go over as well though, as it would
    have a roughly 3% adverse impact on code-side. There isn't really a
    good way to shrink the 10un encodings to 10s (and trying to change
    behavior here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than
    ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which is
    the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and ADDS.L
    encodings would be to try to free up some more of the Imm10 space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was
    Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2
    transition AND became signed wheres OR and XOR remained unsigned,
    because in this case negative immediate values for AND were more
    common but for OR and XOR was rare, and XG3 kept the same pattern.

    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from
    before.

    Even if, yeah, having a signed immediate would have avoided the need
    to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather than
    the 10u/10n scheme for ADD and similar (to not burn as much encoding
    space).

    Changing these at this point would break binary compatibility though.

    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with
    Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
       FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
       FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or an
    encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo prefixes
    (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well
    (which also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value to
    it. With S.E3.M3 the smallest exponent encoded as a zero is -3. All
    zeros is 1/8 not zero. So, a special trap for zero needs to be added, in which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA with seven-bit immediates.


    I repeat a suggestion I made some time ago. Why not make the 7 bits an
    index into a ROM that holds the 128 most used constants, whatever their values? That should allow a net reduction in instruction size (fewer
    longer immediates required), at minimal increased resource usage.
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Sat Apr 11 12:26:38 2026
    From Newsgroup: comp.arch

    On 4/11/2026 6:32 AM, Robert Finch wrote:
    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, have >>>>>> noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit >>>>>> encoding on XG3

    Although rarely used, could there be an explicit COM instruction? It
    needs only one (or two) register field. With a 32-bit encoding there
    is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of
    changing OR and XOR from 10u to 10s seemed acceptable:
       XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
       XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough
    to make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small
    enough".


    Doing similar for ADDS.L would not go over as well though, as it would
    have a roughly 3% adverse impact on code-side. There isn't really a
    good way to shrink the 10un encodings to 10s (and trying to change
    behavior here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than
    ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which is
    the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and ADDS.L
    encodings would be to try to free up some more of the Imm10 space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was
    Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2
    transition AND became signed wheres OR and XOR remained unsigned,
    because in this case negative immediate values for AND were more
    common but for OR and XOR was rare, and XG3 kept the same pattern.

    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from
    before.

    Even if, yeah, having a signed immediate would have avoided the need
    to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather than
    the 10u/10n scheme for ADD and similar (to not burn as much encoding
    space).

    Changing these at this point would break binary compatibility though.

    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with
    Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
       FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
       FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or an
    encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo prefixes
    (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well
    (which also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value to
    it. With S.E3.M3 the smallest exponent encoded as a zero is -3. All
    zeros is 1/8 not zero. So, a special trap for zero needs to be added, in which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA with seven-bit immediates.


    In more normal uses, one doesn't really need 0 here...

    Say, if one has FMUL and FADD:
    x+0 => x //unnecessary, MOV but slower
    x-0 => x //likewise
    x*0 => 0 //don't need op that merely produces 0.

    If one has a zero register or a register holding 0, and needs a zero,
    can get one from there.


    Hit rate with S.E3.M2 in my case, while not nothing, was small enough to
    lead to FP16 as an immediate. FPU ops are less common than ALU ops
    though, and also less commonly use an immediate. So, the relative effect
    is lower.



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Sat Apr 11 17:47:59 2026
    From Newsgroup: comp.arch


    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:
    -------------------------------

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Add Operand sign control:: {- or ~} both use the same encoding bits;
    if the operand passes to a unit with integer adder it gets negated,
    if the operand passes to a unit without int adder it gets inverted.

    Negate x = ~x+1
    Invert x = ~x
    so both paths get inverted and int adder paths get a carry in; this
    is done at forwarding in LBIO machines, and at RS capture in GBOoO
    machines.


    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    deMorganize them using operand sign control::

    NAND:
    OR Rd,~Rs1,~Rs2

    NOR:
    AND Rd,~Rs1,~Rs1

    This gives a very rich set of boolean-like calculations.

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Sat Apr 11 13:01:52 2026
    From Newsgroup: comp.arch

    On 4/11/2026 9:28 AM, Stephen Fuld wrote:
    On 4/11/2026 4:32 AM, Robert Finch wrote:
    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3,
    have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit >>>>>>> encoding on XG3

    Although rarely used, could there be an explicit COM instruction? It
    needs only one (or two) register field. With a 32-bit encoding there
    is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of
    changing OR and XOR from 10u to 10s seemed acceptable:
       XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
       XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough
    to make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one
    slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small
    enough".


    Doing similar for ADDS.L would not go over as well though, as it
    would have a roughly 3% adverse impact on code-side. There isn't
    really a good way to shrink the 10un encodings to 10s (and trying to
    change behavior here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than
    ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which is
    the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and
    ADDS.L encodings would be to try to free up some more of the Imm10
    space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was
    Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2
    transition AND became signed wheres OR and XOR remained unsigned,
    because in this case negative immediate values for AND were more
    common but for OR and XOR was rare, and XG3 kept the same pattern.

    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from
    before.

    Even if, yeah, having a signed immediate would have avoided the
    need to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather
    than the 10u/10n scheme for ADD and similar (to not burn as much
    encoding space).

    Changing these at this point would break binary compatibility though. >>>>>
    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with
    Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
       FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
       FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or an
    encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo prefixes
    (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well
    (which also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value
    to it. With S.E3.M3 the smallest exponent encoded as a zero is -3. All
    zeros is 1/8 not zero. So, a special trap for zero needs to be added,
    in which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA
    with seven-bit immediates.


    I repeat a suggestion I made some time ago.  Why not make the 7 bits an index into a ROM that holds the 128 most used constants, whatever their values?  That should allow a net reduction in instruction size (fewer longer immediates required), at minimal increased resource usage.


    Ironically, when I tested it out before, E3.M2 vs special lookup tables,
    vs ...

    E3.M2 was able to get the best average hit-rate and was also cheap.

    IIRC, options tested were stuff like:
    E3.M2
    Imm5 (1..32)
    Imm5*0.1 (0.1..3.2)
    ...



    Had noted elsewhere that is seems like the most common floating point
    literals fall into categories:
    Integer numbers;
    Int1/(2^Int2)
    Int1*(10^Int2)
    1.0/Int

    First two cases are well-covered by Binary16, latter two less so.


    In a world where constants based on decimal scientific notation
    dominated, formats like Binary16 would not do quite so well.

    Small lookup table is an option, but full decimal conversion less so.

    Had before looked into an option of hiding lookup tables inside a
    sub-range in Binary16 constants, but couldn't get enough additional hits
    to make it worthwhile.

    These were typically small FP numbers with a base-scale tweaked to tune
    for 1/10 decimal scaling. Annoyingly 1/10, 1/100, and 1/1000 require
    different base scales.




    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sat Apr 11 19:22:07 2026
    From Newsgroup: comp.arch

    On 2026-04-11 9:41 a.m., Thomas Koenig wrote:
    Robert Finch <robfi680@gmail.com> schrieb:

    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value to
    it. With S.E3.M3 the smallest exponent encoded as a zero is -3. All
    zeros is 1/8 not zero. So, a special trap for zero needs to be added, in
    which case 1/8 cannot be represented.

    Why not use the IEEE-like encoding, with hidden bit and special
    handling of zero exponents for zeros and denorms? You can skip the
    maximum exponent special handling, probably, unless you want a short
    encoding for NaN.

    It is like an IEEE format. The exponent is just shifted with a bias
    value. Other than that the hidden bit is still there. The seven bit
    value gets converted to IEEE half, single, or double depending on the precision of the operation. It is just an add to the exponent to convert
    it. But it does not allow specifying numbers outside the range +/- 1/8
    to +/- 16.

    The operation is performed handling the usual IEEE stuff, denorms etc.



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sat Apr 11 19:35:05 2026
    From Newsgroup: comp.arch

    On 2026-04-11 10:28 a.m., Stephen Fuld wrote:
    On 4/11/2026 4:32 AM, Robert Finch wrote:
    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3,
    have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit >>>>>>> encoding on XG3

    Although rarely used, could there be an explicit COM instruction? It
    needs only one (or two) register field. With a 32-bit encoding there
    is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of
    changing OR and XOR from 10u to 10s seemed acceptable:
       XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
       XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough
    to make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one
    slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small
    enough".


    Doing similar for ADDS.L would not go over as well though, as it
    would have a roughly 3% adverse impact on code-side. There isn't
    really a good way to shrink the 10un encodings to 10s (and trying to
    change behavior here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than
    ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which is
    the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and
    ADDS.L encodings would be to try to free up some more of the Imm10
    space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was
    Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2
    transition AND became signed wheres OR and XOR remained unsigned,
    because in this case negative immediate values for AND were more
    common but for OR and XOR was rare, and XG3 kept the same pattern.

    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from
    before.

    Even if, yeah, having a signed immediate would have avoided the
    need to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather
    than the 10u/10n scheme for ADD and similar (to not burn as much
    encoding space).

    Changing these at this point would break binary compatibility though. >>>>>
    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with
    Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
       FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
       FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or an
    encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo prefixes
    (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well
    (which also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value
    to it. With S.E3.M3 the smallest exponent encoded as a zero is -3. All
    zeros is 1/8 not zero. So, a special trap for zero needs to be added,
    in which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA
    with seven-bit immediates.


    I repeat a suggestion I made some time ago.  Why not make the 7 bits an index into a ROM that holds the 128 most used constants, whatever their values?  That should allow a net reduction in instruction size (fewer longer immediates required), at minimal increased resource usage.



    Yes, it is a good idea. I considered it but have not implemented it
    (yet). An issue is the ROM would need to be present for different
    precisions and for multiple operands (potentially four). So, 16 copies
    of ROMs. Not sure which uses fewer resources, ROM lookups or a small
    format number.

    I tried to think of values to store in a ROM, but could not come up with
    many. There is another instruction to load from a constant ROM. Had look
    at some of the FP functions, and they may have too many values for a
    lookup. Then there needs to be a map somewhere in the assembler. And how
    does one specify a value? Does the assembler look it up? What if it is specified a bit or two off? How does one identify polynomial
    coefficients by ROM entry number?

    Plus I am being a bit lazy. Not wanting to convert all the number in the
    FP functions into binary for multiple precisions by hand.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sat Apr 11 19:52:25 2026
    From Newsgroup: comp.arch

    On 2026-04-11 1:47 p.m., MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:
    -------------------------------

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Add Operand sign control:: {- or ~} both use the same encoding bits;
    if the operand passes to a unit with integer adder it gets negated,
    if the operand passes to a unit without int adder it gets inverted.

    Negate x = ~x+1
    Invert x = ~x
    so both paths get inverted and int adder paths get a carry in; this
    is done at forwarding in LBIO machines, and at RS capture in GBOoO
    machines.


    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    deMorganize them using operand sign control::

    NAND:
    OR Rd,~Rs1,~Rs2

    NOR:
    AND Rd,~Rs1,~Rs1

    This gives a very rich set of boolean-like calculations.

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND



    There was sign control in the ISA at one point, but I removed it in
    favor of having more registers. Sign control is still present in the
    opcode. Specifying NAND, NOR, ANDC, ORC, has just moved the sign control
    to the opcode instead of having explicit bits. There are a few extra ops
    where sign control is commonly used. Like FMA, FNMA, FMS, FNMS.

    Being able to perform dual-operations can also help out with sign
    control. XOR_op Rd,Rs1,#-1,Rs3 would invert Rs1 before operating on it
    with Rs3. Adding sign control would create redundancy.

    SUB_op Rd,#0,Rs2,Rs3

    Could maybe have sign control at the assembler level converting to the appropriate ops.



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sat Apr 11 20:24:36 2026
    From Newsgroup: comp.arch

    On 2026-04-11 7:35 p.m., Robert Finch wrote:
    On 2026-04-11 10:28 a.m., Stephen Fuld wrote:
    On 4/11/2026 4:32 AM, Robert Finch wrote:
    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, >>>>>>>> have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit >>>>>>>> encoding on XG3

    Although rarely used, could there be an explicit COM instruction?
    It needs only one (or two) register field. With a 32-bit encoding
    there is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of
    changing OR and XOR from 10u to 10s seemed acceptable:
       XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
       XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough
    to make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one
    slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small
    enough".


    Doing similar for ADDS.L would not go over as well though, as it
    would have a roughly 3% adverse impact on code-side. There isn't
    really a good way to shrink the 10un encodings to 10s (and trying to
    change behavior here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than
    ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which
    is the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and
    ADDS.L encodings would be to try to free up some more of the Imm10
    space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was
    Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2
    transition AND became signed wheres OR and XOR remained unsigned, >>>>>> because in this case negative immediate values for AND were more
    common but for OR and XOR was rare, and XG3 kept the same pattern. >>>>>>
    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from >>>>>> before.

    Even if, yeah, having a signed immediate would have avoided the
    need to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather
    than the 10u/10n scheme for ADD and similar (to not burn as much
    encoding space).

    Changing these at this point would break binary compatibility though. >>>>>>
    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with >>>>> Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
       FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
       FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or
    an encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo
    prefixes (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well
    (which also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value
    to it. With S.E3.M3 the smallest exponent encoded as a zero is -3.
    All zeros is 1/8 not zero. So, a special trap for zero needs to be
    added, in which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA
    with seven-bit immediates.


    I repeat a suggestion I made some time ago.  Why not make the 7 bits
    an index into a ROM that holds the 128 most used constants, whatever
    their values?  That should allow a net reduction in instruction size
    (fewer longer immediates required), at minimal increased resource usage.



    Yes, it is a good idea. I considered it but have not implemented it
    (yet). An issue is the ROM would need to be present for different
    precisions and for multiple operands (potentially four). So, 16 copies
    of ROMs. Not sure which uses fewer resources, ROM lookups or a small
    format number.

    I tried to think of values to store in a ROM, but could not come up with many. There is another instruction to load from a constant ROM. Had look
    at some of the FP functions, and they may have too many values for a
    lookup. Then there needs to be a map somewhere in the assembler. And how does one specify a value? Does the assembler look it up? What if it is specified a bit or two off? How does one identify polynomial
    coefficients by ROM entry number?

    Plus I am being a bit lazy. Not wanting to convert all the number in the
    FP functions into binary for multiple precisions by hand.


    Could try a partially programmable table. The 16 elements would be
    common values like e and pi. The remaining elements would be
    programmable at run-time. But then it would just be acting like another register. This is partly why there are a lot of registers, to hold
    constant values.

    I think a table of values would just increase code density. It would not decrease number of instructions executed. Immediate constants can be
    specified for float operations, and the immediate is processed at the
    same time as the instruction.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Sun Apr 12 04:40:22 2026
    From Newsgroup: comp.arch

    In my flailing, I have finally found another alternative.
    I thought that, given that the paired short instructions were the lowest priority, I could make room within them for headers and 32-bit
    instructions other than the basic memory-reference instructions.

    But the result was so inelegant and ugly that, regardless of priority, it
    was not acceptable.

    In the previous incarnations of Concertina II, I had taken the basic memory-reference instructions, and shaved at least one bit off of them by
    some drastic expedient. Perhaps limiting which base or index registers
    could be used, or restricting them to aligned operands, and so on.

    Now I've rejected that, as I tried various different means of doing so,
    and none were acceptable.

    What is left?

    Well, there is still one thing I hadn't tried. The extra 32-bit
    instructions all fit into 1/32nd of the opcode space. So if I could
    eliminate one of the 24 basic memory-reference instructions, I would have room.

    There are really 22 basic memory-reference instructions. This is because I don't need Unsigned Load and Insert for 64-bit integer operands, as the integer registers are only 64 bits wide.

    One of those slots is Load Address. That is very fundamental; it needs to
    have the full addressing capability of the basic memory-reference
    instructions with no compromise.

    But the other is Jump to Subroutine with Offset. That was a recent
    addition. Take away the offset, and it uses far less space.

    However, if I then use the full 1/4 of the opcode space remaining for
    paired short instructions without _further_ compromise (after the terrible compromises needed to make them 14 bits long), I must make another
    sacrifice.

    All the block headers will have a lot of prefix bits, in order to squeeze
    them into what little opcode space is left. No longer can I have a block header with just four prefix bits so that I have an efficient way to
    provide variable-length instructions.

    Hopefully, this will finally be the compromise I can live with.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sun Apr 12 06:42:21 2026
    From Newsgroup: comp.arch

    Robert Finch <robfi680@gmail.com> schrieb:
    On 2026-04-11 9:41 a.m., Thomas Koenig wrote:
    Robert Finch <robfi680@gmail.com> schrieb:

    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value to >>> it. With S.E3.M3 the smallest exponent encoded as a zero is -3. All
    zeros is 1/8 not zero. So, a special trap for zero needs to be added, in >>> which case 1/8 cannot be represented.

    Why not use the IEEE-like encoding, with hidden bit and special
    handling of zero exponents for zeros and denorms? You can skip the
    maximum exponent special handling, probably, unless you want a short
    encoding for NaN.

    It is like an IEEE format. The exponent is just shifted with a bias
    value. Other than that the hidden bit is still there. The seven bit
    value gets converted to IEEE half, single, or double depending on the precision of the operation. It is just an add to the exponent to convert
    it. But it does not allow specifying numbers outside the range +/- 1/8
    to +/- 16.

    The operation is performed handling the usual IEEE stuff, denorms etc.

    I don't understand.

    With denorm bits, I get (with 3+3 bits, positive sign
    only)

    System: 3 mantissa-bits, 3 exponenten-bits (bias: 3) ------------------------------------------------------------
    bits (S|E|M) | value | type ------------------------------------------------------------
    0 | 000 | 000 | 0 | Null
    0 | 000 | 001 | 0.03125 | Denorm
    0 | 000 | 010 | 0.0625 | Denorm
    0 | 000 | 011 | 0.09375 | Denorm
    0 | 000 | 100 | 0.125 | Denorm
    0 | 000 | 101 | 0.15625 | Denorm
    0 | 000 | 110 | 0.1875 | Denorm
    0 | 000 | 111 | 0.21875 | Denorm
    0 | 001 | 000 | 0.25 | Normalized
    0 | 001 | 001 | 0.28125 | Normalized
    0 | 001 | 010 | 0.3125 | Normalized
    0 | 001 | 011 | 0.34375 | Normalized
    0 | 001 | 100 | 0.375 | Normalized
    0 | 001 | 101 | 0.40625 | Normalized
    0 | 001 | 110 | 0.4375 | Normalized
    0 | 001 | 111 | 0.46875 | Normalized
    0 | 010 | 000 | 0.5 | Normalized
    0 | 010 | 001 | 0.5625 | Normalized
    0 | 010 | 010 | 0.625 | Normalized
    0 | 010 | 011 | 0.6875 | Normalized
    0 | 010 | 100 | 0.75 | Normalized
    0 | 010 | 101 | 0.8125 | Normalized
    0 | 010 | 110 | 0.875 | Normalized
    0 | 010 | 111 | 0.9375 | Normalized
    0 | 011 | 000 | 1 | Normalized
    0 | 011 | 001 | 1.125 | Normalized
    0 | 011 | 010 | 1.25 | Normalized
    0 | 011 | 011 | 1.375 | Normalized
    0 | 011 | 100 | 1.5 | Normalized
    0 | 011 | 101 | 1.625 | Normalized
    0 | 011 | 110 | 1.75 | Normalized
    0 | 011 | 111 | 1.875 | Normalized
    0 | 100 | 000 | 2 | Normalized
    0 | 100 | 001 | 2.25 | Normalized
    0 | 100 | 010 | 2.5 | Normalized
    0 | 100 | 011 | 2.75 | Normalized
    0 | 100 | 100 | 3 | Normalized
    0 | 100 | 101 | 3.25 | Normalized
    0 | 100 | 110 | 3.5 | Normalized
    0 | 100 | 111 | 3.75 | Normalized
    0 | 101 | 000 | 4 | Normalized
    0 | 101 | 001 | 4.5 | Normalized
    0 | 101 | 010 | 5 | Normalized
    0 | 101 | 011 | 5.5 | Normalized
    0 | 101 | 100 | 6 | Normalized
    0 | 101 | 101 | 6.5 | Normalized
    0 | 101 | 110 | 7 | Normalized
    0 | 101 | 111 | 7.5 | Normalized
    0 | 110 | 000 | 8 | Normalized
    0 | 110 | 001 | 9 | Normalized
    0 | 110 | 010 | 10 | Normalized
    0 | 110 | 011 | 11 | Normalized
    0 | 110 | 100 | 12 | Normalized
    0 | 110 | 101 | 13 | Normalized
    0 | 110 | 110 | 14 | Normalized
    0 | 110 | 111 | 15 | Normalized
    0 | 111 | 000 | Infinity | Special (Inf)
    0 | 111 | 001 | NaN | Special (NaN)
    0 | 111 | 010 | NaN | Special (NaN)
    0 | 111 | 011 | NaN | Special (NaN)
    0 | 111 | 100 | NaN | Special (NaN)
    0 | 111 | 101 | NaN | Special (NaN)
    0 | 111 | 110 | NaN | Special (NaN)
    0 | 111 | 111 | NaN | Special (NaN)

    which ranges from 1/32 to 15. If you do not want all the
    special bits (especially the NaNs), then values range is
    up to 30.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sun Apr 12 07:24:22 2026
    From Newsgroup: comp.arch

    Thomas Koenig <tkoenig@netcologne.de> schrieb:
    Robert Finch <robfi680@gmail.com> schrieb:

    It is like an IEEE format. The exponent is just shifted with a bias
    value. Other than that the hidden bit is still there. The seven bit
    value gets converted to IEEE half, single, or double depending on the
    precision of the operation. It is just an add to the exponent to convert
    it. But it does not allow specifying numbers outside the range +/- 1/8
    to +/- 16.

    The operation is performed handling the usual IEEE stuff, denorms etc.

    I don't understand.

    With denorm bits, I get (with 3+3 bits, positive sign
    only)

    [...]

    Ah, wait. Did you maybe overlook that, in IEEE, the hidden bit
    is only set for exponent != 0? This also makes the representation
    of zero as all zero bits natural.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sun Apr 12 06:55:18 2026
    From Newsgroup: comp.arch

    On 2026-04-12 3:24 a.m., Thomas Koenig wrote:
    Thomas Koenig <tkoenig@netcologne.de> schrieb:
    Robert Finch <robfi680@gmail.com> schrieb:

    It is like an IEEE format. The exponent is just shifted with a bias
    value. Other than that the hidden bit is still there. The seven bit
    value gets converted to IEEE half, single, or double depending on the
    precision of the operation. It is just an add to the exponent to convert >>> it. But it does not allow specifying numbers outside the range +/- 1/8
    to +/- 16.

    The operation is performed handling the usual IEEE stuff, denorms etc.

    I don't understand.

    With denorm bits, I get (with 3+3 bits, positive sign
    only)

    [...]

    Ah, wait. Did you maybe overlook that, in IEEE, the hidden bit
    is only set for exponent != 0? This also makes the representation
    of zero as all zero bits natural.

    Yes, that is an issue with the representation I am using. The exponent
    cannot be zero.

    *****

    Well, I was bored, so I copied all the constants from the standard C
    library to a constant ROM. It just fit into 128 constants with few empty spots.

    But, there are some functions that evaluate polynomials and expect a
    table of constants. So, they reference the constants indirectly through
    a pointer, calling _Poly(). The need for indirect constant access was
    revealed by studying the C library code.

    I setup the constants in the constant ROM so that the tables are in
    order as they are in the library code. To reference the constants
    indirectly, say the number of the first constant is passed in a
    register, then the register can be incremented to access the next
    constant. There is an unused bit available in most float instructions
    that could indicate indirect constant references, but it would need to
    apply to the whole instruction, forcing all constants in the instruction
    to be referenced indirectly.

    Code might look something like (for indirect access):
    FMA Rd, fconst[Rs1], Rs2, Rs3
    OR maybe
    FMA Rd, #[Rs1], Rs2, Rs3

    OR
    FMA Rd,#1.0,Rs2,Rs3 ; for direct access



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sun Apr 12 12:33:06 2026
    From Newsgroup: comp.arch

    Robert Finch <robfi680@gmail.com> schrieb:
    On 2026-04-12 3:24 a.m., Thomas Koenig wrote:
    Thomas Koenig <tkoenig@netcologne.de> schrieb:
    Robert Finch <robfi680@gmail.com> schrieb:

    It is like an IEEE format. The exponent is just shifted with a bias
    value. Other than that the hidden bit is still there. The seven bit
    value gets converted to IEEE half, single, or double depending on the
    precision of the operation. It is just an add to the exponent to convert >>>> it. But it does not allow specifying numbers outside the range +/- 1/8 >>>> to +/- 16.

    The operation is performed handling the usual IEEE stuff, denorms etc.

    I don't understand.

    With denorm bits, I get (with 3+3 bits, positive sign
    only)

    [...]

    Ah, wait. Did you maybe overlook that, in IEEE, the hidden bit
    is only set for exponent != 0? This also makes the representation
    of zero as all zero bits natural.

    Yes, that is an issue with the representation I am using. The exponent cannot be zero.

    That explains things (although why you did it is unclear to me :-)
    You can still special-case another exponent, though.

    Well, I was bored, so I copied all the constants from the standard C
    library to a constant ROM. It just fit into 128 constants with few empty spots.

    Which implementation of the C library? Could you post a list of your constants?

    But, there are some functions that evaluate polynomials and expect a
    table of constants. So, they reference the constants indirectly through
    a pointer, calling _Poly(). The need for indirect constant access was revealed by studying the C library code.


    I setup the constants in the constant ROM so that the tables are in
    order as they are in the library code. To reference the constants indirectly, say the number of the first constant is passed in a
    register, then the register can be incremented to access the next
    constant. There is an unused bit available in most float instructions
    that could indicate indirect constant references, but it would need to
    apply to the whole instruction, forcing all constants in the instruction
    to be referenced indirectly.

    Code might look something like (for indirect access):
    FMA Rd, fconst[Rs1], Rs2, Rs3
    OR maybe
    FMA Rd, #[Rs1], Rs2, Rs3

    OR
    FMA Rd,#1.0,Rs2,Rs3 ; for direct access

    It may be better to unroll the loops, unless you are cramped for
    code size.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Sun Apr 12 12:18:08 2026
    From Newsgroup: comp.arch

    On 2026-04-12 8:33 a.m., Thomas Koenig wrote:
    Robert Finch <robfi680@gmail.com> schrieb:
    On 2026-04-12 3:24 a.m., Thomas Koenig wrote:
    Thomas Koenig <tkoenig@netcologne.de> schrieb:
    Robert Finch <robfi680@gmail.com> schrieb:

    It is like an IEEE format. The exponent is just shifted with a bias
    value. Other than that the hidden bit is still there. The seven bit
    value gets converted to IEEE half, single, or double depending on the >>>>> precision of the operation. It is just an add to the exponent to convert >>>>> it. But it does not allow specifying numbers outside the range +/- 1/8 >>>>> to +/- 16.

    The operation is performed handling the usual IEEE stuff, denorms etc. >>>>
    I don't understand.

    With denorm bits, I get (with 3+3 bits, positive sign
    only)

    [...]

    Ah, wait. Did you maybe overlook that, in IEEE, the hidden bit
    is only set for exponent != 0? This also makes the representation
    of zero as all zero bits natural.

    Yes, that is an issue with the representation I am using. The exponent
    cannot be zero.

    That explains things (although why you did it is unclear to me :-)
    You can still special-case another exponent, though.

    Well, I was bored, so I copied all the constants from the standard C
    library to a constant ROM. It just fit into 128 constants with few empty
    spots.

    Which implementation of the C library? Could you post a list of your constants?


    From Plauger's Standard C Library. I think MS uses a version of it. I
    think I can post a sample.
    I am not sure about the copyright / licensing. Can the values even be copyrighted? Cody and Waite have a book available for free download.

    // XSIN.C
    // "c"
    fconst[48] = $realtobits(-0.000000000011470879);
    fconst[49] = $realtobits(0.000000002087712071);
    fconst[50] = $realtobits(-0.000000275573192202);
    fconst[51] = $realtobits(0.000024801587292937);
    fconst[52] = $realtobits(-0.001388888888888893);
    fconst[53] = $realtobits(0.041666666666667325);
    fconst[54] = $realtobits(-0.500000000000000000);
    fconst[55] = $realtobits(1.0);
    // "s"
    fconst[56] = $realtobits(-0.000000000000764723);
    fconst[57] = $realtobits(0.000000000160592578);
    fconst[58] = $realtobits(-0.000000025052108383);
    fconst[59] = $realtobits(0.000002755731921890);
    fconst[60] = $realtobits(-0.000198412698412699);
    fconst[61] = $realtobits(0.008333333333333372);
    fconst[62] = $realtobits(-0.166666666666666667);
    fconst[63] = $realtobits(1.0);

    I think most of the constants are from:
    /* coefficients, after Cody & Waite */

    Some of the constants that are in arrays are replicated.

    But, there are some functions that evaluate polynomials and expect a
    table of constants. So, they reference the constants indirectly through
    a pointer, calling _Poly(). The need for indirect constant access was
    revealed by studying the C library code.


    I setup the constants in the constant ROM so that the tables are in
    order as they are in the library code. To reference the constants
    indirectly, say the number of the first constant is passed in a
    register, then the register can be incremented to access the next
    constant. There is an unused bit available in most float instructions
    that could indicate indirect constant references, but it would need to
    apply to the whole instruction, forcing all constants in the instruction
    to be referenced indirectly.

    Code might look something like (for indirect access):
    FMA Rd, fconst[Rs1], Rs2, Rs3
    OR maybe
    FMA Rd, #[Rs1], Rs2, Rs3

    OR
    FMA Rd,#1.0,Rs2,Rs3 ; for direct access

    It may be better to unroll the loops, unless you are cramped for
    code size.

    Yes, I was thinking that. But there is a _Poly() called and it would
    need to be replicated every time where it is called. A fair bit of code
    bloat.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Sun Apr 12 11:22:08 2026
    From Newsgroup: comp.arch

    On 4/12/2026 2:24 AM, Thomas Koenig wrote:
    Thomas Koenig <tkoenig@netcologne.de> schrieb:
    Robert Finch <robfi680@gmail.com> schrieb:

    It is like an IEEE format. The exponent is just shifted with a bias
    value. Other than that the hidden bit is still there. The seven bit
    value gets converted to IEEE half, single, or double depending on the
    precision of the operation. It is just an add to the exponent to convert >>> it. But it does not allow specifying numbers outside the range +/- 1/8
    to +/- 16.

    The operation is performed handling the usual IEEE stuff, denorms etc.

    I don't understand.

    With denorm bits, I get (with 3+3 bits, positive sign
    only)

    [...]

    Ah, wait. Did you maybe overlook that, in IEEE, the hidden bit
    is only set for exponent != 0? This also makes the representation
    of zero as all zero bits natural.


    My recommendation for these sort of very-small (sub 8 bit) FP formats is
    to have normal range only.

    So, typically neither a zero exponent nor an Inf/NaN range.

    If zero exists at all, it is a magic value (all bits zero) replacing
    what otherwise would exist as the smallest value, but could argue that
    for small FPU immediate values, don't likely need it at all.

    ...

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sun Apr 12 16:52:22 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> schrieb:
    On 4/12/2026 2:24 AM, Thomas Koenig wrote:

    Ah, wait. Did you maybe overlook that, in IEEE, the hidden bit
    is only set for exponent != 0? This also makes the representation
    of zero as all zero bits natural.


    My recommendation for these sort of very-small (sub 8 bit) FP formats is
    to have normal range only.

    So, typically neither a zero exponent nor an Inf/NaN range.

    If zero exists at all, it is a magic value (all bits zero) replacing
    what otherwise would exist as the smallest value, but could argue that
    for small FPU immediate values, don't likely need it at all.

    Zero is one of the most common FP numbers, it occurs a *lot*
    in comparisons. (If you have branches on FP sign this will not
    be the case, of course).

    For My 66000, there was a lot of discussion around this. The
    current state is: 5-bit constants from -15.5 to 15.5, 16-bit ieee fp
    for loading into registers only, otherwise 32-bit and 64-bit IEEE.
    So, 0.25 is a 32-bit constant. However, for multiplying by 0.25,
    instead of writing

    fmul r1,r2,#3e800000

    it is possible to write (saving space and time)

    eadd r1,r2,#-2

    so there is less need for straight powers of two.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Sun Apr 12 10:12:11 2026
    From Newsgroup: comp.arch

    On 4/11/2026 11:01 AM, BGB wrote:
    On 4/11/2026 9:28 AM, Stephen Fuld wrote:
    On 4/11/2026 4:32 AM, Robert Finch wrote:
    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, >>>>>>>> have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit >>>>>>>> encoding on XG3

    Although rarely used, could there be an explicit COM instruction?
    It needs only one (or two) register field. With a 32-bit encoding
    there is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of
    changing OR and XOR from 10u to 10s seemed acceptable:
       XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
       XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough
    to make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one
    slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small
    enough".


    Doing similar for ADDS.L would not go over as well though, as it
    would have a roughly 3% adverse impact on code-side. There isn't
    really a good way to shrink the 10un encodings to 10s (and trying to
    change behavior here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than
    ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which
    is the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and
    ADDS.L encodings would be to try to free up some more of the Imm10
    space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was
    Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2
    transition AND became signed wheres OR and XOR remained unsigned, >>>>>> because in this case negative immediate values for AND were more
    common but for OR and XOR was rare, and XG3 kept the same pattern. >>>>>>
    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from >>>>>> before.

    Even if, yeah, having a signed immediate would have avoided the
    need to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather
    than the 10u/10n scheme for ADD and similar (to not burn as much
    encoding space).

    Changing these at this point would break binary compatibility though. >>>>>>
    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with >>>>> Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
       FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
       FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or
    an encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo
    prefixes (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well
    (which also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value
    to it. With S.E3.M3 the smallest exponent encoded as a zero is -3.
    All zeros is 1/8 not zero. So, a special trap for zero needs to be
    added, in which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA
    with seven-bit immediates.


    I repeat a suggestion I made some time ago.  Why not make the 7 bits
    an index into a ROM that holds the 128 most used constants, whatever
    their values?  That should allow a net reduction in instruction size
    (fewer longer immediates required), at minimal increased resource usage.


    Ironically, when I tested it out before, E3.M2 vs special lookup tables,
    vs ...

    E3.M2 was able to get the best average hit-rate and was also cheap.

    I presume E3.M2 gets "expanded" internally to, if it say FP added to
    some FP32 bit value in a register, a 32 bit internal value. If that is
    true, if one picked the same 128 bit values for the internal ROM as you
    get with E3.M2, you should get the same hit rate, right? Then, if there
    is some value not in that list that is used more than the least used
    value in the list (hard to believe there isn't such a value), you should
    get get a higher "hit rate". What am I missing?


    IIRC, options tested were stuff like:
      E3.M2
      Imm5 (1..32)
      Imm5*0.1  (0.1..3.2)
      ...



    Had noted elsewhere that is seems like the most common floating point literals fall into categories:
      Integer numbers;
      Int1/(2^Int2)
      Int1*(10^Int2)
      1.0/Int

    Nothing related to pi, e.g. pi, 1/pi, pi/2, etc.? Or perhaps e? To me
    that is surprising.
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Sun Apr 12 10:45:31 2026
    From Newsgroup: comp.arch

    On 4/11/2026 4:35 PM, Robert Finch wrote:
    On 2026-04-11 10:28 a.m., Stephen Fuld wrote:
    On 4/11/2026 4:32 AM, Robert Finch wrote:
    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, >>>>>>>> have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a 64-bit >>>>>>>> encoding on XG3

    Although rarely used, could there be an explicit COM instruction?
    It needs only one (or two) register field. With a 32-bit encoding
    there is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact" of
    changing OR and XOR from 10u to 10s seemed acceptable:
       XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
       XG3: Only obvious effect of change was a demo desync in Heretic.

    So, while it was a breaking change, it wasn't one that breaks enough
    to make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one
    slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and instead
    using either immediate-synthesis or 2-op sequences. Impact is "small
    enough".


    Doing similar for ADDS.L would not go over as well though, as it
    would have a roughly 3% adverse impact on code-side. There isn't
    really a good way to shrink the 10un encodings to 10s (and trying to
    change behavior here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often than
    ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which
    is the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and
    ADDS.L encodings would be to try to free up some more of the Imm10
    space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was
    Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2
    transition AND became signed wheres OR and XOR remained unsigned, >>>>>> because in this case negative immediate values for AND were more
    common but for OR and XOR was rare, and XG3 kept the same pattern. >>>>>>
    In all of these cases though, a jumbo prefix expands them to 33s.


    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction from >>>>>> before.

    Even if, yeah, having a signed immediate would have avoided the
    need to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather
    than the 10u/10n scheme for ADD and similar (to not burn as much
    encoding space).

    Changing these at this point would break binary compatibility though. >>>>>>
    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions with >>>>> Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density.

    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
       FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
       FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or
    an encoding representing a Binary64 value truncated to 32-bits, and
    currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but would
    also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo
    prefixes (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well
    (which also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have a
    way to represent zero. The exponent is shifted by adding a bias value
    to it. With S.E3.M3 the smallest exponent encoded as a zero is -3.
    All zeros is 1/8 not zero. So, a special trap for zero needs to be
    added, in which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA
    with seven-bit immediates.


    I repeat a suggestion I made some time ago.  Why not make the 7 bits
    an index into a ROM that holds the 128 most used constants, whatever
    their values?  That should allow a net reduction in instruction size
    (fewer longer immediates required), at minimal increased resource usage.



    Yes, it is a good idea. I considered it but have not implemented it
    (yet). An issue is the ROM would need to be present for different
    precisions and for multiple operands (potentially four). So, 16 copies
    of ROMs. Not sure which uses fewer resources, ROM lookups or a small
    format number.

    I agree about the multiple precision (though obviously the savings are
    more for the higher precisions). But I don't see why why you need four
    copies (presumably for four potential operands in an instruction). But clearly, if all of the operands are constants, the instruction can be evaluated by the compiler and only the result used. I don't know what instructions you have that use four operands, but perhaps using the ROM
    for only only one or two of the operands would gain most of the benefit.


    I tried to think of values to store in a ROM, but could not come up with many.

    ISTM that going through a representative collection of common programs
    and "extracting" the constants should be a good start.
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Sun Apr 12 18:09:27 2026
    From Newsgroup: comp.arch


    Thomas Koenig <tkoenig@netcologne.de> posted:

    Thomas Koenig <tkoenig@netcologne.de> schrieb:
    Robert Finch <robfi680@gmail.com> schrieb:

    It is like an IEEE format. The exponent is just shifted with a bias
    value. Other than that the hidden bit is still there. The seven bit
    value gets converted to IEEE half, single, or double depending on the
    precision of the operation. It is just an add to the exponent to convert >> it. But it does not allow specifying numbers outside the range +/- 1/8
    to +/- 16.

    The operation is performed handling the usual IEEE stuff, denorms etc.

    I don't understand.

    With denorm bits, I get (with 3+3 bits, positive sign
    only)

    [...]

    Ah, wait. Did you maybe overlook that, in IEEE, the hidden bit
    is only set for exponent != 0? This also makes the representation
    of zero as all zero bits natural.

    In IEEE the hidden bit is simply:

    hidden = exp != 0;
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Sun Apr 12 18:18:21 2026
    From Newsgroup: comp.arch

    On Sun, 12 Apr 2026 04:40:22 +0000, quadi wrote:

    Hopefully, this will finally be the compromise I can live with.

    Before proceeding to make the change, though, I have engaged in more reflection.

    The memory-reference instructions are unimpaired.

    The 15-bit paired short instructions are unimpaired.

    But I lose the one header that had only four prefix bits.

    Is that a good balance?

    The 15-bit paired instructions are really just a stopgap, to provide short instructions when a header isn't used. So using a header is the better
    option, so it is what should have priority.

    But headers have been criticized. Maybe with a full 25% of the opcode
    space cleanly freed up, I could think of a better option.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From antispam@antispam@fricas.org (Waldek Hebisch) to comp.arch on Sun Apr 12 19:28:01 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> wrote:
    On 4/5/2026 6:43 AM, John Dallman wrote:
    In article <2026Apr5.113843@mips.complang.tuwien.ac.at>,
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    a) it eats 3/4 of the OpCode space
    OK, that _is_ unsatisfactory.
    Why?

    I was making an unconscious assumption, which is probably unwarranted:
    that the compressed instruction set was a fairly small subset of the full
    one. If it was, then taking 3/4 of the opcode space would be quite bad.
    My thinking about compressed ISAs is influenced by ARM, where T32 is a
    separate mode from the A64 that I've actually used for all the ARM
    platforms I've ported software to.

    If the compressed instruction set has most of the operations of the
    uncompressed one, but is smaller because it addresses subsets of the
    registers and has smaller displacements and immediates, there's a
    question of if there is a "primary" instruction set, and if so, what it
    is?


    Can RV-C be used standalone? No.

    I am not sure what you mean above. There is rv32ec subset which
    can be used "standalone", that is IIUC CPU has no other instructions.

    Is RV-C even particularly effective? No.

    Well, GCC output on many examples shows small size. I would call
    this effective.
    --
    Waldek Hebisch
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Sun Apr 12 17:01:18 2026
    From Newsgroup: comp.arch

    On 4/12/2026 2:28 PM, Waldek Hebisch wrote:
    BGB <cr88192@gmail.com> wrote:
    On 4/5/2026 6:43 AM, John Dallman wrote:
    In article <2026Apr5.113843@mips.complang.tuwien.ac.at>,
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    a) it eats 3/4 of the OpCode space
    OK, that _is_ unsatisfactory.
    Why?

    I was making an unconscious assumption, which is probably unwarranted:
    that the compressed instruction set was a fairly small subset of the full >>> one. If it was, then taking 3/4 of the opcode space would be quite bad.
    My thinking about compressed ISAs is influenced by ARM, where T32 is a
    separate mode from the A64 that I've actually used for all the ARM
    platforms I've ported software to.

    If the compressed instruction set has most of the operations of the
    uncompressed one, but is smaller because it addresses subsets of the
    registers and has smaller displacements and immediates, there's a
    question of if there is a "primary" instruction set, and if so, what it
    is?


    Can RV-C be used standalone? No.

    I am not sure what you mean above. There is rv32ec subset which
    can be used "standalone", that is IIUC CPU has no other instructions.


    AFAIK, the issue is that if you tried to use strictly RV-C ops (with no
    32-bit encodings), then the CPU is too limited to work effectively. So,
    RV-C can't be used as a standalone ISA.

    Contrast, say, with SuperH which can be used effectively as a
    fixed-length 16-bit ISA. As can the original Thumb ISA.


    Then again, I guess one someone could try to use the "C" encodings as a standalone ISA, as it does at least have enough that it could be
    possible in theory (with a specialized compiler).


    Say, faking:
    BLT Xs, Xt, Lbl
    As, say:
    MV X15, Xs
    SUB X15, Xt
    SRA X15, 31
    BNE X15, Lbl

    Or, maybe reclaim some bits from a few of the Reg5 encodings to encode additional instructions in the Reg4 space.

    ...



    Is RV-C even particularly effective? No.

    Well, GCC output on many examples shows small size. I would call
    this effective.


    In my testing, it can replace around 40% of the instructions, gaining a roughly 20% size reduction.

    Would need to replace 60% of the 32-bit instructions with 16-bit forms
    to gain a 30% reduction. This is closer to what I could get with XG1.

    If it were much less than a 40% replacement, one could likely just write
    it off entirely.



    While arguably a 100% replacement could (in premise) gain a 50% size reduction, invariably one would need to use a lot of multi-op sequences,
    so fixed-length 16-bit encodings tending to work out with worse
    code-density than 16/32 encoding schemes, and worse performance than
    either 16/32 or fixed 32-bit (but still typically better code density
    than fixed 32-bit).

    The best case for code-density being something more like SH-2A, which primarily used 16-bit ops with a handful of 32-bit ops for cases that
    needed more:
    Load/Store with Displacement;
    3R ALU ops with immediate values;
    ...

    But, this isn't too much different from the path that led to XG1 (which originally evolved out of expanding a 16-bit ISA, rather than from "compressing" a 32-bit ISA).

    Nevermind if XG2 and XG3 abandoned the 16-bit encodings (losing some
    code density, but trying to make it up in other ways).


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Mon Apr 13 19:41:56 2026
    From Newsgroup: comp.arch

    On Sun, 12 Apr 2026 18:18:21 +0000, quadi wrote:

    But headers have been criticized. Maybe with a full 25% of the opcode
    space cleanly freed up, I could think of a better option.

    I've found another possible "acceptable" sacrifice that lets me keep the header with four prefix bits and yet avoid messy limitations on the 15-bit paired instructions.

    This time, when there is no header, the Medium floating-point data type is banished from the basic load-store memory-reference instructions. So the result looks like an acceptable RISC instruction set plus all the extra
    stuff you get if you're willing to use headers... since Medium floating-
    point was a unique addition of mine.

    The day of reckoning is postponed, at least.

    But I still need to do one more thing. In order to make it even worth continuing, after deleting the two code formats that I've found to be superfluous, I need to bring in something better that includes what I've
    tried to add with one of those code formats in a better way.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Mon Apr 13 15:51:10 2026
    From Newsgroup: comp.arch

    On 4/12/2026 12:12 PM, Stephen Fuld wrote:
    On 4/11/2026 11:01 AM, BGB wrote:
    On 4/11/2026 9:28 AM, Stephen Fuld wrote:
    On 4/11/2026 4:32 AM, Robert Finch wrote:
    On 2026-04-11 2:45 a.m., BGB wrote:
    On 4/11/2026 12:41 AM, Robert Finch wrote:
    On 2026-04-09 10:09 p.m., BGB wrote:
    On 4/9/2026 8:11 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:

    On 4/9/2026 12:35 PM, MitchAlsup wrote:
    ------------------
    Had recently got some minor code density improvements in XG3, >>>>>>>>> have noted:
    Was trying to encode "~x" as "XOR Rs, -1, Rd", which needs a >>>>>>>>> 64-bit
    encoding on XG3

    Although rarely used, could there be an explicit COM instruction? >>>>>> It needs only one (or two) register field. With a 32-bit encoding >>>>>> there is 22 bits available for the opcode.

    I thought about it, and looked into it, and the "breaking impact"
    of changing OR and XOR from 10u to 10s seemed acceptable:
       XG1/XG2: No Effect, N/E for XG1, N/A for XG2.
       XG3: Only obvious effect of change was a demo desync in Heretic. >>>>>
    So, while it was a breaking change, it wasn't one that breaks
    enough to make it a deal-breaker.

    Seemingly the only case it came up was in the Gargoyle AI code.
    Granted, breaking changes aren't ideal, but can maybe let this one
    slide.


    A had looked into disabling the ADDU.L 3RI case in BGBCC and
    instead using either immediate-synthesis or 2-op sequences. Impact
    is "small enough".


    Doing similar for ADDS.L would not go over as well though, as it
    would have a roughly 3% adverse impact on code-side. There isn't
    really a good way to shrink the 10un encodings to 10s (and trying
    to change behavior here would also effect XG1 and XG2).

    Issue is that ADDS.L's 3RI form is used roughly 200x more often
    than ADDU.L's 3RI form; so having a 3RI form of ADDU.L isn't
    worthwhile.

    Though, ADDS.L is used roughly 10x less than ADD's 3RI form (which
    is the main option that actually warrants the 10un 3RI encodings).


    The main reason to consider reducing or dropping the ADDU.L and
    ADDS.L encodings would be to try to free up some more of the Imm10
    space.




          XOR  Rd,Rs,#-1

    Is a 32-bit encoding in My 66000.

    But: 15 & ~x is:

          AND   Rd,~RS,#15

    Is a 32-bit encoding, too.


    In XG3, it is a 64-bit encoding because the 32-bit encoding was >>>>>>> Imm10u (contrast to XOR being Imm10s), but in the XG1->XG2
    transition AND became signed wheres OR and XOR remained unsigned, >>>>>>> because in this case negative immediate values for AND were more >>>>>>> common but for OR and XOR was rare, and XG3 kept the same pattern. >>>>>>>
    In all of these cases though, a jumbo prefix expands them to 33s. >>>>>>>

    Does mean though that the trick that RISC-V uses here is less
    efficient on XG3; but I did carry over the NOT 2R instruction
    from before.

    Even if, yeah, having a signed immediate would have avoided the >>>>>>> need to keep the NOT instruction around.

    Maybe could have made them all 10s though.

    Arguably also maybe would have been better to use Imm10s rather >>>>>>> than the 10u/10n scheme for ADD and similar (to not burn as much >>>>>>> encoding space).

    Changing these at this point would break binary compatibility
    though.

    Well, win-some, lose some.


    These two operations can be done as single 48-bit instructions
    with Qupls4

    XOR Rd,Rs1,#-1
    XOR_AND Rd,Rs1,#-1,#15

    Thinking of dynamic instruction count density versus code density. >>>>>>
    Not sure if to add ANDC and ORC instructions to the ISA.

    Maybe swap NAND for ANDC as NAND can be synthesized:
    AND_XOR Rd,Rs1,Rs2,#-1

    Some useless combinations of instructions:
    NAND_XOR Rd,Rs1,Rs2,#-1 sames as AND


    Dunno there...


    I am looking into adding some special cases:
       FADD/FSUB/FMUL Rm, J_Imm16_fp16, Rn    //XG1/2/3
       FADD/FSUB/FMUL Rm, J_Imm32_fp64t, Rn  //XG3 only

    Which would add 64-bit encodings which could add either a Binary16
    immediate for FPU ops (potentially encoded in all 3 ISA modes), or
    an encoding representing a Binary64 value truncated to 32-bits, and >>>>> currently only may be encoded in XG3.

    It is possible that there could be an Imm64_fp64 encoding, but
    would also need to be XG3 only.

    Partly this is because XG3 essentially has the biggest jumbo
    prefixes (so can pull this off with immediate synthesis).


    Could potentially also add an J_Imm16_fp16 case to RV+JX as well
    (which also has immediate synthesis).





    It just occurred to me, the seven-bit float immediate does not have
    a way to represent zero. The exponent is shifted by adding a bias
    value to it. With S.E3.M3 the smallest exponent encoded as a zero is
    -3. All zeros is 1/8 not zero. So, a special trap for zero needs to
    be added, in which case 1/8 cannot be represented.

    Special case logic hurts size and performance. Zero is probably used
    often enough though. All those extra IF/ELSE adding priority logic.

    FMUL is done as FMA (Rs1 * Rs2) + 0

    Could add an explicit FMUL instruction with a 16-bit immediate.
    Splitting hairs though, probably does not add enough value over FMA
    with seven-bit immediates.


    I repeat a suggestion I made some time ago.  Why not make the 7 bits
    an index into a ROM that holds the 128 most used constants, whatever
    their values?  That should allow a net reduction in instruction size
    (fewer longer immediates required), at minimal increased resource usage. >>>

    Ironically, when I tested it out before, E3.M2 vs special lookup
    tables, vs ...

    E3.M2 was able to get the best average hit-rate and was also cheap.

    I presume E3.M2 gets "expanded" internally to, if it say FP added to
    some FP32 bit value in a register, a 32 bit internal value.  If that is true, if one picked the same 128 bit values for the internal ROM as you
    get with E3.M2, you should get the same hit rate, right?  Then, if there
    is some value not in that list that is used more than the least used
    value in the list (hard to believe there isn't such a value), you should
    get get a higher "hit rate".  What am I missing?


    IIRC, options tested were stuff like:
       E3.M2
       Imm5 (1..32)
       Imm5*0.1  (0.1..3.2)
       ...



    Had noted elsewhere that is seems like the most common floating point
    literals fall into categories:
       Integer numbers;
       Int1/(2^Int2)
       Int1*(10^Int2)
       1.0/Int

    Nothing related to pi, e.g. pi, 1/pi, pi/2, etc.?  Or perhaps e?  To me that is surprising.


    One might expect these, but statistically, they seem uncommon.

    Seemingly one is more likely to encounter constants like 5/8 or 3/16, or
    a "ye olde" integer, than they are to encounter something like M_PI or M_E.

    Granted, could need to analyze a lot more code to get a more general
    consensus here.

    As for why it seems like "socket wrench" style sizes are more common
    than, say things like "0.1" and similar, I don't know.

    Otherwise, I guess it is possible one could have a lookup table for a
    root constant and an exponent that is added on.



    Well, anyways, ended up writing a tool to basically try processing all
    of the C files found on one of my HDDs, and came up with some general
    running stats:
    C files: 277760
    Integer Constants: 29411731

    FPU Constants: 227126
    Int: 112697
    Int16: 106987 (47.1%)
    Binary16: 144042 (63.1%)

    Decimal, Total 43887 (19.3%)
    Decimal, y.x 26392 (11.6%)
    Decimal, y.xx 11281 ( 5.0%)
    Decimal, y.xxx 6207 ( 2.7%)

    Not Binary16 or Decimal: 17.3%


    The tool does try to specifically exclude constants found in arrays though.


    If including things like big arrays of numbers for precomputed sin/cos
    tables or similar (it ran into a few of these) these kinda wreck the stats.

    As well as excluding some files that seem to have an excessive number of
    FP constants (may need to investigate more closely).


    During the early part of the stats gathering, exact Binary16 was
    hovering around 80%, but then it hits some files that knock it back a bit.

    The Decimal case mostly matches patterns fitting a decimal pattern that
    had failed to match to Binary16.

    The Int16 category covers FP values that are integers and fall within
    the range of a 16-bit integer (may overlap with the Binary16 case, or
    include values that may not be represented exactly). Whereas, the Int
    case includes all integer values (both inside and outside Int16 range,
    or +/- 32K in this case).


    The remaining "other" category hasn't really been looked into that much yet.

    This is source-level for now, so doesn't include any computed constant
    values or macros.




    Some raw stats (for the cases where Binary16 worked):
    <===
    By exponent:
    ex=0: stat=0 (0.00)
    ex=1: stat=0 (0.00)
    ex=2: stat=2 (0.00)
    ex=3: stat=0 (0.00)
    ex=4: stat=6 (0.00)
    ex=5: stat=0 (0.00)
    ex=6: stat=0 (0.00)
    ex=7: stat=1 (0.00)
    ex=8: stat=3 (0.00)
    ex=9: stat=12 (0.01)
    ex=10: stat=60 (0.05)
    ex=11: stat=191 (0.15)
    ex=12: stat=460 (0.37)
    ex=13: stat=2924 (2.35)
    ex=14: stat=29759 (23.96)
    ex=15: stat=43677 (35.16)
    ex=16: stat=11109 (8.94)
    ex=17: stat=4265 (3.43)
    ex=18: stat=4325 (3.48)
    ex=19: stat=2690 (2.17)
    ex=20: stat=2344 (1.89)
    ex=21: stat=8310 (6.69)
    ex=22: stat=5450 (4.39)
    ex=23: stat=2805 (2.26)
    ex=24: stat=2617 (2.11)
    ex=25: stat=1116 (0.90)
    ex=26: stat=626 (0.50)
    ex=27: stat=367 (0.30)
    ex=28: stat=360 (0.29)
    ex=29: stat=214 (0.17)
    ex=30: stat=515 (0.41)
    ex=31: stat=0 (0.00)

    Still represented when trimming N bits off mantissa:
    nzb=0: stat=124208 (100.00)
    nzb=1: stat=123467 (99.40)
    nzb=2: stat=122098 (98.30)
    nzb=3: stat=121278 (97.64)
    nzb=4: stat=117203 (94.36)
    nzb=5: stat=113670 (91.52)
    nzb=6: stat=111451 (89.73)
    nzb=7: stat=105039 (84.57)
    nzb=8: stat=101767 (81.93)
    nzb=9: stat=93982 (75.66)



    In this case, it would appear that the limitation for E3.M2 is more
    exponent range than mantissa.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Mon Apr 13 21:11:04 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> schrieb:
    On 4/12/2026 12:12 PM, Stephen Fuld wrote:

    Had noted elsewhere that is seems like the most common floating point
    literals fall into categories:
       Integer numbers;
       Int1/(2^Int2)
       Int1*(10^Int2)
       1.0/Int

    Nothing related to pi, e.g. pi, 1/pi, pi/2, etc.?  Or perhaps e?  To me >> that is surprising.


    One might expect these, but statistically, they seem uncommon.

    This is *very* much a function of the programs you are looking at.
    Is anything related to scientific or engineering calculation in
    your sample?

    Seemingly one is more likely to encounter constants like 5/8 or 3/16, or
    a "ye olde" integer, than they are to encounter something like M_PI or M_E.

    Granted, could need to analyze a lot more code to get a more general consensus here.

    Very much so. Regarding floating point, there is no such thing as a
    "typical" application. People who have access to SPEC might have a
    better overview.

    As for why it seems like "socket wrench" style sizes are more common
    than, say things like "0.1" and similar, I don't know.

    Socket wrench?
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Mon Apr 13 21:37:14 2026
    From Newsgroup: comp.arch

    On Mon, 13 Apr 2026 19:41:56 +0000, quadi wrote:

    But I still need to do one more thing. In order to make it even worth continuing, after deleting the two code formats that I've found to be superfluous, I need to bring in something better that includes what I've tried to add with one of those code formats in a better way.

    I went ahead with uploading the changes before having solved this problem,
    but the solution arose as I was making the changes. The Type III header
    was modified so that the unrestricted memory-reference operate
    instructions could be 35 bits long instead of 34 bits long.

    That solved the issue I was having, and I didn't have to use a four-bit
    prefix field which would have made for an excessively long header.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Mon Apr 13 17:07:11 2026
    From Newsgroup: comp.arch

    On 4/13/2026 4:11 PM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/12/2026 12:12 PM, Stephen Fuld wrote:

    Had noted elsewhere that is seems like the most common floating point
    literals fall into categories:
       Integer numbers;
       Int1/(2^Int2)
       Int1*(10^Int2)
       1.0/Int

    Nothing related to pi, e.g. pi, 1/pi, pi/2, etc.?  Or perhaps e?  To me >>> that is surprising.


    One might expect these, but statistically, they seem uncommon.

    This is *very* much a function of the programs you are looking at.
    Is anything related to scientific or engineering calculation in
    your sample?


    This might be under-represented, as I tend not to do much in these domains.


    Seemingly one is more likely to encounter constants like 5/8 or 3/16, or
    a "ye olde" integer, than they are to encounter something like M_PI or M_E. >>
    Granted, could need to analyze a lot more code to get a more general
    consensus here.

    Very much so. Regarding floating point, there is no such thing as a "typical" application. People who have access to SPEC might have a
    better overview.


    I noted that the stat drops when I scanned over around 278k C files.

    But, still around 63.4% of the values could be represented exactly as Binary16.

    Though, this is only counting literals tokens that appear in C source
    files (and it still takes a while, and much HDD activity, to build these stats).


    Not sure what all is included, but had noted a few things in the path list:
    Linux kernel;
    GNU Coreutils and similar;
    GCC;
    ...

    I think there are things like LLVM/Clang and similar on this drive as
    well, etc, but these wouldn't be counted as for now it was only scanning
    for ".c" files.

    I could maybe scan other drives and see if the stats differ...


    Checking another (older and potentially more varied) drive:
    Found 210k C files;
    67.8% exactly represented as Binary16;
    49.8% can be represented as 16-bit integer values;
    15.9% could be represented as 1-digit + 1..3 digits following decimal point.

    ...

    As for what all is on this drive?... Dunno, whatever random C code I
    happened to download over the years.



    As for why it seems like "socket wrench" style sizes are more common
    than, say things like "0.1" and similar, I don't know.

    Socket wrench?


    Typically come in fractions of an inch to fit the various sizes of
    bolts: 3/8, 7/16, 1/2, 5/8, ...

    And, socket wrench bits come in sizes to match the bolts, which usually
    have a hexagonal head with a given width defined in inches.


    Also endmills and bolts/screws come in similar sizes:
    3/16, 1/4, ...
    Usually with a TPI for screws and bolts (1/4-20, for 1/4 inch, 20 turns
    per inch).

    Drill bits often come in these sizes as well.

    Etc.



    Except when they switch to number-sizes for screws:
    #10-24, #6-32, #4-40
    Or, Metric:
    M3x0.5
    ...

    Where, say, in the computer-screws space there is seemingly a
    never-ending turf-war between M3 and 6-32...


    There are also metric sockets and bolts around, but they are less
    commonly used (and may often have other oddities like an indent for a
    Torx driver or similar).


    Inch bolts typically have a flat top (no indent), or sometimes a spot
    for an Allen wrench (hexagon indent), though in general Allen screws are
    round topped with a knurled edge. Allen wrench sizes are typically also
    a fraction of an inch.

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Mon Apr 13 18:36:23 2026
    From Newsgroup: comp.arch

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/12/2026 12:12 PM, Stephen Fuld wrote:

    Had noted elsewhere that is seems like the most common floating point
    literals fall into categories:
       Integer numbers;
       Int1/(2^Int2)
       Int1*(10^Int2)
       1.0/Int

    Nothing related to pi, e.g. pi, 1/pi, pi/2, etc.?  Or perhaps e?  To me >>> that is surprising.


    One might expect these, but statistically, they seem uncommon.

    This is *very* much a function of the programs you are looking at.
    Is anything related to scientific or engineering calculation in
    your sample?

    Seemingly one is more likely to encounter constants like 5/8 or 3/16, or
    a "ye olde" integer, than they are to encounter something like M_PI or M_E. >>
    Granted, could need to analyze a lot more code to get a more general
    consensus here.

    Very much so. Regarding floating point, there is no such thing as a "typical" application. People who have access to SPEC might have a
    better overview.

    As for why it seems like "socket wrench" style sizes are more common
    than, say things like "0.1" and similar, I don't know.

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is
    used nowadays.

    It could be that what might seem to be common constants are simply well
    known and not used that often. Constants like PI and PI by two may be
    used implementing trig functions, but they are only used a few times in
    the math library. Their dynamic usage may be very high, but how often do
    they appear statically in code? While some app may use the sin()
    function very often, the constants associated with it are specified only
    once inside the function.

    Putting together the constant ROM I could not see how some of the
    constants would be very useful outside of specific functions. But IDK.

    Other constants like 1.0, 2.0, 0.5 are used many times.

    It may be important enough to support some rarely used constants with a constant table to reduce errors. Getting a value like PI, e, or LN2
    wrong could be bad.

    *****

    For q+ having a constant ROM available for every source operand resulted
    in a design that would not route. Too much congestion. So, the first
    source operand no longer has the constant ROM available. It would not
    have been very useful anyway. Most of the time one wants to perform an
    op of a variable with a constant.

    *****

    Thinking of adding a POLY instruction to the ISA. I note the VAX POLY()
    loads the coefficients from memory. But there are a lot of register
    available for Q+. A load multiple registers followed by the POLY() would
    do the same thing. The other thing is a limited number of co-efficients.
    VAX allows 31, but Q+ would be limited to 15.

    POLY Rd, Rs1, Rs2, #n
    Rs1 contains 'X'
    Rs2 identifies the first register of a table of registers containing coefficients. OR
    The Rs2 field identifies the first coefficient in the constant ROM
    lookup table.
    #n is the degree

    It would be able to evaluate POLYs with up to 15 co-efficients using
    Homer’s method.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 01:19:13 2026
    From Newsgroup: comp.arch


    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is
    used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.

    It could be that what might seem to be common constants are simply well known and not used that often. Constants like PI and PI by two may be
    used implementing trig functions, but they are only used a few times in
    the math library. Their dynamic usage may be very high, but how often do they appear statically in code? While some app may use the sin()
    function very often, the constants associated with it are specified only once inside the function.

    Putting together the constant ROM I could not see how some of the
    constants would be very useful outside of specific functions. But IDK.

    Other constants like 1.0, 2.0, 0.5 are used many times.

    It may be important enough to support some rarely used constants with a constant table to reduce errors. Getting a value like PI, e, or LN2
    wrong could be bad.

    *****

    For q+ having a constant ROM available for every source operand resulted
    in a design that would not route. Too much congestion. So, the first
    source operand no longer has the constant ROM available. It would not
    have been very useful anyway. Most of the time one wants to perform an
    op of a variable with a constant.

    *****

    Thinking of adding a POLY instruction to the ISA. I note the VAX POLY() loads the coefficients from memory. But there are a lot of register available for Q+. A load multiple registers followed by the POLY() would
    do the same thing. The other thing is a limited number of co-efficients.
    VAX allows 31, but Q+ would be limited to 15.

    POLY Rd, Rs1, Rs2, #n
    Rs1 contains 'X'
    Rs2 identifies the first register of a table of registers containing coefficients. OR
    The Rs2 field identifies the first coefficient in the constant ROM
    lookup table.
    #n is the degree

    It would be able to evaluate POLYs with up to 15 co-efficients using Homer’s method.

    This depends::
    When constants are in some kind of ROM associated with the polynomial evaluation unit, lookup time is free, and the bits of precision does
    not have to match IEEE register sizes. By using as little as 3 more
    bits of precision, one can often save a) an evaluation iteration or
    b) special step after polynomial and before rounding.

    Secondarily: Horner's method, while numerically stable, you often end
    up performing at 1/2 FMAC capabilities because you have to wait for
    the previous multiply to fall out the bottom of the multiplier. If,
    instead, you use simple power-series, you can perform the x^n in odd
    cycles, and (x^(n-1))×C in even cycles, nearly doubling perf. You can
    shorten the higher order terms in the ROM without losing precision.

    Thirdly, do yourself a favor and use Chebyshev polynomials or Remes improvements on Chebyshev polynomial coefficients.

    Forth, by stretching out the Chebyshev interval, you can minimize
    the error at the endpoints of intervals, and avoid special cases.

    I, personally, would not add a POLY instruction, but have added most
    of the elementary transcendental functions to ISA. It is a delicate
    balance.

    Also note: if you look at the coefficients of SIN() and COS(), you will
    find the coefficients you need for EXP() in the range [1..2)


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Mon Apr 13 22:50:18 2026
    From Newsgroup: comp.arch

    On 2026-04-13 9:19 p.m., MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is
    used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.

    It could be that what might seem to be common constants are simply well
    known and not used that often. Constants like PI and PI by two may be
    used implementing trig functions, but they are only used a few times in
    the math library. Their dynamic usage may be very high, but how often do
    they appear statically in code? While some app may use the sin()
    function very often, the constants associated with it are specified only
    once inside the function.

    Putting together the constant ROM I could not see how some of the
    constants would be very useful outside of specific functions. But IDK.

    Other constants like 1.0, 2.0, 0.5 are used many times.

    It may be important enough to support some rarely used constants with a
    constant table to reduce errors. Getting a value like PI, e, or LN2
    wrong could be bad.

    *****

    For q+ having a constant ROM available for every source operand resulted
    in a design that would not route. Too much congestion. So, the first
    source operand no longer has the constant ROM available. It would not
    have been very useful anyway. Most of the time one wants to perform an
    op of a variable with a constant.

    *****

    Thinking of adding a POLY instruction to the ISA. I note the VAX POLY()
    loads the coefficients from memory. But there are a lot of register
    available for Q+. A load multiple registers followed by the POLY() would
    do the same thing. The other thing is a limited number of co-efficients.
    VAX allows 31, but Q+ would be limited to 15.

    POLY Rd, Rs1, Rs2, #n
    Rs1 contains 'X'
    Rs2 identifies the first register of a table of registers containing
    coefficients. OR
    The Rs2 field identifies the first coefficient in the constant ROM
    lookup table.
    #n is the degree

    It would be able to evaluate POLYs with up to 15 co-efficients using
    Homer’s method.

    This depends::
    When constants are in some kind of ROM associated with the polynomial evaluation unit, lookup time is free, and the bits of precision does
    not have to match IEEE register sizes. By using as little as 3 more
    bits of precision, one can often save a) an evaluation iteration or
    b) special step after polynomial and before rounding.

    Secondarily: Horner's method, while numerically stable, you often end

    I looked up VAX Poly instruction using the AI and it called it Homer's
    method instead of Horner's method.

    up performing at 1/2 FMAC capabilities because you have to wait for
    the previous multiply to fall out the bottom of the multiplier. If,
    instead, you use simple power-series, you can perform the x^n in odd
    cycles, and (x^(n-1))×C in even cycles, nearly doubling perf. You can shorten the higher order terms in the ROM without losing precision.

    Maybe two POLY instructions, one to evaluate using Horner's method and
    the other using power series. I was looking at the code in the standard
    math library and it uses Horner's method. I wonder how much code depends
    on Horner's method.

    I will have to think more about how to implement power series -
    factoring out the X. Is it possible to modify Horner's method so that
    there are two terms evaluated? Factoring out x^2 instead of x?

    Thirdly, do yourself a favor and use Chebyshev polynomials or Remes improvements on Chebyshev polynomial coefficients.

    Forth, by stretching out the Chebyshev interval, you can minimize
    the error at the endpoints of intervals, and avoid special cases.

    I need to study up on my maths, it has been quite a long time since I
    delved into Chebyshev polynomials.

    I, personally, would not add a POLY instruction, but have added most
    of the elementary transcendental functions to ISA. It is a delicate
    balance.

    Also note: if you look at the coefficients of SIN() and COS(), you will
    find the coefficients you need for EXP() in the range [1..2)



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Tue Apr 14 05:31:47 2026
    From Newsgroup: comp.arch

    Robert Finch <robfi680@gmail.com> schrieb:

    I will have to think more about how to implement power series -
    factoring out the X. Is it possible to modify Horner's method so that
    there are two terms evaluated? Factoring out x^2 instead of x?

    See https://en.wikipedia.org/wiki/Polynomial_evaluation for a
    few methods.

    [Mitch had written]

    Thirdly, do yourself a favor and use Chebyshev polynomials or Remes
    improvements on Chebyshev polynomial coefficients.

    Yes.

    Forth, by stretching out the Chebyshev interval, you can minimize
    the error at the endpoints of intervals, and avoid special cases.

    Again, yes.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 14 00:51:56 2026
    From Newsgroup: comp.arch

    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is
    used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.


    Yeah, somehow I would have thought pretty much everyone would be
    familiar with them and with the system of fractions for defining sizes
    for things...

    But, can't make too many assumptions it seems.


    But, yeah, for a lot of things, they are held together by large screws
    that we call bolts, which either screw into a threaded hole, or are held
    in place by a "nut" that threads on the other end. Bolts typically have hexagonal heads, and nuts resemble metal hexagons with a threaded hole
    in the middle (that matches up with the threads cut into the bolt).

    Sockets are typically small circular pieces of steel with a hexagonal
    opening on one end (to match up with the head of a bolt), and a square
    hole on the other (for the "socket wrench"). The socket wrench usually resembles a metal bar with one end having a rotating section with a
    square protrusion that matches up with the hole on the socket. There is usually a mechanism to only allow the socket to turn one way, typically
    with a small lever to control which direction it can turn.


    Some other things we have are:
    Philips tip screwdrivers, where the end resembles the + symbol;
    Flat head screwdrivers, with a single flat blade.
    These are older tech, rarely used for screws,
    more often used for scraping something or as a pry.
    Well, except for electrical terminals,
    and electrical outlet face-plate screws.
    Allen screws and wrenches;
    Where the wrench is hexagon shaped,
    and the screw has a hexagon indent.
    Also commonly used.
    Robertson screws:
    Like Allen except square rather than hexagon;
    Rarely used.
    Torx:
    Also like Allen, except that the tool/indent are a 6 sided star;
    Also uncommon except for very small electronics screws and similar;
    Like, cellphone or laptop probably gonna have Torx in it.
    Security Torx:
    Like Torx but with a round peg in the middle of the screw head.
    Triangle Head Screws:
    Like Allen but with a triangle;
    Rarely encountered.
    ...


    But, yeah, other than fractions of inch, sometimes there are metric
    bolts ans screws, which instead define sizes in terms of millimeters.

    So, for example, M10x1.5 would mean a bolt with a 10mm major diameter
    and one turn every 1.5mm.

    These are less commonly used though than inch based screws. It seems to
    depend some on the product whether inch-based or metric-based screw
    sizes dominate (but, the standard seems to be to use a mix of both).


    It is possible other parts of the world use other technologies, but at
    least in the US and similar, have usually encountered these.


    For most uses, things are defined in units of 1/16 or 1/32 with the
    fraction then reduced to lowest terms, so, say:

    1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2, 9/16, 5/8, 11/16, 3/4,
    13/16, 7/8, 15/16

    For sizes larger than 1-inch, the major inch is split out, so 1-1/16,
    1-1/8, ...

    Otherwise, there are sizes like 1/32, 3/32, 5/32, ... though in practice
    it is common for sizes to get coarser as things get bigger.

    Say, for example, typical size stepping for tools/etc:
    0.125-0.250: 1/64
    0.250-0.500: 1/32
    0.500-1.000: 1/16
    1.000-2.000: 1/8
    2.000+ : 1/4 or bigger



    For many uses, 1/32 (0.8 mm) is seen as a lower practical limit for
    things like end-mills and drill bits, as these are basically tools that
    will break off if one looks at them funny. IIRC, this is a semi-common
    size for machining features into PCBs though.

    A lot of what I had done had usually used end-mills between 1/8" and
    1/2", where smaller tools are good for details, and bigger tools for
    removing a lot more metal.

    Where an end-mill sorta resembles a flat-ended drill bit, but typically stiffer, and usually relies mostly on the corners for most of the work. Usually, the whole side of the endmill is cutting edge, but often the
    sides don't get used as much in practice IME (sorta wonder why they
    can't just have a carbide insert that screws on the end of a steel hex
    shaft or similar, could probably be made cheaper than full carbide
    end-mills, alas...).


    Well, also for threading the inside of holes, we have "taps", that kinda resemble screws or bolts, often with cutting flutes (depending on type).

    Well, and though unorthodox, if tapping a softer metal (like aluminum or similar), a stainless steel screw or bolt (or all-thread) can be used in
    place of a form tap (hole is drilled the same size as for form tapping).

    Say, for example, a short piece of 304 stainless 1/4-20 all-thread can
    serve a similar role (form tapping aluminum) while being both cheaper
    than a tap and also less prone to break IME. But, some people get upset
    if one does this sort of thing. Doesn't work on steel or similar though
    (one does need actual taps if tapping steel).


    Note that also common for metalworking (but not on computers) is
    typically to round everything to 3 digits after the decimal point.

    So, 0.497", but if one has 0.49693" people will look at you funny.
    Well, and for most things: staying within +/- 0.005" is good, but going
    much outside this range is bad.

    This sort of rounding would actually reduce the hit rate of Binary16
    though (0.03125 being exactly represented as Binary16, but 0.032 is not).



    But, yeah, it is more just an interesting observation that
    floating-point constants appear to be following similar patterns to
    those used for tool sizes and similar (but without the 3 digit rounding property), despite the lack of an obvious reason for why this would necessarily be the case.




    It could be that what might seem to be common constants are simply well
    known and not used that often. Constants like PI and PI by two may be
    used implementing trig functions, but they are only used a few times in
    the math library. Their dynamic usage may be very high, but how often do
    they appear statically in code? While some app may use the sin()
    function very often, the constants associated with it are specified only
    once inside the function.

    Putting together the constant ROM I could not see how some of the
    constants would be very useful outside of specific functions. But IDK.

    Other constants like 1.0, 2.0, 0.5 are used many times.

    It may be important enough to support some rarely used constants with a
    constant table to reduce errors. Getting a value like PI, e, or LN2
    wrong could be bad.

    *****

    For q+ having a constant ROM available for every source operand resulted
    in a design that would not route. Too much congestion. So, the first
    source operand no longer has the constant ROM available. It would not
    have been very useful anyway. Most of the time one wants to perform an
    op of a variable with a constant.

    *****

    Thinking of adding a POLY instruction to the ISA. I note the VAX POLY()
    loads the coefficients from memory. But there are a lot of register
    available for Q+. A load multiple registers followed by the POLY() would
    do the same thing. The other thing is a limited number of co-efficients.
    VAX allows 31, but Q+ would be limited to 15.

    POLY Rd, Rs1, Rs2, #n
    Rs1 contains 'X'
    Rs2 identifies the first register of a table of registers containing
    coefficients. OR
    The Rs2 field identifies the first coefficient in the constant ROM
    lookup table.
    #n is the degree

    It would be able to evaluate POLYs with up to 15 co-efficients using
    Homer’s method.

    This depends::
    When constants are in some kind of ROM associated with the polynomial evaluation unit, lookup time is free, and the bits of precision does
    not have to match IEEE register sizes. By using as little as 3 more
    bits of precision, one can often save a) an evaluation iteration or
    b) special step after polynomial and before rounding.

    Secondarily: Horner's method, while numerically stable, you often end
    up performing at 1/2 FMAC capabilities because you have to wait for
    the previous multiply to fall out the bottom of the multiplier. If,
    instead, you use simple power-series, you can perform the x^n in odd
    cycles, and (x^(n-1))×C in even cycles, nearly doubling perf. You can shorten the higher order terms in the ROM without losing precision.

    Thirdly, do yourself a favor and use Chebyshev polynomials or Remes improvements on Chebyshev polynomial coefficients.

    Forth, by stretching out the Chebyshev interval, you can minimize
    the error at the endpoints of intervals, and avoid special cases.

    I, personally, would not add a POLY instruction, but have added most
    of the elementary transcendental functions to ISA. It is a delicate
    balance.

    Also note: if you look at the coefficients of SIN() and COS(), you will
    find the coefficients you need for EXP() in the range [1..2)



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Tue Apr 14 06:00:59 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is
    used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.


    Yeah, somehow I would have thought pretty much everyone would be
    familiar with them and with the system of fractions for defining sizes
    for things...

    Look at my e-mail address and consider which countries use
    which measuring system. For your amusement, you can also watch https://www.youtube.com/watch?v=JYqfVE-fykk :-)

    But, can't make too many assumptions it seems.

    I was thrown off by the measurements in inches.

    [...]

    It is possible other parts of the world use other technologies, but at
    least in the US and similar, have usually encountered these.


    For most uses, things are defined in units of 1/16 or 1/32 with the
    fraction then reduced to lowest terms, so, say:

    1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2, 9/16, 5/8, 11/16, 3/4,
    13/16, 7/8, 15/16

    Most people outside the US just use mm. The UK is sort of
    fluctuating, they still have their distances in miles.

    But of course, the UK (or Imperial) gallon is different from
    the US gallon.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 14 03:09:55 2026
    From Newsgroup: comp.arch

    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is
    used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.


    Yeah, somehow I would have thought pretty much everyone would be
    familiar with them and with the system of fractions for defining sizes
    for things...

    Look at my e-mail address and consider which countries use
    which measuring system. For your amusement, you can also watch https://www.youtube.com/watch?v=JYqfVE-fykk :-)


    So Germany doesn't also use SAE for screws and bolts?...

    Or, have the same thing of building machines where half the screws are
    SAE and half are Metric.

    If not, are hex-head bolts still dominant, or is it like places where in
    the US one would use a hex-head bolt or Allen-key screw they use Torx or similar?...


    Then again, I guess if anything I would expect things like machines to
    be similar, as most of the machines are presumably still made in China,
    and it would be weird to expect China to make different stuff based on
    what country they intend to sell it in.

    But, then again, I have heard there are sometimes issues, like a lot of Chinese-made machines use copper-clad-aluminum wire, which is apparently illegal in places like Australia, ...


    Well, and I guess in the US, there are a lot of people who don't approve
    of aluminum and CCA wiring, but generally still allowed (though CCA is
    kinda annoying to solder as it can often foul up the tip on the
    soldering iron and/or form an amalgam with the solder which can't really
    be re-melted when if forms).



    But, yeah, I guess it is also sort of like in video games the units are
    more ad-hoc, just whatever is most convenient at the time.


    Though, in a lot of my 3D engines, this has been to use the meter as the
    base unit, but then define an "inch" as 1/32 of a meter; then just be
    like "whatever, close enough". Apparently fairly close to the old French
    Inch though.

    In some cases, can make sense to have a cubit as 1/2 "meter", or "foot"
    as 1/3.


    But, can't make too many assumptions it seems.

    I was thrown off by the measurements in inches.


    OK.

    We have mm stuff as well, but it is less commonly used than inch stuff.

    Tools and CNC machines pretty much exclusively use inches though.



    [...]

    It is possible other parts of the world use other technologies, but at
    least in the US and similar, have usually encountered these.


    For most uses, things are defined in units of 1/16 or 1/32 with the
    fraction then reduced to lowest terms, so, say:

    1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2, 9/16, 5/8, 11/16, 3/4,
    13/16, 7/8, 15/16

    Most people outside the US just use mm. The UK is sort of
    fluctuating, they still have their distances in miles.


    AFAIK, UK also measures things in chains/rods/furlongs/hands/etc,
    weights in stone, ?... It is weird hearing UK people give measurements
    as they often use neither the common US units nor metric.


    Vs Us being like inch/foot/mile/etc, and weight in pounds, ...


    Well, and yards, for things like fabric and sports fields, except on TV
    shows where they use the football fields as a unit of length, and
    swimming pools as a unit of volume, ...



    But of course, the UK (or Imperial) gallon is different from
    the US gallon.


    Most places I have lived have been at least US adjacent.


    So, yeah, liter vs gallon depends on what you are measuring.
    ounce is usually limited to drink sizes;
    pint is usually limited to things like milk cartons.
    Where in US, milk comes either in cardboard cartons or gallon jugs.
    I guess elsewhere in the world, they sell it in plastic bags.

    Likewise for temperatures in F vs C, ...
    F for weather and cooking and similar;
    C for other uses (CPU temp, 3D printing, ...).


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Tue Apr 14 08:30:07 2026
    From Newsgroup: comp.arch

    On 2026-04-14 4:09 a.m., BGB wrote:
    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is >>>>> used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.

    Yeah, somehow I would have thought pretty much everyone would be
    familiar with them and with the system of fractions for defining sizes
    for things...

    Look at my e-mail address and consider which countries use
    which measuring system.  For your amusement, you can also watch
    https://www.youtube.com/watch?v=JYqfVE-fykk :-)


    So Germany doesn't also use SAE for screws and bolts?...

    Or, have the same thing of building machines where half the screws are
    SAE and half are Metric.

    If not, are hex-head bolts still dominant, or is it like places where in
    the US one would use a hex-head bolt or Allen-key screw they use Torx or similar?...


    Then again, I guess if anything I would expect things like machines to
    be similar, as most of the machines are presumably still made in China,
    and it would be weird to expect China to make different stuff based on
    what country they intend to sell it in.

    But, then again, I have heard there are sometimes issues, like a lot of Chinese-made machines use copper-clad-aluminum wire, which is apparently illegal in places like Australia, ...


    Well, and I guess in the US, there are a lot of people who don't approve
    of aluminum and CCA wiring, but generally still allowed (though CCA is
    kinda annoying to solder as it can often foul up the tip on the
    soldering iron and/or form an amalgam with the solder which can't really
    be re-melted when if forms).



    But, yeah, I guess it is also sort of like in video games the units are
    more ad-hoc, just whatever is most convenient at the time.


    Though, in a lot of my 3D engines, this has been to use the meter as the base unit, but then define an "inch" as 1/32 of a meter; then just be
    like "whatever, close enough". Apparently fairly close to the old French Inch though.

    In some cases, can make sense to have a cubit as 1/2 "meter", or "foot"
    as 1/3.


    But, can't make too many assumptions it seems.

    I was thrown off by the measurements in inches.


    OK.

    We have mm stuff as well, but it is less commonly used than inch stuff.

    Tools and CNC machines pretty much exclusively use inches though.



    [...]

    It is possible other parts of the world use other technologies, but at
    least in the US and similar, have usually encountered these.


    For most uses, things are defined in units of 1/16 or 1/32 with the
    fraction then reduced to lowest terms, so, say:

    1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2, 9/16, 5/8, 11/16, 3/4,
    13/16, 7/8, 15/16

    Most people outside the US just use mm.  The UK is sort of
    fluctuating, they still have their distances in miles.


    AFAIK, UK also measures things in chains/rods/furlongs/hands/etc,
    weights in stone, ?... It is weird hearing UK people give measurements
    as they often use neither the common US units nor metric.


    Vs Us being like inch/foot/mile/etc, and weight in pounds, ...


    Well, and yards, for things like fabric and sports fields, except on TV shows where they use the football fields as a unit of length, and
    swimming pools as a unit of volume, ...



    But of course, the UK (or Imperial) gallon is different from
    the US gallon.


    Most places I have lived have been at least US adjacent.


    So, yeah, liter vs gallon depends on what you are measuring.
      ounce is usually limited to drink sizes;
      pint is usually limited to things like milk cartons.
        Where in US, milk comes either in cardboard cartons or gallon jugs.
        I guess elsewhere in the world, they sell it in plastic bags.

    Likewise for temperatures in F vs C, ...
      F for weather and cooking and similar;
      C for other uses (CPU temp, 3D printing, ...).



    We were just converting to the metric system when I was in public
    school, so I had to learn two systems. I am pretty fluent in both, but I
    have forgotten some of the US measurements. I still like to see the temperature in Fahrenheit.

    I was in the doughnut store the other day and asked for a dozen
    doughnuts. The cashier seriously asked me what a dozen was. So, I asked
    for 10 doughnuts instead, rather than try and explain.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 14 12:48:29 2026
    From Newsgroup: comp.arch

    On Mon, 13 Apr 2026 21:37:14 +0000, quadi wrote:

    The Type III header
    was modified so that the unrestricted memory-reference operate
    instructions could be 35 bits long instead of 34 bits long.

    Either the serendipity - or the operation of Parkinson's Law - continues.
    The same mechanism used to expand the 34-bit instructions to 35 bits, so
    that they can have a condition code bit and no addressing mode
    restrictions, is now also used to provide a full alternate 32-bit
    instruction set.

    This allows putting improved versions of the multiple-register load/store instructions, and the supplemental load/store instructions for additional
    data types, in a 32-bit slot instead of needing to use 48-bit instructions
    for the purpose.

    Of course, completing the 32-bit instruction set in this manner still
    requires the overhead of a 48-bit block header. So it might well be asked
    if there is "really" a savings. But the 48-bit instructions also require a header that is at least 32 bits long.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Robert Finch@robfi680@gmail.com to comp.arch on Tue Apr 14 09:07:41 2026
    From Newsgroup: comp.arch

    On 2026-04-14 1:31 a.m., Thomas Koenig wrote:
    Robert Finch <robfi680@gmail.com> schrieb:

    I will have to think more about how to implement power series -
    factoring out the X. Is it possible to modify Horner's method so that
    there are two terms evaluated? Factoring out x^2 instead of x?

    See https://en.wikipedia.org/wiki/Polynomial_evaluation for a
    few methods.

    [Mitch had written]

    I hit upon Estrin's scheme myself writing things out. I did not quite
    follow Mitch's suggestion though.

    Thirdly, do yourself a favor and use Chebyshev polynomials or Remes
    improvements on Chebyshev polynomial coefficients.

    Yes.

    Forth, by stretching out the Chebyshev interval, you can minimize
    the error at the endpoints of intervals, and avoid special cases.

    Again, yes.

    Okay.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Tue Apr 14 14:30:30 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> writes:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robertson screws:
    Like Allen except square rather than hexagon;
    Rarely used.

    Actually, they're the most commonly used screws in
    my household.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Tue Apr 14 14:32:43 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> writes:
    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ..

    Look at my e-mail address and consider which countries use
    which measuring system. For your amusement, you can also watch
    https://www.youtube.com/watch?v=JYqfVE-fykk :-)


    So Germany doesn't also use SAE for screws and bolts?...

    No. Neither did the UK (BSW -British Standard Whitworth,
    BSF - British Standard Fine). Although the UK has generally
    embraced metric by now.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Tue Apr 14 14:34:25 2026
    From Newsgroup: comp.arch

    Robert Finch <robfi680@gmail.com> writes:
    On 2026-04-14 4:09 a.m., BGB wrote:


    I was in the doughnut store the other day and asked for a dozen
    doughnuts. The cashier seriously asked me what a dozen was. So, I asked
    for 10 doughnuts instead, rather than try and explain.


    You should have asked for a Baker's dozen[*]. My local grocer still sells cookies by the Baker's dozen.

    [*] Another British tradition.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 14 16:13:35 2026
    From Newsgroup: comp.arch

    On Tue, 14 Apr 2026 00:51:56 -0500, BGB wrote:

    But, yeah, for a lot of things, they are held together by large screws
    that we call bolts,

    Of course, wood screws differ from bolts, in that they are pointy so that
    they can go where there are no holes.

    But what most people call bolts are indeed another kind of screw; I've
    seen them also referred to as "machine screws". Presumably that's their official or correct name among professionals.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 14 16:18:17 2026
    From Newsgroup: comp.arch

    On Tue, 14 Apr 2026 03:09:55 -0500, BGB wrote:

    If not, are hex-head bolts still dominant, or is it like places where in
    the US one would use a hex-head bolt or Allen-key screw they use Torx or similar?...

    When Torx came out, people where I live were scratching their heads why
    people would use an expensive proprietary kind of screwdriver, when
    Robertson was available to do exactly the same job.

    But apparently in the United States, the Robertson screwdriver is
    practically unknown.

    Robertson uses a screwdriver with a square tip.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 14 16:21:11 2026
    From Newsgroup: comp.arch

    On Tue, 14 Apr 2026 14:30:30 +0000, Scott Lurndal wrote:

    Actually, they're the most commonly used screws in my household.

    I take it you're also a Canadian. Their very existence is unknown to the average American.

    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Tue Apr 14 16:35:39 2026
    From Newsgroup: comp.arch

    BGB <cr88192@gmail.com> schrieb:
    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is >>>>> used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.


    Yeah, somehow I would have thought pretty much everyone would be
    familiar with them and with the system of fractions for defining sizes
    for things...

    Look at my e-mail address and consider which countries use
    which measuring system. For your amusement, you can also watch
    https://www.youtube.com/watch?v=JYqfVE-fykk :-)


    So Germany doesn't also use SAE for screws and bolts?...

    Not sure what SAE prescribes. Is that Imperial? Germany (like
    almost everybody else) use ISO, which is metric. An M6 screw,
    for example, has a nominal outer diameter of 6 mm. Screw heads
    are also ISO.


    Or, have the same thing of building machines where half the screws are
    SAE and half are Metric.

    You will be hard pressed to find inch-based screws and bolts in
    the EU, this is entirely metric. The only exception is Withworth
    threads, which are still used for piping in houses. Of course,
    these only bear a passing resemblance to their nominal diameter
    because of $REASONS.


    If not, are hex-head bolts still dominant, or is it like places where in
    the US one would use a hex-head bolt or Allen-key screw they use Torx or similar?...

    Really depends on the application. Screws come in a variety of heads.
    For bolts, hexagonal is dominant.

    Then again, I guess if anything I would expect things like machines to
    be similar, as most of the machines are presumably still made in China,
    and it would be weird to expect China to make different stuff based on
    what country they intend to sell it in.

    I believe China looked around for their standards a few decades ago,
    and decided to base theirs on DIN (the German one).

    But, then again, I have heard there are sometimes issues, like a lot of Chinese-made machines use copper-clad-aluminum wire, which is apparently illegal in places like Australia, ...


    Well, and I guess in the US, there are a lot of people who don't approve
    of aluminum and CCA wiring, but generally still allowed (though CCA is
    kinda annoying to solder as it can often foul up the tip on the
    soldering iron and/or form an amalgam with the solder which can't really
    be re-melted when if forms).

    I don't think aluminium wiring is allowed in Germany. I have certainly
    never seen it, also not in old houses.

    But, yeah, I guess it is also sort of like in video games the units are
    more ad-hoc, just whatever is most convenient at the time.


    Though, in a lot of my 3D engines, this has been to use the meter as the base unit, but then define an "inch" as 1/32 of a meter; then just be
    like "whatever, close enough". Apparently fairly close to the old French Inch though.

    An inch is 25.4 mm, 1m/32 is 31.25 mm, that is a rather big
    deviation. But then again, pi equals 3 for small values of pi
    and large values of 3...

    In some cases, can make sense to have a cubit as 1/2 "meter", or "foot"
    as 1/3.


    But, can't make too many assumptions it seems.

    I was thrown off by the measurements in inches.


    OK.

    We have mm stuff as well, but it is less commonly used than inch stuff.

    Tools and CNC machines pretty much exclusively use inches though.

    Not so long ago, I was standing in a workshop in the US and asking
    for a caliper in mm. They had one, but it took them some time to
    find it :-)

    [...]
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Tue Apr 14 17:09:52 2026
    From Newsgroup: comp.arch

    quadi <quadibloc@ca.invalid> writes:
    On Tue, 14 Apr 2026 14:30:30 +0000, Scott Lurndal wrote:

    Actually, they're the most commonly used screws in my household.

    I take it you're also a Canadian.

    Californian. Been using them for decades.

    Their very existence is unknown to the average American.

    I would advise you to avoid generalization.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 17:54:09 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------
    Point of Order

    But, yeah, for a lot of things, they are held together by large screws
    that we call bolts, which either screw into a threaded hole, or are held
    in place by a "nut" that threads on the other end.

    It is a bolt when tension is applied by torquing the nut,
    It is a screw when tension is applied by torquing the head.
    {Machinist Handbook}

    So a 6-point thing most would call a bolt can be used as a screw
    depending on what thing it is used to fasten.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 17:56:26 2026
    From Newsgroup: comp.arch


    Thomas Koenig <tkoenig@netcologne.de> posted:

    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:
    ---------------------
    1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2, 9/16, 5/8, 11/16, 3/4,
    13/16, 7/8, 15/16

    Most people outside the US just use mm. The UK is sort of
    fluctuating, they still have their distances in miles.

    Why is it that people using the metric system will drive a thousand
    kilometers instead of one megameter ??

    You can't have it both ways !!

    But of course, the UK (or Imperial) gallon is different from
    the US gallon.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Tue Apr 14 18:01:04 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:
    ---------------------
    1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2, 9/16, 5/8, 11/16, 3/4,
    13/16, 7/8, 15/16

    Most people outside the US just use mm. The UK is sort of
    fluctuating, they still have their distances in miles.

    Why is it that people using the metric system will drive a thousand kilometers instead of one megameter ??

    You can't have it both ways !!

    It would see that one can - km is a convenient unit for distance
    travelled.

    From the sketch I quoted above: "How many yards to a mile?"
    "Nobody knows." "Well, how many feet to a mile?" "Five thousand
    two hundred eighty. It is a silly little number that everybody
    will remember."
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 18:04:17 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:

    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:
    -----------------------------
    Look at my e-mail address and consider which countries use
    which measuring system. For your amusement, you can also watch https://www.youtube.com/watch?v=JYqfVE-fykk :-)


    So Germany doesn't also use SAE for screws and bolts?...

    SAE has standards that apply to {threads, heads, and nuts} in both
    English and metric sizes.

    Or, have the same thing of building machines where half the screws are
    SAE and half are Metric.

    If not, are hex-head bolts still dominant, or is it like places where in
    the US one would use a hex-head bolt or Allen-key screw they use Torx or similar?...


    Then again, I guess if anything I would expect things like machines to
    be similar, as most of the machines are presumably still made in China,
    and it would be weird to expect China to make different stuff based on
    what country they intend to sell it in.

    China is willing to go so far as to use different bearings in the
    same machine based on what the customer is willing to pay. See
    Grizly catalog.

    But, then again, I have heard there are sometimes issues, like a lot of Chinese-made machines use copper-clad-aluminum wire, which is apparently illegal in places like Australia, ...

    You ask for the lowest price, they use the cheapest parts.
    See Harbor Freight catalog.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 18:07:35 2026
    From Newsgroup: comp.arch


    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-14 4:09 a.m., BGB wrote:
    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:
    -------------------

    We were just converting to the metric system when I was in public
    school, so I had to learn two systems. I am pretty fluent in both, but I have forgotten some of the US measurements. I still like to see the temperature in Fahrenheit.

    Multiply or Divide by 25.4 or 39.36 for units of length
    Multiply or divide by 5/9ths and add/subtract 32 for units of temperature

    I practiced these often enough that I can guess the first three digits
    faster than I can punch the numbers into a calculator.

    I was in the doughnut store the other day and asked for a dozen
    doughnuts. The cashier seriously asked me what a dozen was. So, I asked
    for 10 doughnuts instead, rather than try and explain.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 18:08:24 2026
    From Newsgroup: comp.arch


    quadi <quadibloc@ca.invalid> posted:

    On Mon, 13 Apr 2026 21:37:14 +0000, quadi wrote:

    The Type III header
    was modified so that the unrestricted memory-reference operate
    instructions could be 35 bits long instead of 34 bits long.

    Either the serendipity - or the operation of Parkinson's Law - continues.

    I am betting of Parkinson's...

    The same mechanism used to expand the 34-bit instructions to 35 bits, so that they can have a condition code bit and no addressing mode
    restrictions, is now also used to provide a full alternate 32-bit instruction set.

    This allows putting improved versions of the multiple-register load/store instructions, and the supplemental load/store instructions for additional data types, in a 32-bit slot instead of needing to use 48-bit instructions for the purpose.

    Of course, completing the 32-bit instruction set in this manner still requires the overhead of a 48-bit block header. So it might well be asked
    if there is "really" a savings. But the 48-bit instructions also require a header that is at least 32 bits long.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 18:11:17 2026
    From Newsgroup: comp.arch


    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-14 1:31 a.m., Thomas Koenig wrote:
    Robert Finch <robfi680@gmail.com> schrieb:

    I will have to think more about how to implement power series -
    factoring out the X. Is it possible to modify Horner's method so that
    there are two terms evaluated? Factoring out x^2 instead of x?

    See https://en.wikipedia.org/wiki/Polynomial_evaluation for a
    few methods.

    [Mitch had written]

    I hit upon Estrin's scheme myself writing things out. I did not quite
    follow Mitch's suggestion though.

    You will see it when you write the scheduler for Horner's method onto
    your multiplier tree.

    Thirdly, do yourself a favor and use Chebyshev polynomials or Remes
    improvements on Chebyshev polynomial coefficients.

    Yes.

    Forth, by stretching out the Chebyshev interval, you can minimize
    the error at the endpoints of intervals, and avoid special cases.

    Again, yes.

    Okay.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 18:13:35 2026
    From Newsgroup: comp.arch


    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 03:09:55 -0500, BGB wrote:

    If not, are hex-head bolts still dominant, or is it like places where in the US one would use a hex-head bolt or Allen-key screw they use Torx or similar?...

    When Torx came out, people where I live were scratching their heads why people would use an expensive proprietary kind of screwdriver, when Robertson was available to do exactly the same job.

    Originally, Torx was used in situations where malicious actors were
    present {restrooms} and they wanted a driver that was not in general
    use {already}

    But apparently in the United States, the Robertson screwdriver is practically unknown.

    Robertson uses a screwdriver with a square tip.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 18:15:48 2026
    From Newsgroup: comp.arch


    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 14:30:30 +0000, Scott Lurndal wrote:

    Actually, they're the most commonly used screws in my household.

    I take it you're also a Canadian. Their very existence is unknown to the average American.

    Can you name the 7-types of thread without using a manual ??
    And why they were defined/specified ??

    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Tue Apr 14 19:05:44 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> writes:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-14 4:09 a.m., BGB wrote:
    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:
    -------------------

    We were just converting to the metric system when I was in public
    school, so I had to learn two systems. I am pretty fluent in both, but I
    have forgotten some of the US measurements. I still like to see the
    temperature in Fahrenheit.

    Multiply or Divide by 25.4 or 39.36 for units of length

    Or as a rough approximation, five centimeters is about 2 inches.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Tue Apr 14 19:07:51 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> writes:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 03:09:55 -0500, BGB wrote:

    If not, are hex-head bolts still dominant, or is it like places where in >> > the US one would use a hex-head bolt or Allen-key screw they use Torx or >> > similar?...

    When Torx came out, people where I live were scratching their heads why
    people would use an expensive proprietary kind of screwdriver, when
    Robertson was available to do exactly the same job.

    Originally, Torx was used in situations where malicious actors were
    present {restrooms} and they wanted a driver that was not in general
    use {already}

    There two torx head patterns. The security version has a pin
    in the middle of the head, which requires a matching socket on
    the driver.

    That said, driver bits for security torx are widely available.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Tue Apr 14 19:30:29 2026
    From Newsgroup: comp.arch


    scott@slp53.sl.home (Scott Lurndal) posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> writes:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 03:09:55 -0500, BGB wrote:

    If not, are hex-head bolts still dominant, or is it like places where in >> > the US one would use a hex-head bolt or Allen-key screw they use Torx or >> > similar?...

    When Torx came out, people where I live were scratching their heads why >> people would use an expensive proprietary kind of screwdriver, when
    Robertson was available to do exactly the same job.

    Originally, Torx was used in situations where malicious actors were
    present {restrooms} and they wanted a driver that was not in general
    use {already}

    There two torx head patterns. The security version has a pin
    in the middle of the head, which requires a matching socket on
    the driver.

    That said, driver bits for security torx are widely available.

    New bolt heads designed for security are viable for <generally> less
    than 2 years.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 14 14:31:26 2026
    From Newsgroup: comp.arch

    On 4/14/2026 11:13 AM, quadi wrote:
    On Tue, 14 Apr 2026 00:51:56 -0500, BGB wrote:

    But, yeah, for a lot of things, they are held together by large screws
    that we call bolts,

    Of course, wood screws differ from bolts, in that they are pointy so that they can go where there are no holes.

    But what most people call bolts are indeed another kind of screw; I've
    seen them also referred to as "machine screws". Presumably that's their official or correct name among professionals.


    Yeah, it gets fuzzy...

    I think usual distinction here is that it is called a machine-screw if
    it has an Allen key head or similar, but is still a bolt if it has a
    hexagon head, in the size ranges where screws and bolts overlap.

    It is called a screw if small enough, even if it still uses a hexagon
    head. Or may be called a bolt if large (say, 3/4-10, but using a dome
    head and an Allen key).


    For a lot of stuff, the default sizes have mostly ended up as 10-24 and
    1/4-20 (or around M4 to M6).

    Comparably also these sizes are around the easiest to tap:
    Smaller: Harder to tap hole without breaking tap;
    Bigger: Lots of torque needed to drive tap.
    Typically requires hand-tapping as the mill can't power tap it.
    For the mill I have, 3/8-16 seems about the limit for power tap.
    Or, around M10 or so.

    Have noted for materials:
    Steel/etc:
    Cut-tapping preferable.
    Usually needs hand-tapping.
    Steel usually hand-taps reasonably OK.
    But really likes breaking taps if power-tapping.
    Aluminum (usually 6061 or similar):
    Form tapping works best;
    Power taps readily;
    IME, 304 stainless seems effective for aluminum form tapping.
    Not sure why not used more often...
    At small sizes (like 4-40) less liable to break the tap IME.
    Like, HSS taps really like to break here...
    Solid Plastic:
    Needs cut-taps;
    Form tapping doesn't work.
    Either the tap gets stuck and breaks...
    Or fails to make threads.
    Plastic doesn't hold small threads.
    10-24 works, 6-32 or 4-40 does not.
    Need metal inserts for this sort of thing.
    3D printed plastic:
    Manual form-tap using screw;
    Hollow means can't cut tap.
    Better if driven semi-fast as the friction can
    heat/soften the plastic, but not too fast or the plastic melts.
    Seems to only "tap" above 10-24.
    Smaller sizes merely deform plastic and hold via friction.
    Can 3D print threads but only at larger sizes.


    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Tue Apr 14 20:11:46 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 14:30:30 +0000, Scott Lurndal wrote:

    Actually, they're the most commonly used screws in my household.

    I take it you're also a Canadian. Their very existence is unknown to the
    average American.

    Can you name the 7-types of thread without using a manual ??

    M2 M3 M4 M5 M6 M8 M10

    :-)
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 14 16:14:36 2026
    From Newsgroup: comp.arch

    On 4/14/2026 11:35 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but metric is >>>>>> used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.


    Yeah, somehow I would have thought pretty much everyone would be
    familiar with them and with the system of fractions for defining sizes >>>> for things...

    Look at my e-mail address and consider which countries use
    which measuring system. For your amusement, you can also watch
    https://www.youtube.com/watch?v=JYqfVE-fykk :-)


    So Germany doesn't also use SAE for screws and bolts?...

    Not sure what SAE prescribes. Is that Imperial? Germany (like
    almost everybody else) use ISO, which is metric. An M6 screw,
    for example, has a nominal outer diameter of 6 mm. Screw heads
    are also ISO.


    Mostly it defines everything in inch-based units.

    An M6 is roughly around the size of what we would call 1/4-20, for 1/4
    inch at 20 turns per inch.


    Or, have the same thing of building machines where half the screws are
    SAE and half are Metric.

    You will be hard pressed to find inch-based screws and bolts in
    the EU, this is entirely metric. The only exception is Withworth
    threads, which are still used for piping in houses. Of course,
    these only bear a passing resemblance to their nominal diameter
    because of $REASONS.


    US has NPT, which has tapered threads, and differs from its stated size
    by a factor of 2 because apparently they describe its size in radius or something.


    If not, are hex-head bolts still dominant, or is it like places where in
    the US one would use a hex-head bolt or Allen-key screw they use Torx or
    similar?...

    Really depends on the application. Screws come in a variety of heads.
    For bolts, hexagonal is dominant.


    OK.

    In US it is mostly hex-heads for bolts, and Philips for small screws
    (followed by Allen keys).


    Then again, I guess if anything I would expect things like machines to
    be similar, as most of the machines are presumably still made in China,
    and it would be weird to expect China to make different stuff based on
    what country they intend to sell it in.

    I believe China looked around for their standards a few decades ago,
    and decided to base theirs on DIN (the German one).


    OK.

    Still seems like a lot of the stuff they sell to the US uses US sizes,
    so maybe it is market dependent.


    But, then again, I have heard there are sometimes issues, like a lot of
    Chinese-made machines use copper-clad-aluminum wire, which is apparently
    illegal in places like Australia, ...


    Well, and I guess in the US, there are a lot of people who don't approve
    of aluminum and CCA wiring, but generally still allowed (though CCA is
    kinda annoying to solder as it can often foul up the tip on the
    soldering iron and/or form an amalgam with the solder which can't really
    be re-melted when if forms).

    I don't think aluminium wiring is allowed in Germany. I have certainly
    never seen it, also not in old houses.


    Here, it is one of those "allowed but some people get pissy about it"
    things when used for house wiring.

    Frequently used in consumer electronics but no one notices.



    I once encountered a wire that when voltage caused a spark to form, the
    wire went off like a "4th of July" sparkler (basically, a metal stick
    used for a US holiday, when the end is lit of fire, it burns and shoots white-hot sparks out the end, *1).


    At first I thought it was CCA, but apparently it was CCAM (Copper Clad Aluminum-Magnesium). The CCAM wiring is probably the main stuff people actually need to worry about.


    Though, AFAIK, pretty much no use uses magnesium for house wiring though.


    *1: Where, the US has a holiday where the main traditional way of
    celebrating the holiday is to let kids play around with low grade
    explosives and incendiaries. People have still been injured or killed as
    a result of this, particularly when doing "something stupid".

    Like, by themselves, their explosive powers aren't much of a problem,
    but when contained in something like a beer bottle, or inserted into
    someone's rectum or similar, the danger goes up significantly.
    Apparently this sort of thing is a recurring problem.

    Well, and then there are people that celebrate by firing guns into the
    air, but falling bullets can also pose a safety risk.

    Sometimes, people have guns that are full auto. These are not usually
    legal to have, but if one hears full-auto / rapid fire going off, then
    it is an indication that someone nearby has one (and gunfire and machine
    guns can be heard over a fair distance). Well, also people firing
    shotguns and similar into the air is also popular.

    This sort of thing is also popular on New Years Eve, but almost
    exclusively gunfire in this case (fireworks are mostly a "4th of July"
    thing). Depends a lot on the holiday though (say, would be rather out of
    place on Christmas or Easter).

    Maybe this isn't as much of a thing elsewhere though...



    But, yeah, I guess it is also sort of like in video games the units are
    more ad-hoc, just whatever is most convenient at the time.


    Though, in a lot of my 3D engines, this has been to use the meter as the
    base unit, but then define an "inch" as 1/32 of a meter; then just be
    like "whatever, close enough". Apparently fairly close to the old French
    Inch though.

    An inch is 25.4 mm, 1m/32 is 31.25 mm, that is a rather big
    deviation. But then again, pi equals 3 for small values of pi
    and large values of 3...


    Yes.

    In 3D gaming stuff, accuracy doesn't really matter, so long as things
    are "in the right general area".


    If using meters as a base unit, can put eye level at around 1.6 or 1.7
    off the ground, as this is "about right" (1.8 is too tall and 1.4 is too short), ...



    In some cases, can make sense to have a cubit as 1/2 "meter", or "foot"
    as 1/3.


    But, can't make too many assumptions it seems.

    I was thrown off by the measurements in inches.


    OK.

    We have mm stuff as well, but it is less commonly used than inch stuff.

    Tools and CNC machines pretty much exclusively use inches though.

    Not so long ago, I was standing in a workshop in the US and asking
    for a caliper in mm. They had one, but it took them some time to
    find it :-)


    Yeah, makes sense.
    Most of them are inch based.


    [...]


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Tue Apr 14 22:31:29 2026
    From Newsgroup: comp.arch

    On Tue, 14 Apr 2026 18:08:24 +0000, MitchAlsup wrote:
    quadi <quadibloc@ca.invalid> posted:

    Either the serendipity - or the operation of Parkinson's Law -
    continues.

    I am betting
    [on]
    Parkinson's...

    As well you might.

    I found a bit more opcode space like change in a couch, and so now the
    blocks with Type III headers will not only be graced with 35-bit memory- reference operate instructions, but also with a whole second opcode space
    of 32-bit instructions.

    First, I used most of that for supplementary load-store instructions, so
    as to support loading and storing additional data types without address
    mode restrictions.

    Then I threw in three-address register-to-register operate instructions
    with longer opcodes, and load and store multiple instructions with 16-bit displacements.

    So if you pay the overhead once of a 48-bit header for a block, you get a
    lot of additional instructions that only take up one 32-bit space.

    That doesn't sound like a great bargain, but to have 48-bit instructions
    at all, you have to at least pay the overhead of a 32-bit header, so this works out better than using a 48-bit instruction for these things if you
    have even two in a block.

    And of course, this gives me a new idea. Maybe I'm using completely the
    wrong approach to expanding the instruction set. Maybe the block header
    should be in a compressed format - specifically, some sort of Huffman-ish encoding, like 0 standing for regular instructions, and three bit codes starting with 1 for various extensions to the instruction set.

    Because the special extended instructions are rare, this would be a win
    for code density. But unpacking takes time. And expanding the instruction
    set is just one of the possible functions of a header.

    But on further reflection, I realized that the header would still have a minimum size of 32 bits even in that form, so little or nothing would be gained from such complexity. So I'll put that idea aside rather than let
    it lead me to madness.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Apr 15 00:38:15 2026
    From Newsgroup: comp.arch


    Thomas Koenig <tkoenig@netcologne.de> posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 14:30:30 +0000, Scott Lurndal wrote:

    Actually, they're the most commonly used screws in my household.

    I take it you're also a Canadian. Their very existence is unknown to the >> average American.

    Can you name the 7-types of thread without using a manual ??

    M2 M3 M4 M5 M6 M8 M10

    :-)

    Not even a good try.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Apr 15 00:44:20 2026
    From Newsgroup: comp.arch


    BGB <cr88192@gmail.com> posted:
    ----------------------
    Sometimes, people have guns that are full auto. These are not usually
    legal to have,

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Tue Apr 14 21:24:09 2026
    From Newsgroup: comp.arch

    On 4/14/2026 7:44 PM, MitchAlsup wrote:

    BGB <cr88192@gmail.com> posted:
    ----------------------
    Sometimes, people have guns that are full auto. These are not usually
    legal to have,

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    You can get forms to legally have them...

    But, a person who has the sense to do the paperwork to have it legally,
    would probably also have the sense to not "mag dump" into the air on 4th
    of July and New Years...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From moi@findlaybill@blueyonder.co.uk to comp.arch on Wed Apr 15 03:32:00 2026
    From Newsgroup: comp.arch

    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.
    --
    Bill F.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Wed Apr 15 02:53:37 2026
    From Newsgroup: comp.arch

    On 4/14/2026 1:08 PM, MitchAlsup wrote:

    quadi <quadibloc@ca.invalid> posted:

    On Mon, 13 Apr 2026 21:37:14 +0000, quadi wrote:

    The Type III header
    was modified so that the unrestricted memory-reference operate
    instructions could be 35 bits long instead of 34 bits long.

    Either the serendipity - or the operation of Parkinson's Law - continues.

    I am betting of Parkinson's...


    Hmm...

    Looks it up...

    I just sort of managed to not accomplish much in the past few days
    beyond writing a tool to essentially parse all of the C code across
    several of my HDD's to analyze floating-point constants.



    The result:
    Seemingly what I did already in my ISA was seemingly already pretty
    close to the optimal solution.

    Around 63% of the constants on average can be exactly represented in Binary16...

    Then, around 50% of those can be represented in an E3.M2 format.
    Though, E4.M3 would be better.


    So, say:
    63%: Binary16 Exact
    38%: FP8 Exact (S.E4.M3)
    32%: FP5 Exact (E3.M2)
    37%: Not Binary16
    4%: FP64 truncated to 32-bits.
    14%: x.yyy
    19%: Other
    Much larger integer values;
    xx.yyyyyy and similar


    It looks like the likely best cases if the goal were simply for maximum
    code density:
    Add an Imm33 form of the Int->Binary64 converter instruction;
    Could in theory define this as Jumbo_Imm+FLDCI or similar;
    Would have a higher latency than a MOV 2RI-Imm64.
    Implementation cost: Low (no new logic needed).
    Load an Imm33 and then multiply it by 0.000001 to 0.000000001.
    Cost: Higher, would need to crack the operation somehow.
    Would also have a comparably higher latency.
    Would likely also need to add logic to synthesize the scale.

    Neither of these can be addressed without higher latency than simply
    loading a 64-bit constant into a register.


    There are seemingly a lot of integer constants where, despite the value
    being an integer, it still ends up needing too many mantissa bits to fit
    into the 32-bit truncation (but would fit into Int33s range).



    In the spill overflow space, one sees PI, but rarely the full version:
    3.1415926535897931 //16 digits correct
    3.1415899999999999 // 5 digits correct
    3.1415926535000001 //11 digits correct
    3.1415999999999999 // 6 digits correct
    3.1415926500000002 // 9 digits correct
    3.1415000000000002 // 5 digits correct
    3.1415926535890000 // ...
    3.1415920000000002
    3.1415263400000000
    3.1415927410000002
    3.1412718090000000 //4 digits ("WTF?" ver)
    3.1415926569999999
    ...
    Well, at least the most popular one was also the most accurate (about
    the most accurate Binary64 can give).

    ...


    The same mechanism used to expand the 34-bit instructions to 35 bits, so
    that they can have a condition code bit and no addressing mode
    restrictions, is now also used to provide a full alternate 32-bit
    instruction set.

    This allows putting improved versions of the multiple-register load/store
    instructions, and the supplemental load/store instructions for additional
    data types, in a 32-bit slot instead of needing to use 48-bit instructions >> for the purpose.

    Of course, completing the 32-bit instruction set in this manner still
    requires the overhead of a 48-bit block header. So it might well be asked
    if there is "really" a savings. But the 48-bit instructions also require a >> header that is at least 32 bits long.

    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Wed Apr 15 02:53:44 2026
    From Newsgroup: comp.arch

    On 4/14/2026 2:30 PM, MitchAlsup wrote:

    scott@slp53.sl.home (Scott Lurndal) posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> writes:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 03:09:55 -0500, BGB wrote:

    If not, are hex-head bolts still dominant, or is it like places where in >>>>> the US one would use a hex-head bolt or Allen-key screw they use Torx or >>>>> similar?...

    When Torx came out, people where I live were scratching their heads why >>>> people would use an expensive proprietary kind of screwdriver, when
    Robertson was available to do exactly the same job.

    Originally, Torx was used in situations where malicious actors were
    present {restrooms} and they wanted a driver that was not in general
    use {already}

    There two torx head patterns. The security version has a pin
    in the middle of the head, which requires a matching socket on
    the driver.

    That said, driver bits for security torx are widely available.

    New bolt heads designed for security are viable for <generally> less
    than 2 years.

    Seems almost like someone could make a tool with a bunch of long sliding
    pins held on one end in a high viscosity gel or ferrofluid (maybe figure
    out a good way to cause the viscosity to vary based on magnetic field strength). Then one can make a driver that fits almost any type of head
    they push it against.

    So, option one:
    Pins in viscous gel, physical force of pushing tool against part shapes
    the head;
    Variable viscosity ferrofluid: force shapes the head more easily when
    tool is not engaged, engaging the magnet makes head shape more rigid.

    Tool could be designed such that the pins don't easily come out, and
    that the fluid can't leak out (a normal oil wouldn't work unless
    tolerances are fairly tight or the molecular weight of the oil is very
    high).


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Wed Apr 15 10:48:27 2026
    From Newsgroup: comp.arch

    On 14/04/2026 19:56, MitchAlsup wrote:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:
    ---------------------
    1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2, 9/16, 5/8, 11/16, 3/4,
    13/16, 7/8, 15/16

    Most people outside the US just use mm. The UK is sort of
    fluctuating, they still have their distances in miles.

    Why is it that people using the metric system will drive a thousand kilometers instead of one megameter ??


    It is for the same reason that people using the imperial system (or the Americanised version of it) will walk half a mile, but not 4 furlongs.

    Different units are appropriate for different purposes, and make things
    easier to think about.

    You can't have it both ways !!

    Of course you can.


    But of course, the UK (or Imperial) gallon is different from
    the US gallon.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Wed Apr 15 11:30:17 2026
    From Newsgroup: comp.arch

    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    As someone who has used, maintained, and fired a number of fully
    automatic weapons in the military, I wonder why anyone would
    want one.

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Wed Apr 15 15:48:54 2026
    From Newsgroup: comp.arch

    On 15/04/2026 13:30, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    As someone who has used, maintained, and fired a number of fully
    automatic weapons in the military, I wonder why anyone would
    want one.

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.


    Clearly there are military applications of a wide range of weapons. But outside that, I can only think of a couple of reasons to want a fully automatic weapon :

    1. You are seriously paranoid or otherwise disconnected from reality,
    and think you need it because "they" are out to get you, or because you
    are convinced you need it for "protection". (This "protection" myth
    seems to be a major reason for all sorts of weapons in the USA. You or
    your family are far more likely to be accidentally harmed by a gun
    bought for "protection" than by an intruder's gun.)

    2. You think it will be fun to shoot, or looks cool on TV (and you can't distinguish between television and reality). I can appreciate the fun
    appeal of shooting big guns, but it would make far more sense in very controlled circumstances in specialised shooting ranges than for private citizens ever having such weapons.

    3. You are a criminal and are using it for armed robbery and the like.

    The other two main uses of firearms - sport and hunting - don't apply to
    fully automatic weapons.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Wed Apr 15 13:56:10 2026
    From Newsgroup: comp.arch

    In article <10ro506$qsu2$2@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 15/04/2026 13:30, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    As someone who has used, maintained, and fired a number of fully
    automatic weapons in the military, I wonder why anyone would
    want one.

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    Clearly there are military applications of a wide range of weapons. But >outside that, I can only think of a couple of reasons to want a fully >automatic weapon :

    1. You are seriously paranoid or otherwise disconnected from reality,
    and think you need it because "they" are out to get you, or because you
    are convinced you need it for "protection". (This "protection" myth
    seems to be a major reason for all sorts of weapons in the USA. You or
    your family are far more likely to be accidentally harmed by a gun
    bought for "protection" than by an intruder's gun.)

    2. You think it will be fun to shoot, or looks cool on TV (and you can't >distinguish between television and reality). I can appreciate the fun >appeal of shooting big guns, but it would make far more sense in very >controlled circumstances in specialised shooting ranges than for private >citizens ever having such weapons.

    3. You are a criminal and are using it for armed robbery and the like.

    The other two main uses of firearms - sport and hunting - don't apply to >fully automatic weapons.

    Agreed on all points. In all cases, the desire doesn't match
    well to the actual utility of the thing.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Wed Apr 15 14:34:26 2026
    From Newsgroup: comp.arch

    David Brown <david.brown@hesbynett.no> writes:
    On 15/04/2026 13:30, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    <snip>

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    They're also extremely expensive to use and maintain. at $2.00 or
    more _per round_, the cost rises rapidly.

    Mythbusters shot a minigun on a couple episodes and the ammo cost
    (more than a decade ago) was huge.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Wed Apr 15 15:12:19 2026
    From Newsgroup: comp.arch

    Now, I took out one excessively elaborate header format, and restored a feature to the architecture that I took out when pruning header types, but this time in a different form, associated with a different header type.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Wed Apr 15 15:36:58 2026
    From Newsgroup: comp.arch

    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in any
    crimes. {Anyone with a brain would say this is a pretty good record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear warheads.

    Of course, much about the consequences of the Second Amendment indeed does appear insane. The sensible thing to do would be to repeal it, rather than pretend it doesn't exist, or it doesn't mean what it says, and hope the Supreme Court will look the other way.

    Letting trustworthy people have fully-automatic weapons is a small
    problem; it's letting just anyone have semi-automatic weapons that has contributed significantly to school shootings and the like.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Wed Apr 15 16:25:14 2026
    From Newsgroup: comp.arch

    In article <SlNDR.276690$4wI6.88606@fx24.iad>,
    Scott Lurndal <slp53@pacbell.net> wrote:
    David Brown <david.brown@hesbynett.no> writes:
    On 15/04/2026 13:30, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    <snip>

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    They're also extremely expensive to use and maintain. at $2.00 or
    more _per round_, the cost rises rapidly.

    Full-auto weapons are also heavy, and so is the ammo. Carrying
    even a SAW is no fun after a few hours; a 240 or Ma Deuce? Not
    happening. A Mk19? Forget about it.

    Mythbusters shot a minigun on a couple episodes and the ammo cost
    (more than a decade ago) was huge.

    I suppose that the proponents will point to smaller weapons
    systems, like submachine guns, that are full-auto but shoot
    conventional cartidges (the Thompson shoots .45ACP, for example)
    but they often don't realize that the kickback makes them
    difficult to control. Even the 3-round burst on the M4/M16
    pattern weapons will kick you off target almost instantly; that
    mode is only useful as a direct fire alternative for suppression
    to support advancing infantry in a complex attack scenario when
    indirect fire is not viable, you don't have combined-arms
    support, or you don't have crew-served weapons. It's like a
    method of last resort.

    I don't know why anyone would want a full-auto weapon as
    anything other than a museum piece or a novelty. I strongly
    suspect that such people have never heard a shot fired in anger
    before.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From John Levine@johnl@taugh.com to comp.arch on Wed Apr 15 16:44:04 2026
    From Newsgroup: comp.arch

    According to quadi <quadibloc@ca.invalid>:
    Utterly insane would be if the same procedure applied to thermonuclear >warheads.

    Of course, much about the consequences of the Second Amendment indeed does >appear insane. The sensible thing to do would be to repeal it, rather than >pretend it doesn't exist, or it doesn't mean what it says, and hope the >Supreme Court will look the other way.

    The first clause of the second amendment says "A well regulated
    Militia, being necessary to the security of a free State." For a
    century and a half, its meaning was invariably understood to be that
    individual states could raise militias which we now call the National
    Guard. Then in the 1960s some well organizaed revisionists ignored
    what it says, pretended it meant an individual right to have guns
    everywhere, and managed to find a majority of right wing supreme court
    justices willing to sign on.

    This interesting paper argues that the real motivation for the 2nd was
    that the slave states used their militias to put down slave rebellions
    and feared that the more populous free states would disarm them.

    https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1465114

    Can we get back to arguing about gate delays, please?
    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Andy Valencia@vandys@vsta.org to comp.arch on Wed Apr 15 09:52:40 2026
    From Newsgroup: comp.arch

    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    ...
    but they often don't realize that the kickback makes them
    difficult to control. Even the 3-round burst on the M4/M16
    pattern weapons will kick you off target almost instantly

    I've been told (but have no personal experience) that the Uzi design
    did the best job of tuning the gas port to offset the forces trying
    to make the barrel ride up off the target. Not precision shooting,
    but your groups tended to continue to group around your initial target.

    Andy Valencia
    Home page: https://www.vsta.org/andy/
    To contact me: https://www.vsta.org/contact/andy.html
    No AI was used in the composition of this message
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Wed Apr 15 17:43:36 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 14:30:30 +0000, Scott Lurndal wrote:

    Actually, they're the most commonly used screws in my household.

    I take it you're also a Canadian. Their very existence is unknown to the >> >> average American.

    Can you name the 7-types of thread without using a manual ??

    M2 M3 M4 M5 M6 M8 M10

    :-)

    Not even a good try.

    Why? (Just for rhyme's sake).

    Are you saying that M2 is the same thread as M3?
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Apr 15 17:54:34 2026
    From Newsgroup: comp.arch


    cross@spitfire.i.gajendra.net (Dan Cross) posted:
    -------------------------
    I don't know why anyone would want a full-auto weapon as
    anything other than a museum piece or a novelty. I strongly
    suspect that such people have never heard a shot fired in anger
    before.

    Same argument can be made about cars that can go faster than speed limits.

    And we now have cars that can go faster than 250 MPH and require $30K
    tire sets at replacement.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Apr 15 17:57:56 2026
    From Newsgroup: comp.arch


    John Levine <johnl@taugh.com> posted:

    According to quadi <quadibloc@ca.invalid>:
    Utterly insane would be if the same procedure applied to thermonuclear >warheads.

    Of course, much about the consequences of the Second Amendment indeed does >appear insane. The sensible thing to do would be to repeal it, rather than >pretend it doesn't exist, or it doesn't mean what it says, and hope the >Supreme Court will look the other way.

    The first clause of the second amendment says "A well regulated
    Militia, being necessary to the security of a free State." For a
    century and a half, its meaning was invariably understood to be that individual states could raise militias which we now call the National
    Guard. Then in the 1960s some well organizaed revisionists ignored
    what it says, pretended it meant an individual right to have guns
    everywhere, and managed to find a majority of right wing supreme court justices willing to sign on.

    Then in the 2010s, the Supreme Court nullified the "A well regulated Militia" part, leaving only the "right to bear arms" clause.

    This interesting paper argues that the real motivation for the 2nd was
    that the slave states used their militias to put down slave rebellions
    and feared that the more populous free states would disarm them.

    https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1465114

    Can we get back to arguing about gate delays, please?

    How many gates of delay between the sear releasing than the primer going
    bang?
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Wed Apr 15 18:22:40 2026
    From Newsgroup: comp.arch

    On Wed, 15 Apr 2026 16:44:04 +0000, John Levine wrote:

    Then in the
    1960s some well organizaed revisionists ignored what it says, pretended
    it meant an individual right to have guns everywhere, and managed to
    find a majority of right wing supreme court justices willing to sign on.

    I'm afraid that I can't agree with you on this.

    The wording is clear and unambiguous:

    A well-regulated Militia, being necessary to the security of a free State,
    the right of the people to keep and bear Arms shall not be infringed.

    Clearly, the part about the Militia is background information about the
    reason for granting... an individual right to keep and bear arms, which
    does not require membership in a militia for its exercise.

    The right of the people to keep and bear arms shall not be infringed,
    because a well-regulated militia is necessary to the security of a free country.

    One can disapprove of the extremism of the NRA, and the high amount of gun crime in the United States, without contorting one's sense of how the
    English language works.

    Of course, it's possible subordinate clauses were used differently back in
    the eighteenth century, but I'd need evidence to buy into that theory.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Wed Apr 15 18:48:58 2026
    From Newsgroup: comp.arch

    In article <1776275674-5857@newsgrouper.org>,
    MitchAlsup <user5857@newsgrouper.org.invalid> wrote:

    cross@spitfire.i.gajendra.net (Dan Cross) posted:
    -------------------------
    I don't know why anyone would want a full-auto weapon as
    anything other than a museum piece or a novelty. I strongly
    suspect that such people have never heard a shot fired in anger
    before.

    Same argument can be made about cars that can go faster than speed limits.

    Not really. Speed limits vary with location, and some variation
    in driving speed is natural (e.g., gravity tends to exert some
    amount of decelerating force on a car when it starts going up a
    hill, and similarly an accelerating force when one goes _down_ a
    hill. Most drivers compensate, but that's not an instantaneous
    process), and one may temporarily exceed the speed limit to move
    away from an otherwise unsafe condition, and so on.

    And we now have cars that can go faster than 250 MPH and require $30K
    tire sets at replacement.

    Total aside, but I saw an amusing news story about some guy in,
    I think, Romania who was finally arrested taking a formula 1 car
    out onto the freeway. The cops had been chasing him for 6 years
    but couldn't catch him (for obvious reasons). They finally had
    enough time to set up a roadblock and box him in. It's likely
    he'll get a fine.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Apr 15 19:07:41 2026
    From Newsgroup: comp.arch


    Thomas Koenig <tkoenig@netcologne.de> posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 14:30:30 +0000, Scott Lurndal wrote:

    Actually, they're the most commonly used screws in my household.

    I take it you're also a Canadian. Their very existence is unknown to the
    average American.

    Can you name the 7-types of thread without using a manual ??

    M2 M3 M4 M5 M6 M8 M10

    :-)

    Not even a good try.

    Why? (Just for rhyme's sake).

    Are you saying that M2 is the same thread as M3?

    Both have the same "scaled" Geometry.

    Right answer:

    Standard 60º
    Witworth
    Butterworth
    BSP
    Buttress
    Acme
    Square
    Ball

    These can come in almost any depth and almost any threads/unit-length


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Wed Apr 15 21:14:31 2026
    From Newsgroup: comp.arch

    quadi wrote:
    On Tue, 14 Apr 2026 03:09:55 -0500, BGB wrote:

    If not, are hex-head bolts still dominant, or is it like places where in
    the US one would use a hex-head bolt or Allen-key screw they use Torx or
    similar?...

    When Torx came out, people where I live were scratching their heads why people would use an expensive proprietary kind of screwdriver, when
    Robertson was available to do exactly the same job.

    But apparently in the United States, the Robertson screwdriver is
    practically unknown.

    Robertson uses a screwdriver with a square tip.

    I have both, much prefer Torx as both the screws and the tool tips are
    less likely to shred.

    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Wed Apr 15 21:19:14 2026
    From Newsgroup: comp.arch

    MitchAlsup wrote:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:
    ---------------------
    1/16, 1/8, 3/16, 1/4, 5/16, 3/8, 7/16, 1/2, 9/16, 5/8, 11/16, 3/4,
    13/16, 7/8, 15/16

    Most people outside the US just use mm. The UK is sort of
    fluctuating, they still have their distances in miles.

    Why is it that people using the metric system will drive a thousand kilometers instead of one megameter ??

    You can't have it both ways !!

    Sure we can!

    We use the most convenient scaling of the basic units, like nm for
    visible light wavelengths and VLSI feature sizes, mm for house
    construction drawings, and km for driving distances. We very rarely
    drive as much as 1000 ikm in a single day.

    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Wed Apr 15 21:22:38 2026
    From Newsgroup: comp.arch

    MitchAlsup wrote:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 03:09:55 -0500, BGB wrote:

    If not, are hex-head bolts still dominant, or is it like places where in >>> the US one would use a hex-head bolt or Allen-key screw they use Torx or >>> similar?...

    When Torx came out, people where I live were scratching their heads why
    people would use an expensive proprietary kind of screwdriver, when
    Robertson was available to do exactly the same job.

    Originally, Torx was used in situations where malicious actors were
    present {restrooms} and they wanted a driver that was not in general
    use {already}

    That usage has been replaced with hollow Torx, it has a small pin in the middle which means that regular drivers won't fit.

    I have lots & lots of regular Torx, would have to search a bit to locate
    one of the sets which also include the hollow bits.

    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Wed Apr 15 19:24:34 2026
    From Newsgroup: comp.arch


    scott@slp53.sl.home (Scott Lurndal) posted:

    David Brown <david.brown@hesbynett.no> writes:
    On 15/04/2026 13:30, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    <snip>

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    They're also extremely expensive to use and maintain. at $2.00 or
    more _per round_, the cost rises rapidly.

    I reload 308W for $0.36 and 223 for $0.23 with match grade components.
    {But, then again, I bought my components a long time ago}

    Mythbusters shot a minigun on a couple episodes and the ammo cost
    (more than a decade ago) was huge.

    A minigun costs more than $100/second to use.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Wed Apr 15 21:33:59 2026
    From Newsgroup: comp.arch

    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that this
    is perfectly normal:

    Every single home guard (think National Guard) member and every reserve office, from NCOs up to general, had their AG3 (HK G3) in 7.62 NATO,
    with at least 150 rounds of ammo, at home. This was somewhere around 300
    000 guns in a country of less than 5M people, so one in every three or
    four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.

    Zero such guns were ever used in a crime, or stolen from a home, but
    after a couple of armory breakins where boxes of AG3s got stolen, they
    (Laber party government at the time) used that as a pretext to withdraw
    all those guns.

    The Swiss still have all their full auto/military guns, they just keep
    strict control of the ammunition: You bring your empty gun to the range
    and get your allotment, any unspent rounds have to be returned before
    you leave.

    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Wed Apr 15 21:45:35 2026
    From Newsgroup: comp.arch

    Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    As someone who has used, maintained, and fired a number of fully
    automatic weapons in the military, I wonder why anyone would
    want one.

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    As a reserve officer I have a similar experience:

    I have shot maybe a total of two magazines of 7.62 on full auto in my
    AG3, just to get a feel for what it was like. Every single other round
    was single shot precision.

    I have also fired the classic WWII era Browning 12.7 (.50 cal), in AA
    training against model planes, but my main gun was a 20 mm AA gun, in
    fact the same gun as used in an F16. The latter shoots the big brother
    of the (in)famous Raufoss .50 round, with a 9 gram explosive charge.
    Every round is a tracer so you can see very clearly where your rounds
    are going.

    BTW, that 20mm AA gun was close to useless against any fast mover like a fighter, but provided an excellent platform against vehicles and
    helicopters.

    A year after my class graduated, they started to replace those guns with Swedish radar-aimed and target-seeking Robot 70 missiles.

    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Wed Apr 15 21:55:05 2026
    From Newsgroup: comp.arch

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in any
    crimes. {Anyone with a brain would say this is a pretty good record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear warheads.

    Of course, much about the consequences of the Second Amendment indeed does appear insane. The sensible thing to do would be to repeal it, rather than pretend it doesn't exist, or it doesn't mean what it says, and hope the Supreme Court will look the other way.


    A more general problem is the absurd belief that a document written some
    250 years ago (with a few minor updates) is some kind of holy word that
    should be revered today as though the writers were prophets that knew
    the future of mankind, and all that is needed is for the priests (or
    lawyers) to interpret their perfect words.

    The American constitution was not a bad idea at the time, based on the
    desires of the "founding fathers" - keeping the right people (i.e., the founding fathers and their friends and peers) in power, keeping the
    wrong people away (like poor people, or slaves, or the folks that lived
    in the land before Europeans turned up) from influence, and making a
    political and legal system that was reasonably fair and reasonably
    practical for that day and age.

    The world has moved on. The USA would be a better place if the powers
    that be listened to what people want (like banning most guns, a national health service, actual democracy where everyone's vote counts the same,
    etc.) instead of arguing over how many angels can dance on a head of a
    pin as decreed by the constitution authors.

    That's just my two cents - coming from someone in a country almost
    completely free of gun violence, where guns are only for hunting or
    sport, and where we have far more real-world freedoms than the USA.

    Letting trustworthy people have fully-automatic weapons is a small
    problem; it's letting just anyone have semi-automatic weapons that has contributed significantly to school shootings and the like.

    John Savard

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Wed Apr 15 20:00:15 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> writes:

    scott@slp53.sl.home (Scott Lurndal) posted:

    David Brown <david.brown@hesbynett.no> writes:
    On 15/04/2026 13:30, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    <snip>

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    They're also extremely expensive to use and maintain. at $2.00 or
    more _per round_, the cost rises rapidly.

    I reload 308W for $0.36 and 223 for $0.23 with match grade components.
    {But, then again, I bought my components a long time ago}

    How long does it take you to reload 500 rounds?

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Wed Apr 15 22:00:46 2026
    From Newsgroup: comp.arch

    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that this
    is perfectly normal:

    Every single home guard (think National Guard) member and every reserve office, from NCOs up to general, had their AG3 (HK G3) in 7.62 NATO,
    with at least 150 rounds of ammo, at home. This was somewhere around 300
    000 guns in a country of less than 5M people, so one in every three or
    four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.


    These are not civilian guns. No one considers their National Guard gun
    as "their" gun - they have it for use in National Guard exercises or call-outs. The gun are always stored safely - kids can't show off Dad's
    gun to their friends and accidentally kill them. And the members of the National Guard are already vetted for being sensible, intelligent,
    honest and reliable people. (No such vetting is perfect, but it's
    pretty good.)

    Zero such guns were ever used in a crime, or stolen from a home, but
    after a couple of armory breakins where boxes of AG3s got stolen, they (Laber party government at the time) used that as a pretext to withdraw
    all those guns.

    The Swiss still have all their full auto/military guns, they just keep strict control of the ammunition: You bring your empty gun to the range
    and get your allotment, any unspent rounds have to be returned before
    you leave.

    Terje


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Wed Apr 15 13:01:55 2026
    From Newsgroup: comp.arch

    On 4/15/2026 4:30 AM, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    As someone who has used, maintained, and fired a number of fully
    automatic weapons in the military, I wonder why anyone would
    want one.

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    - Dan C.



    Say target on single fire mode. Missed! Turn to auto and give a burst.
    Or don't for what about 3 round burst? They are moving now. No single
    sniper mode. A suppress fully auto can make the target think there might
    be more than one person out there. Reminds me of the following scene:


    (Terminator 2: Judgment Day [4K] Sarah Connor tries to kill Dyson)

    https://youtu.be/j8TIMy_eyK0


    Also, full auto, beware! Blows your ammo!

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Wed Apr 15 13:16:25 2026
    From Newsgroup: comp.arch

    On 4/15/2026 1:01 PM, Chris M. Thomasson wrote:
    On 4/15/2026 4:30 AM, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi  <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    As someone who has used, maintained, and fired a number of fully
    automatic weapons in the military, I wonder why anyone would
    want one.

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

        - Dan C.



    Say target on single fire mode. Missed! Turn to auto and give a burst.
    Or don't for what about 3 round burst? They are moving now. No single
    sniper mode. A suppress fully auto can make the target think there might
    be more than one person out there. Reminds me of the following scene:


    (Terminator 2: Judgment Day [4K] Sarah Connor tries to kill Dyson)

    https://youtu.be/j8TIMy_eyK0


    Also, full auto, beware! Blows your ammo!




    He was waving it around. Oh God. I could have died that day. BUT,
    something told me to be calm, cool and collected when I asked him to let
    me hold it.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Wed Apr 15 13:19:19 2026
    From Newsgroup: comp.arch

    On 4/15/2026 1:00 PM, David Brown wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that
    this is perfectly normal:

    Every single home guard (think National Guard) member and every
    reserve office, from NCOs up to general, had their AG3 (HK G3) in 7.62
    NATO, with at least 150 rounds of ammo, at home. This was somewhere
    around 300 000 guns in a country of less than 5M people, so one in
    every three or four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.


    These are not civilian guns.  No one considers their National Guard gun
    as "their" gun - they have it for use in National Guard exercises or call-outs.  The gun are always stored safely - kids can't show off Dad's gun to their friends and accidentally kill them.

    Right! Hey look at this. Self dead, and friends dead/injured. Actually,
    I was at a friend of a friends house. A big house in Discovery Bay
    California. His parent was gone, Dad divorced... He pulled out a big
    revolver, might have been a 45 caliber. Holes galore. said he was able
    to find it from his Dad. I instantly asked him to show it to me. I
    looked and found that there were two rounds of ammo in the chamber. God,
    I could have died that day! I said all guns are loaded, that's the
    mindset... He said he thought it was empty. Oh my!

    I was a kiddo at the time. But, my Dad made me take hunters safety
    courses. I got A's! I will never forget how to proper cross a fence with
    a gun.




    And the members of the
    National Guard are already vetted for being sensible, intelligent,
    honest and reliable people.  (No such vetting is perfect, but it's
    pretty good.)

    Zero such guns were ever used in a crime, or stolen from a home, but
    after a couple of armory breakins where boxes of AG3s got stolen, they
    (Laber party government at the time) used that as a pretext to
    withdraw all those guns.

    The Swiss still have all their full auto/military guns, they just keep
    strict control of the ammunition: You bring your empty gun to the
    range and get your allotment, any unspent rounds have to be returned
    before you leave.

    Terje



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Wed Apr 15 20:22:21 2026
    From Newsgroup: comp.arch

    In article <10rop76$16g5j$1@dont-email.me>,
    Terje Mathisen <terje.mathisen@tmsw.no> wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that this
    is perfectly normal:

    Every single home guard (think National Guard) member and every reserve >office, from NCOs up to general, had their AG3 (HK G3) in 7.62 NATO,
    with at least 150 rounds of ammo, at home. This was somewhere around 300
    000 guns in a country of less than 5M people, so one in every three or
    four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.

    Zero such guns were ever used in a crime, or stolen from a home, but
    after a couple of armory breakins where boxes of AG3s got stolen, they >(Laber party government at the time) used that as a pretext to withdraw
    all those guns.

    The Swiss still have all their full auto/military guns, they just keep >strict control of the ammunition: You bring your empty gun to the range
    and get your allotment, any unspent rounds have to be returned before
    you leave.

    I understand that there is a Swiss reserve base where a number
    of people report for periodic duty, and where the fastest way to
    get there from a major population center is via a train route
    that takes a (short) path through Italy. A Greek colleague was
    telling me about this; I quipped that the Italian railway
    officials must joke to one another, "ah, it's 3:12 on the 1st
    Friday of the month; the Swiss should be invading shortly."
    "Yes, well, you know how punctual they are...." (Jokes aside,
    it is known and understood that Swiss army reservists with
    weapons will be traveling on that train.)

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Wed Apr 15 20:23:07 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    quadi <quadibloc@ca.invalid> posted:

    On Tue, 14 Apr 2026 14:30:30 +0000, Scott Lurndal wrote:

    Actually, they're the most commonly used screws in my household.

    I take it you're also a Canadian. Their very existence is unknown to the
    average American.

    Can you name the 7-types of thread without using a manual ??

    M2 M3 M4 M5 M6 M8 M10

    :-)

    Not even a good try.

    Why? (Just for rhyme's sake).

    Are you saying that M2 is the same thread as M3?

    Both have the same "scaled" Geometry.

    But they still won't fit each other, which makes them different :-)
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Wed Apr 15 20:28:06 2026
    From Newsgroup: comp.arch

    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:

    Say target on single fire mode. Missed! Turn to auto and give a burst.
    Or don't for what about 3 round burst? They are moving now. No single
    sniper mode. A suppress fully auto can make the target think there might
    be more than one person out there. Reminds me of the following scene:

    Firing suppressive fire in full auto is not what assault guns are for.
    That's what real machine guns are for.

    There was some criticism of the G36 assault rifle in Germany because
    the aim point appeared to wander at auto-fire in high temperatures.
    Well, see above.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Wed Apr 15 20:35:36 2026
    From Newsgroup: comp.arch

    In article <10roqpe$16j1j$2@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the
    tax stamp cost, and wait through Sheriff interviews, and wait the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that this
    is perfectly normal:

    Every single home guard (think National Guard) member and every reserve
    office, from NCOs up to general, had their AG3 (HK G3) in 7.62 NATO,
    with at least 150 rounds of ammo, at home. This was somewhere around 300
    000 guns in a country of less than 5M people, so one in every three or
    four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.

    These are not civilian guns. No one considers their National Guard gun
    as "their" gun - they have it for use in National Guard exercises or >call-outs. The gun are always stored safely - kids can't show off Dad's
    gun to their friends and accidentally kill them. And the members of the >National Guard are already vetted for being sensible, intelligent,
    honest and reliable people. (No such vetting is perfect, but it's
    pretty good.)

    If you're referring to the United States, then those guns almost
    never go home with those service members. Rather, they are
    almost certainly kept in an armory on site at the NG facility.
    The requirements for securing access to a US military armory are
    non-trivial; when they're staffed, the service members doing so
    are themselves armed and acting under shoot-to-kill orders.

    But generally speaking, most military members are unarmed most
    of the time. This is one reason why the Fort Hood shooter was
    able to kill so people many before being subdued.

    There is some leeway for officers and staff NCOs to transport
    weapons to and from a range exercise in their POVs (Personally
    Owned Vehicles), but the expectation is that they are returned
    to the armory after use.

    Oh, and you have to clean it before turning it back in, too, and
    you have to do so to the satisfaction of a Marine Corps armoror
    (well, you do if you're a Marine). That said, a little birdie
    once told me that if you do a first pass and put a $20 bill in
    the breach of the weapon when you turn it back in, they will do
    it for you. But I wouldn't know anything about that.

    Zero such guns were ever used in a crime, or stolen from a home, but
    after a couple of armory breakins where boxes of AG3s got stolen, they
    (Laber party government at the time) used that as a pretext to withdraw
    all those guns.

    The Swiss still have all their full auto/military guns, they just keep
    strict control of the ammunition: You bring your empty gun to the range
    and get your allotment, any unspent rounds have to be returned before
    you leave.

    The same is true in the US military; there is a process of
    "lining out" (at least, that's what we called it in the Marine
    Corps; I can't speak to other services, though I assume the Navy
    is similar) whereby you are physically searched and patted down
    to ensure that you're not holding any rounds, intentional or
    otherwise.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From John Levine@johnl@taugh.com to comp.arch on Wed Apr 15 21:15:26 2026
    From Newsgroup: comp.arch

    According to quadi <quadibloc@ca.invalid>:
    On Wed, 15 Apr 2026 16:44:04 +0000, John Levine wrote:

    Then in the
    1960s some well organizaed revisionists ignored what it says, pretended
    it meant an individual right to have guns everywhere, and managed to
    find a majority of right wing supreme court justices willing to sign on.

    I'm afraid that I can't agree with you on this. ...

    Of course, it's possible subordinate clauses were used differently back in >the eighteenth century, but I'd need evidence to buy into that theory.

    The evidence is that for over 150 years, everyone agreed that it meant state militias. There were two Supreme Court decisions in 1876 and 1886 that confirmed
    the rights of states to regulate militias, one in 1939 saying that a sawed off shotgun wasn't the kind of arm that the 2nd was intended to protect, and one in 1980 confirming that it was OK for states to forbid convicted felons from owning
    guns.

    I'm not aware of anyone claiming it was an individual right that the states could not regulate until the 1960 revisionists, and no court decision until Heller in 2008 which reversed the previous century and a half's precedent. Heller was decided 5-4, over strong dissents.

    But let's get back to gate delays, please.
    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Bill Findlay@findlaybill@blueyonder.co.uk to comp.arch on Wed Apr 15 23:44:35 2026
    From Newsgroup: comp.arch

    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in any crimes. {Anyone with a brain would say this is a pretty good record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear warheads.

    Of course, much about the consequences of the Second Amendment indeed does appear insane. The sensible thing to do would be to repeal it, rather than pretend it doesn't exist, or it doesn't mean what it says, and hope the Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.
    --
    Bill Findlay

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Wed Apr 15 20:12:44 2026
    From Newsgroup: comp.arch

    On 4/15/2026 1:28 PM, Thomas Koenig wrote:
    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:

    Say target on single fire mode. Missed! Turn to auto and give a burst.
    Or don't for what about 3 round burst? They are moving now. No single
    sniper mode. A suppress fully auto can make the target think there might
    be more than one person out there. Reminds me of the following scene:

    Firing suppressive fire in full auto is not what assault guns are for.
    That's what real machine guns are for.

    Tu. But, they can scare the shit out of the target. They know round are
    going down range toward them. Therefore, they are in peril? But, the
    ammo issue, ugg.



    There was some criticism of the G36 assault rifle in Germany because
    the aim point appeared to wander at auto-fire in high temperatures.
    Well, see above.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Wed Apr 15 22:05:27 2026
    From Newsgroup: comp.arch

    On 4/14/2026 2:14 PM, BGB wrote:
    On 4/14/2026 11:35 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/14/2026 1:00 AM, Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    On 4/13/2026 8:19 PM, MitchAlsup wrote:

    Robert Finch <robfi680@gmail.com> posted:

    On 2026-04-13 5:11 p.m., Thomas Koenig wrote:
    BGB <cr88192@gmail.com> schrieb:
    ---------------

    Socket wrench?

    Socket wrenches come in weird sizes like 1/2, 1/4 inch, but
    metric is
    used nowadays.

    Socket wrenches go as small as step sizes of 1/64 and 0.25mm
    Smaller than step sizes of 1/32 are rare, with 1/16 quite common.

    Yeah, somehow I would have thought pretty much everyone would be
    familiar with them and with the system of fractions for defining sizes >>>>> for things...

    Look at my e-mail address and consider which countries use
    which measuring system.  For your amusement, you can also watch
    https://www.youtube.com/watch?v=JYqfVE-fykk :-)


    So Germany doesn't also use SAE for screws and bolts?...

    Not sure what SAE prescribes. Is that Imperial?  Germany (like
    almost everybody else) use ISO, which is metric.  An M6 screw,
    for example, has a nominal outer diameter of 6 mm.  Screw heads
    are also ISO.


    Mostly it defines everything in inch-based units.

    An M6 is roughly around the size of what we would call 1/4-20, for 1/4
    inch at 20 turns per inch.


    Or, have the same thing of building machines where half the screws are
    SAE and half are Metric.

    You will be hard pressed to find inch-based screws and bolts in
    the EU, this is entirely metric. The only exception is Withworth
    threads, which are still used for piping in houses.  Of course,
    these only bear a passing resemblance to their nominal diameter
    because of $REASONS.


    US has NPT, which has tapered threads, and differs from its stated size
    by a factor of 2 because apparently they describe its size in radius or something.


    If not, are hex-head bolts still dominant, or is it like places where in >>> the US one would use a hex-head bolt or Allen-key screw they use Torx or >>> similar?...

    Really depends on the application.  Screws come in a variety of heads.
    For bolts, hexagonal is dominant.


    OK.

    In US it is mostly hex-heads for bolts, and Philips for small screws (followed by Allen keys).


    Then again, I guess if anything I would expect things like machines to
    be similar, as most of the machines are presumably still made in China,
    and it would be weird to expect China to make different stuff based on
    what country they intend to sell it in.

    I believe China looked around for their standards a few decades ago,
    and decided to base theirs on DIN (the German one).


    OK.

    Still seems like a lot of the stuff they sell to the US uses US sizes,
    so maybe it is market dependent.


    But, then again, I have heard there are sometimes issues, like a lot of
    Chinese-made machines use copper-clad-aluminum wire, which is apparently >>> illegal in places like Australia, ...


    Well, and I guess in the US, there are a lot of people who don't approve >>> of aluminum and CCA wiring, but generally still allowed (though CCA is
    kinda annoying to solder as it can often foul up the tip on the
    soldering iron and/or form an amalgam with the solder which can't really >>> be re-melted when if forms).

    I don't think aluminium wiring is allowed in Germany. I have certainly
    never seen it, also not in old houses.


    Here, it is one of those "allowed but some people get pissy about it"
    things when used for house wiring.

    Frequently used in consumer electronics but no one notices.



    I once encountered a wire that when voltage caused a spark to form, the
    wire went off like a "4th of July" sparkler (basically, a metal stick
    used for a US holiday, when the end is lit of fire, it burns and shoots white-hot sparks out the end, *1).


    At first I thought it was CCA, but apparently it was CCAM (Copper Clad Aluminum-Magnesium). The CCAM wiring is probably the main stuff people actually need to worry about.


    Though, AFAIK, pretty much no use uses magnesium for house wiring though.


    *1: Where, the US has a holiday where the main traditional way of celebrating the holiday is to let kids play around with low grade
    explosives and incendiaries. People have still been injured or killed as
    a result of this, particularly when doing "something stupid".

    Like, by themselves, their explosive powers aren't much of a problem,
    but when contained in something like a beer bottle, or inserted into someone's rectum or similar, the danger goes up significantly.
    Apparently this sort of thing is a recurring problem.

    Well, and then there are people that celebrate by firing guns into the
    air, but falling bullets can also pose a safety risk.

    Sometimes, people have guns that are full auto. These are not usually
    legal to have, but if one hears full-auto / rapid fire going off, then
    it is an indication that someone nearby has one (and gunfire and machine guns can be heard over a fair distance). Well, also people firing
    shotguns and similar into the air is also popular.

    This sort of thing is also popular on New Years Eve, but almost
    exclusively gunfire in this case (fireworks are mostly a "4th of July" thing). Depends a lot on the holiday though (say, would be rather out of place on Christmas or Easter).

    Maybe this isn't as much of a thing elsewhere though...



    But, yeah, I guess it is also sort of like in video games the units are
    more ad-hoc, just whatever is most convenient at the time.


    Though, in a lot of my 3D engines, this has been to use the meter as the >>> base unit, but then define an "inch" as 1/32 of a meter; then just be
    like "whatever, close enough". Apparently fairly close to the old French >>> Inch though.

    An inch is 25.4 mm, 1m/32 is 31.25 mm, that is a rather big
    deviation.  But then again, pi equals 3 for small values of pi
    and large values of 3...


    Yes.

    In 3D gaming stuff, accuracy doesn't really matter, so long as things
    are "in the right general area".


    If using meters as a base unit, can put eye level at around 1.6 or 1.7
    off the ground, as this is "about right" (1.8 is too tall and 1.4 is too short), ...



    In some cases, can make sense to have a cubit as 1/2 "meter", or "foot"
    as 1/3.


    But, can't make too many assumptions it seems.

    I was thrown off by the measurements in inches.


    OK.

    We have mm stuff as well, but it is less commonly used than inch stuff.

    Tools and CNC machines pretty much exclusively use inches though.

    Not so long ago, I was standing in a workshop in the US and asking
    for a caliper in mm. They had one, but it took them some time to
    find it :-)


    Yeah, makes sense.
    Most of them are inch based.


    [...]



    Shit man, I finally got my STL to work with any 3d printer. Here is an
    example that can be printed on any machine: https://skfb.ly/pICty

    Explore it. Fwiw... Examine this as well:

    https://paulbourke.net/fractals/miscvolume/

    read all when bored... :^)
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Thu Apr 16 05:27:27 2026
    From Newsgroup: comp.arch

    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:
    On 4/15/2026 1:28 PM, Thomas Koenig wrote:
    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:

    Say target on single fire mode. Missed! Turn to auto and give a burst.
    Or don't for what about 3 round burst? They are moving now. No single
    sniper mode. A suppress fully auto can make the target think there might >>> be more than one person out there. Reminds me of the following scene:

    Firing suppressive fire in full auto is not what assault guns are for.
    That's what real machine guns are for.

    Tu. But, they can scare the shit out of the target. They know round are going down range toward them. Therefore, they are in peril? But, the
    ammo issue, ugg.

    I first used the G3 at the Bundeswehr. 600 rounds per minute, 20
    rounds per magazine. Firing that weapon at full auto will empty
    it in a tid less than two seconds (note fencepost error here :-)

    Firing short bursts or single shots will keep any enemy down for
    a far longer time than that.

    But a squad at the time had a MG3 (1200 rounds per minute) with it.
    But firing that continously is also not a good idea because

    a) ammunition: 24 grams per round means that you run through 0.48
    kg (a bit more than a pound :-) per second of ammunition, which
    somebody has to carry

    b) you have to exchange barrels and locks after a certain number
    of rounds to prevent overheating.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Wed Apr 15 23:55:48 2026
    From Newsgroup: comp.arch

    On 4/15/2026 10:27 PM, Thomas Koenig wrote:
    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:
    On 4/15/2026 1:28 PM, Thomas Koenig wrote:
    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:

    Say target on single fire mode. Missed! Turn to auto and give a burst. >>>> Or don't for what about 3 round burst? They are moving now. No single
    sniper mode. A suppress fully auto can make the target think there might >>>> be more than one person out there. Reminds me of the following scene:

    Firing suppressive fire in full auto is not what assault guns are for.
    That's what real machine guns are for.

    Tu. But, they can scare the shit out of the target. They know round are
    going down range toward them. Therefore, they are in peril? But, the
    ammo issue, ugg.

    I first used the G3 at the Bundeswehr. 600 rounds per minute, 20
    rounds per magazine. Firing that weapon at full auto will empty
    it in a tid less than two seconds (note fencepost error here :-)

    Firing short bursts or single shots will keep any enemy down for
    a far longer time than that.

    But a squad at the time had a MG3 (1200 rounds per minute) with it.
    But firing that continously is also not a good idea because

    a) ammunition: 24 grams per round means that you run through 0.48
    kg (a bit more than a pound :-) per second of ammunition, which
    somebody has to carry

    b) you have to exchange barrels and locks after a certain number
    of rounds to prevent overheating.

    If the first snipe fails, switch to three round burst. Scare them, and
    move in the weeds...?
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Thu Apr 16 11:35:03 2026
    From Newsgroup: comp.arch

    On 15/04/2026 22:35, Dan Cross wrote:
    In article <10roqpe$16j1j$2@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the >>>>> tax stamp cost, and wait through Sheriff interviews, and wait the ~18 >>>>> months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that this >>> is perfectly normal:

    Every single home guard (think National Guard) member and every reserve
    office, from NCOs up to general, had their AG3 (HK G3) in 7.62 NATO,
    with at least 150 rounds of ammo, at home. This was somewhere around 300 >>> 000 guns in a country of less than 5M people, so one in every three or
    four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.

    These are not civilian guns. No one considers their National Guard gun
    as "their" gun - they have it for use in National Guard exercises or
    call-outs. The gun are always stored safely - kids can't show off Dad's
    gun to their friends and accidentally kill them. And the members of the
    National Guard are already vetted for being sensible, intelligent,
    honest and reliable people. (No such vetting is perfect, but it's
    pretty good.)

    If you're referring to the United States,

    No, I am referring to Norway. But it would have been helpful if I'd
    mentioned that! (I expect similar rules and attitudes apply in
    Switzerland.)

    then those guns almost
    never go home with those service members. Rather, they are
    almost certainly kept in an armory on site at the NG facility.
    The requirements for securing access to a US military armory are
    non-trivial; when they're staffed, the service members doing so
    are themselves armed and acting under shoot-to-kill orders.


    The current practice in Norway is that National Guard members have their
    guns at home, but no ammunition and no firing pin. This makes things practical for exercises, as the leaders for the exercises don't need to transport much - just a box of firing pins and as much ammunition as is appropriate. (The service members have all their other equipment at
    home too - they store their own uniforms and other stuff, and are
    responsible for washing and repairs or ordering replacements after the exercises.) It also means that there are less guns stored in
    concentrated places as potential targets for robberies. And in the
    event of a real invasion, it's a lot easier to smugle around and
    distribute firing pins to service members than to pass around guns from
    a central armoury.

    We also don't really go in for shoot-to-kill in Norway.

    But generally speaking, most military members are unarmed most
    of the time. This is one reason why the Fort Hood shooter was
    able to kill so people many before being subdued.

    There is some leeway for officers and staff NCOs to transport
    weapons to and from a range exercise in their POVs (Personally
    Owned Vehicles), but the expectation is that they are returned
    to the armory after use.

    I don't know the details of any of that here.


    Oh, and you have to clean it before turning it back in, too, and
    you have to do so to the satisfaction of a Marine Corps armoror
    (well, you do if you're a Marine). That said, a little birdie
    once told me that if you do a first pass and put a $20 bill in
    the breach of the weapon when you turn it back in, they will do
    it for you. But I wouldn't know anything about that.


    We don't really go in for bribery either in Norway - at least, not at
    that level. (In fact, not much at any level - we are not perfect, but
    are one of the least corrupt countries.)

    Zero such guns were ever used in a crime, or stolen from a home, but
    after a couple of armory breakins where boxes of AG3s got stolen, they
    (Laber party government at the time) used that as a pretext to withdraw
    all those guns.

    The Swiss still have all their full auto/military guns, they just keep
    strict control of the ammunition: You bring your empty gun to the range
    and get your allotment, any unspent rounds have to be returned before
    you leave.

    The same is true in the US military; there is a process of
    "lining out" (at least, that's what we called it in the Marine
    Corps; I can't speak to other services, though I assume the Navy
    is similar) whereby you are physically searched and patted down
    to ensure that you're not holding any rounds, intentional or
    otherwise.


    If you want trustworthy military personell, you need to trust them. As
    a teenager in the UK, I was in the "cadets" at school - once a week we'd
    have a few hours in military uniforms, learning marching, gun safety,
    and a bit of fun stuff like camouflage, abseiling, and stuff. It also included shooting at a barracks gun range - serious sized rounds with
    long outdated rifles. We were just fifteen year-old "toy soldiers", and
    we were /asked/ to check our pockets for extra rounds or empty casings.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Thu Apr 16 11:59:59 2026
    From Newsgroup: comp.arch

    In article <10rqag7$1in0h$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 15/04/2026 22:35, Dan Cross wrote:
    In article <10roqpe$16j1j$2@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the >>>>>> tax stamp cost, and wait through Sheriff interviews, and wait the ~18 >>>>>> months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that this >>>> is perfectly normal:

    Every single home guard (think National Guard) member and every reserve >>>> office, from NCOs up to general, had their AG3 (HK G3) in 7.62 NATO,
    with at least 150 rounds of ammo, at home. This was somewhere around 300 >>>> 000 guns in a country of less than 5M people, so one in every three or >>>> four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.

    These are not civilian guns. No one considers their National Guard gun
    as "their" gun - they have it for use in National Guard exercises or
    call-outs. The gun are always stored safely - kids can't show off Dad's >>> gun to their friends and accidentally kill them. And the members of the >>> National Guard are already vetted for being sensible, intelligent,
    honest and reliable people. (No such vetting is perfect, but it's
    pretty good.)

    If you're referring to the United States,

    No, I am referring to Norway. But it would have been helpful if I'd >mentioned that! (I expect similar rules and attitudes apply in >Switzerland.)

    Ah, ok.

    then those guns almost
    never go home with those service members. Rather, they are
    almost certainly kept in an armory on site at the NG facility.
    The requirements for securing access to a US military armory are
    non-trivial; when they're staffed, the service members doing so
    are themselves armed and acting under shoot-to-kill orders.

    The current practice in Norway is that National Guard members have their >guns at home, but no ammunition and no firing pin. This makes things >practical for exercises, as the leaders for the exercises don't need to >transport much - just a box of firing pins and as much ammunition as is >appropriate.

    This is sensible, though of course a firing pin is much easier
    to source than an entire rifle. In the US military, ammunition
    is stored separtely from weapons, as well. The armorers have
    some smallish number of security rounds, but beyond that, for
    safety reasons ammunition is kept seperate, often underground.
    (Ammunition is, by definition, volatile. A fire or something at
    an ammo supply point is inherently dangerous.)

    (The service members have all their other equipment at
    home too - they store their own uniforms and other stuff, and are >responsible for washing and repairs or ordering replacements after the >exercises.)

    The same is true in the US military. I always found it annoying
    that I had to make space for my issued equipment at home, but
    c'est la vie.

    It also means that there are less guns stored in
    concentrated places as potential targets for robberies. And in the
    event of a real invasion, it's a lot easier to smugle around and
    distribute firing pins to service members than to pass around guns from
    a central armoury.

    There are tradeoffs, however: it is also easier for a bad actor
    to source a weapon by breaking into a private home.

    We also don't really go in for shoot-to-kill in Norway.

    Note that I'm talking about the use of deadly force to prevent a
    bad actor from forcibly taking military-grade arms. That is
    exactly the sort of thing that deadly force arguably _should_ be
    authorized for.

    But more broadly, from a military perspective, this doesn't make
    a lot of sense to me, because it ignores the human factors at
    play in the fog of war.

    Due to the sympathetic physiological reaction to stress, one
    tends to lose one's fine motor skills in a combat-type situation
    and it can be difficult to remember even the most basic bodily
    functions: lose of urinary and sphincter control are common,
    for example (hence the expression, "scared shitless"). Moreover
    long experience in human history shows that it is impossible to
    know a priori how one will react: some people are ridiculously
    calm in combat, others are not.

    For that reason, most people are taught to shoot center-of-mass;
    I was in the military when we still used iron sights out to 500
    yards (roughly 500 meters). It's one thing to accurately shoot
    at that distance when you're on a known-distance range on a
    relatively calm day. It's an entirely different matter when
    someone is shooting back at you. Anyone who thinks, "I'll just
    shoot to wound them!" is deluding themselves.

    But generally speaking, most military members are unarmed most
    of the time. This is one reason why the Fort Hood shooter was
    able to kill so people many before being subdued.

    There is some leeway for officers and staff NCOs to transport
    weapons to and from a range exercise in their POVs (Personally
    Owned Vehicles), but the expectation is that they are returned
    to the armory after use.

    I don't know the details of any of that here.

    It's not important. It was just an aside.

    Oh, and you have to clean it before turning it back in, too, and
    you have to do so to the satisfaction of a Marine Corps armoror
    (well, you do if you're a Marine). That said, a little birdie
    once told me that if you do a first pass and put a $20 bill in
    the breach of the weapon when you turn it back in, they will do
    it for you. But I wouldn't know anything about that.

    We don't really go in for bribery either in Norway - at least, not at
    that level. (In fact, not much at any level - we are not perfect, but
    are one of the least corrupt countries.)

    Lol, that's not bribery.

    Zero such guns were ever used in a crime, or stolen from a home, but
    after a couple of armory breakins where boxes of AG3s got stolen, they >>>> (Laber party government at the time) used that as a pretext to withdraw >>>> all those guns.

    The Swiss still have all their full auto/military guns, they just keep >>>> strict control of the ammunition: You bring your empty gun to the range >>>> and get your allotment, any unspent rounds have to be returned before
    you leave.

    The same is true in the US military; there is a process of
    "lining out" (at least, that's what we called it in the Marine
    Corps; I can't speak to other services, though I assume the Navy
    is similar) whereby you are physically searched and patted down
    to ensure that you're not holding any rounds, intentional or
    otherwise.

    If you want trustworthy military personell, you need to trust them.

    I can't imagine that any other professional military does it
    much differently than I described.

    This isn't about trust so much as accountability; the two are of
    course related, but different. In particular, it's about
    building a warrior culture that emphasizes safety and respect
    for the inherent danger of weapons and puts inculcates practices
    designed to emphasize and reinforce those traits. Ammunition is
    inherently dangerous; it should be treated as such. The
    expectation is that service members treat it with respect and
    the attention that it inherently deserves. You build that by
    enforcing accountability and then pushing that down through the
    ranks to the lowest levels: a junior Marine is lined out by
    their fireteam leader; the team leaders by their squad leader;
    the squad leaders by the Platoon Sergeant, and so on. Junior
    Marines see that this is taken seriously and so learn to take it
    seriously.

    In other words, you build trust that you just described by
    emphasizing safety practices, and validate they are followed by
    rigorous inspection, thoughout the mundate and ordinary aspects
    of training. Hence lineouts, weapons inspections, and "clearing
    barrels" that are all designed to habituate safe(r) weapons
    handling practices.

    Note that this is one of the things I find so troubling about
    the "2A" gun culture in the United States. It fetishizes
    weapons and deemphasiizes safety practices so that its adherents
    can be "ready" at all times (for what?). These people aren't
    just deluded about the relative risks of owning and carrying
    weapons, they're actively dangerous because they have no idea
    what they are doing.

    As
    a teenager in the UK, I was in the "cadets" at school - once a week we'd >have a few hours in military uniforms, learning marching, gun safety,
    and a bit of fun stuff like camouflage, abseiling, and stuff. It also >included shooting at a barracks gun range - serious sized rounds with
    long outdated rifles. We were just fifteen year-old "toy soldiers", and
    we were /asked/ to check our pockets for extra rounds or empty casings.

    That's disturbing.

    Sounds like the people who ran your "cadets" program did you a
    disservice by failing to emphasize proper weapons and ammo
    handling practices.

    Having worked with actual British forces in Afghanistan, I know
    that they take weapons safety as seriously as we do. Perhaps
    don't extrapolate from that to what an actual military does.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Thu Apr 16 16:27:27 2026
    From Newsgroup: comp.arch

    On 16/04/2026 13:59, Dan Cross wrote:
    In article <10rqag7$1in0h$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 15/04/2026 22:35, Dan Cross wrote:
    In article <10roqpe$16j1j$2@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the >>>>>>> tax stamp cost, and wait through Sheriff interviews, and wait the ~18 >>>>>>> months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s) >>>>>>> to present: only 2 properly registered FA guns have been used in >>>>>>> any crimes. {Anyone with a brain would say this is a pretty good >>>>>>> record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that this >>>>> is perfectly normal:

    Every single home guard (think National Guard) member and every reserve >>>>> office, from NCOs up to general, had their AG3 (HK G3) in 7.62 NATO, >>>>> with at least 150 rounds of ammo, at home. This was somewhere around 300 >>>>> 000 guns in a country of less than 5M people, so one in every three or >>>>> four households.

    The only security requirement was that you had to take out the firing >>>>> pin and store it apart from the gun.

    These are not civilian guns. No one considers their National Guard gun >>>> as "their" gun - they have it for use in National Guard exercises or
    call-outs. The gun are always stored safely - kids can't show off Dad's >>>> gun to their friends and accidentally kill them. And the members of the >>>> National Guard are already vetted for being sensible, intelligent,
    honest and reliable people. (No such vetting is perfect, but it's
    pretty good.)

    If you're referring to the United States,

    No, I am referring to Norway. But it would have been helpful if I'd
    mentioned that! (I expect similar rules and attitudes apply in
    Switzerland.)

    Ah, ok.

    then those guns almost
    never go home with those service members. Rather, they are
    almost certainly kept in an armory on site at the NG facility.
    The requirements for securing access to a US military armory are
    non-trivial; when they're staffed, the service members doing so
    are themselves armed and acting under shoot-to-kill orders.

    The current practice in Norway is that National Guard members have their
    guns at home, but no ammunition and no firing pin. This makes things
    practical for exercises, as the leaders for the exercises don't need to
    transport much - just a box of firing pins and as much ammunition as is
    appropriate.

    This is sensible, though of course a firing pin is much easier
    to source than an entire rifle. In the US military, ammunition
    is stored separtely from weapons, as well. The armorers have
    some smallish number of security rounds, but beyond that, for
    safety reasons ammunition is kept seperate, often underground.
    (Ammunition is, by definition, volatile. A fire or something at
    an ammo supply point is inherently dangerous.)

    Sure, keeping ammunition separate and safe is vital.


    (The service members have all their other equipment at
    home too - they store their own uniforms and other stuff, and are
    responsible for washing and repairs or ordering replacements after the
    exercises.)

    The same is true in the US military. I always found it annoying
    that I had to make space for my issued equipment at home, but
    c'est la vie.

    Personally, I have no military experience at all (not counting school
    cadets). But one of my sons joined the National Guard after his
    military service. He has a neat solution to problem of space for his equipment - he keeps it in his old bedroom in our house, not in his own
    flat :-)


    It also means that there are less guns stored in
    concentrated places as potential targets for robberies. And in the
    event of a real invasion, it's a lot easier to smugle around and
    distribute firing pins to service members than to pass around guns from
    a central armoury.

    There are tradeoffs, however: it is also easier for a bad actor
    to source a weapon by breaking into a private home.


    It is plausible, but AFAIK it is extremely rare here. The solid
    majority of criminals here don't want guns, and would probably not take
    one if they found one in a house they were robbing. As a house burglar,
    you can't easily sell a gun, you don't need one for defence, you don't
    need one to threaten anyone - it just increases your chance of being
    shot yourself, and increases your punishment if you get got. There are
    guns in the more serious narcotics gangs, but those are handguns - they
    have no use for military weapons.

    We also don't really go in for shoot-to-kill in Norway.

    Note that I'm talking about the use of deadly force to prevent a
    bad actor from forcibly taking military-grade arms. That is
    exactly the sort of thing that deadly force arguably _should_ be
    authorized for.


    There is a distinction (which I did not make, but should have) between authorising deadly force, and encouraging it. As a last resort, it
    makes sense in situations like this. But it should be very much the
    last resort. Real-life criminals are not like in the movies - if
    military guards point guns at them, they will put their hands in the air
    and no one needs to be shot. (It's a different matter for criminals
    high on drugs and unable to think rationally, but they don't try to raid military armouries.) If shots need to be fired, the primary aim should
    be to persuade the bad guys to surrender, not to kill them.

    But more broadly, from a military perspective, this doesn't make
    a lot of sense to me, because it ignores the human factors at
    play in the fog of war.

    Due to the sympathetic physiological reaction to stress, one
    tends to lose one's fine motor skills in a combat-type situation
    and it can be difficult to remember even the most basic bodily
    functions: lose of urinary and sphincter control are common,
    for example (hence the expression, "scared shitless"). Moreover
    long experience in human history shows that it is impossible to
    know a priori how one will react: some people are ridiculously
    calm in combat, others are not.


    While I have (as I said) no military experience, I have a fair bit of
    martial art experience - and what you describe is entirely correct.
    That is why training is vital - lots of training, simulating real
    conditions as accurately as possible. You never get 100% simulation, of course.

    And you train for different tasks. Guards should /not/ be trained to
    shoot to kill as a priority - they should be trained for identification
    of the threat, de-escalation, and containing and controlling the
    situation. The gun is primarily a threat - firing it at all is way down
    your list of tactics. A successful outcome is capturing the intruders, preferably uninjured - killing them is a failure (though not the worst
    failure outcome). After all, most people the guard encounters will not
    be trying to kill them or infiltrate a building. Other types of assault groups /will/ be trained for killing or disabling enemies as fast as
    possible, keeping the element of surprise - but that's a different job.

    For that reason, most people are taught to shoot center-of-mass;
    I was in the military when we still used iron sights out to 500
    yards (roughly 500 meters). It's one thing to accurately shoot
    at that distance when you're on a known-distance range on a
    relatively calm day. It's an entirely different matter when
    someone is shooting back at you. Anyone who thinks, "I'll just
    shoot to wound them!" is deluding themselves.


    You don't shoot to wound at 500 yards. At that distance, you are either
    a sniper, or shooting to scare the enemy. There's no point in trying to
    aim through sights unless you have the time to do so without the risk of
    being killed in the process.

    But generally speaking, most military members are unarmed most
    of the time. This is one reason why the Fort Hood shooter was
    able to kill so people many before being subdued.

    There is some leeway for officers and staff NCOs to transport
    weapons to and from a range exercise in their POVs (Personally
    Owned Vehicles), but the expectation is that they are returned
    to the armory after use.

    I don't know the details of any of that here.

    It's not important. It was just an aside.

    Oh, and you have to clean it before turning it back in, too, and
    you have to do so to the satisfaction of a Marine Corps armoror
    (well, you do if you're a Marine). That said, a little birdie
    once told me that if you do a first pass and put a $20 bill in
    the breach of the weapon when you turn it back in, they will do
    it for you. But I wouldn't know anything about that.

    We don't really go in for bribery either in Norway - at least, not at
    that level. (In fact, not much at any level - we are not perfect, but
    are one of the least corrupt countries.)

    Lol, that's not bribery.

    You are giving someone cash in hand, outside the regulations, to
    overlook your failure to do your job. Doesn't that count as bribery?
    It is very different from having an official policy of fining people for
    not cleaning their weapons, or providing cleaning as a paid service.


    Zero such guns were ever used in a crime, or stolen from a home, but >>>>> after a couple of armory breakins where boxes of AG3s got stolen, they >>>>> (Laber party government at the time) used that as a pretext to withdraw >>>>> all those guns.

    The Swiss still have all their full auto/military guns, they just keep >>>>> strict control of the ammunition: You bring your empty gun to the range >>>>> and get your allotment, any unspent rounds have to be returned before >>>>> you leave.

    The same is true in the US military; there is a process of
    "lining out" (at least, that's what we called it in the Marine
    Corps; I can't speak to other services, though I assume the Navy
    is similar) whereby you are physically searched and patted down
    to ensure that you're not holding any rounds, intentional or
    otherwise.

    If you want trustworthy military personell, you need to trust them.

    I can't imagine that any other professional military does it
    much differently than I described.


    Maybe Terje can comment here, since he actually knows how it is done (or
    was done) in Norway.

    This isn't about trust so much as accountability; the two are of
    course related, but different. In particular, it's about
    building a warrior culture that emphasizes safety and respect
    for the inherent danger of weapons and puts inculcates practices
    designed to emphasize and reinforce those traits. Ammunition is
    inherently dangerous; it should be treated as such. The
    expectation is that service members treat it with respect and
    the attention that it inherently deserves. You build that by
    enforcing accountability and then pushing that down through the
    ranks to the lowest levels: a junior Marine is lined out by
    their fireteam leader; the team leaders by their squad leader;
    the squad leaders by the Platoon Sergeant, and so on. Junior
    Marines see that this is taken seriously and so learn to take it
    seriously.

    In other words, you build trust that you just described by
    emphasizing safety practices, and validate they are followed by
    rigorous inspection, thoughout the mundate and ordinary aspects
    of training. Hence lineouts, weapons inspections, and "clearing
    barrels" that are all designed to habituate safe(r) weapons
    handling practices.


    It still all sounds a bit lacking in trust to me, and not giving the responsibility in the right way. Having a pat-down is telling the
    soldier that you do not believe he/she is responsible enough to be
    around ammunition - you are saying that you think they are either
    dishonest and actively taking ammunition, or thoughtless and
    irresponsible enough to do so by accident. And you are telling them
    that /they/ don't have to worry about safety - you'll take care of it
    for them.

    On the other hand, telling them to check all their pockets before
    leaving is encouraging a checklist mentality - teaching them to do this
    as a specific automatic task every time they leave the range, without exception. It's the same as other gun-safety checks, like confirming
    the safety on a gun you are handed even if you have just watched the
    other person do the same check.

    Note that this is one of the things I find so troubling about
    the "2A" gun culture in the United States. It fetishizes
    weapons and deemphasiizes safety practices so that its adherents
    can be "ready" at all times (for what?). These people aren't
    just deluded about the relative risks of owning and carrying
    weapons, they're actively dangerous because they have no idea
    what they are doing.


    Agreed.

    As
    a teenager in the UK, I was in the "cadets" at school - once a week we'd
    have a few hours in military uniforms, learning marching, gun safety,
    and a bit of fun stuff like camouflage, abseiling, and stuff. It also
    included shooting at a barracks gun range - serious sized rounds with
    long outdated rifles. We were just fifteen year-old "toy soldiers", and
    we were /asked/ to check our pockets for extra rounds or empty casings.

    That's disturbing.

    Sounds like the people who ran your "cadets" program did you a
    disservice by failing to emphasize proper weapons and ammo
    handling practices.


    I disagree entirely. I think it /does/ emphasise the safety - and it emphasises that each person is personally responsible for the safety,
    not just the trainers (who were real soldiers).

    Having worked with actual British forces in Afghanistan, I know
    that they take weapons safety as seriously as we do. Perhaps
    don't extrapolate from that to what an actual military does.


    Taking weapons safety just as seriously does not mean doing things in
    exactly the same way.

    But I don't have any related experience to say how things are actually done.



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Thu Apr 16 16:31:46 2026
    From Newsgroup: comp.arch

    In article <10rqrkf$1nbrp$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 16/04/2026 13:59, Dan Cross wrote:
    In article <10rqag7$1in0h$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    [snip]
    (The service members have all their other equipment at
    home too - they store their own uniforms and other stuff, and are
    responsible for washing and repairs or ordering replacements after the
    exercises.)

    The same is true in the US military. I always found it annoying
    that I had to make space for my issued equipment at home, but
    c'est la vie.

    Personally, I have no military experience at all (not counting school >cadets). But one of my sons joined the National Guard after his
    military service. He has a neat solution to problem of space for his >equipment - he keeps it in his old bedroom in our house, not in his own
    flat :-)

    Seems like your son should take his obligations a bit more
    seriously: keeping his equipment at your house, when it's
    supposed to be in his dwelling, sounds like a rules violation.

    What's good for the goose is good for the gander.

    It also means that there are less guns stored in
    concentrated places as potential targets for robberies. And in the
    event of a real invasion, it's a lot easier to smugle around and
    distribute firing pins to service members than to pass around guns from
    a central armoury.

    There are tradeoffs, however: it is also easier for a bad actor
    to source a weapon by breaking into a private home.

    It is plausible, but AFAIK it is extremely rare here. The solid
    majority of criminals here don't want guns, and would probably not take
    one if they found one in a house they were robbing. As a house burglar,
    you can't easily sell a gun, you don't need one for defence, you don't
    need one to threaten anyone - it just increases your chance of being
    shot yourself, and increases your punishment if you get got. There are
    guns in the more serious narcotics gangs, but those are handguns - they
    have no use for military weapons.

    FWIW, handguns are military weapoons.

    My T/E weapons in Afghanistan were a 9mm handgun and an M4
    carbine. I was embedded with an Afghan Army Unit, and was armed
    pretty much at all time. This was at a time when we knew there
    were Taliban infiltrators in the army. Indeed, I mentioned
    working with UK forces: such an infiltrator threw a hand grenade
    into a tent full of British soldiers, who were sleeping at the
    time (this was in the middle of the night) and sprayed it with
    fire from an AK-47, killing three and wounding several more.
    That is to say, we were at a relatively low, but constant and
    higher than baseline level of risk that most ISAF troops were
    not subject to. Despite that, and despite being directly and
    indirectly threatened myself on multiple occasions, I only
    carried my pistol unless I was outside the wire.

    We also don't really go in for shoot-to-kill in Norway.

    Note that I'm talking about the use of deadly force to prevent a
    bad actor from forcibly taking military-grade arms. That is
    exactly the sort of thing that deadly force arguably _should_ be
    authorized for.

    There is a distinction (which I did not make, but should have) between >authorising deadly force, and encouraging it. As a last resort, it
    makes sense in situations like this. But it should be very much the
    last resort. Real-life criminals are not like in the movies - if
    military guards point guns at them, they will put their hands in the air
    and no one needs to be shot. (It's a different matter for criminals
    high on drugs and unable to think rationally, but they don't try to raid >military armouries.)

    Of course there, is a continuum of force, and despite recent
    idiots in charge of the US military asserting otherwise, the
    rules of engagement and the laws of warfare are taken _very_
    seriously.

    But the military are not the police. Full stop. If someone is
    trying to attack a military armory with the intention of seizing
    arms, they're not likely to be some petty criminal, but if they
    obviously are, they will likely be subdued uninjured. The point
    of mentioning that deadly force is authorized when protecting
    those kinds of assets is to point out the relative value of the
    assets themselves. To whit: weapons are dangerous, and in the
    wrong hands, even more dangerous. They can, and should, be
    protected.

    Btw: as a veteran, one of the things that _really_ bothers me in
    the US is when the police, in particular, refer to members of
    the general public as "civilians". Words have meaning;
    "civilian" refers to someone who is not a member of a military.
    The police are are definitionally civilians.

    If shots need to be fired, the primary aim should
    be to persuade the bad guys to surrender, not to kill them.

    Is it better if the enemy surrenders? Sure. But this idea that
    you are going to shoot to wound in a combat scenario is not
    realistic. As you said, it's not like in the movies.

    But more broadly, from a military perspective, this doesn't make
    a lot of sense to me, because it ignores the human factors at
    play in the fog of war.

    Due to the sympathetic physiological reaction to stress, one
    tends to lose one's fine motor skills in a combat-type situation
    and it can be difficult to remember even the most basic bodily
    functions: lose of urinary and sphincter control are common,
    for example (hence the expression, "scared shitless"). Moreover
    long experience in human history shows that it is impossible to
    know a priori how one will react: some people are ridiculously
    calm in combat, others are not.

    While I have (as I said) no military experience, I have a fair bit of >martial art experience - and what you describe is entirely correct.

    Martial arts are art forms, like dance, not combat training.
    I really wish people who study them would internalize that. You
    get one good punch on the street; you are not experts on actual
    warfare, lethal or otherwise. You should take care not to
    extrapolate your study of an art form to things you have no
    direct experince of.

    That is why training is vital - lots of training, simulating real
    conditions as accurately as possible. You never get 100% simulation, of >course.

    And you train for different tasks. Guards should /not/ be trained to
    shoot to kill as a priority - they should be trained for identification
    of the threat, de-escalation, and containing and controlling the
    situation. The gun is primarily a threat - firing it at all is way down >your list of tactics. A successful outcome is capturing the intruders, >preferably uninjured - killing them is a failure (though not the worst >failure outcome). After all, most people the guard encounters will not
    be trying to kill them or infiltrate a building. Other types of assault >groups /will/ be trained for killing or disabling enemies as fast as >possible, keeping the element of surprise - but that's a different job.

    As I mentioned above, there _is_ a continuum of force.

    What you wrote is not, generally, applicable to combat.

    With respect to guarding military assets, it fails to take into
    the relative value of the assets being unprotected. There is a
    qualitative difference between someone attacking an armory, with
    the intent to seize arms, and someone boosting a tube of
    toothpaste from the corner store. In the former, deadly force
    (I thought it should have gone without saying, but I suppose it
    must be said explicitly) as a matter of last resort is fully
    appropriate; in the latter, it most definitely is not.

    For that reason, most people are taught to shoot center-of-mass;
    I was in the military when we still used iron sights out to 500
    yards (roughly 500 meters). It's one thing to accurately shoot
    at that distance when you're on a known-distance range on a
    relatively calm day. It's an entirely different matter when
    someone is shooting back at you. Anyone who thinks, "I'll just
    shoot to wound them!" is deluding themselves.

    You don't shoot to wound at 500 yards. At that distance, you are either
    a sniper, or shooting to scare the enemy.

    Actually, Marines are trained to accurately engage the enemy out
    to those distances. With the RCO, its not even that hard.
    Maybe soldiers from the US Army could even do it.

    But I only mentioned the distance to illustrate that there _is_
    a difference between practice and reality, but fixating on the
    distance is picking the wrong detail: call it 25 yards, if you
    like. The point is that it should be relatively easy to use a
    rifle to shoot someone in (say) the shoulder; hitting an aim
    point for a qualified marksman at that distance is not a
    significant challenge. Doing so under the stress of combat is.
    Hence, aim center of mass and shoot to kill.

    There's no point in trying to
    aim through sights unless you have the time to do so without the risk of >being killed in the process.

    What an odd thing to say, but as you mentioned, you have no
    direct experience here.

    [snip]
    Oh, and you have to clean it before turning it back in, too, and
    you have to do so to the satisfaction of a Marine Corps armoror
    (well, you do if you're a Marine). That said, a little birdie
    once told me that if you do a first pass and put a $20 bill in
    the breach of the weapon when you turn it back in, they will do
    it for you. But I wouldn't know anything about that.

    We don't really go in for bribery either in Norway - at least, not at
    that level. (In fact, not much at any level - we are not perfect, but
    are one of the least corrupt countries.)

    Lol, that's not bribery.

    You are giving someone cash in hand, outside the regulations, to
    overlook your failure to do your job.

    What an insultingly ignorant way to look at it, and posted so
    smugly, to boot.

    "Failure to do your job"? My job in the military consisted of
    two parts: 1) completing my mission, and 2) taking care of my
    Marines. The reality is that, especially as one picks up rank,
    the demands on one's time go up. Knowing how to clean one's
    weapon is an essential skill, but if doing so detracts from
    either mission accomplishment or troop welfare, ie, if one did
    not complete some other, higher priority task (planning the next
    training evolution, or talking to one of your Marines who's son
    is in the hospital, to let him know his leadership was there
    for him and would support him, or meeting with the Battalion
    Commander to brief them on a unit's readiness and training
    progress) because one is sitting there scrubbing the bolt of a
    weapon after a range day, then that person is neglecting their
    actual duty in favor of something that could be done better by
    someone else.

    Equating that to bribery is ridiculous. Doubling down on that
    when corrected is willful ignorance.

    Doesn't that count as bribery?

    No. You're paying someone to perform a service.

    It is very different from having an official policy of fining people for
    not cleaning their weapons, or providing cleaning as a paid service.

    It's literally a paid service. Informal? Yes. Out of
    regulations? No, not really; I'm unaware of any regulation
    barring someone from paying someone else to clean their rifle.
    If they armoror can't do it because they're busy? They'll let
    you know.

    Zero such guns were ever used in a crime, or stolen from a home, but >>>>>> after a couple of armory breakins where boxes of AG3s got stolen, they >>>>>> (Laber party government at the time) used that as a pretext to withdraw >>>>>> all those guns.

    The Swiss still have all their full auto/military guns, they just keep >>>>>> strict control of the ammunition: You bring your empty gun to the range >>>>>> and get your allotment, any unspent rounds have to be returned before >>>>>> you leave.

    The same is true in the US military; there is a process of
    "lining out" (at least, that's what we called it in the Marine
    Corps; I can't speak to other services, though I assume the Navy
    is similar) whereby you are physically searched and patted down
    to ensure that you're not holding any rounds, intentional or
    otherwise.

    If you want trustworthy military personell, you need to trust them.

    I can't imagine that any other professional military does it
    much differently than I described.

    Maybe Terje can comment here, since he actually knows how it is done (or
    was done) in Norway.

    This isn't about trust so much as accountability; the two are of
    course related, but different. In particular, it's about
    building a warrior culture that emphasizes safety and respect
    for the inherent danger of weapons and puts inculcates practices
    designed to emphasize and reinforce those traits. Ammunition is
    inherently dangerous; it should be treated as such. The
    expectation is that service members treat it with respect and
    the attention that it inherently deserves. You build that by
    enforcing accountability and then pushing that down through the
    ranks to the lowest levels: a junior Marine is lined out by
    their fireteam leader; the team leaders by their squad leader;
    the squad leaders by the Platoon Sergeant, and so on. Junior
    Marines see that this is taken seriously and so learn to take it
    seriously.

    In other words, you build trust that you just described by
    emphasizing safety practices, and validate they are followed by
    rigorous inspection, thoughout the mundate and ordinary aspects
    of training. Hence lineouts, weapons inspections, and "clearing
    barrels" that are all designed to habituate safe(r) weapons
    handling practices.

    It still all sounds a bit lacking in trust to me, and not giving the >responsibility in the right way. Having a pat-down is telling the
    soldier that you do not believe he/she is responsible enough to be
    around ammunition - you are saying that you think they are either
    dishonest and actively taking ammunition, or thoughtless and
    irresponsible enough to do so by accident. And you are telling them
    that /they/ don't have to worry about safety - you'll take care of it
    for them.

    You can choose to look at it that way, having no actual
    experience yourself.

    Or you can listen to someone who's actually done it and who is
    telling you that the intent (which yes, is explained to the
    troops) is to demonstrate that we take all of this _very_
    seriously, that human falibility means that people can and do
    make mistakes, and that we build processes and procedures to try
    and mitigate or avoid those mistakes.

    Long experience has shown that mutual inspections are better
    than relying on self-affirmation.

    Here's a trivial example: you ask someone to "check their
    pockets", but what if the round is in the bottom of their dump
    pouch? What if they are wearing a coat, and the person in the
    shooting lane next to them ejected a double-fed round that
    landed in their hood? They may not even know, and it might
    never have occurred to them to check.

    The lesson most take away is not, "I don't trust you." It's,
    "even though I trust you, this is serious enough that we need a
    second set of eyes on it."

    Back in the computing domain, would you look at something like a
    code review as indicating a lack of trust?

    On the other hand, telling them to check all their pockets before
    leaving is encouraging a checklist mentality - teaching them to do this
    as a specific automatic task every time they leave the range, without >exception. It's the same as other gun-safety checks, like confirming
    the safety on a gun you are handed even if you have just watched the
    other person do the same check.

    Actually, I'd argue that what you're saying is that the other
    person checking that the weapon is safe is "good enough" and by
    re-checking the weapon yourself, you're telling them that you
    don't trust them, they don't have to do it correctly because you
    are going to do it for them anyway, and that they don't have to
    bother learning to do it themselves.

    Or you rely on two-person integrity to do cut down on mistakes.
    Line-outs are really no different.

    You can also "ask" them, "do you have all of your gear for the
    upcoming mission?" to which they can rely, "yes" and you can
    believe them. Or you can inculcate a culture of buddy checks
    and inspections to make sure everyone is good to go.

    Note that this is one of the things I find so troubling about
    the "2A" gun culture in the United States. It fetishizes
    weapons and deemphasiizes safety practices so that its adherents
    can be "ready" at all times (for what?). These people aren't
    just deluded about the relative risks of owning and carrying
    weapons, they're actively dangerous because they have no idea
    what they are doing.

    Agreed.

    As
    a teenager in the UK, I was in the "cadets" at school - once a week we'd >>> have a few hours in military uniforms, learning marching, gun safety,
    and a bit of fun stuff like camouflage, abseiling, and stuff. It also
    included shooting at a barracks gun range - serious sized rounds with
    long outdated rifles. We were just fifteen year-old "toy soldiers", and >>> we were /asked/ to check our pockets for extra rounds or empty casings.

    That's disturbing.

    Sounds like the people who ran your "cadets" program did you a
    disservice by failing to emphasize proper weapons and ammo
    handling practices.

    I disagree entirely. I think it /does/ emphasise the safety - and it >emphasises that each person is personally responsible for the safety,
    not just the trainers (who were real soldiers).

    It ignores human fallibility. "Personal responsibility" is
    great, but people make mistakes. What systems do you put in
    place to guard against that?

    As I said, you can choose, despite your own admission to having
    no actual experience in the matter, to interpret the system that
    we use as you have. What you cannot reasonably do is assert
    that as fact.

    Having worked with actual British forces in Afghanistan, I know
    that they take weapons safety as seriously as we do. Perhaps
    don't extrapolate from that to what an actual military does.

    Taking weapons safety just as seriously does not mean doing things in >exactly the same way.

    But I don't have any related experience to say how things are actually done.

    Yes, so again, perhaps don't extrapolate. In fact, looking at
    the British MOD publication JSP 403 (Handbook of Defence Land
    Ranges Safety) it seems that the UK has an almost exact analogue
    of what I know as a "line out", covered in Infantry Training
    pamphlet No 21.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Thu Apr 16 17:27:21 2026
    From Newsgroup: comp.arch


    scott@slp53.sl.home (Scott Lurndal) posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> writes:

    scott@slp53.sl.home (Scott Lurndal) posted:

    David Brown <david.brown@hesbynett.no> writes:
    On 15/04/2026 13:30, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    <snip>

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    They're also extremely expensive to use and maintain. at $2.00 or
    more _per round_, the cost rises rapidly.

    I reload 308W for $0.36 and 223 for $0.23 with match grade components. >{But, then again, I bought my components a long time ago}

    How long does it take you to reload 500 rounds?

    If you don't count tumbling the dirty cases overnight: 3.5-4 hours.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Thu Apr 16 17:31:16 2026
    From Newsgroup: comp.arch


    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> posted:

    On 4/15/2026 1:00 PM, David Brown wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the >>>> tax stamp cost, and wait through Sheriff interviews, and wait the ~18 >>>> months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that
    this is perfectly normal:

    Every single home guard (think National Guard) member and every
    reserve office, from NCOs up to general, had their AG3 (HK G3) in 7.62
    NATO, with at least 150 rounds of ammo, at home. This was somewhere
    around 300 000 guns in a country of less than 5M people, so one in
    every three or four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.


    These are not civilian guns.  No one considers their National Guard gun as "their" gun - they have it for use in National Guard exercises or call-outs.  The gun are always stored safely - kids can't show off Dad's gun to their friends and accidentally kill them.

    Right! Hey look at this. Self dead, and friends dead/injured. Actually,
    I was at a friend of a friends house. A big house in Discovery Bay California. His parent was gone, Dad divorced... He pulled out a big revolver, might have been a 45 caliber. Holes galore. said he was able
    to find it from his Dad. I instantly asked him to show it to me. I
    looked and found that there were two rounds of ammo in the chamber. God,

    You can tell if a person with a gun knows about gun safety as he first
    touches the gun, he checks to see if it is unloaded and if not unloads
    it prior to letting anyone else touch it.

    I could have died that day! I said all guns are loaded, that's the mindset... He said he thought it was empty. Oh my!

    I was a kiddo at the time. But, my Dad made me take hunters safety
    courses. I got A's! I will never forget how to proper cross a fence with
    a gun.




    And the members of the
    National Guard are already vetted for being sensible, intelligent,
    honest and reliable people.  (No such vetting is perfect, but it's
    pretty good.)

    Zero such guns were ever used in a crime, or stolen from a home, but
    after a couple of armory breakins where boxes of AG3s got stolen, they
    (Laber party government at the time) used that as a pretext to
    withdraw all those guns.

    The Swiss still have all their full auto/military guns, they just keep
    strict control of the ammunition: You bring your empty gun to the
    range and get your allotment, any unspent rounds have to be returned
    before you leave.

    Terje



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Thu Apr 16 19:36:16 2026
    From Newsgroup: comp.arch

    David Brown wrote:
    On 16/04/2026 13:59, Dan Cross wrote:
    In article <10rqag7$1in0h$1@dont-email.me>,
    David Brown  <david.brown@hesbynett.no> wrote:
    On 15/04/2026 22:35, Dan Cross wrote:
    In article <10roqpe$16j1j$2@dont-email.me>,
    The same is true in the US military; there is a process of
    "lining out" (at least, that's what we called it in the Marine
    Corps; I can't speak to other services, though I assume the Navy
    is similar) whereby you are physically searched and patted down
    to ensure that you're not holding any rounds, intentional or
    otherwise.

    If you want trustworthy military personell, you need to trust them.

    I can't imagine that any other professional military does it
    much differently than I described.


    Maybe Terje can comment here, since he actually knows how it is done (or
    was done) in Norway.
    I have _never_ seen an actual pat-down looking for spare rounds in the
    50 years since I started basic (Oct 1976), then went on to NCO&officer training. By the time I spent a year in Utah (1991-92) I had to apply
    for permission to leave the country for that period. I also had to turn
    in my AG3 serial 196296 which was quite sad since that particular weapon was very accurate.
    Yes, we inspect gun barrels and magazines after every shooting session.
    For pistol shooting we'll typically hold any spare rounds in the same
    hand as the empty magazines: When doing 10 shots rapid fire 9mm, on
    turning targets that are only visible for 10 seconds, and you have to do a magazine swap in the middle, then it is _very_ easy to end up with
    some unfired rounds. :-(
    Those that train seriously for more advanced tactical shooting levels
    tend to use a lot of ammo every month, typically costing us 2 NOK (.20$) per round for 9mm.
    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Thu Apr 16 17:37:00 2026
    From Newsgroup: comp.arch

    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <10rqrkf$1nbrp$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 16/04/2026 13:59, Dan Cross wrote:

    <snip>


    You don't shoot to wound at 500 yards. At that distance, you are either
    a sniper, or shooting to scare the enemy.

    Actually, Marines are trained to accurately engage the enemy out
    to those distances. With the RCO, its not even that hard.
    Maybe soldiers from the US Army could even do it.

    My nephew is in the Corps. He's on the flight line as
    an ordy[*], but still has qualified as expert marksman for the
    last four years running.

    [*] recently transferred to the CH-53E fleet due to the imminent
    retirement of the F-16C fleet.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Thu Apr 16 17:39:53 2026
    From Newsgroup: comp.arch


    Thomas Koenig <tkoenig@netcologne.de> posted:

    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:
    On 4/15/2026 1:28 PM, Thomas Koenig wrote:
    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:

    Say target on single fire mode. Missed! Turn to auto and give a burst. >>> Or don't for what about 3 round burst? They are moving now. No single
    sniper mode. A suppress fully auto can make the target think there might >>> be more than one person out there. Reminds me of the following scene:

    Firing suppressive fire in full auto is not what assault guns are for.
    That's what real machine guns are for.

    Tu. But, they can scare the shit out of the target. They know round are going down range toward them. Therefore, they are in peril? But, the
    ammo issue, ugg.

    I first used the G3 at the Bundeswehr. 600 rounds per minute, 20
    rounds per magazine. Firing that weapon at full auto will empty
    it in a tid less than two seconds (note fencepost error here :-)

    Firing short bursts or single shots will keep any enemy down for
    a far longer time than that.

    But a squad at the time had a MG3 (1200 rounds per minute) with it.
    But firing that continously is also not a good idea because

    a) ammunition: 24 grams per round means that you run through 0.48
    kg (a bit more than a pound :-) per second of ammunition, which
    somebody has to carry

    b) you have to exchange barrels and locks after a certain number
    of rounds to prevent overheating.

    Where the military definition of overheating is: "The bullets no longer
    go anywhere close to where the barrel is pointing".

    5 rounds at 20 second intervals is enough to heat a sniper barrel
    to the point it is not "accurate enough". Now, imaging those 5
    rounds in 0.5 seconds ...
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Thu Apr 16 19:46:53 2026
    From Newsgroup: comp.arch

    MitchAlsup wrote:

    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> posted:

    On 4/15/2026 1:00 PM, David Brown wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay the >>>>>> tax stamp cost, and wait through Sheriff interviews, and wait the ~18 >>>>>> months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in
    any crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that
    this is perfectly normal:

    Every single home guard (think National Guard) member and every
    reserve office, from NCOs up to general, had their AG3 (HK G3) in 7.62 >>>> NATO, with at least 150 rounds of ammo, at home. This was somewhere
    around 300 000 guns in a country of less than 5M people, so one in
    every three or four households.

    The only security requirement was that you had to take out the firing
    pin and store it apart from the gun.


    These are not civilian guns.  No one considers their National Guard gun >>> as "their" gun - they have it for use in National Guard exercises or
    call-outs.  The gun are always stored safely - kids can't show off Dad's >>> gun to their friends and accidentally kill them.

    Right! Hey look at this. Self dead, and friends dead/injured. Actually,
    I was at a friend of a friends house. A big house in Discovery Bay
    California. His parent was gone, Dad divorced... He pulled out a big
    revolver, might have been a 45 caliber. Holes galore. said he was able>> to find it from his Dad. I instantly asked him to show it to me. I
    looked and found that there were two rounds of ammo in the chamber. God,

    You can tell if a person with a gun knows about gun safety as he first touches the gun, he checks to see if it is unloaded and if not unloads
    it prior to letting anyone else touch it.
    That's the first and most obvious tell.
    Even if I've watched my brother-in-law empty, check, dry fire away from everyone, his pistol before he hands it to me, I'll still do the same
    checks myself.
    The other and slightly more subtle one is trigger finger placement: If
    it is anywhere inside the trigger guard before the range officer have
    given the ready to fire command, then stop them at once.
    (I have done this once or twice during these 50 years, each time I got a proper dressing down so I would remember it.)
    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Thu Apr 16 18:06:27 2026
    From Newsgroup: comp.arch

    In article <079ER.43148$7WA4.42916@fx48.iad>,
    Scott Lurndal <slp53@pacbell.net> wrote:
    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <10rqrkf$1nbrp$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 16/04/2026 13:59, Dan Cross wrote:

    <snip>


    You don't shoot to wound at 500 yards. At that distance, you are either >>>a sniper, or shooting to scare the enemy.

    Actually, Marines are trained to accurately engage the enemy out
    to those distances. With the RCO, its not even that hard.
    Maybe soldiers from the US Army could even do it.

    My nephew is in the Corps. He's on the flight line as
    an ordy[*], but still has qualified as expert marksman for the
    last four years running.

    That's a dangerous job.

    But yeah, "Every Marine a Rifleman First". Though if you talk
    to people in the 03 (USMC infantry) community, they'll say that
    is nonsense. As a career communicator, I tend to agree: the
    Marine Corps has a definition of a rifleman, and that's an 0311.
    If a Marine is not trained to that standard, they cannot really
    call themselves a rifleman.

    What I ultimately came out interpreting the "every Marine a
    rifleman first" to mean is that the Marine Corps keeps Marines
    trained to the extent that they can be folded into a grunt unit,
    and OJT'd to an operationally-capable level. Hence, annual
    marksmanship training, continuous training in hand-to-hand
    combat, regula4r organized physical training, etc. That is, we
    reserve the right to take any Marine and insert them into a line
    unit to serve as a rifleman, regardless of their primary MOS.

    [*] recently transferred to the CH-53E fleet due to the imminent
    retirement of the F-16C fleet.

    The Marine Corps doesn't fly the F-16. :-) Perhaps you mean
    the F/A-18 or the Harrier?

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Thu Apr 16 13:15:13 2026
    From Newsgroup: comp.arch

    On 4/15/2026 5:44 PM, Bill Findlay wrote:
    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in any >>>>> crimes. {Anyone with a brain would say this is a pretty good record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear
    warheads.

    Of course, much about the consequences of the Second Amendment indeed does >>> appear insane. The sensible thing to do would be to repeal it, rather than >>> pretend it doesn't exist, or it doesn't mean what it says, and hope the
    Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.


    ?...

    But, AFAIK, the UK is the place that went and banned:
    Sharp points on knives;
    Sharp points on scissors;
    Buying solder without having certifications;
    So, it is effectively sold black-market in small amounts,
    to the electronics hobbyists.
    ...
    And, where a person can be arrested, for stuff they say on social media
    (or "thought crime" as some are calling it);
    Where corporations can lead search-and-seizure operations for claimed IP violations;
    ...


    So, sorta like California but worse...

    California apparently banned the 60/40 lead/tin stuff IIRC, but still
    allows people to freely possess lead-free solder (so people apparently
    need to smuggle the 60/40 into CA if they want to use it). Everywhere
    else, 60/40 is OK. Well, and CA has the "age verification" controversy, etc.

    Could be wrong, this is from memory and stuff I heard on the internet.


    Then again, not like I can point too many fingers, the state I am living
    in has (effectively) banned legal access to adult websites and similar
    (so, it is like, one can light one up, but it is back to "the old days"
    of mostly needing to torrent these kind of videos, on the ISPs that also
    don't block the ability to download torrents, ...).


    But, technically, now using an ISP that is seemingly more open:
    Also now has IPv6 support, etc;
    Unlike old ISP that was IPv4 only and put the user inside multiple
    levels of NAT (and had annoying an level of traffic filtering, outgoing connections only and seemingly only on whitelisted port ranges);
    ...



    But, anyways, this whole sub-thread wasn't really the intended result.




    In other news, I found a compiler bug (ABI related) that was causing XG3
    to have worse code density than XG2.

    Some of the ABI code for dealing with prologs/epilogs hadn't been
    updated and wasn't correctly dealing with the RISC-V ABI; so was
    generating functions with bigger prologs/epilogs than necessary (it was "failing safely", but still trying to apply rules related to the XG1/XG2
    ABI to the RISC-V ABI in a way that caused more instructions to be
    emitted; it basically having incorrect register masks and dealing with
    it by often taking "just save/restore everything" approach whenever the
    RV function tried to preserve a register number that had been a scratch register in XG1/XG2, which was fairly common).

    Well, to keep it short, it was basically emitting instructions for saving/restoring a lot more registers than needed whenever an edge case
    was triggered (trying to save a register which was callee-save in RV/XG3
    but scratch in XG1/XG2).

    The scenario being "not ideal" for either binary size or performance.

    ...


    After fixing this bug (well, and re-enabling the ADDU.L 2RI
    instructions), XG3 now beats XG2, so updated code-density ranking now
    (best to worse, Doom .text size):
    XG1 (279K)
    RV64GC+JX (286K)
    XG3 (289K)
    XG2 (293K)
    RV64G+JX (323K)
    ...

    Can note that for an XG3 build of Heretic, it is 267K, where currently
    Heretic is giving smaller binaries, but also has less
    random/experimental stuff. Seems for Heretic, the XG3 build is now
    currently smaller than XG1 (267K vs 280K), currently in the top place
    for smallest binary among the current target-set.

    Note: All builds here using a static-linked C library.


    Bugfix seemed to shave off roughly 30K of prolog/epilog code in the RV
    ABI based cases.


    Errm, nevermind if for both Doom and Heretic I did go and glue on random
    stuff like support for 3D glasses and similar. Not yet ported the logic
    to Hexen, but this is probably a bit of a gimmick anyways.

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Thu Apr 16 18:39:09 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> writes:



    You can tell if a person with a gun knows about gun safety as he first >touches the gun, he checks to see if it is unloaded and if not unloads
    it prior to letting anyone else touch it.

    While true, if someone tried to hand me a bolt-action rifle with
    the bolt in place, I'd refuse. Likewise any magazine fed
    weapon should not have a magazine installed and the action should
    be open, if possible before handed to anyone.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Thu Apr 16 18:52:29 2026
    From Newsgroup: comp.arch

    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <079ER.43148$7WA4.42916@fx48.iad>,
    Scott Lurndal <slp53@pacbell.net> wrote:
    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <10rqrkf$1nbrp$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 16/04/2026 13:59, Dan Cross wrote:

    <snip>


    You don't shoot to wound at 500 yards. At that distance, you are either >>>>a sniper, or shooting to scare the enemy.

    Actually, Marines are trained to accurately engage the enemy out
    to those distances. With the RCO, its not even that hard.
    Maybe soldiers from the US Army could even do it.

    My nephew is in the Corps. He's on the flight line as
    an ordy[*], but still has qualified as expert marksman for the
    last four years running.

    That's a dangerous job.

    But yeah, "Every Marine a Rifleman First". Though if you talk
    to people in the 03 (USMC infantry) community, they'll say that
    is nonsense. As a career communicator, I tend to agree: the
    Marine Corps has a definition of a rifleman, and that's an 0311.
    If a Marine is not trained to that standard, they cannot really
    call themselves a rifleman.

    What I ultimately came out interpreting the "every Marine a
    rifleman first" to mean is that the Marine Corps keeps Marines
    trained to the extent that they can be folded into a grunt unit,
    and OJT'd to an operationally-capable level. Hence, annual
    marksmanship training, continuous training in hand-to-hand
    combat, regula4r organized physical training, etc. That is, we
    reserve the right to take any Marine and insert them into a line
    unit to serve as a rifleman, regardless of their primary MOS.

    [*] recently transferred to the CH-53E fleet due to the imminent
    retirement of the F-16C fleet.

    The Marine Corps doesn't fly the F-16. :-) Perhaps you mean
    the F/A-18 or the Harrier?

    Brain fart. His squadron flys the F/A-18C and D models. The
    E's and F's will remain in the active fleet along with the F-35,
    but the final days of the C and D models are in sight.

    I got to visit the flight line in 2024, very interesting.

    Prior visit to a Marine base was at 29 Palms in the 1980s, visiting
    a cousin. He was living on-base in married housing and told
    me to avoid the well-lit compound several miles east of the housing area, which was secured and managed by the NOP.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From cross@cross@spitfire.i.gajendra.net (Dan Cross) to comp.arch on Thu Apr 16 20:09:14 2026
    From Newsgroup: comp.arch

    In article <NdaER.1511$r_k6.609@fx38.iad>,
    Scott Lurndal <slp53@pacbell.net> wrote:
    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <079ER.43148$7WA4.42916@fx48.iad>,
    Scott Lurndal <slp53@pacbell.net> wrote:
    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <10rqrkf$1nbrp$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 16/04/2026 13:59, Dan Cross wrote:

    <snip>


    You don't shoot to wound at 500 yards. At that distance, you are either >>>>>a sniper, or shooting to scare the enemy.

    Actually, Marines are trained to accurately engage the enemy out
    to those distances. With the RCO, its not even that hard.
    Maybe soldiers from the US Army could even do it.

    My nephew is in the Corps. He's on the flight line as
    an ordy[*], but still has qualified as expert marksman for the
    last four years running.

    That's a dangerous job.

    But yeah, "Every Marine a Rifleman First". Though if you talk
    to people in the 03 (USMC infantry) community, they'll say that
    is nonsense. As a career communicator, I tend to agree: the
    Marine Corps has a definition of a rifleman, and that's an 0311.
    If a Marine is not trained to that standard, they cannot really
    call themselves a rifleman.

    What I ultimately came out interpreting the "every Marine a
    rifleman first" to mean is that the Marine Corps keeps Marines
    trained to the extent that they can be folded into a grunt unit,
    and OJT'd to an operationally-capable level. Hence, annual
    marksmanship training, continuous training in hand-to-hand
    combat, regula4r organized physical training, etc. That is, we
    reserve the right to take any Marine and insert them into a line
    unit to serve as a rifleman, regardless of their primary MOS.

    [*] recently transferred to the CH-53E fleet due to the imminent >>>retirement of the F-16C fleet.

    The Marine Corps doesn't fly the F-16. :-) Perhaps you mean
    the F/A-18 or the Harrier?

    Brain fart. His squadron flys the F/A-18C and D models. The
    E's and F's will remain in the active fleet along with the F-35,
    but the final days of the C and D models are in sight.

    No problem; I can see wanting to switch over to helos from fixed
    wing. It's a different world.

    I got to visit the flight line in 2024, very interesting.

    Cool.

    Prior visit to a Marine base was at 29 Palms in the 1980s, visiting
    a cousin. He was living on-base in married housing and told
    me to avoid the well-lit compound several miles east of the housing area, which
    was secured and managed by the NOP.

    Ah, the stumps. I remember the first time I got there, stepping
    off a bus (we'd just flown from NC, having completed post Parris
    Island training at Camp Lejeune) and immediately seeing tumble
    weed blowing down the main drag. "Oh my god; I have to stay
    here for a YEAR?!" (This was before I became an officer.)

    I wonder which part your cousin meant; perhaps Camp Wilson,
    which is an active training area (and pretty much nothing else,
    though there is a very small PX there selling pogey bait).
    Other than that, there are a number of areas on the base that
    are just fundamentally dangerous, such as the artillery ranges:
    even if not in active use, there could be unexploded ordnance in
    the impact area. Most of the rest of the base is pretty boring.

    - Dan C.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Thu Apr 16 13:19:26 2026
    From Newsgroup: comp.arch

    On 4/16/2026 10:39 AM, MitchAlsup wrote:

    Thomas Koenig <tkoenig@netcologne.de> posted:

    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:
    On 4/15/2026 1:28 PM, Thomas Koenig wrote:
    Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:

    Say target on single fire mode. Missed! Turn to auto and give a burst. >>>>> Or don't for what about 3 round burst? They are moving now. No single >>>>> sniper mode. A suppress fully auto can make the target think there might >>>>> be more than one person out there. Reminds me of the following scene: >>>>
    Firing suppressive fire in full auto is not what assault guns are for. >>>> That's what real machine guns are for.

    Tu. But, they can scare the shit out of the target. They know round are
    going down range toward them. Therefore, they are in peril? But, the
    ammo issue, ugg.

    I first used the G3 at the Bundeswehr. 600 rounds per minute, 20
    rounds per magazine. Firing that weapon at full auto will empty
    it in a tid less than two seconds (note fencepost error here :-)

    Firing short bursts or single shots will keep any enemy down for
    a far longer time than that.

    But a squad at the time had a MG3 (1200 rounds per minute) with it.
    But firing that continously is also not a good idea because

    a) ammunition: 24 grams per round means that you run through 0.48
    kg (a bit more than a pound :-) per second of ammunition, which
    somebody has to carry

    b) you have to exchange barrels and locks after a certain number
    of rounds to prevent overheating.

    Where the military definition of overheating is: "The bullets no longer
    go anywhere close to where the barrel is pointing".

    Indeed.

    did you ever happen to play a game called Mech Warrior? If you
    overheated too much, well, one way ticket to the afterlife... ;^)

    Fire all weapons at once! Ummmm....



    5 rounds at 20 second intervals is enough to heat a sniper barrel
    to the point it is not "accurate enough". Now, imaging those 5
    rounds in 0.5 seconds ...

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Thu Apr 16 13:26:45 2026
    From Newsgroup: comp.arch

    On 4/16/2026 10:46 AM, Terje Mathisen wrote:
    MitchAlsup wrote:

    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> posted:

    On 4/15/2026 1:00 PM, David Brown wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, pay >>>>>>> the
    tax stamp cost, and wait through Sheriff interviews, and wait the >>>>>>> ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s) >>>>>>> to present: only 2 properly registered FA guns have been used in >>>>>>> any crimes. {Anyone with a brain would say this is a pretty good >>>>>>> record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that
    this is perfectly normal:

    Every single home guard (think National Guard) member and every
    reserve office, from NCOs up to general, had their AG3 (HK G3) in 7.62 >>>>> NATO, with at least 150 rounds of ammo, at home. This was somewhere
    around 300 000 guns in a country of less than 5M people, so one in
    every three or four households.

    The only security requirement was that you had to take out the firing >>>>> pin and store it apart from the gun.


    These are not civilian guns.  No one considers their National Guard >>>> gun
    as "their" gun - they have it for use in National Guard exercises or
    call-outs.  The gun are always stored safely - kids can't show off >>>> Dad's
    gun to their friends and accidentally kill them.

    Right! Hey look at this. Self dead, and friends dead/injured. Actually,
    I was at a friend of a friends house. A big house in Discovery Bay
    California. His parent was gone, Dad divorced... He pulled out a big
    revolver, might have been a 45 caliber. Holes galore. said he was able
    to find it from his Dad. I instantly asked him to show it to me. I
    looked and found that there were two rounds of ammo in the chamber. God,

    You can tell if a person with a gun knows about gun safety as he first
    touches the gun, he checks to see if it is unloaded and if not unloads
    it prior to letting anyone else touch it.

    That's the first and most obvious tell.

    Even if I've watched my brother-in-law empty, check, dry fire away from everyone, his pistol before he hands it to me, I'll still do the same
    checks myself.

    The other and slightly more subtle one is trigger finger placement: If
    it is anywhere inside the trigger guard before the range officer have
    given the ready to fire command, then stop them at once.

    Absolutely. No reason to have a finger on the trigger unless you intend
    to open fire on something. Also, be sure to check the safety! Load a
    round, put the safety on, point down range, pull the trigger over and
    over again. It should not go off. Turn safety off, then it should fire.


    (I have done this once or twice during these 50 years, each time I got a proper dressing down so I would remember it.)

    Oh yeah!

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Thu Apr 16 13:34:01 2026
    From Newsgroup: comp.arch

    On 4/16/2026 1:26 PM, Chris M. Thomasson wrote:
    On 4/16/2026 10:46 AM, Terje Mathisen wrote:
    MitchAlsup wrote:

    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> posted:

    On 4/15/2026 1:00 PM, David Brown wrote:
    On 15/04/2026 21:33, Terje Mathisen wrote:
    moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    If you fill out the right forms, fill in the right paperwork, >>>>>>>> pay the
    tax stamp cost, and wait through Sheriff interviews, and wait >>>>>>>> the ~18
    months, you can legally own a fully automatic firearm.

    One should also note: in the history of this system (~late 1930s) >>>>>>>> to present: only 2 properly registered FA guns have been used in >>>>>>>> any crimes. {Anyone with a brain would say this is a pretty good >>>>>>>> record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Anyone from (current) Switzerland or pre-1992 Norway would say that >>>>>> this is perfectly normal:

    Every single home guard (think National Guard) member and every
    reserve office, from NCOs up to general, had their AG3 (HK G3) in >>>>>> 7.62
    NATO, with at least 150 rounds of ammo, at home. This was somewhere >>>>>> around 300 000 guns in a country of less than 5M people, so one in >>>>>> every three or four households.

    The only security requirement was that you had to take out the firing >>>>>> pin and store it apart from the gun.


    These are not civilian guns.  No one considers their National
    Guard gun
    as "their" gun - they have it for use in National Guard exercises or >>>>> call-outs.  The gun are always stored safely - kids can't show off >>>>> Dad's
    gun to their friends and accidentally kill them.

    Right! Hey look at this. Self dead, and friends dead/injured. Actually, >>>> I was at a friend of a friends house. A big house in Discovery Bay
    California. His parent was gone, Dad divorced... He pulled out a big
    revolver, might have been a 45 caliber. Holes galore. said he was able >>>> to find it from his Dad. I instantly asked him to show it to me. I
    looked and found that there were two rounds of ammo in the chamber.
    God,

    You can tell if a person with a gun knows about gun safety as he first
    touches the gun, he checks to see if it is unloaded and if not unloads
    it prior to letting anyone else touch it.

    That's the first and most obvious tell.

    Even if I've watched my brother-in-law empty, check, dry fire away
    from everyone, his pistol before he hands it to me, I'll still do the
    same checks myself.

    The other and slightly more subtle one is trigger finger placement: If
    it is anywhere inside the trigger guard before the range officer have
    given the ready to fire command, then stop them at once.

    Absolutely. No reason to have a finger on the trigger unless you intend
    to open fire on something. Also, be sure to check the safety! Load a
    round, put the safety on, point down range, pull the trigger over and
    over again. It should not go off. Turn safety off, then it should fire.


    (I have done this once or twice during these 50 years, each time I got
    a proper dressing down so I would remember it.)

    Oh yeah!


    Another is muzzle sweep! That gun, vectored at something is its current target. Never target something you do not want to shoot!
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Thu Apr 16 13:44:13 2026
    From Newsgroup: comp.arch

    On 4/16/2026 11:52 AM, Scott Lurndal wrote:
    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <079ER.43148$7WA4.42916@fx48.iad>,
    Scott Lurndal <slp53@pacbell.net> wrote:
    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <10rqrkf$1nbrp$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 16/04/2026 13:59, Dan Cross wrote:

    <snip>


    You don't shoot to wound at 500 yards. At that distance, you are either >>>>> a sniper, or shooting to scare the enemy.

    Actually, Marines are trained to accurately engage the enemy out
    to those distances. With the RCO, its not even that hard.
    Maybe soldiers from the US Army could even do it.

    My nephew is in the Corps. He's on the flight line as
    an ordy[*], but still has qualified as expert marksman for the
    last four years running.

    That's a dangerous job.

    But yeah, "Every Marine a Rifleman First". Though if you talk
    to people in the 03 (USMC infantry) community, they'll say that
    is nonsense. As a career communicator, I tend to agree: the
    Marine Corps has a definition of a rifleman, and that's an 0311.
    If a Marine is not trained to that standard, they cannot really
    call themselves a rifleman.

    What I ultimately came out interpreting the "every Marine a
    rifleman first" to mean is that the Marine Corps keeps Marines
    trained to the extent that they can be folded into a grunt unit,
    and OJT'd to an operationally-capable level. Hence, annual
    marksmanship training, continuous training in hand-to-hand
    combat, regula4r organized physical training, etc. That is, we
    reserve the right to take any Marine and insert them into a line
    unit to serve as a rifleman, regardless of their primary MOS.

    [*] recently transferred to the CH-53E fleet due to the imminent
    retirement of the F-16C fleet.

    The Marine Corps doesn't fly the F-16. :-) Perhaps you mean
    the F/A-18 or the Harrier?

    Brain fart. His squadron flys the F/A-18C and D models. The
    E's and F's will remain in the active fleet along with the F-35,

    Can he fly the F-35?


    but the final days of the C and D models are in sight.

    I got to visit the flight line in 2024, very interesting.

    Prior visit to a Marine base was at 29 Palms in the 1980s, visiting
    a cousin. He was living on-base in married housing and told
    me to avoid the well-lit compound several miles east of the housing area, which
    was secured and managed by the NOP.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Thu Apr 16 13:46:33 2026
    From Newsgroup: comp.arch

    On 4/16/2026 11:15 AM, BGB wrote:
    On 4/15/2026 5:44 PM, Bill Findlay wrote:
    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in any >>>>>> crimes. {Anyone with a brain would say this is a pretty good record} >>>>
    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear >>>> warheads.

    Of course, much about the consequences of the Second Amendment
    indeed does
    appear insane. The sensible thing to do would be to repeal it,
    rather than
    pretend it doesn't exist, or it doesn't mean what it says, and hope the >>>> Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.


    ?...

    But, AFAIK, the UK is the place that went and banned:
      Sharp points on knives;
      Sharp points on scissors;

    Better put corks on the forks! This scene from Dirty Rotten Scoundrels
    always cracked me up:

    (Dirty Rotten Scoundrels (1988) - Dinner With Ruprecht Scene (6/12) | Movieclips)

    https://youtu.be/SKDX-qJaJ08

    corks on the forks to prevent him from hurting himself and/or others... ;^D

      Buying solder without having certifications;
        So, it is effectively sold black-market in small amounts,
          to the electronics hobbyists.


    [...]
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Thu Apr 16 20:49:07 2026
    From Newsgroup: comp.arch


    scott@slp53.sl.home (Scott Lurndal) posted:

    MitchAlsup <user5857@newsgrouper.org.invalid> writes:



    You can tell if a person with a gun knows about gun safety as he first >touches the gun, he checks to see if it is unloaded and if not unloads
    it prior to letting anyone else touch it.

    While true, if someone tried to hand me a bolt-action rifle with
    the bolt in place, I'd refuse. Likewise any magazine fed
    weapon should not have a magazine installed and the action should
    be open, if possible before handed to anyone.

    Lookup "Walker Trigger". If you carry a rifle with a cartridge in
    chamber, bolt locked, safety on. There are situations where when the
    safety is turned off the rifle will spontaneously (and negligently)
    fire all by itself. Carry the rifle with no cartridge in chamber, and
    bolt unlocked for maximum safety.

    Which brings up gun safety rule 2: never point a gun at something
    you are not willing to destroy.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Thu Apr 16 14:59:02 2026
    From Newsgroup: comp.arch

    On 4/15/2026 9:25 AM, Dan Cross wrote:
    In article <SlNDR.276690$4wI6.88606@fx24.iad>,
    Scott Lurndal <slp53@pacbell.net> wrote:
    David Brown <david.brown@hesbynett.no> writes:
    On 15/04/2026 13:30, Dan Cross wrote:
    In article <n48bl0Fdbm4U1@mid.individual.net>,
    moi <findlaybill@blueyonder.co.uk> wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    <snip>

    Broadly speaking, they're a pain, and pretty much only useful as
    either a suppression weapon or for guarding avenues of approach
    to fixed defensive positions.

    They're also extremely expensive to use and maintain. at $2.00 or
    more _per round_, the cost rises rapidly.

    Full-auto weapons are also heavy, and so is the ammo. Carrying
    even a SAW is no fun after a few hours; a 240 or Ma Deuce? Not
    happening. A Mk19? Forget about it.

    A fully auto shotgun, say aa12 with the barrel mag?




    Mythbusters shot a minigun on a couple episodes and the ammo cost
    (more than a decade ago) was huge.

    Indeed.



    I suppose that the proponents will point to smaller weapons
    systems, like submachine guns, that are full-auto but shoot
    conventional cartidges (the Thompson shoots .45ACP, for example)
    but they often don't realize that the kickback makes them
    difficult to control. Even the 3-round burst on the M4/M16
    pattern weapons will kick you off target almost instantly; that
    mode is only useful as a direct fire alternative for suppression
    to support advancing infantry in a complex attack scenario when
    indirect fire is not viable, you don't have combined-arms
    support, or you don't have crew-served weapons. It's like a
    method of last resort.

    I don't know why anyone would want a full-auto weapon as
    anything other than a museum piece or a novelty. I strongly
    suspect that such people have never heard a shot fired in anger
    before.

    - Dan C.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Bill Findlay@findlaybill@blueyonder.co.uk to comp.arch on Thu Apr 16 23:00:37 2026
    From Newsgroup: comp.arch

    On 16 Apr 2026, BGB wrote
    (in article <10rr8vi$1sh0n$1@dont-email.me>):

    On 4/15/2026 5:44 PM, Bill Findlay wrote:
    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s) to present: only 2 properly registered FA guns have been used in any
    crimes. {Anyone with a brain would say this is a pretty good record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear warheads.

    Of course, much about the consequences of the Second Amendment indeed does
    appear insane. The sensible thing to do would be to repeal it, rather than
    pretend it doesn't exist, or it doesn't mean what it says, and hope the Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.

    ?...

    But, AFAIK, the UK is the place that went and banned:
    Sharp points on knives;
    Sharp points on scissors;
    Buying solder without having certifications;
    So, it is effectively sold black-market in small amounts,
    to the electronics hobbyists.
    ...
    And, where a person can be arrested, for stuff they say on social media
    (or "thought crime" as some are calling it);
    Where corporations can lead search-and-seizure operations for claimed IP violations;

    It is clear from that claptrap that in fact you know very little.
    (MAGA shills like JD are not a trustworthy source of information.)
    --
    Bill Findlay

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Thu Apr 16 18:53:47 2026
    From Newsgroup: comp.arch

    On 4/16/2026 5:00 PM, Bill Findlay wrote:
    On 16 Apr 2026, BGB wrote
    (in article <10rr8vi$1sh0n$1@dont-email.me>):

    On 4/15/2026 5:44 PM, Bill Findlay wrote:
    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s) >>>>>>> to present: only 2 properly registered FA guns have been used in any >>>>>>> crimes. {Anyone with a brain would say this is a pretty good record} >>>>>
    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear >>>>> warheads.

    Of course, much about the consequences of the Second Amendment indeed does
    appear insane. The sensible thing to do would be to repeal it, rather than
    pretend it doesn't exist, or it doesn't mean what it says, and hope the >>>>> Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.

    ?...

    But, AFAIK, the UK is the place that went and banned:
    Sharp points on knives;
    Sharp points on scissors;
    Buying solder without having certifications;
    So, it is effectively sold black-market in small amounts,
    to the electronics hobbyists.
    ...
    And, where a person can be arrested, for stuff they say on social media
    (or "thought crime" as some are calling it);
    Where corporations can lead search-and-seizure operations for claimed IP
    violations;

    It is clear from that claptrap that in fact you know very little.
    (MAGA shills like JD are not a trustworthy source of information.)


    I am not really part of the MAGA crowd.
    I am not really into politics in general...

    But, this is still what people say online about the UK and CA and similar...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Fri Apr 17 00:12:01 2026
    From Newsgroup: comp.arch

    cross@spitfire.i.gajendra.net (Dan Cross) writes:
    In article <NdaER.1511$r_k6.609@fx38.iad>,
    Scott Lurndal <slp53@pacbell.net> wrote:
    <snip>

    [*] recently transferred to the CH-53E fleet due to the imminent >>>>retirement of the F-16C fleet.

    The Marine Corps doesn't fly the F-16. :-) Perhaps you mean
    the F/A-18 or the Harrier?

    Brain fart. His squadron flys the F/A-18C and D models. The
    E's and F's will remain in the active fleet along with the F-35,
    but the final days of the C and D models are in sight.

    No problem; I can see wanting to switch over to helos from fixed
    wing. It's a different world.

    His eventual goal is to get his A&P. Figures helos will be good
    experience.


    I got to visit the flight line in 2024, very interesting.

    Cool.

    Prior visit to a Marine base was at 29 Palms in the 1980s, visiting
    a cousin. He was living on-base in married housing and told
    me to avoid the well-lit compound several miles east of the housing area, which
    was secured and managed by the NOP.

    Ah, the stumps. I remember the first time I got there, stepping
    off a bus (we'd just flown from NC, having completed post Parris
    Island training at Camp Lejeune) and immediately seeing tumble
    weed blowing down the main drag. "Oh my god; I have to stay
    here for a YEAR?!" (This was before I became an officer.)

    I wonder which part your cousin meant; perhaps Camp Wilson,
    which is an active training area (and pretty much nothing else,
    though there is a very small PX there selling pogey bait).


    I just looked on google maps and they've pretty much censored
    the entire base in both the map and satellite views.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Fri Apr 17 00:13:25 2026
    From Newsgroup: comp.arch

    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes:
    On 4/16/2026 11:52 AM, Scott Lurndal wrote:

    Brain fart. His squadron flys the F/A-18C and D models. The
    E's and F's will remain in the active fleet along with the F-35,

    Can he fly the F-35?

    Only if he gets a ride in the back seat. Which, since the F35
    is a single seater, is not gonna happen.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 17 02:06:04 2026
    From Newsgroup: comp.arch

    On Thu, 16 Apr 2026 13:15:13 -0500, BGB wrote:

    And, where a person can be arrested, for stuff they say on social media
    (or "thought crime" as some are calling it);

    Almost all countries other than the United States limit freedom of speech
    by excluding the incitment of hatred towards minority groups.
    This is perhaps a natural result of Europe having had World War II fought
    on its own soil, and so they consider it a matter of survival to prevent
    the rise of another movement similar to Nazism.

    Given current political trends in Europe, I have to say it's a pity they didn't think that one way to prevent the rise of bigoted extremist
    movements would have been not to have such a liberal immigration policy
    that the demographic consequences would end up being an annoyance to a lot
    of ordinary people not previously inclined to bigotry.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Thu Apr 16 19:08:41 2026
    From Newsgroup: comp.arch

    On 4/16/2026 5:13 PM, Scott Lurndal wrote:
    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes:
    On 4/16/2026 11:52 AM, Scott Lurndal wrote:

    Brain fart. His squadron flys the F/A-18C and D models. The
    E's and F's will remain in the active fleet along with the F-35,

    Can he fly the F-35?

    Only if he gets a ride in the back seat. Which, since the F35
    is a single seater, is not gonna happen.

    Oh damn! Shit. He can fly the f-16?
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.arch on Thu Apr 16 19:09:48 2026
    From Newsgroup: comp.arch

    On 4/16/2026 5:13 PM, Scott Lurndal wrote:
    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes:
    On 4/16/2026 11:52 AM, Scott Lurndal wrote:

    Brain fart. His squadron flys the F/A-18C and D models. The
    E's and F's will remain in the active fleet along with the F-35,

    Can he fly the F-35?

    Only if he gets a ride in the back seat. Which, since the F35
    is a single seater, is not gonna happen.

    Neat! He is around that tech!
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Thu Apr 16 22:09:21 2026
    From Newsgroup: comp.arch

    On 4/16/2026 9:06 PM, quadi wrote:
    On Thu, 16 Apr 2026 13:15:13 -0500, BGB wrote:

    And, where a person can be arrested, for stuff they say on social media
    (or "thought crime" as some are calling it);

    Almost all countries other than the United States limit freedom of speech
    by excluding the incitment of hatred towards minority groups.
    This is perhaps a natural result of Europe having had World War II fought
    on its own soil, and so they consider it a matter of survival to prevent
    the rise of another movement similar to Nazism.


    OK. This at least seems like a sensible place where limits could be
    imposed, like if a person is advocating for violence against a group of people, or promoting criminal activity (of the sort where actual
    peoples' health or well-being is concerned).

    Though, the line here gets fuzzy.


    I think the claim though was that people were getting arrested for
    things being said that had "offended the political elites" or
    disagreeing with the official party line on various policies or something.

    But, yeah, if it is people promoting doing stuff like what happened in
    WWII, this is more understandable.


    But, yeah, I guess in the US, people going around and doing the whole "neo-Nazi" and "white supremacist" thing has become a bit of an issue...

    This sort of thing can get worrying sometimes. In recent years it does
    seem as if the racists have been winning here.



    Sorta reminds me of some years ago, people were making a lot of fuss
    about BO, like saying here wasn't really an American and was actually
    allying with the Islamists and stuff...

    But, like, there were no real scandals going on, and it was mostly
    uneventful. Then, with DJT, it is like it all turns into a raging
    crap-storm (with an endless stream of infighting, scandals, etc) and
    everyone else is like "Basically cool I guess, keep up the good work".


    To admit something, though possibly an unpopular/controversial position,
    kinda hoped KH would have won. Had I known how big of a crap-storm it
    was all going to be, might have taken a stronger stance on the issue (vs
    just going along passively...). Alas... Though, possibly it would have
    still sucked either way.


    But, yeah, politics is kinda confusing and sucks in this way.



    Given current political trends in Europe, I have to say it's a pity they didn't think that one way to prevent the rise of bigoted extremist
    movements would have been not to have such a liberal immigration policy
    that the demographic consequences would end up being an annoyance to a lot
    of ordinary people not previously inclined to bigotry.


    Possibly true.


    From what I had heard, usual issue is mostly that people from the
    middle east come in and start bombing stuff and trying to push for
    Sharia law everywhere.

    I think also there was a thing where Germany realized this was not cool
    and basically put a ban on allowing anyone to try to impose Sharia law.


    But, say, there is a limit here, like one person trying to impose their religious rules on others isn't cool (nor is them trying to forcibly
    convert others, etc).


    Or, at least within the US context, this makes me think that the whole
    thing of trying to enforce pro-life policies, or putting people through
    "gay conversion therapy" and such, may be doing more harm than good.

    Like, in terms of trying to control peoples' moral behavior, it is
    making the situation worse for them than had they been left to make
    their own choices in these area; even if one still views these things as
    moral faults, and would similarly assume keeping the personal freedoms
    to consider them as moral faults. Like, the line being not so much what
    a person thinks or does for themselves, but where it crosses to imposing
    on others.

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 17 04:49:41 2026
    From Newsgroup: comp.arch

    On Wed, 15 Apr 2026 15:12:19 +0000, quadi wrote:

    Now, I took out one excessively elaborate header format, and restored a feature to the architecture that I took out when pruning header types,
    but this time in a different form, associated with a different header
    type.

    And now I rearranged the headers a bit, to defragment their opcode space.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 17 05:21:57 2026
    From Newsgroup: comp.arch

    On Fri, 17 Apr 2026 04:49:41 +0000, quadi wrote:

    And now I rearranged the headers a bit, to defragment their opcode
    space.

    This led me to feel I had the perfect spot in which to re-introduce to
    this iteration of the Concertina II architecture that most bizarre feature
    of the architecture which was cited as one of its defining features... I
    think of it as an exotic and strictly optional feature, existing mainly to enhance emulation, while the ability to go from RISC to CISC to VLIW is
    what defines Concertina II.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Fri Apr 17 05:37:25 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    Thomas Koenig <tkoenig@netcologne.de> posted:


    I first used the G3 at the Bundeswehr. 600 rounds per minute, 20
    rounds per magazine. Firing that weapon at full auto will empty
    it in a tid less than two seconds (note fencepost error here :-)

    Firing short bursts or single shots will keep any enemy down for
    a far longer time than that.

    But a squad at the time had a MG3 (1200 rounds per minute) with it.
    But firing that continously is also not a good idea because

    a) ammunition: 24 grams per round means that you run through 0.48
    kg (a bit more than a pound :-) per second of ammunition, which
    somebody has to carry

    b) you have to exchange barrels and locks after a certain number
    of rounds to prevent overheating.

    Where the military definition of overheating is: "The bullets no longer
    go anywhere close to where the barrel is pointing".

    In this case, not directly. The problem is wear on the barrel
    and the lock. If you fire too many rounds in too short a time,
    the rifling will wear down.

    Hence, replacement barrels (and the asbestos rags for exchanging
    them).

    5 rounds at 20 second intervals is enough to heat a sniper barrel
    to the point it is not "accurate enough". Now, imaging those 5
    rounds in 0.5 seconds ...

    Snipers and machine gunners have different tactical tasks :-)
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Fri Apr 17 08:05:55 2026
    From Newsgroup: comp.arch

    On 16/04/2026 20:15, BGB wrote:
    On 4/15/2026 5:44 PM, Bill Findlay wrote:
    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s)
    to present: only 2 properly registered FA guns have been used in any >>>>>> crimes. {Anyone with a brain would say this is a pretty good record} >>>>
    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear >>>> warheads.

    Of course, much about the consequences of the Second Amendment
    indeed does
    appear insane. The sensible thing to do would be to repeal it,
    rather than
    pretend it doesn't exist, or it doesn't mean what it says, and hope the >>>> Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.


    ?...


    Note - I come from the UK originally, but live in Norway.

    But, AFAIK, the UK is the place that went and banned:
      Sharp points on knives;
      Sharp points on scissors;
      Buying solder without having certifications;
        So, it is effectively sold black-market in small amounts,
          to the electronics hobbyists.
      ...

    Complete nonsense.

    But both the UK and Norway have restrictions on people carrying around
    deadly weapons of all sorts. The freedom not to be stabbed, shot, or otherwise injured or killed trumps the freedom to carry such weapons.

    And, where a person can be arrested, for stuff they say on social media
    (or "thought crime" as some are calling it);

    Only thoughtless people are calling it that. You've been watching tool
    much Fox News - a channel that describes itself as "entertainment"
    without any obligation to tell the truth.

    The freedom of innocent people not to suffer abuse, hatred and prejudice trumps the freedom of nasty little sods who think they have the right to
    abuse others. And inciting hatred or encouraging others to commit
    criminal behaviour is just as much a crime in the USA as the UK.

    Where corporations can lead search-and-seizure operations for claimed IP violations;

    No, they can't.

    And in European countries, unlike the USA, corporations don't get to lie
    and cheat then claim "freedom of speech".

    We are free to live safely. We have the freedom to send our kids to
    school without worrying if they will survive the day. We have the
    freedom of knowing that we won't lose our jobs just because the boss is
    having a bad hair day. And losing a job does not mean losing our
    health. And we have freedom to vote, knowing that votes count equally.
    (Well, the UK parliament elections still have a way to go here, but the Scottish and Norwegian elections have fair votes.)

    No country is perfect by any means, but Europeans live far freer lives.
    We might not have the freedom to own guns so our kids can accidentally
    kill each other, but overall we win out.

    Remember, freedoms are always a balance, not an absolute. Lots of types
    of freedom for one person reduce other freedoms for other people.

    ...


    So, sorta like California but worse...

    California apparently banned the 60/40 lead/tin stuff IIRC, but still
    allows people to freely possess lead-free solder (so people apparently
    need to smuggle the 60/40 into CA if they want to use it). Everywhere
    else, 60/40 is OK. Well, and CA has the "age verification" controversy,
    etc.

    I can't answer for California, but if I want leaded solder I can just
    order some. But the regulations against the use of lead in general are
    a good thing - the freedom to drink water without lead trumps the
    freedom of a handful of people to use cheaper and lower temperature
    soldering irons.


    Could be wrong, this is from memory and stuff I heard on the internet.


    You should be a lot more careful about what you watch on the internet.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Fri Apr 17 08:45:18 2026
    From Newsgroup: comp.arch

    On 16/04/2026 18:31, Dan Cross wrote:
    In article <10rqrkf$1nbrp$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    On 16/04/2026 13:59, Dan Cross wrote:
    In article <10rqag7$1in0h$1@dont-email.me>,
    David Brown <david.brown@hesbynett.no> wrote:
    [snip]
    (The service members have all their other equipment at
    home too - they store their own uniforms and other stuff, and are
    responsible for washing and repairs or ordering replacements after the >>>> exercises.)

    The same is true in the US military. I always found it annoying
    that I had to make space for my issued equipment at home, but
    c'est la vie.

    Personally, I have no military experience at all (not counting school
    cadets). But one of my sons joined the National Guard after his
    military service. He has a neat solution to problem of space for his
    equipment - he keeps it in his old bedroom in our house, not in his own
    flat :-)

    Seems like your son should take his obligations a bit more
    seriously: keeping his equipment at your house, when it's
    supposed to be in his dwelling, sounds like a rules violation.


    I don't know the details of the regulations, but I can assure you that
    it is entirely within them. As a student, his flat is considered
    temporary accommodation and our house is his permanent home. His
    National Guard base is in our area, not where he is a student.

    Maybe the regulations in the USA are different. Maybe there are
    different standards about how quickly you can be called up and need to
    deploy.

    What's good for the goose is good for the gander.

    It also means that there are less guns stored in
    concentrated places as potential targets for robberies. And in the
    event of a real invasion, it's a lot easier to smugle around and
    distribute firing pins to service members than to pass around guns from >>>> a central armoury.

    There are tradeoffs, however: it is also easier for a bad actor
    to source a weapon by breaking into a private home.

    It is plausible, but AFAIK it is extremely rare here. The solid
    majority of criminals here don't want guns, and would probably not take
    one if they found one in a house they were robbing. As a house burglar,
    you can't easily sell a gun, you don't need one for defence, you don't
    need one to threaten anyone - it just increases your chance of being
    shot yourself, and increases your punishment if you get got. There are
    guns in the more serious narcotics gangs, but those are handguns - they
    have no use for military weapons.

    FWIW, handguns are military weapoons.

    Sorry - I meant pistols, rather than rifle-sized weapons. (Of course
    pistols are also used in the military.)


    My T/E weapons in Afghanistan were a 9mm handgun and an M4
    carbine. I was embedded with an Afghan Army Unit, and was armed
    pretty much at all time. This was at a time when we knew there
    were Taliban infiltrators in the army. Indeed, I mentioned
    working with UK forces: such an infiltrator threw a hand grenade
    into a tent full of British soldiers, who were sleeping at the
    time (this was in the middle of the night) and sprayed it with
    fire from an AK-47, killing three and wounding several more.
    That is to say, we were at a relatively low, but constant and
    higher than baseline level of risk that most ISAF troops were
    not subject to. Despite that, and despite being directly and
    indirectly threatened myself on multiple occasions, I only
    carried my pistol unless I was outside the wire.

    We also don't really go in for shoot-to-kill in Norway.

    Note that I'm talking about the use of deadly force to prevent a
    bad actor from forcibly taking military-grade arms. That is
    exactly the sort of thing that deadly force arguably _should_ be
    authorized for.

    There is a distinction (which I did not make, but should have) between
    authorising deadly force, and encouraging it. As a last resort, it
    makes sense in situations like this. But it should be very much the
    last resort. Real-life criminals are not like in the movies - if
    military guards point guns at them, they will put their hands in the air
    and no one needs to be shot. (It's a different matter for criminals
    high on drugs and unable to think rationally, but they don't try to raid
    military armouries.)

    Of course there, is a continuum of force, and despite recent
    idiots in charge of the US military asserting otherwise, the
    rules of engagement and the laws of warfare are taken _very_
    seriously.

    It's nice to know - especially with the current muppets at the top of
    the USA chain.


    But the military are not the police. Full stop. If someone is
    trying to attack a military armory with the intention of seizing
    arms, they're not likely to be some petty criminal, but if they
    obviously are, they will likely be subdued uninjured. The point
    of mentioning that deadly force is authorized when protecting
    those kinds of assets is to point out the relative value of the
    assets themselves. To whit: weapons are dangerous, and in the
    wrong hands, even more dangerous. They can, and should, be
    protected.

    OK.


    Btw: as a veteran, one of the things that _really_ bothers me in
    the US is when the police, in particular, refer to members of
    the general public as "civilians". Words have meaning;
    "civilian" refers to someone who is not a member of a military.
    The police are are definitionally civilians.


    Agreed.

    If shots need to be fired, the primary aim should
    be to persuade the bad guys to surrender, not to kill them.

    Is it better if the enemy surrenders? Sure. But this idea that
    you are going to shoot to wound in a combat scenario is not
    realistic. As you said, it's not like in the movies.


    I think that there has been a bit of a disparity in the situations we
    have been imagining. I agree entirely that shooting to wound in a
    combat situation is not realistic. It just seemed to me that you were suggesting armoury guards were moving to combat mode a lot more quickly
    than I thought appropriate.

    But more broadly, from a military perspective, this doesn't make
    a lot of sense to me, because it ignores the human factors at
    play in the fog of war.

    Due to the sympathetic physiological reaction to stress, one
    tends to lose one's fine motor skills in a combat-type situation
    and it can be difficult to remember even the most basic bodily
    functions: lose of urinary and sphincter control are common,
    for example (hence the expression, "scared shitless"). Moreover
    long experience in human history shows that it is impossible to
    know a priori how one will react: some people are ridiculously
    calm in combat, others are not.

    While I have (as I said) no military experience, I have a fair bit of
    martial art experience - and what you describe is entirely correct.

    Martial arts are art forms, like dance, not combat training.
    I really wish people who study them would internalize that. You
    get one good punch on the street; you are not experts on actual
    warfare, lethal or otherwise. You should take care not to
    extrapolate your study of an art form to things you have no
    direct experince of.

    I am entirely aware of that. I know what martial arts are, and are not.
    I know the difference between martial arts that are useful in real
    fights, and those that are not - and where the key training differences are.

    And I am fully aware that the stuff I have done is not combat training,
    and I have no intention of getting into a real fight. I am confident
    that I could handle myself in a real fight better than might be expected
    by my appearance, as a result of my martial art training - but since I
    am short, grey-haired and rather round, that's a very low bar. It takes
    a great deal of appropriate training to overcome differences of size,
    strength and age - training that I do not have.

    But I do know how that all works, and I do understand the difference
    between sport fights, sparing, real random fights, and serious combat.


    (I'm sorry to have to snip the rest of this. I have read your entire
    post with interest, and found it enlightening, but it is simply taking
    too much time at the moment. I might get a chance to comment more
    later. It is also seriously off-topic! Thank you for the informative
    posts.)


    Or you can listen to someone who's actually done it and who is
    telling you that the intent (which yes, is explained to the
    troops) is to demonstrate that we take all of this _very_
    seriously, that human falibility means that people can and do
    make mistakes, and that we build processes and procedures to try
    and mitigate or avoid those mistakes.

    Long experience has shown that mutual inspections are better
    than relying on self-affirmation.

    Just to be clear here - mutual inspections are fine and often a good
    thing. It is the idea of standing in line while a commander of some
    sort pats you down that is not. Maybe I just misunderstood what you
    were saying.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Fri Apr 17 02:20:43 2026
    From Newsgroup: comp.arch

    On 4/17/2026 1:05 AM, David Brown wrote:
    On 16/04/2026 20:15, BGB wrote:
    On 4/15/2026 5:44 PM, Bill Findlay wrote:
    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s) >>>>>>> to present: only 2 properly registered FA guns have been used in any >>>>>>> crimes. {Anyone with a brain would say this is a pretty good record} >>>>>
    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear >>>>> warheads.

    Of course, much about the consequences of the Second Amendment
    indeed does
    appear insane. The sensible thing to do would be to repeal it,
    rather than
    pretend it doesn't exist, or it doesn't mean what it says, and hope >>>>> the
    Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.


    ?...


    Note - I come from the UK originally, but live in Norway.

    But, AFAIK, the UK is the place that went and banned:
       Sharp points on knives;
       Sharp points on scissors;
       Buying solder without having certifications;
         So, it is effectively sold black-market in small amounts,
           to the electronics hobbyists.
       ...

    Complete nonsense.

    But both the UK and Norway have restrictions on people carrying around deadly weapons of all sorts.  The freedom not to be stabbed, shot, or otherwise injured or killed trumps the freedom to carry such weapons.


    Fair enough.

    Later went and asked Gemini about it, it said that the laws restrict
    carrying things with sharp tips (like knives and similar) rather than possession of them (say, at a person's house).

    Apparently, the idea that it was a ban on all pointy things was an over-generalization that floats around on the internet.

    ...


    And, where a person can be arrested, for stuff they say on social
    media (or "thought crime" as some are calling it);

    Only thoughtless people are calling it that.  You've been watching tool much Fox News - a channel that describes itself as "entertainment"
    without any obligation to tell the truth.


    Actually, mostly, it has been a mix of YouTube videos/shorts and
    Twitter/X threads...


    The freedom of innocent people not to suffer abuse, hatred and prejudice trumps the freedom of nasty little sods who think they have the right to abuse others.  And inciting hatred or encouraging others to commit
    criminal behaviour is just as much a crime in the USA as the UK.


    OK.

    Some people were making it sound like they were opposing peoples'
    abilities to have and express opinions in general (though they didn't
    usually specify on what sorts of topics).


    Originally, seemed like, it could have been something like, say:
    Person says something bad about a political leader or similar;
    Political leader sees it and feels insulted and has person arrested.
    Or, something of this sort, ...



    But, yeah, in the US people usually say the First Amendment guarantees peoples' freedom to have and express opinions about whatever.

    Though, OTOH, I guess things like social media platforms still have the ability to ban people from the platform if they go around spreading hate-speech or similar.

    Apparently I guess that was a problem in the past with DJT, then he got
    banned off of Twitter, then he started his own social network, then Elon bought Twitter and renamed it X, and DJT got back on there, ...


    Where corporations can lead search-and-seizure operations for claimed
    IP violations;

    No, they can't.

    And in European countries, unlike the USA, corporations don't get to lie
    and cheat then claim "freedom of speech".



    Saw a thing not too long ago talking about how apparently Sega left some Nintendo devkits in an old office building, then abandoned the building,
    and later the building owners sold off all the old junk that was left in
    the buildings.

    Story goes that the guy who bought up some of the old junk posted about
    it on the internet, and then Sega + Nintendo + UK Police went in and
    arrested the guy and took all his stuff (then they released the guy, but
    he didn't get the stuff back), because the idea was that him having the devkits was considered as theft of intellectual property.


    Eg (finding a few videos talking about one of the incidents): https://www.youtube.com/watch?v=Sy9Eb8J0xGk https://www.youtube.com/watch?v=NU040CTdJI0

    There was another video I saw in the past talking about it originally,
    but I didn't see them now (haven't watched through the videos I found
    now to compare details).

    ...



    Well, contrast I guess if people post leaked closed-source code on
    GitHub or similar, the companies that own the code may issue DMCA
    take-downs or similar, but will not generally raid the person's house.

    There was some guy though (with some balls) who was releasing
    ported/modded versions of some previously released SuperMario64 code.


    Not personally inclined to look at it or mess with it though.




    We are free to live safely.  We have the freedom to send our kids to
    school without worrying if they will survive the day.  We have the
    freedom of knowing that we won't lose our jobs just because the boss is having a bad hair day.  And losing a job does not mean losing our
    health.  And we have freedom to vote, knowing that votes count equally. (Well, the UK parliament elections still have a way to go here, but the Scottish and Norwegian elections have fair votes.)

    No country is perfect by any means, but Europeans live far freer lives.
    We might not have the freedom to own guns so our kids can accidentally
    kill each other, but overall we win out.

    Remember, freedoms are always a balance, not an absolute.  Lots of types
    of freedom for one person reduce other freedoms for other people.


    OK.


    ...


    So, sorta like California but worse...

    California apparently banned the 60/40 lead/tin stuff IIRC, but still
    allows people to freely possess lead-free solder (so people apparently
    need to smuggle the 60/40 into CA if they want to use it). Everywhere
    else, 60/40 is OK. Well, and CA has the "age verification"
    controversy, etc.

    I can't answer for California, but if I want leaded solder I can just
    order some.  But the regulations against the use of lead in general are
    a good thing - the freedom to drink water without lead trumps the
    freedom of a handful of people to use cheaper and lower temperature soldering irons.


    Where I am, solder is sold on Amazon or similar...

    Had seen videos where people made it seem like solder was some sort of black-market contraband.

    Looking around, apparently the restrictions were specifically on
    lead-based solder though, rather than restricting all solder.


    In the case of California, did see something not too long ago saying
    that they were trying to get something passed to ban personal ownership
    of 3D printers and CNC machines.

    Though, I didn't see anyone else talking about this, so it seemed
    unconfirmed.


    There is a lot more talking going on about the CA "OS age verification"
    bull, and now something saying that the US federal people are now
    looking into something similar (groan, this has a risk to potentially
    ruin open source and make everything suck...). Hopefully it goes the way
    of past proposals for bans on OSS and RISC-V and similar, ...

    So, not like US is exactly perfect either...




    Could be wrong, this is from memory and stuff I heard on the internet.


    You should be a lot more careful about what you watch on the internet.


    Possibly.

    Then again, I guess a lot of the news I had seen had also been fed
    through the lens of video game commentators and similar.


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From anton@anton@mips.complang.tuwien.ac.at (Anton Ertl) to comp.arch on Fri Apr 17 08:51:12 2026
    From Newsgroup: comp.arch

    David Brown <david.brown@hesbynett.no> writes:
    On 16/04/2026 20:15, BGB wrote:
    And, where a person can be arrested, for stuff they say on social media
    (or "thought crime" as some are calling it);

    Only thoughtless people are calling it that. You've been watching tool
    much Fox News

    Or he has been watching too much Youtube (or the like). Every time
    somebody tells me that he thinks that something is true that isn't, or
    makes a strange judgement, as in this case, and I ask them where they
    got that from, they tell me "Youtube".

    - anton
    --
    'Anyone trying for "industrial quality" ISA should avoid undefined behavior.'
    Mitch Alsup, <c17fcd89-f024-40e7-a594-88a85ac10d20o@googlegroups.com>
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Michael S@already5chosen@yahoo.com to comp.arch on Fri Apr 17 15:05:41 2026
    From Newsgroup: comp.arch

    On Fri, 17 Apr 2026 08:51:12 GMT
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    David Brown <david.brown@hesbynett.no> writes:
    On 16/04/2026 20:15, BGB wrote:
    And, where a person can be arrested, for stuff they say on social
    media (or "thought crime" as some are calling it);

    Only thoughtless people are calling it that. You've been watching
    tool much Fox News

    Or he has been watching too much Youtube (or the like). Every time
    somebody tells me that he thinks that something is true that isn't, or
    makes a strange judgement, as in this case, and I ask them where they
    got that from, they tell me "Youtube".

    - anton

    Pay attention that David Brown didn't say that things mentioned by BGB
    don't actually happen in UK. He was merely disagreeinng with Orwellian
    naming.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Bill Findlay@findlaybill@blueyonder.co.uk to comp.arch on Fri Apr 17 13:09:54 2026
    From Newsgroup: comp.arch

    On 17 Apr 2026, BGB wrote
    (in article <10rrsqc$22m9c$1@dont-email.me>):

    On 4/16/2026 5:00 PM, Bill Findlay wrote:
    On 16 Apr 2026, BGB wrote
    (in article <10rr8vi$1sh0n$1@dont-email.me>):
    ...

    But, AFAIK, the UK is the place that went and banned:
    Sharp points on knives;
    Sharp points on scissors;
    Buying solder without having certifications;
    So, it is effectively sold black-market in small amounts,
    to the electronics hobbyists.
    ...
    And, where a person can be arrested, for stuff they say on social media (or "thought crime" as some are calling it);
    Where corporations can lead search-and-seizure operations for claimed IP violations;

    It is clear from that claptrap that in fact you know very little.
    (MAGA shills like JD are not a trustworthy source of information.)

    I am not really part of the MAGA crowd.
    I am not really into politics in general...

    But, this is still what people say online about the UK and CA and similar...

    So, myevaluation of your words was spot on.
    --
    Bill Findlay

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Bill Findlay@findlaybill@blueyonder.co.uk to comp.arch on Fri Apr 17 13:11:59 2026
    From Newsgroup: comp.arch

    On 17 Apr 2026, David Brown wrote
    (in article <10rsik4$287kv$1@dont-email.me>):

    On 16/04/2026 20:15, BGB wrote:
    On 4/15/2026 5:44 PM, Bill Findlay wrote:
    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s) to present: only 2 properly registered FA guns have been used in any
    crimes. {Anyone with a brain would say this is a pretty good record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to thermonuclear
    warheads.

    Of course, much about the consequences of the Second Amendment
    indeed does
    appear insane. The sensible thing to do would be to repeal it,
    rather than
    pretend it doesn't exist, or it doesn't mean what it says, and hope the
    Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.

    ?...

    Note - I come from the UK originally, but live in Norway.

    But, AFAIK, the UK is the place that went and banned:
    Sharp points on knives;
    Sharp points on scissors;
    Buying solder without having certifications;
    So, it is effectively sold black-market in small amounts,
    to the electronics hobbyists.
    ...

    Complete nonsense.

    But both the UK and Norway have restrictions on people carrying around
    deadly weapons of all sorts. The freedom not to be stabbed, shot, or otherwise injured or killed trumps the freedom to carry such weapons.

    And, where a person can be arrested, for stuff they say on social media
    (or "thought crime" as some are calling it);

    Only thoughtless people are calling it that. You've been watching tool
    much Fox News - a channel that describes itself as "entertainment"
    without any obligation to tell the truth.

    The freedom of innocent people not to suffer abuse, hatred and prejudice trumps the freedom of nasty little sods who think they have the right to abuse others. And inciting hatred or encouraging others to commit
    criminal behaviour is just as much a crime in the USA as the UK.

    Where corporations can lead search-and-seizure operations for claimed IP violations;

    No, they can't.

    And in European countries, unlike the USA, corporations don't get to lie
    and cheat then claim "freedom of speech".

    We are free to live safely. We have the freedom to send our kids to
    school without worrying if they will survive the day. We have the
    freedom of knowing that we won't lose our jobs just because the boss is having a bad hair day. And losing a job does not mean losing our
    health. And we have freedom to vote, knowing that votes count equally.
    (Well, the UK parliament elections still have a way to go here, but the Scottish and Norwegian elections have fair votes.)

    No country is perfect by any means, but Europeans live far freer lives.
    We might not have the freedom to own guns so our kids can accidentally
    kill each other, but overall we win out.

    Remember, freedoms are always a balance, not an absolute. Lots of types
    of freedom for one person reduce other freedoms for other people.

    ...


    So, sorta like California but worse...

    California apparently banned the 60/40 lead/tin stuff IIRC, but still allows people to freely possess lead-free solder (so people apparently
    need to smuggle the 60/40 into CA if they want to use it). Everywhere
    else, 60/40 is OK. Well, and CA has the "age verification" controversy, etc.

    I can't answer for California, but if I want leaded solder I can just
    order some. But the regulations against the use of lead in general are
    a good thing - the freedom to drink water without lead trumps the
    freedom of a handful of people to use cheaper and lower temperature
    soldering irons.


    Could be wrong, this is from memory and stuff I heard on the internet.

    You should be a lot more careful about what you watch on the internet.

    Bravo! You put a lot more work into that than I could
    stomach in response to Fuck News talking points.
    Thank you.
    --
    Bill Findlay

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Fri Apr 17 14:18:45 2026
    From Newsgroup: comp.arch

    On 17/04/2026 09:20, BGB wrote:
    On 4/17/2026 1:05 AM, David Brown wrote:
    On 16/04/2026 20:15, BGB wrote:
    On 4/15/2026 5:44 PM, Bill Findlay wrote:
    On 15 Apr 2026, David Brown wrote
    (in article <10roqep$16j1j$1@dont-email.me>):

    On 15/04/2026 17:36, quadi wrote:
    On Wed, 15 Apr 2026 03:32:00 +0100, moi wrote:
    On 15/04/2026 01:44, MitchAlsup wrote:

    One should also note: in the history of this system (~late 1930s) >>>>>>>> to present: only 2 properly registered FA guns have been used in >>>>>>>> any
    crimes. {Anyone with a brain would say this is a pretty good
    record}

    Anyone with a non-USAn brain would say this is utterly insane.

    Utterly insane would be if the same procedure applied to
    thermonuclear
    warheads.

    Of course, much about the consequences of the Second Amendment
    indeed does
    appear insane. The sensible thing to do would be to repeal it,
    rather than
    pretend it doesn't exist, or it doesn't mean what it says, and
    hope the
    Supreme Court will look the other way.

    [wise words omitted]

    That's just my two cents - coming from someone in a country ...
    where we have far more real-world freedoms than the USA.
    That is the bit they really can't fathom.


    ?...


    Note - I come from the UK originally, but live in Norway.

    But, AFAIK, the UK is the place that went and banned:
       Sharp points on knives;
       Sharp points on scissors;
       Buying solder without having certifications;
         So, it is effectively sold black-market in small amounts,
           to the electronics hobbyists.
       ...

    Complete nonsense.

    But both the UK and Norway have restrictions on people carrying around
    deadly weapons of all sorts.  The freedom not to be stabbed, shot, or
    otherwise injured or killed trumps the freedom to carry such weapons.


    Fair enough.

    Later went and asked Gemini about it, it said that the laws restrict carrying things with sharp tips (like knives and similar) rather than possession of them (say, at a person's house).

    I don't think any LLM is going to be a good source of information here.
    Gemini might not be as bad as Grok, but AI will often miss the point,
    and be heavily influenced by the kinds of drivel that is often published
    on the net.

    Basically, the laws say that if you are caught with a large screwdriver
    that you are using to stab or threaten people, you will be charged and
    treated as though you were carrying a knife for that purpose. Older
    laws banned carrying knifes and the like in public places - newer laws
    target weapons, where a "weapon" is anything that you use or plan to use
    for violence or threats of violence.


    Apparently, the idea that it was a ban on all pointy things was an over- generalization that floats around on the internet.


    Exactly. Social media rewards people who greatly exaggerate things to
    make them sound dramatic. And political extremists love fear-mongering,
    with a total disregard for the truth or subtleties of reality.

    ...


    And, where a person can be arrested, for stuff they say on social
    media (or "thought crime" as some are calling it);

    Only thoughtless people are calling it that.  You've been watching
    tool much Fox News - a channel that describes itself as
    "entertainment" without any obligation to tell the truth.


    Actually, mostly, it has been a mix of YouTube videos/shorts and
    Twitter/X threads...


    If he were still alive, Goebbels would have banned Twatter for having
    too much right-wing propaganda. It is not healthy to use it as a source
    of information unless you want the calender dates for KKK meetings.

    YouTube shorts are not much better. Research has shown again and again
    that social media algorithms exaggerate from people's opinions and
    interests - they provide echo chambers that move you further and further
    from central or balanced positions. It is somewhat inevitable -
    balanced opinions are not particularly interesting or engaging, so they
    are not popular and don't generate revenue for the social media platform
    or the content creator. The real world is seldom as exciting as
    people's imaginations.

    I'd recommend looking at a reality check site like snopes.com to get an
    idea of how easily people get duped. Begin smart isn't enough (you are
    a very smart guy) - you need to understand how you are being
    manipulated. Ask yourself "Cui bono" ? Who is benefiting, in money,
    power or influence?


    The freedom of innocent people not to suffer abuse, hatred and
    prejudice trumps the freedom of nasty little sods who think they have
    the right to abuse others.  And inciting hatred or encouraging others
    to commit criminal behaviour is just as much a crime in the USA as the
    UK.


    OK.

    Some people were making it sound like they were opposing peoples'
    abilities to have and express opinions in general (though they didn't usually specify on what sorts of topics).


    Originally, seemed like, it could have been something like, say:
      Person says something bad about a political leader or similar;
      Political leader sees it and feels insulted and has person arrested.
    Or, something of this sort, ...


    That does happen in some countries. There are plenty of dictatorships,
    or partial dictatorships, where that kind of thing goes on. Journalists
    are banned from official press conferences or buildings because they ask awkward questions or publish things unflattering to the wannabe king. Politicians get attacked for saying things like people have to follow
    laws. The USA has gone seriously downhill in that respect in the last
    16 months or so. Some other parts of the world are worse - sometimes
    much worse. But most European countries have very strong freedom of
    speech protection as long as you are not harming other people with your speech. (Freedom of speech must be weighed against freedom /from/
    speech - just like freedom of religion and freedom from religion.)



    But, yeah, in the US people usually say the First Amendment guarantees peoples' freedom to have and express opinions about whatever.


    Many people do think that, as I understand it. But that's not what the constitution says. In particular, it only limits what Congress and
    federal authorities can do to stop people expressing themselves - it
    does not in any way require non-government entities from allowing people
    to say anything they want. Media (newspapers, TV, social media, etc.)
    can impose whatever limitations they want.

    Though, OTOH, I guess things like social media platforms still have the ability to ban people from the platform if they go around spreading hate-speech or similar.

    Correct. Equally, they are allowed to encourage hate-speech and ban
    people arguing against it.

    There are plenty of restrictions to free speech in the USA - you can't
    incite violence, for example. And something you say might be considered conspiracy to commit a crime. Things you say might fall foul of other
    laws, such as harassment, psychological abuse, prejudice, etc. Other countries' laws might put more emphasis on freedom from hate speech than
    the USA, but the idea that the USA has freedom of speech and Europeans
    do not is wrong.


    Apparently I guess that was a problem in the past with DJT, then he got banned off of Twitter, then he started his own social network, then Elon bought Twitter and renamed it X, and DJT got back on there, ...


    Where corporations can lead search-and-seizure operations for claimed
    IP violations;

    No, they can't.

    And in European countries, unlike the USA, corporations don't get to
    lie and cheat then claim "freedom of speech".



    Saw a thing not too long ago talking about how apparently Sega left some Nintendo devkits in an old office building, then abandoned the building,
    and later the building owners sold off all the old junk that was left in
    the buildings.

    Story goes that the guy who bought up some of the old junk posted about
    it on the internet, and then Sega + Nintendo + UK Police went in and arrested the guy and took all his stuff (then they released the guy, but
    he didn't get the stuff back), because the idea was that him having the devkits was considered as theft of intellectual property.


    So what you are saying here is that the /police/ conducted a raid and
    seizure in connection with suspected unlawfully obtained goods and/or industrial espionage, acting on information provided by a company that believed it was a victim of the crime? And that when the dust settled,
    they realised that there was no intentional crime?

    That's not the breakdown of free society as you implied - it's the
    police doing their job of enforcing the law, but possibly making the
    wrong judgement call. Police in every country have to make decisions
    based on limited information, and sometimes they make the wrong
    decision. (I don't know this case, and can't say if they were wrong or right.)


    Eg (finding a few videos talking about one of the incidents): https://www.youtube.com/watch?v=Sy9Eb8J0xGk https://www.youtube.com/watch?v=NU040CTdJI0


    I do not want to click on your links and follow you down your rabbit
    hole. The Youtube algorithm has learned that I like maths and physics
    videos, some computing stuff, some comedy, linguistics, etc. I'd rather
    it didn't think I was interested in conspiracy theories about the
    breakdown of every country that does not follow Maga philosophies.


    Remember, freedoms are always a balance, not an absolute.  Lots of
    types of freedom for one person reduce other freedoms for other people.


    OK.


    ...


    So, sorta like California but worse...

    California apparently banned the 60/40 lead/tin stuff IIRC, but still
    allows people to freely possess lead-free solder (so people
    apparently need to smuggle the 60/40 into CA if they want to use it).
    Everywhere else, 60/40 is OK. Well, and CA has the "age verification"
    controversy, etc.

    I can't answer for California, but if I want leaded solder I can just
    order some.  But the regulations against the use of lead in general
    are a good thing - the freedom to drink water without lead trumps the
    freedom of a handful of people to use cheaper and lower temperature
    soldering irons.


    Where I am, solder is sold on Amazon or similar...

    Had seen videos where people made it seem like solder was some sort of black-market contraband.

    So you know you can get solder in the post in a couple of days, but you
    have seen someone on a video saying it has been banned and you have to
    smuggle it on the black market - and you believed the video, not your
    own experience?


    Looking around, apparently the restrictions were specifically on lead-
    based solder though, rather than restricting all solder.


    Of course. Lead is a neuropoison, and has caused significant reduction
    in mental capacity (and other health problems) for vast numbers of
    people. An argument has been made that the fall of the Roman Empire can
    be partially blamed on lead pipes and lead dishes. Lead from petrol has caused massive low-level poisoning. Lead in groundwater causes
    poisoning. It makes a lot of sense to have regulations to reduce the
    use of lead in other situations - such as solder - where there are
    perfectly good alternatives.


    In the case of California, did see something not too long ago saying
    that they were trying to get something passed to ban personal ownership
    of 3D printers and CNC machines.

    Though, I didn't see anyone else talking about this, so it seemed unconfirmed.


    Don't misunderstand me - sometimes it really is a case of politicians
    doing stupid things. Sometimes it is for personal profit or the result
    of lobbying, often it is well-intentioned but not matched by an
    understanding of the implications. Here the lawmakers saw that people
    can make gun parts on 3-D printers, and wanted to stop that from being possible (fair enough as an aim). The resulting proposed legislation
    would have banned all personal usage of 3-D printers - a real "throw the
    baby out with the bathwater" solution.


    There is a lot more talking going on about the CA "OS age verification" bull, and now something saying that the US federal people are now
    looking into something similar (groan, this has a risk to potentially
    ruin open source and make everything suck...). Hopefully it goes the way
    of past proposals for bans on OSS and RISC-V and similar, ...

    So, not like US is exactly perfect either...

    The situation here is that social media is not suitable or safe for
    kids. (It is not safe or suitable for adults either, but it's harder to
    argue that politically - "think of the kids" is always good for votes.)
    Social media countries don't want to do anything about this, making any
    kind of realistic registration or age checks, and they certainly don't
    want to have to remove the dangerous crap they host. So they punt the
    problem - they promise politicians lots of money if the politicians
    impose laws saying the OS or other platforms must handle the age
    verification. I don't know where this one will all end. (There's an
    easy solution - social media companies could charge $10 a year per
    account, payable only via credit card. That would immediately solve
    much of the problems they cause.)







    Could be wrong, this is from memory and stuff I heard on the internet.


    You should be a lot more careful about what you watch on the internet.


    Possibly.

    Then again, I guess a lot of the news I had seen had also been fed
    through the lens of video game commentators and similar.


    Video game commentators are good for comments on video games.

    You would do well to look at sites like ground.news or allsides.com that
    make a specific point of showing news from multiple different sites to
    help you understand the biases. Or look at multiple news sources that
    are publicly funded but independent of any direct government control,
    such as the BBC website. For privately owned news sources, find one
    that charges you money - "free" sites still charge you, but in hidden
    ways. No one site is perfect - you have to combine them.



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Fri Apr 17 14:47:50 2026
    From Newsgroup: comp.arch

    On 17/04/2026 14:05, Michael S wrote:
    On Fri, 17 Apr 2026 08:51:12 GMT
    anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote:

    David Brown <david.brown@hesbynett.no> writes:
    On 16/04/2026 20:15, BGB wrote:
    And, where a person can be arrested, for stuff they say on social
    media (or "thought crime" as some are calling it);

    Only thoughtless people are calling it that. You've been watching
    tool much Fox News

    Or he has been watching too much Youtube (or the like). Every time
    somebody tells me that he thinks that something is true that isn't, or
    makes a strange judgement, as in this case, and I ask them where they
    got that from, they tell me "Youtube".


    That does seem to be one of BGB's sources, yes. There's a lot of good
    and interesting stuff on Youtube too, but you have to pick your choices actively - not just let algorithms and autoplay wander through popular
    videos.


    Pay attention that David Brown didn't say that things mentioned by BGB
    don't actually happen in UK. He was merely disagreeinng with Orwellian naming.


    While that is true of what I wrote there, I do actually think a lot of
    what BGB wrote was incorrect. Many parts had a grain of truth that had
    been exaggerated well beyond what was reasonable - but the grain of
    truth was still there. Some laws and regulations are significantly
    different between the USA and the UK, and it is entirely reasonable to disagree with or disapprove of some of them.

    The UK does not have "thought crime" in any sense. But it is true that
    it is possible to make postings on social media that constitute criminal behaviour in the UK. It is also true in the USA. (For example,
    threatening the president is a crime, no matter how unrealistic or
    laughable the threat may be.) I think it is fair to say that it is
    easier for a post to be a crime in the UK than the USA, but there is not
    as much of a difference as some people (and some Youtubers!) think.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Fri Apr 17 15:01:12 2026
    From Newsgroup: comp.arch

    On 17/04/2026 14:11, Bill Findlay wrote:
    On 17 Apr 2026, David Brown wrote
    (in article <10rsik4$287kv$1@dont-email.me>):

    On 16/04/2026 20:15, BGB wrote:

    Could be wrong, this is from memory and stuff I heard on the internet.

    You should be a lot more careful about what you watch on the internet.

    Bravo! You put a lot more work into that than I could
    stomach in response to Fuck News talking points.
    Thank you.


    I've "known" BGB for many years on Usenet. He is very intelligent, but sometimes a bit too quick to trust the wrong sources. I hope I can
    encourage him to be more careful about what to trust and what not to
    trust. (And that includes not believing things just because /I/ say so
    either - I can be wrong too.)

    Fun fact - I heard about the "ground.news" site I mentioned because they sponsored some Youtube videos I have watched :-)

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Fri Apr 17 16:07:21 2026
    From Newsgroup: comp.arch

    David Brown wrote:
    On 17/04/2026 09:20, BGB wrote:
    On 4/17/2026 1:05 AM, David Brown wrote:
    Complete nonsense.

    But both the UK and Norway have restrictions on people carrying
    around deadly weapons of all sorts.  The freedom not to be stabbed,
    shot, or otherwise injured or killed trumps the freedom to carry such
    weapons.


    Fair enough.

    Later went and asked Gemini about it, it said that the laws restrict
    carrying things with sharp tips (like knives and similar) rather than >> possession of them (say, at a person's house).

    I don't think any LLM is going to be a good source of information here. Gemini might not be as bad as Grok, but AI will often miss the point,
    and be heavily influenced by the kinds of drivel that is often published
    on the net.

    Basically, the laws say that if you are caught with a large screwdriver
    that you are using to stab or threaten people, you will be charged and > treated as though you were carrying a knife for that purpose.  Older
    laws banned carrying knifes and the like in public places - newer laws > target weapons, where a "weapon" is anything that you use or plan to use
    for violence or threats of violence.
    Norway did not use to have any restrictions at all on tools, like knives/axes/scythes up to and including shotguns.
    The current regulations have explicit exceptions for knife carry in
    public plaes when those knives (or swords!) are part of uniform or
    traditional dress. I.e around May 17th it is perfectly fine to carry
    large amounts of metal (mostly silver) through airport security, but
    they might tell you that the silver-decorated knife should go in checked luggage.
    Similarly, Scouts' knives are fine anywhere.
    Regarding firearms the Norwegian regulations are still way less strict
    than the UK, pretty much anyone without a mental illness or felony
    record can legally own a handgun:
    You just need to start by becoming a member of a local pistol shooting
    club, then turn up regularly to practice using club guns (at least 10
    times or more) over a year, then pass a police security vetting which
    check for those mental/felony bans.
    At this point you can legally buy something like a Glock or 1911 and get the serial number on your credit-card sized ownership card.
    If you are very active, then you can get separate permits for a primary
    and spare gun for each of the competition classes you regularly compete
    in, I know people with 10+ handguns in their gun safe.
    However, unlike the US, there is absolutely no way to get either an open or concealed carry permit unless you are military or police.
    Any handgun you own _must_ be stored in a proper gun safe, in can only
    be brought out for cleaning and to transport it to the shooting range.
    During that transport, the gun cannot be in the front seat with you, it
    has to stay in the trunk or back seat, unloaded of course, and still in
    its carrying box.
    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Fri Apr 17 16:57:20 2026
    From Newsgroup: comp.arch

    On 17/04/2026 16:07, Terje Mathisen wrote:
    David Brown wrote:
    On 17/04/2026 09:20, BGB wrote:
    On 4/17/2026 1:05 AM, David Brown wrote:
    Complete nonsense.

    But both the UK and Norway have restrictions on people carrying
    around deadly weapons of all sorts.  The freedom not to be stabbed, >>>> shot, or otherwise injured or killed trumps the freedom to carry
    such weapons.


    Fair enough.

    Later went and asked Gemini about it, it said that the laws restrict
    carrying things with sharp tips (like knives and similar) rather than
    possession of them (say, at a person's house).

    I don't think any LLM is going to be a good source of information
    here. Gemini might not be as bad as Grok, but AI will often miss the
    point, and be heavily influenced by the kinds of drivel that is often
    published on the net.

    Basically, the laws say that if you are caught with a large
    screwdriver that you are using to stab or threaten people, you will be
    charged and treated as though you were carrying a knife for that
    purpose.  Older laws banned carrying knifes and the like in public
    places - newer laws target weapons, where a "weapon" is anything that
    you use or plan to use for violence or threats of violence.

    Norway did not use to have any restrictions at all on tools, like knives/axes/scythes up to and including shotguns.

    The current regulations have explicit exceptions for knife carry in
    public plaes when those knives (or swords!) are part of uniform or traditional dress. I.e around May 17th it is perfectly fine to carry
    large amounts of metal (mostly silver) through airport security, but
    they might tell you that the silver-decorated knife should go in checked luggage.


    I were my sgian-dubh with my kilt. Despite the name, it's not very
    hidden. It used to be legal to have one in the cabin of planes in the
    UK, as long as it stayed in your sock.

    Similarly, Scouts' knives are fine anywhere.

    Regarding firearms the Norwegian regulations are still way less strict
    than the UK, pretty much anyone without a mental illness or felony
    record can legally own a handgun:

    You just need to start by becoming a member of a local pistol shooting
    club, then turn up regularly to practice using club guns (at least 10
    times or more) over a year, then pass a police security vetting which
    check for those mental/felony bans.

    At this point you can legally buy something like a Glock or 1911 and get
    the serial number on your credit-card sized ownership card.

    If you are very active, then you can get separate permits for a primary
    and spare gun for each of the competition classes you regularly compete
    in, I know people with 10+ handguns in their gun safe.

    However, unlike the US, there is absolutely no way to get either an open
    or concealed carry permit unless you are military or police.

    Indeed. And you have to keep them locked in a gun safe, which the
    police can check at short notice.

    Similarly, you can own a hunting rifle if you pass the hunting tests and
    are vetted by the police.


    Any handgun you own _must_ be stored in a proper gun safe, in can only
    be brought out for cleaning and to transport it to the shooting range.

    During that transport, the gun cannot be in the front seat with you, it
    has to stay in the trunk or back seat, unloaded of course, and still in
    its carrying box.


    Basically, in Norway you can have guns for sport or hunting, but not for threatening or shooting people.

    The gun laws in the UK are a lot more restrictive (after all, there's
    not nearly as much scope for hunting in most of the UK). Farmers can
    get shotgun licenses, but I think if you have a pistol for sport it has
    to be kept at the pistol club, not at home. (I have not looked at the
    rules in detail, so I could be wrong or out-dated.)


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Fri Apr 17 17:30:07 2026
    From Newsgroup: comp.arch

    David Brown wrote:
    On 17/04/2026 16:07, Terje Mathisen wrote:
    David Brown wrote:
    On 17/04/2026 09:20, BGB wrote:
    On 4/17/2026 1:05 AM, David Brown wrote:
    Complete nonsense.

    But both the UK and Norway have restrictions on people carrying
    around deadly weapons of all sorts.  The freedom not to be
    stabbed, shot, or otherwise injured or killed trumps the freedom to >>>>> carry such weapons.


    Fair enough.

    Later went and asked Gemini about it, it said that the laws restrict
    carrying things with sharp tips (like knives and similar) rather
    than possession of them (say, at a person's house).

    I don't think any LLM is going to be a good source of information
    here. Gemini might not be as bad as Grok, but AI will often miss the >>> point, and be heavily influenced by the kinds of drivel that is often
    published on the net.

    Basically, the laws say that if you are caught with a large
    screwdriver that you are using to stab or threaten people, you will
    be charged and treated as though you were carrying a knife for that
    purpose.  Older laws banned carrying knifes and the like in public
    places - newer laws target weapons, where a "weapon" is anything that
    you use or plan to use for violence or threats of violence.

    Norway did not use to have any restrictions at all on tools, like
    knives/axes/scythes up to and including shotguns.

    The current regulations have explicit exceptions for knife carry in
    public plaes when those knives (or swords!) are part of uniform or
    traditional dress. I.e around May 17th it is perfectly fine to carry
    large amounts of metal (mostly silver) through airport security, but
    they might tell you that the silver-decorated knife should go in
    checked luggage.


    I were my sgian-dubh with my kilt.  Despite the name, it's not very hidden.  It used to be legal to have one in the cabin of planes in the
    UK, as long as it stayed in your sock.

    Similarly, Scouts' knives are fine anywhere.

    Regarding firearms the Norwegian regulations are still way less strict
    than the UK, pretty much anyone without a mental illness or felony
    record can legally own a handgun:

    You just need to start by becoming a member of a local pistol shooting
    club, then turn up regularly to practice using club guns (at least 10 >> times or more) over a year, then pass a police security vetting which >> check for those mental/felony bans.

    At this point you can legally buy something like a Glock or 1911 and
    get the serial number on your credit-card sized ownership card.

    If you are very active, then you can get separate permits for a
    primary and spare gun for each of the competition classes you
    regularly compete in, I know people with 10+ handguns in their gun safe.

    However, unlike the US, there is absolutely no way to get either an
    open or concealed carry permit unless you are military or police.

    Indeed.  And you have to keep them locked in a gun safe, which the
    police can check at short notice.

    Similarly, you can own a hunting rifle if you pass the hunting tests and
    are vetted by the police.


    Any handgun you own _must_ be stored in a proper gun safe, in can only
    be brought out for cleaning and to transport it to the shooting range.>>
    During that transport, the gun cannot be in the front seat with you,
    it has to stay in the trunk or back seat, unloaded of course, and
    still in its carrying box.


    Basically, in Norway you can have guns for sport or hunting, but not for threatening or shooting people.

    The gun laws in the UK are a lot more restrictive (after all, there's
    not nearly as much scope for hunting in most of the UK).  Farmers can
    get shotgun licenses, but I think if you have a pistol for sport it has
    to be kept at the pistol club, not at home.  (I have not looked at the rules in detail, so I could be wrong or out-dated.)
    Its worse as far as I know:
    Even Olympic shooters in the UK cannot own handguns, they have to be
    active military, with the gun(s) kept on base.
    Non-military shooters need to cross the channel in order to practise in
    France instead.
    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Fri Apr 17 15:45:07 2026
    From Newsgroup: comp.arch

    David Brown <david.brown@hesbynett.no> writes:
    On 16/04/2026 20:15, BGB wrote:
    On 4/15/2026 5:44 PM, Bill Findlay wrote:

    <snip>

    California apparently banned the 60/40 lead/tin stuff IIRC, but still
    allows people to freely possess lead-free solder (so people apparently
    need to smuggle the 60/40 into CA if they want to use it). Everywhere
    else, 60/40 is OK. Well, and CA has the "age verification" controversy,
    etc.

    I can't answer for California,

    I can. 60/40 solder is NOT banned in california. It is not allowed, however, to be used in drinking water plumbing applications (for fairly obvious reasons)
    and it must be labeled as potentially hazardous per prop 65.

    Most of what BGB wrote above seems completely wrong. 30 seconds with
    google before he/she posts facts would be a good habit for he/she to adopt.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From scott@scott@slp53.sl.home (Scott Lurndal) to comp.arch on Fri Apr 17 15:55:49 2026
    From Newsgroup: comp.arch

    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes:
    On 4/16/2026 5:13 PM, Scott Lurndal wrote:
    "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> writes:
    On 4/16/2026 11:52 AM, Scott Lurndal wrote:

    Brain fart. His squadron flys the F/A-18C and D models. The
    E's and F's will remain in the active fleet along with the F-35,

    Can he fly the F-35?

    Only if he gets a ride in the back seat. Which, since the F35
    is a single seater, is not gonna happen.

    Oh damn! Shit. He can fly the f-16?

    DAGS "ordie".
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Fri Apr 17 12:37:04 2026
    From Newsgroup: comp.arch

    On 4/17/2026 8:01 AM, David Brown wrote:
    On 17/04/2026 14:11, Bill Findlay wrote:
    On 17 Apr 2026, David Brown wrote
    (in article <10rsik4$287kv$1@dont-email.me>):

    On 16/04/2026 20:15, BGB wrote:

    Could be wrong, this is from memory and stuff I heard on the internet.

    You should be a lot more careful about what you watch on the internet.

    Bravo! You put a lot more work into that than I could
    stomach in response to Fuck News talking points.
    Thank you.


    I've "known" BGB for many years on Usenet.  He is very intelligent, but sometimes a bit too quick to trust the wrong sources.  I hope I can encourage him to be more careful about what to trust and what not to trust.  (And that includes not believing things just because /I/ say so either - I can be wrong too.)

    Fun fact - I heard about the "ground.news" site I mentioned because they sponsored some Youtube videos I have watched :-)


    Not usually been one for fact checking, as my interest areas are still (mostly) technical (rather than political or legal), so whatever
    political leaning I would have mostly shouldn't matter.



    But, yeah, sometimes it gets a little sketchy if it is just someone
    rambling on top of gameplay footage, like Subway Surfers, or similar.
    Back in the day, we had Audiosurf, but seems that Subway Surfers has
    overtaken this role.

    Some people have also used games like COD or Minecraft, but watching
    someone play these games from a first person POV for any length of time
    causes motion sickness.

    At one point, people doing videos with talking over the top of clips of Skibidi Toilet was pretty popular (during the high point of Skibidi
    Toilet, but its popularity seems to have weakened as of late).


    The video of the guy ranting about CA taking away personal ownership of
    3D printers and CNC machines was over the top of video of him working on
    one of his craft projects. Usually though, for stuff like this, there
    would be repetition from multiple sources (in a case of "one guy saying something, possibly all just nothing, many people saying the same thing, possibly true" sense).


    Sometimes there is a lot of stuff with people fighting over "Evolution
    vs Young Earth Creationism" and similar. Sometimes people arguing for
    the Earth being a flat disk (obviously wrong), ...

    All sorts of stuff going on...

    Sometimes does wander into international politics territory.




    Sort of reminded how for a while there were lots of YouTube sponsored
    segments for a company claiming to sell Lordship status...

    Then other people saying it was a scam, because that was "not how it
    worked". IIRC idea was that they bought a farm somewhere and were
    "selling" it in 1ft^2 parcels or similar, planting a little flag on each
    one, and then selling the people the title of "Lord Whatever" under the premise of them having their flag planted on a parcel of land in the UK
    or such...

    Had to look, couldn't initially remember name off-hand: https://en.wikipedia.org/wiki/Established_Titles

    Then the whole thing went away.
    Apparently a combination of public controversy and also the UK
    government apparently also being like "that is not how that works".

    ...


    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From BGB@cr88192@gmail.com to comp.arch on Fri Apr 17 13:13:34 2026
    From Newsgroup: comp.arch

    On 4/17/2026 7:09 AM, Bill Findlay wrote:
    On 17 Apr 2026, BGB wrote
    (in article <10rrsqc$22m9c$1@dont-email.me>):

    On 4/16/2026 5:00 PM, Bill Findlay wrote:
    On 16 Apr 2026, BGB wrote
    (in article <10rr8vi$1sh0n$1@dont-email.me>):
    ...

    But, AFAIK, the UK is the place that went and banned:
    Sharp points on knives;
    Sharp points on scissors;
    Buying solder without having certifications;
    So, it is effectively sold black-market in small amounts,
    to the electronics hobbyists.
    ...
    And, where a person can be arrested, for stuff they say on social media >>>> (or "thought crime" as some are calling it);
    Where corporations can lead search-and-seizure operations for claimed IP >>>> violations;

    It is clear from that claptrap that in fact you know very little.
    (MAGA shills like JD are not a trustworthy source of information.)

    I am not really part of the MAGA crowd.
    I am not really into politics in general...

    But, this is still what people say online about the UK and CA and similar...

    So, myevaluation of your words was spot on.

    If you mean to say that you think I am also part of the MAGA crowd (or
    idolize DJT or JDV), I will disagree...


    But, if you mean it in the sense that I have no particular expertise in international law or similar, then probably true enough (not exactly
    that I have much basis to disagree on this point).

    Most of what I have gathered on this topic has mostly been from the
    "streams of random people talking about stuff on the internet" (usually
    mixed in with other stuff, particularly if doom scrolling on X or
    similar...).


    And, sometimes, one can have something to play in the background while
    they are working on code or similar, that doesn't require all that much attention, ... A lot of times, YouTube videos where people just sort of
    ramble on about some topic can work well, when not just listening to
    music or similar.


    But, in general, rarely did people really say much about either the UK
    or CA, if they talk about them at all, these are a few places that
    people seem to like to rip on.

    The other side here being much more into going on about the whole thing
    in Gaza (and human rights violations, ...), TX oppressing reproductive
    rights, various places opposing people's ability to express their
    preferred gender identity, etc. These two areas rarely overlap though on
    a single topic. Though, admittedly, I don't really understand the whole "gender identity" thing all that well, doesn't strongly interact with my
    own experience.


    Well, and the places they do overlap is usually in conflict over the perception of public figures like DJT (like whether he is hero or demon,
    ...), and similar...


    ...



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From quadi@quadibloc@ca.invalid to comp.arch on Fri Apr 17 21:33:25 2026
    From Newsgroup: comp.arch

    On Fri, 17 Apr 2026 05:21:57 +0000, quadi wrote:

    This led me to feel I had the perfect spot in which to re-introduce to
    this iteration of the Concertina II architecture that most bizarre
    feature of the architecture which was cited as one of its defining features... I think of it as an exotic and strictly optional feature, existing mainly to enhance emulation, while the ability to go from RISC
    to CISC to VLIW is what defines Concertina II.

    And now I've increased the number of header types by one, so that the
    extra options can be combined with the full instruction set, rather than
    these additions being disjoint from each other so that one can only choose
    one but not the other. If you need both at once, they're available at the
    cost of a little more overhead.

    John Savard
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Fri Apr 17 21:38:49 2026
    From Newsgroup: comp.arch

    John Levine <johnl@taugh.com> schrieb:

    But let's get back to gate delays, please.

    Let's.

    How do people actually count gate delays, and how useful is it?
    Different gates have different delays (obviously), so counting
    an inverter the same as a three-input NOR gate (independent of
    fan-out, even) seems to be a large simplification which may be
    useful for a fairly rough approximation, but not that much better.

    Or am I missing something?
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Sat Apr 18 01:11:49 2026
    From Newsgroup: comp.arch


    Thomas Koenig <tkoenig@netcologne.de> posted:

    John Levine <johnl@taugh.com> schrieb:

    But let's get back to gate delays, please.

    Let's.

    How do people actually count gate delays, and how useful is it?
    Different gates have different delays (obviously), so counting
    an inverter the same as a three-input NOR gate (independent of
    fan-out, even) seems to be a large simplification which may be
    useful for a fairly rough approximation, but not that much better.

    Or am I missing something?

    There is the "standard" FO4 counting scheme where 1 gate drives
    4 other gate inputs, and in this scheme, a D-type flip-flop was
    2.5 gates of delay.

    As one can guess, gates can be sized: as small as obeys the FAB
    design rules, to <basically> as big as one can afford. Naturally,
    as gates get bigger, they can drive bigger loads--BUT they also
    present bigger loads to the gates driving them.

    Conway figured out that the fastest way to "buffer up" a signal
    was to use inverters staged in the ratio of 1:e:e^2:e^3... with
    e being the standard 2.7... base of natural logarithms. Rounding
    e up to 3 degrades speed by less than 1%, rounding up to 4 only
    slows down 10% or so--so, most buffering is done at FO4, where
    a minimum sized gate drives an inverter 4× as big which would then
    drive another inverter 16× as big...

    Each transistor between a power connection and the signal connec-
    tion basically, adds its own transconductance to the electrical path
    (ignoring body effect). Knowing that deMorgan's laws apply; we
    instantly see that a Nand gate is simply a Nor gate with inverted
    inputs. A Nand gate has its serial string of FETs between signal
    and ground and a parralel path from signal to Vdd, while a Nor has
    its serial FETs between signal and Vdd and its parallel path between
    signal and ground. To deal with these serial paths, the transistors
    are lengthened; a 2Nand has N-channels 2× as wide and can use 1×
    P channels, a 3Nand has 3× N-channels and still 1× P-channels, ...
    {Nors are similar but reverse Ns and Ps} Somewhere along the line,
    the parallel path FETs have to get lengthened because the capacitance
    of all the serial path diffusion capacitance (to maintain rather
    equal pull up and pull down).

    Soon, one realizes that one needs SPICE simulation with accurate
    models to push the edge--just like when pushing the Young's Modulus
    in engineering models.

    In fast designs, there is an entire team charged with buffering and
    routing the CLOCK so that every gate in 10^2 mm^2 receives its rising
    edge and falling edge with less than 1 gate of delay 'skew' across
    the whole chip using wires that have more than 1 gate of delay when
    jumping over 30 gates. CRAY-1 had less than 1ns of clock skew in a
    machine the size of restaurant refrigerator using wires with 2ns/foot
    of delay. In ASIC designs, we assume (starting out) that there will
    be 1/2 clock of skew in the 'clock'
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Sat Apr 18 10:56:56 2026
    From Newsgroup: comp.arch

    On 17/04/2026 19:37, BGB wrote:
    On 4/17/2026 8:01 AM, David Brown wrote:
    On 17/04/2026 14:11, Bill Findlay wrote:
    On 17 Apr 2026, David Brown wrote
    (in article <10rsik4$287kv$1@dont-email.me>):

    On 16/04/2026 20:15, BGB wrote:

    Could be wrong, this is from memory and stuff I heard on the internet. >>>>
    You should be a lot more careful about what you watch on the internet.

    Bravo! You put a lot more work into that than I could
    stomach in response to Fuck News talking points.
    Thank you.


    I've "known" BGB for many years on Usenet.  He is very intelligent,
    but sometimes a bit too quick to trust the wrong sources.  I hope I
    can encourage him to be more careful about what to trust and what not
    to trust.  (And that includes not believing things just because /I/
    say so either - I can be wrong too.)

    Fun fact - I heard about the "ground.news" site I mentioned because
    they sponsored some Youtube videos I have watched :-)


    Not usually been one for fact checking, as my interest areas are still (mostly) technical (rather than political or legal), so whatever
    political leaning I would have mostly shouldn't matter.


    Fact checking is also important in technical fields!

    But while you might not be particularly interested in politics, politics
    and other aspects of societies and countries around the world still
    affect you. It is still good to have some rough ideas about what is
    going on in the world - and how to tell if something is true or not (or
    at least likely to be true or not).



    But, yeah, sometimes it gets a little sketchy if it is just someone
    rambling on top of gameplay footage, like Subway Surfers, or similar.
    Back in the day, we had Audiosurf, but seems that Subway Surfers has overtaken this role.

    Some people have also used games like COD or Minecraft, but watching
    someone play these games from a first person POV for any length of time causes motion sickness.

    At one point, people doing videos with talking over the top of clips of Skibidi Toilet was pretty popular (during the high point of Skibidi
    Toilet, but its popularity seems to have weakened as of late).


    The video of the guy ranting about CA taking away personal ownership of
    3D printers and CNC machines was over the top of video of him working on
    one of his craft projects. Usually though, for stuff like this, there
    would be repetition from multiple sources (in a case of "one guy saying something, possibly all just nothing, many people saying the same thing, possibly true" sense).


    One particular politician is famous for prefacing many of his boldest
    and most absurd lies with "many people are saying...". Many people can
    say the same thing, and still be wrong. (Just look at religion around
    the world. Many people say one thing. Many people say something
    totally different. They can't all be right - many people are wrong.)

    "Proof by repeated assertion" is not a valid argument, whether it is one person saying something many times, or many people saying the same thing.



    Sometimes there is a lot of stuff with people fighting over "Evolution
    vs Young Earth Creationism" and similar. Sometimes people arguing for
    the Earth being a flat disk (obviously wrong), ...


    I'm glad that you at least consider "flat Earth" to be obviously wrong.
    The same applies to any kind of "young earth" idea.

    All sorts of stuff going on...

    Sometimes does wander into international politics territory.




    Sort of reminded how for a while there were lots of YouTube sponsored segments for a company claiming to sell Lordship status...


    It is possible to argue that believing the nonsense you have heard about
    is harmless - though I would say making yourself look foolish can be considered "harm". But scams con people out of real money. Fair enough
    if it is a small amount of money, and clearly nonsense, bought as a joke
    - like buying insurance against alien kidnapping. Please be careful
    about any kinds of scams you come across.

    Then other people saying it was a scam, because that was "not how it worked". IIRC idea was that they bought a farm somewhere and were
    "selling" it in 1ft^2 parcels or similar, planting a little flag on each one, and then selling the people the title of "Lord Whatever" under the premise of them having their flag planted on a parcel of land in the UK
    or such...

    Had to look, couldn't initially remember name off-hand: https://en.wikipedia.org/wiki/Established_Titles

    Then the whole thing went away.
    Apparently a combination of public controversy and also the UK
    government apparently also being like "that is not how that works".

    ...



    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Sat Apr 18 11:11:35 2026
    From Newsgroup: comp.arch

    BGB wrote:
    Sort of reminded how for a while there were lots of YouTube sponsored segments for a company claiming to sell Lordship status...

    Then other people saying it was a scam, because that was "not how it worked". IIRC idea was that they bought a farm somewhere and were
    "selling" it in 1ft^2 parcels or similar, planting a little flag on each one, and then selling the people the title of "Lord Whatever" under the premise of them having their flag planted on a parcel of land in the UK
    or such...

    Had to look, couldn't initially remember name off-hand: https://en.wikipedia.org/wiki/Established_Titles

    Then the whole thing went away.
    Apparently a combination of public controversy and also the UK
    government apparently also being like "that is not how that works".

    Something similar to this actually happened, in Norway:

    At one point, after establishing that all men could vote, it was
    understood that this of course only meant men with a tie to the land,
    i.e farmers, millers, blacksmiths, industialists etc.

    In reaction, a group working to make voting rights really universal
    bought up large tracts of worthless swamp/marshland and split it into
    square foot parcels. Armed with a owership certificate for said plot,
    you could not be denied your voting rights.

    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Sat Apr 18 11:37:01 2026
    From Newsgroup: comp.arch

    On 18/04/2026 11:11, Terje Mathisen wrote:
    BGB wrote:
    Sort of reminded how for a while there were lots of YouTube sponsored
    segments for a company claiming to sell Lordship status...

    Then other people saying it was a scam, because that was "not how it
    worked". IIRC idea was that they bought a farm somewhere and were
    "selling" it in 1ft^2 parcels or similar, planting a little flag on
    each one, and then selling the people the title of "Lord Whatever"
    under the premise of them having their flag planted on a parcel of
    land in the UK or such...

    Had to look, couldn't initially remember name off-hand:
    https://en.wikipedia.org/wiki/Established_Titles

    Then the whole thing went away.
    Apparently a combination of public controversy and also the UK
    government apparently also being like "that is not how that works".

    Something similar to this actually happened, in Norway:


    Well, similar in that it was parcelling of land - dissimilar in that it
    was not all a scam!

    At one point, after establishing that all men could vote, it was
    understood that this of course only meant men with a tie to the land,
    i.e farmers, millers, blacksmiths, industialists etc.

    In reaction, a group working to make voting rights really universal
    bought up large tracts of worthless swamp/marshland and split it into
    square foot parcels. Armed with a owership certificate for said plot,
    you could not be denied your voting rights.


    I've also seen this done in the UK as a way to protect land from
    developers. A forest (or whatever land is to be protected) is bought
    then parcelled up and sold to thousands of people. If someone wants to destroy the forest to build houses, factories, or whatever, they need to
    find all these owners and buy from each of them individually.

    --- Synchronet 3.21f-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sat Apr 18 10:08:10 2026
    From Newsgroup: comp.arch

    David Brown <david.brown@hesbynett.no> schrieb:

    I've also seen this done in the UK as a way to protect land from
    developers. A forest (or whatever land is to be protected) is bought
    then parcelled up and sold to thousands of people. If someone wants to destroy the forest to build houses, factories, or whatever, they need to find all these owners and buy from each of them individually.

    You can also buy a square foot of land to get a (worthless, but
    amusing) title, for example as "Laird" in Scotland.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.21f-Linux NewsLink 1.2