00:00:00 --- log: started forth/06.10.09 00:34:22 --- quit: segher (Nick collision from services.) 00:34:32 --- join: segher (n=segher@dslb-084-056-151-193.pools.arcor-ip.net) joined #forth 01:06:35 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 01:09:11 --- quit: virsys (Read error: 104 (Connection reset by peer)) 01:12:46 --- join: virsys (n=virsys@or-71-53-74-48.dhcp.embarqhsd.net) joined #forth 02:02:17 --- quit: Teratogen (Remote closed the connection) 02:24:01 --- join: Teratogen (i=leontopo@slashsnot.org) joined #forth 02:54:04 --- join: arke (n=arke@pD9E07CE0.dip.t-dialin.net) joined #forth 03:26:28 --- join: zpg (n=user@user-54434544.lns6-c7.dsl.pol.co.uk) joined #forth 03:26:44 morning chaps. 04:35:32 --- quit: segher (Nick collision from services.) 04:35:44 --- join: segher (n=segher@dslb-084-056-169-231.pools.arcor-ip.net) joined #forth 04:59:09 --- join: vatic (n=chatzill@pool-162-84-156-148.ny5030.east.verizon.net) joined #forth 05:03:52 hey vatic! 05:04:02 http://ezil.sourceforge.net/latest/alphaprint.forth.html <-- vectored execution is pretty neat. 05:15:41 zpg: hey! 05:17:18 Yup! It is cool... 05:18:24 i'd like to talk to you more about your ideas for music projects + forth ... a field that really interests me. can't chat for long now though, got to pop out into town in 15mins or so 05:29:11 --- join: erider (n=erider@unaffiliated/erider) joined #forth 05:48:04 zpg: I'm prepping my teaching today, so time is limited for me too... 05:49:03 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 06:01:08 --- nick: crest_ -> Crest 06:03:10 --- quit: Crest ("Leaving") 06:10:55 --- join: Crest (n=crest@p5489435B.dip.t-dialin.net) joined #forth 06:14:00 --- join: Ray_work (n=Raystm2@199.227.227.26) joined #forth 07:02:49 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 07:03:06 good morning 07:03:27 hello snowrichard 07:03:46 still on my first coffee 07:39:12 --- quit: snowrichard ("Leaving") 08:05:04 --- quit: timlarson (Read error: 110 (Connection timed out)) 08:30:48 back 08:31:19 hi all. 08:31:24 hi zpg 08:31:35 hi all 08:31:41 hey erider, Quartus 08:32:17 i was pondering this on my walk: imagine the pseudo-code/real-code (depending on language) --> split (aString, whitespace) --> or let's simplify and use split(aString, " ") 08:32:48 i.e., "this is a string" we want as an indexable data type (perhaps list): "this", "is", "a" and "string. 08:32:52 *"string" 08:33:23 now, would one implement a list interface for this, as per Quartus', or is there a more Forthy way to go about splitting a string so that it's indexable? 08:34:24 (by token) 08:34:49 Quartus I now understand why the talk about banned Poppovic 08:34:59 how so? 08:35:01 he is kind of a jerk 08:35:10 He's the gold standard. 08:35:33 Anyway, to split a string, SCAN is a commonly found word. Scans a string up to a delimiter. 08:35:42 ah. 08:35:47 heh. 08:35:48 neither the less kind of a jerk 08:36:00 Gold standard for jerks, I mean, erider. :) 08:36:08 lol 08:37:05 he is going off about how C is a macro-assembler 08:37:16 whos' PoppaVic when he's ID'd? 08:37:24 Guy named pete. 08:37:59 oh ok, not a usenet poster then? 08:38:05 Not so far as I know. 08:38:06 You're talking about another IRC channel I gather. 08:38:24 --- join: nighty__ (n=nighty@sushi.rural-networks.com) joined #forth 08:38:54 probably ##c zpg 08:39:33 ah ok. 08:40:04 --- join: rabbitwhite (n=Miranda@136.160.196.114) joined #forth 08:43:14 Hi Quartus! your delete-first-node works fine although I haven't studied it carefully :-) You had mentioned free-node. What is it supposed to do? 08:47:11 A wrapper for free. : free-node ( node -- ) ?dup if free throw then ; 08:47:42 I revamped the list stuff a bit last night. I'll put it up later. 08:47:58 incidentally, what's the most sensible way to look up SCAN's usage? consulting the ANS spec? 08:48:15 It's not a Standard word. GForth has a version of it. 08:48:43 Quartus: OK. Also, no need to spend much time with the stuff I put up. I'll have a rewritten version by week's end... 08:48:54 It's just a loop that finds the next occurrence of a given character in a string. 08:48:54 ANY time ;-) 08:49:03 heh. Ok. 08:50:50 --- quit: nighty_ (Read error: 110 (Connection timed out)) 09:00:15 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 09:07:16 odd, the info page for gforth doesn't contain SCAN 09:08:39 see scan prints the code though 09:09:27 bbl 09:10:49 Hi 09:11:33 hi Ray 09:15:38 --- join: erider_ (n=erider@unaffiliated/erider) joined #forth 09:15:56 --- quit: erider (Read error: 110 (Connection timed out)) 09:16:36 --- nick: erider_ -> erider 09:46:39 --- quit: erider (Read error: 110 (Connection timed out)) 09:47:02 --- join: erider (n=erider@unaffiliated/erider) joined #forth 10:09:10 wb erider 10:09:23 --- quit: erider (Read error: 110 (Connection timed out)) 10:09:35 --- join: erider (n=erider@unaffiliated/erider) joined #forth 10:16:57 anyone else here using emacs? 10:28:22 muahahaha. no. 10:29:43 heh. 10:30:18 i might be crazy, but i'm not stupid 10:30:32 --- quit: Quartus_ (Read error: 104 (Connection reset by peer)) 10:31:33 ok ok. for some reason, it doesn't respect comint-mode's echoing rule. i was basically getting my input and then the input re-echoed by gforth. i've written a function to suppress this. 10:37:02 --- join: Quartus_ (n=Quartus_@209.167.5.1) joined #forth 10:37:02 --- mode: ChanServ set +o Quartus_ 10:37:25 I miss anything? 10:37:40 --- part: Joely left #forth 10:40:30 just me yaddering about gforth.el, the emacs mode. 10:41:13 are their mode plugins for vim? better than the included one 10:41:27 I wrote a small syntax colouring dealie for one of the editors I use. 10:41:30 which learns the names of defined words etc.? 10:41:44 Quartus_: what do you use? 10:41:50 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 10:42:15 joe. It doesn't learn new word names, but my modules are short, so it's not needed. 10:42:52 couldn't one modify TAGS for a vi (or emacs) session? 10:42:59 i never use it, but it seems appropriate for this sort of task. 10:44:04 I don't use either one. 10:45:36 http://ctags.sourceforge.net/whatis.html <-- no Forth. but a keen hacker could implement it pretty easily i'd imagine. 10:46:01 primarily standard words stand out, as do comments, and defining words. It's novel, but I'm not sure it adds any actual value for me. 10:46:33 oh, and control-structures are all one colour, too. 10:46:38 zpg: You'd get better results by modifying CREATE to record the source file and line than you would trying to update ctags. 10:46:45 zpg: I think gforth has tags support... Look around for a tags.fs file... 10:47:05 --- nick: TreyB_ -> TreyB 10:49:35 zpg: if youi installed in /usr/local/src/gforth-0.6.2, it's right there... 10:50:34 oh really? looking 10:51:10 here it is. 10:51:12 \ usage: gforth tags.fs your_files.fs ... 10:51:12 \ then: vi -t word_name 10:51:12 10:54:10 vatic: better add-atom than add-node, you think? 10:55:45 --- join: Joely (n=joel@adsl-70-131-102-168.dsl.emhril.sbcglobal.net) joined #forth 10:56:40 nice: http://groups.google.com/group/comp.lang.forth/browse_frm/thread/2eb09aeb74c5b93/0d921218ecc3da3b?lnk=gst&q=string+parsing&rnum=3#0d921218ecc3da3b 10:56:46 vatic: you use vi? 10:57:01 what's that link, zpg? 10:57:11 can't browse to it here. 10:58:01 zpg: when OSX or Linux wants me to... ;-) 10:59:27 vatic: heh 10:59:38 Quartus_: it's a few definitions allowing string parsing 10:59:42 Quartus_: I'd respect your judgement, but maybe it's more in keeping with the Lisp terminology that you've started. 11:00:16 fish now this is it. ok 11:00:16 slice ok 11:00:16 .s <9> 8407101 3 8407098 2 8407093 4 8407089 3 4 ok 11:00:35 the TOS is the number of tokens in the original string, used by the serve word. 11:01:08 zpg, it dumps all the substrings on the stack? Yikes. I'd prefer to get a new substring on each call. 11:01:23 yes. 11:01:40 i guess you could modify it quite simply. 11:01:52 the stack is not for storage. 11:02:03 Quartus_: I did a first pass of a sample knowledgebase from Townsend & Feucht and am now proceeding top-down to figure out what I need in the middle to make their backtrack search example work... 11:02:12 i guess you could modify it quite simply, pushing back a shortened original and the token you've pulled off. 11:02:34 zpg, I think that's better Forth. 11:02:38 vatic: are you still busy with work or do you have some time on your hands now. 11:02:48 Quartus_: interesting, perhaps i'll make that a mini-project for the next day or two. 11:02:50 zpg: bit of a break... 11:03:02 Quartus what is the stack for if its not for storage? 11:03:07 vatic: ah ok. well, when you have some time, the music+forth discussion would be great. 11:03:18 erider, parameter passing. 11:03:34 okay. this 'fish' words is defined thus: ': FISH ( -- c-addr u ) 0 PARSE ;' 11:04:01 zpg: OK, I don't know how generalisable my beliefs are though... ;-) 11:04:02 that'll return the unparsed remainder of the input buffer. 11:04:06 so 'fish weiofjweio fjfwefio jweiofj weiof jwoiefj' <-- all tokens become part of the string. would i be able to break this process so i could say 'fish this is a string .s' for example 11:04:19 vatic: specifics are fine ... especially when added together :) 11:04:55 zpg, more conventionally, s" blah blah blah" ... 11:05:43 Quartus_: Oh, sure. but moving away from the specifics of this example, imagine I'm using someone's code and it behaves in a similar way, sucking up everything from the input buffer. How would I break out of this so that a token behaves as an executable word again? 11:06:04 again? 11:06:21 0 parse goes to end-of-line. 11:06:53 if you want to parse up to a specific delimiter, do that. That's what s" does. 11:08:10 Quartus_: actually, if you wanted to keep with Lisp naming, I think a node would be a "cons cell" or cell, right? 11:08:33 Cons is a pair. 11:09:19 so a node is a pair, really, and hence add-node is a bad name; it does add a cons'd pair, but builds that from a passed atom. 11:10:12 I wouldn't use cell even if it were right, as it has another meaning in forth. 11:10:58 Quartus_: oops! How true... 11:11:34 Quartus_: In Lisp, an atom is number, symbol or nil, right? 11:11:55 Think so. Anything that's not another list. 11:12:11 that's right 11:12:15 so maybe not nil. Null. 11:12:22 nope. nil is the empty list. 11:12:37 oh wait. 11:12:37 right. So nil is not an atom. 11:12:43 (atom nil) ==> t 11:12:47 (listp nil) ==> t 11:12:52 it behaves as both. 11:12:53 nil is not a list, as such. 11:13:07 yeah. Special case. 11:13:13 no, but nil and () are equivalent in lisp. 11:13:58 (for the unlispy, 'atom' and 'listp' are both predicates) 11:14:18 Quartus_: ah ok, i see what you mean about delimiting and s" 11:14:41 so i'd say that this 'fish' word is pretty ugly to use, and unnecessary. 11:14:53 sounds like. 11:15:04 s" this is also a string." slice ok 11:15:04 .s <11> 1048941 1 1048936 4 1048933 2 1048928 4 5 ok 11:15:06 much nicer 11:15:22 (bearing in mind your comment on using the stack for data storage of course) 11:15:26 slice is still an abomination :) 11:15:38 a bastard child. where's the baron? 11:15:50 Well, from wikipedia: "In computer science, a linked list is one of the fundamental data structures used in computer programming. It consists of a sequence of nodes, each containing arbitrary data fields and one or two references ("links") pointing to the next and/or previous nodes." 11:16:28 technically, thats a doubly linked list. 11:16:40 a singly linked list has only a ->next member. 11:16:41 sure. Linked lists have nodes. Add-node, to me, suggests that it takes a node and adds it. It doesn't. It takes an atom, and builds a new node. 11:16:43 vatic: i wrote a C implementation of a lisp-like linked list system recently. this intrigued me as previous versions were always very different. most often, i'd have a list of (elt *), where elt is a structure with next and previous pointers. 11:16:59 (doubly linked, as mentioned above) 11:17:25 the latest version had a different structure with simple car and cdr (head and tail) pointers. 11:17:53 Quartus_: I see your point. Arguments are "field" & "list" 11:18:01 to add-node 11:18:06 more first/rest than head/tail, no? 11:18:22 value to be placed in a new field after it is appended to a list. 11:18:26 no, i used a cons model. 11:18:31 list.new[x] = value 11:18:43 zpg, ah. 11:18:51 it was interesting. 11:19:10 hey vatic, try the magic summoning words :) 11:19:22 kind of proof-of-concept, thinking about man hours and how feeble an implementation i'd end up with. but i got what i wanted out of a couple of evening's tinkering. 11:19:39 I haven't been told I'm wrong about everything yet today :) 11:20:01 Quartus_: Hahaha! But you've got the power... (any minute now, counting... 1 2 3...) 11:20:18 I can't remember how to spell the dolt's name. 11:20:29 Quartus_: that's right. Not enough abuse! 11:20:40 Sauchev? 11:20:40 yeah. 11:20:44 ASau? 11:20:49 Alexej? 11:21:06 "Yoohooo..." 11:21:07 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 11:21:07 --- mode: ChanServ set +o slava 11:21:07 I think there's another j on that. 11:21:20 Quartus: switched to python yet? 11:21:24 well, we got a russian! 11:21:49 Quartus_: proving it's white magic. 11:21:51 slava, I know, clearly we all should, light apparently shines from its ass! 11:21:56 slava, i'm pondering what Dotty said; thought it was very interestin 11:22:04 is he a White Russian? 11:22:13 who is Dotty? 11:22:15 --- quit: erider (Read error: 110 (Connection timed out)) 11:22:16 John Doty? 11:22:19 yea :) 11:22:21 Quartus_: that's a mixed drink ;-) 11:22:25 what did he say that is interesting? 11:22:31 dotty describes him. 11:22:34 i don't see how it could be, unless you've never heard of Python 11:22:37 --- join: erider (n=erider@unaffiliated/erider) joined #forth 11:22:42 python's basic description 11:22:49 slava: Hahaha!! 11:22:54 common lisp is better than python anyway 11:22:59 a VM, compiler and seriously flexible importing facility. 11:23:13 it's a good summary 11:23:15 python's 'importing' is simply a feature for loading source files 11:23:19 yea 11:23:28 the fact that people think python's 'import' is amazing simply underscores the stupidity of the discussion 11:23:29 resulting a language that makes basic fast by comparison. 11:23:35 and it's exactly what's missing from the Forth concept 11:23:39 eh 11:23:45 name one forth which cannot load source files 11:23:47 ok, colorforth :) 11:23:53 heh 11:24:08 why should all forth code be compiled statically into a running forth? 11:24:09 yeah i don't quite see the 'import' hyperbole 11:24:18 Quiznos: is it? 11:24:23 mostly afaik 11:24:41 last i checked, most forths were composed of multiple source files, and one can load their own sources at will 11:24:43 know farther. 11:24:47 i've never met a forget that could properly handle a voclist 11:24:55 it seems a bit of dated brodie is "' ewiofjiow" to check to see whether a word is defined. 11:25:18 zpg, are you on the crack? :) 11:25:20 what does FORGET have to do with this? 11:25:30 i'm not sure python can reliably unload code either 11:25:37 Quartus_: my personal life shall remain shrouded in clouds of mystery. 11:25:49 Ewio-what? 11:25:53 zpg: clouds of smoke! ;-) 11:25:57 vatic: quite. 11:26:05 slava [composed] that is when building a system. what about after and a user wants to load an .fs to do some work? can he then unload that .fs code and continue or does user have to bye and reload the whole forth again? 11:26:05 Ewii Ewii Ewio. 11:26:20 why can't they just reload their .fs? 11:26:27 marker is for unloading code. 11:26:48 the point is, for the word 'zxcvbn' which is undefined, Brodie suggests "' zxcvbn" to retrieve its address, which if 0 indicates an undefined word. 11:26:52 and what if code is loaded after an intermediate module? 11:27:03 and the latter deps on the intermediate? 11:27:05 FWIW, reloading source files in factor replaces definitions 11:27:12 : a 1 ; : b a ; : a 2 ; b . ==> prints 2 11:27:14 zpg, I don't quite follow. 11:27:50 Quartus_: just to test whether, in yetanotherForth, we have 'not' defined, say. we could say, according to Brodie, "'' not" 11:27:53 damn 11:27:54 ' not 11:28:07 if you don't want to use marker, don't . Leave the code in memory. 11:28:08 which if defined, return's the address in the dictionary (presumably). 11:28:26 i have apostrophe overload it seems. 11:28:38 zpg, any standard forth will throw an error on ' foo if foo isn't there. 11:29:04 Yes, that's my point. according to Starting Forth '81, this is a valid test, apparently. I'm guessing it doesn't clear the stack either. 11:29:08 I use [undefined] foo [if] ... 11:30:25 oh, nice. 11:30:54 is there a way to clear the stack without backtrace? i use 'xx' but it get some ugly error messages. 11:31:03 *i get 11:31:10 (sorry for typos, this is getting silly) 11:31:15 the backtrace offendeth thee? 11:31:23 aye, the artist in me. 11:31:33 uh-oh... 11:31:46 : reset depth 0 ?do drop loop ; 11:32:19 oh nice. 11:32:25 depth is an ANS word? 11:32:39 it is. 11:34:39 Wait, colorforth loads source. I've done it. 11:35:49 pre-parsed and compressimated in some way, isn't it? 11:36:35 so every wiki page with colorforth source on it has huge screen grabs that look like the second coming of the VIC-20. 11:37:42 hahahaha 11:38:06 nice visuals. ;) 11:38:22 blame the html-ers for that. code a better one. :) 11:38:52 what's needed is the other way back. code an html page of colorforth and have it run in the system, that would be neat. 11:39:10 "Although I've been frustrated at times, I'm going to keep going with Forth. If nothing else, it's blown fresh air into my mind and started to loosen the ingrained habits of 15 years of programming in the mainstream." -Mark Lawson 11:39:35 yeah, some way of, oh, electronic interchange, would be handy, you think? :) 11:40:27 what are you guys looking at? 11:41:23 pick a colorforth wiki page. Here's one: http://www.quartus.net/cgi-bin/twiki/view/Main/ColorForthHelloWorld 11:41:40 Tell me that's not 1982 all over again. 11:41:59 ah ok, this scared me last time i saw it. 11:43:02 your site is down 11:43:07 is it running on python? 11:43:11 heh 11:43:15 my site is up. It's not running on Python. :) 11:44:37 usenet -- "next revision of the Forth standard", is that actually on the cards? 11:44:45 no 11:45:00 There's something called Forth200x, which is a group that's discussing add-ons. Minor stuff, really. 11:45:01 there's usenet, and then there's reality. 11:45:12 DEFER, 2VALUES, and other stuff like that. 11:45:18 There's no new ANS committee presently. 11:45:54 i see doty has posted yet another reply, which ignores everything posted on this thread 11:46:00 So far I've adopted the defer proposal into Quartus Forth. 11:46:02 apparently he wants to type " hashes" import to get a hash word set 11:46:14 nothing is stopping him from coding it up! 11:46:20 Oh, there's something stopping him. 11:46:25 ability, yes 11:46:33 At least. 11:46:38 heh 11:46:42 factor looks nice btw. 11:46:56 still haven't had a chance to check it out, but i'm impressed. 11:47:10 I completely gave upon Aleksejj (ASau) after his last reply. 11:47:25 how can you be impressed by something you haven't looked at? 11:47:34 that's the reason python is making the rounds on c.l.f lately 11:47:44 slava, you've posted a few snippets of factor in c.l.f. of late. 11:47:52 somebody read a blog posting about this magical 'import' feature for loading source files and decided its the best thing since sliced bread 11:48:12 I can type include assoc.fs and have associative arrays at my fingertips. It's about 12 lines of code. 11:48:28 yeah, but your include is nowhere near as cool as import 11:48:45 oh that's true... hang on.... : import included ; s" assoc.fs" import 11:48:47 There. 11:48:48 They solve different problems. 11:49:11 Quartus: NOW you can tackle python head on 11:49:12 slava: your example on this thread 11:49:22 slava, WOO HOO! :) 11:49:34 is ASau claiming one cannot do test driven development in forth? 11:49:34 i haven't installed or tinkered, i'm referring to your hashing code. 11:49:40 hell you can do TDD in assembly. 11:49:54 zpg: you should, since hashes are probably the most trivial feature anyway. 11:50:05 slava, is he? I've seen a lot of his stupidity, but not that one. 11:50:37 slava: I shall, but I want to pay attention to Forth first. Get some groundwork. 11:51:06 slava, I'm seeing J Thomas's reply to ASau, but not the original, oddly. 11:51:39 He seems to be confused by the difference between 'code you can translate to your particular dialect' and 'portable code'. 11:51:43 Quartus: I refuse to argue to you a point that you made yourself, that if you don't like what you see, thank ( your fav diety here ) that it's forth and fix it yerself. lol 11:51:59 Ray_work, I have a C64 here, I shall get to work at once. :) 11:52:05 hehehe 11:52:31 I can translate BASIC to Forth with 'relative ease'; that doesn't mean BASIC is a Forth dialect, nor that the original code is 'portable' in any useful sense of the word. 11:53:03 and then there's C "portability", where you have 30 programs in 1 thanks to preprocessor conditionals 11:53:10 Yes. 11:53:23 I see, yes, he's claiming there's no tools for test-driven programming. How silly. 11:53:40 I use Hayes' tester, slightly modified, daily. 11:53:48 {{ 3 5 + -> 8 }} 11:53:59 here is my unit tester: http://www.factorcode.org/repos/Factor/library/tools/test.factor 11:54:03 [ 8 ] [ 3 5 + ] unit-test 11:54:09 Sure. Same idea. 11:54:10 hmm, i like that syntax Quartus. 11:54:31 The original is { } but of course that's in common use for locals, so I renamed it. 11:54:37 oh what the hell... 11:54:41 * zpg downloads Factor 11:55:51 I actually wasted a half an hour looking at LSE64. It's a complete toy. 11:55:55 ya Quartus I will "me too" that likeing of the test code. 11:56:18 Ray_work, it's not mine, it's John Hayes'. It's really, really handy. 11:56:40 slava: what's your user-base like? 11:56:42 I saw some of it during your ANS for Retro. I'd say it's handy. 11:56:59 zpg: something like 5 people hacking on contributed libraries. 11:57:01 zpg: slava's user base is like you. 11:57:08 neat. 11:57:16 slava's user base likes ice-cream, rainy days, and puppies. 11:57:32 yes, they're pansies 11:57:34 Oh, and long walks on the beach. 11:57:46 romantic candle-lit dinners 11:57:47 hell, that actually sounds quite good. 11:57:48 where's the gun club? 11:57:49 * Ray_work wants to be a factor pansy, maybe someday. 11:57:55 vatic, wherever PoppaVic is. 11:58:02 lol 11:58:08 "Copyright 2004, 2005, 2006 John P. Doty and Matthew P. Wampler-Doty" 11:58:15 That's his son. 11:58:16 LSE64 is developed by a husband and husband team. how cute. 11:58:18 oh 11:58:19 KA-POW! 11:58:32 oops, factor.img was associated with squeak 11:58:37 isn't that what the Poppa part means, Pop-a-cap-in-nat-Vic(tum) 11:58:44 void interpreter( void ) { for(;;) (*(prim *)(intptr_t)*(cell *)(intptr_t)(*++lc 11:58:44 ))(); } 11:58:45 i like that 11:58:50 Ray_work, possibly :) 11:58:57 slava, you like that? Egadz. 11:58:57 Ray_work: Poppa Stoppa! 11:59:18 slava: wow, nice interface. 11:59:49 Quartus: it doesn't look bad. sort of like retroforth but in C. 12:00:01 slava, I'd need an hour to unpack all the casts and pointers. 12:00:09 The lack of scoping for "lc" really sucks. 12:00:16 Ray_work re 12:03:09 Quiznos: How are ya? 12:03:28 well. how are you? 12:03:50 more mystery. 12:03:56 i'm ADHD now. I take a pill. I stare at the screen for many minutes. 12:04:06 ew 12:04:10 Scopolamine or something? 12:04:20 Wellbutrin. 12:04:28 That's a brand name. Let me look it up. 12:04:30 makes me wanna quit smoking as well. 12:04:46 * Ray_work has been smoking the same ciggy for hours. 12:04:54 it messes with your brain cells 12:04:57 and wetware 12:04:57 lite it up--put it out. 12:05:58 People I tell, all say, "I knew there was something wrong with you!" -- Yikes, I'm just learning about this after 43 years... 12:06:04 Heh. Similar to scopolamine. That was a random guess, just based on you saying you stare at the screen after taking it. :) 12:06:13 Quartus: the assembly output by gcc is easier to understand than that line of C. 12:06:23 slava, it'd have to be. I've always hated C's pointer syntax. 12:06:34 there's nothing wrong with you that a good, minimally processed diet cant cure. 12:06:45 stop consuming over-procesed food. 12:06:55 Quartus: I don't really "just stare". I was funnin' there. 12:07:04 and eat a page of the bible a day, every day for three weeks, until symptoms disappear 12:07:09 well, I took your meaning; it lets you focus for long stretches. 12:07:20 slava LOL 12:07:20 Kind of forces it, unless you get distracted. That's scopolamine, anyway. 12:07:52 Quiznos: processed diet" 12:07:56 agreed. 12:07:57 * slava wonders if aids or ebola can be cured with a miniamally processed diet. 12:08:25 slava, it'll also re-grow limbs. 12:08:30 slava: if it's minimal enough the person would die of hunger before the disease could take course. 12:08:59 Quartus: as long as the patient has never comitted a sin of the flesh, of course. 12:09:21 I remember talking to an author about the time he tried scopoloamine, back when you could buy over the counter. It gave him amazing focus; he wrote for hours. Then the dog came by, and he petted the dog for hours. 12:09:29 apparently, it makes me un-funny. 12:09:43 my lunch break. see ya in an hour or so... 12:09:52 don't eat processed food! 12:10:00 Right! Bite a live cow! 12:10:00 hmm. 12:10:03 what to eat. 12:10:05 hahahah 12:11:33 I build tests into code as I develop; when the code stabilizes, I move the tests out into a -test file. 12:11:47 I sometimes code with assertions, too. 12:11:52 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-147-151.pools.arcor-ip.net) joined #forth 12:13:11 Good factoring makes assertions usually unnecessary, but when they're useful, they're really useful. 12:14:16 I'm irked by the use of 'hashes' to refer to associative lists. Hashing is one possible implemention technique, and doesn't describe the data structure at all. 12:14:27 I guess it's Larry Wall I have to thank. 12:15:00 heh. in factor, a hash really is a hash 12:15:21 But a hash is a function that devolves one sequence into another. 12:15:40 i think larry wall smoked too much hash. 12:15:42 MD5 is a hash. CRC is a hash. SHA-1 is a hash. 12:15:54 Heh. 12:16:13 Hash-tables use hashes to achieve rapid lookup. 12:16:19 ok, blogspot have started using non-ascii letters in their capachas. 12:16:24 this is the last straw, i'm going to write my own blog engine. 12:16:40 Associative lists (or associative arrays) can use hash-tables as an implementation technique, but it's not required in any way. 12:16:50 yes, trees are common too 12:16:59 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 12:17:01 So calling an associative array a 'hash' is a misnomer. 12:17:41 Hmm, I still don't see ASAu's original note claiming you can't do test-driven Forth. I guess I should count my blessings. :) 12:19:05 slava, I built a simple implementation just using singly-linked lists, and built a memoization module on top of that. Works quite nicely. If the lists became huge, there might be need of optimization. 12:19:57 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 12:20:17 --- nick: snoopy_1711 -> Snoopy42 12:20:34 Wow, [40] in the channel. That's a high-water mark, even if I am two of them. 12:21:31 UPTICK 12:21:36 Could well be. 12:22:28 I think the increase in usenet kook activity on c.l.f is as good an indicator as any of an increased interest. 12:22:45 --- quit: TreyB (Read error: 145 (Connection timed out)) 12:22:47 I came across a completely insane Jeff Fox thread from '04 yesterday, let me see if I can pull it up. 12:23:02 has jeff fox ever released any code? 12:23:07 Quartus: that's no magic! 12:23:14 vatic, this was was amazing. slava, not to my knowledge. 12:23:26 from what i can tell, he simply trashes other people's forth efforts and claims his "1xforth" is far superior, everyone else is simply a drooling monkey 12:28:08 --- quit: snowrichard ("Leaving") 12:28:36 slava, that's about the size of it. Substitute Machine Forth/colorForth for 1xforth depending on the season. 12:30:39 Fox: "My life experiences have been too colorful and too unusual for 12:30:39 most work-a-day off-the-shelf types to easily believe. 12:30:40 " 12:33:20 Bugs Bunny: "You monsters lead such interesting lives." 12:34:36 The Fox rant I was referring to goes completely ad-hominem and attacks somebody based on their unrelated posts on Usenet, so I won't reference it here. 12:35:33 ok, let's see if it works today: 12:35:33 Aleksejj Saushev 12:35:52 hmm, maybe I didn't make the pentagram right 12:38:17 You'll have to try it next, vatic. :) 12:39:46 Quartus: the FOX quote is great, thanks! 12:40:25 It's choice. If you question his bizarre statements, by inference you're a work-a-day off-the-shelf type who can't easily believe. 12:40:42 java programmers like this form of logic too 12:40:48 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 12:40:53 if you don't understand their arguments, you've never done Serious Real-World Enterprise(tm) development 12:41:18 Quartus: It's exactly the opposite. Clearly he never met William Burroughs. 12:50:41 maybe we have to mention reviving DRAGONFORTH! 13:06:31 Try it. 13:10:52 Quartus: I actually did try to revive it. Got the latest copy of Pila from Frank Schaekermann... 13:11:23 The effort convinced me I should leave writing Forth compilers to people who do it all the time. 13:12:00 Plus the miserable state of Palm developement tools for MacIntosh. 13:13:21 hey again 13:14:01 Who knows, if Sauchev hadn't been into meta-compilation (something I don't understand) we'd be working together! 13:14:13 maybe 13:14:18 vatic: how long have you been hacking forth? 13:14:51 zpg: about a month. 13:16:59 Sauchev isn't the original author of Dragon Forth. 13:17:00 * Ray_work back 13:17:47 Quartus: I know, but he want[s|ed] to take it over... 13:17:57 * Ray_work back reading and ends up with a question... 13:18:06 I'm sure he has a list of things he'd like to see done, probably by others. :) 13:18:18 vatic: a month and you're up for compiler writing? that's keen! 13:18:39 Quartus, you used the word "assertions" above. I've see like assert in python, but I've never really know what that is. Is there a good place to learn this info? 13:19:23 zpg: Writing a compiler has nothing to do with writing forth. I've been fiddling with forth compilers since last winter. 13:19:27 hmm, it's a language-specific thing, implementation-wise, but it's really pretty simple. An assertion is an in-code test. There's some kind of compiler directive that determines whether they compile, or whether it's just a comment. 13:19:38 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 13:19:56 So assert( 1 1 + 2 = ) asserts that 1+1 is 2, and throws an error at that point if it isn't (if assertions are turned on). 13:19:59 most people who learn forth decide to write their own compiler, then proceed to not write any applications. 13:20:18 slava, most of them write 8 or 9 10ths of a compiler. 13:20:25 Stopping at the hard bits. 13:20:52 vatic: yeah, i suppose that's a fair point. 13:21:28 Ray_work, here's an article on assertions: http://en.wikipedia.org/wiki/Assertion_(computing) 13:22:06 Same thing as a {{ -> }} test, but run-time. 13:22:20 slava: that's where I got to. And even if I had finished, it wouldn't have been as fast (or good) as anything easily available. 13:22:49 Actually, though, up until mid-Summer, there wasn't an interpreter for the PIC chips... 13:23:32 So an assert is a kind of executable comment that should always be true. 13:25:25 Quartus: btw, re: [undefined], that isn't an ANS word either. are there a list of commonly defined but not ANS words? i.e., a glossary of commonly defined words that aren't in the ANS spec? 13:25:51 I'm building such a beast, zpg. Leo Wong had something he called 'comus', might still be around. 13:25:52 *is there a 13:26:05 ahh, nice. 13:26:18 i'll google that, but look forward to your output. 13:26:21 Here it is: http://forth.sourceforge.net/mirror/comus/comus.htm 13:26:54 ah ok, i found it here: http://www.albany.net/~hello/comus.htm#[undefined] 13:27:00 obviously, less my tag 13:27:02 Same animal. 13:27:06 indeedy. 13:27:08 --- quit: timlarson_ ("Leaving") 13:30:18 zpg: The Forth Programmer's handbook discusses a set of common words. The book from Forth, Inc. 13:30:42 Those are here: http://home.earthlink.net/~neilbawd/fphpop.txt 13:30:44 or include common usage in it's discussion of modern Forth... 13:31:22 oh thanks guys. very helpful 13:32:50 zpg: the Handbook is available as a PDF from any of the evaluation downloads at their site. 13:33:18 thanks Quartus. 13:33:19 It suffers from what a lot of Forth guides suffer from; it starts with a description of Forth, and then almost immediately launches into a discussion of how threading works. 13:33:46 --- quit: snowrichard ("Leaving") 13:33:52 * Ray_work has never written a forth compiler, but has only ever written applications. See, I told you there was something wrong with me. 13:33:57 It'd be like a C book starting out by showing what machine-code the compiler produces. 13:36:33 * Ray_work personal log stardate 061009: you wanna look that neilbawd link up when you get home. 13:38:03 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 13:41:37 Quartus: which? Rather's book? 13:41:51 Yes. 13:41:54 And many others. 13:47:32 Quartus: yeah, sad... 13:47:58 The logic of it escapes me. 13:49:27 Quartus: well it's nice to have the words grouped by function, but it's not much more than the standard formatted into a glossary. 13:49:36 not worth $50... 13:49:53 Quartus: do you have a favorite Forth book? 13:49:55 The book? It's been awhile since I reviewd it. 13:50:11 Thinking Forth has more useful information in it than most. 13:50:14 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 13:50:23 somewhat outdated though 13:50:26 talks about blocks, etc 13:51:59 Yes. 13:52:43 To his credit, Pelc's book saves Forth internals for its own chapter. By contrast, though, pick up any other programming language book; rarely are internals ever mentioned. 13:56:42 Quartus: haven't looked at that in a while... 13:57:16 If you're introducing someone to a programming langugae, discussing how it lays down binary code is a pretty bizarre place to start. 13:58:35 sorry, was having dinner. interesting stuff. i like having information compiler internals available in a vaguely comprehensive guide to a language; i guess forth is closer to the machine than most. 13:58:56 but as you say, ordering is a little odd in this case. 13:58:58 zpg, it's the sort of thing that belongs in an appendix, not in the introductory chapter. 13:59:32 I think there should be a "Stack Tricks You Should Know" book. 13:59:40 Like what, vatic? 13:59:48 Quartus: agreed. 13:59:48 "Stacker's Delight" 13:59:54 heh. 14:00:19 again, i agree. for example, the stuff i was doing in defining **, which you correct Quartus. 14:00:39 i'm finding thinking about the stack is becoming more natural the more i use it, but things like nip are obviously very useful to know. 14:00:50 Not sure you'd fill a book. 14:00:53 rather then, again, coming on page 90 when on page 3 we've been introduced to over. 14:01:53 Sure. There are only a handful of stack manipulators in the standard; introducing at least those that manipulate single-cells all at once is a good idea. 14:03:24 drop dup swap tuck nip over rot 14:04:35 Then >r r> and r@ 14:04:57 Then the double-cell variants. 14:05:33 --- part: Quiznos left #forth 14:08:40 * Ray_work little customer rush there... 14:08:52 --- join: madgarden (n=madgarde@London-HSE-ppp3546145.sympatico.ca) joined #forth 14:15:44 we could get Pam Anderson to do a "Stacked" book, demonstrating what she had niped tucked swapped dupped and dropped. 14:16:11 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 14:17:37 and overed 14:18:05 and overed. 14:19:19 were you the ones who posted the "Linux was never like this" JPG? 14:19:37 sounds fun, url? 14:19:45 lemme see... 14:20:12 http://tinymicros.com/images/linux_chick.jpg 14:20:52 I think it was up here yesterday, courtesy k4jcw... 14:21:32 ah yes, that one, it's old (four years at least) 14:21:43 still funny though 14:21:57 segher: that's me! bringing up the rear! 14:22:09 hehe 14:26:52 --- quit: slava () 14:28:24 nice.. nice chick 14:29:14 girl's not bad either 14:37:36 hehe 14:39:28 --- quit: neceve (Remote closed the connection) 14:41:51 --- join: snowrichard (n=richard@12.18.108.162) joined #forth 14:55:11 I didn't post the link, but someone probably found it after I posted the link to a picture of one of my dogs. 14:59:54 --- quit: rabbitwhite (Read error: 54 (Connection reset by peer)) 15:11:15 --- quit: Ray_work ("User pushed the X - because it's Xtra, baby") 15:11:28 back. 15:40:43 --- quit: snowrichard ("Leaving") 15:52:33 okay, open-to-suggestion-time: best forth to use on a DOS box? 15:52:47 'best' being defined a flexible *shrug* 15:52:56 I don't know. DOS-only? Why? 15:53:18 i have a VirtualPC running here with a few DOS sessions. 15:53:24 For what? 15:53:50 re: DOS Forth, curiosity more than anything. re: VirtualPC, Win32 for building with py2exe and testing applications built on this OSX system. 15:53:55 (Smalltalk before Python) 15:54:10 Then run a different Forth in each DOS session, see which one floats your boat. 15:54:44 that's the plan. 15:55:00 but i thought there might be a Borland C++ equivalent with Forth. 15:55:16 i.e., considered industry standard. 15:55:27 I've never used Borland C++. FPC is a fat DOS Forth with an IDE, though. 15:55:46 * zpg looks 16:15:03 Home and dinner over. 16:15:12 what's up? 16:15:36 Getting hungry. 16:16:08 What's on the menu? 16:16:55 FreeDOS 1.0 is being installed over here. How's that for excitement. 16:17:19 Fried chicken & potatoes. 16:18:23 I've never fried FreeDOS, i've been chicken & potatoes. Is it a 'Good Thing'? 16:18:48 Well, chicken probably tastes better. 16:19:16 Yikes my lake is 12 feet below norm. Quartus, think you can ship us one of those glaciers? 16:19:31 C.O.D. 16:19:46 Yes Cold on Delivery will be fine. 16:19:58 We are hot enough here to melt it. 16:25:12 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 16:27:27 --- join: I440r (n=mark4@67.135.84.40) joined #forth 16:30:36 Missed the excitement, I440r, we got up to 41 today I think. :) 16:31:39 lol 16:31:46 why they disappear ? 16:31:51 Dinner? 16:31:51 --- join: nighty_ (n=nighty@sushi.rural-networks.com) joined #forth 16:31:52 who came ? 16:32:02 coders dont eat or sleep 16:32:06 I don't know, just a steady upward influx. 16:32:08 unless its twinkies and coffee 16:32:20 You mean dumbass teenagers don't eat or sleep. :) 16:33:07 :) 16:35:49 they don't eat or sleep, but they live of coffeine.. 16:35:57 injections... 16:39:11 --- join: Snoopy42 (i=snoopy_1@dslb-084-058-172-058.pools.arcor-ip.net) joined #forth 16:44:09 --- quit: nighty__ (Read error: 110 (Connection timed out)) 17:10:52 --- quit: virl (Remote closed the connection) 17:19:20 --- mode: ChanServ set +o I440r 18:09:37 anyone seen Mind.Forth? 18:11:37 --- quit: TreyB ("leaving") 18:12:20 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 18:15:00 --- quit: vatic ("*poof*") 18:35:11 --- join: vatic (n=chatzill@pool-162-84-156-148.ny5030.east.verizon.net) joined #forth 18:36:58 wb vatic 18:38:12 hey zpg 18:39:30 it seems after an hours' tinkering, mind.{rexx,forth} won't work over here. 18:39:37 but amusingly, i now have rexx installed. 18:42:27 zpg, mindforth is a complete and utter waste of time. 18:42:58 Quartus: yes, this i gathered from the code listing and the website layout. 18:43:05 thought i'd try it out though. 18:43:18 but there's a 20 line word definition in there which scared me quite considerably. 18:43:56 It's rubbish. 18:46:14 heh okay. i never got far enough to grunt. 18:46:19 good night all 18:46:32 night erider 18:46:40 on the upside, i now have REXX 18:46:41 oh. 18:46:56 REXX is a quaint little language. I used it professionally for about a year once. 18:47:21 yeah, a friend of mine still swore by it a few years back, when 4dos was still doing its thing and novell discs were scattered around his workspace. 18:47:38 --- quit: erider ("I don't sleep because sleep is the cousin of death!") 18:47:52 I wouldn't swear by it. It was built into OS/2, however, and also in TSO/E. 18:48:17 from what i heard, it was a very nice way to do DOS scripting. 18:48:32 It's ok as a scripting language. 18:52:27 Slow, and kind of curious. 18:56:25 :) 18:56:27 JasonWoof: ping 18:56:54 zpg: pong 18:57:19 what's up? 18:57:58 JasonWoof: i'm just checking out herkforth; last time i looked, i believe it was still unreleased.... am i correct in understanding that i'd require PPC GNU/Linux, and can't use it under OSX? 18:58:20 --- quit: vatic ("*poof*") 18:59:13 zpg: at some point I got it mostly working on OSX 18:59:31 ppc linux is where it works well 18:59:54 I'm re-writing it in a portable way, and calling it Fronds 19:00:04 neat. actively developing it? 19:00:18 lethargically 19:00:21 :) 19:00:35 it's pretty close to usable though 19:00:47 cool. 19:01:01 would there be a way for me to test it, sitting here on an iBook in OSX? 19:01:25 you could play with fronds 19:01:45 but it's not hackable, except in herkforth 19:02:06 i see. 19:02:09 (Fronds is a binary, built from source in herkforth) 19:02:11 (btw, really like your wiki design) 19:02:16 cool :) thanks 19:03:03 the bultin editor in Fronds isn't finished though 19:03:14 you can execute stuff, and delete source words 19:03:17 but you cannot add source 19:03:28 i see. 19:04:41 is this still accurate: http://jasonwoof.org//herkforth_for_mac_os_x ? 19:05:34 sure 19:05:39 pretty old though 19:05:44 ah ok 19:05:59 you can take a look 19:06:09 running now 19:06:10 I can give you my latest binary and you can see if it works 19:06:16 just segfaulted due to stack underflow :) 19:06:19 that'd be great, sure. 19:06:26 oops, what'd you do? 19:06:43 dot-print on an empty stack 19:06:51 heh, that'll do it 19:06:55 :) 19:07:09 i'll be up for another 20 or so, then sleep would probably be wise. 19:07:17 i'm glad i came across this again though. it's been a while. 19:09:12 ok, give this a try: http://home.jasonwoof.org:2201/herkforth-osx-0001.gz 19:09:15 no idea if it'll work 19:09:27 haven't tested my osx binary generator thing in a long time 19:09:53 oh, the terminal dimensions might be off 19:11:05 hmm 19:11:06 ok 19:11:24 i replaced the the old 0001 in the 05-05-05 directory and ran ./run, is that right? 19:11:34 otherwise, the screen is clearly fried. 19:11:38 my term is 128x50 19:11:53 right 19:11:59 or change the "run" script 19:13:40 ok 19:14:29 set-term seems to be a binary being called from there though 19:20:23 okay i'm beginning to get the hang of space and return here 19:20:33 i keep trying to execute a word and instead end up inserting into the block definition 19:29:36 JasonWoof: is block movement achieved via Shift-E? 19:32:33 oh, i'm an idiot. i wasn't using the new version just then. i hadn't removed the -osx- from the newer version. this interface is even neater. 19:41:20 E goes to a given block 19:41:34 { and } go to the previous and next blocks 19:41:42 ah ok 19:42:15 i'm confused now. i've added some definitions into my block, but i can't say '1 2 +' anymore, since these are being entered directly after my last code addition. 19:42:27 (i'm in GREEN at the moment) 19:42:40 mosty you should use HNTC to get around 19:42:56 hmm ok 19:43:10 also, 'Unknown worddo' might want a space, not sure. 19:43:16 is there no way to loop in herk so far? 19:43:29 oh yeah, I mucked up the error message 19:43:41 it has for/next and tail recursion 19:44:01 ah, nice. 19:44:04 I don't understand your question about '1 2 +' 19:44:13 save frequently 19:44:20 (shift-S) 19:44:24 well, when i type a '1', hit space, a '2', hit space, '+' 19:44:38 these numbers are getting pushed, they're appearing in my code (shadow block?) 19:44:47 no shadow blocks 19:44:52 if you hit space they go into the source 19:44:58 ah ok, my error. 19:44:59 if you hit enter they get executed 19:45:05 always? 19:45:11 12 19:45:13 yes 19:45:29 hmm ok. 19:45:42 also, why is the stack 3 5 8 13 when i open the image? 19:46:02 for the hell of it 19:46:21 I like to have some crap on the stack so I can see (without crashing) when something consumes more from the stack than it should 19:46:35 ah ok. 19:46:43 do you still run OSX? 19:46:50 no 19:46:54 ok 19:46:55 haven't for years 19:47:32 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 19:47:32 --- mode: ChanServ set +o slava 19:47:46 I played with OSX beta 19:47:54 then found the full version worse 19:48:02 i like OS X 19:48:29 which is weird 19:48:32 they introduced some delays 19:48:42 yeah the speed does get me. 19:48:53 i booted ubuntu on here, much snappier. 19:49:08 i have a quad g5, no complaints about the speed here 19:49:21 JasonWoof: for what it's worth, http://ezil.sourceforge.net/screenshots/herk.jpg 19:49:21 don't think I used osx for that long before I had systems issues, couldn't update the system software 19:49:38 ooh, pretty 19:49:39 I figured if I was going to muck around with a unix-like system I should go all the way and try linux 19:49:49 i like the cocoa api 19:49:58 yeah obj-c is pretty neat too. 19:49:59 the only real reason I was procrastinating on trying linux was not feeling like mucking around with files and such 19:50:07 i don't like obj c though :) 19:50:11 heh 19:50:15 [smalltalk in brackets] 19:50:36 JasonWoof: do you use herkforth regularly? 19:50:46 (to change the subject very briefly) 19:51:26 might not be a good idea to redefine a 19:51:40 probably won't hurt though 19:52:03 oh, that was my very first test. 19:52:24 seems to be working pretty well 19:52:25 JasonWoof: how's the new forth coming along? 19:52:28 guess it won't be a problem, so long as you don't compile that block before others that use a 19:52:30 though i get confusing screens, often, 19:52:42 slava: slowly 19:53:13 zpg: redefining basic words could make it crash when you save though 19:53:27 because saving compiles a bunch of code 19:54:27 you can use shift-v to see if a word is already defined 19:54:54 (for those cases where you can't tell from the completion list 19:56:16 slava: I rarely put time into it these months 19:56:38 just uploaded a replacement jpg... 19:57:10 hmm, i guess this space/enter business encourages heavy factoring 19:57:59 how does it encourage that? 19:58:14 I think forth in general encourages heavy factoring. as do I :) 19:58:30 typing is a little laborious. but writing code into the block is pretty smooth. 19:58:59 2drop and 4drop look remarkably similar 19:59:30 did i define both as drop drop ? 19:59:36 more laborious than what? 19:59:41 yes 19:59:45 shift-v gives me this confusing screen 19:59:50 http://ezil.sourceforge.net/screenshots/herk-shift-v.jpg 20:00:16 that block has more source than fits in your terminal 20:00:41 hit shift-c to go back 20:01:35 and obviously, http://ezil.sourceforge.net/screenshots/herk.jpg is what was meant to be there. 20:01:38 okay, trying 20:02:16 shift-c works fine. 20:02:31 but can i scroll a shift-v ? 20:02:38 --- quit: Joely ("leaving") 20:02:45 there's no scrolling 20:02:49 that was the point of doing blocks 20:03:00 so i just can't see the rest of Sh-v ? 20:03:01 turned out to be a pain in the ass though 20:03:04 I hated splitting blocks 20:03:08 so they got big 20:03:26 you can scroll your terminal up... 20:03:43 herkforth does not attempt to handle the case where there's too much source to fit 20:03:46 that doesn't work 20:04:11 enlarge your terminal 20:04:17 and set term-width and term-height 20:04:23 how do i do that? 20:04:24 they are constants, so they're a little tricky to change 20:04:37 can't you make them variables? 20:04:45 put your cursor at the end or begining of your block, and type this: 20:05:44 [term-width'term-height'BS 20:05:52 (replate with the new width of your terminal 20:05:58 likewise with ) 20:06:13 just maximize the window first or something 20:06:37 I don't think it would make sense to make them variables 20:06:53 the only reason you have to muck with them is that I couldn't figure out how poll for them under osx 20:06:58 ah ok 20:07:01 with linux you just save after resizing the window 20:07:58 as I said, it's only semi-working on osx 20:08:18 it can't detect terminal dimensions, recover from segv/segill or set the terminal properties 20:08:29 the last is solved by the ./run script and friends 20:08:44 oh, the signal handler shows the crash reporter? 20:09:27 in herkforth on linux, if you crash it just prints ---SEGFAULT--- or some such and reloads itself 20:10:07 (reloading is instantanious, and usually the only visible effect is a flicker) 20:10:10 the resize worked. i'm really enjoying my bumbling around herk btw. 20:10:21 cool :) 20:10:31 okay, so shift-v ... what am i looking at now? 20:10:41 shift-v is find-next 20:10:46 JasonWoof: and what happends on OS X? 20:11:05 signal handling works in factor, but i don't use the sigaction() call 20:11:05 slava: the signal is not caught, so osx shuts the process down 20:11:07 oh i see. 20:11:16 JasonWoof: you have to use a mach api 20:11:30 spawn a pthread which listens on the exception handler message port 20:11:45 zpg: as with shift-t (which is probably the most useful key) it works with the word the cursor is on, or (if you've typed something) whatever you just typed 20:11:49 when an exception is received your main thread is suspended and you receive a mesasge, then you use a thread state call to change the eip to your handler and resume the thread 20:12:03 screw that 20:12:18 and if you want to run on windows, there is yet another API :) 20:12:30 no thanks 20:12:38 JasonWoof: given that there's no paging, how many lines does Shift-V expect? 20:12:43 i don't mind doing it, since it means more people can use it 20:12:56 slava: have you tried herk? 20:12:57 lines? 20:13:03 zpg: it accepts one word 20:13:03 well, i had to resize. 20:13:04 zpg: i did, on linux a while ago 20:13:25 JasonWoof: no no; literally. how many lines will it try to fit on my screen... 20:13:37 the trouble with catching segfaults is deciding what to do about it 20:13:47 i use segfaults to trap stack underflow 20:13:53 by read-protecting the page under the stack 20:14:07 zpg: oh, that has nothing to do with shift-v. shift-v is just one of the commands that moves the cursor 20:14:09 herk is written in herk though, right? 20:14:29 zpg: I don't know which block is biggest, or how many lines it would be. depends on your terminal-width anyway. 20:14:37 ah ok 20:14:41 zpg: you can page through the blocks with { and } 20:14:54 if the block is too big, will } show the rest of it before moving on? 20:14:58 slava: yeah, me too 20:15:18 so when a segfault arrives, i look at the fault address to determine an error message, and throw it 20:15:20 zpg: the display will be kinda muddled, like that 2nd screenshot you showed me 20:15:35 I don't do exceptions 20:16:01 hmm ok. 20:16:06 so a block MUST be short then, huh? 20:16:09 for screen reasons. 20:16:13 right 20:16:21 just an experiment 20:16:22 will the new forth do exceptions? 20:16:24 (btw - last-block i assume puts the block address on the stack. how do i jump to it?) 20:16:32 I've abandoned the idea of blocks in my new forth (Fronds) 20:16:53 well, they're not exactly humane. 20:17:18 i've been slowly making the factor ui more keyboard-friendly 20:17:21 there's a lot of work remaining 20:17:54 zpg: yeah, I don't like it 20:18:08 zpg: maybe I would if there was some key/word that would split the block into two 20:18:14 yeah 20:18:17 that'd be neat. 20:18:24 can i jump to a block via address? 20:18:32 but I didn't come up with any good way to manage load sequences 20:18:39 no, by number 20:18:47 so how does last-block work? 20:19:30 last-block is not a useful word 20:19:43 ok 20:19:56 it's for internal use. part of some program I wrote to convert the source into a new format 20:20:03 didn't end up using the new format though 20:20:11 k 20:20:22 instead I decided to start from scratch and write Fronds 20:20:36 fronds has a source format that I like much better 20:20:37 got any screenshots? 20:20:47 you can run it 20:20:49 btw: is this channel logged? 20:20:52 link? 20:21:02 how does fronds store source files? 20:21:07 lemme test if it runs on the version of fovium I released 20:21:31 ok cool 20:21:31 slava: all storage is in one lump 20:21:44 how do people distribute sources for their own programs? 20:21:50 slava: the vm implementation loads this into memory, and then starts executing it 20:21:54 they don't 20:21:57 I'll work that out later 20:21:58 heh 20:22:03 some form of import/export? 20:22:09 yeah, eventually 20:22:25 I plan to have revision control servers 20:22:33 that's how factor works, i guess. there's an image which is mapped in on startup and factor jumps to a 'boot' word 20:22:42 the parser is in the image 20:23:05 import/export probably wouldn't be tooooo hard 20:23:28 looking nice btw -- http://ezil.sourceforge.net/screenshots/herk.jpg 20:24:03 zpg: ahh, much better 20:24:20 best head to bed in 20 (notice that's been pushed back ahem) but if fronds is testable, i'd be happy to try it between now and then 20:24:39 zpg: are you runing the old herkforth from my site, or the new one I just made for you? 20:24:45 new 20:24:51 with auto-completion (really nice) 20:24:53 zpg: do you have a C compiler? 20:24:56 yes 20:25:10 and gnu make? 20:25:22 yep, the whole gnu compiler chain and tools are here 20:25:22 well, might not need that 20:25:26 oh, cool 20:25:31 it should compile easy then 20:25:32 os x ships with them 20:26:00 indeed 20:26:38 btw - is there string support in herk? 20:27:06 yes 20:27:10 you have to define them though 20:27:13 not inline 20:27:30 howso? 20:27:45 you have to name your strings 20:27:48 eg s-foo 20:28:04 to create a new string, you type it's name, then " 20:28:05 oh i see, s-foo: ....... ; 20:28:14 ? 20:28:23 this will add a source token for s-foo into your def 20:28:37 at the bottom you will see the contents of s-foo (when you have your cursor on it 20:28:39 ) 20:28:47 type string-edit to change the value 20:28:53 ok 20:29:20 ok, grab fovium here: http://jasonwoof.org/fovium 20:29:26 that's the vm that runs fronds 20:29:39 ./configure && make 20:30:02 you can generate a fronds image from herkforth by executing the word "test" 20:30:10 save before and after for good measure 20:30:28 ok 20:31:28 if you run fovium from the source directory (or anything with fovium_font.png in it) you don't have to bother with options to ./configure or installing it in your system 20:32:16 just searching for SDL on here 20:32:23 libsdl.org 20:32:33 yeah it ought to be installed already 20:32:34 you need sdl and sdl-image 20:32:35 looking for path 20:32:46 oh right 20:32:57 sdl-config isn't in the path on some stupid distros 20:33:02 not sure about sdl-image, but i used to hack on Archy (RCHI) which was Pygame layered on SDL 20:33:21 I suspect that uses sdl-image as well 20:33:27 good :) 20:33:45 yeah, pygame requires sdl-image on gentoo 20:34:20 /Library/Frameworks/SDL.framework/Versions/A/SDL 20:34:21 /Library/Frameworks/SDL_image.framework 20:34:24 aha! 20:37:25 oh, btw "test" in herkforth should spit out a file called "vm" in the current dir 20:40:34 k 20:40:38 still getting SDL working 20:41:55 JasonWoof: ever look at archy? 20:42:08 yeah 20:42:13 is development progressing? 20:42:28 well Aza and co. have set up a new venture. 20:42:35 yeah? 20:42:46 and i think the python project was made open source 20:43:03 oh 20:43:22 http://humanized.com/ 20:45:06 slava: are you familiar with -framework in a gcc call ? 20:45:18 not really 20:45:25 k 20:46:20 it's pretty far from GPL 20:46:24 yes 20:46:42 but cool that you can modify and distribute 20:47:14 nice photo on humanized.com 20:47:21 I think I need something like that on my website 20:47:28 just a beautiful picture that has nothing to do with anything 20:47:34 indeed 20:47:50 i get the impression we might be looking at vaporware, or worse, hype. 20:47:50 That website puts me right off whatever it is they're pushing. 20:48:16 Could be life insurance, Scientology, no idea. Not going to find out. 20:48:22 exactly. 20:48:29 i liked jef's work re: THI etc. 20:49:02 but this seems rather divorced from it 20:49:38 JasonWoof: still looking for the libSDL_image library 20:50:08 damned sprawling disk layout 20:50:32 might just re-install 20:52:30 can't you just do "locate libSDL_image" ? 20:53:25 I am very interested to hear what it takes to get this built on OSX 20:53:45 because I'm part of another project that uses SDL, and we'd like to build an OSX version 20:53:49 hell, i always use 'find'. that's snappy. 20:54:02 snappy!? 20:54:08 'locate' 20:54:11 find / ... takes forever 20:54:13 yes 20:54:26 'locate' = snappy, 'find' is slow as .... 20:54:30 ahh 20:54:36 4:55 grammar 20:54:40 heh 20:54:51 ahh, you in Europe? 20:55:17 UK 20:55:59 just configuring SDL_image 20:56:34 i'd be sound asleep if it weren't for interesting Forth projects and google being such good associates. 20:56:41 ;) 20:56:44 the good news, is that fovium has been compiled and tested on ppc linux, x86 linux, and windoze, so it should work 20:56:53 heh heh :) 20:57:14 cool 20:57:19 and you can boast about OSX too if it does 20:57:24 you're welcome to screenshots btw. 20:57:34 or any other data you might need, just let me know 20:57:59 well, what I really want is a script that builds it 20:58:32 :) 20:58:39 i've modified the Makefile so far 20:58:51 but i'll scratch that and re-extract the tarball before trying with a new set of libraries installed 20:59:23 well, first step is to have instructions that people can follow 20:59:44 next step is to have a script that finds the libs 20:59:59 or tells you you need to install them 21:00:24 i'm beginning to despise these disk images. 21:00:28 then the final step is to find someone who's willing to build and test releases 21:00:34 tarball source install it is. 21:00:55 the apple .dmg files? 21:01:09 yes 21:01:20 they're leaving the old SDL in place while replacing the framework. 21:01:23 yeah, I always thought those were a little weird 21:02:25 okay, this is going to take a while to compile and i need to sleep :) so talk more tomorrow? can checkc out fovium then 21:02:30 (and then, fronds) 21:04:51 ok 21:05:09 might need me for fronds 21:05:14 don't think I documented the interface 21:05:30 option-h/n/t/c/r/g 21:05:43 option-space starts a quasi-mode for executing words 21:05:50 option-s starts a quasi-mode for search 21:05:56 (search for the definition of) 21:06:00 okay, sure 21:06:05 quasi-modes end when you let go of all the keys 21:06:11 will see if i can get fovium compiled cleanly 21:06:24 then shall wait to talk again to get fronds up 21:06:34 just thought I'd put that out there so you'll have something to play with while I sleep :) 21:06:39 ok 21:07:48 sleep well 21:08:20 heh heh, dreaming of forth, whatever next :) 21:08:21 night 21:08:23 --- quit: zpg ("ERC Version 5.1.3 (IRC client for Emacs)") 21:30:51 new werty 21:31:38 where? 21:31:50 * slava is a card-carrying member of the werty fan club 21:31:52 c.l.f 21:32:29 Not up on google groups yet. 21:33:06 i think it is: http://groups.google.com/group/comp.lang.forth/msg/db40647c90d2eb39 21:33:22 "P' is so obtuse that they must hire a programmer . " 21:33:34 That's it; not updating in the main page for me yet. 21:34:21 "Yet they toil to evolve those apps to perfection . " who is they, werty and his 5 personalities? 21:34:28 only 5? 21:37:18 is QuartusForth obtuse? 21:39:45 No more than werty is. 21:39:59 I seem to recall he once said NewForth has no stack and no dictionary 21:40:24 I seem to recall it had no threading, and no subroutines. 21:41:16 No conditionals; you just do the right thing next all the time. 21:41:38 And it's based on ARM, which leaves all other computers in its dust. 21:41:50 He's a back-beat and a rhyme scheme away from a rap song. 21:42:05 about as coherent as a rapper, too. 21:42:13 Perhaps less so. 21:42:32 there's another one! 21:42:45 "If the kernel figures stuff , there is no need for any interupts , 21:42:45 you can poll . This way everything is assumed . 21:42:45 It also makes multi-tasking trivial . 21:42:45 " 21:42:53 haha 21:43:23 "NewForth is of course always reentrant . Any code that does not 21:43:24 obey the simple rules of modular programming will get ya a bad rap . 21:43:24 In other words if ya Luddite an app for NewForth and they find its 21:43:24 not reentrant , your notoriety will travel fast .... 21:43:24 " 21:43:42 I didn't know Luddite was a verb. 21:43:48 THINK!!!!! 21:44:25 "Linux is not reentrant , oh sorry Linus .... 21:44:25 " 21:44:42 This guy is amazing. He's so many kinds of obnoxious and stupid, all in one guy. 21:44:56 no, he's just insane. 21:45:09 But you can be intelligent and insane. He's not intelligent. 21:45:15 And he's decidedly obnoxious. 21:45:54 he represents everything that is wrong with usenet 21:46:08 He certainly gives a good cross-section. 21:46:30 At least he's entertaining, however unwittingly. 21:47:07 Puts me in mind of a six-year-old boasting about how his dad could beat up Batman. 21:47:22 more like a six year old boasting that he is batman 21:48:18 do you do any kind of programming on your PC? 21:48:30 like running quartusforth in an emulator? 21:48:37 do you even own a PC? :) 21:49:01 I own several. :) Quartus Forth is developed on the desktop. I run regression & stress tests under several emulators. 21:49:11 ah, ok 21:49:34 is quartusforth self-hosting, or does it have an assembly kernel of some sort? 21:49:59 It's not self-hosting. It's built with a Forth target compiler, a chain of tools that includes an assembler. 21:50:11 The kernel is hand-coded assembly + Forth, all native-code. 21:50:17 ah, ok. note that for some reason, i still cannot access your web site. 21:50:19 (quartus.net) 21:50:21 it simply times out. 21:50:26 quartus.net is coming up fine here. Try http://www.quartus.net 21:50:45 also http://www.nealbridges.com (same host) 21:53:04 "The connection has timed out. The server at www.nealbridges.com is taking too long to respond." 21:53:18 odd. Comes up zoom from here. 21:53:31 some kind of routing problem, perhaps. let me try something 21:53:37 what does quartus.net ping out as for you? 21:54:02 from the factorcode.org server, i can access the site and it comes up instantly. 21:54:09 $ ping www.quartus.net 21:54:09 PING quartus.net (216.92.112.50): 56 data bytes 21:54:14 no ping packets are returned 21:54:18 (this is from my home machine) 21:54:19 that's the IP alright. Must be some problem along your pathway. 21:54:36 the factorcode.org server can ping just fine. 21:54:37 very odd 21:55:41 I'm tracerouting from me to you right now. 21:57:22 Timouts all down the line. 21:57:54 Can't ping you from either here, nor the hosting service. 21:58:06 can you ping www.rogers.com ? 21:58:17 yup. 21:58:44 there's another new werty 21:58:47 it's a wertycopia 21:59:22 He reminds me of PoppaVic, actually. 21:59:25 Especially this last one. 21:59:49 PoppaVic's rants are infinitely more meaningful 22:00:22 There's zero meaning in werty. An infinite amount of zero is still zero. :) 22:01:08 http://groups.google.com/group/sci.geo.geology/browse_frm/thread/c87555975ecc6371/c9f2b52690b7b98b#c9f2b52690b7b98b 22:01:34 http://groups.google.com/group/bionet.neuroscience/browse_frm/thread/3a53bf6a85a65a1d/73779a82225bb1b9#73779a82225bb1b9 22:01:41 He's on werty benzedrine. 22:02:37 Hey, a racist rant in sci.physics an hour ago. 22:02:47 He certainly is prolific. 22:03:11 Ok, as a werty fan, you have to read it. http://groups.google.com/group/sci.physics/browse_frm/thread/328b09c0342cf890/e20d5e9f2689049d#e20d5e9f2689049d 22:03:27 i'm reading it right now. 22:03:38 "in 50 years there will be no jobs for Females , not even the oldest profession" oh man 22:03:50 And on in sci.chem before that. 22:05:43 That sci.physics one makes everything he's said in c.l.f. make perfect sense by comparison. 22:15:11 --- join: crest_ (n=crest@p548948B2.dip.t-dialin.net) joined #forth 22:25:05 --- quit: Crest (Read error: 110 (Connection timed out)) 22:31:56 --- quit: crest_ (Read error: 145 (Connection timed out)) 22:53:59 --- join: Cheery (n=Cheery@a81-197-19-23.elisa-laajakaista.fi) joined #forth 23:56:26 --- quit: Quartus (Read error: 110 (Connection timed out)) 23:59:59 --- log: ended forth/06.10.09