00:00:00 --- log: started forth/04.12.26 02:28:09 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 02:34:26 --- join: aum (~aum@60.234.138.239) joined #forth 02:35:55 hi - what is the name for a class of forth compiler that produces bytecodes, where each possible bytecode invokes a machine-code primitive, and where there are 'call', 'exit', 'goto', 'branch-if-zero' etc primitives? 03:25:51 --- quit: aum () 03:55:31 --- join: sam_ (~sam@203-114-131-114.inspire.net.nz) joined #forth 04:32:30 --- join: robert (~purple@c-4d5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 05:12:00 --- join: Topaz (jonny@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 05:13:18 Hi 07:01:28 --- join: saon (1000@c-24-129-90-197.se.client2.attbi.com) joined #forth 07:02:58 --- join: tathi (~josh@pcp01375108pcs.milfrd01.pa.comcast.net) joined #forth 07:30:35 --- quit: Raystm2 ("Client exited") 07:54:19 --- quit: saon (Remote closed the connection) 08:00:23 --- join: saon (1000@c-24-129-90-197.se.client2.attbi.com) joined #forth 08:25:18 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:26:38 Hi 08:27:53 howdy 08:52:06 --- quit: Teratogen ("SKYKING, SKYKING, DO NOT ANSWER.") 10:13:20 hi all 10:14:31 hi crc :) 10:14:42 how's things? 10:15:24 not too bad 10:16:03 I'm making some decent progress on the 8.0 codebase :) 10:16:51 cool 10:17:01 I've been making good progress on herkforth these last few days 10:17:12 cool 10:17:30 added two nice features: 1) when you try to compile a call to a word that's not defined yet, the editor puts the cursor on that word and prints an error message 10:17:46 this should save an hour of trying to resolve dependancy issues every once and a while 10:17:53 yup :) 10:18:38 2) implemented tathi's idea of making the "back stack" (basically like a browser's "back" button) handles cursor left/right and block prev/next well 10:19:02 that could also be useful 10:19:07 in implementing the latter, I made a dependancy error, and the former pointed it out to me immediately :) 10:19:14 :) 10:19:35 I made it so a bunch of cursor left/right movements in a row count as just one 10:19:50 so you could go left 10 words, then hit back and it would go back to the first 10:20:01 cool 10:20:03 likewise with changing blocks 10:20:12 --- quit: Topaz (Remote closed the connection) 10:20:21 * crc will have to play with herkforth again sometime soon 10:21:14 oh, also, I upgraded my svn server to 1.something a while back, so anybody with svn should be able to get my latest working copy 10:21:35 did that about a month ago 10:21:43 --- join: Topaz (jonny@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 10:22:34 I still haven't set up svn on my box 10:22:49 * crc uses no true version control system yet 10:23:20 * sam_ plugs darcs 10:24:24 I have a BASH/RetroForth shell script that I use to create backups, restore them, etc right now 10:24:43 * crc never has been able to get darcs to run 10:26:08 mmm... maybe I should release another version soon 10:27:21 there have been significant improvements 10:27:31 eg you can load and save under OF 10:30:00 cool 10:31:21 you need a spare disk though 10:31:27 it's set to save to the seccond ata HD 10:31:45 :) 10:31:57 * crc doesn't have a PPC box to try it on yet 10:32:23 I'll hopefully be starting an amd64 port of RetroForth soon 10:32:34 (thanks to swsch_) 10:33:16 cool 10:33:36 yeah, and if you're going to run herkforth in an emulator, you're far better off emulating the linux version 10:33:53 I agree 10:34:09 PearPC was kind of awkward to use the last time I tried it... 10:34:18 pearpc is aweful 10:34:37 * swsch_ installed darcs on the amd64 as a matter of fact 10:34:44 I hacked the source and got it to display text about 8 times faster 10:34:44 hmm 10:34:50 but it's still slow and annoying 10:35:13 swsch_: that still won't help me on my main box :( 10:35:23 which os? 10:35:27 Linux 10:35:32 which linux? 10:35:35 Ubuntu 10:35:47 grrr..... package management? 10:35:59 apt 10:36:19 * crc wonders if darcs is in another repository... (checking) 10:36:21 then you should be able to "just apt-get install darcs" 10:36:28 yup :) 10:36:36 it's in debian testing and unstable 10:36:56 I just installed it :) 10:37:04 * crc now has to learn to use it... 10:37:05 :-) 10:37:20 I find it very convenient and powerful 10:37:37 Not very much used, though 10:37:40 brb 10:40:18 is darchs the one that has no "revert" feature? 10:51:48 darcs has a "revert" command 11:00:38 darcs does not store versions, it stores patches, i.e. changes between versions. 11:00:56 and it has builtin moving and renaming capabilities 11:01:55 and there is no central repository, if you "get" a repository, you get every single stored patch. 11:02:19 it's the one revision control system, I actually like. 11:09:29 can you revert just one file? 11:12:02 yes you can 11:12:06 darcs rever thisfile 11:12:21 s/rever/revert/ of course 11:12:23 oh right, darcs is the one I couldn't get installed 11:12:45 from source? 11:13:07 gentoo 11:13:09 dependancy issue 11:13:11 s 11:13:17 couldn't get ghc installed iirc 11:13:37 I probably didn't try terribly hard 11:13:44 that's another reason, why I like it: It's actually written in Haskell :-) 11:14:22 I never learned haskell 11:14:53 for shame 11:15:07 me neither, still it's cool to see something useful not written in mainstream langs. 11:15:25 and, hey, I've got to keep something for the days, when Forth gets stale .-) 11:20:40 my forth is never going stale! 11:21:00 * Herkamire searches for cheap folding chairs 11:22:50 * crc contemplates how to explain does> 11:23:33 It's hard to recall exactly how it works; I haven't reviewed the code since first debugging it 11:23:47 I don't even use does> anymore... 11:27:12 then how do you work your magic in forth? 11:28:41 What magic? 11:29:40 like some of the stuff I did in retroweb 11:29:46 such as? 11:30:50 um... lol... 11:30:57 when i go to http://java.sun.com/docs/ 11:31:17 i get a popup "stack overflow at line: 0" 11:31:18 I either hand compile simpler definitions, or use macros most of the time 11:31:26 sun is trying to hack me!!! 11:31:33 like : $: create , , does> dup @ swap cell+ @ swap type ; 11:32:04 takes addr and count and defines a word printing the string 11:34:08 : $: create -5 allot $, ['] type compile m: ;; ; 11:34:26 CREATE creates a new word. The stuff after DOES> is the definition for the word you're creating 11:34:51 In RetroForth, CREATE creates a word that calls DOVAR 11:35:20 DOES> changes the CALL DOVAR to "CALL CODE_AFTER_DOES" 11:35:48 I haven't used DOES> in a long time (other than in implementing constant...) 11:36:31 : constant create -5 allot m: literal m: ;; ; (basically the definition of constant in 8.0) 11:38:00 --- part: sam_ left #forth 11:39:19 so the magic (quite black for me) is in -5 allot, which backs up into the stuff create did, the $, is the compilation behavior and the rest the execution ... 11:39:54 create gives "call dovar" 11:40:02 -5 allot | removes "call dovar" 11:40:23 how about providing some nice words making "-5 allot" and possible other arcana more accessible to me? 11:40:23 $, compiles in an address and a count, placing the string somewhere safe 11:40:27 Hmm 11:42:39 I have no idea what to name that 11:43:54 * crc wonders if he's grown too comfortable with the internals of how the compiler works... 11:55:03 note that you do something and then undo it again. 11:55:09 code smell alert! 11:55:19 create does that automatically 11:55:27 That's one thing I might change in 8.0 11:56:20 you need another word like header 11:56:32 which just defines the header and adds no action whatsoever 11:56:52 or "entry" 11:56:58 yup 11:57:48 with entry taking a counted string as input ... 11:58:03 so : create 32 word (create) ; 11:58:30 and : (create) entry compile_dovar_action ; 12:05:48 * crc starts coding this... 12:12:07 done :) 12:12:32 : (dovar) dup [ $58 1, ] ; 12:12:32 : (create) 32 parse entry ; 12:12:32 : create (create) ['] (dovar) compile ; 12:12:32 : variable 0 : variable, create , ; 12:12:32 : constant (create) m: literal m: ;; ; 12:12:32 six minutes for how many bytes? :-) 12:12:37 No idea 12:12:46 Most of that time was debugging :) 12:13:09 (only one bug, and that was in the assembly code for "entry") 12:13:26 I wondered already ... there is no code to debug :-) 12:15:14 so now retroforth can do without does> :-) 12:15:36 Yup 12:15:50 Yay! no more does> after the 7.x line :) 13:23:55 --- quit: skylan (Read error: 54 (Connection reset by peer)) 13:25:05 --- join: skylan (~sjh@vickesh01-4741.tbaytel.net) joined #forth 13:58:46 --- join: TheBlueWizard (TheBlueWiz@modem-131.nyc-tc03a.fcc.net) joined #forth 14:25:18 bbl 14:29:09 Hi 15:05:48 hiya robert 15:09:06 :) 15:29:29 * swsch_ is away: going ... going ... gone. 16:50:38 back 16:51:19 Hi9~ 16:55:21 --- quit: cmeme (Read error: 104 (Connection reset by peer)) 16:56:52 Hi robert 16:57:14 * crc is confused by the 9~ :) 16:57:25 Typo 16:58:00 ahh, ok 17:00:40 --- quit: Topaz (Remote closed the connection) 17:22:32 --- quit: qFox ("this quit is sponsored by somebody!") 17:29:14 --- join: swsch (~stefan@swsch.sustaining.supporter.pdpc) joined #forth 17:45:43 --- quit: swsch_ (Read error: 110 (Connection timed out)) 18:32:39 goodnight 18:33:19 Night 19:47:54 --- join: arke (f2@bespin.org) joined #forth 19:51:47 Hi 19:52:09 teh hies robtrob 20:07:40 --- join: aum (~aum@60.234.138.239) joined #forth 20:08:35 Hi 20:09:34 teh hies robtrob 20:10:27 HIES 20:14:04 omgwtfbbq 20:19:32 --- quit: tathi ("bed") 20:33:27 --- part: TheBlueWizard left #forth 20:34:29 what's the 'bbq' in 'omgwtfbbq'? 20:34:39 barbeque 20:34:50 oh yay 20:34:52 oh, ok 20:34:53 :) 20:35:07 scan me a sausage with mustard and dcc it to me? 20:35:35 * arke has requested a DCC connection (sausage.jpg) 20:36:00 yum, slightly burned on one edge, but still nice 20:36:36 :) 20:37:15 onto forth topics for a sec - is there such a thing as a primitive for changing value n on the stack? eg, ( 41 42 43 44 88 2 -- 41 88 43 44 ) ? 20:37:25 like, the opposite of 'pick 20:37:57 wtf no ewww 20:37:58 if there isn't one, maybe i should write it and call it something like 'poke' 20:38:08 thats ugly 20:38:38 you can probably define it in terms of ROLL but you dont want to do that period' 20:38:42 * aum has built a forth vm, that runs on PIC micro, that executes code resident in off-chip I2C serial EEPROM - expands PIC's capability to 64k programs 20:38:43 no roll pick poke etc. 20:40:31 arke: are you a hardcore fundamentalist? 20:40:59 if roll, pick etc are not kosher, then surely even 'rot' is a bit suss 20:41:05 hrmm. question for the traditionalists here: what are general feelings about the ANS Forth local variables syntax? 20:41:34 saon: OMGWTFEWWWWWWW 20:41:36 * aum refers to ANS before venturing an opinion 20:41:37 i'm not liking the idea of them much 20:41:40 saon: dont use it :) 20:41:43 saon: its horrid 20:41:54 aum: rot is okay if used sparingly 20:42:05 yeah, that's what it looked like. it's like they took forth and ductaped half a C too it 20:42:09 =p 20:42:17 s/too/to/ 20:42:19 :)\ 20:42:21 doh 20:42:51 arke, why only use rot sparingly? 20:43:11 i agree - ANS forth locals look horrible 20:43:57 saon: because then you'll end up with stuff like >r >r >r rot rot r> r> swap r> etc.etc. which is horrid 20:44:33 ah, i see, okay 20:44:42 * aum thinks what the hell, and implements poke and ndrop 20:45:19 is forth the only language where the number of available interpreters/compilers exceeds the number of users? 20:45:43 lol 20:45:58 lol 20:46:02 grr 20:46:03 :) 20:46:55 i might get kickbanned for saying this, but the compiler for my PIC I2C EEPROM VM is written in Python 20:48:01 * arke has set mode [+o arke] 20:48:02 and the VM engine is written in C :O 20:48:31 * arke has set mode [+b aum*!*@*] 20:48:39 * arke has kicked aum from the room 20:48:53 hey, lighten up 20:49:13 :) 20:51:03 forth is great, until it comes to maintaining others' code 20:52:27 * aum wonders when the first forth micro will come onto the market 20:53:00 --- quit: arke ("Changing server") 20:57:54 --- join: arke (f2@bespin.org) joined #forth 21:03:18 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 21:03:34 --- quit: cmeme (Remote closed the connection) 21:04:18 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 21:45:15 --- quit: aum () 23:28:44 --- quit: arke ("leaving") 23:59:59 --- log: ended forth/04.12.26