00:00:00 --- log: started forth/21.03.11 00:00:33 --- join: f-a joined #forth 00:00:46 f-a: http://lars.nocrew.org/forth2012/core/PAD.html <- "PAD has been available as scratch storage for strings since the earliest Forth implementations. It was brought to our attention that many programmers are reluctant to use PAD, fearing incompatibilities with system uses. PAD is specifically intended as a programmer convenience, however, which is why we documented the fact that no standard words use it." 00:11:48 --- quit: joe9 (Ping timeout: 268 seconds) 00:19:25 --- join: joe9 joined #forth 00:25:50 --- quit: f-a (Ping timeout: 245 seconds) 01:05:22 --- quit: Vedran (Ping timeout: 246 seconds) 01:26:56 I avoid using PAD outside of short and sweet programs 01:42:09 --- join: Vedran joined #forth 01:51:34 siraben, sorry I meant GPL not GLP. :-) 01:54:36 inode, yes - if I'm writing some string handling code or a small editor I'm gonna likely use pad strictly inside that code. But I'm certainly not going to use it for a random data storage area of anything significant (which is how it's most often abused). 02:36:45 sure, it makes sense for temporary storage for data manipulation before copying the result somewhere less transient 02:41:44 i used it recently to build up a path to pass to REQUIRED, with a filename that i received from command line arguments. i didn't see why it was necessary to use the dictionary when i could polute PAD and forget about the resultant string once REQUIRED had returned 03:02:37 --- join: f-a joined #forth 03:03:00 thanks inode 03:03:32 no need to thank me, it was linked on the page you linked to :) 03:11:25 --- quit: cp- (Quit: Disappeared in a puff of smoke) 03:11:48 --- join: cp- joined #forth 03:21:34 --- quit: cp- (Quit: Disappeared in a puff of smoke) 03:22:44 --- join: cp- joined #forth 03:23:21 --- quit: cp- (Client Quit) 03:24:20 --- join: cp- joined #forth 03:24:57 --- quit: cp- (Client Quit) 03:41:23 --- join: cp- joined #forth 03:44:26 --- join: tech_exorcist joined #forth 03:48:22 --- quit: tech_exorcist (Max SendQ exceeded) 03:58:56 --- join: tech_exorcist joined #forth 04:04:21 the number conversion routines <# # #> #s etc all use pad - when you use a . word they use pad. in general it is ok to use pad as long as the use us contained within one operation as it were 04:04:44 you dont want a word that starts doing some thing with pad, then does some number conversion and then completes the something it was doing earlier 04:04:59 pad is safe to use just not split across separate operations :) 04:09:11 --- quit: Zarutian_HTC (Remote host closed the connection) 04:10:24 In the 'standard' PAD is not the pictured numeric output string buffer 04:10:54 I don't know the full history though and what other forths do, not surprising to me if some use PAD for that 04:11:57 From ANS Forth "The contents of the region addressed by PAD are intended to be under the complete control of the user: no words defined in this Standard place anything in the region, although changing data-space allocations...may change the address returned by PAD" 04:12:53 And the reason it might return is exactly what mark4 said earlier, that it's often floating somewhere just after HERE 04:13:04 --- join: hosewiejacke joined #forth 04:13:18 return... I mean the reason it might move 04:15:00 veltas the system not using pad sounds like pure sanity to me but i believe 79 standard forths and 83 standard forths used pad for number output, my forths do to lol 04:15:10 im thinking maybe even fig forth did. 04:15:40 traditionaly pad is defined as : pad here 80 + ; 04:15:43 literally thats it lol 04:15:53 i made it here 256 + or something 04:16:05 "literally thats it" applies to most of Forth's words but yes :P 04:16:27 lol 04:16:42 it SHOULD apply to most words... 04:16:56 Especially fig forth 04:16:58 ok now that im awake i guess i go make coffee brb :) 04:17:24 i never really got one with fig forth, i didnt like their "we put ALL our soures in one TLDR soruce file!" 04:17:25 lol 04:18:02 I think that's just because that works easier with the assemblers they were relying on at the time 04:18:44 This is what I did too until recently because I saw x64 and decided I prefer source being split up a bit 04:18:59 I am in process of splitting up ZEnv 04:24:11 i too wrote everything in one file in ny early days :) 04:24:57 but splitting things up across files is the same as splitting things up across words, its factorization at a higher level :) 04:26:01 Do you use VOCABULARY, DEFINITIONS, ALSO words when splitting into separate files? 04:26:40 actually i do but i reinvented how they work, in most forths you can do only forth also forth also forth. i have NO also 04:27:00 if you have root compiler forth and you invoke compiler you get root forth compiler with compiler at the top of context 04:28:34 the resoning behind the original method is if you have root compiler forth assember on the stack and you load a module and it needs to have foo bar bam and assembler on the "context" stack i should haave said 04:29:12 you just put them there and then remove them all laster and you wont have removed assemblrer from context for the module that had it there originally 04:30:24 but in my forth what you can do is create your own context stack, manipulate it however you want and you will never have the same voc in cotext at the same time 04:32:36 inode, yes - building a string path - perfect use of pad. 04:33:20 as long as the building of and use of is not interleaved with other words that use pad :) 04:33:25 which it probably wont be 04:33:36 tho COULD be if you needed to inject numbers into that path 04:34:03 mark4, right - nothing else can use pad or allocate dict space while you're using pad. 04:34:05 if you had a cache directory with sub dirs 000 001 002 ... 999 for example 04:34:33 they can... they should not :) 04:34:42 foot in self shoot 04:35:27 i need to implement menu bars and menu items and sub menus now all leveragling the existing text windowing i have in place 04:35:53 ill back port all these new things im doing in C back into forth where i implemented all this originally lol 04:36:11 get the TUI fully working in X4 and X64 and T4 04:36:24 then maybe get on with developing A64 04:42:47 mark4, have you been updating any of your forth repos? Newest one I see is x64 which is 7 months ago. t4 & x4 are years old. 04:48:56 proteusguy: not yet, i have a bunch of changes that i need to do on them but i have been religiously NOT coding anything for about 2 years solid lol 04:49:25 i got the coding bug back again but i want to finish this TUI im doing right now in C because a lot of what im doing here will go into the forth rewrite 04:49:35 ive not abandoned any of my forths :) 04:50:02 x64 was done in a cpl of weeks of a bit here and a bit there. no real focus work there :/ 04:50:15 im 100% focued back on my code now tho 04:58:16 mark4: Focused back on x64? 04:59:42 not making any changes there yet but only because i want to fininsh this before i start back on taht, this is really just SMOP and x4 and x64 need some serious attention 04:59:49 mark4, ok cool - look forward to seeing the results. 05:00:07 Me too 05:01:59 --- quit: Keshl (Quit: Konversation terminated!) 05:03:33 yea i got a LONG "to do" list lol 05:03:55 including some X protocol stuff if i can :) 05:04:16 not using external libs, literally just opening sockets and implementing the low level protocol in forth 05:05:41 --- join: bluekelp joined #forth 05:06:55 first thing i would have to do there is go thru the x protocol docs and convert them to a BNF description of the protocol lol 05:07:58 --- quit: gravicappa (Ping timeout: 256 seconds) 05:07:58 --- quit: bluekelp_ (Ping timeout: 256 seconds) 05:07:59 --- quit: cp- (Quit: Disappeared in a puff of smoke) 05:08:24 --- join: cp- joined #forth 05:08:28 --- join: gravicappa joined #forth 05:33:19 --- join: MrMobius joined #forth 05:55:00 --- quit: cp- (Quit: Disappeared in a puff of smoke) 05:55:55 --- join: cp- joined #forth 05:56:21 --- join: elioat joined #forth 06:00:51 --- quit: hosewiejacke (Ping timeout: 245 seconds) 06:49:23 --- join: Zarutian_HTC joined #forth 07:01:19 --- quit: f-a (Ping timeout: 246 seconds) 07:03:26 --- join: f-a joined #forth 07:05:48 --- join: hosewiejacke joined #forth 07:21:59 --- quit: dave0 (Quit: dave's not here) 08:41:02 --- join: spoofer joined #forth 09:21:41 --- quit: hosewiejacke (Ping timeout: 245 seconds) 09:33:42 --- join: hosewiejacke joined #forth 09:50:00 --- quit: gravicappa (Ping timeout: 245 seconds) 09:50:21 --- join: gravicappa joined #forth 10:26:40 --- quit: hosewiejacke (Ping timeout: 245 seconds) 10:41:31 --- quit: Zarutian_HTC (Ping timeout: 256 seconds) 10:42:26 --- quit: kiedtl (Quit: This, too, shall pass.) 10:58:34 --- quit: f-a (Read error: Connection reset by peer) 11:01:27 --- join: f-a joined #forth 11:08:31 --- quit: andrei-n (Quit: Leaving) 11:29:45 --- join: kiedtl joined #forth 11:40:31 --- quit: gravicappa (Ping timeout: 264 seconds) 11:45:26 --- join: hosewiejacke joined #forth 11:46:19 --- join: mirrorbird joined #forth 11:47:18 --- quit: rpcope- (Ping timeout: 240 seconds) 11:49:33 --- join: rpcope joined #forth 12:15:46 --- quit: kiedtl (Changing host) 12:15:46 --- join: kiedtl joined #forth 12:17:57 --- quit: hosewiejacke (Remote host closed the connection) 12:58:37 --- quit: APic (Ping timeout: 240 seconds) 13:00:24 --- join: APic joined #forth 13:03:30 --- quit: f-a (Remote host closed the connection) 13:07:14 --- join: f-a joined #forth 13:09:48 --- quit: f-a (Client Quit) 13:10:18 --- join: dave0 joined #forth 13:18:18 --- quit: elioat (Quit: elioat) 13:44:40 --- join: Zarutian_HTC joined #forth 13:55:22 doing the menus in forth is soooo much easier lol 14:46:13 --- quit: mirrorbird (Remote host closed the connection) 14:47:11 --- quit: tech_exorcist (Quit: tech_exorcist) 15:00:39 --- quit: Zarutian_HTC (Remote host closed the connection) 16:05:59 --- join: mirrorbird joined #forth 17:34:06 --- join: xek_ joined #forth 17:37:00 --- quit: xek (Ping timeout: 264 seconds) 17:38:55 I was thinking about writing an irc bot in forth as an exercise. But what approach should I take as far as establishing the network connection? 17:42:31 like, connect forth stdin / stdout to another program...? 17:52:32 --- quit: mirrorbird (Quit: Leaving) 18:02:25 --- join: Keshl joined #forth 18:17:08 either raw sockets, or use with something like ii 18:18:07 https://tools.suckless.org/ii/ will handle the connection an let you use fifo's to interact with the irc channel 18:21:31 For sockets, it would depend on your forth. In mine, I provide a subset of the berkley socket api which is enough for my occasional needs (including this very task) 18:50:49 --- join: boru` joined #forth 18:50:51 --- quit: boru (Disconnected by services) 18:50:54 --- nick: boru` -> boru 19:06:49 --- quit: _whitelogger (Read error: Connection reset by peer) 19:12:21 --- join: _whitelogger joined #forth 19:35:20 --- join: gravicappa joined #forth 20:06:32 lispmacs, just use plan9. it gets simpler to create one in a shell script. 20:06:46 or, forth and standard fd's. 20:10:31 --- quit: spoofer (Ping timeout: 264 seconds) 20:30:19 --- join: hosewiejacke joined #forth 20:32:52 joe9: how well does plan9 work in a text-only environment? eg, without rio? 20:36:54 --- join: spoofer joined #forth 20:36:55 --- quit: sts-q (Ping timeout: 264 seconds) 20:39:08 --- join: sts-q joined #forth 20:45:55 --- quit: spoofer (Ping timeout: 264 seconds) 21:02:35 --- join: spoofer joined #forth 21:04:36 --- quit: hosewiejacke (Ping timeout: 245 seconds) 21:18:28 --- quit: spoofer (Ping timeout: 246 seconds) 21:30:22 --- join: spoofer joined #forth 21:59:22 --- join: hosewiejacke joined #forth 22:17:05 --- join: f-a joined #forth 22:34:48 --- quit: astrid (Ping timeout: 240 seconds) 22:36:57 --- join: astrid joined #forth 22:55:24 --- quit: f-a (Read error: Connection reset by peer) 22:58:21 --- join: f-a joined #forth 23:02:55 --- quit: hosewiejacke (Ping timeout: 245 seconds) 23:22:21 --- quit: f-a (Quit: leaving) 23:22:39 --- join: f-a joined #forth 23:59:59 --- log: ended forth/21.03.11