00:00:00 --- log: started forth/06.01.23 00:08:20 --- join: mjb1 (n=mjb1@88.202.134.119) joined #forth 00:10:26 --- part: mjb1 left #forth 00:11:07 --- join: mjb1 (n=mjb1@88.202.134.119) joined #forth 00:11:26 --- part: mjb1 left #forth 00:36:25 --- join: swalters_ (n=swalters@6532183hfc82.tampabay.res.rr.com) joined #forth 00:36:32 --- quit: swalters_ (Remote closed the connection) 02:11:54 --- join: Cheery (i=Henri@a81-197-18-99.elisa-laajakaista.fi) joined #forth 02:21:33 --- quit: Cheery (Read error: 104 (Connection reset by peer)) 02:24:44 --- join: Cheery (i=Henri@a81-197-18-99.elisa-laajakaista.fi) joined #forth 03:46:56 --- quit: aum () 04:22:04 --- quit: Cheery ("Leaving") 04:33:10 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 05:05:32 --- quit: tathi ("leaving") 05:09:49 --- join: PoppaVic (n=pete@0-1pool46-124.nas30.chicago4.il.us.da.qwest.net) joined #forth 05:52:06 --- join: madwork (n=foo@derby.metrics.com) joined #forth 05:58:09 --- join: rehges (n=segher@blueice2n1.de.ibm.com) joined #forth 06:10:03 --- join: swalters_ (n=swalters@6532183hfc82.tampabay.res.rr.com) joined #forth 06:10:29 --- quit: swalters_ (Client Quit) 07:25:42 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 07:51:23 --- quit: madwork (Read error: 110 (Connection timed out)) 07:53:15 --- join: madwork (n=foo@derby.metrics.com) joined #forth 08:04:32 --- quit: PoppaVic ("recycles") 08:06:11 --- join: PoppaVic (n=pete@0-1pool46-72.nas30.chicago4.il.us.da.qwest.net) joined #forth 08:17:30 --- join: sproingie (n=chuck@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 08:42:30 --- join: tattrdkat (n=virsys@or-65-40-181-13.dyn.sprint-hsd.net) joined #forth 08:47:19 --- quit: virsys (Connection timed out) 09:11:32 --- quit: PoppaVic ("Pulls the pin...") 09:14:46 --- join: Charnel (n=chatzill@cm-216-185.kabelnet.hu) joined #forth 09:15:08 hello everyone 09:15:15 hi 09:15:24 im new to forth 09:15:39 ah. what forth are you using? 09:15:43 gforth 09:16:04 on win32 09:16:18 --- join: Cheery (i=Henri@a81-197-18-99.elisa-laajakaista.fi) joined #forth 09:16:37 --- quit: Charnel (Client Quit) 09:17:03 huh. that was quick. 09:43:02 Just a passing interest. :) 09:46:20 heh 10:23:31 lol 10:23:48 could be connection problems lol 10:23:52 or maybe he got scared 10:23:55 ya scared him off! 10:23:59 you bastards! 10:24:46 :) 10:29:38 tathi is pretty terrifying! :) 10:30:01 * tathi levels a terrifying scowl at Quartus ;) 10:31:57 I'm s-s-scared! these forthers look meeeean :P 10:35:03 stop teasing him, he might brows the logs and never come back 10:35:05 :/ 10:35:15 sorry 10:35:19 heh 10:35:19 lol 10:35:27 it wasnt just you, i started it :P 10:35:29 it probably was connection problems :P 10:36:08 but everyone here _is_ mean and scary, no? 10:36:12 we are nice people! we like new people to learn forth too! 10:36:44 that too -- but we _are_ scary! 10:36:50 well i am, anyway :-) 10:37:00 ok I'll give you that :) 10:40:05 I'm personally quite threatening, I can see why he left. :) 10:40:59 * JasonWoof squints at Quartus suspiciously 10:41:26 * JasonWoof mumbles "I don't know about that guy... something to do with the number four..." 10:44:16 jasonwoof: do you know how to make a cat do "woof" btw? 10:44:45 gasoline. matchstick. woof. 10:45:24 I love cats 10:45:37 how to make a dog go "meow" then? 10:45:38 I'll send you my recipies sometime ;) 10:45:42 hehehe 10:45:56 freezer. circular saw. meoooooow! 10:46:31 hmm... you're right. you scary :) 10:53:12 i'm not the one suggesting eating cats! 10:53:20 [well not after burning them, anyway] 10:57:09 --- join: Lars_G (n=lars@unaffiliated/lars-g/x-000001) joined #forth 10:57:24 * Lars_G bows 10:58:24 I am sorry if this channel is formal, I don't know it since I am new, please dissregard my stumbles as those a cub would do. 10:58:55 cub? circular saw? 10:59:00 :-) 10:59:04 Little dog? hehe. 10:59:08 Nice to meet you all. 10:59:11 formal here? no way :-) 10:59:24 Anyhow, Hi all, name's Lars and I am learning Forth. 10:59:40 I looked at it out of curiosity to be able to do more with the OpenFirmware on my new Mac, and fell in love 10:59:43 H Lars. 10:59:51 Quartus: Uh oh. Hello. 11:00:10 well, "Hi" is what I meant. Why the 'uh oh'? 11:00:13 Quartus: I better shut down now. I was going to ask if there was a cheaper option to Quartus Forth for the palm for someone who is learning. 11:00:20 I don't think it's such a good idea now ;) 11:00:22 heh 11:00:24 There sure is -- the evaulation version is free. 11:00:36 for a limited time? 11:00:38 No. 11:00:40 Unlimited. 11:00:48 --- quit: rehges () 11:00:48 Good it'll do perfectly then. 11:00:59 Since as long as I am not making commercial software, I dont need self compiled prcs. 11:01:03 Should you happen to be a student or educator, I offer a discount. 11:01:04 thanks :) 11:01:20 I always study, but I'm not a student. Thanks anyhow. 11:02:01 Let me know if you have any questions. 11:02:09 Well I have only one for the future. 11:02:32 are there/will there be, native compiling for 5.0 arm apps in Q.F. now/in the future? 11:03:05 There's no way to make a pure ARM app under PalmOS5 now, so future considerations will come with future OS releases. 11:03:13 ok 11:03:38 Thanks. 11:03:54 Right now there's an ARM assembler that ships with Quartus Forth, so if you have something CPU-intensive to do you can do it that way. 11:04:04 Though why you'd be doing high-horsepower work on a Palm, I'm not sure. :) 11:04:21 There's a full demo of writing an ARM subroutine. 11:04:24 So I guess my first question on the long list is, could you guys give me some hot examples of Forth being used today? Other than OpenFIrmware? I want to slap examples back at people who look odd at me when I mention forth 11:04:32 quartus, why do mountaineers climb mountains? 11:04:36 "because they are there" 11:04:40 Quartus: Well that's true. 11:04:47 Lars, if they're giving you odd looks, they won't be impressed with anything you offer. 11:04:48 I440r: True as well :P 11:04:55 Quartus: It's possibly so. 11:04:56 heh 11:04:58 saddly. 11:05:16 lars check out my forth compiler at htto://isforth.clss.net - theres alot of example forth in there 11:05:22 Altough I'll personally try to limit forth so far to the "embedded" side I develope as hobby. 11:05:27 The only way to impress any such person is to express great interest in their favourite language. 11:05:33 also, nasa uses forth. the company i just finished a contract with uses forth to do sattelite tracking systems 11:05:38 Is the creator of AVRForth a regular here too? 11:05:50 no but he should be :P 11:06:19 Quartus: Nod. 11:06:29 Anyhow I am just learning 11:06:40 im always impressed when someone takes up forth 11:06:45 I only know about 3 ans words so far and how to construct new words. 11:06:48 even if its NOT my forth!!! hheh 11:07:18 Lars, which 3? :) 11:07:32 Quartus: . .s ." 11:07:54 That's all you ever need, the rest is just for show. :) 11:07:55 if you can construct new words then you know : and ; too 11:08:00 hahaha, yeah 11:08:13 : new-word 10 0 do stuff here loop ; 11:08:18 I440r: Yes I know how to construct words, I just didn't consider : a word there, my bad 11:08:34 if its not a word its either a number or a typp 11:08:36 typo 11:08:40 hahahaha true 11:09:03 there are two things in forth. words and numbers. everything else is a fubar :) 11:09:29 There's also forward-parsed strings. 11:09:42 ." is a word 11:09:51 (.") is the word ." compiles 11:09:53 But the text following it up to the " delimiter is not. 11:10:06 Neither is it a number. 11:10:07 ok well then theres words and numbers and "data" 11:10:27 my bad :) 11:10:50 Numbers are data too. 11:10:55 so, there are words, and data 11:10:57 "There are THREE things in Forth. words, numbers, data, and whitespace. Ok, FOUR things. There are FOUR things in Forth. :)" 11:11:15 well numbers are special, they go on the stack 11:11:18 data usually doesnt 11:11:20 true 11:11:29 tho... some peiole seem to think a string stack is a good idea 11:11:33 i call it featureitis 11:11:40 I don't like the idea 11:11:57 words, numbers, data, and delimiters. 11:12:27 I440r: Aahhh I'm sorry I don't use your forth :P 11:12:31 ok, were splitting hairs now :) 11:12:34 I use GForth and pForth 11:12:41 Lars_G, you should!!!!! 11:12:41 so far 11:12:48 why? 11:12:54 actually, if you have linux/x867 boxes isforth can help you learn 11:13:03 my sources are very well commented 11:13:12 Quartus: Now that I know you're a human, maybe SOMEDAY I'll buy Q.F. :) 11:13:20 Lars, it'd be much appreciated! 11:13:27 * Lars_G bows to Quartus 11:13:44 Please understand I do not now, since forth will not be a source of income. And my budget is tight. 11:13:46 i was also working on fully documenting it too at the clss.net url 11:13:56 Not to worry, Lars. I understand. 11:13:59 I440r: Ok, I'll look to it. 11:14:12 I440r: Is it pure C, or a C core with the rest in Forth like GForth? 11:14:13 your not obliged to but it might help :) 11:14:22 and if you have a question you can email me :) 11:14:28 no 11:14:35 its a 100% pure assembler core 11:14:42 and uses ZERO external libraries 11:14:58 ok 11:15:04 and the rest in forth? 11:15:13 yes 11:15:22 it doesnt matter if you dont code x86, there are ppl in here who dont coe x86 who have no problems reading the kernel sources :) 11:15:25 So linux 11:15:27 all the extensions are in 100% pure forth 11:15:37 I440r: I hate x86, I love RISC archs 11:15:46 I440r: But I've dibbled in x86 assembly. 11:15:47 im trying to learn arm atm 11:15:55 arm is a decent arch. 11:16:03 i actually like the x86 arch, warts and all 11:16:03 lol 11:16:07 Ewww 11:16:07 hmmm... interesting to see you discussing the different things you see in forth source 11:16:09 nyet. 11:16:25 in my system, the compiler only sees two types: words and numbers 11:16:27 I can't stand beign so tight in GPRegs 11:16:50 heh consider it a challenge! 11:16:54 i like a good challenge :) 11:17:04 register starvation makes you think about your code more :) 11:17:06 Altough it makes sense. In a form the stack dependence of x86 makes it slightly similar to forth, in that sense 11:17:08 but the editor knows the types of the numbers which can be: literals, constants, variables or data 11:17:38 JasonWoof: So the compiler only needs words and numbers. And whitespace 11:17:56 ok, i gotta go do laundry 11:17:57 grrr 11:18:03 i HATE doing laundry 11:18:09 Lars_G: I'm doing funny things... I don't store source in text form 11:18:19 JasonWoof: How do you store it? 11:18:22 Lars_G: the only whitespace is in the editor display 11:18:34 are you cooping words into IDs? 11:18:45 Lars_G: I store a "token" for each word that contains a dictionary index, and a few bits to say what to do with it 11:18:52 nod 11:18:56 Not a bad idea at all 11:19:25 the bits would indicate: 0) execute it 1) compile it 2) postpone it 3) define it etc 11:19:32 hmm 11:19:45 makes the compiled really simple because it doesn't have to parse 11:19:46 How about extracting definitions? 11:19:50 or maintain any state info 11:20:00 I store each definition seperately 11:20:15 He also doesn't pay taxes or wear clothes. 11:20:16 the dictionary entry (which is persistant) links to the definition 11:20:21 Yes you'd need to parse for that, but I'd extract definitions to a separate table, possibly part of the dictionary, and thus save these bits 11:20:28 Quartus: hey, I wear clothes sometimes! 11:20:35 hehe 11:20:56 Lars_G: I don't follow 11:21:05 Well I pay taxes, when I buy stuff 11:21:07 I really don't do any parsing 11:21:12 ok 11:21:15 except as you type in the editor, if that counts 11:22:22 I like the "color" bits because they eliminate state 11:22:45 and any sort of forward-parsing 11:22:49 ok 11:23:10 I like how everything is left to right in my forth 11:23:22 no creating words 11:23:24 etc 11:23:31 So every forther here has his own forth? 11:23:47 not all :) 11:23:53 I440r, Quartus, and I do though 11:24:21 slava does too. I wouldn't be suprised if others did too 11:24:43 * Lars_G gaps at slava 11:24:46 forth seems to attract tinkerers 11:24:51 slava: I never tought I'd find you there. How do you do? 11:24:58 JasonWoof: Well I'm a tinkerer myself, yes 11:26:14 Does there exist any non deprecated forth hardware in the wild yet? 11:26:27 don't think so 11:26:50 you can buy a dev board with something based off Chuck Moores design 11:26:59 Ignite 11:27:18 afaik there really isn't much out there 11:27:35 kc5tja is building something 11:28:26 Interesting 11:28:48 It should be possible and not too extremely hard to make a Forth cpu off a fpga 11:28:53 I'm focusing on software for now 11:29:04 sometime later in life I'll delve into hardware 11:29:06 ! 11:29:08 * Lars_G bows to I440r 11:29:10 I don't have the money for it now 11:29:23 yeah 11:29:28 there have been fpga designes 11:29:43 I think the tough part is generating video and communicating with other computers 11:29:52 periferals, etc 11:30:11 Nod. 11:30:22 Altough code for that is already avaliable. 11:30:24 www.opencores.org 11:30:38 yeah, I understand there are fpga designs available 11:30:43 the tough part would be integrating it into Forth seamessly and in Forth manner. 11:30:48 the trouble is making the rest of the computer 11:31:55 it's bothersome but not real trouble. the knowledge is scattered all around. 11:32:06 all you require is patience. specially if you want to use as little money as possible 11:32:58 What's the channel's rule on swearing? 11:35:02 don't think anybody minds particularly. 11:35:06 this is logged though 11:35:59 No trouble. 11:36:13 My exclamation was, Holy Shit, Moore even visited the channel! incredible. 11:36:21 :) 11:36:49 yeah, we had a nice interview with him 11:36:59 Was that one logged as well= 11:37:00 ? 11:37:04 yes 11:37:18 Do you have an url please? 11:37:25 So let me get this well. You're the hippie. 11:37:37 Quartus is the commerciant. 11:37:43 I440r is the engy...... 11:39:03 ... sorry? 11:39:17 I sometimes, say stuff I shouldn't. 11:39:18 engy? 11:39:29 engineer, IDK don't know him well enough yet. 11:43:10 I'll go silent until I have something nice to say 11:44:02 huh... forth log of chuck interview seems to have fallen off... found it in a zip archive though 11:45:06 I accept dccs if you're not inconvenienced 11:45:13 or email, or im. 11:45:57 ok, now I'm hosting a copy: http://jasonwoof.com/downloads/forth_channel_chuck_moore_interview_02-05-04.txt 11:46:42 Ok thanks 11:47:30 I440r: Tell me when you're back from laundry 11:48:30 there's a few forthers around here that seem to get enough done, or stick to the same thing long enough to have working forth distrobutions and actual users 11:48:46 namely Quartus, crc, slava and I440r 11:49:37 nod 11:49:59 I hope to join them in those qualifications within the next year 11:54:29 I created a very usable forth system with an editor and everything (herkforth) 11:54:48 but I started over in August 11:56:11 I think the biggest barrier to getting a comunity around development in my system will be merging changes 11:56:23 I don't have any way to merge changes 11:56:34 or know how that will work 11:57:10 guess I'll have to write some sort of version control system 12:02:49 --- join: binaryguy (n=Administ@host86-131-188-193.range86-131.btcentralplus.com) joined #forth 12:03:13 --- part: binaryguy left #forth 12:03:28 JasonWoof: Why not use one that exists? 12:08:31 I'm not happy with the development cycle 12:08:37 How so. 12:08:40 I440r: back? 12:09:05 edit, save, compile/run, quit edit save compile, run, test, quit, edit. 12:09:17 etc 12:09:40 basically I feel like I can increase programmer efficiency dramatically 12:10:36 also I can't stand wasting time searching around for the definitions of things 12:11:54 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-110-240.pools.arcor-ip.net) joined #forth 12:13:06 --- quit: Snoopy42 (Nick collision from services.) 12:13:19 I agree and dissagree at the same time 12:13:24 --- nick: snoopy_1711 -> Snoopy42 12:15:29 I'm very picky 12:15:40 also I want a system that I can edit completely 12:16:52 I've integrated the editor and "interpreter" so you can just as easily execute something as enter it into the source 12:19:55 this speeds things up for me 12:20:07 word-not-found errors happen at edit time 12:20:21 looking up definitions of things is a total breeze 12:20:38 and I can test things I'm writing immediately without leaving the editor 12:20:52 I just hit a couple keys to save and compile the current page 12:21:27 in my rewrite (Mist) I'm making compiling automatic 12:21:37 but you'll still have to hit a key to save frequently 12:24:10 Yes, my trouble is the idea of mixing that with the versioning system 12:24:51 because 12:25:09 a) People do not code 24/7, that makes realtime versioning less interesting. 12:25:31 hi Lars_G 12:25:37 i'm here because i develop a forth-like language 12:25:41 b) Versions are generally applied to blocks of change, a realtime versioning will apply to atomic changes making evrsion traveling more difficult, lots mor eentries, less well defined. 12:25:47 and also because i follow several projects like retro and herkforth 12:25:50 slava: And I'm here because I fell in love with forth 12:25:57 heh 12:26:03 try retroforth, its very clean 12:26:26 Lars_G: yeah, I haven't worked out the versioning stuff yet 12:26:32 c) The iteraction of two programmers working on the same file using a realtime versioning is difficult... can you say toe stepping ^10? 12:26:38 JasonWoof: i like having word not found errors be edit time too 12:26:41 JasonWoof: not that i've implemented that yet 12:27:02 Lars_G: in factor, i just use source files. it works with cvs fine :) 12:27:06 Lars_G: I don't plan on doing realtime versioning 12:27:09 slava: DO you maintain a forth mode for jedit too? ;) 12:27:18 Lars_G: there's retroforth syntax highlighting in jedit 12:27:28 and a factor plugin with real time syntax checking and code completion 12:27:46 hehe :) I coded tab-completion in herkforth 12:27:55 its coolest feature is you can select some code, do 'extract word', type a name for a word, and have occurrences of that pattern be replaced with a new colon definition that it adds 12:27:59 tab completion is confortabl 12:28:00 e 12:28:16 slava: WHOA 12:28:17 JasonWoof: does your forth have a help system? 12:28:23 slava: Now THAT is a nice feature! 12:28:40 slava: cool 12:28:53 slava: no. just a comment for each word 12:29:04 well, some words don't have comments yet 12:29:16 s/some/most/ 12:29:19 SO many forths, so little time 12:29:53 JasonWoof: i moved my doc comments into separate .facts files, with a styled text markup language. its still factor, a DSL 12:30:10 there's a gui to browse it and i'm working on an http server responder 12:30:10 slava: I saw a screenshot of your styled help stuff 12:30:20 you'll be able to try a web version in a few hours :) 12:30:26 heh 12:30:41 it already works, i need to fix some formatting issues in the html translation 12:30:51 I'm hoping to somehow integrate a documentation wiki with mist 12:30:56 its much more manageable than xslt, i have to say 12:31:00 ever used xslt? 12:31:05 terrible stuff 12:31:14 yeah 12:31:18 I didn't really see the point 12:31:37 i have a stylesheet where you change fonts and colors and stuff 12:31:38 http://cvs.sourceforge.net/viewcvs.py/factor/Factor/Factor/library/help/stylesheet.factor?rev=1.12&view=auto 12:31:49 its just colon definitions that put hashtables on the stack 12:32:11 what i like about forth is you can use words for so much stuff you'd need complex designs in other languages 12:33:24 JasonWoof: this file drives an 'interpreter' for the help markup, and it calls generic words. the ui implements opengl rendering, the http server has an html generator, but its driven by the same piece of code here 12:33:28 http://cvs.sourceforge.net/viewcvs.py/factor/Factor/Factor/library/help/markup.factor?rev=1.31&view=auto 12:34:07 the puzzle for me is figuring out how to integrate documentation into the editor 12:34:19 http://cvs.sourceforge.net/viewcvs.py/factor/Factor/Factor/doc/handbook/streams.facts?rev=1.3&view=auto 12:34:22 this is the markup 12:34:35 the beauty of it is that it is just nested arrays with strings so it doesn't need a parser 12:34:44 i plan on having the same editor edit code and help markup structures 12:35:14 I'm not worried about editing it 12:35:20 I'm worried about where/when to display it 12:35:37 no use having documentation if people don't know it's there or can't find it 12:35:40 i have a sort of 'shadow block' system 12:35:43 http://cvs.sourceforge.net/viewcvs.py/factor/Factor/Factor/library/collections/ 12:35:47 there's pairs of .factor & .facts files 12:37:57 I think the comments I have are good for the details of the docs 12:38:02 how a particular word works, etc 12:38:11 but I also want to have overviews 12:38:15 yeah 12:38:18 examples are good too 12:38:26 man I wish the heat would come on 12:38:30 yeah 12:38:37 i have examples in the GUI that show source, and you can click one to run it 12:38:48 every once and a while it'd be good to have a paragraph or two that explains how some process works generally 12:38:53 i'm working on a multi-line edit widget for the GUI 12:39:40 like something to explain how I store the source 12:40:10 * docl decides to try jedit again 12:40:11 do you still plan on storing it using a binray format? 12:40:12 I haven't figured out how far I'll go with it 12:40:17 yes 12:40:30 is it an image? 12:40:34 yes 12:40:39 in the sense of smalltalk/lisp 12:40:47 like squeak 12:40:48 with import/export of text? 12:41:01 no 12:41:10 how will you share programs? 12:41:11 but I might do that later 12:41:15 I don't know 12:41:27 haven't worked out multi-person programming yet 12:42:04 I think I'll have a special server that you can talk to to get software and commit changes 12:42:23 the major stumbling block to implementing my editor is interaction with source files 12:42:45 yeah 12:42:49 until i come up with a design that allows an in-image structure editor *and* a module system that's based around conventional source files, i can't implement it 12:42:50 that was a pita for me 12:42:59 so far my image is bootstrapped from source, and i load changed source files in manually 12:43:06 I decided that this time around I wouldn't mess with files at all until/unless I was ready 12:43:40 the trouble with files is references 12:43:43 my GUI is essentially read-only; it doesn't have /editing/ other than typing colon definitions one at a time in the listener 12:43:49 my data has a lot of references to other data 12:43:56 but you can browse code 12:44:16 JasonWoof: you can find a way to serialize all your types of objects 12:44:32 all my new "editor" does so far is display 5 definitions 12:44:58 factor cannot export all types of objects from the image 12:44:59 it's easy enough to write a single object to disk. it's tricky to preserve the references between objects 12:45:16 i can convert any object *tree* into a source literal representation 12:45:23 sure 12:45:28 but my stuff is not trees 12:45:35 but if an object graph has cycles or shared structure, i cannot output it as source 12:45:57 it doesn't hang or anything, it just prints 'meta-syntax' to note sharing, but that does not parse 12:46:16 if you make an array of 3 elements, then set the first element to the array itself, and print it, you get { & 0 0 } 12:46:28 but the & doesn't mean anything 12:46:55 how is ot not trees? 12:47:02 dictionary -> wordlist -> word -> docs 12:47:04 dictionary -> wordlist -> word -> definition 12:47:21 or block -> word -> definition etc 12:48:02 hmm 12:48:34 I guess my structure isn't a problem 12:49:48 I only have references in specific places 12:50:37 one problem i have to solve soon is garbage collection of compiled code blocks 12:50:53 i'll need to keep track of which blocks call each other so i can trace references 12:50:59 :) 12:51:19 right now if you reload some compiled code and compile it again the code heap usage grows 12:51:27 right 12:51:36 only data is GC'd 12:51:37 I thought a bit about using dynamic memory allocation for compiled code 12:52:22 but I don't have dynamic memory allocation or any intention of implementing it soon... so now I think about other things :) 12:52:43 my heap is reset when you save 12:53:05 that's a form of GC 12:53:12 oh how does that work? 12:53:18 it builds a new dictionary? 12:53:31 keeps the old dictionary 12:53:45 will move bits of it around to make room at some point (haven't implemented that just yet) 12:54:05 builds a new kernel which has no references to previously-compiled code 12:54:32 makes a copy of all data referenced by source/comments 12:54:59 then moves these (the kernel, data, dictionary arrays) to the begining of the memory space, saves them to disk and then runs it 12:56:10 took me quite a while to get the compiler and source set up so I could compile this kernel at a different address than it would execute at, and so it had no references to code in the old system 12:56:28 also making sure that everything it needed to reference was compiled in it already 12:56:51 it ended up being a bit more complex than I hoped 12:57:01 but I think I got it right 12:57:28 nothing from the new image is used during this process 12:58:06 at some point I plan to make it so this bootstrapping process can switch endian 13:00:00 the GC part is when it coppies all the data objects. It just goes through the dictionary arrays that reference data objects (name, definition, comment and sometimes CFA) and coppies each into the new image 13:04:35 the kernel compiler knows what word should be executed after bootstrapping (you can change what word this is easily) 13:04:56 the kernel compiler then compiles all the dependancies of this word, then the word it's self, and sets the entry point of the new image to that word 13:10:25 oh, wow. if I made the dictionary out of data objects... then if I bootstrap to a word that does not include the editor, then the new image would not contain the dictionary 13:10:48 you should be able to then make pretty small binaries to do specific things 13:15:55 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 13:16:42 --- quit: snowrichard (Client Quit) 13:18:05 * docl fails yet again to get java working well enough to run jEdit 13:18:16 right now the dictionary sits at the begining of the memory space (after some header info) 13:18:38 * JasonWoof spreads his toes menacingly at java 13:18:45 docl: you need sun's jvm then it will work 13:18:58 darn 13:19:08 gcj or whatever won't run it 13:19:09 I have something *called* javac 13:19:25 and kaffe, and jikes 13:19:26 do java -version 13:19:46 docl: the ibm one works 13:19:47 Kaffe Virtual Machine 13:19:54 docl: jedit doesn't run with kaffe 13:19:58 ok I will try that 13:20:05 what CPU are you using? 13:20:09 java's only usable on x86 13:20:13 to be honest 13:20:19 the ppc implementations are slow 13:20:21 maybe that's why I hate java so much 13:20:21 yeah it's x86 13:20:24 i guess the sparc one is ok 13:20:32 but sparc cpus are slow in general 13:20:33 I've always been on ppc 13:20:42 JasonWoof: it was slower on m68k 13:20:47 JasonWoof: java 1.0.2 didn't have a jit on m68k 13:20:52 think I'll try to stay off java until stuff works on gcj 13:21:12 does it have jit on ppc? 13:21:20 gcj uses gcc's code generation. 13:21:26 it doesn't have a jit, you compile your java code ahead of time 13:21:37 but this means that dynamically loaded code runs in an interpreter (every gcj program links against a bytecode vm) 13:21:48 so if you run jedit, then the editor will be compiled and plugins will be interpreted 13:21:54 which can be a problem 13:21:56 oh 13:22:06 gcj can compile to .class too 13:22:19 on x86, gcj compiled code is slower than sun's java jit 13:22:22 is kaffe the same way? 13:22:29 it only beats it in load time 13:22:33 no, kaffe has a jit on x86 13:22:37 heh 13:22:46 slava: is it much slower? 13:22:49 kaffe? 13:22:54 gcj? 13:22:56 "Unable to locate tools.jar. Expected to find it in /usr/lib/kaffe/pthreads/lib/tools.jar" 13:22:57 slava: gcj vs sun 13:23:21 I'd think the load time difference would make it worth using gcj 13:23:23 it's a pain to download sun java 13:23:26 JasonWoof: on integer and float code that doesn't do much OOP, they're about the same. gcj might have a slight edge, since gcc auto-vectorizes. but on OOP code, gcj is way slower 13:24:06 JasonWoof: sun's java profiles code at runtime to find methods to inline. you can'd do this with ahead of time compilation, so gcj generates polymorphic code for every method invocation, which can lead to a lot of overhead 13:24:18 there's several "java" programs from sun's site. do I want jre? jdk? 13:24:20 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 13:24:33 docl: jre runs compiled java bytecode, jdk compiles source and ships with some other tools 13:24:45 the jdk has a fucked up license 13:24:48 you can't redistribute it at all. 13:24:54 the jre can be shipped with apps with severe restrictions 13:25:15 either works? 13:25:19 yes 13:25:20 jdk is huge 13:25:23 >30mb 13:25:28 ick 13:25:36 jre is ~15mb iirc 13:25:40 --- quit: Cheery (Read error: 104 (Connection reset by peer)) 13:25:41 16.0 13:25:42 it gets larger with each release 13:25:49 is this 1.5/5.0? 13:26:06 5.0 update 6 13:26:17 i remember the _jdk_ used to be 5mb 13:26:17 linux self-extracting file 13:26:27 they split out the 'jre' after it got to 11mb or so 13:26:33 it just kept on getting more bloated 13:26:44 now, the jre windows installer downloads additional components 13:27:33 java 6 will have a built-in javascript interpreter and http server, and javac is now part of the core library rather than the jdk 13:27:50 at least I have broadband 13:27:58 JasonWoof: you could hide a forth implementation or two in there 13:28:14 JasonWoof: the hotspot source ships with a scheme interpreter, its used to generate some boilerplate code in an obscure CORBA package 13:28:25 JasonWoof: they also use huge files of awk and sed macros 13:28:28 the build process is arcane 13:44:12 BUILD FAILED 13:44:12 /home/main/dl/jEdit/build.xml:26: Unable to find a javac compiler; 13:44:12 com.sun.tools.javac.Main is not on the classpath. 13:44:12 Perhaps JAVA_HOME does not point to the JDK 13:44:23 heh 13:44:37 there's a precompiled package you can use 13:45:21 java jedit43pre3install.jar 13:45:21 Exception in thread "main" java.lang.NoClassDefFoundError: jedit43pre3install/jar 13:45:59 java -jar 13:46:03 then the name of the .jar 13:46:10 without .jar, it expects the name of a class 13:46:16 without -jar 13:46:34 cool, it's running! 13:48:31 installed even :) 14:00:59 --- quit: segher (Read error: 104 (Connection reset by peer)) 14:06:31 --- join: segher (n=segher@dslb-084-056-131-214.pools.arcor-ip.net) joined #forth 14:21:23 I440r: you're still not back??? 14:25:21 im back now 14:27:44 --- quit: snowrichard ("Leaving") 14:58:19 --- nick: tattrdkat -> virsys 15:28:01 --- nick: Raystm2 -> tiff 15:58:52 --- quit: slava (Remote closed the connection) 17:17:59 jo everyone 17:19:13 s/jo/hi/ 17:36:17 --- join: jungledog (n=dschauer@adsl-64-219-100-33.dsl.lgvwtx.swbell.net) joined #forth 17:54:21 --- log: started forth/06.01.23 17:54:21 --- join: clog (i=nef@bespin.org) joined #forth 17:54:21 --- topic: 'Welcome to #forth. We discuss the Forth programming language, simplicity, and a variety of technical subjects. The rules are simple: don't spam, don't troll, and please speak English.' 17:54:21 --- topic: set by Quartus on [Sat Jan 21 17:32:55 2006] 17:54:21 --- names: list (clog jungledog segher Snoopy42 Lars_G virsys sproingie tathi rsyncx skylan OrngeTide ccfg warpzero docl @crc tiff Teratogen Ray_work saon @JasonWoof) 17:54:27 --- join: I440r (n=I440r___@rrcs-24-242-160-169.sw.biz.rr.com) joined #forth 17:55:14 --- join: Quartus (n=trailer@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 17:56:39 --- join: interferon (n=user@vaporeon-22.dynamic.rpi.edu) joined #forth 17:57:49 --- quit: interferon (Client Quit) 17:59:51 --- join: Jim7J1AJH (n=jim@221x115x224x2.ap221.ftth.ucom.ne.jp) joined #forth 18:05:18 --- join: Infight6 (i=WINNT@12-208-98-237.client.insightBB.com) joined #forth 18:19:12 --- nick: tiff -> nanstm 18:20:52 --- quit: tathi ("leaving") 19:36:24 --- join: madgarden (n=madgarde@Toronto-HSE-ppp3713077.sympatico.ca) joined #forth 19:57:17 --- quit: saon (Nick collision from services.) 19:57:39 --- join: saon (i=1000@unaffiliated/saon) joined #forth 20:11:34 --- quit: saon (Read error: 104 (Connection reset by peer)) 20:11:52 --- join: saon (i=1000@unaffiliated/saon) joined #forth 20:43:39 --- quit: sproingie (Remote closed the connection) 20:50:25 --- join: amca (n=plump@as-bri-4-1-32.ozonline.com.au) joined #forth 20:50:40 --- part: amca left #forth 22:46:49 --- quit: virsys ("bah") 22:53:55 --- join: virsys (n=virsys@or-65-40-181-13.dyn.sprint-hsd.net) joined #forth 23:29:58 --- join: aum (n=aum@60-234-156-82.bitstream.orcon.net.nz) joined #forth 23:55:10 --- quit: OrngeTide ("bye.") 23:59:59 --- log: ended forth/06.01.23