00:00:00 --- log: started forth/13.06.20 02:05:55 --- join: epicmonkey (~epicmonke@host-224-58.dataart.net) joined #forth 02:13:45 --- join: protist (~protist@190.224.69.111.dynamic.snap.net.nz) joined #forth 03:10:04 --- quit: newcup (Ping timeout: 264 seconds) 04:17:27 --- join: newcup (newcup@peruna.fi) joined #forth 04:22:03 --- quit: beretta (Quit: Yaaic - Yet another Android IRC client - http://www.yaaic.org) 04:54:01 --- join: nighty^ (~nighty@tin51-1-82-226-147-104.fbx.proxad.net) joined #forth 05:28:34 --- join: ErhardtMundt (~quassel@host45-177-dynamic.19-79-r.retail.telecomitalia.it) joined #forth 05:37:30 --- quit: proteusguy (Remote host closed the connection) 05:45:34 --- join: fantazo (~fantazo@213.129.230.10) joined #forth 08:00:25 --- quit: clog (^C) 08:00:25 --- log: stopped forth/13.06.20 08:01:00 --- log: started forth/13.06.20 08:01:00 --- join: clog (~nef@bespin.org) joined #forth 08:01:00 --- topic: 'Forth Programming | logged by clog at http://bit.ly/91toWN | links: qr.net/gforth isforth.com forthfreak.net qr.net/ans_standard | Buy forth chips from www.greenarraychips.com' 08:01:00 --- topic: set by foucist!~foucist@ps14150.dreamhost.com on [Thu Apr 26 19:32:21 2012] 08:01:01 --- names: list (clog ErhardtMundt RodgerTheGreat nighty^ newcup protist epicmonkey Dhark8 cfjdet djinni Nisstyre tangentstorm dys kulp ASau malyn_ jevin sirdancealot rixard nottwo segher jimt dzho tp KipIngram Backer jyf bjorkintosh c00kiemon5ter goingretro TodPunk dessos Inode +tathi ttmrichter karswell Anarch nighty- rprimus bluekelp yunfan Adeon yiyus) 08:13:16 --- quit: Nisstyre (Quit: Leaving) 08:57:37 --- join: proteusguy (~proteusgu@ppp-58-8-220-194.revip2.asianet.co.th) joined #forth 09:11:04 --- join: Tod-Work (~thansmann@50-202-143-210-static.hfc.comcastbusiness.net) joined #forth 09:42:52 --- join: ncv (~quassel@79.113.83.76) joined #forth 09:42:52 --- quit: ncv (Changing host) 09:42:52 --- join: ncv (~quassel@unaffiliated/neceve) joined #forth 09:47:06 --- join: mtm (~mtm@c-76-102-52-34.hsd1.ca.comcast.net) joined #forth 09:48:27 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 10:00:44 --- quit: segher (Quit: This computer has gone to sleep) 10:02:24 --- join: segher (~segher@5ED3C8DF.cm-7-4d.dynamic.ziggo.nl) joined #forth 10:03:29 --- join: protist_ (~protist@126.172.69.111.dynamic.snap.net.nz) joined #forth 10:05:24 --- quit: protist (Ping timeout: 255 seconds) 10:09:37 --- quit: dto (Remote host closed the connection) 10:11:52 --- quit: cfjdet (Ping timeout: 264 seconds) 10:44:45 --- quit: tathi (Ping timeout: 246 seconds) 10:44:59 --- join: tathi (~josh@dsl-216-227-91-75.fairpoint.net) joined #forth 10:44:59 --- mode: ChanServ set +v tathi 11:32:08 --- quit: protist_ (Ping timeout: 240 seconds) 11:34:04 --- join: ASau` (~user@p5797F7E9.dip0.t-ipconnect.de) joined #forth 11:37:04 --- quit: ASau (Ping timeout: 256 seconds) 11:40:03 --- quit: mtm (Quit: Leaving...) 12:03:05 --- join: mtm (~mtm@76.102.52.34) joined #forth 12:05:40 --- nick: ASau` -> ASau 12:31:12 --- quit: epicmonkey (Ping timeout: 248 seconds) 13:22:17 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 13:35:29 --- join: epicmonkey (~epicmonke@188.134.41.113) joined #forth 13:55:38 --- join: cfjdet (~androirc@pD9E24E0F.dip0.t-ipconnect.de) joined #forth 14:06:28 --- quit: dto (Remote host closed the connection) 14:08:15 --- quit: jimt (Quit: leaving) 14:19:54 --- quit: cfjdet (Read error: Operation timed out) 14:26:09 --- join: cfjdet (~androirc@pD9E24E0F.dip0.t-ipconnect.de) joined #forth 14:41:15 --- quit: cfjdet (Ping timeout: 248 seconds) 14:50:54 --- join: beretta (~beretta@cpe-107-8-120-203.columbus.res.rr.com) joined #forth 15:17:22 --- quit: epicmonkey (Ping timeout: 246 seconds) 15:58:21 --- quit: Tod-Work (Quit: Leaving) 16:03:36 --- quit: mtm (Quit: Leaving...) 16:58:15 --- quit: segher (Quit: This computer has gone to sleep) 16:59:57 --- join: segher (~segher@5ED3C8DF.cm-7-4d.dynamic.ziggo.nl) joined #forth 17:00:18 --- quit: nighty^ (Quit: Disappears in a puff of smoke) 17:04:58 --- join: mtm (~mtm@c-24-130-130-44.hsd1.ca.comcast.net) joined #forth 17:42:10 --- join: dto (~user@pool-96-252-62-13.bstnma.fios.verizon.net) joined #forth 18:12:36 --- quit: goingretro (Ping timeout: 252 seconds) 18:26:45 --- quit: beretta (Quit: Leaving) 18:37:09 --- join: DaDaDOSPrompt (~mb@67-5-252-3.ptld.qwest.net) joined #forth 18:37:40 Is anyone aware of any interesting papers relating Forth to Lamba calculus or some other philosophical system of computing of that sort? 18:38:16 hmm 18:38:34 http://tunes.org/~iepos/joy.html ? 19:06:05 http://home.pipeline.com/~hbaker1/ForthStack.html 19:06:31 (though i see this is listed in the links the one RodgerTheGreat posted) 19:12:17 --- quit: ncv (Remote host closed the connection) 19:12:23 --- quit: dto (Remote host closed the connection) 19:12:37 mmm, yeah- postscript 19:22:21 --- quit: mtm (Quit: Leaving...) 19:28:28 never messed with postscript myself 19:29:07 I made a forth in it: https://github.com/JohnEarnest/Four.Ps 19:30:21 --- quit: proteusguy (Ping timeout: 260 seconds) 19:32:24 --- quit: RodgerTheGreat (Read error: Connection reset by peer) 19:32:24 --- join: RodgerTheGreat_ (~rodger@50-198-177-185-static.hfc.comcastbusiness.net) joined #forth 19:32:25 --- nick: RodgerTheGreat_ -> RodgerTheGreat 19:37:01 cool 19:37:06 haha the pdf is awesome 19:37:11 is that the visual debugger? :) 19:37:15 yeah 19:37:36 if you run it via gs it just shows a page at a time and allows you to step through them 19:38:02 when I enter "gs four.ps" I get a GV viewer pop up. doing 3 enter causes a lot of ">>showpage, press to continue<<" 19:38:50 debian 7 19:40:05 tp: do the stacks/code not render? 19:40:50 it works perfectly for me on ghostscript 9.06 19:41:31 9.05 here 19:41:35 (debian) 19:41:42 I'm on OSX 19:42:02 but anyway if it doesn't work the included PDF is exactly how the program should render 19:42:19 never occurred to me that you could just sit and program in ghostscript... :) 19:42:26 i have gs mapped to "git status" :) 19:42:28 it's surprisingly OK 19:42:49 i've played with the stack calculator language... bc? 19:42:53 --- join: proteusguy (~proteusgu@ppp-58-8-107-119.revip2.asianet.co.th) joined #forth 19:43:14 the main parts about postscript that are difficult are the lack of decent libraries and the generally crummy quality of example programs 19:43:52 not many well-factored, nicely commented postscript programs out there, and few if any postscript programmers are familiar with stack effect comments 19:44:16 I have the 'programming in Poscript' book somewhere 19:44:24 but, Ive never read it 19:45:05 I've toyed with the idea of writing a standard lib for postscript with data structures and string manipulation stuff but it's remained a low-priority project 19:47:43 RodgerTheGreat: the first page renders as per the PDF, then it just does nothing now 19:48:11 I think it's a darn clever use of Postscript 19:48:40 are you pressing return in the terminal window you used to launch gs? 19:48:49 yes 19:48:53 hm 19:48:56 welp 19:48:58 bash 19:49:04 I have no idea what the problem is on your machine 19:49:08 not to worry 19:49:50 the original idea behind that program was that I could use it to give presentations that walked through forth code and demonstrated the stack effects piece by piece 19:49:51 it's a interesting use of ps 19:49:55 I never actually used it though 19:50:03 excellent idea 19:50:39 I think I managed to keep the source pretty well-organized and easy to read 19:51:08 was just skimming it now.. looks quite approachable 19:51:42 i like what you're saying about being able to give demonstrations that way, RodgerTheGreat 19:52:39 one of the things that's been holding up the lessons i'm doing is wanting to build a tangible vm that students could interact with 19:53:20 looks good to me, but I don't know Postscript programming 19:53:43 714 lines 19:54:33 this is somewhat off topic, but someone showed me this the other day and i think you guys would like it :) ... 19:54:36 https://gist.github.com/koo5/4129213 19:55:01 is that inform 19:56:43 yeah :) 19:56:54 haven't tried to run it 19:57:44 --- join: mtm (~mtm@c-24-130-130-44.hsd1.ca.comcast.net) joined #forth 19:58:22 i've been thinking about how to bootstrap my parsing system recently. this discussion has reminded me about stone knife forth 19:58:31 ah yes 19:58:45 it's a tiny forthlike language where all the commands are ascii characters 19:58:53 four.ps has a fairly succinct parser 19:59:47 so are there any forth IDE? i want see what feature they provide 20:00:08 it's not the parsing part that's giving me trouble but the bootstraping part, although i will go zoom in on the code there now 20:01:11 yunfan: arguably all forths are ides 20:01:11 check out colorforth 20:01:12 yeah. :) 20:01:14 win32forth is probably a little more approachable 20:01:37 colorforth to forth is just like javascript to java :] 20:02:01 actually i found out recently about simtel shutting down, and i downloaded a bunch of old dos forth programs off a mirror. 20:02:31 there's a tutorial about pygmy forth 20:02:36 yunfan: I think that's rather unfair to colorforth 20:02:43 yunfan: holonforth is a really really nice IDE 20:03:09 tangentstorm: will check that 20:03:43 tp has remind me pygmy forth 20:04:53 pigmy forth was for msdos I believe 20:04:57 the holonforth site is a bit hard to navigate, and there are like 600 versions. http://www.holonforth.com/holon/introduction.htm 20:05:26 tp: yeah simtel was an archive of old ms-dos programs 20:05:46 or just programs and files in general but they had a lot of old dos stuff 20:07:25 i believe you need dosbox to run the older console mode holonforth too. i can't remember if i did that or just tried it on a really old machine. 20:08:55 I've only used Riscy Pygness 20:09:24 as regards pigmy forth 20:09:44 my dos programming is either Perl, or C 20:09:51 hehe, oops 20:09:58 my Linux programming is either Perl, or C 20:13:30 perl :] 20:13:57 You poor bastard. No wonder you never got bit by the programming bug, tp! 20:13:59 Perl?! 20:14:00 Ugh. 20:14:48 perl code is like a chunk of forth code with space removed :] 20:15:01 And flipped inside-out. 20:15:42 hah 20:15:59 I'm trying to escape from perl, but it's just too easy to use 20:16:13 especially solving day to day business needs 20:17:04 I'm not sure I've ever seen the phrase "easy to use" (nor "solving") used in conjunction with "Perl" without an intervening negative or some form of ironic phrasing. 20:17:17 Plus Perl even with a GUI, such as GTK always runs properly on every machine I use 20:18:47 perl regex extension is very powerful 20:18:50 I wrote a GUI application (for shipping) using GTK2-Perl a few years ago, and released it under the GPL. A few months later a guy emailed me the same app running on Windows XP 20:19:16 i sometimes think perl is a language extensived for regex :] 20:19:19 * tangentstorm likes perl 20:19:32 my regex is terrible, almost non existent 20:19:50 i like perl 6 a whole lot more than perl 5 though. 20:20:06 When will it be finished, tangentstorm? :) 20:20:26 I havent used 6, is it released yet ? 20:21:05 dunno if any language is ever finished, or even how much of the original spec was implemented, but yeah you can download it right now and use it. 20:21:33 the only programs that have been finished, and are bug free, are obsolete ;-) 20:21:36 http://rakudo.org/ 20:21:36 --- join: goingretro (~kbmaniac@host81-129-184-151.range81-129.btcentralplus.com) joined #forth 20:21:57 except for LaTex 20:22:04 i dunno... TeX has been stable and... yeah :) 20:23:06 Has the language spec even been finalized? 20:23:17 I kind of lost track of all this five years ago or so. 20:23:29 I think D.Knuth was offering $500 for bugs with TeX back in 1991 ? 20:23:40 yeah, it's not really a spec per se... i don't know what's going on with it. 20:24:14 i used to use perl , but perl2exe's generated file is too large 20:24:21 so i found lua after 20:24:26 I'll stick with Perl5 for now, it does what I need, and I don't want to break stuff 20:24:41 rakudo seems to be the biggest/most active implementation of perl 6... there is also perl6 for perl5. 20:25:04 yunfan: Lua seems very popular 20:25:12 http://perlcabal.org/syn/ 20:25:16 so many programming languages :) 20:25:23 That seems to be the current status of Perl6. 20:25:47 I kind of left the perl world for python many years ago but I did some work on a python -> parrot compiler. (parrot is/was the perl6 vm, but nobody likes it and they're moving toward jvm) 20:26:08 Waitwhat? 20:26:09 I wrote a couple of small apps in Python several years ago, and loved it, but I hear that Ruby is better, so keep meaning to check it out 20:26:15 They're tying Perl6 to the JVM?! :-o 20:26:25 tp: Stick with Python. 20:26:31 Ruby is "better" iff you like magic. 20:26:41 java virtual machine ? 20:26:47 yeah 20:26:51 eww 20:27:02 I'm not a fan of java myself 20:27:18 hahah, have you seen the video, the javapocalypse ? 20:27:34 no wait, they're not tying it to the jvm... just that they're targeting it as the backend 20:27:35 'write once, wreck everything' 20:27:51 perl compiles to nqp 20:27:55 at least rakudo does 20:28:06 tp i live on python recently :] 20:28:07 nqp is "not quite perl" a scaled down version of all the crazy stuff in perl6 20:28:16 ahh 20:28:34 ttmrichter: ruby is better for former perler i think, so maybe its really better for tp 20:28:43 yunfan: the lack of needing a ";" terminator in Python is very liberating :) 20:28:49 currently, nqp compiles to PIR (parrot intermediate representation) but parrot has lots of problems 20:28:50 The Perlisms in Ruby are frowned upon in Ruby code. 20:29:10 tp: i like python's lisp comprehension, i write it like in lisp 20:29:19 the python community dont accept this 20:29:33 * tp is a technician, not a programmer 20:29:43 Yeah, the Python community hostility to functional techniques is kind of what drove me away from it. 20:29:51 muahahahaha 20:30:17 i dont like python community 20:30:19 but I do understand that as all languages evolve they approach Lisp 20:30:19 I mean Guido basically made lambdas the lamest structure in computing history this side of computed gotos pretty much to "prove" that functional programming was a bad thing. 20:30:23 i never followed through on this, but...: http://scarletlambda.org/ 20:30:28 they claim a philosophy but dont abey it 20:31:07 well by follow through i mean i never developed it much further. the actual code on the site is still runnable... somewhere 20:31:19 tp: The only people who say that are Lisp addicts. 20:31:31 tp: The rest of us comprehend the notion of "the right tool for the job". 20:31:45 "In ancient times, functional python programmers were shunned, and forced to wear the scarlet lambda as a symbol of their heresy..." hahah 20:32:02 :) 20:32:08 tangentstorm: that your page ? 20:32:11 yeah 20:32:15 yunfan: I agree with that 20:32:25 tangentstorm: Remember Guido's excuse for not providing tail call optimization in Python? 20:32:34 aha 20:32:42 ttmrichter: no... what was it? 20:32:46 for example, it is "pythonic" to say that "explicit is better than implicit". Except, apparently, when it comes to your friggin' type system 20:33:14 tangentstorm: TCO would eliminate the stack trace. 20:33:23 inheritance with duck-typing is also implicit rather than explicit 20:33:25 RodgerTheGreat: they say there's one and the only one best way to solve problem , but there're so many and many web frameworks 20:33:29 So it's bad because now you can't debug recursive code that fails. 20:33:43 hrm... that seems kind of weak to me 20:33:46 and the async io library in standard lib is not the best :[ 20:33:47 --- join: cfjdet (~androirc@pD9E253B0.dip0.t-ipconnect.de) joined #forth 20:33:54 Of course the fact that TCO is used in situations where an imperative programmer would use a loop, and loops don't leave stack traces... 20:33:56 in general I consider python to be hideous and not contain any new or interesting ideas 20:34:16 and a number of profoundly bad ones 20:34:22 tangentstorm: It was weak. It was just another Guido "fuck you" to the functional programmers tainting his precious bodily fluids. 20:34:32 for example, the 'del' operator 20:34:36 RodgerTheGreat: the forced indent is good invent which made code better readable 20:34:50 yunfan: At the expense of making it shareable. :) 20:34:55 that's why they dont accept my using list comprehension 20:35:06 it can be used to remove a variable from the current scope. why the shit would this ever be desirable? 20:35:10 i use list comprehensions all the time 20:35:34 A good set of coding standards enforced upon a project by its leadership makes more sense to me than syntactically significant whitespace. 20:35:39 tangentstorm: yes i use nested list comp 20:36:21 and i use the side effects of list comp like filter(None, (sys.stdio.write("%d\n"%idx for idx in range(100)))) 20:36:25 i suppose it could be useful when you use it at the prompt, but ... i can't really think of a time when i used it... 20:37:03 hrm... that does seem kind of messy, yunfan :) 20:37:38 tangentstorm: yes, but in lisp world, its just normal things 20:38:28 tangentstorm: sometimes you need to assign value for dictionary members , you would see the benefits of using this side effects 20:38:47 RegularExpressions is one area where Perl is far ahead of Ruby. 20:38:58 like... why not print '\n'.join(str(i) for i in range(100)) 20:39:00 * tp quoting from the net 20:39:11 Assuming you think of regexps as an advance. :) 20:39:43 let's also recall that python and ruby are inhumanly, unreasonably slow 20:39:55 That's pretty damning, yeah. 20:40:04 i don't think it's true 20:40:06 Speed isn't everything, of course, but ... 20:40:39 a slang term I have discovered is the "p-lang". It refers to crummy scripting languages whose names start with P. For example, php, python, ruby, perl, etc 20:41:09 Ruby starts with P? 20:41:10 python isn't that slow for most things, and where it is, you can use psyco (a JIT) or pypi (a.. i don't even know what to call it) or write your code in cython (basically python syntax with types, translated to c) 20:41:13 * ttmrichter eyes RodgerTheGreat. 20:41:34 tangentstorm: because the sample using a small number -> 100 20:41:35 the p is both silent and invisible 20:41:35 ttmrichter: the p is silent 20:41:37 also invisible 20:41:40 but deep down you know it's there :) 20:41:52 hahah 20:41:57 you guys! 20:41:58 tangentstorm: out of my head 20:42:16 but for me Perl is very fast, to write 20:42:18 tp: we're a real bunch of looney tunes 20:42:22 cpython is slow 20:42:30 in execution it's slow, but that doesnt matter for me 20:42:31 but pypy and jython is not that slow 20:42:36 More P languages. Pascal. Prolog. 20:42:58 and cpython's execution model design disable tail -recursing 20:43:02 that's ugly 20:43:03 man you better not be talkin no smack about pascal >:| 20:43:13 ooh it's on 20:43:45 tangentstorm: I'm deconstructing the "p-language" concept. 20:44:02 Oh, right! We were just talking about it! 20:44:04 Postscript. 20:44:36 pliant 20:44:40 pike 20:44:48 PL/I, unfortunately, fits the bill. :( 20:45:00 Pascal is my hero! 20:45:47 there was an acronym for a while called "LAMP" ... linux, apache, mysql, php/perl/python ... then ruby came along 20:45:47 ttmrichter: prolog, more like nooblog, amirite 20:45:48 Here's one: nobody better dis this one! PAL-8 20:45:48 I first learnt Dartmouth Basic, because I had to use a single chip basic for hardware debugging, and the process ruined my brain 20:46:36 old school basic was pretty messy 20:46:40 I then tried to teach myself C, and *just couldn't get it*, so I detoured and learnt Pascal. After that, C just came naturally 20:46:46 RodgerTheGreat: Are you trying to twist my nipples here? 20:46:59 Yes. Moving from Pascal to C is easy. 20:47:06 ttmrichter: possibly 20:47:07 Just remove all sense of taste and rigour. 20:47:11 i use pascal as my primary language these days 20:47:16 Thank you Mr Wirth and miss Jensen 20:47:36 * ttmrichter is now slightly aroused. 20:47:37 pascal is very impack 20:47:37 * ttmrichter counts down to RodgerTheGreat's disgust. 20:47:37 amazing tool 20:47:38 befor i saw forth 20:47:49 ttmrichter: you're going to be counting for quite a while my friend 20:48:09 hahaha 20:48:33 RodgerTheGreat: That's OK. I've got a 64-bit core. 20:48:40 -1 20:48:41 i think learning forth has improved my pascal code considerably 20:48:42 -2 20:48:43 -3 20:48:45 -4 20:48:51 I used to read COLA for laughs, I think this channel will do for that now 20:49:03 COLA? 20:49:07 * ttmrichter usually drinks that stuff. 20:49:14 tangentstorm: I often feel the same way when writing C and Java 20:49:15 comp.os.linux.advocacy usenet 20:49:17 i learnt a lot just from the 1-2 chapters of the book CSAPP 20:49:34 tp: oh yeah the language used in the OMeta paper 20:49:40 tp: I laugh at Linux advocates too! Welcome to the club! 20:49:53 thanks! 20:50:16 (To clarify, I laugh at most advocates of anything.) 20:50:27 https://github.com/sabren/b4/tree/master/ng <- my pascal port of retroforth's virtual machine 20:50:52 my days of eating windows advocates alive are over tho, I've mellowed with age, now I just feel sorry for them 20:50:53 tangentstorm: cant you ported to pascal's p-code? 20:51:13 ngaro has an IO model 20:51:18 which isn't generally part of p-code 20:51:23 ttmrichter: id expect that from you :) 20:52:14 I'm the Oscar Wilde of computing. Sans wit. Sans taste. 20:52:34 yunfan: there are a number of different p-codes, i think... the famous one was for ucsd pascal, but that has really bad copyright restrictions and i just never even looked at it... 20:52:59 ttmrichter: I read COLA and laughed at the wintrolls, I was a full on Linux Zealot back in the late 90's 20:53:06 Yeah, UCSD Pascal could have had a much better future had it not been tied down by idiot legal limits. 20:53:07 I think there is/was an Ada p-code compiler. 20:53:09 tangentstorm: another's what vb use? 20:53:10 retro's vm (ngaro) appealed to me because it only has 31 opcodes 20:53:37 yes i like the design except load 20:53:51 which load the follow as data 20:54:04 you mean the lit opcode? 20:54:14 tangentstorm: mako only has 27. :( 20:54:27 nope i think is load 20:54:30 yeah i know, RodgerTheGreat .. but i found ngaro first :) 20:54:33 Mako's for the JVM though, no? 20:54:40 not necessarily 20:54:46 that's just the ref implementation 20:54:48 that's the point of a virtual machine ;) 20:54:56 i remember when i check mips's opcodes, they gave a picture with all the opcodes there 20:54:57 https://github.com/pikhq/cmako 20:55:01 that's very cool 20:55:02 mako is very easy to port 20:55:48 what about optimizing things of mako? 20:55:59 what do you mean by that? 20:56:34 i mean can it easy to optimazed too? 20:56:41 to some extent 20:56:48 FINE OKAY ILL PORT YOUR @#$@#$ VM TO TYPESCRIPT IF YOU'RE GOING TO BE THAT WAY 20:56:52 :) 20:56:53 like using some special hardware features 20:56:57 RodgerTheGreat, tangentstorm: That's the point of a VM, but until you have another implementation you don't know if you've made one that *is* actually portable. ;) 20:57:12 ttmrichter: I just friggin linked one 20:57:20 Ah, missed that. 20:57:37 the main repo (mine) is here: https://github.com/JohnEarnest/Mako 20:57:45 * ttmrichter is just a bit jaded about "portability" claims ever since the hype and hoopla over NFS. :D 20:58:10 Yeah, I know where yours is. :) 20:58:12 mako even has an android runtime which works on the nexus 7 20:58:28 ttmrichter: ngaro's other benefit (in my mind) is that it's already been ported to a ton of different machines 20:58:48 brainfuck is the easiest vm for port 20:58:58 but i think its hard to optimazing 20:58:58 hrm. i meant languages, but actually machines, too.. 20:59:11 brainfuck has considerably more limited IO capabilities than ngaro or mako 20:59:57 i implemented a version of brainfuck in a language called nimrod a few weeks ago 21:00:10 i implement that in python twice 21:00:19 tangentstorm: I think I saw that 21:00:31 one is a copy of c version , another using stack for [ and ] 21:00:32 made a little curses stepper program 21:01:04 it would be pretty easy to write a JIT brainfuck in forth 21:01:58 just use branch0 and defer to compile [] and the other primitives 21:02:10 er, postpone 21:02:48 i wish i had a command that would look up words in the forth docs and say what they do 21:03:17 then you need to search forword when you meet [ 21:03:18 Forth Warrior has a command called 'help' which does that 21:03:19 maybe i should actually write that forthesaurus 21:03:32 I'm gonna have that feature in my next game as well 21:03:57 my first retro program (beyond things like putting pixels on the screen) was the help system 21:04:00 you can extend forth with this capability pretty easily if you have a field in the dictionary entry which can be used to point to a description string 21:04:15 RodgerTheGreat: do you have android version of mako? and forth warrior? 21:04:23 yunfan: yes 21:04:35 https://github.com/JohnEarnest/androidMako 21:04:46 ^ this only works on the nexus 7 because I only have one of those 21:04:46 yeah, that's what implemented, basically... but it was hard for me to get anything done because it was so hard for me to navigate the docs 21:04:51 crc came back and cleaned it up 21:04:59 the keyboard may not fit properly on other screen sizes/ resolutions 21:05:05 RodgerTheGreat: but you dont use NDK for that? do you 21:05:05 also stripped out all my pretty ansi colors :) 21:05:54 yunfan: the built-in android keyboard is balls and does not generate key events for the 'delete' key 21:05:57 this makes it essentially worthless 21:06:04 RodgerTheGreat: what's that about a physical keyboard? 21:06:14 like i have said, you dont need keyboard 21:06:23 so I made a custom keyboard which does and is optimized for logo and forth 21:06:53 tangentstorm: a physical keyboard will work if you plug one in 21:07:02 RodgerTheGreat: where? 21:07:09 how? 21:07:10 the usb port presumably 21:07:17 assuming one exists 21:07:25 tangentstorm: you could i have bought a keyboard for nexus 7 with my workmate 21:08:07 yeah but your comment says you have one... so.. what did you do? just get a normal keyboard and a big usb -> mini usb adapter? 21:08:14 (i have a nexus 7 too) 21:08:20 in my experience the android libraries are completely awful and broken in a variety of unpleasant and unpredictable ways 21:08:34 tangentstorm: yeah I have one of those 21:08:58 i have another table pc which is mips based and also accep that keyboard 21:10:57 --- quit: cfjdet (Ping timeout: 255 seconds) 21:11:58 tangentstorm: oh I'm less confused now. You were referring to my most recent commit message. 21:14:39 tangentstorm: if you install makoid on your nexus 7 you will also need to copy over some mako roms in order to be able to do something 21:15:17 these can be compiled via maker et al or thieved from standalone mako jars 21:17:59 yeah, sorry... was distracted here. :) going to try and compile/install 21:18:01 RodgerTheGreat: which tool does android mako really depends, the NDK part or just SDK part? 21:18:22 the SDK part 21:18:22 it 21:18:26 it's pure java 21:18:30 if I 21:18:44 then it could be use by all android device , isnt it 21:18:47 if I'd written it in native code it might have been faster I suppose 21:18:50 except those lower version 21:19:09 yunfan: in theory, but as I said the display doesn't reflow properly 21:19:40 I don't have the resources or inclination to do it "right", but if anyone with android expertise wants to submit a pull request that makes it work on more devices be my guest 21:20:03 RodgerTheGreat: throw it back to developer 21:20:33 RodgerTheGreat: android's activity based model could get people dos expierences 21:20:58 like those days people write display buffer directly 21:21:28 except you have no idea what rez or aspect ratio the display buffer has 21:21:34 it's awful 21:22:19 you dont need those info 21:22:39 i think you could provide a hidden console for interactive forth console 21:22:52 this could be recall when user want 21:23:21 otherwise what they saw is another activity which is treated as a canvas or a vga device to your forth code 21:26:04 tangentstorm: roms should end in a .rom suffix and be stored in a directory called "Mako" under the root directory of the 21:26:10 "sd card" on your nexus 21:26:23 ie the device's flash memory 21:27:10 roms can be compiled with maker by issuing "./maker " 21:27:24 a .rom extension will be automagically appended to 21:27:32 RodgerTheGreat: can you provide the ability of packing .rom file to apk? 21:27:35 ok. i'm just getting android studio set up on this machine 21:27:55 yunfan: I have no idea 21:29:54 so that people could just give user an apk file and ask they to install, then user got the fun without download rom theyselves 21:30:51 yunfan: many things could be done; as I said earlier I have neither the time nor the desire to do further work on makoid for the time being 21:31:03 it's open-source so anybody who wants can go right ahead and add that stuff 21:33:31 if i could code in java , i would have my own opensourced forth implement for that :] 21:34:11 then learn Java. It's simple, fast, portable and commonly used. It's a good building material. 21:34:41 if you can program in any other curly bracket language you can pick up basic Java in a week or so 21:34:45 possibly less 21:39:40 Man, I REALLY hate the Thumb2 instruction set. 21:40:22 how so 21:40:43 I understand it ties compiler code emission phases in knots and bows 21:40:58 not entirely unlike SSE 21:42:54 here is a listing of the number of Debian packages for a few popular programming languages .. forth:53, lisp:202, basic:1043, ruby:1312, python:2600, perl:3445 21:43:16 I'm surprised forth is that high 21:43:23 me too 21:43:41 lisp is probably artificially low because there are many lisps which are not called "lisp" ie racket, scheme, etc 21:44:40 true 21:44:57 ttmrichter: what's wrong with that? 21:45:04 but the forth listing is a bit confusing, here is one "gcl-doc - Documentation for GNU Common Lisp" 21:45:09 and basic may be artificially high because it may not refer to the language 21:45:18 hunh 21:45:20 odd 21:45:35 lol, "apt-cache search" is beginning to behave like a Android paly Store search 21:45:40 each python library has a packages 21:47:20 RodgerTheGreat, yunfan: Thumb2 feels like Intel, not like a proper RISC processor. 21:47:30 ouch 21:47:58 ttmrichter: i've no idea of that , just use thumb for my f0 discovery 21:48:14 RodgerTheGreat: indeed. 21:48:31 I'm looking at abominations like the "IT" instruction. 21:48:55 what does that do 21:49:06 increment a.... timer? 21:49:09 Nope. 21:49:12 IF-THEN 21:49:16 * ttmrichter is not making this shit up. 21:49:18 eugh 21:49:24 it instruction? 21:49:36 seems like intel's condition branch? 21:49:40 You know how the classic ARM architecture has flags on (almost) every instruction for optional execution? 21:49:46 I(f)T(hen) 21:49:49 Oh, it's far worse than that, yunfan. 21:49:54 maybe it was meant to be 'if', but someone's unicode goofed up and it rendered the 'f' upside-down 21:50:04 RodgerTheGreat: Nope. It's IF-THEN. 21:50:12 Because you've got both IF and THEN coded. 21:50:20 but that's good for pre-fetching on pipeline 21:50:23 It's seriously ugly. 21:50:24 you mean if and else? 21:50:43 RodgerTheGreat: It's more screwed up than you can imagine. 21:50:45 lol, no, then it woild be "IE" 21:50:53 Let me see if I can find online explanations of it. 21:51:02 Because I can't do it without having an aneurism. 21:51:43 all of these ugly stuff is just for optimazing on pipeline archtecture :] 21:51:52 so it gives you an address to branch to conditionally and then an address to end up at later no matter what? 21:52:11 RodgerTheGreat: Think uglier. For example think "instructions", not "instruction". 21:53:06 For example, here's a simple IT usage: 21:53:11 IT EQ 21:53:22 ADDEQ r0, r0, #1 21:53:23 ok so is it a conditional skip 21:53:31 The two "EQ"s have to match. 21:53:35 oh it's predicated 21:53:43 ITT is used to indicate that the next two instructions are checked. 21:53:46 predicate flags are a thing on some architecture 21:53:50 that has explained in the book CSAPP 21:54:13 But then you have the one where the IT check is tested opposite. 21:54:25 tangentstorm: having any trouble over there? 21:55:07 ITTEENE\nADDNE ...\nADDNE ...\nSUBNE ...\nSUBNE ... 21:55:28 You're coding two "then" and two "else" instructions for the NE test. 21:55:43 ttmrichter: that's why RISC archtecture recommend you to use compiler 21:55:54 yunfan: I dispute if this is properly RISC. 21:56:15 You've got so many irregular cases and special constructs it makes a mockery of the very notion of RISC IMO. :) 21:56:22 it's really more like a 6502-era cpu where conditional branches are all based on bits in a status register 21:56:42 RodgerTheGreat: That's exactly the case. There's bits in a status register. 21:57:03 except instead of branches you ignore instructions 21:57:15 Oh, you can branch too. 21:57:20 But there's limitations on that. 21:57:21 I have no doubt 21:57:31 but you get what I'm saying 21:57:36 Or you can use specific branch instructions. 21:57:54 I get what they're trying to do with Thumb2. 21:58:00 But man did they come up with something fugly. 21:58:17 i dont like arm the product and the company 21:58:44 I enjoy the fact that ARM originally meant "Acorn RISC Machine" 21:59:14 I think it's time for ARM to stop adding cruft and to make a break from the past with something entirely new. 21:59:35 They keep patching on top of what was once a clean architecture and it's getting worse over time. 21:59:42 ttmrichter: they have started that 21:59:57 didnt arm's 64 archtecture is like mips? 22:00:20 and arm also join the fund that bought mips's tech and patents 22:02:50 They probably did that to help kill MIPS even more. :) 22:03:21 but mips the company is bought by imagination 22:03:54 that's good, mips isa plus imagination's gpu 22:07:28 geees, someone better rename #forth to #I-hate-arm ? 22:08:24 besides, one would think no one here looked at a X86 cpu instruction set ;-) 22:09:57 more hope more disappointment 22:10:14 hahah, anyone like spiderwebs ? 22:10:17 tp: intel is already in the assole list :] 22:10:17 http://www.abc.net.au/news/image/4771242-3x2-700x467.jpg 22:10:41 yunfan: yeah, they only made crap anyway, tho I do love my i7 hexcore :) 22:12:29 i am trying to build a itx box using apu 22:12:48 those spiderwebs are 1500km from here 22:12:55 tp: I don't hate ARM. I hate Thumb2. There's a difference. :) 22:13:10 ttmrichter: but do you have to use THUMB ? 22:13:12 tp: what they use those spiderwebs? 22:13:19 isnt THUMB optional ? 22:13:31 tp: All my ARM cores are Cortex-M4 or Cortex-M0, so yes. 22:13:38 for cortex m serial, it is 22:13:41 yunfan: the spiders have got busy after heavy rain 22:14:37 ttmrichter: but you're writing assembly for ARMS that are THUMB2 only ? 22:15:21 yunfan: I made up a mini-itx pc just yesterday, it now has freeBsd on it 22:15:47 i3 cpu and 16GB ddr3 22:16:18 i already have a i7 stantion, so i want to try apu for it 22:16:30 although i3 is better in tdp 22:16:36 FreeBSD gronk-13 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #0: Mon Jun 17 11:42:37 UTC 2013 22:16:47 apu ? 22:17:09 amd apu 22:17:19 tp: Yeah, if I'm going to put a Forth on these chips I'll have to use Thumb2. 22:17:36 oh, amd has their own arm chip now 22:18:06 CPU: Intel(R) Core(TM) i3-3220 CPU @ 3.30GHz (3292.59-MHz K8-class CPU) 22:18:29 yunfan: I read that 22:18:49 ttmrichter: then THUMB2 is a pain for you :( 22:19:19 Only for the initial phase. 22:19:27 yunfan: i7 with hexcore (sandy bridge?) 22:19:36 Once I get an interpreter in the core and talking to a serial port, the rest can be done in a real language. :) 22:19:42 ahh 22:19:46 amazin 22:20:43 ttmrichter: yes you dont need all the opcodes 22:23:03 yunfan: That's right. But to understand what I'm doing I need to at least know what the opcodes are. :) 22:28:47 --- join: cfjdet (~androirc@pD9E253B0.dip0.t-ipconnect.de) joined #forth 22:47:36 Does anybody actually document the assembler→opcodes relationship for ARMs these days? :-o 22:48:26 we are counting on you ttmrichter ! 22:50:17 Well I'm going to fail you then. 22:50:29 'Cause I have NO idea where this stuff is documented. 22:52:33 damn, another programmer lost to despair and confusion ... 22:54:23 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 22:54:32 the ARM wiki does say that the documentation is 'intimidating' 23:00:22 Ah, found it. 23:00:33 Dumbest damned organization of documentation ever. 23:01:45 You have Generic User Guides, Technical Reference Manuals, Architecture Reference Manuals and Quick Reference Cards. 23:01:56 Guess from the names which one gives you the detailed technical information. 23:02:26 um ... er... why that would be the ... um .... 23:02:57 then you have manufacturer doc, and ARM doc 23:03:36 ttmrichter: yes, there're no documents unlike mips 23:04:44 yunfan: you sound like a mips lover to me ? 23:04:55 tp: yes 23:05:13 I've never really looked at mips 23:05:14 i have 3 mips based device in my room :] 23:05:25 probably because my work ia in the really low end 23:05:46 what are they ? 23:06:07 wifi/router ? 23:06:22 right, if you go just a little higher, like routers, tv box, there're plenty of mips 23:06:48 and mips woul dhave good GCC support ? 23:06:53 a router with 64m ram , have openwrt installed 23:06:56 tp: Well, it turns out the information is scattered throughout the Architecture Reference Manual. 23:07:07 Except for the bits that are only in the Technical Reference Manual. 23:07:13 lol 23:07:20 a android table pc and a nanonote from qi hardware, which is the first open source hardware 23:07:24 Except for the other bits which are in your vendor-specific reference manual. 23:07:45 ... intimidating as they say 23:07:48 yunfan: Got a link to Qi hardware? 23:07:51 tp: Indeed. 23:07:55 But now at least I know where it is. 23:07:59 cool 23:08:01 ttmrichter: of course 23:08:13 your ARM-FU is getting stronger ttmrichter-san 23:08:28 It would be nice to have a reference TABLE for the opcodes, however. 23:08:37 The only one I found was waaaaaaaaaaaaay out of date. 23:08:48 ttmrichter: qi-hardware.com/‎ 23:08:59 ttmrichter: they provide fpga based box now 23:08:59 * tp sees some scathing ARM blogs being published in the future 23:09:04 http://qi-hardware.com 23:09:26 ttmrichter: and a guy of that org, are focus on bitcoin miner :] 23:10:16 http://imrannazar.com/ARM-Opcode-Map 23:10:40 At least that map shows me that the ISA is somewhat regular, albeit punctuated with a bit of weirdness. 23:10:43 Intel's is a major mess. 23:12:07 can an fpga program/reconfigure itself while it's running? 23:12:16 tangentstorm: No. 23:12:29 Not unless it has a CPU core of its own (hard, not soft core). 23:12:47 just wrote a email to chinese academy of science 23:12:49 ah.. hrm.. but you could stick two of them together and have them program each other, ping-pong style :) 23:12:54 hope could got response 23:13:03 tangentstorm: Possible. 23:13:56 ah well... getting ahead of myself. baby steps. 23:16:20 Oh, also, does anybody have a coherent description of the different ARM nomenclatures? Like how the ARM11 implements the ARMv7 architecture, etc. 23:16:33 I've been burned more than once by that confusion. :) 23:17:07 Sorry. ARMv6. 23:17:08 See? 23:17:12 It's all screwball. 23:17:27 you could surfing in the document sea of ARM 23:17:47 i bet there's a stackexchange for embedded stuff. 23:18:10 There probably is. 23:18:22 (tangentstorm)^^ 23:20:05 http://electronics.stackexchange.com/questions/tagged/embedded 23:24:34 OK, now I know why they don't provide an opcode table for Thumb. :-o 23:25:03 they want to sell that? 23:25:11 No. 23:25:16 Because they should be embarrassed by it. 23:25:54 why 23:26:02 10100, 10101, 00110, 10100, 01000100, 0001110, 0001100, 10101: These are all prefixes for ADD instructions. 23:26:20 Oh, there's a duplicate there. 23:26:21 Anyway, doesn't matter. You get the idea. 23:26:31 not duplicate 23:26:44 there is adds and add 23:27:01 which has some difference on whether update the carry flags 23:27:11 10101 is in the list twice. 23:27:31 and i cant understand why they dont use same length of these prefix 23:28:03 hmm interesting 23:28:06 yunfan: No, those are all ADD instructions, not ADD and ADC. 23:28:10 where did you found it? 23:28:28 maybe its an auto generated documents 23:28:48 http://www.agbdev.net/re-eject/ 23:29:24 i got 404 response from you link 23:31:00 Now in the 32-bit architecture there's only two ADD opcodes: 001 0100 and 000 0100 23:31:00 Far more regular. 23:31:20 Ah, sorry. I gave you the wrong one. 23:32:03 http://re-eject.gbadev.org/ 23:32:30 This is, of course, also badly out of date. (Thumb, not Thumb2, for example.) 23:33:15 for me , its just the target one :] 23:33:43 and the author ask people to email him 23:59:59 --- log: ended forth/13.06.20