00:00:00 --- log: started forth/05.10.05 02:04:14 --- quit: Pepe_Le_Pew (Read error: 104 (Connection reset by peer)) 04:22:49 --- join: Raystm2_ (n=Raystm2@adsl-69-149-55-17.dsl.rcsntx.swbell.net) joined #forth 04:24:09 --- join: Ray_work2 (n=vircuser@adsl-65-68-201-174.dsl.rcsntx.swbell.net) joined #forth 04:25:59 --- quit: Ray_work (Read error: 104 (Connection reset by peer)) 04:26:08 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 06:08:40 --- nick: Ray_work2 -> Ray_work 06:09:09 Good Morning all. 06:11:10 Morning, Ray 06:11:28 How's your day going, Robert? 06:11:58 I only have a few hours of uptime, but not too bad. 06:12:17 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 06:12:22 --- join: PoppaVic (n=pete@0-1pool47-104.nas30.chicago4.il.us.da.qwest.net) joined #forth 06:12:22 Hi, tathi 06:12:27 And PoppaVic 06:12:35 morning tathi and PoppaVic :) 06:12:35 Hi all :) 06:12:45 Hi folks 06:17:04 In other news... I wasn't able to recreate the problem Mr. Quartus was having in Gforth with later. 06:17:16 My test worked interactively. 06:17:33 : later r> r> swap >r >r ; 06:17:47 : foo 1 . later 3 . ; 06:18:02 : bar foo 2 . later 4 . ; 06:18:06 bar 06:18:09 1 2 3 4 ok 06:18:23 His problem was that later doesn't work while interpreting. 06:18:28 it works fine for compiled words. 06:18:39 maybe it's a version-issue? 06:18:48 this was during interpreting. 06:19:11 OHH 06:19:22 Using LATER to return to the interpreter temporarily doesn't work. 06:19:32 I see. 06:20:13 sure, I wouldn't expect it too, as you should have the return-to word already defined and such. 06:20:30 Well, that's what Quartus wanted it for, at least partly. 06:20:44 I gather he just built some other way to do things. 06:20:50 makes sence to me now 06:20:55 Yes. 06:24:32 Today I've seen people from the US, England and New Zealand misspell "sense". :) 06:25:14 how the hell are they spelling it? It's a trivial word. 06:25:33 PoppaVic: See above. 06:25:42 ahhhh 06:25:48 a "clew"! 06:26:33 An interesting misspelling in Swedish: people write "aenda" instead of "enda" (the latter means "only", or "single", while the former means "ass") 06:34:16 huh... damn. 06:37:08 hmm How the hell can an assembler determine if you want signed-results or unsigned results - from addition/etc? 06:37:27 I doesn't. You determine. 06:37:50 For example, on x86 you'd use imul/idiv/jg etc. instead of mul/div/ja 06:37:59 Robert: Sorry, about spelling problems. We elderly grew up with out a need to communicate with the written word, we're out of practice. Please continue to upgrade me :) 06:38:18 Robert: the former are signed, the latter unsigned? 06:38:26 yup. 06:38:28 PoppaVic: Yes. 06:38:36 ahh. I was afraid of that. 06:38:37 Ray_work: Not a problem, I just like pointing things out. :) 06:38:47 Afraid? No reason to be :) 06:39:04 Yeah there is: I am tinkering a pseudoasm opcode-set. 06:39:07 I like that much better than the C version, where things get converted without it being obvious. 06:40:15 actually, I'm sure C itself knows. It's just the rest of us ;-) 06:40:37 :) 06:41:23 Heh. I found some cool things when picking up my old 486 laptop. 06:41:37 A programming language based on smileys, for example, with a Minix-only compiler for it. 06:42:30 lol 06:42:44 Seems to me that we'd need a DCELL register for results.. hmm.. 06:42:50 you collect the most interesting stuff... 06:42:59 True. 06:43:13 Collect? Write. ;) 06:44:54 I was going to say 'write', but I wasn't sure... :) 06:45:47 It's so totally useless, it just has to me mine. 06:52:51 Robert: you can do such a thing in forth with Glypher. 06:53:01 each word a pictogram 06:53:23 * PoppaVic sighs 06:53:25 prob'ly be a natural forth for orientals. 06:54:32 :D 06:54:51 I was thinking about that, actually... just to abuse unicode. 07:04:12 hehe 07:15:26 back laters, folks 07:15:28 --- quit: PoppaVic ("Pulls the pin...") 07:18:53 --- join: sproingie (i=foobar@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 07:18:57 Hi. 07:19:58 'lo sproingie. 07:43:57 --- join: virl (n=hmpf@chello062178085149.1.12.vie.surfer.at) joined #forth 07:44:07 Hi, virl 07:44:15 hi 07:45:05 * virl is cutting now the raw edges of his xell concepts. suggestions, questions, etc. #xell 07:52:45 forth isn't popular, I think that's said because it's a great language and then it only gets attacked by some idiots(java, .net, C++, etc.), when it's mentioned and described. 07:53:02 * virl is today a little bit depressed. 07:54:55 Good thing too. If it was, we'd have to put up with all the idiots who use whatever's popular. ;) 07:55:40 Great point! 07:56:13 virl: did you happen to look at the wx api projects? 07:57:46 I've been looking some at Smalltalk. 07:57:56 Seems nice. Forthy spirit 07:57:59 tathi: a good point... but I'm sensitive when someone says something bad about my favorites 07:58:26 This from the guy who comes on here on a regular basis shouting "forth is dead"? 07:58:36 Robert: yes.. squeak or? 07:58:51 virl: Squeak is very big and all, I was thinking about the core language really. 07:59:49 the base smalltalk language actually is "forthy" in a way. lots of postfixed ops, almost nothing built in 08:00:10 Quartus, please... I said that because from the view of such guys. I never said that I don't like forth. In reality I think it's one of the biggest inventions since computers. 08:00:15 sproingie: Exactly my point. 08:00:24 sproingie: Do you have a lot of experience with it? 08:00:51 virl, don't complain about being sensitive when you have no regard for the sensitivities of others. 08:00:57 Robert: not really. tried squeak, found it a train wreck. a spectacular disaster, but a disaster nonetheless 08:01:06 ah.. and I showed them your site today, I think they don't like them. words like 'disgusting' and such. 08:01:19 sproingie: How so? 08:01:25 Quartus: that's a handicap of me. hopefully that changes someday. 08:01:35 * tathi spent a little time playing with GNU smalltalk a while back. It was fun. :) 08:01:39 Robert: the UI. it's awful. morphic's marginally better than mvc, but it's still a disaster 08:02:15 what website are you talking about, virl? And who is 'them'? 08:02:20 even as an ide. the inspector panes appeal to old-skool smalltalkers and absolutely no one else. 08:02:21 * Robert was thinking about trying to implement a small Smalltalk environment, but probably will end up borrowing some stuff from Forth. 08:03:09 i always thought of self as a much nicer language than smalltalk 08:03:12 Quartus: your Quartus forth website. and they are some stupid kids from my class. 08:03:24 i think the only implementation of self out there lacks the really nice JIT the original version had 08:04:16 Hmm.. what is self like? 08:04:17 Uh huh. You decided to show my website to some kids from your class, and somehow they find it disgusting. Well, thanks for sharing. 08:04:18 and then there's Slate ;) 08:04:31 nowadays i'd hitch my wagon to Slate, which seems to be making good progress 08:05:20 Quartus: ok, next time I ignore them. 08:05:38 slate doesn't seem to have the minimalistic philosophy of core smalltalk tho 08:07:06 i should really work on the retroforth gc. main problem with that is that either it's an ala-carte curiosity, or i have to define a whole new language on top of forth to make use of it 08:07:54 sry, Quartus 08:07:55 words like allot dont really respect a gc'd heap 08:08:46 damn those disrespecting words :) 08:08:54 in fact anything that assumes a fixed and unchanging address for objects makes gc hard 08:09:07 i could use a conservative gc, but that's really kind of a dead end 08:09:14 damn those disrespecting words? 08:10:30 allot isn't so bad since you can't guarantee it won't align your address first. i can probably redefine "align" to something more radical 08:11:30 and get people to use ALLOCATE. words like , are kickers. as is that whole untyped thing and the tendency to play with pointer arithmetic 08:11:58 So to implement gc thoroughly, you'd be removing a lot of the freedoms Forth permits. 08:13:25 possibly. might not be so bad tho. if i just forget about doing it down to such a low level and just make the dictionary and the ALLOCATE heap gc'd, it should be fine 08:13:43 dictionary's tricky 08:13:44 I rarely use ALLOCATE; I might not even notice I was in a gc'd Forth. :) 08:14:31 i could possibly gc only no-named words. if you want to give it a name, use IS or ALIAS 08:14:48 --- join: aardvarx (n=folajimi@shell4.sea5.speakeasy.net) joined #forth 08:14:54 How can you gc :noname words? How would you track the use of the xt? 08:14:55 those are the sorts of entries you'd want to gc anyway 08:15:30 Greetings, all. 08:15:36 hi aardvarx 08:15:40 Hi, aardvarx. 08:15:45 Hi Quartus 08:15:49 conservative gc. in fact i'm probably stuck with conservative gc the whole time 08:15:50 Hi Robert 08:15:56 --- nick: Raystm2_ -> nanstm 08:16:04 sproingie, I agree. Hardly seems worth the effort. 08:16:39 given that adding types to an XT is more or less an intractible problem. at least on 32 bit 08:17:01 64 bit i could probably steal a byte and say 56 bits is enough for you 08:17:03 Well, how any bits of type info do you need for an xt? 08:17:16 probably just a couple 08:17:31 On a 32-bit system, it's a fair bet that xts are all even, so you've got a bit there. 08:17:40 PTI, but is it possible to get Forth to recognize the structure of a multi-dimensional array? 08:17:50 In fact they may be aligned on four-byte boundaries, and that'd be two bits. 08:17:52 yah but how do i tell that from an ordinary odd int? 08:18:12 i could do pointer stuffing, but that doesn't help unless i also stuff ints and restrict them to a 30 bit range 08:18:34 i could do that, but having to decode every int would be ... non-forthlike 08:18:44 Depending on what an xt is in your system -- suppose it's a pointer -- you may be able to interrogate it for type info. 08:18:54 smalltalk does that as do most lisps and schemes 08:19:00 Either C seems to do a lousy job with arrays, or I am not using the right tools to understand the arrangement of an array. 08:19:18 aardvarx, what are you trying to do? 08:19:34 I am trying to implement the idea we discussed on Monday. 08:19:44 which one? 08:19:49 What idea was that that requires multi-dimensional arrays? 08:19:57 I thought I could have alphabet[24]... 08:20:15 Quartus: hm, decode it, deref it, and look for a bit pattern in the deref'd address? could do that 08:20:16 but it seems I need to use alphabet[24][10] 08:20:33 Or something of that nature. 08:20:37 sproingie, yes, store the type info in the object, the xt is just a pointer. 08:20:41 i'll call it the "reagan gc". a conservative that does "trust but verify" 08:21:11 Of course, it is a character array (i.e. char alphabet[24][10]) 08:21:18 i suppose stripping the low bits off an XT before calling it wouldn't be too prohibitive 08:21:24 sproingie, I'm not sure you could always ensure no false hits. Let's see... if the xt points within dictionary bounds, is properly aligned, is pointing at the right part of a header... might work. 08:21:34 aardvarx, ok. What have you tried? 08:21:42 When I do the sizeof() operation, is simply returns 240. I had hoped for 24 10 08:21:56 sizeof always returns one value. 08:22:04 So I noticed. 08:22:16 pointing into the middle of a dict definition is possible too. return stack 08:22:29 sproingie, not if your xt isn't an executable address. 08:22:53 Anyway, is it possible to have Forth create a 2D array? 08:23:00 aardvarx, yes. 08:23:18 Not the lame C convention, I hope. 08:23:31 aardvarx: forth doesn't have a concept of array built-in to begin with, so paradoxically you can do anything 08:23:46 sproingie, Quartus already mentioned that on Monday. 08:23:47 i believe FSL has multi-d arrays that use the fortran layout 08:24:03 aardvarx: lame C convention? which do you mean? 08:24:27 aardvarx, thinking back to the last time I built a string array, I didn't use a mult-dimensional one as such. 08:24:45 I would like to use scripts instead of repeatedly entering commands from a prompt. 08:24:59 It gets old very quickly. 08:25:21 array ( cells -- ) create cells allot does> ( n -- addr ) cells + ; 08:25:32 That makes absolutely no sense to me. 08:25:48 you're missing a : at the start. 08:25:50 I suspect that I could put entries on separate lines in a script, right? 08:26:09 aardvarx, I'm afraid I'm lost. Script? Prompt? Are you talking about C? Forth? Something else? 08:26:09 and a swap after does>, I believe. 08:26:15 tathi, yes. 08:26:23 Quartus, Forth. 08:26:40 I'm not sure that talking about C in this forum would get me very far. 08:26:40 Ok, Forth. What do you mean, script? Separate lines for what? 08:26:53 by "script", you mean "put code in a file, rather than just typing it in" ? 08:27:01 Yes. 08:27:07 Well, of course. That's how you write code. 08:27:08 I think he means .f files.. 08:27:14 Uh... 08:27:14 Open a text file, start typing. 08:27:20 You never mentioned that before. 08:27:26 * Quartus blinks 08:27:28 read Starting Forth 08:27:34 it has an array example 08:27:35 Nothing I read ever suggested that either. 08:27:42 aardvarx, how did you think it worked? 08:27:46 aardvarx, it's different from forth to forth. 08:27:51 generalizing it into multidimensional arrays is left as an exercise 08:28:05 Gforth: write a text file. gforth mycode.txt 08:28:16 or .fs or whatever extension floats your boat. 08:28:23 gforth prefers fs 08:28:24 I've never seen that. NEVER 08:28:26 or, from inside Gforth: include mycode.txt 08:28:52 aardvarx: or you use block files.. that could be also called 'scripts' 08:28:54 arrays are just contiguous chunks of memory. if you have memory access, you have arrays 08:29:00 at least as far as untyped languages are concerned 08:29:07 sproingie, I knew that too. 08:29:10 aardvarx: do you know the differences between blocks and source? 08:29:40 The last time I needed a quick string array, I used a simple definition of "place," to write them as counted strings at HERE, and then stuffed all the start addresses into an array. 08:29:42 It still doesn't give me a 24 x Y array. 08:30:04 it's as simple as allocating 24 * Y amount of space 08:30:22 Populating it is a bit tougher. 08:30:28 sproingie, is there a way to verify the allocation? 08:30:44 trust that forth will do it 08:31:14 The sizeof() function in C is insufficient for such a task; and I have no idea how to proceed. 08:31:34 if you really want, you can zero-fill the space or fill it with 0xDEADBEEF or whatever 08:31:36 FWIW, I just stumbled onto http://www.forth.org/svfig/Len/arrays.htm today. 08:31:57 or you can use an array library 08:32:07 which is probably a lot less painful than doing it by hand 08:32:31 sproingie, I heard that. 08:32:40 I just did it in C... 08:32:46 Not fun at all :( 08:32:59 a good array library will do strength reduction on the row index (or if you think in fortran, the column index) 08:33:07 makes 'em much faster to access 08:33:12 Kind of overkill, though, for most uses. 08:33:13 Perhaps I could even get Forth to read the names from a file? 08:33:29 Quartus: not if it's something like a framebuffer you're banging on 08:33:37 Right, but that's not most uses. 08:33:49 probably 08:34:00 and a good compiler will strength-reduce anyway 08:34:10 the library just doesn't assume you have a good compiler 08:34:19 I'll start with the syntax you suggested... 08:34:40 ok, gotta go, got a 9am meeting 08:34:47 Same here. 08:34:51 Cheers. 08:34:53 oh. Ok. 08:34:54 --- quit: aardvarx ("leaving") 08:34:59 I was about to show him some code. 08:35:02 He's not a patient fellow. 08:36:21 the 'modern programmers' I think 08:37:00 no patients these days, everybody wants with 3 clicks the solution. 08:37:25 http://pastebin.com/383905 08:37:27 the time for .net and java things 08:37:59 That's my throw-together, I'd tidy it up if I used it often. 08:39:29 longer than the C thing 08:39:39 Fancier. The string storage is packed. 08:40:11 in which context do you mean here 'packed'? 08:41:00 It's not a two-dimensional array; there's no wasted space if a string is shorter than a specified second dimension. The strings are end-to-end in memory. 08:41:32 ah.. 08:41:58 and place and place, are common-usage words that have wider applicability, as does array. 08:41:58 right. 08:42:21 hmm ok, I don't know them. 08:42:33 I only know does arrays. 08:42:34 Simple to put a wrapper around the 'here n greek !' stuff to make it neater, if that's a concern. 08:42:59 brb 08:44:01 It's so simple to knock together a data structure like this, I find the huge FSL-type arrays package serious overkill for most tasks. 08:45:36 There, I amended it with comments and stack diagrams. 08:48:30 This could be done with non-counted strings, too, but I prefer to code for what the app requires. 08:49:38 am I the only one who found aardvark's reaction to the revelation that source can be stored in files, a bit strange? 09:00:12 me too. 09:00:22 Especially since he *did* ask that question the other day. 09:01:36 http://tunes.org/~nef/logs/forth/05.10.03 at 13:36 09:03:37 I thought he had! 09:10:52 --- join: PoppaVic (n=pete@0-2pool198-37.nas30.chicago4.il.us.da.qwest.net) joined #forth 09:11:03 --- join: Raystm2 (n=Raystm2@adsl-69-149-55-17.dsl.rcsntx.swbell.net) joined #forth 09:11:18 back.. finally. 09:17:41 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 09:18:07 --- join: Raystm2 (n=Raystm2@adsl-69-149-55-17.dsl.rcsntx.swbell.net) joined #forth 09:31:55 --- join: madwork_ (n=foo@derby.metrics.com) joined #forth 09:42:44 --- join: foobarz (n=foo@derby.metrics.com) joined #forth 09:46:07 --- quit: madwork (Read error: 110 (Connection timed out)) 09:46:11 --- nick: foobarz -> madwork 09:48:18 hey mad 09:49:52 --- quit: madwork_ (Read error: 110 (Connection timed out)) 10:06:01 There, tidied it up: http://pastebin.com/384028 10:21:40 hmm, why do you think it was strange? 10:32:52 --- join: snoopy_17 (i=snoopy_1@dslb-084-058-121-104.pools.arcor-ip.net) joined #forth 10:38:15 --- quit: snoopy42 (Read error: 104 (Connection reset by peer)) 10:38:39 --- nick: snoopy_17 -> Snoopy42 10:56:32 --- join: aardvarx (n=folajimi@shell2.sea5.speakeasy.net) joined #forth 10:57:16 All, please pardon my abrupt exit earlier; I had to move to a different location which was about a half-hour away. 10:57:47 heh 10:58:24 And, here I was thinking about bailing and cogitating dinner 11:01:33 Quartus, is there an easy way to identify an "unindexed array"? 11:01:52 wtf is an "unindexed array"? 11:02:16 If I knew, I wouldn't be asking. 11:02:29 can you flesh out an example and use? 11:03:01 I'm following a code sample. 11:03:03 http://www.forth.org/svfig/Len/arrays.htm 11:03:27 ohhh 11:03:50 funky.. It's just a buffer 11:04:32 Well, seeing that it is an array... 11:04:48 yeah - he's saying he objects to calling a 'buffer' an array 11:05:33 so, my bet would be that his forth is embedded a buffer in dictionary-space, and letting him r/w anything to it (based on size) 11:06:08 It's tough reading/dealing with F-PC examples - as they are DOS-based messes 11:07:08 He's (apparently) of the opinion that an "array" differs because you know it's element-size, array-length and most likely have the data set forever. 11:08:23 Basically, he's splitting his "hares" because they are creating buffers inside the dictionary-space. 11:12:27 Did that help, or did your connection croak? 11:12:40 Not really. 11:13:06 I mentioned earlier that I was trying to implement this in C, but that did not work out too well. 11:13:16 what part is confusing? All he did was proclaim he wanted a special word for "buffers" 11:13:19 ahhh 11:13:23 I tried using sizeof() to determine the dimensions of the array. 11:13:36 you CAN, but it's sorta' messy 11:13:55 I would recommend using a struct, instead 11:13:59 Quartus says that the function returns a single value, so it is not particularly useful for multi-dimensional arrays. 11:14:16 sizeof? of course 11:14:19 The sizeof() function, that is. 11:15:07 There are two solutions that I can recommend: 1) Use a macro(s) and malloc; 2) Use malloc and a struct. 11:15:12 In MATLAB, it is easy to determine the dimensions of a matrix. 11:16:09 in the former, you'd use a macro such as: "base[MATRIX(x,y,z)]" 11:17:01 and in the latter, the ranges are members of the struct and indexed from the final (lying "foo data[1];"). 11:18:50 Some folks may also recommend something like: "p=malloc( int[X][Y][Z] );". I've done it, but it never makes me happy. 11:19:42 --- join: aardvarx_ (n=folajimi@shell2.sea5.speakeasy.net) joined #forth 11:19:53 The folks in ##C can help vastly with that latter mess, because sizeof() WILL work with that and some nasty phrasing. 11:20:25 I am versed neither with malloc() nor macros... 11:20:29 I never saw much point in creating a square-wheel to round it out 11:20:47 Perhaps there is a way to use Forth to achieve the same goal? 11:20:51 scratch that. 11:20:59 umm. ok. 11:21:02 Perhaps there is an EASIER way to use Forth to achieve the same goal? 11:21:49 use a colon-word to calculate indices, and allot to get the space, and a var to return the base. 11:22:41 : 2D ( a' x y --- a' ) .... 11:22:58 I still like structs so you can have ranges 11:23:11 No need for data types, I presume? 11:23:18 ( a' / ( a 11:23:34 I sure would think it over. Depends on the task at hand 11:24:07 Is this "Dictionary" available online? 11:24:37 how about... : Matrix ( rows cols unitsize --- ) .... DOES> ... ; 11:24:45 which "Dictionary"? 11:24:48 Some of the "words" are rather intuitive (e.g. create); others are rather suspect (e.g. allot) 11:25:17 oh.. well, I use "info gforth" and (within gforth) see 11:25:57 how many dims to your matrix? 11:26:33 24 * Y, where Y <=10 11:26:51 And, if it only has a program-life: can you allocate a dynamic memory-block? 11:27:22 are you using gforth? 11:28:05 aardvarx_: Quartus wrote a solution to the problem you have (I think). http://pastebin.com/384028 11:28:06 I guess so; but I would rather stay away from references to the term "dynamic" at this point in gforth to avoid any further confusion. 11:28:13 tathi, thanks! 11:28:17 not a 2D array, but an array of string pointers. 11:29:10 see allocate and free; write a word to compile a special "variable", returning the base and dims; write an indexer using those. 11:30:46 Your var is actually a variant of "constant".. Identifying the buffer and lines/rows (and maybe unitsize) 11:32:24 <_ja> say i want to put some commands into a sparc openboot prom to be executed upon boot 11:32:39 Quartus solved the problem with less than fifty lines! Unbelievable!! 11:32:39 <_ja> now, i can do things that display data, like emit, but i cant seem to do things that take input, like key 11:32:45 Laters, folks. I think it's time to chow. 11:32:55 --- quit: PoppaVic ("Pulls the pin...") 11:32:59 <_ja> when i put 'key' into the openboot prom nvramrc, the machien is comatose on booting 11:33:09 <_ja> then i need to use stop-n to get factory resets 11:33:18 <_ja> why cant i put 'key' ibnto the openboot prom 11:38:22 Hey all. 11:38:40 Hey there! 11:39:21 Pardon the abrupt exit earlier. I had to relocate. 11:39:44 I did get your note, though. 11:40:08 Note? 11:40:28 Yeah. 11:40:43 What note? 11:40:51 http://pastebin.com/384028 11:40:55 Ah ok. 11:41:23 _ja: don't know. I thought you should be able to do that. 11:45:50 ah. Looks like the standard specifies that nvramrc gets executed before the console is brought up. 11:46:07 <_ja> just tried again right now: machine comes up with no text and a flashing monitor light 11:46:23 <_ja> just put the word 'key' into nvramrc and store and reboot and youll see what io mean 11:46:29 <_ja> dont do it on a prioduction machine tho :) 11:46:35 <_ja> and make sure to save tyour current eeprom settings 11:48:46 <_ja> you can type 'key' at the openboot ok prompt and it works as expected 11:48:54 <_ja> but adding it to nvram and booting is trouble 11:49:33 http://rafb.net/paste/results/nyGFyY88.html 11:49:50 you might try doing "probe-all install-console" before using key... 11:50:53 --- quit: aardvarx_ ("leaving") 11:51:36 <_ja> cool. thanks! 11:52:01 just a guess -- I don't really know that much about it... 11:52:24 --- join: aardvarx_ (n=folajimi@shell2.sea5.speakeasy.net) joined #forth 11:52:25 <_ja> i think you are right on target 11:52:32 cool. 11:53:15 I never know - this box is a Mac, and I've messed with OF on here a bit, but sparc's openboot seems to have significant differences. 11:55:40 tathi, is having a Mac a personal preference, or is it "all you've got?" 11:56:13 <_ja> cool that worked 11:56:17 It was a personal preference. 11:56:35 Now I've switched to Linux, so it doesn't matter *too* much what kind of box I have. 11:56:53 <_ja> thanks tathi! you rule 11:56:55 Though I do some assembly-language coding, and I much prefer PPC to x86... 11:57:03 _ja: glad I could help :) 11:57:49 <_ja> thats had me baffled for months 11:58:03 <_ja> and you solved it in a single thought 11:58:18 tathi, isn't it nice how Linux makes everything look similar? :) 11:58:29 I always like it when my habit of reading random specs pays off. :) 11:59:17 aardvarx_: actually, I'm more interested in how it lets me set up my system however I want... 12:00:25 How do you mean? 12:01:38 I like to be able to go in and fix little things (mostly user interface details) when they annoy me. 12:02:28 Any particular examples? 12:03:20 replacing bash with gforth as a shell 12:03:52 hmm...I added a couple of new key bindings to Dillo, removed the delay when displaying messages from Lynx... 12:04:25 Does switching glx interfaces count as well? 12:04:42 I think I hacked ion (window manager) a bit 12:04:54 glx? 12:05:09 hah! another one efficient window manager user... 12:05:22 glx, gl extension... 12:05:28 Yeah. 12:05:32 http://www.sgi.com/products/software/opensource/glx/ 12:05:45 I didn't realize it had different interfaces 12:06:05 pah, sgi is somehow dead. else I would get one of that nice boxes. 12:07:04 another randomly derogatory comment from virl...thank you very much... 12:07:21 :P 12:07:31 hey, is it dead or not? 12:08:10 who cares? doesn't mean you can't get one of their boxes and use it 12:08:59 tathi, are you okay? :P 12:09:00 yes, I can't get a _new_ one 12:11:00 I don't see why that's a problem 12:14:58 I guess my time is done for today. 12:15:28 Quartus, thanks for the information you provided; it is greatly appreciated. 12:15:31 ttyl then 12:15:39 tathi, thanks for your feedback as well. 12:15:45 TTFN. 12:15:54 --- quit: aardvarx_ ("leaving") 12:16:03 --- quit: aardvarx (Read error: 104 (Connection reset by peer)) 12:20:31 --- quit: neceve (Read error: 110 (Connection timed out)) 14:53:06 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 14:53:06 --- mode: ChanServ set +o JasonWoof 14:58:11 The latest effort: http://pastebin.com/384437 15:38:41 I think I've factored that reasonably well. 15:40:46 Comments welcome. 15:46:11 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 15:46:21 --- join: Raystm2 (n=Raystm2@adsl-69-149-55-17.dsl.rcsntx.swbell.net) joined #forth 15:46:54 --- quit: Raystm2 (Remote closed the connection) 15:47:56 --- quit: nanstm (Read error: 104 (Connection reset by peer)) 15:50:02 --- join: Raystm2 (n=Raystm2@adsl-69-149-55-17.dsl.rcsntx.swbell.net) joined #forth 16:13:04 Updated, small bug in ** and added an error-check in generate-all-greek-sequences. http://pastebin.com/384479 16:50:08 --- quit: skylan (Read error: 110 (Connection timed out)) 16:51:24 --- quit: virl (Remote closed the connection) 16:53:41 Quartus: what is that you are working on? 16:55:59 Something illustrative for aardvarx. 16:56:42 Oh of course. I recall. Something about a 3d array. 16:57:01 2D. I started out just showing one way to store a string array in Forth, but decided to finish the work. 16:57:13 I was too busy to follow the convo from work today. 16:57:24 I see. 16:57:47 While you were doing that, I was getting Bell Helicopter back into production. 16:58:02 They were out of production? 16:58:40 Yes, a major autoclave lost a caster, a very special caster. Sort of a one of a kind. 16:58:48 Yikes. 16:59:16 I was able to get them up in 3hours. I'm so darn proud of myself, I had to tell someone. 16:59:25 It's a thankless job... 16:59:25 Congratulations. 16:59:28 :) 17:03:16 An alternate method: http://pastebin.com/384506 17:03:40 Raystm2, On behalf of Bell Helicopter for whom I am not authorized to speak, thank you. :) 17:03:40 In fact it's been sort of an odd week. I had to tell an archtitech that his caster design for a fence gate wouldn't work, and I had to design a new dual wheel caster to hold 90000 lbs 17:03:46 hahahahaha 17:04:40 I used to drink in bars for that kind of brotherhood stuff. 17:05:21 Then I had kids, and if you don't want your kid to do something, don't do it yourself. 17:06:35 Probably wise. 17:16:52 And that returns us to 'Monkey see, monkey do. 17:17:38 That doco about the way that octopi learn, I think it's relevent to us as well. 17:19:32 I don't know what a doco is, and I think it's 'octopuses'. :) 17:19:52 not the way I eat them :) 17:20:06 Heh. 17:20:16 doco= English slang for documentary. 17:21:23 Ah. 17:22:22 noun {C} plural octopuses or octopi 17:22:27 we are both correct. 17:22:37 Only if we trust your clearly highly-questionable dictionary. :) 17:23:02 This is very true. It is a web dictionary, afterall. 17:25:38 Gah, I pasted the wrong code last time. Here's the right one: http://pastebin.com/384522 17:39:47 --- quit: tathi ("leaving") 17:48:17 --- join: lament (n=lament@S010600110999ad06.vc.shawcable.net) joined #forth 17:48:25 wheee 17:48:34 i just got a forth book in the library 17:48:42 it's older than i am! 17:48:49 Heh. Which one? 17:49:17 it's called "FORTH" 17:49:29 there was a bunch there but most seemed rather crappy. 17:49:36 Who wrote this one? 17:49:37 i like the pretty rainbow covers though. 17:49:56 salman, tisserand nd toulout 17:49:58 *and 17:50:10 That's one I've heard of and never found a copy of. Interesting. 17:51:18 dunno if it will be enough to make me learn forth. But it's worth a try. 17:51:30 What year was it written in? 17:51:37 1983 17:51:50 So it may not be Forth-83 compatible, might be Forth-79 or FIG. Does it say? 17:52:18 79 17:52:24 That's unfortunate. 17:52:28 there were older books too 17:52:40 with lines like, "unfortunately, Forth is not yet standardized" 17:53:08 Yes. Forth-83 isn't *too* radically different from today's Standard Forth, but you'll find it tougher the further back you go. 17:53:52 well, i mostly want to just understand the damn language, the specific small quirks i can figure out later. 17:54:16 The language changed somewhat, though, esp. if you contrast Forth 79 and ANS Forth (94). 17:54:52 I hope you'll work on it with a copy of say, Gforth, and come here to ask when you run into differences. 17:55:55 actually i'm trying to play with ppforth 17:55:59 it's a thing for the palm 17:56:09 I remember it. It's quite primitive. May I suggest Quartus Forth? 17:56:17 The evaluation version will take you easily through that book. 17:56:26 i like the primitiveness :) 17:56:51 By primitive, I don't mean lean and spartan -- ppforth is not a polished implementation and may give you trouble. 17:56:53 (don't want to be stuck with something i don't want to pay for) 17:57:09 You're under no obligation to pay for the evaluation version of Quartus Forth. I should know, I'm the author. :) 17:57:25 that would make sense :) 17:57:42 It doesn't time out. It's memory-limited, but for the book you'll very likely never hit the ceiling. 17:58:07 And it's a mature supported product with a community of people to talk to. 17:59:12 Plus I'd be happy to coach you if you have any questions. 17:59:15 * sproingie waves to all and sundry 18:00:12 cya sproingie 18:00:33 waving hi actually :) 18:00:38 heh. Hi sproingie. 18:02:29 ok, i'll try it :) 18:02:56 I'm glad to hear it, lament. :) 18:03:19 And I assure you again -- the evaluation version puts you under no obligation. The license document covers that. 18:04:19 memory limited and no turnkey, right? 18:04:24 Right. 18:04:35 what's the mem limit, incidentally? 18:04:46 15K of code. 18:05:16 pretty generous. could write a good size app in that 18:05:36 You can, yes. I'm working on enhancing the optimizer presently with an eye to even further decreased codesize. 18:06:58 The evaluation version happily reads the 'startup.quartus' memo, so you can include your source from there for testing as you go. 18:09:41 lament, looking at your user info -- do you prefer a language other than English? Quartus Forth comes in a number of international versions. 18:10:17 English is fine. 18:10:44 Damn, I was hoping for a new victim to test a translated version on. :) 18:11:24 startup file is nice. so in a way, you do get one turnkey app 18:12:03 In a way, yes. And you can use external GUI resources too. 18:12:19 i'll have to buy a palm someday 18:12:24 another one that is 18:12:28 Tomorrow is that day! :) 18:12:45 * sproingie had a palm III way back in the stone age, had a copy of quartus forth on it too! 18:13:10 Right on. 18:13:31 i did a hello world on it and that was about it. 10 years later i pick up forth again ;p 18:14:27 Better later than never. :) 18:14:37 i suspect i'd want a model with a keyboard if i wanted to develop using it 18:14:54 There's an external IR keyboard available, I use one quite often. 18:14:58 even with short words, coding with graffiti is painful 18:15:13 In truth I find I don't mind it. I keep a library of shortcuts programmed in. 18:15:35 It does encourage you to think before you write, which is surprisingly helpful. :) 18:15:40 my hands tend to cramp up. it's why i gave up handwriting for the most part in the first place 18:16:41 Then the keyboard is a good choice. Get a full-size keyboard, is my recommendation -- thumb keyboards can be hard on the thumbs. 18:18:17 lament, lest you think I'm trying to dupe you into becoming a customer -- I recommend you use the eval of Quartus not just because it's mine, but because it's far less likely to crash on you, so the errors you encounter while you learn will be your own, and not the fault of ppforth or another less polished product. 18:19:27 hey Quartus i noticed your name on some "forth200x" docs. anything come of that? 18:19:59 Yes, that's an on-going effort. I've already incorporated the Forth200x DEFER wordset into Quartus Forth 2, for instance. 18:20:04 * sproingie figures it'd be nice if the other forth bigwigs would pay a visit once in a while. didn't CM drop in a long time back? 18:20:19 what's DEFER do again? 18:20:34 sproingie, I don't know. I chatted with CM a few years ago on IRC, but I haven't heard of anything recent. 18:20:52 defer foo : hey ." Hey!" ; ' hey is foo foo -> Hey! 18:21:26 Revectorable words. 18:21:42 --- join: asymptote (n=weldon@220.muma.nsvl.chcgil24.dsl.att.net) joined #forth 18:21:46 so it's what crc is calling 'vector' 18:21:51 sproingie, could be. 18:22:02 maybe he can be convinced to use the normal term while the words are new 18:22:15 i don't care for the use of 'vector' since to me that looks like a type 18:22:17 DEFER/IS are old Forth words in common use. The Forth200x proposal adds three more: action-of defer@ and defer! 18:22:36 action-of-defer@ is rather a verbose word 18:22:48 so what do those two do? 18:23:07 no -- action-of defer@ and defer! 18:23:11 ohhhh 18:23:17 * sproingie thwaps himself 18:23:31 so what do those *three* do? :) 18:23:54 action-of returns the current xt of a deferred word. defer@ and defer! fetch and store an xt out of/into a deferred word, given its xt. 18:25:00 action-of forward-parses the name. 18:26:25 In old systems defer was just : defer create ['] abort , does> @ execute ; and is was : is ' >body ! ; 18:26:33 (or close, I haven't typed that in to check it. :) 18:27:27 The Forth200x wordset allows for other implementations. It isn't mandated that CREATE be used to make deferred words, nor that they be accessibly by >BODY, so you need defer@ and defer!. action-of is syntactic sugar, but helpful. 18:28:55 makes sense 18:29:25 What does "abort" do? 18:29:47 Kill the entire program? 18:29:54 Clears the data stack and takes you back to the prompt. 18:30:20 looking at some interesting papers about alternatives to gc 18:30:25 http://home.pipeline.com/~hbaker1/LinearLisp.html 18:30:38 I was just looking for that. Thanks. 18:31:00 how serendipitous 18:32:04 i guess i should give try/catch a good test by adding a top-level catch to QUIT 18:32:11 in rf that is 18:33:24 anything else interesting in forth0x? 18:43:56 sproingie, sorry -- was on the phone. 18:44:22 Let me refresh my memory about Forth200x-- 18:44:58 http://www.complang.tuwien.ac.at/forth/ansforth/rfds.html 18:45:13 It's a conservative effort, as these things should be. 18:46:39 The latest and most ambitious is the XCHAR thing, to support UTF8. 18:50:47 sproingie, rather than add a top-level catch, you might have THROW check to see if there's an active CATCH frame, and if not, perform the default handling. 18:57:15 hm. in effect turning an uncaught exception into an ABORT" with an appropriate message 18:58:04 XCHAR would be good to have 18:58:56 what does xc@+ do if it encounters a malformed encoding? 18:59:21 "an ambiguous condition"? 19:01:25 actually, does xc@+ return the utf8 bytes or the codepoint? 19:04:17 --- join: virsys (n=virsys@or-65-40-181-147.dyn.sprint-hsd.net) joined #forth 19:14:25 sproingie, I don't know; I haven't examined it closely yet. 19:24:11 Does "Every serious Forth programmer, and everyone who wants to be one," need `Forth Programmer's Handbook' ? 19:26:46 never heard of it. tho i'm not a serious forth programmer 19:27:20 http://www.forth.com/Content/Handbook/Handbook.html 19:29:29 claims it goes beyond starting forth 19:29:34 so does brodie. thinking forth. 19:35:17 I hate to diss Elizabeth Rather, but the Forth Programmer's Handbook is not a particularly good textbook for teaching. 19:35:52 You can read it for free if you get the eval copy of SwiftForth. 19:35:56 Comes with a non-printing PDF version. 19:37:29 i should have learned more prolog. program i need to write for work is ideal for constraint solving, but i haven't a clue how to do it 19:38:26 really simple problem. you have a collection of rules, each rule has a score. you have a collection of spam messages, and a collection of ham messages. rules fire on both ham and spam 19:38:39 Will the `forth mind' do constraint solving? 19:39:02 the problem is to maximize the scores of each rule so that they add up to 100 on as much spam as possible, but with no ham message getting a total score of more than 90 19:39:38 sproingie, that's not a static problem, is it? Wouldn't you have to weight each rule's score against the probability of encountering it? 19:40:11 not really. the probability of encountering it is expressed by how frequently it fires in the spam or ham corpus 19:40:20 But a static corpus. I see. 19:40:43 well, i update the corpora as often as i can, though i'm a bit resource-limited 19:40:55 Once you've run the frequencies, the math is very simple -- isn't it? 19:41:03 * sproingie keeps pushing for a machine that's tuned for this purpose, but it ain't gonna happen 19:41:21 it's really something of a goal seek with a constraint 19:41:44 maximize the amount of spam with total score >= 100, proviso that no ham gets a total score of >= 90 19:41:53 Why such unusual requirements? 19:42:02 those are real world requirements actually 19:42:23 i'm training a set of spamassassin-like rules 19:42:24 I understand the requirement of separating ham from spam, but not the rationale behind the 100 and 90 boundaries. 19:42:45 90 is the threshold at which the product (brightmail) calls a message "probably spam" 19:42:52 and 100 is where it calls it definitely spam 19:43:45 So you the output of your analysis needs to either emit a value <90, or a value >=100. But the analysis can take any form at all, and need only make the ham/spam determination, not somehow magically compound rule values so they add up to a certain value. Or do I misunderstand? 19:44:41 the idea is to find the ideal combination of values so that they put as much spam over 100 as possible but zero ham at 90 or over 19:44:55 That sounds like a very complex approach to the problem. 19:45:00 Will the `forth mind' do constraint solving? 19:45:04 actually there's a perfectly good algorithm for this, the trick is, i will add weighting in the future other than how much spam it fires on 19:46:07 personally i'd love to do this declaratively instead of imperatively. i just wish i studied enough prolog or something similar to make it happen 19:46:19 Raystm2, I'm not sure what the 'forth mind' is. 19:46:55 http://mind.sourceforge.net/mind4th.html 19:47:34 THAT old load of crap! Ok, I can guarantee that the 'Forth Mind' can't do constraint solving, or ANYTHING ELSE. :) 19:47:40 oh my goodness, it's mentifex 19:47:44 he's a good ol crank 19:48:04 Yes, please keep Mintyflex out of the channel, even in casual reference. 19:48:23 incidentally, 'fex' is latin for shit 19:48:26 Sheesh, how was I to know.... 19:48:41 In fact even mentioning him is probably going to draw him here, I have no doubt that he vanity-googles on a daily basis. 19:48:47 i'm the newbie, remember. 19:49:57 don't worry about it, we're not piling on you. he *is* a kook par excellence though, i'd read his code for the entertainment value alone 19:50:13 I'll leave that for you, then. :) 19:50:29 in some sense, i'm kind of amazed he actually knows any code other than javascript 19:51:26 He became momentarily vocal about Quartus Forth at one point, which is why he was ever on my radar. 19:51:57 Save me, this is **** then? 19:51:59 the guy reminds me of frank chu 19:52:17 I feel privileged that I don't know who that is. Please do not educate me. 19:52:21 lemme see if i can pull up some photos of chu. he's sort of a san francisco legend 19:53:36 photo of him and one of his signs: http://www.sfgate.com/cgi-bin/object/article?f=/c/a/2005/02/06/PKGVIB4E271.DTL&o=0 19:54:42 I mean, there is so much work here, is none of it redeemable? 19:55:13 Raystm2: don't confuse output for work 19:55:44 :) 19:55:49 acknowledged 19:55:58 Yes. A man with OCD who has to count to a thousand by threes every time he sees the colour blue, he generates a lot of output, but it isn't useful. If you get my drift. 19:56:41 Sounds like Hughs. 19:56:53 Let's be glad the web came after Hughes. 19:57:01 hehe 19:57:21 I believe I understand that statement. 19:57:42 the guy's got his own wikipedia entry now 19:57:52 balanced? 20:01:12 pretty much 20:01:16 http://en.wikipedia.org/wiki/Frank_Chu 20:02:23 guy's a latter day emperor norton. san francisco's got the best kooks 20:04:36 hm. weirdness happening on machine .. gotta reboot 20:04:57 --- quit: sproingie (Remote closed the connection) 20:39:59 --- quit: asymptote (Read error: 110 (Connection timed out)) 21:02:28 --- quit: virsys (Read error: 104 (Connection reset by peer)) 21:03:41 --- join: virsys (n=virsys@or-65-40-181-147.dyn.sprint-hsd.net) joined #forth 21:27:46 Hopefully my last edit of the greek generating code: http://pastebin.com/384673 23:08:33 --- join: Amanita_Virosa (n=jenni@CPE0000e812679b-CM000a7362da55.cpe.net.cable.rogers.com) joined #forth 23:57:17 --- quit: JasonWoof ("off to bed") 23:59:59 --- log: ended forth/05.10.05