00:00:00 --- log: started forth/05.06.30 00:14:45 --- join: danniken- (CapStone@70.249.186.85) joined #forth 00:14:46 --- quit: danniken (Read error: 54 (Connection reset by peer)) 00:35:35 --- quit: alexander_ (Remote closed the connection) 00:48:21 --- quit: Herkamire ("off to bed") 02:33:38 --- quit: kunphuzil ("Download Gaim: http://gaim.sourceforge.net/") 02:54:16 yay! japanese is postfix! 03:59:44 --- join: tathi (~josh@tathi.bronze.supporter.pdpc) joined #forth 04:18:21 howdy tathi 04:18:29 you're up early! baking the buns eh? 04:26:06 heh. I'm not up particularly early for me. 04:26:13 * tathi is a morning person 04:27:22 so...when you put that topic on c4th-ot about Forth chips, were you thinking of Patriot Scientific? 04:27:26 or...? 04:35:46 yeah i was 04:36:01 ok. 04:36:11 well, it actually sparked some useful stuff 04:36:37 they don't really have anything on their current web site saying that they sell actual chips. 04:36:56 but both rj_cf and Herkamire contacted them and they were pretty helpful 04:37:23 yeah i contacted them 2-3 years ago and was told the chip was 15 bucks 04:37:38 individual purchase 04:37:38 up to $17 now, apparently. 04:37:40 yeah 04:37:41 ah 04:38:03 well its just that sometimes forthers bemoan lack of forthchips .. 04:38:08 * tathi really needs to get into electronics one of these days... 04:38:36 --- join: virl (Phantasus@chello062178085149.1.12.vie.surfer.at) joined #forth 04:38:43 i guess the other factor is that you need additional equipment to interface with the chips properly don't you? 04:38:49 is that why you make the comment about electronics 04:39:08 yah, because I don't know enough to build a system just now. 04:39:11 but they do sell a package for that interfacing.. 04:39:24 cool. 04:39:31 does somebody know the link to the gforth sdl ffi example, from yesterday? 04:39:37 well i would just imagine you get the chip and the package and then hook it up to your computer and communicate to the chip via port 04:39:48 They told Herkamire on the phone that they didn't have much in the way of development boards, except for some FPGA versions. 04:39:56 virl: http://tunes.org/~nef/logs/forth/ 04:40:01 But that once they finished getting their website up they would be working on some new boards. 04:40:12 virl: that code example? 04:40:20 how long ago did they tell him this? 04:40:36 http://www.falvotech.com/projects/kestrel/repo/kestrel/cores/cpu/sdl.fs 04:40:41 cuz the email to me said there was a development board to purchase 04:40:50 and this was 2-3 years ago.. 04:41:00 this was last week or so. 04:41:30 ok well i think the chip is probably a different one now 04:41:35 yep tathi, that example. how did come to this? 04:42:01 that's from kc5tja's emulator for his Kestrel project, back when he was still working on it. 04:42:45 eph: yah, I got the impression that they are kind of starting something new. 04:42:52 and don't have everything finished yet. 04:43:13 what about that licensing thing with AMD? 04:43:27 don't know anything about it 04:43:37 i half expected the licensing thing would be a ploy to stop sales of the chip to the public heh 04:43:47 a little bit of jeff fox's paranoia rubbed off on me 04:44:56 :) 04:47:50 virl: it sounds like they stole the ffi syntax from bigforth, so it might be documented there... 04:52:26 eph: so are you up to anything interesting lately? 05:22:26 in which forth magazine is the structure mechanism described? 05:33:14 --- join: PoppaVic (~pete@0-2pool238-88.nas24.chicago4.il.us.da.qwest.net) joined #forth 05:33:39 Mornin' 05:33:45 Hi 05:54:08 PoppaVic: were you talking yesterday about actually writing a libelf? 05:54:14 or just saying that we needed one? 05:54:27 no, I don't believe I'dtry to write it alone. 05:54:45 I do too much code alone now - it slows progress down to a crawl 05:55:12 ok. 05:56:08 Just curious -- I'd rather like to have such a thing, but don't feel like writing one myself either. 05:56:27 Not that there's anything too difficult about it, but it would be awfully tedious. 05:56:29 Yeah, it would mean an awful lot of reasearch into the elf formats 05:57:12 The ELF format is documented in the SysV ABI documents. It's not actually that complicated. 05:58:16 The tricky bit would be implementing the restrictions to be able to generate files which are OK with various operating systems. 05:58:32 Linux is pretty lax about checking, so you can get away with a lot. 05:58:37 yep 05:58:53 But BSD (FreeBSD at least) disallows some things that the spec EXPLICITLY says are OK. 05:59:02 well, I can't see it being any more tough than the dlopen-interface most places use (one way or another) 05:59:17 Yeah, like I said, it's mostly just tedious. 05:59:43 (I'm talking about relocatable files; .o) 05:59:47 Another Good Thing(tm) would be a ass-kickin' breakout of goddamned libc 05:59:52 executables are almost trivial 06:00:10 what do you mean by breakout? 06:00:19 sure, the .o output for relocatability would be the most important part. 06:00:45 breakout: as in, beating libc into a set of none-kitchen-sink libs 06:01:25 breaking it up so that you can only use the parts that you need? 06:01:56 s/only use/use only/ 06:02:03 well, more so we can rebuild sections easier and isolate groups. 06:02:31 have you looked at dietlibc much? I'd be curious what you think of that project. 06:02:55 I'd peeked at dietlibc and ulibc awhile back - not worked with either, though 06:03:01 (I think there are a couple of similar projects, but dietlibc seems the nicest) 06:34:07 --- join: sproingie (~chuck@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 06:41:56 --- quit: madwork (Connection reset by peer) 06:41:57 --- join: madwork_ (~madgarden@derby.metrics.com) joined #forth 07:15:39 * PoppaVic humpfs 07:20:53 tathi: I dunno asm well, but isn't there a way to tell the asm (hence build objects) Such that code and data are all in the same space? 07:21:48 hmm...somewhat depends on the system. 07:22:11 I don't know that there's a simple answer to that. 07:22:33 If you have static data, you can pretty much always put that in with the code. 07:22:40 well, I know of .data and .text, but almost invariably the default is to disallow code-running from .data' (and prolly the heap). 07:22:48 right. 07:23:31 doesn't rf execute from the heap? 07:23:40 Iffin' we can set up the core to properly torque the segments and perms, it'd be interesting. 07:23:46 and often .text is write protected. 07:23:49 sproingie: no idea 07:23:54 yes, tathi 07:24:01 or possibly rf's heap is allocated in code 07:24:10 but you can get around most of this stuff if you're willing to write a linker script. 07:24:10 hmm 07:24:21 hmm. 07:24:30 i don't see any segment markers in rf.asm, so it's probably part of code 07:24:33 and (under Linux, at least) you can use mprotect() to change the permissions on a block of memory. 07:24:57 I'm trying to NOT think about linkers and such at the mo.. Just focussing on a core-lib and then the tools 07:25:08 yes, I'd seen mprotect 07:25:23 oh wait there it is. section bss 07:25:28 ok, macosx has mprotect as well 07:25:47 umm.. bss isn't the heap, though 07:25:54 yah, i forget what bss is 07:26:00 blank space section 07:26:07 static vars? 07:26:08 I think it's static vars 07:26:22 linkers confuse and frighten this poor unfrozen caveman coder 07:26:46 I've come to a reasonable agreement with my linker :P 07:27:05 i've even read Linkers and Loaders 07:27:11 and i STILL don't really understand linkers 07:27:19 * tathi thinks all this stuff is more badly documented than actually difficult to use. 07:27:25 oh my yes 07:27:30 I sorta' do, but - as you suggest - it's quite convoluted. 07:27:39 gnu tools have some horrid documentation 07:27:57 half of them have a man page that tells you that man is old and busted and to use info instead 07:28:01 and then the info page doesnt exist 07:28:08 I imagine the linkers/loaders are really no tougher than cfa, pfa, lfa, nfa, etc - but the docs are written by illiterates. 07:28:08 I generally use a linker script that's about 7 lines long 07:28:09 or it's no better than a summary of options 07:28:23 I have a couple of more complicated ones, but I don't usually use those. 07:28:56 right, GNU screwed up years ago by deciding THEY did not need support man, but that info was golden - and even their info-files often make me want to hurl. 07:29:17 brb 07:29:23 tathi: I presume you mean written in a forthish 07:30:43 I think I am prolly hung up by seeing "C generated " versus "I am so damned 'leet ASM " 07:31:08 what written in a forthish? 07:31:24 your 'script' 07:31:33 no. 07:31:42 GNU ld takes a linker script to tell it how to put things together. 07:31:48 it has a huge long complicated one built in. 07:31:55 which you can see by running ld --verbose, I think. 07:32:08 ok, I've not bothered on this powerbook 07:32:30 but yeah, this is for programs written in asm 07:32:47 right.. interfacing with C would prolly be painful. 07:33:13 ld is pretty neat, even the dynamic loader can interpret a script 07:33:21 it's probably more tricky to mess with segment permissions from C-generated .o files. 07:33:29 tathi: yah 07:33:45 on my system, /usr/lib/libc.so is a two-line linker script 07:33:47 I don't think the linker will change permissions from what they are in the sections in the .o files. 07:33:49 Or, a simple sed/perl/regexish script could handle it 07:33:51 OUTPUT_FORMAT(elf64-x86-64) 07:33:51 GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a ) 07:34:28 But! It would be trivial to write a C program that would modify the section permissions on .o files. 07:34:31 hmm.. afaik, an object is damn near as much loader-info as it is code & data 07:34:42 so maybe you could do things that way. 07:34:44 i think the default permissions on the sections are set by the kernel 07:34:44 tathi: right 07:35:26 hmm.. I'd never noticed that that issue mattered to asm-programers 07:35:35 what issue? 07:35:39 oh, default - as in "you'd override" 07:35:43 ah. 07:36:09 sproingie: the kernel pretty much just loads things the way the ELF file says to. 07:36:31 you can run into conflicts, of course. 07:36:35 sure 07:36:42 "I can't load your program there; that's where the kernel is!" sort of thing 07:37:03 afaik, the kernel isn't terible smart: mostly considering files, sockets, streams, perms, users, etc 07:37:14 yah 07:37:31 kernel shouldnt be smart 07:37:38 I know 07:38:13 Which is why I think the mess is "doable" - but currently no idea how to do so, let alone if it would mung c 07:38:49 I'm fairly sure the .o would just id .sections and record offsets and shit to change. 07:38:58 well, if you have something specific you want to do in code, I might be able to help you out with it. 07:39:12 ok, let me gather more ducks for the shoot 07:39:13 you can have any section you want, really. ld is just used to a certain naming convention 07:39:31 yeah, but the C compiler only generates certain ones. 07:39:36 right, and C mandates a few - but I don't believe they CAN mandate how they are treated. 07:39:42 it's not too hard to tell it to generate different ones 07:39:58 tho...if you're going C->asm, then you could use a sed/perl/awk script to change those :) 07:39:59 it's like one asm statement 07:40:08 asm("section .funkytown"); 07:40:09 righto 07:40:10 something like that 07:40:35 PoppaVic: GNU as won't let you put different permissions on sections named .text .data .bss 07:40:48 ahhh 07:40:51 so to some extent, they CAN mandad how they are treated. 07:41:00 mandate 07:41:05 ok, I'd wondered about that 07:41:15 I'm not sure if that would interfere. 07:41:23 but you still have several options. 07:41:29 1) change the names before assembling 07:41:41 2) change the permissions on .o files after assembling 07:42:10 grr, had a 3rd idea, but I lost it 07:42:27 ah. 07:42:35 3) mprotect to change permissions once you're running. 07:42:40 Well, let's pause a mo.. here is where I see an issue: 1) let's assume you've loaded a forthish assembler: where the heck do you run the compiled code?; 2) generating and loading modules. 07:43:04 yeah, mprotect seems POSSIBLE, but it's gonna' take me a shitload of reading 07:43:06 rf runs everything out of bss apparently 07:43:09 ah. 07:43:15 mprotect is one system call. simple 07:43:43 hmm, I may need to bail very soon - thunder is driving in hard. 07:43:50 if you compile code into memory, you MUST mprotect it before you run it. 07:43:53 (if you want to be portable) 07:44:08 do you mprotect the ptr? the whole heap? 07:44:16 whichever pages your code lives in 07:44:30 hmm, which is a malloc issue 07:44:30 you protect one page at a time. mprotect is a convenience that hits a whole range 07:44:31 mprotect(const void *addr, size_t len, int prot); 07:44:39 ahhhh! 07:45:00 basically it advises the VM subsystem to give those addresses that protection when they're paged in, if they're not already 07:45:03 so, you'd use the ptr, the size the code invokes, and the new perms 07:45:10 if you're doing asm, you can do something more specific, but if you're running from C, you use mprotect. 07:45:13 yup. 07:45:18 see man mprotect 07:45:22 ahhhh-so, weedhoppa'! 07:45:32 OK, will consider that as well, thank-you. 07:46:07 in my little forth, I just have PPC asm code to flush the data cache and invalidate the instruction cache, for instance. 07:46:08 ok, I'm bailing - the sky is now black and trees are flailing... 07:46:11 if you're dynamically generating code, you might just want to use the asm to protect one page at a time 07:46:11 bbl 07:46:12 laters then 07:46:15 --- quit: PoppaVic ("Pulls the pin...") 07:46:33 no surge protectors, eh? 07:46:46 i suppose that won't help against a direct hit 07:47:10 it seems like it's mostly chance. 07:47:31 had a lightning bolt hit here a couple of weeks ago, about 30 feet from the house. 07:47:41 this box is right at that corner of the house too. 07:47:47 it was running at the time. 07:47:52 * sproingie lives in a pretty modern building with 15 floors above him. not worried about direct hits 07:47:56 no damage at all 07:48:12 long as it doesn't hit your power, shouldn't cause any damage 07:48:12 lost a couple ports on the ethernet switch though. 07:48:35 hmm 07:48:47 strange that the ports fried tho 07:49:29 well, the power line coming into the house is over on that side as well 07:49:35 so I assume we got at least some surge 08:23:39 --- join: PoppaVic (~pete@0-2pool236-192.nas22.chicago4.il.us.da.qwest.net) joined #forth 08:24:04 * Robert returns again. 08:24:14 back - I think 08:24:23 Hi - probably 08:24:33 Yay to Adobe's CS suite of software 08:24:40 Installing right now. 08:24:43 You know what I hate? 08:24:51 when programs refuse to install because you have to restart. 08:24:52 I mean, wtf 08:25:15 Eh, what system are you using? 08:25:36 http://linux.about.com/library/cmd/blcmdl2_mprotect.htm 08:26:09 Interestingly enough, mprotect ALMOST does what we want, but posix apparently restricts it to only mmap'd use 08:26:24 Or, without all the banners, man 2 mprotect ;) 08:26:38 heh. you beat me to it :) 08:27:11 PoppaVic: Portability in unforthish. :) 08:27:28 well, it seemed important, and the thunder is down 08:27:34 PoppaVic: Besides, you could always change that one syscall if you're moving the system. 08:28:01 XP, of course :P 08:28:05 What exactly are you going to use it for? 08:28:19 arke: Eeeew... But, what did I expect from a BASIC coder? :) 08:28:24 ahhh 08:28:28 http://www.quepublishing.com/articles/article.asp?p=23618&seqNum=10&rl=1 08:28:40 I was unaware mmap could allocate akin to malloc 08:30:02 yeah, mmap is the front end to a huge pile of similar functionality. 08:30:04 Robert: :) 08:30:28 well, damn tathi - that could be useful, if it were not so irksome. 08:31:06 sorry, what's irksome? 08:31:28 using mmap to allocate memory? 08:31:40 well, *I* have never suffered mmap, and the manpages are not much of a thrill. 08:33:07 What I planned was to allocate a working-buffer to compile into, and resize as required. But, this mmap/mprotect stuff might mung that up a bit. 08:33:20 void *fun_mmap(size_t len, int prot) { return mmap(NULL, len, prot, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0); } 08:33:36 :) 08:33:43 what the heck was that? 08:34:18 a C function wrapping mmap, and leaving out all the parameters that you don't care about for just allocating memory. 08:34:26 hmmmpf 08:34:41 it'd be EXEC as well, no? 08:34:57 oh, I see it - lemme digest a bit 08:35:51 that code would return a ptr to a mmap'd 'page-aligned' mess we'd havepermed, right? Still need to copy over the buffered code and whatnot? 08:36:19 well, you have to allocate the working buffer initially. 08:36:45 you could have another function that did a memcopy (or whatever the currently accepted name is) as well. 08:36:52 (for resizing, that is) 08:37:40 oh, wait, resizing is more complicated, isn't it? 08:38:04 because you might have things calling into your compiled code from outside your buffer? 08:38:10 yah 08:38:17 and moving it would screw up any relative offsets. 08:38:26 * sproingie suggests taking a look at JIT compilers and seeing how they do it 08:38:38 recall: 1) the forth : lists are trivial to store; 2) asm isn't trivial. 08:38:57 but you're going to have to deal with that anyway, because realloc doesn't guarantee that it's going to stay in the same place either. 08:39:03 right 08:39:23 absolute addressing would be a "bad thing" - within the realloced code 08:39:34 so resizing a memory block *could* be that trivial. 08:39:54 though you could try mmaping more pages consecutively if they're available. 08:39:56 yes, as long as it is all relative 08:39:59 and only move stuff if necessary. 08:40:03 right 08:41:25 It almost suggests to me that mmapping a file (which we generate tmp) and "window" within is also plausible. 08:41:45 sure. 08:42:25 having never used mmap in any way, shape or form - it seems a trifle daunting, but I am not at the point where I need to worry, either. 08:43:07 If mmapped files automagically "scroll" for the next 'read', it'd be near trivial. 08:44:31 hrm. I don't know about automagically scroll. 08:44:39 tathi: it almost sounds like a dynamic, file-based, buffered executable. 08:44:53 like... a few removes from a linker/loader 08:45:12 mmap would just map a file into memory somewhere. 08:45:23 right, with a window (buffer) size 08:45:52 well, you give it a fd, a file offset, and a length 08:46:02 hmm, I was just looking into that 08:46:03 if you want that to change, you have to change it yourself 08:46:34 IsForth's fload simply mmaps the entire file into memory. 08:46:42 ouch 08:46:53 why ouch? 08:47:06 unless you have a file that's bigger than your address space... 08:47:07 seeing the size of what some folks consider one file?? 08:47:48 I'm cogitating, I'm cogitating! ;-) How would dlopen/dlsym work this mess? 08:48:33 ref a label, look it up, save it and the fd and offset for access? 08:49:14 well, if you want a symbol, you have to load the whole .o file containing that symbol. 08:49:24 that's why libraries usually have a lot of little C files. 08:49:50 'cause then they get compiled to a lot of little .o files, and thus you have finer granularity when you use the library. 08:49:59 yeppers, and I agree 08:50:18 what's wrong with mmaping the file into memory? that's how open(2) works on most unixen actually 08:50:23 ok. I'm never sure how much stuff people already know :) 08:50:34 I'd wager as well that the mmap'd space is as likely to hit the swap-file as any other mess. 08:50:54 yah, it's all managed by the MMU anyway, so it's not necessarily loaded until you need it. 08:50:55 np, tathi better safe than talking parallel 08:51:05 (dunno how good the implementations are) 08:51:09 hmmmm. Interesting 08:51:30 that's why filesystems generally allocate in units of 4KB 08:51:40 that way it matches the memory system's page size for easy mmaping 08:51:42 The funny part is... These sorta' "small .o" are what I recall from the Long Ago of cp/m and C 08:52:04 PoppaVic: mmap'd files don't load the file contents into main memory, they do it lazily 08:52:07 generally, .c and .o had one func or a few 08:52:14 PoppaVic: it only reads it off the disk when you actually read the page 08:52:20 sproingie: even better, I suppose 08:52:46 it's how open works, at least in bsd anyway 08:52:54 sproingie: do we actually need to ask it to move ahead before a r/w or is the mmaped file going to automate it? 08:53:15 linux's VM is such a godawful MESS that i wouldn't be surprised if open(2) didn't actually use it 08:53:22 sproingie: :) 08:53:31 PoppaVic: i'm not sure what you mean by "move ahead" 08:53:47 I say again: the linux-weenies need to stop hacking for a year and recode clean. 08:53:52 * PoppaVic sighs 08:53:57 the linux weenies need to take an axe to the VM code 08:53:58 linux: love/hate 08:54:02 google for "kswapd" 08:54:09 noooo! 08:54:14 you'll find a litany of fear and loathing and hate that goes back to 1998 08:54:28 and continues to this day 08:54:51 sproingie: by "move ahead", hmm... like a normal FILE* - where the buffer is filled, flushed; or read, indexed and read, etc. 08:54:54 I leave them fighting and continue to use the, after all, working product. 08:55:05 it's probably the most frequent support question of experienced admins: "why is kswapd eating 99PU?" 08:55:42 PoppaVic: stream ops basically move a pointer in the mmap'd file memory, and the VM will swap it in on read 08:56:00 * sproingie hm, keyboard is eating keys, should be "99% CPU" 08:56:29 if it were up to me, i'd convert every one of our servers at work to freebsd 08:56:36 sproingie: so, you can really read thru the whole file that was mmaped; or you can keep writing to it and the FILE grows, right? rewind works on it as well as seek? 08:56:42 because we're running into the kswapd problem every time we do something as simple as untar a large file 08:57:07 PoppaVic: it uses mmap for existing files. i actually don't know how it deals with growing it 08:57:13 PoppaVic: mmaping the whole file is just like taking a normal FILE* and reading the whole thing into a huge buffer. 08:57:15 PoppaVic: and linux may not even do it that way 08:57:17 only more efficient 08:57:35 tathi: the latter I follow, just not sure what monster-size is apropos. 08:58:03 * sproingie had to fight to get them to use fedora instead of an RHEL (which they don't bother buying support for) because "it's not the corporate standard" 08:58:18 Hmm.. I wonder if APUE has a decent mmap & friends section. 08:58:31 so i doubt freebsd is even a starter 08:59:16 hell, there are still folks that declaim *nix for plan9 or things in their heads 08:59:49 I fully agree it'd be damn nice to unify the *nix universe for 2006 09:00:09 i interviewed at ncube years ago. they apparently use plan9 in their media distribution boxes 09:00:10 alas, too many illiterate haqueers 09:01:09 oh, and lets never forget the goddamned "ivory-tower commies" 09:01:37 like who 09:05:00 The committees that mandate stuff we generally had no prob with before the mandates 09:05:42 look at poor ol' C - gcc-modes, ansi, c79, c99, and several poxsix 09:06:14 Long live gets() 09:07:20 posix has nothing to do with the C standard 09:07:31 blame IEEE for posix 09:07:34 heh - no shit ;-) 09:08:02 C is - now - nearly as bad as umpty forthish dialects 09:08:11 i think the C and C++ committees do fine. hardly ivory tower at all 09:08:24 I think they love dicking semantics 09:08:58 no, they're stuck with certain semantics that they really cant change 09:09:05 I'd wish 09:09:43 I think they'd do better in stopping the incessant desire to run into C++ and focus on a libc standardization. 09:09:58 that's not C's job, that's SUS's 09:10:03 heh 09:10:36 C was what I was talking about, I know it irks folks that actually follow/find and READ the assorted std's docs 09:11:02 anyway Just an itch I can't scratch 09:11:05 i think SUS can safely assume that unix will always use a C interface 09:11:21 what you actually implement the OS in is your choice, but you'll have to provide a C interface 09:11:34 (which C? which libc? Does either matter?) 09:11:57 i don't think posix actually cares if you split it out into a hundred different libs 09:12:11 as long as your headers are the same. it's a source-level standard 09:13:20 SUS = Single Unix Specification? 09:13:24 yep 09:13:26 posix itself is off The manpages will reference diff stds 09:13:40 well, SUS is the latest one 09:13:43 tathi: alas, there is no SCS 09:14:23 sure there is 09:14:30 seeing that gcc is as prevalent as it is, they otter start there and just admit to it. 09:14:48 ISO sets the C standard 09:14:54 and - as mentioned - libc manpages and funcs are just not as portable as they should be. 09:15:07 ISO sets *A* "C-standard" 09:16:45 i don't see any others 09:16:52 ok. 09:32:41 ahhh.. 09:32:52 tathi: interesting - http://developer.apple.com/documentation/Darwin/Conceptual/64bitPorting/indications/chapter_2_section_3.html 09:33:54 exactly 09:34:10 --- quit: saon ("Lost terminal") 09:34:44 Soo, you almost have to write a vm imp wrapper around it, and use a variant of a struct-pointer 09:34:52 --- quit: sproingie (Read error: 104 (Connection reset by peer)) 09:35:28 --- nick: Raystm2 -> nanstm 09:35:45 BUT, it sounds like - once hooked to a fd - you can do seeks/reads/writes which are using the mmap "space" instead of several buffers 09:36:06 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 09:45:36 --- quit: PoppaVic (Read error: 60 (Operation timed out)) 09:48:36 --- quit: virl () 09:58:29 --- quit: saon ("leaving") 10:19:43 --- join: kunphuzil (~Jason@ip-69-10-97-161.cableaz.net) joined #forth 10:20:09 --- join: Herkamire (~jason@Herkamire.student.supporter.pdpc) joined #forth 10:20:09 --- mode: ChanServ set +o Herkamire 10:24:31 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 10:43:40 --- quit: cmeme (Remote closed the connection) 10:44:30 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 10:44:46 --- quit: cmeme (Remote closed the connection) 10:45:34 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 10:56:04 --- quit: kunphuzil (Read error: 110 (Connection timed out)) 11:07:27 --- join: [Forth] (~Forth@rrcs-24-242-160-169.sw.biz.rr.com) joined #forth 11:07:36 --- quit: [Forth] (Client Quit) 12:09:54 --- join: kunphuzi1 (~Jason@ip-69-10-97-161.cableaz.net) joined #forth 12:30:48 --- join: qFox (~C00K13S@92pc222.sshunet.nl) joined #forth 12:32:41 Hi foxie. 12:32:51 heya 12:33:55 what up 12:36:15 Code and reading and stuff and now you 13:01:04 --- quit: saon ("leaving") 13:03:41 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 13:14:38 Robert: Do you know of AA batteries? 13:15:13 Sorry, wrong channel. Though the right person ;) 13:20:59 --- join: PoppaVic (~pete@0-1pool72-42.nas24.chicago4.il.us.da.qwest.net) joined #forth 13:21:52 OK, storm appears over (bastard) 13:35:10 --- quit: saon ("leaving") 13:36:49 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 13:52:00 --- nick: kunphuzi1 -> kunphuzil 14:26:08 hi everyone 14:26:25 lo 14:27:12 Hi 14:30:58 * crc is doing the last-minute preparations for releasing retroforth 8.0 14:31:16 cool. 14:31:24 got the handbook done? 14:31:33 (or was that for 7.6?) 14:32:20 how can you go from 7.6 to 8.0 lol 14:32:24 thats cheating :P 14:33:51 http://www.retroforth.org/handbook.pdf 14:34:00 Completely redone for 8.0 14:34:13 very nice. 14:35:03 I440r: I had a 7.7 and 7.8, but they were never released publically 14:55:48 well since 8.0 is a rewrite of the core so surely it should start with a new major number eh? 14:56:22 Yes 14:56:33 Actually a few routines are still the same 14:56:51 But it's largely been rewritten to fix design flaws in 7.x 14:57:32 You could go from 7.6 to 98.7 if you wanted. 14:57:33 lol 14:58:47 :) I like "BASIC protects you from a lot of things, including the the danger of writing powerful programs." 14:58:58 lol 14:58:59 nice handbook 14:59:18 Just like Windows protects you from a lot of things... including actually using the computer. 15:00:44 thanks 15:05:31 crc: I noticed two things: page 62 is blank, and near the bottom of page 69 you have "allocate mores space" 15:06:03 I'll fix both in a few minutes 15:09:32 --- quit: qFox ("this quit is sponsored by somebody!") 15:24:51 hmm, far as I know safari won't crank up the pdf-viewer.. bastard 15:25:47 ok, the handbook problems are fixed 15:40:05 --- join: snoopy_16 (snoopy_161@dsl-084-058-131-188.arcor-ip.net) joined #forth 15:40:44 --- quit: Snoopy42 (Nick collision from services.) 15:40:57 --- nick: snoopy_16 -> Snoopy42 15:46:50 * crc is done. 8.0 is now online as the stable codebase :) 15:47:21 Yay. 15:47:29 Maybe I should celebrate by trying it. 15:47:44 heh 15:48:35 Maybe I should celebrate by porting it to PPC :P 15:48:38 crc: Are you the one responsible for the L4 version? 15:48:43 tathi: Have fun ;) 15:50:20 It works. 15:50:23 Hooray. 15:50:40 Robert: the L4 version is mostly from kc5tja 15:51:23 tathi: it isn't likely to be any harder to port than isForth was.... 15:51:55 Ah, OK. 15:52:17 crc: yah, but you have more changes to keep up with, I bet. :) 15:52:30 not at this point 15:52:44 I'm happy with the words in the core now :) 15:52:57 * crc can load additional things from the library if he needs them 15:52:58 yeah. 15:53:17 It's more a question of whether I want to do another port that probably no-one will use. 15:53:24 crc: How do you quit? 15:53:25 Seems like most PPC people just run OS X. 15:53:34 Robert: which version? 15:53:58 Native and L4, just turn off the computer 15:54:03 On the others, use "bye" 15:54:51 Linux 15:54:57 bye 15:54:57 Error: Word Not Found: bye 15:55:07 Ah, it worked now. 15:55:15 ? 15:55:15 I think I typed bye 15:55:21 ok 15:55:26 I call that a bug. But I guess it's not. ;( 15:55:48 I've never got a wnf on "bye" 15:56:31 Hm, it worked the next time. 15:56:33 Odd. 15:57:05 If you can get that to repeat, let me know how 15:57:30 I tried, but it didn't work. 15:57:50 hmm 15:57:58 * crc wonders why it happend 16:05:33 hmm...that fdef/mdef/vdef stuff is new in rf8, isn't it? 16:06:29 yes 16:07:57 'cause I think those work better with the GNU assembler's macro facilities than your old stuff. 16:08:46 ahh, cool 16:09:01 Sam and I cleaned up the macros for creating the dictionary a lot 16:10:07 I don't see why you're still using code and mcode macros though. 16:10:14 yeah, they're nice 16:10:59 they'll likely be dropped in 8.1 or 8.2 16:11:24 (during the 8.0 development, I rebuilt core.dict by grepping for those lines and doing a sed job on them) 16:11:58 ah, ok. 16:12:11 But that's not as important now that the core is done 16:12:13 man, looks like fasm is pretty nice. 16:12:23 * crc loves fasm 16:12:30 maybe I should port that :P 16:12:33 heh 16:12:42 a cross-assembler? 16:12:51 oh, is fasm written in assembler? 16:12:56 Yes 16:13:10 ah. nevermind then. 16:13:12 ok 16:13:26 * crc has been tempted to try adding support for arm and ppc instructions to fasm 16:13:33 nasm, on the other hand, is written in C and runs just fine on this box 16:13:34 But I haven't had the time 16:13:38 ahh 16:13:59 if I had a linker that would handle the .o files, I could totally build x86 binaries here. 16:26:21 hehe 16:26:41 * PoppaVic sends #2 off with all his drafting-supplies 16:28:41 what the heck is a "flat assembler"? 16:33:17 tathi: found this: http://www.cs.uleth.ca/~holzmann/C/system/mmap.html - look for lseek 16:34:08 Still unable to learn if the mmap'd space is a scroller.. I'll read APUE tonight and see what's what in there. 16:34:31 the mmap'd space doesn't change its relationship to the file unless you change it. 16:34:51 btw.. I believe, if I read the omens properly, that you would not be able to write AND exec the file. 16:35:35 at the same time, you mean? 16:35:48 tathi: if it doesn't, then I'd have to snag assembly/compile to it and move it mechanically. Yeah, simulataneously 16:36:41 btw.. there are also refs that indicate the mmap "space" is not considered part of the "heap" space. 16:37:05 which is why you think you can't execute from it? 16:37:12 PoppaVic: http://board.flatassembler.net/topic.php?t=3197 16:37:27 See the second section, third paragraph for how fasm got its name 16:38:13 loading 16:38:34 tathi: no, unrelated issues - just stuff I've gleaned thru the day 16:39:29 ok, well, on my system mmap *does* return addreses that are far away from your code and data. 16:39:36 (unless you explicitly give it an address, of course) 16:39:40 right 16:40:09 I sorta' chuckled at their mention of 'heap' - which the C-fanatics insist is not a term used anymore 16:41:20 yeah, I'm not sure what 'heap' means in this context. 16:41:58 well, 'heap' used to be the dynamic-mem space left. Nowadays, I still say heap (and piss em off ;-) when I am talking of malloc & friends 16:42:05 --- nick: nanstm -> Raystm2 16:43:29 gad.. looking at assembly makes my eyes bleed ;-) 16:47:24 I think heap is a great word 16:47:30 I would think that you should be able to mmap a file and then execute from that memory. 16:47:46 It would certainly make the program loader easier to write 16:47:57 sure would be 16:48:08 gives a good impression of the efficiency and sofistication of the use of space :) 16:48:48 well, they may have it restricted for some sorta' security aspects.. Dunno, will have to try some tests, I guess 16:49:16 you can't mmap something in executable memory? 16:49:44 you've gotta be able to do that. 16:49:46 you should be able to 16:49:48 don't know yet, never used it in my life, and I've been googlin' all day 16:49:58 man mmap says you can pass PROT_EXEC 16:50:02 yep 16:50:26 says those flags you pass to mmap must not conflict with the file permissions 16:50:30 I'm also considering using a properly openef fd, and THAT mmap'd - but this twist might become an issue 16:50:38 eg if you pass PROT_EXEC the file must be chmod +x 16:50:41 "opened" 16:51:01 sure, but is the now +x file also legal as r/w? 16:51:26 if you have r/w on the file and passed PROT_READ/PROT_WRITE to mmap, then sure. 16:51:58 well, than THAT will be groovily-marvy. 16:52:00 PoppaVic: huh? set whatever permissions on the file that you want 16:52:16 if you want read, write and exec then set it with chmod 16:52:28 hi Herkamire hi PoppaVic :) 16:52:34 Herkamire: my hesitation stems from tests a few years back where it was impossible to write to the executable I was running. 16:52:42 ok, if the mmap "space" isn't considered part of the "heap" space, what does that mean, and why would we care? 16:52:42 lo, ray 16:52:48 hi tathi :) 16:52:52 yah, but you probably didn't know about mprotect then :) 16:52:55 hi Ray 16:53:07 assuredly, tathi 16:53:38 PoppaVic: well, yeah, linux loader (and most I would assume) puts your C code into a execute-only memory section 16:53:43 SO, I guess I peruse APUE 12.9 tonight and do some tinkering tomorrow 16:53:50 to help prevent viruses and such 16:53:52 cool 16:53:54 right, herk 16:54:35 APUE? 16:54:53 and that's fine.. The C libs and objects can work fine that way; colon-def type stuff WOULD work fine from heap, and I look into this fd/mmap/mprotect stuff for asm stuff 16:55:03 sorry I might have missed the begining of the conversation... have you tried a file with propper permissions, open() mmap(rwx) ? 16:55:14 no, that was just speculation 16:55:17 Stevens Advanced Programming in the Unix Environment 16:56:02 I don't see why we're sitting here speculating. just read the manpage and try it 16:56:07 Herkamire: nono.. Never tried mmap before, but if it works as tathi and you suggest, it opens new vistas for an interpretive-compiler ;-) 16:56:32 yah, I was going to, but my forth doesn't have mmap and I didn't feel like implementing it just now. 16:56:54 sure, and I live in C - so, that's part of the battle right there 16:57:11 hmm, I could probably do it in IsForth 16:58:47 in herkforth I use mmap to get access to the frame buffer 16:59:18 oh wait. I don't have to compile code there, I can just put code in the file. 16:59:21 I'm guessing, from long experience and some whacky tests, our "heap" nowadays is just a nicely-managed mmap-mess anyway, so.. Colon-defs and such would live fine there. THe asm-stuff could then use a mmap space, and any sort of "compiled/relocatable DLL" would then be potentially dlopen/dlsym 16:59:39 Herkamire: video, I presume? 17:01:35 the frame buffer. the memory holding the pixel values for the screen 17:01:41 yup 17:01:55 well, when I hear "frame" I usually think "stack frame" ;-) 17:04:52 good for you 17:05:00 I think of a rectangle made out of wood 17:05:13 I think of jail time :) 17:05:41 I was video buffed, just doesn't sound Conservitive middle class. 17:06:00 ( prob'ly cuz i'm a poor Liberal) 17:10:22 well, if ya'll are gonna leave me hanging here, I think I'll give ChuckBot THE Cursor beepers tonight. If I can figure that out. 17:14:40 sheesh. I'm such an idiot sometimes. 17:14:50 arnt we all, what did you do? 17:15:02 an ANONYMOUS mapping means ignore the file descriptor, rather than mapping from the file. 17:15:11 heh 17:15:15 and here I am wondering why I'm not seeing my file's contents. 17:15:21 :) 17:15:22 hehe 17:15:36 over my head, but that's why I hang here. 17:15:47 it's so nice when the "ah-hah!" hits you in the forehead ;-) 17:19:05 I wish I could remember where I saw dynamic allocation in colorforth. hhmmmm /me thinks rj_cf's multi-tasker. 17:19:11 Raystm2: I was trying to memory map a file. But you can pass mmap() a flag which tells it to only allocate memory, and not map in the file's contents. 17:19:41 I see, thanks for consideration :) 17:20:18 you only get to be a newbie once, so enjoy it :P 17:21:26 thank you, and I am enjoying it, to no end. 17:21:59 Good. Just let me know if I can help out, any time. :) 17:22:38 --- join: PoppaVic_ (~pete@0-3pool157-49.nas22.chicago4.il.us.da.qwest.net) joined #forth 17:22:47 in fact, thats why i've specialized in colorforth with a minor in retro8, cuz i'd rather be an expert in a niche then a flounder in the deap `c'. 17:22:49 aand...isforth is direct threaded, not native, so I can't just do >r 17:22:55 :) 17:23:19 --- quit: PoppaVic (Nick collision from services.) 17:23:21 awe I hate when that happens, 17:23:22 --- nick: PoppaVic_ -> PoppaVic 17:23:31 It happens to me in windows colorforth. 17:23:37 nasty isp AND storms 17:23:52 PoppaVic: local please? 17:24:00 huh? Michigan 17:24:27 wish we could get a break from this heat, ( forth wort texas ) 17:24:48 well, the storm took us down to 72 - for an hour 17:24:59 nice 17:25:30 I'm pretty sick of the heat too (western Mass) 17:25:38 yeah 17:25:49 thank Bog we put in central-air last summer 17:26:08 Herkamire have I told you i am from Webster? 17:26:27 Mass heat has all that nasty Humidity. 17:26:50 ok, test successful. 17:27:01 yeah tathi go go go !! 17:27:03 PoppaVic: no doubt about it, you can execute from an mmapped file. 17:27:16 yeah tathi gogogo again :) 17:27:20 and...it only took me about 3 times as long as it should have :) 17:27:25 hehehe 17:27:26 excellent - growth posible as well? (I presume so) 17:28:11 PoppaVic: whatcha doin? 17:28:21 PoppaVic: why do you want to execute stuff in files? 17:28:39 Herkamire: poking around the limites to a TIL module for use in/with C 17:29:15 Tech Info Library? 17:29:25 Threaded Interpreted Language 17:29:27 tathi and (I forget) and madwork have tossed out some ideas that sounds interesting 17:29:32 as tathi said 17:29:56 uh huh 17:30:03 growing would be a nuisance to do portably. 17:30:13 and the connection between that and executing stuff in files? 17:30:15 for the file? 17:30:28 yah. 17:30:33 Herkamire: I was pondering asm-compiling dictionary-entries 17:31:00 tathi: I thought the assorted docs suggested you just lseek to a new/empty point? 17:31:01 ok. why? 17:31:22 yeah, the manpage (at least the Linux one) doesn't though. 17:31:34 so who knows 17:32:00 you know, you can just allocate memory, read the file into it 17:32:04 Herkamire: because everything currently "grows" in the heap (.data) and can't "execute" - but asm would certainly need to do so. 17:32:07 and then if you want to change the file, open the file and write to it 17:32:40 also, btw, I don't reccomend mixing asm and C unless you have to 17:32:51 "The effect of changing the size of the underlying file of a mapping on the pages that correspond to added or removed regions of the file is unspecified." 17:32:59 well, I certainly don't use asm, I assure you. 17:33:10 tathi: ouchie 17:33:17 s'ok. 17:33:31 I wouldn't expect it to give you more memory if you change the file length 17:33:45 no, you'd have to mmap a new portion 17:36:06 sounds like mmap isn't so good if you want to change the size of a file. 17:36:23 yeah.. Alas.. well, it was a great idea ;-) 17:37:20 fine for loading shared libs and such though. 17:37:35 in fact, the spec puts some restrictions on ELF files for that very reason 17:37:38 Yep, I'll have to prod it and read up. 17:40:01 well, I'm out of here. nice talking to everybody :) 17:40:07 stay well 17:40:16 --- quit: tathi ("foo!") 17:53:49 --- quit: saon ("leaving") 17:56:36 laters, storm is back... 17:56:38 --- quit: PoppaVic ("Pulls the pin...") 18:40:01 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 19:12:48 --- quit: saon (Remote closed the connection) 19:14:40 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 20:09:41 --- join: asymptote (~dmesg@pool-141-156-211-218.res.east.verizon.net) joined #forth 20:12:04 hello 20:12:11 hi 20:12:49 got any cool forth projects? 20:13:09 working on a batch forth compiler 20:13:26 4c. on sourceforge I think... 20:13:30 "batch" meaning not interactive? 20:13:46 right, meaning compiles to standalone executable the environment can run 20:14:02 now, you could compile REP and have a forth, if you wanted 20:14:16 what's REP? 20:14:38 READ-EVAL-PRINT 20:14:42 ahh 20:14:46 lisp terminology 20:14:46 what threading model do you use? 20:14:48 still stuck in my head 20:14:52 stc 20:15:01 yeah, I've read about read-eval-print 20:15:19 each dictionary entry is a linking label 20:15:28 and every "next" is a "call" 20:15:38 not terribly useful but it's an idea I hadn't seen explored much 20:15:51 cool 20:16:04 what architecture/os does the executable run on 20:16:18 The base is OpenBSD/SPARC because that's what I program on 20:16:25 but it's ported to POSIX/86 20:16:29 and I'm also working on a ppc 20:16:39 none of them work, but SPARC and x86 don't work fairly equally 20:16:40 cool 20:16:46 hehe 20:17:10 does/will/can the executable have the capability to create another executable? 20:17:35 Sure, the compiler can compile itself into the executable 20:17:37 that part works 20:17:46 cool 20:17:47 I like that 20:17:57 all the platform's syscalls are underscore-prefixed words in the default dictionary 20:18:06 so, like, _read and _open 20:18:16 right 20:18:16 and you just set up the stack like the OS expects 20:18:33 It doesn't like linking with libc yet, though :( 20:18:46 heh 20:18:51 linking is wacked 20:19:52 for my project (herkforth) I have a binary that contains a small kernel, and sources, it compiles the rest of it's self when you start it up, and opens the editor 20:20:10 sounds cool 20:20:11 my little computer generated universe 20:20:15 it's for ppc 20:20:52 what OS? 20:21:03 runs under linux and (almost as well) on macos and (with the help of qemu) other architectures running linux 20:21:11 cool 20:21:18 I'd love to write an OS on the OF 20:21:35 it's a bit better on x86 linux + qemu than in macos currently I think. 20:21:46 yeah, it'll run under OF too 20:21:59 but the code to save is dicey 20:23:45 unfortunately apple is dropping ppc 20:24:28 yeah but Microsoft is picking it back up 20:24:30 irony of ironies 20:24:52 whaat? 20:25:23 microsoft is trying to get one of their OSes to run on ppc again? 20:25:46 The next X-box is ppc 20:26:08 and there will always be Darwin and BeOS 20:26:31 I'm not worried about software 20:26:33 what is apple going to use instead of ppc 20:26:41 x86 20:26:46 I need someone else to make good hardware 20:26:58 saon: are you sure? that doesn't make any sense 20:27:05 i'm sure 20:27:09 apple is a hardware company .. 20:27:16 eph when Intel gets off its ass and moves to 64 bit Apple's porting to them 20:27:18 it was in tech news for quite some time 20:27:22 it was all in the news a couple of weeks ago 20:27:29 eph: apple announced a couple weeks at the adc or whatever that they are switching to intell chips 20:27:37 I think Apple should go to SPARC 20:27:40 not amd chips? 20:27:42 but that's just because I love SPARC 20:28:45 eph, i was surprised too considering apple doesn't move tons of boxes, and amd could definitely keep up with production for apple 20:29:11 and amd's are generally cheaper for the same performance 20:29:16 I'm not dead-set on ppc 20:29:25 but I am against x86 20:29:52 ppc and x86 are both "semi-risc" in a really annoying way 20:29:52 I'm looking into what I want for hardware next 20:29:54 * saon wishes there were some more stack-based processors and a real forthOS or some other native stack language to run on them 20:30:09 saon: here here! 20:30:11 do everything in Forth, Hope, and PostScript, saon? 20:30:15 Actually I would love that 20:30:19 haven't heard of Hope 20:30:25 Kernel in Forth, userland in Hope, and graphics in PostScript 20:30:29 Hope is a functional version of Forth 20:30:29 is it a relative of joy? 20:30:35 sorry, I meant Joy 20:30:37 interesting 20:30:38 I get them mixed up 20:30:38 lol 20:30:39 heh 20:30:42 sounds good 20:30:42 hehe 20:30:54 ps+joy+forth would be lovely actually 20:30:55 Hope is a functional Pascal I think, like Dylan 20:30:55 i agree about the graphics part too 20:31:02 Well hell, let's build it 20:31:14 need a good hardware setup though 20:31:19 become the next amiga =p 20:31:35 asymptote: i think retroforth is a good choice for the kernel 20:31:39 yeah 20:31:46 ok, what hardware do we use? 20:31:51 I've got a really nice forth system 20:31:54 all the discarded PPCs from apple's shift? 20:31:57 patriot scientific forth chips ;) 20:32:02 I'm looking for some cool hardware to port it to that will be around for a while 20:32:06 hrmm, what chips are out there? 20:32:15 novix, f21, ? 20:32:16 I vote for Sparc 20:32:20 i haven't kept up with it 20:32:39 is sparc stack-oriented or risc? 20:32:41 eph: yes, the IGNITE from patriot scientific looks very cool. I hope someone makes a cool computer with it that I can use 20:32:44 risc 20:32:52 well whats the goal of this OS? 20:32:54 very very risc 20:32:56 is it a desktop OS? 20:33:13 userfriendly :) 20:33:15 desktop os 20:33:25 I was thinking embedded /realtime 20:33:27 quite humane 20:33:30 for like phones and stuff 20:33:49 like controllers.. 20:33:54 what Java was supposed to be 20:33:58 hrmm, how will we cope with things that stack-processors are bad at though? 20:34:00 asymptote: can you do both a stack push in one instruction? and a stack pop in one instruction? 20:34:01 well ok what we want is a disruptive technolgoy 20:34:11 Herkamire, on a sparc, do you mean? 20:34:19 * saon has thought about having dual-proc systems that have both cisc and stack processors 20:34:29 something that starts off in some shitty little niche that no one wants to touch and then eventually surpasses the market 20:35:08 if its a commercial os then its probably best to go with forth chips 20:35:21 whatever that is available then eventually get more produced 20:35:39 or not 20:35:40 heh 20:35:49 i dunno what good chips are out there 20:35:55 asymptote: yeah, on sparc 20:36:12 asymptote: one complaint I have with PPC is that one has to be two instructions 20:37:25 saon: what are stack cpus bad at? 20:37:53 the IGNITE has hardware stacks and mostly seems stack-based, but it has a bunch of registers too 20:38:07 http://patriotscientific.com/benchmarks/index.html 20:38:25 looks like its a 9X chip 20:38:43 Herkamire sparc has a metric $hitload of stack instructions 20:38:55 figuring out how to use a 9X chip would go a long ways towards figuring out 25X / 50X 20:38:57 pop, push, pick 2, pick 3, etc. 20:39:20 anyways 20:40:06 forgetting about the architecture for a second.. doing an os for controller/embedded/realtime sounds more of a commercial endeavor.. 20:40:27 i think for a non-profit development of a forth os its gotta follow the linux model more or less.. 20:41:14 yeah 20:41:20 well it could go either way 20:41:26 I could fork an embedded version and you could do a desktop version 20:41:37 yeah 20:41:46 okay, so, we need a forth core, and then we need an assload of people to start writing drivers and ports 20:41:51 it's gotta have a free software or at least public domain OS or I'm not interested 20:42:14 --- quit: asymptote ("Free the mallocs!") 20:57:40 and so the forth OS is made! 20:58:09 Herkamire: retroforth is a start :) 20:58:23 retroforth is cool 20:58:29 as I said I'm not concerned with the software 20:58:32 arke: doing a multics-like forth os is an interesting idea 20:58:37 I've already written an OS 20:58:41 I'm concerned about hardware 20:58:45 why? 20:59:16 we're using extremely useless oses 20:59:24 inhumane.. 20:59:30 I want simple cheap available hardware that will likely be available for a long time 20:59:55 yep, I'm writing an OS to make computers easier to use and easier to program 21:00:15 eph: yup. Reading my blog, I assume? :) 21:00:18 I already find herkforth way easier/faster to program in than anything else I've used 21:01:09 arke: i skimmed it cuz i was gonna post the comment.. didn't know you hadn't posted the article 21:01:30 now i'll let someone else post the comment 21:01:53 Herkamire: do you want your os to be used by others? 21:02:09 eph: yes 21:02:17 eph: including non-technical people 21:04:21 so will you be doing something similar to displaypdf or postscript for the graphics? 21:04:38 my original plan is to make a nice OS for Macs, and eventually, probably switch to something smaller, cheaper, and simpler 21:04:48 hmm 21:04:53 I don't know 21:05:06 haven't worked out the graphics stuff yet, and I don't really know how those work 21:05:17 we're going to get away from the desktop computer hardware as we know it 21:05:47 I want to try a system where you keep a model of what's on the screen, and change that, and the display get's updated 21:05:52 think it's called MVC 21:05:54 hell probably in 20 years from now there's probably not gonna be any chips 21:06:07 lol 21:06:47 I'm now mostly just writing to the terminal 21:07:06 next I'll write to the frame buffer (currently I only do this to display a mandelbrot) 21:07:24 then I hope to get hardware blits 21:08:33 I'm not sure past that 21:08:45 I'll experiment 21:08:49 I'll experience 21:09:12 I'll try to find the best thing to solve problems that I actually have 21:11:22 I also want to experiment with a zooming interface 21:11:23 seriously tho what the hell do you mean by hardware 21:11:32 whats the vision 21:11:45 besides the cheap, simply, small 21:11:52 simple* 21:12:06 how small? 21:12:08 how cheap? 21:12:10 how simple/ 21:12:10 oh, I haven't decided exactly 21:12:24 do you know what disruptive technology is? 21:12:41 I have a specific fantacy about what I want a handheld computer to be like 21:13:02 "something that starts off in some shitty little niche that no one wants to touch and then eventually surpasses the market" ? 21:13:06 http://en.wikipedia.org/wiki/Disruptive_technology 21:13:19 i read the book, both of em 21:13:28 second one kinda sucked tho 21:13:34 heh 21:14:00 "innovator's dilemma" 21:14:07 second one was "innovator's solution" 21:15:41 anyways its interesting how technology can appear under the radar in a market that the big boys don't want.. and the rate of improvement ends up being faster because it moves into the upper markets and isn't as saturated 21:15:53 and then becomes better technology than the big boys have 21:16:23 for a desktop, I want a good amount of storage, snappy detailed (preferably color) graphics, and good networking 21:16:49 interesting to see digital cameras on that list 21:16:58 they were so crappy and expensive for so long 21:17:07 I don't understand why people bought them in the early stages 21:17:34 now they're still expensive, but it least you can get good ones 21:18:22 Windows, Linux, Mac all started out as niches 21:18:36 hmm 21:18:39 those aren't good examples 21:18:45 but they are. 21:18:45 harddrives are a good example 21:18:50 arke: not talking to you 21:19:05 harddrives for example used to be these huge monstrosities 21:19:11 Windows and GEM were just tools to make it easier to interface with DOS. 21:19:17 then a firm would come in with a smaller more portable one 21:19:26 wasn't as cost effective but met some need 21:19:27 then, they added the ability to have programs written with it. 21:19:30 so ppl started buying that 21:19:45 then the firms selling the bigger harddrives died out 21:19:51 happened several times in fact 21:19:55 Now windows also took over the operating system and program interface. 21:20:09 as ppl moved to smaller and smallaer harddrives 21:20:09 Linux was just a little OS toy to play with unix stuff 21:20:27 then, it went on to be a direct unix competitor and also a desktop os (well, almost) 21:20:43 The mac started out as a personal productivity appliance 21:20:55 well, i'll sto 21:20:57 you get my point 21:21:35 I have all sorts of crazy ideas about what I'd like to see my system do 21:21:59 arke: did you not see me say that my "those aren't good examples" wasn't addressed to you?? 21:22:19 for now I'm focusing on making a system that is productive to program in, and starting to think about setting it up so it can be worked on by many people at once 21:23:15 I would really like to do some peer-to-peer stuff 21:24:31 I think first I'll do a fun distributed computing thing, where the computers render bits of the mandelbrot set for eachother 21:24:42 how about small portable wireless computers that automatically do p2p with every other computer in range, building a huge wireless internet that is also p2p 21:24:54 :) 21:25:03 sounds great :) 21:25:17 well that would be a disruptive technology to an extent 21:26:13 gotta be something that can start off simply 21:26:19 heh :) 21:26:32 and naturally grows into that 21:26:33 the hardware for this is available _now_ 21:26:47 the only thing i can think of is phones 21:26:57 palm pilots with wifi 21:27:12 ok well anything with wifi 21:27:19 so the goal is to build a wireless internet thru wifi 21:27:27 which means new protocols probably.. 21:27:30 wifi can do p2p through the air. it doesn't require a hub 21:27:45 right 21:27:47 ok 21:27:53 so a p2p wifi program 21:28:00 called "ad hoc mode" 21:28:45 p2w for p2p wifi 21:28:53 er p2wifi 21:29:08 I don't know that the p2p stuff has to be specific to or know about wifi 21:29:35 afaik wifi is just a sort of wireless ethernet 21:30:05 I was worried a bit ago when thinking about building a wireless network that it would only work if other people were near with the same devices 21:30:23 imagine a wireless p2p internet 21:30:30 but with wifi we can use the internet to hook people together until they are everywhere 21:30:41 I'm imagining 21:30:43 no forget about the current internet right now 21:30:46 bypass that completely 21:30:47 it would take forever to get something accross the country 21:30:54 have a completely p2p setup 21:31:02 completely decentralized 21:31:22 you send your packets thru the computers near you 21:31:25 and they pass it on 21:31:26 etc 21:31:30 have you seen freenet? 21:31:33 probably have distance tags on the packets 21:31:39 yes i have 21:31:46 wireless is much better for this thing tho 21:31:53 wireless is naturally decentralized 21:31:59 so i think it should be taken advantage of 21:32:31 our wireless technology is getting pretty good 21:33:00 imagine the entire world doing wireless decentralized internet 21:33:42 cool stuff 21:33:46 it'd be horrendously slow without large 'cache centers' that held all the files though 21:34:02 probably do TOR-like stuff 21:34:08 i mean, trying to get files from someone across the state via wireless p2p would be horrendous 21:34:16 and add directional/distance tags to the packets 21:34:31 saon: I wasn't imagining anything-centers 21:34:31 so some computers that get the packets accidentally will drop them 21:34:42 Herkamire: i know 21:34:56 if someone wants to set up the cache centers then they can 21:34:57 i dunno. it's a cool idea though 21:35:01 anyways the internet would still exist 21:35:07 this would grow up alongside 21:35:12 and ppl would come up with unique things 21:35:37 now the question is how to make all this happen? probably a p2p wifi program 21:35:40 perhaps with the takeoff of more personal media, videoblogs and stuff, this kind of idea can take off 21:35:45 anyways this is just brainstorming 21:36:02 i have absolutely no interest in working on this heh 21:36:09 :) 21:36:10 same for the forth OS 21:36:12 forget about it 21:36:16 i've dropped that off my list 21:36:28 I'm going to start with usability :) 21:36:37 i'm dropping pretty much all my programming projects off my list 21:36:50 mmm... that's not the right word. Useful, productive, pleasant environment. 21:37:02 i've decided i want to focus on evolutionary programming if i'm gonna do anything 21:37:08 i think that if there were good wireless p2p, processor sharing could really take off 21:37:24 wouldn't need powerful processors, just a lot of idlers nearby 21:37:31 yeah, I think I'm going to build cpu sharing into my system 21:37:39 yeah 21:37:48 not just cpu sharing 21:37:49 even/especially just in the same house 21:37:53 device sharing 21:37:56 http://www.dotquote.org ... RetroForth released, read teh news! 21:37:57 of any device in the comp 21:38:22 * saon ponders the security implications of all of this 21:38:32 even just among my close friends. I mean, I've got my computer, and the other CPU on my computer, and my girlfriend's computer on my lan, then my cousin over the internet 21:38:41 * saon puts it off to not kill off ideas 21:38:54 just with those 4 cpus, mandelbrot stuff would be quite impressive 21:38:56 Herkamire: imagine this, you make your telephone modem available to ppl on the internet, someone connects to your computer and makes a phone call local to your area to save long distance money or to connect to a BBS or whatever 21:39:08 eph: interesting idea 21:39:30 * saon goes to the design table 21:39:35 destroy the telephone industry in one fell swoop with the ability to share telephone modems online 21:39:39 eh, don't like that idea 21:39:46 and I don't have a modem of phone line 21:40:05 you can make calls over the internet anyway 21:40:07 Herkamire: well its about sharing the computer resources 21:40:19 its an example idea 21:40:21 I don't consider phone lines to be computer resources 21:40:25 the idea was from a long time ago 21:40:35 fidonet? 21:40:40 if you have a telephone modem in your computer then its a resource 21:40:43 no 21:40:51 true 21:40:55 I just don't 21:41:15 what so you're completely against sharing any resources on the internet? 21:42:02 of course there's always the micropayment system 21:42:02 no no no, sorry 21:42:04 etc etc etc 21:42:18 I just don't have a modem or phone line, or any plans to get either 21:43:13 i think you've misunderstood me completely 21:43:21 quite possibly 21:43:28 I feel kinda confused 21:44:35 I like the idea of having my computer help people out when it doesn't have anything to do for me atm 21:44:54 i was talking about an OS feature for myst os or whatever 21:44:56 but a phone line is something I have to pay for 21:45:27 an os that allows the user to share resources 21:45:32 oh shure 21:45:43 I plan to build in computing things for people 21:45:57 the distributed computing thing 21:46:01 yaeh 21:46:16 I was thinking of creating a simple virtual machine 21:46:31 yeah if you build in that then you might as well generalize it a bit more so that its not just sharing the cpu/memory 21:47:07 so that it can share stuff like the phone modem for example 21:47:13 so I want to look at rediculously zoomed in mandelbrot imagery that takes forever to calculate, so my computer contacts yours and says "got time to calculato for me?" 21:47:29 yours says "sure", mine says, ok, run this "aonetuhasneuhu984uh938ph'983gr'p9,8p'9ch'r,8.g" 21:47:29 anyways i don't think you can phone anywhere in the world thru the internet for free 21:47:52 and you certainly can't dial into a BBS thru the internet ;P 21:47:59 yours runs that in the VM emulator, with no access to anything outside it's memory space, just the data/code I sent 21:48:32 and when that code I sent calls the exit instruction, it leaves a structure in it's memory space for the data (answer) that it would like sent back to me 21:49:07 sounds good 21:49:30 no, but I believe you can phone anywhere within the US for free through the internet 21:49:35 could something similar be done for the phone modem? (thats the only example i can think of heh) 21:49:44 yes i know, you can phone anywhere within the US for free thru the internet 21:49:56 sure, probably. 21:50:04 but who would want to phone americans? 21:50:04 oh, you could make your modem available while you sleep 21:50:06 jk :P 21:50:14 yeah exactly 21:50:20 that would be cool 21:50:38 I couldn't figure out why you'd pay for a phone, then allow strangers to tie it up for free so you couldn't use it 21:50:52 heh 21:50:53 but you could just set it up so it could be used at times when you didn't want it to work (such as when you sleep) 21:51:28 plus quite a few ppl have two phone lines 21:51:43 well more so back in the modem days 21:52:00 well.. there's only 186 million broadband users worldwide right now 21:52:16 yeah, it'll grow 21:52:24 and wifi is popping up everywhere 21:52:38 just about all the cafe's and such downtown have it 21:52:44 quite possibly all 21:53:15 a friend of mine is moving down the street from me tonight, and said his laptop could smell 13 wifi hubs from there 21:53:19 anyways i thought that, hey, if the OS can allow the user to make his modem available to others thru the internet, then what else could he make available? 21:53:28 because some sort of device sharing framework would exist 21:53:39 so he'd be able to share whatever he wanted.. 21:53:40 I'm not sure about that stuff 21:53:44 yeah 21:54:01 but I'm not sure many people would sit down and make an effort to make it so other people can use their stuff 21:54:10 an effort? 21:54:27 yeah, like scheduling the phone stuff 21:54:50 as i said its an example 21:54:57 yeah, sorry for picking at it 21:55:04 its not as relevant these days i guess 21:55:05 I really like sharing cpu because it's free 21:55:14 yeah 21:55:24 and maybe I could do something cool with backups 21:55:52 seems like nowadays people aughta be able to just back up their important stuff onto a couple friends' computers 21:55:56 have you heard about the miropayment system for sharing your comp resources? 21:56:05 no 21:56:16 but I've thought about that sorta stuff 21:56:34 having the computers on the network have a sort of reputation 21:56:43 basically ppl envisioned that with a computer capable of sharing its resources when the users don't need them would basically sell the resources on the marketplace 21:56:54 not just cpu but also hdd space 21:56:59 I think bittorrent has a bit of that: iirc it favors sending to nodes that are sending more 21:57:04 so for example ppl could backup their stuff thru the internet 21:57:13 multiple backups across ppls computers 21:57:19 for a few cents 21:57:22 yeha 21:57:26 sounds neat 21:57:33 but I don't like the money being involved 21:57:59 --- quit: saon ("Lost terminal") 21:57:59 I'd rather just you/your-computer got a good reputation 21:58:17 so when you request things of other computers they are more likely to do it for you 21:59:01 yeah sounds good 21:59:25 dunno, I just feel there needs to be some incentive for people to contribute and not just leech 21:59:27 guess you could do the same model as torrents 21:59:43 eg on freenet it's set up so if you have a big store things work better 21:59:51 you can't leach with torrents so much 22:00:01 because the trackers are centralized 22:00:01 and if you let it use lots of bandwidth and leave it up a lot then it works better 22:00:09 and they remember how much you uploaded vs downloaded 22:00:15 right 22:00:30 and anyone can setup their own tracker and have torrents on it 22:00:37 and setup their torrent site etc 22:00:47 so same model for the resource sharing thing can be done 22:01:03 dunno if it has to be the same 22:01:12 I don't really care about that stuff, I just care that it works well in the end 22:01:26 there might not need to be any incentive 22:01:30 people are nice... 22:01:48 some are 22:01:50 most of them anyway 22:04:26 I like the idea of networks of computers that sorta know eachother 22:08:17 how passionate are you about your OS 22:08:21 how strong is your vision? 22:08:30 do you smell it and taste it? 22:08:51 do you see in your mind's eye how it'd be used by non-technical users? 22:11:26 strong strong strong 22:11:34 I've been working on it a lot for 2 years 22:11:43 I will use it as my main OS 22:12:32 (I'm on the phone atm, so I'll probably be quite laggy) 22:14:23 well thats good 22:15:48 bbl 22:22:33 --- join: saon (~saon@c-24-129-91-106.hsd1.fl.comcast.net) joined #forth 23:02:08 anybody ever used adobe illustrator? 23:08:35 everybody go to http://www.hunde.de/german/hundeecke/hund_des_monats.html and vote for krümel 23:59:59 --- log: ended forth/05.06.30