00:00:00 --- log: started forth/14.10.10 00:01:57 --- quit: DGASAU (Read error: Connection reset by peer) 00:03:11 --- join: DGASAU (~user@p50993595.dip0.t-ipconnect.de) joined #forth 00:19:11 --- join: nighty-_ (~nighty@hokuriku.rural-networks.com) joined #forth 01:44:22 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 01:46:16 --- join: gabriel-artigue (~gabriel-a@171.184.79.188.dynamic.jazztel.es) joined #forth 01:50:50 --- quit: Zarutian (Quit: Zarutian) 01:56:52 --- quit: daowee (Ping timeout: 244 seconds) 01:56:58 I'm not a programmer, I'm just reading about some programming languages. I find the concept of stack interesting. But I'm wondering how does a Forth stack work in the long run? If a piece of code has, say, ten thousand lines, can the programmer keep track what is in the stack all the time? Or is the stack usefull rather short-term? Playing around with Forth showed me that the stack is an interesting alternative to variables as t 01:58:22 Truncated at "alternative to variables as t". 01:59:01 Practice indicates that even professional Forth programmers cannot track more than four-five elements. 01:59:47 Even in short term many of them go for archaic Fortran style of using global variables. 02:02:20 In general stack-based languages are not that good for human consumption. 02:02:51 They are used in form of Krivine machines to reason about programs, 02:03:20 but otherwise translation from more conventional languages is straightforward 02:03:58 so you don't need to keep that burden. 02:26:47 alternative to variables as they are in other languages, but I noticed right away that the use of the stack cannot be the same in a twenty-line source code file as in one containing thousands of lines. What happens with controlling the stack in a large Forth source code file? Many thanks. 02:28:18 Stack is fully equivalent to variables "as they are in other languages." 02:29:05 The difference is that maintaining mental picture is put onto programmer's shoulders. 02:29:20 well, in C++ or BASIC I retrieve the contents of a variable by its name, not by its position, if I remember that position 02:29:29 alright 02:29:34 I'm getting the picture 02:29:49 Yes, in Forth you have to remember position instead of name. 02:30:26 Alternatively, you use "locals" that give you some limited ability to do the same thing as with C++ local frame. 02:31:02 Classic BASIC only has global variables. 02:31:15 the concept is still attractive -- for use in the short run 02:31:23 right 02:31:50 does the following happen in real life: 02:32:31 a Forth programmer that simply forgets about the contents of the stack, that manipulates the stack believing there is some contents that in reality is something else? 02:33:02 Yes, it happens in real life. 02:33:08 no way 02:33:22 E.g. in FreeBSD's boot loader. 02:33:27 but I feel relieved 02:33:34 really? 02:33:37 Yes. 02:35:34 It is a mystery how it works. 02:35:48 is there a Forth command that erases the entire stack? 02:35:50 hehe 02:36:16 Somehow it succedes to pave its way along the bleeding edge. 02:37:28 In theory, you don't need that command. 02:37:38 In practice, "abort" does that. 02:39:39 alright 03:05:01 --- join: daowee (~daowee@m90-141-255-60.cust.tele2.se) joined #forth 03:07:45 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 03:45:15 --- quit: ErhardtMundt (Ping timeout: 272 seconds) 03:46:10 --- join: true-grue (~grue@95-26-244-26.broadband.corbina.ru) joined #forth 03:54:52 --- join: ErhardtMundt (~quassel@93-43-71-119.ip90.fastwebnet.it) joined #forth 03:58:55 --- quit: gabriel-artigue (Quit: leaving) 04:20:04 --- quit: Zarutian (Remote host closed the connection) 04:21:25 --- join: proteusguy (~proteusgu@ppp-110-168-229-132.revip5.asianet.co.th) joined #forth 04:24:04 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 05:34:38 --- join: fantazo (~fantazo@2001:858:5:3a41:99d8:b33b:fce0:c986) joined #forth 06:15:26 --- quit: DGASAU (Read error: Connection reset by peer) 06:16:29 --- join: DGASAU (~user@p50993595.dip0.t-ipconnect.de) joined #forth 06:53:35 --- join: ttmrichter_xm (~ttmrichte@116.30.204.116) joined #forth 06:55:21 --- quit: proteusguy (Ping timeout: 260 seconds) 06:56:09 --- quit: pgomes (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 06:58:31 --- join: proteusguy (~proteusgu@ppp-110-168-229-132.revip5.asianet.co.th) joined #forth 07:02:22 --- join: ttmrichter__xm (~ttmrichte@114.111.167.15) joined #forth 07:02:42 --- quit: ttmrichter_xm (Read error: Connection reset by peer) 07:19:40 --- quit: ttmrichter__xm (Read error: Connection reset by peer) 07:25:19 --- join: ttmrichter_xm (~ttmrichte@116.30.204.191) joined #forth 07:30:54 --- quit: protist (Quit: Konversation terminated!) 08:09:29 --- quit: nighty-_ (Ping timeout: 272 seconds) 08:09:31 --- quit: fantazo (Ping timeout: 260 seconds) 08:11:50 --- join: nighty-_ (~nighty@hokuriku.rural-networks.com) joined #forth 08:12:28 --- join: true-grue_ (~grue@95-25-98-246.broadband.corbina.ru) joined #forth 08:14:22 --- quit: true-grue (Ping timeout: 244 seconds) 08:58:12 --- quit: ttmrichter_xm (Ping timeout: 250 seconds) 09:06:31 --- join: bbloom (~bbloom@ool-44c6724c.dyn.optonline.net) joined #forth 09:09:50 --- quit: Zarutian (Quit: Zarutian) 09:34:22 --- join: fantazo (~fantazo@089144201182.atnat0010.highway.a1.net) joined #forth 09:50:28 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 10:13:53 --- quit: bbloom (Quit: Computer has gone to sleep.) 10:40:29 --- join: kumul (~mool@adsl-72-50-87-105.prtc.net) joined #forth 10:48:39 --- quit: irsol (Ping timeout: 258 seconds) 10:49:58 --- join: boru (~boru@unaffiliated/boru) joined #forth 10:51:23 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 11:11:23 --- join: ehaliewicz (~user@50-0-50-37.dsl.dynamic.fusionbroadband.com) joined #forth 11:33:25 --- quit: nighty-_ (Remote host closed the connection) 11:35:49 --- join: nighty-_ (~nighty@hokuriku.rural-networks.com) joined #forth 11:55:24 --- join: elaforest (~elaforest@unaffiliated/elaforest) joined #forth 12:16:01 --- join: bbloom (~bbloom@cpe-68-175-72-82.nyc.res.rr.com) joined #forth 12:39:08 --- join: Mat3 (~Mat@91.64.103.149) joined #forth 12:39:10 hello 12:49:27 --- quit: proteusguy (Remote host closed the connection) 13:09:14 --- quit: fantazo (Ping timeout: 244 seconds) 13:18:33 --- quit: karswell` (Remote host closed the connection) 13:19:36 --- join: karswell` (~user@87.114.35.172) joined #forth 14:14:11 --- quit: daowee (Ping timeout: 245 seconds) 14:27:20 h'lo Mat3 14:32:05 hi Zarutian 14:33:28 have you seen Forths with three byte cells? 14:38:13 i knew a forth that wasn't right. each cell was missing its fourth byte. i tried debugging through the night, but at last concluded: that forth bites. 14:46:29 hi tangentstorm 14:46:56 heya 14:47:14 Zarutian: Probably a Forth for the EZ80 (which has a word size of 24 bits) 14:47:46 EZ80? what is that? 14:47:56 Zilog EZ80 14:48:29 https://en.wikipedia.org/wiki/Zilog_eZ80 14:53:22 it is used as main CPU here for example: http://www.retroleum.co.uk/electronics-articles/ez80p/ 14:54:18 * Mat3 does not know any vendor from which you buy one but ... the must exist, somewhere... 14:57:03 you/can buy 14:57:30 --- quit: irsol (Ping timeout: 245 seconds) 15:00:38 --- quit: Mat3 (Quit: Verlassend) 15:04:16 --- quit: 7YUAAQ8GP (Quit: "") 15:04:36 --- join: malyn_ (~malyn@unaffiliated/malyn) joined #forth 15:06:30 --- quit: nighty-_ (Ping timeout: 255 seconds) 15:07:41 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 15:12:38 --- quit: malyn_ (Quit: "") 15:13:02 --- join: malyn_ (~malyn@unaffiliated/malyn) joined #forth 15:19:28 --- quit: malyn_ (Quit: "") 15:22:20 --- join: malyn_ (~malyn@unaffiliated/malyn) joined #forth 15:26:21 --- quit: malyn (Disconnected by services) 15:26:21 --- nick: malyn_ -> malyn 15:26:39 --- join: SROtbJVIt (~malyn@server.strangegizmo.com) joined #forth 15:40:49 --- quit: irsol (Read error: Connection reset by peer) 16:01:09 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 16:37:18 --- quit: true-grue_ (Read error: Connection reset by peer) 16:56:07 --- join: kumool (~mool@adsl-72-50-85-90.prtc.net) joined #forth 16:57:14 --- quit: kumool (Client Quit) 16:59:56 --- quit: kumul (Ping timeout: 260 seconds) 17:08:58 --- quit: Zarutian (Quit: Zarutian) 17:09:21 --- quit: ehaliewicz (Ping timeout: 255 seconds) 18:16:55 --- quit: elaforest (Ping timeout: 250 seconds) 18:53:48 --- join: danfinch (~danfinch@69.59.125.205) joined #forth 19:03:43 --- quit: irsol (Ping timeout: 245 seconds) 19:05:40 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 19:37:48 --- join: saml_ (~saml@pool-71-190-7-10.nycmny.east.verizon.net) joined #forth 19:38:26 --- quit: TodPunk (Ping timeout: 260 seconds) 19:41:04 --- join: TodPunk (Tod@50-198-177-186-static.hfc.comcastbusiness.net) joined #forth 19:51:44 --- join: ttmrichter_xm (~ttmrichte@113.57.183.154) joined #forth 20:52:21 * tangentstorm had no idea that the x87 fpu was a stack machine. 20:52:27 is a stack machine. 20:59:54 --- quit: ttmrichter_xm (Ping timeout: 245 seconds) 21:02:47 hah. that's funny. 21:02:57 i just found out about that today on wiki, tangentstorm. 21:03:56 :) 21:04:05 http://en.wikipedia.org/wiki/Category:Stack_machines 21:04:09 listed right there ^ 21:04:35 i kind of want to make a little assembly language interpreter with a visual display of the registers. 21:04:56 so it is 21:07:49 oh yeah. the other surprising one was this: http://en.wikipedia.org/wiki/Tandem_Computers#TNS_stack_machines 21:09:38 cool 22:37:30 --- join: fantazo (~fantazo@089144217040.atnat0026.highway.a1.net) joined #forth 22:55:06 --- quit: saml_ (Quit: Leaving) 23:23:06 --- join: joneshf-laptop (~joneshf@98.208.35.89) joined #forth 23:59:59 --- log: ended forth/14.10.10