2026-07-13 00:00:14 sometimes it leads to exactly debt slavery :-) 2026-07-13 00:00:42 In the UK even it can, there are slaves in the UK right now 2026-07-13 00:01:01 yes 2026-07-13 00:01:15 It's illegal but we don't really police crime that well or follow up on e.g. human trafficking enough 2026-07-13 00:01:42 Although we've made some positive steps... some of them a little dystopian though 2026-07-13 00:02:59 I don't know much about the UK except for things like Carbrain Young Fleeto and the Rotherham girls and that all of London smells moldy in the winter 2026-07-13 00:03:17 The case law on the grooming gangs in the UK is fascinating for how vague and broad the definition of 'trafficking' is 2026-07-13 00:03:29 They prosecuted one of them because the told a girl to cross the street 2026-07-13 00:03:34 And that counted as trafficking 2026-07-13 00:04:03 and that the government is trying to persuade people to live "#knifefree" which sounds to me like attempting to turn back the clock to before the Stone Age 2026-07-13 00:04:46 They brag about this on the radio 2026-07-13 00:04:57 George Orwell understood the beast he worked for 2026-07-13 00:05:17 yeah, the stories I've seen told make it clear that the girls were pretty badly abused but also that the grooming gangs treated them better than their orphanages 2026-07-13 00:06:02 Unfortunately even though I hate the grooming gangs, I do notice that we've created yet more dystopian laws to deal with it rather than improving e.g. policing and investigating 2026-07-13 00:06:22 But I point this out and it falls on deaf ears 2026-07-13 00:06:36 improving the foster care system seems like it would matter more in this case 2026-07-13 00:07:13 What about the parents that were trying to get their actual kids back and getting arrested? 2026-07-13 00:07:19 No foster care involved there 2026-07-13 00:07:30 I'm sure some of it was foster neglect 2026-07-13 00:08:18 Like I've complained also about Begum having her citizenship revoked for joining ISIS for so many reasons, not least of all because I think she belongs in prison 2026-07-13 00:09:11 But nobody cared, they love politicians intervening and handing out unusual punishments 2026-07-13 00:09:47 What's the point of a justice system, just let politicans choose what will happen to anyone on trial 2026-07-13 00:13:15 And Labour did the same thing with some guy in Russia, supposedly the "rule of law" government, what a joke 2026-07-13 00:18:54 So in conclusion STC is faster than DTC on x86 if you use inlining 2026-07-13 00:32:33 I don't know about the arrested parents cases 2026-07-13 00:32:50 haha 2026-07-13 07:34:59 xentrac: In the UK that's quite well known talking point 2026-07-13 07:36:12 I guess some people talking about it are trying to play it down, but truly it is an awful scandal and shows just how incompetent authorities are 2026-07-13 10:08:38 I like that you can add features to machines that don't have them by carefully changing the Forth's kernel 2026-07-13 10:10:35 I'm looking at adding a sort of software interrupt to a Z80 Forth I'm working on because I want to be able to interrupt on 16K ZX Spectrums, which as far as I know is impossible otherwise 2026-07-13 10:11:19 Specifically if you put an interrupt vector in RAM, which is all 'contended' on 16K models, it glitches the screen (the 'snow' effect) 2026-07-13 10:12:15 So I can put a simple interrupt trigger in NEXT and in most scenarios that will give me an interrupt 2026-07-13 10:12:36 And this has a performance impact of course, that's a trade-off 2026-07-13 10:35:51 Sounds like "polling," IMO. I guess you can check the respective system variable (the one maintained by the real hardware interrupt routine in the ROM) so to invoke your routine at most once per timer tick, but in some cases, I'd think you'd want more precise timing than achievable that way. Then again, not that ZX Spectrum allows for much precision, hardware-wise. 2026-07-13 10:39:06 As far as I know there isn't a variable you can configure your own interrupt handler from in the ROM 2026-07-13 10:39:21 There is a variable clearly intended for this, but there is a mistake in the ROM so it doesn't work 2026-07-13 10:40:09 Oh... I see what you're saying now, sorry I misunderstood. Yes, that's exactly what I plan to do, use the ticks variable. 2026-07-13 10:41:06 FRAMES it's called in the manual 2026-07-13 10:47:37 I'm going to put a simple counter in a fixed address and increment that in NEXT, and jump to a special routine when it's zero. That routine will check whether a handler is actually configured, and whether FRAMES has changed. If so it will save context and jump to the handler. 2026-07-13 10:55:40 I'd considered using the R register but that will probably produce headaches 2026-07-13 13:29:53 so it looks like I am going to be writing an abstract machine in sectorforth 2026-07-13 13:30:10 and this abstract machine will interpret lambda calculus 2026-07-13 13:30:41 the output of the lambda calculus will control a finite state machine that controls sectorforth 2026-07-13 13:47:02 What has brought you down this path? 2026-07-13 14:02:59 veltas: I ask myself this often 2026-07-13 14:04:29 lisbeths: do you have an actual plan for this, or any details on the 'abstract machine' design? 2026-07-13 15:14:20 yes 2026-07-13 15:15:15 so a lambda calculus object can be represented as a series of linked lists 2026-07-13 15:15:50 I will design my lambda machines so that when they half they will contain a list two deep 2026-07-13 15:16:22 fhe second value of that list will contain the state of the machine when lambda calculus halted 2026-07-13 15:17:19 the first value of that list will contain a lambda that encodes a string. that string will be translated directly into forth source code then evaluated on the fly 2026-07-13 15:18:08 the thread of control is repeatedly handed from lambda calculs to forth 2026-07-13 15:19:16 on an intel machine there are multiple cores. at least two cores will run just forth, and at least one core will interpret lambda calculus 2026-07-13 15:22:40 s/half/halt 2026-07-13 15:23:03 Have you seen SectorLisp? 2026-07-13 15:23:55 yeah 2026-07-13 15:24:21 sectorlisp is usable as an interpreter but not as an operating system 2026-07-13 15:24:46 so i cant for example send voltage to a gpio pin without the help of another program 2026-07-13 15:24:58 It feels like it's easier to make that a Lispy OS than SectorForth? 2026-07-13 15:26:06 by the time you implement a performant version of lambda calculus youve already used up about a sector of machine code 2026-07-13 15:26:32 lambda calculus is a great interpreter and a lousy os 2026-07-13 15:26:47 I might also just use jonesforth 2026-07-13 15:27:28 this is for a project to do with complexity theory where every bit counts 2026-07-13 15:27:54 Would just go for a classic Forth then 2026-07-13 15:28:07 Those are really compact depending on what you're doing 2026-07-13 15:32:35 sectorforth is a 16-bit real mode system; the cell size and memory model will probably be limiting. And you'll have to build out a *lot* to make this doable 2026-07-13 15:39:04 UEFI ilo is probably a better starting point than that 2026-07-13 15:39:14 I also think you might need to push outside real mode limitations to actually initialize and use multiple x86 cpu cores 2026-07-13 15:39:20 And you can change the arch if you want quite easily because that part is trivial C code 2026-07-13 15:39:26 I mean the virtual arch 2026-07-13 15:39:59 (discovery of the cores may be difficult in real mode, and the BIOS routines used by sectorforth are likely not safe to use in a multicore environment) 2026-07-13 15:47:38 why do you want to use sectorforth as a base? 2026-07-13 16:13:25 bonjour 2026-07-13 16:13:54 do someone test my cam machine ? https://github.com/cleobuline/camX11 2026-07-13 16:23:06 cleobuline: it runs ok on my OpenBSD box. I had to compile it manually since the makefile doesn't work on OpenBSD 2026-07-13 16:23:21 I ended up using this command line to build: cc -O2 -o camx11 cam_core.c cam_forth.c fhp.c camx11.c -lm `pkg-config --cflags x11 --libs` 2026-07-13 16:31:00 ok type ? for help on screen and don't forget the --rule folder/ 2026-07-13 16:31:30 i have put a screen shot in the readme.md 2026-07-13 16:32:03 to run it need the "regles" folder 2026-07-13 16:35:55 i will do a user friendly user interface next time 2026-07-13 16:36:22 i do for the macos version crc 2026-07-13 16:37:37 I probably won't run the macos version; I only use my mac when updating iOS applications 2026-07-13 16:39:44 on the mac i implement a video output and it's more user friendly 2026-07-13 16:41:08 i have just extract the c code from the xcode project to do the x11 version it's very minimalist ... 2026-07-13 16:45:06 crc: thanks for the correction of the makefile for openbsd 2026-07-13 16:49:25 crc i hace corrected the makefile just now 2026-07-13 17:00:18 I'm guessing that makefile won't work on most BSD's because it's a GNU makefile 2026-07-13 17:00:41 GNU Make supports a lot of extra syntax that isn't POSIX and BSD makes tend to be closer to POSIX 2026-07-13 17:15:16 mmm i see 2026-07-13 17:17:21 cleobuline: works with gmake on my openbsd box now, thanks! 2026-07-13 17:18:44 nice :) 2026-07-13 17:21:33 cleobuline: https://charles.childe.rs/temp/camX11-bsd-make.txt is a patch that makes it work on my openbsd box with standard bsd make & gnu make. 2026-07-13 17:25:03 i see 2026-07-13 17:25:08 thaks 2026-07-13 17:35:15 lisbeths: "this is for a project to do with complexity theory where every bit counts", what are the actual metrics for measuring complexity in this project? That might help in deciding what actually makes a good starting point 2026-07-13 17:42:23 thrig 2026-07-13 17:42:42 sorry, was look for thrig, hit the wrong keys 2026-07-13 17:45:21 e.g., jonesforth, running on linux, adds entire other layers of complexity and separation when compared to sectorforth 2026-07-13 18:25:02 crc: number of bits of the source, number of bits of the executables, and bits of memory usage upon first launch. these are the key metrics 2026-07-13 18:25:25 so...kolmogorov complexity? 2026-07-13 18:56:04 are you counting the underlying os, e.g., for jonesforth? 2026-07-13 19:23:15 lisbeths: a few more questions to consider: https://charles.childe.rs/temp/q.txt 2026-07-13 19:51:37 Encoding's wrong 2026-07-13 20:04:59 veltas: should be fixed now 2026-07-13 20:12:21 was due to a conversion error on my end; I've been testing a 64-bit variant of ilo, and the character conversion bits in my block to plaintext tool were incorrect :( 2026-07-13 22:28:08 Interesting 2026-07-13 22:30:27 the executable size does not measure the size of the os and utilities 2026-07-13 22:31:10 the computations are arbitrary abstract machine computations that need total portability over performance 2026-07-13 22:31:55 forth is not totally abstract whereas lambda calculus is. also lambda calculus is purely immutable and has some other nice properties 2026-07-13 22:32:36 the mutiple cores thing is just to increase throughput on any task that is parallellizable 2026-07-13 22:33:37 not sure exactly how to measure the ram a program takes up at startup. it depends on the situation what you want to measure 2026-07-13 22:34:29 the source is just counted as the size of a compressed zipped file of all the files and folders in the project 2026-07-13 22:35:22 I am not going to implement it different ways. I am going to design it first then implement it then work on improving it 2026-07-13 22:42:24 https://ibb.co/RkBKp824 2026-07-13 22:49:17 Good luck lisbeths