00:00:00 --- log: started forth/07.03.18 00:01:27 --- quit: crest__ (Read error: 60 (Operation timed out)) 00:02:00 --- join: crest__ (n=crest@p5489e49c.dip.t-dialin.net) joined #forth 00:04:30 --- quit: crest_ (Read error: 110 (Connection timed out)) 00:04:44 --- join: crest_ (n=crest@p5489C0DC.dip.t-dialin.net) joined #forth 00:09:22 --- quit: mark4_ (Read error: 110 (Connection timed out)) 00:15:24 --- quit: Crest (Read error: 110 (Connection timed out)) 00:16:46 --- quit: zpg (Read error: 60 (Operation timed out)) 00:18:04 --- join: Crest (n=crest@p5489E4B0.dip.t-dialin.net) joined #forth 00:18:40 --- quit: crest__ (Read error: 110 (Connection timed out)) 00:26:57 --- quit: crest_ (Read error: 110 (Connection timed out)) 00:28:51 --- join: crest_ (n=crest@p5489C81C.dip.t-dialin.net) joined #forth 00:39:57 --- quit: Crest (Read error: 110 (Connection timed out)) 01:53:32 --- join: Snoopy_1711 (i=snoopy_1@dslb-084-058-163-184.pools.arcor-ip.net) joined #forth 02:07:02 --- join: ygrek (i=user@gateway/tor/x-faf4e60f7cfdf5c8) joined #forth 02:10:37 --- quit: Snoopy42 (Read error: 110 (Connection timed out)) 02:10:59 --- nick: Snoopy_1711 -> Snoopy42 02:22:14 --- join: dschauer (n=dschauer@cpe-76-187-163-5.tx.res.rr.com) joined #forth 02:28:12 --- quit: hyrax_ (Nick collision from services.) 02:28:18 --- nick: dschauer -> hyrax_ 02:28:18 --- mode: ChanServ set +o hyrax_ 02:44:36 --- join: ASau (n=user@ggsn3inet5.beelinegprs.ru) joined #forth 02:49:02 Dobryj den'! 02:49:52 Привет, ygrek и yumehito, есть что нового? 02:57:56 yumehito - famous person? 02:58:05 aloha asau 03:01:38 Это будет канал английской языка только. 03:02:03 Alright. 03:03:13 Just playing. At least I guessed the language. :) 03:03:49 It's been quite here, so I followed agreement on the language. 03:04:31 I should have said something different, I'm not an official op, they other ops just make me one for some reason. 03:05:07 I don't mind other languages. 03:05:13 ygrek: No, he is member of Russian-speaking subcommunity. 03:05:23 hyrax_: Alright. 03:06:19 I say, it's not a problem for me to switch back to English 03:06:21 in case it's requested by other persons on-line. 03:07:53 oh, ignore my original statement (about English only) completely. I was just playing around. 03:08:07 But it may become a problem to reach understanding with 03:08:09 Russian-speaking folk, whose level of English is not so high. 03:08:14 * hyrax_ does not know Russian 03:09:02 In addition, I don't know English, so that I could express 03:09:04 myself clear enough. 03:09:12 Alright. 03:12:15 * hyrax_ не делает знает русского, он умеет как использовать babelfish и было справедливый играть вокруг. Он не намеревался обидеть любое. 03:13:40 hyrax_: Babelfish is nice, it produces readable Russian. 03:13:48 But broken one. 03:15:35 Yeah, it usually does (produce broken text). For languages I am familiar with I can can feeding it back into babelfish until it comes out reasonable. 03:16:17 English has too many meanings per word, Babelfish selects wrong translations. 03:18:46 Oh yeah. It replaced me with "it" I think instead of "he". 03:18:53 Also English is "verb-oriented", it requires verb be 03:18:55 present, and provides "excess" modal verbs like in "I do not". 03:20:47 For instance, your "I do not know" was translated word-by-word, 03:21:36 which is wrong, since "do" has no meaning of action separate from "knowing" 03:22:20 yeah. English is a messy language. Even though I'm a native English speaker I wish the de-facto internet language was something other than English. 03:22:58 Some like French or Spanish. (Even though I don't know French) 03:23:39 I'd propose German. 03:23:55 That would be fine with me as well. 03:24:31 Though it's "verb-oriented" too, it has more regular structure, 03:24:57 I can read a technical German literature to some degree, and I could pick it up fairly easily if I had to. 03:25:15 plus it has more common ground with Russian. 03:25:39 At least it uses noun declination instead of thousands of propositions. 03:31:44 Yeah. For European and Western Asia, German would not be bad. For Canada, Africa and I think Southeast Asia French is pretty common. For South/Central America of course Spanish. But English happens to be more commonly used in all areas. 03:32:55 Actually that's not English. 03:33:37 What is more common in all areas? (I mean for technical stuff, I'm not trying to be an English bigot) 03:33:57 It's English which is broken in such way as to be easily spoken by native folk. 03:35:21 oh, yeah. I know non-english speakers who can read English Electronic/Computer documentation, but can't really speak any English, except about technical subjects, and when they do it is farily broken. 03:35:49 I've found that Czechs do it in the same manner as Russians and Ukrainians. 03:36:16 hyrax_: I am that kind too. 03:36:44 I am of that kind too. 03:37:41 How it is right, is above my understanding. 03:38:22 yeah. :) (That is why I said earlier that I think it is unfortunate that English happened to turn out to be the common language of the Internet, English is a very hard language to learn, and is very inconsistent) 03:38:57 but you converse via text quite well 03:39:23 --- quit: ayrnieu ("expiry") 03:40:31 Actually, I conduct experiment in Russian, trying to use as 03:40:32 much language power as I can. 03:41:29 In addition I try not to use non-native words. 03:42:24 That's quite hard in start but I find it changes my mind. 03:43:05 Sometime I have difficulty to name new thing (like steppler), 03:43:33 non-native.... ok, so in forth programs, non native forth words? Or non-native Russian words? 03:43:38 and I come with deriving native word for this thing. 03:44:03 Non-native Russian words. 03:44:20 Russian is the least conservative of Slavic languages, 03:44:38 ok. 03:45:10 it gathered a lot of foreign words from Turkish (Tatar/Qipchaq) 03:45:56 Ugric languages, German, French, Dutch, English 03:46:26 and continues to do so. 03:47:30 Ok. I don't have any Slavic background, so I'm not that familiar with Slavic languages. I was raised with English/Spanish. (my parents are from Dutch/German/Norweigian background. 03:47:52 It became a normal to adopt foreign word for anything new 03:47:54 to some or another speaker. 03:48:03 Even in case when there's native word already. 03:48:53 That, that still happens in English to some degree. 03:49:15 I try to play against this. 03:49:45 Ok, yeah. I understand. 03:49:57 Well, Russian is similar to English in this field. 03:50:35 Russian changes almost completely in 3-4 centuries. 03:51:34 Even if you take into account official reforms, 03:52:05 like that of done by Bolsheviks or Peter I. 03:52:53 (Plus there had been several minor ones.) 03:54:26 You can read pre-1918 Russian quite well, 03:56:26 but you find difficulties in reading XVIII Russian, and 03:56:28 Russian of 16-17th century you read like it is quite another 03:56:28 language like Bulgarian or Serbian. 03:56:32 Well, it possible that some of the German in the United States was influenced by Russian, as many of the german immigrants to the US lived in Russia for a while back in the 1700s and 1800s. 03:57:53 Really? 03:58:28 That's possible. 03:58:38 At least it is not impossible. 04:00:06 Well, I don't know what influence to there spoken German there would have been. But most of the Germans I grew up around were descended from immigrants who lived in Russia for a while, I think during the time of Catherine the Great. 04:00:47 s/there their/ 04:01:03 Well, I find that there's big difference in Russian of 04:01:05 16-17'th century and current and the similar difference in 04:01:05 English (Shakespeare -> current). 04:01:42 yeah 04:03:14 I'm from town which Catherine the Great gave Germans right to settle in. 04:05:17 It looks strange, I hardly can understand what I've written. 04:05:37 oh. That is interesting. I'm not sure what part of Russia my German ancestors came over from. 04:06:06 I want to say, Catherine the Greate gave Germans the right 04:06:08 to settle in the town, which is my native one. 04:06:38 I can understand what you wrote. But you did leave out some of the required English "noise" words. 04:06:46 Yeah, that is would I understood. 04:07:27 (I'm use to reading incomplete English sentences, and they usually make sence to me) 04:08:15 s/sence/sense/ 04:08:55 Well, it is has been really nice chatting with you ASau, but I need to get some sleep for a while. 04:09:12 Alright. 04:09:14 Good night. 04:09:15 I'll be around here on #forth another time. 04:09:35 good night 04:09:53 --- quit: hyrax_ (Remote closed the connection) 04:45:25 --- join: edrx (n=Eduardo@201.5.13.159) joined #forth 04:50:34 Buenas dias! 04:51:35 hi ASau! 04:52:01 --- join: segher (n=segher@dslb-084-056-193-233.pools.arcor-ip.net) joined #forth 04:53:32 Good afternoon, segher. 04:53:39 edrx: Any news? 04:54:12 kind of... url in a minute 04:54:15 you? 04:54:46 Started working on CFAN. 04:55:17 I've got DFC, now I think about patch. 04:55:31 Not patch, but "patch". 04:55:44 A tool like patch(1). 04:56:29 what is DFC? 04:57:02 Differential file comparison. 04:57:06 ah ok 04:57:26 --- nick: crest_ -> Crest 04:57:39 It's not in unified diff format. 04:57:57 That's bad. 04:58:35 yeah 04:59:20 I work on translating GNU diff in parallel, but it's not as easy. 04:59:49 translating or reimplementing? 05:00:02 Translating. 05:00:11 I don't want reimplementing. 05:00:47 I intend to cut off unneeded functions, if I need/want to. 05:01:42 Maybe, I'll factor diff into library and interface parts. 05:02:12 So I could use it through FFI. 05:02:22 that's great 05:06:13 --- quit: mark4__ (Read error: 110 (Connection timed out)) 05:12:06 --- join: alexshendi_ (n=alexshen@dslb-088-065-228-047.pools.arcor-ip.net) joined #forth 05:21:24 ASau: here: 05:21:25 http://angg.twu.net/LUA/luatclbridge.c.html 05:21:26 http://angg.twu.net/blogme/text2html.lua.html 05:21:26 http://angg.twu.net/miniforth/blogme3.txt.html 05:22:26 everything is incomplete and full of rough edges, but I decided to make these things publically available anyway 05:22:46 --- quit: alexshendi (Read error: 110 (Connection timed out)) 05:24:56 It looks like time to get my pages. 05:25:20 It's a shame I still don't have ones. 05:25:30 yeah 05:26:10 I don't like HTML. 05:26:15 It's not in my style. 05:27:39 I hate it too 05:27:52 that's why I wrote an html generator. 05:28:46 I need valid HTML header and trailer for preformatted plain text. 05:29:17 I wrote one seven or eight years ago. 05:29:28 But HTML has changed since that time. 05:30:07 And I've lost my works of that time, only parts of them still available. 05:32:23 older htmls are still valid 05:32:51 and people who hate html like us can keep using them for years more 05:35:58 Well, I'll steal that from lib.ru. 05:43:42 --- join: nighty^ (n=nighty@74.12.20.206) joined #forth 06:11:36 asau: good afternoon to you, too 06:11:54 Any forth news? 06:12:01 not directly 06:12:08 my new engine is shaping up great 06:12:17 maybe that's forth news after all, heh 06:12:44 it uses 5.3 bits per primitive on average now, down from 64 :-)\ 06:12:50 Sorry, I've missed, what engine? 06:12:58 no name yet 06:13:17 it is token threaded, for a change -- with a twist 06:13:31 (Actually, I don't remember if we conversed before.) 06:13:36 oh we did 06:13:52 i haven't been on this channel for a while though 06:13:57 It's possible. 06:14:43 so the twist, anyway -- the new engine typically executes two tokens at once 06:14:53 to offset the dispatching cost 06:15:04 the threading cost 06:15:28 which was about 50% of total execution time on my older engines 06:15:58 esp. UNNEST is pretty darn expensive on deep pipeline cpus 06:16:21 unnest, exit, semis, whatever you want to call it 06:16:23 Hmmm. 06:16:56 a nice thing about TTC is that (minor) inlining is bloody well trivial :-) 06:16:58 I don't understand what's the need of less than 8 bits/prim 06:17:06 unless you do hardware. 06:17:17 i have 5 bits prim and 3 bits prim packed in one byte 06:17:30 Ah! 06:17:34 :-) 06:18:10 a bit like 5-5-5, but much more suited for software engines 06:18:45 i'm still not decided on how to encode inline literals 06:19:16 LIT, branches, calls 06:19:47 i think i'll restrict branches to short distances 06:21:35 It is +-32 bytes. 06:21:53 Hard limit even for Forth. 06:22:07 i run on 64-bit machines mostly 06:22:24 oh i see what you mean 06:22:41 nah, i'll do one byte offset i think 06:22:49 8-bit offset 06:23:11 anything bigger can be done via the return stack -- the compiler can handle that 06:23:53 although the trivial implementation of that doesn't work on position-independent code 06:24:44 rommable pic code, that is 06:25:00 Though, 32 bytes is, say, ~20 instructions in your case. 06:25:08 It is reasonable for Forth. 06:25:20 more like 50 insns 06:25:50 well a branch could branch out of the current definition -- tail calls and all 06:25:54 I don't know how frequently literals are used. 06:26:09 lots in my target application -- OF 06:26:27 Literals are full-cell, don't they? 06:26:36 they can be 06:26:47 you don't have to be 06:27:00 their encoding in the program code, that is 06:27:14 I understand. 06:27:36 The problem is with unknown frequency of full-cell literals. 06:28:04 the most frequent use of literals in OF code is for register numbers (shortish), register bits (32 or 64 bit), filesystem stuff (short), protocol stuff (short) 06:28:11 yeah 06:28:35 maybe i should just automatically create a CONSTANT for too big literals 06:29:25 I don't think it's reasonable. 06:29:47 i'll run an analysis of how big constants are typically -- both static and dynamic 06:30:02 not reasonable? why not? 06:32:22 It does not save space in case you're pretty well within 06:32:24 borders of +-32 bytes branch limitation. 06:32:25 Hello 06:33:03 Hi, nighty^. 06:33:37 --- quit: nighty^ ("Disappears in a puff of smoke") 06:45:49 asau: for branches, sure -- but there is LIT as well still 06:46:21 and since you need LIT anyway you can just reuse it to implement "too far" branches 06:46:45 by just doing LIT >R UNNEST 06:49:49 I understand. 06:50:38 I implement "R+!" to increase top cell of return stack and reuse it in ITC branching. 06:53:41 i don't get it -- what would R+! be in pseudo code? 06:54:23 : r+! r> r> rot + >r >r ; 06:54:59 ah 06:55:17 add something to your own return address 06:55:44 i still don't see what you'd use that for though 06:56:22 I have too many local variables but I don't want to use local variables. 06:57:07 And I have number of loop repeats left on top of return stack. 06:57:30 That's the most frequent, so I have "R!" too. 06:57:58 Of course, I could use "rp@ off", but that's weird. 06:59:12 In addition I gain easy tail call. 07:01:06 --- join: yumehito_ (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 07:13:34 Dobryj vecher! 07:16:21 --- quit: yumehito (Read error: 110 (Connection timed out)) 07:18:51 --- quit: Baughn (Read error: 104 (Connection reset by peer)) 07:19:44 --- join: Baughn (n=svein@084202037191.customer.alfanett.no) joined #forth 07:25:34 --- join: hyrax_ (n=dschauer@cpe-76-187-163-5.tx.res.rr.com) joined #forth 07:25:34 --- mode: ChanServ set +o hyrax_ 07:36:29 --- join: arke (n=chris@67-41-132-103.hlrn.qwest.net) joined #forth 07:36:29 --- mode: ChanServ set +o arke 07:44:12 --- quit: arke ("Konversation terminated!") 08:19:41 --- quit: Crest (Read error: 110 (Connection timed out)) 08:20:01 --- join: Quartus (n=neal@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 08:20:01 --- mode: ChanServ set +o Quartus 08:24:10 --- quit: timlarson ("Leaving") 08:24:31 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 08:31:02 --- join: Crest (n=crest@p5489E070.dip.t-dialin.net) joined #forth 08:37:31 --- quit: Quartus (Remote closed the connection) 08:42:25 --- join: segher_ (n=segher@dslb-084-056-206-053.pools.arcor-ip.net) joined #forth 08:44:00 --- join: Quartus (n=neal@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 08:44:00 --- mode: ChanServ set +o Quartus 08:52:09 --- quit: segher (Read error: 110 (Connection timed out)) 08:57:16 --- quit: madgarden (Read error: 145 (Connection timed out)) 08:58:02 --- quit: Quartus (Remote closed the connection) 09:04:47 --- part: edrx left #forth 09:13:08 --- nick: yumehito_ -> yumehito 09:22:14 good afternoon 09:23:26 Good afternoon 09:31:32 --- quit: timlarson (Read error: 110 (Connection timed out)) 09:32:39 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 09:43:21 --- join: Quartus (n=neal@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 09:43:21 --- mode: ChanServ set +o Quartus 09:44:14 --- join: Quartus_ (n=Quartus_@209.167.5.1) joined #forth 09:44:14 --- mode: ChanServ set +o Quartus_ 09:44:43 --- nick: alexshendi_ -> alexshendi 09:58:48 --- quit: Quartus (Remote closed the connection) 11:10:07 --- join: zpg (n=user@user-54441419.lns1-c10.dsl.pol.co.uk) joined #forth 11:18:56 Good evening, zpg. 11:20:18 Evening ASau, how're you? 11:21:05 Fine. 11:21:13 Messing with GNU diff. 11:22:58 --- join: mark4__ (n=mark4@ip70-162-111-107.ph.ph.cox.net) joined #forth 11:29:18 --- quit: timlarson (Read error: 110 (Connection timed out)) 11:33:43 --- nick: segher_ -> segher 12:23:00 --- join: Quartus (n=neal@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 12:23:00 --- mode: ChanServ set +o Quartus 12:23:32 hi Quartus 12:23:40 Hey hey. 12:23:42 What up? 12:24:45 oh, not much; the usual for a sunday evening. there? 12:25:08 Much the same.' 12:41:23 --- quit: Quartus () 12:41:44 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 12:46:43 --- join: madgarden (n=madgarde@bas2-kitchener06-1096751894.dsl.bell.ca) joined #forth 12:54:53 Good evening, all. 13:00:10 Welcome back. 13:09:33 --- join: mark4 (n=mark4@ip70-162-111-107.ph.ph.cox.net) joined #forth 13:25:14 --- quit: mark4__ (Read error: 110 (Connection timed out)) 13:42:13 --- quit: timlarson (Read error: 110 (Connection timed out)) 13:50:17 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 13:52:39 --- join: Quartus (n=neal@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 13:52:39 --- mode: ChanServ set +o Quartus 13:57:02 --- join: arke (n=chris@67-41-132-103.hlrn.qwest.net) joined #forth 13:57:02 --- mode: ChanServ set +o arke 14:08:59 --- quit: ygrek () 14:15:14 --- join: ttuttle (n=tom@gentoo/contributor/ttuttle) joined #forth 14:17:03 --- join: elliottcable (n=elliottc@40-88-178-69.gci.net) joined #forth 14:17:10 --- part: elliottcable left #forth 14:18:58 --- quit: Quartus (Remote closed the connection) 14:19:39 Ha! 14:20:02 I factored so deep, that get stack overflow in my GNU diff. 14:40:12 --- quit: timlarson (Read error: 110 (Connection timed out)) 14:41:05 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 14:48:53 --- join: yumehito_ (n=yumehito@b-internet.87.103.254.70.snt.ru) joined #forth 14:54:45 --- quit: timlarson (Read error: 145 (Connection timed out)) 15:03:21 --- quit: yumehito (Read error: 110 (Connection timed out)) 15:13:19 --- nick: yumehito_ -> yumehito 15:14:51 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 15:42:09 --- join: slava (n=slava@CPE0080ad77a020-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 15:42:09 --- mode: ChanServ set +o slava 15:50:34 --- quit: timlarson (Read error: 110 (Connection timed out)) 15:56:10 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 15:57:33 --- quit: arke (Read error: 104 (Connection reset by peer)) 16:08:59 --- join: Quartus (n=neal@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 16:08:59 --- mode: ChanServ set +o Quartus 16:10:56 --- join: crest_ (n=crest@p5489D3DD.dip.t-dialin.net) joined #forth 16:19:29 --- quit: Crest (Read error: 110 (Connection timed out)) 16:28:33 --- join: edrx (n=Eduardo@201.5.13.254) joined #forth 16:35:15 --- quit: crest_ ("This computer has gone to sleep") 18:02:13 --- join: mgsloan (n=Michael@c-24-18-43-240.hsd1.wa.comcast.net) joined #forth 18:03:52 'lo, I haven't really used forth at all, but I know the basic idea. Heck, I practically reinvented it for a few tiny languages. Anyway, does forth allow changing the compiler/interpreter? 18:04:24 depends on the forth 18:14:38 I've managed to get this message from gcc: 18:14:48 file.c:666: error: `fun' declared as function returning a function 18:15:05 Fun! 18:16:02 ASau: That's an error? 18:16:11 Right. 18:16:16 ASau: Oh, I guess it would have to be a pointer to a function. 18:16:48 Right, I've changed it that way, it works now. 18:17:26 C is weird. 18:18:02 It silently converts function to pointer when assigning, 18:18:07 but not when declaring. 18:18:31 use forth, then. 18:19:04 slava - ah. I'm thinking it might be fun to try to figure out a minimal language which may be modified, within itself, to have more interesting syntax and constructions 18:19:17 well that's probably forth. 18:19:45 Scheme fits as well. 18:20:13 r5rs scheme isn't so modifiable. specific implementations might be. 18:20:14 Scheme will still have parenthesis :) 18:20:30 CL lets you reprogram the reader entirely with reader macros so you can have any syntax you want 18:20:35 do you have a concrete goal for this? 18:20:39 huh 18:20:44 not really 18:20:46 CL is huge. 18:20:55 It is very huge. 18:21:00 not by today's standards. 18:21:15 yeah, take a look at the .net framework 18:21:21 i mean, it gives you math functions, data structures, basic I/O, pretty printing, and a compiler. 18:21:28 no GUI, no threading, no networking, no XML, etc. 18:21:44 Even by today's standards. 18:22:00 Of course, it gives you sublanguage to write loops. 18:22:11 any general purpose language will be that large, if it includes enough useful functionality. 18:22:18 The language rarely used. 18:22:24 the loop macro is not a whole lot of code. 18:22:28 it is handy sometimes. 18:23:29 --- quit: edrx (Read error: 145 (Connection timed out)) 18:24:15 slava: 1+1+1+1+... may become very large number. 18:25:30 8 rotated 90degrees either way 18:26:03 http://foldl.com/ http://foldr.com 18:26:25 ASau: can you name a language offering a similar level of functionality as CL, but smaller? 18:26:49 slava: I don't know one. 18:26:55 i think you can have a useful CL implementation in about 6mb or so. 18:26:58 --- part: ttuttle left #forth 18:27:03 I've seen CL professionals. 18:27:11 sbcl is larger, 20mb, because it has a lot of stuff beyond the standard, and the compiler isn't optimized for size but for speed 18:27:18 No one of them use loop facility, 18:27:41 they program loops directly through "do" or others. 18:28:01 --- nick: mgsloan -> mgsloan|afk 18:28:06 There're many such things in standard. 18:28:14 slava, are you wasting code again? 18:28:22 well, loop is redundant when you have do, map, reduce, &co. 18:28:40 but some people like it. 18:28:51 i'm not a fan of redundancy, but CL doesn't have *that* much. 18:28:59 Quartus: yes 18:29:27 slava: I don't know such people. 18:29:37 i do. 18:29:37 I haven't seen them. 18:29:48 so they must not exist, then. 18:30:09 So why loop is in standard but not in a kind of library? 18:30:20 i didn't make the standard. 18:30:23 i don't know. 18:30:38 in most CLs, i think, loop is implemented in pure CL code. at least in all the ones i've looked at. 18:31:03 many people think CL is too small. they want threads, networking and other things in the standard 18:31:16 but nobody is clamoring to have loop removed 18:32:36 Quartus: what is this supposed to do? 18:32:37 LSE> 14 42. swap , sp ,. 18:32:41 14 42 18:32:56 according to doty, standard forth cannot print the number 14 followed by the number 42. 18:36:21 How do you do threads if OS does not support them? 18:36:35 with your own multitasker 18:36:42 factor does this, for other reasons than OS support 18:36:45 Do you implement in high level? 18:37:04 non-native co-operative threads are easy to implement if you have continuations 18:37:08 pre-emptive threads can be done with some kind of timer. 18:37:12 but any OS today has threads. 18:37:26 Not actually. 18:37:47 ok, but reasonable people don't use MS-DOS. 18:38:05 Mobile OSes, for instance. 18:38:10 At least PalmOS. 18:38:32 PalmOS is archaic. Windows CE supports threads. 18:38:43 --- join: madgarden_ (n=madgarde@bas2-kitchener06-1096651787.dsl.bell.ca) joined #forth 18:38:48 I'm not sure about Symbian. 18:38:56 symbian supports co-operative threads. 18:39:00 symbian is also crap, i hope it does. 18:39:12 s/does/dies/. 18:40:49 You prefer your own multitasker to OS provided. 18:41:21 i don't prefer it, i just don't want to tackle pre-emptive threading until later. 18:42:04 my desktop machine has 4 cpus. i want to be able to use all 4 from factor eventually. for the time being i don't want to implement a concurrent garbage collector and so on. 18:42:07 So it does no matter to you, whether OS support multitasking or not. 18:42:49 The same to underlying language. 18:44:15 co-operative multitasking can be annoying. 18:44:19 No reason to include it in standard. 18:44:33 i don't like it when an infinite loop forces me to close the whole dev environment 18:44:38 So can pre-emptive one. 18:45:16 Why don't you "yield" when loop is possible? 18:45:41 I don't believe it's so frequent. 18:45:43 because that's essentially pre-emptive multitasking. 18:45:58 and it would require thread safe data structures, locking, and so on. 18:46:17 It can be done transparently. 18:46:39 what can? 18:47:04 You're language implementor, you know which constructs branch back. 18:47:10 i do. 18:47:26 pre-emptive multitasking is easy to implement, too. but updating the library to support it is not 18:47:33 So why you don't yield before back-branch. 18:47:38 ? 18:47:43 because then i would need thread-safe data structures, concurrent GC, etc. 18:48:43 --- quit: madgarden (Read error: 110 (Connection timed out)) 18:49:03 If you don't have infinite loops in library and has no 18:49:03 real-time constrains, it does no matter if you wrap library 18:49:03 call into lock. 18:49:14 you don't know the half of it. 18:49:38 What's the problem? 18:49:46 writing concurrent code is hard. 18:50:04 i'm capable of doing it, but for now i have other priorities 18:51:02 You can simplify this by making operations atomic. 18:51:07 Like that of GC. 18:51:14 look, really, this discussion is useless. 18:51:20 i know how to write concurrent code, i did it for years. 18:51:45 i don't intend to make the GC atomic, either, I will write a parallel collector. 18:51:52 Alright. 18:56:30 actually it will likely be a model with a minimal amount of shared state, but there will be some locking for the central data structures. 18:56:37 something like erlang. 19:36:30 slava, sorry, was away. No idea what that LSE code is supposed to do 19:37:02 Doty is a twit. 19:52:53 any time somebody points out a limitation of LSE64, doty points out that physicists use it to compute asteroids, or something, and therefore it is flawless 19:52:57 --- quit: Quartus (Remote closed the connection) 19:53:15 --- join: Quartus (n=neal@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 19:53:15 --- mode: ChanServ set +o Quartus 19:54:10 Doty is the most reasonable person in c.l.f. 19:54:29 He solves more or less real problems, not from CS. 19:54:32 I'm not surprised that you hold that opinion. 19:55:01 Noqsi Aerospace employs many gifted scientists, is at the forefront of aerospace research. 19:55:14 heh 19:57:00 I haven't looked at LSE, but "one size to fit them all" approach is productive. 19:57:42 there isn't much to look at, really. 19:57:55 I doubt. 19:58:17 so if he ever wants to use 128 bit integers, will he write an LSE128? 19:58:34 He will. 19:58:46 LSE1024 would be useful for crypto. 19:58:57 heh 19:59:07 you're entertaining, slava :) 19:59:19 Do you think 32-bit Forth is useful for cryptography? 19:59:29 yes. 19:59:36 Certainly. 20:00:04 You can do cryptography even in 8/16-bit Forth, 20:00:38 Quartus: how do you represent pointers in quartus forth? 20:00:46 does everything fit in a 64k segment? 20:01:02 but that does not mean you can do number theory research 20:01:02 work as well as you could in MPN. 20:01:18 Dataspace addresses are accessible via 16-bit pointers (64K segment), but there are also words for manipulating 32-bit addresses. 20:01:47 ASau: what is MPN? 20:02:05 Multiple precision. 20:02:07 somebody doing number theory research presumably would need a library of routines for large integer arithmetic. 20:02:25 nothing prevents you from writing one in forth 20:02:34 Several exist. 20:03:15 Right, but using it transparently, through + - * &c, 20:03:16 simplifies problem, 20:03:29 you can redefine + - * &c. 20:03:34 You can't say this about separate word set. 20:03:48 or just use a prefix, m+ etc. 20:04:00 i do this for vector, matrix and quaternion math. it is not annoying. 20:04:03 The latter approach is counterproductive. 20:04:18 ... Forth is untyped. If you're now going to suggest that Forth libraries are useless because you feel Forth should be typed, you're on your own. 20:04:25 You have to remember what is what. 20:04:34 factor is typed, but i still don't overload + * - willy-nilly. 20:04:41 they're overloaded for integers, bignums and floats. 20:04:54 nothing else. 20:06:34 i'm writing code that does vector arithmetic right now, for UI layout. it is not annoying at all. 20:07:21 Nor is it annoying to interface with a bignum library. 20:08:27 well, i'm quite fond of arithmetic on machine integers which automatically upgrades to big integers instead of wrapping around. 20:09:17 That's only an optimization. 20:09:33 in the sense that you could do everything with big integers, yes. 20:09:38 So, you use the same word set of + - * / not only for 20:09:39 one-cell integers, don't you? 20:09:40 but then you'd be heap allocating on every arithmetic operation. 20:09:55 Or do the arithmetic with machine integers when the calculation fits. 20:10:04 ASau: no, i use those operators with small integers, big integers, floats 20:10:27 How do you distinguish those numbers? 20:10:32 Type tags? 20:10:34 yes 20:10:47 The same does Doty. 20:11:09 Last time I looked at his tinkertoy system, he did not use type tags of any kind. 20:11:16 lse is untyped. 20:11:27 Right. 20:11:31 a float fits in a cell, but you must use float words on them still. 20:11:44 I don't see how your approach is different from Doty's "one size fits them all". 20:12:04 well, i use machine cell size for one. 20:12:32 doty's system does not use arbitrary precision integers. 20:12:43 Doty uses double cells. 20:13:05 what does doty do if he wants a 65 bit integer? 20:13:22 He may not use arbitrary precision, may he? 20:13:30 eh? 20:13:48 --- quit: zpg ("ERC Version 5.1.3 (IRC client for Emacs)") 20:13:49 What if he never need 65-bit integer? 20:14:01 what if he does? 20:14:14 What if he does not? 20:14:21 what if he doesn't need lse64 at all? 20:14:37 He'd get werty to write him a bignum library. Should take only about ten minutes. 20:14:39 You speak like CS theorist. 20:14:48 Doty goes real. 20:15:03 if doty ever needs to write a crypto algorithm, he will need integers much larger than 64 bits. 20:15:16 Ah, I see. The code we fantasists write, people like me and slava, that's just somehow unreal, and not applicable to anything. 20:15:35 What if he never needs to write one? 20:15:49 that's great for him. 20:15:51 ASau, guess how many employees 'Noqsi Aerospace' has. 20:16:00 large multinational, 1000+ 20:16:00 He is astronomer or physisist, right? 20:16:14 Guess. 20:16:52 Slava, that's not representative. 20:17:19 Guess how many, ASau. Guess how many employees this aerospace company has, the one you claim solves 'real' problems. 20:17:36 well, that's not to say a company that size is incapable of solving real problems. 20:17:41 Microsoft, has many employees, but it does not use Forth at all. 20:17:46 Take a guess. 20:17:53 non sequitur. 20:20:19 I know of one chemical company with two employees. 20:20:30 It solves real problems. 20:21:00 Mice like cheese. When a light is off, it's not on. Three time seven is twenty-one. 20:21:22 Any other irrelevant crap you'd like to toss in, while we wait for your guess? 20:21:24 actually, too much cheese can be deadly to a mouse. 20:21:26 One doctor have knowledge how to do work, 20:21:37 one man is to help. 20:21:41 Now what? 20:21:56 if that company was to hire doty, would they still be solving real problems? 20:22:58 Quartus: here's the latest pearl of wisdom: 20:23:02 "Then [Forth] isn't a *language*, just a set of code generation procedures." 20:24:06 In the same way Doty isn't a *person*, he's a UseNet posting generator. 20:26:47 Evidently Doty discounts any statement made by Rather on the grounds that she runs Forth, Inc. 20:27:13 And is thus somehow insufficiently qualified to comment. 20:27:57 i like it how he constantly points out that forth has a bad reputation, yet lse64 has no reputation at all. 20:28:05 Indeed. 20:28:31 So? 20:28:38 I don't know why she bothers to reply to him. I make a point of not so doing, but I still sometimes get sucked into ridiculous conversations with fools. 20:29:09 Is that so? Yes, that is so. 20:29:27 well, if the few sane people didn't post anything, the whole forum would degenerate 20:29:51 True. A repeating sequence of Werty and Doty and Reda. 20:30:41 It's quite possible that Rather considers Doty as reasonable person. 20:30:52 I will happily take the other side of that bet. 20:30:57 Why should she not answer? 20:31:30 Ask her. 20:31:46 If you feel the point is in dispute, ask her yourself. 20:34:08 C is impressive. 20:34:16 a contributor wrote an ogg vorbis player in factor. 20:34:27 it calls libvorbis for the audio decoding, then pipes the output to openal. 20:34:38 you'd think that interfacing with these two libraries is a simple matter. 20:34:51 not counting the openal and vorbis ffi definitions, which are pretty trivial, its 399 lines of code. 20:34:59 wow. What's the hassle? 20:36:34 well, there's about 40 different C functions to call, many of which expect you to fill out elaborate structures. 20:37:37 Curious. I wouldn't have expected the need for that many functions in a library of that sort. 20:38:22 me either. 20:38:53 I'd figure ogg in, raw audio out, with a few optional controls. 20:39:12 yeah. 20:51:25 That sounds like a failing in the library design, more than a reflection on C as a language, though of course the language can limit the design, and often limit the mind of the designer, too. 20:54:12 --- quit: timlarson (Read error: 145 (Connection timed out)) 20:55:21 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 20:55:59 yeah, audio libs are horrid 20:56:40 at one point with a game engine, i gave up on loading sounds, and just used generated stuff :) 20:57:09 because getting openAL to play a memory buff isn't so hard 20:57:26 contributors are working on some nice audio library wrappers for factor. 20:57:34 we have openal, vorbis, and libmad. 20:57:41 cool 20:57:44 id3 parser and theora (ogg video) are upcoming 21:15:26 --- quit: virsys (Read error: 110 (Connection timed out)) 21:16:43 --- quit: Quartus (Remote closed the connection) 21:30:06 --- quit: mgsloan|afk (Read error: 104 (Connection reset by peer)) 21:36:08 --- quit: ASau ("ERC Version 5.0.1 $Revision: 1.726.2.3 $ (IRC client for Emacs)") 21:44:10 --- join: Quartus (n=neal@CPE0001023f6e4f-CM013349902843.cpe.net.cable.rogers.com) joined #forth 21:44:10 --- mode: ChanServ set +o Quartus 21:47:47 --- quit: timlarson (Read error: 145 (Connection timed out)) 21:59:36 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 22:32:07 --- quit: Quartus (Remote closed the connection) 22:38:28 --- quit: slava () 22:39:11 --- quit: timlarson (Read error: 110 (Connection timed out)) 22:41:52 --- join: crest_ (n=crest@p5489D3DD.dip.t-dialin.net) joined #forth 22:42:20 --- join: timlarson (n=timlarso@user-12l325b.cable.mindspring.com) joined #forth 22:46:13 --- join: dschauer (n=dschauer@cpe-76-187-163-5.tx.res.rr.com) joined #forth 22:58:13 --- quit: hyrax_ (Read error: 110 (Connection timed out)) 23:02:27 --- nick: dschauer -> hyrax_ 23:02:28 --- mode: ChanServ set +o hyrax_ 23:03:40 --- quit: JasonWoof ("off to bed") 23:45:01 --- join: allinall (i=user@S0106000fb09cff56.ed.shawcable.net) joined #forth 23:51:45 --- join: mark4_ (n=mark4@ip70-162-111-107.ph.ph.cox.net) joined #forth 23:59:59 --- log: ended forth/07.03.18