00:00:00 --- log: started forth/04.02.03 00:11:21 --- quit: Teratogen ("SKYKING, SKYKING, DO NOT ANSWER") 00:13:06 --- quit: Serg () 00:14:42 victory! 00:14:57 --- quit: Herkamire ("now I can go to bed :)") 00:14:59 yes please 01:33:09 --- quit: imaginator (Remote closed the connection) 02:10:36 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 03:04:37 --- quit: cleverdra (Read error: 110 (Connection timed out)) 03:39:18 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 03:51:44 --- quit: Nutssh ("Client exiting") 05:12:49 --- quit: hovil ("Leaving") 06:17:15 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 06:17:21 --- join: _proteus (~proteusgu@216.27.161.121) joined #forth 06:22:13 --- quit: _proteus (Connection reset by peer) 06:22:14 --- join: mrproteus (~proteusgu@216.27.161.121) joined #forth 06:30:50 --- quit: I440r ("15 hour drive thataway --> (argh)") 07:01:45 --- quit: mrproteus (Read error: 104 (Connection reset by peer)) 07:01:59 --- join: _proteus (~proteusgu@216.27.161.121) joined #forth 07:09:48 --- quit: _proteus (Connection reset by peer) 07:10:01 --- join: mrproteus (~proteusgu@216.27.161.121) joined #forth 07:14:39 --- join: crc (~crc@142-pool1.ras11.nynyc-t.alerondial.net) joined #forth 07:32:11 --- nick: mrproteus -> proteusguy 07:32:11 --- quit: crc (Read error: 104 (Connection reset by peer)) 08:12:51 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 08:56:08 --- quit: TreyB () 08:58:51 --- join: thin (thin@bespin.org) joined #forth 08:59:43 --- part: thin left #forth 09:03:16 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:11:50 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 09:47:38 * warpzero is back (gone 10:35:56) 09:51:05 okay you... 09:51:07 people... 09:52:02 now baking: pizza vegetariana a'la mur 09:52:08 oh forgot no now baking scripts ;) 10:04:09 --- quit: qFox ("if at first you dont succeed, quit again") 10:10:28 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 10:26:43 --- quit: warpzero (Read error: 104 (Connection reset by peer)) 10:28:37 hi 10:32:02 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 10:38:42 --- quit: warpzero ("Tried to warn you about Chino and Daddy Gee, but I can't seem to get to you through the U.S. Mail.") 10:39:46 Dobryjj vecher! 10:41:00 Privet, ASau :)( 10:47:26 --- quit: OrngeTide (No route to host) 10:49:36 --- quit: qFox (Read error: 104 (Connection reset by peer)) 10:49:40 --- join: qF0x (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 10:49:54 --- nick: qF0x -> qFox 10:50:29 --- join: OrngeTide (orange@rm-f.net) joined #forth 10:51:39 --- join: proteusguy (~proteusgu@65.196.135.240) joined #forth 11:29:58 --- join: reidrac (~reidrac@81-203-65-18.user.ono.com) joined #forth 11:30:08 hi all 11:31:40 Dobryjj vecher! 11:33:38 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 11:47:05 --- quit: Nutssh ("Client exiting") 11:47:34 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 11:58:00 I'm pleased to see there's a forth community 11:58:09 :) 11:58:23 nice #forth portal 11:58:24 hi reidrac 11:58:51 http://www.cc.jyu.fi/~kallio/atk/hist-laitteet-kuvat/80l/vax8600-boot-disk.jpg Got that boot disc? it is not starting! 12:00:22 I'm developing a little interpreter in java 12:00:29 to embbed into java apps 12:01:06 I'm coding also a little java application to chat over LAN, and I didn't found a suitable scripting language 12:01:33 I found forth and I though that it would easy to code an interpreter 12:01:53 reidrac, i'm working on a forthish language in java right now. 12:02:05 http://www.usebox.net/jjm/sfi/ 12:02:18 that's mine... I've released 1.0RC0... it needs testing 12:02:40 I'm integrating it in my little chat program and I hope most bugs appear in that process 12:03:03 http://slava.kicks-ass.org/slava/Factor.jar is mine 12:03:09 does yours actually compile the code? 12:03:12 It's less than a month of work 12:03:21 i've been working on mine since september 12:03:29 no... It just an interpreter 12:03:42 mine compiles (some) code to JVM bytecode 12:04:28 uhm... mine its pretty simple 12:04:46 mine's not :) 12:05:27 since I wanna it as scripting language 12:05:34 I did it with this idea in mind 12:05:47 is it a real forth? 12:05:52 can you make your own immediate words, etc? 12:05:58 yes 12:06:03 http://www.usebox.net/jjm/sfi/interprete/applet/ 12:06:07 there's an applet 12:06:10 hehe 12:06:11 http://www.cc.jyu.fi/~kallio/atk/hist-laitteet-kuvat/1978mv/kanto3-28.12.78.jpg 12:06:18 who ordered the computer? 12:06:18 :) 12:06:19 a demo of an interpreter 12:06:33 implemented with an AWT applet 12:06:36 try WORDS 12:06:41 and you'll see what's supported 12:06:45 http://www.cc.jyu.fi/~kallio/atk/hist-laitteet-kuvat/1978mv/kanto2-28.12.78.jpg .. you need to make hole to get it inside 12:07:17 not much, i see :) 12:07:29 no XD 12:07:40 : HELLO ."hello!" CR ; 12:07:54 that's enough for my needs 12:07:54 XD 12:08:12 reidrac, mine's used in a game 12:08:19 plus IF ELSE THEN, BEGIN UNTIL and DO LOOP 12:08:24 kewl 12:23:18 --- quit: Nutssh ("Client exiting") 12:35:23 reidrac, look for javish forth. 12:35:42 IIRC, there should be one or two of such kind. 12:35:54 Maybe, DeltaForth 12:37:15 no good ones exist 12:37:28 I don't memorize Javish and C-ish Forthes. 12:38:14 Also, why Java? 12:38:20 why not? 12:38:30 Maybe it would be better use native. 12:38:34 XD 12:38:36 no 12:38:41 lemme explain 12:39:01 I'm coding a Java application and I want a scripting language embedded in the application 12:39:14 to be portable that interpreter must be in Java 12:39:36 OK. I've understood your point. 12:39:53 I thought in Forth because is easy to code an interpreter 12:39:56 and is small 12:39:59 less than 30 kbs 12:40:47 out there are are Java, TCL, Jsvascript interpreters 12:41:00 IIRC, Java is too restricted to implement Forth. (That's what I've heard, I'm not interested in Java at all.) 12:41:01 but all are too much heavy for my needs 12:41:07 ASau, restricted? how? 12:41:21 I mean JVM. 12:41:24 ASau, it doesn't allow pointer arithmetic, but that is all 12:42:02 slava, that's not my experience, don't rely on this. 12:42:34 Of course, you can always write VM and run any PL you wish. 12:44:12 I've got almost completely ITC system with small number of primitives. It's ve-e-e-e-e-ry-y-y-y-y slo-o-o-o-o-o-o-o-o-o-w. 12:44:52 reidrac, maybe Alan Pratt's C-Forth? 12:44:57 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 12:45:41 I've seen some C based small forthes. 12:46:26 uhm 12:46:34 that's in Java? 12:47:02 again I need it in Java becouse is for providing scripting functionality to an application in Java 12:47:04 :) 12:47:17 --- quit: Nutssh (Client Quit) 12:51:57 You can port it to Java easily. 12:52:08 really? 12:52:18 well... my interpreter is working 12:52:27 I think it will do the work 12:54:25 If you make a byte-accessed "memory" then you easily can port either Pratt's C-Forth or postForth or any other small Forth. 12:54:56 ASau, you're suggesting having byte[] memory? uuuggh 12:55:07 ASau, real men use cons cells and GC, not manual memory access. 12:56:41 slava, you can have full cell memory. 12:56:54 This will be more complex. 12:57:28 Many Forthes are byte-oriented. 13:13:09 --- quit: reidrac ("...") 13:27:12 I just got a new keyboard, and it has a blank key :) 13:27:59 bottom right of main keyboard. [space] [command] [option] [control] [ ] 13:29:08 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 13:29:15 --- mode: ChanServ set +o kc5tja 13:29:24 1/clear 13:29:29 wtf 13:39:36 --- join: downix (~downix@adsl-215-36-120.bct.bellsouth.net) joined #forth 13:43:03 re Downix 13:43:07 hey 13:43:08 * kc5tja just got in from school. 13:43:31 hey kc5tja 13:53:00 dang, my blank key dosn't do anything 13:59:24 Dobryjj vecher! 13:59:39 kc5tja, have you tested your code? 14:00:08 kc5tja, it does not work. 14:01:34 --- join: Nutssh (~Foo@dunwlessnat.rice.edu) joined #forth 14:01:38 ASau: Yes, I've tested it. 14:04:52 kc5tja, : *+ DUP 1 AND IF SWAP OVER + SWAP THEN ; OK 14:05:07 kc5tja, : N* SWAP 4 TIMES 2* REPEAT SWAP 4 TIMES *+ 2/ REPEAT SWAP DROP ; OK 14:05:21 kc5tja, 3 5 N* . 0 OK 14:05:38 This should be: 15 14:06:00 3 3 N* . 0 OK 14:06:27 1 5 N* . 0 OK 14:06:33 ?? 14:07:34 OK, I don't know what your REPEAT word does. 14:07:48 Also *+ doesn't match the code I posted yesterday, but rather the code I posted the day before. 14:07:56 The code posted yesterday is the correct code. 14:08:17 : *+ DUP 1 AND IF OVER + THEN ; 14:08:30 n TIMES ... REPEAT repeats sequens exactly n times. 14:08:53 ASau: Gotcha. 14:09:00 Ah! 14:09:05 Retesting. 14:11:18 ASau: REPEAT usually does something different 14:11:45 Herkamire: I'm willing to accept different definitions, provided I know what is meant. :) 14:11:55 yeah. 14:11:59 me too. now that 14:12:17 Sometimes I do envy APL's use of symbols instead of words though. 14:12:28 I think about it, that's pretty close to the ANS use of the word right? BEGIN ... WHILE ... REPEAT is the ANS way right? 14:12:32 Though I do wish we had a universal "for all" symbol (the upside-down capital A). 14:12:44 Herkamire, : TIMES ?COMP COMPILE >R [COMPILE] BEGIN COMPILE R> COMPILE -DUP [COMPILE] WHILE COMPILE 1- COMPILE >R ; IMMEDIATE 14:12:55 Herkamire: Yes, and that has its roots way back in the earliest Forths. 14:13:32 ASau: I and others (i440r comes to mind) call it for/next or for/nxt instead of times/repeat 14:14:11 Herkamire, I use less new words. 14:15:24 ASau: what do you mean? 14:15:37 is TIMES/REPEAT an old word? 14:16:04 Herkamire, I define only one new (and clear!) word instead of two unclear ones. 14:16:36 you're use of REPEAT was not clear 14:16:52 here is my TIMES: 14:16:53 : times 14:16:53 [ over 0 > ] [ tuck >r pred >r call r> r> ] while 2drop ; 14:16:56 Hey, I didn't intend on starting a flame war here. 14:16:57 hehehe :) 14:17:00 Is "repeat N times" unclear? 14:17:03 I only asked for clarification so I could grok the definition. 14:17:47 FWIW here's mine: : ,for _ctrpush r-tos _mtctr ,drop here ; 14:19:16 slave, reidrac: I've also got a C Forth-like project. 14:19:22 slava, rather. 14:19:28 hi madgarden 14:20:06 Hallo! 14:20:22 Privet! 14:21:52 x TIMES ... REPEAT is nice syntax I think 14:22:00 Why do you like C? Complexity is practically the same (if it's not even higher) as in asm and you get all those libc-es. 14:22:04 slava, since you guys were talking about your game-related Forth scripting, I thought I'd chime in. ;) 14:22:14 madgarden, :) 14:22:20 for/next is just farmilliar because of C 14:22:30 ASau, not everyone wants to write in ASM and port to each CPU. 14:22:31 Herkamire: Actually, because of BASIC. 14:22:36 ASau: Well, I'm a C programmer mostly, and I want to use this Forthy system for scripting/extension, etc. 14:22:56 madgarden, what are you hacking? 14:22:56 madgarden: FICL might be of interest to you then. 14:23:04 But I imagine I'll make some ASM Forths at some point... probably when I get a proper electronics workshop set up. 14:23:07 kc5tja: :) yeah, I know C wasn't the first to use for/next, but I didn't know what language was. 14:23:14 Herkamire, I don't like "for"/"next" since my ZX BASIC. I don't understand the semantics. 14:23:27 --- quit: Nutssh ("Client exiting") 14:23:30 kc5tja: Yea, I have looked at FICL a fair bit during as research for Forthy. 14:23:37 But, FICL isn't quite suitable for my needs. 14:23:47 My Forthy system is a bit like a cross between FICL and Lua. 14:23:51 ASau: FOR I=1 TO 10:PRINT I:NEXT I will print "1 2 3 4 5 6 7 8 9 10" to the screen. 14:24:00 Herkamire, I could succeed when it'd be "for" var "in" range "do" etc 14:24:17 Herkamire: I have a down-counting for/next. 14:24:34 BASIC was my first language, I just had to use it. :) Plus it wsa simple to implement. 14:24:45 madgarden: mine counts down too, it just uses the count register 14:24:57 BASIC was my first language too 14:25:03 Count-down systems are pretty easy to implement compared to count-up systems. 14:25:13 I didn't use it too long before I needed the speed of a compiled language, and switched to C 14:25:23 kc5tja, I know. "NEXT" is unclear here. 14:25:33 NEXT does what REPEAT does. 14:25:39 Well, it's been a while since I used BASIC seriously. 14:25:43 It re-iterates the loop with the "next" iteration. 14:25:45 kc5tja: yeah, to count up you have to save what number you are counting up to 14:26:19 do/loop just seemed like extra hassle to me, when 95% of the time, I just wanted a simple counted loop. If I need to iterate over a range, it can be done with begin/while/repeat 14:26:35 kc5tja, we speak different languages. English doesn't get complexity. 14:26:47 yeah, I've found that I rarely even use the count. 14:26:57 the address register helps with this 14:27:02 kc5tja, you have to use more sentences where I think one should be. 14:27:14 ASau: Are you finding it hard to understand that the 'next foo' refers to the immediately succeeding foo in a sequence of foos? 14:28:23 ASau: I'm sorry, but really, I fail to see how relative complexities of English versus Russian mesh with this conversation. Last I checked, I explained the semantics of "next" with a single sentence. 14:28:57 kc5tja, yes, it's hard. "PRINT I" is not a separate sentence. The sentence is: "FOR ... NEXT I" 14:29:50 ASau: Well, in English, we have "Repeat the following N times," too. 14:29:56 But we're not talking about English. 14:30:03 We're talking about BASIC and computer programming languages. 14:30:36 Moreover, "Repeat N times" is woefully inadequate when NOT iterating over a simple linear sequence of integers. What if you're choosing elements out of a vector instead? 14:30:51 kc5tja, the more PL is closer to natural language the easier it is. 14:31:05 ASau: I think that's an unwillingness to learn the language of computers. 14:31:26 human languages are inherently ambiguous. 14:31:39 Computers are precise to the point of fault. That disparity must be dealt with. 14:32:05 kc5tja, have you ever tried to undestand first-order predicate written set thery expression? 14:32:14 theory 14:32:52 No, but I have dealt with triple (partial) integrals and multitudes of partial derivates in simultaneous sets of differential equations. 14:33:00 Math isn't English. 14:33:02 English isn't Math. 14:33:10 If one wishes to understand Math, one must learn Math. 14:33:11 Take a look at ZFC written in first-order predicates. 14:33:19 ASau: I strongly dissagree. In my experience the more a programming language tries to be like english, the harder it is to program in 14:33:27 english is very ambiguous 14:33:29 This is as applicable to Set Theory as it is to Analytical Theory. 14:33:45 this makes it hell to debug, and sometimes difficult to express exactly what you want to happen. 14:34:24 One need only look to AppleScript or COBOL to see what happens when a PL approximates English (or any other natural language) to a large degree. 14:34:47 Verbosity goes through the roof, let alone subtle bugs introduced by English Common Usage and dialects. 14:34:50 kc5tja: yeah, the most english-like language I've used was AppleScript. god 14:34:51 Herkamire, if you use abbreviations or fixed forms this makes no sense but simplifies programming. 14:35:22 ASau: what makes no sense? 14:35:26 ASau: This is how the language of mathematics came about. Every symbol in math used to be expressed as natural language sentences. 14:35:38 ASau: Today we don't use them. Natural language takes too much space, and is too imprecise. 14:35:45 s/if you use/use/ 14:36:07 When adding a number to a list, does that mean to append the number to the end of the list, or add the number to each element of the list, producing a new list of sums as a result? In English, without further context, there is no way to know. 14:36:47 kc5tja, no mathematician would agree to write articles in first-order predicates. 14:36:59 ASau: Please stop changing the argument. 14:37:05 Though, everything can be written in such form. 14:37:33 Consider natural expressions as abbreviations. 14:38:15 BTW, I've been googling for First Order Predicates and all, and I have to admit, my entry-level Calc book si *FULL* of the same symbols (with the same meanings) as FOP. 14:38:24 Consider writing code directly. In HEX for example. 14:38:29 Hence, I have to conclude that mathematicians use it all the time, for all publication purposes. 14:39:27 kc5tja, they use it. But not as the main language. 14:39:53 Well, articles and books are written in English (or German, as is the case of one book I used to own). 14:39:57 "Control structures" are expressed in natural. 14:40:21 But when the first chapter is all math symbology for at least 50% of the content, if not more, you still must have a *firm* grasp of mathematics to understand/read the material. 14:40:43 I've only seen "control structures" expressed in natural language in only the most *elemental* math texts. 14:41:14 Most other texts either use vector notation to express implicit iteration (e.g., capital sigma, capital Pi, et. al.), or use the first-order predicate logic. 14:41:52 It is the only way to succinctly and unambiguously (and in a language independent way) express concepts. 14:42:12 Even in this case more than half an article is written in natural language. 14:42:24 ASau: No, that's not what I said. 14:42:32 try expressing this in english: : square times dup times 48 emit repeat repeat drop ; 14:42:34 I said at least half is written using pure mathematical notation. 14:43:08 : square times dup times 48 emit repeat cr repeat drop ; 14:43:22 : square times times 48 emit repeat cr repeat drop ; 14:43:26 : square times times 48 emit repeat cr repeat ; rather 14:43:52 The function square returns a matrix of the shape (w,h), where w and h are the width and height, respectively. 14:43:58 you need the dup because the inner times eats a token off the stack each time through the outer loop 14:44:47 kc5tja: that describes what it does, I meant try instructing the computer how to do that in english 14:44:58 Oh. You can't. 14:45:08 exactly 14:45:16 english is horrible for programming 14:45:30 At some point, something uncomfortably close to a mathematics notation is required. 14:45:53 To draw a square, render a matrix of asterisks that is w by h in size. 14:46:01 BUT 14:46:05 what does "render" mean in this context? 14:48:58 I think postfix notation simplifies things and removes apparent ambiguities 14:49:35 Even so. 14:50:44 in C you have to know the complex rules of operator precedence 14:51:21 I like J's rules of precedence. Adverbs are executed before verbs. End of discussion. :D 14:51:30 *var++ takes a while to figure out the first time 14:52:46 5 - 2 + 3 14:53:03 In J, it'd be interpretted like this every time: 14:53:07 *(var(++)) 14:53:11 5-(2+(3)) 14:53:35 Eg, it's very similar to how Smalltalk interprets its method invokations. 14:54:03 I like how forth the order is explicit and obvious without _any_ extra symbols: 5 2 - 3 + 14:54:25 Yes. 14:54:40 so in J you just have to know what's an adverb? 14:54:53 But you can't write a fractal generation program in Forth in only 8 lines of code. :) 14:55:06 Herkamire: There are so few adverbs that it's easy to do. 14:55:10 I'll have to try that :) 14:55:17 kc5tja: cool :) 14:55:32 THey have specific interpretations to. Like / means 'insert into' or 'over' in math. So +/ is the operator which sums *over* a list. 14:55:49 cool 14:55:58 K has even fewer adverbs than J does. 14:56:36 you talking mandelbrot? 14:57:02 Yeah. 14:57:09 It was something really simple. but still. :) 14:57:39 speaking of mandelbrot :) someone just contacted me through the form on my website interested in seeing the source code for my mandelbrot/julia generator for mac 8.6 14:57:53 intending to try porting to windoze 14:58:09 mandelbrot is very simple 14:58:58 it's a little more complex if you don't want to compute all the pixels in the middle of black areas (you can safely skip them as there are never islands of color within black areas) 14:59:34 I was going to write a mandelbrot generator in herkforth, but I don't have any facility with floating point 15:00:04 not sure I need it, but I got discouraged and did something else 15:04:39 * kc5tja nods 15:04:39 --- quit: qFox (Read error: 54 (Connection reset by peer)) 15:04:47 I could do it with fixed point if I just added an instruction to give me the high word of the multiplication result 15:05:18 I'm not too excited about having a fractal generator with only 32 bits of precision though 15:06:35 but maybe if I have fun I'll use altivec and do high enough precision that I can go deeper in than I did with doubles on mac 15:09:36 What I find fascinating is that the Mandelbrot set appears inside a Julia set, and vice-versa. 15:09:43 (at least for some values of c) 15:10:05 yeah. 15:10:51 julia set is a cross section through that value of C on the mandelbrot set I believe 15:11:22 I love how they look sorta the same, but the julia is a full picture, that looks like that _part_ of the mandelbrot 15:14:26 I could to a quick mandelbrot thing with just 10 bits past the decimal point. I think that would be enough for showing the whole set 15:14:39 then I can just do a multiply and a shift 15:15:33 I'll put it on my todo list to try an 8 line mandelbrot 15:15:35 There was this one site I had a link to this morning, but now I can't find it. 15:15:44 They did Julia and Mandelbrot sets with 8000 repetitions. 15:15:59 iterations 15:16:00 ? 15:16:04 Good lord, it had *awesome* resolution and coloring. It was literally like looking at astronomical objects. 15:16:09 Wow. 15:16:29 8000 iterations is enough to zoom in for a while right? 15:16:35 Yes 15:16:37 Yeah, heh. 15:16:46 Normally 100 is plenty. 15:16:51 my generator uses more iterations the farther you zoom in 15:16:59 Maybe that's what I should spend some computer time doing. :) 15:17:12 so you can go in untill doubles aren't accurate enough to get different values for the different pixels 15:17:25 ok, I gotta 15:17:26 go 15:17:27 * Robert thinks about using GMP. 15:17:29 OK, bye. 15:23:09 Herkamire: How does one go about determining color of a Mandelbrot set pixel? 15:23:42 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 15:24:41 kc5tja: Iterate Z = Z^2 + C, until |Z| > 2. The color is the number of iteration required. 15:24:59 I see. 15:25:09 kc5tja: Where C is the point you want to determine the color of, and Z[0] = (0,0) 15:30:57 Argh! 15:31:16 Just got digital cable hooked up yesterday, got a set-top box for it, etc. 15:32:28 And I had to change the cable hookup order the cable guy set up so that I can record on the VCR while watching another channel (otherwise I'd have to press record on the VCR and change the channel on the box. :-/) 15:32:57 So I go to the VCR menu to set the timer for some shows I want to tape, with my new cable->VCR->box->TV setup... 15:33:23 ANd the menu now doesn't adhere to the rules of vertical hold, and slowly scrolls up the screen as I'm trying to program it. 15:42:57 --- join: matt____ (1000@adsl-64-171-255-195.dsl.snfc21.pacbell.net) joined #forth 15:43:01 --- nick: matt____ -> Sonarman 15:45:29 --- join: cleverdra (irc@206.61.132.99) joined #forth 16:46:48 hi cleverdra 16:47:51 hello slava. 16:49:49 i'm working on some string manipulation words for my language. 16:55:05 --- quit: Sonarman ("leaving") 16:58:40 --- quit: proteusguy (zelazny.freenode.net irc.freenode.net) 16:58:53 --- join: proteusguy (~proteusgu@65.196.135.240) joined #forth 17:08:03 --- join: Sonarman (~matt@adsl-64-169-95-218.dsl.snfc21.pacbell.net) joined #forth 17:13:35 check out the image at google.com :) 17:13:47 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 17:13:56 it must be mandelbrot's birthday or something 17:14:50 I think it's the anniversery of the discovery of fractals. 17:15:38 What anniversary? 17:15:52 80th? 17:15:52 The discovery of fractals. 17:15:56 oh 17:15:58 Sorry. :) 17:16:03 No idea. 17:17:10 Joilia worked at the beginning of the century, IIRC. 17:17:20 Yep. 17:17:20 About 10-20th. 17:17:55 Mandelbrot originally disregarded Julia's work as irrelavent too. It's funny that 40(?) years later, he'd go right back to that branch of math, and end up revisiting Julia's work. 17:18:43 Hm. If we count since Mandelbrot, we possibly could say 20th ann. 17:19:35 I don't know history of math. 17:20:34 Nor I. Maybe someday, when I have the time to do all the research I'd like to do. :/ 17:20:37 In chemistry it is usual to count since first occurrence in works. 17:21:13 Well, we know that Julia predated Mandelbrot. 17:21:29 I like math more than its history. ;) 17:21:29 But Mandelbrot was the first to popularize the concept, create a whole science around them, and find applications for them. 17:21:36 I remember Rares telling me about a machine in WWII that produced fractals 17:23:13 kc5tja, Bach is known because Hendel popularized him. 17:23:47 Sure, and as musicians conduct research, they inevitably uncover earlier, more unknown musicians. 17:23:47 We say "Bach" not "Hendel". 17:24:26 ASau: We say both Bach and Hendel. It depends on what kind of music you're referring to, and what era. 17:24:36 slava: What sort of words? 17:24:37 Classical music undoubtedly predates those two. 17:24:58 There were some cases when earlier works has been discovered. 17:25:06 madgarden, just random crap, like "hello world how are you" #\s split == [ "hello" "world" "how" "are" "you" ] 17:25:29 ASau: I invite you to talk to my roommate Andy sometime, a graduate from UCSD's music department. 17:25:33 ASau: if you want to study something quite facinating, study violin design 17:25:40 ASau: "Some" is hardly an apt description. 17:25:47 kc5tja, classic math. history: Bolzano 17:25:55 slava: always useful, those. Are your strings stored as actual objects on the data stack? 17:26:15 I have an Amati-style violin here bearing the name of Andreas Guarnerius along with a Strad-copy 17:26:24 the changes between the two is sometimes dramatic 17:26:34 kc5tja, I'm not interested in violins. 17:26:34 and the difference in the design-age is only 40 years 17:26:48 kc5tja, I'm accordionist. 17:26:55 ASau: Huh? 17:26:58 madgarden, yes, ther's objects & gc, since its in java. 17:27:04 ASau: I'm not talking about violins. 17:27:08 ASau: Um, I'm not kc5tja 17:27:39 Sorry. 17:27:46 it's ok 17:28:19 slava: Oh yea, java. ;) I suppose my setup is similar, though I don't use a "gc" per se. 17:28:32 Line runs, I follow. 17:28:38 madgarden, what's your forth like? 17:30:26 slava: Well, basically, if the object gets popped of of the stack, or gets written to in a variable, then it gets destroyed. For things like integers this is just a value-overwrite, but stuff like strings, they get deleted. And I use reference counting for addresses. 17:30:50 madgarden, so the whole string gets copied? 17:31:22 slava: Depends on the situation. 17:37:43 madgarden: If you copy entire memory regions and data structures, you won't need even reference counting. 17:37:54 madgarden: Google for Henry Baker Linear Memory Management 17:39:25 kc5tja, does this allow for having variables? or is it for stack-only languages? 17:39:54 slava: It does allow for variables, but it has a unique property: a variable can be assigned to once, and a variable can be read/used only once. 17:40:10 kc5tja, hmm 17:40:18 E.g., once a value is referenced in a computation of some kind, whether a simple integer or a whole database, it gets "consumed" in the operation. 17:40:21 kc5tja, so you have to sort of 'dup' variables? 17:40:31 Yes, explicit 'dup'-ing is required. 17:41:04 Now, obviously, if you do this often enough, it'll slow the system way, way down. :) 17:41:23 Like I said, read Professor Baker's papers on the topic. he has several. 17:41:54 With a sufficiently smart compiler, or with sufficiently intelligent programming by the coder, or both, you can optimize out many of the explicit dupes. 17:44:59 kc5tja, is this technique practical? sounds like it is harder to code this way. 17:46:19 kc5tja: Well, my system is written in C, and is intended to be highly crash resistant. So, allowing direct pointers to a word's XT, for instance would suck if the word got deleted and the XT was still around to get EXECUTEd. 17:47:31 madgarden, use GC 18:02:03 slava: Well, I do have a sort of GC, as I said, and it uses reference counting. 18:02:26 madgarden, reference counting is much slower than a 'real' gc. 18:02:39 madgarden, java's generational gc takes 10 instructions to allocate an object in the nursery. 18:02:56 slava: You pretty much code that way whenever you code in Forth anyway. 18:03:13 kc5tja, getting a var value only once? 18:03:38 slava: When you manipulate some structure, and you need to retain it for later processing in another calculation, you must DUP it. 18:03:47 well yes 18:04:03 True, Forth doesn't have the concept of structures OR of memory management, so you don't generally see duplicating data structures all the time. 18:04:04 slava: The thing is, I only ever need a reference when explicitly asked for. And it goes away when popped or overwritten. I don't see how GC is any better than this. My reference counting is simply a way to have safe pointers to memory. 18:04:17 Moreover, you probably wouldn't even if you DID see those things, because the human programmer would opimize all those out. 18:32:59 reading up on generational GC... 18:33:11 That's my favorite kind of GC. 18:33:42 sun recently added an optional 'concurrent' gc to java. i'm not sure what this is. 18:33:55 I did reference counting because it made sense at the time. Especially since I could create a dead reference if some object got deleted under a reference that was being used. 18:34:16 slava: Concurrent GCs run the garbage collector as an independent, background task or thread. 18:34:48 So the program never abruptly "stops" while working with data, because the GC is always running, even while the rest of the program is running to. 18:34:51 too even 18:35:32 kc5tja, well the jvm already has 'incremental' gc, pauses don't happen anymore. i think concurrent is where the gc can be run on another cpu... 18:37:50 --- part: Nutssh left #forth 18:44:19 Yep. It's a refinement of an incremental GC. 19:01:03 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 19:04:54 --- join: karry (~mike1@65.244.85.62) joined #forth 19:05:30 hi 19:05:53 Hi 19:08:00 --- quit: Robert ("brb") 19:14:05 --- quit: karry ("thanks") 19:15:06 --- join: I440r (~mark4@204.110.225.254) joined #forth 19:15:45 heh im im memphis ak (on the boarder with tn) in a flying j truck stop using a wireless connection :) 19:24:58 --- join: proteusguy (~proteusgu@216.27.161.121) joined #forth 19:36:28 * kc5tja will have to get to homework here pretty soon. 19:36:35 * kc5tja has spent entirely too long on the 'puter., 19:38:22 heh 20:01:25 --- quit: I440r ("Leaving") 20:23:36 --- quit: downix ("Leaving") 20:46:42 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 21:07:43 --- quit: ASau () 21:17:22 --- quit: madgarden (Read error: 110 (Connection timed out)) 21:30:35 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 21:43:38 how do you do floating point literals in gforth? 21:43:44 numbers 21:43:48 f2.0 21:45:50 ahh found it. 2e 21:47:52 Hey guys I need advice. 21:49:38 what, warpzero? 21:49:52 What is a good 19" monitor? 21:50:04 warpzero - one with a name that rhymes with 'LCD'. 21:50:19 cleverdra: WAY too expensive. 21:51:17 $825 is a bit out of my price range. 21:53:48 --- part: Nutssh left #forth 21:59:14 kc5tja: ok, here's my mandebrot generator for gforth written in 8 lines :) 21:59:32 http://jason.herkamire.com:5000/mandelbrot.fs 22:00:03 gforth mandelbrot.fs > mandel.ppm; xview mandel.ppm 22:01:29 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576375.sympatico.ca) joined #forth 22:01:56 * warpzero can't wait to be able to program that kind of thing in AF 22:02:01 Herkamire: I can barely see it, but otherwise cool. 22:02:39 Argh... gateway hung. Did I miss anything cool? 22:03:36 contrast... change the 15 to 50 22:03:57 my monitor has very good contrast for dark colors (and I don't have any lights on... 22:04:47 madgarden: I posted a mandelbrot generator in gforth. 22:06:49 Oh cool... 22:07:03 pretty cheezy. the goal was to fit it 8 lines 22:08:07 --- join: Serg (Serg_Pengu@212.34.52.140) joined #forth 22:10:30 well, I'm off to bed. 22:10:35 --- quit: Herkamire ("goodnight all") 22:12:37 Is it just me, or is WORDS pretty much useless once the dictionary has more than a couple words in it? Alphabetical would be nice... 22:26:26 --- join: _proteus (~proteusgu@216.27.161.121) joined #forth 22:28:36 could anyone DCC to me Herkamire's mandelbrot.fs? he left :( 22:29:07 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 22:30:02 Sonarman: He left a URL for it above. 22:30:21 http://jason.herkamire.com:5000/mandelbrot.fs 22:30:43 madgarden: WORDS is useless in 99% of the times I've used it. :) 22:31:01 he turns off that computer when he goes to bed 22:31:12 Ahh 22:31:22 It's only 8 lines; I can post it here if you want. 22:31:28 * kc5tja can't DCC it due to firewall. 22:31:40 ok, that would be cool 22:31:41 thanks 22:32:01 fvariable ci fvariable c fvariable zi fvariable z 22:32:01 : >2? z f@ fdup f* zi f@ fdup f* f+ 4.0e f> ; 22:32:01 : nextr z f@ fdup f* zi f@ fdup f* f- c f@ f+ ; 22:32:01 : nexti z f@ zi f@ f* 2.0e f* ci f@ f+ zi f! z f! ; 22:32:01 : pixel c f! ci f! 0e z f! 0e zi f! 100 15 do nextr nexti >2? if i unloop 22:32:04 exit then loop 0 ; 22:32:07 : left->right -1.5e 200 0 do fover fover pixel emit 0.01e f+ loop fdrop ; 22:32:09 : top->bottom -1e 200 0 do left->right 0.01e f+ loop fdrop ; 22:32:12 .( P5) cr .( 200 200) cr .( 255) cr top->bottom bye 22:32:17 It outputs a .PPM file 22:32:30 usage: gforth mandel.fs > mandelplot.ppm 22:32:36 Then use something liek gqview or xview to view it. 22:34:41 thanks 22:37:34 --- quit: Sonarman ("leaving") 22:38:57 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 22:45:39 whats the diff between fvariable and variable? 22:46:47 fvariable is for floats... all the words you see starting with f in that code are. 22:55:10 There is no variable. 23:05:48 There is no spoon! 23:12:02 Global symbol "spoon" requires explicit package name at ./.pl line 3. 23:25:09 --- quit: Serg () 23:57:02 --- join: imaginator (~gps@166.70.196.201) joined #forth 23:59:59 --- log: ended forth/04.02.03