00:00:00 --- log: started forth/07.11.15 00:02:09 --- quit: madwork (Read error: 104 (Connection reset by peer)) 00:10:37 --- quit: ygrek (Remote closed the connection) 00:13:37 --- quit: Off_Namuh (Remote closed the connection) 01:14:34 --- quit: arke_ (Read error: 113 (No route to host)) 01:27:04 --- join: arcus (n=ajt@203.173.187.131) joined #forth 01:43:22 --- join: ecraven (i=nex@eutyche.swe.uni-linz.ac.at) joined #forth 01:43:53 --- join: Baughn (n=svein@084202038064.customer.alfanett.no) joined #forth 01:45:34 --- join: arke (n=arke@x505.vpn.hrz.tu-darmstadt.de) joined #forth 01:45:34 --- mode: ChanServ set +o arke 01:49:57 --- join: ygrek (i=user@gateway/tor/x-92521f2aacbffe68) joined #forth 01:55:03 ok, here's my latest idea about jump tables and lookup tables: http://jasonwoof.org/fronds_tables 01:56:56 * arke reads 01:58:02 doesn't CM do this in CF? 02:05:26 dunno 02:05:38 no, he can't 02:05:43 his source does not contain dictionary references 02:05:51 he searches the dictionary at compile time 02:06:30 hmm 02:24:23 --- quit: ygrek (Remote closed the connection) 02:36:34 http://jasonwoof.org/fronds_source_format 02:36:48 wow, there was zero posted documentation for fronds before today 02:43:49 I had some locally 02:44:03 looks like I may have missed a dictionary field 02:44:25 I can't help but notice that fovium is very, very similar to FTS-1001 02:45:16 nope, I think I got them all 02:46:00 we didn't design it to be unique :) 02:46:19 many of the ideas for it were gleaned from this very channel 02:46:30 some of them definitely came from kc5tja 02:47:15 we found a nice compromise between compactness and simplicity 02:47:41 and we guessed which operations would be best to have in primitives 02:48:17 :) 02:48:35 the flag stack is an interesting experiment 02:48:50 too bad all 64 instructions are taken, hehe 02:48:57 i would have liked to see a forth VM with SIMD 02:49:08 some could easily be lost 02:49:32 it's a nice set for sure 02:49:50 just unfortunate that it has no provision for future expansion 02:52:32 no sense in wasting the opcode space 02:52:45 with forth it's easy to change what the primitives are 02:54:13 for fovioum I'd say you could easily lose: f; t; 8+ 4- ^ 02:54:55 would be cool to run a profiler and see how often the various instructions are actually used 02:55:57 is there a word for inspecting the floating point stack? 02:55:58 lots of the words in there could easily be implemented in forth 02:56:00 like .s? 02:56:04 no floating point 02:56:33 if you want fp and simd you should probably go with 128 opcodes 02:56:34 kills it for me. :) 02:56:44 I was thinking go with 256 02:56:48 easy to work with 02:56:57 plus there's plenty of space for anything you might think of in the future 02:57:04 right 02:57:16 7-bit is silly 02:57:48 I think 5.5 opcodes/word is cool 02:57:59 but 4.5 vs 4 is silly 02:58:53 inded 02:58:56 indeed 02:59:24 I don't know that all decisions in the design of fovium were completely logical 02:59:51 well, actually, the only way in which I think we've made it more complex by the operand packing is that you can mash something in the last 2 bits 03:00:01 but that doesn't make the interpreter any more complex 03:00:15 I've been thinking about designing a VM based around things you need often in DSP 03:00:15 and if you don't want the complexity in your implementation, just don't use those bits, no biggie 03:00:56 register based though 03:01:14 why do you want a vm for that? 03:03:29 for fun, plus it'd be interesting to see what sort of neat instructions I can come up with that will be useful as well as reasonable on a "real" chip 03:03:42 I may decide to change the core instructions if I write a profiler 03:03:44 I develop for x86 and it's anything but pleasant for DSP 03:03:59 it'll probably be faster to have an opcode for 0 03:12:30 are you doing stuff that needs to run wicked fast? 03:12:43 generally on x86 you have speed to spare and can use a high level langueg 03:14:16 are floats in gforth double-precision? 03:14:45 JasonWoof: realtime audio synthesis/manipulation 03:16:57 which can be done in "slow" but if you want to run many synths and effects at the same time, you gotta optimize 03:17:13 I'm using C++ actually but I'm doing a bunch of nasty tricks to make stuff fast 03:21:19 arke: that makes sense 03:21:38 you can go crazy with your synthesizer/sequencer until you max out your cpu 03:21:41 arke: I think so 03:21:44 oops 03:21:48 arcus: I think so 03:24:52 I think I will just use df@ and df! to be sure. 03:25:09 good plan 03:28:46 aha! there's a constant float and a word floats analagous to cell and cells! 03:38:51 --- join: Off_Namuh (i=GPS@gateway/tor/x-7d03c2f93ae16b97) joined #forth 04:09:51 --- quit: arcus ("Ex-Chat") 04:48:18 --- quit: arke (Read error: 110 (Connection timed out)) 05:05:30 --- join: arke (n=arke@p54A7E49B.dip.t-dialin.net) joined #forth 05:05:30 --- mode: ChanServ set +o arke 05:23:53 --- quit: arke (Read error: 104 (Connection reset by peer)) 05:24:31 --- join: arke (n=arke@p54A7E49B.dip.t-dialin.net) joined #forth 05:24:31 --- mode: ChanServ set +o arke 05:39:16 --- join: timlarson_ (n=timlarso@65.116.199.19) joined #forth 05:50:07 arke: yeah, there's all kinds of standard words with the "f" prefix 05:53:43 wrong nick completion? 06:02:03 --- join: madwork (n=foo@204.138.110.15) joined #forth 06:39:23 arke: yep, sorry 06:41:28 tab completion sometimes fails me when I'm trying to talk to someone who isn't here 06:45:12 --- quit: ecraven ("bbl") 06:47:48 --- join: iano (n=iosgood@sub26-46.member.dsl-only.net) joined #forth 06:57:55 --- quit: saon (Read error: 113 (No route to host)) 07:28:16 kickass :) my new tables work :) 07:28:22 I find coding much more fulfilling that documenting 07:55:48 --- join: KipIngram (n=KipIngra@c-98-199-207-98.hsd1.tx.comcast.net) joined #forth 08:09:11 --- quit: Off_Namuh (Remote closed the connection) 08:19:47 That's why I value self-documenting code -- if the code virtually documents itself, that's one less thing I have to write. 08:19:58 Unfortunately, it doesn't address writing users manuals. 08:25:40 and now my lookup table works :) 08:25:48 it stores key-value pairs 08:26:03 well, (key,xt) pairs 08:26:19 and one more xt at the end if you pass a key that doesn't match any of the pairs 08:26:40 it's kinda like a case statement 08:27:25 kc5tja: right, I figure the hardest thing to deal with is someone thinking "OK, how do I get it to do x?" 08:28:04 it's easy enough to make it so a bright person can answer there own "what does this bit of code do?" through good naming and comments 08:29:18 even if there is a user manual, it can be hard to find out how to do something you don't know the terminology for 08:29:37 Yes, this is why cookbooks have all but replaced users manuals these days. 08:30:04 And, it has occured to me, most users manuals in the 80s were really 1/3 tutorials, 1/3 cookbooks, and 1/3 reference manuals. 08:30:27 smart 08:30:35 although the precise ratio of tutorials to cookbook content varied. 08:30:46 heh 08:30:50 ok, I gotta go mop 08:31:00 But, software is so complex today, that it's impossible to put everything into a single book. 08:33:01 heh 08:33:18 I remember in highschool when I read through vast amounts of a book on C programming 08:33:22 took me ages 08:33:36 I tried stuff out, fiddled with the examples, etc 08:33:43 but now I'm not really willing to learn a language that way 08:33:52 now that I already know several 08:34:09 I want a few different tutorials that do things I might do 08:34:20 That's a cookbook. 08:34:38 and I want a list of types of things you might want to do with explanations 08:34:39 * kc5tja is trying to learn how to use GWT and JDBC stuff right now. 08:34:58 eg here's how you work with arrays, here's how you manage memory, here's how you do networking, graphics, arbitrary precision math, ffi, etc 08:35:28 and an index/reference that has every object/command/word/operator/whatever so when I find something cool I can find out the details of how it works 08:35:39 yep, that is how we learn software in the postmodern age, by example 08:35:57 one of the reasons that open source really took off 08:36:18 I think it was as true in the pre-modern age as it was in the post-modern age too. 08:36:28 That's why the early books had both reference AND tutorial/cookbook content. 08:36:54 its one of the things I like about Factor: fully browsable source and plenty of samples 08:36:58 And 08:37:00 if you notice, we have a whole LOT more people interested in compsci than we do in math and other natural sciences. 08:37:22 I suspect it's because our literature on the subject is pure reference -- there are no scientific "cookbooks" the student can learn from. 08:40:42 --- join: Off_Namuh (i=GPS@gateway/tor/x-b1c236261f0ccd47) joined #forth 08:41:28 --- join: Quartus____ (n=neal@99.231.230.193) joined #forth 08:43:16 --- join: I440r (n=mark4@ip70-162-227-19.ph.ph.cox.net) joined #forth 08:45:16 Just to take the other side, though, can you really learn a language (or a field of science or math, or whatever) in any way other than immersing yourself in it the way Jason did with C in high school? 08:46:00 To do more than learn the surface characteristics of a really different language, you need to work in it. 08:46:15 The cookbook approach has the same kind of relationship to "real learning" that remixing does to "real composition." 08:47:35 Cookbooks are a way of getting something done without necessarily learning how to do it. 08:48:17 KipIngram: my plodding through the huge book is an effective way to know every in-and-out of the language 08:48:33 KipIngram: but it does not make me a good programmer in that language 08:49:24 KipIngram: for example, I knew (and perhaps still do) what every symbol does, but I didn't know when to nest loops vs factor out a seperate function 08:49:50 Well, I agree with that and with Quartus; the only thing that accomplishes that is actually using the language for a wide variety of projects, and thinking hard about what works, what doesn't, and why. 08:50:19 right 08:50:46 It's valuable to know a lot of technical info about your language 08:50:51 Forth has a marvellous feedback mechanism; until you get better at it, it shows you very clearly what you're getting wrong. 08:51:09 and it's valuable to see how good programmers with lots of experience use the language 08:51:30 programming in forth is very very educational 08:51:48 it's hard to get a forth program to do anything at all if it's designed badly 08:52:43 true 08:53:39 I feel like one of the hardest things to learn about programming is when, where and how to abstract 08:53:58 abstraction is generally quite explicit in forth, so I feel I learn that quicker 08:54:22 When I'm starting with a clean slate, I abstract every interface. 08:56:48 --- quit: Quartus (Read error: 110 (Connection timed out)) 09:02:35 --- join: forther (n=forther@207.47.34.100.static.nextweb.net) joined #forth 09:17:43 Every engineer, in the real world, regardless of his or her experience level, resorts to books containing documented patterns. Civil engineers do not custom draw bridges in AutoCAD. They use the equivalent of wizards -- plug in the necessary specifics, and it then spits out an AutoCAD DXF file of a bridge. Then, the engineer tweaks it as needed. 09:17:59 The point is, life is sometimes too short to know the ins and outs of everything. 09:19:54 --- quit: Quartus____ () 09:20:07 --- join: Quartus (n=neal@99.231.230.193) joined #forth 09:20:11 --- mode: ChanServ set +o Quartus 09:22:14 --- part: KipIngram left #forth 10:05:14 --- quit: gnomon (Read error: 110 (Connection timed out)) 10:09:19 --- join: forther_ (n=forther@207.47.34.100.static.nextweb.net) joined #forth 10:19:05 --- quit: forther (Read error: 110 (Connection timed out)) 10:55:42 --- quit: Quartus__ ("used jmIrc") 10:55:57 --- join: Quartus__ (n=Quartus_@209.167.5.2) joined #forth 11:12:42 --- join: ygrek (i=user@gateway/tor/x-5cea49f45b870048) joined #forth 11:36:24 --- join: mark4_ (n=mark4@ip70-162-227-19.ph.ph.cox.net) joined #forth 11:41:48 --- join: forther__ (n=forther@207.47.34.100.static.nextweb.net) joined #forth 11:52:33 --- quit: I440r (Read error: 110 (Connection timed out)) 11:57:50 --- quit: forther_ (Read error: 110 (Connection timed out)) 11:59:19 --- join: snoopy_1711 (i=snoopy_1@dslb-084-058-121-127.pools.arcor-ip.net) joined #forth 12:07:38 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 12:08:02 --- nick: snoopy_1711 -> Snoopy42 12:08:27 --- join: Crest (n=crest@p5489CACD.dip.t-dialin.net) joined #forth 12:10:00 --- join: Al2O3 (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 12:36:17 --- join: proteusguy (n=proteusg@ppp-124.120.224.109.revip2.asianet.co.th) joined #forth 12:44:32 --- quit: arke ("leaving") 12:53:08 --- join: arke (n=arke@p54A7E49B.dip.t-dialin.net) joined #forth 12:53:08 --- mode: ChanServ set +o arke 13:00:44 --- join: doublec (n=doublec@202.180.114.137) joined #forth 13:19:30 --- quit: ygrek (Remote closed the connection) 13:25:42 --- quit: timlarson_ ("Leaving") 13:53:48 --- quit: Al2O3 (kubrick.freenode.net irc.freenode.net) 13:53:48 --- quit: madwork (kubrick.freenode.net irc.freenode.net) 13:53:49 --- quit: mem4tim (kubrick.freenode.net irc.freenode.net) 13:53:49 --- quit: doublec (kubrick.freenode.net irc.freenode.net) 13:53:49 --- quit: forther__ (kubrick.freenode.net irc.freenode.net) 13:53:50 --- quit: mark4_ (kubrick.freenode.net irc.freenode.net) 13:53:50 --- quit: timlarson (kubrick.freenode.net irc.freenode.net) 13:53:50 --- quit: Fractal (kubrick.freenode.net irc.freenode.net) 13:53:50 --- quit: arke (kubrick.freenode.net irc.freenode.net) 13:53:50 --- quit: Quartus__ (kubrick.freenode.net irc.freenode.net) 13:53:51 --- quit: JasonWoof (kubrick.freenode.net irc.freenode.net) 13:53:51 --- quit: uiuiuiu (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: proteusguy (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: Crest (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: madgarden (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: crc (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: Deformative (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: Deformati (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: warpzero (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: iano (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: ccfg (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: CyberSpace (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: nighty-- (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: mrsbrisby (kubrick.freenode.net irc.freenode.net) 13:53:53 --- quit: Off_Namuh (kubrick.freenode.net irc.freenode.net) 13:53:54 --- quit: cmeme (kubrick.freenode.net irc.freenode.net) 13:53:54 --- quit: Snoopy42 (kubrick.freenode.net irc.freenode.net) 13:53:55 --- quit: TreyB (kubrick.freenode.net irc.freenode.net) 13:53:55 --- quit: rbarraud (kubrick.freenode.net irc.freenode.net) 13:55:16 --- quit: kc5tja ("leaving") 13:59:55 --- join: JasonWoof (n=jason@unaffiliated/herkamire) joined #forth 13:59:55 --- join: mem4tim (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 13:59:55 --- join: doublec (n=doublec@202.180.114.137) joined #forth 13:59:55 --- join: proteusguy (n=proteusg@ppp-124.120.224.109.revip2.asianet.co.th) joined #forth 13:59:55 --- join: Crest (n=crest@p5489CACD.dip.t-dialin.net) joined #forth 13:59:55 --- join: forther__ (n=forther@207.47.34.100.static.nextweb.net) joined #forth 13:59:55 --- join: mark4_ (n=mark4@ip70-162-227-19.ph.ph.cox.net) joined #forth 13:59:55 --- join: Quartus__ (n=Quartus_@209.167.5.2) joined #forth 13:59:55 --- join: Off_Namuh (i=GPS@gateway/tor/x-b1c236261f0ccd47) joined #forth 13:59:55 --- join: iano (n=iosgood@sub26-46.member.dsl-only.net) joined #forth 13:59:55 --- join: madgarden (n=madgarde@bas2-kitchener06-1096752101.dsl.bell.ca) joined #forth 13:59:55 --- join: crc (n=crc@pdpc/supporter/active/crc) joined #forth 13:59:55 --- join: cmeme (n=cmeme@boa.b9.com) joined #forth 13:59:55 --- join: Deformative (n=joe@c-68-61-240-49.hsd1.mi.comcast.net) joined #forth 13:59:55 --- join: timlarson (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 13:59:55 --- join: ccfg (n=pitkajus@tuomi.oulu.fi) joined #forth 13:59:55 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 13:59:55 --- join: Deformati (n=joe@c-68-61-240-49.hsd1.mi.comcast.net) joined #forth 13:59:55 --- join: uiuiuiu (n=ian@schihei.net) joined #forth 13:59:55 --- join: Fractal (i=frax@i.got.the.skillz.to.pay.the.billz.org) joined #forth 13:59:55 --- join: warpzero (n=warpzero@208.74.136.138) joined #forth 13:59:55 --- join: mrsbrisby (i=nimh@nimh.org) joined #forth 13:59:55 --- mode: irc.freenode.net set +oo JasonWoof crc 14:00:06 --- quit: CyberSpace (Killed by ballard.freenode.net (Nick collision)) 14:00:07 --- join: CyberSpace (i=HydraIRC@c-68-63-244-236.hsd1.ky.comcast.net) joined #forth 14:00:07 --- join: Al2O3 (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 14:00:07 --- join: madwork (n=foo@204.138.110.15) joined #forth 14:00:14 --- join: nighty-- (n=nighty-@66-163-28-100.ip.tor.radiant.net) joined #forth 14:00:14 --- join: Snoopy42 (i=snoopy_1@dslb-084-058-121-127.pools.arcor-ip.net) joined #forth 14:00:14 --- join: TreyB (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 14:00:14 --- join: rbarraud (n=rbarraud@gateway.quickcircuit.co.nz) joined #forth 14:00:45 --- join: arke (n=arke@p54A7E49B.dip.t-dialin.net) joined #forth 14:00:47 --- mode: ChanServ set +o arke 14:02:12 --- quit: madwork ("?OUT OF DATA ERROR") 14:04:16 --- join: arke_ (n=arke@p54A7E49B.dip.t-dialin.net) joined #forth 14:09:28 --- quit: arke_ ("leaving") 14:15:50 --- quit: Snoopy42 (Read error: 145 (Connection timed out)) 15:07:34 --- quit: forther__ ("Leaving") 15:09:27 --- join: crest_ (n=crest@p5489CCE1.dip.t-dialin.net) joined #forth 15:21:43 --- quit: Crest (Read error: 110 (Connection timed out)) 15:22:46 --- quit: Quartus (Read error: 110 (Connection timed out)) 15:23:10 --- join: Quartus (n=neal@CPE0001023f6e4f-CM001947482b20.cpe.net.cable.rogers.com) joined #forth 15:23:10 --- mode: ChanServ set +o Quartus 15:23:33 --- quit: Al2O3 ("Eggplant & SenseTalk: Driving Success Through Automation") 15:29:14 --- join: Al2O3 (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 15:35:25 --- join: Azure_Ag (i=azure@azure.azureprime.com) joined #forth 15:48:02 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 15:48:02 --- mode: ChanServ set +o tathi 16:00:02 --- quit: iano () 16:04:03 --- quit: Azure_Ag ("Zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz-POP!") 16:06:52 --- join: I440r (n=mark4@ip70-162-227-19.ph.ph.cox.net) joined #forth 16:10:31 --- join: iano (n=iosgood@sub26-46.member.dsl-only.net) joined #forth 16:21:50 --- quit: mark4_ (Read error: 110 (Connection timed out)) 16:31:22 --- quit: tathi ("leaving") 17:18:56 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 17:19:05 --- join: proteusguy (n=proteusg@ppp-124.120.219.3.revip2.asianet.co.th) joined #forth 18:10:21 --- join: tathi (n=josh@pdpc/supporter/bronze/tathi) joined #forth 18:10:21 --- mode: ChanServ set +o tathi 18:38:21 --- quit: Off_Namuh (Remote closed the connection) 18:51:19 --- quit: tathi ("leaving") 18:55:11 --- join: Off_Namuh (i=GPS@gateway/tor/x-a75e351a9c3e147d) joined #forth 19:04:45 --- quit: timlarson (Read error: 110 (Connection timed out)) 19:06:30 --- quit: mem4tim (Read error: 110 (Connection timed out)) 19:09:44 --- quit: iano () 19:16:21 --- quit: Al2O3 () 19:21:20 --- join: arke_ (n=arke@p54A7DC6C.dip.t-dialin.net) joined #forth 19:24:29 --- join: Al2O3 (n=Al2O3@c-75-70-5-69.hsd1.co.comcast.net) joined #forth 19:39:13 --- quit: arke (Read error: 110 (Connection timed out)) 19:41:11 --- join: forther (n=forther@c-67-180-150-67.hsd1.ca.comcast.net) joined #forth 20:09:57 --- join: nighty^ (n=nighty@sushi.rural-networks.com) joined #forth 20:13:53 --- quit: doublec () 20:24:18 --- join: timlarson (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 20:27:24 Hi. 20:27:58 hi 20:30:41 hey 20:33:04 ahoy 20:33:13 What's up? 20:34:02 the only useful thing I've done lately that is tangentially related to forth 20:34:23 is converting the DPANS94.ASC from that zipfile into something the less pager can handle 20:34:52 it could read it before, but I rearranged the sequences of text and underlines to use ^h's instead of ^m's 20:35:08 which is wasteful, but means I can use less to see it in full underline/bold glory 20:35:49 in retrospect, hunting down an html copy might have been a better use of time 20:35:56 probably. 20:38:14 are there any portable (endianness and wordsize 32,64 at least) forths that are suited for embedding within large multithreaded C applications? 20:38:15 --- quit: timlarson (Read error: 104 (Connection reset by peer)) 20:38:31 I was looking at John Walker's Atlast, which looks like a good start in that direction 20:38:58 but it looks like some work will be needed just to get it working standalone on my mac 20:41:12 Atlast is an older effort. I don't know of any offhand that would be suitable for multithreading. 20:41:54 hmm, okay 20:42:40 I'm not the final word on it, though; it's not an area of interest for me. 20:43:18 are you the quartus behind Quartus Forth? 20:43:26 I am. 20:43:42 heh, cool 20:44:16 sadly my last palm ran palmos 2.0, though it served me well 20:44:27 That's going back a bit. 20:53:46 are there any standards newer than the 94 ansi standard I should look at? 20:53:56 ...any I shouldn't look at? :p 20:54:07 There's an effort called Forth200x that is documenting a few things with an eye to adding them on 20:54:12 --- join: timlarson (n=timlarso@user-12l37rb.cable.mindspring.com) joined #forth 20:54:16 Otherwise, no new standards 20:54:31 '94 is proving very useful 21:02:17 --- join: slava (n=slava@CPE0007e97df149-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 21:05:32 --- join: arke (n=arke@p54A7F24E.dip.t-dialin.net) joined #forth 21:05:32 --- mode: ChanServ set +o arke 21:06:27 hey slava 21:06:32 and arke :) 21:22:24 --- quit: arke_ (Read error: 110 (Connection timed out)) 21:38:24 --- quit: I440r (Read error: 110 (Connection timed out)) 22:04:23 yo 22:08:07 --- quit: nighty^ (Remote closed the connection) 22:11:42 I'm so tempted to build my editor so there's no concept of the definitions being sequential 22:11:51 as if they were one after another in a file 22:12:24 heh, like smalltalk 22:12:39 so when they're editing/entering a definition, I can display whatever I think is relivant 22:12:49 instead of what is before and after it 22:13:03 yup, dispalying the callers or callees for instance 22:13:14 yeah 22:13:16 or the word at the cursor 22:13:50 yeah, my old forth always shows you the definition/value of the word under the cursor 22:13:57 but that's way down at the bottom 22:14:08 it shows a clump of definitions at the top in a sequence 22:14:17 but that's just the way herkforth is set up 22:14:23 it doesn't store definitions seperately 22:14:55 it doesn't know what definitions are stored in that clump/block 22:15:15 having some kind of organization for words is good 22:15:19 you don't want to just have one big soup 22:15:22 vocabularies, categories, etc 22:15:30 the code that displays the definition just guesses (fairly accurately) where the definition starts and stops 22:15:44 yeah 22:15:53 the tree editor thing seems real useful 22:16:08 but there are some benifits of having things grouped in files that I don't want to completely use 22:16:16 like finding "related" words 22:16:42 ie say you wanted a modulus, and didn't know the word for it 22:16:53 you could look up / and hopefully it'd be nearby 22:17:41 the other trouble with the tree thing is that there may be definitions that don't reference anything, and those need to still be accessible 22:18:01 heh 22:18:09 hmm 22:18:14 what if those special top level words were marked somehow? 22:18:15 I've though of having a display of recently defined words 22:18:22 anything else that wasn't referenced is gc'd 22:18:30 automatic dead code elimination! :) 22:18:40 I think I want to ask the user 22:18:46 well, have a list of unused words 22:18:50 right 22:19:08 "here's some code that isn't being used, I promise you can delete any of it without breaking anything" 22:19:29 where isn't used also means 'not flagged as a word for interactive use' 22:20:21 I can mark words that aren't called anywhere as being useful (eg because you'd use them interactively by name), but I can't have things my user has just created, but hasn't done much with yet dissapearing 22:20:44 right 22:20:57 it may be tough to teach my users to flag stuff for interactive use 22:21:13 maybe 22:21:21 but anyway, I figure at some point I'll add the concept of categories 22:21:44 also at some point I'll figure out how to get more documentation built in 22:23:08 one reason why I was interested in trying having the definitions stored in a sequece like that is so I could have text paragraphs in there too 22:23:22 thus I could clump stuff together and put decumentation near it 22:23:46 I haven't implemented that part though 22:23:58 currently there's just a slew of definitions, many of which have a comment 22:36:16 well, I figured code for displaying a list of definitions would be quite useful, even if I decide to scrap the huge list containing all definitions that you can manually reorder 22:36:30 I'm certainly going to want to auto-generate lists of definitions to be displayed 22:37:09 callers, callies, recent definitions, search results, other words with the same prefix, etc 22:40:25 --- join: TreyB_ (n=trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 22:41:11 --- quit: TreyB (Read error: 110 (Connection timed out)) 23:11:45 --- quit: forther (Remote closed the connection) 23:28:30 http://discworld.atuin.net/lpc/about/features.html 23:35:10 man, event handling can be tricky 23:36:59 it's relatively easy to spew information all over the screen 23:37:20 but tricky to know what part of that is trying to be edited, and respending to the editing according to what type of data it is and all that 23:37:58 heh 23:38:20 I'm thinking about a sort of sub-mode 23:38:31 so far I've got a word/definition browser 23:38:32 My interest in MUDs extends to about the 'you are in a maze of twisty passages, all alike' level 23:39:05 the corsor hovers over a word, you can move it to the word to the right, to the left, to the definition of that word, etc 23:39:27 I'm starting to add the functionality to operate on the level of letters 23:39:31 eg to type in a new word 23:39:41 and I'm working out how that's organized 23:40:13 I need a mechanism for it knowing what level I'm on and responding accordingly 23:40:42 eg if I'm typing in a new word, and I hit the "go left" key sequence I want it to go one character to the left, not one word 23:41:52 but some stuff will still work on the word level. eg if they hit the "go to the definition of this word" sequence, then it should stop editing the word, and go there 23:42:00 so a FSM then 23:43:33 --- join: saon (i=84aaa0a3@gateway/web/cgi-irc/ircatwork.com/x-33e82908627b2921) joined #forth 23:43:40 --- part: saon left #forth 23:43:46 --- join: saon (i=84aaa0a3@gateway/web/cgi-irc/ircatwork.com/x-33e82908627b2921) joined #forth 23:43:51 Field Service Management? 23:44:03 Probably not. 23:44:19 Flying Spaghetti Monsterism? 23:44:27 finite state machine 23:44:31 ahh 23:45:03 fundamentally, a table of xts and corresponding state changes 23:46:03 a sane way to code the type of thing you're describing 23:46:36 don't think I've seen a FSM used in a practical way 23:46:55 I've used them. It's a handy technique. 23:47:32 so it's a table with the (to,from) states? 23:47:53 so I can put an xt in the right place and thereby say "when you go from state 'letters' to state 'words' call this"? 23:48:02 a table of paired values; the Y axis is your set of states, the X the set of events 23:48:17 each pair is an action and a state change delta 23:48:18 right, that makes more sense 23:49:18 I was certainly thinking of having a table of keybindings for the "edit letters" mode 23:49:33 Bit like a chutes & ladders game. 23:50:00 well, you can pile it all into the same FSM 23:50:01 thing I was trying to figure out is if I should have a concept of "parent modes" where keys presed that do not match any action in the current mode are checked in the parent 23:50:21 IE if I use some word-navigation sequence that doesn't apply in letters, if it should work automatically 23:50:29 sure, that's one way to go. If the pair for a given event is null, travel up till you find a non-null 23:51:01 or simply copy over nulls when you create the table 23:52:04 I keep thinking that my inner "mode" (editing by letters) will need some kind of notification/cleanup when it is exited 23:52:16 but that's probably not true, or terribly relevant 23:52:22 sure, some event triggers an exit; handle it in that part of the FSM 23:53:13 the thing that's been purplexing me though, is that it would appear that parent-level navigation commands should automatically trigger closing the sub-mode 23:53:33 it's a very simple but extremely powerful technique that leaves nothing behind but the great scent of Brut. 23:54:25 well, I'm not sure what you mean by 'closing the sub-mode', but I suggest you grab some quadrille paper and have a go at it 23:54:39 quadrille? 23:54:56 ruled in both directions. Graph paper. 23:55:29 Little squares all over it 23:55:36 yeah, my idea of needing to close sub-modes may not really make much sense... Perhaps all that is needed is that the keybindings are (re)moved so the mode's XTs are not triggered by key sequences anymore 23:55:52 Quartus: you had me at graph paper 23:56:18 you can simply change the state to a row of the FSM where your key events don't do anything you don't want them to. 23:56:36 right 23:57:17 It's a marvellous way to code this sort of thing, whereas writing it as a set of conditionals would be horrific. 23:57:30 I'm realizing that slightly customized editing modes would be pretty easy too, if I can customise the table search 23:57:52 ie I could make a mode for editing arbitraty text, vs editing text with a more limited character set 23:58:32 it would change that one XT (for inserting text) and defer everything else to the dispatch mechanism for the arbitrary text mode 23:59:19 yeah, doing this with if/then would be a nightmare 23:59:37 I didn't like my table-handling code, so I started using if/then and it was freaky 23:59:45 even just handling the backspace key 23:59:59 --- log: ended forth/07.11.15