00:00:00 --- log: started forth/06.08.13 00:01:07 morning 00:15:40 --- join: Cheery (n=Cheery@a81-197-20-242.elisa-laajakaista.fi) joined #forth 00:24:49 --- join: scc (n=sam@203-114-131-224.dial.dyn.inspire.net.nz) joined #forth 00:28:46 Quiznos, You left a link for the pastebin but not the specific paste that you wanted comment on. 00:29:07 --- join: ony (n=segher@dslb-084-056-157-092.pools.arcor-ip.net) joined #forth 00:29:24 morning ray. pastebin.ca has a search feature, use my nick 00:29:32 --- quit: segher (Read error: 60 (Operation timed out)) 00:30:02 Raystm2 at the time of my posting the paste, the paste was at the top of the list 00:30:09 but search works great there 00:30:40 it's 128335 00:30:44 Or you could helpfully just post the URL of whatever it is you want comments on. 00:31:04 i did earlier 00:31:13 it's http://pastebin.ca/128335 00:32:34 Good morning Quartus. 00:34:09 Hi Ray. 00:34:25 Raystm2 did you find the page? 00:38:55 Raystm2 ? 00:39:05 Yes, page found. Looks like code to structure a word header. 00:39:13 it is 00:39:34 i was looking for peer-review for any logical errors I had missed 00:40:05 * nighty blinks 00:40:09 Having never written such a thing myself, this looks good. 00:40:16 ok ty 00:42:27 You are welcome. Are you building a forth? 00:43:00 yep 00:44:06 it's currently 591 bytes, 217 lines, 3253 bytes of text. 00:44:08 Much luck to you. It sounds like fun. :) 00:44:15 the 591 bytes is executable 00:44:41 How is it comming? 00:44:51 thanks, i havent dabbled with forth in asm in a long time 00:45:10 it's good, working my way towards the initial hello 02:17:47 --- quit: scc () 02:19:53 mahalo 02:55:51 --- quit: virl ("Verlassend") 03:05:50 --- join: neceve (n=claudiu@unaffiliated/neceve) joined #forth 03:25:48 do i want to do ``mov al, byte [eax]'' or ``mov[sz]x eax, byte [eax]''? 04:08:32 --- nick: ony -> segher 04:30:06 I've learned maybe 100 programming languages... and 83 of them were Forth. 05:29:42 --- join: PoppaVic (n=pete@0-1pool47-154.nas30.chicago4.il.us.da.qwest.net) joined #forth 06:00:22 Is that why it's called Forth-83? 06:23:22 --- join: segher_ (n=segher@dslb-084-056-200-197.pools.arcor-ip.net) joined #forth 06:24:55 --- join: virl (n=virl@chello062178085149.1.12.vie.surfer.at) joined #forth 06:30:10 --- quit: segher (Read error: 110 (Connection timed out)) 07:13:52 --- join: Jim7J1AJH (n=jim@221x115x224x2.ap221.ftth.ucom.ne.jp) joined #forth 08:08:05 --- quit: I440r ("Leaving") 08:46:30 --- join: nighty_ (n=nighty@CPE00119576a9c5-CM0012c90d36fc.cpe.net.cable.rogers.com) joined #forth 08:49:28 --- join: Amanita_Virosa (n=jenni@adsl-70-241-18-203.dsl.hstntx.swbell.net) joined #forth 08:59:16 --- quit: nighty (Read error: 110 (Connection timed out)) 09:06:18 --- quit: PoppaVic ("Pulls the pin...") 09:09:56 --- join: PoppaVic (n=pete@0-1pool73-73.nas24.chicago4.il.us.da.qwest.net) joined #forth 09:14:57 --- part: crc left #forth 09:34:27 --- join: crc (n=crc@pool-70-110-183-96.phil.east.verizon.net) joined #forth 09:34:48 --- mode: ChanServ set +o crc 09:39:29 --- quit: segher_ (Read error: 104 (Connection reset by peer)) 09:47:11 --- join: segher_ (n=segher@dslb-084-056-181-007.pools.arcor-ip.net) joined #forth 09:57:05 --- join: TheBlueWizard (i=TheBlueW@ts001d0803.wdc-dc.xod.concentric.net) joined #forth 10:02:18 Hi crc. Any luck with create? 10:02:30 nope 10:03:39 I believe can build a naive create that will meet spec. 10:05:48 Looks like DOES> is failing on : create wsparse entry as .forth here 12 + literal, x: ; ; 10:07:37 in a code-word, do i want to do `mov al, byte [eax]' or use movsx or movzx? 10:07:52 with `al' being replaced with eax for extension 10:08:18 i dont know what is usually done with sign extension 10:09:59 Quiznos: exactly what do you want to do? getting a byte and zap the higher bits to zeroes, or treat the byte as a signed number? 10:10:24 TheBlueWizard what is usually done by majority of kernel writers? 10:10:38 how do they treat a byte? 10:11:06 or is s>d left upto the coder? 10:11:27 well, it all depends, really... 10:11:31 lol 10:11:33 ok 10:11:42 i'll zextend it 10:12:33 s>d has to sign-extend. It's mnemonic for "signed>double". 10:12:41 ok...zextending is just a x86 shortcut for sub eax,eax; mov al, byte [someaddress] 10:12:48 no, single to double, not signed 10:13:00 to Quartus 10:13:07 TheBlueWizard yea, cbw cwd 10:13:22 It's ( n -- d ). 10:13:30 one cell to 2 10:13:30 Not ( u -- ud ) 10:13:42 * TheBlueWizard nods 10:13:46 so the default for bytes is signed? 10:13:52 Your cell-width is 8? 10:13:55 32 10:14:00 So what's this talk of bytes? 10:14:10 for c@ for instance 10:14:27 So are you asking about s>d, or about c@ and c! ? 10:14:36 which are usually related to strings, but i'm also moving towards utf/ucs 10:15:19 and multibyte chars are hi-bit set but "signed"-ness doesnt make sense to attribute to them also. 10:15:20 Quiznos: the interpretation of bytes depends on how they are used...for example, they could be characters, and I prefer them unsigned. they could also be compact version of signed integers 10:15:28 From the standard definition of C@: Fetch the character stored at c-addr. When the cell size is greater than character size, the unused high-order bits are all zeroes. 10:15:29 TheBlueWizard yea 10:15:41 quartus, ty 10:16:08 ok so the defalut is unsigned 10:16:13 that works for me actually 10:17:03 the reason for my preferring characters be unsigned is that I can do a sane range comparison (assuming I go past ASCII zone over into the "higher" ones) 10:17:29 TheBlueWizard yea but what about multibyte chars? 10:17:39 they are bitfielded and signed 10:18:09 if you're on linux, see the /usr/man/man7/utf* else google for that path 10:18:30 and man7/unicode too 10:19:00 Quiznos: multibyte chars ought to be unsigned for the same reason in my humble opinion 10:19:22 then again, I never have really worked with multibyte chars 10:19:30 TheBlueWizard unfortuntely, you were not available when the unicode group was being formed to become a member :) 10:19:38 didnt you get the memo? 10:19:49 * PoppaVic rotfls 10:19:52 lol 10:19:54 * Quiznos bows 10:20:08 TheBlueWizard what's your host os? 10:20:21 Most everyone knows how I feel about "unicode" 10:20:25 i dont 10:20:35 i can wait for the movie 10:21:09 * TheBlueWizard chuckles re: not being a member of Unicode group...then again, he notes that groups often create a somewhat bastardized standards (that "camel is a group's idea of a horse" joke) 10:21:15 the plan they came up with for distinguishish multibyte chars is not complicated and allows for resyncing too 10:21:37 I have three different OSes here.... 10:21:38 hey, i agree, join an committe and build a equuceros 10:21:40 heh 10:21:40 unicode is a mess 10:21:51 utf8 almost makes sense. 10:22:03 utf8 is uncomplicated to my reading 10:22:06 Meanwhile, shit needs to be supported from the botom UP 10:22:07 16 too 10:22:12 I'm told utf8 is also a pain to deal with 10:22:20 Vic, yea and that's where i'm at. 10:22:31 bytes are not chars but chars can be cellwide 10:22:39 chars/Chars 10:22:51 Quiznos: yeah, if the kernel and libc managed it transparently, fine. As is, I can live w/o it all 10:22:57 yep 10:23:21 BASICALLY, it's only for display and prompt 10:23:33 and since i wont be dealling with glibc's nonsense natively, i'm not even gonna try to grip that mess (libdl is a future feature) 10:23:54 but i want to do multilang input too 10:24:01 ..it's not even REMOTELY as though it embodied kbd and scanning/scnacodes/mapping 10:24:14 rephrase pls? 10:24:28 inputs would require a translation-phase 10:24:30 [missing word?] 10:24:32 ah 10:24:33 yea 10:24:43 locale should be ontop of input 10:24:58 but since my Main Target is to replace all c-src tools... 10:25:03 meanwhile, unishit is for dialogs, menus, prompts, and reports. 10:25:10 i can try to put input scanning in the right position 10:25:19 it's unlikely 10:25:25 in relation to the kernel 10:25:39 i can try, or at least make it easier for someone else to write it 10:25:49 ..I've read foreign-language "manuals" - their assorted "translations" are mostly laughable. 10:25:57 coding up an internationalized library is quite challenging....have to cover many bases :P 10:26:08 well, i'm only gonna do the utf, one or the other. 10:26:09 silly 10:26:25 or one ucs-* 10:26:30 and be done with it 10:26:33 still silly 10:26:36 ok 10:27:12 which means i need to code dynamic locale/kbd input switching 10:27:18 oddly, I still feel forths are a better solution than lisps - for unification 10:27:40 locale is already dynamic 10:27:45 --- nick: segher_ -> segher 10:27:52 yea, i've spent more time with forths than lisps, altho i do like several lispy concepts that i want to incorporate 10:27:54 it's just glyph-mapping 10:27:57 yea 10:28:21 and maybe i'll add a dash of fp flavored concepts too 10:28:26 well, mapping glyphs/chars is not sentence formation/parsing 10:28:35 i think i got a handle on lambdas in a forth flavor too 10:28:37 we'll see 10:28:43 PoppaVic yea 10:28:51 yer further ahead with mandating a forth or lisp type-parsing 10:29:03 oh btw, what are the word names for big-endian fetch and store? 10:29:12 are those the 2! 2@ ones? 10:29:15 Hell, even punctuation is moot, under unishit 10:29:21 yea 10:29:25 no 10:29:27 k 10:29:33 endian would have no bearing 10:29:46 they deal in literals 10:29:52 Quiznos: endianness, as far as I know, is never formally defined...so it is completely implementation-dependent 10:29:54 k. i know FIG had some big-endian words 10:30:00 This is why I am beating the shit out of my code 10:30:11 Quiznos: so does C 10:30:15 TheBlueWizard i'd use them for the network packet building words 10:30:22 pop yea 10:30:24 see ntohl and such 10:30:51 yea but those arent native forth words, there are already some words i'm tryin to remember; i gotta read the fig source to recall 10:30:55 yeah...endianness is a required matter in networking and in dealing with file formats 10:31:01 yep 10:31:06 endian and arg order and arg sizes and all the various tastes of FFI 10:31:12 i just want to reinvent ONE wheel :) 10:31:14 forth's 10:31:20 yepers 10:31:23 that's true too, ffi 10:31:24 --- quit: crc (Remote closed the connection) 10:31:31 * TheBlueWizard doesn't recall any FIG word which deals with endianness 10:31:31 but that's via dlsym afaic 10:31:35 and My MISSION is nt even "a new forth" 10:31:56 TheBlueWizard only in function, they were never commented in terms of endian-ness 10:32:07 vic but that IS what you're doin :) 10:32:15 your own forth for posterity :) 10:32:33 I want a C-based extensible {preprocesor, interpreter, compiler} - period. 10:32:33 --- join: crc (n=crc@pool-70-110-183-96.phil.east.verizon.net) joined #forth 10:32:45 Quiznos: I want to die knowing I tried. 10:32:55 i'm not lookin to build a new forth (tho i'll extend it) while i'm heading towards a new and better emacs :) 10:32:56 PoppaVic good 10:33:05 --- mode: ChanServ set +o crc 10:33:07 better to try and fail than to not try at all 10:33:19 "failing" is not a sin 10:33:30 I want a C-based and folks can use it or die - I'm easy. 10:33:43 dont be that easy 10:33:44 heh 10:34:18 Failing is not really an "option", I just want to start down the path and folks can use it or struggle 10:34:24 TheBlueWizard re big-end words, FIG didnt define BE>LE words, just 2! and 2@ as i recall 10:34:39 PoppaVic then you cant fail having already begun your project 10:34:49 I am (sadly) getting the feeling I may need to write an "uber-assembler" under C 10:35:10 PoppaVic if c is your "asm" why an uber-asm? 10:35:25 if that's the case then mayhaps your coding isnt quite right? 10:35:29 Every 'word' in forth is interpreted - just depends on the timeslice. 10:35:34 ok 10:35:47 Quiznos: I know about 2! and 2@...doubleword store and fetch....the exact layout is implemewntation dependent, I believe 10:35:54 o 10:35:56 ok 10:36:04 i'll check the fig src 10:36:14 Quiznos: uberasm would act like a glorified vm-asm. 10:36:16 * TheBlueWizard eats a "w"...needs it for his vitamin 10:36:23 Double-cell values are ( low high ) on the stack. 10:36:26 vic k 10:36:41 quartus, yea that's little-end 10:36:44 yeah, they can all bitch, but FIG forth was THE place for a lot of new concepts 10:36:49 yep 10:36:50 No, that's Forth. It has nothing to do with endianneess. 10:37:13 i never liked forth-79 10:37:19 too limited imo 10:37:20 Quartus: right, it was expected AND "interpreted" 10:37:39 forth-79 and 78 was a mess 10:37:39 Double-cell values are ( low high ) on the stack whether the archtiecture is big-end, or little-end. 10:38:25 The stack, in every forth I can recall, is still Xwidth and interpreted. 10:38:36 ..expected, too - even worse 10:38:48 I have absolutely no idea what you mean by saying a stack is 'interpreted'. 10:39:07 Quartus: I am sure of that, and it's still true. 10:39:41 True that you randomly reassign private meaning to terms that already have well-understood definitions. 10:39:52 hehehehaha 10:40:02 Yeah. Righttt.. 10:41:22 well, gotta go...bye all 10:41:29 nn 10:41:43 nn? 10:42:31 --- part: TheBlueWizard left #forth 10:42:49 nitenite 10:44:53 kernel.asm now at 569 bytes with heads 10:45:02 assembled 569 10:45:06 OK, stay well folks... 10:45:08 --- quit: PoppaVic ("Pulls the pin...") 10:45:09 nn 11:08:45 --- join: segher_ (n=segher@dslb-084-056-163-044.pools.arcor-ip.net) joined #forth 11:17:03 --- quit: segher (Read error: 110 (Connection timed out)) 12:08:46 --- nick: segher_ -> segher 12:13:14 Quartus: 12:13:21 you know this ? 12:13:25 http://wirelessnomad.com/ 12:14:55 that's canadian only 12:15:54 yes 12:16:22 neat but not the right way to do it IMHO 12:23:52 nighty -- I'll have to check that out when I'm back in my office (wireless now). 12:32:29 --- quit: Quiznos (Read error: 110 (Connection timed out)) 12:51:59 --- quit: Cheery ("Download Gaim: http://gaim.sourceforge.net/") 12:55:46 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-165-099.pools.arcor-ip.net) joined #forth 12:56:17 --- quit: Snoopy42 (Nick collision from services.) 12:56:45 --- nick: snoopy_1711 -> Snoopy42 13:15:39 --- join: Quiznos (i=1000@69-168-231-199.bflony.adelphia.net) joined #forth 13:16:00 re 13:18:13 nighty, kind of interesting. 13:24:31 --- nick: Quiznos -> m0ron 13:26:11 --- nick: m0ron -> PurpleSmurf 13:26:50 --- nick: PurpleSmurf -> PisdPurpleSmurf 13:27:17 --- nick: PisdPurpleSmurf -> Quiznos 13:47:53 --- quit: Amanita_Virosa ("Temporal translocation commencing.") 13:59:18 i'm adding the linux kernel syscall words to my forth. 14:02:37 all done 14:02:49 now to correct for kernel reg trashing 14:28:28 --- quit: neceve ("Leaving") 14:39:28 Howdy, all. 14:39:49 Does the phrase >R ROT R> have a common name? 14:39:49 Hey TreyB. 14:40:52 a b c d -- b c a d ? 14:41:04 Not that I've ever seen. Suggests there's too much on the stack. 14:41:07 Or that it's in a bad order. 14:42:02 Unfortunately I have a lot to juggle. I've started on a Forth implementation of this code: http://www.burtleburtle.net/bob/c/lookup3.c 14:42:54 So you're implementing more-or-less laterally, I assume. I'd make that phase 1; then re-order it to be more Forth-like. 14:43:28 You have something that needs a 32-bit hash? 14:43:44 I started out with a locals implementation and moved over to stack juggling. 14:44:09 Yeah, keyword lookup. 14:44:21 So you could be using a far simpler hash. 14:44:39 Unless you have four billion buckets in your table. 14:44:47 Probably, but this hash has very good characteristics. 14:44:47 TreyB what are abc and d? 14:45:29 a b and c map to a b and c in the mix() macro. d maps to k[] 14:45:41 You really don't need good general characteristics for keyword lookup. You need good characteristics for the kind of data you're hashing. And you'll need it to have good distribution only in the range of bits that fits your hashtable. The win will come from the far greater speed of a simpler hash. 14:46:18 If you want a slow hash that has good characteristics, use the bottom 32 bits of an md5. 14:46:23 TreyB i'm not familar with mix(). whats the next word after >r rot r> ? 14:46:37 The tradeoff is the problem, you lose speed in the hashing that you don't regain from the better distribution. 14:46:49 Probably. I wanted to start here to make my brain think in forth again. 14:47:05 Thinking in Forth means finding the best solution. :) 14:48:00 Quiznos: the mix() macro comes from the C source I pointed to above. 14:48:07 oh. ok 14:49:11 Baden has a drop-in ANS md5 implementation. I bet you'd be fine with : hash 0 -rot bounds do 17 * i c@ + loop ; though, modified for case-insensitivity as appropriate. 14:50:00 : hash dup -rot bounds do 17 * i c@ + loop ; which may distribute a bit better. 14:52:09 I'll wager it's faster, too. :) 14:52:28 I wouldn't bet against you there. 14:53:20 I think I got a fairly decent decomposition, though. 14:53:23 : mix-rot ( a b -- c ) 2dup lshift -rot 32 swap - rshift xor ; 14:53:32 That hash distributes keywords quite nicely. I recommend a power-of-two hashtable size so you can use AND instead of MOD to fit the hashvalue to the table. 14:54:07 Yeah, I firmly believe in doing without the MOD. 14:54:21 : mix-round { a b c N -- x y z } 14:54:24 ; 14:54:26 Well, with the hashfunction you're using, you won't notice the added MOD. 14:54:26 b \ B 14:54:29 c b + \ C 14:54:32 a c - c N mix-rot xor \ A 14:54:35 Ooops. 14:54:49 He claims good performance, but only with C compilers :-) 14:55:17 Good compared to the hash I posted? What kind of good is he talking about? Even distribution across all 32 bits is not useful for hashtables. 14:55:46 You'd have to read his article. Hang on for the URL... 14:56:01 http://www.burtleburtle.net/bob/hash/doobs.html 14:56:57 what's the \ word do? 14:57:30 Quiznos, have you ever written or read any Forth before the last two days? \ is the line comment word, fer chrissakes. 14:57:51 it doesnt look like the comment with the upcase char there 14:57:58 and you know it's been a week :) 14:58:10 plus a couple of decades 14:59:12 Quiznos: a comment. The capital letters map to the output side of the word. I should have written : mix-round { a b c N -- B C A }... 14:59:20 ty 14:59:24 s'ok 14:59:38 quartus likes to pick on me 14:59:56 TreyB, though I understand you're porting some fairly obtuse C, if I see locals my first thought is that something is awry. 15:00:31 I haven't bothered to refactor that bit yet. 15:01:46 I've got a (presumably) working implementation of the hashword() function. 15:01:57 If you're writing your whole hash implementation in Forth, you have different design considerations than you would in C. 15:02:27 The whole point of a hashtable is to improve the speed of lookups, so you have to consider where your costs are. 15:09:15 * TreyB returns from helping the wife move a cooler full of beer. 15:09:59 did she reward you? 15:10:52 Nope. For my troubles, I also had to clean out the drop pan in the brooder where I have 15 pea-fowl chicks living. 15:11:09 bummer 15:11:25 how much are chicks for eating these days? 15:11:28 to start a farm? 15:12:02 You can get straight-run chickens mail-order for $1.25, more for pullets. 15:12:15 cool ty 15:12:27 how much is the feed/week? 15:12:33 guessimate 15:12:58 A lot less than for the horses. I don't keep track, really. 15:13:02 k 15:13:20 i wanna raise em and feed the neighborhood 15:14:31 We have a hobby farm: 7 acres, 2 horses, 1 donkey, 3 geese, 16 chickens, 15 peafowl chicks, 2 cats, and 1 dog. And 1 guinea hen that I'd eat if I could catch :-) 15:15:27 no partridges? 15:15:32 heh 15:16:38 Quartus: I agree that the routine I pointed at amounts to deer hunting with a howizter cannon. I mostly wanted the practice. 15:18:15 Using a howitzer on deer is underkill. 15:18:20 heh 15:18:24 You need a Mk-40 thermonuclear device. 15:18:30 Dropped from a B-52. 15:18:34 i wanna use a arrow 15:19:36 Sorry, Mk-41. http://nuclearweaponarchive.org/Usa/Weapons/B41.html 15:19:42 25MT yield should do it. 15:19:49 heh 15:19:54 a blow dart! 15:20:12 Orbital bombardment platform! 15:20:24 Planet buster! 15:20:55 k4jcw you watchin ancient start treks? 15:21:00 doomsday? 15:21:14 Oooh, now you're talkin'. 15:21:20 m5 15:21:27 I like things that make a big bang. 15:21:50 brown paper bags! 15:23:20 Did you ever see the MOAB video? 15:25:33 nop 15:26:13 http://www.defenselink.mil/news/Mar2003/g030311-D-9085M.html 15:26:21 k 15:28:01 * TreyB 's company shows up. 15:28:03 Later, all. 15:28:09 nn 16:10:01 --- quit: Raystm2 ("Should have paid the bill.") 16:10:40 --- join: Raystm2 (n=NanRay@adsl-69-149-56-96.dsl.rcsntx.swbell.net) joined #forth 17:45:45 --- part: crc left #forth 17:53:38 --- join: crc (n=crc@pool-70-110-183-96.phil.east.verizon.net) joined #forth 17:53:52 --- mode: ChanServ set +o crc 18:39:23 crc, got an update here. Hang on I'll paste it. 18:40:24 http://pastebin.ca/130466 18:40:36 Compliant VARIABLE CONSTANT and CREATE and friends. 18:44:39 Oops; use this paste instead. 18:44:44 Left a debug word in there. 18:45:55 one sec... 18:49:44 ok 18:49:45 http://pastebin.ca/130534 18:52:13 Just tested against 9.2.8, you can remove the spaces and fill redef's at the bottom of the file. 18:53:20 Here, I've taken care of that. Up to version 1.4 now. 18:53:20 http://pastebin.ca/130537 18:58:35 The ANS fib bench we were testing a couple of days back now runs quite a bit faster under the ANS compatibility than it used to; I'm guessing that's due to the inlined literals. 19:09:39 --- quit: uiuiuiu (Remote closed the connection) 19:09:41 --- join: uiuiuiu (i=ian@dslb-084-056-230-141.pools.arcor-ip.net) joined #forth 19:25:59 Quartus: out of curiosity, do you have any plans for an ARM-native version? 19:26:25 Quartus Forth, I presume you mean. I have the scaffolding to one built, but presently I'm staying cross-platform with it. 19:27:15 * TreyB no longer has any useful insider information, now that he's left PalmSource. 19:37:11 ah, insider perspective. 19:41:20 I grew frustrated and left. I worked for the better part of four years on PalmOS 6 only to see it not ship on a real product. I worked on the port to Linux, only to throw away what remained of OS 6 and replace it with GTK so it would look like every other wanna-be Linux embedded distribution. 19:58:52 uhm, yuck? ;) 20:00:56 I'm curious to see what the new company will release. 20:32:34 I wish them luck, I just don't expect them to have any. 20:33:10 I expect Palm will release devices with their own Linux stack. 20:36:35 That'd be interesting. 20:47:46 There is an ARM assembler in Quartus Forth for building PNOs (native code words). 20:48:08 Well, native-native. Native ARM, as opposed to native-68K, the latter being run under emulation on ARM devices. 20:49:10 ANS tester comming nicely. 20:51:22 I'll have to do an ANSRxChess when I get back from vacation. 20:52:27 Yes, updated it to 1.4 today. It's got compliant CREATE and so on now. Faster ones, I think, than the originals in rf. 20:54:12 very cool. I appreciate your work on that. 20:56:10 Glad it's of use. 21:00:20 The ANS fib bench runs now faster than the rf-ized version (first version, same algorithm with minor optimizations for rf). I think that's because the ANS file now has faster inlined literals. 21:08:01 Version 1.5: http://pastebin.ca/130688 21:08:05 Removed a redundant definition. 21:14:03 cool. 21:15:56 --- join: AI_coder (n=AI@ip-209-124-242-76.dynamic.eatel.net) joined #forth 21:17:45 I just started coding in forth because it really impressed me. I'm going to be reimplementing http://www.ozone3d.net/tutorials/image_filtering.php in forth, when I finish, tonight or tomorrow would soemone look over it and suggest how I could make it look less like C and more like forth? 21:18:08 It won't be identical, but the ideas will be the same. 21:28:34 In C I would normally write unsigned char img[WIDTH*HEIGHT*DEPTH]; Is this appropriate for forth or should I think about the situation differently? create img WIDTH HEIGHT DEPTH * * allot 21:36:19 http://student.kuleuven.be/~m0216922/CG/filtering.html <-- This is probably closer to what I'll be doing 21:39:22 * * ALLOT is fine, although you might want the length in a constant. 22:14:31 Oh wow, forth really makes the whole problem clear, :D 22:15:25 length 0 do next pixel convolve loop 22:34:24 What is the forth equivalent of pointer incrementing? 22:36:12 main(){int *p = (int *) malloc(2 * sizeof(int));printf("%p\n"); p++; printf("%p\n", p);} --> 0x8048444 0x804a054 22:37:05 Actually that's incorrect... 22:37:47 main(){int *p = (int *) malloc(2 * sizeof(int));printf("%p\n", p); p++; printf("%p\n", p);} --> 0x804a050 0x804a054 22:40:57 I've googled, but I can't seem to find any answer, also is it considered bad forth? 22:44:28 AI_coder *p++ :: cell+ or cell- 22:44:39 Sorry to bother you guys, I found it: pixel dup cell+ ! 22:44:46 all pointers are the same size 22:44:55 all addresses are the same size 22:45:29 yep 22:46:04 cell+/cell- is not bad form. 22:46:09 or bad forth 22:47:13 cool 22:47:52 also, remember that some machiens that forth runs on are really small so dont try to allocate the world for processing 22:48:26 the world might not exist (ie, ram) 23:15:24 --- quit: nighty_ (Client Quit) 23:30:54 allocating the world is nasty self-referential business, anyway. 23:34:55 prolaby 23:35:37 Hehe, I'm always scared of trampling built in words... 23:35:39 : next pixel @ 3 + pixel ! ; redefined NEXT with next 23:35:53 yea dont redef next 23:36:21 pixel++ is a fine symbol name 23:36:38 Yeah, but it makes the syntax less english like meaning less fun. 23:36:41 forth symbols are space delimited, not punctuation delimited 23:36:47 ok 23:36:49 :) 23:50:31 if you ultimately desire a vocabulary that happens to override basic Forth words, then override them. 23:51:01 true, but one shouldnt change the signature of the word 23:59:59 --- log: ended forth/06.08.13