00:00:00 --- log: started forth/12.06.02 00:04:15 --- quit: ASau` (Ping timeout: 245 seconds) 05:00:16 --- part: impomatic left #forth 06:49:52 --- join: ASau (~user@95-24-201-170.broadband.corbina.ru) joined #forth 06:49:52 --- mode: ChanServ set +v ASau 07:10:27 --- join: RodgerTheGreat (~rodger@71-13-215-128.dhcp.mrqt.mi.charter.com) joined #forth 07:10:27 --- mode: ChanServ set +v RodgerTheGreat 07:32:58 --- join: ttmrichter (~ttmrichte@122.228.67.12) joined #forth 07:32:58 --- mode: ChanServ set +v ttmrichter 08:38:07 --- quit: ttmrichter (Quit: Leaving) 10:01:43 --- join: tathi (~josh@dsl-216-227-96-10.fairpoint.net) joined #forth 10:01:43 --- mode: ChanServ set +v tathi 10:11:58 --- join: Monevii (~Monevii@adsl-64-237-234-175.prtc.net) joined #forth 10:11:58 --- mode: ChanServ set +v Monevii 10:12:09 --- join: Kumul (~Kumul@adsl-64-237-234-175.prtc.net) joined #forth 10:12:09 --- mode: ChanServ set +v Kumul 11:48:05 --- quit: phirsch (Ping timeout: 252 seconds) 11:49:16 --- join: phirsch (~phirsch@xdsl-89-0-157-201.netcologne.de) joined #forth 11:49:17 --- mode: ChanServ set +v phirsch 12:20:48 to follow up on my previous problem, tathi graciously assisted me. Turns out rp0 is a *variable*, not a constant, and I am a complete buffoon. rp@ does indeed obtain an address rather than an element. 12:21:16 just in case anybody else finds themselves with a need to scan their stacks 12:21:21 in gforth 12:42:47 hooray, finally some active talking here. 12:43:26 or not. 12:43:41 are all forth programmers so boooring? 12:43:54 I don't think I'm boring. :[ 12:44:02 sry, needed to make that "joke" 12:44:29 but then again I'm spending a saturday debugging a toy GC, so my set point may be off a bit 12:45:18 but in general, when it comes to that one forth programmer compares himself with another forth programmer. then the conclusion is, generally that forth coders don't function in teams. 12:45:32 which is also the problem of say lisp coders 12:45:57 we all work in our shiny tiny worlds, we focking perfectionists. 12:46:14 yeah, I'd say that more-or-less sums up why I like programming in Forth 12:46:36 finally you can oversee a "system" 12:46:40 I do most of my forthing in a VM of my own design, with a forth compiler of my own design 12:47:25 it might not all be perfect, but at least I am responsible for all the imperfections and I can make inroads against them unfettered 12:47:46 a couple of years ago I did also two forths, one was called bootforth(don't confuse that with the bootloader of freebsd) and gameforth, which was based on bootforth. at that time my nick in here was virl 12:47:55 cool 12:48:07 I have a guess as to what gameforth was used to write 12:48:17 exactly games. 12:48:35 forth seems to work remarkably well for writing games 12:49:00 it's one of the few languages that I could see myself both using to write a game engine and using as a scripting language 12:49:12 still trying, but my need to code it up in some grand design, hasn't fallen of. even after 1 year and 9 months of "professional" experience of coding. 12:49:33 RodgerTheGreat, exactly. 12:49:41 my perspective has mainly been that working in forth *forces* me to do things in a simple way 12:50:29 I like Java, too, but it encourages architectural astronautics. And increasingly it makes me miss having function pointers. 12:50:42 RodgerTheGreat, my current attempt at writing a game in gforth: https://www.gitorious.org/endofself 12:51:23 RodgerTheGreat, yes exactly, that's also my feeling about forth. making it simple, ZEN like, it could be called that way 12:51:39 here's my project: https://github.com/JohnEarnest/Mako 12:52:04 I've made a number of small games (tetris clone, pong, sokoban) and some increasingly complex things 12:52:22 at present I am working on an RPG about a vacuum-cleaner robot 12:54:24 you are much further, than I always was. but I guess, that is because I always went the low machine way. and as I see, you choose right a higher level language ( java ). 12:55:07 I tried to keep the design of the VM as simple as possible and not depend on many java things 12:55:35 another friend of mine has ported the VM to C with either an SDL or OpenGL graphics interface 12:56:26 I think the simplest example of a game I have is this crude "snake" implementation: https://github.com/JohnEarnest/Mako/blob/master/games/Worm.fs 12:56:49 I could probably factor it apart more 13:00:54 I saw, I was kinda overwhelmed, that it was that small code linewise. Well, my old code can be found here if you want to check: https://www.gitorious.org/bootforth 13:02:40 looks interesting 13:03:37 wait, the name "gargaj" sounds really familiar. Isn't he in the demoscene or something? 13:04:37 where did I wrote that? And indeed its a demoscener with whom I from time to time chatted. 13:05:00 in a comment in https://www.gitorious.org/bootforth/mainline/blobs/master/bf_stack.c 13:05:20 small world, I guess 13:06:02 I also tried once to create with another demoscener a demo in forth, but it never was finished, because of classical programming reasons. our knowledge of our diverged and essentially no one wrote documentation. 13:06:15 haha 13:07:06 I've wanted to try something like that, but I'm not sure I'm skilled enough with modern graphics hardware or low-level coding 13:07:13 ah yes, a cyclic stack. I was soo proud of it back then. 13:07:21 my command of C and most assembly languages is fairly weak 13:08:03 and all the important demoscene stuff takes place in Europe 13:08:13 my command of C is quiet ok, but far from guru state. but I haven't coded in it something in it from months now. 13:08:56 I gather that geography isn't a problem for *you*, but I live in the US. :) 13:09:18 I worked 9 months in a company, which wrote their stuff in C. after that I started as a ruby coder at another company. well, I like different languages in my tool belt. 13:09:39 my professional experience is primarily with Java and C# 13:10:16 but I've never coded in C# "for fun" because practically speaking I'd need to own a windows machine 13:10:45 RodgerTheGreat, yes I have the luck of living in europe and hungary is just around the corner. 13:12:10 java and C#, both languages I rarely touched. As it always wasn't a pleasure. The last real long time, I played with java was the time I learned programming in general. Java was my second language and after that I generally played around with more low level languages like forth 13:12:15 overall, bootForth seems like a pretty elegant way to bootstrap a forth system. Nice work! 13:12:46 in the last two years I played around with more higher level languages like lisp, ruby, perl, etc. 13:13:27 C# is a fairly nice language to work with for applications-level coding (where you're mostly gluing APIs together), but a bit kitchen-sink for my taste. Historically Java's designers were quite a bit more conservative about adding new features, but it's starting to bloat as well 13:13:48 thanks, I rarely hear complements about my code. So it is largely appreciated :-) 13:13:48 on the plus side they're both really darn fast these days thanks to improvements in JIT technology 13:14:26 or maybe also in evolution of hardware? 13:14:32 to some extent 13:15:19 I read somewhere, that the advancement of hardware is bigger in percentage as that which software optimization actually performs. 13:15:38 but on the other side, I can't recall the source. 13:15:52 seems a very broad statement 13:15:57 I think it's hard to say 13:16:13 there's still quite a bit of blood to squeeze out of modern compilers 13:17:09 architecture-level optimization is getting pretty close to the limits of what we can do while sticking to current ISAs and a von-neumann architecture 13:17:42 but we keep getting more transistors to play with 13:18:04 if backwards-compatibility isn't important we could do some very interesting things with silicon 13:18:26 Mr. Moore is providing some impressive examples of that with his latest forth machines 13:19:45 many of my colleagues seem to be primarily interested in compiling FORTRAN-90 code and getting it to run on an x86, though, which is somewhat disheartening 13:21:42 the colorforth forth system he punched out is also a great piece of forth code. but on the other side, it's really a masterpiece for unportability. 13:21:59 as it only works with some gfx cards, if I recall it correctly. 13:22:05 has he finished the native GA144 colorforth? 13:22:15 I read he started on it a few months ago 13:24:05 don't know. I haven't read the news of what he did recently. I'm at the moment slowly getting back into forth. Its more my "lisp". Lisp is really cool although, but it actually doesn't show the nuts and bolts. 13:24:36 forth does that. 13:24:45 yeah, I like many of the ideas of Lisp but the environment structure and GC are uncomfortably opaque 13:25:04 on the other hand it's for a lot of computing tasks nice to have a GC in the background. 13:25:53 I made a cons-pair system in my Forth dialect and rewrote a bunch of classic lisp routines for it- it's interesting to see how nicely some things work out: https://github.com/JohnEarnest/Mako/blob/master/lib/Algorithms/Pair.fs 13:26:50 when I have a GC I would like to say for some code "please turn the GC off now for that module" or whatsoever. The ada language looks also a bit interesting for me at the moment. Maybe I dig a bit deeper, just to know something which has a MIL-standard. 13:27:39 most of the GCs I've built use some sort of markers to delineate regions of memory that are "managed", and then have the rest be static 13:27:54 RodgerTheGreat, btw. a couple of people re-implement a GC in forth. someone once in this channel did that. 13:28:08 and also anton ertl, one of the gforth maintainers did that. 13:28:15 yeah, I think gforth has a GC module 13:28:38 I'm just tinkering with a very simple one to see if I can make one that is usable and fits on a page 13:28:45 I actually never built a GC. was always some kind of "magic", which I haven't wrapped around my mind fully. 13:29:06 I thought that too, but allowing for some caveats they can be remarkably simple 13:33:43 ok. maybe I dig into that. gosh, there are so much interesting things out there and so few time at hand. 13:34:01 I'm still in the process of debugging it, but here's the GC I've been thinking about for the past few days: http://hastebin.com/suxanuqike.txt 13:34:16 it accepts the following limitations at the moment: 13:34:22 1) it's pair-oriented 13:34:29 2) it uses bit flags to identify pointers 13:34:42 3) it uses a statically-allocated fixed (but arbitrary) sized heap 13:35:27 so obviously not *general purpose* 13:35:47 I was thinking I might use it to make a Joy implementation or something 13:36:58 ok, that simplifies it. so for what are trying to use it, when it's that non general purpose? 13:37:24 a simple functional language interpreter of some kind 13:37:33 could do a lisp if I wanted 13:39:04 it isn't horrendously complicated to extend this system to accept variable-sized allocation blocks 13:39:19 but for a lisp, pairs are sufficient for everything 13:43:07 yeah, atleast for a simple lisp. 13:43:50 trying to provide forth with "modern" language features in a clean way is interesting 13:48:46 as long as you don't write an if in a RPN way, its good ;-) 13:49:02 a lot of people do that after they touched forth 13:49:18 creator of factor did that 13:49:28 crc, did that with his retroforth too. 13:49:38 it's kind of elegant to express flow control with combinators like that 13:49:47 PostScript is the first language I saw work that way 13:49:52 but I really dislike that, for me its just wrong. 13:50:12 for conditionals, I find it easy to read. For loops, not as much 13:51:34 it's just my personal taste. I think that an if should be written if ... else ... or in forth if ... else ... then ... 13:51:55 fantazo: maybe if you keep programming in forth you'll be brain-damaged enough to agree with me. :) 13:51:56 I like the lisp way: (if ) 13:52:39 RodgerTheGreat, yes maybe. don't know, but I still think RPN is cool, but it should be used where it makes sense. 13:52:59 but if you use postfix, most of the time you don't need parens and otherwise you have the homoiconicity of lisp 13:53:40 rpn makes a *lot* of sense whenever you're doing something that can be expressed as a functional pipeline 13:54:27 with what do you mean a "functional pipeline"? 13:56:18 say you have a problem like this: http://projecteuler.net/problem=6 13:56:51 assuming {} delimits an anonymous procedure definition, you could solve that like this in Forth: 13:56:52 100 upto sum dup * 100 upto { dup * } map sum - . cr 13:57:00 also assuming some infrastructure 13:57:15 upto produces a lazy sequence generator 13:57:21 sum reduces that 13:57:43 map transforms a generator with a function 13:58:28 the runtime cost of that is of the same order as doing the calculation with loops and can be done with constant memory 13:58:44 the expression flows and is naturally read from left to right 14:00:19 hmm, ok. how do you generate that generator? so what is the definition of upto? 14:00:23 in a conventional ALGOL-derived imperative language an equivalent expression might read: square(sum(upto(100))) - map(upto(100), 'square()) 14:01:03 upto can make sense as a defining word- it's essentially an iterator 14:02:05 here's one way to build a system kinda like that in gforth: http://hastebin.com/foyohilema.txt 14:02:38 here's the system that can execute the example I gave: https://github.com/JohnEarnest/Mako/blob/master/lib/Algorithms/Feasible.fs 14:03:07 if you had a GC, both systems could be simpler, as the generators could just be referenced objects 14:03:46 and in fact Factor and Joy provide similar functionality out of the box 14:04:43 but my whole point was that in the RPN example it reads naturally from left to right. In an infix notation it's actually inside-out and backwards 14:05:23 perhaps an even better example is: 14:05:24 fibs { 4000000 <= } take-while ' even? filter sum . cr 14:05:55 give me the fibonacci numbers, up to 4 million, filter those to just the even ones, compute the sum 14:11:07 the generators are themselves lazy and the reducing operations like "sum" drive the evaluation, which means we can operate on infinite sequences this way 14:13:39 how do you implement the lazyness? 14:14:14 generators are essentially a function that has a stack effect like ( -- value? flag ) 14:14:23 in which the flag tells you if there are any more values 14:14:51 if you just have a sequence generator, it keeps track of what index it's at and returns false when it's done 14:15:07 so each time you call it, it updates its state and continues 14:15:27 now, you want a filter 14:15:38 so you give it a reference to a generator and call it as if it were a generator 14:15:55 it then progressively calls its predecessor until it gets a value that passes its predicate 14:16:18 if it finds a valid result, it returns it. If the predecessor returns false, the filter returns false 14:16:34 does that rambling make any sense? 14:17:04 kinda. 14:17:22 SICP talks about doing these sorts of things in the context of lisp 14:17:30 the syntax just works out even nicer in forth. :) 14:37:43 I never finished SICP 14:38:02 one of those books which I never really finished 14:40:57 And now MIT isn't using it anymore. ;) 14:41:29 so it must be dirt, right? 14:41:59 :) 14:42:09 I'm 100% for a IRC channel which says #forthgames, I mean there is a #lispgames so why not? 14:43:00 land of lisp is also one of those books. but it is a really cool one. 14:44:04 Because there's so much conversation here that we need to split the games talk out to another channel? 14:45:02 good point. i 14:45:21 I've started to write little games in Forth a couple of times. 14:45:31 what sorts of things? 14:45:32 But there is so much work to do before you get to doing any of the fun stuff... 14:46:27 my VM uses simulated graphics "hardware" that gives you a tile grid and sprites as a way around some of that unpleasantness 14:46:56 and my compiler knows how to inline sprite sheets as data so you don't have to read an image file format 14:47:07 Yeah, in Forth you have to do a bunch of work to interface to external libraries, and there isn't any one system that really works on Linux and Macs and Windows... 14:47:15 And different Forths do FFI different ways... 14:47:21 yeah 14:47:50 My cousin and I wrote http://jasonwoof.org/vor which I started porting to Forth at one point 14:48:22 And...have you ever seen the Flash game Jedi Trainer? 14:48:32 no? 14:48:57 2D, you swing a light saber with the mouse, and deflect the droids' blaster bolts back at them to kill them. 14:49:23 I liked the idea, but the mechanics of that one would have Newton spinning in his grave :) 14:49:27 from the gameplay video of vor it makes me think of a pacifistic interpretation of asteroids 14:49:41 Yeah, basically. 14:49:59 I think of it as being like tetris -- keep doing something pointless until you die. :) 14:50:05 I like it when shooting things isn't the solution to video games 14:50:17 And it's one-handed, so you can eat a sandwich at the same time. :) 14:50:24 that's a nice feature 14:51:12 And you die after a minute or three, so you can stop before you have used it to procrastinate for too long...really! :-P 14:51:14 ever played Yar's Revenge? I did a port of that: https://github.com/JohnEarnest/Mako/blob/master/games/Yar/Yar.fs 14:51:44 Sounds vaguely familiar... 14:51:55 it was a very popular atari 2600 game 14:52:07 written by the same guy who made the ET game 14:52:45 it was intended as a port of an arcade game called Star Castle, but had to be changed so much for the 2600 port that it was almost unrecognizable 14:53:19 yar's revenge is very cryptic to look at, but ultimately quite engaging and difficult 14:53:57 nice 14:54:41 there are a few details I got wrong and I've been meaning to go back and fix, but my version is fun to play 14:59:51 Hmm. I'd have to look at your library code to be able to read some of that 15:00:07 it is a somewhat nonstandard forth 15:01:01 Oh, I can follow most of the language stuff; it's more the graphics things I need more context for. 15:01:14 Like what tile! does 15:01:26 ah 15:01:42 that's defined in lib/Sprites.fs and sets the tile index for a sprite 15:02:27 Although come to think of it, I'm not clear what the curly brackets do... 15:02:32 I do have a crash-course guide to the VM itself: https://github.com/JohnEarnest/Mako/blob/master/docs/makoBasics.md 15:02:51 I use curly brackets to declare inline anonymous word definitions 15:03:13 they work like string constants in that they leave an address on the stack 15:03:41 Ah, that's one nice feature that Forth generally doesn't have... 15:03:56 yeah, I find that it's extremely useful 15:05:27 in the "play sound effect" methods I'm basically loading a piece of code that generates one audio sample into a vector and setting up some globals, and then there's a global routine that calls the function several times per frame and mixes it into the background noise 15:06:08 this game is set up to have a continuous background noise and one sound effect at once 15:06:24 more complex schemes... get more complicated. :) 15:07:55 --- join: Onionnion (~Ryan@adsl-69-215-132-97.dsl.milwwi.ameritech.net) joined #forth 15:07:55 --- mode: ChanServ set +v Onionnion 15:09:17 o/ Kumul 15:09:20 i wanted to make some forth games in a MUD, but everything i find turns out to be abandonware 15:09:23 heya Onionnion 15:09:57 Onionnion: if i chop you in half, will i cry? 15:10:13 Of course, Kumul 15:10:32 :(( 15:10:41 just that makes me cry 15:11:03 Onionnion, why? he hasn't chopped then one onion, just took out two onions out of the containing net. 15:11:42 he needs to chop a 4th of you to actually chop an onion 15:11:50 sry, just some mind fart. 15:12:08 there is no avoididng crying while chopping onions 15:12:10 Kumul: yeah, MUSHes used forth as a scripting language, right? 15:12:20 or was it dikumuds? 15:12:24 lol 15:13:22 * Onionnion is on Windoze 15:13:23 RodgerTheGreat: mush used its own language, but i dont know, i didnt try 15:13:27 please don't hurt me for it D: 15:13:43 winforth is fantastic, if only there was something like that for X 15:14:05 I just use windows for Steam and a couple other things 15:14:14 i would too 15:14:23 primary is always Linux 15:14:39 i would preffer using VM's for everything 15:14:54 oh and I figured out how to fix the flash problem I had where the video was hued badly 15:15:03 just turn off gpu acceleration 15:15:05 ?? 15:15:24 worked right away and never crashed again lol 15:15:39 nice thing about OSX is having a proper unix shell and also being able to run Steam 15:15:54 Steam is coming to Linux, as well as the Source engine 15:15:58 it's confirmed 15:16:00 that's true 15:16:13 can't wait until it comes out 15:16:30 what game(s) are you really looking forward to? 15:16:46 only game I 15:16:50 or just looking forward to not switching machines all the time? 15:16:54 I'm looking forward to right now is Dust514 15:16:59 I have dual boot 15:17:25 that's logically equivalent to switching machines 15:17:56 but have to wait for reboots, and windows will never compare to L/Unix boots 15:18:46 just putting this out there: Humble Bundle 5 is out 15:18:54 I got it 15:18:57 this bundle *rules* 15:19:03 I know 15:19:22 I was really excited to try Sword & Sorcery EP 15:19:25 but the Bundle has a poor history with linux 15:19:28 it's reallly good 15:19:44 I feel like it would be a lot better on a tablet 15:19:45 it's a beautiful game and play it with a good headset 15:19:50 the mouse support is kinda crummy 15:19:59 but it is gorgeous, and I really like the soundtrack 15:20:10 yeah not explained very well at the start lol I was confused 15:20:20 not explained at all 15:20:29 tapa-tap 15:20:40 and I feel like there could've been more stuff to interact with 15:20:48 yeah 15:20:55 very good atmosphere but the world feels very sparse 15:21:21 but Amnesia, I already know everything about it but can't play it. I don't handle horror well. I just really wanted to mess with the custom story creation tools aha 15:21:37 S&S is not my all-time favorite but I appreciate the effort that went into it and I think it's worth experiencing 15:22:03 I love the mid-game breaks, perfect timing for bathroom 15:22:20 I might give Psychonauts a spin later this evening 15:22:28 always wanted to try that but I never had a console 15:22:56 love how they ported it for the bundle 15:23:19 in some cases I believe they built a binary package using wine 15:23:28 they did that for S&S I think 15:23:35 yeah 15:23:44 for a lot of bundle games they didn't fully port 15:23:52 which honestly really annoys me 15:23:56 but as always, totally seamless install and play experience 15:24:10 I've had some troubles 15:24:24 the humble bundle guys do a better job than most boxed software 15:24:30 on linux? 15:24:44 eh just some package issues 15:24:49 just me things that no one else had lol 15:24:59 well linux is the most challenging OS to roll a binary distro for 15:25:36 perhaps one day I'll be able to put one of my games in a humble bundle 15:25:43 but this really annoys me: for almost every 64 bit version of a game I have downloaded from the bundle, it had to download all the 32 bit packages 15:25:50 with forth source. :) 15:26:04 I don't understand why D: and what game are you making? 15:26:35 well right now I'm mostly doing small things, but working my way up 15:27:06 I've been slowly fleshing out the game design for a survival horror RPG of sorts 15:27:12 I like playing with engines like UDK, but ever since they added all the little super special effects I can barely use it 15:27:30 I have an idea for a horror, and I think I'd do it best with amnesia as a custom story 15:27:35 shorter term, I'm making an adventure game where you play as a vacuum cleaner robot 15:27:43 best 15:27:43 game 15:27:44 ever 15:27:59 you're in an underground lab with all sorts of intrigue and action surrounding you 15:28:04 but none of that is your concern 15:28:12 your job is to make the floor shiny 15:28:39 why does xchat not transfer the money I am throwing at my screen? 15:28:48 http://i.imgur.com/ObWDw.png 15:29:16 I spent a couple hours this morning working on sprites: http://i.imgur.com/26vPd.png 15:30:17 nice 15:30:24 what software do you use to create those 15:30:37 on OSX I use a pixel editor called Pixen 15:30:52 it looks like a gb game 15:31:03 Kumul: that's sort of the aesthetic I'm going for 15:31:08 perhaps an SNES 15:32:02 hey, more work for you 15:32:16 I know someone can easily create pixel art with ms pain (pre-vista) by zooming in lots 15:32:27 when I'm working on a project by myself I have to sort of pick a balance between sophisticated graphics and something I can actually *finish* 15:33:25 start small, NES like then 15:33:29 yep 15:33:50 you need java to run that right? 15:33:57 yeah 15:34:28 runtime/VM is a couple hundred lines of java, and then the games themselves are written in Forth 15:35:07 if you don't have Java a friend of mine did make a compatible C-based runtime: https://github.com/pikhq/cmako 15:35:44 but my compiler is written in Java, so you'd need a java machine to build the games from source 15:36:59 is java hard to compile? 15:37:10 oh nvm then 15:37:43 it's one of those things that I'm gradually improving 15:38:20 so far I'm the only person who's ever made games for the platform, so I've never needed to think about porting my devtools to C 15:38:48 Onionnion: i used to make a couple of icons for byond, its sort of like mspaint, not that hard if its a small enough size 15:39:22 I use mostly blender for any art 15:39:54 oh, if you dont know what byond is, google it 15:39:56 it's difficult to do 3d modeling in MSPaint. :) 15:40:08 its impossible! 15:40:40 you could do it in slices and then use a voxel 3d engine 15:40:49 but it would be unbelievably painful 15:43:05 hmm..in windows, Geany or Notepad++? 15:43:15 gvim 15:43:46 I've used Textpad when I was stuck on Windows 15:43:50 so RodgerTheGreat you will do only VM based games 15:44:03 I've never gotten used to vim 15:44:11 Nano is simpler lol 15:44:13 fantazo: well, it makes it a lot easier 15:44:37 i've been looking to thrash vim as well, but i rarely use it nowadays 15:45:16 geany is more lightweight 15:45:26 fantazo: and I get cross-platform support for "free" 15:45:43 I mean, compared to ++ 15:46:01 with the right library support I suppose there's no reason I couldn't do more sophisticated things with a forth that generated native executables 15:46:36 it would be faster, although most of what I've done so far hasn't really needed speed 15:47:01 MakoVM will run most of my forth games acceptably on a cheap featurephone with the J2ME runtime 15:47:29 mainly I guess having full access to OpenGL could be useful, but that also drags in a lot of complexity 15:48:22 one reason I've been playing with gforth lately was to sort of experiment with how painful that would be 15:51:52 RodgerTheGreat, interesting... as I experiment at the moment with SDL, Opengl and gforth 15:52:18 but I try to implement some abstraction layer for a game engine. 16:13:40 well, what sort of abstractions have you thought about providing? 16:13:59 not much yet. early stage of development. 16:14:09 just toying around at the moment. 16:14:22 to see if gforth is capable of doing that. 16:14:30 = does the FFI work 16:14:50 prototyping is the best way to turn vague ideas into concrete ones 16:21:51 a DSL for describing text adventures is also what I'm interested into at the moment 16:22:05 cool 16:22:11 something like Inform? 16:24:31 yeah into that direction, but I think that is too much work 16:25:09 you could probably strip it down quite a bit since you still have access to Forth for things like logic 16:27:01 yes, that would be interesting. 16:27:29 also I would like to finally being able to finish a game. 16:27:36 basically the part of inform you want is the OO model for containers and attaching descriptions and synonyms to things 16:27:52 my best advice for that is to start very. very. small. 16:28:30 figure out something you can do in a few days. Then cut it in half. 16:28:49 how small is small, to be still enjoyable? I mean a wrote a loooong time ago a small clone of a game written in C in forth 16:29:22 in a few days then cut it in half? 16:29:43 cut the featureset in half, not the time 16:30:15 I can't imagine something which I can do in a couple of days 16:30:51 could you make this in a couple days? http://www.albinoblacksheep.com/games/dolphin 16:30:56 a script yes, for doing some nice things in perl / ruby. but not something like a game in forth. 16:31:09 maybe its my inexperience with gam writing :-/ 16:33:26 nice small game. even with some sense of humor to it. but actually ... I guess I think I couldn't do that in a week. 16:33:51 really? What would you have trouble with? 16:35:02 animations code. sound code. maybe in pygame. I think not in C. 16:35:30 ok, then do it in pygame 16:35:42 you have to start somewhere 16:36:06 it's like programming in forth. Remember how hard it was to keep track of the stack when you first started? 16:36:27 every forth expression is a little puzzle, but every time you read one you get a little better at solving them until it's easy 16:37:45 and when it comes to native forths. then it is the question, which forth do you use, which implementation has a C interface 16:37:55 and how does that now work with the SDL thing? 16:39:14 I think you're trying to solve every problem at once 16:45:22 maybe... 16:45:25 don't know 16:46:48 I mean, you could try using my tools if you want, but really you just need to find a way to read keyboard keys and put graphics on the screen that you're comfortable with and then start experimenting with it 16:47:13 if you've used Pygame before maybe that could be good for you 16:47:46 I did and I didn't finish any game with pygame too. 16:49:14 maybe try starting with an existing game and extending it? 16:51:48 find a really simple open-source game, read it and understand it, and then try to add features 16:54:29 fantazo: Lisp programmers work just as fine in teams, you just don't see it on internet. 16:55:06 presumably because they're too busy being inhumanly productive> 16:55:09 ? 16:55:21 Something like that. 16:55:29 You can do really heavy lifting in CL. 16:56:19 Which is completely different from what you can do in such languages as C and Forth. 17:01:36 you can do heavy lifting in Forth too, if you write it properly 17:01:56 granted, for the words that form the core of what you're doing, you'll want to write them in assembler for speed 17:02:04 probably CL can do more heavy lifting than say ruby.... too, right? 17:02:13 you generally have to build up some infrastructure 17:03:08 there's a saying that goes something like "Writing complex applications in Forth is impossible. You use Forth to write a language to express your problem, and then use that language to write your application." 17:04:27 DocPlatypus: ever tried your "writing it properly"? 17:05:20 actually, yes 17:05:48 my assembler language programming really sucks so the speed is easily a factor of 10 slower than what it could be 17:05:52 And how do algorithms involving matrices and higher-dimensional arrays look? 17:06:23 Or do you just encode them with locals? 17:07:04 I do use locals a lot, though if I can find a way to write readable code without them that doesn't look like it took a trip through a trash compactor, I rewrite it that way 17:07:39 I'm a stickler for commenting the hell out of my code 17:07:49 Another serious problem is implementing local environments and closures. 17:08:04 even if I were to rewrite something in assembler, C, whatever... I'd still keep the original version in Forth as a reminder of what that asm/C/etc code is supposed to do 17:08:11 All Forth code I have seen so far uses global variables. 17:08:42 I haven't really profiled GNU Forth to see just how slow its locals code is 17:09:35 Even putting compiled code speed aside Forth has serious problems. 17:09:55 ASau: I have to ask... if you are so anti-Forth, why are you in here? 17:10:12 because off and on I've seen the same thing out of you, time and time again, for years 17:10:32 global variables are not intrinsically bad, and Forth has mechanisms for controlling scope, such as shadowing and vocabularies 17:10:41 and if I remember right, you're the reason the channel was made +m, specifically because of your dubious rants 17:10:51 RodgerTheGreat: no, you're wrong. 17:10:59 Global variables are really bad. 17:11:16 boy, my argument has been skewered 17:12:04 Once you buy into global variables you go slippery path 17:12:05 that leads you fast into state where you cannot fix your code to 17:12:05 become reentrable. 17:12:24 (Without introducing "smart" hacks.) 17:12:28 I use locals unless I really need something to be global 17:12:55 --- quit: phirsch (Read error: Operation timed out) 17:12:57 Local arrays are particularly nice. 17:13:08 I still need to get the hang of wordlists 17:13:26 and a few other finer points of Forth 17:13:29 Ah, wordlists... 17:13:30 it has something todo with lists, so it must be nice. ( lisp fetish detected ) 17:14:16 Wordlists are another "smart" hack Forth employs due to lack of stable grounds. 17:14:37 ASau: how about answering my question. why are you in this channel to begin with? 17:14:55 How about telling us why are you on this channel? 17:15:08 because I like Forth and I program in it some 17:15:23 apparently you're just in here to bash Forth and rant 17:15:41 maybe we should join #lisp and fuck the hell out CL 17:15:44 And I'm here because I know Forth and programmed in it a lot. 17:15:49 that's most of what I've seen from you. and if you don't believe me I can pull the last four years' worth of IRC logs from the time I've been in this channel 17:16:17 Thus I can give some people good advice not to waste their time when they really don't need Forth. 17:16:35 ASau: I can't remember the last time you've recommended that someone use Forth 17:16:36 i don't think people generally choose forth because they need it ? 17:16:38 I'm longer on this channel than you. 17:16:48 "don't waste your life with forth, kid" ... 17:17:01 ASau: you know what, I don't give a damn. I think going back four years is enough to get an idea what you're about 17:17:04 kulp: some people do think that Forth can boost their performance. 17:17:15 kulp: in particular, this is usual Forth propaganda. 17:17:25 I've been banned from some channels longer than four years, as crazy as that may sound 17:18:57 I program in Forth because it is fun, refreshingly simple, and grants me a great deal of flexibility. I enjoy working with a system that exposes all of its internal workings. 17:19:08 programming language propaganda, so what? 17:19:40 someone might accidentally have fun ! 17:19:44 CL has its propaganda too. scheme has it also and? lisp coders aren't any bit better. 17:19:49 --- join: phirsch (~phirsch@xdsl-89-0-157-201.netcologne.de) joined #forth 17:19:50 --- mode: ChanServ set +v phirsch 17:19:51 what sold me on Forth was immediate mode. that's something BASIC had, that most languages don't really allow today. it's write, compile, run, find bug, swear, fix bug, compile, run, find bug, swear, fix bug... 17:19:54 kulp, right. 17:20:11 DocPlatypus: are you sure that's enough swearing 17:20:42 DocPlatypus, now the obvious lisp coder would say, that each lisp has a REPL too.. 17:20:49 (or ... run, look for bug for hours, swear, swear again, chug beverage, look for bug some more, swear, find bug, swear, fix bug ...) 17:21:04 kulp: ^ 17:21:05 RodgerTheGreat: how long are you programming in Forth and how complex are your programs? 17:21:11 forth also emphasizes breaking problems into small pieces and using the simplest possible solution. I've found that using forth extensively has changed how I write code in other languages, for the better. 17:21:25 That's common in any languages. 17:21:27 DocPlatypus: that seems about accurate ;) 17:22:08 some languages encourage it more than others 17:22:13 The problem is that Forth belongs only to few of those who 17:22:13 cannot say anything besides this general principle. 17:22:55 I've been programming in Forth for close to two years. I've built self-hosting forth systems, garbage collectors, DSLs for doing mathematics and solving project Euler problems and I've written a number of fairly sophisticated video games. All of this was fun to do and made me a stronger programmer. 17:23:08 kulp: some languages provide more powerful ways of program composition. 17:23:16 i've written half an implementation :( 17:24:58 I've mainly written fancy calculators and a program to deal poker hands 17:25:13 and a stopwatch/timer that I might, surpisingly, release 17:25:19 cool 17:25:34 I actually use that stopwatch/timer on a regular basis 17:25:48 but it does need improvements 17:26:19 do people write GUI frontends for forth programs 17:26:23 and in what 17:26:34 toolkit i mean. 17:26:39 DocPlatypus: does it run on a desktop, or an embedded device? 17:27:16 RodgerTheGreat: as written, it runs on a desktop. however, I just need to change a few lines of code to get it to run embedded 17:27:18 kulp: I doubt that. Designing and writing a good toolkit isn't easy. 17:28:21 ASau: i was talking about using toolkits, not writing them. 17:28:39 --- join: pyrofreakpenguin (~jshiebel@70-88-245-53-ma-nh-me-ne.hfc.comcastbusiness.net) joined #forth 17:28:39 --- mode: ChanServ set +v pyrofreakpenguin 17:28:49 kulp: Of course, some do. 17:29:08 ASau: well thank you for answering the less interesting half of my question in the least interesting way possible ! 17:29:19 On some devices there's no other way to interface to humans than graphics. 17:29:38 (Palm and PocketPC.) 17:30:36 : ?# ( d -- d ) 2dup d0= if bl hold else # then ; 17:30:43 one of my gems from the stopwatch/timer program 17:32:03 print a double-width number if it's nonzero and leave it on the stack? 17:32:20 No. 17:32:36 That's just a way to justify right. 17:32:38 the context it was used in, is to print a two-digit number in two spaces 17:32:46 ah 17:32:58 I don't use the formatting words much 17:33:13 ( other code ) clockprecision .ms 2drop s>d # ?# 9 bls-hold ( other code ) 17:33:39 okay, let me back up a bit 17:34:05 This is weird. 17:34:06 the program can be set to display either a neat time with no leading zeroes, or the full time 17:34:35 0d 00:00:00.000 would be full time with leading zeroes... without, it would be leading spaces until the last 0.000 17:35:02 ?# happened to be what some of the code factored into 17:35:35 and yes, some of this code probably needs rewriting, badly 17:36:19 for an embedded device, I'd probably cap the time at an hour (not bother including the code that can show hours or higher) 17:38:14 depends on what you have for a display, too 17:38:14 my next project will be a program to automatically grab just the words required by another word... which may or may not be written in Forth itself. the intent being to publish the minimum needed to run something 17:38:47 hm. Not too bad if you're working with threaded code 17:38:47 Note how standard C code is easier to read here, by the way: 17:39:04 yeah, if I have a half-digit for tens of minutes, then that would be a limit of 20 minutes 17:39:10 well, 19:59.999 17:39:23 printf("%d %2d:%2d:%2d.%3d", days, hours, mins, seconds, frac); 17:39:31 We know what format strings are, ASau. Note also that the standard C code is interpreted at runtime. 17:39:53 And of course Forth doesn't. 17:39:54 Ha-ha. 17:40:28 okay... now my code has a mode which does this: 17:40:39 (assuming fractional seconds are turned off) 17:40:50 less than a minute: 59 17:40:55 less than an hour: 59:59 17:40:59 less than a day: 23:59:59 17:41:02 all right justified 17:41:25 ASour imo 17:41:28 now how the hell would you write *that* in C, in easy-to-read form? 17:41:51 How would you write that in Forth in _easy-to-read_ form? 17:42:05 make a DSL for printing times 17:42:06 my example is probably not the best, but gets the job done 17:42:17 then use it 17:42:19 You assume that all your "# ?#" is easy to read, while it isn't. 17:42:25 i've got some C formatting code that i'm pretty sure would be better in forth 17:42:28 i'll show you 17:42:35 someone can fix it ;) 17:42:45 in fact... rethinking this, I have an idea how to rewrite it 17:42:48 https://github.com/kulp/tenyr/blob/master/src/asm.c#L63 17:43:03 ASau: the equivalent C would look like Sanskrit by comparison 17:44:16 You assume that *printf family is the only way to format text. 17:44:31 But it isn't. 17:44:54 the formatting vocabulary isn't the only way to format text in Forth. 17:45:07 Sure. 17:45:10 sure it isn't... but C does not have anything like pictured string output 17:45:11 you could give Forth format strings if you wanted to 17:46:45 If you want Forth-like formatting facility in C, it takes fifteen minutes to implement it. 17:47:08 If you want C-like formatting in Forth, you're welcome to port snprintf(3). :) 17:47:23 And simulate stdarg somehow. :) 17:47:53 so basically your argument is that C has libraries which have not been re-implemented in Forth, therefore C is a better language than Forth. 17:47:58 Or pass parameters in a really non-natural way. 17:48:38 RodgerTheGreat: exactly. welcome to The ASau Zone... it's 100 miles past the Twilight Zone, take a left 17:48:51 RodgerTheGreat: it is possible to implement complex libraries in C, the absense of those for Forth casts serious doubts. 17:49:40 it's possible to build pyramids with limestone. Steel I-beams have never been used to do the same thing, so I think limestone is a superior building material 17:49:53 ^ 17:50:17 RodgerTheGreat: exactly. 17:50:34 That's why you see complex code in C but not in Forth. 17:50:43 RodgerTheGreat: LOL 17:50:53 ASau: that went completely over your head, btw. 17:51:14 No, that went completely over _your_ heads. 17:51:15 ASau: he was being sarcastic. and you *completely* missed it. 17:51:51 You assume that Forth is so superior to C that large constructions are not built in Forth. :) 17:51:56 Which is really funny. 17:52:35 Ever tried to check which language the software that sends your messages into the Internet is written in? 17:53:12 my paychecks are made up with java 17:53:18 therefore java is the most important language in the world 17:53:32 Yes, Java is. :) 17:53:52 ASau: why are FedEx's portable terminals not programmed in C? 17:53:54 i'm glad we had this talk. 17:54:16 DocPlatypus: where is your FedEx and where is Oracle? 17:54:42 not sure where you're going with that question 17:55:03 Also, check whether new terminals are really programmed in Forth. 17:55:49 Yeah, I was under the impression that FedEx ditched Forth a while back, though I never tried too hard to confirm that. 17:56:45 It is really funny when everything you can bring up is memories of the past. 17:56:51 http://pages.cs.wisc.edu/~bolo/forth/ 17:57:02 "The new generation of FedEx package trackers (the ones that look like scan guns) use Forth as well." 17:57:18 Carrier IQ uses/used Forth... not one of the examples I like to cite 17:57:20 but it's there 17:58:08 Yeah, right. and pForth is written in Forth. :D 17:59:19 Not to mention completely non-official reports that they 17:59:20 had to invest some time in fixing the said pForth. 17:59:27 (Famous quality of Forth software.) 17:59:51 not like C and it's reputation for not having buffer overruns 18:00:19 Do you know why noone hears about buffer overruns in Forth code? 18:00:38 and in fact, a huge number of vulnerabilities in C applications in the wild come from format strings 18:01:03 Sure. 18:01:13 But C does address the issue while Forth doesn't. 18:01:49 Check the existance of snprintf and lack of anything that reports overrun of pictured output buffer. 18:03:36 Also, noone hears of vulnerabilities in Forth code because noone uses Forth code there. 18:04:50 if I understand your argument correctly, the popularity of a programming language is directly correlated with the quality of the language, right? 18:05:22 In some sense, yes. 18:05:37 People don't accept languages that are hard to program in. 18:07:10 so C is objectively a better language than, say, Common Lisp, on the basis that many orders of magnitude more code has been written in C than in Common Lisp 18:07:43 Note that target group consistsing of professionals takes different notion of what is harder. 18:08:43 That's why several high-professional people don't use C when doing heavy lifting. 18:08:48 (When they have choice.) 18:09:14 RodgerTheGreat: of course it is, and McDonald's is better than Fuddruckers too because they've sold more burgers 18:09:19 (obviously, I'm kidding) 18:09:44 So now you're saying that if programmers like a language it is irrelevant how popular the language is 18:09:52 No. 18:10:07 Consider Forth audience. 18:10:16 So C is objectively, measurably better than Common Lisp as a language 18:10:46 There's only one professors (in TU-Wien) who is pushing something there, 18:11:10 all others are mostly old-timers stuck with Forth for business reasons. 18:11:23 Now consider Scheme audience. 18:11:40 There're several prestigious universities using it, 18:11:58 with research work done in it, and so on. 18:12:01 (argument from authority) 18:12:16 No, that's not "from authority." 18:12:38 You can go to LtU and check how frequently PLT is mentioned there, 18:12:48 then you can compare it with Forth. 18:13:11 Alternatively, you can check publications directly. 18:13:29 You just said you aren't arguing based on an appeal to authority and then you said I should read what a popular website says 18:13:38 for god's sake you could at least be consistent 18:13:46 Go and check refereed publications directly then. 18:14:33 LtU is aggregator. 18:15:07 If you value your time, you just go and read what is currently of top interest in research, 18:15:21 so that you don't wander through publications yourself. 18:36:51 an interesting article from a veteran research in programming languages: http://tagide.com/blog/2012/03/research-in-programming-languages/ 18:37:20 --- quit: tathi (Quit: leaving) 18:38:12 my favorites: 1. “…one striking commonality in all modern programming languages, especially the popular ones, is how little innovation there is in them!” 18:38:13 2. “…there appears to be no correlation between the success of a programming language and its emergence in the form of someone’s doctoral or post-doctoral work.” 19:09:40 --- quit: ASau (Ping timeout: 245 seconds) 19:15:59 how convenient... he ping timeouts 19:18:25 DocPlatypus: maybe constructive discussion may now continue? 19:18:44 sure 19:18:49 lol 19:38:51 anybody ever had a chance to read "Scientific Forth"? 19:39:34 all the descriptions of it I've found online are intriguing, but it's out of print and used copies are hard to come by 19:40:09 oh hey, the used copy on amazon is only $515.92 today 19:58:55 ASua is hilarious. I suppose he would read "top topics in research" and skip Knuth's "Art of Computer Programing". :P 19:59:41 regnirps: but "top topics" in research, especially looking at frequency, is very misleading 20:00:44 It is worthless of course. A young physicist would check top topics and pick the dead end of string theory. 20:02:01 Top topics are things to avoid if you ever want to make progress or a name for yourself in science. Who wants to do research in a large pond? 20:02:16 no kidding 20:03:16 One would look at cognitive radio and see an absurd number of papers. Now, it is an area of interest but large portions of that work are needless repetition and minor, insignificant tweaks to the same formulations 20:03:33 pyro should know 20:03:44 It is like the constant begging for breast cancer research money. Just how many top notch researchers do they think there are? And how many want to work on the same think as the other top notch researchers? 20:04:48 and there's actually a reasonable amount of research involving concatenative programming languages, they just don't say "Forth" 20:04:57 So they get money and eventually are feeding the bottom the pyramid - the petri dish watchers and cell counters making up grant ideas to lower their teaching load. 20:05:11 because the emerging languages are things like Factor and Joy, which were inspired by Forth 20:05:38 I think for the time being, python has won. 20:05:54 in terms of popularity as a scripting language? 20:06:14 Huge amounts of science and physics and emngineering with great numerical and graphics packages. It is being used everywhere. 20:06:38 I don't think Forth was ever really about having marketshare. It's a set of ideas and attitudes toward solving problems 20:06:43 NumPy PyQT PyPhy etc etc etc 20:06:59 has anyone published "Python Considered Harmful" yet? 20:07:11 that's why so many forth programmers write their own dialects 20:07:21 it's a toolbox 20:07:35 forth is basically a dictionary and two stacks 20:07:46 a simple calling convention and RPN 20:08:15 Like OpenBoot. It was great but basically one guys idea and faded away even though adapted for a while as the preferred Unix boot system at SUN and Apple and standardized. 20:08:28 yeah 20:08:32 Official standards seem to kill Forths. 20:09:38 Mitch Bradley IIRC. I interviewed with him a couple times at SUN when OpenBoot was new and turned it down. 20:10:07 hm 20:11:08 I knew him from Silicon Valley FIG. But I was interested in other things at the time - working for Raskin on Canon Cat and EDDE, etc. 20:11:24 I think it would be nice if more compilers courses took a week to talk about Forth, if only because it would sort of dispel the notion that compilers are massively complex, onerous things 20:12:03 when really the complexity is an artifact of the language you're translating and the degree to which you're willing to bend over backwards for automatic optimization 20:12:32 The FIG 65C02 assembler by Bill Ragsdale would be perfect to look at after they master ITC and understood words that create words that create word that create code. 20:13:32 Full assembler with if else then in a couple pages. Maybe 4 blocks I think. 20:14:02 yeah 20:15:02 Once I understood that I could do anything. I made a floating point library that uses the AMD9511 chip and used the methods from the assembler to write most of the code for me. 20:15:22 that's the real value of forth 20:15:39 when you solve a problem in forth, there 20:15:46 is no magic anymore 20:16:05 and nothing's scary once you know it can be done in forth 20:17:03 I'm using python for apps now on embedded Linux. It is a lot like having a Forth with all the work done already and just the high level words available. 20:17:47 python really rubs me the wrong way 20:17:59 Very few lines of code to do a lot and pretty logical. They call it "Pythonic" if it is done right and it is a lot like the philosophy of Forth. 20:18:39 Like these jackass latecommers who think they discovered "refactoring" and "Extreme Programming". 20:19:07 I think it's hilarious that what other programmers call "refactoring", we just call "factoring" 20:19:34 it's not a way to improve code later, it's how you write the code in the first place 20:19:35 RodgerTheGreat: agreed. you know, seeing "refactoring" has me thinking of refried beans for some reason. 20:19:36 But, so far Pythonic libraries or bindings to C++ libraries tend to work for me without having to look up very much. 20:20:22 DocPlatypus: I ate taco bell today and it was delicious 20:20:41 their food, not a restaurant, naturally 20:21:01 It has enough cool features that I can imagine using it to write a Forth metacompiler that spits out a forth in native code. 20:21:30 it would be cool to write a FLAC decoder, and maybe Ogg and Vorbis libraries, in Forth, just to show it could be done 20:21:40 I know, I'm mad 20:21:42 that's roughly what my Java-based forth compiler does, except it happens to target a VM rather than an actual CPU 20:21:53 I like subroutine-threaded code 20:22:13 The only think missing from Python is a pointer to the beginning of any structure and a fetch. 20:22:16 DocPlatypus: crazy like a fox 20:22:35 ITC is faster than subs on ARM. 20:22:53 Inner interpreter is 2 instructions. 20:22:59 hunh 20:23:12 I would like to see GNU Forth rewritten to run in a Java VM... that would be slick 20:23:15 is it smaller than thumb? 20:23:24 or better yet... a Forth scripting language for webpages to replace Javascript 20:23:31 DocPlatypus: unfortunately I've looked into it a bit 20:23:41 You can use thumb either way. Thumb is expanded to 32 bites in the CPU anyway. 20:23:46 the JVM imposes some clumsy constraints 20:23:56 you could do it, but not very efficiently 20:24:12 RodgerTheGreat: as long as they don't involve a unified floating point stack 20:24:23 ugh... I don't know who thought that would be such a great idea 20:24:38 Can't use unified stack. Code isn't portable at all. 20:25:02 main problem is the preverifier ensures that there are no two code paths through bytecode with different stack effects 20:25:18 Silly idea based on an erro in the ANSI docs that say FP stack is implemetors choice. 20:25:31 so you'd have to make every word a separate function in a class, and you'd have to have a global data structure for the stack 20:25:53 and you wouldn't be able to do goofy crap with the return stack easily, which is too bad because occasionally that stuff is useful 20:26:22 In a JVM you would have no access to system hardware. Userland only. 20:26:29 weeeelll 20:26:40 good point 20:26:54 there are implementation defined APIs that let you access memory directly, and there's JNI 20:27:13 True. More layers bothers me. 20:27:17 the standard, portable Java API doesn't come with anything 20:27:50 you could certainly make a forth-like language that ran on the JVM, but some liberties would be necessary 20:28:13 for the things the JVM is good at Factor is sort of already winning on that front 20:28:15 Spoiled by AIM-65 and Apple II where Forth was the operating system and I controlled the WORLD! 20:28:15 I really wish something like GNU Forth's utime was standard 20:28:41 DocPlatypus: enlighten me 20:28:48 what utime does, is return a double that's the system clock to the nearest microsecond 20:28:55 I only need millisecond, really 20:29:22 I want the time to put my basic Forth-79 on ARM7 ARM9 ARM11 A8 and A9 and see what it can do as the only thing running. 20:29:25 the cool thing is, if they did not give us the word "ms" we could implement it with utime 20:29:46 www.anadammer.com basically everything here. 20:30:09 1GHz 32 bit running native Forth should be fast enough for the hardest real-time. 20:30:25 sounds pretty badass 20:30:39 : ms ( n -- ) 1000 um* utime d+ begin 2dup utime < until ; 20:30:42 something like that, I think 20:30:58 Chuck Moore did software video capture on shboom years and years ago. 20:31:13 I have read about that 20:31:13 www.andahammer.com 20:31:14 granted that would peg the CPU. you need some kind of sleep primitive in there to avoid that 20:31:56 but on any embedded Forth system I make, I will have a millisecond clock and implement ms that way 20:32:06 much easier 20:32:13 Composite video is pretty slow compared to todays processors. I needed 7MHz to get a good lock on the edge of a video line in 1990. 20:32:23 well, standard definition is on its way out 20:32:39 most stuff will be HD in the next few years 20:32:50 DocPlatypus: pre-emptive multitasking is for sissies. Real programmers do it cooperatively. 20:33:44 I think I will have a 4 core 1.4MHz ARM from Samsung shortly. Takes a 10 layer board at the moment. It will be tough to simplify enough to get yield up. 20:33:49 is there any proposition for a pause word with finer granularity than milliseconds? 20:34:06 has somebody tried building a contiki-style standalone portable OS in Forth? 20:34:17 "contiki-style" ? 20:34:24 Ouch! Granularity? Sorry, sore point with word usage :-) 20:34:49 http://en.wikipedia.org/wiki/Contiki 20:35:11 regnirps: as in, a micro-second or nano-second pause... like "us" or "ns" 20:35:18 as I recall it is written in an odd dialect of C 20:35:29 Anything on Linux/GNU has poor time resolution and rather course. 20:36:00 nice 20:36:28 I go to uC/OS-II for reliable real-time. 20:36:47 regnirps: when I used GForth 0.6.2, ms was terrible, it was written to use select... I submitted a better version 20:36:48 It is medical and flight qualified. 20:37:49 regnirps: so, what will this 4-core ARM board be for? 20:38:52 We SHOULD be able to use very fine time division. The PCs are 3 GHz. Why not resolution to, say 10 ns? 20:39:16 the version I sent in uses nanosleep, which was modified to be used if nanosleep is present which it isn't always, and select if it's not 20:39:31 regnirps: agreed. mine is 1.6GHz 20:39:33 DId he add it? 20:39:47 regnirps: the modified ms? yes 20:39:58 What is that? Ancient? Or new Atom laptop? 20:40:07 regnirps: new Atom nettop 20:40:10 low-power desktop 20:40:32 given I upgraded from a Celeron that came with Windows 98, it's blazing 20:41:01 I basically use these. Can't beat the price/performance. 20:41:02 http://www.tigerdirect.com/applications/SearchTools/item-details.asp?EdpNo=2826919&sku=B69-0567&cm_re=Homepage-_-Spot%2004-_-CatId_2372_B69-0567 20:41:35 If you use Linux, make has an option most peple don't know about. 20:41:45 make -j18 20:42:12 mweans use 18 compilation threads. So while one fiel is compiling it is fetching others. 20:42:40 regnirps: the rule of thumb is what again? number of cores on your machine plus one? 20:42:42 and with 8 cores, it is one thread per core. A one hour compile becomes like 6 minutes. 20:42:53 More like time 2 or 3. 20:43:21 --- quit: Onionnion (Read error: Connection reset by peer) 20:43:50 It depends. A Linux kernel has a zillion tiny files so use -j24. Something with big files or singgle file doesn'' do so much. 20:43:54 that's pretty nice 20:44:01 (the bundle) 20:44:09 except for the fact, I'm not keen on putting it together myself anymore 20:44:25 Yes. Add 8 more GBytes, then after one compile the whole project is cached in RAM. 20:44:28 this system came from System76 20:44:58 They are very simple to do now. 20:45:30 Add an identical drive for raid 0. Double acess speed with 100% redundancy. 20:45:44 Still under $500 I think. 20:46:32 I wait for their Acer 21 inch displays to go on sale and buy in pairs with a dial monitor stand and load Debian. 20:47:29 Got a couple setups in the office and one at home. 20:47:40 (adnahammer.com) is the office. 20:47:53 andahammer !!! Learn to type! 20:48:43 Dumped Fedora, then Ubuntu for simplicity of Debian (which becomes Ubuntu when stable enough). 20:49:06 --- join: Onionnion (~ryan@adsl-69-215-132-97.dsl.milwwi.ameritech.net) joined #forth 20:49:06 --- mode: ChanServ set +v Onionnion 20:50:23 I don't do much wiht Forth on Linux PCs, but on the ARMs it would be great. 20:51:11 However, making a really useful bare metal Forth would mean building the tacks for Ethernet and USB and WiFi and all the stuff the Samsung hardware supports. 20:52:34 I wonder If I could interpret Linux config files and shell scripts to generate drivers? Hmmm. 20:53:26 that would be quite a tour-de-force 20:54:08 Yeah. Driver writing is a major PITA in Linux and takes piles of research. 20:54:23 But it might be possible to create the shell and fill in some Forth. 20:54:37 how important is wifi throughput? You could possibly just implement ethernet drivers and depend on an external router for wifi 20:54:57 --- quit: Onionnion (Quit: Leaving) 20:55:06 If you don't support everything on the board, you get complaints. 20:55:17 ah, so for external use 20:55:23 that makes it more challenging 20:55:30 You need USB Plug-n-Play, etc. 20:55:37 hoo boy 20:55:51 still, at least you'd be targeting a known hardware configuration, USB notwithstanding 20:55:52 But the data basses already exist. 20:56:40 writing the drivers by hand would be extremely time-consuming, but they would probably come out very simple 20:56:44 BYW, on Python yo can make a full web app without Apache or MySQL. The capabilities are built in. 20:59:47 The Forth would need that too. Yipe! 20:59:55 Mops would make it so much easier. 21:00:11 a basic webserver isn't so bad 21:00:31 I read an article about making a forth DSL which resembles HTTP headers 21:00:40 so you just interpret them and bam 21:01:00 gotta be a little careful with that security-wise, but it was a neat hack 21:01:17 Mike Hore! Get you ass in gear! Next time I'm in China I'm taking a side trip to Australia and twist your arm! 21:01:42 ARM Mops done by the Master. That is what we need. 21:02:17 I gotta start buggin him again. ARM is enough like PPC to appeal. 21:03:48 woah, cool. I'm going to have to play with Mops 21:08:49 'night everybody 21:09:26 --- quit: RodgerTheGreat (Quit: RodgerTheGreat) 21:40:24 --- quit: pyrofreakpenguin (Quit: pyrofreakpenguin) 23:14:12 --- quit: Monevii (Remote host closed the connection) 23:32:56 --- part: Kumul left #forth 23:54:08 --- quit: phirsch (Ping timeout: 244 seconds) 23:54:28 --- join: phirsch (~phirsch@xdsl-89-0-76-167.netcologne.de) joined #forth 23:54:29 --- mode: ChanServ set +v phirsch 23:59:59 --- log: ended forth/12.06.02