00:00:00 --- log: started forth/02.05.07 00:11:29 --- join: bob4th (~bob4th@adsl-63-197-120-243.dsl.sktn01.pacbell.net) joined #forth 00:53:35 --- join: GilbertBSD (~gilbert@m152.max3.dacor.net) joined #forth 01:05:01 --- part: GilbertBSD left #forth 01:11:45 --- quit: bob4th (Read error: 110 (Connection timed out)) 01:34:55 --- join: davidw (~davidw@ppp-81-6.25-151.libero.it) joined #forth 01:36:00 Hi .) 01:36:54 hi 01:44:56 fucking fuckety bloody fucking hell... pile of shit web hosting services 01:45:12 :-/ 01:45:13 * davidw could just about scream.... 01:45:25 * rob_ert is lucky enough to have a 24/7 "server" in his house. 01:45:42 I can't beleive the incompetents 02:12:19 --- join: bob4th (~bob4th@adsl-63-197-120-243.dsl.sktn01.pacbell.net) joined #forth 03:01:00 heya 03:01:22 What'd they do, davidw? 03:02:08 Soap`: sent me an email this morning that they are discontinuing service, effective immediately 03:03:04 :/ 03:03:35 fuckers... I could wring their necks 03:03:38 ring 03:03:49 no, wring is right 03:03:54 fuck I'm forgetting english, too 03:07:24 --- quit: Soap` (Read error: 113 (No route to host)) 03:10:07 --- join: Soap` (flop@203-96-107-58.dialup.xtra.co.nz) joined #forth 03:19:13 --- quit: bob4th (Read error: 110 (Connection timed out)) 04:13:07 --- join: bob4th (~bob4th@adsl-63-197-120-243.dsl.sktn01.pacbell.net) joined #forth 04:47:18 --- join: juu (ammu@62.165.190.249) joined #forth 05:05:07 --- quit: bob4th (Read error: 110 (Connection timed out)) 05:09:56 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 05:10:18 --- quit: Speuler (Client Quit) 05:43:30 --- quit: juu ("i never know or remember what my quit message was") 06:01:58 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 06:02:03 'morning 06:13:55 --- join: bob4th (~bob4th@adsl-63-197-120-243.dsl.sktn01.pacbell.net) joined #forth 06:29:12 Hi 06:31:03 Hmm... how does a colon put a call to NEST in a word's code area? 06:33:15 rob_ert: ' nest LAST @ ! might do 06:33:44 rob_ert: depends on system 06:34:11 OK, just wondering if there was any magic involved. 06:34:15 Thanks. 06:34:39 LAST @ gives you the xt of most recently defined word 06:34:48 nope... 06:34:52 i'm wrong 06:35:05 gforth: lastxt does that 06:35:10 Speuler: in file included from *the terminal*:-1 06:35:10 Speuler: /tmp/fsock-sh-server.request.tmp:46: Undefined word 06:35:10 Speuler: lastxt does that 06:35:10 Speuler: ^^^^ 06:35:10 Speuler: Backtrace: 06:35:25 Hm 06:35:40 The thing is, it's a _call_ 06:35:46 gforth: lastxt . 06:35:50 i.e. opcode for call and an address 06:35:50 Speuler: 1075038224 06:36:14 gforth: lastxt >name name>string type 06:36:18 Speuler: simulated-key 06:36:39 :) 06:37:05 these words are not ANS words btw 06:37:08 Hmm...well, I need to put a call opcode there 06:37:19 sounds like DTC 06:37:31 Hrm... I'll have to calculate a relative offset, don't I? 06:37:34 Yes 06:37:41 That's what I use. 06:37:42 putting the body address on stack, with the call 06:38:05 offset: model/system specific 06:38:17 and, cpu specific 06:38:22 intel uses offsets, yes 06:38:44 Well...hmmm 06:39:10 gforth: 10 0 [do] [i] . [loop] 06:39:12 Speuler: 0 1 2 3 4 5 6 7 8 9 06:39:29 I should subtract the offset right after the call from the offset I want to go to, right? 06:40:20 intel offset is, dest - 06:40:52 so, branch offset 0 = nop 06:41:10 Yeah... 06:41:19 :) 06:46:58 --- quit: bob4th (Read error: 110 (Connection timed out)) 07:55:55 --- join: futhin (~thin@h24-64-174-2.cg.shawcable.net) joined #forth 07:56:05 Hey :) 07:57:37 haha 07:57:46 some asshole emailed me about my forth mud project 07:57:47 ? 07:58:05 What did he say? =) 07:58:20 Obviously you came to your senses some time ago when you realized that 07:58:21 writing a MUD in forth is difficult to impossible. 07:58:33 Take a look at http://stoical.sf.net 07:58:34 STOICAL is well suited to applications programming, and gets better 07:58:34 every day. I've also just begun prototyping an interface meta language 07:58:34 who's secret purpose is to facilitate MUDs and BBSs. 07:58:37 heheh 07:58:40 it's funny 07:58:52 i don't really care about other languages 07:58:59 Hehe...what a troll :) 07:59:05 the forth mud is so that i extend the forth language 07:59:22 and get practice with forth 07:59:42 and i have seen in my mind's eye how i can make it quite elegant.. 08:00:29 of course, getting the mud from my mind's eye into the real world is going to be tricky :) 08:01:38 :) 08:01:54 oh interesting 08:01:59 stoical seems to have roots in the forth language 08:02:39 ew, he just alienated me again 08:02:41 At the time of this writing FORTH is known to him as colorForth; One imagines 08:02:41 that these colors are much like those present in his twisted visions and terror 08:02:41 filled dreams. 08:05:38 i dunno 08:05:42 i don't know if i like him heh 08:07:37 Well...spamming developers and telling them their favourite language sucks maybe isn't a very good idea. 08:07:48 yeah heh 08:10:49 --- join: bob4th (~bob4th@adsl-63-197-120-243.dsl.sktn01.pacbell.net) joined #forth 08:11:01 hello bob 08:11:54 Hello Futin 08:12:36 Hi bob4th 08:18:49 --- quit: bob4th () 08:44:07 --- quit: futhin ("bye") 09:19:25 --- join: Fare (fare@samaris.tunes.org) joined #forth 09:33:10 Hi :) 09:44:00 :( 09:44:14 What's up? 09:44:18 Why so sad? 09:46:00 edpressed 09:46:31 :-/ 09:51:23 --- quit: davidw (Read error: 110 (Connection timed out)) 10:29:56 --- quit: goshawk` (Read error: 104 (Connection reset by peer)) 10:30:28 --- quit: Speuler (Read error: 113 (No route to host)) 10:32:14 --- join: juu (ammu@baana-62-165-190-249.phnet.fi) joined #forth 10:33:26 murr! 10:33:34 I've written my own forth now, juu :) 10:33:45 Now I'm waiting for you to finish yours. 11:01:31 --- join: kc5tja (kc5tja@stampede.org) joined #forth 11:01:56 Hi :) 11:02:54 lo 11:03:02 rob_ert: so you made your forth? 11:03:25 Hehe, yeah 11:03:53 But be warned, a forth that takes a few hours to write (for someone who doesn't know forth) might not be very good. 11:04:00 :) 11:04:04 what target? 11:04:12 threaded code? 11:05:29 Target OS: KnasOS, Direct Threaded Code. 11:05:39 * Fare would like to see a RET-threaded FORTH. 11:05:45 (where the NEXT macro is RET) 11:06:31 Hehe 11:07:46 hmm.. 11:07:55 how's threading done in forth? 11:08:12 rob_ert finish or finnish and what? :) 11:09:09 jukkish? 11:09:34 (this of course requires a separate stack for interrupts/signals) 11:10:03 --- join: tathi (~tathi@wsip68-15-54-54.ri.ri.cox.net) joined #forth 11:10:27 (and either inline-expansion of code into the return/next stack, or a read-only, pop-only stack) 11:22:38 * kc5tja considers the use of a MachineForth-like meta-compilation environment for use here at work... 11:23:19 (where MachineForth not necessarily == to Chuck's vision of MachineForth) 11:28:36 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 11:30:16 --- quit: ChanServ (Shutting Down) 11:32:41 Hi Speuler 11:32:54 I've written a simple forth now :) 11:33:33 compiler? 11:34:09 Both compiler and intepreter, 11:35:19 so you have written compiler and interpreter? 11:35:28 Yes, that's what a forth is... 11:35:58 You know, when you compile a forth program, some part of the program is kind of a "forth script" 11:36:11 Where the code is executed during compile-time 11:39:45 Does anyone know how ." works? 11:40:02 That is, how to implement it. 11:40:18 Does it put the string at DP? 11:41:09 --- join: miket2 (Mike@modem-140-61-60-62.vip.uk.com) joined #forth 11:41:16 Hi 11:43:02 Hello 11:44:00 heh :) 11:44:09 oink: :) 11:44:17 (: 11:44:38 boing! 11:44:44 heloo boing 11:44:47 boing ? 11:44:49 ehm 11:44:51 juice ! 11:44:55 boing, oink all the same 11:45:00 :( 11:45:14 have you heard pig saying boing boing? 11:45:30 no. 11:45:31 that's when they are landing after they have been flying with the cows 11:45:46 ehm 11:46:32 --- quit: Fare ("Connection reset by pear") 11:47:04 haven't you even seen flying cows?!? 11:47:05 :) 11:48:15 Hello 11:49:34 --- part: miket2 left #forth 11:51:55 --- quit: Speuler (Read error: 113 (No route to host)) 11:52:39 --- join: ChanServ (ChanServ@services.) joined #forth 11:52:39 --- mode: carter.openprojects.net set +o ChanServ 11:52:39 --- mode: ChanServ set +l 83 11:57:43 * kc5tja makes a block editor for GForth... 12:19:16 Does anyone know how ." works? 12:19:17 That is, how to implement it. 12:19:22 Do you know that, kc5tja? :) 12:19:42 In my Forths, I implement ." as a compiler word, like this: 12:20:07 : ." COMPILE (do$literal) PlaceString COMPILE TYPE ; IMMEDIATE 12:20:28 where (do$literal) is a word that skips over the embedded string, and PlaceString is a word that actually does the embedding. 12:21:04 OK... 12:21:06 Thanks :-) 12:21:07 : PlaceString ( caddr u -- ) >R R@ , HERE R@ CMOVE R> ALLOT ; 12:21:09 or something like that. 12:21:14 Hm 12:21:17 Wait a second 12:21:24 How is memory allocation done? 12:21:26 * kc5tja doesn't have the exact specifics on hand. 12:21:27 ALLOT 12:21:30 How do you allocate an array? 12:21:35 And how to implement that? 12:21:47 CREATE MyArray nbrOfElements CELLS ALLOT 12:21:57 Then to access the nth cell in the array, 12:22:06 MyArray n CELLS + @ 12:22:29 Okay...thanks again... 12:22:34 And a normal vairable? 12:22:34 np :) 12:22:35 variable* 12:22:39 VARIABLE foo 12:22:40 foo 12:22:40 ;) 12:22:42 Like VARIBALE X 12:22:42 well, 12:22:44 Well 12:22:47 How does it work? 12:22:56 VARIABLE and CREATE are basically the same. 12:23:02 The difference is that: 12:23:05 : VARIABLE CREATE 0 , ; 12:23:19 Basically, VARIABLE pre-allocates a cell to hold the value it's going to hold later on. 12:23:30 otherwise, they're identical. 12:23:36 if I do VARIABLE foo 12:23:38 and then "foo" 12:23:44 Is that a literal expression? 12:23:49 They work because when you execute a CREATEd word, the word pushes the address of its data cell onto the stack. 12:23:56 "foo" and foo would be two different words 12:24:09 well, I know 12:24:17 I just wanted it to look clearer ;) 12:24:20 Anyway... 12:24:40 How can the word push its address? Hmm... using DOVAR? 12:24:46 After foo is executed, the address of foo's storage is placed on the stack. You then use @ and ! to fetch from, or store to, that address, respectively. 12:24:51 Yes. 12:24:56 So, instead of "call enter", I do "call dovar" ? 12:25:01 The purpose of the DOVAR primitive is to do exactly that. 12:25:05 Yes. 12:25:26 Cool, thank you once again. 12:25:29 Hehe :) 12:25:51 And all I can say is, I'm implementing a block editor called VIBE -- and it's doggone cool if you ask me. 12:26:17 As you might surmise from its name, it inherits a lot from VI (especially since you can't grab F-keys and control keys portably in ANSI Forth). 12:26:46 Extending the editor is easy too. Need a new command-mode command? Just write a single : definition, and recompile the editor. 12:27:18 This is because command-mode (and insert-mode CTRL-keys) are searched for using the dictionary. Command-mode words take the form of \, while insert-mode commands are / 12:27:19 ;D 12:27:26 :) 12:27:29 Nice. 12:27:34 So if I wanted to create a new command "x" to exit the editor, I just write this: 12:27:37 Forth can almost be useful :) 12:27:42 : \x true ; 12:27:46 And re-compile. :D 12:28:57 This block editor is just a rough prototype for what I'm going to have in my FS/Forth. I'm writing it because I'm sick of having to 1) edit with vim (I love VI, but having to quit Forth to run it is cumbersome), 2) Restart GForth, 3) restart the program from scratch only to catch a bug, 4) Exit Forth and re-type the VIM commandline, 5) Search for the buggy definition, etc. 12:29:05 It's fast, but not fast enough for me. 12:29:21 Although I like the convenience of ASCII files, blocks are just *too* damn useful and convenient. 12:29:46 And now I have a VI-clone (basically) implemented for use with block editing. 12:29:51 I'm in heaven. :D 12:29:58 (it's not done yet, but it's getting done, and quickly) 12:31:33 However, the 64x16 block format is more or less pretty limiting. I'm sticking with it for now, but I think for FS/Forth, I'll change the format for the blocks a little bit. 80x12, with a 64 character "title" field, which is logically separate from the rest of the block. 12:31:49 There's no real reason to stick with 64 character wide blocks anymore. 12:31:52 Not for source code use, at least. 12:36:39 Blocks? 12:39:05 Yes; the original form in which Forth source code is expressed. 12:39:59 Originally, they corresponded to 1024-byte sectors on the disk drives of whatever Forth was running on (remember that Forth originally was written to touch the hardware of the computer directly); thus, Forth source code could be stored directly on the disk drives without the need for something like a filesystem. 12:40:22 :) 12:40:35 Later, as filesystems grew in prominence (a filesystem is an absolute necessity on multitasking OSes, BTW), blocks started to be stored in separate files. 12:40:47 Like, on GForth, blocks are stored in the blocks.fb file. 12:41:30 And my source code for hi/forth (a version of FS/Forth adapted for use here at work) will be stored in block form, because it's so much more convenient. 12:41:55 The text editor for a block system is incredibly small too. 12:41:59 What kind of things do you work with? 12:42:13 Can you refine the question a bit? 12:42:34 Well... what do you work with? :) 12:42:42 What do you do for living? 12:42:42 Chips 12:42:57 Ah. For a living, I am a semiconductor verification technician. 12:43:19 I ensure that the chips this company produces adhere to their published specifications, and if they don't, I report my findings to the appropriate party. 12:43:37 Okay :) 12:43:41 What company? 12:44:11 Hifn, Inc. 12:44:18 http://www.hifn.com 12:44:21 brb 12:44:36 Okay 12:44:44 Never heard of them, btw ;) 12:48:43 Not surprising; most Forths today work with files, and not with blocks. 12:48:49 Especially those found on Unx. 12:48:51 Unix even 12:50:03 Man, I love Forth sometimes. Now is one of those times. :D 12:54:11 =D 12:57:37 Shoot! I forgot that GForth does case insensitive lookups on the dictionary. :( 12:58:04 That means I can't distinguish between uppercase and lowercase letters in command mode. :( 12:58:18 Oh well. I'll just have to live with it. 12:58:31 kc5tja = katja? 12:58:31 :) 12:58:39 nm 12:58:40 ;) 12:58:45 No 12:58:52 KC5TJA/6 is my amateur radio callsign 12:59:22 Cool :-) 13:04:17 that looks like swedish instructions, as helpful and easy to read ;) 13:04:33 Hrmrmrm. 13:04:53 to be honest, i know swedish better than native speaking rob_ert :) 13:05:16 Heh 13:05:33 You're not a good liar :D 13:05:44 yes, but this time i'm not lying 13:06:18 * rob_ert leaves juu alone. 13:07:01 rob_ert you can't i was not here even! 13:07:06 just returned :) 13:07:22 Heheh :) 13:42:10 --- join: GilbertBSD (~gilbert@max1-44.dacor.net) joined #forth 13:42:21 Hi :) 13:42:33 Guten Aben Herr rob_ert 13:42:38 I never though a forth would go _this_ fast to write. 13:42:43 Guten Abend. 13:42:56 what do you mean go this fast? 13:43:28 rob_ert: My Forth is taking bloody forever. 13:43:35 Are you writing it in raw assembly language? 13:43:40 hi kc 13:43:57 you recommended Duntemann's book right? 13:44:39 Who's Duntemann? 13:44:58 kc5tja: Of course :-) 13:45:10 who then recommended Duntemanns book? 13:45:16 kc5tja: But mine looks more like a quick hack to solve a problem than a real forth :) 13:45:58 rob_ert: So does mine, actually. And it is precisely that -- a quick hack. :) 13:46:25 Hehe... mine is worse! ;) 13:46:47 Well, I'm writing my Forth specifically to metacompile the real Forth. 13:47:14 kc have you seen the 3 instruction forth? 13:48:12 GilbertBSD: Nope. 13:48:59 http://www.eskimo.com/~pygmy/forth.html 13:49:51 3 instructions? 13:50:10 yep. Take a look at it. 13:52:23 --- quit: ChanServ (ACK! SIGSEGV!) 13:52:36 Yay! 13:52:50 yay Chanserv has left? 13:52:57 ;D 13:53:21 :)) 13:55:46 I see a heck of a lot more than three instructions being used... 13:55:56 But I could be missing something. 13:56:31 *shrugs* 13:56:50 lemme see hold on. 13:57:50 --- join: ChanServ (ChanServ@services.) joined #forth 13:57:50 --- mode: carter.openprojects.net set +o ChanServ 13:57:50 --- mode: ChanServ set +l 83 13:58:38 The 3 instructions are 13:58:38 XC@ fetch a byte 13:58:38 XC! store a byte 13:58:38 XCALL jump to a subroutine 14:01:13 :-) 14:04:01 --- quit: tathi ("Client Exiting") 14:05:32 --- join: Fare (fare@samaris.tunes.org) joined #forth 14:05:39 hi Fare 14:05:48 lo 14:06:10 How is Bastiat today? 14:06:56 HI :) 14:07:05 What's Bastiat? 14:07:43 ah but I thought people from .se knew EVERYTHING 14:08:31 Bah 14:09:06 who's talking about Bastiat? 14:09:45 rob_ert: is. 14:09:51 Heh. 14:10:20 well, Bastiat.org can tell you everything about it 14:10:31 :D 14:15:30 --- join: CrowKilr (Vapo_Rulez@cnq5-233.cablevision.qc.ca) joined #forth 14:15:53 Hi 14:15:59 hi! 14:16:50 --- quit: ChanServ (ACK! SIGSEGV!) 14:16:55 hi CrowKilr 14:16:59 Haha 14:17:03 2nd sigsev ;D 14:17:14 --- join: davidw (~davidw@ppp-114-9.25-151.libero.it) joined #forth 14:17:28 Hi :) 14:26:21 --- join: ChanServ (ChanServ@services.) joined #forth 14:26:21 --- mode: carter.openprojects.net set +o ChanServ 14:26:21 --- mode: ChanServ set +l 83 14:27:03 Im in the process of making a stack-based 20 instructions x86 assembler 14:27:20 just enough to be able to implement the x18 virtual machine 14:29:25 --- quit: ChanServ (ACK! SIGSEGV!) 14:29:45 bha! 14:29:46 3rd 14:29:56 =) 14:30:29 signal segmentation... v is for what? 14:30:37 rob_ert: you gruiky C coder.. i'm trying to port MSA to linux .. :) 14:30:46 CrowKilr: Segmentation fault 14:30:49 Signal Segment Voilation 14:30:55 Voil ? 14:30:55 :) 14:30:57 oink: Hehe :) 14:31:01 Violation? 14:31:09 :) 14:31:23 me englisch sukks 14:31:39 me englischs sukz m0re 14:31:58 xD 14:32:04 El Oinko! 14:32:09 si ? 14:32:12 que quieres ? 14:32:15 XD 14:32:19 (: 14:32:23 Non :) 14:32:27 arf :) 14:32:30 :D 14:32:35 niet.. 14:34:13 WOOHOO...block editor is taking in text now! I only need to add cursor movement functionality, and it'll be borderline useful. 14:35:07 --- join: tcn (tcn@tc2-login37.megatrondata.com) joined #forth 14:35:15 Hi 14:35:20 kc5tja: :) 14:35:21 hello 14:43:58 So there are 20 people here and nobody's talking? 14:44:46 Yeah. 14:44:53 I'm coding ;) 14:45:54 I'm translating code. 14:45:57 tcn: whadya wanna talk about? 14:47:34 nothing really 14:47:45 :D 14:48:56 the usual -- nothing 14:48:56 :) 14:49:06 oink is porting a crappy 16-bit assembler written by a 14-year old to Linux. 14:49:11 Isn't that pretty useless? 14:49:42 i'm ... ehm... bored ? :) 14:49:54 eheh 14:51:34 Hehe 14:51:35 he 14:51:41 rob_ert: you're still 14 ? 14:51:50 Hell no! 14:51:58 I'm a very big and mature 16 y/o ;P 14:52:00 oink how olad areyou? 14:52:09 71 14:52:09 he's big but not mature 14:52:10 i'm retired. 14:52:16 retarded? 14:52:25 !#@{} 14:52:39 rob_ert: he! 14:56:42 oink you are older than CM? 14:57:00 i was j/k .. 14:57:03 i'm 16 14:58:51 * Soap` is surrounded by young punks 14:58:51 Hehe 14:58:54 Yeah 14:58:59 * rob_ert pokes Soap`. 14:59:11 How's life in kindergarden, Soap`? : 15:00:04 Oi! 15:00:43 I'll have you know I'm an ancient and venerable 19. 15:01:19 Well... still old enough to be my big brother :) 15:01:49 I feel like an old fart 15:01:56 24 :) 15:01:59 Hehe' 15:02:14 Well... compare yourself to Chuck Moore, and you're always young ;) 15:02:36 hey do kids in Sweden do the hambo or is that uncool? 15:03:02 I don't dance at all. 15:03:08 * rob_ert codes instead :} 15:03:30 * juu feels 19 is enough and not too much at the same time 15:03:45 you should try it sometime. it's cool once you get the rhythm 15:03:47 16 is best 15:03:51 tcn, bla, it'll go over.. the life.. muhaha.. hmm.. do we have some nightmare sound to here? 15:04:39 no? 15:04:44 not then 15:04:45 :) 15:04:55 * juu writes 0 EXIT to scare all forth coders 15:06:05 * rob_ert doeas a CLEAR to delete the evil word jukka 15:06:53 --- quit: GilbertBSD ("xchat exiting..") 15:15:12 --- nick: joa -> sigsegv 15:15:26 im trying to do a x18 instruction set (MachineForth) metacompiler for the x86, any suggestions or thoughts? 15:15:42 --- nick: sigsegv -> joa 15:16:14 hmm.. joa qhwew do you live at? 15:16:31 usa 15:16:42 --- join: ChanServ (ChanServ@services.) joined #forth 15:16:42 --- mode: carter.openprojects.net set +o ChanServ 15:16:42 --- mode: ChanServ set +l 83 15:16:42 --- mode: ChanServ set +o tcn 15:16:49 ChanServ: wb 15:19:24 thx 15:20:06 rob_ert? 15:20:49 heh 15:22:40 xD 15:27:12 --- join: I440r (~mark4@1Cust57.tnt1.bloomington.in.da.uu.net) joined #forth 15:27:39 hi tcn :) 15:27:40 hi ppl! 15:27:49 been with the BATF here since 9am :) 15:27:55 i00000r! 15:27:55 going over all the rules and regs 15:27:59 heyhey, I440r 15:28:18 hi 15:28:20 :) 15:28:26 hello 15:28:38 only had 2 hours of sleep last nite cuz i was nervous about it heh 15:28:39 lol 15:28:41 went find 15:28:44 better than fine 15:28:46 went real good 15:29:53 heh 15:29:59 hey dood :) 15:30:14 im reverse adding dns to my sockets lib 15:30:17 or trying to heh 15:30:26 had skip carter in here yesterday 15:30:28 he said 15:30:34 forth + sockets = job 15:30:53 so i kinda need the dns stuff heh 15:30:57 the other shit is easy 15:31:16 like doing sock_dgram or sock_stream etc 15:31:21 using poll or select 15:31:34 select used to scare me but it looks easy now :) 15:32:28 yeah, i don't think it's too bad 15:32:42 just fuck with it, start small, until it makes sense.. 15:32:49 it used to be but with what ive learned since i last looked at it its not as complex as it at first seemed 15:32:58 actually, it already does hehe 15:33:04 it didnt before :) 15:33:15 coud you write fast webbrowser with forth? 15:33:23 ive basically reverse engineered how do do the CONNECT shit with syscalls 15:33:44 sockaddr etc 15:33:49 very easilly 15:34:45 from libc? 15:35:06 i wrote small c code and used IDA pro :) 15:35:11 statically linked to libc heh 15:35:24 saw how to create the structures and how to do the syscalls 15:35:34 it was easy - thats the file i already sent you 15:35:52 its basically only has a word to create a sockaddr_in 15:35:55 to connect 15:35:59 recv and send 15:36:07 dont have bind in there but thats no biggie 15:36:24 it has pollfd in there too 15:36:29 thats how i did key? btw 15:36:32 using a pollfd :) 15:37:01 ahh 15:37:21 man i remember the problems i had trying to figure out how to do key? heh 15:37:33 so you finish this socket stuff, and you got a contract? 15:37:58 dunno 15:38:04 he didnt say that exactly 15:38:37 i gtg 15:38:46 i just logged in to sell some stocks (at a loss) 15:38:55 need food 15:39:09 neway ill be back on later 15:39:14 l8er guys! 15:39:23 --- quit: I440r ("Kerbnanga!") 15:40:12 stocks never shoudl be sold at loss 15:40:17 they'll usually rise up again 15:40:26 stock market is psyhchology 15:40:31 most people sell 15:40:39 but if you dont they'll rise again 15:41:25 he needed the money :) 15:41:44 Hm. Just like JDS Uniphase is poised to shoot up? ;) 15:42:16 oh yea! certainly what ever it is :) 15:42:37 That's what I wanted to hear. 15:42:41 Heh. 15:44:01 back 15:44:08 Sorry; got called off to do useless stuff here at work. 15:44:10 front 15:44:22 useless? 15:44:25 like wat? 15:44:53 Like what? Like attend meetings for products that I'm not responsible for, but which my manager insisted I go to anyway. 15:45:26 --- quit: ChanServ (ACK! SIGSEGV!) 15:45:32 At any rate, my block editor now supports basic text entry and cursor movement. I now need commands to advance or go backward a block or so. 15:45:50 And after that, it'll be pretty much done. 15:46:16 products? 15:46:18 what products? 15:47:34 found a page on socket programming: http://world.std.com/~slanning/asm/ 15:56:37 juu: I can't tell you. 15:57:50 :) 15:57:51 oki 16:04:22 --- quit: rob_ert ("Strawberry fields forever.") 16:06:36 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 16:06:44 --- quit: BigBoyToddy (Client Quit) 16:07:07 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 16:07:12 --- nick: oink -> ham 16:07:25 --- nick: ham -> oink 16:07:31 --- join: Speuler (~l@a161161.upc-a.chello.nl) joined #forth 16:22:37 --- quit: davidw (Read error: 113 (No route to host)) 16:22:37 --- quit: BigBoyToddy (Read error: 104 (Connection reset by peer)) 16:32:11 * kc5tja just sent a nastygram to our IS helpdesk. :) 16:32:32 Complaining about why MS Exchange Server mysteriously stopped handling my mail filter settings. 16:33:32 --- join: ChanServ (ChanServ@services.) joined #forth 16:33:32 --- mode: carter.openprojects.net set +o ChanServ 16:33:32 --- mode: ChanServ set +l 83 16:50:02 --- quit: tcn ("Leaving") 16:56:01 --- quit: Fare ("Connection reset by pear") 17:19:34 * kc5tja is happy; I just finished the basic block editor for my Forth environment here. 17:20:31 It's very VI-ish too, since ANSI Forth doesn't let me grab special key codes. But it can interpret control key combinations in insert mode, and normal key presses in command mode. 17:20:35 And it's trivial to extend too. 17:32:50 --- join: skipC (skip@mira.taygeta.com) joined #forth 17:47:42 --- join: I440r (~mark4@1Cust120.tnt2.bloomington.in.da.uu.net) joined #forth 17:48:06 hi skip :) 17:48:08 mrreach! 17:48:14 anyone else who is awake :) 17:49:25 im awake and uve got a question for the colorforthe xperts around here 17:49:51 i want to know what does the Multiply step opcode 17:49:52 well ask the q - but im know next to zero about CF :) 17:49:55 *+ 17:50:09 add with carry? 17:50:18 hrm i dunno 17:50:47 Ive got a question to ask to the man on the 18 ;p 17:52:42 :) 17:52:44 --- quit: cdesousa (Read error: 110 (Connection timed out)) 17:53:16 i am still in shock that he actually came the first time and stayed as long as he did - im sure he was going WAY out of his way for us 17:53:44 its like - he doesnt just care about FORTH - he cares about those who use it too 17:55:45 started reading that doc on doing dns lookups last nite - i think i need to write some code in c now and disassemble it 17:55:54 so i can see how the syscalls are done 17:56:22 but i think i could have dns lookups in isforth purdy soon :) 17:57:32 Call gethostbyname() and it returns a pointer to a static memory address. Dunno if that helps. 17:57:38 dns name resolution is messy 17:57:41 cant 17:57:47 skip yea im discovering that now :) 17:57:56 you have to parse the returned packets, they do not have a predicitable format 17:57:57 why they had to have binary fields in the requests and the replies 17:58:24 i know - but if i restrict the TYPES of lookups to begin with it will keep it fairly simple (i hope) 17:58:34 frac CANT use gethosbyname 17:58:51 isforth will NOT EVER under any circumstances make ANY references to ANY libraies in its kernel 17:58:55 WHAT SO EVER 17:58:57 grrr :) 17:59:16 hmmm 17:59:30 which makes things harder but when i do a dns lookup ill UNDERSTAND whats going on 17:59:30 so why dont you code the tcp/ip stack in there then? 17:59:58 c coders dont know a damned thing. other than when they throw a stick the compiler plays fetch with libraries 18:00:09 crow why should i 18:00:16 THAT is operating system 18:00:22 im not replacing linux. im using it 18:00:28 * skipC found it easiest to just do a tcpdump of a bunch of dns calls and reverse engineer the packets 18:00:30 im replacing libc etc 18:00:35 yes 18:00:40 ok 18:00:47 that was also on the list of methods :) 18:00:51 could show you my forth code for it but is not on this system 18:01:05 is your code open source ? 18:01:11 isforth is modified LGPL 18:01:21 its free. and also allows FULL commercial use 18:01:29 the high level (gethostbyname) is, not the tcp stack tho 18:01:31 your apps can have any lisence that you want it to 18:01:37 aha ok :) 18:02:28 im still undecided if the sockets code (any of it) will be gpl 18:02:39 i might or might not release it for non profit use 18:02:54 and charge a niminal fee for use in commercial apps 18:02:57 dunno yet 18:03:01 depends on how good it is 18:03:45 right now im selling off stocks at a heavy loss just to keep afloat 18:03:46 --- quit: juu ("i never know or remember what my quit message was") 18:04:43 I440r: You know, you may want to make isForth or a derivative that is for-sale. 18:04:46 Just to get some income. 18:05:08 i.e. release it under different lisences 18:05:19 well. thats what im considering for the sockets stuff 18:05:25 Either that, or really start banging out code using isforth that is not GPLed, and that are for-sale. 18:05:36 but it needs to have enough in there to PROVE its worthy of being paid for 18:05:37 I'm not talking just libraries, I'm talking whole applications. 18:06:05 Just a suggestion. I dont' want to see you lose your house. 18:06:12 * kc5tja knows what it's like to not have a home. 18:06:18 if YOU can write commercial applicaions with it under my lisence im sure i can heh 18:06:24 * kc5tja is currently homeless, and spending large sums of cash to remain in ahotel. 18:06:28 well im not that far yet 18:06:50 and if my father and i can get this firearms business rolling we will have income 18:07:01 sporterizing mausers and manufacturing ammunition 18:07:12 spent all day with 3 batf ppl going over the rules 18:07:37 but within the next coule of days we will have lisences to manufacture ammunition AND firearms 18:07:48 the lisense to manufacture arms is the grandaddy of them all 18:08:31 we already have two mausers that have been sporterized that we can sell - even before we have the lisence 18:08:39 just cant sell TOO many of them without 18:09:20 got a commercially zoned outbuilding here too thats perfect for a store front operation 18:09:30 sell ammo to the local yocals :) 18:10:06 plus ill be working on isforth 18:10:24 am also coding a console windowing system using my curses-like code 18:11:14 hey I440r :) 18:11:30 my problem is what sort of applications can i write right now that i could charge for 18:11:34 I440r: is that code capable of doing anything other than vt100? 18:12:16 well - i was working on parsing terminfo 18:12:25 but i halted that for now 18:12:29 so atm - not realy 18:12:35 nod... but that's the goal? 18:12:47 but vt100 is what 99.99999999999% of the world uses heh 18:12:51 heh 18:13:00 well it would be NICE to be a complete replacement for curses :)_ 18:13:06 well, some of us like to use the console in freebsd without having to install screen ;) 18:13:09 with a millionth of the bloat too heh 18:13:23 what console does fbsd use 18:13:26 heh no dissin' curses :) 18:13:27 it's coo 18:13:41 bloatcurses 18:13:50 uhm... I don't remember the name.. it's something like vt100 but not close enough for windowing stuff 18:13:53 write a 50 gig hello world program :P 18:14:01 heh 18:14:12 curses is cool with the whole screen delta thing ;) 18:14:34 cons25 18:14:38 if i could get tcn to fix the fbsd syscall include i could get it to work NP 18:14:52 I440r: Does sporterizing require the use of CNC milling machines and such? 18:15:12 If so, you could write a Forth application for that, and sell that for $1000 a pop (high price because of low volume). :) 18:15:28 they would be usefull 18:15:34 were hoping to get a smithy 18:15:45 combination milling/lathe/drill press 18:16:16 I440r: I think cons25 is modelled after some terminal (like the linux console is) but it's slightly different 18:16:20 what we do is remove the old barrel 18:16:26 it's called syscons in freebsd as well... 18:16:28 they are either 8mm or 7mm 18:16:41 put a barrel with YOUR choice of profile 18:16:49 chambered to your prefernce 18:17:05 we can polish up the action to a mirror finish or blue it 18:17:17 put it in a composit stock for not much money 18:17:33 or make you wait 2 years for me to finish a walnut (or pick some other wood) stock 18:17:47 the 2 years is what it takes to apply the finish prior to checkering 18:18:10 that stock alone could cost you as much as $2000 for the BLANK 18:18:56 ive got some 1911 grips i made out of walnut that ive been applying linseed oil to for about a year and a half 18:19:05 they are just starting to look nice :) 18:19:28 a few more months of applying minute coats and then ill just leave them in a drawer for a year or 2 18:19:32 then ill checker them 18:19:47 dont NEED to leave them for that long 18:20:07 but the longer the layers of linseed oil have to cure the easier the checkering will be with these 18:20:30 its flowing hair walnut. the grain is weaving back and forth on itsself 18:20:36 like frizzy hair 18:21:12 got another set made from bubinga and a set i just finished shaping from cocobola 18:21:42 but anyway 18:25:36 i only had about an hour of sleep last nite heh 18:25:43 was too nervous/excited lol 18:26:15 im gona go crash :) 18:26:35 nite ppl 18:26:46 see ya 18:26:48 --- quit: I440r (": sleep bed go tuck light off ; immediate") 18:26:48 later I 18:26:52 doh 18:29:18 --- quit: skipC ("goin home") 18:40:54 --- quit: CrowKilr ("User pushed the X - because it's Xtra, baby") 18:45:20 gforth: 30 0 [do] [i] . [loop] 18:45:24 Speuler: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 18:45:39 gforth: 5 0 [do] [i] cr . [loop] 18:45:42 Speuler: 0 18:45:43 Speuler: 1 18:45:43 Speuler: 2 18:45:43 Speuler: 3 18:45:43 Speuler: 4 18:45:48 gforth: 10 0 [do] [i] cr . [loop] 18:45:51 Speuler: 0 18:45:51 Speuler: 1 18:45:51 Speuler: 2 18:45:51 Speuler: 3 18:45:53 Speuler: 4 18:46:03 gforth: 10 0 [do] [i] cr . [loop] 18:46:07 Speuler: 0 18:46:07 Speuler: 1 18:46:07 Speuler: 2 18:46:07 Speuler: 3 18:46:07 Speuler: 4 18:46:36 gforth: 100 0 [do] [i] . [loop] 18:46:40 Speuler: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 18:46:53 gforth: 500 0 [do] [i] . [loop] 18:46:57 Speuler: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 18:50:20 Someone here is having fun... :) 18:51:42 gforth : xxx 1+ (emit) ; ' xxx is emit 97 emit 18:52:02 gforth: : xxx 1+ (emit) ; ' xxx is emit 97 emit 18:52:05 Speuler: b 18:52:16 gforth: 97 emit 18:52:20 Speuler: a 18:54:19 --- join: cdesousa (syf@faeldryn.demon.nl) joined #forth 18:54:38 --- quit: cdesousa (Client Quit) 18:55:06 gforth: : xx begin key dup 'q - while emit repeat drop ; xx 18:55:09 Speuler: in file included from *the terminal*:-1 18:55:10 Speuler: /tmp/fsock-sh-server.request.tmp:46: No more simulated key presses left! 18:55:10 Speuler: : xx begin key dup 'q - while emit repeat drop ; xx 18:55:10 Speuler: ^^ 18:55:10 Speuler: Backtrace: 18:55:57 gforth: (key) . 18:56:01 Speuler: -1 18:56:07 --- join: cdesousa (syf@faeldryn.demon.nl) joined #forth 18:56:18 gforth: see (key) 18:56:22 Speuler: : (key) 18:56:22 Speuler: infile-id key-file ; 18:59:10 gforth: include /dev/tty 18:59:14 Speuler: Terminated. 19:01:49 gforth: include /usr/share/gforth/0.5.0/stuff.fs s" ls -l" system 19:01:53 Speuler: in file included from *the terminal*:-1 19:01:53 Speuler: /tmp/fsock-sh-server.request.tmp:46: No such file or directory 19:01:53 Speuler: include /usr/share/gforth/0.5.0/stuff.fs s" ls -l" system 19:01:53 Speuler: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 19:01:53 Speuler: Backtrace: 19:03:42 gforth: bootmessage 19:03:45 Speuler: GForth 0.5.0, Copyright (C) 1995-2000 Free Software Foundation, Inc. 19:03:45 Speuler: GForth comes with ABSOLUTELY NO WARRANTY; for details type `license' 19:03:45 Speuler: Type `bye' to exit 19:08:42 gforth: included-files 2@ . . 19:08:46 Speuler: 39 134631360 19:12:44 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 19:12:50 hello 19:13:09 you have to take a look at this image, it is the most amazing thing FORTH I have seen... 19:13:14 http://home.earthlink.net/~jsachssprint0/020430/ForthOnTheAtari.jpg 19:13:36 The chick is falling out of her top, and the guy is packing a 45 mag in his shorts, all under the name of FORTH programming :o) 19:17:49 --- join: CrowKilr (Vapo_Rulez@cnq5-233.cablevision.qc.ca) joined #forth 19:19:40 i compiled one after the other the colorforth primitives documented at http://www.colorforth.com/forth.html and I wrote speculative code of those that were not, like !r, and i get a 171 bytes count 19:24:16 cool! 19:25:05 thats smelling the one bootsector x18 emulator lol 19:25:32 gforth: include /usr/local/share/gforth/0.5.0/stuff.fs s" ls -l" system 19:25:35 Speuler: redefined needs redefined CSP redefined !CSP redefined ?CSP redefined dmin redefined dmax redefined $? 19:25:36 Speuler: in file included from *the terminal*:-1 19:25:36 Speuler: in file included from /tmp/fsock-sh-server.request.tmp:46 19:25:36 Speuler: /usr/local/share/gforth/0.5.0/stuff.fs:55: Undefined word 19:25:36 Speuler: (system) throw TO $? ; 19:25:37 Speuler: ^^^^^^^^ 19:25:41 can't wait to the 18th lol 19:26:10 oops sorry forgot the /msg 19:26:29 Trying to hack the box, are we? 19:28:10 i dont know about gforth, but I know ls -l and i can deduce its smell devastating potential lol 19:28:40 If you can run ls -l, you can usually run any arbitrary command. 19:28:49 And if said command is known to have a security hole, you can gain root. 19:29:02 And if you gain root, you're in like flint, and can do whatever you please. 19:29:17 * kc5tja ran two ISPs in the past, and things like this are a very common occurance. 19:29:27 Do not underestimate the power of running "ls -l" remotely. 19:29:43 Innocuous itself, it can still yield quite useful information about a system. 19:30:22 Especially if you gain the ability to run "cat" (which is in the same directory as ls, and therefore equally unprotected). Running "cat /proc/...whatever..." can be incredibly useful to a hacker. 19:30:27 s/hacker/cracker/. 19:33:25 gforth 40 35 [do] [i] 8 * included-files 2@ drop + dup cell + @ swap @ type cr [loop] 19:33:46 gforth: 40 35 [do] [i] 8 * included-files 2@ drop + dup cell + @ swap @ type cr [loop] 19:33:49 Speuler: /usr/local/share/gforth/site-forth/siteinit.fs 19:33:49 Speuler: /usr/local/share/gforth/0.5.0/arch/386/asm.fs 19:33:49 Speuler: /usr/local/share/gforth/0.5.0/arch/386/disasm.fs 19:33:49 Speuler: /tmp/fsock-sh-server.request.tmp 19:34:17 no harm intended 19:35:00 was executing os commands as root already :) 19:36:07 but gforth seems really cryptic 19:36:25 the one-line limit doesn't help 19:36:43 Actually, it is all you need. 19:36:50 gforth knows (as many forths) many system-specific words 19:36:58 touch blah 19:37:02 cat blahblah >> blah 19:37:05 cat blahblah >> blah 19:37:07 blah 19:37:16 Each of those can be implemented in a single GForth command. :) 19:44:31 gforth: s" /etc/passwd" r/o open-file . here 1000 2 over read-file drop here swap type close-file . 19:44:35 Speuler: in file included from *the terminal*:-1 19:44:36 Speuler: /tmp/fsock-sh-server.request.tmp:46: Invalid memory address 19:44:36 Speuler: s" /etc/passwd" r/o open-file . here 1000 2 over read-file drop here swap type close-file . 19:44:36 Speuler: ^^^^^^^^^ 19:44:36 Speuler: Backtrace:0 19:45:50 gforth: s" /etc/passwd" r/o open-file . here 1000 2 pick read-file drop here swap type close-file . 19:45:53 Speuler: 0 root:x:0:0:root:/root:/bin/bash 19:45:54 Speuler: daemon:x:1:1:daemon:/usr/sbin:/bin/sh 19:45:54 Speuler: bin:x:2:2:bin:/bin:/bin/sh 19:45:54 Speuler: sys:x:3:3:sys:/dev:/bin/sh 19:45:54 Speuler: sync:x:4:100:sync:/bin:/bin/sync 19:45:55 Speuler: games:x:5:100:games:/usr/games:/bin/sh 19:46:11 Dude, you're going to get banned from this channel... :) 19:46:19 why ? 19:46:46 Why not? You're looking into a server's configuration files and whatnot. 19:46:53 t'is harmless what i'm doing ... 19:46:58 Doesn't matter. 19:47:14 When the owner of that machine finds out what's going on, and who's doing it, he'll flip. 19:47:19 t'is a public service 19:47:36 The gforth bot is a public service, maybe, but the machine it's running on is private property. 19:47:52 i'm only using the bot 19:47:57 OK, suit yourself. 19:48:18 thank you 19:48:30 Don't say I didn't warn you though... :) 19:48:58 on all the colorforth instructions ive written in NASM macros, only *+ is missing 19:48:59 no i won't no say you did 19:49:06 and its about 170 bytes 19:49:39 about 175 with that instruction included 19:54:16 when the .asm will be approved by chuck moore ill release it somewhere 20:05:12 hello 20:06:51 --- join: njd (junk@njd.paradise.net.nz) joined #forth 20:18:46 im going to sleep now, btw once I will know how all the primitives work ill make a TI-83 (Z-80) version of this virtual machine and a GameBoy Advance (ARM7 32 bits processor) version also, one for each console and processor! the convergence I was waiting for is near ;pppppp 20:18:46 --- quit: BigBoyToddy (Read error: 104 (Connection reset by peer)) 20:19:06 see ya everyone 20:19:07 --- quit: CrowKilr ("User pushed the X - because it's Xtra, baby") 20:20:10 --- quit: njd ("subaru tecnica international | nissan motorsports international") 20:51:56 --- quit: joa (Read error: 104 (Connection reset by peer)) 20:53:07 gforth: 1 2 + . 20:53:44 bot dead ... 20:55:51 YAY! My block editor is almost complete! And it works wonderfully well. 20:56:02 It's *mostly* ANSI too, so it's pretty reasonably portable. 20:56:33 --- join: joa (~james@113-124-237-24.anc-dial.gci.net) joined #forth 20:56:39 The code is ugly, but it's a quick hack that decided to become a full-blown editor. :) 20:56:59 Plus, the source code itself is designed to fit in blocks as well. 21:03:53 --- join: GilbertBSD (~gilbert@max1-10.dacor.net) joined #forth 21:08:53 --- nick: kc5tja -> kc-food 21:09:23 gforth: 1 2 + . 21:09:26 Speuler: 3 21:09:31 bot alive again ... 21:10:29 --- quit: Soap` () 21:32:03 --- nick: kc-food -> kc5tja 21:32:28 --- join: Soap` (flop@210-54-74-160.dialup.xtra.co.nz) joined #forth 21:42:58 --- nick: GilbertBSD -> gilbert[movie] 21:43:03 --- part: gilbert[movie] left #forth 23:12:17 --- join: gilbert[movie] (~gilbert@max1-10.dacor.net) joined #forth 23:12:25 --- nick: gilbert[movie] -> GilbertBSD 23:12:38 hullo 23:16:55 --- part: Speuler left #forth 23:18:26 hey anyone up? 23:21:20 Yup 23:21:24 At least for a short while. 23:22:40 I think my block editor is done, at least as far as ANSI portability will allow it to be done. 23:23:01 does forth have pointers? 23:23:05 The two features it's missing are the ability to insert blocks and to delete whole blocks. 23:23:24 Forth, actually, only works with pointers. 23:23:34 @ and ! are, in BASIC, PEEK and POKE, respectively. :) 23:24:09 g4 VARIABLE FOO FOO .S 23:24:13 kc5tja: <1> 1075037712 23:24:57 that refers to the address of foo no? 23:24:58 g4 VARIABLE FOO ." 0x" HEX <# # # # # # # # # #> ." is FOO's address." 23:25:02 kc5tja: in file included from *the terminal*:-1 23:25:02 kc5tja: /tmp/fsock-sh-server.request.tmp:1: Invalid memory address 23:25:02 kc5tja: VARIABLE FOO ." 0x" HEX <# # # # # # # # # #> ." is FOO's address." 23:25:02 kc5tja: ^ 23:25:02 kc5tja: Backtrace: 23:25:06 Yes. 23:25:16 Hey....WTF is this? I *KNOW* GForth has the # word... 23:25:21 * kc5tja uses it all the time. 23:25:44 Oooh...forgot to push FOO's address on the stack. 23:25:52 g4 VARIABLE FOO FOO ." 0x" HEX <# # # # # # # # # #> ." is FOO's address." 23:25:56 kc5tja: in file included from *the terminal*:-1 23:25:57 kc5tja: /tmp/fsock-sh-server.request.tmp:1: Invalid memory address 23:25:57 kc5tja: VARIABLE FOO FOO ." 0x" HEX <# # # # # # # # # #> ." is FOO's address." 23:25:57 kc5tja: ^^ 23:25:57 kc5tja: Backtrace: 23:26:16 g4 VARIABLE FOO FOO S>D ." 0x" HEX <# # # # # # # # # #> ." is FOO's address." 23:26:19 kc5tja: 0xis FOO's address. 23:26:28 g4 VARIABLE FOO FOO S>D ." 0x" HEX <# # # # # # # # # #> TYPE ." is FOO's address." 23:26:31 kc5tja: 0x4013C610is FOO's address. 23:26:35 There... ;D 23:26:55 * kc5tja keeps forgetting that S>D is needed before the raw number output words. 23:27:42 Did I confuse you at all, or does that help? 23:27:56 g4 create myarray 20 allot .s 23:27:59 GilbertBSD: <0> 23:28:18 thanks for the foncusion. 23:28:27 what is so great about pointers? 23:29:08 Everything. 23:29:12 They're the reason computers work at all. 23:29:26 A pointer is a number that tells the computer where to fetch from or store to. 23:29:49 eg ... 23:30:12 20 variable doner ! 23:30:42 If your computer has 256MB of memory, for example, it has 268435456 individual storage elements (bytes) that can hold useful data. 23:31:16 The above code won't work because VARIABLE doesn't push anything onto the stack. 23:31:25 okay I figured it out. 23:31:25 It'd be written like this: variable doner 20 doner ! 23:31:44 yes I guessed. 23:31:47 :) 23:31:48 now when I type doner ... 23:31:58 I get a number that has nothing to do with 20. 23:32:01 is that the pointer? 23:32:04 Yes. 23:32:11 it is not the address is it? 23:32:17 Yes, it is. 23:32:21 The address of something is its pointer. 23:32:27 pointer address = ? 23:32:31 -1 23:32:32 :) 23:32:34 (true) 23:32:38 indeed. 23:33:16 g4 variable doner 20 doner ! doner .s doner @ 23:33:18 GilbertBSD: <1> 1075037720 23:33:52 okay that number means the address of doner is its pointer 20 is that right? 23:34:01 g4 variable doner 20 doner ! doner .s doner @ .s 23:34:04 GilbertBSD: <1> 1075037720 <2> 1075037720 20 23:34:22 1075037720 is the address of doner; 20 is what's stored there. 23:34:38 and whither lieth the pointer in all this? 23:34:44 ?? 23:35:18 1075037720 is the pointer of doner; 20 is what's stored there. 23:35:20 is that right? 23:35:24 Correct. 23:35:40 address and pointer are synonyms 23:35:44 Yes. 23:35:51 just like Oedipus and mofo are synonyms? 23:35:59 Pretty much. 23:36:16 okay. 23:36:26 why don't they present it in the same manner in c? 23:36:33 Now, pointer, as used in C, is a variable that holds the address of some other entity. Still pretty much the same thing, but used differently. 23:36:46 Largely because in C, everything must have a name. 23:36:56 nameless storage. 23:37:57 So, in C, "int i;" literally says, "There is an integer called i." The programmer doesn't know nor care where it's stored; all he knows is it's an integer, and it's called i. 23:38:05 If you want to take the address of i, you would write &i. 23:38:25 To store that address in a variable, you need to declare a "pointer to an integer," also with some name. 23:38:29 and in forth you would right I ! 23:38:35 Right. 23:38:44 wait is that right? 23:38:54 Well, to get I's address, you just write I. 23:38:55 :) 23:38:57 i ! stores ... i @ fetches and i reveals the address. 23:39:04 right. 23:39:22 (keep in mind that i is actually the same as R@ in Forth; it's better not to use 'i' in Forth examples) 23:39:26 --- join: BigBoyToddy (~BigBoyTod@co-trinidad1a-22.lbrlks.adelphia.net) joined #forth 23:39:44 yes yes. C encourages the use of i j k 23:39:54 hi 23:39:58 re BigBoyToddy 23:40:02 ih yddotyobgib 23:40:06 :) 23:40:12 backasswards 23:40:19 Do you have a typing filter here? 23:40:27 sdrawssackab .. 23:40:29 Yup. And that's fine for sufficiently "close" definitions (e.g., if it's defined, used, and disposed of within the same page of code, then it's more or less OK.) 23:40:31 epon 23:40:45 You just do that well on your own with individual words, well done! 23:40:54 :D 23:40:59 You remind me of someone on the BeOS BeShare server system, he could do that also! 23:41:04 it is easy when you can see the word. 23:41:08 Heheh :) 23:41:29 #include 23:41:29 int main (int argc, char *argv[]) 23:41:29 { 23:41:29 if ( argc > 1 ) { 23:41:29 char *ptr = argv[1] + strlen(argv[1]); 23:41:30 while ( ptr >= argv[1] ) { 23:41:32 printf("%c", *ptr); 23:41:34 ptr--; 23:41:36 } 23:41:37 * kc5tja is pleased to note his block editor consumes only 4995 bytes under GForth. :D 23:41:38 printf("\n"); 23:41:40 } 23:41:42 return ( 0 ); 23:41:44 } 23:41:46 OUCH, sorry to put C up so quickly. 23:41:48 How would you do that in FORTH? 23:41:52 hehehe. 23:41:56 Hold...let me try. 23:41:59 I fink we were just talking about it. 23:42:27 Good timing, GOD has interesting ways to bring people together at weird timing intervals. 23:42:37 First of all, what does it actually do? Is it the string reversal program? 23:42:47 Yes, it reverse stuff 23:43:05 OK. And it leaves the original string unmodified. 23:43:17 beos1 /boot/home $ ~/bin/backwards "Hi there, how are you doing?" 23:43:17 ?gniod uoy era woh ,ereht iH 23:43:35 Yes, it just puts the string in reverse order to standard out. 23:44:22 ssueg I yako 23:44:29 :o) 23:44:34 (o: 23:44:51 beos1 23:45:03 Yes, the name of the host that I'm using, I have many BeOS machines. 23:45:12 : Reverse ( caddr u -- ) 1- BEGIN DUP -1 > WHILE 2DUP + C@ EMIT 1- REPEAT 2DROP ; 23:45:16 That is the OS that I refer. 23:45:17 BigBoyToddy: you probably don't care, but printf("%c", x) is more efficiently done putchar(x) 23:45:30 deltab: yes, thanks, I do. 23:45:32 :o) 23:45:41 g4 : rvs 1- begin dup -1 > while 2dup + c@ emit 1- repeat 2drop ; S" This is a test" rvs 23:45:45 kc5tja: tset a si sihT 23:46:00 also, putchar('\n') 23:46:12 deltab: I have been programming C for 12 years, you are right. 23:46:19 :o) 23:46:24 heh 23:46:25 BigBoyToddy: Did you see my solution? 23:46:32 kc5tja: yep, going to try it. 23:46:39 It works with gforth here. 23:47:13 : rvs 1- begin dup -1 > while 2dup + c@ emit 1- repeat 2drop ; ok 23:47:13 S" This is a test" rvs tset a si sihTok 23:47:18 Works here with PFE 23:47:23 Nice work, you are a FORTH GOD! 23:47:37 Wow. I just replaced a 16 line C program with a single line in Forth. :D 23:47:49 This, BTW, is why I've decided to implement Dolphin in Forth instead of in C. 23:48:00 --- join: davidw (~davidw@ppp-225-17.25-151.libero.it) joined #forth 23:48:00 Dolphin? 23:48:06 Dolphin is an operating system I'm writing. 23:48:12 oooh 23:48:24 To replace Linux as my desktop of choice. Highly inspired by AmigaOS. 23:48:41 do you have the AmigaOS source? 23:48:47 Nope. 23:48:56 If it is anything like this guys ability to understand and hack FORTH, man it should be good if not great! 23:49:01 is the line of forth code callable as a program? 23:49:04 But I have developed software for AmigaOS in the past, and have all the developers materials for it. 23:49:39 kc5tja: BTW, what bridge/glue software is there to the xlibs? 23:49:47 or motif? 23:50:00 BigBoyToddy: I am interested in the answer too . 23:50:16 or are you going to write it yourself? 23:50:25 (from forth, gforth in particular) 23:50:26 * GilbertBSD holds his breath 23:50:33 deltab: As such, no. That facility is highly Forth environment dependent. For example, in pygmyForth, you'd have to write another colon definition : InitialWord COMMAND-LINE rvs ; and then change the initial word pointer to InitalWord, then save a new image. 23:50:35 (drum roll please) 23:51:11 Dolphin will not use X11; it will have its own native GUI. 23:51:24 can it use any video card? 23:52:14 Dolphin, strictly speaking, is a microkernel, so all that stuff exists as user-level software. The driver for a particular video card is a user-space daemon. It'll ship with a bone-stock VGA driver, but I can't do much more than that, as I just plain lack resources. 23:52:27 kc5tja: then it surely will be VERY fast, which is another great choice of yours! Nice work! 23:52:48 kc5tja: you continue to impress me, is there an ETA on DOLPHIN? 23:53:34 Yes, the message passing overhead will be highly optimized. I've alread prototyped the message passing subsystem in the past, and while not as fast as AmigaOS's (because of some copying required by memory protection issues), it's also at least an order of magnitude faster than any other Linux IPC mechanism. 23:53:38 kc5tja: make sure to write a driver layer/kit that allows easy implementation of inspection and also core driver model so folks can write there own. 23:54:24 BigBoyToddy: No; Dolphin is something I'm writing in my spare time, and real-life, unfortunately, keeps getting in the way. I wanted to be done with Dolphin about this time (I said that four years ago, back when the specs for Dolphin 0.5 were first being written). *sigh* 23:54:42 However, it is hoped that changing from C to Forth will allow me to write a version of Dolphin in a substantially shorter period of time than I have in the past. 23:54:49 kc5tja: where are the specs of the system then and now, you have a history page for it? 23:55:06 BigBoyToddy: The kernel doesn't have anything to do with drivers, as that's all user-space stuff. :) 23:55:30 BigBoyToddy: The old specs are gone, the new specs exist on my Linux box (currently in storage), and no, in that order. :) 23:56:02 Note that the "new" specs were written back when I was going to use C, and so, all the examples are written in C. This is OK; the specs are only designed to convey meaning, and not implementation. 23:56:03 kc5tja: thanks, I understand that, but to write a layer above the kernel/os to facilitate the writing of drivers is what I'm talking about. You say then that you are only doing the OS, and the user space stuff is somebodys problem, not yours. 23:56:45 kc5tja: that is fine, as soon as you have them out of storage, it would be great to read up on DOLPHIN. Until then, I'll listen and wait. 23:56:54 BigBoyToddy: Well, yes and no. There's no way I can cover *everything* in an OS. I want something that boots and is useful, and I will provide the essentials for doing that. Clearly, adequate documentation will be provided to allow others to develop their own enhancements to the OS. 23:57:54 Like Chuck, I'm a minimalist; unlike Chuck, I feel that a native Forth doesn't quite go far enough for my needs, since I need multitasking, the ability to load and unload software dynamically, etc. 23:58:08 kc5tja: fantastic, I'm glad you have intent to help others make it more than it would be otherwise. Oh, and now I have to share. I ordered up a couple more FORTH books, finishing reading the FORTH fundamentals book, which is good, and also the FORTH for Professionals book, excellent! I will put up my FORTH books page in short order, I think I have 12-13 now, and another 2-5 coming, depending on sellers intent. 23:58:55 Cool. 23:59:06 kc5tja: dynamically loaded modules like mach IMHO is very important to dynamic system building. I have done Mach programming under NeXTStep and OpenStep since 1990, and it along with dynamic binding is very important to flexible system design and implementation. That said, I am glad you are doing what you are doing. 23:59:42 It leads to behaviour based system design, which to me reflects that which most customers want, something that reflects the dynamic nature of their business model. 23:59:59 --- log: ended forth/02.05.07