00:00:00 --- log: started forth/04.07.25 00:00:03 ayrnieu: i'm building an extensions framework for ficl forth (ficl.sf.net) 00:00:24 ayrnieu: and the sockets words use standard unix/bsd sockets 00:00:43 albeit dumbed down, so you don't have to spend 400 lines fucking with structures just to do a name lookup 00:04:51 Mixed precision arithmetic rules! 00:05:04 C sucks! 00:05:23 and arbitrary precision rules totally 00:06:16 I just use integers ;-) 00:06:30 And C can be good for some things 00:07:18 well, as the mathematician Kronecker once said, "God made the integers, all else is the work of man' 00:07:53 :-) 00:08:12 * crc likes integer math 00:08:31 * aum likes integer math, especially bigint math 00:08:52 Bigint = 64bit? 00:09:06 no - bigint is n-bit, where n is an integer 00:09:11 bignums, yes. 00:09:21 I just uses 32 bit integers 00:09:24 * aum adds a to-do item to write word prims for bignums 00:09:50 aum - the FSL has a (somewhat poor) bignum implementation. 00:09:51 crc: how long would it take you to generate an RSA keypair, using only 32-bit ints? 00:10:06 I have no idea 00:10:07 FSL? 00:10:22 I don't use RSA, am not familiar with the algo's, etc 00:10:45 crc: suffice to say, RSA is painful and mind-mincing without bignum primitives 00:10:56 Ok 00:11:16 32 bit is not enough. 00:11:25 Why not? 00:11:35 32 bits is 10 digits. 00:11:35 can be cracked in, like, 5 minutes 00:11:54 10 digits is not enough. 00:12:02 decent RSA these days needs more like 8192 bits 00:12:24 another integer challenge - generate a 1000-digit random prime number 00:12:30 I don't write my own encryption tools, so larger integers don't affect me 00:12:31 Sometimes you need 6 more digits for calculations. 00:12:41 And 4 digits is not a precision. 00:12:56 It is a non-precision. 00:13:22 32 bits = 10 digits as you stated :-) 00:13:22 or, 'find the first 10-digit prime number that occurs in the digits of e' 00:13:35 * aum looks for nice, simple, multiplatform bigint libs 00:13:39 crc - you'll want to specify a base. 00:13:46 aum - the FSL has one, then. 00:13:54 what's the 'FSL'? 00:13:57 Bases = 2, 8, 10, 16, 256 00:14:01 Forth Scientific Library. 00:14:10 ayrnieu: multiplatform? 00:14:25 aum - yes. 00:14:50 FSL is not good. 00:15:07 It lacks many of useful (to me) routines. 00:15:34 http://www.taygeta.com/fsl/sciforth.html 00:15:35 Maybe it is good for EEs, but not for scientists. 00:16:36 At least this had been last time I looked at it. 00:22:43 * crc doesn't need big integers for the work I'm doing 00:23:21 Well, I'd be quite satisfied with 64 bits. 00:23:37 It is 20 digits. 00:24:04 I'll add 64 bits to RetroForth once I get a 64 bit computer :-) 00:24:05 This is quite enough. 00:24:31 10 digits is enough for me right now 00:24:33 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 00:24:40 * ASau knows how to double cells. 00:24:49 Double cells? 00:25:01 Make them twice as big? 00:25:11 * ASau is numeric wizard. 00:25:14 Yes. 00:25:52 That would require a massive overhaul of the RetroForth codebase 00:26:06 --- join: tgunr (~davec@vsat-148-63-4-106.c001.g4.mrt.starband.net) joined #forth 00:26:35 Most of the routines assume a 32-bit cell size 00:27:02 I'm back 00:27:06 I missed some fun 00:27:23 : stars 0; 1- star ; 00:27:31 At the least, I'd have to update all of the math words, variables, constants, >number, and CREATE 00:27:32 I need only: 0 0= 0< + XOR OR AND NOT 00:27:42 hi crc :) 00:27:43 And two-complement machine. 00:27:51 Hi Herkamire 00:28:01 : stars 0; 1- star stars ; 00:28:01 RF doesn't have XOR OR AND 00:28:07 Labas ritas, Herkamire! 00:28:12 hi ASau 00:28:21 : stars 0; 1 - '* emit stars ; 00:28:36 I also don't have 0= or 0< 00:28:48 crc: yeah :) your code in the scrollback I just read printed n+1 stars 00:28:59 Oops 00:29:12 you had the 0; at the end 00:29:18 Right 00:29:25 so eg 0 stars would print one 00:29:33 I just wrote it and posted without testing ;-) 00:29:40 :) 00:29:41 crc, what do you have then? 00:29:45 we all seem to do that. 00:29:49 my first one was wrong 00:29:56 I love 0; 00:30:03 Hmm, I did the same thing in my implementation of REPEAT 00:30:05 * crc sighs 00:30:20 it's important to note that it does not drop unles TOS is zero 00:30:35 I know. 00:30:35 I missed that 00:30:52 Mine leaves TOS alone unless TOS=0, then it drops it ;-) 00:30:57 right 00:31:03 that is what I find I want most of the time. 00:31:13 I do have another word that drops reguardless, but I don't use it much 00:32:12 I still like it better than "0if ; then" 00:32:35 : star '* emit ; : star-printer: >r : r> 0 ?do ['] star compile, loop postpone ; ; 5 star-printer: **** 100 star-printer: sky-of-stars 00:33:55 ayrnieu: huh? 00:34:20 Herkamire - I create words that print N-stars without looping. 00:34:29 in a silly manner, sure. 00:34:42 looks to me like you redefined r> 00:34:57 no, I didn't do that. 00:35:12 then how do you explain the " : r> " 00:35:21 I explain it in context, of course. 00:35:47 ??? 00:35:47 oh, I get it 00:35:57 I don't get it 00:36:26 crc - do you know how the outer interpreter makes use of STATE ? 00:36:40 I didn't realize you could compile a call to : 00:37:16 ayrnieu: why do you need >r and r> ? 00:37:31 ayrnieu: in RetroForth a : within a definition creates a new entry point into the word 00:37:48 crc: right. that was my assumption the first few times I read it 00:38:01 Herk - because >r and : and r> all happen at runtime, there. 00:38:05 crc: in his forth : is a normal word, which gets called when you call star-printer 00:38:13 Ok 00:38:22 That's odd behaviour in my view 00:38:27 so when you call star-printer: it defines a new word 00:38:30 it's ANSI Forth =) 00:38:39 * crc dislikes ANSI 00:38:57 ayrnieu: I know they happen at run time. why do you need them? does : effect the return stack? 00:39:07 this would work slightly-less-sillyly, anyway: : star-printer create dup c, 0 ?do '* c, loop does> count type ; 00:39:28 herk - no, but it may affect the data-stack in unpredictable ways. 00:39:36 That makes more sense to me :-) 00:39:56 herk - if I wrote in Quartus Forth, say, I wouldn't bother with >r r> because I'd know that : doesn't do anything with the data stack. 00:40:16 ayrnieu: oh, I didn't realize : affected any stack. 00:40:18 ok 00:40:32 herk - in gforth, : test [ .s ] ; =) 00:41:02 gforth puts 3 cells or such on the stack for : and control-flow words. 00:41:04 yikes 00:41:08 4 stack items 00:41:20 : test [ .s ] ; <4> 0 806902608 806902624 0 ok 00:41:47 what are they for you suppose? 00:42:01 I think I used to have an idea, but I don't anymore. 00:43:38 weird wild stuff 00:44:26 I remember doing silly things with that when I implemented RECUR; in gforth. 00:45:02 groups.google.com/groups?group=comp.lang.forth would have it, maybe =) 00:45:21 eh, I'm not that curious 00:48:02 seems so complex 00:48:38 in herkforth the editor seems a bit complex, but the compiler is dead simple 00:51:06 the compiler, ELF header, and init stuff, fits in less than 1K 00:51:25 on PPC (which has much larger code) 00:54:21 nifty. A native PPC forth, or hosted? I have an iMac right here =) 00:54:50 PPC Linux at the moment 00:54:59 It's a nice Forth :-) 00:55:15 well, I have qemu, if not PPC Linux. 00:56:04 that's 147 RISC instructions for the compiler 00:57:35 I really should finish the port to OS X. people keep saying they have a mac 00:58:08 I'm waiting for the native version so I can run it under PearPC :-) 00:58:21 :) 00:59:22 * ayrnieu realizes that he has stayed up *way* past his bedtime. 00:59:37 I gotta get some sleep too 01:00:24 crc: keep up the good work on retroforth. I'm looking forward to a more complete native version so I can play with it under bochs :-) 01:00:47 I will. I'm slowly making progress on the new kernel 01:01:16 maybe I should skip the Mac OS X version, and go straight to getting it to run under PearPC 01:01:21 The multitasking parts are making the existing drivers for HDD, etc break 01:01:31 oh dear 01:01:53 that sounds worse than tracking cache flushing issues 01:01:57 It is 01:02:09 Everything worked great in single tasking mode 01:02:25 I think I might go for cooperative multitasking instead of preemptive 01:02:55 It'd be easier than rewriting all of the drivers 01:03:38 :) 01:03:45 I'm definately going to do cooperative 01:03:48 at least at first 01:03:59 we'll see if I have reason to do more 01:04:08 I have lots of ideas 01:04:24 Me too 01:05:10 I had hoped to have it working by now, but time/bugs got in the way... 01:05:14 * crc sighs 01:05:32 ok, I'm off 01:05:36 ok 01:05:38 snack, then bed 01:05:39 Good night Herkamire 01:05:49 crc: nice to see you again. are you normally on at this hour? 01:05:55 very late here 01:06:02 Only on weekends (~4am here) 01:06:11 oh. 01:06:14 here to 01:06:23 where do you live? 01:06:26 I work overnights, normally on 7am-10am, then 8pm-9pm 01:06:31 FL? 01:06:34 Just outside Philadelphia 01:06:37 PA 01:06:39 neat 01:07:05 tathi (my cousin) (and his family) lives I think 45 minutes from Philadelphia 01:07:13 Cool 01:07:18 I go down there at least every year 01:07:21 near allentown 01:07:25 ok 01:07:39 I'm ~10 minutes from Philadelphia 01:11:43 ~50 miles from Allentown 01:12:16 cool 01:12:18 --- quit: Herkamire ("bed") 01:25:25 --- join: I440r (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 01:26:06 Hello I440r 01:26:13 hi 01:26:25 time for zzz methinks 01:26:45 Hehe, good night then :) 01:26:59 ;-) 01:27:01 :) 01:55:33 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 01:57:21 --- join: tgunr (~davec@vsat-148-63-4-106.c001.g4.mrt.starband.net) joined #forth 02:04:37 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 02:05:49 Hi, foxie. 02:05:53 yo 02:14:53 My fellow Forth Crusaider. 02:15:00 How are things going?= 02:16:37 busy 02:16:41 with the move and all 02:16:42 :( 02:16:46 so i'm gone now. 02:16:49 OK, see you 02:31:20 --- quit: aum () 02:33:06 What do you think about 4000-line files? 02:33:19 Long. 02:33:33 I have a 12,000,000 line file I use for performace + bug testing :-) 02:33:51 My IRC logs are something like that ;) 02:34:15 12,000,000 line IRC logs? -- cool! 02:34:35 Nah, not quite THAT much :) 02:34:48 * Robert counts 02:35:11 Just use 'wc -l' to count :-) 02:35:19 3387012 total 02:35:28 crc: What did you think, counting by hand? 02:35:35 Yup 02:35:38 Why not? 02:35:44 But I'm _almost_ at 12M. ;) 02:35:50 Just... 9M left. 02:36:16 You're not even a third of the way there yet 02:36:30 Bah. 02:37:07 robert@litium:~$ du -h irclogs/ 02:37:07 177M irclogs/ 02:37:13 Yay. :) 02:37:17 177million lines? 02:37:28 No, megabytes. 02:37:45 I've reduced 7 to 4 that GSL part. 02:38:01 Ahh 02:38:04 It's not all done. 02:38:13 My test program is 150MB 02:38:23 ASau: 4,000 lines of Forth? 02:38:26 No. 02:38:36 There's plenty of C inside. 02:38:53 Ok 02:39:11 I walk along this file and translate C to Forth. 02:39:24 I find bugs and correct them. 02:39:29 Etc. 02:39:38 Any strange things in the C? 02:40:09 Common mistake is of this kind: 02:40:28 x should not be zero 02:40:43 if(s==0) s=1; 02:41:06 s &= 0xff...ff; /* 32 bits */ 02:41:11 x = s; 02:42:10 * crc hates code like that 02:42:27 Another thing is multiplication in finite ring. 02:42:42 It's done this way: 02:43:25 x = a*(x - (x/q)) - r*(x/q); 02:43:33 if (x<0) x+=m; 02:44:10 Yuck 02:44:13 Where a, m, q, r are hard coded through "#define". 02:44:24 That's ugly code 02:44:56 Yes, it's much much simpler in Forth. 02:45:11 Unless you don't know what's it for. 02:45:24 The C code is commented right? 02:45:30 No. 02:45:45 WTF???? 02:45:50 There's not even hint of what it is. 02:46:03 That's wrong 02:46:18 There's source to make a mistake in q and r values. 02:46:53 a, m, q and r are closely tight. 02:47:07 q = m div a, r = m mod a. 02:47:58 And those two lines of C (which actually are 4 lines in the source --- they are written so!) 02:48:07 mean actually this: 02:48:17 x = (a*x) % m; 02:49:40 Problem is: C does not have */MOD. 02:50:10 Neither does RetroForth 02:50:17 Though it could be added easily enough... 02:51:23 I can do it by hands, provided minimal set mentioned above. 02:51:58 Right 02:52:47 There're more hard to translate sources. 02:53:07 48 bits arithmetics. 02:53:20 In Forth I can write it easily. 02:53:51 But reverse engineering from C is not as easy. 02:56:12 I understand 02:56:25 Reverse engineering is often hard anyway 03:22:03 --- join: crc_ (crc@0-1pool176-9.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 03:22:03 --- quit: crc (Read error: 104 (Connection reset by peer)) 03:22:36 --- nick: crc_ -> crc 04:00:29 --- join: aum (~aum@port-204-54-210.fastadsl.net.nz) joined #forth 04:04:20 hello aum 04:04:29 hi crc 04:04:42 do you, or does anyone, know of some event frameworks for forth? 04:04:56 I don't 04:05:16 Though the GameForth experiments will have one... 04:06:26 event frameworks are highly implementation specific 04:06:47 BigForth or Win32Forth might have some sort of event framework 04:06:49 that's the problem - i'm trying to conceive of a general platform-independent implementation 04:07:28 bigforth pisses me off somewhat - not too well done on windows, and badly underdocumented 04:07:42 win32forth is, as its name implies, windoze only 04:08:00 True 04:08:18 i guess the simplest (but not the best) kind of event framework would be something like: 04:08:21 GameForth will handle mouse and keyboard events under Windows and Linux once done 04:08:42 registering event handlers with the framework 04:09:06 passing in two xts - one which checks for an event, and one which handles an event 04:09:24 no 04:09:27 that won't work 04:09:31 hmm 04:09:35 ahh yes 04:09:59 the client can register zero or more 'event sources', and zero or more 'event handlers' 04:10:05 I have an event loop (written in assembly) that sets up some constants for type/ID of event and then passes control to a Forth word named 'event' 04:10:08 : event:key EVENT_ID 04:10:08 events can be identified by a number 04:10:08 dup KEY_RIGHT = if ;; then 04:10:08 dup KEY_LEFT = if ;; then 04:10:08 dup KEY_UP = if ;; then 04:10:08 dup KEY_DOWN = if ;; then 04:10:09 drop ; 04:10:11 : event:mouse ; 04:10:13 : event EVENT_TYPE 04:10:15 dup KEY_EVENT = if drop event:key ;; then 04:10:17 dup MOUSE_EVENT = if drop event:mouse ;; then 04:10:19 drop ; 04:10:32 It actually works pretty good for my current needs 04:11:11 what does ';;' do? 04:11:26 ;; exits a definition without stopping the compile process 04:11:31 Like 'exit' 04:11:53 so it's the same as 'exit'? 04:12:20 Yup 04:12:58 hmm, maybe something like: 04:13:18 client can register (1) event sources, (2) event receivers 04:13:44 event receivers can optionally pass back another event, thus acting as filters 04:15:03 could even simplify to just a single entity - event receiver 04:15:31 You still have to have hooks in the implementation to produce the events 04:15:48 client supplies the event sources 04:16:09 an event source could be done as an 'event receiver' which is bound to 'idle' events 04:16:15 That gets confusing from my point of view 04:16:42 ok - let's say we're after two different event types, events from the GUI, and events from a socket 04:16:59 ok 04:17:01 we'd register two event handlers - both bound to 'idle' event 04:17:12 the first 'idle' handler polls the GUI 04:17:20 the second 'idle' handler polls the socket 04:18:03 You still need hooks into the GUI and socket code, so it's still bound to a specific implementation 04:18:07 if the first handler gets a GUI event, it can then translate the event into another event type, and return another event - eg 'gui-dialog-button1' 04:18:33 meanwhile, the client registers more handlers, listening for these translated events 04:19:12 the only pain is that it involves a poll cycle, which is never good 04:20:20 I still fail to see how it would be independent of the Forth implementation 04:21:05 you're right - there are implementation-dependent details, such as how the handler would physically poll external things like guis and sockets 04:21:21 but it can be made to work in a platform-independent manner 04:21:53 :-) 04:22:06 I'll stick with my current approach for now 04:23:02 are you planning any user-interface words for your retroforth? eg, XFree, or WinGUI, or a 40x16 LCD panel? 04:24:16 Um, RetroForth itself uses a text console 04:24:49 There are plans for a graphical interface using libSDL under the various "hosted" ports 04:25:06 And a native VGA/VESA interface for the native version 04:25:37 (Releases up to 6.2x included an early version of the SDL bindings) 04:26:01 The idea is that RetroForth is a nucleus; you extend it to meet your needs 04:26:13 Dynamic linking of libraries, etc will be possible 04:26:22 At least for some ports (Linux) 04:26:59 Example is GameForth: it takes the RetroForth core, and builds up a set of words specifically for programming games 04:28:19 Those using RetroForth seem to like this approach, so I see no reason to change it 04:28:28 The main uses at the moment are: 04:28:34 1) Simple shell scripting 04:28:52 2) Web development (using Forth as a markup language) 04:29:09 3) As a basis for larger, application-specific Forth systems 04:29:18 4) As a scripting language for applications 04:29:40 5) As a simple standalone system for control of robotic equipment 04:37:41 I would like to have a nice 64x17 LCD one day though... 04:56:21 --- quit: I440r (Read error: 110 (Connection timed out)) 05:00:10 Well, I'm tired of this by now. 05:00:46 Work-in-progress release is at http://retroforth.org/dev/asau/RNG/25JUL04.TGZ 05:01:12 You may pick any random number generator of working 5 or 6. 05:01:31 (Maybe even more, but I'm not sure.) 05:03:17 index.html will appear later. 05:03:34 Looks good to me :-) 05:05:39 --- quit: tgunr (Excess Flood) 05:07:27 --- join: tgunr (~davec@vsat-148-63-4-106.c001.g4.mrt.starband.net) joined #forth 05:38:54 Well, I have to go... I'll be back tonight! 05:39:00 --- part: crc left #forth 05:45:42 --- join: lalalim_ (~lalalim@pD95EA18A.dip.t-dialin.net) joined #forth 05:46:14 Guten Tag, lalalim_! 06:06:38 --- quit: lalalim (Read error: 110 (Connection timed out)) 06:51:10 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 07:18:08 What diff representation is better for patches? 07:18:15 Unified? 07:18:17 Context? 07:20:26 I like unified... 07:21:53 If you just use -u, that gives a unified diff with three lines of context IIRC... 07:22:24 I think, -U 5 or even 7 is better. 07:23:14 Well, I've never had a problem with patching things with 3 lines of context. 07:23:26 But the patch might be more readable with 5 or 7, I suppose. 07:24:23 But then, I think a lot of GNU projects also like to use -p, which gives the C function that the changes are in. 07:24:35 So I suppose that helps diff find the right place as well. 07:27:34 Hm. It seems that unified patch is easier to read. 07:28:11 And I don't count readability as the least matter. 07:29:21 yeah, I find unified patches _much_ easier to read. 07:29:51 With normal diffs, I can never remember which lines are from which file. 07:34:05 Well, first patch released. 07:34:14 What are you patching? 07:34:28 http://retroforth.org/dev/asau/RNG/ 07:34:43 Special thanks to crc for hosting. 07:34:55 ah. 08:18:19 --- quit: tathi ("leaving") 09:07:35 --- join: Frek (anvil@h87n2fls31o815.telia.com) joined #forth 09:08:41 Guten Abend, Frek! 09:09:05 Guten Tag Asau 09:09:49 How's your code? 09:10:08 it's fine I guess; I don't do much coding right now though 09:10:19 how about yours ? 09:10:26 What are you coding in Forth? 09:10:43 I'm done for today. 09:11:10 I've just did some OF programming as far; otherwise I've been investigating using Forth as a plugin language for applications 09:11:55 I'm rewriting part of GNU SL for my needs. 09:12:00 I'm mostly monitoring what happening in this channel; there's lots of interesting discussions here that's not always directly forth related. 09:12:21 i see 09:13:44 Probably, I should send corrections to GNU SL, but I have no willing doing this. 09:51:46 Frek, are you here? 09:57:08 ASau: yes 09:57:29 What's you domain of interests? 09:57:38 EE? 09:57:44 EE ? 09:57:57 Electronic Engineering? 09:58:23 no it's not my main interest although I did some electronic engineering in the past 09:58:51 Are you programmer/ 09:58:56 I've been 09:59:23 although programming is my main interest when it comes about computers I guess 09:59:39 Why embedded? 09:59:46 Or why OF? 10:00:11 well basically it started of with that I've did some work on powerpc linux, and powermacs has OF 10:00:49 however as I said; I don't do much programming/coding at all now days 10:01:09 And what's your occupation now? 10:01:18 currently unemployed basically 10:01:44 I do some part time work as pc support service stuff 10:01:53 Are you student? 10:01:57 no 10:02:28 although I believe I will start studies at some point again 10:02:30 I don't know yet. 10:05:40 I can't undestand why you need Forth. 10:05:53 I don't need forth 10:06:10 Why are you interested in this community? 10:06:34 because as I said; theres other interesting discussion on this channel as well 10:07:02 It's mostly close and should not be interesting to strangers. 10:07:30 ASau: oh ? 10:07:35 Like a club with restricted access. 10:07:41 Forth is too specific. 10:08:10 i see, I didn't know this was a exclusive channel 10:08:36 It's not exclusive formally. 10:08:46 ASau: what's your point ? 10:09:17 You should have been interested in Forth from one or another point of view. 10:09:49 yes ? 10:11:29 Well, everyone here is interested in Forth. 10:11:39 so what's the problem ? 10:12:27 I never said i'm not interested in forth; I just said I don't develop in forth actively anylonger 10:13:26 acting like you do, is like throwing out all visitors to a art museum, if they don't paint they don't have a reason to be there, although people can be interested in art even though they don't paint professionally 10:13:44 Ah. Now I see. 10:15:11 --- join: crc (crc@0-1pool88-233.nas48.philadelphia1.pa.us.da.qwest.net) joined #forth 10:15:37 and as I said; I've done OF programming in the past; and OF is pretty much all about forth, even though you can use other languages forth (compiled to fcode) is usually the easiest and simplest path. 10:26:15 --- quit: crc (Client Quit) 10:37:57 --- join: I440r (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 10:57:53 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 11:03:10 --- join: Topaz (~top@spc1-horn1-6-0-cust117.cosh.broadband.ntl.com) joined #forth 11:13:57 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 13:06:08 --- join: Sonarman (~matt@adsl-64-160-166-87.dsl.snfc21.pacbell.net) joined #forth 13:06:58 --- join: BACbKA (~vassilii@DSL217-132-52-151.bb.netvision.net.il) joined #forth 13:07:09 hello 13:08:31 hi 13:09:35 what would you do to achieve the following stack transformationL 13:09:43 (a b c d -- a d b d c d d d) 13:10:40 swap >r swap over r> over dup dup 13:10:50 *shudder* 13:10:50 yikes 13:11:04 -ROT 2 PICK TUCK DUP DUP 13:11:11 :-P 13:11:14 Heh 13:11:15 hehe 13:11:20 i've just written an optimizer 13:11:42 2>r r@ swap r> r> over dup dup 13:12:04 Now THAT is a terribly messy stack :) 13:12:20 what happened is this: 13:12:24 { a b c d } a d b d c d d \ >=) 13:13:04 well, except for the bug. 13:13:24 I tried to seduce one of my teachers into FORTH action. He got excited and started asking questions like this when trying to figure out various number calculus calculations. 13:13:46 he managed to conceive questions where factoring into smaller stack states indeed was questionable 13:14:18 so i wrote an optimizer that took an input stream, scanned it for sequences of pure stack manipulation, and spewed out the results 13:14:49 the problem I see with it is that any production-ready code is factored well enough that all the stack manipulations are pretty obvious w/o a machine optimizer 13:15:34 [ 3 ]>r [ 2 ]r@ [ 1 ]r>' [ 2 ]r> [ 2 ]ndup 13:16:10 in Quartus Forth, at any rate. 13:16:41 I love quartus. But I preferred the PilotFORTH approach - the one that changed the PRC state. Pity it doesn't work with ROMs. 13:17:28 quartus is SOOO big now :( pilot forth was smth like 8K 13:17:30 * ayrnieu wrote too many hand-coded-assembly words to do such things for Quartus. 13:17:59 * BACbKA sighs, remembering the old Hobbit forth days 13:18:02 bac - that doesn't bother me, if it still produces as compact applications. 13:19:02 ayrnieu: I'm distributing my source anyhow, so pilotForth was better for me 13:20:00 I don't think I've ever used pilotForth, then. Back when I had an m125, I only saw Quartus Forth and DragonForth as viable. 13:20:31 ayrnieu: I actually bought my PalmPilot Personal because of then-existing pilot forth beta! 13:20:41 http://www.tarunz.org/~vassilii/pub/ 13:27:59 has anybody else here seen the Hobbit computer and its native FORTH system? 13:30:17 --- quit: I440r (Read error: 60 (Operation timed out)) 13:30:30 Dobryjj vecher, BACbKA! 13:30:49 ASau :))) 13:31:06 -ROT is not effective, also PICK. 13:31:33 Sometime you don't have either of them. 13:31:52 ASau: it depends on the implementation. My optimizer is configurable - you can add/remove words and assign performance-based costs per word 13:32:06 ASau: by default, it goes by the words number 13:32:48 What about dependence on argument? 13:32:54 ? 13:33:11 PICK and ROLL execution time depends on its arguments. 13:33:13 smth like A @ PICK ? 13:33:51 currently it won't optimize any dynamic stuff like that. 13:34:00 i.e. it will just pass it through as is 13:34:20 and will flush whatever pure stack manipulating sequence it had accumulated 13:35:02 Anyway it would be interesting to look at the source. 13:35:38 * BACbKA blushes 13:35:43 the source is in Java 13:35:48 Ha! 13:35:52 :) 13:35:52 would it still be interesting? 13:35:58 I don't have Java. 13:36:11 I don't like coffee. 13:36:11 I had a choice of either Java or Scheme to write it in 13:36:22 and you chose Java? How strange. 13:36:41 well, actually not me 13:37:41 it was a take-home exam, and I substituted one of the questions on it (which were various things like implementing some NP-hard problem search as efficiently as possible) 13:37:53 with this optimization thing, by a special permission of the teacher 13:38:07 now the exam was in pairs, and my partner preferred we do it in Java 13:38:22 he wrote the classical Dijkstra portion of it, I did the rest (forth-related) 13:39:38 Does it make full search? 13:39:46 ASau yes 13:45:25 Now I see why you mention NP. 13:46:07 What about the same in Forth? 13:46:11 Dijkstra in itself is not NP, but the graph size is exponential in the stack states minimal distance 13:46:27 ASau: I might do that 13:46:56 ASau: have to finish 3 more exams though 13:47:19 Kotoryjj kurs? 13:55:13 s/.to/-to/ 13:55:20 oops 13:58:47 --- join: I440r (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 13:59:32 Hi 13:59:35 hi 14:01:38 hi 14:09:27 God kvaell! 14:11:05 Sounds Swensk... 14:12:03 sweidisd 14:13:22 "Sweidish" sounds good. 14:28:02 good night #forth 14:28:14 --- quit: BACbKA ("Leaving") 15:38:07 --- join: doublec (~doublec@coretech.co.nz) joined #forth 15:40:14 ping slava 15:42:48 --- quit: tgunr (Excess Flood) 15:44:11 Slava is off-line. 15:44:51 --- join: tgunr (~davec@vsat-148-63-4-106.c001.g4.mrt.starband.net) joined #forth 15:45:28 ok, thanks. 16:01:32 hi doublec 16:03:23 hi slava. 16:03:28 what's up? 16:03:52 Never mind, I had problems building the native vm from cvs but it was a problem at my end. Sorry! 16:04:02 Now, I'm going off-line. 16:04:13 Spokojjnojj nochi! 16:04:14 --- quit: ASau ("leaving") 16:04:22 I see some socket support in there. that's good! 16:07:23 --- join: fridge_ (~fridge@dsl-203-113-229-162.NSW.netspace.net.au) joined #forth 16:07:32 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 16:07:39 --- join: Sonarman (~matt@adsl-64-160-166-87.dsl.snfc21.pacbell.net) joined #forth 16:08:44 i set the computer's clock forward and then my irc client reconnects 16:08:55 strange 16:08:58 oh, it probably thought it had timed out 16:11:55 --- quit: fridge (Read error: 60 (Operation timed out)) 16:31:44 --- quit: qFox ("meh ircii's netsplit detection appearantly sux ^^") 16:44:11 --- quit: Topaz ("Leaving") 16:44:46 --- part: Bullrush left #forth 16:51:13 is there a better way to do this?: 16:51:21 lea esi, esi-4 16:51:26 mov esi, [esi+4] 16:52:46 Ehm... 16:52:56 mov esi, [esi] perhaps? 16:53:05 oops 16:53:17 that should be mov [esi], [esi+4] 16:53:20 hehe :) 16:53:49 ( a b -- a a b ) in c4th 16:54:30 Uhm 16:54:33 That's invalid. 16:54:50 Is TOS cached? 16:55:40 Sonarman, dont use lea except when your doing an addition with a multiplication - MOV is better 16:55:54 lea esi, [esi+2*esi] to multiply esi by 3 16:55:57 etc etc 16:56:08 otherwise use mov esi, whatever 16:56:11 TOS is cached, yes 16:56:12 or add esi, whatever 16:56:16 I440r: It doesn't affect flags though 16:56:27 I440r: I saw colorforth uses it for that reason 16:56:27 correct 16:56:35 ok 16:56:44 yeah, what Robert said 16:56:45 So stuff like "drop" doesn't mess up jumps 16:56:53 well when chuck bothers to create a source file for colorforth thats COMMENTED ill look at it again 16:56:59 hehe 16:57:55 :D 16:57:59 so what i posted above is the best way to do that? there's no "shortcut"? 16:59:34 You'll need to use a temporary storage. 16:59:55 mov eax,[esi] 17:00:08 lea esi,[esi-4] 17:00:08 mov [esi],eax 17:00:47 i have to? 17:01:31 ugh 17:01:40 mov eax, [esi] 17:01:53 sub esi, byte 4 17:02:02 mov [esi],eax 17:03:27 so you're saying lea esi, [esi-4]; mov [esi], dword [esi+4] would *not* work, right? 17:04:04 it looks like it will 17:04:25 ok thanks 17:04:41 also, it looks like i'll have to do a cmp eax in order to preserve flags 17:04:43 is esi the stack pointer or something ? 17:04:49 Uhm... 17:04:54 (TOS is in EAX, and yes, ESI is SP) 17:04:57 You can't move from address to address. 17:05:06 Need to store it in a register. 17:05:10 that sounds totally DUMB 17:05:23 x86 has two retisters dedicated to stacks 17:05:26 Robert: right. sorry :) 17:05:26 esp and ebp 17:05:39 it's so that he can do drop with lodsd 17:05:50 (which probably isn't a very good idea anyway, but oh well) 17:05:54 yea and that probably saves him 2 or 3 bytes TOTAL 17:06:08 and costs him a bunch of clock cycles 17:06:13 and his not using instructions that affect the flags is also very bad 17:06:36 assuming the flags will be retained and coding so that they are is stupid 17:06:48 im starting to think chuck isnt that good a coder :/ 17:07:04 You say that about everyone not agreeing with you ;) 17:07:09 lol 17:07:19 well if you dont agree with me your crap :P 17:07:25 Hehe 17:07:25 doublec, yup 17:07:25 neener neener neener 17:07:29 doublec, telnetd works in native now 17:08:44 so: 17:08:48 mov ebx, [esi] 17:08:48 sub esi, 4 17:08:48 mov [esi], ebx 17:08:48 cmp eax 17:09:04 why cmp eax ? 17:09:13 and cmp eax to what? 17:09:20 to preserve flags 17:09:31 that doesnt preserve them 17:09:34 pushf 17:09:36 do stuff 17:09:37 popf 17:09:38 that does 17:09:54 Well, I guess he means setting ZF/CF to what they're supposed to be 17:09:54 oh, ok 17:10:02 but i think he only cares about the flags for eax 17:10:04 ...somehow 17:10:09 test eax, eax 17:10:14 would mov eax, eax work? 17:10:18 Bi 17:10:18 oh, test. ok 17:10:19 No 17:10:27 I guess only ZF is used 17:10:41 mov eax, eax.... isnt that how nop is encoded ? 17:11:06 test eax, eax <-- 17:11:16 Nah, that's xchg 17:11:38 oh yea 17:11:43 xchg eax, eax lol 17:13:44 ok. 13 bytes 17:14:39 What is the final version? 17:14:46 00000000 8B1E mov ebx,[esi] 17:14:46 00000002 8D76FC lea esi,[esi-0x4] 17:14:46 00000005 891E mov [esi],ebx 17:14:46 00000007 85C0 test eax,eax 17:14:48 slava, nice! 17:16:45 15, i mean 17:17:25 i mean 13 17:17:41 i mean 9 17:17:42 fuck 17:17:57 i can't count :) 17:27:03 --- join: TheBlueWizard (TheBlueWiz@207.111.96.66) joined #forth 17:27:03 --- mode: ChanServ set +o TheBlueWizard 17:28:29 moi 17:29:11 mur moi :) 17:29:30 3.30 am 17:29:37 have to sleep 17:31:16 hyvää yötä....(good night :) 17:31:36 moi moi 17:31:46 moi 17:32:41 on päivää minälle 17:32:50 is that how you would say "it's daytime for me"? 17:34:25 I think it should be: on päivää minulla 17:35:50 ok 17:36:35 why does the ä become a u? 17:37:36 heh....just accept the fact that for minä, sinä etc., the ä turns into u when inflected 17:37:53 ok :) 17:38:47 you thank 17:39:11 lol 17:48:39 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 17:48:46 --- mode: ChanServ set +o kc5tja 17:50:00 hiya kc5tja 17:51:20 greetings 17:51:24 10.5 hours overtime. 17:51:26 I'm tired. 17:51:35 * fridge_ points to bed 17:51:38 go! 17:52:02 I have a better idea. Brainwave entrainment. 17:52:09 Besides, I can't sleep when it's light outside. 17:52:15 eugh 17:52:19 the light is ok 17:52:23 I have thick curtains 17:52:33 its the leaf blowing gardeners that keep me up 17:52:39 Hehe :D 17:52:41 Yeah 17:52:50 also 17:52:55 I'm waiting for a call back 17:53:02 an hour ago 17:53:03 =\ 18:11:05 Is EVALUATE supposed to work recursively? 18:11:40 --- quit: tathi ("laters") 18:11:48 Or rather, is EVALUATE supposed to be nestable? 18:15:26 madgarden: yes 18:15:33 madgarden: very much yes 18:15:54 and if recursing EVALUATE doesn't work, it's a critical bug in the Forth implementation you're using 18:16:02 Or the one I'm making. :P 18:16:28 madgarden: there are situations, albeit rare, where EVALUATE is the only way to get something done 18:17:19 Yes, I figured as much. 18:18:05 --- join: Sonarman_ (~matt@adsl-64-169-95-114.dsl.snfc21.pacbell.net) joined #forth 18:18:11 --- quit: Sonarman (Nick collision from services.) 18:18:16 --- nick: Sonarman_ -> Sonaran 18:18:21 --- nick: Sonaran -> Sonarman 18:18:28 I've got my input stack working, shouldn't be much more effort to get EVALUATE, but I think my outer loop may be a bit hackish. 18:18:40 input stack? 18:18:52 Yeap. 18:18:57 what's that? 18:19:12 Well... it's a stack of strings to be intrepreted as input. 18:19:25 kc5tja: do you use ts-brain-delta? 18:36:12 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 18:40:14 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 18:47:59 Hmm, it almost works. 18:55:34 back 18:56:22 Sonarman: Today I used ts-purring-cat 18:56:30 But normally I use ts-brain-theta 19:01:17 ? 19:06:56 tathi: I have completed 10.5 hours of overtime today, so I'm relaxing. Bigtime. 19:08:06 tathi: To facilitate relaxation, I will sometimes use brainwave entrainment. 19:08:26 yeah, I just finally searched under that. 19:10:17 um...exactly what is brain entrainment? 19:10:48 http://brain.web-us.com/binaural.htm , I assume. 19:11:45 * TomasuAway is back (gone 24:51:59) 19:11:50 --- nick: TomasuAway -> Tomasu 19:16:59 --- quit: tathi ("too much debugging... :)") 19:27:49 --- join: tgunr (~davec@vsat-148-63-4-106.c001.g4.mrt.starband.net) joined #forth 19:28:29 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 19:29:43 --- join: Sonarman (~matt@adsl-64-171-255-43.dsl.snfc21.pacbell.net) joined #forth 19:39:14 --- nick: lalalim_ -> lalalim 19:39:16 --- join: arke (arke@melrose-251-251.flexabit.net) joined #forth 19:39:18 HI!!! 19:39:21 IM BACK!!!!! 19:39:48 hi 19:40:09 hiya arke 19:40:15 er, arke hiya :) 19:40:21 i've started working on my game again. 19:40:38 >( 19:40:40 oops 19:40:42 :) 19:40:50 sorry, still used to the german keyboard 19:41:00 kc5tja: :) there? 19:44:15 kinda 19:45:00 brb 19:46:43 kc5tja: purring cat... hehe 19:47:28 Sonarman: !!!! 19:47:31 Sonarman: I LOVE YOU 19:47:42 right, theta is what i meant to say. that's what i've tried using 19:47:49 arke: OH BABY YOU'RE BACK! 19:47:57 Sonarman: OH OH 19:48:03 Sonarman: HOT STEAMY SEX 19:48:12 Sonarman: ....not right now, I'm tired from the jetlag 19:48:19 :) 19:48:36 :) 19:51:59 haha... my sister didn't change the toilet paper roll.. well, i'm gonna leave the toilet seat up. take that, bitch! 19:52:18 muhahaha 19:53:56 :) 19:55:54 * Tomasu is away: night 19:55:59 --- nick: Tomasu -> TomasuDlrrp 20:01:48 You boys are sick. 20:02:06 hi all 20:02:10 hi 20:02:23 I just registered and labeled a book for release with www.bookcrossing.com 20:02:43 Herkamire: What do you mean? 20:03:15 I went on bookcrossing.com, got a tracking number for the book 20:03:45 and put down that I planned to leave the book in a local laundromat 20:05:03 I put a stickynote on the front that says "FREE" and a note inside the cover that says to please go to bookcrosing.com/042-188something and let us know who and where you are, thoughts etc.. Then give the book away again 20:05:26 BookCrossing is cool :) 20:05:46 I treasure books too much to do something like that. 20:06:03 well, I found a pile of books in the recycle out back :) :) 20:06:32 I'm keeping one (at least 'til I'm done reading it) 20:08:37 wow, thank you =) 20:09:15 bookcrossing is pretty impressive. 20:09:28 there have been 3 book releases in my town in the last 3 days 20:09:50 kc5tja - I simply don't have space for them, and I move frequently enough that I tend to just give books away as soon as I finish them -- paperback SF books, anyway. 20:10:10 though I've accumulated a stack of those, hm. 20:11:24 you can also use bookcrossing when you give books to friends. 20:11:26 I probably only really treasure my Buddhist and (Human|Computer) language books, right now. The others would make me happier if I could share them. 20:11:49 I think it's a cool way to encourage people to pass it along so more people can enjoy it. 20:12:27 better than my old plan of putting them in the local library 'paperbook exchange'... which seemed to work a bit like /dev/null, in that I *never* saw my books there again. 20:13:09 It has a sign saying "This only works if you bring them back!" and everything :-/ 20:13:28 * ayrnieu shrugs. 20:13:53 Speaking of Buddhist, I just realized: I have tomorrow and the day after off! Two days of AIKIDO!!! WOOO!!!! 20:15:27 =) 20:21:21 kc5tja: AWESOME!!! 20:21:25 kc5tja: :) 20:23:11 Yeah. 20:23:25 It'll likely be the only time I can spend at aikido for quite some time. 20:23:35 If only I could get paid to take aikido... 20:24:54 :) 20:27:15 --- quit: lalalim (Remote closed the connection) 20:27:16 --- join: lalalim (~lalalim@pD95EA18A.dip.t-dialin.net) joined #forth 20:35:55 ahhhhhh :) nothing like fresh local sweet corn 20:35:58 finally in season 20:52:35 --- quit: I440r (Read error: 54 (Connection reset by peer)) 20:52:55 --- join: I440r (~mark4@216-110-82-59.gen.twtelecom.net) joined #forth 20:53:32 :) 21:03:33 can someone try to ssh to my ip and tell me if its refused or not ? 21:03:48 I440r, do you still need ssh on my box? 21:03:56 yea i want to get that working 21:03:56 i'd like to close it if you don't need it anymore 21:04:01 but i wont need it right now 21:04:11 you can close it but dont delete the account eheh 21:04:22 i'll just block the ssh port 21:04:28 getting that working is HIGH onm my todo list :) 21:07:06 can you ssh to me ? 21:07:14 i.e. is the port open ? 21:07:37 * ayrnieu levels up! New skills: 'anchoring' stiches, many close-set stitches on either end of a longer one-string stitch; 'long-short' stitches, very short on the visible side and longer on the hidden side. Experience needed until next level: 6 proffessional-looking patchings. 21:09:31 ayrnieu, heh 21:09:36 Hahah :D 21:09:57 :) 21:13:17 I440r - yes, I can ssh to you. 21:15:20 --- join: LOOP-HOG2 (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 21:15:37 hi 21:15:57 howdy, hog. 21:16:13 anything new and exciting? 21:16:48 hot steamy sex, I think, but that happened some time ago. 21:17:38 actually, the hot steamy sex will be tomorrow 21:17:41 then as i understand, it's been quiet in here 21:17:42 im too tired to get it up 21:19:08 ayrnieu, thanx :) 21:19:19 that means this firewall isnt blocking that lol 21:19:30 its not doing NAT either but bah ill fix that later :P 21:23:32 does anybody have any thoughts about the latest snipit from Falvotech in relation to patent infrindgment? 21:24:39 LOOP-HOG2: Yes. I think patents suck. :) 21:24:56 well, they sure don't do us any good 21:24:57 :) 21:25:13 Nope. But I respect Chuck's work. 21:25:20 So I'm working on a transport triggered architecture. 21:25:39 (actually not right at the moment, but I will be tomorrow, if I feel up to it. I'm still recouperating from my work week.) 21:25:46 np 21:28:08 well, i told myself i was going to update my site, and i still have bout 4 hours b4 sleepcycle 21:29:03 i don't understand how paten law works 21:29:27 so if you create a new design and fail to patent it then somebody can come along later and patent out from under you and sue you? 21:30:04 what prevents people at the patent office from stealing your design and patenting it themselves, or having their buddy do it? 21:32:11 loop - not getting murdered, historically. 21:32:27 that's about it isn't it? 21:32:35 Tesla would've definitely shot the wayward patent office worker. 21:32:43 well, no =) 21:32:51 Tesla didn't benefit from his own inventions 21:33:00 didn't he die a poor and lonely man? 21:33:15 I wouldn't guess at his loneliness. 21:33:29 how would your inventions contribute to being lonely/not lonely? 21:33:56 slava - people like to attribute loneliness to people that die without some specific measure of success. 21:34:00 if you invent something and they take it away from you then you are poor and if you are poor in america, you have bloody few friends 21:34:07 actually anywhere 21:35:02 that's an odd assertion 21:35:06 well, at least the whole world understands that Tesla gave us AC electricy... oh, wait, many of them probably think that Edison did everything. 21:35:10 "friends" being people who hang around expecting favors? :) 21:35:25 yeah, those kinds of friends 21:35:33 maybe it was a little too speculative of me to say that 21:35:52 yes, just a little =) 21:38:26 I wish the Kestrel project the best of luck 21:38:41 madgarden, you up? 21:38:48 Any thoughts on the giant Jupiter sized sunspot that is pointed exactly square at our homeworld? 21:40:24 maybe thats why the weathers been so weird here lately. Tons of rain and sun. for the past few years, we got very little precipitation... 21:40:32 storms are fairly vicious too. 21:41:36 --- quit: TheBlueWizard (Read error: 60 (Operation timed out)) 22:19:11 --- quit: LOOP-HOG2 () 22:28:11 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 22:39:49 --- join: Sonarman (~matt@adsl-64-171-255-50.dsl.snfc21.pacbell.net) joined #forth 22:41:58 --- quit: doublec ("Leaving") 23:01:00 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 23:16:55 --- quit: tgunr (Excess Flood) 23:18:43 --- join: tgunr (~davec@vsat-148-63-4-106.c001.g4.mrt.starband.net) joined #forth 23:36:34 --- quit: Sonarman ("leaving") 23:41:20 --- quit: qFox ("meh ircii's netsplit detection appearantly sux ^^") 23:53:47 --- join: crc (crc@0-1pool88-29.nas48.philadelphia1.pa.us.da.qwest.net) joined #forth 23:57:23 hi crc :) 23:58:27 Hi Herkamire 23:59:59 --- log: ended forth/04.07.25