00:00:00 --- log: started forth/07.10.24 00:16:24 --- join: arke_ (i=arke@x172.vpn.hrz.tu-darmstadt.de) joined #forth 00:18:57 --- join: arke__ (i=arke@x325.vpn.hrz.tu-darmstadt.de) joined #forth 00:20:46 --- join: crc_ (n=crc@70.110.143.33) joined #forth 00:22:56 --- quit: crc (Read error: 101 (Network is unreachable)) 00:34:31 --- quit: arke (Read error: 110 (Connection timed out)) 00:34:31 --- nick: arke__ -> arke 00:36:19 --- quit: geartooth (Read error: 110 (Connection timed out)) 00:37:26 --- quit: arke_ (Read error: 110 (Connection timed out)) 00:48:49 --- quit: saon ("leaving") 00:50:12 --- quit: arke (Read error: 104 (Connection reset by peer)) 00:50:18 --- join: arke (i=arke@x325.vpn.hrz.tu-darmstadt.de) joined #forth 00:50:18 --- mode: ChanServ set +o arke 01:02:56 --- join: arke_ (i=arke@x88.vpn.hrz.tu-darmstadt.de) joined #forth 01:14:42 --- join: ygrek (i=user@gateway/tor/x-629de6277f461cc6) joined #forth 01:22:59 --- quit: arke (Read error: 110 (Connection timed out)) 01:28:42 --- join: Al2O3 (n=Al2O3@dsl-216-66-236-3.static.linkline.com) joined #forth 01:34:49 --- quit: arke_ (Read error: 110 (Connection timed out)) 01:37:03 --- quit: Al2O3 ("Eggplant & SenseTalk: Driving Success Through Automation") 01:43:45 --- quit: H4n1 (Read error: 113 (No route to host)) 01:50:07 --- quit: oxygene ("Lost terminal") 01:50:37 --- join: oxygene (n=oxygene@khepri.openbios.org) joined #forth 01:54:08 --- join: arke (i=arke@x66.vpn.hrz.tu-darmstadt.de) joined #forth 01:54:08 --- mode: ChanServ set +o arke 01:56:42 --- quit: arke (Client Quit) 01:56:55 --- join: arke (i=arke@x66.vpn.hrz.tu-darmstadt.de) joined #forth 01:56:55 --- mode: ChanServ set +o arke 02:08:19 --- join: H4ns (n=Hans@p57BBB859.dip0.t-ipconnect.de) joined #forth 02:22:44 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 02:38:33 --- quit: Baughn_ (Read error: 104 (Connection reset by peer)) 02:38:35 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 02:39:44 --- quit: Baughn (Read error: 104 (Connection reset by peer)) 02:41:28 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 02:45:56 --- quit: ccfg (Read error: 113 (No route to host)) 02:48:54 --- quit: ygrek (Remote closed the connection) 03:20:30 --- join: doublec (n=doublec@203-211-88-32.ue.woosh.co.nz) joined #forth 03:59:49 --- quit: gnomon (Read error: 110 (Connection timed out)) 04:10:32 --- join: H4n1 (n=Hans@p57BBB401.dip0.t-ipconnect.de) joined #forth 04:12:02 --- quit: H4ns (Read error: 110 (Connection timed out)) 04:24:30 --- join: |luca| (n=kvirc@e180190237.adsl.alicedsl.de) joined #forth 04:27:20 --- join: arke_ (i=arke@x352.vpn.hrz.tu-darmstadt.de) joined #forth 04:40:29 --- quit: wossname (Read error: 110 (Connection timed out)) 04:42:46 --- quit: arke (Read error: 110 (Connection timed out)) 04:50:05 --- nick: H4n1 -> H4ns 04:52:11 --- quit: doublec () 04:52:47 --- join: ruediger (n=the-rued@chello062178150152.7.14.univie.teleweb.at) joined #forth 05:12:54 --- join: arke (i=arke@x224.vpn.hrz.tu-darmstadt.de) joined #forth 05:12:54 --- mode: ChanServ set +o arke 05:26:09 --- quit: arke_ (Read error: 110 (Connection timed out)) 05:26:09 --- nick: arke -> arke_ 05:42:37 --- join: Crest (n=crest@p5489BEE9.dip.t-dialin.net) joined #forth 05:47:00 --- join: madgarden (n=madgarde@65.93.145.16) joined #forth 06:10:28 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 06:26:37 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 06:59:33 --- part: KNY left #forth 07:20:58 --- quit: arke_ (Read error: 110 (Connection timed out)) 07:23:29 --- join: arke (i=arke@x210.vpn.hrz.tu-darmstadt.de) joined #forth 07:23:29 --- mode: ChanServ set +o arke 07:34:46 --- quit: |luca| ("KVIrc 3.2.0 'Realia'") 07:35:10 --- quit: ecraven ("bbl") 07:41:40 --- quit: tosvar ("This computer has gone to sleep") 07:45:27 --- join: ziggurat (n=ziggurat@pool-71-164-227-62.dllstx.fios.verizon.net) joined #forth 08:05:03 --- nick: crc_ -> crc 08:05:15 --- mode: ChanServ set +o crc 08:20:32 --- quit: Baughn (Remote closed the connection) 08:21:56 --- join: KNY (n=KNY@samp.rh.rit.edu) joined #forth 08:22:18 how would I go about rotating more than 3 elements? 08:22:19 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 08:23:15 KNY: roll? 08:23:44 I'll look into it; thanks 08:36:17 --- quit: forther ("Leaving") 08:38:16 --- quit: ziggurat (Read error: 104 (Connection reset by peer)) 08:50:29 --- quit: Off_Namuh74 (Remote closed the connection) 09:11:15 --- join: ccfg (n=pitkajus@tuomi.oulu.fi) joined #forth 09:26:34 --- quit: arke (Read error: 110 (Connection timed out)) 09:32:16 --- join: Off_Namuh74 (i=GPS@gateway/tor/x-c57f2731bed9a321) joined #forth 09:41:19 --- join: arke (n=arke@p54A7E0AF.dip.t-dialin.net) joined #forth 09:41:19 --- mode: ChanServ set +o arke 10:04:57 --- quit: wossname (Connection timed out) 10:13:30 --- join: malyn (i=malyn@gateway/tor/x-099e20ec284772b8) joined #forth 10:29:00 could forth systems parallelize work accross n computing nodes? 10:29:07 running linux ? 10:29:15 (or forth itself if thats doable?) 10:29:24 commodity ahrdware nodes 10:29:58 Jeff Fox wrote an article about that based around his F20 processors: http://www.ultratechnology.com/4thlinda.html 10:38:17 tuplespaces 10:38:19 woa 10:44:26 now what about forth vs c 10:44:40 c seesm small n fast, is forth more comrehensible? 10:44:43 --- join: forther (n=forther@207.47.34.100.static.nextweb.net) joined #forth 10:44:46 Forth, as a language, offers no support for parallelization. 10:44:52 In this respect, it's exactly like C. 10:45:19 The methods you'd use to parallize a Forth process would be roughly the same as that used in C -- either use a library to support that (like Jeff Fox's), or, call upon OS services to fork a process or thread. 10:46:54 kny, if you're rotating past three items, you need to refactor. Rule of thumb. 10:47:15 Quartus, that's what I've been finding on Google :) 10:48:10 Not sure about that. Presumably you could use a FFI (foreign function interface) to call out to your favorite multiprocessing library. 10:49:04 malyn: "...or, call upon OS services to fork a process or thread." How this is done, I don't know. But eventually, it has to get done. :) 10:49:54 * kc5tja should work on getting a usable Forth system running in the L4 microkernel environment again sometime... 10:56:38 kc5tja: Although Forth-on-L4 would certainly provide a number of interesting advantages, I wonder if a one-process-per-core kind of environment running on a normal OS would be more accessible to the programming community at large. Think Erlang, but with Forth instead of Prolog. 10:57:43 malyn: That's doable too, of course. 10:58:00 However, Erlang is vastly superior to Forth in this arena, because it guarantees no sharing of state between instances of threads. 10:58:52 those seaforth things look interesting, while we're on the subject of paralellization ;) 10:59:20 kc5tja demonstrated to me a while back how some typical digital signal processing things can be parallellized 10:59:29 * arke thought it was amazing. :) 11:00:05 Heh 11:00:21 hm 11:00:42 forth seems fun 11:00:43 kc5tja: it's not impossible to do message based multiprocessing in other languages (eg. forth) 11:00:57 The thing with multitasking Forth environments on an SMP machine is that you're mixing cooperative and preemptive multitasking models, which means you must assume that all task switches are preemptive. 11:01:11 oxygene: I didn't say it was impossible. 11:01:16 I said Erlang was better. 11:01:22 It's vastly superior to a standard Forth VM, but what if this Erlang-style Forth environment created a separate VM for each of the processes (to use the Erlang term)? The overhead of a bunch of micro-Forth VMs would be quite small (shared dictionary, so just data space and the stacks), making it easy to put thousands, hundreds of thousands, millions of them into memory. 11:01:44 You could imagine all sorts of clever stack-sharing optimizations for passing data from one machine to each other. Processes block when calling other processes, so data could be read directly from the other processes micro-VM without any sort of locking. Cross-core/-machine communication could just package up the micro-VM state and send the whole thing over a pipe, the network, etc. 11:01:52 kc5tja: depends - forth with only message passing primitives (and no other way to do multiprocessing) is equal in this regard 11:02:02 No. 11:02:12 Erlang derives its power only partially from its message passing capabilities. 11:02:30 Remember that other environments, many of them coded in plain C, had message passing semantics long before. Vis. AmigaOS. 11:02:43 Erlang is a functional programming language, and that's where its true power comes from. 11:03:04 The compiler is able to make static guarantees on the nature of the code, whatever code you feed it. That allows it to perform all sorts of optimizations SAFELY. 11:03:10 The key word here is SAFELY. 11:03:11 :) 11:03:15 Yeah, you can do this stuff in Forth. 11:03:37 But you'll be tearing your hair out debugging why things are going wrong because you'll inevitably touch memory you shouldn't be touching. 11:03:54 kc5tja: That's true, one of Erlang's major strengths is its single-assignment nature. 11:03:56 please stop making assumption about my usage of programming language features. thanks. 11:04:21 oxygene: They're not assumptions. 11:04:24 They're facts. 11:04:29 And provable. 11:04:43 So many people make the mistake that FPLs work by making "assumptions. 11:04:44 No. 11:04:48 C compilers make assumptions. 11:04:53 FPLs rely on formal proofs. 11:05:10 come back when you solved the halting problem with a functional language 11:05:21 oxygene: Come back when you get a clue. 11:05:34 Anyone will know that you can't solve the halting problem on a Von Neumann architecture. 11:05:45 Do some research in FPLs and how they work, and then we'll talk. 11:05:53 hm I am reading starting forth and get a error on this line 11:05:55 Until then, stop insulting me, and my intelligence. 11:06:09 : STAR [CHAR] * EMIT ; 11:06:12 .. 11:06:15 using gforth 11:06:18 on linux 11:06:57 kc5tja: start doing that yourself and stop making assumptions about other people 11:07:10 oxygene: You're the one making the assumptions, not I. 11:07:15 linxu: It works for me just fine. 11:07:22 What error are you receiving? 11:07:42 kc5tja: "please stop making assumption about my usage" see the "my"? you replied that you talk about "facts" 11:08:00 oxygene: Which is correct. 11:08:33 --- quit: forther ("Leaving") 11:08:44 If you have something like: map (map f) l, it can be proven that, for any f, and any l, this is 100% equivalent to map (f l). This produces faster, smaller code. 11:08:50 It doesn't matter what f is. 11:08:53 It doesn't matter what l 11:08:54 is. 11:09:06 Backtrace: 11:09:06 $B79B6DC4 throw 11:09:06 $B79C2820 no.extensions 11:09:18 kc5tja: never claimed that isn't so (though I'd talk ahbout the "faster, smaller" a bit more) 11:09:21 linxu: You corrupted gforth's dictionary in a previous experiment, it seems. Exit gforth, and restart it. 11:09:50 kc5tja: still: stop claiming you know about how other people use language unless you _really_, _really_ know 11:09:54 kc5tja: kthxbye 11:09:55 oxygene: Then, why do you care if a compiler alters your program, knowing a priori that the result will absolutely have the exact same semantics? 11:10:18 Why do you even bother to use a compiler? 11:11:07 hm 11:11:09 This is what I'm talking about. You're clearly showing a level of ignorance about the subject, then attempting to use that as a justification to say, "compilers should not mess with my code." But that's the whole PURPOSE of a compiler, is to mess with your code. 11:11:10 still error 11:11:12 hm 11:11:41 --- join: arke_ (n=arke@p54A7E0AF.dip.t-dialin.net) joined #forth 11:11:59 linxu: I can't help you, sorry. The code you posted is correct, and it works for me here. I'm not able to reproduce the error. 11:12:16 If gforth is still producing an error, I'd suspect that gforth itself is somehow corrupted. 11:12:25 hm 11:12:27 IM very new 11:12:36 does [char] mean liek pick a letter? 11:12:54 It takes the next input token and returns the first character on the stack. 11:12:57 It's like 'a' in C. 11:13:06 So, the result of executing [CHAR] * is 42. 11:13:12 :star [char]*emit; 11:13:13 (since 42 is the ASCII code for *) 11:13:30 It needs to have spaces between the symbols. :) 11:13:56 :star [char] * emit ; 11:14:00 ? 11:14:04 And the leading colon. 11:14:11 : star [char] * emit ; 11:14:28 ah hah!!! 11:14:38 <----not so smart :( 11:14:42 But it should work with all caps too. 11:14:46 : STAR [CHAR] * EMIT ; 11:14:52 it worked 11:15:02 GForth preserves case in the dictionary, but doesn't consider it when looking for what to compile/execute. 11:16:14 linxu: FORTH doesn't have a lexer in the same way that C (and most other languages) does. You need the space between tokens. 11:16:27 --- quit: arke (Nick collision from services.) 11:16:27 --- nick: arke_ -> arke 11:16:35 --- mode: ChanServ set +o arke 11:17:41 cool 11:17:45 this book is quit good 11:17:48 quite 11:18:20 You know, it's funny. 11:18:39 Forth is all lexer. Lisp is all parser. ;D There's a certain amount of symmetry there. :D 11:18:51 (well, Lisp does have a minimal lexer, but only to support the parser. :D) 11:19:07 s/but only to support/but only enough to just support/ 11:20:31 lisp and forth are funny in that way ... find any aspect and you'll find that they're either complete opposites or nearly the same. :D 11:21:17 hm 11:21:56 I want to learn programming so all the stuff I imagine making computer do I can try and make happen. 11:22:00 :) 11:23:30 forth linda is really exciting 11:23:36 I saw somethign called rubyqueue 11:23:42 seemed cool as heck 11:23:47 rq 11:25:25 --- join: gnomon (n=gnomon@74.210.55.230) joined #forth 11:25:53 --- quit: H4ns (Read error: 110 (Connection timed out)) 11:26:57 --- join: arke_ (n=arke@p54A7E0AF.dip.t-dialin.net) joined #forth 11:29:18 * kc5tja isn't familiar with ruby at all, except to know that it's a dynamic, OO language that attempts to merge the properties of Python and Perl. 11:29:40 * kc5tja has been too busy with other projects to keep up. 11:43:45 --- quit: arke (Read error: 110 (Connection timed out)) 11:43:46 --- nick: arke_ -> arke 11:44:12 I (forth) only have access to the top stack element, correct? 11:44:22 (unless I manipulate the stack) 11:45:02 What does "access" mean? 11:45:02 Yes; words always access the topmost stack elements, starting with the top element first. 11:46:20 so I can't say "execute the second address" without swapping, correct? 11:46:59 right. 11:47:22 okay 11:47:24 Of course, you can give the illusion of that capability by defining your own word to encapsulate that ability. 11:47:30 right 11:47:31 If you want to keep the XT in the 2nd stack positoon, use OVER. Otherwise, SWAP. 11:47:32 : EXEC-BEHIND SWAP EXECUTE ; 11:47:36 or some such. 11:47:50 madwork: Good point. 11:48:00 well it could be any position; I just picked "2" 11:51:00 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 11:51:44 * kc5tja nods 11:51:49 --- quit: Off_Namuh74 (Remote closed the connection) 11:58:32 --- quit: rbarraud (Read error: 110 (Connection timed out)) 12:09:31 --- join: rbarraud (n=rbarraud@gateway.quickcircuit.co.nz) joined #forth 12:20:07 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-174-247.pools.arcor-ip.net) joined #forth 12:20:40 --- quit: Snoopy42 (Nick collision from services.) 12:21:00 --- nick: snoopy_1711 -> Snoopy42 12:21:47 --- join: H4ns (n=Hans@p57A0E3B1.dip.t-dialin.net) joined #forth 12:31:47 --- join: ygrek (i=user@gateway/tor/x-337f9027f9f07df1) joined #forth 12:33:54 lunch 13:03:59 --- join: ygrek_ (i=user@gateway/tor/x-c7a455d478245d17) joined #forth 13:11:21 --- join: forther (n=forther@207.47.34.100.static.nextweb.net) joined #forth 13:21:18 --- part: H4ns left #forth 13:24:22 --- join: H4ns (n=Hans@p57A0E3B1.dip.t-dialin.net) joined #forth 13:24:27 --- quit: ygrek (Remote closed the connection) 13:28:48 --- quit: timlarson_ ("Leaving") 13:37:36 --- join: arke_ (n=arke@p54A7FBD9.dip.t-dialin.net) joined #forth 13:37:51 --- quit: ygrek_ (Remote closed the connection) 13:40:08 --- quit: arke (Nick collision from services.) 13:40:08 --- nick: arke_ -> arke 13:54:23 I have gotten my forth into some kinda loop 13:54:31 how do i stop gforth execution? 13:54:49 (trying to do the thanks poblem in starting forth ch1) 13:54:51 ! 13:58:44 CTRL-C usually works. 13:59:04 If that fails, you can use CTRL-\ to send it a SIGABRT signal. 13:59:18 --- join: doublec (n=doublec@202.180.114.137) joined #forth 13:59:20 And if *THAT* fails, killall -9 gforth will kill all processes running named gforth. :) 13:59:45 wow that was exciting 14:01:52 when I use a string 14:01:58 ." string " 14:02:12 I noticed I can leave out the space between the final " and the string 14:02:17 ." straing" 14:02:24 but not the first space 14:02:29 Of course. 14:02:34 should I get in the habit of using a trailing space? 14:02:41 or is itnot important? 14:02:52 Get in the habit of understanding how parsing words work. 14:03:02 ok 14:03:15 ." is a word, space delimited like any other. It parses the input until it reaches a " 14:04:05 If you have spaces before the trailing ", then they will get printed. 14:04:16 Right. 14:04:25 Here's what happens, from Forth's point of view. 14:04:30 It will see the ." word. 14:04:47 It looks it up in its dictionary, then executes it. 14:04:55 Note that Forth has no idea what's coming up in the input stream. 14:05:04 So it's up to ." to parse the remaining string data. 14:05:05 BUT... 14:05:39 because the Forth word reader has already read past the space (or else, how else will it know that ." is a word?), the string data must appear after that space. 14:05:59 This is often confusing to new-comers, who often cannot tell the difference between ." hello" and ." hello". 14:06:20 Can you figure it out? (It's a bit of a semi-advanced exercise. :)) 14:07:54 yeah 14:07:58 I see that 14:08:04 * kc5tja was spending early this morning pondering about how to implement any kind of analog to RAII in Forth. I thought I could use my LATER word (which I shamelessly stole from somewhere else; I think it was someone on CLF, but I cannot remember who), but that only works under certain conditions. 14:08:30 The thing to remember is that every forth word relies on whitespace to delimit its name from other words and data in the input stream. It doesn't matter what the word does. 14:09:08 --- quit: wossname (Success) 14:09:14 * kc5tja remembers learning PygmyForth for the first time, and was always bothered by those stupid spaces between the opening " and the rest of the string. I hated it. :) 14:09:24 Now I almost prefer it because it *so* simplifies the language. :) 14:12:39 ok got exercise 1 workin!! 14:12:41 :) 14:13:06 Nice. :) 14:13:43 well for me since answer link is broken 14:13:51 :( 14:14:56 What tutorial are you using? 14:15:04 starting forth 14:15:15 http://www.amresearch.com/starting_forth/sf1/sf1.html 14:15:17 This is on the iForth website? 14:16:52 http://home.iae.nl/users/mhx/sf1/sf1.html 14:16:57 this one works better :) 14:17:09 thx 14:17:43 Ahh 14:17:53 So you just printed out a thank you note for a gift then. :) 14:18:07 yep 14:18:11 Im hard core 14:18:19 lol 14:18:22 Hahah :) 14:18:27 Well, it's a start. 14:18:44 I need to go beyond bash sometime 14:19:44 * kc5tja nods 14:20:07 Even if you never use Forth for anything else, ever, Forth is useful for learning how the computer _really_ works, without having to resort to an individual machine language. 14:21:18 * kc5tja wonders if this online edition of Starting Forth has been updated to cover ANSI Forth or not. 14:26:15 http://home.iae.nl/users/mhx/sf1/1-2.forth 14:26:21 this snawer says ANSI ized 14:26:26 answer 14:26:30 so probably... 14:26:33 Cool. 14:26:38 * kc5tja 's jaw drops to the floor. 14:26:49 ? 14:26:52 * kc5tja needs to get his bike fixed because it keeps blowing the front tire. 14:27:02 So I'm looking at the cost of some new wheels. 14:27:11 They cost as much as a whole new bike!!! 14:27:38 basic engineering of cheap cool products is gone 14:27:43 high priced crap is in 14:27:50 hence me learning forth on linux 14:27:52 :) 14:27:57 well, in the cycling world, they're rarely engineered like crap. 14:28:04 well 14:28:09 more that a 14 year old needs 14:28:17 perhaps.. 14:28:27 * kc5tja isn't 14 years old, and I certainly am not an amateur biker. :D 14:28:35 I think all those triathletes should have to use regualr heavy drit bike 14:28:41 none of this alloy sueprbike crap 14:28:43 Still, to replace my front wheel, it'd cost me about the same as just getting a whole new bike. 14:28:44 let men be men 14:28:59 in fact 14:29:06 Oh you totally misunderstand. 14:29:09 triathlon be a lot shorter if had weights on them 14:29:13 They *DO* use regular dirt bikes -- for training. 14:29:14 or a heavy ass bike 14:29:17 Builds muscle and stamina. 14:29:31 I think they should have 50mpound strapped to them 14:29:34 Then, when it comes time to race, you want a lightweight, strong metal frame and wheels, so you have maximum power to weight ratio. 14:29:41 THEN do smalelr triathlon! 14:29:48 smaller 14:29:51 * kc5tja 's bike weighs 40 lbs. 14:29:57 make event harder since humans getting fitter 14:30:03 errr 14:30:04 what? 14:30:07 Humans aren't getting fitter. 14:30:12 Not sure where you got that from. :) 14:30:14 since humans can now do hese extreme things 14:30:22 well humans who train eh? 14:30:29 most are fat ike me 14:30:30 We do these extreme things precisely because we have those specialized alloys. 14:30:47 be more impresive fi do extreme half as long but with 40 pounds 14:30:57 liek when guys do chinups with weight 14:31:00 thats impressive 14:31:08 (to me) 14:31:08 No, that's just chinups. 14:31:15 It's called resistance training. 14:31:23 But resistance training and racing are quite different things. 14:31:31 If you want to race, you need agility and speed. 14:31:35 Resistance does not deliver those. 14:31:38 but race be much harder 14:31:45 if they had 40 pound weight on them 14:31:45 It's already damn intense. 14:31:53 No, sorry, it'd be much, much easier. :) 14:31:54 even running a mile harder 14:31:54 Trust me. 14:32:01 with 40 pounds 14:32:06 Having a 40lb weight on a bike slows you down, sure, but ... you're going SLOWER. 14:32:10 yeah 14:32:14 but to be fasest 14:32:20 all relative 14:32:25 everyoen sloweed down 14:32:27 Try making a tight turn on cycle at high speed. Good luck. 14:32:35 But not everyone is the same. 14:32:36 hm 14:33:00 And, I grew up with cheap bike parts as a kid. 14:33:06 some event that combined need for power and stamina be itneresting 14:33:10 You install it, and breaks in a couple of months. Not good. 14:33:11 interesting 14:33:13 * kc5tja wants his stuff to last. 14:33:17 yeah 14:33:29 do you think planned obselescence is still with us? 14:33:48 Yes, definitely. I doubt that it happens in the cycling industry though. 14:33:54 hm 14:33:59 I had old frige one time 14:34:00 But definitely in the electronics industry, and VERY much in the automotive industry. 14:34:03 was super cold 14:34:11 weiged a ton 14:34:17 not abd on powe 14:34:21 bad on power 14:34:41 ruined ice cream on 2 of 6 cold setting 14:34:45 ice cream was liek rock 14:34:50 and when thawed it was jacked 14:34:57 had to run on 1 of 6 14:36:34 any forth appservers? 14:38:09 No, but I was hoping that with some time and effort, I was hoping to evolve one for the FEARS concept I have. 14:38:30 Somewhere on Taygeta is a CGI library for Forth. 14:39:04 taygeta? 14:41:05 It's a haphazard treasure trove of random Forth links and code examples (some of which are written by those without concern to a particular coding style, so they might be hard to read sometimes. But they usually do work as advertised at least.) 14:41:21 http://www.taygeta.com/forth.html 14:41:43 --- join: arcus_ (n=Miranda@130.195.209.73) joined #forth 14:45:37 Looks like it's not there anymore. :/ 14:47:44 Oh well. I am sure it's still out there somewhere. 14:47:58 * kc5tja has to get back to work though -- I cannot spend all my time looking through old Forth sites. :) 14:47:58 --- quit: arcus_ (Read error: 104 (Connection reset by peer)) 14:48:14 Not and pay the rent :-) 14:54:14 lol 14:56:25 you mean you know forth and are not working for yourself developing forth clusters to dominate computing? 14:56:29 !! 15:07:18 No, there is amazingly little market for Forth these days. 15:07:32 Gavino. 15:08:02 Java is the new Cobol, C++ is the new Lisp, and functional programming languages that produce excellent quality code are now starting to blossom. 15:10:46 Occationally one gets lucky, like I did, and gets hired to mix Forth into C++ project. 15:13:41 --- join: Off_Namuh74 (i=GPS@gateway/tor/x-82de29a0682266f6) joined #forth 15:17:37 --- quit: Crest (Read error: 110 (Connection timed out)) 15:18:05 Yeha. 15:18:12 Yeah 15:18:13 Especially if that job is a long-term job too. 15:18:32 * kc5tja would love to work with Forth on a professional basis. 15:18:34 It sounds like a load of fun. 15:19:05 (But, in some aspects, like a load of frustration too, especially when you get that one word buried deep inside some large project that has that intermittent stack imbalance bug...) 15:19:40 I like it. And now that I've got the VM stuffed in there, folks have started thinking up more uses for it. 15:21:28 The last time I implemented an embedded language like that, I got SEVERE pushback from other engineers. 15:21:35 Even from those who didn't directly work with the software! 15:22:08 We've started looking at adding higher-level primatives (calls out to C++) to the VM and moving more of the code into Forth. 15:22:58 Congrats! 15:22:59 I have no illusions about how lucky I got. I completely understand the kind of pushback you've had. 15:23:12 Is your company hiring?? :) 15:23:27 As a matter of fact :-) 15:23:55 Can you /msg me the relevant details? Also, what is the website of your company? 15:24:07 You would still need pretty strong C++ skills. 15:24:24 I have those; I just don't have *recent* C++ experience. 15:26:52 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 15:26:52 --- mode: ChanServ set +o tathi 15:37:25 --- quit: Quartus () 15:54:42 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 15:57:42 recent heh 15:58:40 seriously. The last time I worked with C++ was in the mid-90s or so. 15:59:12 C++ bites 15:59:58 Well, in terms of what it can do, it's OK. But, man, the syntax is rotten to the core. 16:00:17 That's why I wanted to look into something like Prescheme or something like it, where I can at least have a nice macro capability. :) 16:00:24 And, s-expressions aren't all that bad anyway. 16:08:45 --- join: arcus (n=Miranda@130.195.209.73) joined #forth 16:14:56 it's not just the syntax either 16:15:09 the template stuff doesn't actually work right 16:15:38 Well, maybe, it doesn't work as expected. 16:15:53 In what ways does it not work "right"? 16:21:10 --- quit: Quartus__ (Read error: 104 (Connection reset by peer)) 16:27:45 hm 16:27:50 I heard D is ok 16:27:52 :) 16:27:55 (shields up) 16:28:14 I reaslize first thing I dont liek about forth 16:28:16 sofar 16:28:27 lisp lets me add any number of things 16:28:36 (+ 4 3 2 3 44 33) 16:28:44 in forth I have to do them like in 2s 16:29:12 4 3 + 23 + 44 + 33 16:29:17 well 16:29:20 first two..... 16:29:24 er 16:29:26 yeah 16:29:50 (with . at end) 16:31:48 --- quit: forther ("Leaving") 16:34:49 hm 16:34:53 stack!! 16:34:58 all about the stack!! 16:35:02 hm 16:38:28 In Lisp, you build a parse tree via lists of lists. 16:38:40 In Forth, if you were to build a parse-tree, you'd do it more semantically. 16:39:06 So 4 3 + 23 + 44 + 33 + is correct, because you're building a list of numbers to be summed up. 16:39:24 --- join: FMota (n=FMota@dhcp-36-203-57-69.cf-res.cfu.net) joined #forth 16:39:54 Since + is a dyadic operator, the above code would build up a nested list of (+) nodes, with the left-hand branch pointing to a number, and the right hand pointing to whatever was on the stack at the time. 16:40:06 (I'm speaking by way of analogy here of course; Forth itself doesn't work this way) 16:43:46 hm 16:44:02 so things will become clearer as I progress? 16:51:13 what's not clear? 16:55:08 --- join: saon (n=saon@207.138.42.211) joined #forth 16:55:58 --- quit: timlarson (Read error: 104 (Connection reset by peer)) 16:56:59 --- join: timlarson (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 17:00:34 linxu: Well, that's true for any language. You're just starting out from ground zero, and Forth is totally new. Uncertainties and comparisons to other languages are always bound to happen. :) 17:01:03 linxu: given things are passed on the stack in Forth, how would you get it to add up just the right number of numbers? 17:01:19 ulp, gotta dash. bak son. 17:03:37 --- quit: timlarson (Read error: 104 (Connection reset by peer)) 17:03:49 --- join: timlarson__ (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 17:12:14 --- quit: saon ("leaving") 17:12:41 --- join: saon (n=saon@207.138.42.211) joined #forth 17:46:41 hm 17:46:42 ok 17:46:51 but does that become annoying alter on? 17:46:57 when you want to do complicated stuff? 17:47:01 or is it easy 17:47:05 once get hang 17:47:52 oh, "later" 17:47:58 took me a while to understand 17:48:29 in forth its easy to do some stuff 17:49:03 mostly it takes experience 17:49:15 what takes a long time is writing something complex from scratch 17:49:19 but that's true of any language 17:49:34 forth enthousiasts often seem to like writing things from scratch 17:49:43 many of them actually writing their own forth compiler/interpreter 17:51:01 I did. I started from a very small amount of assembly language, and with the little help from some scripts, eventually built a whole IDE 17:51:24 nice 17:51:25 made it so it could sustain its own development. no need for the asm code or scripts in other languages 17:51:34 now can one end up with nice end user apps from forth too? 17:51:48 sure 17:51:51 linxu: Many arcade games for the older 8-bit home computers were written in Forth. 17:51:59 awesome 17:52:09 linxu: there's no standard way to build an app, but thousands of ways work. 17:52:14 :) 17:52:25 lots of forths support FFI, so you can use whatever GUI lib you like 17:52:29 forth-linda is inspiring 17:52:30 anything that works in C 17:52:33 As far as using variable-length lists of stuff on which to "reduce" with an operator, we're getting into vector processing, which Forth has no innate support for, BUT, with suitable coding work, it can be made to support well. 17:52:38 ah liek tk for example? 17:52:42 It's a research area that I'm very interested in, actually. 17:52:50 for some it's annoying to have to dig up the values of constants and the format of the structures 17:52:54 some not so much 17:53:01 well I noticed one had to recompile words 17:53:03 sure, tk would work I'm sure 17:53:04 made of other words 17:53:08 if one word changes 17:53:13 I don't pay much attention to existing projects in forth. 17:53:17 but I know of one that uses xlib directly 17:53:29 that kind of leads me to think maybe you cant redefine stuff somewhere and have everywher else ref it? 17:53:32 linxu: yes, there is a "use pattern" for working around that, which is never documented in any book that I've seen to date. 17:53:35 some forths come with support for one or two GUI systems 17:53:52 hm 17:53:55 linxu: Correct -- you have to recompile the code to get the new implementation. 17:54:04 However, recompiling takes, at most, seconds. 17:54:15 Contrast this with doing the same in C. :) 17:54:18 you can set things up so they can be updated 17:54:22 the idea i have in my head is that since forth uses less ram, you can paraellize work in the leftover ram, and have much fast apps 17:54:26 kc5tja, just interested, do you remember names of the 8-bit arcade games that were written in forth? 17:54:58 ccfg: No. I do know that Forth was in regular use in Atari for their 8-bit platform though. 17:55:08 linxu: forth can do it either way. you can compile direct links to code, so that newer versions aren't used. or you can explicitly set the word as updatable ("defer" it) so you can give it a newer definition later 17:55:09 But I have no specific games to reference. 17:56:07 one reason that forth tends to be memory-efficient is that it's easy to find a bare-bones forth 17:56:15 it's small in part because it doesn't do much 17:56:53 garbage collection is not a common feature, and some forths don't even have a dynamic memory allocator like malloc()/free() 17:56:58 linxu: If you're willing to dive into some fairly heady and heavy stuff regarding Forth and memory management, I've written a blog article that might explain a bit more about how Forth memory management works. 17:57:20 anything's possible in forth 17:57:44 I've written a few forths, and never bothered making a dynamic memmory allocator. I didn't need one 17:58:41 linxu: http://tinyurl.com/2m28ep is the link to my blog article -- in case you're interested. :) 17:59:14 JasonWoof: You might find the link of interest too, if you haven't read it already. :) 17:59:32 kc5tja, ok. jupiter ace also got forth as its programming language instead of basic 18:00:22 more 8-bit machines should have done that :) 18:00:29 ccfg: Yeah; the Ace was one of the inspirations that got me working on my Kestrel project. 18:01:53 Hmm...fascinating -- in my work using functional programming skills to analyze my legacy code using pseudo-Haskell, anything that tended to end up in the IO monad results in code that is not unit testable. 18:02:37 kc5tja, that looks interesting, i'll read more about it later 18:03:31 --- quit: arcus (SendQ exceeded) 18:13:37 --- quit: tathi ("leaving") 18:13:41 you shouldn't have to use tinyurl for your own website 18:13:44 just fix the url 18:15:05 I don't have the ability to control the URL. 18:15:20 Not from the UI of the blog, at least. 18:37:56 --- quit: timlarson__ (Read error: 104 (Connection reset by peer)) 18:38:29 blog shmlog 18:39:33 Not everyone can write their own wiki in Fronds. 18:39:51 I rather like my blog, thank you very much. 18:40:04 It makes me feel more important than I really am. 18:41:03 --- join: edrx (i=edrx@189.25.20.156) joined #forth 18:48:18 --- quit: FMota () 18:52:27 --- join: timlarson__ (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 18:52:27 --- quit: gnomon (Remote closed the connection) 18:55:19 --- quit: ruediger ("This computer has gone to sleep") 19:08:15 --- join: arke_ (n=arke@p54A7FDBC.dip.t-dialin.net) joined #forth 19:10:34 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 19:10:34 --- mode: ChanServ set +o Quartus 19:16:00 --- join: Al2O3 (n=Al2O3@207.190.0.11) joined #forth 19:17:58 --- quit: Al2O3 (Client Quit) 19:24:46 --- join: Al2O3 (n=Al2O3@207.190.0.11) joined #forth 19:26:27 --- quit: arke (Read error: 110 (Connection timed out)) 19:26:27 --- nick: arke_ -> arke 19:48:35 --- join: ruediger (n=the-rued@chello062178150152.7.14.univie.teleweb.at) joined #forth 20:11:34 --- quit: Al2O3 () 20:22:46 --- quit: Quartus () 20:59:13 --- quit: malyn () 21:01:21 --- quit: H4ns (Read error: 104 (Connection reset by peer)) 21:01:47 --- join: H4ns (n=Hans@p57A0E3B1.dip.t-dialin.net) joined #forth 21:06:04 --- quit: oxygene (Read error: 104 (Connection reset by peer)) 21:06:13 --- join: oxygene (n=oxygene@khepri.openbios.org) joined #forth 21:19:05 --- quit: edrx (Remote closed the connection) 21:42:41 --- quit: wossname (Read error: 110 (Connection timed out)) 21:49:42 --- quit: doublec () 22:15:41 --- part: KNY left #forth 22:55:45 --- part: oxygene left #forth 22:56:02 --- join: Al2O3 (n=Al2O3@63.139.148.74) joined #forth 23:10:24 --- join: H4n1 (n=Hans@p57A0F88C.dip.t-dialin.net) joined #forth 23:27:55 --- quit: H4ns (Read error: 110 (Connection timed out)) 23:28:15 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 23:28:29 --- join: ygrek_ (i=user@gateway/tor/x-2b76155afc94dd37) joined #forth 23:30:16 --- quit: ruediger ("This computer has gone to sleep") 23:32:57 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 23:32:57 --- mode: ChanServ set +o slava 23:46:36 --- quit: H4n1 (No route to host) 23:47:52 --- quit: arke (Read error: 110 (Connection timed out)) 23:59:59 --- log: ended forth/07.10.24