mark4 changed the topic of #forth to: Forth Programming | do drop >in | logged by clog at http://bit.ly/91toWN backup at http://forthworks.com/forth/irc-logs/ | If you have two (or more) stacks and speak RPN then you're welcome here! | https://github.com/mark4th
Zarutian_HTC has quit [Remote host closed the connection]
Zarutian_HTC has joined #forth
Zarutian_HTC has quit [Remote host closed the connection]
<KipIngram> In case annyone is interested, my FINND implementation is here:
<KipIngram> That handles searching a linked list of vocabularies, accessed through variable PATH.
<KipIngram> This is the first code I've written with stack frames and exception processing in mind from the start.
<KipIngram> The bulk of the code handles full navigation of the structures, without regard for finding a match. The success case is handled by exception.
proteus-guy has quit [Ping timeout: 240 seconds]
<KipIngram> I'm happy with how that bit of development went - I wrote it offline over the course of a few days, and then plugged it in. I made one transcription error - I put a single return at the end of check instead of a double return.
<KipIngram> And there was a design error. I don't know if I mentioned it or not, but I had it in mind that I didn't need BLK and >IN because I could put that information in a stack frame. That's how I coded it. But that's no good (and I should have realized it wasn't) because INTERPRET is run inside that loop and has to be able to change the stack.
<KipIngram> When I thought of that I whacked myself in the head and changed it in a couple of minutes (put in BLK and >IN), and then it worked. :-)
proteus-guy has joined #forth
dave0 has quit [Quit: dave's not here]
lchvdlch has quit [Ping timeout: 240 seconds]
lchvdlch has joined #forth
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
shmorgle has quit [Ping timeout: 260 seconds]
lchvdlch has quit [Ping timeout: 268 seconds]
shmorgle has joined #forth
dave0 has joined #forth
<KipIngram> Fun fun - I logged into Pastebin tonight, for the first time in years. Quite a few years ago I spent some time thinking about building a computer, out of discrete chips. The idea was to have a guaranteed back-door free machine, that I knew the full workings of.
<KipIngram> I got a design done for the data stack, and it looks like I documented it on Pastebin:
<KipIngram> Has the pinout and the logic equations.
<KipIngram> And an instruction set encoding.
<KipIngram> I assume I felt at the time that those equations would implement that instruction set. I didn't slug through it tonight to confirm, though.
<KipIngram> Used 22V10 programmable aray logic.
<KipIngram> You guys might enjoy this:
<KipIngram> It decribes something called cuckoo hashing. Looks like it could potentially have application to Forth dictionary storage.
<KipIngram> As the hash table becomes full, inserts take longer and longer, but the lookup time is always bounded.
<KipIngram> With a four-way set associative model you wind up using about 95% of your hash table space.
<KipIngram> For a lookup, at most you would compute two hashes of the name and then potentially search a set of 8 items to find the one of interest.
gravicappa has joined #forth
proteusguy has quit [Ping timeout: 260 seconds]
dave0 has quit [Quit: dave's not here]
proteusguy has joined #forth
f-a has joined #forth
f-a_ has joined #forth
f-a has quit [Client Quit]
f-a_ has quit [Read error: Connection reset by peer]
xek has joined #forth
f-a has joined #forth
f-a has quit [Read error: Connection reset by peer]
f-a has joined #forth
swineflu has joined #forth
clog has quit [Ping timeout: 260 seconds]
<veltas> MrMobius: I don't have a strong opinion on this one (re ease of assembler). If you do what KipIngram does and write a subset of the language you'd want it to be easy to extend incase you want another instruction
<veltas> If you want the language to have more complicated syntax to make it more familiar, then why use Forth at all? This is the thing I can't get my head around.
<veltas> complicated/conventional
<veltas> With 6502 though writing syntax parsing is not too complicated, depending on what you're going for
<veltas> In my Forth the assembly instruction I use is CALL, and I use it while writing words to the dictionary, so it has to be something you can use within your code.
<veltas> Even commercially funded forths like SwiftForth use a compromise syntax
proteus-guy has quit [Ping timeout: 268 seconds]
proteus-guy has joined #forth
f-a has quit [Quit: leaving]
clog has joined #forth
tech_exorcist has joined #forth
f-a has joined #forth
<veltas> This is interesting: https://github.com/s-macke/VoxelSpace
<veltas> Also they reverse-engineered a Forth game but that's less good because they converted it to C https://github.com/s-macke/starflight-reverse
<MrMobius> veltas, I think you're getting to the root of the problem re assemblers
<MrMobius> why use forth? 1. youre on an extremely constrained system, 2. you could be doing it in any other language, 3. it's a toy/hobby/for fun
<MrMobius> if its 2 then why use forth for this? if its 3, then go for it and use a janky syntax
tech_exorcist has quit [Remote host closed the connection]
<veltas> And if it's 1 use an existing assembler?
tech_exorcist has joined #forth
<MrMobius> as long as youre only writing it for fun or only going to assembly a few test or demo programs with it then it doesnt matter if the syntax is weird or non ideal
<veltas> It is quite powerful being able to assemble code in your Forth though
tech_exorcist has quit [Remote host closed the connection]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
<MrMobius> it is powerful but that's different than writing thousands of lines into an assembly file and assembling that which is where you would want 2
<MrMobius> which also has the advantage of being able to assemble other people's files
<proteusguy> If you all wanna see the first public beta test of our new platform this coming Thursday (8p BKK GMT+7) check out this Fb event: https://www.facebook.com/events/209019941016891
lchvdlch has joined #forth
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
tech_exorcist has joined #forth
tech_exorcist has quit [Remote host closed the connection]
tech_exorcist has joined #forth
wineroots has joined #forth
f-a has quit [Quit: leaving]
<KipIngram> proteusguy: What kind of platform is this? I'm trying to fit togher "product" and "rock band" in my head.
<proteusguy> KipIngram, easier to show than tell I think... ;-) https://drive.google.com/file/d/1G2oJmEkLXj7I8FzVTaTtsNhkbf2K1lNP/view?usp=sharing
<proteusguy> This video shows our platform compared to the two "leading" platforms. ;-)
f-a has joined #forth
<KipIngram> Showing works - only took a few seconds to understand. That's cool.
<proteusguy> Got a more direct link to the YouTube event now... https://www.youtube.com/watch?v=LDZFybcPnco
<f-a> (my friend’s)
<proteusguy> +1 not even sure how many time's I've read that book by now... still have my original copy!
<KipIngram> :-) I've got an original copy of it somewhere upstairs.
<KipIngram> Also.
f-a_ has joined #forth
f-a has quit [Ping timeout: 260 seconds]
f-a_ has quit [Client Quit]
f-a has joined #forth
<proteusguy> Here's mine. And the torn paper was my bookmark with a list of local BBS' in Forth Smith, Arkansas. This would be circa-1984-86. https://ibb.co/HP74nHN
<proteusguy> Note the modem settings for 300 & 1200 baud... ;-)
f-a has quit [Ping timeout: 240 seconds]
f-a has joined #forth
<veltas> f-a: Nice
<veltas> And nice kitty
<veltas> I'm assuming that's a print-out rather than the original print?
<veltas> I seem to remember the original was in a blue cover
<f-a> print out
<f-a> I think he printed it on a needle printer
<veltas> An older gent at my office has a copy of Starting FORTH, which he almost gave to me before realising it might be worth something
<veltas> No idea though, probably not worth too much right?
<mark4> probably not
<mark4> my father had a first edition but it got runed in a flood
<veltas> It's valuable to the right buyer but how to set that up? It's the sort of thing that could auction on ebay for £10
<f-a> yeah do not think there is a market for Fort memorabilia xD
<veltas> There's a couple on UK eBay right now, one is buy-it-now for £35, other is auction with no bids asking £30
<veltas> It feels like Forth activity has spiked in the time I've known Forth, maybe they'll become valuable later?
<veltas> Nobody will truly appreciate Forth until all the older Forthers are long gone probably :P
<f-a> fuck people amassing stuff for ebay
<veltas> Well that can go both ways, end up buying stuff that loses value
<f-a> a part of me hopes so :P
tech_exorcist has quit [Ping timeout: 265 seconds]
<veltas> Also their push to buy up old stuff to sell it on ebay means they will likely preserve it better than people who simply don't care about their old stuff and are trying to get rid of it or will just let their family throw it all out when they die
<veltas> So it might help increase the amount of preserved older tech/books
<f-a> resellers are a pain in many other markets
<f-a> e.g. I like fountain pens
<f-a> stopped w/ those
<f-a> b/c resellers
<f-a> I will stop complaining, at least we have an online copy
f-a has quit [Quit: leaving]
f-a has joined #forth
gravicappa has quit [Ping timeout: 265 seconds]
gravicappa has joined #forth
<KipIngram> Well, I added a snapshot / recover snapshot phrase immediately after WARM. The snapshot is there just so the recover operation will have something to recover - the recover operation right there is the re-entry point after error handling. The snapshot word stashes the data stack pointer in a variable before making the image - the recover operation uses it to reset the data stack.
<KipIngram> After that recovery we have QUIT.
<KipIngram> And then QUIT calls SNAP just before running INTERPRET.
<KipIngram> I found that arrangement to be fully bulletproof error recovery last time.
<KipIngram> Basically if a INTERPRET detects an error of any kind, the whole line is ignored.
<KipIngram> I suppose obviously a really bad glitch could corrupt the snapshot, or the roadmap to it, but other than that...
f-a has quit [Read error: Connection reset by peer]
tech_exorcist has joined #forth
f-a has joined #forth
tech_exorcist has quit [Quit: tech_exorcist]
tech_exorcist has joined #forth
gravicappa has quit [Ping timeout: 265 seconds]
jess is now known as j
f-a has quit [Quit: leaving]
xek has quit [Quit: Leaving]
tech_exorcist has quit [Remote host closed the connection]