00:00:00 --- log: started forth/04.06.14 00:00:10 :) 00:00:31 I have to admit, your site is the largest Forth-related collection of links I've ever seen. 00:01:13 some day i'm going to raid a gob of other link directorys 00:01:15 Taygeta's site is large too, but it is too sparse and not well organized. 00:01:19 i also want to have a few more babies 00:01:38 I could cross organize stuff if I get the URLs 00:01:53 * kc5tja nods 00:02:01 Well, I think I have had a pretty productive weekend. 00:02:01 I don't think that they BYTE magazine scanned into chucks site has a link from his site 00:02:08 Or maybe it does 00:02:17 I did ok too 00:02:42 do you have another 5 min? 00:02:47 Despite the diminutive version number upgrade, the changes made were very, very sizable. 00:02:50 Sure. 00:02:55 about my site 00:03:07 what about the idea of puting the links into table format? 00:03:19 and having another collumn for description? 00:03:33 would it clutter it up or provide more information? 00:03:57 My only concern is that the links be easily organized and easily searchable. 00:04:05 You may want to consider adding a search engine to your page. 00:04:16 idea 11 00:04:23 like a google buddy? 00:04:31 This way, it'll be easier to cross-organize things as you can't always put things in one and only one category. 00:04:57 if its more convenient for my users, then probably i will consider it 00:04:59 Not sure how google buddies work. 00:05:20 i think Forth Inc has one 00:05:22 Well, we'll see. For now it seems quite well done. 00:05:30 If you want to put the links in a table, that's OK too, I guess. 00:05:47 or perhaps not to guild the lily 00:06:08 I think i might put the site in a .zip though so other may rip it and improve it as the see fit 00:07:05 --- join: htp123 (~tehsux@S010600055d233ab7.gv.shawcable.net) joined #forth 00:10:27 Anyway, I'm off to bed. 00:10:29 Night! 00:10:33 bye 00:10:37 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 00:17:21 me too 00:17:23 --- quit: LOOP-HOG () 00:29:00 --- quit: crc (Read error: 110 (Connection timed out)) 00:58:41 --- part: futhin left #forth 02:25:46 --- quit: htp123 (Read error: 110 (Connection timed out)) 02:43:45 --- join: hash (~hash@port-204-54-210.fastadsl.net.nz) joined #forth 02:47:25 --- join: Topaz (~top@exten-halls-131.soton.ac.uk) joined #forth 03:11:45 anyone here? 03:20:18 --- quit: hash () 04:11:45 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 04:31:36 --- join: aum (~aum@port-204-54-210.fastadsl.net.nz) joined #forth 04:32:11 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 04:32:18 hi - anyone home? 04:33:13 hi 04:33:17 anyone home? 04:34:07 yo 04:34:22 warpzero: do you know forth? 04:34:30 nope 04:34:34 hehe 04:34:45 what brings you to #forth? 04:34:56 well i am trying to learn it eh 04:35:10 do you program in any OO languages? 04:38:01 warpzero liar ;p 04:38:17 yeah 04:38:24 i program in OO languages 04:38:27 qFox: am not! 04:38:28 i want to discuss something forth-related for a minute or three 04:38:43 you want what? 04:38:44 forth related? 04:38:45 here? 04:38:50 i'm not sure if thats ok... 04:38:58 * aum groans 04:39:03 lol 04:39:04 * qFox smiles 04:39:20 i'm adding the OO bits to a forth i'm writing 04:39:34 i have 2 options for calling methods: 04:40:01 1) objinst -> methodname [[ arg1 arg2 ... ]] invoke 04:40:19 2) [[ arg1 arg2 ... ]] objinst -> methodname invoke 04:40:29 sir... that looks nothing like forth 04:40:39 3) arg1 arg2 ... argn n objinst -> methodname invoke 04:40:43 how do you see the syntax in practice? 04:40:53 that's why i'm discussing it here 04:40:58 i'm writing a forth over python 04:41:14 so every item on the data stack is actually a python object 04:41:14 aha :) 04:41:29 and python has lots of methods that accept variable number of args 04:41:39 yeah ok, but from a forth point of view that doesnt matter... 04:41:56 wait, it was forth you wanted to do this oo stuff for right? 04:41:57 i guess i'm canvassing for opinions on which syntax looks/feels more natural to others 04:42:10 qFox: well, something forth-ish i'm cooking up 04:42:25 okay 04:42:33 i can't go full ANS, because ANS is not really applicable in a true OO environment 04:42:59 so, which of the three syntaxes looks most comfortable? 04:43:31 (i cant help ya there) 04:43:57 if you had to read someone else's code, which of the three would feel most understandable? 04:44:30 i guess 1 04:44:47 ok 04:45:11 but there are more ppl ;) 04:45:19 the '[[' and ']]' words, and the words in between, construct a python list (which gets pushed as a single entity to the data stack) 04:45:55 oh 04:46:00 so each cell on the stack can be any object - an int, a string, a float, a list, even a nested stack 04:46:27 but doesnt that kind of defy the whole forth way? 04:46:31 sure does 04:46:40 oki, just checking :) 04:46:52 the aim is to leverage the nice features of both python and forth 04:47:00 python has a sweet OO model 04:47:13 forth has great freedom and flexibility 04:48:43 the trouble i've had with pure forth is that to build truly high-level and general abstract layers takes shitloads of work in between 04:49:22 yep :) 04:50:24 like flying from London to Paris via Delhi, St Petersburg, the Moon 04:50:46 so i'm experimenting with building a forth on top of an existing oo platform 04:52:30 bbiab 05:03:20 Morning, Forthers. 05:03:59 --- quit: fridge (Remote closed the connection) 05:44:43 --- quit: warpzero (Read error: 110 (Connection timed out)) 06:34:12 --- quit: I440r (Read error: 104 (Connection reset by peer)) 07:05:58 --- join: poingie (~chatzilla@user-38ldu06.dialup.mindspring.com) joined #forth 07:26:08 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 07:29:17 Hi 07:31:40 --- join: I440r (~FooBlah@168-215-246-243.gen.twtelecom.net) joined #forth 07:34:03 Hey I440r :) 07:54:16 hi 07:59:08 --- join: ASau (~asau@158.250.48.204) joined #forth 07:59:16 Dobryjj vecher! 08:01:12 anyone knows about firewire plug ins? 08:01:21 seen one and know how many pins it is 08:05:59 Firewire is 4 wires, IIRC. 08:06:15 There seem to be a couple of different plug shapes though. 08:07:49 Oh. Hmm...maybe there are 4/6/8 wire versions... 08:08:49 Because a Google image search is turning up pictures of a 4-wire plug, but the sockets on the back of this box have 6 connectors. 08:09:27 http://www.keyelco.com/kec/standpro/specpage/spec149b.htm (8 and 6) 08:13:08 Ah. 6-pin ones provide power, 4-pin ones don't. 08:14:57 --- join: crc (crc@0-1pool176-23.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 08:15:10 Good evening, crc! 08:15:23 Good evening ASau 08:15:51 I've made quite a bit of progress on RetroForth 7 over the weekend :-) 08:18:02 I've written a working block editor, a generic libc-backed port for x86 OSes using ELF format, the start of an assembler, and the start of a target compiler. 08:20:29 crc. I've found a great thing. 08:20:50 I'm very impressed now. 08:21:17 How well do you know awk? 08:21:45 How good... 08:22:22 I don't use AWK, just SED 08:22:54 I'm aware. 08:23:07 But just take a look at gawk. 08:23:36 It has several features that make it very good tool for forther. 08:26:30 Such as? 08:27:05 Regexp as field separator. 08:27:24 Just try set it to [ \t\r\n\f]+ 08:27:50 Setting record separator is better. 08:46:47 --- quit: poingie (Read error: 110 (Connection timed out)) 08:58:58 --- quit: crc (Read error: 104 (Connection reset by peer)) 09:00:23 --- join: crc (crc@0-1pool176-23.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 09:01:08 --- join: neoBeta (bbbbbbbbbb@200-70-116-45.mrse.com.ar) joined #forth 09:01:14 --- quit: neoBeta (Client Quit) 09:02:20 Hm. 09:02:44 I just realized that a 3.5" floppy has 1440 kB of storage space, which happens to be the number of minutes in a day. 09:02:48 Magic. 09:05:57 God kvael, Robert! 09:06:09 Two 'l', but almost right. 09:06:16 Dobryjj vecher, ASau :) 09:07:31 BTW, who asked me of Alan Pratt's C-Forth? 09:07:52 I've built it one more time. 09:08:10 No idea. 09:08:21 It might be interesting from one point of view. 09:08:38 There's Forth sources (almost) in Forth. 09:10:34 It includes Forth compiler source written (almost) in Forth. 09:12:56 Nice. 09:13:04 I'm working on one of those now. 09:13:35 Planning to write the 5 or so words needed to start compiling in assembly language, the rest can be in Forth. 09:18:49 One evening, I felt so lonely on my Linux machine, that I coded maybe a quorter of Forth compiler. 09:20:23 I've stopped late at night at implementing division in high level words. :) 09:24:14 --- join: Herkamire (~stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:25:09 Dobryjj vecher, Herkamire! 09:26:14 bodroe utro, ASau 09:26:43 Bodroe? 09:26:52 That's very good! 09:27:06 that's the female version of good or something? 09:27:13 * Herkamire took notes 09:31:01 --- join: neoBeta (bbbbbbbbbb@200-70-116-27.mrse.com.ar) joined #forth 09:31:21 Good evening, neoBeta! 09:31:59 Herkamire, my dictionary says that the closest translation for "bodryjj" is "cheerful." 09:33:37 Well, I think it's good if you have "bodroe utro." 09:39:45 --- quit: neoBeta (Read error: 54 (Connection reset by peer)) 09:55:29 --- quit: Herkamire (calvino.freenode.net irc.freenode.net) 09:55:29 --- quit: arke (calvino.freenode.net irc.freenode.net) 09:55:29 --- quit: ChanServ (calvino.freenode.net irc.freenode.net) 09:55:31 --- quit: madgarden (calvino.freenode.net irc.freenode.net) 09:55:31 --- quit: Topaz (calvino.freenode.net irc.freenode.net) 09:55:32 --- quit: ianp (calvino.freenode.net irc.freenode.net) 09:55:33 --- quit: Robert (calvino.freenode.net irc.freenode.net) 09:59:14 --- join: ChanServ (ChanServ@services.) joined #forth 09:59:14 --- join: Herkamire (~stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 09:59:14 --- join: Topaz (~top@exten-halls-131.soton.ac.uk) joined #forth 09:59:14 --- join: arke (~Chris@wbar8.lax1-4-11-100-108.dsl-verizon.net) joined #forth 09:59:14 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576399.sympatico.ca) joined #forth 09:59:14 --- join: ianp (ian@inpuj.net) joined #forth 09:59:14 --- join: Robert (~snofs@c-bf5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 09:59:14 --- mode: irc.freenode.net set +o ChanServ 09:59:43 ASau: :) 10:08:22 --- part: crc left #forth 10:47:24 --- join: truecoder (ed@adsl-64-168-28-146.dsl.snfc21.pacbell.net) joined #forth 10:51:14 hi truecoder 10:51:41 Good evening, truecoder! 10:54:11 Hi. 11:19:08 Well, I like it. 11:19:24 One more company to join MBTI race. 11:20:47 I've just been pointed to y.a. collection of famous people classified. 11:24:29 --- quit: Topaz (Remote closed the connection) 11:25:28 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 11:25:38 hey 11:25:52 Hi slava :) 11:26:22 Dobryjj vecher! 11:28:08 what's MBTI? 11:29:30 That's those well-known Meyers-Briggs typology. 11:30:00 This channel's disease of a month or two ago. 11:32:50 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 11:33:16 Dobryjj vecher, warpzero! 11:34:37 oh my 11:37:00 hello there 11:37:12 Hej, warpzero 11:37:32 --- nick: lalalim_ -> lalalim 11:39:15 * slava is trying to clean up some code he wrote several months ago and no longer understands :( 11:39:26 thats why we comment 11:40:19 Uhm, right.. 11:43:33 slava thats why god invented comments! 11:43:34 brb 11:43:35 pizza 11:43:48 Hehe 11:44:11 Reminds me, a guy in #hamradio came asking if he was allowed to speak with God on the radio. 11:44:25 Or let others do it 11:45:56 I440r. If code is not readable, maybe it needs to be thrown away? 11:49:10 i wish :/ 11:50:20 ok, code is a bit clearer now 11:54:55 i'm trying to convert my compiler into a 1-pass 11:58:02 A month ago I cleaned my code. 11:58:45 I think it is 4 times smaller now. 12:05:04 oh hi I440r 12:05:12 hi :) 12:05:47 ppc isforth plz 12:05:52 i don't have a linux x86 rite now 12:07:04 well... help port it :) 12:07:59 okay 12:08:02 you add with add 12:08:05 and you subtrackt with sub 12:08:09 does that help 12:08:25 yea... now keep going. only 47265467 other words to go :L) 12:09:52 holy shit 12:10:02 wrote some assembly in your life ever/ 12:11:12 hey did you know that we invented HLLs so we wouldn't have to write 47265467 words of assembly 12:11:33 warpzero. C-Forth? 12:11:42 what? 12:12:00 What about one of C-coded Forthes? 12:12:31 they suck 12:12:46 they don't have uber terminal windowing 12:13:36 Your suggestion? 12:14:43 bootstrap 12:14:44 ing 12:14:45 they arent IN asm 12:15:03 and HLL's are all abominations 12:15:09 specially c :P 12:15:13 forth is a hll 12:15:17 yes and no 12:15:30 my lanugague isn't a bomination 12:15:38 :) 12:15:43 warpzero. Have you tried to bootstrap Forth? 12:15:48 no 12:15:53 Well. 12:15:57 im too busy trying to bootstrap my language 12:15:58 I did. 12:16:32 But I've stopped. 12:16:44 why 12:16:58 I'm lazy. 12:17:12 I think of another, easier way to do it. 12:17:39 i'm like this tempted to use perl to bootstrap my language 12:18:11 I tried m4+gas. 12:18:28 didn't work? 12:18:36 Now I'm thinking of awk+gas. 12:18:41 anyone here done anything with rs-485 ? 12:18:49 is that like an ibm box 12:19:18 M4 works. 12:19:26 But it is hard enough. 12:19:53 im definitely not gunna try to bootstrap x86 first 12:20:14 I even succeded to write almost portable way. 12:20:34 eh ??? 12:22:54 Something like this: 12:23:27 I440r: have you done any rs-232 stuff? IIRC they're pretty similar... 12:23:30 code(type) times(1) list(dup,cat,emit,onep) repeat(1) list(semi) 12:23:37 not really :) 12:23:46 485 is multidrop 12:23:55 Correction: 12:24:00 code(type) times(1) list(dup,cat,emit,onep) repeat(1) list(drop,semi) 12:24:27 postfix notation is the coolest thing since 12:24:36 i don't even know 12:26:06 what is multidrop 12:26:11 I440r: define rs-485 12:26:15 Now I think that m4 is bad choice. 12:26:28 warp0 www.google.com 12:26:30 heheh 12:26:35 Hmm...I thought 485 was the one the mac used. 12:26:38 i hate you 12:27:04 warpzero: it's a serial port standard. 12:27:31 i got that 12:27:32 thanks 12:27:55 Oh. 422 probably was the mac one. 12:28:07 Well, I've to go. 12:28:09 Bye! 12:28:11 --- quit: ASau () 12:28:28 Yup. My bad. 13:29:27 --- join: lalalim_ (~lalalim@p508AABD5.dip.t-dialin.net) joined #forth 13:47:56 --- quit: lalalim (Read error: 110 (Connection timed out)) 13:51:00 --- join: wossname (wossname@Toronto-HSE-ppp3699743.sympatico.ca) joined #forth 13:57:16 --- quit: warpzero (Read error: 110 (Connection timed out)) 14:06:01 --- quit: slava (calvino.freenode.net irc.freenode.net) 14:06:01 --- quit: Herkamire (calvino.freenode.net irc.freenode.net) 14:06:01 --- quit: arke (calvino.freenode.net irc.freenode.net) 14:06:01 --- quit: ChanServ (calvino.freenode.net irc.freenode.net) 14:06:01 --- quit: lalalim_ (calvino.freenode.net irc.freenode.net) 14:06:02 --- quit: madgarden (calvino.freenode.net irc.freenode.net) 14:06:04 --- quit: ianp (calvino.freenode.net irc.freenode.net) 14:06:05 --- quit: Robert (calvino.freenode.net irc.freenode.net) 14:06:05 --- quit: truecoder (calvino.freenode.net irc.freenode.net) 14:06:05 --- quit: qFox (calvino.freenode.net irc.freenode.net) 14:06:05 --- quit: Klaw (calvino.freenode.net irc.freenode.net) 14:06:05 --- quit: Fractal (calvino.freenode.net irc.freenode.net) 14:06:06 --- quit: mur (calvino.freenode.net irc.freenode.net) 14:06:06 --- quit: cmeme (calvino.freenode.net irc.freenode.net) 14:06:07 --- quit: onetom (calvino.freenode.net irc.freenode.net) 14:06:07 --- quit: SDO (calvino.freenode.net irc.freenode.net) 14:06:07 --- quit: kuvos (calvino.freenode.net irc.freenode.net) 14:07:57 --- join: ChanServ (ChanServ@services.) joined #forth 14:07:57 --- join: lalalim_ (~lalalim@p508AABD5.dip.t-dialin.net) joined #forth 14:07:57 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 14:07:57 --- join: truecoder (ed@adsl-64-168-28-146.dsl.snfc21.pacbell.net) joined #forth 14:07:57 --- join: Robert (~snofs@c-bf5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 14:07:57 --- join: ianp (ian@inpuj.net) joined #forth 14:07:57 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576399.sympatico.ca) joined #forth 14:07:57 --- join: arke (~Chris@wbar8.lax1-4-11-100-108.dsl-verizon.net) joined #forth 14:07:57 --- join: Herkamire (~stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 14:07:57 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 14:07:57 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 14:07:57 --- join: SDO (~SDO@co-trinidad1a-156.clspco.adelphia.net) joined #forth 14:07:57 --- join: kuvos (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 14:07:57 --- join: cmeme (~cmeme@216.184.11.30.unused.swcp.com) joined #forth 14:07:57 --- join: Klaw (chuck@ip68-225-243-23.oc.oc.cox.net) joined #forth 14:07:57 --- join: Fractal (jah@selling.kernels.to.linus.torvalds.at.hcsw.org) joined #forth 14:07:57 --- join: mur (~mur@smtp.uiah.fi) joined #forth 14:07:57 --- mode: irc.freenode.net set +o ChanServ 14:08:41 I440r: have time for some isforth/x86 asm questions? (since warpzero brought up a PPC port, I'm browsing through the sources again...) 14:09:08 :) 14:09:10 ask away 14:09:59 in src/kernel/isforth.asm - chk_tty, you call the TCGETS syscall, then do 14:10:05 sub eax, 1 14:10:09 sbb eax, eax 14:10:12 ? 14:10:37 then store to a variable. I don't understand that bit. 14:10:52 ok. if eax is equal to zero eax becomes -1 and carry becomes 1 14:11:03 subtract eax from eax with borrow and eax becomes -1 14:11:13 i.e. a true - eax WAZ zero to begin with 14:11:40 so it's a 0= basically. 14:11:44 yup :) 14:12:08 thats just chekcing if stdin is a terminal (stdout too) 14:12:19 if you pipe data to isforth stdin is NOT a terminal, its a file 14:12:35 So the syscall fails. 14:12:39 Gotcha. 14:12:58 zyzcall failures return -1 14:13:02 syscalls even 14:13:04 right. 14:13:05 this may be a bug 14:13:12 im not looking at the sources lol 14:13:28 On PPC that gets returned in a condition register flag, so I wasn't sure. 14:13:43 I figured it would be quicker to ask you than find a good explanation of syscalls on x86 linux :) 14:14:19 that would be good 14:14:40 carry set means eax = errno 14:14:50 instead of "eax = negative means eax = ~errno" 14:15:44 yup. 14:17:57 Cool. Otherwise it's mostly making sense. 14:18:02 heh 14:18:20 be warned im thinking of dropping kernel 2.2 support 14:18:28 so i can do anonymous shared memory mappings 14:19:43 does isforth run on freebsd? 14:19:55 only in linux emu 14:20:04 damn 14:20:14 but porting would be a snap 14:22:04 --- nick: lalalim_ -> lalalim 14:23:25 just have to change how you do syscalls for BSD, right? 14:26:38 yes 14:26:46 actually you wont need to write any code 14:26:49 you can delete code 14:26:57 oh. there are some LINUX ONLY syscalls that i use 14:45:08 --- quit: aum (Read error: 104 (Connection reset by peer)) 15:00:43 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 15:14:05 --- join: topher (~chris@lsanca1-ar42-4-61-175-184.lsanca1.dsl-verizon.net) joined #forth 15:19:19 --- join: htp123 (~tehsux@S010600055d233ab7.gv.shawcable.net) joined #forth 15:27:39 --- quit: I440r ("Leaving") 15:38:57 --- join: Sonarman (~matt@adsl-64-160-164-149.dsl.snfc21.pacbell.net) joined #forth 15:40:58 --- nick: topher -> topher|away 15:47:09 --- quit: warpzero (Read error: 110 (Connection timed out)) 16:18:15 --- quit: SDO (Read error: 60 (Operation timed out)) 16:25:51 --- join: randolm (wossname@HSE-MTL-ppp66543.qc.sympatico.ca) joined #forth 16:28:57 --- join: I440r (~mark4@216-110-82-1.gen.twtelecom.net) joined #forth 16:29:06 --- quit: wossname (Read error: 60 (Operation timed out)) 16:34:03 --- quit: truecoder ("Leaving") 16:48:42 --- join: blockhead (default@dialin-181-tnt.nyc.bestweb.net) joined #forth 16:58:12 --- join: SDO (~SDO@co-trinidad1a-156.clspco.adelphia.net) joined #forth 17:11:22 --- join: aum (~aum@port-204-54-210.fastadsl.net.nz) joined #forth 17:11:38 --- nick: randolm -> wossname 17:16:37 --- quit: qFox ("this is mirc's last attempt of communication...") 17:25:54 --- quit: topher|away (Client Quit) 17:29:08 anyone home? 17:29:35 nope. 17:29:53 i'm creating some non-standard oo words for a forth i'm writing 17:30:16 i've got a syntax: objectname -> methodname 17:30:31 which puts on the stack a ref to the callable method 'methodname' 17:30:41 I didn't realize there was such a thing as standard oo words 17:30:49 but now i've gotta build a word for calling this method 17:30:51 options: 17:31:01 1) objectname -> methodname invoke 17:31:08 2) objectname ->() methodname 17:31:08 why put an XT instead of just colling it? 17:31:19 s/colling/calling/ 17:31:46 Herkamire: because i'm building atop python API, where calls are explicit - callable methods/funcs are themselves objects 17:31:52 objectname -> methodname () 17:32:11 madgarden: sounds good 17:32:18 Looks kinda familiar too. ;) 17:32:22 and for passing args, i'm doing: 17:32:38 arg1 arg2 arg3 3 >[] objectname -> methodname () 17:32:38 ??? 17:32:49 --- join: topher (~chris@lsanca1-ar42-4-61-175-184.lsanca1.dsl-verizon.net) joined #forth 17:32:57 aum: I thought you were doing this in forth? 17:32:57 problem is that python makes extensive use of variable-length arg lists 17:33:06 Herkamire: i'm implementing a forth over python 17:33:25 Can't you just create a seperate data stack in Python and use that for your Forth stack? 17:33:43 why don't you pass arguments on the stack like a normal person? 17:33:45 i've implemented a data stack in python 17:34:07 Herkamire: because i'm calling python methods, which very often take variable number of args 17:34:51 so? 17:35:06 do they need to be in a special format or something? 17:35:09 no 17:35:33 but for bridging from forth to python, i have to determine how many of the args on the stack should actually get passed 17:35:54 ok 17:36:06 i could do arg1 arg2 arg3 arg4 4 objectname ->() methodname 17:36:06 How about something like this instead... 17:36:19 how about: objectname -> methodname (4) 17:36:26 (( arg1 arg2 arg3 )) objectname -> methodname () 17:36:26 how about: objectname -> methodname (3) 17:36:51 (( puts a marker on the stack, and )) counts the arguments up to the marker 17:37:04 so then, a bunch of words '()', '(1)', '(2)', '(3)' which take that number of args from stack 17:37:15 madgarden: what if you want to pass the value the marker is? 17:37:26 aum: sure 17:37:43 aum: you're goal here is to be able to call any python method? 17:37:51 Herkamire: correct 17:38:16 so i can have '()', '(1)', '(2)'..., also (n) which takes n args 17:38:42 or you pass the number of args to () 17:38:44 Herkamire, that wouldn't be valid for Python functions, so why would it be needed? 17:38:46 * aum is implementing ANS words where he can, but not trying too hard to be 'standard' forth 17:38:50 ... 3 () 17:39:02 Herkamire: ok, makes sense 17:39:06 () means n args 17:39:12 (0) means 0 args 17:39:15 (1) means 1 arg 17:39:29 should suffice just to do up to (10) 17:39:32 ... should mean n args I'd think. 17:39:34 (maybe (1), (2) etc is a bad idea... not very flexible, and you have to define way to many words) 17:39:40 Or (...) 17:40:03 Is there ANY reason why the python method should care about the marker value? 17:40:05 hmm, gforth doesn't know '((' or '))' 17:40:24 aum, that was my invention just now. :) 17:40:32 But, it would make for a nice clean syntax. 17:40:37 madgarden: ok, np, easy to implement 17:41:10 i've implemented >[], and []>, which convert n items to a python list object, and vice versa 17:41:26 so 22 33 44 55 2 >[] -- 22 33 [44 55] 17:41:40 and 22 33 [44 55] []> -- 22 33 44 55 17:41:55 the [44 55] is a single item on the stack, being a python list object 17:45:45 aum: how are you turning objectname into a reference to the python object? 17:47:17 Herkamire: i've implemented 'import', which creates a constant whose name is the imported module, and whose value is the module object 17:47:22 eg 'import sys' 17:47:34 which creates a constant called 'sys', holding a ref to the 'sys' module object 17:47:50 then, i've got a word '->' which does attribute access 17:47:50 ahh 17:48:10 so 'sys -> path' pushes onto the stack a ref to the 'sys.path' object 17:49:07 and you [will] have some way to take a ref to a python intager object and turn it into a normal stack item? 17:49:24 Herkamire: everything on the stack is a python object 17:49:38 so a python integer object is _already_ a normal stack item 17:49:53 oh I see 17:50:29 so instead of 'c int' or 32-bit machine word being the ubiquitous stack datatype, i'm using python object 17:50:38 do you have a word that will give you a python object ref without creating a constant? 17:50:48 yes 17:50:48 -> 17:51:00 only 'import' creates a constant 17:51:19 --- quit: I440r (Read error: 60 (Operation timed out)) 17:51:22 i could have another version of 'import' which just pushes a ref to the module 17:51:42 and another version again, which takes the module name off the stack (instead of from read-ahead) 17:51:44 :) factor factor factor 17:52:01 rigth you are 17:52:10 you should be able to easily do all three of those with no duplicated code 17:52:11 i need a word '(import)' 17:52:28 (import) does all the grunt work 17:52:42 and a few sugar-coated variants which use it 17:53:18 : pyref word count $pyref ; 17:53:37 eh? 17:54:19 oh crap, I don't know how to make a constant from a name in ADDR U 17:55:11 : $pyref ( addr u -- python-object-reference ) 17:55:32 i'm not using 'addr u' for strings 17:55:38 i'm using python objects for strings 17:55:42 whatever 17:56:26 but i see what you mean - i should have a base word which takes the attribute name from the stack 17:56:47 right, and you can implement the others in forth on top of that 17:56:59 makes sense - good factoring 17:57:07 but i think i'll call it (->) 17:57:15 :) 17:57:36 the convention of naming lower-level words with enclosing parens - eg (if) 17:57:36 naming is sometimes the hard part :) 17:57:54 naming is way easy - devising names that make sense to others is a different issue 17:57:59 I don't think it's lower-level that get's perens. 17:58:09 in forth, one can easily disappear up one's back orifice 17:58:26 I think perens designates a word that is normally compiled for you (and you shouldn't ever have to type it in) 17:58:29 detractors call forth a 'write-only language' 17:59:03 people who don't know much about forth say all sorts of rediculous things about it 17:59:13 Herkamire: word! 17:59:20 people can write illegible code in any language 17:59:57 there's a great article on how to do this in C BTW :) 18:00:09 oh yes, obfuscated c hacking competitions 18:00:11 what, write illegible code? 18:00:16 that's easy in C :D 18:00:19 blockhead: yes 18:00:25 much harder in python 18:00:35 aum: oh, not at all 18:01:02 ok, yeah, it's probably harder 18:01:10 but still not hard 18:01:17 * aum likes python's 'whitespace as syntax' 18:01:40 me too, except I think it has a flaw 18:01:40 Forth has that too. ;) 18:01:50 madgarden: =) 18:02:40 once i get enough of pyforth implemented, i hope to add words which can 'freeze' a forth vm into optimal C or Python code 18:03:52 ... 18:04:18 I don't think you'll be able to spit out anything useful in C if your stack items are all python objects 18:04:35 My Forth project is an ever blasphemous Forth-in-C. 18:05:36 Hehe. 18:06:20 madgarden: Oh no!!! ;) 18:06:27 Great for scripting and extension though, so I don't care what you all think! :O :P 18:06:39 Plus it's about as fast as Lua. 18:07:13 nice. 18:07:35 Well, Lua 4.x anyway. ;) 18:10:38 --- quit: tathi ("leaving") 18:11:02 teehee? Heh. 18:17:09 has anyone seen isforth? 18:17:25 Sure. 18:17:57 isforth blew me away - it does the abusive recursive fibbonacci benchmark way faster than gcc 18:18:10 Really? 18:18:16 yes, surprisingly 18:18:20 Hm, that's nice. 18:18:41 : fib dup 3 < if drop 1 else 1- dup recurse swap 1- recurse + then ; 18:18:46 I just use it because I like the featues, no need for extreme speed. 18:20:00 Hmm, I wonder how long Forthy takes for that... 18:20:43 stack overflow 18:23:51 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 18:29:06 --- quit: wossname ("what") 18:29:31 --- join: poingie (~chatzilla@user-38ldtpu.dialup.mindspring.com) joined #forth 18:30:30 Hello 18:30:52 Hi Robert. 18:31:13 Actually that was to poingie, but hi anyway. :) 18:31:15 aum, what number was used for the fib test? 18:31:24 Hi! X-D 18:31:28 XD 18:31:58 You're a fan of complicated smileys, aren't you? ~(_:(|) 18:33:04 D'oh! 18:34:38 * Robert just watched S02E21 18:35:14 What's that? 18:35:32 The Simpsons, Season 2, Episode 21. 18:35:38 Er. 18:35:49 Three Men and a Comic Book 18:36:08 When Bart, Millhouse and Martin buy Radioactive Man #1 for $100. 18:36:13 And start to fight about it. 18:36:16 I think I've actually seen that one. 18:37:09 --- join: Sonarman (~matt@adsl-64-160-167-23.dsl.snfc21.pacbell.net) joined #forth 18:37:22 Sodaman! 18:40:14 wanna be obesified? 18:40:36 sounds painfil :D 18:40:39 Oh! Me me me! 18:42:05 put your mouth over this faucet (no, not that one! ow!!), prepare for some hella-fructose shit 18:42:38 --- quit: topher (Client Quit) 18:43:43 now, sodaman leaves madgarden to the mercy of the SODA 18:43:53 goodbye 18:43:57 --- quit: Sonarman ("leaving") 18:44:21 :-Z 18:44:32 Yes... 18:44:43 Forthers are just too strange. 18:45:16 ! you! 18:45:58 madgarden: i did fib 36 18:46:26 What size of stack is required for that, I wonder. 18:49:04 shouldn't blow the stack 18:49:21 : fib dup 3 < if drop 1 else 1- dup recurse swap 1- recurse + then ; 18:52:09 Hmm, OK... seems your right. Not sure what happened before. 18:52:48 python is so slow at tight loops it's embarrassing 18:54:03 That's one place my Forthy seemed faster than Lua. 18:54:40 Any ideas why? 18:54:42 GC? 18:55:35 OK, Forthy just completed 36 fib in 49.681 seconds on my Duron 700 under Win2K, compiled with MSVC. 18:58:52 (31.245s under FICL) 18:59:37 Vrooom! Forth racing! :D 19:00:19 * blockhead puts whale tail on his forth 19:00:25 and racing stripes 19:01:23 Hey, I know how to extend the popularity of Forth. 19:01:27 hm. anyone ever use bigforth's library bindings? 19:01:40 write a p2p program :D 19:02:01 Make some robot battle games where you program the bots in Forth. 19:02:12 that would be cool, yeah 19:02:15 Incorporate forth programming as part of the gameplay. 19:02:16 i want to write nethack in forth 19:02:34 Nethack? Or just a roguelike? 19:02:42 roguelike 19:02:48 Cuz rewriting Nethack would probably be a task. :) 19:02:57 trying to get SDL working 19:03:03 i can get it in win32forth 19:03:07 Forth would make for a good Interactive Fiction authoring system too, I think. 19:03:14 gforth's a nonstarter, ffi is borked 19:03:44 bigforth supposedly works. docs are near zero and mein deutsch ist nicht so gut 19:04:15 FICL or Forthy would be cake to mold into an SDL wrapper... but they are much slower C Forths. 19:04:35 yah i want speeeeed 19:04:41 thinking of doing particle effects for spells 19:04:47 part nethack, part zelda 19:05:06 * blockhead ponders text particle effects 19:05:08 Even so, I doubt that you'd have any troubles using a C forth for that. 19:05:23 i know ficl. what's forthy? 19:05:36 Oh, just my little Forth-like system. 19:06:02 win32forth also doesnt have PAUSE 19:06:15 PAUSE as in break execution? 19:06:24 as in switch execution anyway 19:06:45 i like microthreads, lots and lots of microthreads 19:06:52 I don't understand this at all: : fib dup 3 < if drop 1 else 1- dup recurse swap 1- recurse + then ; 19:07:21 what's the stack comment? 19:07:36 Herkamire, and it doesn't understand you... that's why you two will never work out... 19:07:53 madgarden: that's what I was afraid of 19:08:12 is it supposed to leave the fibbinoci sequence on the stack? 19:08:22 just the number it looks like 19:08:31 Yep. 19:08:34 since its counting down 19:08:36 (the number) 19:08:52 'nn all 19:08:58 ciaoz 19:09:06 --- quit: blockhead ("laugha while you can, monkey boy") 19:09:15 : fib ( x -- sequence from x to 1 1 ) 19:09:39 no, just the sum of the sequence 19:09:56 er ... nevermind 19:10:00 the nth fib # 19:10:29 poingie, how many particles etc. do you plan to process during a logic update? 19:10:44 madgarden: As Many As Possible :) 19:10:46 : fib ( n -- nth-bib-number ) 19:10:58 --- join: fridge (~fridge@dsl-203-113-231-53.NSW.netspace.net.au) joined #forth 19:11:10 neato graphics are actually secondary , but sort of an eventual requirement 19:11:33 And, WTH is a microthread? 19:11:53 a cooperatively multitasked thread 19:12:01 i.e. a thread that runs til you tell it to yield 19:12:04 Ahh. 19:12:10 aka a coroutine. sort of 19:12:14 Right. 19:12:17 Forthy is capable of this. 19:12:28 Depending on far you want to take it. 19:12:31 I don't see how gcc could be slower than that code 19:12:35 does forthy do win and DLL's? 19:12:41 Forthy is just straight C. 19:12:42 unless you don't do optomization 19:12:44 --- quit: fridge (Client Quit) 19:13:01 Herkamire: for fibonacci, you're not going to squeeze much more performance out of anything 19:13:11 So, you'd make an SDL container app with Forthy hooking into everything. 19:13:20 --- join: fridge (~fridge@dsl-203-113-231-53.NSW.netspace.net.au) joined #forth 19:13:35 i perversely want to do it all in forth if possible 19:13:44 poingie: but... you should be able to do it in just registers 19:13:46 i'm freeing myself from the bondage of linkers 19:13:49 i so hate linkers 19:14:10 i do c++ elsewhere. i so *hate* linkers 8-/ 19:14:17 Heh. 19:14:46 Well if you want to fiddle with Forthy, you can get it from CVS here: https://sourceforge.net/projects/forthy 19:14:48 i'd bang straight on the framebuffer if i had an OS that let me 19:14:59 but those days are long past, vid cards are too complex 19:15:02 I still have work to do on it, but it works quite nicely thus far. 19:15:14 poingie: ??? I can write to the framebuffer 19:15:22 on windows? 19:15:23 I just mmap /dev/fb/0 19:15:27 linux 19:15:43 I don't get the impression windoze was ever easy to program for 19:15:45 nice to have a fb device, yes 19:15:52 i want portability 19:16:01 use SDL then 19:16:25 windoze is real easy to program for, you just gotta make sure you dangle the silver dagger with your LEFT hand and use only virgin goat blood 19:17:12 Herkamire: sdl is exactly what i'm aiming for. 19:17:18 I don't program for windoze. I'm not a masochist. 19:17:48 eh. maybe i'll just write compatibility stuff, one for win32forth and one for gforth 19:18:00 still the prob of win32forth having no PAUSE 19:18:28 --- join: Sonarman (~matt@adsl-64-160-167-23.dsl.snfc21.pacbell.net) joined #forth 19:18:50 * poingie lacks the kung fu to do the return stack tricks doing it himself would involve 19:19:36 poingie: one thing that i've found quite useful for reading the bigForth documentation is http://babelfish.altavista.com 19:19:54 egad 19:20:08 after a while you start needing to use it less often 19:20:08 "it puts the value on the return stack or it gets the hose again" 19:21:04 --- quit: Sonarman (Client Quit) 19:21:12 --- join: Sonarman (~matt@adsl-64-160-167-23.dsl.snfc21.pacbell.net) joined #forth 19:23:44 hehe 19:24:26 i hate it when i type ^S in a terminal win 19:28:42 ^S 19:28:59 I think it's kind of fun. 19:29:02 ^S^S^S 19:29:27 : ^S^S^S (fun) @ execute ; 19:29:28 hmm. i hate you 19:29:48 i hate it when i hold down the control key and hit the S key in a terminal win 19:30:48 and i'm sorry. i don't hate you 19:31:26 So then, you must love me. 19:31:51 It's all or nothing! 19:32:02 then i hate you 19:32:14 :'( 19:32:16 although you really should get the Intervals patch 19:32:26 What Intervals patch? 19:32:38 the one on http://www.madgarden-update.com 19:33:58 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 19:33:59 it would my feelings toward you to be within the interval between love and hate 19:34:17 --- mode: ChanServ set +o kc5tja 19:34:43 It says I'm missing patience.dll 19:35:27 then just use medication.dll 19:36:04 kc5tja: Hi 19:36:13 kc5tja: Met Treatz from #hamradio before? 19:36:13 yay just got sdl working in bigforth 19:36:25 Robert: No. 19:36:27 poingie: i'll BET you looked at imlib.fs 19:36:34 kc5tja: OK, well, he certainly has some interesting ideas. 19:36:42 Sonarman: nope, win32.fs .. gave me enough of the syntax 19:36:48 :( 19:36:50 i just didnt know how to import it right 19:37:05 Robert: Such as? 19:37:14 even easier than win32forth, don't need CALL or rel>abs junk 19:37:25 kc5tja: Had a LONG discussion about the possibilities to communicate with god using various means, including LASER and the 11m band. 19:37:38 poingie: yeah, i hate that too 19:37:43 kc5tja: And he seems awfully serious about it. 19:38:07 Thanks for the warning. I have him on /ignore. 19:38:17 Haha, OK. No problem. 19:38:24 so yay i wont need one lick of OS glue code *knock on wood* 19:38:46 bigForth doesn't use relative addresses at runtime 19:39:02 which is nice for FFI crap 19:39:54 FFI? 19:39:58 rel>abs made me feel like i was back in segment-land 19:40:05 i expected to declare FAR pointers next 19:40:14 kc: foreign function interface or whatever 19:40:24 * kc5tja sighs -- segments have such a hugely negative rap, and I just can't understand why. 19:40:29 Sonarman: Ah 19:41:28 kc5tja: because they're incompatible with virtual memory, niceties like relocation, etc 19:41:50 poingie: Sorry, but that's what they were INVENTED for. 19:41:56 And they fulfill that task VERY well. 19:42:08 if modern vm subsystems managed segments like they do pages, it wouldn't be a prob 19:42:39 'course forth usually doesnt have to escape a single segment ;) 19:42:55 As far as Win32Forth is concerned, it DOES use a segment. 19:43:13 Because it has no idea what load address it'll occupy, it loads the dictionary base pointer into EBX (or is it EDX? I forget). 19:43:41 All Forth references are made relative to EBX. Hence REL>ABS and ABS>REL, which bias a pointer by the current value of EBX, appropriately. 19:44:16 what dll's have to do anyway 19:44:22 No, they don't. 19:44:32 They have properly relocated absolute addresses. 19:44:41 elf anyway. pe will if it has to 19:44:50 But Forth dictionaries are dynamic -- there is no way to properly relocate them because they change from run to run to run. 19:45:05 poingie: PE and ELF are functionally equivalent as far as everything I've seen. 19:45:19 not really 19:45:29 bah, afk 19:45:31 & 19:51:19 [1] 7685 19:55:11 Getting something to eat. Back in a bit. 19:55:57 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 19:56:34 I have a new friend: rlwimi 20:00:49 I know rlwimi... he's a punk. Yea, I said it! 20:06:15 looks like I didn't do my homework on that. 20:06:33 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 20:06:39 herkforth code has "rlwinm or" a bunch of places that could be "rlwimi" 20:15:11 --- join: madgarden_ (~madgarden@Kitchener-HSE-ppp3576399.sympatico.ca) joined #forth 20:16:03 Back 20:16:08 Nice black-on-green text there... :) 20:16:33 me? 20:17:01 No, madgarden. I was making fun of his /msg to me, but then he logged off, and logged back on here. 20:17:14 rlwimi is a nice instruction. 20:21:24 Aww, what did I miss? :'( 20:21:28 --- nick: madgarden_ -> madgarden 20:22:47 I'm going to make _rlwimi a core word (meaning it'll be in the binary kernel) instead of _rlwinm and ,aor, 20:23:36 (,aor, compiles instructions to pop TOS and or it into the A register) 20:23:36 Herkamire: What are the differences between rlwimi and rlwinm? And what is aor? 20:23:55 Ahh 20:24:11 --- quit: SDO (Read error: 104 (Connection reset by peer)) 20:24:11 rlwimi irserts the resulting bits (that match the mask) into another register 20:24:38 rlwinm clears all other bits in the destination register 20:25:25 thus rlwimi is much more suited for use in my assembler 20:27:20 ahh 20:27:35 rlwinm is nice for bit shifts and such 20:33:31 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 20:36:24 hi 20:37:16 re 20:56:54 I like ppc 20:59:25 ok, now I'm writing a mandelbrot generator in herkforth =) 20:59:30 Yay! :) 20:59:32 great :) 20:59:34 Screenshots when you're done. 20:59:43 kc5tja: got any kerstrel emu screenshots? 21:00:04 slava: http://www.falvotech.com/kestrel.html 21:01:20 kc5tja: cool! 21:01:54 :) will post screenshot 21:06:40 ok, 130 line function shortened to 85 lines. 21:06:42 still too long! 21:06:48 hehe 21:06:52 i wish all my code was factored :) 21:07:14 * kc5tja is playing with Kestrel boot-time logos now. 21:07:22 oh my 21:07:25 kc5tja: will it have ROM? 21:07:33 How else will it boot? 21:07:41 of course :) how much? 21:07:49 I dunno. 21:07:51 Depends. 21:07:56 will forth be in rom? 21:07:59 Yes. 21:08:05 what about bug fixes etc? 21:08:13 will it be hackable? 21:08:14 The ROM code is copied to RAM on boot-up though, since ROM is slower than RAM. 21:08:27 so its a matter of 'patching' after it boots, if you want to hack it? 21:08:31 The ROM itself is not reprogrammable from within the Kestrel. 21:08:32 I don't know ROM was slow 21:08:33 Yes. 21:08:44 i don't know if i like that idea 21:08:50 Herkamire: The cheaper the ROM, the slower it is. 21:09:14 kc5tja: if there was some way of redefining an existing ROM word and have all callers use the new definition, it would serve the same purpose as the ROM patches in classic MacOS. 21:09:19 --- join: topher (~chris@lsanca1-ar42-4-61-175-184.lsanca1.dsl-verizon.net) joined #forth 21:09:19 warpzero: Why? What difference does it make? 21:09:27 older macs have roms up to 4mb. 21:10:05 slava: The reason the OS in the ROM is immutable is to ensure that the box always has a usable default condition. 21:10:18 If you want to patch the "ROM", do so after it boots. 21:10:53 will we be able to 'SEE' ROM definitions? 21:10:55 The very first thing the CPU does is copy ROM to RAM, then banks out ROM. 21:11:24 slava: Colon definitions are compiled to native machine language, so not in the way you might be thinking. 21:11:31 what about the original source? Will ROM be a binary image or a small piece of compiled code and blocks of source? 21:11:51 kc5tja: i'm aware of the stack cpu nature, but i'm wondering if some debugging info will be retained by the compiler 21:12:26 Of course source will be available to the ROM image. It's GPLed! 21:12:39 And yes, the Kestrel will be able to compile its own OS. 21:12:59 kc5tja: well i kinda like the idea of being able to hack your shit up 21:13:16 warpzero: Have EEPROM Programmer, Will Travel. 21:14:25 Besides, you can make custom "ROM Images", load them into memory starting at address 0, then just jump directly to location 0. The effect is precisely equivalent to booting into the new "ROM" image. 21:14:43 Once debugged, program a new set of ROMs, and replace the existing ROMs. Done. 21:14:54 kc5tja: any expansion slots? i'm guessing not :) 21:15:02 Not on this model, no. 21:15:14 Slots take space, and I'm charged by the square inch, quite exorbitantly. 21:15:50 Expansion will hopefully be tackled instead by way of the peripheral interconnect loop interface. 21:18:02 slava: As far as how much ROM will actually ship with the Kestrel, I don't know. 21:18:06 There are two schools of thought. 21:18:29 The first is that I can have the motherboard chipset hold off the CPU until it copies the contents of a serial EEPROM into RAM, starting at address zero. 21:18:53 The second is to just include around 16KB of ROM or so to house just enough of the Forth system to boot the remainder of the box with. 21:19:32 --- quit: TreyB (Read error: 110 (Connection timed out)) 21:19:51 As a variation of the second thought, I can build the Kestrel like a game machine console, and include the OS on some kind of "cartridge." But that's kind of expensive for the same reasons expansion slots are expensive. 21:20:42 i think rom is fine 21:20:56 i hope there is code in rom to access some kind of disk though :) 21:21:24 Well, uhh..yeah. Of course. 21:21:41 what kind of keyboard interface do you plan? sorry if i'm asking too many q's :) 21:21:43 16KB isn't enough for anyone, despite what Gates seems to think. :) 21:21:49 is that ram? 21:22:01 No. RAM is likely to be ordinary PC100 SDRAM. 21:22:05 wow 21:22:14 so we can have a large amount? 21:22:29 with something like 32mb you can keep all your forth code loaded all the time. 21:22:38 The CPU can address 16TB logically; whether it can actually address that amount depends on how many pins there are on the CPU itself. 21:22:52 Gezzz. 21:22:56 16GB... 21:23:25 nice 21:23:45 this will be quite a usable machine 21:23:55 Well, I'm hoping. :) 21:24:13 Think Commodore 64 vastly more modernized, but without sprites (sorry, they're too hard to implement at these speeds). 21:24:23 That's the kind of machine I'm shooting for with this. 21:24:43 yeah, the machines at the time of the c64 booted into a programming environment -- that was cool :) 21:24:51 Instant on, instant off, lots of colors, hacker friendly architecture, lots of RAM, intelligently designed I/O interfaces, ... 21:24:59 lisp machines had the same idea, but much more heavyweight. 21:25:21 --- join: I440r (~mark4@216-110-82-1.gen.twtelecom.net) joined #forth 21:25:33 the c64 had sprites? 21:25:49 warpzero: It had eight 24x21 pixel sprites, yes. 21:25:57 sounds like I will have to get a kestrel 21:26:19 :) 21:26:33 Well, I'm trying, as my time permits. 21:26:41 Though, I do need a logo for it. 21:27:16 isforth needs a logo :P 21:27:32 ytes tyhe c64 had sprites 21:27:33 I440r: Screen shot 2 is on my site. Color picker demo. 21:28:05 hiya 21:28:18 I440r: hi there, wanna teach me some isforth cussing? :) 21:28:24 lol 21:28:32 lol 21:28:39 u not figured that out yet ? 21:28:52 its SIMPLE111 21:28:53 lol 21:29:08 well 21:29:13 I've been t00 l4z33 21:29:20 exactly 21:29:23 me 2 21:29:29 ^_^ 21:32:13 http://groups.google.com/groups?dq=&hl=en&lr=&ie=UTF-8&group=comp.lang.forth&selm=10co0a6g2oacq5c%40corp.supernews.com 21:32:15 lol 21:34:03 I personally don't know of any bugs that are programming in Forth, personally. 21:34:45 lol 21:35:56 --- join: wmg (~weldon@bgp02689673bgs.flrdav01.dc.comcast.net) joined #forth 21:36:06 hi wmg 21:36:14 hi I440r 21:36:24 there are bugs in all non trivial programs 21:36:30 but u knew that hehe 21:36:49 err... except isforth! 21:37:02 I thought you said "non trivial" 21:37:06 * wmg ducks 21:37:39 But that's not what Jeff was talking about. 21:37:43 Look at the message again. 21:37:50 He clearly stated "bugs that program in Forth". 21:38:01 that's one impressive bug 21:38:39 lol 21:38:41 forth is so easy i taught a cockroach 21:38:47 :) 21:39:01 come teach mine, ive got hundreds 21:39:07 tho... they are about to be evicted 21:39:09 forceably 21:39:18 cockroaches aren't bugs 21:40:01 they are what 21:40:07 weapons of mass destruction? 21:40:12 HAHA! 21:40:26 no that's cicadas 21:42:18 I think I finally decided on the Kestrel's boot-time logo. 21:42:28 what 21:42:34 a hawk ? 21:42:52 No. A C64-like rainbow with the word "Kestrel" flush right, in white. 21:42:55 kc5tja: a Kestrel? :) 21:43:01 kc5tja: bleh. 21:43:02 Kestrels are too hard to draw. 21:43:08 kc5tja: dude, you gotta have a l33t 3d image 21:43:15 kc5tja: I can do that for you, no problemo 21:43:19 kc5tja: make it look like the sega genisis logo 21:43:28 and make it go KEEESTERL 21:43:33 kc5tja: and then I can GIMP it up a bit 21:43:36 kc5tja: and make it l33t 21:43:46 yeah gimp is so 3d arke 21:44:23 warpzero: WELL YOU KNOW WAHT I CAN DRAW 3D WITH A PENCIL FOO BETTER THAN ANY GL GRAPHIC (although slower, but let's not mention that) 21:44:34 what's wrong with blender? 21:44:50 http://www.falvotech.com/klogo.png 21:44:53 wmg: PGRAPHITE IS BETTER AND L33T3R 21:45:12 no pgraphite is the sux0r blender is the rox0r 21:45:12 wouldn't gif be a more apropriate format 21:45:49 warpzero: No. 21:45:59 eh 21:46:08 didn't you say 640x480x8 21:46:15 hmmm... xchat corrects my spelling 21:46:17 kc5tja: would you like me to make you something cool 3D-ish? 21:46:21 Yes. So? 21:46:22 even when I'm mocking 1337speek 21:46:31 well isn't gif like all 8-bit 21:46:45 warpzero: PNG is n-bit, for 1 <= n < positive infinity. 21:46:56 orly i didn't know that 21:47:01 Besides, PNG compresses better. 21:47:08 Yeah, PNG is pretty cool. :) 21:47:11 And it's patent free. 21:47:14 yeah 21:47:15 kc5tja: you're gonna feed Kestrel raw tho, right? 21:47:18 lol: Trinary to ASCII to decimal to hex table, provided, strangely enough, 21:47:18 for the convenience of Malbolge programmers. 21:47:36 Herkamire: man, malbolge has even ME too scared to use it. 21:47:39 arke: yes, in the ROM image, the image will be stored as a raw pixmap. 21:47:40 now I want a logo.... 21:47:41 yeah i loled at that 21:47:46 Herkamire: and I've used a mightly lot of obfuscated langages 21:47:47 what is malbolge? 21:47:55 I did finally come up with a name for my compiler, at least. That's a start 21:48:06 it's like a garage band in jr. high: having a cool name is the important part 21:48:13 are you going to call it "compiler" 21:48:22 no but that would be cool too 21:48:42 someone should invent a new language called ducktape :P 21:48:52 Wall did 21:48:57 kc5tja: so, wanana 21:49:05 kc5tja: so, wanna answer my pervios question? :) 21:49:25 malbolge? sounds like a sex offender having an erection - Mal - Bulge 21:49:32 lol 21:50:20 New logo idea -- same URL. 21:50:32 Basically testing whether or not the rainbow ought to go through the word or not. 21:50:47 I like with with the rainbow going all the way through, personally. But the latter is easier to read. 21:50:50 wasn't malbolge the guardian of Hell's 5th circle? 21:50:53 kc5tja: yeah do that but then have the colormap rotate when its loading 21:51:03 so the rainbow moves 21:51:14 as far as obfuscated languages go I'm a fan of befunge 21:51:18 warpzero: It'll be at an OK prompt before the user's finger leaves the power switch. 21:51:20 kc5tja: bottom one is cute 21:51:24 wmg: what about whitespace? 21:51:27 kc5tja: top one is hard to read 21:51:28 though the first compiler I ever wrote was for unlambda 21:51:29 kc5tja: oh yeah 21:51:32 aum that one is pretty cool 21:51:48 kc5tja: or maybe you should have me draw+GIMP something for you, mmkay? 21:51:57 arke: If you wish. 21:52:07 i don't know i kinda like this 80s style 21:52:18 too bad ill never see it 21:52:42 kc5tja: got any idea? 21:53:35 arke: draw a glass-3d-transparent kestrel 21:53:48 lol 21:53:49 I could 21:53:56 do it 21:54:04 kc5tja: seriously, any idea on what you want? 21:54:07 can you make me a logo too please 21:54:10 kc5tja: and a time limit? 21:54:16 warpzero: no, you're not l33t like kc5tja is 21:54:21 i yam too 21:54:36 Actually, I like the idea of a glass 3-D Kestrel model. 21:54:46 i win 21:54:51 But it also has to look good shrunk down to about 64 pixels tall too. 21:55:00 No particular time limit. 21:55:04 warpzero: What kind of logo? 21:55:13 kc5tja: oh i need one for argonflame 21:55:31 forth needs a mascot 21:55:57 wmg: . 21:55:58 did Oreilly ever do a forth book? 21:56:00 wmg: thats the mascot 21:56:06 . 21:56:34 . 21:56:37 kc5tja: how about jsut a cool kestrel, with some forshortening, as the "icon", and then a cool 3D scene around it for the logo? 21:56:50 arke: how about a glass kestrel 21:56:52 huh 21:56:53 we should pick the cockroach 21:56:54 how about that 21:56:58 because they can code it too :)( 21:57:01 stop fucking with my brilliant idea 21:57:07 lol 21:58:14 wmg: No, but I envision they wouldn't be opposed to the idea. However, they really might not publish it because of limited market acceptance. 21:58:36 arke: Dude, I'm looking for something that is at MOST 64 pixels tall, period. 21:58:36 cockroach is a good mascot - a very resilient species that will endure after humanity extinguishes itself 21:58:55 kc5tja: period? 21:58:57 No scenes. 21:58:59 Period. 21:59:02 ROM space is finite. 21:59:08 I don't have 32MB of ROM to devote to ths. 21:59:08 maybe something that builds large structures out of small parts 21:59:09 this 21:59:11 * arke submitted 5 bash quotes in the last 25 minutes 21:59:13 coral or something 21:59:23 those java bastards got the ant already 21:59:29 kc5tja: 64x64 pixels, you say? 21:59:50 It doesn't need to be 64 pixels wide; but at most 64 pixels *tall*. 22:00:54 it could be procedural 22:01:02 that would be nift 22:01:21 kc5tja: 64x480? lol 22:01:26 er 22:01:29 640x64 22:01:30 :) 22:02:02 http://bit-tech.net/article/135/ - a case-mod to die for (almost) 22:02:19 I don't believe in case mods. 22:02:35 Except for one -- a positive pressure dual fan blower that guarantees the guts of the computer stays cool. 22:02:38 kc5tja: even if you don't believe in them, they still exist ;p 22:02:50 how about a virus - pure dna 22:02:53 kc5tja: do you believe in keyboad mods 22:02:55 a double helix 22:03:21 OH!!! 22:03:23 I GOT IT 22:03:29 * aum has wanted to get a glove mouse for a while - and to program a 'flip the bird' gesture to closing the active window 22:03:37 a Double Helix, surrounding a Kestrel, with the Letters Kestrel formed by it 22:03:42 and make it l33t 3D 22:03:55 i meant for forth in general lol 22:04:00 lol 22:04:44 or maybe forths logo should be the coffee molecule :) 22:05:29 blol 22:05:45 i mean caffine of corse 22:05:47 clol 22:05:51 I440r: forth's logo should be the LSD molecule 22:05:57 but coffee is the only valid source of caffine :) 22:05:59 Dude, simplicity rules. 22:06:02 rye ergot 22:06:05 blol - v. to be loled, see befuddle etc. 22:06:12 I have limited screen real-estate, and limited colors. 22:06:22 well make more colors 22:06:32 warpzero: Pay for it. 22:06:48 --- quit: wmg ("Leaving") 22:06:50 im the one not getting a video adapter remember 22:06:59 Then you have no say in it. :) 22:07:13 yeah :( 22:07:15 I chose 8-bit wide pixels because they're cheap and easy to implement in hardware. 22:07:46 --- quit: poingie (Read error: 110 (Connection timed out)) 22:08:22 8 bit is enough for a l33t logo 22:08:36 640x64 bytes 22:09:46 my desktop right now : http://www.jedit.org/index.php?page=screenshot&image=32 22:09:53 10x64x64 = 10x2^6x2^6 = 10x2^12 = 10x4096 = 40960 bytes = 10240 cells 22:10:42 arke: Yep. Now you know why I want to reduce the image. 22:10:54 Besides, it's a _logo_, not a full-blown picture. 22:11:55 C8H10N4O2 22:11:58 doh! 22:12:01 pity theres no H in hex 22:12:03 bug found. 22:12:04 or an N 22:12:14 I defined a variable named "cr" 22:12:19 I440r: Or an O 22:12:28 oh yea lol 22:12:36 we could use base 36 and define caffine :) 22:13:20 c8 h10 n4 o2 22:13:23 base36? as in letters/digits? 22:13:44 yes. 36 base ! C8H10N4O2 decimal . 22:13:45 hehe 22:15:16 switching to teehee guys 22:15:17 I440r: I'm still waiting for your isforth linux kernel replacement packages 22:15:22 (herkforth can't currently handle a word and variable with the same name) 22:15:57 Herkamire: Are you intending it to do so? 22:16:15 --- join: Sonarman_ (~matt@adsl-64-171-254-181.dsl.snfc21.pacbell.net) joined #forth 22:16:24 FTS/Forth and BoxForth won't. I feel that introduces too much complexity in the language, and actually takes one of its nicest features away. 22:16:30 --- quit: Sonarman (Nick collision from services.) 22:16:37 --- nick: Sonarman_ -> Sobarnam 22:16:39 :) 22:16:42 --- nick: Sobarnam -> Sonarman 22:16:47 Soberman? :D 22:16:52 ^_^ 22:18:29 aum give it a year or 2 :) 22:18:39 Wow. 22:18:52 64 pixel tall logo is perfect for a 640x480 display. 22:19:00 * kc5tja has his X displaying in 640x480 mode right now. 22:19:10 8x8 text font might be a bit small for some people though. :) 22:19:24 I440r: ok, i'll hold you to that - don't forget to do drivers for all the common cards, printers, cameras etc 22:19:46 I440r: shouldn't take more than 7 weeks, eh? 22:20:58 hmmm....that sounds like fighten' words. 22:21:21 6.5 22:21:21 yay :) mandelbrot works mostly :) 22:21:44 now I gotta get it to display the right way up, and pick slightly better starting coordinates 22:22:19 Herkamire: Are you making use of integer only math, or are you using floating point numbers? 22:22:23 kc5tja: my bug was I accidently named a variable "cr" (which is a word: : cr 10 emit ;) 22:22:37 I did fixed point int math 22:22:51 ahh, nice. :) 22:23:03 --- quit: aum () 22:23:06 You'll have to work on a Mandelbrot generator for Kestrel. :) 22:23:28 Or at least, I will have to transliterate code. 22:23:53 not sure what your was question about my intention. I do not intend to support a variable and word of the same name (although I do intend stop people from doing this instead of segfaulting or whatever happens now) 22:24:18 oh, the kestrel certainly needs a mandelbrot generator 22:24:31 it'll be pretty slow, but I'd make it anyway 22:24:52 :) 22:25:21 I'm sure it'd run at an appreciable speed on real hardware. 22:25:32 Herkamire: we're waiting for a screenshot :) 22:25:55 * kc5tja sees Herkamire post the screenshot of the segfault produced by invoking cr in his program. :D 22:26:35 at least we get to see if he uses a cool font in his terminal :) 22:26:35 heh :) no I got that fixed 22:26:46 it's beyond me why it's displaying sideways though 22:27:13 Haha :) 22:28:25 and it goes off the bottom of the screen a little 22:31:38 hmmm... maybe it's displaying sideways because I'm displaying i on the virtical axis 22:31:52 doh! 22:32:37 Whoopsie -- someone's missing a SWAP somewhere. :D 22:36:46 no swap nessesary 22:37:28 just make the inner loop alter the real portion 22:37:56 now to figure out how to take a screenshot without obscuring it... 22:38:15 Have gimp? 22:38:32 You can use it to delay a few seconds while you re-arrange windows, and then it'll take the screen shot. 22:38:36 sleep 4; scrot shot.png 22:38:51 you have four seconds to minimize the terminal window 22:38:53 :) 22:40:49 scrot? 22:42:28 a little command-line screenshot app 22:43:32 i used to take a LOT of screenshots because dillo doesn't record the history of web sites you've visited :) 22:44:14 so i'd arrange all the browser windows on the screen for the screenshot and then look at it later to recall what i was doing 22:47:28 tada! 22:47:29 http://herkamire.com/jasondata/images/herkforth_mandelbrot.png 22:48:13 I just wrote a little script: sleep 60; screenshot 22:48:42 cool 22:48:49 problem is that herkforth just writes to the frame buffer, so doing anything with the wm etc obscures the image 22:49:09 it took about 27 secconds to generate (at 255 iterations) 22:50:26 is that fast or slow? 22:50:38 slow 22:52:16 does your code use complex numbers? 22:52:26 ? 22:52:44 isn't the math behind mandelbrot complex analysis? 22:52:44 ? 22:52:47 yes 22:53:50 I don't have any special words to handle complex numbers though 22:54:08 just + - dup ! @ s* 22:54:19 s* is a fixed precision multiply 22:54:25 didn't know what to call it 22:54:35 --- nick: topher -> topher|away 22:55:08 hrm? 22:55:12 Herkamire: how doesi work? 22:55:23 teehee: mandelbrot algorithm? 22:55:29 teehee: do you know about complex numbers? 22:56:11 f(z) = z^2 + c 22:56:19 z and c are complex numbers 22:56:23 Herkamire: a+bi :) 22:56:35 right 22:56:47 z starts out at 0+0i 22:56:49 Herkamire: was talking about s* by the qay, but explain both :) 22:56:55 :) 22:57:39 c starts out with the coordinates for the pixel you are calculating: the real part is the coordinate for the x axis, and the imaginary, the vertical axis 22:58:02 aka y avis :) 22:58:46 you keep iterating through this function until the magnitude of z is > 2 (ie zi^2 + zr^2 > 4) 22:59:25 then you color the pixel at the coordinates you started c off with according to the number of iterations it took to get the magnitude of z above 2 22:59:43 I show higher iterations as brighter blue 22:59:57 and never (ok, so I gave up at 255 iterations) as black 23:00:20 the only coloring convention is to always color never (aka the set) black 23:01:08 ok, now s* 23:01:32 for these calculations I used a fixed point representation for numbers 23:01:53 the high 16 bits are the integral part, and the low 16 bits are after the decimal point 23:03:08 so when I multiply two of these, the decimal point ends up 32 bits from the right 23:05:22 so then it's just a few instructions to get the middle 32 bits of the 64 bit product 23:05:36 aah, so emulated float :) 23:05:41 so 23:05:43 no 23:05:46 Well, I'm going to bed. 23:05:46 it's fixed point 23:05:53 er 23:05:55 not floating point 23:05:59 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:06:01 dkdn 't mean float 23:06:03 the decimal point is always after bit 15 23:06:04 I meant 23:06:19 non-integer 23:07:09 pretty straight-foreward fixed point math 23:07:33 :) 23:08:22 BTW it takes three instructions to get the fixed point product as compaired to one for a simple multiply 23:08:47 plus 2 instructions for nip 23:09:02 so 5 vs 3 23:09:32 --- quit: topher|away (Client Quit) 23:10:04 at some point I'd love to something really spiffy and really fast with altivec 23:10:35 first, a realtime zoomer for for as deep as you can go with floats 23:11:06 then a fancy arbitrary precision thing for going very very deep 23:11:22 "_ 23:11:26 :) 23:11:42 it would calculate near the mouse first, and be able to run in the background (and even save current progress, and continue after turning the computer back on) 23:12:05 maybe I could even use both processors :) 23:12:40 1sleep 23:12:46 ? 23:12:56 sleep 23:12:58 night 23:13:08 teehee: do you have an alternate nick I would know? 23:13:16 like arke? 23:13:19 arke 23:13:20 :) 23:13:22 :) 23:13:28 I'll try to remember 23:13:38 arke is local, teehee is onm the shell account (misato) 23:13:44 ok 23:13:46 goodnight 23:13:50 I'm off to bed too 23:15:08 i just noticed something: when rotated 90 degrees clockwise, the image of the mandelbrot set looks like the way the Buddha is often portrayed 23:16:44 :) 23:18:26 --- quit: Herkamire ("goodnight") 23:34:21 --- quit: Sonarman ("leaving") 23:59:59 --- log: ended forth/04.06.14