00:00:00 --- log: started forth/08.04.23 00:06:00 If I type option g to print the copyright character will it show up as such in a windows text editor? 00:21:37 depends on what encoding the windows editor uses 00:23:46 I was just curious because I replaced the (c) in the standard header of palindrom.factor with ©. 00:26:38 F2 doesn't work in Factor on my MacBook because it increase my screens brightness. 00:26:48 *increases 00:26:54 try fn-f2 00:27:04 Thanks 00:27:49 It couldn't find DUP, I must have done something wrong. 00:27:58 there's no word named DUP. 00:28:02 there's a word named dup, though. 00:28:11 Oh, it's case sensitive. 00:28:23 And lower case. 00:28:25 Ok. 00:29:11 some words are upper case but not dup 00:29:20 Nope, still couldn't find it. 00:29:39 in the interactive listener? 00:29:57 Um, the output pane on the GUI? 00:30:07 yes, see how at the top of the window it says 'listener' 00:30:26 Yes. 00:30:59 Well, the title bar doesn't, but their is a button that does. 00:31:26 it should find dup there just fine 00:32:17 Nope. I wonder what I did? 00:32:57 what did you do? 00:33:58 I don't know. I started it up, looked up forget in help then followed the instructions in your first program. 00:34:12 Oh. 00:34:14 Nvm 00:34:24 I didn't read the next bit. 00:36:12 \ reverse see 00:36:20 Oops. Wrong window. 00:37:58 --- join: Def (i=United-T@c-68-61-240-49.hsd1.mi.comcast.net) joined #forth 00:47:24 --- quit: arke (Read error: 110 (Connection timed out)) 00:47:55 --- quit: Def (Read error: 104 (Connection reset by peer)) 00:48:10 --- join: Def (i=United-T@c-68-61-240-49.hsd1.mi.comcast.net) joined #forth 00:57:46 The tutorial forgets to mention that >lower is in unicode.case. 00:57:49 --- quit: Def (Read error: 104 (Connection reset by peer)) 00:58:15 --- join: Def (i=United-T@c-68-61-240-49.hsd1.mi.comcast.net) joined #forth 01:04:08 Or was that deliberate? 01:04:59 it was an oversight 01:05:08 i'm going to bed 01:05:08 Ok. 01:05:13 Ciao. 01:05:21 the factor channel is #concatenative btw 01:05:31 Thanks. 01:34:42 --- join: wjoel (n=wjoel@125.220.135.126) joined #forth 01:34:55 --- part: wjoel left #forth 02:50:59 --- quit: crc ("Leaving.") 03:17:18 --- quit: proteusguy (Read error: 110 (Connection timed out)) 03:17:53 --- join: proteusguy (n=proteusg@61.7.144.97) joined #forth 03:39:03 --- quit: mdmorri1 () 03:41:11 --- join: ecraven (n=nex@plc31-103.linzag.net) joined #forth 03:51:36 --- join: ktlam (n=el@CBL217-132-230-94.bb.netvision.net.il) joined #forth 03:51:41 anyone here? 03:52:22 well ill just ask. im having a problem understanding the difference between direct threading and indirect threading 03:52:50 the wikipedia definition is somehwhat unclear to me, probably because im not familiar with the context 03:53:31 if anyone could explain the difference i'd appreciate it 03:53:43 try the Moving Forth articles 03:54:43 basically DTC words are all in assembly language, but colon definitions start by calling the interpreter for threaded code. 03:55:02 ITC words start with a *pointer* to a machine-code routine to call. 03:55:08 (one extra layer of indirection) 03:55:15 http://www.zetetics.com/bj/papers/moving1.htm 03:55:31 i should mention that i'm totally unfamiliar with forth :) 03:56:17 we studied threading in class. and from what i see, my lecturer might have mistaken. 03:56:42 from what i can tell from the notes.. he claims that call goo; call boo; call push 3; is direct threading 03:57:02 and having a VM which does 'call' on each of these: goo; boo; push 3 is indirect threading 03:57:20 Not quite. Try the Moving Forth article; he has diagrams. 03:57:20 sounds logical, but i think wikipedia disagrees 03:57:33 the first is often referred to as Subroutine Threading. 03:57:48 direct and indirect threading are variants on the second. 03:58:05 so was he mistaken or is it a matter of terminology 03:58:19 he's mistaken 03:58:40 direct threading: call interpreter; goo; boo; push 3 03:58:53 indirect threading: interpreter; goo; boo; push 3 03:59:12 does that make sense? 03:59:25 yea except from the call interpreter and interpreter part 03:59:58 in direct threading, you have a machine code instruction to call the routine that interprets threaded code. 04:00:27 in indirect threading, you just have the address of the routine that interprets the following data. 04:00:53 ok, i understand, so why have a referernce to interpreter at all 04:01:11 why can't some VM take the list of instructions 'goo;boo;push 3' and execute each one in turn 04:02:43 Some types of words use a different "interpreter" 04:03:05 e.g. variables are something like: call dovar; 04:04:22 so, variables have a different interpreter because they carry a value 04:04:30 yeah. 04:04:35 and functions have a different interpreter because its just pointer to code 04:04:46 and there is no unified interpreter? 04:05:29 right. Though it's usually generated by the Forth compiler, so there are only a couple of different types of interpreters. 04:06:32 so when the VM sees 'interpreter' it transforms itself to variable interpreter/function interpreter/ etc? 04:07:38 and if i have 'var;func;var;func;var;func... etc' isn't it an overkill to make all of those switches? 04:08:34 I'm not sure I understand the question. The VM doesn't do anything special. The text interpreter compiles the appropriate code for each definition. 04:09:09 yea, im probably not thinking on the right wave. i probably need to have some forth context 04:09:29 from what you explained to me, it just seems a very minimal difference between indirect and direct threading 04:09:35 yes. 04:09:50 just a matter of pointer dereference (also from the moving forth diagrams) 04:09:54 indirect threading may be smaller (e.g. if a CALL instruction is 5 bytes and an address is only 4) 04:10:30 And it's possible to implement in, say, standard C, where you can't easily compile assembly language, but can easily store a function pointer. 04:12:09 i see. one more thing, is it true that the forth operating env and text editor compiler and debugger were all 4K? 04:13:34 That's a bit small, but a fairly functional forth system can be done in 12K or so easily enough. 04:13:45 but impossible in 4K ? 04:14:18 No, I wouldn't say so. Depends on the processor, and I'm not a computer history buff. :) 04:15:05 But it takes some sacrifices to get things that minimal. 04:15:24 Early Forth systems only stored the length and first three characters of names, for instance. 04:15:32 so youre saying, you can have a text editor, compiler, debugger with 4K 04:16:01 I believe it has been done, yes. 04:16:30 Mind you, we're not talking emacs here. Or even pico. ed, maybe. :) 04:16:44 yea i guess. its just written in my notes. 04:16:58 well, thanks for the help, i'll continue researching this :) 04:17:09 sure 04:17:48 If you're interested in actually learning Forth, though, it's more useful to try writing some actual Forth code. 04:18:22 i understand, yep i might save that for the summer, just for fun. 04:18:41 So what's this course you're taking? 04:19:55 compilation 04:23:08 Oh, one more thing wanted to say re switches above: In forth you do ": name foo bar baz ;" ":" is a word that lays down 'call docolon', then switches the text interpreter to compilation state. 04:23:33 similarly "variable name". Variable is a word that compiles 'call dovar', then reserves space for the value. 04:23:46 So the VM just executes the code it's given. 04:24:15 Anyway...I should get to work. Have fun! 04:25:41 thanks 05:14:27 --- join: Maki (n=Maki@adsl-224-84.eunet.yu) joined #forth 05:34:00 --- quit: nighty^ (Remote closed the connection) 05:41:58 --- join: madwork (n=foo@204.138.110.15) joined #forth 08:07:48 --- join: nighty^ (n=nighty@p1036-adsau17honb13-acca.tokyo.ocn.ne.jp) joined #forth 09:53:39 --- quit: ecraven (Read error: 104 (Connection reset by peer)) 09:54:13 --- join: ecraven (n=nex@plc31-103.linzag.net) joined #forth 11:20:49 --- quit: aguai (Read error: 110 (Connection timed out)) 11:21:08 --- quit: tathi ("leaving") 11:28:55 --- join: snoopy_1711 (i=snoopy_1@dslb-084-059-223-221.pools.arcor-ip.net) joined #forth 11:29:46 --- quit: Snoopy42 (Nick collision from services.) 11:30:21 --- nick: snoopy_1711 -> Snoopy42 11:43:33 --- join: Al2O3 (n=Al2O3@c-76-120-54-133.hsd1.co.comcast.net) joined #forth 11:50:56 --- quit: Aardappel (Read error: 110 (Connection timed out)) 13:28:32 --- quit: ecraven ("bbl") 14:16:11 --- quit: Maki ("Leaving") 14:39:04 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 14:39:04 --- mode: ChanServ set +o tathi 14:39:23 hey all 14:54:15 --- quit: nighty^ ("Disappears in a puff of smoke") 15:41:52 --- join: Deform (i=United-T@c-68-61-240-49.hsd1.mi.comcast.net) joined #forth 15:42:15 --- quit: Def (Read error: 104 (Connection reset by peer)) 15:42:43 --- nick: Deform -> Deformative 15:44:56 --- quit: ktlam () 16:12:32 --- join: aguai (n=aguai@host86-137-1-69.range86-137.btcentralplus.com) joined #forth 16:22:32 --- join: crc (n=charles@c-68-83-96-46.hsd1.pa.comcast.net) joined #forth 17:58:47 --- join: nighty^ (n=nighty@210.188.173.246) joined #forth 18:28:40 hey 18:28:57 hi 18:37:51 hi 18:40:44 oops. I guess I shouldn't say "hi" when I should really be going to bed... 18:40:52 --- quit: tathi ("bye!") 20:30:28 --- quit: robert_ (Read error: 104 (Connection reset by peer)) 22:20:40 --- join: Al2O3_ (n=Al2O3@c-76-120-54-133.hsd1.co.comcast.net) joined #forth 22:20:40 --- quit: Quartus` (Read error: 104 (Connection reset by peer)) 22:25:48 --- quit: Al2O3 (Connection timed out) 22:45:40 --- join: Al2O3 (n=Al2O3@c-76-120-54-133.hsd1.co.comcast.net) joined #forth 22:50:59 --- quit: Al2O3_ (Connection timed out) 23:50:43 --- join: Al2O3_ (n=Al2O3@c-76-120-54-133.hsd1.co.comcast.net) joined #forth 23:56:00 --- quit: Al2O3 (Connection timed out) 23:59:59 --- log: ended forth/08.04.23