00:00:00 --- log: started forth/12.10.07 03:12:27 --- quit: fantazo (Remote host closed the connection) 03:54:24 --- join: MayDaniel (~MayDaniel@unaffiliated/maydaniel) joined #forth 03:54:24 --- mode: ChanServ set +v MayDaniel 04:10:30 --- quit: MayDaniel (Read error: Connection reset by peer) 04:26:44 --- join: MayDaniel (~MayDaniel@unaffiliated/maydaniel) joined #forth 04:26:44 --- mode: ChanServ set +v MayDaniel 05:14:16 --- join: newcup (newcup@peruna.fi) joined #forth 05:14:16 --- mode: ChanServ set +v newcup 06:22:40 --- join: nighty^ (~nighty@69-165-220-105.dsl.teksavvy.com) joined #forth 06:22:41 --- mode: ChanServ set +v nighty^ 07:24:47 --- join: fantazo (~fantazo@213.129.230.10) joined #forth 07:24:47 --- mode: ChanServ set +v fantazo 07:39:47 --- join: RodgerTheGreat (~rodger@71-13-215-128.dhcp.mrqt.mi.charter.com) joined #forth 07:39:47 --- mode: ChanServ set +v RodgerTheGreat 08:03:17 --- join: kumul (~kumul@cvx-ppp-66-50-130-239.coqui.net) joined #forth 08:03:17 --- mode: ChanServ set +v kumul 10:25:58 --- quit: fantazo (Ping timeout: 260 seconds) 11:11:05 --- join: fantazo (~fantazo@91-119-69-13.dynamic.xdsl-line.inode.at) joined #forth 11:11:05 --- mode: ChanServ set +v fantazo 12:17:52 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 12:17:52 --- mode: ChanServ set +v Nisstyre-laptop 12:32:09 --- join: ncv (~quassel@89.123.22.68) joined #forth 12:32:09 --- quit: ncv (Changing host) 12:32:09 --- join: ncv (~quassel@unaffiliated/neceve) joined #forth 12:32:09 --- mode: ChanServ set +v ncv 13:18:57 --- join: Onionnion (~ryan@adsl-68-254-173-230.dsl.milwwi.ameritech.net) joined #forth 13:18:57 --- mode: ChanServ set +v Onionnion 13:20:15 --- quit: Nisstyre-laptop (Read error: Connection reset by peer) 13:30:08 --- quit: ncv (Remote host closed the connection) 13:38:49 --- join: ncv (~quassel@unaffiliated/neceve) joined #forth 13:38:49 --- mode: ChanServ set +v ncv 14:00:33 --- join: Nisstyre-laptop (~yours@oftn/member/Nisstyre) joined #forth 14:00:33 --- mode: ChanServ set +v Nisstyre-laptop 14:36:28 --- quit: ncv (Ping timeout: 264 seconds) 15:28:22 --- quit: MayDaniel (Read error: Connection reset by peer) 16:13:49 --- quit: Onionnion (Quit: Leaving) 17:05:29 --- join: Onionnion|Eee (~ryan@68.254.173.230) joined #forth 17:05:29 --- mode: ChanServ set +v Onionnion|Eee 20:12:28 --- join: black_13 (6cd22d8d@gateway/web/freenode/ip.108.210.45.141) joined #forth 20:12:28 --- mode: ChanServ set +v black_13 20:12:45 who is up 20:12:53 hi, black_13 20:12:57 dude 20:13:15 what's happening? 20:13:38 can the words in forth be seperated into those that manipulate the stack and those that manipulate the dictionary? 20:14:08 i am trying write a manual for a forth 20:14:11 hmm 20:14:25 well, how would you categorize , ? 20:15:13 . means well show me the top of the stack 20:15:27 drop means drop the top of the stack? 20:15:50 I mean, how would you categorize the word ',' 20:15:53 'comma' 20:16:03 i don't know that one 20:16:19 which takes a value from the stack and concatenates onto the most recent dictionary definition 20:16:28 it's pretty important 20:16:58 can you use it in statement? 20:17:49 create AN_ARRAY 313 , 40 , 789 , 20:17:59 hum 20:18:50 this is a very small forth but it has comma 20:19:23 usually comma is the primitive used to build more complex dictionary-creating words 20:19:34 i figured that 20:19:47 : allot for 0 , next ; 20:21:21 i notice that some forths have a very small core written in c 20:21:47 I think drawing the distinction between "dictionary words" and "stack words" could be helpful for a manual, but there's definitely significant overlap 20:21:49 or assembly then have 20:22:08 the higher parts are meta code 20:22:12 yep 20:22:26 however comma 20:22:56 once you have the basics of a forth system, you only need to drop into machine code or such for performance reasons 20:23:04 ok 20:23:22 is the following a valid forth statement 20:23:34 : hello ."hello" ; 20:23:48 you'll probably need a space after ." 20:23:54 oh 20:23:57 so 20:23:57 '."' is a word 20:24:07 : hello ." hello" ; 20:24:12 bingo 20:24:30 ." reads from the input stream until it hits " 20:24:39 i see 20:24:45 it worked btw 20:24:47 and then compiles an inline string and a call to a print routine 20:24:59 have you see a word like str++ 20:25:13 I'm not familiar with 'str++' 20:25:20 how is it being used? 20:25:47 its open source code but with no examples 20:26:18 so all you know is that it has a word called 'str++' in the dictionary 20:26:31 have you seen words that use brackets: [char] 20:26:36 yes 20:27:03 usually it means something to the effect that it has compile-time behavior 20:27:10 i have been looking at examples from other forths 20:27:23 are you familiar with how [ and ] are used? 20:27:38 no 20:28:02 i a writing forth in pforth and then looking that this uforth 20:28:32 while compiling a definition, [ will drop back into the interpreter, allowing you to do some calculations or whatever before returning to compilation with ] 20:28:33 at uforth then when i hit something that is curios i write the creator of uforth 20:29:42 that compilation of words is going to be a hard nut to crack 20:30:40 this implementation was designed to live inside of a very small chip 20:31:00 sounds like a forth alright 20:31:39 one of the things he said during a conversation is that the program lives in one seccion memory 20:32:11 the data stack lives at bottom and the return the top of the memory data grows up and return grows down 20:32:20 have you seen that before 20:35:12 darn you RodgerTheGreat stop posting about your forth based game/vm on ycombinator 20:35:21 lol 20:35:42 and who is putting all these forth news on ycombinator and r/programming, this is crazy 20:35:58 there have only been two that I was aware of 20:36:02 in as many days 20:36:25 exactly, for a "dead language" its sure getting lots of talk nowadays 20:36:42 lots of people are getting excited about the GA144 20:36:52 i think its becaus of the mcu's 20:37:01 there was even a freaking hackaday article about the devboard 20:38:33 kumul: and to be fair it has been months since I've plugged my projects on HN 20:38:44 i havent seen any news about the ga144 anywhere though, whats hackaday? 20:39:43 you posted this http://news.ycombinator.com/item?id=4624533 6 hours ago 20:39:51 hackaday is what i do these days instead of pr0n 20:40:03 yeah I meant it's been months since the last time I plugged my projects 20:40:27 http://hackaday.com/2012/10/03/breadboarding-with-a-144-core-processor/ 20:40:43 two or three shameless plugs per year is not all that obnoxious 20:41:01 i am interested in forth because it may allow me to created a restartable vm 20:42:05 if i could have language that is stored in sram if any fault happens you can restart the VM from a point 20:44:09 my favorite comment exchange on the GA144 post was "whats the clock-frequency?" "It doesn’t have one" 20:44:25 RodgerTheGreat: what do words ending with @ mean 20:44:30 i was reading 1xforth article and he talks about not using do loop (i suppose that means +loop too) only begin until or for next, how is that even possible? 20:44:37 black_13: fetch 20:44:53 black_13: possibly something to do with fetching data or an address 20:45:20 r means return stack then r@ would be fetch wath 20:45:22 what 20:45:42 kumul: uh, well, my forth just has begin...until and for...next 20:46:05 actually in the article chuck goes on to say that the only loop construct he thinks he needs is recursion and if...then 20:46:31 ficl lacks for next, so i dont know what it does 20:47:01 ficl is wierd 20:47:08 essentially "repeat the body n+1 times" 20:47:16 and enormously large code 20:47:34 its the fastest forth i've seen, so thats what ill use 20:47:41 so "4 for i . next" would print 4 3 2 1 0 20:47:56 it's not as flexible as a do loop but it's very simple 20:48:05 and you can implement it nicely in hardware 20:48:18 the F18 has a NEXT opcode which is basically for this 20:48:32 and my VM has something similar 20:49:25 that does seem better/less complicated 20:50:53 you can only use it to count down if you need the loop index, but you'd be surprised how often it doesn't matter. In the rare occasions you need to count up you can either subtract the loop index from the max or use a different kind of loop 20:51:17 no for in uforth 20:51:25 gforth has it 20:54:32 gforth uses an older c compiler 20:54:56 ubuntu doesn't have it 20:55:05 ok? 20:55:18 just chattering 20:55:32 dont use ubuntu :) 20:56:05 same with debian or suse 20:56:26 i think what goes to that forth might gain some popularity 20:56:33 the version on macports compiles just fine 20:56:51 good to know is there a windows version 20:57:01 i have been able to comple pforth on windows great 21:06:07 so what does fetch fetch 21:06:43 you give it an address, it gives you the value at that address 21:07:00 or, if you like, it dereferences pointers 21:09:33 'night, all 21:10:37 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 21:19:22 anyone anyone 21:20:15 black_13: rodger answered you 21:20:40 no? 21:21:20 i was having some fun 21:23:25 ferris beuer 21:23:48 how are address formed 21:23:57 i wonder what would be the easiest way to change a couple of words, so they look like my native language, so that its easier to explain to some people 21:24:25 am i some people 21:24:48 nop 21:25:18 you are already interested in forth and dont say EEK when they look at the syntax not having lots of (){}*& 21:25:32 1 @ gives me 24000 21:25:40 yikes 21:25:52 black_13: have you read starting forth? 21:26:18 i just like to start flipping on swtitches and see what happens 21:26:33 i have been reading that and the turtoria for pforth 21:26:50 look at the interpreter, (gforth always has a the stack on output) 21:27:04 create varx 5 , 21:27:17 when you use varx it will put the address on the stack 21:27:32 using @ will fetch what is inside the address 21:27:59 so create varx 5 , varx @ . (display 5) 21:28:38 black_13: your english seems terse, whats your native language? 21:29:51 born an raised 21:30:21 dyslexia actually was called something else as i remember 21:30:52 ahh ok then 21:31:03 disgraphia 21:31:54 i often chat with friend she gives me a hard time 21:32:14 and says how do you make a living you can't spell andyou are a software developer 21:32:43 and she can't steal a job and yet she is a great writer 21:45:37 allot ? 21:45:46 is the an allocation? 21:46:59 --- join: tangentstorm (~michal@108-218-151-22.lightspeed.rcsntx.sbcglobal.net) joined #forth 21:46:59 --- mode: ChanServ set +v tangentstorm 21:54:25 black_13: yes 21:54:50 funny its not in pforth 21:55:02 or not mentioned in the tutoria 21:55:05 black_13: it makes x bytes of memory available 21:55:08 black_13: it is 21:55:11 let me install it 21:55:26 oops 21:55:34 please i want to be wrong 21:57:54 black_13: it exists, just checked 21:57:58 using ver 27 21:58:11 can you hum a few bars 21:58:26 wha? 21:58:38 can you give me an example 21:58:49 create foo 256 allot 21:59:23 allot looks at foo and establishes 256 bytes of memory to it (i hope thats the correct term) 21:59:48 hey it works in uforth 22:00:55 where does the memory live i wonder 22:05:07 --- quit: black_13 (Ping timeout: 240 seconds) 22:17:54 --- join: ncv (~quassel@unaffiliated/neceve) joined #forth 22:17:54 --- mode: ChanServ set +v ncv 22:19:24 --- quit: Onionnion|Eee (Quit: Leaving) 22:29:28 --- quit: kumul (Quit: WeeChat 0.3.9) 23:14:12 --- quit: ncv (Ping timeout: 255 seconds) 23:28:11 --- quit: fantazo (Remote host closed the connection) 23:59:59 --- log: ended forth/12.10.07