00:00:00 --- log: started forth/04.12.24 01:30:31 --- quit: swsch_ (tolkien.freenode.net irc.freenode.net) 01:37:14 --- join: Topaz (jonny@spc1-horn1-6-0-cust217.cosh.broadband.ntl.com) joined #forth 01:37:23 --- quit: OrngeTide (Remote closed the connection) 01:37:24 --- join: OrngeTide (orange@rm-f.net) joined #forth 01:42:13 --- join: swsch_ (~stefan@swsch.sustaining.supporter.pdpc) joined #forth 02:36:47 --- quit: swsch_ ("Leaving") 03:31:17 --- join: Raystm2 (~Ray@adsl-68-95-248-153.dsl.rcsntx.swbell.net) joined #forth 05:07:04 --- join: zoly (~l@ppp-62-245-209-181.mnet-online.de) joined #forth 05:07:11 g'day 05:44:08 --- quit: Purdue00 (Remote closed the connection) 05:50:07 Hi 05:52:40 --- quit: bbls (Read error: 60 (Operation timed out)) 06:08:37 hi rob 06:09:03 --- join: Teratogen (~leontopod@intertwingled.net) joined #forth 06:09:12 Hi zoly, and hi Teratogen 07:03:23 --- join: Corun (~Corun@cpc1-rdng3-5-0-cust247.winn.cable.ntl.com) joined #forth 07:03:43 --- part: Corun left #forth 08:13:20 --- join: bbls (~bbls@80.97.121.133) joined #forth 08:13:47 hello 08:13:57 Hi 08:14:04 hi robert 08:40:27 --- part: zoly left #forth 09:06:01 --- quit: crc (Read error: 110 (Connection timed out)) 09:14:08 --- quit: ASau (Remote closed the connection) 09:44:08 --- join: TheBlueWizard (TheBlueWiz@modem-154.nyc-tc03a.fcc.net) joined #forth 10:05:02 Hi 10:05:27 hiya robert 10:05:45 hey all 10:05:58 hiya saon 10:08:26 :) 10:09:19 Hello 10:11:53 hiya madgarden 10:12:40 * madgarden dodges TheBlueWizard's feeble attack and responds with his own! 10:12:44 hiiiiiyaa!!! 10:16:09 I wish you all a Forthy Christmas. 10:16:17 (or equivalent religious holiday) 10:17:12 Thank you 10:17:33 I think I'll attempt to construct a copper oxide diode. 10:18:48 That will make an exquisite ornament for your tree! 10:19:24 hehe 10:19:50 I actually soldered 20 blue LEDs to a wire yesterday. 10:19:57 My gift...to myself! 10:20:05 They light up my entire room :) 10:20:24 must be poretty to look at 10:20:29 pretty* 10:21:51 Haha. Yes, the dawn of the age of cheap illumination is upon us. 10:24:32 yaa! next: wall-sized LED! Or ceiling-sized LED! then no more "dark spots" in the room! 10:26:23 It looks really nice 10:26:54 Ooh... I just had a vision of a room completely walled (and floored/ceiling-ed) with a huge, glowing display... containing Forth code, of course! 10:27:23 That's your kind of garden. 10:27:35 hey, that's just a step away from...quasi-holographic room! 10:28:50 3D Colorforth 10:28:58 * TheBlueWizard would LOVE to have a holographic room...then he can "direct" all codes, math, words, thought-flow, etc. using his hands, much like a maestro leads an orchestra 10:29:54 Heh. 10:30:10 with this setup, I believe my productivity will go up by perhaps 10,000 factor... 10:30:22 er, fold 10:30:42 3D stack manipulations. 10:30:56 It would be all crazy Rubic's Cube mode. 10:33:36 lol...yup...nut it will definitely appeal to the puzzle loving spirit in us geeks 11:03:14 hmm, how do i code something in colorforth? 11:03:37 it seems so alien :) 11:14:34 Yea, it's weird to me too. 11:37:17 --- quit: saon (Remote closed the connection) 11:46:48 --- join: saon (1000@c-24-129-90-197.se.client2.attbi.com) joined #forth 11:49:03 Hi again 11:49:05 Sauron. 11:49:35 hehe 11:49:59 * robert continues with his experiments 11:50:37 hmm, i'm soooo slow at dvorak 11:51:50 I gave up about an hour after trying it. 11:52:10 That's about the same time as I gave up the hope of ever becoming an acceptable typist 11:52:15 i know where all the letters are... 11:53:07 since i'm actually typing currently on a qwerty, just xmodmapping it 11:53:28 are you guys using colorforth? 11:53:38 but i don't have the muscle memory 11:55:54 bbls: No. 12:00:53 --- join: crc (~crc@pool-70-20-213-39.phil.east.verizon.net) joined #forth 12:03:50 Hey 12:03:56 Hi robert 12:03:58 My diode is working :)) 12:04:05 did you make it yourself? 12:04:07 Yeah 12:04:52 cool 12:05:28 * crc works on retroforth 7.6 (release version), 8.0 (experimental version), and will soon start work on a 64-bit version of RetroForth 12:06:40 For which CPU? 12:07:01 robert: you made a diode? 12:07:02 amd64 12:09:27 Topaz: Yeah.. at least I think so ;) 12:09:45 heh cool 12:10:10 oxide junction or something? 12:12:41 Yeah 12:12:55 It's about as reliable as Windows, though 12:13:03 haha 12:13:56 ha ha...never thought one would compare a simple gizmo to a mind numbing complicated thing called Windows 12:14:28 lol 12:20:18 --- quit: bbls (Read error: 104 (Connection reset by peer)) 12:27:01 --- join: bbls (~bbls@80.97.121.133) joined #forth 12:31:21 hi bbls 12:31:43 hey 12:31:53 hey? 12:32:06 hello 12:32:09 hi saon 12:32:11 hi crc 12:32:20 hey crc 12:32:28 how's the "provable language" work going? 12:32:44 what are you up to saon? 12:32:55 * crc is tired & getting sick :( 12:32:57 hrmm, not much 12:33:07 crc i make small but firm advances :) 12:33:27 good 12:33:45 * crc would like to see a semi-useful program written in it when it's done 12:33:53 :) 12:35:33 i'm still looking for the optimal language for this kind of job 12:35:52 a forth derivative seems the most probable 12:36:21 but i'm not sure what should be the primitives 12:36:26 I'm still tying to figure out why you need to prove correctness 12:36:46 (especially since that requires programs not to access memory) 12:36:53 crc so that the apps could run without being afraid of getting errors due to bugs 12:37:05 hmm 12:37:15 crc there might be a possibility to allow programs to access memory 12:37:26 is the program recompiled each time a new set of data is presented? 12:37:27 as long an there are pointers but not pointer arithmetic 12:37:35 no 12:37:45 the compiler compiles the program as usual 12:37:56 just that before compilation takes place there is a layer checking for validity 12:38:22 what's to prevent future input from causing problems? 12:38:36 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 12:39:00 a program is considered valid in this context if it's able to accept any input without crashing and does not loop infinitelly 12:39:36 hmm 12:39:51 then your primitives will need a lot of checks built in 12:39:57 yes 12:40:00 for example 12:40:01 division 12:40:11 it has several assertions 12:40:12 such 12:40:28 there are at least 2 items in the stack 12:40:39 both of them are integer (supposing integer division) 12:40:47 the first one (the divisor) is not 0 12:41:04 each primitive has a list of assertions associated with valid behaviour 12:41:23 the compiler has to prove that no assertion in the program could ever fail 12:42:43 hmm 12:43:18 the programmer can add his own assertions 12:43:21 I often use potentially infinite loops; your compiler wouldn't allow that I suppose? 12:43:28 thus he can define the specification of the program 12:43:40 and the compiler will also prove that the program meets the specification 12:43:44 crc no 12:43:56 :-( 12:44:12 that's the only thing i definitivelly know that it's not going to be supported 12:44:24 but any infinite loop can be emulated 12:44:27 RetroForth 8 is built around an essentially infinite loop 12:44:29 how so? 12:44:42 for i:=0 to 10000000000000000000 do :) 12:44:56 that would eventually exit though 12:45:07 yes, that's true 12:45:12 Then what? 12:45:17 recursion? 12:45:19 no 12:45:20 (probably not) 12:45:29 recursion is being reduced to loops 12:45:48 really, there is no solution other than a very large loop 12:45:53 I frequently do loops like: 12:46:08 : foo ... exit @ 0; drop foo ; 12:46:29 (where exit is a variable, @ gets the value, and 0; exits the loop if exit = 0) 12:46:43 And other functions exist which could alter the state 12:47:01 is this a loop or recursive definition? 12:47:05 a loop 12:47:37 it's the same as: : foo repeat ... exit @ 0; drop again ; 12:47:43 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 12:47:46 (repeat/again form an infinite loop) 12:48:13 i can allow only finite loops 12:48:34 :-( 12:48:48 althrought there might be a language construct for infinite loops if it's being treated specially 12:49:04 so that the compiler would not try to prove that a certain loop is finite anymore 12:49:19 but i really see no reason 12:49:22 --- quit: madgarden () 12:49:27 why would someone do an infinite loop 12:49:34 you are sure that there is NO way to break the code 12:49:38 the loop 12:49:45 in your code? 12:49:51 sure, it's called EXIT, or dropping the rstack 12:50:02 then your loop is not infinite anymore 12:50:13 it's *potentially* infinite in this case 12:50:15 it's just looping until a condition has to be meet 12:50:28 I have a word in 8.0: 12:50:51 : red clear vtob v interpret red ; 12:51:02 crc as long as there always remains at least one path to exit, then it's not infinite loop 12:51:19 In one port of RetroForth, that loop will never exit. 12:51:27 (unless you turn off the system) 12:51:54 i suppose that there are not too many programs that expect you to turn off the system in order to stop them 12:52:02 and if so then it's a badly written program 12:52:17 How so? 12:52:38 no program should run indefinitivelly without the possibility to break the loop somehow 12:52:38 that word isn't intended to exit until the environment is shut down or crashed. 12:52:43 it really makes no sense 12:52:59 many many applications never return from their main event loop, they just exit() 12:53:16 Herkamire yes, but that's not an infinite loop 12:53:29 Herkamire crc as long as there always remains at least one path to exit, then it's not infinite loop 12:54:10 since it can always be converted into a program that does not use exit() 12:54:15 define infinite loop 12:54:20 : foo foo ; 12:54:24 controll never goes outside that loop again 12:54:25 that's an infinite loop 12:54:37 Herkamire imagine this: 12:54:41 repeat 12:54:56 goto shutdown; 12:55:00 until false; 12:55:04 shutdown: 12:55:10 yeah, I suppose you're right 12:55:13 call system_shutdown 12:55:34 so if you have an exit() and you always have at least one logical path to that exist 12:55:38 the loop is not infinite 12:55:44 if you have 12:55:48 repeat 12:55:55 do something withhout exit 12:55:59 until false 12:56:03 In my case though, I have programs written programs that don't get terminated until I restart the computer 12:56:05 then this is an infinite loop 12:56:20 (Used to continually monitor ports for instance) 12:56:30 crc i don't really find any particular problem that cannot be implemented without that 12:56:33 How would you do that without an infinite loop 12:56:53 you shouldn't think in terms of implementation 12:56:57 think in terms of the problem 12:57:19 is there any problem that requires that there is no way to break the loop and then manually shutdown? 12:57:39 Continual monitoring of system temperature for instance 12:57:45 (for example there might be a shutdown button that's not connected to power but to logic, and the program takes the decision whenever it wants to stop the power) 12:57:53 (it would alert me if the CPU got to hot) 12:58:00 but not halt the system 12:58:06 crc: you still can included a case like: if hotkey then exit; 12:58:17 Not really 12:58:18 crc and yet will monitor your CPU temperature constantly 12:58:47 What if all keys were in use for other things? 12:59:06 again, think in terms of problem, not implementation 12:59:31 bbls, if you needed a constantly updated log of CPU temp, how would you do it? 12:59:52 I solved the problem with a simple loop that read in the data, and saved it to a block on the hard drive 13:00:02 you don't really have to press the key if you don't want to 13:00:15 bbls; that's implementation 13:01:00 the system could have an imaginary key that would do that 13:01:14 you're still talking implementation 13:01:17 so really, i see no reason why having this hotkey would prevent you 13:01:18 yes 13:01:20 exiting the loop isn't part of the problem 13:01:27 but i told you to think 13:01:32 I am 13:01:34 about the problem 13:01:37 I am 13:01:47 and then think and see that my implementation solves the same problem 13:01:51 So? 13:01:53 so therefore is as valid as yours 13:01:57 just that it adds one more thing 13:01:57 So does mine 13:02:02 can be verified 13:02:40 what if there's no need to ever exit the loop? 13:02:56 Why have the overhead of checking for a special keypress in it? 13:03:05 because of the benefits :) 13:03:12 all you need is: 13:03:15 repeat 13:03:21 if keypress then exit 13:03:25 repeat get-temperature record again 13:03:26 do your job 13:03:28 that's all I need 13:03:28 until condition 13:04:19 I don't need to check the keypress though 13:04:31 crc i might secretly insert the if-keypress-exit in the "repeat" word :) 13:04:38 and then define an imaginary key 13:04:41 If I needed to exit this loop; I'd have put code in there for that 13:04:42 that cannot be pressed 13:04:51 bbls, then it's still an infinite loop! 13:05:03 not from the compiler point of view 13:05:14 since it wouldn't know that the key code is imaginary 13:05:16 :) 13:05:25 it's a hack 13:05:27 that's *cheating* 13:05:31 :) 13:05:35 but it solves the problem 13:05:40 If you want a provable language, don't cheat behind the scenes! 13:05:40 without inducing any other problems 13:05:43 so it's acceptable 13:05:46 Not to me 13:06:11 proving correctness by a false premise makes the correctness a lie 13:06:13 well you cheat too when you say that there are programs that really should be implemented without the if-keypressed-part 13:06:20 how so? 13:06:21 i mean *with 13:06:37 Some loops should be exitable 13:06:43 because it's very clear that you could add that keypress there 13:06:45 bbls: many loops exit when a flag on the stack is true/false 13:07:01 bbls: are you planning on doing logic about whether that value will ever be false? 13:07:02 Herkamire that's the same thing, exit on condition, it's not infinite 13:07:03 bbls, just because I *can* doesn't mean I *need to* 13:07:16 (or even *should*) 13:07:22 crc, this discussion goes to nowhere :) 13:07:23 but if the condition never happens, it is infinite 13:07:44 Herkamire yes, but as long as there is at leasy one possibility to happen, the it's not really infinite 13:08:10 it's rather "undetermined" 13:08:17 but so it's 13:08:20 read number from console 13:08:26 for i:=1 to number do 13:08:27 ... 13:08:33 this is undetermined too 13:08:36 but not infinite 13:08:41 since it's constant for a given input 13:08:54 the same above 13:09:06 it's undetermined for all possible inputs 13:09:11 no for loop is infinite 13:09:14 but is constant for any particular input 13:09:24 not with fixed precision integer math 13:09:47 well, you guys might be right 13:10:16 but i don't think that in the end would anyone be hurt by that so seriously 13:12:40 anyway this talk really helped me 13:12:44 good 13:12:47 :-) 13:13:11 :) 13:13:20 it made my mind clearer :) 13:14:18 :-) 13:14:27 * crc returns to work on RetroForth 8.0 13:14:50 i become more and more convinced that it's possible to write this compiler :) 13:16:47 :-) 13:22:24 --- quit: saon ("Leaving") 13:43:52 * crc loves blocks 14:53:37 --- quit: Topaz ("Leaving") 14:54:41 --- quit: bbls (Read error: 104 (Connection reset by peer)) 15:10:12 --- join: saon (1000@c-24-129-90-197.se.client2.attbi.com) joined #forth 16:37:18 Merry Christmas to all...gotta go! 16:37:31 --- part: TheBlueWizard left #forth 17:34:14 --- quit: qFox ("this quit is sponsored by somebody!") 17:58:42 --- join: SDO (~todd@chcgil2-ar7-4-34-130-092.chcgil2.dsl-verizon.net) joined #forth 17:58:46 --- nick: SDO -> seaforth 17:58:55 --- part: seaforth left #forth 17:59:02 --- join: seaforth (~todd@chcgil2-ar7-4-34-130-092.chcgil2.dsl-verizon.net) joined #forth 18:00:04 --- nick: seaforth -> SeaForth 18:00:29 well, just finished my first FORTH prototype written in, of all things, SenseTalk :) 18:01:16 goal, by new year day to have the core written in SenseTalk, and the rest (compiler and interpreter) written in FORTH running on the primatives done in SenseTalk 18:02:33 never heard of sensetalk 18:04:06 SeaForth: cool stuff. I hope you meet that goal 18:07:30 sensetalk is a language system I helped design and write, it is embedded commercially in a automated testing system for OSX that runs via VNC on many other systems for GUI testing. The language was originally in a program called HyperCube, which became HyperSense all written for NeXTstep in the 1989-90 thru 1997'ish. 18:07:46 www.sensetalk.com, and also www.redstonesoftware.com, and finally www.thoughtful.com 18:08:12 anyway, the code is ugly, but works as a basic proof of concept. 18:08:18 total time, about 10 hours. 18:11:33 what's 10 hours? making your forth prototype? 18:15:04 yep 18:15:06 http://rafb.net/paste/results/iPtAF393.html 18:15:17 there is the code, it isn't pretty, the finished system will be much cleaner. 18:16:22 * SeaForth runs and hides as surely the arrows of discust will come flying his way. 18:16:42 Actually it's not too hard to follow... 18:20:29 well, that could be a good or bad thing, depending on purity of forther views :) 18:20:59 * crc isn't a traditional forther :) 18:21:22 I'm quite interested in code clarity 18:21:24 http://rafb.net/paste/results/YOFNIi92.html 18:21:29 --- mode: ChanServ set +o crc 18:21:37 and the bootup, 3 4 + s testing 18:22:41 I'll map traditional names to words later, right now I have SenseTalk name space and function naming limitations to contend with, thus 'add' is not '+' and so forth. 18:22:55 that's not a problem 18:23:04 I'll get dictionaries done here in a bit, and have no problem doing any char/naming scheme in forth code. 18:23:18 In RetroForth/Native, before I had a shifted keymap I did that myself :) 18:23:27 1 2 add dot 18:23:27 3 18:23:51 :) yah, I should do dot, I'll do that now. 18:24:04 * SeaForth launches vi and writes a simple handler to do it in about 1 min 18:24:05 SeaForth: what's s? 18:25:43 wooot. the asian supermarket sold me whole cooked crabs for $1 each. 18:26:16 and i have cranberry vodka i made. this is turning out to be a good xmas eve dinner. 18:26:22 ok 18:26:22 3 4 add dot 18:26:22 7 ok 18:26:26 ok, done. 18:26:31 oh, 's' is output of stack, or .s 18:26:31 :) 18:26:37 again, I should name it dot-s or something 18:26:58 SeaForth is about 20 times faster than BashForth :) 18:27:18 i just realized. joy doesn't have , or create. I wonder how it creates defining words 18:27:37 i haven't tried bashforth, but I would imagine it would be slow. 18:27:43 bashforth is slow. 18:27:48 yep, it is pretty slow, but cool to read. 18:27:59 crc, that's a good thing though. it makes it feel like it's doing something 18:28:01 I have it on my system, and do use it as a reference for my work. 18:28:11 Not necessarily in design, but output verification. 18:28:46 ah 18:28:46 BTW, I'm usually on here as SDO, I guess now that I'm actually working on a forth, I'll become SeaForth here. 18:29:01 i use gforth for verfication. i don't like gforth's design, but it's preinstalled on my mac 18:29:29 I seldom start gforth anymore 18:29:45 * SeaForth uses OSX, and sees no gforth 18:30:05 * SeaForth has ported 13+ forths to BeOS, and likes gforth, pfe, and others. 18:30:14 I ported RetroForth to BeOS 18:30:18 * SeaForth is now a OSX buddy 18:30:24 * crc wonders if it still works... 18:30:29 I haven't booted BeOS in ages 18:30:40 SeaForth, hrm. i wonder why it's on my mac. maybe i installed it and forgot. 18:30:49 * OrngeTide goes to eat his crab. ttyl 18:31:10 * SeaForth gave up on BeOS about 3-4 months ago, has sold most of his non-boxen PPC systems, and is getting rid of his quad beos, and two original beboxens 18:31:39 I'll consider returning to BeOS when Haiku R1 is finished 18:32:55 I don't thinnk Haiku R1 will matter, and besides it is OBOS, which is just reimplementation of R5.1 and R6 stuff. 18:33:31 As a long time user of BeOS (since late 1995), I have said my peace and goodbyes to a long dead OS, it was hard, but the alternatives until this year were simply not enticing enoug. 18:33:35 enough. 18:36:19 :) 18:42:38 SeaForth: what do you mean "non-boxen"? 18:44:40 I have 2 beboxen, and I also have a quad Dell 6100 PentiumPro that all run beos. 18:45:02 non-boxen are beos duals that are not made by be inc. 18:45:22 I had a dual PPC system 7300 with daystar dual 604e card, but that one is sold. 18:46:37 OrngeTide, are you aware of any forth that runs on OSX that has bridges to the OSX libs? 18:56:46 SeaForth: I think mops does 19:10:05 goodnight 19:10:19 --- quit: SeaForth (Read error: 104 (Connection reset by peer)) 19:19:18 gnight 19:31:08 --- join: SeaForth (~todd@chcgil2-ar7-4-34-130-092.chcgil2.dsl-verizon.net) joined #forth 20:02:04 --- quit: robert ("Night") 20:39:41 is there the TIL book online or something that summarizes a well formed and implementation of FORTH. 20:40:23 other than code, I want an overview of how most systems are formed. I am thinking of a page system later, for now I'm going to read in standard input streams or interactive on the CLI 20:46:31 SeaForth: did you hear when I said that I think MOPS is a forth that supports OSX libs? 20:46:39 what's TIL? 20:47:38 TIL, threaded interpreted languages 20:48:06 I have the book, unfortunately it is about 700 miles away from me right now :( 20:48:27 * SeaForth has been meaning to break copyright law and scan/post the thing online for myself. 21:10:30 Herk, thanks for the tip on MOPS, checking it out right now. 21:22:08 happy channukah! 21:30:44 happy solstice! 21:30:54 although that was like 3 days ago:P 21:37:00 --- quit: OrngeTide ("resting") 21:51:44 --- mode: ChanServ set +l 83 22:20:29 --- quit: Herkamire ("bed") 23:33:25 --- join: solar_angel (~jenni@MTL-ppp-156039.qc.sympatico.ca) joined #forth 23:49:52 Just downloaded the carbonized MOPS stuff. 23:49:57 Pretty good for freeware. 23:50:16 OrangeTide, yah, happy winter solstice. 23:50:49 I miss being out in the SW/USA and in the mineral baths on the 21st of Dec, early winter, cold but not too cold, and the animals at midnight come down to the hot water and look around, and then leave. 23:55:57 --- join: bbls (~bbls@80.97.121.133) joined #forth 23:55:57 --- quit: SeaForth (Read error: 104 (Connection reset by peer)) 23:59:59 --- log: ended forth/04.12.24