00:00:00 --- log: started forth/09.11.09 00:16:15 --- nick: gogonkt_ -> gogonkt 01:04:07 --- quit: PoppaVic (Client Quit) 01:11:14 --- join: ASau (n=user@host228-230-msk.microtest.ru) joined #forth 01:18:25 --- quit: nighty^ (Remote closed the connection) 02:22:21 --- join: TR2N (i=email@89.180.200.86) joined #forth 02:53:19 --- join: H4ns (n=Hans@p57BBB02A.dip0.t-ipconnect.de) joined #forth 02:59:50 --- join: nighty^ (n=nighty@x122091.ppp.asahi-net.or.jp) joined #forth 03:47:06 --- join: Snoopy_1711 (i=Snoopy_1@88.68.216.251) joined #forth 03:49:37 --- quit: Snoopy_1611 (Read error: 110 (Connection timed out)) 04:17:15 ** ficlSeeColon (for proctologists only) 04:17:17 :D 04:17:25 --- join: DrunkTomato (n=DEDULO@ext-gw.wellcom.tomsk.ru) joined #forth 04:25:58 --- quit: nighty^ ("Disappears in a puff of smoke") 04:42:40 --- join: gnomon_ (n=gnomon@99.232.20.26) joined #forth 04:44:09 --- quit: gnomon (Read error: 104 (Connection reset by peer)) 05:25:56 --- join: kar8nga (n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 05:35:08 Morning group. What's cooking this morning, ASau? 05:49:13 --- quit: H4ns ("Leaving.") 06:08:20 --- join: GeDaMo (n=gedamo@212.225.108.57) joined #forth 06:21:42 --- quit: foxes (Read error: 60 (Operation timed out)) 06:23:22 --- join: foxes (i=flash@222.131.172.47) joined #forth 06:34:03 --- quit: foxLaptop (Read error: 110 (Connection timed out)) 07:35:37 --- nick: gnomon_ -> gnomon 07:43:42 --- join: Al2O3 (n=Al2O3@12.52.43.130) joined #forth 08:00:44 --- quit: ASau ("off") 08:52:53 --- quit: TR2N (Read error: 60 (Operation timed out)) 08:59:26 --- quit: Al2O3 () 09:16:53 --- join: Judofyr (n=Judofyr@cC694BF51.dhcp.bluecom.no) joined #forth 09:28:00 --- join: I440r (n=me@c-69-136-171-118.hsd1.in.comcast.net) joined #forth 09:40:15 --- join: qFox (n=C00K13S@5356B263.cable.casema.nl) joined #forth 09:54:38 --- join: qFxo (n=C00K13S@5356B263.cable.casema.nl) joined #forth 09:55:08 --- join: TR2N (i=email@89-180-220-234.net.novis.pt) joined #forth 09:59:29 --- quit: kar8nga (Remote closed the connection) 10:02:02 --- quit: qFox (Read error: 145 (Connection timed out)) 10:04:35 --- nick: qFxo -> qFox 10:19:16 --- join: qFxo (n=C00K13S@5356B263.cable.casema.nl) joined #forth 10:19:42 --- quit: qFxo (Client Quit) 10:20:34 --- quit: Judofyr (Remote closed the connection) 10:26:55 --- join: kar8nga (n=kar8nga@jol13-1-82-66-176-74.fbx.proxad.net) joined #forth 10:28:17 --- nick: madwork_ -> madwork 10:57:49 --- join: ahelon (n=krima@unaffiliated/ahelon) joined #forth 11:08:08 --- join: tathi (n=josh@dsl-216-227-91-166.fairpoint.net) joined #forth 11:09:31 --- join: PoppaVic (n=pops@adsl-99-150-135-165.dsl.sfldmi.sbcglobal.net) joined #forth 11:10:17 heh.. I'd forgotten how easy it was to blow a foot off with forth.. Forgetting which time you run in ;-) 11:11:13 :) 11:12:15 tathi: hiya.. Yeah, I was just cobbling up some lil' tools for base-conversions, displays, etc.. "Hey! it works great! Umm how come the test.. Oh, compile vs interpret - d'oh!" 11:12:50 Always a joy. And, yeah.. It's true - anyone can write cruft in anything ;-) 11:13:28 So, what's cookin'? 11:15:11 Trying to typeset a piece of choral music and having trouble wrapping my head around some bits of Lilypond. 11:15:46 ahh 11:16:00 dianora does lilypond, iirc - someone else, anyway 11:18:08 Aha. Now I have it. 11:18:29 heh. Good. 11:20:42 You don't realize how complicated music actually is until you try to typeset it. :) 11:21:19 tathi: worse if you try to play it - and can't remember enough except to be careful with the tools and a few freq ;-) 11:21:48 I can't read the notes at all. That mem-bank went faster than german or french 11:35:00 --- nick: Snoopy_1711 -> Snoopy_1611 11:51:33 --- join: gnomon_ (n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 11:51:55 --- quit: gnomon (Read error: 131 (Connection reset by peer)) 12:07:33 --- join: gnomon (n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 12:09:07 --- quit: gnomon_ (Read error: 104 (Connection reset by peer)) 12:23:36 --- join: gnomon_ (n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 12:23:36 --- quit: gnomon (Read error: 131 (Connection reset by peer)) 12:28:40 --- nick: gnomon_ -> gnomon 12:55:24 --- quit: ygrek (Remote closed the connection) 13:01:39 --- quit: DrunkTomato () 13:20:21 --- join: gnomon_ (n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 13:20:59 --- quit: gnomon (Read error: 104 (Connection reset by peer)) 13:22:20 --- quit: Snoopy_1611 (Read error: 145 (Connection timed out)) 13:24:46 --- join: Snoopy_1611 (i=Snoopy_1@dslb-084-059-223-240.pools.arcor-ip.net) joined #forth 13:54:02 --- nick: gnomon_ -> gnomon 13:58:01 --- quit: kar8nga (Remote closed the connection) 14:14:25 --- quit: qFox ("Time for cookies!") 14:27:02 --- quit: ahelon () 14:28:46 --- quit: TR2N (Connection timed out) 14:28:56 --- join: ASau (n=user@83.69.227.32) joined #forth 14:29:49 --- join: TR2N (i=email@89-180-154-183.net.novis.pt) joined #forth 14:37:59 --- join: forther (i=cf2f2264@gateway/web/freenode/x-iwxdwguibtuhpghq) joined #forth 14:38:14 hi, all 14:43:47 hi 14:44:08 Evening. 14:56:09 * forther reading c.l.f. 14:56:33 forther: depressing. 14:56:36 I think something like ' word goto is perfectly normal 14:59:38 --- quit: forther (Ping timeout: 180 seconds) 14:59:42 Probably. 15:00:13 Gassanenko is weird person. 15:02:38 --- join: forther (i=cf2f2264@gateway/web/freenode/x-tsqfeqsuwrnjaazp) joined #forth 15:03:16 forther: Probably. 15:03:16 forther: Gassanenko is weird person. 15:04:23 He heard something about ueber-c00lne55 of TCO but hasn't got the clue. 15:04:58 structural programmers made goto kinda bad word. and it is not 15:05:17 Actually, it is. 15:05:33 no. it's just a tool 15:06:28 You don't understand the essense of structural programming. 15:06:42 in fact I do 15:07:33 The point is that the very fact that "goto is just a tool" is bad. 15:08:24 are you programming for leaving or it's just your hobby? 15:08:40 Both. 15:09:22 then I guess you never dealt with programming for embedded systems 15:09:46 there is nothing wrong with goto. this entire goto phobia is because in basic thats ALL you had but goto can be used for doing tail optimizations 15:09:50 I work in embedded domain. 15:09:54 : blah .......... goto foo ; 15:10:01 branch, zbranch, nzbranch. jmp jrst call ret 15:10:36 PoppaVic, exactly. those are ALl goto's 15:10:42 I know 15:10:51 and there's nothing "bad" with these 15:11:03 I440r: it's far more obvious when you've used asms, or seen the guts of forths. 15:11:10 There's _everything_ bad with these. 15:11:38 if you use nothing BUT got's and gosubs then your code is going to be messy. in vintage basics thats all there was 15:11:43 forther: intristically, certainly not - they are a Given.. Unconditional and Conditional; Relative and Absolute. Done. 15:12:01 I440r: sure, and that's why it is bad. 15:12:03 I440r: right, and the call/ret HELPS - certainly. 15:12:18 gosub/return is your "call/ret". 15:12:19 i just mounted my laptop motherboard between 2 sheets of plexiglass :) 15:12:25 It still doesn't change anything. 15:12:32 All that code is mostly crap. 15:12:35 ASau: bzzt.. yer talking about a language, he's talking about an imp. 15:13:15 basic didnt have begin, while, case etc 15:13:19 Structural programming isn't about implementation, it is about language. 15:13:31 ASau: yes, and "I don't care". 15:13:49 And "Goto considered evil" is about language, not about implementation. 15:13:57 I got structure - it's called C and forth 15:14:10 not in forth. if you think forth is deficient by some control structure that would make it better... ADD it 15:14:22 there's the theorem, that ANY goto spagetti can be automatically converted into the structured program 15:14:29 ASau: it's 1) a generalization; 2) it's for newbies - there is a goddamned reason you instruct a class to not use goto. 15:14:37 and guess what it's even harder to read, then initial spagetti 15:15:09 PoppaVic: it isn't generalization, it is the state of the whole field back than. 15:15:17 And it is good even for pros. 15:15:30 and, seeing a lot of bookless, senseless newbies - I think that #1 and #2 remain In Effect for teaching. 15:15:37 I have had hard time fixing those spaghettis. 15:15:50 ASau: get a compiler 15:16:02 Which one? 15:16:11 I remember, when single goto (long_jmp) actually converted the application from unacceptably slow to perfectly fast 15:16:37 This isn't because structural programming is wrong. 15:17:00 It is because "C" _lacks_ the very tools structural programming talks about. 15:17:14 it was c++ 15:17:36 C++ is a bit better in that respect. 15:17:52 Though your example looks suspicious. 15:18:01 and what structure it has not? 15:18:27 Safe longjmp usage exists only for cases where you need exceptions or other non-local exits. 15:18:46 so ... 15:18:56 ...which in turn can be viewed as a special kind of exceptions. 15:19:20 making hard fast rules about whats good and whats bad is just herding the sheeple into the corner 15:19:39 I think that most likely you didn't recognize what you need. 15:19:44 making SOFT rules about what is good and bad? fine 15:19:57 I440r: my last reply wasn't meant to you. 15:20:20 ASau, you are funny 15:20:22 asau no i know. im not arguing with you your opinion is as valid as mine :P 15:20:58 i make hard fast rules myself about what is good and not good and when i see situation where breaking them makes the code simpler or better i do it 15:21:22 Sure, that's how heuristics works. 15:21:47 "code is art" a friend of mines motto :) 15:21:57 Don't Cross The Streams ;-) 15:21:57 You can find exceptions from general rule, still this doesn't make rule invalid. 15:22:30 it does, actually 15:22:47 It doesn't. 15:22:52 but to call goto BAD just because of its bad rep from languages like basic is a bit silly 15:22:53 if the rule claims, that it is absolute, then any single excpetion invalidates it 15:22:57 This isn't law of nature. 15:23:25 goto might not deserve as much use as other flow control mechanisms but that doesnt make it BAD 15:23:41 what's "law of nature"? 15:23:43 it has a place. if its used where its needed and nowhere else then its good 15:23:55 forther: take a philosophy of science course. 15:24:51 you didn't answer. means you don't know it 15:25:15 woowoo - porkchops a-cookin' 15:25:33 no, far from it ;-) 15:25:41 I don't want to translate lengthy definition into English 15:25:41 just because you are ignorant and don't know elementary things. 15:26:04 If you want to know more, look up into dictionary. 15:26:38 --- quit: GeDaMo ("Leaving.") 15:26:52 I do it all the time, in fact. and I think, that you don't 15:26:53 Otherwise you're drawing talk into debates in philosophy of science. 15:27:57 There's very well established general consensus and general practice on "goto" 15:28:06 "Goto" is BAD. 15:28:08 Period. 15:28:17 This isn't arbitrary. 15:28:24 "exceptions from the rules make the rule stronger" is just meaningless kitchen sentence 15:28:34 You can go into library and dig into works of that period. 15:28:52 I didn't say those words. 15:29:07 And I didn't even meant them. 15:29:10 You did. 15:29:12 you implied 15:29:18 I didn't. 15:29:35 your words were "You can find exceptions from general rule, still this doesn't make rule invalid." 15:29:51 Sure. 15:30:03 And this is true. 15:30:12 Otherwise there weren't criminal laws. 15:30:34 ...there were no criminal laws 15:30:35 oh my ... 15:30:40 Yes. 15:30:45 OK. never mind 15:30:47 Take a course in law. 15:31:08 you both could try valium, or methadone. 15:31:18 Not that british crap, the law rather. 15:31:34 no time for that. I have to get into law school now. 15:31:54 Read it in a book then. 15:33:21 btw, what's "british crap" is it worse, then goto? 15:33:32 All valid uses of goto I meet in C are reduced to these cases: 15:33:40 1) exception handling; 15:33:52 2) loop unnesting. 15:34:07 C doesn't have exception handling constructs, 15:34:15 only a setjmp/longjmp hack. 15:34:29 using calculational goto in gforth made it fastest forth in C, BTW ... 15:34:38 And C cannot break loops except the most nested one. 15:35:10 This is defect of C compilers. 15:36:06 any particular reason, why this defect was not fixed so far? 15:36:26 Because it is deep inside language. 15:36:52 Refer to Ada to learn how it is done. 15:37:18 "C" leave no way to extend it this way. 15:38:51 Well... In fact, it _may_ be done with a hack. 15:39:08 But this leads to language irregularity. 15:41:31 blah 15:41:33 --- part: PoppaVic left #forth 15:42:44 --- join: asdfasd (i=email@89.180.146.13) joined #forth 15:43:31 Hm. 15:43:34 I don't understand ... 15:43:37 Portugal? 15:44:00 no. your english ... 15:44:27 I'm not native english speaker. 15:44:29 I mentioned, that goto makes C implementation of forth interpreter faster 15:44:47 So? 15:44:57 and you said, that it is because some compiler issues 15:45:02 Yes. 15:45:25 and then it appeared, that it is rather language issues ... 15:45:27 "C" isn't the best language to write effective compiler. 15:45:50 That's why you use low level hacks. 15:47:31 how come, that "isn't the best language to write effective compiler" beats all the other languages on the speed benchmarks? 15:47:46 Which "other languages"? 15:48:05 computer languages, i mean 15:48:25 ASMs don't count 15:48:30 You talk like Gassanenko, who heard something about Scheme, 15:48:31 but not everything and didn't hear about other languages at all. 15:48:42 example, please 15:49:05 E.g. Scheme as of R4RS beats C. 15:49:06 leave aside my person and name the language, please 15:49:09 Cf. Stalin. 15:49:24 have a reference? 15:49:29 O'Caml beats C as well. 15:49:37 url, please 15:49:44 Check Google, those are well known facts. 15:50:06 Pretty any whole-program compiler beats C. 15:50:18 prove it 15:50:26 Google it up. 15:51:46 There're enough large domains, where hand-written code is inferior to generated one. 15:53:19 --- quit: forther (Ping timeout: 180 seconds) 15:54:07 --- join: forther (i=cf2f2264@gateway/web/freenode/x-nucqotmbipnnvsii) joined #forth 15:54:12 http://shootout.alioth.debian.org/u32q/benchmark.php?test=nbody&lang=all 15:54:34 --- quit: TR2N (Nick collision from services.) 15:54:47 --- nick: asdfasd -> TR2N 15:54:58 or this one: http://shootout.alioth.debian.org/u32q/benchmark.php?test=meteor&lang=all 15:56:17 --- join: asdfasd (i=email@89-180-146-13.net.novis.pt) joined #forth 15:57:26 Note that "__builtin_ia32_haddpd" is NOT in the language. 15:57:49 Thus it isn't "C", it is specifically tuned. 15:58:08 It points place, where C compiler fails miserably and human has to correct it. 16:00:01 Same applies to other GCC entries. 16:00:39 Note that the program SBCL uses is written portably and the 16:00:39 only compiler-specific parts are about command line handling, 16:00:43 which isn't part of language. 16:01:25 And SBCL isn't much effective at FPN tasks. 16:03:48 --- quit: TR2N (Read error: 145 (Connection timed out)) 16:05:04 --- quit: schmx (Read error: 110 (Connection timed out)) 16:05:06 what are you talking about? I just show you the results from the benchmarks. It shows, that C programs are faster, then, ocaml, etc. 16:05:21 It doesn't show it. 16:05:41 Those "C" programs use features outside the language. 16:06:02 I cannot get SUNPro compiler and get it built. 16:06:26 Or some other compiler. 16:06:38 This disqualifies top C and C++ programs. 16:07:48 can you speak simple language, please 16:08:00 How much simple? 16:08:04 what exactly is wrong with those C programs? 16:08:22 Top C and C++ programs are not written in C and C++. 16:08:33 Do you read what I write you? 16:08:52 Note that "__builtin_ia32_haddpd" is NOT in the language. 16:08:52 Thus it isn't "C", it is specifically tuned. 16:08:52 It points place, where C compiler fails miserably and human has to correct it. 16:08:52 Same applies to other GCC entries. 16:08:55 --- join: Raystm2 (i=rastm2@c-24-8-232-212.hsd1.co.comcast.net) joined #forth 16:09:02 well it says "C gnu CC" ... 16:09:32 Sure, and they didn't present the most effective compilers for other languages. 16:09:34 where did you find that __builtin ...? 16:09:57 Can't you follow links? 16:09:58 http://shootout.alioth.debian.org/u32q/benchmark.php?test=nbody&lang=gcc&id=5 16:10:56 well, it is part of the package 16:11:12 yes, I see those calls 16:11:55 So, if I run, e.g. PPC, this program doesn't work. 16:12:12 It doesn't even build. 16:12:40 Even though it is exactly the same GCC compiler. 16:12:53 ok, let's get some other bm. 16:13:13 if binary-trees is OK? 16:13:50 No idea. 16:14:08 You should check it first, since you propose this benchmark. 16:14:11 I just looked at it and saw nothing special 16:14:53 well ... you proposed I google, so I did and find that place ... saying C GCC is the fastest 16:16:53 That's debian. 16:17:12 Go and find benchmarks for Stalin and MLton. 16:18:02 thanks, but thanks 16:18:17 You compare static language to dynamic ones like CL 16:18:29 me? 16:18:33 and use quite not the best compilers like SBCL. 16:18:42 Sure, you're referring to that benchmark. 16:18:43 Not me. 16:18:44 me? 16:19:10 Do you see any other person around? 16:20:27 These benchmarks have another defect: 16:20:33 they are all single-file. 16:20:41 And most projects are not. 16:20:45 no 16:20:59 biggest defect they prove you wrong 16:21:09 I'm not wrong. 16:21:20 cut the bs, show me another benchmarks' results 16:21:27 Look, you brought C program, which isn't valid "C". 16:21:48 And I've proved it by pointing to builtin feature not in standard. 16:21:59 it compiled and worked 16:22:11 It doesn't compile. 16:22:14 I run ARM. 16:22:16 also the other bm didn't use builtins 16:23:21 and what the language is fastest one on ARM? 16:23:23 Also, your comparison is invalid, because you exclude 16:23:23 effective compilers for Scheme and Lisp in favour of less 16:23:23 effective ones. 16:23:31 This invalidates all your results. 16:24:02 Why don't you use pcc? 16:24:06 Or tcc? 16:24:08 Or cint? 16:24:09 so ... you use Lisp to program your ARM, right? 16:24:21 Yes, I can do it. 16:24:36 Why not? 16:24:52 I didn't ask if you "can", I asked if you *actually* do 16:25:11 Yes, I tried using Scheme. 16:25:27 Just to check if I can rely on it, when I suddenly find the need. 16:25:39 was it faster, then GCC ? 16:25:44 Yes. 16:26:17 It takes a week to develop same application in Scheme and more than a month in C. 16:26:28 I think I need a little bit more, then just your word, to believe it ... 16:26:43 Try writing simplistic web interface in C. 16:27:31 my *faster* was not about development time, but application execution speed 16:27:56 It is the same, since it is limited by I/O and network. 16:28:27 and, please, drop you mentor tone, like "go and do that and that ..." 16:28:28 If I run 2 minute test, it takes 2 minutes. 16:28:38 No more, no less. 16:28:39 it doesn't sound polite 16:29:22 let me give you an example 16:29:34 say, you have to run .... FFT 16:29:53 it is very popular procedure in DSP world 16:30:25 if FFT written in scheme will be faster, then C implementation 16:30:31 ? 16:30:57 FFT generated by OCaml proved to be faster than written in C. 16:31:06 This is major result. 16:31:08 URL, please 16:33:17 http://www.fftw.org/fftw-paper-icassp.pdf 16:33:30 You can find more. 16:34:49 but it is in C 16:35:02 FFTW is written in C 16:35:08 It is generated by OCaml. 16:35:13 It is "raw C". 16:35:34 there's not a single mentioning of OCAML in that article 16:36:40 Search for Caml then. 16:38:33 so they used Caml, to generate C code 16:38:43 Even more here: http://www.ffconsultancy.com/languages/ray_tracer/comparison.html 16:38:45 it doesn't prove, that caml is faster then C 16:38:50 rather opposite 16:39:14 It proves that OCaml is faster than C even when using C backend. 16:39:33 Alright, it's late. 16:40:00 Rest peacefully in your ignorance of modern technology. 16:41:48 ignorance?! I just proved the fact, that C is fastest language ... 16:42:07 I didn't say it's the best 16:42:36 or easiest to learn/understand/port/etc. 16:43:39 oh ... small correction. it is fastest on most of the modersn CPU, like ARM, MIPS or Pentium 16:44:05 there's some architecture, where forth is the fastest 16:56:19 also you should not mix the tool and the object you create with the tool. for example, the fact, that I use vi to create my forth code, doesn't mean, that vi is faster, than my forth code. 17:06:15 http://shootout.alioth.debian.org/u32q/benchmark.php?test=all&lang=all&box=1 17:07:56 --- quit: gnomon ("Rebooting (stupid wedged i915 drivers)") 17:14:03 --- join: gnomon (n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 17:19:50 --- join: gnomon_ (n=gnomon@CPE0022158a8221-CM000f9f776f96.cpe.net.cable.rogers.com) joined #forth 17:23:18 --- quit: gnomon (Nick collision from services.) 17:23:23 --- nick: gnomon_ -> gnomon 17:30:47 --- quit: forther ("Page closed") 19:13:03 --- nick: asdfasd -> TR2N 19:13:39 --- nick: TR2N -> X-Scale 19:22:49 --- quit: nottwo (sendak.freenode.net irc.freenode.net) 19:22:50 --- quit: aguai (sendak.freenode.net irc.freenode.net) 19:23:14 --- join: schme (n=marcus@c83-249-82-26.bredband.comhem.se) joined #forth 19:23:32 --- join: aguai (i=aguai@114-32-77-124.HINET-IP.hinet.net) joined #forth 19:28:30 --- join: nottwo (n=trannie@designvox-gw.iserv.net) joined #forth 19:39:26 Does anyone have experience doing graphics output of any kind with gforth? 19:53:05 KipIngram: I've outputted graphics using sdl and gforth 20:17:19 schme: Can you point me at any resources that might get me started? I'll Google sdl and see what pops up. Thanks! 20:18:25 --- join: nighty^ (n=nighty@210.188.173.245) joined #forth 20:25:41 --- join: forther (i=62d2faca@gateway/web/freenode/x-wkvvxuqctdixqogu) joined #forth 20:40:59 --- quit: forther ("Page closed") 21:25:12 --- quit: nighty^ (Remote closed the connection) 22:02:52 --- quit: ASau ("off") 22:44:20 --- join: DrunkTomato (n=DEDULO@ext-gw.wellcom.tomsk.ru) joined #forth 22:54:44 --- quit: tathi (Read error: 110 (Connection timed out)) 23:01:17 --- join: ASau (n=user@host27-231-msk.microtest.ru) joined #forth 23:48:48 --- quit: Raystm2 ("User pushed the X - because it's Xtra, baby") 23:59:59 --- log: ended forth/09.11.09