00:00:00 --- log: started forth/05.01.08 00:10:41 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 00:13:54 --- quit: SeaForth ("Leaving") 00:16:41 --- join: SeaForth (~SeaForth@c-24-1-126-202.client.comcast.net) joined #forth 00:18:23 --- quit: SeaForth (Remote closed the connection) 00:18:35 --- join: SeaForth (~SeaForth@c-24-1-126-202.client.comcast.net) joined #forth 00:20:57 --- quit: SeaForth (Remote closed the connection) 00:21:01 --- join: SeaForth (~SeaForth@c-24-1-126-202.client.comcast.net) joined #forth 00:52:01 --- join: p-Imperator (CapStone@cs24160141-160.satx.rr.com) joined #forth 01:09:19 --- quit: Testament (Read error: 110 (Connection timed out)) 01:16:11 --- quit: dgd_ ("Dosvydanya....") 02:21:23 I suspect most here have implemented their own FORTH systems? 02:21:57 I think so, yes 02:21:59 * crc has implemented Forth six times (RetroForth is the sixth) 02:22:15 * crc has to go to work in a couple minutes :( 02:22:19 ok. 02:22:22 Six is probably close to my count as well, but I haven't counted. 02:22:25 crc: :( 02:23:01 I'll try to be here a bit this afternoon (I only have to work 5 hours today), but I've been pretty sick 02:23:14 Just a thought, and I'm pleased. I was reading the source to atlast, a nice minimalist forth from autodesk folks. Open Source code, pretty clean. Anyway, it is funny cause the system he used basically is the same as that I used for SeaFORTH. I am pleased to know that what I did intuitively isn't too far off base in reality. 02:23:32 I remember ATLAST 02:23:56 The nicest usable Forth-in-C that I've seen 02:23:57 crc, hope you feel better, take care, happy working. As a side note, I watched Blue Velvet with my GF this evening, she thought it was twisted. I have watched it now about 28 times :) 02:24:06 crc, it is clean, and simple. 02:24:51 * crc has thought about doing a retroforth in C 02:25:30 Perhaps I should attempt it now that I've got the low-level x86 one working quite nicely 02:26:11 Its nice in SeaFORTH to have the power of Sensetalk doing a LOT of stuff, like allowing a string to be evaluated... "3 + 4 * 5" value -> 35 02:26:38 I also allow shell access thru the shell word 02:26:45 I liked that movie. 02:27:15 Robert, yah it is a really wicked cool sicko movie :) Issabella Rosellini is perfect, and so is Dennis Hopper. 02:27:22 I'm thinking about implementing a good Forth for scripting in e.g. C programs. 02:27:53 It's a bitch to write a new parser/interpreter for every project. 02:27:57 Robert, that would be cool. 02:28:14 you write a new parser/interpreter for every project?? 02:28:29 well, back to reading the code of the atlast project. I'm happy I wasn't completely off in my design/implementation 02:28:40 * SeaForth thinks Robert is a massochist 02:29:32 * SeaForth wants to build his own FORTH system to do embedded IO to the Mac GUI layers, and have it available on any project, thus making the primatives, the bridge layers OpenSource and my private 'power tools' proprietary and money making :) 02:30:59 I can only hope I get it done sometime before I die. 02:31:23 for those interested... atlast. http://www.fourmilab.ch/atlast/ 02:32:37 Robert: ATLAST can be embedded as a scripting language in C programs IIRC 02:33:22 it is specialized in doing so, I just wrote my own 3dup primative in about 30 seconds, and taking it into a main loop, compiling and linking, running in about 1 min. 02:33:48 The overhead for the call to the atlast interpreter is about 4Kbytes in size, the total size with -O4 turned on was about 64K using PPC 7455 CPU 02:34:03 I suspect the footprint on x86 is indeed 20-28K as the author of atlast claims. 02:34:32 That's the low end on the scale. It's about 48k with everything built in 02:34:42 yah, I suspect that is about right. 02:34:47 Still not bad for a C-based implementation 02:35:07 here is a C code main.c that will run as a CLI front-end to the interpreter 02:35:08 #include 02:35:08 #include "atlast.h" 02:35:08 main() 02:35:08 { 02:35:08 char t[132]; 02:35:10 atl_init(); 02:35:12 while (printf("-> "), fgets(t, 132, stdin) != NULL) 02:35:14 atl_eval(t); 02:35:16 return 0; 02:35:18 } 02:35:40 Hmm 02:35:42 You can see it just loops getting a buffer of 132 chars and then calls atl_eval(t) on that char buffer. 02:36:00 I like a bigger buffer ;) 02:36:12 so do I, but that was maybe his mental state when he wrote it. 02:36:17 I would 256 or even 512 chars. 02:36:24 Maybe even 1024 for yucks. 02:36:33 In rf8, I use 512 chars (1 block) 02:36:37 Unless it is a micro device, I can't imagine 1K bytes is that big a deal. 02:36:40 In rf7, I used 1k 02:36:58 --- join: onetom (~tom@82.131.157.242) joined #forth 02:37:09 (mainly because half of that space was used for the stack until recently...) 02:37:50 the interesting thing that I see for micro embeddable forths is the use in nanobots. 02:38:45 wouldnt' that be fun to unleash say 20 million SeaFORTH nanobots into a human to do some repairs and upgrades on their biology :) Say a little DNA restructuring? 02:39:11 No. 02:39:21 * crc doesn't deal with modifying DNA 02:39:26 Too risky ;) 02:39:28 * SeaForth was kidding seriously. 02:39:32 I know 02:39:54 I'd rather restructure my own and live to write about it before I would do it to others. 02:40:08 20 million Forth nanobots could be useful in other areas though... 02:40:56 Yah, like spying, surgery of joints, so forth, lots of applications. 02:41:00 * crc would like to send them to the depths of the ocean, have them collect data, then recover them later to learn about life at the deepest depths 02:41:32 crc, that would be kinda cool, to have a nanabot modeled as a plankton and then report back to us occasionally. 02:41:37 yeah 02:41:50 now, that would be very cool. 02:41:58 heck, I could get a PhD doing such work. 02:42:03 and maybe make a bazillion bucks too. 02:42:03 yup 02:43:33 Robert, the documentation .rtf of atlast is the most extensive, well written and thought out FORTH docs I have ever read. You will enjoy it. 02:45:51 I like how atlast has the basic functionality of a system modularized and easy to in/exclude in the atlast.c file. He did a wonderful job in making it clean, simple to follow and configure to a particular need. 02:46:43 it's a shame that ATLAST was never used in AutoCAD 02:46:56 It beats AutoLisp easily 02:47:03 And now I have to leave 02:47:08 By all! BBL 02:47:12 --- quit: crc ("Leaving") 02:48:32 yah, the sales pitch of the author of atlast says that the benefits of code size are in the orders of 1 magnitude and the speed is about 60-70 times faster. 02:50:40 Documentation for what? 02:51:00 Documentation for atlast, the forth I have been talking about. 02:51:31 btw, the size of a completely enabled atlast compile is apparently 51K. Mine on the PPC prior to being stripped was about 82K and when stripped with -O4 it was about 62K. 02:51:46 About a 15% increase in executable size. 02:52:13 Ah, I see. 02:52:18 A testiment to the fact that most of the code the primatives are written in are just function pointers and pretty standard in size. 02:52:23 I didn't see the "atlast". 02:52:31 ah, my fault I should quote it. 02:52:55 You were not talking about writing an embeddable C -based FORTH. I think atlast is what you may want to look at. 02:53:25 Actually I was thinking about making it in assembly language and provide C handles. 02:53:38 But an all-C Forth, even though it's ugly, might work as well. Thanks. :) 03:00:39 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/57819 03:00:55 there you have atlast embedded into Ruby to allow Ruby to act much like FORTH. 03:01:09 I know nothing of Ruby, other than it is heralded as a kitchen sink language that was done 'right' 03:02:31 Heh :) 03:02:57 How about python then? 03:03:00 actually what he does, is quite the same as that in the C example. He created a Ruby class called, whatelse Atlast. 03:03:19 Then returns a instance of it with .new. Then just sends streamed buffers to it and expects return values. 03:03:29 I suspect doing the same for Python would be very simple. 03:03:41 However, I'm not a Python guy, evaluated it in 1994, and didn't like it. 03:04:45 I'm not using Python either. 03:04:51 But I heard a lot of people like it. 03:04:57 and I don't know if you have seen this, but it is pretty extensive in FORTH information. http://grail.cba.csuohio.edu/~somos/forth.html 03:05:36 PyObjC is popular and so is RubyObj in the MacOSX arena. I suspect they all have a place, as does forth. 03:05:36 Cool site 03:05:48 Yah, that site is pretty extensive and overwhelming actually. 03:06:01 * SeaForth could spend days there and get nothing done :) 03:08:13 --- quit: onetom (Read error: 110 (Connection timed out)) 03:09:01 just wondering if there is a definitive CD series (iso images are great) of FORTH stuff online. I would like to have it archived locally for prosterity. 03:19:20 is there a fig or ANS data stack state side effect definition upon a unknown/defined word being encountered? 03:19:38 I see some forths keep the state of the stack and others clear the stack. 03:19:41 --- join: bbls (~bbls@80.97.121.133) joined #forth 03:20:07 Yeah, I've noticed that as well. 03:20:11 hi Robert 03:20:15 I prefer it when the stack is kept. 03:20:17 Hi bbls :) 03:21:30 I would like to see it as an option, for debugging/production offerings. 03:22:05 I don't see the purpose of it in deployed products. if the code is buggy and logging isn't going on, then stack results IMHO don't matter anyway. 03:22:31 does anyone knows a good proof-carrying system? 03:22:49 * SeaForth messes around with PGForth, funny to be running bashforth, PGForth, I'm looking for a ruby forth other than that which I just referenced. 03:23:58 http://search.cpan.org/dist/PGForth/ 03:47:02 --- quit: bbls (Read error: 54 (Connection reset by peer)) 03:47:12 --- join: bbls (~bbls@80.97.121.133) joined #forth 04:41:20 --- join: Topaz (~top@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 05:44:37 --- quit: Jim7J1AJH (Read error: 110 (Connection timed out)) 05:48:19 --- join: Jim7J1AJH (~jim@usen-221x115x224x2.ap-US01.usen.ad.jp) joined #forth 07:06:01 --- join: onetom (~tom@82-131-154-204.vnet.hu) joined #forth 07:14:29 --- join: tathi (~josh@pcp01375108pcs.milfrd01.pa.comcast.net) joined #forth 07:44:28 --- join: tathi_ (~josh@pcp01375108pcs.milfrd01.pa.comcast.net) joined #forth 07:46:05 --- quit: tathi (Nick collision from services.) 07:46:10 --- nick: tathi_ -> tathi 07:52:16 --- quit: onetom (Remote closed the connection) 08:20:17 --- join: Purdue (YNIX@12-222-128-22.client.insightBB.com) joined #forth 09:59:08 --- join: crc (~crc@pool-70-20-145-113.phil.east.verizon.net) joined #forth 09:59:15 --- mode: ChanServ set +o crc 09:59:24 Hi all 09:59:28 hi crc 09:59:40 Hi 09:59:52 Hi bbls, Robert 10:13:40 * crc is working on his block editor 10:14:52 := 10:14:53 :) 10:14:57 Fun 10:15:01 it is 10:15:28 We need to find a rich Forther and make him produce Forth computers for us. 10:15:33 The editor is nice, especially after implementing herkamire's suggestions 10:15:43 Which are..? 10:15:48 Robert: we just need a decent ForthOS and x86 ;) 10:15:58 Changes to some of the editing words: 10:16:04 " foo" 0 i 10:16:05 Hah. 10:16:06 No. 10:16:08 became: 10:16:12 0 i foo 10:16:14 Forth is small, so make the hardware small. 10:17:52 Robert: define Forth. 10:17:59 Forth can be small, or large 10:18:07 Or medium ;) 10:18:22 Forth is whatever we make it. 10:19:05 But the Forth philsosophy isn't about using huge, power-hungry hardware for simple tasks. 10:19:12 True 10:20:08 But until you find a rich person to finance development of a low-cost stack computerm, we're stuck with what we've got. 10:20:33 Yeah 10:20:35 You're right 10:20:39 My junk box is full of stuff 10:24:15 --- quit: bbls (Read error: 104 (Connection reset by peer)) 11:02:50 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 11:32:24 --- quit: Purdue (Remote closed the connection) 11:37:27 --- quit: tathi ("leaving") 11:44:13 --- join: Testament (CapStone@cs24160141-160.satx.rr.com) joined #forth 11:44:13 --- quit: p-Imperator (Read error: 104 (Connection reset by peer)) 11:56:07 --- join: p-Imperator (CapStone@cs24160141-160.satx.rr.com) joined #forth 11:56:07 --- quit: Testament (Read error: 104 (Connection reset by peer)) 12:04:57 --- quit: Robert ("Night") 12:11:44 --- join: bbls (~bbls@80.97.121.133) joined #forth 13:24:17 --- quit: bbls (Read error: 104 (Connection reset by peer)) 14:30:47 --- quit: warpzero ("Lost terminal") 14:31:25 --- join: warpzero (~warpzero@wza.us) joined #forth 15:30:58 --- quit: Frek (Remote closed the connection) 15:55:22 --- quit: qFox ("this quit is sponsored by somebody!") 16:34:26 in which case $1500 is not a big deal 16:34:51 ? 16:34:57 wrong window 16:35:03 ok 17:25:13 --- quit: Topaz (Remote closed the connection) 17:31:56 how do I pipe stderr? 17:32:30 ./foo 2> bar.txt 17:32:33 2> 17:33:32 --- join: segher (~segher@p0273.nas1-asd6.dial.wanadoo.nl) joined #forth 18:02:13 bbl 18:02:50 tschuess 18:18:23 --- join: I440r_ (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 18:27:10 --- join: Testament (~CapStone@216-110-82-203.gen.twtelecom.net) joined #forth 19:01:40 yeah, I can redirect it. I want to send stderr to another program like less 19:01:53 ./foo 2| less doesn't seem to work 19:02:29 ./foo 2>&1 | less 19:02:37 but that also sends stdin 19:03:02 yeah, that's what I ended up doing 19:03:18 dunno why, but somehow I can seem to remember that garbage 2>&1 19:03:21 ./foo 2>&1 >/dev/null | less if you just want to drop stdout 19:03:51 it's not garbage, it's just gibberish :-) 19:06:38 heh 19:25:03 Herkamire: there are some tricks: 19:25:08 ./a.out 3>&1 1>&2 2>&3 | less 19:25:29 less will only show stderr, stdout works as normal 19:25:39 * crc goes to bed; goodnight all 19:30:03 --- join: segher_ (~segher@p0282.nas4-asd6.dial.wanadoo.nl) joined #forth 19:33:36 --- quit: Testament (Read error: 60 (Operation timed out)) 19:41:12 --- quit: segher (Read error: 110 (Connection timed out)) 19:52:11 --- nick: segher_ -> segher 20:44:26 good god 20:46:27 what's wrong? 21:07:23 --- join: Testament (CapStone@cs24160141-160.satx.rr.com) joined #forth 21:24:36 --- quit: p-Imperator (Read error: 110 (Connection timed out)) 22:36:10 --- quit: segher (Read error: 60 (Operation timed out)) 22:52:48 --- quit: Herkamire ("leaving") 23:59:59 --- log: ended forth/05.01.08