IRC log started Mon Sep 20 00:00:01 1999 [msg(TUNES)] permlog 1999.0920 -:- fare [fare@quatramaran.ens.fr] has joined #Tunes -:- Zhivago [brian@th.merddin.com.au] has joined #tunes hmm, bfe looks interesting -:- SignOff Zhivago: #TUNES (Leaving) 04:30am -:- Zhivago [brian@th.merddin.com.au] has joined #tunes hmm, that bfe link was broken when I checked a little while ago 05:10am -:- SignOff Zhivago: #TUNES (Leaving) -:- fare is now known as Fare -:- AlonzoTG [Alonzo@216-164-139-200.s454.tnt5.lnhva.md.dialup.rcn.com] has joined #tunes -:- Zhivago [brian@th.merddin.com.au] has joined #tunes * AlonzoTG/#tunes ignites a flamethrower and eyes Zhivago * AlonzoTG/#tunes pitties *.au pities is the correct spelling 10:00am u can't surf for p0rn =(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((( -:- SignOff AlonzoTG: #TUNES (Have Nice Day :)) 10:10am what a strange person -:- hcf [nef@me-portland-us717.javanet.com] has joined #tunes 10:20am -:- krz [krz@gnat6.owo.com] has joined #tunes -:- krz [krz@gnat6.owo.com] has left #tunes [] -:- Kaufmann [Kaufmann@dial605.infolink.com.br] has joined #tunes Hey gang, anyone awake and willing to discuss math? 11:10am Well, I'm going now. BRB perhaps. -:- SignOff Kaufmann: #TUNES (Read error to Kaufmann[dial605.infolink.com.br]: Connection reset by peer) 11:20am -:- s720 [s720@kneler.ii.uib.no] has joined #tunes -:- s720 is now known as tmf anyone written CGI scripts before? 11:30am -:- AlonzoTG [Alonzo@216-164-138-24.s24.tnt5.lnhva.md.dialup.rcn.com] has joined #tunes -:- SignOff tmf: #TUNES (Leaving) -:- core [core@core.suntech.fr] has joined #tunes people hi * core/#tunes clears his throat heeeyy-lllloooo 01:40pm * AlonzoTG/#tunes left clicks on core * hcf/#tunes right chicks on atg -:- SignOff hcf: #TUNES (Leaving) hi al :P om om :) 02:00pm topiq 02:10pm -:- liar [brand@p0wer.qzx.com] has joined #tunes A handgranade falls from an umbrella in the middle of a dead channel... Does anyone hear it? 02:40pm -:- SignOff liar: #TUNES (BRiX [http://www.qzx.com/brix] :: reboot) -:- eihrul [lee@usr5-ppp119.lvdi.net] has joined #tunes hey eihrul :) hey how's EMK going :) good, i put out a small pre-release of code (http://www.lvdi.net/~lee.salzman/emk/) ah yeah, i saw that in the logs and downloaded it, but didn't look at it yet :) does it do anything yet? :) nope it just sits there and looks like assembly code hehe tis not bad for 2-3 months though true.. depends how much it does, but yeah :) i've been doing it backwards i've been building all the syscalls first, then i'm going to make it bootable so by the time it does work, it should be nearly feature-complete hmm.. well, backwards would be working from the application up into the kernel.. that's ummm.. middleward? ;) yeah, provided you defined all the syscalls you will ever need :) considering that was as far as i planned to go on my OS it's backwards :) hehe.. cool will you get anything to run on top of it after that? like emulating linux syscalls? or will you just scrap it :) i might make a small little X-like server but i'd have to get a small c-runtime environment going right.. a libc of sorts so you aren't going to write servers for your uK? :) just one or two i haven't really planned much of what i want to do with it i just want to climb the mountain for the sake of climbing the mountain, ya know? :) mmm.. keyboard, mouse, ide disk, filesystem, event dispatcher, that's already more than 2 :) yeah i know :) it might be interesting to prove your design by getting some actual code to run on it tho :) aside from the interrupt system i think all the other things provided are pretty solid still it's fun to run applications on it ;) trust me :) you can create memory objects, map them into another task, create threads with specified EIP/ESP, etc i know, that's why i might get a small X-like server, as i said :) perhaps i could rip some code from NanoGUI or the like well, technically the applications will not be running on your uK :) perhaps yeah they could if they wanted to :) the primitives are not exactly exokernel level, but.... 03:00pm well, not if you only get an X server without storage of some sort to load from, or enough C library calls to get applications to compile the server can be a boot module :) and like-wise the applications and then you could make a ram-disk boot module yeah.. that's how clementine currently copes with the lack of storage, for a couple more weeks or so but it's only good for a temporary solution or for a diskless box that will remain diskless well.. still you'll need a libc and most probably also a posix layer no way am i making a posix layer :) maybe a libc, but even that is a lot well, it's sort of useful to get any X application to run that's why i said X-like :) well, don't make your native applications _require_ either, it's only useful for legacy ones not X itself ahhhh.. i see i thought you just wanted to make a diskless X terminal :) in that protocol would go through messaging om yeah.. clementine dependencies abstract the way messages are actually routed, but i see what you mean of course there will be a client side library so nobody has to send raw messages :) -:- liar [brand@p0wer.qzx.com] has joined #tunes anyone know much about kernel modules? good :) liar: what specifically? when i boot up it takes several minutes to find my midi module and then it fails core: also, how do you keep track of when to free/allocate page tables? liar: minutes? is it polling the joystick port or something? eihrul: when to allocate that's pretty easy.. when they aren't mapped :) when to free them.. whenever pages are needed :) i have an awe32 and i ran isapnp and then load the modules eihrul: first empty page tables are freed, then empty object caches, then fail liar: hmm.. do you actually need the midi module (otherwise just alias it to off) but... how do you know when they're empty, is what i'm really trying to ask? liar: if you do need it, i'm afraid it's not working :) i have "alias midi awe_wave" in /etc/conf.modules and the awe_wav.o is in the right place eihrul: when they aren't referenced anymore :P alias midi off? core: ugh, you keep reference counts for each page table? liar: right .. and if you do need it, check that it's wave or wav on BOTH :) -:- hcf [nef@me-portland-us201.javanet.com] has joined #tunes -rw-rw-r-- 1 root root 64924 Jul 13 13:37 awe_wave.o alias midi awe_wave eihrul: every page has a small struct MemPage, that allows for very high locality and speed in allocation, it's just kept there; it's also used for shared memory, to know when to actually free it. ack, isn't that expensive on memory? eihrul: i use 16 bytes for 4K of physical memory 03:10pm eihrul: linux uses 48 bytes for every 4K... eihrul: 16 bytes/page is approx 500 KB for a box with 128 megabytes of memory, and it makes the allocator very speedy/efficient with dma/solving the problems of shared memory and page tables reaping. hrmm, that would make page allocation considerably easy eihrul: i think it's a good tradeoff; doesn't use that much memory, and is very speedy/code is very small and general-purpose. eihrul: then again, YMMV. i need a good benchmark program for linux what should i use liar: what do you want to benchmark? (or benchmarket) core: hmmm... i wonder if it would work better than my current scheme cpu liar: use rdtsc around the call you want to measure i guess ugh liar: what, it will work :P i want a stinking benchamrk program to run tests on it liar: i don't know of any off the top of my head.. benchmark programs suck, anyway. bochs is a good benchmark i had one called nbench(?) that just did cpu performance ah.. never really looked for one :) i know my p3 at work mostly feels like a 386 when running bochs :-) well brix in bochs says 7mhz on a p233mmx, celeron 450 and a p2-450 same value on all? try increasing the ips ? YA ya ? i changed ips from 750k to 33m and it says 342mhz liar: there :) 342mhz 386 hehe ofcourse it took like a minute the 7mhz 386 ran faster :) hehe.. well, you can probably find a faster value (on the celeron) of ips that does work.. it's a question of tuning :) 03:20pm did u try bfe? no.. not yet. stupid 24-hour only days.. is it usable yet? yup does it need anything special besides xforms, on a debian potato-derived box? :) after i finish this cpu benchmarking i will finish up the memory dump i already have the code on my pilot just need to move it over does it fill the structures with info yet? without that it's kind of pointless :) xforms and bochs on your pilot? heh well, i have bochs obviously :P i'll really need to get the debugger to compile in 990718a tho ya it kinda needs the debugger :) and yes the structure stuff works i will also be adding instruction history and step/next locking tonight wtf, i did a search for benchmark on byte.com and it gave me an article on there newest version of their benchmark program but the stupid article dont say where to get the program probably a losedose program.. no it runs on every cpu out there and every os liar: cool.. 03:30pm probably wintel have tweaked their os and cpu to work around that benchmarketing tho :P heh i know that amd and cyrix tweak their cpus for benchmarks thats why the k6-2 350 and faster had to have patches for windows yeah, that's about all they are good for, except for the mediagx :P wtf, i just downloaded the source and there is no makefile ./configure perhaps? emfloat.c misc.c nbench0.c nbench1.c nmglobal.h sysspec.c wordcat.h emfloat.h misc.h nbench0.h nbench1.h nnet.dat sysspec.h liar: guess you got to compile all .c's together :P hmm must be seaparte programs liar: or maybe it's independant programs liar: right stupid byte idiot s/idiot/idiots/ /usr/lib/crt1.o(.text+0x18): undefined reference to `main' maynbe because it is a Benchmark Kit and yuo have to write the program yourself? this damn code hasnt been ported ya i used this before tho ah its on linux.org 03:40pm ugh metalab is slow it's not slow to me :) blow me mmmm.... all things considered, no thanks :-) Description: Do low-level read & write SCSI benchmark over the first SCSI disk. Destructively. probably dont want that benchmark :) coolness, new bochs was released 5 mins ago, and includes fpu support ! (and default cpu level is now 486) i got that email too well, just propagating news :) i've been compiling for 486 cpu emulation for months, but fpu support is great. no more testing on real boxes for that one. bbiaf -:- SignOff liar: #TUNES (BRiX [http://www.qzx.com/brix] :: reboot) 03:50pm -:- SignOff hcf: #TUNES (Leaving) -:- SignOff core: #TUNES (Ping timeout for core[core.suntech.fr]) -:- SignOff AlonzoTG: #TUNES (Have Nice Day :)) -:- ElGato [dave@bespin.dhs.org] has joined #tunes :D 'lo i've been gone for a little bit :( you guys all that talk on the mailing list about high and low level stuff i thought of before ain't i l33t :D 31337 you mean 133t is shorter for some reason i ditched the high and low shit though mabye it wasn't such a bad idea i still don't see where natural language has a place in programming thoguh it doesn't yes you can't specify something when it's fuzzy natural language can be precise but not as precise just as easily as it can be not precise what's the point though i have to disagree, just because something allows for impreciseness, does not mean it can't be precise natural language is only optimised for human to human communication the point, so far as i can tell, is just that that most humans use it, hence we're stuck with it :) bah the point of computer science is to advance ourselves there is nothing stating we cannot do such we shouldn't dwaddle in our own stupidity :D we're not... we're helping others dwaddle in their stupidity if tehy wanna do that they can program in cobol :P intercal! it's been short but i gotta go gotta do homework :\ bubye short is relative impreciseness of natural language :) :P is water at sea again? it has been a quantity of seconds, much less than an hour where he is, he is not here often anymore er whereever 05:00pm im gonna send him physical mail :D later -:- SignOff ElGato: #TUNES (ElGato has no reason) 05:10pm -:- Downix [down@d-gnaps-29.ici.net] has joined #tunes -:- SignOff eihrul: #TUNES (Ping timeout for eihrul[usr5-ppp119.lvdi.net]) -:- eihrul [lee@usr5-ppp119.lvdi.net] has joined #tunes -:- liar [brand@p0wer.qzx.com] has joined #tunes hey liar ahhh i just stuck my dual in this machine and updraded to 256meg rm 06:00pm -:- KorGrey [kor@pm-ppp48.triton.net] has joined #tunes -:- KorGrey [kor@pm-ppp48.triton.net] has left #tunes [] -:- hcf [nef@me-portland-us922.javanet.com] has joined #tunes re !irq:*! i am considering glining *.av-el.co.il, any problems? natural language's imprecision may be essential for creative communication 07:20pm !Teknix:*! gee, !irq:*! yeah? !Teknix:*! goforit !irq:*! done allready :) !irq:*! how about ns*.jp ? !spice:*! do it -:- SignOff liar: #TUNES (BRiX [http://www.qzx.com/brix] :: reboot) -:- SignOff Downix: #TUNES (User abortion with 5 coathooks) -:- liar [brand@p0wer.qzx.com] has joined #tunes does anyone here have an smp linux box? 08:10pm -:- beholder [beholder@ppp-023.m2-1.sub.ican.net] has joined #tunes ping Oops :) Hey all hey got any smp linux machines? liar: Have you ever used EPIC4? no liar: If I had SMP boxes, I'd use em ;) liar: What IRC client do you use? bx Ok, thanks :) 3why? What do you need SMP boxes for? i have one im on a dual 550 I've got a dedicated internet sharing server, and I'm trying out Epic4 right now Liar: Dual 550?! Liar: Wow, that must be nice :) it was my game-tv machine for the last several months but i figured that since win98 wasnt using the second processor... liar: Ahh, how does it perform in Linux? -:- AlonzoTG [Alonzo@216-164-129-5.s259.tnt1.lnhva.md.dialup.rcn.com] has joined #tunes well its faster than my 450 but i dont know if both cpus are doing stuff liar: Hmm... did you enable it in the Kernel config? when i randomly change desktops with them all loaded it doesnt seem much faster yes they are both receiving interrupts liar: Hmm... you'd probably be better off asking someone in a news group, I'm sure lots of people have dual boxes. I used to administer one a while back, but I never saw it without the second processor (and the load average never went high) oh my load average isnt going above 50% liar: Maybe the bottleneck is your IDE drives? even when i was doing the random high speed desktop change i have 256meg ram so its all in ram liar: Hmm... have you pulled one of the processors out and tried it? why would i do that? i want one of those load meters like beos has :) liar: To determine what the speed is when it's running in single mode :) i want brix THATS WHAT I WANT :) liar: I thought you used BeOS? 08:30pm no, i have beos on my game-tv machine liar: How goes Brix dev? well i spent the last 2 weeks writing bfe liar: Good :) Oh, what termcap should I use when I telnet in? liar: VT220, seems to be limited :( have u seen bfe? liar: BFE? Nope not yet www.qzx.com/bfe liar: I've only seen your concept shots on your page its 99% functional liar: Gettin there, slow connection :( liar: What is Bochs? Bochs is a PC emulator at http://www.bochs.com that runs on win32, un*x, beos, mac, os/2 and amiga liar: You wrote that frontend? Wow, very nice. lair: What's it written in? C it uses xforms liar: Xforms? Xforms is, like, a widget toolkit at http://bragg.phys.uwm.edu/xforms and if u think that image looks kewl u should try the real thing liar: I'm really not up on my Linux programming I guess ;) liar: You use Enligtenment? ya thats why i need dual 550 :) i also use gnome :( liar: Hmm... I use a box, no keyboard or monitor, I assume I'd have to use a X-Emu on my desktop machine liar: Hmm... Bochs is part of the ports collection, that makes it easy to get :) 08:40pm liar: How well does it emulate Windows 95? it dont emulate win95 it emulates a PC liar: That's what I mean, have you tried to emulate entire OS's on it yet? no but others have i just run brix in it liar: Sweet little dev tool. How fast is it? up until today it emalated a 386 but now it does 486 and soon it will do pentium instructions that is liar: Wow, they're really working on it liar: How fast? not sure if IPS=750k brix says 386-7mhz when ips=5M brix = 52mhz but it runs alot slower than 7mhz and when ips=33M brix = 243mhz er 342mhz IPS? instructions per second its a config thing in bochs ahh damn my rxvt windows slide really fast Sounds very interesting. Will your front end work in FreeBSD? almost threw the window off my monitor :) liar: :) yes it will if eihrul has his way it wouldnt er had eihrul doesn't like FreeBSD? he had me using some signal function that only works in linux but now it uses io callbacks from xforms liar: Ahh. that would not be good. Same as the /proc FS... they have different info in both OS's so it will work on anything that xforms works on xforms dont work on windows liar: Who cares about windows ;) hmm xosview stinks liar: How do you get the uptime of a system? i will have to do what a few in linpeople suggested and find out how xosview gets it info and make a beos like meter uptime liar: I need it in a constant format, uptime changes constantly huh? liar: I wrote a script that awk's out the stuff I need, but it doesn't work when the system hasn't been up for a day, or when the minutes are 0x 08:50pm liar: Any ideas? ask eihrul he is good at that shit he did that for bfe I'll ask him when he's on sometime he is on now Eihrul: You here? beep him till he gets here :) liar: ;) thanks :) crap xosview is written in C++ liar: yeah, what's wrong with that? -:- SignOff AlonzoTG: #TUNES (Have Nice Day :)) other than it sucks and is hard to read? liar: Ahh, yep, C++ sucks for that :) 09:00pm wow i have my own bytemarks for a celeron 450, 550 and p2 450 the celerons are 1, 1.2 and 6.2% faster than the p2 in memory, interger and fpu respectively funny how the celeron is that much faster in fpu 09:10pm liar: It's a good chip u know where i could find out info about /proc/stat? cpu 18251 0 19556 938899 cpu0 9212 0 9804 469337 cpu1 9039 0 9752 469562 liar: Proc Stat isn't even on FreeBSD, so I'm clueless :( liar: Do you know what this permission is: "-r-xr-sr-x" ya everyone can run the r/x the program but those in the group will run it as the user liar: Ok, wasn't sure what the "s" was for like if the program needs to be run as root u do chown root.group and anyone in that group can run the program 09:20pm liar: Ahh, never thoght to do that :) Very useful liar: I'm looking for the code for uptime right now so I can make my own version ;) and a nice security hole too :) liar: How do I interperet load average numbers? liar: They're always x.xx, whats the format? process/minute processes the 3 numbers are timeframes liar: Ahh, same format for top then also? ya liar: Yeah, 1min, 5min, 15 min or something ya something like that liar: Mine are always 0.0x very small load I guess ya so are mine u need to be "using" the machine to have a load :) liar: It's used all the time, it's my NATD/Samba/FTP box. 09:30pm crap i gotta reboot. my damn cdroms arent working looks like i plugged the cable in backwards :) wonderful lair: That sucks :) now that my win98 box has the single cpu mobo it cant find any drivers so i had to do the "add new hardware" thing so it could reinstall all drivers so it asks for the win98 cd but it has no cdrom drivers i love windows -:- SignOff liar: #TUNES (BRiX [http://www.qzx.com/brix] :: reboot) 09:40pm -:- liar [brand@p0wer.qzx.com] has joined #tunes everytime i have booted i get a crapload of hda crc errors when linux gets to the login prompt on this smp box liar: Hmm... not good :( liar: Is the HDD in good shape? perfect i got no errors on the other mobo liar: Hmm.. I think you're gonna have to post to a newsgroup to find out whats wrong. Sounds pretty serious. liar: That's and AWE-32 right? i think that is an even worse problem i have 8meg on that thing not 0k :) liar: Did it detect before? never had has liar: Ahh, well not to worry about then :) mmm... terminal games... 09:50pm i need a good linux game that is multithreaded liar: Quake? liar: Q3 Test might be better liar: Not many games I know of take advantage of threading at a rendering level though q3 is multithreaded q3 would be a perfect test then at least it is on windows NT i would assume it is on linux too liar: Makes sense. I hear it's programmed in ANSI C... liar: I upgreaded my FreeBSD machine from 3.2 to 3.3, while it was running... so i can that with linux liar: Yeah, just thought it was neat :) liar: I've never done it before. i can upgrade win95 to win98 while its running too, just a couple reboots but technically its still running :) :) liar: I don't have to reboot though, which is nice :) liar: only a couple... eihrul: I need to get the uptime of my system in a C program, any clue on how to do this? hrmm, lemme poke around the syscalls eih: Ok, thanks :) 10:00pm man 2 times looks like it might do what ya need beholder: told ya he would know :) eih: I'll check it out, thanks :) liar: :) eihrul: any idea what the cpu values in /proc/stat mean? i am trying to make a beos like meter to show the load of my dual cpus and xosview reads /proc/stats but i cant read the xosview code cuz its in c++ -:- lar1 [lar1@dialup-209.245.130.238.SanJose1.Level3.net] has joined #tunes hey lar1 Hey 64 bytes from 206.63.100.13: icmp_seq=13 ttl=242 time=33320.1 ms Loook at that! God damn... I hate earthlinke! Hey lar1 Hey, Liar, beholder lar1.. that's some serious lag ;) Sep 20 18:52:47 p0wer swapon: swapon: warning: /dev/hda7 has insecure permissions 0660, 0600 suggested beholder: Yup how do i fix that? liar: nope liar: chmod 600 /dev/hda7? I dont' really know nope what? liar: negative on /proc/stats oh 10:10pm how do i remove a kernel module liar: There isn't an instruction history in bfe? lar1: not yet * beholder/#tunes is playing the "quiz" terminal game and finds it sad that he doesn't know Canadian capitols... liar: Hmmm, that would invole just storing all previous instruction in a buffer (array of strings)? right? lar1: no liar: How would you do it? there will be a list box, u just add the current instruction to the list, when the list reaches a given limit u remove the top line in the list so if the user wants a 100 instruction history then u keep adding until u reach 100 lines then u just remove the top line before adding new lines i could code that up in 5 minutes u wanna do it? I am thinking so I'd have to lean about lists in Xforms ok u need to define a new form in forms.inc fl_add_browser(list, char *) Should instruction history be another one of those 'tabbed' windows? fl_remove_browser_line(list, 1) yup then find the code in main where i add tabs and add a history tab Ok, you want to send me the latest bfe? its on the page i can dcc it Thanks mucho 10:20pm Ouch... that was slow liar: anyothing new in BFE today? Where did you move my ConfirmQuit() function too? buttons ok eihrul: no i upgraded my machine Where do you want the code for history? the update code should go in updates and the form code should go in forms.inc Uhhh what form code? that code that defines what the tabbed window looks like u can pretty much just copy the structures form u will need a new object, i_list ok oh and put the addresses in there too Ok 10:30pm Should I mark my changes like last time or no? no ok i will just extract yer stuff over mine When I am done should I just send you a tarball of all the source as I have it? oh crap wait i made changes this morning -:- core [core@core.suntech.fr] has joined #tunes Hey core let me send u a new copy Ahh! Ok ok give me a minute to add my memory code Ok im just copying it over from my pilot You write code on yer pilot? ya Where did you wirte this code? At the cafeteria at work? ;) at my desk at work Okay * lar1/#tunes thinks the palm pilot is just a social status object, much like SUVs... hey they are useful i use mine everyday I didn't say they wernt useful But $500 for them? They aren't worth that much in parts and code methinks... 1000% profit margin for 3com they are worth it 10:40pm Hmmm, what does the pilot do that the $150 one doesn't? what $150 one? ls Oops liar: All those other 'pilot-like' orginizers the pilot has the palmOS the others have wince * beholder/#tunes thought Palm's were toy's till he saw sysadmins programming routers with em Hmm,ok,whatever... perhaps I don't understand because I am not in a position to need one although, if mom got me one, I'd take it ;) WHo is coding Clemintime? Not sure :( core is Ohhh, ok, I was confusing emk with it eihrul is coding emk Yes eihrul: how does emk pass messages? hi :) sorry, i didn't know i was on :O hey lar1, liar, can you take more confusing nicks? ;) -:- lar1 is now known as lair core: no heh core: :) lar1: message.s gotta go later :) later beholder -:- lair is now known as lar1 -:- SignOff beholder: #TUNES (ircII EPIC4pre2.003 -- Accept no limitations) eihurl: Yes, I see the function to _recive_ the message...but howdoes the thread know it has a message waiting? if the thread doesn't have messages waiting, or the receiver isn't waiting for a message it's blocked until one of those conditions becomes true -:- SignOff hcf: #TUNES (Leaving) eihurl: So threads must be contantly be fed with messages? 10:50pm no But you just said if there is no message the thread is blocked lar1: the new ravenOS page isn't visible yet? :) lar1: it is unblocked when someone tries to sed a message to it * lar1/#tunes grins wide core: Nope :) sorry core: I need someone to nag me about it on a pretty daily basis eihrul: So you are saying if no ones is sending a message then the thread it blocked? only if it tries to receive a message and there are no threads blocked waiting for that thread to receive So a thread has to call the Getmessage functino or whatever inorder to get its next message? yes YES, bfe dumps memory now if there are no messages waiting, it's blocked... and when some thread does a MessageSend, it's unblocked liar: Very, very cool! lar1: i can put a "nag lar1" job in crontab if you like :) lar1: so, did you make any progress on it since the last 2 minutes? :) cron is for weenies core: Not really :) I do like the crontab job idea though liar: you never sent me a brix binary or sources like half of the channel seems to have :P core: set it for every hour :) lar1: be careful what you wish for :) core: Uh oh.... * lar1/#tunes shuts mouth hehehe don't tempt me, i do have boxes on a permanent link :) hmm.. muscles hurting, throat sore, sneezing.. i guess i show most symptoms of flu :P eihrul: What if thread a wants to tell thread b somthing but thread B hasn't called getmessage because it doesn't know anyone wants to talk? thread A is blocked 11:00pm until thread B tries to receive a message i keep a list of all threads with messages waiting to be received So all thread are required to call getmessage everyonce and a while? they don't have to... core: Hmm, I have a headache just if they don't, they won't receive messages lar1: i've had a latent one since friday :/ most often, threads will simply block trying to receive any message core: That sucks use messages to do some transaction eihrul: and all threads that send messages to them will stay frozen forever :) then the server goes dormant again waiting for another request core: the breaks of life :) core: i may implement block timers, i may not... but as i've said, i'm not trying to make this perfect eihrul: yeah i know.. or you would have implemented thread migration :) eihrul: But what if the system want thread z to termanate... and thread z ain't getting its messages... then what? then the threads are unblocked Thread migration? and returned an appropriate failure value eihrul: Which threads? any threads blocking on another thread that gets destroyed lar1: the client thread detaching from its context in the client and attaching to a context in the server, servicing itself, then returning into its home base into the client. this way, you needn't have a big pool of threads listening for requests in the server, and work is accounted to the client, as it should be :) core: but umm, that's evil! is that not insecure? eihrul: why? giving a client complete access to server data? Thats mean! Just cause a thread tryed to send a message youre gonna kill it! Hmmph... I'll have a word with the ASPCT!! heh eihrul: no.. the client has no way to touch the server. it connects to an entirely new context (stack and everything) lar1: i said unblocked, not destroyed core: but how is it a "thread" in the server's context? how does it access server data? eihrul: no.. you don't. it doesn't access anything. it executes the request in a new context in the server, one it has no access to. eihrul: the thread is split in two: the thread proper (priority, time slice, kernel stack, etc.), and an "activation" (address space, registers, user stack, etc.) but it's the "activation" i'm concerned with here :) * lar1/#tunes is pretty sure message passing, migration and all that other stuff is surely the tool of the devil how does it interact with server data having no access to server data? eihrul: when doing sync IPC, the thread connects to a new activation in the server, executes the server code in the context of the server (ie. _no_ client code is executed), then pops the server activation off the activation stack, and comes back into the client eihrul: you don't get it. the activation then executes server code, in the server context, so the server code does have the same access to server data as any other of its threads :) so we're talking something like sun "doors" here? I need to study for el examen a la manana! eihrul: we're talking something like Mach's thread migration, implemented by bryan ford and jay lepreau (the os kit :) eihrul: the original point is that sync IPC becomes something like 3 or 4 times faster, not having to block and unblock any thread :) but are we talking "doors" here :) core: You are speaking in abstract terms... Ambigous operators require parenthesis! core: which sound vaguely similar to what you're describing eihrul: NFI what those are :) lar1: er? :) eihrul: anyway it's implemented in clementine and works fine ;) core: a server sets a thread entry point, then other processes can then when given rights to the door, "step through the door", into the entry point defined for that door, do the work, then return home :) core: Server, activation, client, activation stack? What? core: that was the main idea of doors.... eihrul: right, except there are many 'doors' then (as many as there are exported calls in the interface) 11:10pm if(*(s--) != '\t'){ *s = '\t'; s++; } core: How does sync. IPC work? Implemntation wise? lar1: just discussing IPC :) core: though... how do you support parameter passing? oops lar1: that's what i just described :) core: do you just instead of copying data to an arbitrary location, copy it into the stack? core: Well, I didn't understand a word of it :) eihrul: right :) and identifiable data zones (strings or data with a known length) are copied or mapped as usual. thanks liar core: how are result values propagated? lar1: instead of marshalling a request into a message, blocking the client thread, sending the message to the server that has to be listening, wake it up, give it the message, unmarshall it, call the right function .. the client thread simply migrates into the server. eihrul: returned into EAX ;) core: okie... eihrul: the thread of execution proper, isn't broken by the scheduler, so you can simply do that :) can anyone tell me why it chops off the last digit off the address in the memory dump? its in updates.c:update_memory() that does sound nicer than synchronous IPC.... as you don't need a sending thread and a receiving thread just a sending thread i'd go so far as to say i almost like the concept better than synchronous IPC :) core: Ok, makes sense, what are you defining as 'server'? eihrul: it avoids the big pool of listening threads in servers, too core: > as you don't need a sending thread and a receiving thread lar1: damn u accepted first and finished last :) lar1: oh, any component that provides functions to the outside world. most can be both client and servers eihrul: right :) liar: My connection is pretty crappy tonight liar: now send brix :) you go and tell me this after i have messaging already implemented damn it! :P i must beat thou with a rolled-up-hardwood-floor eihrul: it can be implemented later.. ford and lepreau implemented it in Mach after version 3.0 :) did i not say there might not be a later with emk? :) core: How does thread A say "Hey, wanna go to a movie with me" to thread b? there are a lot of other nice properties to that too the fact you can propagate a 'cancel' request down the activation chain.. lar1: heheh core: do you still have "normal" sync messaging? the fact that cpu time is accounted to the client.. :) eihrul: yeah, if explicitly called but nothing calls it right now (and actually the necessary code isn't checked in cvs, it reminds me :) liar: I'm a teenager... I suppossed to be obsessed, right? is all the information needed to return to the sending context stored on the user stack? lar1: there is no thread B.. it just goes to the movie alone :) lar1: it just goes with thread B's car :) core: Nah, thats only in my life :( eihrul: user stack == bad. no, activations are simply in a linked list. when exiting from an activation, it returns into the previous one in the list, if none is left, the thread is dead. core: i know they're bad... that's why i asked, because the server context could manipulate the return information and do evil things eihrul: actually it can't L-l-l-l-linked list?!?! Ahhhh! Core speaks of the unholly data type! damnit, someone fix my code :) eihrul: this method gives neither the client nor the server, more privileges than usual :) i'm saying if the return information was saved on the user stack :) eihrul: right.. but that's not an option :) indeed core: how does the client thread "migrate" its ass into the server? liar: When ever I read bfe I keep thinking big friggn enviroment! Its weird lar1: linked lists are excellent if used properly, it avoids things like "maximum 26 drives" :P core: i bets it fun when the client context destroys itself while the server context is activated, no? :) lar1: i also think of something else but it aint that ;) liar: the thread proper is just a priority, kernel stack etc; it needs an activation to run; the activation is private to an address space. it just migrates by connecting to an activation in the server address space :) liar: Heh! core: eh? core: Hmm, well, I had a bad experence implementing linked lists.. so I don't like them 11:20pm core: you have to allocate a temporary stack for the thread in the server context, right? eihrul: in this case, the request is silently cancelled and return values are ignored.. the thread proper is only deleted when the request returns from the server eihrul: right, except in the spirit of what i told you yesterday :), activations aren't deleted immediately, since ipc is usually a ping-pong.. only when needed. which makes it fast :) ah i'd have to restructure way too much of my microkernel to support that since thread stacks are kept directly in the thread structures themselves :) lar1: i have standard macros for doubly linked lists, and usually also use single linked ones, no problem with that :) eihrul: as i said it can be done later. clementine did work without migration for a while :) core: stop throwing that word at me! :P eihrul: what, the l word? :) yes! hehe heh i'd rather have clemetine do that stuff than EMK eihrul: diversity is good :) heh core: When will you relese clemintine's source? but when diversity is maintained by a single man, it gets tiresome! lar1: soon.. this fall. we're getting there i guess (today is fall :). i just miss one functionality to implement, to make a complete prototype people can play with. eihrul: tell me about it :) core: that being? eihrul: me for clementine (at least i was for most of the time) > i just miss one functionality to implement I miss one functionality to implement as well I need to implemnet the os core: that being? :) lar1: heheh eihrul: physical disk drivers :) i do have components for filesystem abstraction, i do have them exporting a dynamic filesystem of their properties, i can browse it and all, i just miss persistence :) that, and getting a legacy unix application to run, which will happen at the same time since someone _else_ is working on it :) (and is making good progress.) core: Perhaps when I write the Raven page I'll take you up on some of that space so I can set up a mirror :) core: just don't take a year... eihrul: nope :) lar1: you can have it :) core: or else i'll be forced to implement doors.... 11:30pm core: Ok, let me know when it becomes available lar1: sometime today. actually, everyone who needs webspace, emails, a cvs repository or ftp access for his project can have some. lar1: i got the server hardware yesterday, i get the rack this morning, i'll get one of my cow-orkers to put the former into the latter, set it up, and voila :) core: curiously, in practice, what are the relative costs to transfer from client context to server in thread migration and sync IPC? cow-orkers? :) liar: yep :) liar: Its a new milk harvesting method haha lier: orking the cow is much better core: hey are u aware of any idea bugs with smp in kernel 2.2.7? eihrul: thread migration is faster :) for actual benchmarketing, read bryan ford and jay lepreau's paper in .ps about thread migration :) s/idea/ide/ liar: 2.2.7? probably, upgrade to 2.2.12 :) liar: but none i'm aware of in particular, though liar: ide bugs.. sounds like overclocked SMP i get a crapload of hda crc errors and then is says it disable dma -:- _ruiner_ [nate@ppp367.wi.centurytel.net] has joined #tunes yep, overclocking allright :) hey so what 366 to 550 OUCH :-) gee, i really wonder why it doesn't like it ;) it shouldnt give me errors core: Celerys can do that! ya it will do 567 in single cpu mode but not smp beos wont boot at 567 or 550 in smp i have to use 460 in beos liar: what can it do smped? liar: well, ultradma won't like it.. linux warns you it turns it off, probably windows does it silently ok, i really need to dash to work. see you :) -:- SignOff core: #TUNES (ircII EPIC4pre2.003 -- Accept no limitations) later core great so i dont get udma that bites * lar1/#tunes always finds it cool that while I'm about to sleep, somebody is going to work liar: When you said fl_add_browser(list, char *) what is list? ermind nevermind core: where can i find this paper? liar: Why doesn't udma like overclocking... the bus speed too much? core: also, if you have thread migration across a network, does the net-effect not just become synchronous messaging of sorts (you have to create a thread on the other side) core left 11:40pm sheet liar: How do I know how long the history should go on for? just when i have questions, he leaves! he always does it, without fail! eihrul: Heh ugh i gotta crash lar1: have fun with the code eihrul: hey my memory dump has a bug -:- BlackPhoenix [black-phoe@adm.univd.kharkov.ua] has joined #tunes liar: but of course! :) in updates.c:update_memory() it is chopping off the last digit of the address Liar: How do I know how long the history should be?! if(*(--s) != '\t'){ *s = '\t'; s++; } i think its that line well i know it is Thats a very screwy line add a history_length variable and we will set it in the config file liar: What should its deafault be? 50? liar: ok that code is umm... sloppy man :) eihrul: duh eihrul: Whats *(--s) mean? the address of s -1? *--s S = S - 1; *S does it actually dec it Ewwww, thats nasty code yes crap <_ruiner_> what else would you expect from liar? * eihrul/#tunes cackles. Heh ruiner ruiner: i haven't seen your code yet, so :) lar1: change that line to *(s-1) s [-1] liar: Uhhhh, Where is that line? *(s-1) <_ruiner_> my code would ruin you for all other projects liar: s [-1] damn it <_ruiner_> its just that sweet updates.c:update_memory() ruiner: i doubt it line 31 s [foo] is preferrable to *(s + foo) and indeed equivalent liar: Are we going the QZ style or the eihrul style? and is a savings of two chracters as well qz style :) * eihrul/#tunes frowns. 11:50pm liar: You sure? Ok.... *(s-1) it is lar1: don't litsen to him! fine do it his way Now that I saved and recompiled... liar: fine :) *s[-1] it is no s[-1] Oh :) ok hh it didn't like that hmm once the intruction history is done and resize problem is fixed bfe will be ready for release it does like it if(s[-1] != '\t'){ *s = '\t'; s++; } it works fine here OHHHHHHH, how stupid, I left out a parenthsis hhaha if s[-1] != '\t'){ *s = '\t'; s++; } :) Ok, all better now liar: I will finisht the history tommarow... I'm not sure how to fix the resize problem Whats that for? the history form I already have it I made it I just need to add that code to updates.c !gaim & Oops dern it... can't find the paper on threa dmigration [msg(TUNES)] newlog 1999.0921 IRC log ended Tue Sep 21 00:00:00 1999