00:00:00 --- log: started forth/03.10.01 00:00:17 --- join: Serg_Penguin (~z@212.34.52.140) joined #forth 00:01:13 --- quit: Serg_Penguin (Client Quit) 00:24:56 --- join: superdave (~superdave@co-trinidad1a-42.clspco.adelphia.net) joined #forth 00:48:21 --- quit: superdave ("Vision[0.9.6-0203]: i've been blurred!") 01:35:49 --- join: schihei (schihei@141.87.8.45) joined #forth 01:46:44 --- join: mur (~mur@uiah.fi) joined #forth 01:52:12 --- quit: SDO (Read error: 110 (Connection timed out)) 01:56:21 --- quit: njd () 01:56:34 --- join: njd (~melons@njd.paradise.net.nz) joined #forth 01:59:13 --- quit: mur ("Changing server") 02:00:40 --- join: mur (~mur@uiah.fi) joined #forth 02:21:23 --- quit: schihei () 03:06:38 --- quit: mur ("0xF00D") 03:56:20 --- join: mur (~mur@mgw2.uiah.fi) joined #forth 04:21:27 --- join: segher (~segher@blueice1a.de.ibm.com) joined #forth 04:42:50 --- join: karingo (karingo@53.portland-01-02rs.or.dial-access.att.net) joined #forth 04:43:37 --- quit: karingo (Client Quit) 04:49:26 --- join: schihei (schihei@141.87.8.67) joined #forth 04:54:00 --- quit: schihei () 06:40:43 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 07:01:05 --- quit: mur ("terve") 08:16:22 --- quit: fridge ("http://lice.codehack.com") 08:17:07 --- join: fridge (~fridge@dsl-203-33-164-231.NSW.netspace.net.au) joined #forth 08:28:43 --- quit: tathi ("leaving") 09:36:16 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-37.miamfl.adelphia.net) joined #forth 10:31:10 --- quit: gilbertdeb ("The only known silver bullet: Brute Force") 10:39:48 --- join: Speuler (~Speuler@mnch-d9ba4814.pool.mediaWays.net) joined #forth 10:40:29 : main ." Hello, world" ; compiles to 339 bytes stand-alone (forth compiler) 10:42:17 : main s" Hello, world" type ; 307 bytes ... 10:44:08 : main cr ." Hello, World!" ; compiles to 80 bytes (decimal) on my 64-bit box 10:44:40 segher: what compiler ? 10:44:47 my own 10:45:28 i'll bring that down too, later on. is now compiling loop through emit 10:46:00 got string literals working, was the message :) 10:46:06 aha :-) 10:46:21 segher: what size is your header ? 10:46:26 header? 10:46:39 (my elf-header alome is already 80 bytes ...) 10:46:44 alone 10:46:55 what do you mean by "header"? 10:47:21 stand-alone executables need a header, at least under linux (elf) and windows 10:47:28 i don't run on an OS. 10:47:42 the size of my executable, including the header, is those 300 and something bytes 10:47:54 on x86, i guess? 10:47:57 that's pretty small 10:48:00 yes 10:48:11 not optimized at all yet 10:48:36 'll keep that for later when functionality is more or less complete 10:48:55 that's a good idea 10:49:10 but in that case, those hello,worlds are difficult to compare 10:49:54 wouldn't be on my system -- ." xxx" and s" xxx" type compile to the same thing :-) 10:50:25 yeah 10:50:59 right now, i got a code (s"), and a highlevel (.") 10:51:11 the (s") is more compact 10:52:03 means, compiles to more compact code 10:52:42 but it is not code size or speed i'm after 10:52:59 more, the ability to give away code, which doesn't require an interpreter to run 10:53:20 : ." postpone s" postpone type ; immediate 10:53:32 although speed is not bad, considering that there's no effort put into optizing 10:53:33 sure 10:53:51 about 3..4 times gforth speed 10:54:09 heh 10:54:15 i'm about 100x gforth speed 10:54:20 100x slower :-) 10:54:30 ouch 10:54:33 but i don't care :-) 10:55:13 've got a system which is about 10000 times slower :) 10:56:12 t'is not about to get into a "mine is shorter than yours" competition :) 10:56:23 yeah 10:56:34 my system does the job. so it is fine for me :-) 10:56:43 right 10:57:32 i'm not going to optimize anything until i have done some decent profiling on it, and for that, i need to have the typical application already written 10:57:45 so the optimization stuff will just have to wait 10:58:15 with a native-code compiler, optimization would have to occur on a different level 10:58:23 yeah 10:58:24 not the compiler, but the generated code is what counts 10:58:38 inlining is the important thing 10:58:43 for a native compiler 10:58:53 don't do any peeking yet 10:59:24 i.e. the ability to generate better code, in relationship to the next word 10:59:56 say "dup" sees "drop" as next word, dup woould decide to compile nothing at all 11:00:03 sure 11:00:05 (and skip the drop, of course) 11:00:19 that's a silly example 11:00:26 you get that for free if you do inlining 11:00:43 but for generating machine code, many words can be pulled together into one instruction 11:00:53 say, 3 + 11:01:01 sure 11:01:06 rather than pushing 3, then compiling +, 11:01:12 one stupid cisc machines, that is :-) 11:01:23 it wooul dbe something like add 3 to tos 11:01:34 yeah 11:01:40 applies to risc as well 11:02:00 yes, but less 11:02:40 applies always if you want to combine two forth words into one opcode 11:02:59 yes, but risc doesn't have complicated opcodes/addressing modes 11:03:20 so there is less to collapse 11:03:30 but you can do better register allocation 11:04:14 also cisc have simple instructions. programmer can choose to use them, and avoid the ciscy ones 11:04:26 sure 11:04:37 but that's not going to be fast or compact code 11:04:44 with 386+, it makes sense in terms of speed for many of the (remaining) cisc instructions 11:04:47 and that's what optimizing is about, after all ;-) 11:04:59 ok, tends to get less compact 11:05:00 nah, only on p6 11:05:03 but often quicker 11:05:10 only quicker on p6 11:05:21 well, in general 11:06:27 for eample, my do loop contruct (not using loop opcode, but dec/cmp/conditional branch) is about the same speed as the for next, using ciscy loop 11:07:11 didn't cycle count it. just the imporession of two loops, running till 1 billion each 11:07:43 which surprised me a bit 11:07:59 nah, it's probably just not scheduled very well 11:09:42 with another case (block moves), it is known that looping through autoincing fetch/store is quicker than the cisc-instruction the 386+ has got for that purpose 11:10:16 ( rep movs ) 11:10:38 rep movsd is fastest on quite a few cpu's still 11:10:51 saves bytes but costs cycles 11:10:59 unless you don't mind using sse to do moves 11:11:21 too cpu brand specific 11:11:46 of course. if you want great performance, you need to hand-tune the tight loops _per target cpu_ 11:11:53 that's just the way that life is. 11:13:44 i'd like to get to the point that the compiler compiles itself before attempting to optimize the generated code 11:14:07 of course 11:15:09 oh 11:15:16 stargate just starting 11:15:49 * Speuler tucks the compiler away 11:15:59 --- join: SDO (~SDO@co-trinidad1a-42.clspco.adelphia.net) joined #forth 11:47:48 --- part: Speuler left #forth 12:01:43 --- quit: segher ("connection reset by beer") 12:35:20 --- join: wossname (wossname@HSE-QuebecCity-ppp80975.qc.sympatico.ca) joined #forth 12:43:21 --- quit: wossname ("lol") 15:49:44 y0 15:59:34 --- quit: ChrisRW (Excess Flood) 16:00:15 --- join: ChrisRW (~arke@adsl-68-22-251-173.dsl.chmpil.ameritech.net) joined #forth 17:10:13 --- nick: ChrisRW -> arke 17:49:01 hey 17:49:04 hrm 17:49:07 I440r not around? 17:49:08 damn. 17:49:28 i found an isforth bug ... anybody care to prove me wrong that its a bug? 18:47:04 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 18:47:05 --- mode: ChanServ set +o kc5tja 18:47:39 Well, I'm happy to report that I got myself a job at the local burger joint. Finally got the call today. 18:47:53 And needless to say, the hair that went all the way to the small of my back . . . is no more. :) 18:48:00 Now I barely have any hair on my head at all. 19:27:21 lol 19:27:32 made myself a little project 19:27:46 basically, a complete chemistry program in pygmy lol 19:28:36 gonna start with the periodic table data 19:28:58 gonna see if i can get a hash table going :) 19:46:43 :) 19:46:46 Cool. 19:48:17 Man, it feels awkward not having any hair anymore. :D 19:48:27 I haven't felt this way since I left the military. :D 19:49:18 Anyway, I need to get to the local food joint, and then it's time for homework. 19:49:30 :) 19:49:37 didnt know you were in the military :) 19:49:47 Good luck on your Pygmy experiments. It's the Forth I cut my teeth on, and it's the Forth that most inspired FS/Forth. Though FS/Forth certainly does not look very much like Pygmy. :) 19:49:55 Heheh -- not many people do. :D 19:50:20 Anyway, back in a bit. 19:50:23 * kc5tja is away: food 20:20:37 Back! 20:20:38 * kc5tja is back (gone 00:30:15) 20:20:55 :) 20:21:12 kc5tja whats the stack frame inside an if? 20:21:29 The flag is consumed. 20:21:43 so 20:21:57 if its a b c flag before, its a b c inside and outside? 20:22:05 Yes 20:24:38 aah, ok thanks :) 20:36:25 i got a question: is there any way to make this prettier in pygmy: 20:36:32 dup 117 > if 20:36:33 drop 20:36:36 drop drop drop drop drop drop 20:36:47 else [snip] 20:38:01 Well, my personal preference is to factor out all those drops. 20:38:09 : 6drop 2drop 2drop 2drop ; 20:38:21 : ... dup 117 > if 6drop else ... 20:38:36 6drop drop you mean ... its supposed to be 7 :) 20:38:47 Ahh 20:38:55 Close enough. 20:39:19 I'll define words like 256* and 64/ and such, because of the quantity of 2* or 2/ I use in a program. 20:39:23 Even if I use those words only once. 20:51:02 heh 20:51:09 hrm 20:52:03 can i set up interrupts in pygmy? 20:53:04 You'd have to make use of its assembler to create a binding to the low-level hardware (e.g., nothing in Pygmy compiles the "iret" instruction, nor preserves registers like you need to for an interrupt handler), but it is doable. 20:54:23 i was thinking of a multi-tasking thing 20:55:07 If you have the latest version of Pygmy (1.4 or 1.5 or something like that), it supports cooperative multitasking already. 21:04:47 * kc5tja is away: homework. 21:13:57 :) 21:14:42 --- quit: njd (calvino.freenode.net irc.freenode.net) 21:14:42 --- quit: skylan (calvino.freenode.net irc.freenode.net) 21:14:43 --- quit: onetom (calvino.freenode.net irc.freenode.net) 21:16:10 --- join: njd (~melons@njd.paradise.net.nz) joined #forth 21:16:10 --- join: skylan (sjh@nwc57-141.nwconx.net) joined #forth 21:16:10 --- join: onetom (~tom@cab.bio.u-szeged.hu) joined #forth 21:28:31 I seem to recall an int handler example in the Pygmy package 21:29:27 --- join: Robert_ (~snofs@h31n2fls31o965.telia.com) joined #forth 21:34:49 --- quit: Robert (Read error: 104 (Connection reset by peer)) 22:02:25 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-37.miamfl.adelphia.net) joined #forth 22:07:57 --- quit: gilbertbsd ("[BX] The birds kept calling his name, thought Caw") 22:10:57 --- quit: SDO (Read error: 60 (Operation timed out)) 22:13:54 --- join: Serg_Penguin (~z@212.34.52.140) joined #forth 22:27:00 --- join: onetom_ (~tom@cab.bio.u-szeged.hu) joined #forth 22:27:01 --- quit: onetom (Read error: 104 (Connection reset by peer)) 22:39:03 --- quit: njd () 23:25:41 --- nick: Robert_ -> Robert 23:53:54 --- quit: skylan (Nick collision from services.) 23:54:04 --- join: skylan (sjh@vickesh01-4729.tbaytel.net) joined #forth 23:59:59 --- log: ended forth/03.10.01