00:00:00 --- log: started forth/16.09.15 00:06:18 http://lpaste.net/195914 00:06:24 that's apparently krivine in haskell 00:21:46 John, I can also recommend you to look at Prolog, it can be pretty interesting for you 00:22:10 prolog is one of those languages on my radar now but I have not come close enough to wanting it 00:31:09 --- quit: mnemnion (Remote host closed the connection) 00:33:40 --- join: dys (~dys@et-0-55.gw-nat.bs.kae.de.oneandone.net) joined #forth 00:59:22 now I have some code that can run the krivine badly 00:59:29 it is only a matter of time muahahahaha 01:12:03 nerfur: at this point, I'm inclined more to think that the language doesn't matter. 01:13:04 nerfur: you have to think at least more or less coherently in order to use any programming language. 01:13:12 ASau: can you tell if that link is krivine? 01:21:12 --- join: proteusguy (~proteusgu@host220-57-dynamic.17-79-r.retail.telecomitalia.it) joined #forth 01:21:12 --- mode: ChanServ set +v proteusguy 01:23:48 I think I am going to make my own processor with an pfga 01:23:50 fpga 01:23:59 ASau: I just recommend it to him for new experience 01:25:50 ASau: with an fpga you could make a computer that all the way to it's core assumes infinite ram 01:26:44 you can get an fpga for cheap 01:26:47 a tiny one 01:27:07 all you'd have to do is hook it up to the correct components with wires 01:27:27 There's a good channel for that. #fpga 01:27:30 Sorry ##fpga 01:27:52 this relates to forth if that is what you mean 01:28:02 a forth processor would be very good for the forth community 01:28:13 programming your own fpga only makes your forth more customized 01:28:25 this is in line with traditional forth thinking 01:28:56 John[Lisbeth], there's been several. But yes - forth makes a lot of sense when the line between software and hardware blurs. 01:29:29 Somewhere around 1980-85 people played with custom CPUs that support powerful high-level programming languages. 01:29:33 --- join: mnemnion (~mnemnion@71.198.73.193) joined #forth 01:29:45 There were Lisp CPUs, Smalltalk CPUs, Prolog CPUs... 01:29:53 if I can put krivine in an fpga and ASau is right about krivine then that would be a very minimal forth and would be a very tiny cheap processor 01:30:23 Forth programmers have entered the scene when it became clear that the idea is not actually that great in practice. 01:30:37 Somewhere around 1990-95. 01:30:50 is it not a good practice to put krivine in an fpga? 01:31:31 Try it and see. 01:31:45 what do you think the answer is? 01:32:03 I'm skeptical of this, because the idea didn't turn out as fruitful in the past. 01:32:23 why not? 01:32:47 because our world is world of "fast doing" 01:33:01 and unification provides it more then low level tuning... 01:33:30 it is cheaper to release shit than optimise 01:33:35 in mass market 01:34:11 I need to design a computer 01:34:29 feel free, it is pretty common hobby on geek scene 01:37:58 --- quit: Uniju (Ping timeout: 276 seconds) 01:40:34 --- quit: ASau (Ping timeout: 276 seconds) 01:40:45 well is there a place where I can buy a krivine cpu? 02:10:35 --- quit: mnemnion (Remote host closed the connection) 02:11:06 --- quit: proteusguy (Ping timeout: 244 seconds) 02:21:40 --- join: newcup (newcup@peruna.fi) joined #forth 03:00:34 --- join: true-grue (~true-grue@176.14.222.10) joined #forth 03:08:15 --- join: Uniju (~frog_styl@cpe-74-78-4-232.mass.res.rr.com) joined #forth 03:30:04 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:989f:5fcb:f3e7:3b63) joined #forth 03:34:13 --- quit: mnemnion (Ping timeout: 250 seconds) 04:25:55 If FICL is the fastest implementation you've seen, Forth must be extremely slow for you. 04:27:17 --- quit: nighty (Quit: Disappears in a puff of smoke) 05:48:23 --- part: beretta left #forth 05:54:49 --- join: nighty (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 06:15:37 John[Lisbeth], the J1 is a verilog forth core for FPGAs 06:31:40 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:5014:e3f5:e117:cc37) joined #forth 06:35:47 --- quit: mnemnion (Ping timeout: 250 seconds) 06:47:22 --- join: proteusguy (~proteusgu@182.232.248.10) joined #forth 06:47:22 --- mode: ChanServ set +v proteusguy 07:32:52 --- quit: proteusguy (Ping timeout: 260 seconds) 08:04:39 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 08:05:31 --- quit: Zarutian (Read error: Connection reset by peer) 08:05:45 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 08:21:33 --- quit: M-jimt (Remote host closed the connection) 08:26:49 --- quit: dys (Ping timeout: 276 seconds) 09:09:31 --- join: neceve (~ncv@79.114.94.112) joined #forth 09:09:32 --- quit: neceve (Changing host) 09:09:32 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 09:30:40 John[Lisbeth]: what the fuck is this "krivine" thing you keep going on about? 09:32:50 gordonjcp: some sort of abstract mathematical thingy as far as I understand it at the moment. 09:33:09 okay 09:48:31 --- join: M-jimt (jimtmatrix@gateway/shell/matrix.org/x-vbqxtdezhicllgpb) joined #forth 09:50:33 --- quit: M-jimt (Remote host closed the connection) 10:03:45 --- join: dk8086 (~quassel@189.102.205.20) joined #forth 10:04:22 --- nick: dk8086 -> TrevorDaSorte 10:39:29 --- join: mnemnion (~mnemnion@71.198.73.193) joined #forth 10:41:49 --- join: M-jimt (jimtmatrix@gateway/shell/matrix.org/x-rfbkejmjgvaefqry) joined #forth 10:43:16 Zarutian: what would be nice is a simple, common-to-many-platforms emulator that a simple illustrative Forth could be written for 10:48:43 --- join: Mat4 (~claude@ip5b40be56.dynamic.kabel-deutschland.de) joined #forth 11:24:17 --- quit: TrevorDaSorte (Remote host closed the connection) 11:36:00 --- part: Mat4 left #forth 11:44:45 So I'm curious what you guys think about forth as a first programming language (not for me, of course, for others). I frequently see people mention "habits" from other languages that you have to "unlearn" when using forth. 11:48:48 --- quit: mnemnion (Remote host closed the connection) 11:49:32 reepca, It's mostly as useful as learning assembler language as a first one. And as a bonus you'll get some practical knowledge about refactoring/compilers/interpreters/threaded code/stack machines etc. 11:53:44 But the most useful way to get maximum from Forth is to build your own Forth system and then start to learn how to program it :) 11:54:05 And you need know some other language to do it. 11:59:15 true-grue: but what's this I hear about cross/meta-compilation, then? 12:03:06 --- quit: the_cuckoo (Quit: Leaving.) 12:04:56 reepca, It's really easy to implement Forth in some other language. You don't need to grok Forth if you want to build your own Forth system this way. But Forth written in Forth... this a rarity. And definitely not a task for a novice. 12:07:49 --- join: mnemnia (~mnemnion@152.179.131.166) joined #forth 12:09:16 --- quit: mnemnia (Remote host closed the connection) 12:09:32 --- join: mnemnia (~mnemnion@152.179.131.166) joined #forth 12:17:25 --- quit: neceve (Quit: Konversation terminated!) 12:42:17 --- quit: DKordic (Quit: ERC Version 5.3 (IRC client for Emacs)) 12:58:26 true-grue: uhm 12:58:34 true-grue: forth is inherently written in forth 12:59:23 once you've got maybe a dozen or so primitives out of the way 13:02:08 gordonjcp, cmFORTH is written in Forth. eFORTH too. But these systems were written by masters. 13:03:01 not used either of those 13:03:18 true-grue: so are you saying you'd write every single word of your implementation as a primitive, in machine code? 13:03:31 because that rather defeats the purpose of having Forth 13:05:55 No, many popular systems are mostly written in bytecode assembler of some sort (or threaded code). With manual building of dictionary entries, manual compiling of IF/THEN/ELSE and so on. 13:06:42 so, written in Forth then 13:07:40 I think you need to get familiar with metacompiling concept and with eForth. 13:09:25 no 13:09:35 I'm incredibly familiar with metacompiling 13:09:36 In fact, metacompiler is too powerful thing. Bootstrapping -- is a more correct word here. 13:09:38 it's a waste of time 13:09:48 well, that's maybe a little strong 13:09:53 it's a poor fit for my application 13:10:08 eforth is huge, and slow 13:10:56 --- join: karswell (~user@100.143.189.80.dyn.plus.net) joined #forth 13:11:08 although... there is a port for the intel 8096/8098 family 13:11:13 hmmm 13:11:26 I'd forgotten about that 13:12:33 Well, we started with a task. How can one implement his own Forth system if he knows only one PL, and it's Forth? The answer is simple: he should write Forth in Forth. But in reality for most of the people much easier solution is to implement Forth in assemler language, C and so on. 13:24:41 I wrote a forth in forth 13:24:56 did an honestly bad job of it, but it was still fun 13:54:49 --- join: ASau (~user@netbsd/developers/asau) joined #forth 14:20:23 My understanding is that a cross-compiler compiles a forth in forth from another to another platform or so... and that it becomes a metacompiler when it compiles itself from itself possibly with some updates. 14:24:46 pointfree, It's a popular, but not very correct definition. 14:31:46 https://en.wikipedia.org/wiki/Metacompiler#FORTH_metacompiler <-- interesting discussion here. 14:32:11 Yes :) 14:33:31 --- join: gyxile (~nick@cpc80309-grim18-2-0-cust167.12-3.cable.virginm.net) joined #forth 14:37:00 gelFORTH will be self-hosting/cross-compiling. It's a bit hard to wrap my head around and I had the tendency to lean on the host Forth too much, but I think I have an effective stratagem: I have wrapped C@ C! @ ! KEY EMIT to talk only to board over SWD early on in my code. After that, I reimplement compiling words and then code up the entire system. 14:37:04 Then I cut the umbilical cord at the end by replacing C@ C! @ ! KEY EMIT with words that plug into the hardware on the board itself (Flash/RAM and UART) instead of SWD. 14:47:31 --- quit: groovy2shoes (Ping timeout: 250 seconds) 14:51:27 I also use the gForth word SEAL to check that I have no remaining dependencies on gForth. 14:59:58 --- join: groovy2shoes (~groovy2sh@unaffiliated/groovebot) joined #forth 15:27:29 --- quit: true-grue (Quit: Leaving) 15:35:11 gordonjcp: isnt eforth main purpose of being educational and hence not as optimized for size and speed? 15:39:12 --- quit: Zarutian (Quit: Zarutian) 15:39:33 --- quit: ASau (Read error: Connection reset by peer) 15:39:40 --- join: ASau (~user@netbsd/developers/asau) joined #forth 15:51:38 --- quit: nighty (Remote host closed the connection) 16:51:13 --- join: nighty (~nighty@d246113.ppp.asahi-net.or.jp) joined #forth 16:56:35 --- join: nal (~nal@adsl-64-237-233-18.prtc.net) joined #forth 16:57:28 --- quit: gyxile (Quit: Ex-Chat) 17:26:59 http://excamera.com/files/j1demo/verilog/j1.v 17:27:03 I am getting closer 17:27:21 though this is a prolog core or something I am not sure if it is as good as krivine 17:50:14 --- quit: mnemnia (Remote host closed the connection) 17:53:26 --- join: mnemnion (~mnemnion@152.179.131.166) joined #forth 17:58:08 --- quit: mnemnion (Ping timeout: 265 seconds) 18:06:19 --- join: mnemnion (~mnemnion@2601:643:8102:7c95:31c6:980e:4f82:8ac4) joined #forth 18:10:23 --- quit: mnemnion (Ping timeout: 248 seconds) 18:10:56 --- join: mnemnion (~mnemnion@71.198.73.193) joined #forth 18:39:04 --- join: neceve (~ncv@unaffiliated/neceve) joined #forth 19:49:26 --- quit: ASau (Ping timeout: 255 seconds) 20:16:08 I think I need to buy an fpga 20:16:56 the krivine function is like eval in lisp 20:17:19 you can create a syntax in binary that is designed for this eval function 20:17:50 then invent primitives from within this syntax 20:18:46 You have to get that syntax going back and forth in ram 20:34:42 asau just leaves 20:35:18 he's probably the only one interested in krivine machines 20:35:21 in here 20:51:50 --- join: arquebus (a2ccb4c7@gateway/web/cgi-irc/kiwiirc.com/ip.162.204.180.199) joined #forth 21:03:43 oh well 21:03:49 if it runs forth it runs forth 21:08:05 --- quit: tangentstorm (Ping timeout: 265 seconds) 21:34:13 --- quit: arquebus (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) 21:58:05 --- quit: neceve (Quit: Konversation terminated!) 22:46:23 this is a community of 800 https://www.reddit.com/r/forth 22:46:29 the largest community of forth users I've seen 23:25:54 yeah, pointfree from this channel pretty active on this reddit 23:59:59 --- log: ended forth/16.09.15