2023-02-14 01:08:01 acme has this concept it refers to as plumbing,, which works off of rule sets. I don't have it clear yet, but I think this all has to do with how concurrent processes are wired up using channels. 2023-02-14 05:48:19 KipIngram: IMHO ""Everything is a File"" is a retarded generalization of MMIO. Any thoughts? 2023-02-14 05:48:27 Magic Numbers that are Memory Addresses, are replaced, ""abstracted"", by ""File Path""s. A Luser Land!! 2023-02-14 07:36:32 KipIngram: 'sup, how's your system coming along? 2023-02-14 08:09:00 DKordic: A fair opinion. But think about small systems with limited address space. You may not want to give up a chunk of that space for these "magic numbers." By having the file system involved, you've got an expandable "address space" that can hold as much information as you ever wish. Really, though, I don't see much of a difference between the two approaches. They're different in the details. 2023-02-14 08:10:48 nature: Mostly just thinking about things right now. I'm kind of in "blank sheet of paper" mode. Most recently I've realized how easily I can incorporate concurrent threads into the Forth engine, right at the bottom layer, so I've been reading papers and so forth on implementations of things using numerous concurrent processes. 2023-02-14 08:11:08 According to Rob Pike this style can dramatically simplify the implementation of some functionalities. 2023-02-14 08:12:48 So, in this system a "thread" will just be a little block of RAM that contains data and return stacks and some other information. These will be small, so I'll be able to have a lot of them. Some threads will want to access a console, search the dictionary, and things like that - those will get an additional block of RAM I call an "environment." But a thread that just needs to execute some little bit of 2023-02-14 08:12:50 code won't need one of those. 2023-02-14 08:13:51 Right now I'm thinking about how these threads will communicate with one another (when they need to) - I'm going to have a system of "channels" that they can use to send messages to one another. I'm mullng over the details of how those channels will work and how they get initialized currently. 2023-02-14 08:14:24 ACTION read https://news.ycombinator.com/item?id=34778792 and has opted for the tactic of just discarding companies from his list that only do ‘contact sales’ or ‘call for quote’ 2023-02-14 08:14:49 I've also been studying Plan 9's acme window manager. It's sufficiently "different" from anything I've encountered before that I want to make sure I give those new ideas proper consideration, though I'm not "committed to them" yet. 2023-02-14 08:15:16 I hate companies that don't publish their price list overtly. 2023-02-14 08:15:37 specially component manifactures 2023-02-14 08:15:44 Yes. 2023-02-14 08:15:58 That's usually the first thing you want to know. Or at least nearly the first. 2023-02-14 08:17:31 and, in electronics, it seems that some companies do not understand that there is something called a feasibility study and research&developement 2023-02-14 08:18:04 There can only be one reason for not posting prices, and that's to allow them to "size you up" before offering you a price, so they can decide how much to try to gouge you. 2023-02-14 08:18:47 It tells you right away that they don't offer the same price to all customers, which is a tacky way to behave in my mind. 2023-02-14 08:19:05 some of the ‘hobbyists’ trying to buy your components might well be a researcher trying to figgure out if a product might work or not 2023-02-14 08:19:38 It's like price is a quantum observable - it doesn't necessarily exist until you overtly measure it. 2023-02-14 08:19:49 Yes, you bet. 2023-02-14 08:20:13 And may not want you to know about their large company's interest in the arena yet. 2023-02-14 08:21:19 nature: It turns out I was able to implement NEXT, docol, and the switching mechanism for thread support all in just nine machine code instructions. 2023-02-14 08:21:53 The only overhead of having the thread support in there is a register decrement instruction and a "not taken" conditional jump each pass through docol. 2023-02-14 08:22:10 this can also explain why sometimes on digikey or such you find another sell of a very specific component that turns out to be a big company that is just reselling surplus they get at much lower price (bulk) from the ‘call for quote’ manifacturer 2023-02-14 08:22:21 That jump will occasionally be taken, of course, and that code will be more complex, but it will only rarely be executed. 2023-02-14 08:23:35 I've also decided to group together all of my CFAs and PFAs in tabular form, and an xt will be an index into that table, and I can have it be 16 bits rather than 32, so I think I'm looking at a quite compact system. 2023-02-14 08:25:55 I suppose that does put a size limit on the thing, but I don't expect to run out of xt's - 64k words seems like quite a lot to me. I will be careful to write it so that I can change that to 32 if I ever need to, though. 2023-02-14 08:29:17 That all sounds pretty cool tbh, looking forward to see what comes out of all of this 2023-02-14 08:30:45 Yeah, me too. I may run into any kind of roadblock, I guess, but it at least feels like it might be a fun system to use if it all comes off well. 2023-02-14 08:31:34 If you're interested here is Rob Pike's paper on implementing a window manager using concurrent processes: 2023-02-14 08:31:36 https://www.cs.tufts.edu/~nr/cs257/archive/rob-pike/conc-win.pdf 2023-02-14 08:32:32 And here is his paper on acme: 2023-02-14 08:32:35 http://doc.cat-v.org/plan_9/4th_edition/papers/acme/ 2023-02-14 08:32:40 I'll have a look thanks! 2023-02-14 08:33:12 I really like Plan 9 as well, I always think there are so many untapped potential and ideas there 2023-02-14 08:33:21 I've historically dismissed mouse-based interfaces, but acme actually looks like it might offer enough new ideas to be worthwhile. 2023-02-14 08:33:44 acme is amazing, I used it for a while before 2023-02-14 08:33:49 Yeah, I'm looking over plan9 space as well. 2023-02-14 08:34:27 and after using 9front daily for a bit, I came to think that mouse based interface can actually be very good 2023-02-14 08:34:48 That's what I'm allowing for here. 2023-02-14 08:35:02 Sorry, I have to run for now, I'll be back in a few hours 2023-02-14 08:35:31 Also, I think smoothly supporting these "channels" for process communication will mean that I do want my (simple) memory manager layer wired in at the foundation. I've done systems both ways in the past. 2023-02-14 08:35:52 Including a memory manager doesn't just "despoil" the system, but once it's there it's really easy to get carried away and do too much with it. 2023-02-14 08:37:57 By "simple" I mostly mean fixed allocation size. Removes any need for garbage collection, defragmenting, and so on. 2023-02-14 12:40:18 Wow - we've got 65 folks here.  I can actually see the nick list in this web client. 2023-02-14 12:41:02 I tinkered with my layout at home to make best use of a small screen area, and suppressed the nick list. 2023-02-14 12:48:47 63 I thk 2023-02-14 12:49:01 think, crc[log] and ChanServ are bots 2023-02-14 12:51:02 ChanServ is part of the irc service 2023-02-14 12:51:21 and crc[log] is indeed a logging bot 2023-02-14 18:45:05 One shortcoming of acme, at least at the time the paper I read was written, was that it didn't really fully integrate graphics. You could draw graphics; it looks like the screen was accessible through a "console" device and through a "drawing" device. I assume they'd just mix on the screen. But that API it provides that lets other applications interact with your window allows those apps to read the screen 2023-02-14 18:45:07 contents, and as far as I can tell that looked like it was only the console text. 2023-02-14 20:25:53 joe9: Can you calibrate me on acme vs. rio? 2023-02-14 20:26:56 rio is the window manager. Acme is the editor. 2023-02-14 20:27:06 Have you read the sam paper? 2023-02-14 20:27:20 It is another popular editor 2023-02-14 20:27:24 No, not the sam paper. Read the acme paper pretty thoroughly, though. 2023-02-14 20:27:36 Have you tried it? 2023-02-14 20:27:43 But acme manipulates windows too, and Pike talks about it having algorithms for managing placement and so on. 2023-02-14 20:27:46 Might be worth test driving it. 2023-02-14 20:27:47 No. 2023-02-14 20:28:03 Yes, I'd like to, but just haven't sluffed through the trouble yet. i did get virtualbox installed. 2023-02-14 20:28:31 Install plan9port and try it on linux/unix. 2023-02-14 20:28:33 I do still feel like I can benefit from reading, if I can find the right things to read. The acme paper is very good. 2023-02-14 20:28:42 I think p9p works on windows too, not sure about it though. 2023-02-14 20:28:49 Got a link to the sam paper? 2023-02-14 20:28:54 p9p = plan9port. 2023-02-14 20:29:02 I don't touch Windows. 2023-02-14 20:29:06 do you have a linux or unix accessible? 2023-02-14 20:29:12 Unless an employer's gun is to my head. 2023-02-14 20:29:28 yeah, my notebook is Fedora 36, and I've got a Macbook for work as well. 2023-02-14 20:29:43 plan9port should be a package on Fedora.. 2023-02-14 20:29:55 Now - that's speaking my language. One moment. 2023-02-14 20:30:13 https://github.com/9fans/plan9port 2023-02-14 20:30:19 this has an acme 2023-02-14 20:30:31 but, it is using X11 and not rio (native Plan9 window manager). 2023-02-14 20:30:41 but, atleast you will get a feel for it. 2023-02-14 20:30:49 No, at least not in the repos I'm connected to. 2023-02-14 20:30:55 I think rio works on X11 too (part of plan9port too). 2023-02-14 20:31:15 No packages with "plan9" in them at all. 2023-02-14 20:31:29 try p9p 2023-02-14 20:31:38 K 2023-02-14 20:32:14 No luck. 2023-02-14 20:33:48 https://copr.fedorainfracloud.org/coprs/khm/plan9port/ 2023-02-14 20:33:53 There are a lot of ghc-rio- packages. 2023-02-14 20:33:58 https://9fans.github.io/plan9port/ 2023-02-14 20:34:08 or, just do a mk install. 2023-02-14 20:34:18 Ok. That's not so hard. 2023-02-14 20:34:21 It normally works without a fuss. 2023-02-14 20:34:39 I'm mostly just being lazy about going to the bother of bringing up a vbox vm. 2023-02-14 20:35:18 http://doc.cat-v.org/plan_9/4th_edition/papers/sam 2023-02-14 20:35:25 http://doc.cat-v.org/plan_9/4th_edition/papers/ 2023-02-14 20:35:37 I understand. 2023-02-14 20:43:42 Oh, nice - thank you. Reading that now. 2023-02-14 20:45:24 i have install 9front(plan9 fork) on some cheap x86 box and rpi. haven't play deep though :) 2023-02-14 20:57:02 Well, so far at least sam just seems like... an editor. I don't yet see anything unique and interesting about it the way I do acme. 2023-02-14 20:57:19 acme seems to bring new "concepts" to the table. 2023-02-14 20:58:32 By the way, I started to have a feeling today that the Forth equivalent of Unix's "everything is a file" will turn out to be "everything is a word." 2023-02-14 20:59:36 I think when I load a driver for some device, there will be a process running the device and applications will communicate with it via channels. And the driver code will create Forth words for accessing those channels. 2023-02-14 21:01:16 Some of these devices (like keyboard and mouse) will need to be multiplexed out to windows. But that will just entail a layer of software that the application "registers" with, at which point it will get an id to use when it calls into the driver. And the driver will have a table for all the windows it's servicing. 2023-02-14 21:01:24 no, not a process running that driver. The driver adds a list of function pointers to a global array of devices. 2023-02-14 21:01:27 Each one will have its own channel. 2023-02-14 21:01:41 grep devtab 2023-02-14 21:01:45 You could do that too, but there's not just one way. 2023-02-14 21:02:01 I'm not talking here about plan9; I'm talking about what I may write. 2023-02-14 21:02:31 And I honestly don't know yet what the right process structure will turn out to be. 2023-02-14 21:03:23 And it's starting to look like this system could turn out to be really good at communicating processes, provided the processes are written sensibly and aren't wasteful.