2023-09-22 03:56:12 historically, Forth had a separate stack for floating point numbers? 2023-09-22 03:56:28 Some implementations do 2023-09-22 03:56:39 still nowadays? 2023-09-22 03:57:06 https://gforth.org/manual/Stack-Manipulation.html 2023-09-22 03:57:13 thanks 2023-09-22 09:42:40 rendar: Back in the early days floating point was usually done using hardware (originally a separate chip, later merged with the processor) that maintained a "floating point stack." A natural thing to do when writing a forth system was to "expose" that stack. 2023-09-22 09:42:56 KipIngram, yeah indeed 2023-09-22 09:42:58 that's the reason 2023-09-22 09:43:12 So the system designer would choose whether to leave the results on that stack, making it visible to the programmer, or move info between the stacks as part of the floating point operations. 2023-09-22 09:43:15 so a forth with several stacks and not only 1, is a completely fine thing? 2023-09-22 09:43:33 Thee have been many explorations over the years of multiple data stacks. 2023-09-22 09:43:52 In the floating point case it's fairly clean, because it's obvious which stack a particular word should "operate on." 2023-09-22 09:44:07 But some folks tried out Forths with multiple "standard stacks." 2023-09-22 09:44:16 In those systems you somehow have to tell each word which stack to use. 2023-09-22 09:44:23 That makes code less compact, etc. 2023-09-22 09:44:29 None of those ideas ever really "caught on." 2023-09-22 09:45:08 One of Forth's advantages is that it's "obvious" where the data for words is (on the stack) - multiple stacks removes that advantage. 2023-09-22 09:46:48 The latest hardware has other ways of doing floating point that don't use that "internal stack." 2023-09-22 09:47:40 They're organized instead as built in "SIMD" registers. 2023-09-22 09:47:57 i'm referring to "advanced vector extensions" here. 2023-09-22 09:49:03 I've thought some about those but really haven't come up with any particularly "elegant" way to work them into a Forth architecture. 2023-09-22 09:50:34 I think rather than having specific SIMD instructions, whole array operations would be better 2023-09-22 09:51:26 Possibly. They certainly weren't starting with a clean sheet of paper when they designed the SSE etc. instructions. 2023-09-22 09:51:44 just trying to stretch their already long-in-the-tooth architecture even further. 2023-09-22 09:53:20 And I think the main goal was to enable claims on the marketing sheets for the processors that would help them sell more chips than "the other guy." 2023-09-22 09:56:30 Parallel processing is just hard and really works well only when everything (the application, the hardware, the software) all fit together just right. They were trying to jam parallel data handling on to an old system design - seems unlikely to me they'd come up with anything "optimum." 2023-09-22 09:57:29 I get a little sad thinking about what we "might have gotten" if they hadn't been boxed in year after year by the need for backward compatibility. 2023-09-22 10:45:53 So, does it seem fair to say that Chuck's guidance that fixed point is the "really right" way to do numerical calculations really just come down to choosing intelligent units to use for your various quantities? I.e., use units that let integers give you an accurate representation? 2023-09-22 10:46:28 This seems like what he did in his transister sim work - he took an important internal transistor voltage and declared that it would equal 4096 of his "voltage units." 2023-09-22 10:47:19 Then I guess you would only think in terms of "convenient human units" when you actually output some quantity. 2023-09-22 10:54:27 or output gerber files for the layers of the IC 2023-09-22 10:56:36 in the case of Chucks IC design 2023-09-22 10:58:28 What floating point really does is "automatic unit scaling" behind the scenes. 2023-09-22 10:58:48 right - a "final conversion" to the required "external format," whatever it may be. 2023-09-22 10:59:53 floating point says "Your integer is no longer big enough, so I'll use 2x your unit." Or 4x, or 8x, or whatever. Or, your integer needs to be less than one, so I'll use half your unit, or a quarter, etc. 2023-09-22 11:01:17 nope, a IEEE floating point is just like the scientific notation of big numbers, only the base is 2 instead of 10 2023-09-22 11:02:00 and the mantissa and exponent are of fixed size in bits 2023-09-22 11:04:13 however multi precision floats have pretty much multi precision integers for both mantissa and exponent 2023-09-22 11:06:59 I know that. But in terms of what it's actually accomplishing for you... It's changing the meaning of "one unit" in the integer part of the number. 2023-09-22 11:08:01 so having fixed point scaled integers makes sense when you do know the size of the scale and precision and you get rid of odd ?step discountinuty? in the number 2023-09-22 11:08:09 I agree scientific notation is the easiest way to think about it at a high level. I was getting a little more under the hood. Ultimately there is an integer in there that has some meaning. We chose some unit to work with when we wrote the program. 2023-09-22 11:08:26 That exponent scales the size of that unit by factors of two. 2023-09-22 11:08:59 bits have meaning? I suppose we could ascribe meaning to them in contexts 2023-09-22 11:09:10 I hope so. 2023-09-22 11:12:32 One might use that to define what programming is: making decisions about what bits are going to "mean" at any given time. 2023-09-22 11:13:06 indeed 2023-09-22 11:13:42 though it was a veiled reference to 'what colour are your bits' 2023-09-22 11:14:02 I've always been partial to blue bits. 2023-09-22 11:14:13 They're my favorites. 2023-09-22 15:15:59 Wow - I didn't realize that the fullerenes weren't discovered until 1985. 2023-09-22 15:16:26 Or that they were first discovered by astronomers, out in space. 2023-09-22 15:18:24 That doesn't sound right 2023-09-22 15:19:36 "Fullerenes had been predicted for some time, but only after their accidental synthesis in 1985 were they detected in nature and outer space." 2023-09-22 15:19:55 wait, who let GeDaMo out of #asm? 2023-09-22 15:19:55 The accidental synthesis came first, space later 2023-09-22 15:20:28 Did anyone here get a "scamp" board? 2023-09-22 15:21:45 the one with a pic running flashforth? 2023-09-22 15:24:41 yeah 2023-09-22 15:25:46 I just heard about it on an episode of the Embedded podcast 2023-09-22 15:26:01 couldn't get flashforth running in any of the emulators I tried and gave up 2023-09-22 15:28:13 https://www.tindie.com/products/johncatsoulis/scamp/ 2023-09-22 15:38:14 Oh hmmm. Ok, that directly contradicts what I just heard. My guess is your source is more reliable. 2023-09-22 15:39:21 It's Wikipedia :P 2023-09-22 15:39:36 https://en.wikipedia.org/wiki/Fullerene#Discovery_of_C60 2023-09-22 15:40:14 Although I remember seeing a documentary about the discovery a long time ago 2023-09-22 15:40:20 Hey, that scamp is pretty cool. 2023-09-22 15:40:41 Wildberger said the other in the lecture I was just watching. He just didn't have his story quite right. 2023-09-22 15:41:07 Still, the 1985 part was right, and that by itself surprised me. 2023-09-22 23:55:04 "FlashForth is a Forth stamp system implemented on the Microchip 8-bit PIC18F and 16-bit PIC24, 30, 33 and the Atmel Atmega microcontroller families." 2023-09-22 23:55:14 What does "Forth stamp system" mean?