00:00:00 --- log: started forth/05.06.07 00:05:45 --- join: imaginator (~George@georgeps.dsl.xmission.com) joined #forth 00:16:49 --- join: LOOP-HOG (~chatzilla@sub22-119.member.dsl-only.net) joined #forth 00:31:57 --- quit: sproingie (Remote closed the connection) 01:00:54 --- join: Topaz (~top@sown-88.ecs.soton.ac.uk) joined #forth 01:54:03 --- quit: LOOP-HOG ("ChatZilla 0.9.61 [Mozilla rv:1.7.1/20040707]") 02:14:59 --- quit: warpzero (Read error: 104 (Connection reset by peer)) 02:19:44 --- join: warpzero (~warpzero@wza.us) joined #forth 02:32:38 --- quit: imaginator ("zzZ") 04:31:14 --- quit: crc (Read error: 60 (Operation timed out)) 04:34:48 --- join: crc (crc@pool-70-110-202-43.phil.east.verizon.net) joined #forth 04:35:06 Hi, crc. 05:13:19 --- join: qFox (~C00K13S@92pc222.sshunet.nl) joined #forth 05:17:03 Hi, qFox. 05:19:46 hi 05:40:29 --- quit: Topaz (Remote closed the connection) 06:02:07 --- join: PoppaVic (~pete@0-3pool157-29.nas22.chicago4.il.us.da.qwest.net) joined #forth 06:26:07 --- quit: madwork (Read error: 54 (Connection reset by peer)) 06:26:09 --- join: madwork_ (~madgarden@derby.metrics.com) joined #forth 06:27:47 --- part: ASau left #forth 06:31:04 --- join: ASau (~user@83.102.133.66) joined #forth 06:51:14 --- join: I4404__ (~mark4@216-110-82-203.gen.twtelecom.net) joined #forth 07:02:31 --- nick: madwork_ -> madwork 07:02:49 hey madwork - sent mail this AM 07:04:10 OK, coolio. I'll get it tonight. Not that I'm likely to be much help. :) 07:05:45 well, perhaps new eyes will see a glaring "ohshit" 07:06:30 --- nick: I4404__ -> I440r__ 07:06:42 --- nick: I440r__ -> _I440r_ 07:06:56 I may not get a chance to look at it tonight, as my son has Judo, and then Doctor Who is on. :) But we'll see. 07:07:21 Np 07:35:18 --- join: Herkamire (~jason@c-24-218-95-147.hsd1.ma.comcast.net) joined #forth 07:35:18 --- mode: ChanServ set +o Herkamire 07:37:08 Battle-jittnies 07:38:57 'morning 07:39:05 Hi. 07:39:06 How's by you? 07:44:11 doin well 07:44:50 made a lot of progress with herkforth last night 07:44:53 still happy about that 07:44:58 I'm still "ground looping" on this code *sigh* But, I think every pass profers a bit more understanding. 07:45:53 I'm trying to recall 'herkforth' 07:45:58 yeah. a lot of times you need to program something more than once 07:46:10 http://herkamire.com/jason/herkforth 07:46:23 oh, hell - I'm on like the 12th iteration - it's becoming a real bear. 07:46:44 heh 07:46:48 what are you writing? 07:47:11 well, it often takes a lot of stabs if it requires a paradigm shift 07:47:32 I'm in the middle of majorly changing the way herkforth stores source 07:47:41 I'm trying to write code for a module/lib - in c - that will allow me/us to add namespace/voc, defs, and even "scripting" between lexers and parsers 07:48:03 yikes 07:48:08 sounds like a hard problem to define 07:48:45 yeah, it's been a real PITA, but I got tired of a tweak over in .l files, then a tweak over in .y file, then tweaking my own code. 07:49:51 bathing. bbiab 07:49:52 I'm getting my shit-together to beat on my "minish(ell)" which will be 100% integral to my "Metabuilder" stuff - I am totally fed the hell up with GNU autoshit. 07:51:42 yeah 07:51:50 autoconf is rediculous 07:52:10 decided on a bath. so new I get to wait for it to fill 07:52:17 I think I complicated myself by making most everything "disembodied" and referencial 07:52:34 but, I just KNEW some dork would want to mix in flash/eprom 07:53:15 Still, the headers are fairly clean, heirarchially. 07:53:30 It'ssome of the chiken/egg code that makes me homicidal. 08:03:16 brb - need the horn.. 08:03:19 --- quit: PoppaVic ("Pulls the pin...") 08:12:31 --- join: PoppaVic (~pete@0-1pool66-242.nas22.chicago4.il.us.da.qwest.net) joined #forth 08:12:54 back 08:24:47 --- join: Al2O3 (~Al2O3@c-24-1-126-202.hsd1.tx.comcast.net) joined #forth 08:39:44 --- join: virl (~hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 09:57:46 --- join: Topaz (~top@sown-88.ecs.soton.ac.uk) joined #forth 10:10:17 --- quit: alexander_ (Remote closed the connection) 10:22:54 --- quit: PoppaVic ("Pulls the pin...") 10:49:55 --- quit: Topaz (Remote closed the connection) 11:45:32 --- quit: AlexF (Remote closed the connection) 11:49:31 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 11:49:34 --- quit: _I440r_ ("thats me over there") 12:11:03 --- quit: KB1FYR ("woo") 12:15:02 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 13:01:19 --- join: tathi (~josh@pcp02123821pcs.milfrd01.pa.comcast.net) joined #forth 13:25:04 --- quit: cmeme (Connection timed out) 13:26:25 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 13:46:59 --- quit: vitaminmoo ("Leaving") 13:50:54 --- join: vitaminmoo (~vitaminmo@dsl-95-113.peak.org) joined #forth 14:04:50 --- quit: KB1FYR (Read error: 110 (Connection timed out)) 14:39:52 --- join: Topaz (~top@sown-88.ecs.soton.ac.uk) joined #forth 14:40:07 --- quit: qFox (Read error: 54 (Connection reset by peer)) 14:48:12 hi all 14:48:15 Hi. 14:48:55 --- mode: ChanServ set +o crc 14:57:07 --- quit: Robert ("brb, going to Germany.") 15:12:57 --- quit: Sonarman (Read error: 110 (Connection timed out)) 15:47:52 --- join: Sonarman (matt@adsl-64-160-166-73.dsl.snfc21.pacbell.net) joined #forth 16:32:56 --- quit: Topaz (Read error: 113 (No route to host)) 17:42:00 --- quit: virl (Remote closed the connection) 17:45:43 --- quit: tathi ("leaving") 18:04:01 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 18:04:15 --- quit: KB1FYR (Remote closed the connection) 18:05:01 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 18:11:17 --- quit: KB1FYR (Read error: 104 (Connection reset by peer)) 18:12:01 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 18:12:46 --- quit: Sonarman (Read error: 110 (Connection timed out)) 18:15:15 --- join: LOOP-HOG (~chatzilla@sub22-119.member.dsl-only.net) joined #forth 18:16:10 hi 18:17:22 TEH HIES!!!!!11111oneoneoneoneoneoneone 18:17:23 howdy 18:17:43 * Herkamire slaps arke with a shaved gerbil 18:18:33 that sounds dirty 18:19:48 lol 18:27:57 any thougts on apple changing over to intel chips? 18:28:11 hell is freezing over 18:28:32 :^) 18:28:34 the best golfer is black 18:28:37 the best rapper is white 18:28:37 its the end of the world 18:28:42 apple is using x86 18:28:43 wtf 18:28:45 lol 18:28:49 everything is bleeding into everything else 18:29:04 priests are child molesters 18:29:18 everything is everything else 18:29:28 Chuck is writing a JAVA interpreter 18:29:33 jHE IS!?!?!! 18:29:44 just about 18:30:01 genetic engineering, pigs are apples 18:30:46 pagans are christians 18:32:26 I think the tofu that I bought the other day has tallow in it 18:33:28 The burgers at McDonalds has soy in it, which in turn has fish genes in it 18:33:37 I guess in perspective, its not suprising 18:37:35 has soy in them? 18:37:48 there's way more soy than meat in mcdonalds burgers iirc 18:41:04 there isnt any beef thats for sure 18:42:00 I'm serious. 18:42:10 I heard that their burgers are 27% meat 18:42:30 yea brain, intestines, all sorts of other shit 18:42:33 but NO BEEF 18:52:19 --- join: sproingie (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 18:54:29 sucks apple's going with intel 18:54:43 I like RISC 18:55:45 Its kind of sad 18:57:11 not only x86, but ia32 18:59:17 * sproingie bets sun drops sparc next 19:01:10 but it's not MISC, so I didn't really fall in love with it 19:03:10 I sort of feel like updating my site 19:03:14 I wonder if I will 19:06:57 /me shows off the ultimate processor architecture: ZISC 19:07:17 /me peers at that extra space before /me 19:08:07 ZISC? 19:11:30 zero instruction set computer 19:12:06 magic! 19:12:28 * saon snuggles OISC 19:28:15 Hmm, I think I'll add a 5th stack to Forthy. 19:29:19 5 stacks!? 19:29:20 why? 19:29:51 Because they are handy. ;) 19:29:57 heh 19:30:02 And, I don't allow using the return stack. 19:30:05 * crc has never needed more than two 19:30:10 madgarden: why not? 19:30:21 So, if I want to do something like >R R> I need a spare stack for it. 19:30:28 Because, it's unsafe. 19:30:31 heh 19:30:47 This is a C forth, geared towards scripting/extension. 19:30:58 ahh, that's right... 19:31:06 So, having it crash because the user is a dipshit isn't exactly nice. 19:31:08 :) 19:31:10 * crc forgot the scripting aspect of it 19:31:21 I have a data stack, return stack, input stack, control-flow stack. 19:31:26 So, I will add a "local" stack. 19:31:42 * crc does use rf for scripting/extension, but I know what the code I write will do 19:31:45 Then I can either have >R R> R@ etc. words, or they can use it for locals. 19:31:57 * madgarden simply doesn't like crashing. 19:32:01 I'd rather get an error. 19:32:16 And it's possible for them to crash the program if they muck with the return stack. 19:32:26 why not just make stacks a first-class type? 19:32:30 They are. 19:32:40 But at the moment, the stacks kind of suck as a type. 19:32:52 If you DUP a stack, it copies the whole damn thing to a new stack. 19:33:11 So imagine having a stack stored in a variable, and then you fetch it. 19:33:29 cool. some friends of mine wrote a forthlike that supported multiple stacks you could switch to. the 'this' word always referred to the current stack 19:33:30 make a change to the stack you fetched (possibly DUPing multiple times to do so), then storing it back. 19:33:39 Lots of wasted operations. 19:33:40 actually it was more like postscript than forth 19:34:02 Yea, it's really quite fun. My "cell" is basically a variant. 19:34:10 So it can hold strings, integers, doubles, etc. 19:34:16 Typical scripting stuff. 19:34:18 madgarden: you could make the stack copy-on-write. just align it to a page, and copy the page 19:34:35 actually i guess that would always copy if it did anything interesting 19:34:53 Align it to a page and copy the page doesn't really make sense to me here. 19:34:56 need to write your own COW implementation i guess 19:35:18 I don't have contiguous dictionary memory, for one. 19:35:35 * madgarden goes and looks up COW. Moo. 19:35:43 copy on write 19:35:55 if i type in Forth games into Google I get on the first page 19:36:19 not sure how you implemented the stack, couldn't say exactly how to do it 19:36:25 sproingie, ah OK. 19:36:48 Well, I will eventually operate on stacks through a reference. 19:37:02 So, copying the actual stack will be an explicit operation. 19:37:17 what are all your stacks currently? 19:37:20 Otherwise, you work through the reference and everything hits the one stack being referenced. 19:37:25 Well, they are values. 19:37:34 So, if I dup it, the stack gets copied. 19:37:44 * sproingie can think of the data stack, return stack, float stack, and for the really exotic, type stack 19:38:07 Yea, if you use CELL as your only type, that's typical Forth. 19:38:21 But I basically have a C union that holds a variety of types. 19:38:38 so you have a type stack for the type tags? 19:39:05 or do you stick it in a struct? 19:39:07 No, the value holds its type ID. 19:39:21 ie. yea to question #2. 19:39:50 pretty standard approach to dynamic typing 19:39:53 manifest typing 19:40:06 I basically have a struct that has: 19:40:06 type_id 19:40:06 union{int, double, char*, void*, etc.} 19:40:06 back_reference 19:40:20 Yep, seemed like the most obvious way to do it at the time. 19:40:32 I'll be changing the type_id to a type_interface, though. 19:40:39 careful. storing a double will bloat that union 19:40:40 So that I can support user objects. 19:40:59 Yep, the double is bloating the union. 19:41:00 you can stuff a regular float into 32 bits. not a double 19:41:05 I know. 19:41:21 But I went for double since it's nice to have the precision for somet hings. 19:41:23 'course i'm on 64 bit, so both of 'em fit fine 19:41:50 Also, for the input stack I use that upper 32-bits in the union for an offset. 19:42:17 A bit of a hack, but it worked at the time. I'll likely change that though, because I want to also store input description data on that stack. 19:42:28 ie. source filename, what have you. 19:42:51 Then when it borks I can know exactly what input value caused it. 19:43:30 My Forthy system is a sort of half-way between traditional Forth and Slava Pestov's Factor. 19:43:43 nifty 19:44:53 Also, the user defines most of the system parameters and language. It's basically a VM that they can use to easily build up a Forth-like scripting language. 19:45:27 know what i want to see in a scripting language? pipe syntax 19:46:00 What would it look like? 19:46:01 i use it all the time in shell scripts, and i miss it in perl. ruby sorta has it, python has generators but otherwise lacks it 19:46:55 With Forthy, you'd just add that in yourself if you needed it. The whole point was to keep the base system as thin as possible, not bloating it up with features and goodies that not everyone needs or wants. 19:47:30 hmm ... connections list | dnslookup | /evil.com/ grep 19:47:58 infix operator ... anathema to a forth i guess 19:48:12 Yea, I'd just wrap the pipe stuff in evaluation words. 19:48:36 Eh, you could get around it and make it look infixy... like this: 19:48:37 well the thing about pipes is that they're like coroutines 19:48:57 pipes give you lazy lists like haskell 19:49:16 |( connections list | dnslookup | evil.com/ )| grep 19:49:26 microsoft has a cool command shell called msh that lets you send arbitrary .NET objects through a pipe 19:50:10 it was supposed to be the new longhorn shell. chances are longhorn will still ship with crummy old CMD.EXE 19:50:14 --- quit: KB1FYR (Read error: 104 (Connection reset by peer)) 19:50:24 Heh. 19:50:37 There should be a Forth shell. 19:50:55 truly sweet design tho. it was called "monad", so i suspect the whole idea was to pipe objects around 19:51:07 since that's sort of what monad sequencers do in haskell 19:51:23 I think I read a bit about it. Didn't absorb much though. :) 19:51:33 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 19:51:45 no software ever escapes microsoft research alive 19:51:55 :) 19:52:14 can you give me a short description of Forthy for my links page/ 19:52:26 LOOP-HOG, I will once I release it. :) 19:52:30 * madgarden is slow. 19:52:42 I found the link http://sourceforge.net/projects/forthy/ 19:52:58 It's available in it's present form through SourceForge SVS, but nothing is officially released. 19:53:17 source cvs is of course down 19:53:24 holy single point of failure batman 19:53:40 Yea, really. 19:53:51 Been using SVN lately here at home. I like it. 19:54:36 cvs is only getting by on momentum now. i dont know anyone who chooses it instead of svn these days 19:54:54 I'm also waiting for DARCS to mature some more. It's pretty spiffy. 19:54:59 LOOP-HOG, have you seen this? http://www3.sympatico.ca/ppridham/misc/project/deathfist/console.png 19:55:09 It's my Forthy console for one of my game projects. 19:55:34 no 19:55:49 what is deathfist? 19:55:59 It's a remake of Fist 2 for the C64. 19:56:23 I foudn the spiderman doll 19:56:26 But currently on the backburner as I work on my older "Super Action Kung Fu" project. 19:56:29 Hehe. 19:56:33 Yea, he's big. 19:57:12 The eventual goal is to have a totally Forthy driven game engine/IDE that is fun and interactive, like the old BASICs of yore (but more so). 19:57:42 neat 19:57:51 c64, eh? you ever use blazin' forth? 19:58:04 there was a gba forth released a few months ago, but its not really great, more a demo than a real dev system 19:58:38 sproingie, yea I have used Blazin' Forth... not when I actually owned and used the C64, but more recently. I really like it. I often refer to it. 19:58:52 LOOP-HOG, I think I read about it... port of pForth? 19:59:17 yeah 19:59:45 Eventally I'll do a proper native Forth for some hardware. 20:01:18 I think that programming a game on the gba would be great, but I would want to use a tethered system 20:01:31 something professionall 20:01:41 not that I have the drive/energy/time or whatever 20:01:54 Yea. 20:02:02 I would like to link your game, but I don't know if you want me to 20:02:22 LOOP-HOG, not yet if you don't mind, because I'm not done, and I don't have a proper website set up for anything yet. 20:02:28 ok 20:02:38 When I have something, I'll definitely be letting everyone know. ;) 20:03:16 But feel free to browse the various files and so forth on my "site." There are a few older Windows downloads, sprite sheets, etc. 20:04:25 * sproingie ponders learning forth and opengl together... any fp-supporting forths with OGL bindings? 20:05:36 forth.org.uk is no longer 20:05:53 LOOP-HOG is to lazy to learn a graphics package 20:07:26 I just want to load in some sprites and change a few registers to move em around :^) 20:08:29 sproingie, Win32Forth perhaps. 20:08:45 FICL could be tied into OGL easily enough, I bet. 20:08:54 And Forthy of course, when it's done. 20:09:39 LOOP-HOG, that's what I eventually want to come of my work... a fun little retro bleepy sprite engine with Forth. 20:12:40 madgarden: i have a few options on windows. i guess i could use gforth or bigforth on linux 20:13:07 bigforth is super-zippy. was pretty crashy for me tho 20:13:39 Yea, I experienced the crashiness. Seemed bloaty, too. 20:13:48 well it is big 20:13:56 whats the point if its not stable 20:14:12 it seems unmaintained as well 20:14:28 who cares if its fast if it just gets it to the crash point faster :) 20:15:14 its like cray computers are NOT accurate in their calculations because cray didnt believe in accuracy 20:15:24 so a cray will come up with a WRONG answer faster than any other computer 20:15:28 where did you get that? 20:15:43 from a documentary on cray computers 20:15:53 where they interviewed cray (he was still alive then) 20:16:46 they were no more or less accurate than anything else. binary math is a poor match to decimal when it comes to precision 20:17:05 you just use more bits 20:17:45 no i mean cray himself said that speed was more important than accuracy 20:17:49 unicos wasnt exactly a fun system to use tho. had no notion of swap, for starters 20:18:23 for some domains, that's exactly correct 20:18:54 no, a wrong answer is STILL a wrong ansser 20:19:09 use a cray to calculate pi to the Nth digit and your going to be producing bullshit 20:19:11 inaccurate != wrong 20:19:11 fast 20:19:33 if it gives you the wrong 10th digit of pi and all you cared about were 9 digits, it's perfectly right 20:20:00 no. if your calculating it to the millionth digit and it goes wrong after the 10th.... 20:20:25 i think you're reading way too much in 20:20:31 no lol 20:20:47 lol is not punctuation where i come from 20:21:04 this is the internet 20:21:09 lol is valid here "{ 20:21:11 :P 20:21:16 even if you dont know what it means 20:22:47 --- join: slava (~slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 20:22:55 hi 20:23:13 hey slava 20:23:38 * slava was reading the logs 20:23:43 sproingie, factor supports opengl and floating point math 20:24:16 teh slava! 20:25:29 hi madgarden 20:27:19 Long time no see. 20:27:38 slava: !! i've really gotta get to using factor now 20:29:39 factor has continuations, right? 20:29:45 yes 20:29:58 so it should be possible to write something like seaside in factor 20:30:08 in fact it already exists 20:30:15 wow 20:30:23 db bindings? thinking rails now :) 20:31:48 >>> I wish Apple would dump Mach and use a BSD or Linux kernel instead. 20:32:03 or just L4. mach is about as creaky as microkernels get 20:32:20 we only have an SQL-Lite binding, but i think somebody is working on a postgres binding 20:32:25 they're easy to write anyway 20:32:56 i suppose a libdbi binding would get 'em all more or less 20:35:54 yup 20:36:55 madgarden, can forthy call C libraries? 20:39:12 slava, Forthy doesn't do any such thing for you. It's basically a Forth-like VM in C that you can create a language out of. 20:40:02 I wanted it to be thin so that the users can add their own feature bloat to it without wanting to get rid of existing feature bloat. :) 20:41:31 how do you manage memory? 20:42:04 I just have a few stacks and a dictionary... nothing fancy. The dictionary grows as you add to it. 20:42:28 i mean deallocation 20:42:28 I do use some reference counting, but mostly just for safety purposes. 20:42:33 what if you 'dup' a string? 20:43:49 Yea, it copies the string, but I'm going to be changing that. The various types will have interfaces to manage copying, deletion, etc. 20:44:27 And any deallocation either happens when you DROP something, when a value is overwritten, or the system exits. 20:44:39 madgarden: does your scripty forthy thing do memory addresses? 20:44:55 If you want it to, you make it do memory addresses. 20:44:57 @ ! and all that? 20:45:25 You can fetch and store values. If you want to call it @ and ! then you can. 20:45:41 If you want an actual chunk of memory to mess with, you put that in there too. 20:46:12 But you can't do address arithmetic on value references, if that's what you're asking. 20:46:32 It would be meaningless. 20:46:33 oh ok 20:46:43 But as I said, create a buffer and byte-bash it all you want. :) 20:46:45 that makes sense then 20:46:52 Yep. 20:47:00 In fact, I'm doing that with my Forthy project at work. 20:47:06 madgarden, why don't you implement garbage collection? 20:47:15 --- quit: KB1FYR (Read error: 104 (Connection reset by peer)) 20:47:18 I took a totally different approach to making a forth in C that wouldn't crash 20:47:22 slava, I don't need it. 20:47:30 Herkamire, oh? Explain! 20:47:38 basic low level forth 20:47:44 madgarden, it will let you avoid copying objects all the time 20:47:57 rstack you can mess with and address arithmatic and all that 20:48:16 slava, yes, I will be fixing that using referenced objects. 20:48:23 basically running on a sort of virtual machine with primitives written in C 20:48:25 Then this will cover user objects as well. 20:48:26 madgarden, what are referenced objects? 20:48:32 primatives for + @ call etc 20:48:37 --- join: KB1FYR (~Alex@196-220.suscom-maine.net) joined #forth 20:48:46 Herkamire, I want to do such a Forth as well. 20:48:50 any C would simply check all addresses before using them 20:48:55 Oh... 20:48:55 including code addresses 20:49:02 Heh. ;) 20:49:28 iirc I didn't exactly "check" the addresses, just mangled them so they'd always land in the forth's memory block 20:49:35 Yea, I guess that's what I'm using my references for, so I don't have to check addresses. If you have a word reference, then the word gets FORGETed, the reference is killed. 20:50:00 real_addr = (forth_addr % memory_size) + memory_block_start 20:50:11 in factor if you have a pointer to a word, then you forget the word, the pointer is still valid and the word is still allocated 20:50:14 Herkamire, if I went your route, I'd probably just AND all addresses with some power of 2 max memory size. 20:50:27 forgetting a word just removes a hashtable entry 20:50:38 --- join: snoopy_1711 (snoopy_161@dsl-084-058-133-084.arcor-ip.net) joined #forth 20:50:41 slava, yea, that's the normal garbagy way to do it I s'pose. 20:50:53 The way I did it is much simpler. 20:50:58 Perhaps not the best way, but I like it. 20:51:01 yeah, I might have used and. "and" and "mod" are the same thing if you're working with a power of 2 20:51:14 madgarden, but i don't think GC is complicated at all 20:51:15 For the most part, you don't go killing references like that. And I know that if I drop something, then it's gone. 20:51:31 my gc is 340 lines of C 20:51:50 slava, well you're some kind of demi-god uber-genious, and I'm just a hacker. ;) 20:52:05 I didn't build in error checking, I just made it so no matter how bad the forth code was, it wouldn't crash the C kernel. 20:52:06 no i'm not 20:52:17 it might totally not work... but it wouldn't take down the C kernel 20:52:18 ;) 20:52:35 what if Forth programming was an AD&D skill? 20:52:38 If I manage the time, I'll be looking into GC a bit more. Seems I only have a couple hours a night to myself anymore. 20:52:55 Herkamire, yea that's how it should be I think. 20:53:06 As long as it doesn't crash the kernel, it's all good. 20:53:16 hmm 20:53:22 well, for some things you need it to time out or something 20:53:29 i have a C kernel that is not safe, and a library that does checks 20:53:37 I spent a little effort trying to make a forth module for apaceh 20:53:40 apache 20:53:41 Or have an escape-key sequence. 20:54:08 it definitely needs to kill the process after a while if it goes off computing forever 20:54:38 that should be apache's job 20:54:51 I want the module to be able to handle infinite loops without bogging down the whole machine forever 20:55:11 Herkamire: simple, just write a program to detect when a program doesn't halt! 20:55:11 * sproingie grins 20:55:40 i think for web stuff having runtime type checks helps a lot 20:55:46 apache2 api had some way that you could supposedly run some sort of timer, and apache would tell your module when the time was up. I couldn't get it to work the way I wanted it to though (or perhaps at all) 20:56:22 apache2's got a lot of stuff that's supposed to be neat but doesn't actually work 20:56:33 yeah, if a web script takes more that 60 secconds of CPU time something is seriously wrong 20:56:51 that was one thing i liked about writing webserver stuff in moo 20:56:58 built-in timeouts 20:57:27 basically it's coop multitasked, but if you don't yield before a timeout, your task gets killed 20:57:41 ooo :) 20:57:48 hehe 20:58:05 there's really some amazing stuff you can do with moo 20:58:16 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 20:58:19 what is moo? 20:58:35 resume lets you resume a suspended task with an argument 20:58:40 --- nick: snoopy_1711 -> Snoopy42 20:58:40 so you can do coroutines that way 20:58:54 slava: mud, object oriented. it's a mud codebase 20:59:29 it's the last of the tinymud line, basically. except perhaps coolmud, but that never actually got used anywhere 20:59:29 sproingie, didn't it use MUF for a programming language? 20:59:37 Or is that some other mud... 20:59:39 that was MUCK 20:59:42 Ahh, OK. 20:59:43 MOO used the MOO language 21:00:34 which is a pretty orthodox procedural language, with bits of syntax from algol, smalltalk, and self 21:00:47 not actually an impressive language, but it was fun 21:00:58 self is cool 21:01:12 moo took rather little from self 21:01:20 the people who made self were freakin geniuses 21:01:20 prototypes? 21:01:30 its a pity self never had a robust implementation though 21:01:41 it did 21:01:46 they were writing fast useful gui apps in self when java was still called oak 21:02:02 just that scott mcnealy went bonkers over java and gutted self 21:02:10 the self folks all quit and started their own company 21:02:22 self's compiler was later used in java 21:02:27 sun bought them back. the JIT and GC in modern java VM's are from self 21:02:36 not the GC, just the JIT 21:03:11 i believe self was using a generational gc before java. i guess that doesn't mean it was from self 21:03:39 have you looked at slate? 21:03:45 its better than self and will soon have a native code compiler 21:04:06 slate seems to be all about smalltalk worship 21:04:10 i like its implementation much better than self's... its self-hosting 21:04:54 is slate in a usable state yet? last i looked, it wasn't something you could compile without a week's time investment 21:05:22 Well, I must sleep. Work tomorrow. Night! 21:05:39 sproingie, yes, its usable 21:05:49 compiling it is straightforward 21:06:00 hmm, installing messages to a signature. is that like haskell type families? 21:06:15 no, its multiple dispatch 21:06:25 ah. foo. 21:09:35 guess i'll grab slate and factor 21:09:44 i remember being all excited by squeak tho 21:09:55 and seeing that excitement turn gradually into revulsion 21:09:56 slate is much cleaner than squeak 21:10:06 except it doesn't have morphic yet 21:10:30 morphic is more a UI itself than a usable toolkit 21:10:41 takes direct manipulation to ridiculous extremes 21:10:52 i like it 21:11:10 it made sense for self, it's sort of like a procedural gui builder 21:11:18 i think it's a lousy programming paradigm tho 21:11:26 why? 21:11:30 how would you rather build an UI? 21:11:42 qt, gtk, swing, they're all crappy 21:11:50 as a tool it's great. i prefer elegant representation within the language as well 21:11:58 that's the whole point of a language 21:12:07 otherwise we're getting into labview-like "gui languages" 21:12:28 in factor almost any object can be transformed into source that reconstructs it 21:12:50 is the source anything you'd want to look at? 21:13:01 for simple things its simple 21:13:27 --- join: alexander_ (~alexander@69.17.112.153) joined #forth 21:13:27 hey 21:16:30 slate make bombs out of the box 21:19:01 hey 21:19:02 er 21:30:58 huh. does darcs do tab -> space translation or something? 21:31:24 or did someone's "code beautifier" for slate get a bit too aggressive and decide to reformat makefiles? 21:31:49 i don't know, ask in #slate 21:42:25 make is fucking stupid to INSIST that tabs be used 21:42:29 thats fucking moronic 21:52:31 make is ancient 21:52:46 but yeah it was decried as stupid just about the moment it was created 21:53:01 i don't comprehend why GNU make doesn't just fix the error 21:53:07 anyway they just pushed a fix 21:53:58 pushed ? 21:54:20 i dont like the anything to do with make files, linking object files togehter or any of taht crap 21:54:27 linking is absolute evil 21:54:41 its part of why i think the c language is soooo fucked UP 21:54:53 umm 21:54:54 without linking 21:54:59 how the hell do you do anything? 21:55:07 make is sort of okay. it's a simple production system with useful rules for C built in 21:55:16 take your sources. feed them to the compiler have the compiler deposit a freeking executable 21:55:25 linking is a necessary evil ... linkers however are just awful 21:55:36 not some incomplete item that needs to be glued together later and patched up with duct tape 21:55:50 compilers have gotten smarter. even C compilers 21:55:52 I440r, what about shared libraries? 21:55:55 i have no use for linkers or linking 21:55:56 but C linkers have gotten no better 21:56:04 thats dynamic linking 21:56:09 not static linking 21:56:13 every time you run a program, you're linking 21:56:16 loading of libraries is totally different 21:56:20 no 21:56:36 i think you mean static linking 21:56:43 and yes, static linkers continue to suck 21:57:00 the whole fucking idea behind "static" linking is fucked in the head 21:57:11 and so was the idiot that invented it 21:57:24 tell us how you really feel 21:57:29 im holding back 21:57:31 trust me :) 21:57:47 go pick up a book called "linkers and loaders" and read it 21:57:59 you learn why linking was the way it was 21:58:00 * I440r_ goes to watch "the 5 shaolin masters" 21:58:23 however, what i don't learn from that book is why linker technology has stagnated so badly over the last 20 years 21:58:30 its based on an actual historical event (shaolin temple being burned and only 5 masters survived) 21:58:39 they invented wing chun kune 21:58:54 * I440r_ sees how semi accurate it is haha 21:59:13 sproingie, did you get it to compile? 21:59:26 slava: nope. because it doesn't support 64 bit 21:59:37 slava: before i try with factor, does factor support 6 bit? 21:59:40 er, 64 bit? 21:59:49 * sproingie .oO ( 6-bit architecture would be a challenge ) 22:00:03 you can run the interpreter 22:00:11 but there's no compiler backend for any 64-bit architecture 22:00:15 just x86 and ppc so far 22:01:06 * sproingie has offered logins on his machine to the slate devs for 64 bit. you could use it if you want. 22:01:23 'course i have no domain yet, so ip would have to do :p 22:01:24 i plan an x86-64 port later this year 22:01:38 i don't plan ultrasparc or powerpc64 ports 22:01:51 well, ppc64 now seems doomed 22:01:58 and i suspect sparc is next 22:02:09 notice how sun is really flogging opterons these days 22:03:28 you can run factor in 32 bit mode and it will be much faster than 64-bit mode 22:05:32 at least til a native compiler is out 22:06:02 ah well, x86-64 is a second class citizen in haskell too, so may as well install a chroot 22:06:06 * sproingie grabs debootstrap 22:06:21 --- quit: Herkamire ("off to bed") 22:06:55 well, i just have to find time to do the port 22:13:04 * sproingie sighs. retroforth, haskell, factor, slate ... 22:13:11 and i always thought i was late to the 64bit game 22:13:29 kinda nice being on the bleeding edge 22:13:35 well sheesh, i don't even have 64-bit hardware 22:13:41 especially when its an inevitable platform 22:14:08 if you pay me, you'll have an x86-64 port in a couple of weeks, otherwise, i don't have motivation at this time to work on it 22:14:18 actually i got the amd64 because it was faster *and* cheaper 22:14:21 and cooler 22:14:24 so i work on what i need most urgently, and that is not amd64 support 22:14:31 temperature-wise. who can argue :) 22:15:02 that's cool. language comes first :) 22:15:09 platforms later 22:22:22 --- join: Sonarman (matt@adsl-63-196-0-246.dsl.snfc21.pacbell.net) joined #forth 22:29:38 --- quit: LOOP-HOG ("ChatZilla 0.9.61 [Mozilla rv:1.7.1/20040707]") 23:53:22 --- join: asymptote (~dmesg@68.48.8.92) joined #forth 23:57:05 what's the distinction in naming of ?someword and someword? 23:57:08 ? 23:57:50 in factor, ?foo means the word returns something, and a boolean 23:57:53 foo? means it returns a boolean 23:57:57 but this is not standard, at all 23:58:04 i'm sure everybody has their own convention 23:59:59 --- log: ended forth/05.06.07