00:00:00 --- log: started forth/06.01.01 00:06:06 --- join: moreCowbell (n=moreCowb@hacienda-heights-cuda2-70-36-154-179.lmdaca.adelphia.net) joined #forth 00:15:26 --- part: moreCowbell left #forth 00:15:26 --- quit: sproingie (Remote closed the connection) 02:18:49 --- join: Cheery (i=Henri@a81-197-18-99.elisa-laajakaista.fi) joined #forth 02:53:13 --- join: scope (n=junk@njd.paradise.net.nz) joined #forth 03:05:19 --- quit: Cheery (Read error: 104 (Connection reset by peer)) 03:13:56 --- join: Cheery (i=Henri@a81-197-18-99.elisa-laajakaista.fi) joined #forth 03:43:19 --- quit: scope ("Client exiting") 03:49:51 --- join: amca_ (i=amca@rdlax11-a192.dialup.optusnet.com.au) joined #forth 03:50:10 --- quit: amca_ (Read error: 104 (Connection reset by peer)) 03:50:19 --- join: amca_at_cins (i=amca@rdlax11-a192.dialup.optusnet.com.au) joined #forth 03:51:24 Hello\ 04:12:53 --- join: PoppaVic (n=pete@0-2pool236-138.nas22.chicago4.il.us.da.qwest.net) joined #forth 04:54:05 --- quit: amca_at_cins ("Leaving") 05:08:10 --- join: segher (n=segher@dsl77-24-100.fastxdsl.nl) joined #forth 05:57:00 what does 'deterministic behavior' mean related to programming languages? 05:57:59 you have to narrow down the context a bit to get a useful answer 05:58:46 what does 'deterministic behavior' mean related to embedded programming languages? 05:59:43 heh 06:00:22 you'll have to get way more narrow... like, give a quote or something? 06:02:05 "Among the most important requirements for embedded languages are deterministic behavior, small memory footprint, and efficient execution." 06:04:16 I know that forth has a low memory footprint, but does anybody knows how much exactly was the lowest memory footprint a forth had? 06:05:48 "that forth" - which forth? when? where? model? 06:05:59 Depends - how much of a system do you need? Full compiler/interpreter/library? 06:06:27 A couple of kB sounds reasonable for a simple system. 06:06:40 yeppers 06:06:42 generally I only want to know which was the lowest memory footprint a forth got. 06:06:51 prolly FIG 06:06:59 5kb, 10kb? 06:07:06 I think I did edForth with like 2kB. 06:07:08 minimal asm, large amounts of 2ndaries 06:07:22 And tforth with like 4kB - but it had a lot more library functions. 06:07:32 virl: that deterministic stuff, i only know what it is in theory, i.e. non deterministic turing machines, but with real programming lang. is there any sense? 06:07:46 i think with deterministic behaviour they mean, the generated code is very predictable from the source code 06:07:49 I don't know. 06:07:55 sounds silly to me 06:08:12 Either you want asm, or you trust a compiler 06:08:38 was a quote out of a 'why not embedded programming with java' article 06:08:40 I trusted TC and Borland for years, and have trusted gcc since 06:08:48 ewwwwww 06:08:49 segher: that is always the case i think :) 06:08:59 not at all 06:09:17 From what I've seen and heard, Java is like .Net: a monster PIG 06:09:24 for forth it is, with most forth systems -- but not for anything that does a lot of optimization 06:09:57 ok, so something around 2kb 06:10:07 --- quit: segher ("Leaving") 06:10:08 segher: yeah optimization, but there is always one way, the code will be generated 06:10:17 well, the K is dependent upon capabilities and core and platform. 06:10:18 great now he's gone 06:10:47 yes, I know a little bit bigger on 32bit cpus 06:10:50 I know that on my kaypro 4-64, FIG was ridiculously dinky. 06:11:23 otoh, it had a lot of precompiled words and loaded more on boot. 06:12:14 This is one of the reasons I always wanted to kick-in-the-nuts/boot-to-the-head Forth-authors/commies 06:13:13 you've got three universes... Turnkey; static; dynamic - and most authors won't recognize them or advantages 06:13:40 for C, you have static/dynamic 06:17:01 and for other systems only dynamic, a lot of todays programming languages are only dynamic. 06:17:18 Yeah.. It's not ALL good OR bad 06:17:52 Lon ago, I concluded that static-programs are shit you want to run as admin, regardless of how bad you booted-up 06:17:59 Lon/Long 06:18:23 Nothing wrong with the idea, but folks seem to think "dynamic is bad" 06:19:53 Hmm. 06:20:03 why people think dynamic is bad? 06:20:06 static is bad. 06:20:18 I would agree, but I've been both places 06:20:41 When the damned install didn't quite take, statics can save yer ass 06:21:10 I think C style is bad :) 06:21:18 If the dynamics/libs/linker all work right, hell yes: dynamics are a trifle slower to load, but run fine. 06:21:19 After I've been with lisp and forth. 06:21:40 I never used or WANT to use lisp. Forth still has issues with "the world" 06:22:10 I'd like some which are more like factor. 06:22:16 There are C-based forths, and those I tend to like quite well. 06:22:31 I dunno factor, and don't have the time to bother. 06:23:57 Cheery, why should be Forths more like factor? 06:24:35 I don't know. forth itself is quite good alreay. 06:24:45 but I liked factor as well. 06:24:59 even little more. 06:25:14 But it is still quite stub that I could use it. 06:25:18 bad documentation. 06:25:24 ok, what do you like about factor? 06:25:43 "stub"? 06:25:44 I liked those branches. 06:25:53 [ ] things. 06:26:18 that's switching from compile to interpret and back 06:26:22 And the ability to push objects into stack. 06:26:52 PoppaVic, in factor they represent a list, in factor jargon a 'sequence' 06:27:29 half-assed lisp/pseudo-forth? 06:28:43 yes, that's Factor 06:28:45 I still feel forthish could work better if the variant integrated better with gcc/asm/linker|loader 06:29:36 I figure forthish is like C: you can write either for a microdevice, and that's fine... But there is more out there. 06:30:20 And, I've always disagreed with Chuck... THere is no reason to rewrite code over and over - to do the same thing on several platforms. 06:30:56 Now, sure: the translation/filtering/optimizing/rules can change, but not the purpose. 06:31:44 and, forthish is ripe, too... Everyone is getting used to screwing with "variations" 06:43:03 --- quit: PoppaVic ("Pulls the pin...") 06:44:46 --- join: PoppaVic (n=pete@0-1pool66-104.nas22.chicago4.il.us.da.qwest.net) joined #forth 06:59:03 Do you know any forth implementation which has a proper FFI? 07:00:44 THe newest Gforth has FFI, but I can't get it to build proper 07:02:10 Does it support structs? 07:02:25 somewhere and how, sure 07:02:42 I can't tell you about it: I can't compile it. 07:02:58 damn 07:03:48 well, ok: I GOT it to build - but double's don't work right 07:05:57 --- join: Topaz (n=top@spc1-horn1-6-0-cust128.cosh.broadband.ntl.com) joined #forth 07:46:07 --- join: crc_ (i=crc@69.46.24.28) joined #forth 07:46:23 --- quit: crc (Read error: 104 (Connection reset by peer)) 08:15:36 --- join: Serg[GPRS] (n=Miranda@ppp85-140-28-111.pppoe.mtu-net.ru) joined #forth 08:15:57 hi ! 08:16:08 who wanna try Skype video chat ? 08:28:01 --- quit: PoppaVic ("Pulls the pin...") 08:55:38 would be nice, when I would have a webcam 09:04:46 --- join: JasonWoof (n=jason@pdpc/supporter/student/Herkamire) joined #forth 09:04:46 --- mode: ChanServ set +o JasonWoof 09:06:39 we may try voice only, but video can put greater test on trans-oceanic lines timeout 09:07:35 yes.. 09:46:56 --- join: JokeR69 (i=LNIX@12-208-98-237.client.insightBB.com) joined #forth 10:14:42 --- join: sproingie (n=chuck@64-121-2-59.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 11:01:45 --- quit: swalters_ (Read error: 110 (Connection timed out)) 11:09:30 --- quit: JokeR69 (Remote closed the connection) 11:39:47 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-174-255.pools.arcor-ip.net) joined #forth 11:48:08 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 11:48:32 --- nick: snoopy_1711 -> Snoopy42 13:26:42 --- quit: Cheery (Read error: 104 (Connection reset by peer)) 13:35:06 --- join: swalters_ (n=swalters@6532183hfc82.tampabay.res.rr.com) joined #forth 13:54:33 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 13:54:51 --- quit: snowrichard (Read error: 104 (Connection reset by peer)) 13:56:28 --- quit: Serg[GPRS] (Read error: 104 (Connection reset by peer)) 14:16:31 --- join: amca_at_cins (i=amca@rdlax9-231.dialup.optusnet.com.au) joined #forth 14:16:52 Morning 14:19:29 --- join: TheBlueWizard (i=TheBlueW@ts001d0237.wdc-dc.xod.concentric.net) joined #forth 14:21:05 Morning 14:21:52 hi 14:22:26 How are you today? 14:23:01 hiya 14:25:55 Up to anything exciting today? 14:26:27 not at the moment... 14:26:52 * slava is writing docs 14:27:49 slava: Um...you find writing docs exciting? :) 14:28:08 TheBlueWizard: Up to anything incredibly boring? 14:28:10 yes 14:28:39 slava: Okay. Not the answer I expected. :) What do you find exciting about it? 14:28:52 amca_at_cins: hehe...well, I'm currently reading Slashdot, and am waiting for my buddy to show up on the other channel 14:29:00 I see 14:29:17 amca_at_cins: factor has an online help system where you browse docs and code at once; working on docs give me a chance to review code, and re-organize it 14:29:26 Been working on any projects of late? 14:29:54 slava: Ah! Makes more sense to me then. :) I enjoy designing my coding projects, but not documenting them. :) 14:30:17 slava: Still, I realise it needs to be done. If not for my own good, for others. 14:30:58 docs help me, too. if i can't explain what a word does in a concise way, then the word needs to be rewritten 14:31:04 slava: So is it kinda like a java doc system? (perhaps a realtime, rather than batch one like java) 14:31:21 amca_at_cins: several mini projects in the pipeline, yeah...but I have a few biggies coming up that are not related to computer that must be dealt with 14:31:36 TheBlueWizard: Do you mind me asking what they are? 14:31:50 amca_at_cins: similar, but the documentation is in separate files, not inline 14:32:54 slava: I see. And are the docs and code hyperlinked or do you manually have to open the code file relating to the docs? 14:33:05 amca_at_cins: you can browse them in the gui 14:33:13 um...you're inquisitive! :) anyway, I must clean up the apartment this week cuz the mgmt WANTS to bug spray everything! (half-sarcasm), and second, I'm preparing for my surgery later this month 14:33:19 the docs are not really nice to read in raw form 14:33:27 slava: hehe 14:33:32 i'll paste an example if you don't mind 3 lines 14:33:40 go for it 14:33:43 HELP: subseq? "( subseq seq -- ? )" 14:33:43 { $values { "subseq" "a sequence" } { "seq" "a sequence" } { "?" "a boolean" } } 14:33:43 { $description "Tests if " { $snippet "seq" } " contains the elements of " { $snippet "subseq" } " as a contiguous subsequence." } ; 14:34:03 the markup "language" is really just nested arrays holding strings and words. its like xml but without a parser 14:34:05 TheBlueWizard: Ah, yeah. Im insanely curious. Please just let me know frankly if I ask a question you do not wish to answer. 14:34:31 slava: Cause the markup is the parser? 14:34:45 amca_at_cins: there's only one parser 14:35:26 TheBlueWizard: Is the operation too gory to go into 14:35:27 ?? 14:35:35 slava: In the gui? 14:35:50 amca_at_cins: i meant the same parser reads code and help markup 14:36:00 amca_at_cins: factor has a standard forth style parser 14:36:03 with parsing words 14:36:04 slava: Ah, I see 14:36:16 amca_at_cins: its very simple and flexible, i like it 14:37:01 slava: Sounds good. Is it in the current release? If so Ill download it and try it when I get home today 14:37:02 amca_at_cins: the styled text rendering is very simple too. 14:37:06 amca_at_cins: no, its in cvs. 14:37:15 doh 14:37:21 Okay. Ill hjave to be patient then 14:37:27 amca_at_cins: you can look at a screenshot: http://factorcode.org/help-hashtables.png 14:37:32 Let me know when it is released please. :) 14:37:37 tnx 14:38:49 slava: Cool. :D 14:39:10 amca_at_cins: well, it is a hernia operation, and I will not say anything more on that 14:39:25 * amca_at_cins nods 14:39:35 TheBlueWizard: Okay. Good luck with it. :) 14:39:37 amca_at_cins: you were taking about type systems before 14:39:44 Yesterday, yes 14:39:45 amca_at_cins: having one stack per type is not static typing... 14:39:50 no? 14:39:53 okay 14:39:55 Why not? 14:39:59 static typing is when types are checked at compile time 14:40:26 Which you cant do in Forth? 14:40:28 in factor, i can write : foo "hi" + ; and even though foo will give an error at runtime, the compiler doesn't notice 14:40:37 because its dynamically typed 14:40:58 in a statically typed language you'd get a compile error saying that + cannot be applied to strings, or something of the sort 14:41:54 there is a statically typed forth called strongForth 14:42:33 So what typing is it called when you have to be explicit about what the types are with operations such as pushing integers or floats onto different stacks? 14:43:12 where you declare types, eg C? 14:43:16 that's called manifest typing 14:43:29 usually if your language has manifest typing, it has static typing, but not vice versa 14:43:42 for example, in the ML family, you don't declare types most of the time; they are inferred; but they are checked at compile time 14:44:33 slava: Like in gforth where you have to explicitly say what the type is so the compiler-interpreter knows what stack to push it on? (eg plain numbers for integers and numbers with E in them for the float stack) 14:44:59 slava: They are/can be inferred in Haskell too arent they? 14:45:25 well gforth doesn't have type checking at all 14:45:31 yes, haskell uses type inference 14:45:39 i thought manifest typing was that data was tagged with its type and carried it around 14:45:45 that's dynamic typing 14:46:57 slava: But there is some sort of typing because you either have a word access the integer stack or the float stack (ignoring for the moment characters or using integers for other purposes like pointers) 14:47:18 any programming language has data types, but it might not have type checking 14:47:21 paul graham mentions manifest typing in ACL, and his usage is the one i used 14:47:30 you can write assembly code that makes use of linked lists 14:47:41 though the same document that mentions paul graham says others have used it in different senses 14:48:21 slava: Isnt forcing the word to take from a particular type of data stack a form of type checking? 14:48:31 forth is definitely flat out untyped tho. it has cells, everything else is explicit 14:49:29 sproingie: What about FVMs with float stacks? 14:50:15 amca_at_cins: no, because nothing prevents you from moving pointers to the float stack, or taking a float and usign it like a pointer ,etc 14:50:31 amca_at_cins: it's still incumbent on the developer to explicitly state that some data is a float or not 14:50:47 slava: But you can do that with C 14:51:04 because C's type system is not very strict 14:51:07 a float stack imposes a minor sort of type discipline, but it's not anything static 14:51:38 slava: So is it incorrect to say that Forth has a ver weak typing system? 14:51:41 the typing comes from the different set of operators you use to access the data at all 14:51:48 amca_at_cins: it's safe to say it has none at all 14:51:54 hmmmm 14:51:55 amca_at_cins: i guess 14:52:32 you can always write a type system on top of it, but when you can cast anything to anything, it's still basically untyped 14:52:49 sproingie: Same in C 14:53:25 c is in some contexts untyped, but without explicit casts within a single scope, the compiler enforces typing 14:53:46 * sproingie misses a comma after "casts" there, but you get the idea 14:53:51 I mean in an implementation where the floats are on the data stack, then sure, it is non typed, but where you have different stacks for different types where you have to explicitly convert a number between the stacks, then I think that to be some sort of typing system unless I am missing something. 14:54:02 sproingie: /me nods 14:54:12 C is derived from BCPL, which is as typed as forth -- just cells 14:54:23 * amca_at_cins nods. 14:54:33 I remember reading that C replaced an untyped language 14:55:02 C's predecessor B was implemented with direct threading 14:55:05 similar to some forths 14:55:26 interesting 14:55:27 like i said, different stacks is kinda-sorta like typing since it restricts the operations you can use, but it doesn't really become a type system 14:55:57 sproingie: I dont see how, unless you say that C kinda sorta has typing as well 14:56:01 since you have neither static analysis nor dynamic discovery of types 14:56:04 that is correct 14:56:09 C's type system is very weak 14:56:27 C indeed has kinda sorta typing. most compilers have to do a heroic job of static analysis to enforce it 14:56:39 Both C and Forth seem to assume on the system level that all untyped numbers are ints 14:56:53 * amca_at_cins nods. 14:57:06 I believe we have come to some sort of agreement. :) 14:57:56 Would being typeless be Forth's major flaw currently for application coding? 14:58:12 not everybody sees it as a flaw 14:58:14 i do 14:58:24 sorry, gotta go 14:58:29 Chat later 14:58:30 --- quit: amca_at_cins ("Leaving") 14:59:08 typelessness is fine in a "safe" language. when using direct memory access, it makes mistakes have "random" consequences, like asm 14:59:13 bah, he left 15:04:15 how can you have a safe language without types? 15:14:57 you could, it just wouldn't be very interesting 15:15:06 i guess i was thinking dynamic types 15:15:42 unlambda has no types tho :) 15:15:46 or well, one type 15:47:05 --- quit: Topaz (Remote closed the connection) 15:47:12 --- nick: Pragmatic -> Pragger|SIGHUP 15:51:47 --- join: snowrichard (n=richard@adsl-69-155-177-154.dsl.lgvwtx.swbell.net) joined #forth 15:54:54 --- quit: snowrichard (Client Quit) 16:16:53 --- join: nballen (n=nballen@adsl-69-111-248-132.dsl.renocs.pacbell.net) joined #forth 16:38:29 well, gotta go...bye! 16:38:46 hi nballen 16:38:56 --- part: TheBlueWizard left #forth 17:02:28 hey, slava 17:02:33 are you working on anything cool? 17:02:36 :) 17:15:54 what is cool? 17:16:27 forth is cool 17:16:34 the snow outside is cool, or indeed cold 17:16:54 last new years' it was raining, but now its -13 17:20:02 snow here too 17:20:12 not -13 though. got a little melty today 17:20:39 --- join: amca (n=plump@as-bri-1-189.ozonline.com.au) joined #forth 17:21:28 Hello again 17:23:58 hello amca 17:24:42 How are you nballen? 17:25:10 recovering from new years 17:25:11 ;) 17:25:25 hehe 17:25:28 Had a good one? 17:26:40 yes, although I'm glad it only happens once a year 17:26:52 lol 17:44:16 maybe this is a bad time to mention this... 17:44:57 oh? 17:46:29 but I learned recently that the earth's rotation is slowing down slightly, adding about 15 microsecconds to the length of a day every year 17:46:38 suppose that doesn't make years any longer though. nm 17:47:02 We added a leep second this year. 17:47:18 and it definitely doesn't explain how my alarm clock is off by an hour exactly 17:47:44 both the time and the alarm time are ahead an hour as of this morning 17:47:53 JasonWoof: Doesnt that mean due to conservation of rotational momentum that the earth is orbiting the sun faster? Meaning more new years more often? 17:48:02 maybe I whacked the snooze too hard 17:48:17 amca: no, it speeds up the moon 17:48:49 that doesnt sound right 17:48:59 And the faster the moon leaves our orbit, the slower we spin. 17:49:15 The moon used to be much closer. 17:49:21 * amca nods 17:49:41 But the same effect between the mooin and the Earth is happening on the earth and the sun isnt it? 17:49:47 there's some controversy about it, but here's a writup that makes some sense with diagrams: http://en.wikipedia.org/wiki/Moon 17:50:07 thanks 17:50:10 there's probably some similar effect with the sun. but probably waaay less noticeable 17:50:15 * amca nods 17:51:02 especially since it is tidal friction slowing the earth and moon, and the sun is fluids 17:52:13 --- join: JokeR69 (i=LNIX@12-208-98-237.client.insightBB.com) joined #forth 17:55:07 what is UM* ? 17:56:04 an alternative version of ER* (j/k) 17:56:21 unsigned multiply of some sort? 17:57:38 http://paste.lisp.org/display/15271 18:01:04 nballen: Mixed precision multiple 18:01:18 mixed precision unsigned multiply 18:01:38 takes two single precision numbers and returns a double answer 18:01:51 All unsigned of course 18:03:04 oh cool, thanks 18:03:13 I couldn't figure out what it as doing 18:03:22 :) 18:03:36 what Forth you coding in? 18:03:46 gforth 18:03:50 and I wouldn't call it coding 18:03:51 :) 18:04:07 hehe 18:04:16 well I looked up what it was in the gforth manual 18:04:30 Do you know how to use info? 18:06:01 what do you mean by info? 18:06:15 ok I found the word list in the gforth manual 18:06:23 *bookmarking* 18:07:14 you can download the html version at http://www.complang.tuwien.ac.at/forth/gforth/gforth-html-0.6.2.zip 18:07:26 info is a hypertext help system 18:07:31 pre html I think 18:07:59 Yeah, I usually look up the Word index first, and then try the Concepts Index. 18:08:32 cool 18:08:42 seems like a good reference 18:09:31 :) Yep. Use it frequently. And if those two dont give me enough info, I look it up in DPANS 18:17:36 --- quit: JokeR69 (Remote closed the connection) 18:20:17 --- part: amca left #forth 19:00:49 --- join: Amanita_Virosa (n=jenni@adsl-69-154-189-66.dsl.hstntx.swbell.net) joined #forth 19:08:19 --- quit: Amanita_Virosa ("Whewps.") 19:26:17 --- join: JokeR69 (i=LNIX@12-208-98-237.client.insightBB.com) joined #forth 19:31:31 --- nick: crc_ -> crc 19:31:38 --- mode: ChanServ set +o crc 19:46:51 --- quit: JokeR69 (Remote closed the connection) 21:05:40 --- join: asymptote (n=weldon@pool-151-200-41-166.res.east.verizon.net) joined #forth 21:50:19 --- quit: sproingie (Remote closed the connection) 22:03:43 --- quit: asymptote ("Leaving") 23:32:11 --- nick: Pragger|SIGHUP -> Pragmatic 23:57:42 --- quit: JasonWoof ("off to bed") 23:59:59 --- log: ended forth/06.01.01