2025-03-08 10:58:43 crc: Maybe `manual` should have link highlighting? 2025-03-08 10:59:09 I suggest it because it feels like it would be a little easier to read with all the punctuation if the punctuation or whole links were a different colour 2025-03-08 10:59:36 Also have you considered printing a space at the end of output, or after n:put etc? 2025-03-08 11:00:03 It feels a bit cramped when the 'prompt' ends up being right next to start of input, but that's just my opinion 2025-03-08 11:01:49 It's also interesting that words like * get to be punctuation, but n:add is needed to add two numbers together, but I guess you can define that sort of vocabulary if desired 2025-03-08 11:04:00 So far I've mostly been reading the manual, and browsing the catalogue, and those are both huge hits. Every Forth should have something like this. 2025-03-08 11:05:18 E.g. PolyForth has INDEX which is quite good, but `catalogue` is much nicer for interactive browsing 2025-03-08 11:07:03 You might have chosen a shorter name for the reference, in context of the start of the manual *Language would have made just as much sense as *LanguageReference 2025-03-08 11:08:07 It might be good to let you create a stack of visited manual pages, e.g. 2 to 'push' and 7 to 'pop', so you can easily go 'back' while browsing 2025-03-08 11:17:25 veltas: hit ^ in the manual; this should toggle color output 2025-03-08 11:20:57 Nice 2025-03-08 11:24:35 *StringIteration line c typo 'provdes' 2025-03-08 11:24:56 I find it's easier often to read the manual in the editor to go to next/prev 2025-03-08 11:25:16 Might be worth just supporting next/prev in the manual 2025-03-08 11:28:11 *Strings links to *StringComparison but it's called *StringComparisons and is unfinished 2025-03-08 11:31:11 [bot]dpans: SEE 2025-03-08 11:31:35 [bot]dpans: see 2025-03-08 11:32:04 Guess that's a gforthism. 2025-03-08 14:28:04 [bot]dpans: SEE SEE 2025-03-08 14:29:04 !dpans SEE 2025-03-08 14:29:08 .dpans SEE 2025-03-08 14:29:22 I don't know the syntax for the bot, but SEE is in dpans94 2025-03-08 14:29:49 In Tools word set 2025-03-08 14:35:17 dpans: SEE 2025-03-08 14:35:17 <[bot]dpans > 15.6.1.2194 SEE TOOLS 2025-03-08 14:35:18 <[bot]dpans > ( "name" -- ) 2025-03-08 14:35:18 <[bot]dpans > Display a human-readable representation of the named word's definition. 2025-03-08 14:35:18 <[bot]dpans > The source of the representation (object-code decompilation, source 2025-03-08 14:35:19 <[bot]dpans > see http://forth.works/dpans/15_6_1_2194.txt for full description 2025-03-08 14:35:29 user51: ^ 2025-03-08 14:41:19 crc: In *Start the HTML link to +manual is broken, because of the comma maybe? 2025-03-08 15:11:49 Have you ever defined a clock device for a konilo system? 2025-03-08 15:24:58 ForthBot: SEE FIBONACCI 2025-03-08 15:24:58 : FIBONACCI DUP 0 = IF DROP 0 EXIT THEN DUP 1 = IF DROP 1 EXIT THEN DUP 2 = IF DROP 1 EXIT THEN 1 1 ROT 2 - 0 DO OVER + SWAP LOOP DROP ; 2025-03-08 16:13:24 Wouldn't `'hello &s:put curry` stop working after rotational buffer was overwritten? 2025-03-08 17:48:16 [bot]dpans: help 2025-03-08 17:48:17 <[bot]dpans > not found 2025-03-08 17:48:30 [bot]dpans: see 2025-03-08 17:48:30 <[bot]dpans > not found 2025-03-08 17:53:19 [bot]dpans: help 2025-03-08 17:53:19 <[bot]dpans > I'm a bot for looking up entries in the ANS FORTH standard. Send a request of the form: 2025-03-08 17:53:19 <[bot]dpans > [bot]dpans: wordname 2025-03-08 17:59:09 [bot]dpans: COMPARE 2025-03-08 17:59:09 <[bot]dpans > 17.6.1.0935 COMPARE STRING 2025-03-08 17:59:09 <[bot]dpans > ( c-addr1 u1 c-addr2 u2 -- n ) 2025-03-08 17:59:09 <[bot]dpans > Compare the string specified by c-addr1 u1 to the string specified by 2025-03-08 17:59:10 <[bot]dpans > c-addr2 u2. The strings are compared, beginning at the given addresses, 2025-03-08 17:59:10 <[bot]dpans > see http://forth.works/dpans/17_6_1_0935.txt for full description 2025-03-08 18:00:53 This bot would be more helpful if I was capable of remembering it existed 2025-03-08 18:01:35 [bot]dpans: FILL 2025-03-08 18:01:35 <[bot]dpans > 6.1.1540 FILL CORE 2025-03-08 18:01:35 <[bot]dpans > ( c-addr u char -- ) 2025-03-08 18:01:35 <[bot]dpans > If u is greater than zero, store char in each of u consecutive 2025-03-08 18:01:36 <[bot]dpans > characters of memory beginning at c-addr. 2025-03-08 18:01:39 [bot]dpans: ERASE 2025-03-08 18:01:40 <[bot]dpans > 6.2.1350 ERASE CORE EXT 2025-03-08 18:01:40 <[bot]dpans > ( addr u -- ) 2025-03-08 18:01:40 <[bot]dpans > If u is greater than zero, clear all bits in each of u consecutive 2025-03-08 18:01:40 <[bot]dpans > 67 2025-03-08 18:01:41 <[bot]dpans > see http://forth.works/dpans/6_2_1350.txt for full description 2025-03-08 18:01:45 [bot]dpans: BLANK 2025-03-08 18:01:45 <[bot]dpans > 17.6.1.0780 BLANK STRING 2025-03-08 18:01:45 <[bot]dpans > ( c-addr u -- ) 2025-03-08 18:01:45 <[bot]dpans > If u is greater than zero, store the character value for space in u 2025-03-08 18:01:46 <[bot]dpans > consecutive character positions beginning at c-addr. 2025-03-08 18:04:49 I wonder if I sat down with a pen and paper, how many of the ANS words I could recall from memory 2025-03-08 18:07:29 re: curry; yes, that would break in that case. I updated the example to add an s:keep to fix it. 2025-03-08 18:08:32 re: clock; not as part of the standard set of minimal i/o devices, but I do have words for accessing & setting the RTC on the teensy4.1 variation, and have implemented accessor words & a clock device under unix, though not in the published vm copies. 2025-03-08 18:08:58 Clock would be good, I like being able to get the time/date, even on a minimal computer 2025-03-08 18:09:17 I've implemented clocks on the ZX Spectrum using the display interrupt 2025-03-08 18:09:17 0 days without a stack underflow :) 2025-03-08 18:09:36 Yup 2025-03-08 18:10:51 I'm planning to add a standard interface for this, just haven't had enough time to actually work out the details for all of the systems I support yet. 2025-03-08 18:11:10 Are you going to base it on a typical RTC device map? 2025-03-08 18:12:42 I haven't made any real decisions on it yet 2025-03-08 18:16:35 For some reason RTCs tend to store/retrieve time broken down into the individual components of seconds, minutes, hours, etc 2025-03-08 18:17:34 And can't go above 2099 2025-03-08 18:20:59 If I made an RTC it would just increment a 64-bit seconds count, I don't really know how you can go wrong with that, uses exactly 1 more byte and lasts *292 billion years* 2025-03-08 18:21:44 And you don't need to read the whole 8 bytes if you don't want them, can leave the most significant byte if you want, or anything after first 5, and still out-do a normal RTC 2025-03-08 18:26:24 I think another alternative would be to provide an interface to read the 'date' in minutes since 1970, because a 32-bit value for that is quite useful and has lots of room 2025-03-08 18:27:34 And then 32-bit precision date in nanoseconds or microseconds, mod 1 minute, if seconds or smaller are necessary 2025-03-08 18:29:07 apart from occasional benchmarks I don't need seconds or smaller 2025-03-08 18:29:30 Exactly, most timestamping doesn't need it 2025-03-08 18:33:19 my son & I have been (on unix & windows), using an external process to update time data in a specific block that we are loading & reading from when necessary 2025-03-08 18:35:54 we've been experimenting with this, on occasion, for several years. I've used it to allow konilo to interface with external things and not require vm changes. (e.g., accessing files on the host and sending graphics to a display system) 2025-03-08 18:36:14 I do think 32-bit is the sweet spot for most personal computing 2025-03-08 18:36:27 ACTION likes 32-bit 2025-03-08 18:37:29 Especially if you can support larger physical addresses, i.e. more than 4GB RAM, but support 32-bit addresses for each process 2025-03-08 18:38:04 Although 4GB ought to be enough for most things, it just isn't with e.g. the state of the web today 2025-03-08 18:41:58 I'm on 16 and it's kinda low. 2025-03-08 18:42:45 You'd quickly run into memory limits if you say, run a VM. One of those things that hit you when you least expect it. 2025-03-08 18:44:40 I basically only run a VM at work, because I am stuck using Windows 2025-03-08 18:44:48 I don't have OS envy at home, that's for sure 2025-03-08 18:45:21 I run with fairly low amounts of RAM. Most of my systems have 1-4GB; the exceptions are my mac mini (8gb), and my phone (12gb) 2025-03-08 18:46:13 "running light without overbyte" 2025-03-08 18:46:16 I think my new work computer has 8gb, but haven't verified this. Other than work applications, I only use it to access SSH or VNC connections to my other systems. 2025-03-08 18:46:50 I have a laptop with 2GB of RAM, that I do use sometimes, and it is a stretch to do much with it 2025-03-08 18:47:01 I find myself running firefox with 1-2 tabs and restarting it regularly 2025-03-08 18:47:15 And closing firefox entirely if I'm not actively using it 2025-03-08 18:47:27 Do it the apple way.. never close :) 2025-03-08 18:49:03 I only stopped using this laptop because I stupidly broke the battery at some point, and don't want to spend money unnecessarily while I'm preparing to buy a different house 2025-03-08 18:50:50 So I'm currently using a nice Coffee Lake Refresh Dell XPS laptop I purchased a few years ago, which I never feel entirely comfortable with 2025-03-08 18:51:10 Which is unusable on Windows (not that I'd use it), because it runs too hot. On Linux I have specifically tuned the kernel to underclock the CPU and it runs nice and fast without burning me 2025-03-08 18:53:45 I'm currently using an eink device w/2gb ram. It's a bit sluggish at times, but the screen is comfortable to read on 2025-03-08 18:55:10 Which eink device? 2025-03-08 18:55:55 this is a boox go 6 2025-03-08 18:56:24 Yeah new laptops are weird, because they are technically very fast and also energy efficient, but you couldn't tell from the infertility and burn marks. I don't know why more people don't underclock them. 2025-03-08 18:58:01 crc: I've got a Boox as well, but it's 4 years old and I haven't used it in a long while. Maybe they improved since then, wasn't a great experience. 2025-03-08 18:59:21 What do you do on your boox go 6, do you run konilo? Or just some stuff like IRC? 2025-03-08 19:00:34 I don't need a lot from it. Koreader for books, temux to run konilo, irccloud, moshidon for social stuff occasionally, and the included neobrowser when I need to look up something online 2025-03-08 19:01:15 I would be interested if you're willing to take a photo of it running konilo, I am tempted by this 2025-03-08 19:01:38 But don't worry if you don't want to / can't 2025-03-08 19:04:19 Any recommended way to have my forth read input on a character by character basis on Linux? I've copied a termios snippet from kilo, but it's a bit messy. 2025-03-08 19:04:44 user51: stty cbreak 2025-03-08 19:05:13 Currently it reads line by line -- something to do with the terminal. This termios stuff feels more like bondage than security. 2025-03-08 19:06:34 veltas: https://www.imghippo.com/i/rJAl4621HY.jpeg and https://www.imghippo.com/i/IKD2373HM.jpeg 2025-03-08 19:07:36 crc: Thanks, that's much nicer. Does it mean I'll have to process things like backspace as well? 2025-03-08 19:07:43 yes 2025-03-08 19:08:17 when you move to character by character input you'll have to handle all the editing side of things yourself 2025-03-08 19:08:45 Fair enough, I had a feeling I might need to handle I/O better in the future. 2025-03-08 19:09:13 veltas: I use it with a keyboard when at home; I only use the onscreen keyboard when traveling with it & away from a desk 2025-03-08 19:10:52 crc: Perfect - first time my own forth was useful to me. I had a KEY word and didn't know the number for backspace, so I used KEY and had it on my stack :) 2025-03-08 19:15:07 user51: http://forth.works/temp/termios.txt is the termios stuff from my system; it's pretty simple; it() initializes the terminal; rt() resets the original state 2025-03-08 19:16:36 It clears ICANON (setting character mode instead of line buffering), and ECHO (for display of characters, which I handle separately to give more control) 2025-03-08 19:16:40 crc: Heh, that V there looks straight out of a IOCCC entry. 2025-03-08 19:16:50 V is void 2025-03-08 19:17:09 ACTION uses I = int, C = char, V = void in his C 2025-03-08 19:17:41 Maybe closer to this https://code.jsoftware.com/wiki/Essays/Incunabulum 2025-03-08 19:19:20 user51: http://forth.works/temp/ilo-min.c.txt would probably be my closest thing to that 2025-03-08 19:19:29 http://forth.works/temp/ilo-unix.c.txt is more typical for me 2025-03-08 19:32:14 crc: Thanks again -- it's pretty nice to get a feel for VT100 escape codes with just reading a character and printing here and there 2025-03-08 19:41:07 crc: It's a good thing you made a nice programming language because you're banned from using C :P 2025-03-08 19:41:30 :) 2025-03-08 19:42:20 I'm slowly grokking the konilo manual etc, not written much yet, not sure what would be good to try first 2025-03-08 19:42:46 But so far I approve of most of the decisions, the only things I don't like are naming, but that's always going to be a compromise if you prefer systematic names 2025-03-08 19:44:04 Do you have a word that just searches the blocks for a given string? 2025-03-08 19:44:14 the only real caveat with using symbols for names is that they can't also be sigils (since sigils are checked before the dictionary is searched) 2025-03-08 19:46:31 blocks-containing (takes a string) or blocks-containing: (parses ahead) 2025-03-08 19:47:12 veltas: Konilo manual link? 2025-03-08 19:47:25 you might need to load this first, I think it's block 38 in the nightly snapshots 2025-03-08 19:48:46 '(opt:nonix) needs or #38 use should work to load it 2025-03-08 19:49:23 user51: https://konilo.org/manual/ but I'm reading in konilo itself 2025-03-08 19:49:52 crc: Hope you won't mind me stealing some inspiration :) 2025-03-08 19:49:53 (in an upcoming update, these will be loaded by default, and are renamed to blocks:containing and blocks:containing:) 2025-03-08 19:50:00 user51: pleae feel free to do so 2025-03-08 19:51:01 *please 2025-03-08 19:51:15 crc: https://konilo.org/manual/colondefinitions.html gives a 404 2025-03-08 19:52:24 user51: I haven't written that page yet 2025-03-08 19:52:40 the manual is a work in progress, unfortunately 2025-03-08 19:53:16 I have also been finding a lot of typos and broken links, I think as more people use it and give feedback it will get better 2025-03-08 19:53:24 crc obviously doesn't need to read his own manual much 2025-03-08 19:53:43 But he also is very good at updating based on feedback 2025-03-08 19:53:47 Need to add some javascript - it loads too fast. 2025-03-08 19:53:51 I tend to work on it when my rsi pain isn't bothering me, so larger improvements tend to happen in somewhat random jumps 2025-03-08 19:53:59 no javascript for me 2025-03-08 19:54:36 user51: each page is just an HTML version of a block, so ~1k text + whatever the markups & CSS add 2025-03-08 19:56:54 crc: 'Forward parsing' refers to words such as CREATE? 2025-03-08 19:57:01 yes 2025-03-08 19:57:44 I call 'em parsing words, but if I want to make people uncomfortable, I say 'negative arity operation' :) 2025-03-08 19:58:15 crc are there any processes/tools for submitting patches to konilo? 2025-03-08 19:58:26 Are patches even a good thing given it's a personal environment? 2025-03-08 19:59:56 I mean konilo.blocks 2025-03-08 20:23:37 I'll have some tooling for this (external to konilo) soon. My son has been writing something to find modified blocks, create exports/diffs, and copy exported blocks into the block set. 2025-03-08 20:24:27 with regards to patches, I'm willing to consider them, though offer no guarantees that I'll accept them into the blocks I provide 2025-03-08 20:26:18 (I did see your request for some history functionality in the manual; I'll try to work on this in the next week or two, if I have time; I've been traveling for work, helping to build a new store & setup a new warehouse, so time has been very limited the last few weeks) 2025-03-08 20:44:50 Yeah I don't have any expectations, I am just sending that feedback 2025-03-08 20:45:20 If it goes into the void, or into a big TODO block and never looked at again, or whatever then it's fine 2025-03-08 20:45:49 It's always a nice surprise when anything is acted on because I certainly don't feel entitled to any of it 2025-03-08 20:45:56 So it's a gift really when you do something 2025-03-08 20:46:17 But also sometimes might be mutually beneficial if it's actually a good feature that other people will use 2025-03-08 20:46:52 The idea for history just seemed to make sense for a stack system because it's just a stack of blocks you've visited 2025-03-08 20:47:04 Has return stack stashing vibes 2025-03-08 20:47:42 And also because I was doing a lot of back and forth and that's not very efficient right now 2025-03-08 20:48:11 The catalogue is much better at this because you can enter the editor from overview, and return, so there is a bit of hierarchical traversal going on 2025-03-08 20:48:35 The catalogue is really nice, the manual's great too but I really like the catalogue 2025-03-08 20:51:18 The catalogue was something I knew I wanted when I decided to do a block based system. I haven't really seen anything like it in other forths, but the idea made sense to me 2025-03-08 20:51:51 It feels like what Forth Inc would have done if they had stuck with blocks 2025-03-08 20:52:06 Which is a good thing 2025-03-08 20:52:21 It's a solid interactive improvement over INDEX 2025-03-08 23:40:46 A downside to an irc based interface is that things using the escape sequences don't really work