00:00:00 --- log: started forth/17.07.10 00:36:04 --- join: roundsf` (~user@2a00:2381:1a72:10:31b2:ae29:14d5:ca80) joined #forth 00:39:51 --- quit: roundsf (Ping timeout: 240 seconds) 00:54:02 --- join: ncv (~neceve@host81-153-164-58.range81-153.btcentralplus.com) joined #forth 00:54:03 --- quit: ncv (Changing host) 00:54:03 --- join: ncv (~neceve@unaffiliated/neceve) joined #forth 02:01:35 --- quit: ncv (Quit: Leaving) 02:12:58 --- join: ncv_ (~neceve@unaffiliated/neceve) joined #forth 02:29:00 --- quit: ncv_ (Quit: Leaving) 02:34:51 --- join: ncv (~ncv@unaffiliated/neceve) joined #forth 02:59:47 --- quit: nighty- (Quit: Disappears in a puff of smoke) 03:08:50 --- join: gravicappa (~gravicapp@h62-133-162-166.dyn.bashtel.ru) joined #forth 03:19:36 --- join: GeDaMo (~GeDaMo@212.225.125.110) joined #forth 03:24:11 --- quit: ncv (Quit: ZNC 1.6.3+deb1 - http://znc.in) 03:25:18 --- join: ncv (~ncv@laatelier.work) joined #forth 03:25:19 --- quit: ncv (Changing host) 03:25:19 --- join: ncv (~ncv@unaffiliated/neceve) joined #forth 04:15:45 --- join: event-horizon (~event-hor@2001:8003:f064:400:f66d:4ff:fe58:ff4b) joined #forth 04:29:55 --- quit: event-horizon (Quit: Leaving) 05:31:50 --- join: dual (~bonafide@cpe-74-75-153-119.maine.res.rr.com) joined #forth 06:51:55 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 07:05:11 --- quit: nighty- (Remote host closed the connection) 07:11:41 --- join: ACE_Recliner (~ACE_Recli@c-98-220-46-30.hsd1.in.comcast.net) joined #forth 07:20:07 --- join: nighty- (~nighty@s229123.ppp.asahi-net.or.jp) joined #forth 07:59:03 heh, I wonder what's faster: "drop dup >r" or ">r r!" 07:59:13 probably the second one, right? 08:00:53 bench it ? (somehow) 08:01:56 yeah, I would if it really mattered. 08:05:53 which is more readable.. 08:06:08 this is forth. none of it is readable 08:10:58 If you have this problem, then you should just drop Forth and use some programming language that provides you optimizing compiler. 08:11:15 what problem? 08:11:27 what is /your/ problem? 08:13:36 heh, I wonder what's faster: "drop dup >r" or ">r r!" 08:13:38 This one. 08:13:46 there's no problem there 08:14:11 it was just a clever thing I happened to notice and thought I'd share 08:14:39 you're making me regret it 08:17:31 --- join: true-grue (~true-grue@176.14.219.178) joined #forth 09:07:58 --- quit: nighty- (Quit: Disappears in a puff of smoke) 09:52:30 --- join: MrBismuth (~ArcMrBism@2602:306:8325:a300:c801:d7f:77e1:92be) joined #forth 09:55:20 --- join: MrBusiness3 (~ArcMrBism@2602:306:8325:a300:c801:d7f:77e1:92be) joined #forth 09:55:55 --- quit: MrBusiness (Ping timeout: 276 seconds) 09:57:25 --- quit: MrBismuth (Ping timeout: 258 seconds) 10:00:52 --- quit: MrBusiness3 (Ping timeout: 258 seconds) 10:03:05 --- join: MrBismuth (~ArcMrBism@2602:306:8325:a300:c801:d7f:77e1:92be) joined #forth 10:04:47 --- join: MrBusiness3 (~ArcMrBism@2602:306:8325:a300:c801:d7f:77e1:92be) joined #forth 10:07:16 --- quit: MrBismuth (Ping timeout: 246 seconds) 10:09:01 --- quit: MrBusiness3 (Ping timeout: 246 seconds) 10:10:09 --- join: MrBusiness3 (~ArcMrBism@2602:306:8325:a300:c801:d7f:77e1:92be) joined #forth 10:14:16 --- quit: MrBusiness3 (Ping timeout: 246 seconds) 10:26:46 --- join: MrBusiness (~ArcMrBism@2602:306:8325:a300:c801:d7f:77e1:92be) joined #forth 10:31:40 --- quit: MrBusiness (Ping timeout: 276 seconds) 11:01:58 --- quit: gravicappa (Ping timeout: 248 seconds) 11:25:45 another thought I had recently: is there actually any reason to support recursion in forth? normally you use recursion in a c-like language for an algorithm that benefits from using the stack, but in forth you get this inherently 12:02:43 Ha- 12:03:06 You're welcome to unroll some naturally recursive algorithms! 12:03:39 OTOH, Forth programmers never write programs more complex than a student lab for introductory course... 12:04:30 Trivial fact: You can always emulate recursion with the explicit stack :) 12:04:43 sure 12:04:48 Sure you can. 12:04:58 But I see no special reason for it. 12:05:20 See the note above about unrolling recursion for some slightly more complex than elementary algorithms. :) 12:05:35 I'm not talking about unrolling 12:06:04 --- quit: rtmanpages (Ping timeout: 260 seconds) 12:06:04 How are you going to support writing them then? 12:06:43 in forth, ": foo bar recurse ;" is exactly the same thing as ": foo begin bar again ;" 12:07:09 Anything involving trees is more easily expressed recursively 12:07:09 In fact there are some cases where recursion prohibition is a good thing. 12:07:15 What about ": foo bar ... recurse ... recurse ... ;"? 12:07:49 ah, yeah 12:07:54 Some embedded coding standards prohibit recursion 12:09:42 GeDaMo: that doesn't entail it's a good thing. 12:10:00 On some architectures you may good some speedup with calling words if you don't use return stack and just place the return address in the end of the procedure. Old trick of Fortran times. Also, without recursion and stack you'll have static allocation of all the resources with is important for mission-critical systems etc. 12:10:41 get 12:10:48 Static allocation and recursion are not tightly related things. 12:11:29 Consider merge sort. 12:11:44 You can implement it with explicit stack. 12:11:46 But why? 12:12:52 Forbidding recursion makes no sense, since the depth is known ahead. 12:13:25 With static allocation you'll have no stack => no recursion. 12:13:46 How is that related? 12:14:03 With static allocation you have stack of the size known ahead. 12:14:21 "No stack" is more strict assumption. 12:14:39 In fact the compiler can prove for some programs which use stack that they have bounded resource allocation, but without stack it's easier to do the same :) 12:16:47 I'm not sure about that. 12:17:01 I'd expect the same complexity. 12:21:32 Well, stack is a dynamic thing. And the compiler should use tricks (abstract interpretation etc) to predict its size. But the data memory size is a compile-time parameter. 12:22:08 Stack is not a dynamic thing. 12:23:22 Let's compare how often programmers get "stack overflow" vs. "data memory overflow" :) 12:24:09 I'm not talking about buffer size errors here. 12:24:11 I run into "data memory overflow" each 5-10 minutes while using firefox. 12:24:20 I'm yet to run into stack overflow with it. 12:25:36 It's a different context. I was talking about the systems like digital heart's pacemaker. 12:26:45 1. Make a bold yet false statement. 12:27:08 2. Change context in words "I was talking about...". 12:27:12 :) 12:28:02 he didn't change context. the conversation started with embedded environments prohibiting recursion 12:28:13 DGASAU, In Russia we say "Zanuda" in such situations :) See above, the text "mission-critical systems". 12:28:53 Should I tell how we call people who do 1-2 like above? ;) 12:33:56 The truth is that we all are talking informally in IRC. And I never understood the game of "find any way to insult your opponent". And it looks unprofessional. 12:34:33 Is talking on IRC is your profession??? 12:35:02 I'm sorry, how old are you? 12:35:03 seconded. the elitist, condenscending persona is really grating 12:35:16 Also, 1-2 doesn't look professional either, unless you've got quite peculiar profession. :) 12:36:23 true-grue: in all such cases I wonder what happens if I'm actually older than the other person. :) 12:38:39 DGASAU, It was a rethoric question. Even if in real life you are polite and modest person there is no reason to act like a ill-mannered teenager here :) 12:40:27 true-grue: when question-as-argument failed, call it rhetoric question, sure. :D 12:42:39 Sorry, I have no interest in discussions like this (yes, you won %). 12:44:25 Were you a little bit more knowledgabe, you'd understand that you've lost several replies earlier. :) 12:44:41 cool story bro 12:45:42 you really pwn3d that nerd 12:52:10 The irony is that in real setting, it would be exactly the same. 12:53:23 You can't make bold false statements, then attempt to correct them by adding special cases, and suddenly refer to "professionalism" when someone else pointed you to that. 12:55:06 Normally, either you do it "professional" from the very beginning, or you admit failure. That's all. 13:19:45 --- join: iousiq (9f7f20fe@gateway/web/freenode/ip.159.127.32.254) joined #forth 13:44:26 --- join: MrBusiness (~ArcMrBism@2602:306:8325:a300:c410:147b:575d:342d) joined #forth 13:54:24 --- quit: GeDaMo (Remote host closed the connection) 13:58:14 --- join: mark4 (~mark4@99.30.241.51) joined #forth 14:13:11 --- join: rtmanpages (~rtmanpage@39.sub-174-204-7.myvzw.com) joined #forth 14:59:12 --- quit: iousiq () 15:06:02 --- quit: dual (Ping timeout: 258 seconds) 15:53:24 --- part: true-grue left #forth 16:34:09 --- quit: mark4 (Ping timeout: 240 seconds) 16:44:02 --- quit: ACE_Recliner (Remote host closed the connection) 17:05:00 --- join: ACE_Recliner (~ACE_Recli@c-98-220-46-30.hsd1.in.comcast.net) joined #forth 17:32:09 --- join: nighty- (~nighty@kyotolabs.asahinet.com) joined #forth 17:44:27 --- quit: ACE_Recliner (Remote host closed the connection) 17:49:15 --- join: Chef_Gromboli (~Chef_Grom@static-72-88-80-103.bflony.fios.verizon.net) joined #forth 17:54:14 --- quit: rtmanpages (Ping timeout: 248 seconds) 19:30:50 --- quit: dys (Read error: Connection reset by peer) 20:33:19 --- quit: Chef_Gromboli (Quit: Leaving) 20:56:29 --- join: dys (~dys@ip-109-44-1-234.web.vodafone.de) joined #forth 21:23:23 --- join: mark4 (~mark4@99.30.241.51) joined #forth 22:30:34 --- join: DBeepBeep (~channing@2601:543:4402:26d8::22f5) joined #forth 22:31:43 --- quit: DBeepBeep (Client Quit) 23:59:59 --- log: ended forth/17.07.10