00:00:00 --- log: started forth/07.10.15 00:02:39 --- join: saon_ (n=saon@207.138.42.211) joined #forth 00:11:00 --- join: H4ns (n=Hans@p57A0C667.dip.t-dialin.net) joined #forth 00:13:37 --- quit: Quartus__ (Read error: 104 (Connection reset by peer)) 00:20:57 --- quit: saon (Connection timed out) 00:21:02 --- nick: saon_ -> saon 00:50:48 --- quit: skas_wk ("I'm outta here.") 00:59:46 --- quit: ygrek (Remote closed the connection) 01:01:24 --- join: ygrek (i=user@gateway/tor/x-fddd2045d7ff0470) joined #forth 01:10:08 --- nick: arcus_ -> arcus 01:18:38 --- join: Ogedei (n=user@78-1-109-130.adsl.net.t-com.hr) joined #forth 01:25:50 --- quit: H4ns (Read error: 104 (Connection reset by peer)) 01:54:26 --- join: H4ns (n=Hans@t54fc416b.pool.terralink.de) joined #forth 02:01:24 do people still use screens for writing/storing forth code or are they considered archaic now? 02:02:13 pretty much archaic, although you'll find a few holdouts 02:04:47 i'm glad -- 'Thinking Forth' dismisses file-based programs for some really bad reasons, and then goes on to talk at length about workarounds and sillly tricks that make screens workable 02:05:12 thinking forth was written some years ago 02:05:21 hah, yes, i noticed 02:06:09 nice book though, apart from the occasional veering into old-style silliness 02:06:23 has the language itself evolved a lot since then, or is it mostly the same? 02:08:03 there are many forth dialects and implementations 02:08:33 some are pretty traditional others are 'modern' 02:08:49 i see. what would be a good example of a modern Forth? 02:09:48 gforth perhaps 02:09:52 what are you looking for? 02:10:51 i'd like to find out how the language has evolved, to make sure i'm not stuck in 1980's forth style 02:11:20 what kind of programming do you do? 02:12:13 for now, as a learning project, i'm trying to implement a simple editor 02:12:36 if you want to use forth for production work you can check out the commercial implementations 02:13:16 do they provide trial versions? 02:13:25 some do 02:13:32 what OS do you run? 02:13:38 linux 02:13:47 but i'd prefer something that also works in windows 02:14:07 there's vfx forth 02:14:12 but doesn't run on linux 02:14:14 hmm 02:14:20 i guess none of the commercial vendors support linux 02:14:38 hah, too bad 02:14:55 i'll mess around with some free versions 02:15:02 what other languages do you know? 02:15:47 Common Lisp, C, JavaScript, Java, -- most popular ones 02:16:02 forth sits at the same level of abstraction as c, roughyl 02:16:09 except it has better compile-time meta-programming 02:16:28 yes, that's what's impressing me 02:16:46 which open/free implementations are considered 'solid'? gforth? 02:16:54 yes 02:17:08 there's also retroforth, reva, helforth, many others 02:17:53 i'll go with gforth for now then 02:17:53 it is very tempting to create new forth dialects because there is a lot of good documentation how forth is implemented. 02:18:07 hehe 02:19:20 i found a really small 'literal assembly' version earlier -- haven't read it yet 02:20:00 at some point, i'll probably give in to temptation and make an implementation too 02:21:20 i might make a fast windows mobile emulator at some point 02:21:30 microsoft's one is about 10 times slower than a device 02:22:20 hah, and the devices aren't that fast themselves, are they? 02:22:29 yeah 02:22:39 mine's a 400mhz arm4 02:23:44 should be possible to make something that's, say, only 2 times slower on a modern pc 02:26:24 --- quit: H4ns ("Leaving.") 02:26:52 yeah, by using dynamic translation 02:27:07 also i want an emulator that runs on mac os x 02:31:18 another thing i was wondering -- most forth examples i've seen use a lot of global state, often for things that a C program would use malloc/free for 02:31:33 how do you deal with threading and data allocation? 02:31:39 you can use malloc/free-like facilities in forth too 02:32:20 and you just pass the pointer to the memory around on the stack? 02:32:23 sure 02:32:59 i still have to wrap my head around the idea of doing everything directly on the stack, but yes, that should work 02:34:14 has anyone tried a forth dialect that has garbage collection? (i'm spoiled, nowadays) 02:34:26 yeah 02:39:44 i'm developing such a beast 02:47:00 cool -- does it integrate well with the rest of the language? how are you finding pointers -- conservatively? i guess tagging wouldn't work in a language that can manipulate every single bit on the stack 02:47:13 its memory safe just like common lisp 02:48:30 ah, so the code no longer deals, for example, with raw cpu integers, but with some kind of environment-defined number type? 02:48:36 yeah 02:48:46 i have a number tower like common lisp's 02:48:52 nice 02:48:58 how is performance? 02:49:04 decent 02:49:36 cool, is it public, or commercial/not-finished-yet? 02:49:45 www.factorcode.org 02:50:05 ah, it's Factor! 02:50:17 heh, i've heard of it, not used it yet 02:50:25 * saon is surprised how much publicity factor has gotten via reddit 02:57:51 --- join: H4ns (n=Hans@t54fc416b.pool.terralink.de) joined #forth 03:27:26 --- quit: Raystm2 ("Should have paid the bill.") 03:50:11 --- join: geartooth (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 03:59:32 --- quit: wossname (Read error: 113 (No route to host)) 04:04:04 --- quit: saon ("leaving") 04:04:18 --- join: doublec (n=doublec@203-97-173-6.cable.telstraclear.net) joined #forth 04:04:21 --- quit: doublec (Remote closed the connection) 04:04:34 --- join: doublec (n=doublec@203-97-173-6.cable.telstraclear.net) joined #forth 04:04:39 --- quit: doublec (Remote closed the connection) 04:04:49 --- join: doublec (n=doublec@203-97-173-6.cable.telstraclear.net) joined #forth 04:04:52 --- quit: doublec (Remote closed the connection) 04:05:01 --- join: doublec (n=doublec@203-97-173-6.cable.telstraclear.net) joined #forth 04:05:03 --- quit: doublec (Remote closed the connection) 04:05:14 --- join: doublec (n=doublec@203-97-173-6.cable.telstraclear.net) joined #forth 04:05:16 --- quit: doublec (Remote closed the connection) 04:07:57 --- join: doublec (n=doublec@203-97-173-6.cable.telstraclear.net) joined #forth 04:14:56 --- quit: arcus ("Ex-Chat") 04:44:27 --- quit: Ogedei (Read error: 113 (No route to host)) 04:44:37 --- join: Ogedei (n=user@78-1-109-130.adsl.net.t-com.hr) joined #forth 05:01:34 --- join: ecraven (i=nex@eutyche.swe.uni-linz.ac.at) joined #forth 05:38:08 --- quit: crest_ ("Leaving") 06:05:22 --- part: doublec left #forth 06:07:56 --- quit: geartooth (Read error: 110 (Connection timed out)) 06:11:02 --- join: warpzero (n=warpzero@208.74.136.138) joined #forth 06:16:42 --- quit: madwork ("?OUT OF DATA ERROR") 06:17:17 --- join: madwork (n=foo@204.138.110.15) joined #forth 06:28:39 --- join: Al2O3 (n=Al2O3@pool-71-164-165-86.dllstx.fios.verizon.net) joined #forth 06:49:37 --- join: Stepan (n=Stepan@khepri.openbios.org) joined #forth 06:49:40 hi there 06:49:43 Hi. 06:50:03 it's been a while since I last visited 06:50:30 Is there a utility to produce forth code documentation from the code, similar to what doxygen does for C code? 06:50:38 (ie. dependencies between forth words, etc) 06:51:50 None that I know of, but I haven't been keeping too much track lately, been too busy with non-forth work :/ 06:52:59 --- join: timlarson (n=timlarso@fl-67-76-214-130.sta.embarqhsd.net) joined #forth 07:11:00 Stepan: not really feasible without defining what "your" code looks like 07:16:58 "my" code? 07:17:15 you mean which words are end points except the primitives like "dup" etc? 07:21:12 --- quit: Off_Namuh72 (Remote closed the connection) 07:23:37 --- join: Off_Namuh72 (i=GPS@gateway/tor/x-dca30976183c5b60) joined #forth 07:24:37 now, i'm only a humble beginner, but it seems to me that something like a dependency graph should be possible to build without knowing anything about specific coding style 07:25:12 finding out which words are internal details and which are part of a module interface might be harder, i guess 07:26:00 but you can define simple commenting conventions for that 07:27:03 ... oh wait -- recognizing words like ." would also be necessary 07:31:54 continuing to talk to myself... but is it even possible for an editor tool (say, an emacs mode) to highlight forth code in a meaningful way? 07:35:32 --- join: edrx (i=edrx@189.25.157.121) joined #forth 07:39:02 vim has a pretty good forth highlighter 07:44:57 Stepan: that works as long as certain expectations are met, I guess.. a word like append" ( add the immediate string after it in the source to the string pointed to by 2TOS) would probably confuse it 07:50:15 --- quit: timlarson (Read error: 104 (Connection reset by peer)) 07:54:17 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 07:59:32 --- join: Quartus__ (n=Quartus_@205.205.50.1) joined #forth 08:06:47 --- quit: wossname (Read error: 104 (Connection reset by peer)) 08:14:32 --- join: wossname (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 08:15:55 --- quit: Off_Namuh72 (Remote closed the connection) 08:17:47 You could legitimately make the assumption in the highlighter that any word ending in " (like S" or append") implied an in-line string. 08:55:27 --- join: geartooth (n=w@CPE00195b252b77-CM001a666a6e78.cpe.net.cable.rogers.com) joined #forth 08:56:30 --- quit: ecraven ("bbl") 08:58:56 good point 09:00:50 --- quit: wossname (Read error: 110 (Connection timed out)) 09:06:02 defining words create similar issues, and they tend to be less structured. doxygen and the like work well for well structured languages. 09:07:12 --- quit: Al2O3 ("Eggplant & SenseTalk: Driving Success Through Automation") 09:07:16 for giggles, try to convince the rebol people to provide syntax highlighting and a code reformatter - it looks to me as if they go through this debate more often than the forth people 09:07:30 --- join: Al2O3 (n=Al2O3@pool-71-164-165-86.dllstx.fios.verizon.net) joined #forth 09:20:54 GForth's authors use a convention where they use \G to indicate autodoc commands, and parameters to words are turned into locals via { and }, allowing the autodoc tool to provide half-way reasonable auto-docs. Most autodoc tools depend on textual, not structural, conventions though. Doxygen is amazingly easy to confuse by inserting blank lines between commands and definitions, for example. 09:21:33 You might want to ask your question on comp.lang.forth, since that's where Bernd Paysan and Anton Ertl (the authors) frequent. They probably would have an answer for you. 09:22:27 i wonder whether the documentation could be generated as a side product of the forth compiler 09:22:55 one could also add special flags for doing code coverage very easily 09:23:48 You'd need a very sophisticated compiler to do that. Most Forth compilers are pretty straight ahead in how they treat code. 09:24:18 It's definitely doable though; most of the commercial compilers have code generators that rival C compiler output. 09:24:33 Most open-source compilers don't, because the need just hasn't been strong. 09:24:41 --- join: ark1 (n=arke@p54A7EDA4.dip.t-dialin.net) joined #forth 09:28:34 --- join: gnomon_ (n=gnomon@74.210.55.230) joined #forth 09:41:11 --- quit: arke (Read error: 110 (Connection timed out)) 09:45:27 --- quit: H4ns (Read error: 110 (Connection timed out)) 09:52:05 --- quit: gnomon_ (Read error: 110 (Connection timed out)) 10:00:15 --- quit: Quartus__ (Read error: 104 (Connection reset by peer)) 10:09:51 --- nick: ark1 -> arke 10:10:09 --- mode: ChanServ set +o arke 10:22:42 --- join: forther (n=forther@207.47.34.100.static.nextweb.net) joined #forth 10:23:52 --- join: H4ns (n=Hans@p57A0ED13.dip.t-dialin.net) joined #forth 10:39:45 --- join: Off_Namuh72 (i=GPS@gateway/tor/x-2acf42f474f3cdb1) joined #forth 10:41:32 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-106-198.pools.arcor-ip.net) joined #forth 10:49:51 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 10:50:10 --- nick: snoopy_1711 -> Snoopy42 11:23:13 --- quit: edrx (Remote closed the connection) 11:44:12 --- quit: H4ns (Read error: 113 (No route to host)) 12:23:30 --- quit: arke (Read error: 104 (Connection reset by peer)) 12:24:18 --- join: arke (n=arke@p54A7EDA4.dip.t-dialin.net) joined #forth 12:24:18 --- mode: ChanServ set +o arke 12:41:52 Stepan, http://www.forth.org.ru/~ruvim/xml-gen/ 12:42:48 Stepan: factor has an integrated help systme 12:43:23 http://factorcode.org:8810/responder/help/show-word?word=math.functions&vocab=tan 13:15:40 --- join: jns (n=jens@e179253187.adsl.alicedsl.de) joined #forth 13:38:22 --- quit: Ogedei (Read error: 113 (No route to host)) 13:49:34 --- join: ark1 (n=arke@p54A7EDA4.dip.t-dialin.net) joined #forth 13:49:34 --- quit: arke (Read error: 104 (Connection reset by peer)) 14:04:28 --- quit: ygrek (Remote closed the connection) 14:07:19 --- quit: ark1 (Read error: 104 (Connection reset by peer)) 14:12:19 --- quit: FMota () 14:12:55 --- join: Ogedei (n=user@78-1-109-130.adsl.net.t-com.hr) joined #forth 14:45:28 good evening 14:58:15 greetings 14:58:39 --- quit: Ogedei ("ERC Version 5.1.2 $Revision: 1.796.2.4 $ (IRC client for Emacs)") 14:59:17 hi 15:14:26 --- quit: jns ("Ex-Chat") 15:29:20 --- join: arcus (n=Miranda@130.195.209.73) joined #forth 15:37:01 --- quit: Al2O3 ("Eggplant & SenseTalk: Driving Success Through Automation") 15:42:16 kc5tja: i love it how every instruction is predicated on ARM. 15:42:31 I heard about that. 15:42:43 That must significantly impact how code is generated for the processor. 15:43:54 yup. 15:45:26 --- join: Al2O3 (n=Al2O3@pool-71-164-165-86.dllstx.fios.verizon.net) joined #forth 15:53:19 what does every instruction being predicated mean? 15:54:52 every instruction is executed conditionally 16:00:12 oh boy. I've just checked the ircbrowse logs, and I'm lagging by 10 minutes or so... 16:00:18 haha 16:34:45 --- quit: Al2O3 () 16:45:20 --- join: saon (n=saon@207.138.42.211) joined #forth 17:06:52 --- join: arcus_ (n=Miranda@130.195.209.73) joined #forth 17:09:03 --- quit: arcus (Nick collision from services.) 17:09:14 --- nick: arcus_ -> arcus 17:16:38 --- join: skas_wk (n=skas@203-217-61-74.perm.iinet.net.au) joined #forth 17:18:48 --- part: skas_wk left #forth 17:28:27 --- join: Al2O3 (n=Al2O3@pool-71-164-165-86.dllstx.fios.verizon.net) joined #forth 17:35:54 --- quit: saon ("leaving") 17:56:22 --- join: edrx (i=edrx@189.25.62.84) joined #forth 18:01:46 --- join: H4ns (n=Hans@p57A0ED13.dip.t-dialin.net) joined #forth 18:02:07 --- quit: cmeme (Client Quit) 18:02:43 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 18:18:11 --- join: edrx` (i=edrx@189.25.70.242) joined #forth 18:31:35 --- quit: edrx (Read error: 110 (Connection timed out)) 18:37:25 --- quit: forther ("Leaving") 18:44:17 --- join: nighty^ (n=nighty@sushi.rural-networks.com) joined #forth 18:50:33 --- quit: KNY ("brb, rebooting") 18:53:27 --- quit: arcus (SendQ exceeded) 19:06:15 --- join: arcus (n=Miranda@130.195.209.73) joined #forth 19:51:57 --- join: doublec (n=doublec@202-74-221-224.ue.woosh.co.nz) joined #forth 20:14:33 --- quit: edrx` (Remote closed the connection) 20:37:19 --- quit: arcus (SendQ exceeded) 20:54:18 --- quit: Al2O3 (Read error: 110 (Connection timed out)) 21:10:09 --- join: arcus (n=Miranda@130.195.209.73) joined #forth 21:37:39 --- join: forther (n=forther@c-67-180-150-67.hsd1.ca.comcast.net) joined #forth 21:42:24 --- quit: forther (Client Quit) 21:51:22 --- part: doublec left #forth 21:52:20 --- join: arke (n=arke@p54A7ED36.dip.t-dialin.net) joined #forth 21:52:20 --- mode: ChanServ set +o arke 21:56:20 --- quit: H4ns (Read error: 110 (Connection timed out)) 22:05:35 --- quit: arke ("A tit is a bird.") 22:06:41 --- quit: arcus (Connection timed out) 23:59:59 --- log: ended forth/07.10.15