Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #400344 > unrolled thread
| Started by | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| First post | 2026-07-22 01:38 +0200 |
| Last post | 2026-07-23 11:18 +0200 |
| Articles | 20 on this page of 183 — 20 participants |
Back to article view | Back to comp.lang.c
Prioritize Performance over Correctness Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-07-22 01:38 +0200
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-21 17:26 -0700
Re: Prioritize Performance over Correctness cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-22 01:50 +0000
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-21 20:25 -0700
Re: Prioritize Performance over Correctness cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-22 17:37 +0000
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-22 13:26 -0700
Re: Prioritize Performance over Correctness Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-07-22 07:33 +0200
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-07-22 10:41 +0200
Re: Prioritize Performance over Correctness BGB <cr88192@gmail.com> - 2026-07-22 18:08 -0500
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-07-23 10:31 +0200
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-23 14:31 -0700
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-23 14:48 -0700
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-23 15:11 -0700
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-07-24 09:23 +0200
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-24 03:14 -0700
Re: Prioritize Performance over Correctness scott@slp53.sl.home (Scott Lurndal) - 2026-07-24 14:56 +0000
Re: Prioritize Performance over Correctness antispam@fricas.org (Waldek Hebisch) - 2026-07-25 16:30 +0000
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-27 09:33 -0400
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-28 00:22 +0800
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-27 12:58 -0700
Re: Prioritize Performance over Correctness BGB <cr88192@gmail.com> - 2026-07-27 15:37 -0500
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-27 17:13 -0400
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-27 15:17 -0700
Re: Prioritize Performance over Correctness scott@slp53.sl.home (Scott Lurndal) - 2026-07-28 01:18 +0000
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-28 15:40 +0800
Re: Prioritize Performance over Correctness cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 14:18 +0000
Multics( Re: Prioritize Performance over Correctness) Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-28 22:48 +0800
Re: Multics( Re: Prioritize Performance over Correctness) scott@slp53.sl.home (Scott Lurndal) - 2026-07-28 15:08 +0000
Re: Multics( Re: Prioritize Performance over Correctness) Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-28 23:30 +0800
Re: Multics( Re: Prioritize Performance over Correctness) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 19:08 +0000
Re: Multics( Re: Prioritize Performance over Correctness) Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 04:08 +0800
Re: Multics( Re: Prioritize Performance over Correctness) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 22:15 +0000
Re: Multics( Re: Prioritize Performance over Correctness) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 22:26 +0000
Re: Multics( Re: Prioritize Performance over Correctness) Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 06:41 +0800
Re: Multics( Re: Prioritize Performance over Correctness) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 23:23 +0000
Picture of Organicks' book Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 16:01 +0800
Re: Picture of Organicks' book cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-29 13:46 +0000
Re: Picture of Organicks' book R Kym Horsell <kymhorsell@gmail.com> - 2026-07-29 16:54 +0000
Re: Multics( Re: Prioritize Performance over Correctness) Cóilín Nioclásín Glostéir <thanks-to@Taf.com> - 2026-07-29 23:22 +0000
Re: Multics( Re: Prioritize Performance over Correctness) Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-08-15 15:55 -0700
Re: Multics( Re: Prioritize Performance over Correctness) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 18:58 +0000
Re: Multics( Re: Prioritize Performance over Correctness) Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 04:10 +0800
Re: Multics( Re: Prioritize Performance over Correctness) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 22:20 +0000
Re: Multics( Re: Prioritize Performance over Correctness) scott@slp53.sl.home (Scott Lurndal) - 2026-07-29 14:44 +0000
Re: Multics( Re: Prioritize Performance over Correctness) cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-30 02:08 +0000
Re: Prioritize Performance over Correctness Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-08-16 07:59 -0700
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-27 17:59 -0700
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-28 15:42 +0800
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-28 03:22 -0700
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-28 19:21 +0800
Re: Prioritize Performance over Correctness bart <bc@freeuk.com> - 2026-07-28 13:02 +0100
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-28 20:18 +0800
Re: Prioritize Performance over Correctness bart <bc@freeuk.com> - 2026-07-28 14:17 +0100
Re: Prioritize Performance over Correctness BGB <cr88192@gmail.com> - 2026-07-28 16:02 -0500
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 16:45 +0800
Re: Prioritize Performance over Correctness bart <bc@freeuk.com> - 2026-07-29 12:03 +0100
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 19:32 +0800
Re: Prioritize Performance over Correctness bart <bc@freeuk.com> - 2026-07-29 13:42 +0100
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 20:49 +0800
Re: Prioritize Performance over Correctness bart <bc@freeuk.com> - 2026-07-29 16:01 +0100
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-29 12:53 -0700
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-31 14:21 -0400
Re: Prioritize Performance over Correctness bart <bc@freeuk.com> - 2026-07-31 20:07 +0100
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-31 13:00 -0700
Re: Prioritize Correctness Over Performance Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-01 02:34 +0000
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-28 16:08 -0700
Re: Prioritize Performance over Correctness cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 23:28 +0000
Re: Prioritize Performance over Correctness cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 14:22 +0000
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-28 13:51 -0700
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-28 20:32 -0400
Re: Prioritize Performance over Correctness cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-28 14:20 +0000
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-28 13:54 -0700
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 05:00 +0800
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-28 20:25 -0400
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-29 14:55 -0700
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-28 20:31 -0400
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-28 21:26 -0700
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-29 14:57 -0700
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-29 15:33 -0700
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-29 16:22 -0700
Re: Prioritize Performance over Correctness Richard Harnden <richard.nospam@gmail.invalid> - 2026-07-30 07:40 +0100
Re: Prioritize Correctness over Performance Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-07-30 06:48 +0000
Re: Prioritize Correctness over Performance James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-30 06:50 -0400
Re: Prioritize Correctness over Performance Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-30 03:54 -0700
Re: Prioritize Correctness over Performance James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-30 08:24 -0400
Re: Prioritize Correctness over Performance Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-30 14:40 -0700
Re: Prioritize Correctness over Performance "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-30 19:39 -0700
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-30 06:44 -0400
Re: Prioritize Performance over Correctness Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-07-30 21:00 +0000
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-30 14:38 -0700
Re: Prioritize Performance over Correctness Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-07-30 21:53 +0000
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-30 15:10 -0700
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-30 19:40 -0700
Re: Prioritize Performance over Correctness cross@spitfire.i.gajendra.net (Dan Cross) - 2026-07-31 02:43 +0000
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-30 19:44 -0700
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-30 19:58 -0700
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-08-01 01:25 -0700
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-08-02 23:14 +0200
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-08-02 14:37 -0700
Re: Prioritize Performance over Correctness Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-02 22:51 +0000
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-08-02 16:43 -0700
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-08-03 12:03 -0700
Re: Prioritize Correctness Over Performance Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-03 23:49 +0000
Re: Prioritize Correctness Over Performance "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-08-03 19:35 -0700
MS-DOS memory models (was: Re: Prioritize Performance over Correctness) Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-08-03 08:08 +0800
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-08-03 10:16 +0200
Re: Prioritize Performance over Correctness Richard Harnden <richard.nospam@gmail.invalid> - 2026-08-03 10:41 +0100
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-08-03 12:28 +0200
Malicious Computer Architecture (was: Re: Prioritize Performance over Correctness) Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-08-03 19:23 +0800
Re: Malicious Computer Architecture David Brown <david.brown@hesbynett.no> - 2026-08-03 14:01 +0200
Re: Malicious Computer Architecture Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-08-03 22:52 +0800
Re: Malicious Computer Architecture David Brown <david.brown@hesbynett.no> - 2026-08-03 19:41 +0200
Re: Malicious Computer Architecture "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-08-03 13:13 -0700
Re: Malicious Computer Architecture "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-08-03 13:10 -0700
Re: Malicious Computer Architecture (was: Re: Prioritize Performance over Correctness) scott@slp53.sl.home (Scott Lurndal) - 2026-08-03 14:29 +0000
Johnny Depp prevention [Windows 11 etc...] (Was: Malicious Computer Architecture) Mild Shock <janburse@fastmail.fm> - 2026-08-03 18:10 +0200
But how can you deploy. when its ROM? (Was: Johnny Depp prevention [Windows 11 etc...]) Mild Shock <janburse@fastmail.fm> - 2026-08-03 18:15 +0200
GPU Elasticity: Collective Communications Libraries (Was: But how can you deploy. when its ROM?) Mild Shock <janburse@fastmail.fm> - 2026-08-07 14:37 +0200
What are Flits and Phits? [Network on a Chip] (Re: GPU Elasticity: Collective Communications Libraries) Mild Shock <janburse@fastmail.fm> - 2026-08-07 18:07 +0200
Cristallina: Thank you for the Beam (Re: What are Flits and Phits? [Network on a Chip]) Mild Shock <janburse@fastmail.fm> - 2026-08-09 21:22 +0200
Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] Mild Shock <janburse@fastmail.fm> - 2026-08-18 16:26 +0200
How to shoot yourself in the foot (Re: Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] Mild Shock <janburse@fastmail.fm> - 2026-08-18 16:50 +0200
Re: How to shoot yourself in the foot (Re: Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-08-19 03:24 +0800
Re: Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-08-19 03:21 +0800
Re: Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] Aidan Kehoe <kehoea@parhasard.net> - 2026-08-18 21:13 +0100
The Mac Neo is a Budget Monster [GPU Channels] (Re: What are Flits and Phits? [Network on a Chip]) Mild Shock <janburse@fastmail.fm> - 2026-08-11 16:27 +0200
The luminaries of duct-tape engineering [Sweeney and Torvald] (Was: The Mac Neo is a Budget Monster [GPU Channels]) Mild Shock <janburse@fastmail.fm> - 2026-08-11 16:51 +0200
Re: Malicious Computer Architecture Aidan Kehoe <kehoea@parhasard.net> - 2026-08-03 19:51 +0100
Re: Malicious Computer Architecture Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-08-05 00:22 +0800
Re: Malicious Computer Architecture Richard Harnden <richard.nospam@gmail.invalid> - 2026-08-04 19:10 +0100
Re: Malicious Computer Architecture Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-08-05 03:21 +0800
Re: Malicious Computer Architecture Kaz Kylheku <046-301-5902@kylheku.com> - 2026-08-06 21:55 +0000
Re: Malicious Computer Architecture Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-08-07 06:31 +0800
Re: Malicious Computer Architecture Aidan Kehoe <kehoea@parhasard.net> - 2026-08-06 23:01 +0100
A Case for Impurity: The Applied Pi Calculus (Re: Malicious Computer Architecture) Mild Shock <janburse@fastmail.fm> - 2026-08-04 14:58 +0200
The Sandcastle of Paul Taraus Interactors (Re: A Case for Impurity: The Applied Pi Calculus) Mild Shock <janburse@fastmail.fm> - 2026-08-04 15:10 +0200
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-08-03 05:34 -0700
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-08-03 13:04 -0700
Re: Prioritize Correctness Over Performance Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-08-04 00:52 +0000
Re: Prioritize Correctness Over Performance scott@slp53.sl.home (Scott Lurndal) - 2026-08-04 14:22 +0000
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-08-03 05:25 -0700
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-08-03 15:10 +0200
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-08-03 13:16 -0700
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-08-03 20:29 -0400
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-08-03 17:55 -0700
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-08-04 09:12 +0200
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-08-02 19:01 -0700
Re: Prioritize Performance over Correctness cross@spitfire.i.gajendra.net (Dan Cross) - 2026-08-03 19:59 +0000
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-30 03:50 -0700
Re: Prioritize Performance over Correctness "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-29 15:09 -0700
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-28 08:14 +0800
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 05:54 +0800
Re: Prioritize Performance over Correctness steveo@panix.com (Steven M. O'Neill) - 2026-07-31 20:34 +0000
Re: Prioritize Performance over Correctness James Kuyper <jameskuyper@alumni.caltech.edu> - 2026-07-28 19:40 -0400
Re: Prioritize Performance over Correctness BGB <cr88192@gmail.com> - 2026-07-27 15:36 -0500
Re: Prioritize Performance over Correctness Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-29 04:56 +0800
Re: Prioritize Performance over Correctness Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-07-24 14:47 +0200
Re: Prioritize Performance over Correctness David Brown <david.brown@hesbynett.no> - 2026-07-24 16:27 +0200
Resources for Amateur Compiler Writers Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-25 00:52 +0800
Re: Resources for Amateur Compiler Writers bart <bc@freeuk.com> - 2026-07-24 23:08 +0100
Re: Resources for Amateur Compiler Writers BGB <cr88192@gmail.com> - 2026-07-24 18:50 -0500
Re: Resources for Amateur Compiler Writers Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-07-25 01:54 +0000
Re: Resources for Amateur Compiler Writers Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-25 15:20 +0800
Re: Resources for Amateur Compiler Writers Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-07-25 07:24 +0000
Re: Resources for Amateur Compiler Writers Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-25 15:30 +0800
Re: Resources for Amateur Compiler Writers David Brown <david.brown@hesbynett.no> - 2026-07-25 10:37 +0200
Re: Resources for Amateur Compiler Writers Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-27 00:35 +0800
Re: Resources for Amateur Compiler Writers BGB <cr88192@gmail.com> - 2026-07-26 12:39 -0500
Re: Resources for Amateur Compiler Writers bart <bc@freeuk.com> - 2026-07-26 22:27 +0100
Re: Resources for Amateur Compiler Writers BGB <cr88192@gmail.com> - 2026-07-26 18:02 -0500
Re: Resources for Amateur Compiler Writers Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-07-25 22:32 +0000
Re: Resources for Amateur Compiler Writers Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-25 15:58 -0700
Re: Resources for Amateur Compiler Writers David Brown <david.brown@hesbynett.no> - 2026-07-25 10:23 +0200
Re: Resources for Amateur Compiler Writers Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-24 16:29 -0700
Re: Resources for Amateur Compiler Writers Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-25 15:25 +0800
Re: Resources for Amateur Compiler Writers Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-25 15:33 -0700
Re: Resources for Amateur Compiler Writers Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-07-27 00:38 +0800
Re: Resources for Amateur Compiler Writers Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-26 17:06 -0700
Re: Resources for Amateur Compiler Writers Cóilín Nioclásín Glostéir <thanks-to@Taf.com> - 2026-07-26 17:03 +0000
Re: Prioritize Performance over Correctness BGB <cr88192@gmail.com> - 2026-07-24 16:50 -0500
Re: Prioritize Performance over Correctness Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-07-24 16:13 -0700
Re: Prioritize Performance over Correctness BGB <cr88192@gmail.com> - 2026-07-26 15:26 -0500
Re: Prioritize Performance over Correctness Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-07-23 11:18 +0200
Page 7 of 10 — ← Prev page 1 … 5 6 [7] 8 9 10 Next page →
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-08-18 16:26 +0200 |
| Subject | Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] |
| Message-ID | <1161q20$mbl1$3@solani.org> |
| In reply to | #400936 |
Hi, Sometimes I think the Loderunner Enemy AI was way ahead of its time: Lode Runner - Broderbund - 1983 - Apple II https://www.youtube.com/watch?v=pJZJepU8law Meanwhile SWI-Prolog Prologers even don't know whether a Prolog text is CNF or DNF: Sets of rules as conjunctions and/or disjunctions https://swi-prolog.discourse.group/t/sets-of-rules-as-conjunctions-and-or-disjunctions/9779 No Wonder that the EyeProlog "why" feature produces nonsense. Even a Flea circus is less crazy. Bye P.S.: If only there would exist something like universities where one can take a basic course in FOL, and then a world wide web, where one can lookup clark equational theory, clark completion, curry howard correspondence, etc.. etc.. Mild Shock schrieb: > Hi, > > Obviously to generate AI Surprises, > you have to stand on the shoulder of > giants. Otherwise you will not discover > > surprises, right? Only mediocre deja vues. > For this purpose, and maybe otherwise > related, in a discussion concerning the future > > of the library, Marvin Minsky and Edward A. > Feigenbaum endorsed the idea for books > to ‘talk to each other’: > > LET DOCUMENTS TALK TO EACH OTHER > Z. CHEN - 1993 > doi.org/10.1108/eb026910 > > Now we have: > > THE MACHINES ARE STUDYING > THE HUMANS ARE SCROLLING > https://9gag.com/gag/a9yQ16o > > Bye > > P.S.: But who was Marvin Minsky, and would it > be important to use symbolic AI? > > The Perceptron Controversy > Yuxi Liu - 2024 > https://yuxi.ml/essays/perceptron-controversy > > Mild Shock schrieb: >> Hi, >> >> How it started: >> >> Filming a vitamin B12 photoreceptor in action >> https://www.psi.ch/de/news/science-features/filming-a-vitamin-b12-photoreceptor-in-action >> >> >> How its going: >> >> Elon Musk's potential FEL route could challenge EUV lithography >> https://www.kucoin.com/news/flash/elon-musk-s-potential-fel-route-could-challenge-euv-lithography >> >> >> Who will win the Nano Atom mover race, >> >> will the USA OutChip its competitor China >> and its supplier Asia in the next years? >> >> Bye >> >> Mild Shock schrieb: >>> Hi, >>> >>> Recently there was a paper somebody mentioning >>> a flit doing a ACK or NACK, to express >>> backpressure inside a Network on a Chip. >>> >>> But what is a flit? It seems multiple >>> flits can be used to create the message >>> passing in one directiob before the >>> >>> ACK or NACK in the other direction? >>> >>> "The growing need for performance from >>> computing systems drove the industry into >>> the multi-core and many-core arena. In this >>> setup, the execution of a kernel (a program) >>> is split across multiple processors and the >>> computation happens in parallel >>> >>> Flits represent logical units of information, >>> while phits represent the physical domain, >>> that is, phits represent the number of bits >>> that can be transferred in parallel in a >>> single cycle. Consider the Cray T3D. It has >>> an interconnection network which uses >>> >>> flit level message flow control wherein each >>> flit is composed of eight 16-bit phits. That >>> means its flit size is 128bits and phit size >>> is 16bits. Also consider the IBM SP2 switch. >>> It also uses the flit level message flow >>> control, but its flit size is equal to its >>> phit size, which is set to 8 bits." >>> https://en.wikipedia.org/wiki/Flit_(computer_networking)#Example >>> >>> Well my idea how this is realized in silicon >>> is rather foggy, I mean even the Hack project >>> from Nand 2 Tetris, does not show some gate level >>> schemes for flits and phits. >>> >>> Could be an interesting extension. But somehow >>> the image of flits and phits inspired my channel >>> objects here below. But I am afraid they are fire >>> and forget, no ACK and NACK: >>> >>> π-WAM Contest: 1 Million Packets with Prolog >>> https://medium.com/2989/ec3e91551773 >>> >>> Its amazing that a max_size(1) buffer >>> can beat an unbounded buffer! >>> >>> LoL >>> >>> Bye >>> >>> Mild Shock schrieb: >>>> Hi, >>>> >>>> How it started, NVIDIA being cool: >>>> >>>> NCCL provides routines such as all-gather, >>>> all-reduce, broadcast, reduce, reduce-scatter, >>>> and point-to-point send and receive. These >>>> routines are optimized to achieve high >>>> bandwidth and low latency over PCIe, >>>> NVIDIA NVLink™, and other high-speed >>>> interconnects within a node and over >>>> NVIDIA networking across nodes. >>>> https://developer.nvidia.com/nccl >>>> >>>> How its going, vLLM trying to be cool: >>>> >>>> [RFC]: Native Weight Syncing APIs >>>> However, there are no standardized methods for >>>> performing online weight syncing. Open source projects >>>> like SkyRL, VeRL, and TRL need to include their >>>> own implementations of the weight syncing >>>> infrastructure, leading to added complexity >>>> for developers seeking to adopt vLLM as their >>>> inference server for post-training workloads. >>>> https://github.com/vllm-project/vllm/issues/31848 >>>> >>>> How much Workers are enough? I guess it depends >>>> on I/O parallelism, CPU Memory parallelism, CPU >>>> Processing parallelism, and now also >>>> >>>> GPU Memory parallelism and GPU Processing >>>> parallelism, and last but least you might have >>>> a couple DMAs sitting here and there, >>>> >>>> or even invoking a sort of RDMA. Quite amazing! >>>> >>>> Bye >>>> >>>> Mild Shock schrieb: >>>>> Hi, >>>>> >>>>> Well there are two viewpoint, the "client" >>>>> of the GPU, which is the CPU, and the "server" >>>>> of the GPU, which is the command processor >>>>> >>>>> queue of the GPU device. So basically as >>>>> a CPU client I can write the memory area, >>>>> that is later mapped to my GPU code storage. >>>>> >>>>> And this way have a compiler, even written >>>>> in Prolog, that compiles pi-WAM to my Hack VM, >>>>> that can then be then deployed to GPU. >>>>> >>>>> You could also try the same with a Tiny >>>>> LISP VM. And a grown up LISP to act as >>>>> the compiler. Would be a similar exercise. >>>>> >>>>> Have Fun! >>>>> >>>>> Bye >>>>> >>>>> Mild Shock schrieb: >>>>>> Hi, >>>>>> >>>>>> > I've also added comp.theory so Mild Shock can comment. >>>>>> >>>>>> > that has different >>>>>> > * sizeof ( void * ), and >>>>>> > * sizeof ( void (*)( void ) ), >>>>>> >>>>>> Could indicate a data RAM and code ROM model. >>>>>> Which has then the advantage of: >>>>>> >>>>>> Modern operating systems like Windows 11 >>>>>> enforce strict Data Execution Prevention (DEP) >>>>>> (or NX/XD bit security features) to prevent >>>>>> malicious programs from injecting and executing >>>>>> code inside data-only memory regions. >>>>>> https://root-nation.com/en/soft-en/lifehacks/en-dep-windows-all-about/ >>>>>> >>>>>> >>>>>> I adopted data RAM and code ROM model for >>>>>> pi-WAM from Hack, which has the same separation: >>>>>> >>>>>> Slide 58, Hack Computer >>>>>> https://drive.google.com/file/d/1Z_fxYmmRNXTkAzmZ6YMoX9NXZIRVCKiw/view >>>>>> >>>>>> >>>>>> But my motivation was not Johnny Depp prevention. >>>>>> Rather the caching of GPUs. Because WGSL >>>>>> allows storage annotations read_write and >>>>>> >>>>>> read. I use read_write for the data RAM >>>>>> of my Hack VM variant, and read for the >>>>>> code ROM of my Hack VM variant. You can >>>>>> >>>>>> see that here, its open source: >>>>>> >>>>>> @group(0) @binding(0) var<storage, read> code: array<i32>; >>>>>> @group(0) @binding(1) var<storage, read_write> state: array<i32>; >>>>>> >>>>>> 11.4 Giga Lips with a Budget Laptop >>>>>> https://github.com/Jean-Luc-Picard-2021/gigabudget >>>>>> >>>>>> Hope this Helps! >>>>>> >>>>>> Bye >>>>>> >>>>>> Johann 'Myrkraverk' Oskarsson schrieb: >>>>>>> On 03/08/2026 6:28 PM, David Brown wrote: >>>>>>>> On 03/08/2026 11:41, Richard Harnden wrote: >>>>>>>>> On 03/08/2026 09:16, David Brown wrote: >>>>>>>> >>>>>>>>>> On most targets, function pointers are the same size as void* >>>>>>>>>> pointers. But there are exceptions, with some small >>>>>>>>>> microcontrollers and DSPs having different kinds of pointers >>>>>>>>>> with different sizes, depending on the memory space involved. >>>>>>>>>> I have yet to see a situation where there was any reason for >>>>>>>>>> storing a function address in a "void*" rather than a more >>>>>>>>>> appropriate typedef, such as : >>>>>>>>>> >>>>>>>>>> typedef void (*FVoid)(void); >>>>>>>>> >>>>>>>>> dlsym requires that pointer-to-function is compatible with a void* >>>>>>>>> >>>>>>>> >>>>>>>> As I say, I have yet to see a situation where using void* for >>>>>>>> function pointers was more appropriate than using a function >>>>>>>> pointer type. If the OS system calls or standard OS libraries >>>>>>>> makes it a requirement that function pointers are converted to >>>>>>>> or from void* for some calls, then of course you need to follow >>>>>>>> those requirements - it's the people who designed the interfaces >>>>>>>> that made questionable design choices. >>>>>>>> >>>>>>> >>>>>>> Nope, you're wrong. You're dead wrong. The world isn't built on C, >>>>>>> even though here in comp.lang.c we like to pretend it is. >>>>>>> >>>>>>> Several language environments allow function generation on the fly, >>>>>>> these functions need to be garbage collected. Common Lisp is an >>>>>>> example, therefore comp.lang.lisp is added to this discussion. >>>>>>> >>>>>>> I've also added comp.theory so Mild Shock can comment. >>>>>>> >>>>>>> You will have to go out of your way to make a computer architecture >>>>>>> incompatible with garbage collected and heap allocated binary code, >>>>>>> something I've been told SBCL does internally [1] to create an >>>>>>> archi- >>>>>>> tecture that has different >>>>>>> >>>>>>> * sizeof ( void * ), and >>>>>>> * sizeof ( void (*)( void ) ), >>>>>>> >>>>>>> and when you do that, I'll just claim you're making a /malicious >>>>>>> computer architecture/ and refuse to use it. >>>>>>> >>>>>>> >>>>>>> [1] I've not looked at the code, but told the garbage collector can >>>>>>> and will at least move the code around, if not collect it. >>>>>> >>>>> >>>> >>> >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-08-18 16:50 +0200 |
| Subject | How to shoot yourself in the foot (Re: Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] |
| Message-ID | <1161reu$mcl7$2@solani.org> |
| In reply to | #401296 |
Hi, The biggest joke, is to have logic somewhere in procedure and somewhere in declarative, and try to see different takes on logic. They really don't know what this mantra means: Algorithm = Logic + Control And cannot relate it to the ideas of declarative reading and procedural reading. The problem is a too lax introduction of this notions, prematurely before the notion "logic" is even understood. But nobody understands the meaning of the term "logic", i.e. a set of supposedly tautological sentences, as under- stood by mathematical logic. There is a subtle error again to conflate it with a "calculus", so this website has a very misleanding title, although they try hard to not commit the fallacy, and have subtitles "Proof System" and "Logic Level": Welcome to LogicProof https://6ximik9.github.io/naturalDeduction/ Then there is this moron: There is only one “minimal logic”. The term denotes Johansson’s Minimalkalkül [1937] — intuitionistic logic without ex falso quodlibet — and nothing else. No rival system competes for the name. https://vidal-rosset.net/rule-correspondence-F.html Of course there are rival "Proof Systems" aka calculi, even when the "Logic Level" is minimal logic. It is as if Joseph Vidal-Rosset doesn't understand basic German. You have to look behind "Minimalkalkül" to find "Minimallogic". Right? To identify calculus with logic, is maybe a 1930's fallacy, but then we had model theory besides proof theory, and people should be more educated now. Model theory can be also expanded to non-classical logics and even minimal logic, to give a purely semantic reading. Ok some modern morons think they need to invoke the word "algebraic". Bye Mild Shock schrieb: > Hi, > > Sometimes I think the Loderunner Enemy AI > was way ahead of its time: > > Lode Runner - Broderbund - 1983 - Apple II > https://www.youtube.com/watch?v=pJZJepU8law > > Meanwhile SWI-Prolog Prologers even don't know > whether a Prolog text is CNF or DNF: > > Sets of rules as conjunctions and/or disjunctions > https://swi-prolog.discourse.group/t/sets-of-rules-as-conjunctions-and-or-disjunctions/9779 > > > No Wonder that the EyeProlog "why" feature produces > nonsense. Even a Flea circus is less crazy. > > Bye > > P.S.: If only there would exist something like > universities where one can take a basic course in > FOL, and then a world wide web, where one can > > lookup clark equational theory, clark completion, > curry howard correspondence, etc.. etc.. > > Mild Shock schrieb: >> Hi, >> >> Obviously to generate AI Surprises, >> you have to stand on the shoulder of >> giants. Otherwise you will not discover >> >> surprises, right? Only mediocre deja vues. >> For this purpose, and maybe otherwise >> related, in a discussion concerning the future >> >> of the library, Marvin Minsky and Edward A. >> Feigenbaum endorsed the idea for books >> to ‘talk to each other’: >> >> LET DOCUMENTS TALK TO EACH OTHER >> Z. CHEN - 1993 >> doi.org/10.1108/eb026910 >> >> Now we have: >> >> THE MACHINES ARE STUDYING >> THE HUMANS ARE SCROLLING >> https://9gag.com/gag/a9yQ16o >> >> Bye >> >> P.S.: But who was Marvin Minsky, and would it >> be important to use symbolic AI? >> >> The Perceptron Controversy >> Yuxi Liu - 2024 >> https://yuxi.ml/essays/perceptron-controversy >> >> Mild Shock schrieb: >>> Hi, >>> >>> How it started: >>> >>> Filming a vitamin B12 photoreceptor in action >>> https://www.psi.ch/de/news/science-features/filming-a-vitamin-b12-photoreceptor-in-action >>> >>> >>> How its going: >>> >>> Elon Musk's potential FEL route could challenge EUV lithography >>> https://www.kucoin.com/news/flash/elon-musk-s-potential-fel-route-could-challenge-euv-lithography >>> >>> >>> Who will win the Nano Atom mover race, >>> >>> will the USA OutChip its competitor China >>> and its supplier Asia in the next years? >>> >>> Bye >>> >>> Mild Shock schrieb: >>>> Hi, >>>> >>>> Recently there was a paper somebody mentioning >>>> a flit doing a ACK or NACK, to express >>>> backpressure inside a Network on a Chip. >>>> >>>> But what is a flit? It seems multiple >>>> flits can be used to create the message >>>> passing in one directiob before the >>>> >>>> ACK or NACK in the other direction? >>>> >>>> "The growing need for performance from >>>> computing systems drove the industry into >>>> the multi-core and many-core arena. In this >>>> setup, the execution of a kernel (a program) >>>> is split across multiple processors and the >>>> computation happens in parallel >>>> >>>> Flits represent logical units of information, >>>> while phits represent the physical domain, >>>> that is, phits represent the number of bits >>>> that can be transferred in parallel in a >>>> single cycle. Consider the Cray T3D. It has >>>> an interconnection network which uses >>>> >>>> flit level message flow control wherein each >>>> flit is composed of eight 16-bit phits. That >>>> means its flit size is 128bits and phit size >>>> is 16bits. Also consider the IBM SP2 switch. >>>> It also uses the flit level message flow >>>> control, but its flit size is equal to its >>>> phit size, which is set to 8 bits." >>>> https://en.wikipedia.org/wiki/Flit_(computer_networking)#Example >>>> >>>> Well my idea how this is realized in silicon >>>> is rather foggy, I mean even the Hack project >>>> from Nand 2 Tetris, does not show some gate level >>>> schemes for flits and phits. >>>> >>>> Could be an interesting extension. But somehow >>>> the image of flits and phits inspired my channel >>>> objects here below. But I am afraid they are fire >>>> and forget, no ACK and NACK: >>>> >>>> π-WAM Contest: 1 Million Packets with Prolog >>>> https://medium.com/2989/ec3e91551773 >>>> >>>> Its amazing that a max_size(1) buffer >>>> can beat an unbounded buffer! >>>> >>>> LoL >>>> >>>> Bye >>>> >>>> Mild Shock schrieb: >>>>> Hi, >>>>> >>>>> How it started, NVIDIA being cool: >>>>> >>>>> NCCL provides routines such as all-gather, >>>>> all-reduce, broadcast, reduce, reduce-scatter, >>>>> and point-to-point send and receive. These >>>>> routines are optimized to achieve high >>>>> bandwidth and low latency over PCIe, >>>>> NVIDIA NVLink™, and other high-speed >>>>> interconnects within a node and over >>>>> NVIDIA networking across nodes. >>>>> https://developer.nvidia.com/nccl >>>>> >>>>> How its going, vLLM trying to be cool: >>>>> >>>>> [RFC]: Native Weight Syncing APIs >>>>> However, there are no standardized methods for >>>>> performing online weight syncing. Open source projects >>>>> like SkyRL, VeRL, and TRL need to include their >>>>> own implementations of the weight syncing >>>>> infrastructure, leading to added complexity >>>>> for developers seeking to adopt vLLM as their >>>>> inference server for post-training workloads. >>>>> https://github.com/vllm-project/vllm/issues/31848 >>>>> >>>>> How much Workers are enough? I guess it depends >>>>> on I/O parallelism, CPU Memory parallelism, CPU >>>>> Processing parallelism, and now also >>>>> >>>>> GPU Memory parallelism and GPU Processing >>>>> parallelism, and last but least you might have >>>>> a couple DMAs sitting here and there, >>>>> >>>>> or even invoking a sort of RDMA. Quite amazing! >>>>> >>>>> Bye >>>>> >>>>> Mild Shock schrieb: >>>>>> Hi, >>>>>> >>>>>> Well there are two viewpoint, the "client" >>>>>> of the GPU, which is the CPU, and the "server" >>>>>> of the GPU, which is the command processor >>>>>> >>>>>> queue of the GPU device. So basically as >>>>>> a CPU client I can write the memory area, >>>>>> that is later mapped to my GPU code storage. >>>>>> >>>>>> And this way have a compiler, even written >>>>>> in Prolog, that compiles pi-WAM to my Hack VM, >>>>>> that can then be then deployed to GPU. >>>>>> >>>>>> You could also try the same with a Tiny >>>>>> LISP VM. And a grown up LISP to act as >>>>>> the compiler. Would be a similar exercise. >>>>>> >>>>>> Have Fun! >>>>>> >>>>>> Bye >>>>>> >>>>>> Mild Shock schrieb: >>>>>>> Hi, >>>>>>> >>>>>>> > I've also added comp.theory so Mild Shock can comment. >>>>>>> >>>>>>> > that has different >>>>>>> > * sizeof ( void * ), and >>>>>>> > * sizeof ( void (*)( void ) ), >>>>>>> >>>>>>> Could indicate a data RAM and code ROM model. >>>>>>> Which has then the advantage of: >>>>>>> >>>>>>> Modern operating systems like Windows 11 >>>>>>> enforce strict Data Execution Prevention (DEP) >>>>>>> (or NX/XD bit security features) to prevent >>>>>>> malicious programs from injecting and executing >>>>>>> code inside data-only memory regions. >>>>>>> https://root-nation.com/en/soft-en/lifehacks/en-dep-windows-all-about/ >>>>>>> >>>>>>> >>>>>>> I adopted data RAM and code ROM model for >>>>>>> pi-WAM from Hack, which has the same separation: >>>>>>> >>>>>>> Slide 58, Hack Computer >>>>>>> https://drive.google.com/file/d/1Z_fxYmmRNXTkAzmZ6YMoX9NXZIRVCKiw/view >>>>>>> >>>>>>> >>>>>>> But my motivation was not Johnny Depp prevention. >>>>>>> Rather the caching of GPUs. Because WGSL >>>>>>> allows storage annotations read_write and >>>>>>> >>>>>>> read. I use read_write for the data RAM >>>>>>> of my Hack VM variant, and read for the >>>>>>> code ROM of my Hack VM variant. You can >>>>>>> >>>>>>> see that here, its open source: >>>>>>> >>>>>>> @group(0) @binding(0) var<storage, read> code: array<i32>; >>>>>>> @group(0) @binding(1) var<storage, read_write> state: array<i32>; >>>>>>> >>>>>>> 11.4 Giga Lips with a Budget Laptop >>>>>>> https://github.com/Jean-Luc-Picard-2021/gigabudget >>>>>>> >>>>>>> Hope this Helps! >>>>>>> >>>>>>> Bye >>>>>>> >>>>>>> Johann 'Myrkraverk' Oskarsson schrieb: >>>>>>>> On 03/08/2026 6:28 PM, David Brown wrote: >>>>>>>>> On 03/08/2026 11:41, Richard Harnden wrote: >>>>>>>>>> On 03/08/2026 09:16, David Brown wrote: >>>>>>>>> >>>>>>>>>>> On most targets, function pointers are the same size as void* >>>>>>>>>>> pointers. But there are exceptions, with some small >>>>>>>>>>> microcontrollers and DSPs having different kinds of pointers >>>>>>>>>>> with different sizes, depending on the memory space involved. >>>>>>>>>>> I have yet to see a situation where there was any reason for >>>>>>>>>>> storing a function address in a "void*" rather than a more >>>>>>>>>>> appropriate typedef, such as : >>>>>>>>>>> >>>>>>>>>>> typedef void (*FVoid)(void); >>>>>>>>>> >>>>>>>>>> dlsym requires that pointer-to-function is compatible with a >>>>>>>>>> void* >>>>>>>>>> >>>>>>>>> >>>>>>>>> As I say, I have yet to see a situation where using void* for >>>>>>>>> function pointers was more appropriate than using a function >>>>>>>>> pointer type. If the OS system calls or standard OS libraries >>>>>>>>> makes it a requirement that function pointers are converted to >>>>>>>>> or from void* for some calls, then of course you need to follow >>>>>>>>> those requirements - it's the people who designed the >>>>>>>>> interfaces that made questionable design choices. >>>>>>>>> >>>>>>>> >>>>>>>> Nope, you're wrong. You're dead wrong. The world isn't built >>>>>>>> on C, >>>>>>>> even though here in comp.lang.c we like to pretend it is. >>>>>>>> >>>>>>>> Several language environments allow function generation on the fly, >>>>>>>> these functions need to be garbage collected. Common Lisp is an >>>>>>>> example, therefore comp.lang.lisp is added to this discussion. >>>>>>>> >>>>>>>> I've also added comp.theory so Mild Shock can comment. >>>>>>>> >>>>>>>> You will have to go out of your way to make a computer architecture >>>>>>>> incompatible with garbage collected and heap allocated binary code, >>>>>>>> something I've been told SBCL does internally [1] to create an >>>>>>>> archi- >>>>>>>> tecture that has different >>>>>>>> >>>>>>>> * sizeof ( void * ), and >>>>>>>> * sizeof ( void (*)( void ) ), >>>>>>>> >>>>>>>> and when you do that, I'll just claim you're making a /malicious >>>>>>>> computer architecture/ and refuse to use it. >>>>>>>> >>>>>>>> >>>>>>>> [1] I've not looked at the code, but told the garbage collector can >>>>>>>> and will at least move the code around, if not collect it. >>>>>>> >>>>>> >>>>> >>>> >>> >> >
[toc] | [prev] | [next] | [standalone]
| From | Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> |
|---|---|
| Date | 2026-08-19 03:24 +0800 |
| Subject | Re: How to shoot yourself in the foot (Re: Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] |
| Message-ID | <0k2hS.765207$jNNe.305662@fx15.ams4> |
| In reply to | #401297 |
On 18/08/2026 10:50 PM, Mild Shock wrote: > Hi, > > The biggest joke, is to have logic somewhere > in procedure and somewhere in declarative, and > try to see different takes on logic. > > They really don't know what this mantra means: > > Algorithm = Logic + Control > > And cannot relate it to the ideas of declarative > reading and procedural reading. The problem is > a too lax introduction of this notions, > > prematurely before the notion "logic" is > even understood. But nobody understands the > meaning of the term "logic", i.e. a set of > > supposedly tautological sentences, as under- > stood by mathematical logic. There is a subtle > error again to conflate it with a "calculus", > > so this website has a very misleanding title, > although they try hard to not commit the fallacy, > and have subtitles "Proof System" and "Logic Level": > > Welcome to LogicProof > https://6ximik9.github.io/naturalDeduction/ > > Then there is this moron: > > There is only one “minimal logic”. The term denotes Johansson’s > Minimalkalkül [1937] — intuitionistic logic without ex falso quodlibet — > and nothing else. No rival system competes for the name. > https://vidal-rosset.net/rule-correspondence-F.html > > Of course there are rival "Proof Systems" aka > calculi, even when the "Logic Level" is minimal > logic. It is as if Joseph Vidal-Rosset doesn't > > understand basic German. You have to look behind > "Minimalkalkül" to find "Minimallogic". Right? > To identify calculus with logic, is maybe a 1930's > > fallacy, but then we had model theory besides > proof theory, and people should be more educated > now. Model theory can be also expanded to > > non-classical logics and even minimal logic, to > give a purely semantic reading. Ok some modern > morons think they need to invoke the word "algebraic". > All my graphic art in CorelDRAW! is done with algebraic curves. I found the regular Bezier curves simply boring, and /upgraded/ my curvatures to /algebraic/. Do you also draw with algebraic curves in your vector drawing utility of choice? Is it Xfig? -- Johann | email: invalid -> com | http://www.myrkraverk.com/blog/ I'm not from the Internet, I just work there. | via Easynews.com https://bsky.app/profile/myrkraverk.bsky.social | for ( ;; ) _:;
[toc] | [prev] | [next] | [standalone]
| From | Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> |
|---|---|
| Date | 2026-08-19 03:21 +0800 |
| Subject | Re: Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] |
| Message-ID | <Ug2hS.182070$nUE4.143102@fx07.ams4> |
| In reply to | #401296 |
On 18/08/2026 10:26 PM, Mild Shock wrote: > Hi, > > Sometimes I think the Loderunner Enemy AI > was way ahead of its time: > > Lode Runner - Broderbund - 1983 - Apple II > https://www.youtube.com/watch?v=pJZJepU8law > > Meanwhile SWI-Prolog Prologers even don't know > whether a Prolog text is CNF or DNF: Are you coding the SWI interfaces in RISC OS in Prolog? Isn't it much more fruitful to code it in the /Acorn RISC Machine/ assembly? > > Sets of rules as conjunctions and/or disjunctions > https://swi-prolog.discourse.group/t/sets-of-rules-as-conjunctions-and- > or-disjunctions/9779 So, is this set of conjunctions and disjunctions about how to create set intersections and unions of windows on RISC OS? Why is that important? > > No Wonder that the EyeProlog "why" feature produces > nonsense. Even a Flea circus is less crazy. Does wearing an eye patch help when writing Prolog? I ask because I have never coded any Prolog before. Corollary, since an eye patch would hide my central heterochromia, would that not hinder my ability to reason? > > Bye > > P.S.: If only there would exist something like > universities where one can take a basic course in > FOL, and then a world wide web, where one can What is F.O.L? > > lookup clark equational theory, clark completion, > curry howard correspondence, etc.. etc.. You can always complete your journey at the Clark International Airport in the Philippines. Let me know when you do. As always, you've been greatly helpful, and mildly amusing, Mild Shock! -- Johann | email: invalid -> com | http://www.myrkraverk.com/blog/ I'm not from the Internet, I just work there. | via Easynews.com https://bsky.app/profile/myrkraverk.bsky.social | for ( ;; ) _:;
[toc] | [prev] | [next] | [standalone]
| From | Aidan Kehoe <kehoea@parhasard.net> |
|---|---|
| Date | 2026-08-18 21:13 +0100 |
| Subject | Re: Loderunner Enemy AI better than SWI-Prolog? [Prolog Education Group] |
| Message-ID | <27268.48342.40320.549939@parhasard.net> |
| In reply to | #401301 |
Ar an naoú lá déag de mí Lúnasa, scríobh Johann Oskarsson: > On 18/08/2026 10:26 PM, Mild Shock wrote: > > [...] No Wonder that the EyeProlog "why" feature produces > > nonsense. Even a Flea circus is less crazy. > > Does wearing an eye patch help when writing Prolog? I ask because I > have never coded any Prolog before. I coded Prolog in 1998-1999. It is not oriented to the underlying machine in any useful way, and its syntax is not human-friendly. I don’t recommend it. > Corollary, since an eye patch would hide my central heterochromia, would > that not hinder my ability to reason? No comment. -- ‘As I sat looking up at the Guinness ad, I could never figure out / How your man stayed up on the surfboard after fourteen pints of stout’ (C. Moore)
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-08-11 16:27 +0200 |
| Subject | The Mac Neo is a Budget Monster [GPU Channels] (Re: What are Flits and Phits? [Network on a Chip]) |
| Message-ID | <115fbgm$9vhm$3@solani.org> |
| In reply to | #400917 |
Hi, Now I implemented some multiple producer and multiple consumer channel objects for WebGPU. The only API to integrate it user facing into pi-WAM is this single predicate: /** * flit(C): * The predicate succeeds in C with a new channel. The channel * can be used from within GPU backed π-WAM logical threads. */ The Mac Neo is a Budget Monster. While the Ryzen AI Laptop cost around 1300.- CHF. The Mac Neo was around 600.- CHF with all extras. Here some performance results, checking out whether channel objects scale, when increasing their number to communicate the same 1 millon packets: Java performance: AI Laptop Single Double Ryzen 705.1 337.4 Neo 669.4 239.9 WebGPU performance: AI Laptop Single Double Ryzen 731.8 392.9 Neo 932.8 483.5 Cool! Java is also pretty cool, their semaphore library is top notch. I couldn't replicate the resulst with JavaScript yet, seems their Atomics.wait() resp. Atomics.waitAsync() is totally broken, using futex is mutex for fools somehow. I also found some gremlins attacking one of the GPUs. The Intel AI Laptop fails the above experiment. Maybe its a driver Vulkan versus OpenCL or something problem, or the Lunar lake architecture is nonsense. Bye Mild Shock schrieb: > Hi, > > Recently there was a paper somebody mentioning > a flit doing a ACK or NACK, to express > backpressure inside a Network on a Chip. > > But what is a flit? It seems multiple > flits can be used to create the message > passing in one directiob before the > > ACK or NACK in the other direction? > > "The growing need for performance from > computing systems drove the industry into > the multi-core and many-core arena. In this > setup, the execution of a kernel (a program) > is split across multiple processors and the > computation happens in parallel > > Flits represent logical units of information, > while phits represent the physical domain, > that is, phits represent the number of bits > that can be transferred in parallel in a > single cycle. Consider the Cray T3D. It has > an interconnection network which uses > > flit level message flow control wherein each > flit is composed of eight 16-bit phits. That > means its flit size is 128bits and phit size > is 16bits. Also consider the IBM SP2 switch. > It also uses the flit level message flow > control, but its flit size is equal to its > phit size, which is set to 8 bits." > https://en.wikipedia.org/wiki/Flit_(computer_networking)#Example > > Well my idea how this is realized in silicon > is rather foggy, I mean even the Hack project > from Nand 2 Tetris, does not show some gate level > schemes for flits and phits. > > Could be an interesting extension. But somehow > the image of flits and phits inspired my channel > objects here below. But I am afraid they are fire > and forget, no ACK and NACK: > > π-WAM Contest: 1 Million Packets with Prolog > https://medium.com/2989/ec3e91551773 > > Its amazing that a max_size(1) buffer > can beat an unbounded buffer! > > LoL > > Bye > > Mild Shock schrieb: >> Hi, >> >> How it started, NVIDIA being cool: >> >> NCCL provides routines such as all-gather, >> all-reduce, broadcast, reduce, reduce-scatter, >> and point-to-point send and receive. These >> routines are optimized to achieve high >> bandwidth and low latency over PCIe, >> NVIDIA NVLink™, and other high-speed >> interconnects within a node and over >> NVIDIA networking across nodes. >> https://developer.nvidia.com/nccl >> >> How its going, vLLM trying to be cool: >> >> [RFC]: Native Weight Syncing APIs >> However, there are no standardized methods for >> performing online weight syncing. Open source projects >> like SkyRL, VeRL, and TRL need to include their >> own implementations of the weight syncing >> infrastructure, leading to added complexity >> for developers seeking to adopt vLLM as their >> inference server for post-training workloads. >> https://github.com/vllm-project/vllm/issues/31848 >> >> How much Workers are enough? I guess it depends >> on I/O parallelism, CPU Memory parallelism, CPU >> Processing parallelism, and now also >> >> GPU Memory parallelism and GPU Processing >> parallelism, and last but least you might have >> a couple DMAs sitting here and there, >> >> or even invoking a sort of RDMA. Quite amazing! >> >> Bye >> >> Mild Shock schrieb: >>> Hi, >>> >>> Well there are two viewpoint, the "client" >>> of the GPU, which is the CPU, and the "server" >>> of the GPU, which is the command processor >>> >>> queue of the GPU device. So basically as >>> a CPU client I can write the memory area, >>> that is later mapped to my GPU code storage. >>> >>> And this way have a compiler, even written >>> in Prolog, that compiles pi-WAM to my Hack VM, >>> that can then be then deployed to GPU. >>> >>> You could also try the same with a Tiny >>> LISP VM. And a grown up LISP to act as >>> the compiler. Would be a similar exercise. >>> >>> Have Fun! >>> >>> Bye >>> >>> Mild Shock schrieb: >>>> Hi, >>>> >>>> > I've also added comp.theory so Mild Shock can comment. >>>> >>>> > that has different >>>> > * sizeof ( void * ), and >>>> > * sizeof ( void (*)( void ) ), >>>> >>>> Could indicate a data RAM and code ROM model. >>>> Which has then the advantage of: >>>> >>>> Modern operating systems like Windows 11 >>>> enforce strict Data Execution Prevention (DEP) >>>> (or NX/XD bit security features) to prevent >>>> malicious programs from injecting and executing >>>> code inside data-only memory regions. >>>> https://root-nation.com/en/soft-en/lifehacks/en-dep-windows-all-about/ >>>> >>>> I adopted data RAM and code ROM model for >>>> pi-WAM from Hack, which has the same separation: >>>> >>>> Slide 58, Hack Computer >>>> https://drive.google.com/file/d/1Z_fxYmmRNXTkAzmZ6YMoX9NXZIRVCKiw/view >>>> >>>> But my motivation was not Johnny Depp prevention. >>>> Rather the caching of GPUs. Because WGSL >>>> allows storage annotations read_write and >>>> >>>> read. I use read_write for the data RAM >>>> of my Hack VM variant, and read for the >>>> code ROM of my Hack VM variant. You can >>>> >>>> see that here, its open source: >>>> >>>> @group(0) @binding(0) var<storage, read> code: array<i32>; >>>> @group(0) @binding(1) var<storage, read_write> state: array<i32>; >>>> >>>> 11.4 Giga Lips with a Budget Laptop >>>> https://github.com/Jean-Luc-Picard-2021/gigabudget >>>> >>>> Hope this Helps! >>>> >>>> Bye >>>> >>>> Johann 'Myrkraverk' Oskarsson schrieb: >>>>> On 03/08/2026 6:28 PM, David Brown wrote: >>>>>> On 03/08/2026 11:41, Richard Harnden wrote: >>>>>>> On 03/08/2026 09:16, David Brown wrote: >>>>>> >>>>>>>> On most targets, function pointers are the same size as void* >>>>>>>> pointers. But there are exceptions, with some small >>>>>>>> microcontrollers and DSPs having different kinds of pointers >>>>>>>> with different sizes, depending on the memory space involved. I >>>>>>>> have yet to see a situation where there was any reason for >>>>>>>> storing a function address in a "void*" rather than a more >>>>>>>> appropriate typedef, such as : >>>>>>>> >>>>>>>> typedef void (*FVoid)(void); >>>>>>> >>>>>>> dlsym requires that pointer-to-function is compatible with a void* >>>>>>> >>>>>> >>>>>> As I say, I have yet to see a situation where using void* for >>>>>> function pointers was more appropriate than using a function >>>>>> pointer type. If the OS system calls or standard OS libraries >>>>>> makes it a requirement that function pointers are converted to or >>>>>> from void* for some calls, then of course you need to follow those >>>>>> requirements - it's the people who designed the interfaces that >>>>>> made questionable design choices. >>>>>> >>>>> >>>>> Nope, you're wrong. You're dead wrong. The world isn't built on C, >>>>> even though here in comp.lang.c we like to pretend it is. >>>>> >>>>> Several language environments allow function generation on the fly, >>>>> these functions need to be garbage collected. Common Lisp is an >>>>> example, therefore comp.lang.lisp is added to this discussion. >>>>> >>>>> I've also added comp.theory so Mild Shock can comment. >>>>> >>>>> You will have to go out of your way to make a computer architecture >>>>> incompatible with garbage collected and heap allocated binary code, >>>>> something I've been told SBCL does internally [1] to create an archi- >>>>> tecture that has different >>>>> >>>>> * sizeof ( void * ), and >>>>> * sizeof ( void (*)( void ) ), >>>>> >>>>> and when you do that, I'll just claim you're making a /malicious >>>>> computer architecture/ and refuse to use it. >>>>> >>>>> >>>>> [1] I've not looked at the code, but told the garbage collector can >>>>> and will at least move the code around, if not collect it. >>>> >>> >> >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-08-11 16:51 +0200 |
| Subject | The luminaries of duct-tape engineering [Sweeney and Torvald] (Was: The Mac Neo is a Budget Monster [GPU Channels]) |
| Message-ID | <115fcu9$a0tm$1@solani.org> |
| In reply to | #400984 |
Hi, We didn't find yet a library for our Think that would support webgpu on the ARM architecture, so its back to the browser flag and testing there. The node.js package comes only with: dist +-- d3dcompiler_47.dll +-- darwin-universal.dawn.node +-- linux-arm64.dawn.node +-- linux-x64.dawn.node +-- win32-x64.dawn.node Its a similar situation like with SVN. In some communities its not common to provide a ARM build. They rather use x86 till the end of the universe. Although we think initiatives like the x86 Ecosystem Advisory Group could be a clever marketing trick to hide a funeral service. Adding "luminaries" such as Tim Sweeney and Linus Torvald to the panel, is even more so a joke, given that intel produces mutex bottlenecks instead of futex, where f stands for fast, in their GPU infrastructure. So who is the teacher and who are the students? But why even try to create a collation against ARM, it doesn't make any sense. Bye Mild Shock schrieb: > Hi, > > Now I implemented some multiple producer > and multiple consumer channel objects for > WebGPU. The only API to integrate it user > > facing into pi-WAM is this single predicate: > > /** > * flit(C): > * The predicate succeeds in C with a new channel. The channel > * can be used from within GPU backed π-WAM logical threads. > */ > > The Mac Neo is a Budget Monster. While the > Ryzen AI Laptop cost around 1300.- CHF. > The Mac Neo was around 600.- CHF with all > > extras. Here some performance results, > checking out whether channel objects scale, > when increasing their number to > > communicate the same 1 millon packets: > > Java performance: > > AI Laptop Single Double > Ryzen 705.1 337.4 > Neo 669.4 239.9 > > WebGPU performance: > > AI Laptop Single Double > Ryzen 731.8 392.9 > Neo 932.8 483.5 > > Cool! Java is also pretty cool, their > semaphore library is top notch. I couldn't > replicate the resulst with JavaScript yet, > > seems their Atomics.wait() resp. Atomics.waitAsync() > is totally broken, using futex is mutex for > fools somehow. I also found some gremlins > > attacking one of the GPUs. The Intel AI Laptop > fails the above experiment. Maybe its a driver > Vulkan versus OpenCL or something problem, > > or the Lunar lake architecture is nonsense. > > Bye > > Mild Shock schrieb: >> Hi, >> >> Recently there was a paper somebody mentioning >> a flit doing a ACK or NACK, to express >> backpressure inside a Network on a Chip. >> >> But what is a flit? It seems multiple >> flits can be used to create the message >> passing in one directiob before the >> >> ACK or NACK in the other direction? >> >> "The growing need for performance from >> computing systems drove the industry into >> the multi-core and many-core arena. In this >> setup, the execution of a kernel (a program) >> is split across multiple processors and the >> computation happens in parallel >> >> Flits represent logical units of information, >> while phits represent the physical domain, >> that is, phits represent the number of bits >> that can be transferred in parallel in a >> single cycle. Consider the Cray T3D. It has >> an interconnection network which uses >> >> flit level message flow control wherein each >> flit is composed of eight 16-bit phits. That >> means its flit size is 128bits and phit size >> is 16bits. Also consider the IBM SP2 switch. >> It also uses the flit level message flow >> control, but its flit size is equal to its >> phit size, which is set to 8 bits." >> https://en.wikipedia.org/wiki/Flit_(computer_networking)#Example >> >> Well my idea how this is realized in silicon >> is rather foggy, I mean even the Hack project >> from Nand 2 Tetris, does not show some gate level >> schemes for flits and phits. >> >> Could be an interesting extension. But somehow >> the image of flits and phits inspired my channel >> objects here below. But I am afraid they are fire >> and forget, no ACK and NACK: >> >> π-WAM Contest: 1 Million Packets with Prolog >> https://medium.com/2989/ec3e91551773 >> >> Its amazing that a max_size(1) buffer >> can beat an unbounded buffer! >> >> LoL >> >> Bye >> >> Mild Shock schrieb: >>> Hi, >>> >>> How it started, NVIDIA being cool: >>> >>> NCCL provides routines such as all-gather, >>> all-reduce, broadcast, reduce, reduce-scatter, >>> and point-to-point send and receive. These >>> routines are optimized to achieve high >>> bandwidth and low latency over PCIe, >>> NVIDIA NVLink™, and other high-speed >>> interconnects within a node and over >>> NVIDIA networking across nodes. >>> https://developer.nvidia.com/nccl >>> >>> How its going, vLLM trying to be cool: >>> >>> [RFC]: Native Weight Syncing APIs >>> However, there are no standardized methods for >>> performing online weight syncing. Open source projects >>> like SkyRL, VeRL, and TRL need to include their >>> own implementations of the weight syncing >>> infrastructure, leading to added complexity >>> for developers seeking to adopt vLLM as their >>> inference server for post-training workloads. >>> https://github.com/vllm-project/vllm/issues/31848 >>> >>> How much Workers are enough? I guess it depends >>> on I/O parallelism, CPU Memory parallelism, CPU >>> Processing parallelism, and now also >>> >>> GPU Memory parallelism and GPU Processing >>> parallelism, and last but least you might have >>> a couple DMAs sitting here and there, >>> >>> or even invoking a sort of RDMA. Quite amazing! >>> >>> Bye >>> >>> Mild Shock schrieb: >>>> Hi, >>>> >>>> Well there are two viewpoint, the "client" >>>> of the GPU, which is the CPU, and the "server" >>>> of the GPU, which is the command processor >>>> >>>> queue of the GPU device. So basically as >>>> a CPU client I can write the memory area, >>>> that is later mapped to my GPU code storage. >>>> >>>> And this way have a compiler, even written >>>> in Prolog, that compiles pi-WAM to my Hack VM, >>>> that can then be then deployed to GPU. >>>> >>>> You could also try the same with a Tiny >>>> LISP VM. And a grown up LISP to act as >>>> the compiler. Would be a similar exercise. >>>> >>>> Have Fun! >>>> >>>> Bye >>>> >>>> Mild Shock schrieb: >>>>> Hi, >>>>> >>>>> > I've also added comp.theory so Mild Shock can comment. >>>>> >>>>> > that has different >>>>> > * sizeof ( void * ), and >>>>> > * sizeof ( void (*)( void ) ), >>>>> >>>>> Could indicate a data RAM and code ROM model. >>>>> Which has then the advantage of: >>>>> >>>>> Modern operating systems like Windows 11 >>>>> enforce strict Data Execution Prevention (DEP) >>>>> (or NX/XD bit security features) to prevent >>>>> malicious programs from injecting and executing >>>>> code inside data-only memory regions. >>>>> https://root-nation.com/en/soft-en/lifehacks/en-dep-windows-all-about/ >>>>> >>>>> I adopted data RAM and code ROM model for >>>>> pi-WAM from Hack, which has the same separation: >>>>> >>>>> Slide 58, Hack Computer >>>>> https://drive.google.com/file/d/1Z_fxYmmRNXTkAzmZ6YMoX9NXZIRVCKiw/view >>>>> >>>>> But my motivation was not Johnny Depp prevention. >>>>> Rather the caching of GPUs. Because WGSL >>>>> allows storage annotations read_write and >>>>> >>>>> read. I use read_write for the data RAM >>>>> of my Hack VM variant, and read for the >>>>> code ROM of my Hack VM variant. You can >>>>> >>>>> see that here, its open source: >>>>> >>>>> @group(0) @binding(0) var<storage, read> code: array<i32>; >>>>> @group(0) @binding(1) var<storage, read_write> state: array<i32>; >>>>> >>>>> 11.4 Giga Lips with a Budget Laptop >>>>> https://github.com/Jean-Luc-Picard-2021/gigabudget >>>>> >>>>> Hope this Helps! >>>>> >>>>> Bye >>>>> >>>>> Johann 'Myrkraverk' Oskarsson schrieb: >>>>>> On 03/08/2026 6:28 PM, David Brown wrote: >>>>>>> On 03/08/2026 11:41, Richard Harnden wrote: >>>>>>>> On 03/08/2026 09:16, David Brown wrote: >>>>>>> >>>>>>>>> On most targets, function pointers are the same size as void* >>>>>>>>> pointers. But there are exceptions, with some small >>>>>>>>> microcontrollers and DSPs having different kinds of pointers >>>>>>>>> with different sizes, depending on the memory space involved. >>>>>>>>> I have yet to see a situation where there was any reason for >>>>>>>>> storing a function address in a "void*" rather than a more >>>>>>>>> appropriate typedef, such as : >>>>>>>>> >>>>>>>>> typedef void (*FVoid)(void); >>>>>>>> >>>>>>>> dlsym requires that pointer-to-function is compatible with a void* >>>>>>>> >>>>>>> >>>>>>> As I say, I have yet to see a situation where using void* for >>>>>>> function pointers was more appropriate than using a function >>>>>>> pointer type. If the OS system calls or standard OS libraries >>>>>>> makes it a requirement that function pointers are converted to or >>>>>>> from void* for some calls, then of course you need to follow >>>>>>> those requirements - it's the people who designed the interfaces >>>>>>> that made questionable design choices. >>>>>>> >>>>>> >>>>>> Nope, you're wrong. You're dead wrong. The world isn't built on C, >>>>>> even though here in comp.lang.c we like to pretend it is. >>>>>> >>>>>> Several language environments allow function generation on the fly, >>>>>> these functions need to be garbage collected. Common Lisp is an >>>>>> example, therefore comp.lang.lisp is added to this discussion. >>>>>> >>>>>> I've also added comp.theory so Mild Shock can comment. >>>>>> >>>>>> You will have to go out of your way to make a computer architecture >>>>>> incompatible with garbage collected and heap allocated binary code, >>>>>> something I've been told SBCL does internally [1] to create an archi- >>>>>> tecture that has different >>>>>> >>>>>> * sizeof ( void * ), and >>>>>> * sizeof ( void (*)( void ) ), >>>>>> >>>>>> and when you do that, I'll just claim you're making a /malicious >>>>>> computer architecture/ and refuse to use it. >>>>>> >>>>>> >>>>>> [1] I've not looked at the code, but told the garbage collector can >>>>>> and will at least move the code around, if not collect it. >>>>> >>>> >>> >> >
[toc] | [prev] | [next] | [standalone]
| From | Aidan Kehoe <kehoea@parhasard.net> |
|---|---|
| Date | 2026-08-03 19:51 +0100 |
| Subject | Re: Malicious Computer Architecture |
| Message-ID | <27248.58134.739884.512819@parhasard.net> |
| In reply to | #400738 |
Ar an triú lá de mí Lúnasa, scríobh Johann Oskarsson: > On 03/08/2026 6:28 PM, David Brown wrote: > > On 03/08/2026 11:41, Richard Harnden wrote: > >> On 03/08/2026 09:16, David Brown wrote: > > > >>> On most targets, function pointers are the same size as void* pointers. > >>> But there are exceptions, with some small microcontrollers and DSPs > >>> having different kinds of pointers with different sizes, depending on > >>> the memory space involved. I have yet to see a situation where there > >>> was any reason for storing a function address in a "void*" rather than a > >>> more appropriate typedef, such as : > >>> > >>> typedef void (*FVoid)(void); > >> > >> dlsym requires that pointer-to-function is compatible with a void* > > > > As I say, I have yet to see a situation where using void* for function > > pointers was more appropriate than using a function pointer type. If the > > OS system calls or standard OS libraries makes it a requirement that > > function pointers are converted to or from void* for some calls, then of > > course you need to follow those requirements - it's the people who > > designed the interfaces that made questionable design choices. > > Nope, you're wrong. You're dead wrong. The world isn't built on C, > even though here in comp.lang.c we like to pretend it is. The habit when I read comp.lang.c it was to assert that standard C was all that was worth discussing (yes, yes, it’s phrased as standard C is on topic, everything else isn’t; but there wasn’t the activity in the architecture-specific groups for them to be helpful when I was reading it). This is even more ridiculous; almost all the C infrastructure out there relies on what is undefined behaviour by the letter of the standard. But it’s still C, and it’s worth understanding and worth writing. Oh well, thank you the autoconf maintainers, thank you the cmake maintainers, shame about the difficulty with cross-compiling. > Several language environments allow function generation on the fly, > these functions need to be garbage collected. Common Lisp is an > example, therefore comp.lang.lisp is added to this discussion. > > I've also added comp.theory so Mild Shock can comment. > > You will have to go out of your way to make a computer architecture > incompatible with garbage collected and heap allocated binary code, > something I've been told SBCL does internally [1] to create an archi- > tecture that has different I haven’t gone into the weeds of the GNU Emacs native-compiled function implementation, but it has to be doing something similar. The functions are not in the data segment, they’re not in BSS, they’re not on the stack; that leaves the heap. > * sizeof ( void * ), and > * sizeof ( void (*)( void ) ), > > and when you do that, I'll just claim you're making a /malicious > computer architecture/ and refuse to use it. Note that GCC on AMD64 produces function pointers that are one-byte aligned, which to me is a similar philosophy. There cannot be any performance advantage to that. > [1] I've not looked at the code, but told the garbage collector can > and will at least move the code around, if not collect it. -- ‘As I sat looking up at the Guinness ad, I could never figure out / How your man stayed up on the surfboard after fourteen pints of stout’ (C. Moore)
[toc] | [prev] | [next] | [standalone]
| From | Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> |
|---|---|
| Date | 2026-08-05 00:22 +0800 |
| Subject | Re: Malicious Computer Architecture |
| Message-ID | <blocS.832$Be5.329@fx13.ams4> |
| In reply to | #400761 |
On 04/08/2026 2:51 AM, Aidan Kehoe wrote:
Hello Aidan,
We haven't spoken for a long time, and I guess we're moving in different
social circles now.
You will find it amusing that my patch to the FreeBSD kernel, the one
that kind of tunes the TCP/IP stack, is presumably used by Whatsapp as
well.
At least, that's the rumor I heard; I wouldn't know the truth as I don't
work for Whatsapp. I thought only 5ch and Netflix had sites large
enough to make use of it. Well, sites both large enough, and hosted on
FreeBSD.
I promised myself to look into it later, and if I'm right -- at least,
that my patch is still there and all -- I'll let you know.
It's always fun to know that whenever someone streams from Netflix, the
TCP/IP patch I applied is being used; though I cannot say that it
streams through my code; it wasn't that kind of patch.
And I didn't, and don't work for Netflix either.
I hope you're also leaving trails of patches in various operating
systems that everyone on the planet, more or less, makes use of.
>
> Ar an triú lá de mí Lúnasa, scríobh Johann Oskarsson:
>
> > On 03/08/2026 6:28 PM, David Brown wrote:
> > > On 03/08/2026 11:41, Richard Harnden wrote:
> > >> On 03/08/2026 09:16, David Brown wrote:
> > >
> > >>> On most targets, function pointers are the same size as void* pointers.
> > >>> But there are exceptions, with some small microcontrollers and DSPs
> > >>> having different kinds of pointers with different sizes, depending on
> > >>> the memory space involved. I have yet to see a situation where there
> > >>> was any reason for storing a function address in a "void*" rather than a
> > >>> more appropriate typedef, such as :
> > >>>
> > >>> typedef void (*FVoid)(void);
> > >>
> > >> dlsym requires that pointer-to-function is compatible with a void*
> > >
> > > As I say, I have yet to see a situation where using void* for function
> > > pointers was more appropriate than using a function pointer type. If the
> > > OS system calls or standard OS libraries makes it a requirement that
> > > function pointers are converted to or from void* for some calls, then of
> > > course you need to follow those requirements - it's the people who
> > > designed the interfaces that made questionable design choices.
> >
> > Nope, you're wrong. You're dead wrong. The world isn't built on C,
> > even though here in comp.lang.c we like to pretend it is.
>
> The habit when I read comp.lang.c it was to assert that standard C was all that
> was worth discussing (yes, yes, it’s phrased as standard C is on topic,
> everything else isn’t; but there wasn’t the activity in the
> architecture-specific groups for them to be helpful when I was reading it).
> This is even more ridiculous; almost all the C infrastructure out there relies
> on what is undefined behaviour by the letter of the standard. But it’s still C,
> and it’s worth understanding and worth writing.
Yes, I remember that. I believe I came across a FAQ, probably comp.os.
msdos.programmer, that said because comp.lang.c was full of standard
thumping trolls, a lot of regular programming, even Win32 got discussed
there. Yes, I'll quote.
> Why does the newsgroup seem to be so C-oriented sometimes?
> There are two reasons. First, comp.lang.c and
> comp.lang.pascal have evolved in different
> directions. Comp.lang.pascal has split into discussions
> about individual Pascal compilers. comp.lang.pascal.borland
> welcomes discussion specific to Turbo Pascal, and the other
> new groups likewise. Turbo Pascal programmers tend to find
> DOS questions welcomed in comp.lang.pascal.borland, so that
> comp.os.msdos.programmer gets less of the "DOS in Turbo
> Pascal" traffic. On the other hand, comp.lang.c has stayed
> closer to talking only about the C language, and
> vendor-specific or operating-system-specific questions are
> not welcome. This tends to push questions about disks, DOS
> file structure, video, the keyboard, TSRs, etc. to
> comp.os.msdos.programmer even when those programs are
> written in C.
So my take on it, is that the standard thumping trolls in comp.lang.c
were already a problem in the 90s. They just didn't know it, didn't
care, and nobody challenged them about it. Until now.
I am challenging their rule. And they can whine, and they can bluster,
but nobody cares about their mistaken sense of prestige and power.
They claim my cross posting is annoying. As far as I'm aware, I'm
basically screaming into the void with my cross posts, because there
isn't enough traffic in the other groups to warrant complaints about it.
>
> Oh well, thank you the autoconf maintainers, thank you the cmake maintainers,
> shame about the difficulty with cross-compiling.
On that subject, I have to agree. I've largely given up on both for my
own projects. The problems with these tools isn't when they work, it's
when they don't. It can be a nightmare to get to the first build on a
platform where the build system doesn't work.
I currently believe both tools make porting to a /different enough
platform/ basically impossible. And that's based on hard earned
experience.
>
> > Several language environments allow function generation on the fly,
> > these functions need to be garbage collected. Common Lisp is an
> > example, therefore comp.lang.lisp is added to this discussion.
> >
> > I've also added comp.theory so Mild Shock can comment.
> >
> > You will have to go out of your way to make a computer architecture
> > incompatible with garbage collected and heap allocated binary code,
> > something I've been told SBCL does internally [1] to create an archi-
> > tecture that has different
>
> I haven’t gone into the weeds of the GNU Emacs native-compiled function
> implementation, but it has to be doing something similar. The functions are not
> in the data segment, they’re not in BSS, they’re not on the stack; that leaves
> the heap.
And not to mention the operating system interfaces. I'll name mmap(),
and Win32 has its equivalent, and while I'm not sure, OpenVMS might be
different too.
All of them return the equivalent of void *. So what are the program-
mers of the JVM, CLR, and other virtual machines to do? They'll have
to rely on this "undefined behaviour."
>
> > * sizeof ( void * ), and
> > * sizeof ( void (*)( void ) ),
> >
> > and when you do that, I'll just claim you're making a /malicious
> > computer architecture/ and refuse to use it.
>
> Note that GCC on AMD64 produces function pointers that are one-byte aligned,
> which to me is a similar philosophy. There cannot be any performance advantage
> to that.
Can you please expand on that? I'm not sure what you mean, and I hope
it doesn't create function pointers at strictly odd addresses, because
that's what it sounds like to me.
>
> > [1] I've not looked at the code, but told the garbage collector can
> > and will at least move the code around, if not collect it.
>
Best wishes, and happy XEmacs coding!
--
Johann | email: invalid -> com | http://www.myrkraverk.com/blog/
I'm not from the Internet, I just work there. | via Easynews.com
https://bsky.app/profile/myrkraverk.bsky.social
[toc] | [prev] | [next] | [standalone]
| From | Richard Harnden <richard.nospam@gmail.invalid> |
|---|---|
| Date | 2026-08-04 19:10 +0100 |
| Subject | Re: Malicious Computer Architecture |
| Message-ID | <114t9u9$2c1qh$1@dont-email.me> |
| In reply to | #400823 |
On 04/08/2026 17:22, Johann 'Myrkraverk' Oskarsson wrote: > And not to mention the operating system interfaces. I'll name mmap(), > and Win32 has its equivalent, and while I'm not sure, OpenVMS might be > different too. > > All of them return the equivalent of void *. So what are the program- > mers of the JVM, CLR, and other virtual machines to do? They'll have > to rely on this "undefined behaviour." I suspect its because I'm not a genius like you, but ... malloc(3) also returns a void* and that is perfectly well defined, is used everywhere and never caused anybody any problems. ... it seems to me you are, as usual, talking bollocks.
[toc] | [prev] | [next] | [standalone]
| From | Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> |
|---|---|
| Date | 2026-08-05 03:21 +0800 |
| Subject | Re: Malicious Computer Architecture |
| Message-ID | <cZqcS.94641$jNNe.44495@fx15.ams4> |
| In reply to | #400824 |
On 05/08/2026 2:10 AM, Richard Harnden wrote: > On 04/08/2026 17:22, Johann 'Myrkraverk' Oskarsson wrote: >> And not to mention the operating system interfaces. I'll name mmap(), >> and Win32 has its equivalent, and while I'm not sure, OpenVMS might be >> different too. >> >> All of them return the equivalent of void *. So what are the program- >> mers of the JVM, CLR, and other virtual machines to do? They'll have >> to rely on this "undefined behaviour." > > I suspect its because I'm not a genius like you, but ... > > malloc(3) also returns a void* and that is perfectly well defined, is > used everywhere and never caused anybody any problems. > > ... it seems to me you are, as usual, talking bollocks. > > > Ah, yes. Bollocks. Never mind how malloc() itself is defined by the C standards library. Nobody needs to implement that in terms of the interfaces the operating system provides. It just happens all by itself by "magic." Have a nice magical day! -- Johann | email: invalid -> com | http://www.myrkraverk.com/blog/ I'm not from the Internet, I just work there. | via Easynews.com https://bsky.app/profile/myrkraverk.bsky.social
[toc] | [prev] | [next] | [standalone]
| From | Kaz Kylheku <046-301-5902@kylheku.com> |
|---|---|
| Date | 2026-08-06 21:55 +0000 |
| Subject | Re: Malicious Computer Architecture |
| Message-ID | <20260806143922.203@kylheku.com> |
| In reply to | #400823 |
On 2026-08-04, Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> wrote: > Yes, I remember that. I believe I came across a FAQ, probably comp.os. > msdos.programmer, that said because comp.lang.c was full of standard > thumping trolls, a lot of regular programming, even Win32 got discussed > there. Yes, I'll quote. I don't believe that only standard C should be discussed in comp.lang.c. There is room for dialects. E.g. GNU C is C. Once we are in the weeds of a platform specific kernel function that can do anything whatsoever, the discussion of what it does doesn't relate to C. You can call it out of assembly language or Fortran; it doesn't matter. Standard thumping and standard thumpers are useful, because it is usually good to be informed about whether something we are doing in the code is required to work, by the standard, or not. (If not, then by what: by what requirements, or else theory of operation, is it assured that the code works as believed.) Sometimes standard thumpers can point out a standard-conforming way of doing something that has no disadvantages, or at least few disadvantages, compared to the nonstandard way being presented. C is a very unsafe language; a program that compiles with silence at the highest diagnostic level of your compiler of choice could have serious flaws. The standard is the primary (though not the only) source that informs the scrutiny of C programs for undiagnosed/undiagnosable problems. > So my take on it, is that the standard thumping trolls in comp.lang.c > were already a problem in the 90s. They just didn't know it, didn't > care, and nobody challenged them about it. Until now. On the contrary, standard-thumping in comp.lang.c has been regularly challenged for decades by numerous visitors; everyone who tried it so far bounced off, and came down with an unpleasant bump. :) -- TXR Programming Language: http://nongnu.org/txr Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal Mastodon: @Kazinator@mstdn.ca
[toc] | [prev] | [next] | [standalone]
| From | Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> |
|---|---|
| Date | 2026-08-07 06:31 +0800 |
| Subject | Re: Malicious Computer Architecture |
| Message-ID | <8X7dS.14$354.9@fx13.ams4> |
| In reply to | #400897 |
On 07/08/2026 5:55 AM, Kaz Kylheku wrote: > On 2026-08-04, Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> wrote: Dear Kaz, I'll let you have the final word on what you said in you previous post, and not comment further on the things I snipped from this one. >> So my take on it, is that the standard thumping trolls in comp.lang.c >> were already a problem in the 90s. They just didn't know it, didn't >> care, and nobody challenged them about it. Until now. > > On the contrary, standard-thumping in comp.lang.c has been regularly > challenged for decades by numerous visitors; everyone who tried it so > far bounced off, and came down with an unpleasant bump. :) > Thank you for the warning. I'll endeavour not to run out of stamina, and plan to spend my attribute points in stamina on my next level up. These standard thumping trolls do need to be challanged, and right- fully so. There are ways to do it, and there are ways that -- result in failure. I hope my method will be a success, and we'll know in a few years how well I did. Thanks to disbelief in me, I have added surrealism to my attack vector, and that irritates the standard thumping trolls even further. And it makes me happier. Good luck, and happy C compiling! -- Johann | email: invalid -> com | http://www.myrkraverk.com/blog/ I'm not from the Internet, I just work there. | via Easynews.com https://bsky.app/profile/myrkraverk.bsky.social | for ( ;; ) _:;
[toc] | [prev] | [next] | [standalone]
| From | Aidan Kehoe <kehoea@parhasard.net> |
|---|---|
| Date | 2026-08-06 23:01 +0100 |
| Subject | Re: Malicious Computer Architecture |
| Message-ID | <27253.1071.416806.842336@parhasard.net> |
| In reply to | #400823 |
Ar an cúigiú lá de mí Lúnasa, scríobh Johann Oskarsson: > On 04/08/2026 2:51 AM, Aidan Kehoe wrote: > > Hello Aidan, > > We haven't spoken for a long time, and I guess we're moving in different > social circles now. I spent 2012-present debugging people, and until 2021ish without the time away from that to maintain a social circle or do any XEmacs work. My social circle just shrank! > You will find it amusing that my patch to the FreeBSD kernel, the one > that kind of tunes the TCP/IP stack, is presumably used by Whatsapp as > well. > > At least, that's the rumor I heard; I wouldn't know the truth as I don't > work for Whatsapp. I thought only 5ch and Netflix had sites large > enough to make use of it. Well, sites both large enough, and hosted on > FreeBSD. > > I promised myself to look into it later, and if I'm right -- at least, > that my patch is still there and all -- I'll let you know. Good. > It's always fun to know that whenever someone streams from Netflix, the > TCP/IP patch I applied is being used; though I cannot say that it > streams through my code; it wasn't that kind of patch. > > And I didn't, and don't work for Netflix either. > > I hope you're also leaving trails of patches in various operating > systems that everyone on the planet, more or less, makes use of. There’s enough to do with XEmacs plus running a business plus a three year old daughter plus a fiancée, that I don’t anticipate any OS patches from me this decade. Still, I save lives, and more importantly, prevent large strokes. > > Ar an triú lá de mí Lúnasa, scríobh Johann Oskarsson: > > > > > On 03/08/2026 6:28 PM, David Brown wrote: > > > > On 03/08/2026 11:41, Richard Harnden wrote: > > > >> On 03/08/2026 09:16, David Brown wrote: > > > > > > > >>> On most targets, function pointers are the same size as void* > > > >>> pointers. But there are exceptions, with some small > > > >>> microcontrollers and DSPs having different kinds of pointers with > > > >>> different sizes, depending on the memory space involved. I have > > > >>> yet to see a situation where there was any reason for storing a > > > >>> function address in a "void*" rather than a more appropriate > > > >>> typedef, such as : > > > >>> > > > >>> typedef void (*FVoid)(void); > > > >> > > > >> dlsym requires that pointer-to-function is compatible with a void* > > > > > > > > As I say, I have yet to see a situation where using void* for > > > > function pointers was more appropriate than using a function pointer > > > > type. If the OS system calls or standard OS libraries makes it a > > > > requirement that function pointers are converted to or from void* > > > > for some calls, then of course you need to follow those requirements > > > > - it's the people who designed the interfaces that made questionable > > > > design choices. > > > > > > Nope, you're wrong. You're dead wrong. The world isn't built on C, > > > even though here in comp.lang.c we like to pretend it is. > > > > The habit when I read comp.lang.c it was to assert that standard C was > > all that was worth discussing (yes, yes, it’s phrased as standard C is on > > topic, everything else isn’t; but there wasn’t the activity in the > > architecture-specific groups for them to be helpful when I was reading > > it). This is even more ridiculous; almost all the C infrastructure out > > there relies on what is undefined behaviour by the letter of the > > standard. But it’s still C, and it’s worth understanding and worth > > writing. > > Yes, I remember that. I believe I came across a FAQ, probably comp.os. > msdos.programmer, that said because comp.lang.c was full of standard > thumping trolls, a lot of regular programming, even Win32 got discussed > there. Yes, I'll quote. > > > Why does the newsgroup seem to be so C-oriented sometimes? > > There are two reasons. First, comp.lang.c and > > comp.lang.pascal have evolved in different > > directions. Comp.lang.pascal has split into discussions > > about individual Pascal compilers. comp.lang.pascal.borland > > welcomes discussion specific to Turbo Pascal, and the other > > new groups likewise. Turbo Pascal programmers tend to find > > DOS questions welcomed in comp.lang.pascal.borland, so that > > comp.os.msdos.programmer gets less of the "DOS in Turbo > > Pascal" traffic. On the other hand, comp.lang.c has stayed > > closer to talking only about the C language, and > > vendor-specific or operating-system-specific questions are > > not welcome. This tends to push questions about disks, DOS > > file structure, video, the keyboard, TSRs, etc. to > > comp.os.msdos.programmer even when those programs are > > written in C. > > So my take on it, is that the standard thumping trolls in comp.lang.c were > already a problem in the 90s. They just didn't know it, didn't care, and > nobody challenged them about it. Until now. Most of my comp.lang.c was the turn of the millennium. I don’t have the desire or spare time at the moment to read more newsgroups, and I’m happy with my command of C. > I am challenging their rule. And they can whine, and they can bluster, > but nobody cares about their mistaken sense of prestige and power. > > They claim my cross posting is annoying. As far as I'm aware, I'm > basically screaming into the void with my cross posts, because there > isn't enough traffic in the other groups to warrant complaints about it. Fight on! Alternatively put the time into XEmacs (or packages) work, which is, a better use of your time. (From my perspective, and probably in the grand scheme of things; neither of is likely to make any difference to comp.lang.c.) > > Oh well, thank you the autoconf maintainers, thank you the cmake > > maintainers, shame about the difficulty with cross-compiling. > > On that subject, I have to agree. I've largely given up on both for my own > projects. The problems with these tools isn't when they work, it's when they > don't. It can be a nightmare to get to the first build on a platform where > the build system doesn't work. Well, it’s just one more platform to learn. I would love to move XEmacs to cmake, given it would unify the POSIX and Windows build systems, but it would be a huge investment of time to port it over, because I know autoconf but I don’t know cmake. > I currently believe both tools make porting to a /different enough platform/ > basically impossible. And that's based on hard earned experience. My understanding is that cmake just requires a C compiler, no shell, no other dependencies, so it should manage a different enough platform that has a C compiler without problems. This is its attraction over autoconf, which requires /bin/sh at least, and pragmatically more of POSIX. > > > Several language environments allow function generation on the fly, > > > these functions need to be garbage collected. Common Lisp is an > > > example, therefore comp.lang.lisp is added to this discussion. > > > > > > I've also added comp.theory so Mild Shock can comment. > > > > > > You will have to go out of your way to make a computer architecture > > > incompatible with garbage collected and heap allocated binary code, > > > something I've been told SBCL does internally [1] to create an archi- > > > tecture that has different > > > > I haven’t gone into the weeds of the GNU Emacs native-compiled function > > implementation, but it has to be doing something similar. The functions > > are not in the data segment, they’re not in BSS, they’re not on the > > stack; that leaves the heap. > > And not to mention the operating system interfaces. I'll name mmap(), > and Win32 has its equivalent, and while I'm not sure, OpenVMS might be > different too. > > All of them return the equivalent of void *. So what are the programmers of > the JVM, CLR, and other virtual machines to do? They'll have to rely on > this "undefined behaviour." Well, they have to port to the various platforms, that’s all. And hope the platform defines the behaviour. > > > > > * sizeof ( void * ), and > > > * sizeof ( void (*)( void ) ), > > > > > > and when you do that, I'll just claim you're making a /malicious > > > computer architecture/ and refuse to use it. > > > > Note that GCC on AMD64 produces function pointers that are one-byte > > aligned, which to me is a similar philosophy. There cannot be any > > performance advantage to that. > > Can you please expand on that? I'm not sure what you mean, and I hope > it doesn't create function pointers at strictly odd addresses, because > that's what it sounds like to me. https://lidell.nu/xemacs-buildbot/#/builders/14/builds/690 throws an assertion failure because I was storing a function pointer into a Lisp fixnum, which has 63 bits of precision. The least significant bit of the function pointer was set. -- ‘As I sat looking up at the Guinness ad, I could never figure out / How your man stayed up on the surfboard after fourteen pints of stout’ (C. Moore)
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-08-04 14:58 +0200 |
| Subject | A Case for Impurity: The Applied Pi Calculus (Re: Malicious Computer Architecture) |
| Message-ID | <114snlo$uj7n$2@solani.org> |
| In reply to | #400738 |
Hi, How it started: The Applied Pi Calculus: Mobile Values, New Names, and Secure Communication Martín Abadi et al. - Google Brain https://arxiv.org/abs/1609.03003 How its going: Dynamic Control Flow in Large-Scale Machine Learning Martín Abadi et al. - Google Brain https://research.google/pubs/dynamic-control-flow-in-large-scale-machine-learning/ Have Fun! Bye Johann 'Myrkraverk' Oskarsson schrieb: > On 03/08/2026 6:28 PM, David Brown wrote: >> On 03/08/2026 11:41, Richard Harnden wrote: >>> On 03/08/2026 09:16, David Brown wrote: >> >>>> On most targets, function pointers are the same size as void* >>>> pointers. But there are exceptions, with some small microcontrollers >>>> and DSPs having different kinds of pointers with different sizes, >>>> depending on the memory space involved. I have yet to see a >>>> situation where there was any reason for storing a function address >>>> in a "void*" rather than a more appropriate typedef, such as : >>>> >>>> typedef void (*FVoid)(void); >>> >>> dlsym requires that pointer-to-function is compatible with a void* >>> >> >> As I say, I have yet to see a situation where using void* for function >> pointers was more appropriate than using a function pointer type. If >> the OS system calls or standard OS libraries makes it a requirement >> that function pointers are converted to or from void* for some calls, >> then of course you need to follow those requirements - it's the people >> who designed the interfaces that made questionable design choices. >> > > Nope, you're wrong. You're dead wrong. The world isn't built on C, > even though here in comp.lang.c we like to pretend it is. > > Several language environments allow function generation on the fly, > these functions need to be garbage collected. Common Lisp is an > example, therefore comp.lang.lisp is added to this discussion. > > I've also added comp.theory so Mild Shock can comment. > > You will have to go out of your way to make a computer architecture > incompatible with garbage collected and heap allocated binary code, > something I've been told SBCL does internally [1] to create an archi- > tecture that has different > > * sizeof ( void * ), and > * sizeof ( void (*)( void ) ), > > and when you do that, I'll just claim you're making a /malicious > computer architecture/ and refuse to use it. > > > [1] I've not looked at the code, but told the garbage collector can > and will at least move the code around, if not collect it.
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-08-04 15:10 +0200 |
| Subject | The Sandcastle of Paul Taraus Interactors (Re: A Case for Impurity: The Applied Pi Calculus) |
| Message-ID | <114sod0$ujln$3@solani.org> |
| In reply to | #400816 |
Hi,
While Paul Taraus Interactors were somewhere
between stackfull and stackless coroutines,
they were still a castle built on sand.
What was the comms? An interactor was a child
of a parent, and had only two comms, input "next"
and output "the". And there was not much
asynchronizity. But look at the new
library(misc/intercom) that provides ADA
Rendez Vous in Dogelog Player for Java:
:- ensure_loaded(library(misc/intercom)).
producer(C) :-
between(1,10,X),
Y is X*X,
send(C,[Y]),
fail.
producer(_).
consumer(C) :-
between(1,10,_),
recv(C,[Y]),
write(Y), nl,
fail.
consumer(_).
As the show case shows, it even works with
cooperating coroutines. I have looked at it
for 5 hours straight, its beautiful:
?- cpu_chan_new(C), create_task(producer(C)),
create_task(consumer(C)), sleep(1000).
1
4
9
16
25
36
49
64
81
100
C = 0rReference.
Bye
Mild Shock schrieb:
> Hi,
>
> How it started:
>
> The Applied Pi Calculus: Mobile Values,
> New Names, and Secure Communication
> Martín Abadi et al. - Google Brain
> https://arxiv.org/abs/1609.03003
>
> How its going:
>
> Dynamic Control Flow in
> Large-Scale Machine Learning
> Martín Abadi et al. - Google Brain
> https://research.google/pubs/dynamic-control-flow-in-large-scale-machine-learning/
>
>
> Have Fun!
>
> Bye
>
> Johann 'Myrkraverk' Oskarsson schrieb:
>> On 03/08/2026 6:28 PM, David Brown wrote:
>>> On 03/08/2026 11:41, Richard Harnden wrote:
>>>> On 03/08/2026 09:16, David Brown wrote:
>>>
>>>>> On most targets, function pointers are the same size as void*
>>>>> pointers. But there are exceptions, with some small
>>>>> microcontrollers and DSPs having different kinds of pointers with
>>>>> different sizes, depending on the memory space involved. I have
>>>>> yet to see a situation where there was any reason for storing a
>>>>> function address in a "void*" rather than a more appropriate
>>>>> typedef, such as :
>>>>>
>>>>> typedef void (*FVoid)(void);
>>>>
>>>> dlsym requires that pointer-to-function is compatible with a void*
>>>>
>>>
>>> As I say, I have yet to see a situation where using void* for
>>> function pointers was more appropriate than using a function pointer
>>> type. If the OS system calls or standard OS libraries makes it a
>>> requirement that function pointers are converted to or from void* for
>>> some calls, then of course you need to follow those requirements -
>>> it's the people who designed the interfaces that made questionable
>>> design choices.
>>>
>>
>> Nope, you're wrong. You're dead wrong. The world isn't built on C,
>> even though here in comp.lang.c we like to pretend it is.
>>
>> Several language environments allow function generation on the fly,
>> these functions need to be garbage collected. Common Lisp is an
>> example, therefore comp.lang.lisp is added to this discussion.
>>
>> I've also added comp.theory so Mild Shock can comment.
>>
>> You will have to go out of your way to make a computer architecture
>> incompatible with garbage collected and heap allocated binary code,
>> something I've been told SBCL does internally [1] to create an archi-
>> tecture that has different
>>
>> * sizeof ( void * ), and
>> * sizeof ( void (*)( void ) ),
>>
>> and when you do that, I'll just claim you're making a /malicious
>> computer architecture/ and refuse to use it.
>>
>>
>> [1] I've not looked at the code, but told the garbage collector can
>> and will at least move the code around, if not collect it.
>
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2026-08-03 05:34 -0700 |
| Message-ID | <114q1sr$1a0sa$2@kst.eternal-september.org> |
| In reply to | #400736 |
Richard Harnden <richard.nospam@gmail.invalid> writes:
[...]
> dlsym requires that pointer-to-function is compatible with a void*
Well, sort of.
A technical quibble is that "compatible" has a specific meaning in c,
and void* can never be compatible with any pointer-to-function type.
But I know what you meant by "compatible".
dlsym() is a POSIX-specific function that returns the address of a
symbol looked up by its name. It can be the address of an object
or of a function. The only real requirement is that an address
returned by dlsym() for a function identifier can be usefully
converted to a function pointer of the appropriate type and used to
call the function. It doesn't require that *all* function pointers
are losslessly convertible to and from void*.
For example, an implementation could have, say, 32-bit void* and
64-bit function pointers, but guarantee all functions whose addresses
can be obtained by dlsym() are within a 32-bit address space.
I don't know of any implementations that work this way, but it's
allowed by both C and POSIX.
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */
[toc] | [prev] | [next] | [standalone]
| From | "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> |
|---|---|
| Date | 2026-08-03 13:04 -0700 |
| Message-ID | <114qs94$1k64l$1@dont-email.me> |
| In reply to | #400736 |
On 8/3/2026 2:41 AM, Richard Harnden wrote: > On 03/08/2026 09:16, David Brown wrote: >> On 02/08/2026 23:37, Chris M. Thomasson wrote: >>> On 8/2/2026 2:14 PM, David Brown wrote: >>>> On 01/08/2026 10:25, Chris M. Thomasson wrote: >>>>> On 7/30/2026 7:44 PM, Chris M. Thomasson wrote: >>>>>> On 7/30/2026 7:43 PM, Dan Cross wrote: >>>>>>> In article <114h1v7$2b0po$2@dont-email.me>, >>>>>>> Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote: >>>>>>>> On 7/30/2026 2:00 PM, Lawrence D’Oliveiro wrote: >>>>>>>>> On Thu, 30 Jul 2026 06:44:41 -0400, James Kuyper wrote: >>>>>>>>> >>>>>>>>>> ... the value of a pointer is the location that it points at. >>>>>>>>>> It's >>>>>>>>>> value is never a number. >>>>>>>>> >>>>>>>>> In C, its value is never *directly compatible* with a number. >>>>>>>> >>>>>>>> Well, uintptr_t? >>>>>>> >>>>>>> That's a type, not a value. >>>>>> Afait uintptr_t can be set to the NULL and any pointer? Then >>>>>> compared? >>>>> >>>>> I think, humm... uintptr_t can be set to a function pointer as well? >>>> >>>> You are not making sense here. >>>> >>>> Any pointer (object pointer or function pointer) can be converted to >>>> any integer type. Whether or not the resulting integer value can be >>>> converted back to the same pointer is implementation dependent, as >>>> is the way the conversions are done. >>> >>> uintptr_t can help us here. They are very useful. >> >> Yes, uintptr_t is the type you want to use if you need to handle an >> object pointer as an integer. Use it for two reasons. >> >> First, if the implementation does not support an integer type big >> enough to hold a void*, then the type "uintptr_t" will not exist in >> <stdint.h>. I don't know of any such platforms, but if one is made, >> then a hard compile-time error is far better than hidden problems. >> >> Secondly, assuming the type exists, it is the ideal size for the job. >> >> So always use "const uintptr_t address = (uintptr_t) pointer;", rather >> than using "unsigned long" or other guessed type that will be >> appropriate on some targets and not others. >> >>> >>> >>>> But /if/ any void* pointer can be converted to an integer type >>>> without loss of information, then uintptr_t and intptr_t are >>>> unsigned and signed types that can be used for the task. >>> >>> right. >>> >>> >>>> They may or may not be able to represent function pointers. In >>>> practice, on most systems, uintptr_t works for any data or function >>>> pointer. But you have to explicitly convert pointers to the >>>> uintptr_t integer type. >>>> >>> >>> Can void* always hold a function pointer? I think not. So, that means >>> that uintptr_t cannot always hold a function pointer... Right? >>> >>> However, uintptr_t can always hold a void* >> >> That is all correct (if uintptr_t exists, of course). >> >> On most targets, function pointers are the same size as void* >> pointers. But there are exceptions, with some small microcontrollers >> and DSPs having different kinds of pointers with different sizes, >> depending on the memory space involved. I have yet to see a situation >> where there was any reason for storing a function address in a "void*" >> rather than a more appropriate typedef, such as : >> >> typedef void (*FVoid)(void); > > dlsym requires that pointer-to-function is compatible with a void* Shit, off the top of my head I cannot remember if that function is POSIX. I think it is. So, POSIX puts a lot of prerequisites for any system to say its POSIX compliant.
[toc] | [prev] | [next] | [standalone]
| From | Lawrence D’Oliveiro <ldo@nz.invalid> |
|---|---|
| Date | 2026-08-04 00:52 +0000 |
| Subject | Re: Prioritize Correctness Over Performance |
| Message-ID | <114rd4c$1ov3f$2@dont-email.me> |
| In reply to | #400769 |
On Mon, 3 Aug 2026 13:04:50 -0700, Chris M. Thomasson wrote:
> Shit, off the top of my head I cannot remember if that function is
> POSIX.
This is usually mentioned in the man pages.
<https://manpages.debian.org/dlsym(3)> says:
STANDARDS
dlsym()
POSIX.1-2008.
dlvsym()
GNU.
[toc] | [prev] | [next] | [standalone]
| From | scott@slp53.sl.home (Scott Lurndal) |
|---|---|
| Date | 2026-08-04 14:22 +0000 |
| Subject | Re: Prioritize Correctness Over Performance |
| Message-ID | <AAmcS.1832$Z7Ef.1040@fx46.iad> |
| In reply to | #400795 |
Lawrence =?iso-8859-13?q?D=FFOliveiro?= <ldo@nz.invalid> writes: >On Mon, 3 Aug 2026 13:04:50 -0700, Chris M. Thomasson wrote: > >> Shit, off the top of my head I cannot remember if that function is >> POSIX. > >This is usually mentioned in the man pages. Usually is insufficient. Use the source, Luke. https://pubs.opengroup.org/onlinepubs/9799919799/
[toc] | [prev] | [next] | [standalone]
Page 7 of 10 — ← Prev page 1 … 5 6 [7] 8 9 10 Next page →
Back to top | Article view | comp.lang.c
csiph-web