Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #15848
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | Introducing an asm/1 statement in a Prolog system (Was: AI Accelerators and ISO Prolog multi-threading) |
| Date | 2026-08-09 20:21 +0200 |
| Message-ID | <115ageq$6cmg$1@solani.org> (permalink) |
| References | <107cdg8$3ok7g$1@solani.org> <10p44s1$16ps$1@solani.org> <114cv6j$kb0c$1@solani.org> |
Hi, I am on the brink of introducig an asm/1 statement in a Prolog system. The pi-WAM subsystem seems predestined to support that. And it would help somehow, to comfortable compile and extend the pi-WAM subsystem and the submitted goals. One could directly write built-ins in pi-WAM assembly, targeting the Hack VM. asm/1 would be more free than for example what Aquarius Prolog did when they had Berkeley Abstract Machine (BAM) (*), and which wasn't exposed it seems via a asm/1. On the other hand C and Rust, support asm/1 for many targets, exposing their Assembly phase from the compiler backend: Inline assembly https://en.cppreference.com/c/language/asm Inline assembly https://doc.rust-lang.org/reference/inline-assembly.html While the above is true assembly, i.e. architectures such as x86, ARM, etc.., and gives Scryer Prolog quite some edge, it could try to transpile WAM to ASM. In my case I would expose Hack ASM. And the thingy would be highly dynamic, its not that is only a compiletime thingy, it can of course be called at runtime with dynamic arguments. (*) https://webperso.info.ucl.ac.be/~pvr/Thesis/ThesisMain.pdf Mild Shock schrieb: > Hi, > > Usual question: > > > Why implement both pre-emptive threading > AND cooperative tasks/engines? > > I had implemented the ISO proposal in formerly Jekejeke > Prolog, you find the ISO proposal here: > > ISO/IEC DTR 13211–5:2007 > Prolog multi-threading support > https://logtalk.org/plstd/threads.pdf > > But the ISO proposal doesn't match modern WebGPU APIs, > where your logical threads can live remotely in a dedicated GPU > > in the VRAM there, and where you would have launch > parameters that say: Hey please run 4096 compute > > shaders for me, that have independet thread state. Using > cooperative multi-tasking as the orchestrator works well. > > Bye
Back to comp.lang.prolog | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
VIP0909: VibeCore Improvement Proposal Mild Shock <janburse@fastmail.fm> - 2025-08-11 11:35 +0200
VIP0111: Does a Map have a Constructor? (Was: VIP0909: VibeCore Improvement Proposal) Mild Shock <janburse@fastmail.fm> - 2026-03-14 18:11 +0100
100% Prolog Hash map beats SWI C Trie (Was: VIP0111: Does a Map have a Constructor?) Mild Shock <janburse@fastmail.fm> - 2026-03-17 04:07 +0100
AI Accelerators and ISO Prolog multi-threading (Was: VIP0111: Does a Map have a Constructor?) Mild Shock <janburse@fastmail.fm> - 2026-07-29 15:28 +0200
Actor/Erlang is dead, no Thread and Mailbox conflation [golang channels] (Was: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-07-29 15:41 +0200
Summer Challenge: libSQL = Prolog+Modes [VDBE versus π-WAM] (Was: Actor/Erlang is dead, no Thread and Mailbox conflation [golang channels]) Mild Shock <janburse@fastmail.fm> - 2026-07-30 11:22 +0200
Work slicing can simulate AbortController (Was: Summer Challenge: libSQL = Prolog+Modes [VDBE versus π-WAM]) Mild Shock <janburse@fastmail.fm> - 2026-08-01 13:23 +0200
Introducing an asm/1 statement in a Prolog system (Was: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-08-09 20:21 +0200
Introducing an asm/1 statement in a Prolog system (Re: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-08-09 20:25 +0200
csiph-web