00:00:00 --- log: started forth/08.07.13 01:07:19 --- quit: tarbo (clarke.freenode.net irc.freenode.net) 01:07:19 --- quit: aspect (clarke.freenode.net irc.freenode.net) 01:07:19 --- quit: segher (clarke.freenode.net irc.freenode.net) 01:09:04 --- join: tarbo (n=me@unaffiliated/tarbo) joined #forth 01:13:03 --- join: segher (n=segher@84-105-61-45.cable.quicknet.nl) joined #forth 01:15:54 --- join: kar8nga (n=kar8nga@AMarseille-151-1-51-224.w82-122.abo.wanadoo.fr) joined #forth 01:16:42 --- join: aspect (i=aspect@burns.dreamhost.com) joined #forth 01:24:38 --- part: edrx left #forth 02:29:42 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 02:29:44 --- join: qFox (i=C00K13S@234pc222.sshunet.nl) joined #forth 04:06:35 hi - i've implemented a do/loop where at compile time, I push ( addr marker ) where addr is a location within the run-time do to patch, and marker identifies the do 04:06:48 this is working, but the problem now is how to implement 'leave' 04:15:12 --- part: kar8nga left #forth 04:22:28 you mean like a break? 04:22:32 yes 04:23:06 can't you fiddle it into the return stack? 04:23:14 the only way I can think of is to have a jump concealed at the start of the do loop which exits the loop, and have each 'leave' jump to there 04:23:43 sorry, i meant put the marker on the return stack, so you can dupr it for the break 04:23:56 trouble with fiddling the return stack is that I've either got to have n 'leave' jump args to patch, or I gotta implement a 'skipping stones' approach 04:24:26 i've been out of forth for a while and i dont really remember if and if so, how i solved the break problem 04:24:26 i gotta be able to support n 'leave' invocations 04:24:44 yeah but isnt there some kind of end point for the while? 04:25:00 and at compile time, at that endpoint, remove the marker from the return stack 04:25:09 the best idea i can think of is with the 'do', write in a 'jmp +2' 'jmp (end of loop)' 04:25:46 so normal control flow hits the 'jmp +2' and jumps past the 'jmp end of loop' 04:25:59 but a 'leave' call jumps to the 'jmp end of loop' 04:26:05 i'm not seeing it myself, but i'm sure you do 04:26:18 that's the thing about forth, eh? 04:26:42 another option is for leave to not satisfy the while condition and jump to the while, where it will break 04:26:42 programming idioms get very personalised 04:26:45 yep 04:27:05 'leave' is only for '[?]do ... [+]loop' 04:27:13 ah 04:27:36 there's no 'break' in ANS 04:27:49 nope, probably for the same reason :p 04:28:13 i think it always ends up with a lot of stack remembering 04:28:21 i could come up with a scheme of sticking n 'leave' addresses on the return stack, so 'loop' at compile time patches all of them 04:28:39 that would be the most efficient at run time 04:29:08 so the 'do' would push ( 0 do-addr do-marker ) 04:29:23 there is always the option of using variables 04:29:31 then the first 'leave' would change it to ( leave-addr1 1 do-addr do-marker ) 04:29:34 or arent they available during compile time. i forgot 04:30:01 and after the second 'leave' it would be ( leave-addr1 leave-addr2 2 do-addr do-marker ) 04:30:30 oh hang on, i see what you mean - do you mean to stick the loop end address on the *return* stack at *run* time? 04:30:40 well, no 04:30:47 that would actually work 04:30:48 i did mean at compile :p 04:31:06 but yes, i guess so. although didnt that also contain i? 04:31:28 well, the ret stack at run time during do/loop contains ( i limit ) 04:31:35 ye 04:31:41 but i could do ( i limit end-of-loop ) 04:31:49 well a break would drop i and limit anyways i suppose 04:32:15 yes - break, unloop and loop drop the loop parms 04:32:50 the only problem is if some user assumes that do/loop pushes 2 cells to the ret stack - if they assume that, they'll dive into a sea of segfaults 04:32:53 but i forgot why you can't just push the target addr to the stack at compile time, and remove it when you encounter [?]loop 04:33:08 and when you need to compile a leave, just dup it 04:33:31 problem is that in a do/loop you can have n leave calls 04:33:39 so? 04:33:47 and each leave needs to know at run time where the end of the while loop is 04:34:02 oh wait, i remember now 04:34:03 ok 04:34:21 then i would go with your earlier option 04:34:33 pushing each leave marker on the stack, incrementing the number of markers present 04:34:41 and patching them all on [?]loop 04:34:45 ok, can do 04:34:52 unless you are stack impaired of course (limited) 04:34:55 i'm implementing my forth largely wtih c primitives 04:35:23 so pulling n leave addresses off the stack at compile time iwth the 'loop' is not hard 04:35:49 hm you would get a runtime while at compile time :p 04:35:55 thanks for your input, i think i'll go with that - it makes for the fastest runtime 04:36:03 sure 04:36:13 * aum is way past bed time 04:36:25 thanks for your conversation - catch you again qFox 04:36:28 gnite 04:36:30 --- quit: aum ("Leaving") 04:36:30 gnite 04:49:51 --- join: CloudiDust (n=ddwn@117.82.6.170) joined #forth 04:53:58 --- join: forther (n=forther@c-24-5-187-203.hsd1.ca.comcast.net) joined #forth 04:56:09 --- quit: forther (Client Quit) 04:56:15 --- join: forther (n=forther@c-24-5-187-203.hsd1.ca.comcast.net) joined #forth 05:50:22 --- quit: mathrick (Remote closed the connection) 05:51:52 --- join: mathrick (n=mathrick@users177.kollegienet.dk) joined #forth 06:26:13 --- quit: forther ("Leaving") 07:11:48 --- quit: CloudiDust (Read error: 104 (Connection reset by peer)) 07:31:58 --- join: iano (n=iosgood@sub26-46.member.dsl-only.net) joined #forth 07:59:35 --- join: kar8nga (n=kar8nga@AMarseille-151-1-51-224.w82-122.abo.wanadoo.fr) joined #forth 09:47:39 --- quit: ASau (Read error: 110 (Connection timed out)) 09:54:53 --- join: Maki_ (n=Maki@adsl-224-84.eunet.yu) joined #forth 10:04:23 --- join: forther (n=forther@c-24-5-187-203.hsd1.ca.comcast.net) joined #forth 10:32:08 --- join: ASau (n=user@79.111.32.252) joined #forth 10:42:58 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 10:42:58 --- mode: ChanServ set +o tathi 10:42:59 --- part: kar8nga left #forth 10:43:24 --- quit: Def (Remote closed the connection) 10:44:34 --- join: Def (n=joe@c-68-62-76-160.hsd1.mi.comcast.net) joined #forth 10:46:35 --- nick: Def -> Deformative 11:25:20 --- quit: forther ("Leaving") 11:41:59 --- join: ASau` (n=user@79.111.22.98) joined #forth 11:46:14 --- quit: ASau (Read error: 110 (Connection timed out)) 11:58:48 --- join: toor` (n=root@watershed.plus.com) joined #forth 11:59:29 hi, does anyone have a simple cross compiler for forth? 11:59:39 i not sure how you save image... 12:02:39 hi toor` 12:02:44 Personally, I do not. 12:03:12 But I wanted to say: Stay tuned because people here do and they sometime take time to respong. 12:03:14 -g+d 12:03:42 It is a sloooooww list :) 12:03:54 you not save image? how you get target to use it/ 12:04:26 I can save an image of forth, but I've never personally used forth to do what you are doing. 12:05:02 i see thank you, i will wait for answer 12:05:05 are you trying to get the target to save. :) 12:05:17 your welcome, indeed. :) 12:05:25 you're 12:05:37 i try to get host to save 12:05:42 Oh okay. 12:05:50 what forth system are you using? 12:05:57 some Forth systems generate stand-alone executables. 12:06:08 Hey hi Q :) 12:06:24 i use my own forth 12:06:31 but it is ans forth 12:06:59 but i not understand how crosscompiler can produce code for host that an be sent to host 12:07:17 Do you know the term turnkey? 12:07:29 what about it do you not understand? 12:07:55 Thanks Quartus__ for taking this. :) 12:08:26 Quartus__: if i define new primitive, how do i get a image of that to put in rom on host? 12:11:04 hi toor`: you mean "in target rom" 12:11:49 target is some other processor? 12:12:38 Raystm2: How are you? 12:13:02 i mean image that i can put on target 12:13:32 I am well Maki_. And yourself? 12:13:50 Very good :) 12:14:09 * Raystm2 is working hard on the colorForth community wiki at http://forthworks.com/c4th 12:14:12 toor, your forth is threaded, or native-code? 12:14:16 toor`: What is your target? 12:14:47 Maki_: 8051 i write it for fun, i know there are forths for it... but i would like to try my own 12:15:21 my forth is written in C, but i would like to try write forth in forth and cross compile 12:15:38 --- join: ecraven (n=nex@plc31-103.linzag.net) joined #forth 12:16:07 google for Brad Rodriguez 12:16:31 i read brad article, very good, but not find anything about saving.. :((( 12:16:37 he wrote few very good pages on moving forth 12:17:11 he wrote many good papers, very smart person 12:17:36 so cross compiling is not a problem? 12:17:48 no, saving code that you cross compile for target is 12:18:15 saving is easy after cross compilation... 12:18:23 a ha 12:18:44 how you do? 12:18:56 saving a forth image has two parts: getting the image onto the target, and executing it. To execute it, you need a small program for the host that sets up the appropriate Forth virtual machine, and then starts executing the image at the appropriate spot. 12:19:19 I dump image to hex file and send entire file over serial connection to target 12:19:27 sorry. For the target, not the host (unless they are the same). 12:19:49 Maki_: using DUMP word? 12:20:18 Nope, google for intel hex file format 12:20:55 i will, how you save only things that are for target and not host? i am bad with voabularty in forth still... 12:20:57 confuse me... 12:21:05 You also need a bootloader on target, something that Quartus just says 12:21:26 i understand 12:21:37 toor, if you are still just learning to crawl, it may be to soon to try running. 12:22:13 i like jumping before i walk :) 12:22:38 Good reading: Principles of Metacompilation from BJR 12:23:03 I've built my cross compiler reading this... 12:23:21 how do you dump the parts that you have cross compiled? 12:24:03 You usualy can acces image with special words like t@ and t! 12:24:11 Rest is easy 12:24:27 i see 12:24:55 intel hex format is interesting 12:25:24 that is usual output foramt from compilers, assemblers... 12:27:12 where can i find this essay? 12:27:17 google does not help.. 12:28:12 I will send it to Your email, and any other interested. Very good reading! 12:28:41 i have no email 12:28:41 Scanned from forth dimension 12:28:52 ? 12:29:07 i have no email account 12:29:31 ok I will upload it somewhere and provide a link 12:29:37 wait 12:29:39 thank you very muh! 12:29:42 much... 12:29:43 you know, you can get a free one. 12:30:54 i know, i just never found use for it 12:31:19 you just did. 12:31:50 Maki_ Please? to Ray.stmarie AT gmail DOT com 12:31:59 Quartus__: true 12:32:12 but once a year is not usefull... will only forget password 12:32:17 oh just read that there will be a link so okay :) 12:35:42 toor, that's ridiculous. 12:35:59 toor`, Raystm2: np uploading. File is about 3.6MB 12:42:29 Link: http://rapidshare.com/files/129456216/MetaCompilation.pdf.html 12:43:04 Raystm2: I'm sending you an email. 12:44:00 toor`: watch out rapid share captcha is wierd 12:46:45 I will not delete uploaded file, so that somebody searching thru logs can download it. 12:47:26 ok 12:47:31 thank you very much 12:47:47 Glad to be of service :) 12:53:44 --- quit: mathrick (Read error: 104 (Connection reset by peer)) 12:54:02 --- join: mathrick (n=mathrick@users177.kollegienet.dk) joined #forth 12:57:41 toor`: eforth, pygmy. 12:59:25 thanks Maki_, much appreciated! :) 13:00:36 Maki_: is there any way to get it w/o javascript? 13:01:42 ASau: I can send it to your email, or upload somewhere of your choice 13:02:03 Raystm2: np glad to help :) 13:03:03 Maki_: asau at pisem net, please :) 13:03:16 --- nick: ASau` -> ASau 13:05:09 ASau: Sending... 13:18:21 ASau: Sent 13:19:30 --- quit: iano () 13:21:05 Raystm2: Fine wiki you've put together there... 13:21:57 Maki_: got it. 13:22:26 --- join: iano (n=iosgood@sub26-46.member.dsl-only.net) joined #forth 13:24:01 ASau: How's the weather there in Russia? :) 13:24:58 Maki_: thanks, nice. 13:33:09 "Target Compiler is a trade mark of FORTH, Inc." 13:33:49 Hi ASau. Is that statement true? 13:34:06 I didn't know that. 13:35:08 Raystm2: read at the end of that PDF file. 13:35:19 It is right on the last page. 13:43:05 :0 13:43:07 :) 13:46:50 --- quit: mathrick (Read error: 104 (Connection reset by peer)) 13:47:07 --- join: mathrick (n=mathrick@users177.kollegienet.dk) joined #forth 13:50:48 --- join: aum (n=aum@60-234-243-247.bitstream.orcon.net.nz) joined #forth 14:23:09 --- quit: ecraven ("bbl") 14:47:03 --- quit: toor` (Remote closed the connection) 14:47:59 --- quit: ASau (Read error: 110 (Connection timed out)) 15:19:44 --- join: robink (n=robink@unaffilated/robink) joined #forth 15:19:50 --- part: robink left #forth 15:23:40 --- quit: Maki_ ("Leaving") 15:32:26 --- join: ASau (n=user@79.111.23.143) joined #forth 16:01:01 --- quit: qFox ("Time for cookies!") 16:10:39 --- join: Def (n=joe@c-68-62-76-160.hsd1.mi.comcast.net) joined #forth 16:19:21 --- quit: Def (Remote closed the connection) 16:20:09 --- join: Def (n=joe@c-68-62-76-160.hsd1.mi.comcast.net) joined #forth 16:40:36 --- nick: Deformative -> Guest89338 16:41:13 --- nick: Def -> Deformative 19:25:12 --- quit: tathi ("leaving") 19:33:06 for your ammusement http://colorforthray.info/rapter.html 20:14:37 have you seen the Leo editor? leo.sf.net - good extensible Forth syntax colouring 21:37:19 I have not seen the leo editor. These picture was generated with colorForth. 21:37:37 Oh yikes you knew that. top of the pix D'oh! :) 21:38:58 there's a description of the entire process below the picture. I have to fix the spacing. I saved the .pngs incorrectly and then put up the page and then had to leave. Now I'm back to fix. :) 21:58:01 --- quit: iano () 22:00:50 spacing fixed. :) 22:38:51 --- quit: Guest89338 (Read error: 104 (Connection reset by peer)) 22:38:51 --- quit: Deformati (Connection reset by peer) 23:07:55 --- join: ecraven (n=nex@140.78.42.115) joined #forth 23:28:59 --- quit: ASau (Read error: 110 (Connection timed out)) 23:49:43 --- quit: Quartus (Read error: 110 (Connection timed out)) 23:59:59 --- log: ended forth/08.07.13