00:00:00 --- log: started forth/09.07.15 00:04:45 ment: ? 00:05:10 ment: You mean like DO LOOP ? 00:08:16 huh, do loop uses return stack by default? 00:09:16 hmm i should consult some serious implementation 00:09:23 (: 00:10:38 ment: But yes, that is what it is supposed to do. 00:11:59 hmm.. or maybe some have a special loop stack. 00:13:22 ment: Looking in Thinking Forth it sure says return stack. But I looked it up on the new fancy web version and that talks about a loop control stack (: 00:13:43 i've implemented loops using data stack and then wondered how can anyone work with that kind of dup/rot/pick juggling 00:14:21 Oh I see. You definetly need to use not the normal stack (: 00:17:31 ment: : goo 5 0 do >r dup >r . i . loop ; 0 0 1 1 2 2 3 3 4 4 5 5 (: 00:18:52 yeah, i've tried something like that in gforth 00:19:48 ment: I don't keep track of the ANS standard, but it talks about some "control-flow stack" which may exist and may be implemented using the data stack. 00:20:01 but also it says that you're free to use the return stack for do-loops 00:21:10 hmm.. r> there of course. n/m 00:27:30 is the word 'I' standardized as something like 'r> dup r<' ? :) 00:35:05 I guess, maybe. If one indeed uses the return stack for loops then it'd have to be. 00:36:05 the standard is, how to say... a bit fucking huge for something that should be small and simple like forth :P 00:36:40 but I should put the counter value on the stack and leave it intact for the do loop. so r> dup >r would work there. 00:41:06 http://lars.nocrew.org/dpans/dpans6.htm#6.1.1680 00:53:43 --- join: impomatic (n=John@nat65.mia.three.co.uk) joined #forth 00:53:52 --- quit: impomatic (Client Quit) 00:53:54 wow, i've guessed it right :)) 00:54:51 --- join: jewel_ (n=jewel@dsl-247-203-169.telkomadsl.co.za) joined #forth 00:55:37 hmm ... but what happends when i exit the loop through EXIT? that would return me in the middle of nowhere 00:59:01 I reckon you need to take care of it doing the right thing :) 01:04:11 Before executing EXIT within a do-loop, a program shall discard the loop-control parameters by executing UNLOOP 01:06:40 --- join: GeDaMo (n=gedamo@212.225.107.61) joined #forth 01:06:44 Makes sense (: 01:31:10 --- quit: uiu (Remote closed the connection) 03:03:11 --- join: aguai__ (n=aguai@114-44-21-47.dynamic.hinet.net) joined #forth 03:05:53 --- quit: aguaithefreak (Connection reset by peer) 04:45:17 --- quit: GeDaMo ("Leaving.") 04:56:55 --- join: impomatic (n=John@nat65.mia.three.co.uk) joined #forth 04:56:58 Hi 04:57:09 Is this broken or am I stupid? 04:57:30 : TUCK DUP ROT ; ( from Jones Forth ) 05:33:00 --- join: jauaor (n=araujo@gentoo/developer/araujo) joined #forth 05:33:19 --- join: uiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 05:33:22 --- quit: uiu (Client Quit) 05:33:40 --- quit: jauaor (Client Quit) 05:44:50 impomatic: looks broken. 05:47:52 impomatic: maybe -rot ? 05:54:43 Thanks, that's what I thought. 05:55:08 It looks like Jones Forth has implemented -ROT and ROT back to front. 05:55:29 back to front? 05:55:36 * schme googles up jones forht. 05:55:38 forth too. 05:56:06 http://annexia.org/forth 05:56:30 oh it's like a walkthrough of how it is implemented ! 05:56:31 -ROT does what ROT should, and ROT does what -ROT should. 05:56:38 oops :) 05:57:31 I only wanted it for comparison anyway, to show : TUCK SWAP OVER ; is more efficient :-) 05:57:52 Well maybe it is in jones forth. 05:57:53 heh. 05:57:56 (: 05:58:53 impomatic: looking at the code that indeed looks like the case. With the performance of the two. 06:00:53 --- join: uiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:01:47 It should be the case for x86 Forths with / without TOS in a register and using the machine stack or a register for Forth's data stack. 06:02:39 --- join: root (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:02:40 Sure :) 06:02:44 --- quit: root (Client Quit) 06:02:45 I checked each possibility. It's also even better if -ROT isn't a primative. E.g. : -ROT SWAP >R SWAP R> ; 06:02:58 That's almost sad (: 06:03:25 In eForth ROT isn't a primative 06:04:03 * schme googles that up too. 06:04:07 --- quit: uiu (Read error: 104 (Connection reset by peer)) 06:04:16 --- join: root (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:04:19 I suppose in schmeforth it'll not be one either then ;) 06:04:24 http://www.baymoon.com/~bimu/forth/eforth/e4.src/EFORTH.SHTML 06:04:42 hey z80! 06:04:44 --- nick: root -> Guest10919 06:04:57 --- join: jauaor_ (n=araujo@190.38.50.207) joined #forth 06:05:24 --- quit: Guest10919 (Read error: 54 (Connection reset by peer)) 06:05:30 --- join: root_ (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:05:33 * impomatic googled schmeforth just in case 06:05:35 I am a bit not excited about the backwards assembly it has. But nice stuff! 06:05:37 --- quit: jauaor_ (Client Quit) 06:05:41 impomatic: I didn't write it yet. 06:05:49 impomatic: But it does seem to me that I need one for my beagleboard (: 06:06:08 What's a beagleboard? 06:06:15 --- quit: root_ (Read error: 104 (Connection reset by peer)) 06:06:22 --- join: jauaor (n=araujo@gentoo/developer/araujo) joined #forth 06:06:25 It's a lil ARM based computer. 06:06:28 --- join: root_ (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:06:48 http://www.embeddedstar.com/postimages/2008/Beagle-Board.jpg (: 06:06:52 it is totally sexy 06:07:04 --- quit: root_ (Read error: 104 (Connection reset by peer)) 06:07:12 I am running linux on it at the moment.. and ok, I love linux as much as the next guy but you know.. it's not "all that" ;) 06:08:16 --- join: root (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:08:34 --- join: root_ (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:08:37 hi 06:08:44 --- nick: root -> Guest33252 06:08:54 --- quit: root_ (Read error: 104 (Connection reset by peer)) 06:08:54 --- quit: Guest33252 (Read error: 54 (Connection reset by peer)) 06:09:07 --- join: root_ (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:09:15 Hello jauaor 06:09:26 hi there schme , how it goes? 06:09:30 --- quit: root_ (Read error: 104 (Connection reset by peer)) 06:09:33 Cute board. I have an Arduino that I might eventually implement Forth on. 06:09:51 Hi jauaor 06:09:53 jauaor: Going great. Googling "araujo" to see what you are developing. 06:10:03 hello impomatic , what's up? 06:10:13 schme: hahaha ... nothing up yet .... 06:10:14 --- join: root_ (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:10:23 --- quit: root_ (Read error: 104 (Connection reset by peer)) 06:10:23 I *really* hope to get something uploaded soon 06:10:32 Not much, just playing around with various projects :-) 06:10:45 schme: check my latest snippet of code? 06:10:50 checked* 06:10:51 jauaor: It led mo to sports illustrated swimsuit edition 2007 website. I can't complain 06:10:54 impomatic: nice, same here :) 06:11:00 schme: hahaha 06:11:07 well, no, that isn't me :D 06:11:33 :( 06:11:36 http://paste.org/index.php?id=9068 06:11:48 a snippet of some new syntax i introduced yesterday 06:12:03 I think.. I saw it yesterday. Some new language you are developing? 06:12:09 yes schme 06:12:13 Cools. 06:12:32 It is a stack based language, though I am combining many new features from other paradigms too 06:12:41 Something like factor ? 06:12:49 it is like a mix between, J, Forth, Haskell, Scheme, Smalltalk, Perl 06:13:10 Well ok. That sounds like it could be an interesting mix :) 06:13:15 yeah :) 06:13:17 type safety and all? 06:13:49 it misht sound a bit scary at first, or complex, but let me tell you, those languages got some nice features that integrate well together, or so I am exploring here 06:14:10 schme: I want to introduce type safety yeah, something like optional type safety 06:14:55 I got a very 'rusty' model implemented of how it is supposed to work .... 06:15:20 so far, i am still designing the core language and principle behind it 06:15:46 jauaor: Sounds like a fun project :) 06:15:59 And so far, I don't see any similar language out there, in case you know of something mixing some of these languages too, let me know 06:16:10 yeah it is schme :) 06:16:16 I haven't seen anything of the sort. 06:16:20 I really expect to upload something soon 06:16:35 Maybe you should mix some erlang in there. 06:16:43 with the distribution and what heck. 06:16:51 yeah, the closest I found of what i want to do is some obscure/lost language called Kevo from the 80's 06:17:22 wow. 06:17:36 Looking forward to seeing it in action :) 06:17:47 schme: it should be possible to add concurrency safety easily too .. at least theoretically ... since we don't have variables, we get some kind of purity in the code, running code in parallel should be safe 06:17:51 "theoreitcally" 06:18:15 ah yes.. good ol' theory :D 06:18:22 how often it collides with real life. 06:18:36 schme: I will definitely let you know when i upload something, I really hope to get something up soon .... 06:18:42 hah 06:19:25 it's indeed a fun project, at least it has been for me, main reason I am doing it now I guess ... mainly because I want to know how integrate many of my favorite features from several languages into one ... 06:19:42 so far, it seems going a viable approach 06:21:43 --- join: root (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:21:49 Are there any common words for pre-emptive multitasking in Forth? 06:22:14 --- quit: root (Read error: 104 (Connection reset by peer)) 06:22:23 --- join: root_ (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:22:46 --- quit: root_ (Remote closed the connection) 06:23:06 impomatic: I hope not! 06:23:24 Why not? :-) 06:30:10 ans forth is already too bloated (: 06:31:12 --- join: root (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:31:26 I don't think that matters; you don't have to implement all of it 06:31:34 --- nick: root -> Guest24130 06:31:35 Or any of it, even. :) 06:31:40 --- quit: Guest24130 (Read error: 104 (Connection reset by peer)) 06:31:42 Indeed. 06:31:55 well time to eat food! 06:32:09 Think of it as a compilation of common practice; it makes much more sense that way. 06:32:21 I thought I ought to stick to ANS Forth so my implementation is taken seriously. 06:32:21 --- join: root (n=root@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:32:49 --- nick: root -> Guest2271 06:32:53 Sure, that helps. 06:33:31 It's easier for people to move from some other system to yours if it works the way they expect. :) 06:33:45 --- quit: Guest2271 (Read error: 54 (Connection reset by peer)) 06:35:19 And ANS did a pretty good job of abstracting over implementation details; you can hide a surprising amount of stuff under the hood. 06:35:49 Yes, that's one thing I like about ANS. 06:36:11 --- join: uiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:37:04 I do wish they hadn't put useless/easily-defined words like SPACE and SPACES in the core wordset, but other than that... 06:38:24 I don't think there's a CELLSIZE constant is there? Just CELL+ 06:38:54 --- quit: uiu (Read error: 104 (Connection reset by peer)) 06:41:31 and CELLS 06:41:40 but no constant for 1 CELLS, right 06:41:54 I think it's a fairly commonly-available word though 06:44:10 OK, maybe not that common. SP-Forth and gforth have CELL and CELL- 06:44:17 FICL has CELL- but not CELL 06:44:27 pfe and kforth have neither... 06:44:31 :-( 06:44:51 you should have both, though. ;) 06:45:50 well, whatever. It's easy enough to define them if they're not there. But it's nice if they already exist. 06:46:24 I'll probably include them. 06:46:33 Depends how much space I have available 06:46:38 sure 06:46:47 what's your target? 06:46:50 You still doing the redcode thing? 06:46:54 Arduino 06:46:57 ah. 06:47:24 I'm considering porting the final code to Redcode ;-) 06:47:27 hehe 06:47:35 Shouldn't be too difficult. 06:47:42 OK, I really need to get back to work. Later. 06:47:56 There's already AMFORTH which works on the arduino but I don't like it 06:48:01 See you later :-) 06:48:08 --- join: uiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 06:48:19 Yeah, lots of small systems are kind of funky. 06:48:53 I'm considering keeping the names in a separate linked list to the code. 06:55:09 --- join: uiuiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 07:20:47 You will generally benefit from separating code and data. 07:21:13 (including meta-data) 07:21:22 --- quit: uiu (Read error: 104 (Connection reset by peer)) 07:21:22 --- quit: uiuiu (Read error: 104 (Connection reset by peer)) 07:30:01 Not sure what you mean by meta-data. I'd class the code as actual machine code, Forth executions tokens and the lists of addresses that Forth words compile into. 07:31:23 And then seperate out the linked list and names which would grow down from the top of memory. Then after a program has been developed, the names can be removed. 07:48:31 --- join: X-Scale2 (n=email@89.180.155.255) joined #forth 08:07:46 --- quit: TR2N (Read error: 110 (Connection timed out)) 08:12:58 --- join: I440r (n=mark4__@c-69-136-171-118.hsd1.in.comcast.net) joined #forth 08:17:03 --- join: gnomon_ (n=gnomon@CPE001d60dffa5c-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 08:18:55 --- quit: aguai__ (Read error: 104 (Connection reset by peer)) 08:19:30 --- join: aguaithefreak (i=aguai@114-44-21-47.dynamic.hinet.net) joined #forth 08:20:16 --- join: GeDaMo (n=gedamo@212.225.107.61) joined #forth 08:21:13 --- nick: X-Scale2 -> TR2N 08:28:43 --- quit: gnomon (Read error: 110 (Connection timed out)) 08:42:06 anyone got some nice 6502 forth url? 08:55:49 --- join: rsayers (n=rsayers@li21-67.members.linode.com) joined #forth 08:56:25 --- join: uiuiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 08:57:48 --- quit: uiuiu (Client Quit) 08:58:36 --- join: uiuiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 08:59:01 --- quit: uiuiu (Client Quit) 08:59:25 --- quit: jewel_ (Read error: 113 (No route to host)) 08:59:44 --- join: uiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 09:00:13 --- quit: uiu (Client Quit) 09:11:34 --- join: uiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 09:11:52 --- quit: uiu (Client Quit) 09:20:02 --- join: uiu (n=ian@HSI-KBW-078-042-132-111.hsi3.kabel-badenwuerttemberg.de) joined #forth 09:32:20 --- nick: gnomon_ -> gnomon 09:38:10 Hmmm... I can implement ROT in 3 words. 09:52:09 : rot -rot -rot ; 09:52:10 :P 10:03:31 : rot 2 roll ; 10:11:26 : rot tuck 2swap drop ; 10:44:08 on-fire? if drop roll then 10:47:26 :)) 10:48:46 Mine was : rot tuck 2swap drop ; :-) 10:55:21 --- quit: nighty__ (Client Quit) 10:59:44 --- quit: impomatic ("mov.i #1,1") 12:37:30 * jauaor just implemented some kind of for 12:44:58 * ment just reimplemented COLON to do stack underflow/overflow checking for function according to ( stack in -- out notation ) 13:00:32 the other day i had a dream my boss was writing me a very angry e-mail in uppercase with lots of exclamation marks, which was also an executable forth program 13:02:27 Must have been storing a lot to memory :P 14:23:14 --- join: aguai__ (i=aguai@114-42-213-176.dynamic.hinet.net) joined #forth 14:25:16 --- quit: GeDaMo ("Leaving.") 14:42:18 --- quit: aguai_ (Read error: 110 (Connection timed out)) 16:14:56 --- join: impomatic (n=John@nat65.mia.three.co.uk) joined #forth 17:17:08 --- quit: I440r ("Leaving") 19:07:55 --- join: nighty__ (n=nighty@210.188.173.245) joined #forth 19:23:05 --- quit: aguaithefreak (Read error: 110 (Connection timed out)) 19:51:37 --- join: cataska (n=cataska@210.64.6.233) joined #forth 21:18:27 --- quit: jauaor () 21:27:12 --- join: _Jordan_ (n=jcooper@173-45-228-22.slicehost.net) joined #forth 23:19:56 g'day 23:59:59 --- log: ended forth/09.07.15