00:00:00 --- log: started forth/04.12.06 04:19:17 --- quit: warpzero_ (Client Quit) 04:47:38 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 05:10:49 --- join: warpzero (~warpzero@mi127.dn186.umontana.edu) joined #forth 05:18:38 --- quit: fridge (Remote closed the connection) 05:26:42 --- quit: warp0b00 (Client Quit) 05:28:23 --- quit: onetom (tolkien.freenode.net irc.freenode.net) 05:28:23 --- quit: Robert (tolkien.freenode.net irc.freenode.net) 05:30:36 --- join: Robert (~pink@c-4d5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 05:33:54 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 07:25:17 --- quit: tathi ("leaving") 07:48:38 --- join: warpzero_ (~warpzero@wza.us) joined #forth 08:02:36 --- join: Baughn (~svein@cloud.brage.info) joined #forth 08:04:48 Just wondering... I'm going to be taking an OS course the upcoming spring, and as it has an emphasis on speed, but I sorely dislike C, I was considering Forth. Should be a good fit, but has anyone ever written an OS in it? How did it go? 08:07:37 (That would be a "yes". forthos.com was most forthcoming.) 09:23:25 there are like 1000 different forth OSes. :P 09:24:25 forth prefers to be an OS rather than a process on a system. and most of the forths on some other c-based OS tend to treat the OS as a bootstrap/bios. 09:26:06 most forths don't generate instructions nearly as well as a high-end C compiler though. most forths are actually a realy fast interpreter (direct thread, token threaded, or subroutine threaded are the most common). 09:27:02 but there are native forths. and some of them do optimize. it's not impossible in forth. it's just more work to write an optimizing compiler than it is to write a direct threaded forth. and forth is definently about only doing as much as you need to do. 09:27:38 btw. what's so wrong with C? C really is geared towards implementing a classical operating system. 09:28:34 well i gotta go to work. seeya 09:32:44 C may be geared towards classical OSs, but I'm not geared towards C. I'm literally 15-20 times more productive in Lisp, and 2-3 times in Forth. 09:33:24 Actually, I'm just very, very bad about Algol-derived languages. Some people have trouble with Lisp; I have trouble with C. 10:00:03 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 10:02:37 --- join: Topaz (~top@sown-86.ecs.soton.ac.uk) joined #forth 10:09:07 I'm fairly agnostic. C requires me to do extra steps compared to scheme or forth, but I've done them so many times the extra steps don't require thought. 10:20:00 --- quit: Topaz (Read error: 113 (No route to host)) 10:23:42 --- join: Topaz (~top@sown-91.ecs.soton.ac.uk) joined #forth 10:24:12 ECHO... Echo... echo... e..o... 10:24:24 Why is this place so quiet now? 10:32:37 people are working. :P 10:33:18 The problem with C isn't writing it, it's reading the code later. 10:33:33 With Lisp, I can easily understand someone else's code. With C, I have trouble with my own. 10:36:58 i read other people's C about as well as I read other people's english. i'm not sure that is much of an endorsement though. :) 10:38:08 some people say lisp is hard to read. *shrug* I'm not that good at reading other people's lisp, but it's surprisingly easy considering I hardly ever read or write lisp or scheme. :P 10:40:48 Thre you go. Lisp code has a nasty tendency of resembling the author's thoughts. C code... doesn't. 10:41:22 language is the structure that is used for expression. but all languages have some limitations to that structure and therefor limit one's ability to express. but all computer langauges are roughly on par in their ability to express. especially compared to natural language. which is mainly why I don't try to be too concerned with what language I use. 10:41:59 Baughn, C code is good at reflecting the author's *lack* of structural organization. :) 10:43:05 All computer languages are *not* on par, and I don't think you believe that. (Otherwise, why are you in #forth?) 10:43:44 C code is just hopelessly verbose. I lose the meaning of the code in the details. 10:47:06 Baughn, roughly on par they are. 10:47:16 it's not like forth is an order of magnitude more expressive than C. 10:47:35 That depends on your radix. 10:47:43 Baughn, C has crappy syntax, but it's quite expressive. 10:47:45 I'm a lispnik though, and (at least for me), Lisp *is*. 10:48:36 lisp probably takes less work than C. which is certainly valuable. but it doesn't imply that it's significantly more expressive. 10:49:01 Not by itself, no. Its feature list does that. 10:49:21 You can't make me like a language that doesn't at least have lambda and lexical closures. 10:49:33 ehhee 10:49:42 Well, no... actually, the most important bit is having a REPL. 10:49:57 After that, a good debugger. 10:50:09 so are you using one of those x86 lisp compilers? 10:50:15 Yes? 10:50:24 What does that have to do with it? 10:50:31 i haven't tried one. just wondering if you were into them. 10:50:51 How long has it been since you used Lisp? 10:50:53 been thinking that a lisp os would be pretty intresting. 10:51:06 * Baughn grins. He's writing one. 10:51:23 Not a very *good* one, though; look to Movitz for that. 10:51:25 i basically never use lisp. I've never written anything more than about 20 functions long. 10:51:47 i have hacked scheme a bit though. but it's not entirely the same 10:52:13 Try "almost, but not quite, entirely different". 10:52:56 Join #lisp, and I'll hand you a nice starting point. 10:53:51 i think not! 10:54:11 ehhe. 10:54:20 qFox: En garde! 10:55:46 Baughn, well i think Algol, Pascal, Ada and C are all the same language. :P 10:56:09 Not too far off there. 10:56:13 scheme is kind of a cheapend version of lisp. 10:56:37 my weapon of choice is a fridge, so be aware... 10:56:45 Scheme is a LISP, not a Lisp. Lisp is shorthand for Common Lisp, which is also a LISP. 10:56:47 * OrngeTide stuffs qFox in his fridge. 10:57:01 Baughn, maybe my capslock is broken? 10:57:03 nu-uh, not possible. 10:57:12 * OrngeTide finds a larger fridge. 10:57:28 * Baughn hands qFox a rope and tells him to pull on it. 10:57:35 * OrngeTide grabs qFox by the food and drags him towards the giant industrial fridge. 10:57:40 s/food/foot 10:57:59 food? hrm. freudian slip? maybe I'm hungry. 10:58:25 Scheme isn't "cheapened" in any way; it's designed to be evry simple, for teaching compiler/language design. Not for practical use, although the Scheme folks are eternally defiant on that point. 10:58:34 s/evry/very/ 10:58:36 i've been thinking. it would be need if we could have some sort of channel-wide project. although it's hard to get everyone to agree on the same thing. 10:58:52 ooooooh 10:58:59 industrial fridges 10:59:01 Baughn, that's what I would called cheapen. :P 10:59:01 cool :D 10:59:06 I could agree on a bare-iron, optimizing compiler. 10:59:32 qFox: Pull the rope, already. 10:59:41 it's like, since CL is too big for someone to write as a final project in a compiler class, let's make it cheaper so they can do it in the time they have. 10:59:53 Baughn, an optimzing forth compiler? 10:59:59 OrngeTide: Oh, yes. 11:00:03 can we target PPC? 11:00:13 OrngeTide: Why not? 11:00:28 OrngeTide: I need both x86 and amd64, too. 11:00:31 Herk and I would want it for PPC. but I440r would probably only be interested in x86. 11:00:42 So we make it modular. 11:00:44 oh portable forth? I totally don't believe in portable forths. 11:01:07 Lots of optimizations are abstract; others are machine-dependent. 11:01:09 it's cheaper to write 3 different compilers than it design one that does 3 different things. 11:01:29 Yes, but *most* of the code will be shared. 11:01:38 Baughn, well there are forth words that can be used to swallow dup drop and thing like that. 11:01:55 Not having learned forth yet, I wouldn't know. 11:02:02 (Don't kill me!) 11:02:15 Baughn, i think the code should be engineered specifically for it's task. that's the least effort way 11:02:49 optimizing for a register starved x86 is significantly different than optimizing for sparc or mips. 11:02:59 OrngeTide: If I just wanted an x86 compiler, sure. If I wanted compilers for x86, amd64 *and* ppc, I don't think it should be done three times. 11:03:16 x86 is actually easy in some ways because you don't need to track registers as carefully, since you will probably have to load them anyways. 11:03:18 Keep it to amd64 and ppc, then; that's fine. 11:04:10 you'll find about 1/3 to 1/2 of forthers think like I do. they would rather have 3 compilers written instead of 1 compiler with 3 different modes. 11:04:12 Actually, x86 register management includes managing the umpteen bazillion hidden/aliasing registers. It gets hairy. 11:04:23 yea. 11:04:34 my buddy codes for s/390 .. that's even hairier. :P 11:04:43 er.. codes a C++ compiler for s/390 11:05:12 OS project... grades based on speed... ICC fast, GCC slow, forth too slow... *aagh*! 11:05:28 I'm conflicted. 11:05:51 mostly on x86 you're interested in cache behavior, although internal machine state can come into play there too 11:06:05 Baughn, based on speed? that's crazy. 11:06:12 what benchmark is being used. 11:06:24 OrngeTide: Task switching, mutex stuff, etc. 11:07:01 Correctness is good too, but failing that means just plain failing. 11:07:03 performance seesm to be logrithmically proportional to the amount of time spent on it. the difference between a software package that was optimized for 1000 hours is not that much slower than one optimized for 10000 :P 11:07:40 --- quit: qFox ("this quit is sponsored by somebody!") 11:07:43 Baughn, so you going to use hybrid spin mutexes like they do on freebsd? 11:07:59 or will you not have to even consider SMP/SMT systems? 11:08:00 We have no exam, and it's the only thing I'm supposed to take this spring. Put another way, the entire spring is one long exam. 11:08:05 OrngeTide: No SMP. 11:08:09 oh lucky. 11:08:22 OrngeTide: I was planning a preemptive kernel, though. 11:08:35 OrngeTide: (Yes, latency is another one of those benchmarks) 11:08:39 why bother on a uniprocessor? 11:08:45 oh latency. 11:09:03 well if you can get the benchmark itself you can tune your system against that. 11:09:16 i wish i got projects like this. I have to write kernels on my own just for fun. 11:09:19 Evil... must not fall... 11:09:37 "Welcome to the dark side of CS"? 11:09:56 eheh 11:10:27 I just got Solaris Internals. (I've applied for a job at Sun). it's a pretty interesting book. 11:10:38 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 11:10:40 --- quit: qFox (Remote closed the connection) 11:11:04 i'm not really into CS though. I'm an engineer, not a scientist. 11:11:23 I'm into Informatics. Compared to that, CS is engineering. 11:11:28 ehhe 11:35:18 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 11:40:13 --- quit: Topaz (Read error: 60 (Operation timed out)) 11:46:44 --- join: Topaz (~top@sown-86.ecs.soton.ac.uk) joined #forth 12:42:08 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 13:03:44 Hi foxtopaz 13:07:28 lo 13:11:48 --- quit: tathi ("cooking") 13:21:34 Uhm... 13:21:44 Does "repeat" usually consume any stack items? 13:23:32 Er, what the f... 13:23:56 Every other looping word in isForth is unconditional. 13:35:01 --- quit: Baughn (Read error: 113 (No route to host)) 13:42:04 --- join: tgunr (~davec@vsat-148-65-228-91.c012.g4.mrt.starband.net) joined #forth 13:43:56 no, it shouldnt 13:44:08 only at compile time 13:44:20 (target to jump to), repeat is unconditional 13:44:49 --- join: Baughn (~svein@cloud.brage.info) joined #forth 13:45:51 Bah. 13:45:58 That's stupid 13:46:07 "again" should be unconditional 13:46:16 And "repeat" the opposite of "until" 13:46:19 again? 13:46:34 Again. 13:46:36 thats one of YOUR lets-make-it-a-standard-forth-word 13:46:42 isnt it? 13:46:43 :p 13:46:51 I don't think so 13:47:04 what construction is it used in 13:47:45 begin foo again 13:47:55 Endless loop 13:48:12 again? 13:48:14 hrm 13:48:44 oh wait, is that used in COLD? 13:49:49 COLD? 13:50:02 either way. looks like the same word as repeat. so only one item at compilation time 13:53:57 Well, I "fixed" this with 0= until 13:56:33 huh? 13:56:50 sounds sketchy 14:06:39 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 14:07:48 --- join: tgunr (~davec@vsat-148-65-228-91.c012.g4.mrt.starband.net) joined #forth 14:41:49 --- join: imaginator (~George@georgeps.dsl.xmission.com) joined #forth 14:43:22 --- quit: qFox ("this quit is sponsored by somebody!") 16:02:02 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 16:03:15 --- join: Sonarman (~matt@adsl-64-171-255-6.dsl.snfc21.pacbell.net) joined #forth 16:04:11 --- quit: Topaz ("Leaving") 16:09:10 --- quit: imaginator (Excess Flood) 16:09:49 --- join: imaginator (~George@georgeps.dsl.xmission.com) joined #forth 16:20:52 --- quit: tathi ("bah") 16:44:44 --- quit: imaginator (".") 17:31:14 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 17:48:17 --- join: TheBlueWizard (TheBlueWiz@modem-143.nyc-tc03b.fcc.net) joined #forth 18:00:27 * Myria2 waits for her ghost to be exorcised 18:00:27 step, and bounce, and 1, and 2! 18:00:27 xv: *that* kind is spelled "exercise" 18:01:18 Hi I440r 18:01:22 :) 18:01:28 How's the FreeBSD port of isForth going? 18:01:38 well thers still one thing to be fixed 18:01:42 I440r: did you submit that to bash.org yet? 18:01:50 and im kinda stuck right now with x86 isforth 18:02:09 i keep trying to force myself back into it but its like i cant right now 18:02:27 i get burned out every now and then, i code like mad and then stop 18:02:37 this is bad tho cuz its been almost a year 18:02:52 and im " <-- that close to THREE releasable versions of isforth 18:03:11 hehe 18:03:21 * crc has yet to get burned out with retroforth :) 18:03:22 a coder's block...I understand that 18:03:45 crc is on a ROLL with retroforth 18:03:55 and frankly, I am very pleased with the results :) 18:05:27 Me too :) 18:05:48 RetroForth is a 1x forth, cleanly designed, and very reliable 18:07:01 yep :) 18:09:27 * crc looks forward to another year of developing retroforth :) 18:09:54 I have a LOT that I want to do next year... 18:10:08 :) 18:10:17 colored version, start ARM and PPC ports... 18:10:44 a unix shell written in rf too :) 18:10:46 crc: for one, i'd like the addition of c4th-style conditionals in adition to the current ones. Also, a color layer might be nice. Also, turnkeying wouold be even nicer. 18:10:49 hehe :) 18:10:56 lets make a wishlist in the forum! 18:11:02 * arke goes to start a wishlist 18:11:16 arke: don't forget the mailing list... 18:11:30 crc: oh, theres a mailing list!? even better! 18:11:42 crc: which one is more frequently traversed? 18:12:04 I follow the mailing list more closely, as do the main users 18:12:17 the forum is more for support issues now 18:12:41 http://retroforth.org/board/index.php?board=1;action=display;threadid=135 18:12:45 aah, kk 18:12:50 That has details about joining the mailing list 18:13:04 thank you :) 18:13:09 you're welcome 18:13:17 Try to get thin to join too :) 18:16:29 :) 18:19:55 --- quit: Baughn (Read error: 113 (No route to host)) 18:44:27 --- quit: TheBlueWizard (Nick collision from services.) 18:44:42 --- join: zookie (TheBlueWiz@modem-151.nyc-tc03b.FCC.NET) joined #forth 19:03:39 --- nick: zookie -> TheBlueWizard 19:12:52 --- join: rsync (nobody@CPE000c41aac435-CM00111ae4f4cc.cpe.net.cable.rogers.com) joined #forth 19:13:36 --- quit: OrngeTide ("gone home") 19:51:27 --- quit: rsync ("Lost terminal") 20:01:07 --- join: rsync (nobody@CPE000c41aac435-CM00111ae4f4cc.cpe.net.cable.rogers.com) joined #forth 20:25:36 --- join: thinfu2 (~thinfu2@S01060000b45025b0.cg.shawcable.net) joined #forth 20:26:02 --- quit: thinfu2 (Read error: 104 (Connection reset by peer)) 20:26:35 --- join: thinfu2 (~thinfu2@S01060000b45025b0.cg.shawcable.net) joined #forth 20:26:51 --- join: thinfu (thin@bespin.org) joined #forth 20:26:56 LOL 20:27:02 joining the wrong channel with my bot 20:27:03 er 20:27:05 not bot 20:27:07 irc client 20:27:12 coded in retroforth :P 20:27:27 --- quit: thinfu2 (Client Quit) 20:43:47 --- join: wossname (~randolm@rn-v1w5a06.uwaterloo.ca) joined #forth 20:44:09 --- part: thinfu left #forth 20:52:21 bye all 20:52:40 --- part: TheBlueWizard left #forth 21:26:45 --- join: OrngeTide (orange@rm-f.net) joined #forth 21:27:08 hio 21:28:16 hi 21:34:13 --- quit: Sonarman ("Lost terminal") 21:34:31 --- quit: wossname (Read error: 104 (Connection reset by peer)) 21:36:39 --- join: wossname (~randolm@rn-v1w5a06.uwaterloo.ca) joined #forth 21:44:12 --- join: fridge (~Jim@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 21:49:14 --- quit: onetom (Remote closed the connection) 21:49:26 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 21:58:34 --- quit: cmeme (Remote closed the connection) 21:59:27 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 21:59:43 --- quit: cmeme (Remote closed the connection) 22:00:28 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 22:21:21 I440r, hey. 22:29:31 I440r, i was just wondering if you got any flash carts or anything for gba dev. or were you just going to use emulator for now? 22:34:55 http://www.kernelthread.com/publications/gbaunix/ .. 5th ed UNIX on gba. i think it's just pdp-11 emulator. 22:41:48 --- join: Baughn (~svein@cloud.brage.info) joined #forth 23:59:59 --- log: ended forth/04.12.06