2023-09-15 00:09:17 Wow - I got to the "punch line" of Wildberger's "algebraic calculus" presentation. I wondered at moments during the build up why were were talking about the stuff we were, but it all made sense in the end. 2023-09-15 00:09:43 He actually establixhes the business of integrating without having to invoke any kind of "limiting process" that implies we've done an infinity of calculations. 2023-09-15 03:51:28 can a forth desktop comuter with web browser ever happen? 2023-09-15 03:51:41 forth smartphone? 2023-09-15 03:51:59 why isn't there webFTP like a web filesystem 2023-09-15 03:52:11 read write files not all this fancy http 2023-09-15 03:52:12 lol 2023-09-15 03:52:19 or maybe a subset of html 2023-09-15 03:52:30 cat-v.org has me thinking 2023-09-15 03:52:45 can interent be done with less code? 2023-09-15 03:53:02 I mean acmoputer has to copy from node1 to node2 then make a gui 2023-09-15 03:53:08 to let use indicate waht user wants 2023-09-15 03:53:13 seems in theor simple 2023-09-15 06:19:05 KipIngram: Is that algebraic calculus the stuff using hyperreals and all that? 2023-09-15 06:29:46 concrete_houses: Yeah a Forth OS with web browser is entirely possible, but I doubt anyone will make one 2023-09-15 06:30:09 For many reasons, but a fundamental one is that a Forth mindset usually means to simplify the requirements 2023-09-15 06:30:25 And there aren't really a lot of problems where the requirement involves a fully functional web browser 2023-09-15 06:30:55 But other issues like Forth is kind of insecure and dangerous, slow to write, etc. 2023-09-15 06:31:31 It's probably on the more dangerous end of the spectrum for language memory safety... 2023-09-15 06:32:02 But it's interesting to see how Forth has been used for multiuser functions and how people would have solved this problem 2023-09-15 06:32:14 And you might be surprised just how useful it actually is given its limitations 2023-09-15 06:38:22 Honestly a lot of web usage is "I need a company/download page visible to the unwashed masses" and there are so many braindead ways of "just serve this page" available you can do those 2023-09-15 06:38:53 But if you want e.g. an internal application with graphical interface etc web is considered a "good tool" for this, and that's where with Forth you can provide a counter-cultural alternative 2023-09-15 06:52:17 should i keep stack size consistency in return functions? I mean, if a word returns an integer status on success, plus a string as the result, so 2 stack slots, should i push on the stack a failure status code plus some "nil" to fill exactly 2 stack slots as in the success branch would happen? 2023-09-15 07:06:11 rendar: Whatever works best 2023-09-15 07:06:52 With Forth I think first you need to be selfish and figure out what works well for you and your problems, and then only after getting to know Forth and yourself better can you worry about what other people will want 2023-09-15 07:07:47 You can try both ways, but always just try the simplest version of what you're doing 2023-09-15 07:12:18 i see 2023-09-15 07:45:12 rendar: I don't much care for having different paths through my code leave different amounts of stuff on the stack, but I agree with veltas - in the end you just do what seems the most sensible. 2023-09-15 07:45:58 In some old Forths FIND had this kind of divergent results - if it succeeded it left several items; if it didn't it just left a false flag. 2023-09-15 07:46:26 I avoid that in my FIND - it either leaves an xt (nonzero) or a failure flag (zero) - simple. 2023-09-15 07:46:38 The main word I know of that does this is ?DUP. 2023-09-15 07:47:58 It's actually very "overt" about it - it's like its entire purpose is exactly to produce results "depending" on things. 2023-09-15 08:01:18 hmm, i see 2023-09-15 08:01:25 what is ?DUP? neaver heard of that 2023-09-15 08:15:43 if the top of the stack is non-zero, it dup's it 2023-09-15 08:15:57 : ?dup dup IF dup THEN ; 2023-09-15 08:16:09 oh great 2023-09-15 08:39:56 It's something you can certainly spend a lot of time thinking about, but only to so much benefit 2023-09-15 08:40:15 It feels like a trap early on, just focus on getting things working, try different things, don't worry too much 2023-09-15 09:07:37 Yeah - ultimately you design your primitives however you like; there's a lot of "flexibility" in Forth. 2023-09-15 09:11:24 In your early studies I'd say focus more on how your system "works' to get your primitives to string together and run in the right sequence, more than on exactly what your primitives do - for the vast majority of primitives there's really not much debate. 2023-09-15 09:11:35 Like, you 100% know whaT + will do, etc. 2023-09-15 09:13:09 That said, I'm personally kind of wallowing in "instruction selection details" right now. In my case, though, I've written enough Forth systems that the main mechanics isn't really much of a concern for me. 2023-09-15 10:07:23 I worked at a company NIc typler technologies and they sold deer hunting licenses n similar and I thought after leaving wow all they needed was a start day end day and price rest is literally static info 2023-09-15 10:07:40 their entier web app was .net orm auora postgres on aws mess 2023-09-15 10:07:46 100s fo 100s a month 2023-09-15 10:08:17 I could have replcated app in werc.cat-v.org on freebsd for much less 2023-09-15 10:08:38 vranihs cache n haproxy 2023-09-15 10:08:50 if I knew forth probly 1,000x less thantaht 2023-09-15 10:09:47 varnish-cache.org haproxy.org werc.cat-v.org freebsd.org 2023-09-15 10:12:55 xelxebar: A number of times over the last year or so I've brought up this business of "complex literals" in Forth, and lamented the general absence of such abilities from myst implementations of the language. This recent talk about APL and HP RPL is kind of evoking the same sort of thinking for me. 2023-09-15 10:13:06 Just consider the notion of "supporting APL" in Forth. 2023-09-15 10:13:47 We could have the system just look at each line of input and "figure out" how to process it. A possible rule could just be "if it parses error free as APL, then execute it as APL." 2023-09-15 10:13:54 If not, consider other alternatives. 2023-09-15 10:14:50 But that's really kind of the same thing as the literal processing - instead of proceeding one space-delimited word at a time, and insisting on handling that word before moving on, we look at the input in a more wholistic way, and we consider a list of possible ways to deal with it. 2023-09-15 10:14:55 First successful one wins. 2023-09-15 10:15:06 This is how Forth handles numbers (its only literals) now. 2023-09-15 10:15:17 We grab a space delimited word, and we check the dictionary for it. 2023-09-15 10:15:44 If it's there (success), we handle it that way. If it's not, we check to see if it's a number. Etc. 2023-09-15 10:16:04 Why should that necessarily exhaust the list of possibilities? And why do we necessarily need to proceed one word at a time? 2023-09-15 10:16:24 I think a world of possibilities opens up if we broaden that view to something more "general." 2023-09-15 10:17:11 As long as a given piece of input only meets a single requirement we have no trouble - it would only be if there were multiple valid ways to interpret a piece of input that there might be potential confusion. 2023-09-15 10:17:29 why need that facility? what app are you making? what would moore do? 2023-09-15 10:18:13 smalltalk doe that I think, gets a message, then finds a function handles it? 2023-09-15 10:18:30 Oh, hi concrete_houses. Well, first of all I am not talking about modifying the "basic operation of Forth." At the native level I'd still do everything the usual way. But a long-term goal of mine is an environment for what I'll call "scientific computing." Say, like Matlab, or Octave, etc. 2023-09-15 10:19:10 I see that as requiring more sophistication - I'd like to be able to enter literal vectors, matrices, etc. Recently we've been talking about APL's capabilities in this regard, and I've been looking for a way to "marry" such things into Forth. 2023-09-15 10:19:28 I envision a "higher level of operation" where the system has "type awareness" re: the stuff on the stack and so on. 2023-09-15 10:20:07 But I think of this more as an "application layer" running on top OF Forth - not as how the system would start up right out of the box. 2023-09-15 10:21:27 when I really want to underscore this "lack of literal support" I usually just note that most Forths don't even give you a good way to deal with literal strings. 2023-09-15 10:21:55 We can type 12345 and that is a literal number - no problem. But we can't type "hello world" and have Forth gracefully accept that as a literal string. 2023-09-15 10:22:01 That seems like a weakness to me. 2023-09-15 10:23:02 and the idea goes further - maybe I want a literal one-dimensional array, or a literal five-dimensional array, and so on. 2023-09-15 10:25:15 I think the Forth200x recognizer stuff can allow for "literal strings", and I've implemented this type of string handling in one of my systems 2023-09-15 10:25:55 I'll have to look at it. I've also had thoughts re: a way of letting the user extend such capabilities. 2023-09-15 10:26:28 Sometimes I imagine that as involving regular expressions - you supply a list of such expressions, and instructions for how to handle input that "qualifies" under each one. 2023-09-15 10:27:31 So, for each "supported data type" there would be a way to recognize that type in the input stream as well as code for how to manipulate the data after you got it in RAM. 2023-09-15 10:27:55 in my system, it's written using a custom sigil; I've not looked closely at the forth200x approach in several years 2023-09-15 10:28:31 Still more recently than I've looked at it. :-) 2023-09-15 10:38:20 concrete_houses: Here recently I've been looking at Forth, APL, and Hewlett-Packard's "RPL" (language of its HP-48 calculator family) and thinking about how tO "mash them up" in a useful way. 2023-09-15 10:38:38 RPL in particular has a "type model" that looks pretty straightforward. 2023-09-15 10:39:02 And it has the benefit of having been designed for a stack-oriented environment. 2023-09-15 10:40:07 but why need the extra things? why not use basic forth? 2023-09-15 10:40:54 (ah reads above for bit of explanation) 2023-09-15 10:42:31 Yeah, I have an interest in specific applications. 2023-09-15 10:42:48 I am a hardware guy by training, though, and have done a lot of embedded work, so I am a HUGE fan of "basic Forth." 2023-09-15 10:43:26 And as I noted, what I envision is a system that "starts up" entirely as a basic Forth. Then I'd load the more advanced stuff when I wanted to use it. 2023-09-15 10:44:16 But, let's say at some moment I'm trying to calculate a planet's orbit - i probably don't want to be thinking about 32-bit integers on the stack of my computer. I want to be able to get a higher level of abstraction. 2023-09-15 10:44:41 And Forth is... extensible, so it can do it. 2023-09-15 10:44:43 concrete_houses: in my system, sigils are part of the basic system (my systems are non-standard) 2023-09-15 10:45:49 additional types and things can be useful 2023-09-15 10:46:24 forth is a great platform for building on. There's no reason to stick to only using the basic functionality 2023-09-15 10:46:48 What I regard as Forth's key strength is that it can support whatever level of abstraction you want to work at, while still keeping the same "basic operational flavor." 2023-09-15 10:53:34 concrete_houses: I still want this to be a "manageable" platform - to keep it at some reasonably simple level right now I'm trying to focus on what I could potentially deploy on a modern calculator, with its resource limitations and so on. 2023-09-15 10:54:05 I've got a Swiss Micros DM42, so at the moment I'm targeting what could be done with it. 2023-09-15 10:54:22 But the whole approach is meant to be highly portable. 2023-09-15 11:10:55 I think one reason there's so many types of Forth out there is because Forth itself is so small and approachable and customisable that it's just natural to roll your own Forth sometimes 2023-09-15 11:11:04 Either for a particular problem or just out of interest 2023-09-15 11:11:33 And most of the custom forths I've seen have improved various things, although won't be to everyone's taste 2023-09-15 11:11:47 The standard is actually more of a compromise at this point 2023-09-15 11:26:28 why no forth webserver web frameworks and desktop computer os? id dump freebsd for forth if I coudl surf net n watch youtube iwth it and maybe use my usb3 drives for storage 2023-09-15 11:33:41 There are Forth webserver frameworks 2023-09-15 11:34:21 And there are Forth OS's 2023-09-15 11:35:00 But I think you'll struggle to watch cat videos with it 2023-09-15 11:35:10 Sending or receiving 2023-09-15 11:35:33 You can definitely do all this stuff in Forth, just nobody has wanted it enough to make it happen, or had time 2023-09-15 11:37:27 Get on it, concrete_houses 2023-09-15 11:37:34 Be the change you want to see 2023-09-15 11:37:37 We'll help 2023-09-15 11:38:42 forth webserver: yes, web frameworks: yes, desktop os: yes (depending on what you mean by desktop os); modern web browser & streaming stuff: not that I've seen 2023-09-15 11:39:55 People have used Forth to make videogames apparently 2023-09-15 11:39:58 Which sounds cool to me 2023-09-15 11:40:21 Time to drive home.... 2023-09-15 11:41:30 https://github.com/ramenengine/RamenEngine is a game engine for use with swiftforth 2023-09-15 11:44:05 I'll have to port it to my own forth at some point 2023-09-15 13:22:07 concrete_houses: You caught me this morning talking about very "high level" stuff, but if you hang around much you're equally likely to find me kicking around things way down at the bare metal too. 2023-09-15 18:29:51 nice 2023-09-15 23:10:02 Wow - projective geometry looks really useful for graphics.