00:00:00 --- log: started osdev/02.04.12 00:04:03 do disk blocks begin at 1 or 0? 00:10:47 depends on how u access them 00:11:38 well let's say I write a driver 00:15:22 floppy controller is 1 00:16:11 but i send an absolute sector to the floppy driver and it starts at 0 00:19:55 hm 00:32:16 woot! 00:32:31 Exercise Pill for Couch Potatoes 00:54:48 hmm 00:54:57 someone needs to clean up the spam on usenet 00:55:25 cut off access to isps with spammers 00:56:31 my school just put on the maps blacklist :) 00:56:46 eh? 00:56:55 got put on? 00:56:57 yeah 00:57:00 missing verb there 00:57:09 hehe 00:57:14 smtp.ucla.edu 00:57:17 open relay 00:57:20 ah 00:57:31 of course they still haven't closed it 00:57:50 u would ucla would have good admins 00:57:57 u would think 00:58:39 hahaha 00:58:43 no 00:58:54 woah, sylpheed lets me filter newsgroups 00:59:14 I got in serious trouble for running an ftp server when I was in the dorms, and their justification was that ftp is "file serving" but windows filesharing is just "sharing" so it's ok 00:59:21 filter for spam? 00:59:37 hahaha 00:59:41 ya spam 01:00:06 but sylpheed has no Content-Type header filter and it doesnt let u define headers 01:00:33 i had to use procmail to filter all the asian spam with content-type 01:02:18 heh 01:09:31 --- quit: trans (Read error: 110 (Connection timed out)) 01:37:53 woah 01:37:53 sylpheed just froze 01:43:47 --- join: dax (Gnuke1115@u212-239-163-2.adsl.pi.be) joined #osdev 01:43:52 heya 01:46:54 grr 01:47:11 sylpheed is freezing cuz god damn cable modem keeps going offline 01:47:49 the most amusing part of it is that im reading attbi.discussion=attbiservice about all the problems ppl have with attbi and downtime 01:55:54 hmm i think my vm is finaly getting into shape 01:55:56 aspace_create(): name = kernel, id = 0x1 01:55:56 region_create(): name = kernel_heap, id = 0x1, base = 0x8000d000, size = 0x400000 01:55:56 region_create(): name = kernel_ro, id = 0x2, base = 0x80000000, size = 0x8000 01:55:56 region_map_physical(): name = dma_region, id = 0x3, base = 0x0, size = 0xa1000 01:55:57 whee 02:07:56 dma_region? 02:16:18 --- join: pavlovskii (pavlovskii@modem-432.awesome.dialup.pol.co.uk) joined #osdev 02:17:44 --- quit: dax (Read error: 104 (Connection reset by peer)) 02:36:58 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 03:00:36 hahaha 03:01:12 some dumbass asked for visual basic help in comp.lang.ada, apl and clos 03:04:38 --- join: lynx (~lynx@pD9E63D62.dip.t-dialin.net) joined #osdev 03:04:45 woah evil 03:04:53 just came back from school and did some turntabling 03:05:02 i should have recorded it :( 03:05:05 it was damn good 03:05:09 heh 03:05:22 hey air :) 03:05:26 wussap? 03:05:51 http://www.cs.helsinki.fi/linux/linux-kernel/2002-13/0132.html 03:07:33 that RRS sounds pretty damn kewl 03:21:47 --- quit: trans (Read error: 110 (Connection timed out)) 03:26:08 --- quit: lynx ("BitchX: the OTHER white meat") 03:31:22 --- quit: lar1 (Read error: 104 (Connection reset by peer)) 04:01:45 --- nick: eks[Zzzz] -> eks 04:02:44 --- quit: gab (Read error: 104 (Connection reset by peer)) 04:02:48 --- join: gab (~prfalken@gaia.chx-labs.org) joined #osdev 04:16:59 --- join: pavlovskii_temp (pavlovskii@modem-154.awesome.dialup.pol.co.uk) joined #osdev 04:17:26 --- quit: pavlovskii (Killed (NickServ (Nickname Enforcement))) 04:19:06 --- nick: pavlovskii_temp -> pavlovskii 04:23:34 --- join: Woodstock69 (~DTM@213.68.107.34) joined #osdev 04:23:52 hi all 04:29:03 hi woodstock 04:32:18 hey pavlovskii 04:37:55 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 04:54:37 --- join: Mathis (Mathis@gstw-d9b89f1a.pool.mediaWays.net) joined #osdev 04:54:59 hiyall 04:57:51 --- nick: ZzZ_enton -> Zenton 04:58:06 hi all 05:01:34 hi both 05:04:05 I got a really micro-strange problem 05:04:32 Mathis: ? 05:04:37 I compile my OS project with gcc-2.95.3 05:04:56 and get the message from ld that terminate(void) is missing... 05:05:14 then I define it, then ld tells me that it allready exists 05:05:30 ehehe 05:05:48 I have 10 minutes, if you want I can give it a look 05:06:00 hmm, not now, later 05:06:07 tonight then perhaps 05:06:31 yep 05:12:46 --- nick: eks -> eks[work] 05:19:20 --- quit: trans (Read error: 110 (Connection timed out)) 05:19:40 hmm 05:20:07 i just realized that i have lost my email signature 05:20:19 i think its been lost since i rm'd ~ 05:25:27 --- join: rob_ert (~robert@h237n2fls31o965.telia.com) joined #osdev 05:31:32 I just discovered a gaping hole in my device manager! 05:31:35 memory leaks everywhere 05:33:37 HANGOVER 05:35:53 gah 05:36:19 i just filled out a bug submission on sourceforce and when i tried to send it refused my connection 05:41:00 sylpheed members are gonna hate me 05:41:17 3 bugs and 5 feature requests in one night 05:42:49 what project? 05:42:57 sylpheed-claws 05:43:01 what is that? 05:43:08 email/news client 05:43:16 for X? 05:43:18 gtk 05:43:26 URL? 05:43:28 damn nice client 05:43:48 http://sylpheed-claws.sourceforge.net/ 05:44:44 great that the website works as it should 05:45:01 sylpheed has a better composer but claws has better filtering 05:45:11 eh? 05:45:17 all the links are dumb 05:45:21 --- nick: g|zzz -> geqo 05:45:24 dumb? 05:45:24 or it's just my browser :) 05:45:44 looks fine to me, mozilla 0.9.9 05:46:58 it worked in konqueror 05:51:54 GAH 05:51:57 i hate mozilla 05:52:20 backspace is NOT realtime 05:52:43 i end up backspacing over everything i typed when i just wanted to take out a couple words 06:16:16 gah 06:16:37 :-) 06:16:38 this one bug isnt reproducing so now i only have 2 bugs to submit 06:20:31 d = 33^-1 = 17(mod 280) 06:20:38 ohhh 06:20:42 where the '=' is has 3 bars 06:20:47 s/is/sign 06:20:52 What does that mean? 06:20:57 should i submit a complaint about colors as a bug? 06:21:00 33^-1 ? 06:21:36 3 bars 06:21:38 ? 06:21:47 like = has 2 bars? 06:21:56 Yes. 06:22:17 i know but i dont 06:22:20 a = b (mod c) means a mod c = b 06:22:29 where the '=' has 3 bars... 06:28:55 --- join: pavlovskii_temp (pavlovskii@modem-203.aerodactyl.dialup.pol.co.uk) joined #osdev 06:29:23 --- quit: pavlovskii (Killed (NickServ (Nickname Enforcement))) 06:30:03 --- nick: pavlovskii_temp -> pavlovskii 06:30:21 hmm 06:30:39 i think some1 is getting a little pissed 06:31:14 or when there's no completion possible... 06:31:14 this is not a bug (feel free to perceive this as a bug though). 06:31:26 --- next bug --- 06:31:35 this is also not a bug 06:33:05 what a pig 06:33:14 Who? 06:33:15 he closed both of my bug reports 06:33:22 On what prog? 06:33:22 >Comment By: Alfons Hoogervorst (alfons) 06:33:30 sylpheed-claws 06:34:00 Heh... I sent a bug report on some project, and they refused to answer just because the admin said someone else managed that project now. 06:34:11 u tell me if this is a bug 06:34:32 i have a bunch of email addresses in my address book 06:34:56 when i send an email i type first few letter of an address and press TAB 06:35:17 it pops up a menu with the letters i typed and the completed email 06:35:28 so i down arrow to the email and hit enter 06:35:54 but it leaves focus in that field and pressing TAB opens the damn menu again 06:36:15 the only way out of the field is with the down arrow or mouse 06:37:13 in mozilla it auto-completes the address if only one match and enter takes u to next field, or it brings up the menu and selecting one with enter takes u to next field 06:38:20 dumbasses, they are closing all my features requests too 06:38:54 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 06:39:27 * air gets gun and goes on a killing spree of sylpheed-claws developers 07:09:07 --- join: _ruiner_ (~Anti@mdsnwi11-vlan426-17.wi.tds.net) joined #osdev 07:09:24 --- quit: Woodstock69 () 07:15:41 --- nick: n-ZzZ -> nothing 07:16:17 morning! 07:16:34 <_ruiner_> good morning 07:17:39 * pavlovskii 's device manager is no longer full of holes 07:17:46 <_ruiner_> heh 07:17:49 <_ruiner_> gj 07:17:55 pavlovskii: why did you ctcp flood me? :) 07:18:06 i was wondering what time it was where you are :) 07:18:09 nothing malicious 07:18:43 * pavlovskii forgot that it's not 15:18 in the rest of the world 07:19:51 --- nick: pavlovskii -> pavlovskii[work] 07:22:46 actually 07:22:54 my computer clock is b0rked 07:27:07 --- quit: trans (Read error: 110 (Connection timed out)) 07:43:07 --- join: jukka (jukka@MDCCLIV.hdyn.saunalahti.fi) joined #osdev 07:43:46 Hej jukka! 07:43:52 neyney 07:43:53 heyhey 07:43:56 ah 07:43:58 grr.. 07:44:02 i'm losing my nerves 07:44:05 gah! 07:44:57 :( 07:44:58 Why? 07:46:23 because... 07:46:28 of many reasons 07:46:31 4 of them 07:46:34 i can find now 07:47:16 for exambpel i need one book 07:47:21 when i apply to one university 07:47:29 AND I CAN NOT GET IT ANYWHERE!! GFGRRRRRR 07:47:32 no 07:47:49 not from helsinki, not from bookstorse (2 tried, from central warehouse too) 07:47:54 not from libraries 07:47:59 :( 07:48:02 i tried "just" 6 different libraries 07:48:07 Come to Sweden, we have books! 07:48:29 we have them too 07:48:37 Liar... 07:48:39 one day 9800 visitors in library 07:48:43 in lahti 07:48:49 99000 ppl live here 07:48:51 oka 07:48:59 there are so many books but all are taken 07:49:00 loaned 07:49:03 gashh 07:53:10 www.kirjastot.fi 07:53:12 rob 07:54:43 * rob_ert is away :P 08:03:01 mMmMmmm' 08:03:04 helsinki rulez 08:04:46 --- join: corsairk8 (~CorsairK8@pc-62-30-121-110-cr.blueyonder.co.uk) joined #osdev 08:05:29 hi 08:06:12 ck8!#!!$! 08:06:20 the ruler of the free world!#!!! 08:06:23 :D 08:06:24 ;( 08:08:23 haa 08:08:31 i can search 100 libraries with one search 08:08:32 :D 08:11:06 --- quit: nbsp ("bbl") 08:23:26 --- join: wjorzk (~cheese@66-44-43-200.s962.apx1.lnhdc.md.dialup.rcn.com) joined #osdev 08:25:57 --- join: pavlovskii (pavlovskii@willie.ee.ic.ac.uk) joined #osdev 08:26:35 hey wjorzk 08:26:53 * corsairk8 has vterms working but they are god awefully slow 08:27:21 ack, cvs sucks so much, ive completely reorganised the structure of my project again ;) 08:27:33 ill need to reimport... 08:27:44 i might have to stick with the traditional .tar.gz source archives 08:31:34 whoo! 08:31:43 one book free at Sibbo (sipoo in finnish) 08:31:48 all other libraries 08:31:50 are taken 08:31:59 like in helsinki (17 books, none available) 08:32:02 or such 08:32:25 in porvoo there were 7 books in library, 7 loaned and 7 reservations 08:32:41 in lahti even hand library book was loaned 08:32:45 phew 08:32:56 now i have checked status in all libraries in finland 08:32:57 cept 08:33:12 Mariehamn and government house libraries 08:33:45 BUT rob_ert can you imagine 08:34:18 one book that can be so hard to get one book 08:34:25 publisher have ran out of books 08:34:28 all the libraries 08:34:44 cept one small swedish speaking library 08:36:40 jukka: what book is this? 08:36:59 "Seppänen, Janne : Katseen voima : kohti visuaalista lukutaitoa" 08:38:19 mmm... I don't speak Finnish too well... 08:39:59 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 08:43:15 --- quit: pavlovskii () 08:43:30 always you can start learnign :) 08:44:43 --- quit: _ruiner_ ("destroy what destroys you") 08:46:18 --- join: pavlovskii (pavlovskii@willie.ee.ic.ac.uk) joined #osdev 08:46:38 pavlovskii: you can alwats start learing :) 08:46:41 learning finnish 08:46:49 better to start young so you can learn a bit of it ;) 08:48:14 --- quit: pavlovskii[work] (Read error: 110 (Connection timed out)) 08:48:14 heheh... 08:48:33 I'm more worried about learning digital signal processing today 08:54:25 well 08:54:39 it's all the same 08:57:53 --- quit: Mathis ("connection reset by beer") 09:02:08 --- quit: pavlovskii () 09:03:40 --- quit: jukka ("mur murr") 09:13:11 --- join: pavlovskii (pavlovskii@libnt54.lib.ic.ac.uk) joined #osdev 10:05:45 --- quit: geqo ("byye") 10:17:42 --- join: lynx (~lynx@p50809283.dip.t-dialin.net) joined #osdev 10:18:54 --- nick: lynx -> dA_lYnX0r 10:25:45 --- join: darkito (darkito@62-36-137-59.dialup.uni2.es) joined #osdev 10:25:51 hi there 10:25:51 xD 10:26:01 rob_ert :P 10:26:21 :) 10:28:47 --- quit: trans (Read error: 110 (Connection timed out)) 10:32:29 rob ert 10:32:32 roberto! 10:33:32 :-D 10:33:39 nothing-san! 10:43:09 --- join: I440r (~mark4@1Cust179.tnt3.bloomington.in.da.uu.net) joined #osdev 11:10:08 --- join: dax (you@u212-239-165-176.adsl.pi.be) joined #osdev 11:10:44 Hi 11:11:39 HI. 11:11:56 !-) 11:13:46 --- join: trans (~trans@a2a02274.intergate.bconnected.net) joined #osdev 11:14:20 --- quit: dA_lYnX0r (Read error: 110 (Connection timed out)) 11:21:35 --- quit: I440r ("http://isforth.clss.net") 11:29:28 --- join: Mathis (Mathis@gstw-d9b89f01.pool.mediaWays.net) joined #osdev 11:30:02 rehiyall 11:35:47 hi mathis 11:36:20 --- join: df (~yakumo@217.39.170.123) joined #osdev 11:36:20 NOTHING 11:37:13 did I tell you all my micro-strange problem? 11:39:33 tell it now 11:39:35 i don't remember 11:39:52 dax: did you defeat Voldemort yet? 11:39:53 * df grabs some popcorn 11:41:36 (voldemort was some villian in harry potter i think) 11:41:37 heh 11:42:44 ooooh arch nemesis 11:42:47 I'm using gcc-2.95.3, binutils-2.10.0.33-13 11:43:23 and everytime I compile my OS project ld tells me that void terminate(void) is missing 11:43:34 then I pseudo-implement this function 11:43:47 then ld tells me that it exist twice then 11:44:49 Mathis: what is terminate? which .o is causing it to be linked? 11:45:40 a module written by me 11:45:55 is it in a library (.a)? 11:46:08 cancel that 11:46:25 no, don't; what order are you linking the libraries? 11:47:13 I have my own generic library and then I have libgcc.a 11:47:40 cos ld won't see library functions if you link them in the wrong order on the command line 11:48:04 iirc it should be: ld -o target objs libyours.a libgcc.a 11:48:16 I did it that way 11:48:17 assuming libyours depends on functions inlibgcc 11:48:40 I didnt change anything in the Makefiles 11:48:51 and terminate is the only libgcc function ld is complaining about? 11:48:58 correct 11:49:47 strange... none of the files are C++, are they? 11:49:57 they are all C++ 11:50:07 ahhh, and libgcc is C then 11:50:09 and they are all using functions in libgcc.a 11:50:21 try declaring extern "C" void terminate(); or whatever 11:50:25 put extern "C" before the name 11:50:38 gcc is probably trying to decorate the name from the C++ file 11:51:29 :10: previous declaration of 'void terminate()' with C++ linkage conflicts with new declaration with C linkage 11:52:00 are all your header files wrapped in extern "C" blocks? 11:52:05 I'll find you an example 11:52:17 no 11:52:39 read http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/*checkout*/mobius/mn/include/stdio.h?rev=HEAD&content-type=text/plain 11:52:45 this header file is safe in C and C++ 11:52:45 nearly everything except the functions that libgcc needs and some others are defined as C++ 11:53:00 page not found 11:53:02 yep, make sure the libgcc functions are extern "C" 11:53:09 they are 11:53:31 before some minor code changes my sources compiled properly, but not anymore 11:53:51 anyway, the error messages imply you've got at least one declaration of void terminate(); that expects C++ linkage 11:53:56 even coz the changes have nothing to do with libgcc or terminate() 11:54:52 search though all your sources and headers for declarations of terminate; make sure they are extern "C" in some way 11:55:19 there are no terminate() functions declared except the one I am commenting in and out to find out the error 11:55:25 so pavlovskii 11:55:38 are you almost done with the GDI interface in Moebius? 11:55:59 as in Windows GDI? sounds like a lot of work... 11:56:10 but I do have a nice graphical library, if that's what you mean 11:56:19 hm 11:56:25 so Moebius is entirely C++? 11:56:45 no, only a small part (GUI); the rest (kernel and system libraries) is C 11:56:52 plus some assembler for the 386 bits 11:57:22 pav: if you want I send you 2 screenshots where you can see what I see 11:57:36 Mathis: please 11:57:41 nothing: I'd give you a screenshot, but it's got to the stage where it's outgrown Bochs (needs an S3 Trio) 11:57:55 I'll write a VESA driver one day, but my card only supports VESA 1.2 11:58:32 pav: one moment... 11:59:03 hm 11:59:10 pavlovskii: what are you working on in moebius right now? 11:59:19 IDE driver 11:59:21 then FAT 11:59:25 once they work, it will rock 11:59:41 atm I'm restricted to what GRUB can load at boot 12:01:39 pav: per DCC? 12:01:53 cool 12:02:40 Hey, does anyone know the method to get the inverse of a mod b when gcd(a,b) = 1? 12:03:05 hm 12:03:13 pavlovskii: moebius refused to boot on my p166 12:03:23 bombed out pretty bad after grub 12:03:29 probably the ide driver 12:03:44 I fixed a stupid bug in it yesterday (was overwriting another function's stack) 12:03:48 pav: here is #1 12:03:53 anyway, it might work better if you delete ata.drv 12:03:54 ah 12:04:25 nothing: I'll release a new binary fairly sooon 12:04:46 pav: here is #2 12:06:10 pav: see it? 12:06:42 got em, thanks 12:06:45 just looking 12:08:02 I changed only the line below // *** BUG? ... 12:08:27 m: did you try putting libgcc.a *after* lib.a on the command line? 12:09:42 yep 12:09:53 sorry, no 12:10:20 try that: it's like reverse logic. lib uses libgcc, so libgcc goes after it 12:10:28 ld ... ... ... ../tools/libgcc.a ../lib.a 12:10:53 that's what your screenshot says 12:10:57 try them the other way round 12:11:06 ld ... ... ... ../lib.a ../tools/libgcc.a 12:11:17 not before crtend.o? 12:11:34 not sure what crtend.o is... it might not come into this 12:12:04 there is a crtbegin.o, then all my .o files, then crtend.o, then libgcc.a normally 12:12:25 --- join: [G7G]Legend (jnock@A679d.pppool.de) joined #osdev 12:12:27 this is how a program normally is linked 12:12:28 <[G7G]Legend> hi 12:12:30 hi 12:12:41 lo 12:13:05 Mathis: I've never seen crtend; does it come before *all* libraries? try just swapping round lib.a and libgcc.a 12:13:18 ok 12:13:41 see info ld, they wrote about crtend/begin.o 12:14:41 hmm, I don't have any tools here in college (will check later) 12:15:36 ... undefined reference to 'abort', 'strcmp', 'malloc', 'free', ... 12:15:45 everything that is defined in my lib.a 12:16:14 ah... 12:16:22 so libgcc and lib depend on each other... 12:16:26 could be tricky 12:16:40 normally this worked, that's what I dont understand 12:16:44 <[G7G]Legend> huh? 12:17:13 --- join: ChillySpy (ChillySpy@ppp373.ppp8.cleveland.nccw.net) joined #osdev 12:17:18 I've never tried these circular dependency things (never needed to) so I'm not sure what the answer is 12:18:12 <[G7G]Legend> hmm 12:18:13 * pavlovskii can't remember anything about z-transforms from last year 12:18:25 (digital signal processing btw) 12:18:30 <[G7G]Legend> ld can't do this as far as I know 12:19:31 trying lib.a before crtend.o 12:19:37 failed... 12:19:43 ... undefined reference to 'abort', 'strcmp', 'malloc', 'free', ... 12:19:59 but not on OS target, on a later target 12:21:03 <[G7G]Legend> the lib.a then needs to appear after that target, too 12:21:31 so moving lib.a out of the crtbegin.o/crtend.o block 12:22:24 so the list looks now like this: crtbegin.o my_object_files.o crtend.o lib.a libgcc.a 12:22:32 <[G7G]Legend> yes, each function of a function archive (.a) gets thrown away if it wasn't referenced in any object which was passed before this archive 12:22:47 G7G: is that the rule? 12:22:48 <[G7G]Legend> I hope libgcc.a doesn't use functions from lib.a 12:22:51 <[G7G]Legend> yes 12:22:57 makes sense 12:22:58 <[G7G]Legend> process first item 12:23:06 <[G7G]Legend> know what is missing 12:23:12 libgcc.a uses some functions defined in lib.a 12:23:27 <[G7G]Legend> throw anything unused away (making it useless if it gets referenced later) 12:23:38 <[G7G]Legend> then lib.a has to appear after libgcc.a 12:23:56 ...but then terminate gets thrown away... 12:24:02 ok, redoing again 12:24:10 so the list looks now like this: crtbegin.o my_object_files.o crtend.o libgcc.a lib.a 12:24:22 <[G7G]Legend> does lib.a use anything from libgcc.a? 12:24:31 of course 12:25:04 <[G7G]Legend> ehrm 12:25:13 <[G7G]Legend> I think you can merge libs, right? 12:25:22 dunno, how? 12:25:29 <[G7G]Legend> with ar I think 12:25:41 what if you put a dummy reference to terminate from one of your object files, and put the command line to how it was to start with? 12:25:50 something like: int dummy = (int) terminate; 12:26:03 <[G7G]Legend> then it would work 12:26:19 <[G7G]Legend> btw, ld doesn't throw functions out of the list, only complete object files 12:26:21 I dont understand... how? 12:26:38 <[G7G]Legend> I'm just running windows and not linux, sorry 12:26:55 --- quit: ChillySpy (Killed (NickServ (Nickname Enforcement))) 12:27:05 if you reference terminate from a file that appears before libgcc, it will pull in exception.o (from libgcc) 12:27:13 <[G7G]Legend> yes 12:27:17 then lib.a will be able to see it 12:27:22 <[G7G]Legend> exactly 12:27:24 lez try that 12:27:27 <[G7G]Legend> I had those problems, too 12:27:36 problem is, libgcc!excetion.o is getting throw out because it's not used by *.o 12:27:52 but then I have to do that on every target and that is inacceptable 12:27:52 --- join: ChillySpy (ChillySpy@207.88.126.67) joined #osdev 12:28:06 coz nearly every target is an application 12:28:23 so merge libgcc.a and lib.a 12:28:27 I cant let the user developer write everytime a such line... 12:28:35 remind me, what is libgcc anyway? 12:28:46 yo pavlovskii 12:28:50 <[G7G]Legend> you can put a reference to terminate inside of lib.a itself 12:28:50 libgcc is a runtime library for gcc 12:28:52 I'd have the whole C library self-contained 12:28:55 hey cs 12:30:35 pavlovskii - hows the GUI comming 12:30:51 ok, libgcc.a merged into lib.a 12:30:53 same error 12:30:55 no change today -- just been playing with the IDE 12:30:59 fixed a memory leak 12:31:57 --- quit: pavlovskii ("Going home -- back in > half hour") 12:33:56 so how are the dependencies now? from last .o to first or vice versa? 12:35:44 hehe, now defined terminate() in the same module where ld cant find it 12:36:02 now it tells me that terminate was defined in libgcc.a first... 12:36:09 if I remove that line again... 12:36:41 In function '...' undefined reference to 'terminate(void)' 12:36:55 --- quit: ChillySpy () 12:37:35 so how can THAT be??? 12:38:40 <[G7G]Legend> type-safe linking 12:39:26 ??? 12:41:41 man 12:41:43 OPN rocks 12:43:02 <[G7G]Legend> what is the type of terminate? 12:46:06 void terminate(void) 12:46:31 <[G7G]Legend> well you haven't written a prototype in the function referencing terminate right? 12:46:46 <[G7G]Legend> the "normal" type for a function is int terminate (void) I believe 12:46:57 it's not me using terminate(void), I dont even know for what it is... 12:47:06 <[G7G]Legend> and int terminate (void) is not the same as void terminate (void) for ld 12:47:09 it's the compiler inserting this buildin function 12:47:10 <[G7G]Legend> add a prototype 12:47:57 extern void terminate(void); 12:48:24 ==> undefined reference to 'terminate(void)' 12:49:41 same result as leaving this line 12:49:50 <[G7G]Legend> ? 12:49:50 removing, I meant 12:51:18 <[G7G]Legend> I don't know why this now happens ... 12:51:25 me too 12:54:29 --- join: ChillySpy (ChillySpy@207.88.126.129) joined #osdev 12:54:55 where did pavlovich go? 12:55:17 i mean pavlovskii 12:55:52 dunno 12:56:12 did he go... like say good by... or did his connection die again 12:56:24 <[G7G]Legend> *** pavlovskii has quit IRC ("Going home -- back in > half hour") 12:56:30 hehe 12:56:31 ok 12:56:31 thanx 12:56:54 hes pretty kewl 12:57:24 dont u agree 12:57:28 heh 12:57:54 re 12:57:58 --- quit: gpf ("Client Exiting") 12:57:59 <[G7G]Legend> what is in that libgcc.a? I thought you write an OS? 12:58:18 libgcc.a is needed by gcc 12:58:35 <[G7G]Legend> and what is in it? 12:58:44 else there are missing very important functions for using virtual overloading and so on 12:58:59 it comes with gcc 12:59:20 [G7G]Legend: functions that perform operations not supported by the hardware 12:59:21 it is linked with every program you are compiling with gcc 12:59:34 for example, 64-bit divition on a 32-bit platform 13:00:08 <[G7G]Legend> really? there is such a file? 13:00:24 usually in /usr/lib or so 13:01:23 on my Linux-box it is in /usr/lib/gcc-lib/i486-suse-linux/2.95.2/ 13:01:26 <[G7G]Legend> hmm 13:04:13 hard problem, huh? 13:06:13 <[G7G]Legend> yes 13:06:32 <[G7G]Legend> i have written those functions myself as far as it was needed (like _ftol ...) 13:10:14 of course, those arent that hard to implement, but how about __rtti_si and so on? 13:11:48 <[G7G]Legend> hmm 13:11:49 <[G7G]Legend> :-) 13:11:54 <[G7G]Legend> why rtti in an os? 13:12:56 to virtually overload functions in classes 13:13:10 <[G7G]Legend> what? why do I need rtti to do that? 13:13:32 --- join: pavlovskii[work] (pavlovskii@modem-746.babbelas.dialup.pol.co.uk) joined #osdev 13:13:40 --- nick: pavlovskii[work] -> pavlovskii 13:13:51 I think so, yep 13:13:57 hi all 13:15:38 <[G7G]Legend> why? at least in msvc you don't need any rtti for virtual functions 13:16:09 --- quit: ChillySpy () 13:17:41 msvc needs msvcrt.dll 13:17:54 <[G7G]Legend> well but I looked at the asm-output 13:18:08 did you disasm C++ code? 13:18:17 with virtual overloaded functions and so on? 13:18:19 <[G7G]Legend> I traced it with the debugger 13:18:21 Mathis: not necessarily 13:18:22 I did osdev with msvc for a while 13:18:31 <[G7G]Legend> virtual function -> 2 jumps 13:18:40 jumps to where? 13:18:41 <[G7G]Legend> okay one 1 jump, one call 13:19:06 <[G7G]Legend> first jump to the table of virtual functions for the object 13:19:19 <[G7G]Legend> this is simply an array of call instructions 13:19:32 Legend: huh? you talking about VC++ here? 13:19:40 <[G7G]Legend> yes 13:19:49 so what function generates this virtual function table? 13:19:58 I'm sure VC++ vtables are just arrays of function pointers 13:20:13 <[G7G]Legend> pav, exactly 13:20:21 so how does the program know which function to call? 13:20:22 it does mov eax, [object] / call [eax+fnid*4] 13:20:23 <[G7G]Legend> the compiler generates those tables 13:20:33 <[G7G]Legend> yes 13:20:35 Legend: oh, I see what you were getting at 13:21:08 which compiler outputted the code that you disassembled? 13:21:15 <[G7G]Legend> msvc 13:21:28 which one did the jmp+call? 13:22:05 <[G7G]Legend> the normal ms vc 6 c++ compiler 13:22:15 <[G7G]Legend> I think it was a jump 13:22:22 who cares about C++ ? :) 13:22:30 cookin: I do 13:22:50 <[G7G]Legend> well, at least, there was no rtti 13:23:11 vc++ should output indirect calls for virtual functions; it uses a jmp table for incremental linking, though, which is separate 13:23:23 <[G7G]Legend> huh? 13:23:23 the fn pointer in the vtable might point to a jmp instruction at the start of the exe 13:23:32 the linker puts these there 13:24:13 <[G7G]Legend> okay, however, still no rtti, right? 13:24:16 --- quit: [G7G]Legend () 13:24:58 * pavlovskii shouts after Legend: "yes" 13:32:54 does anyone here run Mandrake Linux? 13:33:25 depends, do you see any weeners? 13:34:26 SuSE Linux 7.2 here 13:35:40 i'm implementing signals. 13:35:49 cookin: what linux distro do you use? 13:36:19 --- join: amit (user-jLIiv@cpe-66-1-144-139.ca.sprintbbd.net) joined #osdev 13:36:30 RedHat, of course :) 13:36:34 hehe, signals? 13:36:43 corsairk8: yeah, SIGTERM you know :) 13:36:43 a real operating system uses not signals :) 13:36:49 well see 13:36:51 especailly the posix crap :) 13:36:55 cookin is basically reimplementing unix 13:36:58 ;/ 13:37:00 haha 13:37:04 i use messages 13:37:12 a unified interprocess communication system 13:37:22 well 13:37:45 i sure do 13:37:50 ah well 13:38:49 I never saw the point of signals... just a way of notifying a process of something happening, right? 13:38:52 nothing: and you're doing? 13:39:07 pavlovskii: basicly, yeah 13:40:29 im basically basing everything on a windows message pump :) 13:40:45 with the exception of exceptions ;) 13:40:47 (pun intended) 13:40:55 which are of course hooked up to defined callbacks 13:41:04 i call fault handlers 13:41:25 for each type of fault, ie, page fault, stack fault, floating point fault, the same handler is called 13:41:35 and it allows the process to bring itself down safely 13:41:53 of course my os will do a great job of clearing up used resources even if an application screws up 13:42:42 nothing: You know what my goal is, and for that I need posix comapt, okey! 13:42:46 and if the fault occurs in the down-bringing code? 13:43:12 heh 13:43:16 cookin got all defensive 13:43:33 sure did 13:44:03 probably drunk again 13:44:05 ;/ 13:44:42 haha 13:44:45 no :) 13:44:48 hangover though 13:45:20 signals really are an ugly hack though 13:45:44 in an ideal os, the posix system with all its shortcomings would be implemented in a compatibility layer 13:45:49 not used as the core of the os ;/ 13:46:12 yeah, signals suck 13:48:05 its unfortionate that signals have to be implemented 13:48:19 but when i do it, they will implemented only in my posix subsystem 13:48:26 that's the way to go 13:48:28 if you can do it 13:48:36 more work than just reimplementing a unix os though 13:48:41 well, Nova is a straight old fashion posix-server 13:48:57 posix is ancient history 13:49:24 i'd rather see a so-so innovative os than a really great posix os, to tell you the truth ;/ 13:50:14 nothing: re posix compatibility layer, agree totally 13:50:15 --- quit: Mathis ("connection reset by beer") 13:50:36 basing a new OS *around* POSIX is imo too restrictive 13:50:47 corsairk8: not really. I think the last revision of the posix standard is from 2002 13:50:47 definitely 13:51:03 Posix specs: http://www.opengroup.org/onlinepubs/007904975/toc.htm 13:53:00 nothing: I think you should talk less and write more code instead :) 13:53:14 cookin: i can't 13:53:18 cookin: i don't know how to code ;( 13:53:54 :) 13:54:48 the last time i wrote a program was in like 1996-1997 for my BASIC class in school 13:54:53 a big game 13:58:31 you serios nothing? 13:58:46 you have the ordacity to insult me every day about certain activities 13:58:54 and you cannot even code c, c++, asm, java or php? 13:59:10 yup 13:59:39 i see 13:59:51 yahoo, vterm is working agian!!1 13:59:53 life is good 14:00:12 its buggy, but then again i did switch to an entirely different data structure 14:00:21 vterm? 14:00:26 although it should be tons more optimal when writing to non-active ones 14:00:26 are you implementing a full posix terminal? 14:00:31 nope 14:00:33 i have standards like vt100 14:00:40 im still using my own proprietary event system 14:00:55 nothing: do you know in linux you have different terminals, that you can switch from using ctrl and f1-f8 ? 14:01:06 so it's going to be a full vt100 terminal? 14:01:16 vt100 compliant 14:01:16 s/have/hate!!! 14:01:45 im not using a vt100 terminal for this, ive defined my own system for handling each key on the keyboard 14:01:52 it can be translated to vt100 or whatever later on... 14:02:12 corsair8k: are you using unicode for this thing? 14:02:34 no 14:02:40 unicode rocks 14:02:44 you should, if only UTF-8 14:02:55 unicode is a must for any modern OS :) 14:02:56 im using 8-bit character formats for all kernel-stuff 14:02:58 otherwise, all it takes is for some Russian dude to come up, and boom! 14:03:06 large parts of the windowing system will/already does consist of unicode 14:03:13 pavlovskii: boom! = ? 14:03:20 but because i cant control fonts on the vga 80x25 console 14:03:23 i dont see the point 14:03:25 Möbius uses UCS-2 (i.e. 16-bit characters) internally, although data to/from devices is UTF-8 14:03:29 im stuck with the code page they use there 14:03:41 nothing: boom! he types stuff on his Russian keyboard, and it doesn't work 14:03:46 c8k: exacly 14:03:55 lol 14:04:00 using unicode does away with code pages, until you start talking to the outside world 14:04:32 ot: here's a picture of a russian keyboard. you will note that the cyrillic letters are even in red... 14:04:35 http://www.york.ac.uk/inst/ltc/lfa/kbd.jpg 14:04:38 :) 14:05:17 * pavlovskii doesn't usually collect pictures of other peoples keyboards; he just did a Russian keyboard layout to test his keyboard driver 14:10:26 corsairk8: unicode isn't much fun on a VGA text console, I must admit 14:12:52 heh 14:13:58 yup 14:14:09 i havent put much thought into stuff like that 14:14:20 but ill definately have some unicode translation in omkgui 14:14:32 as well as full internationalisation 14:14:39 all thought out 14:14:52 but seeing as i havent even got a font engine working, its all quite premature 14:15:42 anyway, it's worthwhile enabling everything for unicode 14:15:52 even if it's just making sure everything works with UTF-8 14:16:09 (i.e. moving to the next character in a string is more than just ch++) 14:16:27 I decided to go for wchar_t = 16 bits because it kept the size of each character constant 14:16:36 at the expense of some memory per string 14:16:50 im going for 2-byte strings too 14:17:02 the waste doesn't amount to much unless I start holding huge buffers in memory (e.g. text editor), for which I'll use UTF-8 14:18:19 how do you intend to implement internationalisation? 14:20:06 i have no idea 14:20:34 for kernel-level debug messages no internationalisation 14:20:53 right, because, under normal circumstances, the user shouldn't see *any* kernel output 14:20:59 right? 14:21:01 yes 14:21:02 of course 14:21:16 i have two logger modules 14:21:23 one shows all the debug messages, the other just shows errors and notices 14:21:28 which are far and few apart 14:21:35 (ie, only when something goes wrong early on) 14:22:08 then the kernel can use message boxes and dialogs to show most problems 14:22:13 one of the things I dislike about Linux, for example, is the amount of guff that appears when you do pretty much *anything* 14:22:23 NT seems to fix this by putting it into an event log 14:23:18 hehe 14:23:19 yup 14:23:27 ill be doing something simular 14:23:40 its really the smart way to do things 14:23:59 nobody (except kernel hackers) care about the shti on the screen when booting up 14:24:05 if you wanna find that out then use the gui tools 14:24:27 for me its quick initialisation, and into window manager within 2 seconds 14:24:41 of course varying depending on what modules are loaded 14:24:53 but i want to truely revolutionise my os by making bootup almost unnoticably quick 14:24:55 no fsck'ing shit 14:24:57 no messages 14:25:04 and when shutting down, its equally quick 14:25:05 pavlovskii: those issues with linux are wholly remediable 14:25:14 pavlovskii: try configuring syslog to your liking 14:25:31 1/4 of a second to leave the video mode, blank the screen, and maybe another second to flush hd caches and cleanup varios core modules 14:25:42 hmm, syslog nothing? 14:25:45 hahaha 14:25:50 configuring syslog 14:25:52 hahaha 14:25:56 thats what you linux guys always say 14:26:01 oh, well try configuring this or that 14:26:03 um 14:26:07 but in the end, it takes hours of sniffing around files to do that 14:26:15 your lucky if you dont have to recompile the entire kernel 14:26:24 uh 14:26:28 configuring is never as simply as it sounds 14:26:31 `vi /etc/syslog.conf` 14:26:34 simple as that 14:26:37 corsairk8: agree :))) 14:26:39 hmm anyone knows of a decent 68k emulator? 14:26:46 dax: BasiliskII 14:26:51 runs MacOS 7.6 ;) 14:26:58 can i do it within 10 mouse clicks? 14:27:03 what do we think: window manager in the kernel, or as a separate user process? 14:27:16 i dont have a clue what /etc/syslog.conf has to do with it 14:27:24 but i gurantee you its not as quick or easy as it could be 14:27:42 and i hate unix people calling me stupid because i dont spend hours learning pointless things 14:27:46 which are quite honestly stupid 14:27:59 * pavlovskii chuckles 14:28:04 ck8: you ever used BeOS? 14:28:11 ive heard of it 14:28:13 i hear its a great os 14:28:16 corsairk8: well you can't do it in 10 drools 14:28:28 make sure you download the Personal Edition from www.bebits.com 14:28:39 in my opinion, getting linux the way you want it to work, is unrealistic 14:28:41 ~45MB download, available as a Windows EXE or a Linux... whatever 14:28:43 you could spend weeks configuring tweaking and fixing 14:28:46 hmm 14:28:50 and you would still have a shoddily made hacked up piece of crap 14:28:54 gives you a 500MB file on your FAT partition and a boot disk 14:29:01 pavlovskii: i might later on 14:29:07 hmm i see pavlovskii 14:29:08 i still have BasiliskII around heh 14:29:20 sounds great 14:29:27 only trouble is, since beos is officially dead, it's up to the community to support it 14:29:32 drivers can be a problem 14:30:08 ah 14:30:13 it sounds absolutely great 14:30:18 but without an open source system how can you possibly do that? 14:31:07 --- quit: darkito (Read error: 113 (No route to host)) 14:31:44 --- join: Mathis (Mathis@gstw-d9b89f19.pool.mediaWays.net) joined #osdev 14:31:49 hmm... are there any ppc emulators btw? 14:32:05 re 14:32:09 corsairk8: writing drivers is possible, but new releases are out of the question unless (a) OpenBeOS takes shape or (b) Palm releases the source 14:32:17 http://openbeos.sourceforge.net/ 14:32:46 --- join: geist (~geist@tkgeisel.com) joined #osdev 14:32:54 * geist looks around 14:33:09 heya geist 14:33:13 howdy dax 14:33:32 speaking of Be... 14:33:38 that /me looks around is almost as annoying as 'om' :-) 14:33:57 * dax looks around 14:34:02 really? 14:34:11 nothing : fair enough. it's less irritating than 'yarg' 14:34:17 nah, i'm just joking, but geist does everytime he joins #osdev :) 14:34:26 it's not that 'om' is so irritating, it's that it happens 50 times a day with AlonzoTG 14:34:33 heh yeah 14:34:46 it's his "heh" i suppose 14:35:17 heh... my FAT driver thinks the root directory is located 8GB into a 1GB drive... 14:42:06 Mathis: did you get your linking problem sorted in the end? 14:43:08 thats smart pavlovskii :) 14:43:37 do you think its possible to write filesystem drivers that cannot crash the kernel even trying to mount rubbish/currupted file systems? 14:43:46 * corsairk8 is faving a design dilemma 14:44:31 the real question is: is it possible to write drivers that cannot crash the kernel even when given bollox parameters? 14:44:46 under a monolithic kernel, it's hard 14:45:20 yes 14:45:41 corsairk8 : yes it is possible, though hard 14:45:51 well, depends, if each driver is a seperate process 14:45:59 --- join: Aardappel (~Aardappel@pD9E6AE1A.dip.t-dialin.net) joined #osdev 14:46:05 no, it's just hard 14:46:17 the code just needs to have sanity checks all over the place 14:46:27 corsairk8: if each driver is a separate process then, in theory, the worst that can happen is it will crash itself 14:46:43 I've personally done it on shipping filesystems (ntfs, ext2, fat, bfs, cfs in BeOS) 14:47:11 geist: cfs? 14:47:20 in beia, post beos r5 14:47:33 which i find slow and ineffeicent 14:47:33 however, i have an idea 14:47:33 basically, ill implement ext2fs and omkfs, as well as maybe vfat, as stably as possible 14:47:33 and then implement a file system extension layer that will allow user-space processes to interface with the vfs 14:47:35 yes pavlovskii 14:47:39 but my aim is speed 14:47:41 although i think litering asserts() and using sensible maximums whenever possible is better 14:47:45 you might lose speed, but its tiny in comparison to seperate processes 14:47:52 here's another way to look at it: 14:47:55 hm, same with any driver 14:48:04 --- quit: wjorzk (Connection timed out) 14:48:19 any time you spend in the filesystem doing sanity checks or whatever is completely obliterated by the time spent waiting on the driver to read a block 14:48:48 I think the primary goal of any shipping-quality fs is to be stable first, performance later 14:48:51 --- quit: Mathis ("connection reset by beer") 14:49:24 put as many asserts in the code as you can, put as many error checking cases as you can, that's far far far better than having it crash 14:49:25 what do you mean? 14:49:30 and in the end it wont matter 14:49:34 thats my idea 14:49:41 in terms of speed 14:49:43 simular to how make a client or server accept network input 14:49:47 you must check everything is correct 14:49:57 im thinking that when reading a filesystem, you need to check everything 14:50:08 right, that's absolutely right 14:50:09 if a byte should be set a certain way, dont omit the check, check it 14:50:10 assume it's corrupt 14:50:23 but i cant assume driver vendors are going to be that nice 14:50:30 so my idea was creating a filesystem that is basically a slave 14:50:40 so if you wanna write a magicfs, you can make a user-space server 14:50:42 and in the end the time spent is negligable, because you'll spend orders or magnitude time waiting on the disk to give you blocks 14:50:44 and then the vfs will call that 14:50:50 albeit much slower than normal 14:50:57 whats the gain? 14:51:03 yes your right geist 14:51:06 but ill also have alot of caching 14:51:13 well, you see 14:51:17 ck8: a user-space server in a central process? 14:51:23 or have the FS code in a library? 14:51:38 its usually user space application -> syscall to kernel vfs -> vfs contacts filesystem -> file system contacts disk/block device 14:51:59 (minix model) 14:52:06 ill do that for major filesystem, for example, zipfs, tarfs, ext2fs, cryptfs, omkfs 14:52:19 then for minor filesystems, where speed isnt crucuil (ie, it isnt a bootup or system partition) 14:52:24 but also provide a user space fs? that makes sense 14:52:49 you can do it without any modification, just write a usfs that calls into a process 14:53:00 that was done at Be to support the windows networking browser 14:53:06 which goes app -> syscall/vfs -> vfs contacts file system manager [ -> back to user space ] file system manager reads data [ -> back to kernel space ] -> disk driver loads data 14:53:08 which was implemented in a user space app 14:53:16 cryptfs eh? 14:53:33 why not just implement an optional cryptography layer for each fs? 14:53:38 you can write the slowest most crappy filesystem and all you have to worry about is the userspace fs provider doesnt crash (cause if it does, the kernel wont be able to furfill the request) 14:53:44 geist: what about cacheing? if the data are cached, there's no point switching back and forth 14:53:48 nothing: nah, not a good idea 14:53:55 corsairk8: why not? 14:54:05 it will break compatability 14:54:28 interesting idea :) 14:54:32 but i dont think so :) 14:54:35 pavlovskii : possibly, but it's hard to tell if the data has changed 14:54:54 caching is the big trick and adds all the complexity you can deal with 14:55:00 and then more 14:55:10 i plan on inode caching (on the vfs layer) and block caching (on the disk layer) 14:55:11 heh... I'm about to deal with that again 14:55:17 ie, ramdisk wont cache at all 14:55:24 so you'll do the traditional block cache? 14:55:24 floppy would cache a little 14:55:30 src/kernel/cache.c:3 /* xxx - what if block_size > PAGE_SIZE? */ 14:55:30 --- join: d-bug (~tommy@as1-6-7.an.g.bonet.se) joined #osdev 14:55:33 cdrom and ide/scsi would cache as much as possible 14:55:55 and optionally, each file system may cache its meta-data/superblock/filedata 14:55:58 cacheing hm 14:56:02 corsairk8: would you cache at the device level or at the file level? 14:56:06 geist: how do you do cacheing in zfs? 14:56:19 newos does/will do caching at the file level 14:56:22 above the filesystems 14:56:29 pavlovskii: both 14:56:33 the VM will cache contents of files 14:56:57 basically, my block drivers, will contact the vfs and request blocks of cache 14:57:02 it basically locks it 14:57:03 writes to it 14:57:06 and unlocks it 14:57:10 interesting 14:57:16 geist: no inode caching/block caching? 14:57:16 hwoever, if its reused for something else, the lock wont re-establish 14:57:18 corsairk8: I only cache files; I reckon that if people want to read/write the raw disk, there's no problem in forcing them to do it in 512-byte increments 14:57:23 it's terribly complicated, but it has a benefit of centralized memory managment and good utilization of memory 14:57:23 and thus, it will need to reload it 14:57:33 nothing : inode caching is somethign else, but no block caching 14:57:41 it also tracks the exact time when the block is locked/unlocked 14:58:00 pavlovskii: i guess 14:58:06 file caching = memory mapping = executable file loading 14:58:17 correct, pavlovskii is doing the same thing as I am 14:58:30 it's pretty much the direction that everyone is moving towards 14:58:36 --- quit: df ("syntax: Ja matte ne!") 14:58:39 except mine won't work (yet) for block_size > PAGE_SIZE :$ 14:58:42 but the idea's there 14:58:46 most big oses are going or have gone in that direction 14:58:49 i say, cache a bit on each level :) 14:59:02 but dont over-do the caching 14:59:05 you want fast memory access 14:59:11 caching at the block level makes caching of metadata (i.e. non-file data) easier 14:59:21 you also have to remember that this is a desktop-based os 14:59:45 yes, metadata caching is a lot more difficult, unless you design the filesystem that way 14:59:47 so caching will be limited 14:59:54 hmm 14:59:56 it can be geist 15:00:06 the main reason I put in caching at first was to make reading of 32KB clusters on a 512 bps device easier 15:00:25 my fs (zfs) is pretty similar to ntfs in design, so the file caching of metadata is much much easier 15:00:39 ntfs is designed totally around that concept, and so has all the metadata covered by files 15:01:02 fat can be done that way too, since it's easy to build fake files to cover the fat and other metadata 15:01:11 --- join: pavlovskii_temp (pavlovskii@modem-806.arcanine.dialup.pol.co.uk) joined #osdev 15:01:12 --- quit: amit ("quits") 15:01:16 and so the file caching mechanism can be reused to cache metadata 15:01:21 damn BT 15:02:01 --- quit: pavlovskii (Killed (NickServ (Nickname Enforcement))) 15:02:24 unix filesystems are hard to get to metadata with the file caching mechanism, since the indirect/double-indirect blocks are allocated from anywhere 15:03:19 --- nick: pavlovskii_temp -> pavlovskii 15:03:21 solaris ended up just adding a small traditional block cache to cache metadata 15:03:30 in addition to the file caching scheme 15:03:56 NTFS gives FILE records to each piece of metadata (even the boot sector) 15:04:03 not sure if that is to make caching easier... 15:04:26 the FILE records are 1024 byte records inside a larger file, the MFT 15:04:40 and so the file caching system can be used to cache them 15:05:07 there are actually a bunch of hidden files in the root directory of an NTFS partition ($MFT, $BOOT, $BITMAP, etc) 15:05:22 absolutely all used space on an ntfs partition is covered by a file in some way 15:05:22 geist: do you know what the size limit is for storing a file in its own FILE record? 15:05:30 around 900 bytes 15:05:50 .lnk files (shortcuts) ought to be zero-cost, then 15:05:58 Explorer reports each one as taking 4KB of space 15:06:01 I know a lot about ntfs, I wrote the ntfs driver that's included with beos 15:06:24 did Microsoft give you any info, or did you end up hacking the Linux sources? :) 15:06:45 looked at some of the linux docs, though at the time they were quite incomplete 15:06:48 the rest I figured out 15:07:06 the linux ntfs driver is garbage, I didn't look at it at all 15:07:09 why is it that writing to NTFS is so much harder than reading? 15:07:28 geist: How the FreeBSD NTFS driver compared to Linux' one? 15:08:13 ntfs is terribly complicated relative to most other filesystems, since it's so flexible in how it's layed out 15:13:16 dont know much about the freebsd ntfs driver, it's been years since I messed with that stuff 15:13:21 and I'm sure it didn't exist then 15:13:52 the other big keeper from RW ntfs implementations is not all the stuff is figured out 15:14:07 namely the journalling stuff is not completely documented 15:14:09 *sigh* 15:14:23 i wish there were some good, thorough ntfs docs 15:14:37 the journalling stuff is very complicated, and probably hard to fit into a unix model 15:14:44 the security stuff is definitely that way 15:15:01 yep, though there's plenty enough to do a good read-only implementation 15:15:13 the beos one was very stable, I was quite proud of it 15:15:45 but all in all I'm very happy with ntfs as a design. it's certainly more complicated, but it's very well thought out and very extensible 15:16:30 a lot of the NT stuff is that way, interestingly enough 15:16:44 yes 15:16:56 geist, do you know Dru Nelson? 15:17:55 no 15:18:00 doesn't ring a bell at all 15:20:29 The NTFS driver in FreeBSD is from 98, and is probably imported from NetBSD 15:20:44 interesting 15:20:52 well, I guess I wasn't looking at freebsd back then 15:21:04 a guy called "Semen" wrote it 15:21:10 I was using mostly linux at the time 15:21:14 heh 15:21:31 Linux == ignorance by dogma 15:21:53 just like Windows is 15:21:54 Hi all... I need to know how to get a, when I know (a mod b), and that gcd(a,b) = 1 15:22:14 Can't figure out how an algorithm to do that would look :/ 15:22:40 gcd? 15:22:49 greatest common diviser 15:23:16 getting into some asymetric encryption techniques? 15:23:27 Yah, playing with RSA :) 15:23:28 is there something in libm for that? 15:23:30 hehe 15:23:37 thats quite difficult to do really 15:24:05 corsairk8: Difficult as in complex or time-consuming? 15:24:29 I saw an example of how to do it. 15:24:38 But I can't figure out how to make a general algorithm 15:25:08 complex :) 15:25:14 Using Euklides' algorithm 15:25:14 and time-consuming 15:25:24 relatively of course 15:25:25 Nah...then RSA wouldn't exist, ck8 :) 15:25:37 thats why its so slow encrypting large files 15:25:40 they use lots of optimisations 15:25:51 This is in the key generation part, dear :)= 15:25:55 oh lol 15:26:01 generating a key is quick :) 15:26:13 The encryption is mostly a matter of "a^b mod c" :P 15:26:40 is it? 15:26:43 heh, amazing 15:27:17 So... 15:27:20 you don't know? 15:28:21 i dont haev a clue 15:28:28 its been so long since i did cryptograpy 15:28:33 i only know the basics 15:28:38 block sytharz 15:28:47 (ciphers for those who prefer to spell conventionally) 15:28:52 the 'mod' will suck on cpus with no divide 15:29:13 cpus with no divide have no business doing cryptography geist :) 15:29:16 geist: I have a decent CPU :-) 15:29:24 there are lots of cpus with no divide 15:29:30 presumably geist is running RISC 15:29:32 im not saying there isnt 15:29:46 im saying its dumb running it on those 15:29:53 yeah 15:32:10 what chip? 15:32:26 ah, you're not necessarily running one now 15:32:30 http://www.fivemouse.com/gba/diary.html <-- OMG! This is, what I call, a great project! 15:32:34 * d-bug wonders if ext3fs is even a bit better than ext2fs if the system crashes... 15:32:57 it fucked the fs pretty good when I turned the power off. 15:34:54 Rico: Nice! 15:38:47 --- join: Mathis (Mathis@gstw-d9b89f02.pool.mediaWays.net) joined #osdev 15:39:27 --- quit: d-bug ("Client Exiting") 15:39:34 re 15:39:35 hm 15:39:42 i've got to try ext3fs and reiserfs 15:40:12 anyway, Dru Nelson is writing the Cel VM 15:40:17 a very interesting project, imo 15:40:23 in the credits he mentions Brian Swetland 15:40:27 as having tested Cel 15:40:28 ;) 15:40:34 cel vm? 15:40:51 yes 15:40:58 what is that? 15:41:01 virtual machine for a language similar to Self 15:41:10 www.redwoodsoftware.com/cel 15:41:22 lez c 15:41:33 does not exist 15:41:47 er 15:41:50 redwoodsoft.com 15:41:59 www.redwoodsoft.com/cel 15:43:59 strange language... 15:47:23 --- quit: Aardappel (Read error: 110 (Connection timed out)) 15:49:05 here's a hint: once it's written (and tested), don't play with your memory manager :) 15:49:17 I got a scare: I changed something, and it stopped working... 15:49:32 luckily it was a mistake in some 'if' statement logic 15:50:18 pav: same here but with the difference that it doesnt like void terminate(), you know... 15:50:47 I was working on implementing some kernel function to execute ELFs 15:52:15 --- join: nbsp (g@ip68-14-60-7.no.no.cox.net) joined #osdev 15:52:48 then wanted to test it; bam... terminate() not defined... I think I'm on the right way... 15:53:56 Mathis: been there too many times... (as I'm sure most of us have) 15:55:37 but not with such errors, or? 15:56:40 I've had that linker error a few times, but I've never tried to link two libraries that referenced each other 15:57:06 what is it in libgcc that you need and that you can't port to your own library? 15:57:09 I've never had problems with linking it 15:57:43 the problem is that the code that gcc generates, uses functions which are implemented inside this libgcc 15:58:03 really? mine doesn't 15:58:05 what functions? 15:58:33 lez c 15:58:41 what compiler are you using? 15:59:00 gcc 2.95.3-5 (cygwin) 15:59:41 I think cygwin uses a dll for that 16:00:04 yes, cygwin1.dll 16:00:10 but The Möbius doesn't use it. I had to write libc.dll 16:00:22 and what does libc.dll contain? 16:00:37 any C library functions I've needed so far 16:01:07 it is possible to write code that doesn't use any gcc library functions 16:01:20 sometimes it puts in references to its own functions, especially in C++ mode 16:01:30 e.g. exceptions require a lot of external help 16:01:40 ditto rtti iirc 16:01:59 and here they implemented it into libgcc.a 16:02:23 yeah, so ditch libgcc.a (you don't know what Unix stuff it's doing behind your back) and implement those functions in your own lib.a 16:03:56 if I leave away libgcc.a, ld tells me not to know __throw alot, also terminate(), also __rtti_si, __rtti_user 16:04:12 all these functions are implemented in libgcc.a 16:04:14 are you actively using exceptions? 16:04:20 no 16:04:27 only virtual function overloading 16:04:29 then disable them: gcc -fno-exceptions 16:04:33 also -fno-rtti 16:04:40 hang on, I'll find my makefile 16:04:56 yep, that's it 16:05:16 it tries to use exceptions because new is supposed to throw something if it runs out of memory 16:05:16 but I need RTTI 16:05:26 I'm sure you can find a way around it 16:05:39 of course; writing a new compiler 16:05:40 is this in the kernel, or in an app? 16:05:50 you don't need RTTI for most C++ programs 16:05:51 it's in the kernel 16:06:08 ok, it's your kernel, and it's up to you 16:06:15 but in front of my keyboard I'm cringing :) 16:06:20 I think RTTI is used to identify the member function inside an object 16:06:38 it shouldn't be needed in 99% of cases 16:06:56 for virtual functions, the object gets a virtual method table which contains pointers to each virtual methos 16:07:07 non-virtual functions are effectively the same as C global functions 16:07:30 I dont understand why the linker gives me such errors, I didnt change anything of that kind 16:07:44 which ones? the terminate one? or the __throw etc.? 16:07:52 terminate 16:08:04 that I think is a by-product of exception handling 16:08:11 it gets called if everything goes wrong 16:08:15 lez try that 16:08:21 you can turn it off with -fno-exceptions 16:08:34 but then it's up to you to handle a failed call to 'new' 16:08:48 hehe, malloc is written by myself 16:08:57 a simple ptr-increaser... 16:09:02 right now 16:10:05 cool, now it compiles 16:10:28 would be nice if I could remember what I wanted to test right now... 16:14:32 links as well? :) 16:14:47 yep, also finished linking... 16:15:02 nice. so presumably it's stopped needing terminate now. 16:15:34 yeah... until the next function it will need, and so on... 16:16:08 tsch. can you tell which functions it's trying to drag in from libgcc? there should only be a few 16:16:31 what do you mean? 16:17:39 well, I don't remember doing anything with libgcc. if it was missing a function (like __builtin_new) I implemented it 16:17:59 I'm just trying to find my copy 16:18:21 writing a C kernel doesnt require libgcc... 16:18:47 wow! all the functions I was missing! 16:18:54 looks like exception handling, rtti 16:19:01 and, above all, large integer division! 16:19:02 correct 16:19:11 * pavlovskii needs to find the source to this mystical library 16:19:23 also alloca and chkstk 16:20:17 you'll find it inside the source tree of gcc 16:21:05 ok, here's a list of the functions I wrote to get basic C++ working: (no exceptions or rtti) 16:21:11 void *operator new 16:21:16 void operator delete 16:21:20 void *operator new[] 16:21:26 void operator delete[] 16:21:34 extern "C" void *__get_eh_context(void) 16:21:43 dunno what that last one is; it might not be needed 16:21:59 except the last one I have the others too 16:22:10 if you have global objects you'll need to call their constructors on startup 16:22:27 the compiler puts in a call to atexit in said constructors in order to destruct them on exit 16:22:35 so you'll need that; should be fairly standard though 16:23:44 I simply call .init before I jump to the main entry address, using a ELF file, it's easy 16:23:50 ah, ok 16:24:18 cygwin has the __CTOR_LIST__ and __DTOR_LIST__ arrays of function pointers 16:24:34 still, fairly trivial 16:24:35 it's gcc 16:24:54 should be the same thing 16:24:54 does your gcc keep __CTOR_LIST__ in the .init section? 16:25:21 I think so, yep 16:26:26 right... cygwin PE executables don't seem to have .init so you have to call through the constructors manually 16:27:11 you need to know where your __CTOR_LIST__ reside and simply call it, until the list pointer reaches NULL 16:27:35 ah, I see... 16:27:44 the compiler puts constructors in a .init section in the object files 16:28:11 the cygwin linker script puts all the .init's in some section (.text?) and puts __CTOR_LIST__ at the start 16:28:32 (for whatever reason, the Cygwin dcrt0.cc startup code runs them backwards) 16:29:02 that's what gcc does 16:29:16 and dtor's list forward 16:29:43 makes sense 16:31:39 mmm 16:37:08 --- join: caereth (caereth@lgh022a.robackshus3.ac.se) joined #osdev 16:41:32 do any ops hang around here? 16:41:39 I just noticed the channel topic isn't spelled right 16:44:12 it isn't? 16:45:14 "DEVelopement" should only have 3 e's (there's an extra one after the 'p') 16:45:23 ok, so I'm being pedantic 16:45:31 ahh, to tired to see things like that :-) 16:46:45 gotta go to bed too 16:46:47 cu all 16:46:59 night 16:47:12 --- quit: Mathis ("connection reset by beer") 16:51:48 arg 16:51:52 my vterm system is screwed 16:51:56 i think ill have to start again :) 16:52:20 haehehe 16:52:33 hm 16:52:35 --- nick: nothing -> morton 16:52:39 corsairk8: so what's your vterm system like? is it a kernel driver? user module...? 16:52:47 its part of the kernel at the moment 16:52:53 bah 16:52:56 i don't have ops here anymore 16:52:58 --- nick: morton -> nothing 16:53:39 sure u do 16:53:53 aww 16:53:54 damn 16:56:39 it boots! :) 16:57:14 now, let's see if I can get to the files on the hard disk 16:57:30 wow! a directory listing! 16:57:53 wow! almost a subdirectory listing! (file names are screwed...) 16:59:46 :) 16:59:50 wow well done 16:59:52 here's an idea: 16:59:52 what os is this? 17:00:03 The Möbius (http://www.themoebius.org.uk/) 17:00:09 cool 17:00:22 I'd like to assign a MIME type to each file, a la BeOS 17:00:39 would it be cool if I dropped file extensions on FAT volumes and assigned MIME types to each file? 17:00:50 or would that be too Windows 95? 17:01:02 uhm 17:01:04 that sounds dumb :) 17:01:49 --- join: pavlovskii_temp (pavlovskii@modem-727.beedrill.dialup.pol.co.uk) joined #osdev 17:02:02 damn! disconnected in my moment of glory... 17:02:11 hhaha 17:02:16 not only can I cd into /hd, but I can do "type test.txt" and it comes up all good! 17:02:19 moment of glory? 17:03:30 --- join: pavlovskii_temp2 (pavlovskii@modem-575.barrelled.dialup.pol.co.uk) joined #osdev 17:03:49 hmm, ive looked through that Möbius source.. i dont see how the malloc code can be called properly 17:03:52 double crap 17:03:56 or how it even can compile :-) 17:03:59 caereth: why not? 17:04:16 there is no malloc function.. 17:04:33 and the defines that are available.. points to __malloc or something.. which isnt available either 17:04:54 did a few greps :-) 17:05:12 --- join: crappy_bt_keep_d (pavlovskii@modem-1155.abra.dialup.pol.co.uk) joined #osdev 17:05:21 sorry, but for fucks sake! 17:05:48 eh?:) 17:05:59 I keep getting cut off 17:06:05 phonewise 17:06:30 --- quit: pavlovskii (Killed (NickServ (Nickname Enforcement))) 17:07:06 --- nick: crappy_bt_keep_d -> pavlovskii 17:07:19 right... that's better 17:07:23 anyway, where was I 17:07:24 ? 17:07:42 caereth: what were you saying about the Mobius malloc code? 17:08:39 cant see how it gets called 17:09:00 the malloc.h doesnt fit with the rest of the code.. 17:09:06 there is no malloc function, nor __malloc 17:09:47 sorry if its just me being stupid :-) 17:10:03 --- join: crappy_bt_keep_d (pavlovskii@modem-414.babbelas.dialup.pol.co.uk) joined #osdev 17:10:21 --- quit: pavlovskii (Killed (NickServ (Nickname Enforcement))) 17:10:58 sorry, keep going 17:11:03 --- nick: crappy_bt_keep_d -> pavlovskii 17:11:07 what did you get last? 17:15:03 well? 17:15:10 --- quit: pavlovskii (Killed (NickServ (Nickname Enforcement))) 17:15:18 --- join: _avlovskii (TimRobinso@modem-270.abra.dialup.pol.co.uk) joined #osdev 17:15:33 <_avlovskii> I don't get what the f***'s going on here 17:15:45 hee 17:16:08 <_avlovskii> no sooner does somebody say something, the modem hangs up 17:16:37 :-) 17:16:48 <_avlovskii> ok, say what you can while I'm still here 17:17:04 well, what did you get earlier? 17:17:54 --- quit: _avlovskii (Read error: 104 (Connection reset by peer)) 17:18:16 --- join: pavlovskii (TimRobinso@modem-270.abra.dialup.pol.co.uk) joined #osdev 17:18:31 :) 17:18:45 sod this, if anyone's got anything important to say, email me 17:18:49 (other than NO CARRIER) 17:20:28 still here? :-) 17:20:38 so far, so good 17:20:55 we can try again.. what did you get earlier from me? 17:21:01 not alot 17:21:15 if this doesn't work, try email at tim@themoebius.org.uk 17:21:29 i actually came here to speak with you :-) 17:23:45 --- quit: pavlovskii_temp (Read error: 110 (Connection timed out)) 17:24:37 --- nick: eks[work] -> eks 17:24:44 --- quit: pavlovskii_temp2 (Read error: 110 (Connection timed out)) 17:26:42 --- quit: pavlovskii (Killed (NickServ (Nickname Enforcement))) 17:27:21 --- join: wjorzk (~cheese@66-44-48-179.s2211.apx1.lnhdc.md.dialup.rcn.com) joined #osdev 17:37:26 --- quit: corsairk8 (Remote closed the connection) 17:48:13 hmm, the one i have is much different 17:48:42 whoops 17:50:38 eks: *knock knock* 17:52:44 whos there? 17:53:17 If I know that a mod b = c, and I want to get the inverse of a (mod b), 1/a that is, how should I do? :/ 17:53:45 ??? 17:54:12 what do you mean with the brackets and comma? 17:54:30 commas are just to make the sentence readable :-) 17:54:49 an example: 17:54:51 11 mod 16 17:54:51 1/11 is wanted 17:54:51 16 = 1*11 + 5 17:54:51 11 = 2*5 + 1 17:54:51 5 = 5*1 + 0 17:54:52 1 = 11 - 2*5 17:54:54 1 = 11 - 2*(16-11) 17:54:56 1 = 3*11 - 2*16 17:54:58 1 = 3*11 (mod 16) 17:55:00 1/11 = 3 (mod 16) 17:55:05 How to make a general algorithm based on that? 17:55:42 To get 1/a 17:55:48 In this case, a = 11 17:56:11 c = 1/a ?? 17:57:00 Uhm 17:57:01 No. 17:57:29 i dont get why all the other stuff? 17:58:51 Then either just ignore me, or read http://ostling.no-ip.com/files/crypt.pdf 17:59:19 how big is it? 17:59:44 Uhmm... Like 18 MB :P 18:00:07 oh forget that 18:00:47 :-) 18:02:55 Furi Kuri! 18:04:31 rob_ert: ? 18:06:14 eks: Hi :-) Did you understand what I meant? 18:06:31 rob_ert: as far as I know I don't think you can compute 1/a from only the result of a (mod b) 18:07:03 ekssss 18:07:05 ekstazya 18:07:05 Well, the result of that _is_ a, right? 18:07:09 nothing: ;P 18:07:15 --- nick: nothing -> ekstazya 18:07:17 sine a mod b have b possibilities that can be taken from N, this is pretty hard to figure out which N was used to generate solution in b 18:07:18 har har 18:07:35 Uhm... 18:07:38 * eks slaps ekstazya around 18:07:43 s/sine/since/ 18:08:05 eks, a is within Z/bZ* 18:08:20 eks: do you know alot about calculus? 18:08:23 and differential equations? 18:08:24 rob_ert: doesn't help much, since Z > b 18:08:25 hmm, no TGZ 18:08:27 whoops 18:08:38 The group of ø(b) integers, which all satisfy gcd(x,b)=1 18:08:43 ekstazya: no 18:08:48 Uhm... 18:09:02 Z/bZ* is just a group, right? 18:09:08 --- nick: ekstazya -> nothing 18:09:37 --- join: lynx (~lynx@pD9E63827.dip.t-dialin.net) joined #osdev 18:09:42 lynx :) 18:09:55 heuhuhe 18:09:57 rob_ert: Z/bZ* is a group equivalent to Z, just that the final value will be b smaller than the original one, but given Z is infinite, the result is also infinite 18:09:58 --- join: caereth_ (caereth@lgh022a.robackshus3.ac.se) joined #osdev 18:09:59 eks: btw, thanks for the debugging yesterday 18:10:02 he 18:10:04 air: np :) 18:10:07 it`s late 18:10:07 lynx: ekstazya is alive 18:10:16 too much BOOZE 18:10:17 air: are you going to learn to use electricfence from now on? 18:10:19 hey lynx :) 18:10:22 huhu 18:10:23 nothing: no 18:10:31 lol@air refusing to use efence 18:10:36 nothing : aloha 18:10:44 nothing: but 0.1.8 will finally be released later today 18:10:54 hm 18:11:03 eks: I mean...in the example above I managed to get a^-11 18:11:05 i wonder if it will compile on fbsd 18:11:10 --- join: I440r (~mark4@1Cust39.tnt3.bloomington.in.da.uu.net) joined #osdev 18:11:11 er 18:11:14 a^-1 18:11:21 nothing: it should 18:11:23 = a/1 18:11:25 err 18:11:29 = 1/a 18:11:31 lynx: 1/a, yes. 18:11:36 i am horny 18:11:39 i want sex 18:11:40 but since u never helped me with the fbsd port... 18:11:42 and food 18:12:00 rob_ert: managed only because you knew the original terms used, but if you go ahead and try blankly, you would figure out there are an infinite/b possibilities of original values that could have given the said 'mod b', therefore an infinite/b solutions for 1/a 18:12:24 rob_ert: b = 16, x mod b = 4, find the value for 1/x 18:12:36 a is within the Z/bZ* group 18:12:45 rob_ert: with Z being infinite 18:12:47 --- join: caereth__ (caereth@lgh022a.robackshus3.ac.se) joined #osdev 18:12:55 rob_ert: how many possibilities do you have? 18:13:15 eks: Z/bZ* is defined as all numbers 0 <= x < b, that have gcd(x,b)=1 18:14:00 rob_ert: well, whatever you read, I don't have the solution you seek, and as far as all I learned in maths up to here goes, there is no way you can tell the number I had in mind when I gave the results above 18:14:47 eks: Well, gcd(16,4) != 1 anyway 18:15:01 gcd? 18:15:15 grösste gemeinsamme teiler 18:15:16 lynx: greatest common divisor 18:15:21 hrm 18:15:59 rob_ert: make it x mod b = 5 then with b = 16, you still can't find the original value used for x 18:16:39 x = 5 18:16:44 rob_ert: sure you can reduce the subset of Z given a fixed number of bits, but you cannot be sure to have the answer other than using brute force 18:16:51 rob_ert: it's only one possibility 18:16:54 eks: Z/bZ* is defined as all numbers 0 <= x < b, that have gcd(x,b)=1 18:16:56 1/5 != 1/25 18:17:06 1/5 != 1/21 18:17:16 1/5 != 1/37 18:17:19 etc.. 18:17:29 What does that have to do with it? 18:17:31 yet, 5, 21 and 37 could have been valid x values 18:17:37 No. 18:17:40 yes 18:17:43 x is below b. 18:17:44 21 mod 16 = 5 18:17:45 b is 16. 18:17:54 37 mod 16 = 5 18:18:00 then x can't be 37 18:18:05 why can't it be? 18:18:06 Since 37 is way over 16 ;P 18:18:06 air: not much to port, just take out the ldconfig part 18:18:11 eks: Z/bZ* is defined as all numbers 0 <= x < b, that have gcd(x,b)=1 18:18:21 and x is in Z/bZ* 18:18:30 then x has to be 0 <= x < b 18:18:34 below b 18:18:37 and at least 0 18:18:42 rob_ert: that's fuckin lame then 18:18:45 and gcd(x,b) must be 1 18:18:48 why do you need a 18MB paper to do that? 18:18:52 Pff 18:19:03 if x < b and you have the result of mod b 18:19:07 It's about encryption/decryption in general 18:19:14 hrm 18:19:14 This is only a pharentesis :-) 18:19:16 you _KNOW_ that you can just take the result as the original x and discard the mod b altogether 18:19:35 Yes, but I don't want x. 18:19:37 therefore the mod b have absolutely no usage as long as x < b 18:19:48 if you have "x mod b" you have x if x < b 18:19:57 that's fucking lame 18:20:00 I want x inverted. x is known. 18:20:13 then your whole discussion is on how to compute 1/x 18:20:17 which is _basic_ math 18:20:17 No. 18:20:30 Here's the example again... 18:20:30 rob_ert: yes 18:20:32 UW PICO(tm) 4.0 File: test Modified 18:20:32 11 mod 16 18:20:32 1/11 is wanted 18:20:32 16 = 1*11 + 5 18:20:32 11 = 2*5 + 1 18:20:33 5 = 5*1 + 0 18:20:35 1 = 11 - 2*5 18:20:37 1 = 11 - 2*(16-11) 18:20:39 1 = 3*11 - 2*16 18:20:41 1 = 3*11 (mod 16) 18:20:43 1/11 = 3 (mod 16) 18:20:45 (ignore the first line, heh) 18:21:32 rob_ert: 1/11 != 3 mod 16 18:21:42 3 mod 16 == 3 18:21:55 unless ofcourse your modulo division does not work like anyone else in this world 18:22:11 hehe, forgot to tell you 18:22:22 that '=' is no '=' :) It has 3 bars. 18:22:38 So, it's a...whatever the word is - sign. 18:22:54 and 3 mod 16 is _still_ equal to 3 18:23:14 equivavlent? 18:23:20 I'm not saying that either. 18:23:57 I'll type from the book: 18:23:58 rob_ert: enjoy your paper 18:24:02 rob_ert: no need 18:24:06 Hrm.. 18:24:06 rob_ert: I'm not interested 18:24:12 I noticed that. 18:24:24 But I also notice you don't seem to understand what I mean. 18:25:01 rob_ert: let's say you introduce the formula in this way: 18:25:20 1.) take two values which have gcd(x,b) = 1, thus any two primes 18:25:58 2.) find the a formula for which the prime multiplied by a factor + a value gives the modulo or your storage register 18:26:03 3.) repeat for the second value 18:26:43 4.) using the provided multiplication factors computed and the addition value, without providing the original key and only the modulo used, find out the original primes used 18:27:01 that would make much more sense and would explain what you did above 18:27:09 I don't need a 18MB paper to know that 18:27:14 and it's much clearer what you are trying to do 18:27:50 rob_ert wants to obfuscate it though, it's academic tradition 18:28:07 nothing: I think he obfuscate it only because he does not understand ti 18:28:09 s/ti/it/ 18:28:18 "compute d [is equivalent sign] to 18:28:20 err 18:28:45 "compute d [is equivalent sign] e^-1 (mod ø(n))" 18:28:55 That is what I want to do. 18:30:02 n = p*q, where p and q are primes. 18:30:12 ø(n) is then (p-1)*(q-1) 18:31:02 e = random number, so that gcd(e,ø(n)) = 1 18:31:10 That should be clear enough. 18:31:25 rob_ert: much clearer than whatever you said above ;) 18:31:29 Yeah 18:31:40 I'm...not good for anyone's mind. 18:32:00 But finally you've got what I want :-D 18:32:20 * eks wonders what good it was to rob_ert 18:32:36 What good what was? 18:32:47 btw, do you know the answer? 18:32:56 How to calculate d, that is. 18:34:03 you need 2 and 5 to compute d 18:34:33 :-? 18:34:40 read the paper ;) 18:34:43 it's all in there 18:35:07 * rob_ert enjoys eks teasing a paper. 18:35:26 Well... 18:35:47 Like I said, I need a method to calculate e^-1 18:37:41 * rob_ert curses eks for not simply telling him the answer ;P 18:37:49 eheh 18:38:02 do your homework yourself ;) 18:38:14 Bah 18:38:18 "homework"... 18:38:33 lol 18:38:42 so that's what it was... 18:38:42 nothing: Heeelp! 18:38:50 eks got suckered ;/ 18:39:07 nothing: ;) 18:39:24 eks: You're supposed to know this! 18:39:34 eks *is* a math geniuz 18:39:37 eks: You're not my Great Master anymore :(( 18:39:44 ;-P 18:39:44 rob_ert: good :p 18:39:51 Hehe 18:39:55 * eks will finally be able to take a break ;) 18:40:01 Grhmm... 18:40:10 * rob_ert cries. 18:40:16 eks: did you major in math @ college? 18:40:30 eks: Did you finish high school? 18:40:35 nothing: highest math I did in school were 12th grade :p 18:40:41 rob_ert: yes 18:40:49 eks: why didn't you go to college? 18:40:58 Berkely! Berkely! 18:41:06 nothing: I went to college, but private ones 18:41:12 No math? 18:41:16 rob_ert: exact 18:41:22 Why not? 18:41:23 what did you major in? 18:41:33 no math, no english, no french, no foreign language, no philosophy, only what is _required_ for your field of work 18:41:49 Oh...and that is? 18:41:55 Pushups? 18:41:56 :-) 18:42:08 nothing: Computer Programming, Telecommunications, Microprocessors, Phone System, Fiber Optics Network, Phone Central Management 18:42:25 Sounds nice. 18:42:35 Phone salesman :-) 18:42:41 so uh 18:42:46 rob_ert: actually on, I'm a techie 18:42:57 Oh. 18:42:58 if you went to such a great college, why did you have to resort to getting some McDonald's job? :) 18:43:28 nothing: I moved to a new city and waited for an opening at a telecomm place, couldn't afford to not work for too long 18:44:02 I worked the whole week at a telecom place, where I have a stable position now 18:44:22 ah 18:44:24 ;) 18:45:03 :-) 18:45:12 Only wife and kids missing. 18:45:44 rob_ert: no, I got those already, DEC Alpha (as kids) and AMD Athlon (as wife) 18:45:52 lol 18:45:57 nerd ;p 18:46:02 :p 18:46:03 eks: did you meet any pretty girls in college? 18:46:38 nothing: hrm.. one or two, but none in my class and rather a few "nice" one in my school 18:47:11 most ppl going to the college I went are nerds or heavy-geeks 18:47:15 when's the last time you had sex with a girl? (virtual doesn't count)? 18:47:27 most heavy-geeks girl and nerds aren't "cute".. 18:47:40 nothing: too many years to count on one hand ;) 18:47:44 hahahha 18:47:52 well at least that's better than me 18:48:03 never had it yet? ;) 18:48:08 yup ;/ 18:48:12 nothing: :D 18:48:16 18 too.. 18:48:19 nothing: how old are you?? 18:48:24 --- quit: lynx (Read error: 110 (Connection timed out)) 18:48:29 Let's form the OPN Virgins club. 18:48:32 ouch... 18:48:32 lol 18:48:38 eks: i will die a virgin 18:48:58 nothing: you certainly are well started on your path :p 18:48:59 I beleive you. 18:49:02 i will be 50 (if i live that long) and still only *thinking* about such matters ;/ 18:49:10 nothing: it always just cost 50$ to fix that issue though ;) 18:49:13 eks: what age did you lose your v.? 18:49:22 nothing: too young ;) 18:49:25 12? 18:49:28 hahah 18:49:50 that's sad if you have sex before you're 15 18:49:57 eheh 18:49:58 i mean, that is just too young 18:50:05 nothing: too young then :p 18:50:14 bah 18:50:18 bahbah 18:50:19 eks: before 13? 18:50:23 lol 18:50:27 lolol 18:50:28 "Guess the number." 18:50:34 eheheh 18:50:38 * eks will not provide more detail about that 18:50:58 Were you a geek back then too? .) 18:51:05 eks was probably 'broken in' by some old aunt at age 10 18:51:10 rob_ert: I was a nerd, not yet a geek 18:51:15 Oh :D 18:51:16 "come ere you good looking lad!!" 18:51:22 lol@nothing 18:51:26 ugh 18:51:38 * rob_ert pukes at nothing :} 18:51:46 --- join: ChillySpy (ChillySpy@ppp332.ppp8.cleveland.nccw.net) joined #osdev 18:52:26 Hi 18:52:54 rob_ert: pictures this, always first in class, sitting at the front desk, pocket calculator, often unmatching socks, glasses, pimples, hyper-math addict hanging in the library most of his time... that's me 18:53:02 goodbye everyone 18:53:03 or should I say.. that _was_ me 18:53:07 air: goodbye 18:53:08 i'm about to die 18:53:14 bye air 18:53:19 cu in hell 18:53:23 haha 18:53:42 * eks wonders if air will have another cameroscopie.. 18:53:46 i copied all these template lines in some code 18:53:47 eks: Nice...you remind too much of me ;P 18:53:50 air: don't forget your 3 enemas ;) 18:53:52 eks: it's a wonder you ever lost your virginity 18:54:01 eks: Why did you become a work-out freak? 18:54:11 there are four sections: main, pb, ib and in 18:54:24 rob_ert: I was always a work-out freak, even back then, that was my escape from reality :p 18:54:28 (and still is) 18:54:33 i filled out the main ones, then i pasted "pb_" to a bunch of lines and nailed it perfect 18:54:43 Oh, heh. 18:54:47 then i copied "ib_" and nailed them 18:54:48 Coding is my escape :D 18:54:51 And Duke3D. 18:55:04 when i copied the "in_" i found out that i had made the exact number of lines 18:55:23 thats just way too much good luck, so i think something really really bad is gonna happen now :) 18:55:30 lol 18:56:35 air's monitor is going to explode and blow off his face 18:56:44 http://www.hesbynett.no/hagen/amiga1.html <-- woohoO! AmigaOne pictures! 18:56:46 just as his compile finishes without a hitch 18:57:55 --- join: corsairk8 (~localhost@pc-62-30-121-110-cr.blueyonder.co.uk) joined #osdev 18:58:54 DAMNIT 19:05:45 --- join: darkito (darkito@62-37-117-80.dialup.uni2.es) joined #osdev 19:05:54 hi there 19:06:02 hey darkito 19:06:17 darkito: how's your os going? 19:07:23 oh 19:07:26 hahah 19:07:42 well... it isn't going yet 19:08:35 (darkito: ask eks a hard question about number theory) 19:08:58 hard for me? 19:09:20 Actually, that was a little joke :-D 19:09:23 1 + 1 19:09:35 darkito: Probably around 3 :-) 19:09:55 my teacher says 0 + carry 19:10:03 :\\ 19:10:33 heh 19:10:42 it was a very bad joke... apologizes 19:10:54 :D 19:11:43 --- quit: ChillySpy (Read error: 113 (No route to host)) 19:14:19 darkito: :) 19:22:31 ask my a question about number theory 19:24:39 corsairk8: :-? 19:27:38 --- quit: caereth ("BitchX-1.0c18 -- just do it.") 19:27:38 --- quit: caereth_ (Connection reset by peer) 19:27:43 --- quit: caereth__ ("Client Exiting") 19:40:58 3 clients? :) 19:41:50 3 personalities. 19:42:08 if u had an attr variable that had 3 bits (bold, underline, reverse-video) how would u create a string like "bold|underline|reverse-video"? 19:42:45 but if a bit was unset it would leave that section blank "bold||" 19:43:10 or ever better if it could get rid of the || 19:43:53 lol 19:43:59 thats easy 19:44:32 count the number of set bits, ensure there arent any more | than that 19:44:39 ie, 1 bit would have 1-1 | 19:44:45 */* 19:44:45 - 19:44:46 2 bits would have 1-2=1 | 19:44:54 it would be easier if u flashed some code :) 19:44:58 3 bits would have 1-3=2 |'s 19:45:00 hehe 19:45:10 Good night 19:45:11 im too tired to think 19:45:20 haha 19:45:28 but once you count it, simply go through, putting x|, until you get to the last one 19:45:32 and then just but x 19:45:33 without the | 19:45:35 so basically 19:45:36 --- quit: rob_ert ("(:") 19:45:42 dword_t bits_set = count_bits(num); 19:45:47 dword_t iterator = 0; 19:45:58 for (; iterator < 3; iterator++) 19:46:13 if (iterator != bits_set - 1) 19:46:31 --- join: ChillySpy (ChillySpy@ppp379.ppp9.cleveland.nccw.net) joined #osdev 19:46:31 printf("%s|", thing[iterator]); 19:46:34 else 19:46:42 printf("%s", thing[iterator]); 19:46:45 happy? 19:48:28 no, but i solved it 19:48:41 --- quit: ChillySpy (Client Quit) 19:52:30 lol air 19:52:45 you should always be happy if you solved something :) 19:59:18 ugh 19:59:34 nate made a big pointer mess in set.c 19:59:51 its a nightmare trying to redo color support in there 20:02:59 nate ? 20:04:55 --- quit: nbsp (Read error: 104 (Connection reset by peer)) 20:07:19 he use to be an op here 20:07:42 but then he found out his mommy was searching the net for dirt on him and this channel is logged so he left 20:08:17 he now goes by bwb 20:08:42 I440r: btw, did u say u know termcap? 20:09:05 i know alot of it 20:09:29 i havent got isforth to parse termcap files yet but thats kinda difficult 20:10:58 do u know how to use TIOCGWINSZ? 20:11:38 icatch SIGWINCH but termcap doesnt update the values for "co" and "li" 20:15:10 or do u know why tgetnum() always returns -1 and tgetflag() always returns 0? 20:16:17 or can u tell me how to use tgoto() instead of printf("\033[%d;%dH", y, x);? 20:16:44 or can tell me how to use "cs" instead of printf("\033[%d;%dr", t, b);? 20:16:54 end of questions, u can answer anytime :) 20:19:30 air er 20:19:54 cs is clear screen 20:20:19 let me look in isforth for the sequence 20:21:04 er no hehe 20:21:09 ed is clear screen lol 20:21:13 erm hang on 20:21:33 btw - ive no idea how to use those calls you mentiuon - thats not termcap 20:21:35 thats curses 20:23:35 cup sets the cursor location 20:24:07 escape [ yy;xx;H 20:24:17 i thin its yy followed by xx 20:24:27 but it might be xx;yy heh let me check 20:27:01 u need to check out isforths term.f file :) 20:27:30 are cant you make a macro opf the printf cup function called at and just do 20:27:33 at (x,y) 20:27:34 ? 20:27:43 or cursor_at(x,y) 20:28:01 making calls to ncurses is going to be slow and bloated 20:30:15 --- join: malenfant (malenfant@bc-vic-a53-02-27.look.ca) joined #osdev 20:35:50 --- nick: eks -> eks[Zzzz] 20:36:06 --- nick: darkito -> darkbed 20:44:05 --- join: ChillySpy (ChillySpy@207.88.126.102) joined #osdev 20:44:12 anyone here who knows about bochs? 20:47:05 nothing i said was ncurses 20:47:17 "cl" is clear screen 20:47:25 "cs" is scroll region 20:47:48 it takes two Y values, top and bottom 20:48:52 and termcap has no cup function 20:49:38 tgetflag(), tgetnum(), tparam(), tgoto(), tgetstr() 20:49:50 those are termcap functions 20:50:37 and tgetent() 20:50:43 printf(tgetstr("cl", NULL)); // clear screen 20:51:44 aha 20:52:18 cs is csr hehe 20:52:28 cs is ed 20:52:31 erase display 20:53:13 csr is escape ] xx;xx;r 20:53:35 ed is escape [ nJ 20:53:42 er the above ] is supposed to be a [ heh 20:53:53 escape [ n j 20:53:59 where n can be 0 1 or 2 20:54:04 2 erases the complete display 20:54:11 `cs' 20:54:11 String of commands to set the scroll region. 20:54:12 0 is erase above and 1 is erase below 20:54:23 csr - isforth uses csr 20:54:34 it has to set the scroll region from line 2 down 20:54:40 line 1 is the status line 20:55:15 do u know how to use tparam() or not :) 20:55:19 isforths term.h has alot of sequences 20:55:25 wtf is tparam :) 20:55:45 escape codes are different for each TERM type 20:56:00 yer program will not be portable to different terms 20:56:29 most termcap codes like "li", "co" and "cl" have no parameters 20:56:35 it works in eterm. xterm, wterm, rxvt. aterm. linux console. gterm and at least one windows ssh client 20:56:47 so u can do printf(tgetstr(NULL, "cl")); 20:57:39 so every time you need to move the cursor to x.y you do a printf that has to examine the termcap file and interpret the correct sequence 20:57:41 but codes like move and scroll region "cs" need parameters 20:57:54 tparam() is used to fill in the parameters 20:58:01 some sequences have multiple optional sequences to do the same thing 20:58:12 tparam is from where 20:58:15 ncurses ? 20:58:20 ugh 20:58:30 i am NOT using ncurses sostop bringing it up 20:58:34 heh 20:58:39 all termcap functions begin with 't' 20:58:41 who defines that 20:58:52 lol 20:59:10 http://www.gnu.org/manual/termcap-1.3/html_mono/termcap.html 20:59:20 --- quit: malenfant () 20:59:22 termcap functions are part of ncurses 20:59:32 they replace terminfo 20:59:41 or is it the other way round lol 20:59:50 termcap has 7 functions 21:00:14 ncurses has libtermcap embedded in its libncurses 21:00:35 that does not mean termcap functions are part of ncurses 21:00:41 termcap is an ncurses redesign of the terminfo methodology 21:00:44 does anyone know of any nice tut on begining a C/C++ OS? 21:00:53 thats like saying gtk is not part of the gimp 21:01:00 its not. but it originated within it 21:01:31 termcap was around before ncurses 21:01:51 ncurses was designed to ease termcap programming 21:02:13 and did it ever 21:02:17 hehe 21:02:27 and now they are trying to do away with termcap by embedding it within ncurses 21:03:02 well maybe ill make "eliminating ncurses" part of the isforth manifesto heh 21:03:33 airc will link with libtermcap if available or it will look for libcurses or libncurses 21:03:58 * geist tries to figure out the SH elf relocation types 21:04:09 I wish this shit was documented somewhere 21:04:18 ges: i have docs 21:04:33 for SH relocation? 21:04:37 ya 21:04:38 sh ? 21:04:42 super H 21:04:50 er. whas super h :) 21:04:51 air: where'd you get that from? 21:04:58 I440r: cpu 21:05:13 another new cpu ? 21:05:14 lol 21:05:20 we had to build a machine with one 21:05:27 I've figured most of it out by looking at netbsd and glibc, but something's not quite right 21:05:30 air: ah 21:06:26 air: can you in any way send it to me, or are they physical? 21:06:31 I'd totally appreciate it 21:06:33 physical 21:06:53 oh, bummer 21:07:02 probably directly from hitachi? 21:07:21 i have physical docs for anything 21:07:32 physical dox ? 21:07:33 er 21:07:35 which really sucks cuz i dont read physical stuff 21:08:08 if books had a search feature i would 21:08:33 yeah 21:09:15 geist: u too can get books 21:09:27 get a scanner :) 21:09:36 call the company, tell em yer a student working a project using the sh 21:10:01 hmm maybe so 21:10:03 some companies will even send product 21:10:06 and it has elf dox? 21:10:13 but u gotta be professional 21:10:41 well, I can say I'm coming from danger and we're evaluating cpus for the next gen 21:10:58 that works too 21:11:27 but anyway, I need to get the relocation stuff working again. the newos port broke a while back with the new user space loader 21:11:49 user space binaries used to be static, but with the shared libs it needs to do relocation 21:12:18 u can also use email 21:12:38 i have a bookshelf full of books i got via email 21:12:48 yup 21:13:07 not sure how much hitach has to do with superh, I think they spun off the company 21:13:10 need to figure that out 21:13:58 http://www.hitachisemiconductor.com/sic/jsp/japan/jpn/PRODUCTS/MPUMCU/32BIT/ 21:14:02 there ya go 21:15:26 --- join: bpt (bpt@user-2ivf565.dialup.mindspring.com) joined #osdev 21:15:26 uh 21:15:31 that's in japanese 21:15:36 heh 21:15:38 what and u cant read it? 21:15:52 nope 21:15:58 there are some good docs there 21:16:06 go learn to read it 21:16:24 I have tons of docs on the cpu, that's no prob 21:16:24 can we talk about real OSDev? 21:16:35 I just want the elf stuff 21:16:41 ChillySpy: start talkin 21:16:48 this is directly related to osdev 21:16:53 ya 21:17:03 well does anyone have any tuts on C or C++ osdev 21:17:07 hey 21:17:11 bpt - heh 21:17:18 ChillySpy: i have one 21:17:28 air - can i see plz 21:17:33 "dont use C or C++ to make an OS" 21:17:36 there 21:17:40 heh 21:17:48 hmm, the superh.com site is almost entirely devoted to the sh5 21:17:52 air: hehe 21:17:54 air!!!!!!! that was politically incorrect :O 21:17:56 air: good advice 21:18:01 hi I440r :) 21:18:01 air - no 21:18:03 but good advice 21:18:05 hi bpt! 21:18:05 bpt - no 21:18:08 http://www.acm.uiuc.edu/sigops/ 21:18:12 decent site 21:18:15 www.osdev.org 21:18:18 geist - yes, its old 21:18:20 isforth has a home now - http://isforth.clss.net :) 21:18:21 ooh, air's bein' unPC 21:18:31 osdev.org is very bad... nothing on it... well forum is ok 21:18:43 ChillySpy: qzx.com/lib 21:18:48 yeah, the forum is hilarious 21:19:03 osdev.org will be better once i finish phpzap 21:19:23 maybe if someone wrote some tuts.. beside 2 21:19:23 air - you mean IF you ever complete it :) 21:19:38 Possibly, but there's little reason to write one 21:19:38 I440r: i will eventually complete it 21:19:54 I440r: i finished several more sections the other day 21:20:06 basically it works out that everyone before you has had to figure it out on their own, so everyone feels that that's just the way it is 21:20:08 ive not coded a single line in like 3 days 21:20:18 geist - how about all the people that can't figure out how to write an OS 21:20:20 been too busy with the gun smithing 21:20:28 then they shouldn't be writing an OS 21:20:35 they should probably try something a little easier 21:20:46 exactly 21:21:24 geist - i see... so if you want to do an os and only and os, and their is no information to help you.. you quit and never program again(over simplification, but hey) 21:21:30 hmm the sh5 seems pretty neat 21:21:58 ChillySpy : I suppose so 21:22:30 not to be not helpful, there are plenty of resource available, but a good portion of it just has to be figured out on your own 21:22:37 giest - that is stupid tho... we discriminate 21:23:04 It's the way it is, not that I necessarilly agree with it, but there it is 21:23:06 geist - ???? why shut people out out... 21:23:28 --- quit: darkbed (Read error: 113 (No route to host)) 21:23:45 I dunno, I'm not responsible for it. I'm just telling you that there isn't a lot of newbie osdev resources out there 21:24:08 geist - but everyone is a newbie at some time 21:24:09 developing an os is hard, and if the person can't get over the first couple of hurdles they probably shouldn't be doing it 21:24:37 there must be a lot of ppl using BFE, cuz i answer tons of problems ppl have getting it to run 21:25:04 the people that have the most luck at os dev are the folks that are not a newbie to programming at all 21:25:11 geist - you can't get over a hurdle, if you dont konw the technique 21:25:22 im not a newbie in programming 21:25:29 ChillySpy : wrong, if you're an experienced programmer, you should be able to figure it out 21:25:34 * bpt points ChillySpy to bpt's msgs 21:26:14 geist - i am an experienced programmer 21:26:20 geist: wrong 21:26:28 then you should be able to figure out what to do 21:26:34 geist: those experiences vb programmers cant 21:26:46 by following what others are doing, coming up with good questions to ask 21:26:54 mostly by reading code and seeing what others are doing 21:27:05 having a lot of open source operating systems out there is very nice 21:27:10 air - watch wat your saying... yes.. i use vb.. thats not the only lang i know 21:27:11 air isnt "vb" and "programmer" an oxymoron ? 21:27:19 lets not get started 21:27:27 hehe 21:27:34 geist - most Open Source OSs are not commented at all 21:27:40 * I440r gets in his fave wing chun stance! 21:27:44 I440r: hehehe 21:27:53 what I mean is experienced system programmer, low level, with a thorough understanding of how cpus work 21:27:57 I440r - with over 3 million vb "programmers" i would laugh at you and you not laugh at them 21:28:02 ChillySpy: none are. thatws a BIG critisim of mine 21:28:10 ChillySpy : no comments just makes it harder to trace 21:28:13 doesn't make it impossible 21:28:27 ctitisism even errr 21:28:29 argh 21:28:30 geist - good programmers comment.. 21:28:32 critisism ? 21:28:34 grr 21:28:38 if the newbie does not really understand system architecture, they need to learn 21:28:50 first suggestion is read the intel docs backwards and forwards 21:28:53 really understand it 21:28:58 ChillySpy: wtf? good programmers' programs *are* explanations... 21:29:13 bpt BULLSHIT 21:29:19 code is NOT self commenting 21:29:24 no matter how good a coder you are 21:29:32 depends on how good the reader is 21:29:44 I440r: well, not /all/ code 21:29:47 I440r: but 21:29:53 if you havent thought about your codce enought to explain it to someone else you havent thought about it enough to code it 21:29:54 what people dont spend enough time doing nowadays is read code, in my opinion 21:29:58 1440r - your wrong... making a blanket statement about vb... stupid... if you actually wanted to make a form in win32 and did it in C++ it would take at least a couple of mins... in vb a matter of seconds 21:30:00 ALL CODE 21:30:03 there's a lot of skill to that 21:30:12 ChillySpy: it was said in humor :P 21:30:12 I440r: it's possible to have the primary part of the program be nearly self-explanatory 21:30:24 nearly != exactly 21:30:27 I440r: (as long as the person has some basic knowledge of programming) 21:30:29 you STILL need to comment it 21:30:34 I4404 - people that say stuff like that piss me off 21:30:52 chill i get alot of flack over my forth compiler 21:30:57 anyway, comments are good. too many are bad 21:31:04 bpt - stop... your wrong... code is not self commenting 21:31:17 geist thers no such thing as "too much" comments 21:31:25 there is a such thing as too much "bad" comments 21:31:26 geist - right... but to say /*this is the bootloader*/ or //switching to PMode 21:31:27 I440r : I completely disagree 21:31:46 stuff like 'i++ // increment i' is not helpful at all 21:31:49 geist your entitled to be WRONG :) 21:31:54 1440r - yes there is... int x = 0; // set x equal to zero 21:31:56 heh 21:31:57 geist thats a BAD comment 21:32:00 with a ; after the i++ 21:32:27 I didn't say anything about the quality of the comments, but I've seen a lot of code like that 21:32:40 but anyway, in general, more comments are nicer 21:32:56 I'm not a big fan of commenting the inner workings or common algorithms 21:33:00 geist have you seen isforth ? 21:33:06 tell me if ive over commented 21:33:07 :) 21:33:18 i prolly have some of the aforementioned "bad" comments in there heh 21:33:24 but I'm definitely a fan of describing the overall algorithm or describing a tricky part 21:33:26 but a few of those are acceptable to me 21:33:53 it's all about the flow of a program, the 'feel' of it 21:34:07 sometimes overcommenting can break the flow and make it harder to read 21:34:17 it's a constant balancing act 21:34:26 so no C/C++ tuts exist... every "newbie" os dev tut is in ASM 21:34:29 --- quit: corsairk8 (Read error: 104 (Connection reset by peer)) 21:34:48 not having enough comments means the reader has to pause too much to figure out a block of code 21:35:21 sice in the real world most programmers end up reading other people's code a lot more than writing their own 21:35:38 or reading your own code that you forgot implementing 21:35:46 geist tahts why you comments as follows 21:35:51 code comment 21:35:52 code comment 21:35:52 code comment 21:35:54 NOT 21:35:55 code 21:35:56 comment 21:35:56 code 21:35:58 comment 21:36:04 ick 21:36:11 I prefer 21:36:12 comment 21:36:13 NEVER interleave code and comments 21:36:19 code code code (algorithm) 21:36:22 it just adds visual clutter and breaks up the flow of the code 21:36:24 space 21:36:27 comment 21:36:30 code code code 21:36:40 but anyway, it's a pointless argument 21:36:44 http://www.themoebius.org.uk/ <<-- hehe 21:36:53 lots of it also depends on the expected reader 21:37:08 geist check out CodingStyle in /pub (ftp) on this IP 21:37:13 Linus T didnt like it heh 21:37:25 I tend to work on deep kernel projects or otherwise things that only experienced programmers should be looking at 21:37:31 I dont feel I need to hold anyone's hand 21:38:48 --- quit: bpt (Read error: 104 (Connection reset by peer)) 21:38:48 in many circles, too many comments is a sign of being a newbie 21:39:02 all in all, I haven't commented enough in newos however 21:39:23 I'm starting to regret it at times, because I need to figure out what I was thinking sometimes on a piece of code 21:39:26 your working on newos? 21:39:32 sure, it's my project 21:39:38 geist in my opinion NOT commenting is a sign of being a newbie :) 21:39:40 hehe 21:39:44 undercommenting is too 21:39:56 it's a balance 21:40:00 it is 21:40:20 but a lean towards over commenting is better 21:40:56 I agree 21:41:27 then we are in agreement then :) 21:41:31 so go comment newos :P 21:41:42 im off to bed 21:41:45 nite nite :) 21:41:45 I do as I go back through it 21:41:50 nite 21:41:54 :) 21:41:55 ttyl 21:42:15 --- quit: I440r (": sleep bed go tuck light off ; immediate") 21:46:58 --- join: nbsp (g@ip68-14-60-7.no.no.cox.net) joined #osdev 21:58:04 --- quit: geist ("[BX] Abort Retry Fail") 22:07:43 --- quit: ChillySpy () 23:05:41 --- quit: wjorzk (Read error: 110 (Connection timed out)) 23:21:44 --- quit: trans (Read error: 110 (Connection timed out)) 23:53:22 --- join: zephir (~zephir@harr-c-165.resnet.purdue.edu) joined #osdev 23:53:26 hello anyone around? 23:59:59 --- log: ended osdev/02.04.12