00:00:00 --- log: started forth/16.11.13 00:09:36 --- quit: Quozl`_ (Quit: No Ping reply in 180 seconds.) 00:10:31 --- join: Quozl` (~quozl@owl.laptop.org) joined #forth 01:14:21 --- join: ASau (~user@netbsd/developers/asau) joined #forth 01:36:44 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:21d1:2550:ffa:3973) joined #forth 01:41:12 --- quit: mnemnion (Ping timeout: 258 seconds) 01:53:31 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:21d1:2550:ffa:3973) joined #forth 02:21:40 --- join: DKordic (~user@93-86-133-72.dynamic.isp.telekom.rs) joined #forth 02:42:49 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 03:35:45 --- quit: mnemnion (Remote host closed the connection) 04:17:50 --- quit: _longines (Remote host closed the connection) 04:19:30 --- join: nal (~nal@adsl-72-50-86-182.prtc.net) joined #forth 04:26:51 --- quit: proteusguy (Remote host closed the connection) 04:27:07 --- join: proteusguy (~proteusgu@node-7x.pool-101-108.dynamic.totbb.net) joined #forth 04:27:07 --- mode: ChanServ set +v proteusguy 04:53:47 --- join: Kumool (~nal@adsl-64-237-238-184.prtc.net) joined #forth 04:55:09 --- quit: nal (Ping timeout: 252 seconds) 05:04:04 --- quit: Kumool (Quit: WeeChat 1.4) 05:27:52 --- join: nal (~nal@adsl-64-237-235-247.prtc.net) joined #forth 05:28:24 --- quit: nal (Client Quit) 05:29:01 --- join: nal (~nal@adsl-64-237-236-184.prtc.net) joined #forth 05:36:01 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:c71:2e60:5ce9:ceec) joined #forth 05:40:24 --- quit: mnemnion (Ping timeout: 258 seconds) 05:53:49 --- quit: proteusguy (Ping timeout: 252 seconds) 06:06:11 --- join: proteusguy (~proteusgu@node-1ce.pool-101-108.dynamic.totbb.net) joined #forth 06:06:11 --- mode: ChanServ set +v proteusguy 06:11:11 --- join: novavis (~user@host43-3-dynamic.53-79-r.retail.telecomitalia.it) joined #forth 06:17:48 --- join: ricky_ricardo (~rickyrica@2601:240:4203:ecb0:9118:da1b:1c66:2ce2) joined #forth 06:43:19 --- quit: nal (Quit: WeeChat 1.4) 06:44:01 --- join: nal (~nal@adsl-64-237-235-247.prtc.net) joined #forth 06:45:47 --- join: workp (~workp@host-89-240-182-228.as13285.net) joined #forth 07:11:40 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 07:30:41 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:3dfe:bc29:c98:c8c6) joined #forth 07:35:11 --- quit: mnemnion (Ping timeout: 256 seconds) 08:07:24 --- quit: nal (Quit: WeeChat 1.4) 08:08:20 --- join: nal (~nal@adsl-64-237-236-184.prtc.net) joined #forth 08:33:35 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:904e:1d04:6893:e3ef) joined #forth 08:35:58 --- join: rgrinberg (~rgrinberg@24-246-56-85.cable.teksavvy.com) joined #forth 08:37:39 --- quit: mnemnion (Ping timeout: 240 seconds) 08:44:34 --- quit: workp (Quit: leaving) 08:44:56 --- join: workp (~workp@host-89-240-182-228.as13285.net) joined #forth 09:31:17 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:c3e:4e3:7bf0:3ec1) joined #forth 09:35:46 --- quit: mnemnion (Ping timeout: 258 seconds) 09:36:43 --- quit: nal (Ping timeout: 260 seconds) 09:37:43 --- join: nal (~nal@adsl-64-237-232-135.prtc.net) joined #forth 10:21:46 --- join: mat4 (~Claude@ip5b411568.dynamic.kabel-deutschland.de) joined #forth 10:23:43 hello 10:34:05 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:c1cb:2f59:d582:8d95) joined #forth 10:34:41 hello! 10:37:27 have someone here some experience with the C FFL interface of Gforth ? 10:38:38 --- quit: mnemnion (Ping timeout: 258 seconds) 10:39:29 Not I at least. 10:39:33 What you up to? 10:44:06 writing wrappers for the Allegro library at last 10:48:21 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 10:50:34 you're making a game presumably 10:50:59 what's it about? 10:51:10 --- join: karswell` (~user@243.207.208.46.dyn.plus.net) joined #forth 10:53:13 nerfur: Check out https://github.com/chisophugis/x64-Forth https://github.com/kragen/stoneknifeforth https://github.com/larsbrinkhoff/okf . 10:53:52 http://krue.net/avrforth/ 10:54:30 Any game written in Forth should be praised :) 10:56:28 has anyone had any experience with objects in Forth? 10:56:42 game development is one of those areas where OOP make sense 10:56:46 at least to me 10:58:22 Holon was the best Forth with OOP features. 10:58:53 workp: I'm try to port a game labrary to Gforth, not a specific game. However, it would be of course a good base for recent game developing 10:59:25 I have no experience by I read somewhere that it isnt very hard but you have to make decisions such as what kind of garbage collection you are going to use and how you are going to prepresent to the gc which cells are references and which are data. I favour splitting them up into two segments. 10:59:46 workp, Are CREATE/DOES> not object-oriented enough for you? :) 10:59:49 * mat4 thinks of independent games, adventures and arcade style ones 11:00:30 You may want to make another CYOA engine in Forth :) 11:03:41 true-grue: I'm really still learning Forth, I don't think I used CREATE/DOES> enough at the moment 11:04:13 Holon featured indeed a nice (Smalltalk inspired) object concept and implementation. Another Forth I once written programs in with OOP support was MOPS (Mac OS Classic) 11:04:33 then, there are some ANS compatible OOP libraries like Mini-OOP 11:05:28 mat4, I see. Than, I think, more wise is to learn the Forth-way to abstract behaviour/state, before looking for standard OOP. 11:05:35 mat4: got a link to where I can read about Holon in detail or its implementation? 11:05:43 Sorry. It was for workp. 11:06:06 Ah ok 11:06:18 Zarutian: http://www.holonforth.com/ 11:06:22 I was wondering if it was worth implementing an OOP system 11:07:11 I'm more interested in implementing forth than using it at the moment :) 11:07:18 well, it may depend on the type of applications you have in mind I would say... 11:08:52 mat4: thanks for the link. 11:23:49 --- quit: neceve (Quit: Konversation terminated!) 11:24:21 true-grue: speaking of CREATE/DOES> can you give me any examples of good use of it? 11:25:05 I only really use it for making things like simple data structures 11:25:37 like arrays that check their bounds, I feel like there might be more to it 11:27:56 workp, Well...Have you seen DOER/MAKE construction from "Thinking Forth", for example? 11:30:24 Nope! 11:30:29 I'll check it out! 11:30:37 --- quit: X-Scale (Ping timeout: 246 seconds) 11:34:47 --- join: X-Scale (HydraIRC@188.140.27.54) joined #forth 11:35:25 ciao 11:35:40 --- quit: mat4 (Quit: Verlassend) 11:43:09 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:d5e7:cf7d:34cd:9944) joined #forth 11:47:21 --- quit: mnemnion (Ping timeout: 256 seconds) 11:52:37 --- quit: ricky_ricardo (Ping timeout: 258 seconds) 11:53:10 --- join: John[Lisbeth] (~user@52.165.40.155) joined #forth 12:07:59 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 12:21:31 --- quit: roboguy` (Read error: Connection reset by peer) 12:22:37 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 12:32:57 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:c8dd:43c1:77bc:e871) joined #forth 12:33:42 --- join: ASau` (~user@89.204.155.88) joined #forth 12:34:59 --- quit: ASau (Ping timeout: 240 seconds) 12:36:47 --- nick: ASau` -> ASau 12:37:30 --- quit: mnemnion (Ping timeout: 260 seconds) 12:44:58 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:c8dd:43c1:77bc:e871) joined #forth 13:10:21 --- join: Kumool (~nal@64.237.233.255) joined #forth 13:12:02 --- quit: nal (Ping timeout: 260 seconds) 13:24:28 --- join: kumul (~nal@adsl-64-237-237-37.prtc.net) joined #forth 13:26:15 --- quit: Kumool (Ping timeout: 268 seconds) 13:35:22 --- join: nal (~nal@adsl-64-237-235-247.prtc.net) joined #forth 13:36:42 --- quit: ASau (Remote host closed the connection) 13:36:57 --- join: ASau (~user@netbsd/developers/asau) joined #forth 13:37:30 --- quit: kumul (Ping timeout: 245 seconds) 13:41:12 --- quit: mnemnion (Remote host closed the connection) 14:16:31 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:c8dd:43c1:77bc:e871) joined #forth 14:22:39 --- quit: mnemnion (Ping timeout: 240 seconds) 14:22:54 --- quit: roboguy` (Read error: Connection reset by peer) 14:23:05 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 14:31:49 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:77:fde6:a874:1a20) joined #forth 14:36:30 --- quit: mnemnion (Ping timeout: 260 seconds) 15:05:58 --- join: Kumool (~nal@adsl-64-237-238-165.prtc.net) joined #forth 15:07:42 --- quit: nal (Ping timeout: 260 seconds) 15:45:24 --- quit: rgrinberg (Remote host closed the connection) 15:47:45 --- join: rgrinberg (~rgrinberg@24-246-56-85.cable.teksavvy.com) joined #forth 15:49:03 --- quit: nighty (Quit: Disappears in a puff of smoke) 16:23:00 --- quit: true-grue (Read error: Connection reset by peer) 16:23:17 --- quit: roboguy` (Read error: Connection reset by peer) 16:24:25 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 16:28:51 --- quit: Zarutian (Quit: Zarutian) 16:36:44 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:77:fde6:a874:1a20) joined #forth 16:36:47 --- quit: mnemnion (Remote host closed the connection) 16:37:09 --- join: mnemnion (~mnemnion@71.198.73.193) joined #forth 16:38:48 hmm, it looks like the second link in the topic is broken now... 16:58:12 --- mode: ChanServ set +o crc 16:58:30 --- topic: set to 'Forth Programming | logged by clog at http://bit.ly/91toWN | http://forthworks.com/forth/standards/DPANS/ | www.greenarraychips.com' by crc 16:58:52 roboguy`: sorry about that 17:00:45 crc: no problem at all! Just wanted to point that out. Learning about Forth has always been on my list of programming stuff to do, so I'm looking for resources. I know the basic ideas (and I've made a very small Forth-like compiler), but I'm curious to see more of how it works 17:02:20 I'm working on a complete rewrite of my forth system currently. 17:02:42 I also have some older documents (Forth '83, Forth '79, FIG) at http://forthworks.com/forth/standards/ 17:03:10 ahh, cool. thanks! 17:04:38 one thing that interests me is that there seems to be a bit of a similarity between delayed code blocks in a forth-style language and lambda calculus (especially combinator-style lambda calculus)... You (or anyone else here) don't happen to know of anyone writing about that (or if it is a real connection in the first place)? 17:10:26 I'm no expert on this, but I believe that the biggest difference between code blocks in forth and actual lambda expressions is the lack of closures. 17:11:27 in my forth there are anonymous code blocks used for a lot of things, but there are no local variables, bindings for them to access 17:12:28 --- mode: ChanServ set -o crc 17:12:53 crc: that is very true. In combinator systems for lambda calculus, like SKI, you don't need closure though... One thing that I've found is that I can do things very similar to lambda calculus Church encodings (like I can create 'true', 'false' and 'if' words that behave like you'd expect using only stack operations and code blocks) 17:15:17 using my own forth-style language (where 'call' runs a code block): https://github.com/roboguy13/MetaForth/blob/master/src/std/cond.4th 17:16:17 (I'm probably missing a 'drop' in the true and false definitions, glancing at it again) 17:26:21 any larger examples of how these would be used? 17:29:43 --- quit: ASau (Read error: Connection reset by peer) 17:31:38 I'm curious as looking at your Compiler.hs there doesn't appear to be any conditional code associated with 'call' 17:32:22 (incidentally, it's nice to see a forth-ish language written in haskell) 17:42:02 --- join: nighty (~nighty@d246113.ppp.asahi-net.or.jp) joined #forth 17:46:35 --- nick: karswell` -> karswell 18:06:51 crc: there isn't any conditional code associated with it. All it does is run the code block at the top of the stack 18:07:41 crc: well, if there is a connection between lambda calculus combinators and forth+delayed code execution, it might provide a nice implementation technique for functional languages (compiling from a language with lambdas into a forth language) 18:08:07 also, my code is pretty messy. I wrote it a couple years back =) 18:11:17 the idea with that definition of if and booleans is that you'd have something of the form "[ ] [ ] if". 'if' then executes the top of the stack (the conditional). 'true' will swap the stack and run the top of the stack (which runs the 'then' part), false just runs the top of the stack (the 'else' part) 18:11:38 so it is a conditional system implemented entirely in stack operations and delayed code block execution 18:12:00 (it seems similar to how you can implement booleans and if in terms of pure lambda calculus) 18:14:11 roboguy`: Which Forth implementation are You using? 18:15:02 --- quit: groovy2shoes (Quit: Leaving) 18:15:21 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 18:15:48 DKordic: my own 18:16:04 DKordic: (the compiler is part of that github repo) 18:16:42 (the compiler code is kinda messy) 18:17:37 my basic conditionals take a form of: boolean [ ] [ ] choose or: boolean [ ] if or: boolean [ ] -if 18:18:30 I think having the conditional after the blocks might complicate stack flow in that you now have two items that may need to be shifted out of the way if the conditional involves earlier stack items 18:18:54 I agree. Someday I should probably change that around... 18:19:22 I guess it'd just be a matter of having if pull the third item down to the top and running it 18:19:47 can't remember if I have that stack operation as a primitive yet in that compiler... 18:20:45 I guess that'd just be 'rot' actually 18:21:17 and then swap the true and false definitions 18:27:20 crc: is that the standard Forth way? I don't really actually know much about standard Forth other than the basic stack operations and a couple other builtin words, ha... 18:27:57 a standard forth would use a form like: 18:28:08 IF ELSE THEN 18:28:35 ahh. huh 18:31:06 it's a shame there's probably no way to make my conditionals efficient (branch predictor probably won't recognize them as conditionals, etc). I guess part of it is more that, because it is possible to implement like that, it makes me wonder what other things like that are possible 18:35:53 : .if { cond then else } cond 0= else and cond 0<> then and or ; \ Without Sintactic Sugar. 18:35:54 : y ." yes" ; : n ." no" ; : e ['] y ['] n .if execute ; 18:39:31 DKordic: except that requires named functions for each item 19:07:52 DKordic: wow, I really need to read up on standard Forth. *Really* don't know how that works... 19:08:45 roboguy`: Are You on some Linux distro? 19:09:04 --- quit: groovy2shoes (Quit: Leaving) 19:09:23 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 19:11:33 DKordic: OS X. I have Ubuntu on a VM though 19:11:41 (and I have gforth installed) 19:14:44 roboguy`: Could it be worse xD . 19:15:18 DKordic: ? 19:16:07 I am just joking. 19:16:12 ahh, ha 19:18:46 --- join: mark4 (~mark4@99-164-75-34.lightspeed.rcsntx.sbcglobal.net) joined #forth 19:19:38 why do you ask? 19:20:16 To install some forth so You can experiment. 19:21:10 ahhh, I see 19:21:27 Do You know what is Subroutine Threaded Code? 19:21:58 sort of... that's an implementation technique for Forth isn't it? 19:22:10 Correct. 19:24:27 --- quit: roboguy` (Read error: Connection reset by peer) 19:25:53 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 19:58:14 --- quit: rgrinberg (Remote host closed the connection) 20:00:34 --- join: rgrinberg (~rgrinberg@24-246-56-85.cable.teksavvy.com) joined #forth 20:05:26 --- join: ricky_ricardo (~rickyrica@2601:240:4203:ecb0:9118:da1b:1c66:2ce2) joined #forth 20:32:59 --- quit: rgrinberg (Ping timeout: 268 seconds) 20:50:31 --- quit: roboguy` () 20:59:34 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 21:02:50 --- quit: John[Lisbeth] (Remote host closed the connection) 21:16:54 --- quit: roboguy` (Remote host closed the connection) 21:17:20 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 21:20:49 --- quit: ricky_ricardo (Ping timeout: 256 seconds) 21:21:25 --- quit: Kumool (Quit: WeeChat 1.4) 21:21:52 --- quit: roboguy` (Ping timeout: 258 seconds) 22:10:58 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 22:15:23 --- quit: roboguy` (Ping timeout: 252 seconds) 22:19:36 --- join: roboguy` (~roboguy_@cpe-76-92-217-212.kc.res.rr.com) joined #forth 22:26:23 --- quit: roboguy` () 22:49:18 DKordic: heh, I don't like projects who "starts" with things like this - "Turn back now if:" , but still thanks for url ) 22:54:59 John[Lisbeth]: what do you mean, can't run as script? does "/usr/bin/env gforth" works in shell? 22:58:04 you also need to add "bye" at last string 23:59:59 --- log: ended forth/16.11.13