00:00:00 --- log: started forth/04.02.01 00:02:24 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 00:16:18 --- quit: Herkamire ("leaving") 01:10:17 --- join: Nutssh (~Foo@gh-1029.gh.rice.edu) joined #forth 02:10:20 --- quit: Nutssh ("Client exiting") 03:10:40 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 04:14:51 --- join: Robert (~snofs@c-185a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 04:26:26 --- join: scope_ (~junk@njd.paradise.net.nz) joined #forth 04:26:26 --- quit: scope (Read error: 104 (Connection reset by peer)) 06:58:32 --- quit: cmeme (Success) 07:27:18 --- quit: qFox (Read error: 104 (Connection reset by peer)) 07:27:19 --- quit: arke (Read error: 104 (Connection reset by peer)) 07:27:31 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 07:27:40 --- mode: ChanServ set +o kc5tja 07:30:03 --- join: ASau (~asau@158.250.48.196) joined #forth 07:31:36 --- join: arke (~arke@melrose-251-251.flexabit.net) joined #forth 07:32:06 Dobryjj vecher! 07:32:39 privet 07:33:00 Privet, mur y ASau 07:33:10 Or whatever the word for "and" was :) 07:34:07 i 07:34:15 Spasiba 07:34:16 or y 07:34:25 depepnding on translitteration 07:34:39 I'll use "i" then, sounds more Swedish :P 07:39:02 "i" 07:39:45 There's no "y" as first character in a word. 08:39:46 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:48:52 --- join: rO| (rO_@pD9EE1B1B.dip.t-dialin.net) joined #forth 08:49:59 * rO| greets 08:50:06 Hi 08:50:18 Did you manage to run colorforth? 08:50:49 nope, alex contacted then 08:52:02 Dobryjj vecher, rO|! 08:52:29 Dobryjj vecher, ASau! ;-) 08:56:33 who has eforth experience in here? 08:56:53 someone seen thefox lately? 08:57:09 No. 08:58:36 rumours are, chuck's chip will be launched soon 08:59:23 Neat.. 09:01:50 ultratech's onlineshop currently offline, someone knows why (and since/until when)? 09:24:25 What interests you in eforth? 09:24:53 Eforth is somewhat similar to my Forth. 09:25:41 Why not use Ting's site? 09:38:56 ASau: your forth? .. 09:39:36 I also use asm-written one. 09:40:08 ting's site is unavailable, what's your url? 09:40:58 Use http://dmoz.org/Computers/Programming/Languages/Forth/ 09:41:27 IIRC, something like www.eforth.tw 09:41:35 Or .com.tw 09:54:22 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 09:54:44 Dobryjj vecher! 09:54:58 --- quit: I440r_ ("[BX] Homer Simpson uses BitchX. D'OH! D'OH! D'OH!") 10:10:57 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 10:22:54 --- join: chandlerG5 (~chandler@d-84-77.dhcp-149-159.indiana.edu) joined #forth 10:23:00 --- nick: chandler -> chandler` 10:23:20 --- nick: chandlerG5 -> chandler 10:25:09 --- quit: chandler (Client Quit) 10:27:57 --- nick: chandler` -> chandler 10:35:21 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 10:36:02 Hi 10:36:57 hi Robert 10:37:02 Hi slava 10:44:50 --- join: Sonarman (~matt@adsl-64-169-95-56.dsl.snfc21.pacbell.net) joined #forth 10:48:06 --- quit: rO| (Read error: 60 (Operation timed out)) 10:56:35 --- join: dubious (~marc@209.71.234.197) joined #forth 12:00:41 --- join: blockhead (default@dialin-193-tnt.nyc.bestweb.net) joined #forth 12:02:46 Dobryjj vecher! 12:02:55 --- join: Nutssh (~Foo@gh-1029.gh.rice.edu) joined #forth 12:03:09 Dobryjj vecher, Nutssh! 12:03:48 ASau, is it always the evening where you are? :) 12:04:37 Hi! 12:06:02 Slava, no. It's because I come here in evening. 12:06:24 :) 12:06:24 Sometimes it's morning "here". 12:06:30 ASau, you're working on your own forth too? 12:06:58 No, I'm working on applications mainly. 12:07:20 But I improve my forth by the way. 12:08:18 what's your forth like? 12:08:59 FIG-Forth derived. 12:09:23 Once it was "FIG-Forth 1.0" :) 12:10:28 I hope soon I'll get rid of all these DO's and LOOP's. 12:11:06 my language has no real loops, everything is recursive -- loops are just defined as functions that take some code on the stack, call the code, and recurse if needed 12:11:42 I see you go Joy way. 12:12:07 yes. hopefully it will be faster than joy :) 12:12:29 also in joy all the primitives are written in C -- in my language there are only 22 primitives. 12:12:44 I see you make some Joy's mistakes. 12:12:57 Or drawbacks. 12:13:03 --- quit: I440r ("brb") 12:13:58 ASau, what are joy's mistakes? 12:14:42 When you go functional way, you should consider partial application. 12:15:16 Joy does: if 12:15:27 indeed 12:15:34 Better is: if 12:15:45 why? 12:15:59 often the condition is a parameter you receive on the stack 12:16:01 So you could write: on-positive ::= 0> if 12:16:12 so its nice to write : foo ... [ then ] [ else ] ifte ; 12:16:20 in joy, ifte takes a separate quotation as the condition 12:16:24 not so in my language 12:16:30 ifte pops 2 quotations, and a boolean from the stack. 12:16:57 I think you never programmed functional style. 12:17:03 go down bill dalton it must be gods will 12:17:15 : on-positive [ 0 > ] dip when ; 12:17:30 or 12:17:35 What's "dip" 12:17:36 ? 12:17:44 : dip swap >r call r> ; 12:18:11 You see you need complex and unnecessary word here. 12:18:39 i can define a word : ASau-if dip when ; 12:18:47 : on-positive [ 0 > ] ASau-if ; :-) 12:19:08 or even better 12:19:27 : ASau-if swap [ swap ] dip ifte ; 12:19:48 no sorry :) 12:20:25 : ASau-if [ swap ] dip swap ifte ; 12:20:28 or 12:20:41 ~<< ASau-if-shuffle cond then else -- else then cond >>~ 12:20:46 : ASau-if ASau-if-shuffle ifte ; 12:20:51 Have you ever seen books on lambda calculus and combinatory logic? 12:20:55 yes 12:21:32 Then why do you invent mixes postfix-prefix combinators? 12:21:38 mixed 12:21:44 like what? 12:22:03 you mean : foo ... ;? 12:22:08 this is just syntax sugar for "foo" [ ... ] define 12:22:20 Classic prefix is: if 12:23:06 If you make it postfix it should be: if 12:23:46 Also this helps to program: eliminates many unnecessary "swap"-s 12:24:06 you're saying should be a quotation? 12:24:19 or a boolean? 12:24:30 if its a boolean, then if makes no sense. 12:26:07 If you use quotations and values in parallel, then it makes no sense. 12:26:25 what do you mean? 12:26:48 If you want functions as first-class objects, this does. 12:27:40 I mean you want develop postfix LISP and do this wrong way. 12:28:15 you still haven't explained why it is the wrong way, except giving the on-positive example that doesn't make sense. 12:28:22 is 0> evaluated or pushed onto the stack? 12:28:38 if it is evaluated, then most uses of on-positive will need to look like this: [ some code to execute ] swap on-positive 12:28:46 Pushed. 12:28:49 --- join: rO| (rO_@pD9EE1A97.dip.t-dialin.net) joined #forth 12:28:49 if it is pushed on the stack, then... the syntax is odd 12:29:00 slava: my language has no primitives 12:29:04 It's evaluated whet "if" is interpreted. 12:29:11 don't you mean on-positive ::= [ 0> ] if then? 12:29:22 how will it know, when reading 0>, that it should push it *before* seeing the if? 12:29:58 warpzero, explain 12:31:01 slava: no primitive variable types and no primitive operations except if and unless 12:32:06 warpzero, so how is everything defined? 12:32:20 with the language 12:32:33 + is a bunch of if and unless? 12:32:48 huh? 12:32:57 warpzero, how is the addition operator defined then 12:33:07 by the language 12:33:16 what does it look like? 12:33:19 inline assembly? 12:33:28 there is a + operator but its not 'add' 12:33:42 warpzero, what is this language like? 12:33:51 kinda like 12:33:57 Hm. So you say "ifte" returns continuation when partially appied? 12:34:00 a super-concurrent version of VHDL 12:34:54 ASau, no, ifte does not return a continuation. 12:35:28 ASau, continuations are explicitly captured using a few scheme-like callcc operators. 12:35:54 i think you can make a turing complete language with just 'if' though 12:36:41 warpzero, yup -- of course you need recursion as well, either explicit or with something like the Y combinator 12:36:55 slava: what 12:44:16 Slava, I don't understand your goal. 12:44:51 Why do you want first-class word sequences? 12:49:29 to allow control structures to be defined in the language itself. 12:49:54 and to simplify syntax. 12:51:51 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 12:52:18 sup I440r 12:52:42 --- quit: Nutssh ("Client exiting") 12:53:06 hi :) 12:53:16 hi 12:53:33 packing - moving 12:55:48 prolly wont be online much after today 12:55:56 :(? 12:56:19 contract ended. going back to indiana. no decent connection there so... 12:57:30 Hi 12:57:47 Oh, do you have any idea what you'll do now? 12:58:09 I440r: irc doesn't take much bandwidth :( 13:01:39 the cK language is really weird. 13:01:59 if you evaluate + with only 1 value on the stack, say 3, instead of signalling an overflow, it pushes a quotation on the stack { 3 + } 13:02:13 and when another word pops it off the stack for use as a value, it is automatically evalauted. 13:02:32 i'm not sure i understand the significance of this 13:03:17 its error free 13:03:36 thats pretty cool 13:03:42 yes but if you evaluate some code with too few elements on the stack it will just keep on pushing bigger and bigger quotations 13:03:43 Slava, all Forth control structures are defined in Forth, except primitive BRANCH ?BRANCH. 13:04:05 ASau, but in forth you need immediate words 13:05:07 Slava, yes, we need them. But in your case quotations are frequent. 13:07:14 ASau, also the continuation code constructs quotations at runtime. at the moment, nothing else does this. 13:08:02 lisp? 13:08:03 Hm. You can call INTERPRET when you need. 13:08:29 warpzero, no. a postfix language similar to forth in some ways. 13:08:51 no i mean constructing quotations 13:09:08 warpzero, oh i mean nothing else in my language's library 13:09:14 warpzero, of course lisp macros do this, etc 13:09:22 I see one advantage: you can create anonymous words, use them and forget when collecting garbage. 13:09:37 ASau, indeed. 13:09:42 I think I could do this in Forth. 13:09:50 --- quit: blockhead ("Client Exiting") 13:10:31 my language doesn't even have expressions lol 13:10:31 ASau, I'm not really aiming for theretical purity, or a new paradigm in my language. I just needed a scripting language for a game I'm working on, and decided to cook up something postfix :) 13:10:35 Slava, how do you compile? Threaded code? 13:11:03 ASau, since my language is hosted on the java virtual machine, code is compiled into JVM bytecode, and then the JVM compiles this into assembly. 13:11:12 Slava, why not Forth? 13:11:20 warp no but my father us a tyrant, he dont let anyone online for more than 5 or 6 minutes at a time heh 13:11:26 ASau, not all code can be compiled; anything that construts quotations on the fly, or anything that uses continuations. 13:12:00 why not forth? hmm 13:12:01 I440r: :( 13:12:04 i wanted to make something new 13:12:28 Slava, you can go so that you'll be able to call INTERPRET when you need it. 13:12:48 what advantage does this get me over the way I do it right now? 13:12:57 slava: If you also added "breaks" to the stack on calls or something so that you can make push-after very useful? 13:13:28 warp ill be online every now and then heh 13:13:47 Slava, first, you can share someone's code. Second, you can get help. 13:14:35 Here or any other place. 13:15:09 well like i said i didn't want to just make another forth implementation... i wanted to create a new language. its like a learning experience. 13:15:18 I440r: now we will be at the hands of kc5... NOOOO 13:15:31 ASau, forth's untyped model does not fit very well with the JVM. 13:15:47 ASau, in my language +/-/*// are overloaded to work with ints, floats, bignums, ratios 13:16:07 ASau, there is no need for a sepearate floating point stack 13:16:21 Slava, there're strong typed Forth-likes. There is Forth for JVM, IIRC. 13:16:44 lol 13:16:50 slava: If you also added "breaks" to the stack on calls or something so that you can make push-after very useful? 13:17:04 i think kc5 should take over ownership of the channel 13:17:16 its still MY channel tho :P\ 13:17:27 all your forth are belong to me 13:17:37 warpzero, what is a break on call? 13:17:49 Slava, you can overload them for floating point numbers and any other ones too at your wish. 13:18:04 brb 13:18:14 slava: you could add to the stack a break? so that it prevents called functions from poping too many tings? 13:18:15 Slava, I can suggest some ways to get this. 13:18:31 warpzero, well i just raise an error :) i'm not sure what you mean exactly. 13:18:39 ASau, do you have a JVM? 13:18:55 slava: scince at the end of the stack you start forming quotes this would be useful at all places in the stack? 13:19:14 warpzero, i don't form quotes on the stack -- cK does 13:19:21 slava: oh 13:19:35 --- quit: scope_ ("leaving") 13:22:24 ASau and warpzero, if you're interested d/l http://slava.kicks-ass.org/slava/Factor.jar. you need sun's jdk 1.4. i intend to get this to work with GNU GCJ too -- it is trivial, since I don't use any GUI libraries. 13:22:43 that JAR is slightly out of date--the compiler is pretty lame. i'll upload my latest tree a bit later, when it works better. 13:22:54 eh 13:22:56 sok 13:23:00 sok? 13:23:03 i have my own language to fuck with 13:23:15 is it postfix? 13:23:37 types are a crutch for poor programmers 13:23:43 - chuck moore 13:23:49 however 13:23:50 i disagree :) 13:23:57 chuick is a heretic :) 13:23:59 maybe static typing where everything has to be declared 13:24:02 but then so am i heh 13:24:08 but dynamic typing is fun 13:24:19 why would i want to use the bit pattern of a float as a fixnum, etc? 13:24:36 im a dynamic typer - they way i type any given word can be different ever time 13:24:37 heh 13:24:37 slava: it doesn't have expressions dude 13:24:53 warpzero, i give up :) 13:24:53 every 13:25:15 slava: you know postfix/prefix/infix are all types of expressions 13:25:22 warpzero, yes 13:25:26 warpzero, how can you not have expressions? 13:25:30 it doesn't have them 13:25:31 warpzero, post some sample code. 13:25:32 easily 13:26:13 of what 13:26:18 anything. 13:26:23 --- part: dubious left #forth 13:26:24 Event merging: # < $ *integer c $ < $ *integer a $ *integer b [ ^ ^ ] > r # *util.equal e1 [ 0 c ] [ # <> [ c <> [ # *r.a ] [ 1 c ] ? 0 ] [ c <> [ # *r.b ] [ *r # ] [ 0 c ] ! 0 ] > 13:26:55 there is some sample code 13:27:20 how is this not an expresion? 13:27:24 its not 13:27:33 what is $ and # 13:28:05 1. $ 13:28:06 1. Internally names a in 13:28:06 2. The first argument is a 'type' and the second is a 'name'. 13:29:06 warpzero, are you designing your own ICs? 13:29:11 no 13:29:21 why VHDL then? isn't that what its used for? 13:29:42 it just kinda works like vhdl 13:29:46 its erally nothing like it 13:30:00 its for software not hardware 13:30:24 its super-concurrent too 13:30:37 what kind of programs are you going to write in it? 13:30:43 daemons 13:30:53 network servers? 13:31:11 stuff like mail/irc daemons 13:31:30 ok 13:31:51 which its going to fail at because the code is so fucking ugly but oh well 13:32:50 i wrote an httpd in my language, it was pretty easy. 13:33:00 it does directory listings, server side scripts, but otherwise its kind of lame 13:33:22 your language is implemented in java? 13:33:36 i want to use it for the help system though -- so you can browse a dynamically generated list of word definitions and their descriptions, and have the code be syntax highlighted, etc 13:33:59 warpzero, yes, the interpreter and compiler is written in java; the compiler outputs JVM bytecode. eventually the compiler will get rewritten in the language itself. 13:34:36 must go slow 13:35:07 no, its quite fast. i'm sure its faster than gforth, or most lisps. 13:35:24 what 13:35:30 it goes fast and its written in jav 13:35:31 a 13:35:33 word definitions are compiled into assembly by the JVM. 13:35:36 that makes no sense 13:35:43 gcj? 13:35:49 gcj is slow as shit 13:35:58 sun's jvm is *very* fast these days. the GUI library is slow. 13:36:10 an object allocation is 10 machine instructions. this is much faster than, eg, malloc(). 13:36:28 when did that happen 13:36:35 i want to get my language to run on gcj though 13:36:42 so that it works with an all-free software base 13:36:59 AF will probably go faster though, because it doesn't even need call/ret 13:37:08 what is AF? 13:37:10 your lang? 13:37:13 oh yeah 13:37:17 it stands for Argonflame 13:37:23 http://wza.us/af/ 13:37:32 i'm writing a game in java. but i'm not using java's GUI library, i'm using opengl! its very neat. 13:38:09 coolies 13:38:10 java's problem is memory footprint. 13:38:12 what kind of game is it 13:38:15 its huuuuuuge 13:38:21 warpzero, shoot-em-up/RPG :) 13:38:26 okay 13:38:28 not exciting 13:38:37 oh, it is very exciting. 13:38:44 i want new exciting game in the "typing teacher" genre 13:38:52 :) 13:39:01 because i love playing typing games 13:39:10 write on in your language :) 13:39:26 i keep fucking around with af's spec so i can't implement it 13:40:03 like just last week i axed about half of language and replaced it with # 13:40:43 # is the Y combinator i think you were talking about earlier if i understood you right 13:40:50 aha 13:41:45 the point of the language is clustring/griding though 13:41:55 implicit parallelization is cool 13:42:05 yea 13:42:29 why not write a simpler to use language frontend that is preprocessed into AF? 13:42:39 huh? 13:42:46 you said the syntax is fucking ugly above :) 13:42:51 it is 13:42:56 but its not uglier than say 13:42:57 java 13:43:04 :) 13:43:10 java is as ugly as C. 13:43:20 once you have all the high level abstractions its pretty simple 13:43:28 imperitive languages are ugly in general. 13:43:30 Adding two constants: $ < # *math.add add1 $ integer x [ 2 *add1 ] [ 3 *add1 ] [ *add1 *x ] > 13:45:42 what are the 2 and 3? 13:45:47 constants 13:46:04 so this code adds 2 and 3? 13:46:07 anything thats not a special symbol is a constant 13:46:12 yeah 13:46:22 that's fucking verbose 13:46:27 i told u 13:46:33 any way to make it more concise? 13:46:47 nope 13:47:03 and here you are bashing java syntax :) 13:47:09 java is horrible 13:47:18 no operator overloading makes it just suck 13:47:33 depends on what you're doing. 13:47:43 not really 13:47:52 operator overloading is a good idea, but not as implemented in C++. 13:47:57 overloading = is retarded 13:48:15 but yeah i will add expressions at some point so that its not so fucking verbose 13:48:41 is there a theoretical basis for your language? 13:48:45 yeah 13:48:58 not being like java? :) 13:49:02 no 13:50:39 the theoretical basis is reality 13:50:48 this isn't actually a programming language for computers 13:50:57 --- quit: proteusguy ("Leaving") 13:51:13 espcecially scince there aren't any types 13:51:18 what? 13:51:30 like the 'integer' above doesn't actually exist 13:51:41 its supposedly defined in the language 13:51:41 so writing an interpreter is not possible? :) 13:51:50 yeah 13:52:11 Why not use natural language then? 13:52:17 well writing an interpereter on a finite machine isn't 13:52:30 writing one on an infinite machine should be possible 13:52:32 warpzero, so what are you trying to achieve? 13:52:49 slava: a fast super-concurrent language 13:52:58 but if it cannot be used...? 13:53:02 it CAN 13:53:05 you just have to cheat 13:53:09 right 13:53:51 speaking of cuncurrency, i'm going to make continuation objects serializable and transportable between machines in my language. 13:53:59 java makes this easy. 13:54:02 true for mine 13:54:15 its an obvious advantage 13:54:25 grid computing over different hardware 13:55:06 you're doing it with java bytecode 13:55:16 i'm doing it with argonflame bytecode 13:57:10 do you realize that in the idealized model for AF (infinite machine), any NP problem can be solved in polynomial time? 13:57:27 yes 13:57:36 and on a quantum computer, (I think some) NP problems can be solved in polynomial time 13:57:47 its a modeling language for reality on an infinite machine 13:57:50 maybe there's a connection then, between quantum computing and your language. but I really haev no idea :) 13:58:10 it would likely be at least VERY FAST on quantum computer 13:58:40 because i think then the code would become concurrent-circut like for an infinite concurrency 13:59:23 so any iterations would occur in O(1) 14:00:20 reducing the order of most problems 14:00:57 --- join: vegemite (leontopod@intertwingled.net) joined #forth 14:01:16 I don't see why a macro preprocessor can't be part of the forth "incremental interpret/compile" cycle 14:01:22 --- nick: vegemite -> Teratogen 14:01:26 macro preprocessors rule! 14:01:38 Teratogen, immediate words are alrady like a preprocessor 14:01:46 vegemite: Do you come from a land down under? 14:01:48 like, but not the same 14:01:49 no 14:01:56 Teratogen, like lisp macros? 14:02:07 text preprocessing is text preprocessing 14:02:08 forth is assembler where the programmer is the pre-processor :) 14:02:19 it happens before the lisp or forth "interpreter" touches the code 14:02:25 like cpp? 14:02:25 it's a separate step, basically 14:02:30 exactly 14:02:40 m4 is better. 14:02:58 sure, but is m4 gonna be on every system that you deploy a package? 14:03:00 answer: no. 14:03:08 Why? 14:03:14 so it's better if every computer language have it's own closely-coupled macro preprocessor 14:03:19 ASau, good example 14:03:23 perl provides -P 14:03:24 GNU is everywhere. 14:03:33 just package m4 with your app dummy 14:03:34 which runs the perl code through the cpp macro preprocessor 14:03:40 works fine on most *nix systems 14:03:49 but it usually fails miserably on a winblowz box 14:03:49 i don't understand why you'd want a preprocessor for forth 14:06:04 I see, but that's not needed in most cases. 14:06:31 I don't think macroprocessor helps in these cases too. 14:14:07 ASau, i still don't get your on-positive == 0> if example. 14:23:00 [14:52:09] Why not use natural language then? <-- wait what 14:26:23 Slava, it's like combinatory logic but postfix. 14:26:46 ASau, yes but your example won't work in any language. you'd need to quote 0> somehow then. 14:27:04 I can't understand what do you want. 14:27:25 I mean in the whole. 14:27:27 how would on-positive be used? give an example. 14:27:29 ASau: what did you mean by natural language? 14:27:43 warpzero, Russian, of course. 14:28:14 What another language is natural for me?! 14:28:46 ASau: ????? 14:29:10 Natural languages are those which are spoken by people. 14:29:39 So what were you suggesting? That I make a natural language interpereter? 14:29:40 Russian, English, German, Swedish etc. 14:30:09 Restricted natural language. 14:30:15 Its been done. 14:31:51 ASau, how would on-positive be used? give an example.\ 14:33:36 * warpzero tries to figure out how to relate things and packages 14:36:40 who's interested in creating a wiki (written in forth)? 14:37:14 rO|, i intend to someday... 14:38:02 testing acweb and fscript atm, works flawlessly 14:38:22 up to now ;-) 14:40:07 someone got a little more experience w/ the spforth websuite? 14:45:18 ASau: you REALLY speak russian? :-) 14:45:41 how nice/practical ;-) 14:50:06 --- join: scope (~junk@njd.paradise.net.nz) joined #forth 14:52:57 rO|, I was born here, I live here. 14:54:13 call me a shithead in russian 14:54:45 Slava, for example simple exception handler. Like: [ error ] on-zero 14:55:02 ASau: call me a shithead in russian 15:06:36 --- quit: Teratogen ("SKYKING, SKYKING, DO NOT ANSWER") 15:07:39 ASau, so why is error quoted, but 0> is not? 15:08:36 I don't know your syntax enough. 15:10:42 my syntax is whitespace separated tokens; some are literals, others are words. a list literal is just [ ... ] 15:11:30 could someone plz do me a favour and login into my test acftp ftpd? 15:14:02 warpzero, skoo-shai hooee smaslem. (i romanized it as best as I could so you could pronounce it) 15:14:09 as a reward you can dl the working enth0.4 image+cfg for bochs.. ;-) 15:15:18 rO|, does your acftp run under bochs? 15:15:28 lol 15:15:50 warpzero, (btw. that means: eat dick with butter) 15:16:08 lol 15:16:10 thats great 15:16:12 i love it 15:16:28 warpzero, my russian fiance teaches me all kinds of dirty words. 15:16:39 OrngeTide, 8-) 15:16:45 you have a russian fiance? 15:16:59 warpzero, well she's american. but he family is russian and she speaks/reads russian 15:17:04 s/he/her 15:17:12 oic 15:18:16 OrngeTide: acftp not on bochs now, why? 15:18:43 rO|, well i'd only be impressed if you had it on bochs. what is acftp anyways? 15:19:03 i like QEMU better than bochs. it runs a lot faster on my ibook 15:19:03 arr-zero-pipe 15:20:09 OrngeTide: forth ftpd, see sf.net or spforth 15:20:45 rO|, that's what i thought. but it doesn't run under a forth OS? 15:22:07 oh. my friend is finally breaking down to learn forth. what is an example of some forth code that shows a very pratical application but is very clean and easy to read to a forth newbie? .. I thought about just xeroxing the source to the Cannon Cat for him. but i'm sure kinkos would charge me like $90 to copy that many pages. 15:23:50 OrngeTide, the source to a forth implementation perhaps ;) 15:24:41 slava, yea. i recommend pygmy forth since he is more familiar with DOS than Linux. 15:24:48 OrngeTide: under which forth os do you want it to run? 15:25:10 rO|, well you'd have to pick a forth OS with a TCP stack. so that narrows down the choices a tad:) 15:25:24 acFTP --- ftp server for SP-Forth after Andrejj Cherezov. 15:25:40 i've never used spforth. is it better than IsForth? 15:25:47 acWEB --- HTTP server after Andrejj Cherezov. 15:26:06 writing a webserver in forth would be easier than an ftp server. imo 15:26:08 See: acweb.sf.net 15:26:17 "< OrngeTide> oh. my friend is finally breaking down to learn forth." <--- haha. :) 15:26:20 I'll point my friend to that perhaps. 15:26:31 That sounds great. 15:27:25 a 2min test install of acweb is here: http://bjazz.mine.nu/ 15:27:41 it's funny. my friend has been anti-forth since I've known him. he's a hardware guy and he was toying around with making a small free processor core to put into an fpga that doesn't eat up a lot of space and stumbled onto MuP21/F21 on his own. now he wants to learn forth because he realized that you could have a really fast processor in only a tiny amount of space. 15:27:49 SP-Forth is for DOS (old versions) and Windows (new versions). 15:27:50 why would you be anti-forth? 15:27:56 i don't use c++, but i'm not anti-c++, etc. 15:28:12 a 2min test install of acftp is here: ftp://bjazz.mine.nu/ 15:28:16 Porting to Linux is planned (Dmitrijj Jakimov, IIRC). 15:28:32 OrngeTide, get him in here 15:28:49 slava, he tried to learn forth like 15 years ago on his macintosh and thought the syntax was really terrible and gross. 15:29:08 what syntax :P 15:29:13 I440r, well he's not quite ready for that. he might go to an SVFIG though. 15:29:39 OrngeTide, gross syntax? he meant gross set of words in his forth implementation :) 15:29:43 although honestly he could learn more in here than SVFIG. no offense but a lot of the people in SVFIG openly admit to not knowing forth or ever have written a forth program. 15:29:55 ornge he can learn alot in here too :) 15:29:59 slava, at the time he didn't like postfix notation. 15:30:08 i think postfix is neat :) 15:30:13 I440r, that's what i mean. he could learn MORE in here. 15:30:18 just don't have words that take more than 3 or 4 parameters tought. 15:30:20 but they love it anyway eh ?? hehe 15:30:21 --- quit: Robert ("brb") 15:30:29 *though 15:30:34 I440r, they are really and odd bunch 15:31:05 I440r, i'd say 30% are profeciant in forth. 30% roughly understand it and have written maybe a few short routines. and 30% have not written anything. 15:31:32 how do they know about isforth? 15:31:52 OrngeTide, what is SVFIG? 15:32:07 slava, Silicon Valley Forth Interest Group 15:32:09 silicone vally forth interest group 15:32:14 what he said heh 15:32:55 I440r, well 60% of them are familiar with forth. i'd say about 5 out of 25 people recognized IsForth immediately when i mentioned it 15:33:05 wow 15:33:06 heh 15:33:12 --- join: Robert (~snofs@c-185a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 15:33:13 <-- phamus!!! 15:34:03 do forths typically have any kind of package system? 15:34:09 to avoid name clashes in large bodies of code? 15:34:15 slava, it's called a dictionary 15:34:23 OrngeTide, as in, swapping dictionaries around? 15:34:28 forth is lightyears ahead of C 15:34:47 OrngeTide, i mean something like lisp's symbols; if you intern "foo" in package A its a different symbol than "foo" in package B 15:34:50 and the package is set when reading a file 15:34:53 slava, well bigger forths support multiple dictionaries and just have a search order for them. you can tweak the search order in your code. 15:35:03 slava, this is an ANS forth feature. so it's pretty common 15:35:08 OrngeTide, ok 15:35:14 actually i think itw as in F83 too 15:35:31 i'm not really that good with forth. so don't ask me what the words are to do this:) 15:36:20 Slava, Forth has vocabularies. This eliminates name clash completely. CONTEXT , odnako. 15:36:46 it was developed in the 83 std i think 15:36:59 ans forth calls them (ghey camp voice) word lists 15:37:04 bleh 15:37:17 I440r, it was developped in FIG-Forth ;) 15:37:51 ASau, thanks. 15:38:15 Maybe it was developped even earlier. 15:45:33 --- quit: warpzero (Client Quit) 15:49:49 OK thx 15:50:07 --- part: rO| left #forth 15:51:30 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 15:54:30 Hi 16:02:41 On line. 16:04:16 On line. 16:22:07 --- join: Nutssh (~Foo@gh-1029.gh.rice.edu) joined #forth 16:22:34 Hi Nutssh 16:22:58 hi Nutssh 16:23:32 Hi. 16:23:35 Dobryjj nocher! 16:23:46 Superbowl commercials are rather good this year. 16:24:11 Nutssh: oh ur watching them too? 16:25:33 yeah they're good, but what's with those long periods in between them of people running around on the grass? 16:25:56 thats what i said 16:26:41 Yup. Heh.. :) Football isn't that bad to watch, compared to some sports. 16:26:59 yeah it is 16:27:34 Golf. Baseball... And comparable to soccer. 16:27:46 golf is evil 16:28:40 What was the dilbert comic with electronic golf? 16:28:53 ive seen that one 16:30:02 bud light lol 16:30:22 omg cigs r bad 4 u 16:30:27 hurrz 16:31:02 charmin what 16:39:06 pepsi ++ 16:39:39 bizzaro ibm linux ad 16:49:05 Yeah. Really bizarre linux ad. I didn't get it. 16:49:30 there are a bunch like that 16:49:34 ibm they are gone insane 16:49:42 pepsi is doing quite well though 16:51:52 think ibm will abandon aix? 16:53:31 chevy++ 17:05:25 hm, not sure where to ask, and googling is kinda impossible on this, but i just saw the movie "pi", and in that movie they claimed the thora was basicly built up of numbers... and the whole language (uhm whatever judism-language is called..?) is entirely logical since every word is a number.... is this true or not? anyone know? 17:05:59 yes 17:06:00 its true 17:06:10 hebrew is a mathematical language kindof 17:06:16 hebrew, thassit 17:06:18 hm 17:06:21 because each letter is a number 17:06:23 that peaked my intrest 17:06:28 and the bible has no spaces or breaks 17:06:31 or peaks rather... 17:06:39 and hebrew has no vowels either 17:06:53 so the old testament is one long vowel-less word 17:07:00 it has all sorts of hidden shit in it 17:07:26 i find that very intresting 17:07:31 its practically a non-binary data set 17:08:36 yes well in the movie, the example of mother and father was given 17:08:43 how the number combined makes, child was it? 17:09:00 and that whole thing... i find it very intresting 17:09:07 kabbalah is an entire branch of judaism that is about decrypting the old testament 17:09:21 i havent seen pi tho 17:10:27 well it was about logic and stuff 17:10:32 about finding the repeatence of pi 17:10:40 oic 17:10:43 and how this number represented the word god in hebrew 17:10:53 218 digits i believe 17:10:59 since there's no word for god in hebrew? 17:11:15 yeah there isn't 17:11:43 well i'll look into it later 17:11:43 or at least it was considered sacrilige to say it so 17:11:48 it certainly has peaked my intrest 17:12:29 i find the concept itself funny enough 17:12:38 creating a speaking language in numbers 17:12:48 where the words all make logic too 17:12:50 :) 17:13:41 it does it because 17:13:54 without breaks or vowels its very high entropy 17:14:31 like the bible is uncompressable in its numeric form thats how high entropy it is 17:14:54 warpzero, so the bible is random data? :) 17:15:02 or encrypted 17:15:04 yea i have no idea about hebrew, not a single word 17:15:08 so i dont know yet 17:15:21 and i never looked at the bible that way, so i cant say much about that either 17:16:59 --- join: TheBlueWizard (TheBlueWiz@pc51dn1d.ppp.FCC.NET) joined #forth 17:16:59 --- mode: ChanServ set +o TheBlueWizard 17:17:03 hiya all 17:24:53 sup 17:25:12 nothing much 17:25:22 just busy passing gas :) 17:31:00 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 17:31:09 --- mode: ChanServ set +o kc5tja 17:31:11 hiya kc5tja 17:31:30 Howdy 17:31:50 * kc5tja just had the worst possible day today at work. 17:32:13 tell us sadists about it :) 17:32:28 --- quit: qFox ("if at first you dont succeed, quit again") 17:32:29 sup kc5tja 17:32:31 lol 17:32:37 hey kc5tja 17:32:39 At the end of the day, I walked into the men's locker room, and cried like a baby. 17:32:56 It was just non-stop negative criticism all day today. 17:33:03 All day yesterday. 17:33:05 All day the day before. 17:33:20 Today I just had to break down. 17:33:47 :( 17:34:07 I feel better now, like a huge burden had been lifted from my chest. 17:34:07 are you saying the employees are being mean to you? 17:34:14 No, not mean. 17:34:31 Just things like, "Sam, we need those potatoes peeled NOW! You're an hour and a half late!" 17:34:59 "Sam, we need shake mix now! and when you're done with that, go clean the men's room -- the trashcans are overflowing," 17:35:09 Then when I'd get back, "Sam, what took you so long? JESUS!" 17:35:43 I see...that sucks 17:35:45 Stupid things like that. 17:36:05 Today, I could see, since we had over half our workforce call in "sick." (Uh huh) 17:36:15 So my manager was rather pissed off about that. 17:36:18 kc5tja, where do you work? 17:36:22 ah! 17:36:25 slava: In-N-Out Burger. 17:38:10 kc5tja, :( 17:38:15 kc5tja, you need to find a job hacking forth! 17:38:21 slava: No such jobs exist. 17:38:27 Those that do are already filled. 17:38:49 Besides, I'm already doing freelance software development work at the moment. 17:39:30 Plus school. 17:39:39 That reminds me, classes for me starts tomorrow. >:/ 17:39:47 I have to figure out a parking situation here really quick. 17:51:20 --- quit: I440r ("Leaving") 18:01:05 * kc5tja is so tired now. 18:01:46 heh 18:02:31 what makes postfix great? 18:02:44 i need to explain this to some guys in #java :) 18:02:47 no fukkin parens 18:02:51 not sure now to do it best :) 18:02:53 More formally, 18:03:02 postfix is the only form that enables concatenative programming. 18:03:29 A language is concatenative when you can take any arbitrary program A, and tack another program B onto the end, and have a valid program C as a result. 18:03:48 This can work in reverse too, which makes things like refactoring trivial. 18:03:55 yes 18:04:04 More importantly, a refactoring editor for a concatenative language is basically one that has only cut-n-paste. :) 18:04:09 the java crowd's arguemtn is that "we have hugely complex and bloated tools (like IDEA and eclipse) that do refactoring for us" 18:04:21 or along those lines 18:05:20 No need for those tools. 18:05:29 Simpler language, simpler tools, simpler programs, all combined leads to significantly reduced bug counts, quicker time to market, higher profit margins, and greater productivity. 18:05:34 kc5tja: does that language have to hold for any programs A and B? 18:05:38 er, statement 18:06:01 as long as A and B don't do funky stuff with the return stack,etc 18:06:12 chandler: Since I didn't say that the resulting program C needed to be coherent, yes. 18:06:35 This means that Forth isn't 100% concatenative (the fact that it forward-parses some constructs, like : and CREATE, forbids it). 18:06:55 But it's concatenative enough that most people consider it the quintessential example of a real-world concatenative language. 18:07:08 ok, so then lisp is not concatenative because the introspective abilities allow the program A to change the environment that B would require 18:07:33 i think being concatenative also means you can split programs 18:07:36 chandler: Introspection has nothing to do with this. I believe Joy also permits introspection, yet it's still a concatenative language. 18:07:42 It's just a matter of 18:07:43 1 2 + 18:07:46 er, destructive introspection :-) 18:07:46 combined with 3 4 * 18:07:56 and also, just 2 + by itself is a valid program. 18:08:02 to produce 1 2 + 3 4 *, which is itself a valid program. 18:08:05 and 1 by itself is also valid, as is + 4 *, etc. 18:08:10 wtf is refactoring 18:08:39 warpzero: Changing the structure of a program without changing its semantics (usually to make it easier to read, maintain, etc). 18:08:49 oic 18:09:16 hmm that should be relatively easy in AF 18:09:28 considering its strict heirarchical structure 18:10:07 RATS! Sun went down! I wanted to set up my ham radio antenna (somehow). 18:10:19 Hmm... flashlight? 18:10:31 Still, black wire in black skies.... :) 18:10:37 Flash light or not, it'll be difficlut. 18:10:43 difficult rather 18:10:49 IR goggles! :D 18:10:50 Still might try it though. 18:11:10 I guess I still don't have a precise idea of what separates a concatenative language from a non-concatenative one. Would it be correct to say that in a concatentaive language, each atomic part of a program is also a valid program, and that this is not true for a non-concatenative language? 18:11:26 Well, perhaps some reflective tape on the antennae. I dunno if that's a no-no or not though. 18:11:34 chandler: Yes. 18:11:37 chandler, i'm not sure. in lisp each atomic part is a valid program too 18:11:44 does concatenative have to imply stack? 18:12:00 slava: However, the construct (if (let isn't a valid Lisp program. 18:12:15 kc5tja, yes, and the construct : sq dup is not a valid forth program 18:12:15 slava: "if" isn't a valid lisp program 18:12:34 kc5tja: that's not a valid way to take a subset of a lisp program... lisp programs are not text 18:12:36 slava: I said above that Forth wasn't 100% concatenative, and gave the reasons why (: being one of them) 18:12:52 chandler: My piont still holds though. 18:12:56 chandler: As does slava's. 18:12:57 kc5tja, what about my factor language: it uses [ ... ] for linked list literals. and [ a b c is not a valid program 18:13:05 assembly is concatentive and not stack based 18:13:06 kc5tja, or even joy uses this syntax 18:13:10 slava: Then yours is not 100% concatenative either. 18:13:26 I don't believe it is possible to get 100% concatenativity. 18:13:35 kc5tja: I understand, I'm just saying that by that argument I could say that forth is not purely concatenative because while "if" is a word, "i" and "f" are not... write conclusion, wrong argument :-) 18:14:21 why is ChanServ in this channel? 18:14:30 argh, "right" 18:14:32 my brain must be fried 18:15:29 Anyway, I'm going to go out and do some more research about setting up my antenna. I refuse to let a $2500 radio go to waste. 18:15:29 i think in a concatenative language you must consider list literals, etc as one unit; just like a number literal. since they both just push themselves on the stack when evaluated. 18:15:37 (even if my antenna for it is sorely suboptimal) 18:16:11 kc5tja: and a giant "thppppbt" from those who are currently rig-less 18:16:34 argonflame is not concatentive at all 18:17:01 chandler: Hey, I saved up for 7 years to buy a good rig. 18:17:25 kc5tja: do you consider Postscript quite concatentive? 18:17:50 TheBlueWizard: I think it is more concatenative than Forth is, yes. It's close to Joy in overall structure. 18:19:04 * TheBlueWizard nods 18:19:12 * TheBlueWizard will have to look at Joy 18:19:30 joy is purely interpreted right? 18:19:50 * TheBlueWizard then wonders whether flowchart is concatentive :-D 18:20:23 slava: Yes, I believe it is. 18:20:31 My friend Billy Tanskely runs the Concatenative mailing list. 18:21:44 you are such a space alien kc5tja 18:22:17 TheBlueWizard: most flowcharts generally require certain inputs to eg decision processes in order to be "valid" 18:23:15 warpzero: Thank you. 18:26:20 chandler: it seems the definition of concatentive is a bit subjective...does it require input? for example: : hello ." hello" ; : world ." world" ; can be concatentated.... 18:26:25 you work at an in and out burger but know everything about forth and have friends that are also hardcore 18:26:35 I think I grok "concatenative" now... let me try at one more slightly precise definition: a language is concatenative if all valid programs in that language are either a member of a finite set of atoms or a non-empty set of atoms 18:26:39 does that sound right? 18:27:57 er, slight rephrase: each valid program is either a member of the set of atoms A, or is itself a non-empty set of elements which are also elements of the set A 18:28:38 TheBlueWizard: I'd say that the particular example you gave is not strictly concatenative as ." hello" and ." world" are not atoms 18:28:45 at least as I understand the concept right now 18:28:55 chandler: by that definition af is concatentative and its not very 18:29:51 warpzero: hm, why do you say it's concatenative by that definition? 18:29:58 my definition disallows string literals for instance 18:30:52 in order to construct a string you'd have to have a set of operators that pushed a particular ASCII character onto some kind of stack or appended it to a string 18:30:56 because my language is like your second definition? 18:31:15 so you have a finite set of atoms? 18:32:16 infinite but yeah 18:32:29 my second definition wasn't intended to remove the word "infinite" 18:32:37 er, "finite" 18:32:45 I am really not good at using english right now :-) 18:33:06 because if you accept "infinite" then all programming languages are concatenative, and the set of atoms is just the set of valid programs in those languages 18:33:12 thus it needs to be finite 18:33:26 my language then fails on the fact that its an infinite language? 18:33:48 in factor, everything is composed of literals, 22 primitive words, and half a dozen or so hard-coded immediate words. 18:34:13 warpzero: infinite set of atoms, yes 18:34:19 in af everything is composed of like 16 markup symbols and literals 18:35:31 is there some way to reduce the set of literals to a finite set and still express all the programs that can be written in that language? 18:35:46 or is my definition missing the essential nature of concatenativeness? 18:36:18 chandler: Doesn't a Turing machine require only 8 instructions? Is that what you're talking about? 18:36:29 chandler: the problem with af is it cant even run on a finite machine 18:36:41 kc5tja: I guess... I'm trying to pin down a formal definition of concatenativeness 18:36:46 I guess one definitive characterization of a programming language X as being concatentive is: "How easy is it to yank out a chunk of code from the program without putting a lot of effort on cleaning up the resulting code (yanked out one and the program itself minus the that code)" 18:37:06 but perhaps that's impossible... 18:37:22 chandler: I would write to Billy, since he runs the Concatenative group. 18:37:28 aah, OK 18:37:31 just thinking out loud :-) 18:37:39 * chandler 's formal nature gets the better of him often 18:37:43 Google for "concatenative language mailing list", and that should bring you to his contact information. 18:37:44 TheBlueWizard: by that definition then af IS concatentative 18:37:46 It's a Yahoo! group. 18:37:47 * TheBlueWizard notes that the cleaning up itself could be done by computer itself rather than human 18:37:57 kc5tja: I'll google for it, as usual :-) 18:38:22 Yeah. I recommended googling because I lost track fo the relavent info. I know it exists, but it's been something like a year and a half since I participated. 18:38:26 --- join: proteusguy (~proteusgu@user-11217ke.dsl.mindspring.com) joined #forth 18:38:54 hiya proteusguy 18:39:18 howdy TheBlueWizard dude. :) 18:40:21 sup 18:40:54 Watching Superbowl and specing out a new computer. 18:40:56 well, gotta go...bye all 18:41:06 Nice chatting Blue! :D have a good one. 18:41:33 proteusguy: bye :) 18:41:44 --- part: TheBlueWizard left #forth 18:41:53 lol im just trying to figure out if my language is classifiable at all lolllll 19:10:29 yep 19:10:36 its filed under 'unclassifiable' 19:15:48 OK, I'm falling asleep. 19:15:50 Nap time for me. 19:25:12 what does PERFORM do? i can't find it in the dpans index 19:28:52 IIRC, : PERFORM @ EXECUTE ; 19:29:31 thanks 19:40:23 man. i can't believe arnold thinks I'm going to vote for these propositions. 19:41:20 Prepare to be governated. 19:41:26 * kc5tja is back 19:42:46 kc5tja, hehe 19:43:48 --- quit: slava ("Leaving") 19:49:05 --- join: slava (~slava@CPE0080ad77a020-CM.cpe.net.cable.rogers.com) joined #forth 19:56:10 Dobroe utro! 20:12:47 --- quit: proteusguy (zelazny.freenode.net irc.freenode.net) 20:12:47 --- quit: cmeme (zelazny.freenode.net irc.freenode.net) 20:13:28 --- join: proteusguy (~proteusgu@user-11217ke.dsl.mindspring.com) joined #forth 20:13:28 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 20:34:52 How would you call this word: a b -- a+b b ? 20:35:29 swap over + swap 20:36:53 (+), if I had that as a step in + 20:36:57 : + (+) drop ; 20:37:46 That's not a step in + 20:37:47 --- quit: proteusguy (Read error: 54 (Connection reset by peer)) 20:38:22 asau - please read all of what I say. 20:40:28 I don't have this in additive context. (+) is not descriptive there. 20:50:54 Traditionally, it's been called under+ from what little I've seen it used for. 20:55:02 under+ ( n1 n2 n3 -- n1+n3 n2 ) 20:55:02 kc5tja, how *+ is used in multiplication? 20:55:19 --- 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.") 20:56:34 ASau: If the least significant bit of b is 1, then it returns (a b -- a+b b). Otherwise, it returns (a b -- a b). 20:56:58 So to multiply two numbers, one of them 4-bits wide, then you would use *+ 2/ *+ 2/ *+ 2/ *+ 2/, and the result will be the product. 20:57:14 (note that shifting the multiplicands into place is necessary as a pre-requisite.) 20:57:38 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 21:04:49 --- join: I440r (~mark4@12-160.lctv-a5.cablelynx.com) joined #forth 21:06:30 Does 2/ shifts a pair? 21:06:36 shift 21:10:27 No. Just the top item. 21:11:40 I can't understand how it works. 21:11:54 its just a divide by 2 21:12:08 : *+ dup 1 and if over + then ; ( ? ) 21:12:17 I mean *+ 21:12:36 How * is defined through *+ 21:12:46 How does it work. 21:13:33 well the above word adds the top two items without losing the second one but ONLY if the top item is odd 21:14:03 ive no idea what that would be used for 21:14:15 Maybe this definition is wrong. 21:15:08 (I can understand how *+ works, how * works. I don't see how *+ is works as part of * ) 21:15:08 best way to find out is to test it :) 21:15:22 Oh, I don't get tests. 21:15:57 I don't like test 32x32 or 64x64 multiplications. 21:17:27 --- quit: Herkamire ("bleh") 21:17:38 God fucking dammit guys. 21:20:00 ? 21:20:51 ASau: It's just the Russian multiplication method. :) 21:21:29 I can not figure a way to do this. 21:21:48 a way to do what 21:21:56 Like... I have this language right... 21:22:02 And its as verbose as all get-out. 21:22:10 Because it doesn't implement expressions. 21:22:19 kc5tja, it definition of *+ above right? 21:22:21 But I can't figure out how to make it less verbose. 21:24:00 ASau: *+ is equivalent to this Forth code: : *+ dup 1 and if swap over + swap then ; 21:24:41 I440r: Like to add two numbers, you have to instantiate something that adds, and then put two things into it and specify where you want the result. 21:24:55 hmm 21:25:04 Adding two constants: $ < # *math.add add1 $ integer x [ 2 *add1 ] [ 3 *add1 ] [ *add1 *x ] > 21:25:11 sounds like a nice low level language 21:25:13 in forth that whole thing is 2 3 + 21:25:47 hmmm 21:26:52 kc5tja, fix http://www.falvotech.com/cgi/fsforth/StackProcessorConcept 21:27:09 It says: *+ ( a b -- a b | a a+b ) 21:29:12 Oops. 21:29:14 I'll fix later. 21:29:17 Thanks for the notice. 21:30:01 I440r: And I just can't think what to do about it. 21:30:29 kc5tja, I've seen the same somewhere else. 21:30:30 hmm can you make it possible to define parts of the above in seperate definitions? 21:30:48 then YOU could write primatives that users could use 21:30:48 kc5tja, it was before your site. 21:30:59 I440r: You mean like macro-ize it? 21:31:01 kc5tja, the same mistake. 21:31:06 yea 21:31:12 Yeah kinda. 21:31:19 thats basically what forth is 21:31:24 Can I pm you? 21:31:36 sure you dont even need to ask permission :) 21:43:37 warpzero: Why are you doing it that way, and not the Forth way? 21:44:15 madgarden: Because I'm not re-implementing forth? 21:44:45 OK... I'm just wondering how/why it got so verbose in the first place. 21:44:51 --- join: fridge (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 21:45:20 madgarden: its like that because it doesn't have expressions 21:45:48 So everything's a function. 21:46:07 No. 21:46:12 Nothings a function. 21:46:16 Everything is a thing though. 21:46:51 ASau: *+ is easy to get confused on its parameter ordering. 21:47:23 The things must have some function. 21:48:28 Anyway... can't you stuff some of it into other new things, to hide the verbosity? 21:53:13 kc5tja, I still can't understanf how it works. 21:54:02 kc5tja, I've found "1 and if swap over + swap then" pattern in my "*", but no "dup" before it. 21:56:50 You need the DUP because *+ is a non-destructive add. 21:57:04 1 and if will consume the top argument, leaving only 'a' on the stack. 21:57:12 Hence the DUP. 21:57:41 To understand how *+ works for multiplication, you need to know how binary multiplication works. 21:57:55 There are plenty of web pages on the net that describe it. 21:58:08 I know, but I have accumulator under all this and restore multiplicand. 21:58:42 I've not seen any good description. 21:58:53 Any links? 22:01:30 http://mathforum.org/library/drmath/view/57054.html 22:01:46 madgarden: no what you are seeing there is the minimum level of verbosity atm 22:03:49 warpzero: Yes, and I'm wondering how you can tuck it away somehow. I mean, in most languages, you'd use a function or something similar. You don't support that? 22:06:06 --- join: Serg (~z@212.34.52.140) joined #forth 22:06:13 hi ! 22:06:17 madgarden: Thats like the smallest it gets I mean that IS a function, it doesn't get any smaller. 22:06:47 hello kc5tja ;)) 22:06:53 hi serg! 22:07:06 on saturday, i bought an old military radio ;) 22:07:09 hi I440r 22:07:21 cool :) 22:07:39 and got my 1st ham contact: IV3OWC on 7060kHz 22:07:57 gonna look up what country it is ;))) 22:08:09 u are u a ham ? 22:08:19 I know IT is Italy, but I've never heard of IV before. I'm sure it exists though. 22:08:31 no - i prefer not to disclose my hobby to Big Brother 22:08:40 :) 22:08:49 he knows already<:P 22:09:00 maybe ;( 22:09:35 kc5tja: i got it w/ about 1 meter of wire 22:09:38 warpzero: so you're defining a math.add function in that example code? 22:09:51 * kc5tja nods to Serg 22:10:14 * kc5tja tried to set up his antenna again today, but no matter where I put it, people would clothesline themselves on it. 22:10:16 madgarden: nope that code just uses it 22:13:22 kc5tja: The obvious solution is to use your antenna as a clothesline. 22:13:51 madgarden: No can do. 22:14:08 My room faces the front yard. 22:14:25 The last thing I need is to have some kid think he's being cute and steal all my clothes. :) 22:16:28 Anyway, I have school tomorrow. 22:16:31 I need to get to bed. 22:16:36 :) 22:16:54 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 22:39:33 --- quit: Sonarman ("leaving") 23:06:07 --- quit: Nutssh ("Client exiting") 23:06:19 --- join: Nutssh (~Foo@gh-1029.gh.rice.edu) joined #forth 23:09:05 what is the oposit of expansive? 23:17:53 small 23:18:41 contractive ??? 23:18:47 neway definatly sleep time 23:21:52 * Serg wishes to find a goog ham radio IRC chat 23:25:47 Serg, have you looked at FIDONet echoes? 23:49:03 --- quit: Nutssh ("Client exiting") 23:55:45 ASau: not only read on regular basis, but wrote a multithreaded news client for this ;))) 23:56:17 see at http://cryptomancer.chat.ru 23:59:59 --- log: ended forth/04.02.01