00:00:00 --- log: started forth/18.01.04 00:18:23 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 00:25:32 --- join: mtsd (4d6e3d64@gateway/web/freenode/ip.77.110.61.100) joined #forth 00:33:15 --- join: ncv (~neceve@2a02:c7d:c5c9:a900:c792:a3e8:397d:b37) joined #forth 00:33:15 --- quit: ncv (Changing host) 00:33:15 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 01:05:16 --- join: dys (~dys@2003:5b:203b:100:6af7:28ff:fe06:801) joined #forth 01:42:07 --- quit: smokeink (Ping timeout: 264 seconds) 01:55:04 --- quit: gravicappa (Ping timeout: 268 seconds) 02:10:27 --- quit: dddddd (Remote host closed the connection) 02:50:13 --- join: gravicappa (~gravicapp@h62-133-162-150.dyn.bashtel.ru) joined #forth 04:41:16 --- join: smokeink (~smokeink@101.78.169.208) joined #forth 04:51:51 --- join: tusj (~tusj@185.176.244.88) joined #forth 05:15:35 --- join: lijero (~lijero@unaffiliated/lijero) joined #forth 05:26:26 --- join: alexshendi (~yaaic@ip4d15fdfd.dynamic.kabel-deutschland.de) joined #forth 05:36:12 --- quit: cheater (Quit: leaving) 05:42:36 --- quit: smokeink (Remote host closed the connection) 05:59:31 --- join: cheater (~cheater@unaffiliated/cheater) joined #forth 05:59:36 --- join: smokeink (~smokeink@101.78.169.208) joined #forth 06:03:40 --- join: ncv_ (~neceve@2a02:c7d:c5c9:a900:c792:a3e8:397d:b37) joined #forth 06:03:40 --- quit: ncv_ (Changing host) 06:03:40 --- join: ncv_ (~neceve@unaffiliated/neceve) joined #forth 06:03:49 --- quit: ncv (Read error: Connection reset by peer) 06:08:05 --- quit: cheater (Quit: leaving) 06:17:52 --- quit: mtsd (Ping timeout: 260 seconds) 06:18:13 --- quit: alexshendi (Ping timeout: 255 seconds) 06:24:00 --- join: cheater (~cheater@unaffiliated/cheater) joined #forth 06:27:30 --- quit: sigjuice (Ping timeout: 272 seconds) 06:29:28 --- quit: smokeink (Ping timeout: 240 seconds) 06:29:40 --- join: sigjuice (~sigjuice@107.170.193.86) joined #forth 07:48:22 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 09:25:55 --- quit: ncv_ (Ping timeout: 252 seconds) 09:34:50 --- quit: gravicappa (Ping timeout: 240 seconds) 10:22:38 --- join: bedah (~bedah@2a02:810d:243f:f584:e921:e3d5:76c1:b9c0) joined #forth 11:40:43 ryoshu: "thinking forth"? 11:42:44 --- quit: dys (Ping timeout: 250 seconds) 12:04:31 Are there any unicode/utf8 forths? 12:06:40 nvm, gforth has xchars 12:44:04 Does forth have a call stack? 12:48:54 I would assume that it wouldn't, b/c that would make no sense right? 12:52:24 forth generally has a call/return stack and a separate data stack 12:53:07 hmm that's kind of confusing. Is the data stack the thing that you alter when you do `1 1 +` ? 12:53:14 a call stack makes sense because that's how you return 12:53:41 yes 12:53:42 yes. "1" pushes a number 1 to the data stack 12:54:06 you can manipulate the return stack too with >r r> rdrop, etc. 12:54:11 + pops two numbers off the data stack and pushs the sum 12:55:10 unless you use words like >r, you don't "see" the call stack being manipulated in forth source code 12:56:04 there are some words that implicitely refer to it, as well, like param for example 12:56:32 you can understand what param does without knowing that, though 13:04:08 --- join: dys (~dys@tmo-108-174.customers.d1-online.com) joined #forth 13:10:59 Lets say i have a silly recursive function like this https://hastebin.com/asavofalat.forth . How can I see what it does to the return stack? 13:11:34 My bad, https://hastebin.com/asavofalat.forth 13:11:54 grrr, https://hastebin.com/yepiwilogi.forth 13:12:53 And I wrote the stack effects wrong too. But the point is it doesn't blow up the data stack, but how can i see what it does to the return stack? 13:14:32 unfortunately I don't see a word in gforth to print the return stack 13:14:39 but I could just tell you what it does 13:15:08 every time you hit the "@ execute" part of your code, the address immediately following "execute" is pushed onto the return stack 13:15:23 and then every time an instance of that word exits, an address is popped off 13:16:06 if your program doesn't crash or go off into wild behavior after calling that word, you can probably feel pretty confident that your return stack was balanced 13:38:09 --- quit: reepca (Remote host closed the connection) 13:38:32 --- quit: jcob (Ping timeout: 248 seconds) 14:08:14 there any good Forth game engines out there, perhaps one with bindings to SDL 2.x or OpenGL? 14:44:15 --- quit: MrMobius (Quit: I love my HydraIRC -> http://www.hydrairc.com <-) 14:45:56 --- join: jcob (~user@cpe-172-74-189-35.nc.res.rr.com) joined #forth 14:46:28 Since I got such helpful advice from zy]x[yz, does anyone know if this 14:46:28 https://hastebin.com/hoviyudoni.forth would do what i think it does 14:46:35 i.e., keep the stack from expanding 14:47:28 Ignore line 12 mybad 14:52:14 bavier certaily right 14:52:28 I'm reading now Forth Programming Handbook 3rd Edition 14:53:35 jcob: let me ask you this, in a socratesic way, what does tail recursion actually do? :3 14:56:35 Zarutian_PI: oooh socratic questions my learning senses are tingling! I guess tail recursion lets a function refer to itself, & proper tail calls reduce the cost of ending with a tail call 14:58:46 jcob: lets look at the difference between a proper tail call in Forth and a simple unconditional jump. 14:59:50 Zarutian_PI: "simple unconditional jump" am I misunderstanding or are there gotos in forth? 15:00:45 Zarutian_PI: I mean im sure there is a goto compiled somewhere into some word, but what are "unconditional jumps" 15:01:34 a control transfer that is always performed when encountered. 15:03:19 which is basically a goto 15:04:26 Zarutian_PI: I may be mistaken, but when you have a word like : iamaword thisisatailcall ; , wouldn't iamaword still be on the call stack when thisisatailcall is called? thisisatailcall would still have the control flow, until it exits, right? 15:05:05 Zarutian_PI: or am I going in the wrong direction 15:05:17 right, but why call it instead of just jumping to it? 15:06:00 --- quit: dys (Ping timeout: 248 seconds) 15:09:11 : iamaword dosomethingfirst JUMP thisisatailcall ; \ no? 15:09:33 Zarutian_PI: wow, there's a jump instruction in forth. Where is it documented, I can't find much on it by googling 15:11:06 : JUMP R> @ >R ; \ is one way to do it assuming program and data memory is the same one. 15:12:02 http://dl.forth.com/sitedocs/dpans94.pdf (ANS Forth '94) doesn't seems to know anythin called JUMP 15:12:39 Gforth has : jump r> drop >r ;, but I can't figure out how to use it 15:13:14 jcob: no stack image comment with it? 15:13:36 Zarutian_PI: not from `see`, but maybe its in a manual somewhere? 15:13:39 jn: might be known under JMP or GOTO or some such. 15:15:10 jcob: gforths above jump word seem to take an xt on the datastack. 15:16:29 jcob: an xt would be basically an address where execution is to continue. 15:17:06 Zarutian_PI: I've tried `2 2 ' + jump` , but it that doesn't quite seem to work. Is that not an xt? 15:17:36 jcob: that isnt an xt. 15:18:30 jcob: sorry, you did put a tick between "2 2" and "+" 15:18:58 Zarutian_PI: yeah, I did. maybe I should try r> @ >r 15:18:58 jcob: iirc ' (tick) should look up the following word and give back its xt. 15:32:16 --- join: dys (~dys@tmo-102-239.customers.d1-online.com) joined #forth 15:55:55 --- quit: dddddd (Read error: Connection reset by peer) 15:56:59 --- join: dddddd (~dddddd@unaffiliated/dddddd) joined #forth 16:16:43 --- join: reepca (~user@208.89.170.230) joined #forth 16:48:39 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 18:25:41 ryoshu: you got really a fast speed on reading 18:34:01 --- join: smokeink (~smokeink@101.78.169.208) joined #forth 18:41:30 yunfan not really 18:41:49 I've started that book, and continuing it for now 18:42:09 and attempting to memorise 18:44:49 --- quit: Keshl (Quit: Konversation terminated!) 18:47:42 ryoshu: no i mean you have done reading the book yesterday you mentioned 18:47:49 which is quite fast 18:48:15 that one isn't finished :) 18:51:05 ah 18:51:18 how is with gforth and ANSI compliance? 18:51:54 --- join: Keshl (~Purple@24.115.185.149.res-cmts.gld.ptd.net) joined #forth 18:53:19 i've no idea on that 18:56:56 http://git.annexia.org/?p=jonesforth.git;a=summary hmm, how to clone it? 18:56:56 ryoshu: so i decide to buy a pine64 board for trying netbsd :D 18:57:13 great! 19:15:38 --- quit: dddddd (Remote host closed the connection) 19:19:39 --- quit: lijero (Remote host closed the connection) 19:32:19 --- join: MrMobius (~MrMobius@50.96.164.233) joined #forth 19:37:20 --- quit: jcob (Ping timeout: 240 seconds) 20:21:10 ryoshu: do you have official desktop of netbsd? 20:24:07 official GUI setup? 20:24:17 rather not, it's like in linux 20:24:25 X Window and customize 20:24:49 goodnight. 20:25:26 ok night 20:27:46 I use NetBSD as my daily driver, at home exclusively for 5 years maybe, at work 1+ year 20:35:26 ah, you havnt sleep 20:35:49 i mean does netbsd has a official desktop enviroment, like ubuntu choose gnome3 20:36:18 i use ubuntu as daily os for 10 years :D 20:55:55 Who's up for putting a Forth inside a USB-C cable?! 20:58:22 I'm reading a datasheet for an mcu designed to go *inside* the cable. http://www.mouser.com/ds/2/100/001-93912_EZ-PD_CCG2_Datasheet_USB_Type-C_Port_Con-541553.pdf 21:02:53 pointfree: msp430? 21:04:09 pointfree: i was waiting for a type c based usb2ttl adapter 21:05:36 yunfan: This one is a 48MHz ARM Cortex-M0 with 32KiB flash and 4KiB SRAM. 21:05:55 pointfree, why would you want to put forth in a usb cable? 21:06:06 you can get a tiny microcontroller without doing that 21:07:50 MrMobius: because he want to emulate some usb devices? 21:08:55 yunfan: It features runtime configurable i2c, spi, and uart capabilities so it looks like you could have just that -- an ftdi dongle inside the cable. 21:09:40 pointfree: then i need to check if it was sold in china 21:09:59 my chromebook plus only have usb type c port :[ 21:29:39 --- join: Gromboli (~Gromboli@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 22:50:39 --- quit: Gromboli (Quit: Leaving) 23:24:08 --- quit: smokeink (Ping timeout: 260 seconds) 23:59:20 --- quit: reepca (Ping timeout: 248 seconds) 23:59:59 --- log: ended forth/18.01.04