00:00:34 * MissPiggy wants to revamp education with computers as an integral part.. 00:01:03 because I think it would be interesting, if you eliminate all computation by giving it to the machine -- to see what is left 00:01:28 our "applied mathematics" dep gives courses like that, theorems aren't proven, or at least you don't have to understand the proofs 00:01:47 which is sort of sad because stuff like probability theory is only found there 00:02:01 * MissPiggy doesn't know what 'understand' means anymore, either :( 00:02:25 for all intents and purposes, understand = memorize 00:02:47 well at least for this intent and purpose 00:03:17 * MissPiggy wants to write a sci-fi about it :P 00:03:27 err about what? 00:03:33 i should really continue reading... 00:03:35 computers 00:03:51 hmm, this doesn't even seem to work :/ 00:04:26 there's this part about singular cubes in the end i recall was pretty wacky, not sure i want to be reading it at 5 am 00:04:42 singular cubes = cube 00:04:49 pretty easy stuff if you ask me 00:04:57 wait, it *did* work! 00:05:09 it's actually the image of a cube 00:05:29 f(C) where f is a continuous function 00:05:43 that's not exactly the wacky part 00:06:22 oh lol 00:06:28 sorry, idiot here 00:06:31 :P 00:07:04 forgot math terms usually also mean something in english 00:08:03 am I the only one who fantasizes about being ENCOURAGED to use a calculator to factor quadratics instead of doing pages and pages of it by hand? 00:08:33 why should it not be completely natural, when you learn a new algorithmic method of solving problems to program it in a re-useable way? 00:08:47 I just use the quadratic formula; takes roughly as long 00:09:29 I don't care about the actual quadraitic, tat's just one example 00:09:46 i remember being in a class in middle school or so when the were trying to teach people to factor quadratics 00:10:16 they taught some kind of odd, non-deterministic method involving drawing shapes on paper 00:10:31 our exams rarely contain any computations that take more than half a minute even without a calculator... except for integrals 00:10:32 sounds cool 00:10:37 do you remember it? 00:10:40 wouldn't like me use the quadratic formula ^_^ 00:11:23 sweet, I even got the bijective de/encoding right, now all that's lacking is a weird language to plug in the middle of this 00:12:10 you could draw the shape of the curve and look at the picture to see where zeroes are 00:12:23 i suppose this was something cleverer 00:12:29 olsner what are you talking about? 00:12:32 I missed earlier 00:12:59 yeah what the FUCK are you talking about 00:16:00 a program that reads stdin as a bijective base-256 number 00:16:11 bijective? 00:16:12 then converts the number to base-pi, and back again 00:17:00 it doesn't make sense to have real bases 00:17:09 hah! sure it does 00:17:13 why not? 00:17:46 olsner, I thought input was base pi, and output was base e? 00:17:54 Or something like that 00:18:02 Sgeo: yeah, I just built it with output as base-pi to test that it's really working 00:18:23 I don't really know yet how to convert directly from base-pi to base-e 00:18:48 the burger is missing but I have the buns, so to speak 00:19:44 so how do you have a real base? 00:20:30 basically, this: http://en.wikipedia.org/wiki/Non-integer_representation 00:20:55 it's just pi^k instead of 10^k 00:21:17 bsmntbombdood: im fax 00:21:44 that there has a greedy algorithm to generate the representation of any number in any base > 1 00:21:52 i suppose it works if your digits are reals too 00:22:02 "The numbers di are non-negative integers less than β." 00:22:11 this is really the only thing i wasn't sure about 00:22:23 yeah, so base-pi has 0,1,2,3 00:22:39 bsmntbombdood: lol, yeah, that would be a pretty compact representation at least 00:22:55 like e = (e/pi)*pi 00:23:05 e in base pi 00:24:49 nice to know that works, for some reason i've never bumped into that 00:26:33 -!- MissPiggy has quit (Quit: MissPiggy). 00:27:37 it's kind of messy since it doesn't add up to zero, but it seems that you don't need to bother with decimals to get the required precision 00:42:38 This is... Incredibly slow. 00:42:45 ./a.out `cat rot13.lazy` < ~/lazyk/lazier.scm 7.26s user 0.03s system 99% cpu 7.340 total 00:43:10 For comparison, the shipped interpreter: 00:43:10 ./a.out eg/rot13.lazy < lazier.scm 0.70s user 0.02s system 80% cpu 0.891 total 00:46:19 pikhq, I believe olsner is looking for slowness? 00:51:25 http://www.maa.org/devlin/LockhartsLament.pdf 00:51:35 readit 00:52:42 olsner: "add up to zero"? do you mean the representation of a natural number in base pi is infinite? 00:54:52 oklofok: I suspect it might be, but I think you need a lot less than infinite to actually make it unambiguous after rounding 00:56:34 bsmntbombdood: sounds like the current state of mathematics 00:56:48 teaching of it, that is 00:56:51 oklofok: ...that's the point 00:57:05 mathematics in particular? 00:57:12 i haven't read all of it yet 00:58:45 i figured it might be about pretty much anything 00:59:04 but yeah maybe it could be just about math 01:00:20 okay i got on page two 01:00:21 ;) 01:08:35 Is LogMeIn safe? 01:26:08 bsmntbombdood: reading this, what I can think is... "ok but if mathematics were teached in a creative way, how would the teachers grade 150 different exams fairly" 01:26:09 -!- SimonRC has quit (Ping timeout: 265 seconds). 01:26:39 use a different method for evaluating performance, perhaps? 01:26:52 if exams are interfering with learning, there's obviously a problem 01:28:39 like, this is kindof saying "they're not teaching creativity" and what I'm thinking is, "well, nobody teaches creativity" 01:28:41 give 'em a problem and give points for progress 01:32:17 * pikhq is amazed at what difference a few "foo = NULL;"s can do for memory usage. 01:33:44 poor garbage collection? 01:34:26 Garbage collectors can't collect things you still have references to. 01:34:31 Even if you're not using them again. 01:34:57 In this case, I was holding on to references before dethunking something. 01:35:08 how about something like this: I'm writing a sound generator. I need a function that will generate a spectrum that is almost periodic, but where the phase and amplitude of harmonics vary with time 01:35:10 And a dethunk can take, well, any amount of time. 01:35:38 -!- SimonRC has joined. 01:36:05 i wonder if there are any garbage collectors that actually can infer that information 01:36:22 ML's apparently can. 01:36:29 As a side effect of its type system. 01:37:29 anyway a problem with making any subject better or more interesting to students is most people don't give a shit about anything. no matter how interesting it is, people don't want to hear it. 01:38:18 -!- Asztal has quit (Ping timeout: 240 seconds). 01:39:07 The biggest gain I got was making the dethunk function actually remove its closure... That's such a ridiculous source of memory leaks. 01:42:49 hmm, it seems I have a lot to learn about precision 01:43:21 worked fine for certain sizes of inputs that happened to make the program choose good numbers of bits to work with 01:43:37 but failed to properly pi-encode "hello world" 02:12:33 hmmm 02:12:36 working on a bignum system? 02:13:04 how do you compute, exactly, the representation of a pi-encoded number? 02:14:08 bsmntbombdood: Inaccurately. 02:15:50 bsmntbombdood: take the biggest power of pi that fits under it, and you get the first digit, then induction 02:16:12 well biggest power + biggest possible digit you can multiply it with 02:16:18 of course 02:16:45 but i don't know how to do that exactly 02:16:52 then figure out at which digit to stop? 02:17:02 and it's enough to use as digits the natural numbers under the number being used as base. 02:17:20 any exponentiation/subtraction you are doing involves representations of pi, not pi 02:17:48 uh 02:18:03 so? we're still working with the actual number 02:19:09 say you have 21, you'd take pi^2 first, because that's the biggest power that fits under 21, it fits under it twice, so you take 21-2*pi^2, take the representation of that real in base pi, and you'll have the rest of the digits 02:19:30 so you get 2x.xxxxxxxx 02:19:36 x's continuing forever 02:19:47 (no idea what they are) 02:20:18 nothing about this involves "representations", although you'll need some to know what powers fit under what. 02:21:05 you can't exactly subtract 2*pi^2 02:21:12 you can't? 02:21:18 21-2*pi^2 is a real number 02:21:54 we can represent it as a base pi number that contains only one whole digit, that is, its representation in base pi is of the form x.xxxxx 02:22:28 is 21-2*pi^2 equal to 3, 1.78, 1.2808, 1.268238, 1.2619555, 1.26082454, etc 02:23:03 are you saying you can't represent 21-2*pi^2 in base 10 using a finite number of digits? 02:23:12 using base pi sounds weird 02:23:19 because that's completely true 02:23:32 you also can't represent it in a finite amount of bananas if bananas map in no way to real number. 02:23:33 s 02:24:05 you end up having to use an approximation of pi for all your calculations, is what i'm saying 02:24:16 who said anything about calculations? 02:24:45 bsmntbombdood: you could store the operations, then evaluate just the number of digits you need 02:24:56 we are talking about the existence of the representation. pi has all sorts of algebraic properties, you can probably devise an algorithm for finding exact representations for numbers. 02:25:12 for a general real number that is obviously impossible 02:25:50 i understand that it exists, i am talking about an algorithm 02:25:59 oh 02:26:12 that's trickier 02:27:43 but yeah, approximate to some amount of digits. not exactly that interesting. 02:28:51 well, pi can be done with, what, some polynomial series? 02:31:11 bsmntbombdood: an exact algorithm would be to just have the thing you are trying to represent in the form "21-2*pi^2". you start making approximations for pi to get the correct amount of pi^1's, say n, but then you'd continue with 21 - 2*pi^2 - n*pi, and use approximations to find the amount of 1's needed, etc. 02:33:55 (not actually an algorithm, but at least there's no error) 02:34:06 (i mean it might hang) 02:35:36 madbr: can't pi be done with pretty much anything 02:36:26 you know better than be probably 02:37:00 i don't know anything about pi 02:37:27 i don't even know why it isn't algebraic 02:38:14 i hear it's like totally nontrivial 02:38:40 ...lol my gf will wake up soon, i should really start reading soon :P 02:39:19 (only 4:38, and i'm already reading about singular cubes, yay) 03:39:10 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 04:04:09 -!- puzzlet has joined. 04:20:00 -!- oklopol has joined. 04:21:30 -!- oklofok has quit (Ping timeout: 240 seconds). 05:24:47 -!- whtspc has joined. 05:31:02 -!- whtspc has quit (Ping timeout: 246 seconds). 05:59:40 -!- Pthing has joined. 06:08:35 -!- Ripley has joined. 06:25:45 -!- Ripley has left (?). 06:26:31 -!- oerjan has joined. 06:47:29 Hey 06:47:53 ho 06:47:59 I get a lot of Cannot send to channel for some reason on the other channels for some reason 06:48:02 What gives! 06:49:04 you don't seem to be registered. is it possible they only allow registered nicks to speak? 06:49:25 -!- madbr has quit (Quit: Radiateur). 06:50:18 they just changed ircd program, in case you haven't noticed, so some setup has changed 06:50:44 Weird 06:51:03 +R turned into some other quieting option, although i didn't have the impression it should change what happened in practice... 06:51:48 Yeah, but the channel I just tried talking doesn't have +R on 06:51:52 Or so it seems 06:51:58 +R doesn't exist any longer 06:52:05 And I can talk here just fine 06:52:08 it's +q something 06:52:29 well we've never silenced people here that i can remember... 06:52:32 It's just +cnt on ##physics 06:52:59 i'm not sure +q shows up by default, i think it's like a ban list 06:53:41 07:52 0 - ##physics: ban $~a [by 06:53:42 JabberWalkie!~superdude@CPE0013d44814fd-CM001bd70964c4.cpe.net.cable.rogers.com, 121722 secs ago] 06:53:49 i think that might be the one 06:54:02 (found with /mode #physics +q) 06:54:09 *##physics 06:54:21 Well, let's try now 06:57:26 It works, thx 06:57:50 -!- tombom has joined. 07:03:29 -!- FireFly has joined. 07:08:40 -!- oerjan has quit (Quit: leaving). 07:39:44 -!- jcp has joined. 07:48:24 -!- FireFly has quit (Quit: Leaving). 07:50:47 -!- tombom has quit (Quit: Leaving). 07:52:27 -!- GreaseMonkey has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:15:18 -!- puzzlet has quit (Changing host). 08:15:18 -!- puzzlet has joined. 08:22:15 hm, I'm thinking: screw this precision game, let's just choose an "official" number of bits for pi and store everything exactly as rationals when working 08:23:26 but it would be better to just figure out how to make this reliable, that'd teach me something too 09:13:11 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it). 09:14:11 -!- fizzie has quit (Ping timeout: 260 seconds). 09:14:26 -!- Asztal has joined. 09:16:18 -!- fizzie has joined. 09:17:02 -!- mtve has joined. 09:27:44 -!- jcp has quit (Read error: Operation timed out). 09:39:59 -!- MigoMipo has joined. 09:56:01 -!- scarf has joined. 10:03:14 -!- MigoMipo has quit (Quit: Page closed). 10:23:19 -!- scarf has quit. 10:23:36 -!- scarf has joined. 10:53:53 -!- oklofok has joined. 10:56:25 -!- oklopol has quit (Ping timeout: 245 seconds). 10:58:23 -!- oklopol has joined. 11:00:53 -!- oklofok has quit (Ping timeout: 260 seconds). 11:20:32 -!- scarf has quit (Remote host closed the connection). 11:55:17 -!- Pthing has quit (Remote host closed the connection). 12:46:37 -!- MizardX has quit (Read error: Connection reset by peer). 12:47:26 -!- MizardX has joined. 12:51:45 -!- FireFly has joined. 12:54:56 -!- Pthing has joined. 13:01:20 -!- MigoMipo has joined. 13:19:33 -!- BeholdMyGlory has joined. 13:19:33 -!- BeholdMyGlory has quit (Changing host). 13:19:33 -!- BeholdMyGlory has joined. 13:27:56 -!- adam_d has joined. 13:51:33 -!- MizardX- has joined. 13:53:15 -!- MizardX has quit (Ping timeout: 260 seconds). 13:53:28 -!- MizardX- has changed nick to MizardX. 14:31:30 -!- MigoMipo has quit (Quit: Page closed). 14:54:33 -!- Pthing has quit (Remote host closed the connection). 14:56:24 -!- whtspc has joined. 14:57:45 -!- whtspc has left (?). 15:03:49 Deewiant, what should 0j@ do? should it remain on j forever or should it reach the @ at some point? 15:05:30 If 1j is like # then 0j is like z. 15:06:36 Deewiant, hm does mycology test 0j? 15:06:43 Beats me. 15:10:06 Deewiant, so 0jv should take the down path then 15:10:21 well strange, it looks like the code in cfunge does the wrong thing, but it does in fact do the right thing 15:12:06 oh wait... now I see how it works 15:27:19 -!- cpressey has joined. 15:28:03 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 15:33:18 hi AnMaster 15:47:10 hello 15:51:29 -!- oerjan has joined. 15:51:38 -!- whtspc_ has joined. 15:55:55 -!- whtspc_ has quit (Client Quit). 16:11:58 -!- oklofok has joined. 16:13:25 -!- oklopol has quit (Ping timeout: 264 seconds). 16:27:09 -!- Deewiant has quit (Ping timeout: 276 seconds). 16:30:06 -!- MissPiggy has joined. 16:31:38 -!- MissPiggy has quit (Client Quit). 16:33:30 -!- kar8nga has joined. 16:35:27 -!- Deewiant has joined. 16:43:42 -!- oerjan has quit (Quit: Scheduled downtime approaching). 16:44:00 -!- MizardX- has joined. 16:46:00 -!- MizardX has quit (Ping timeout: 276 seconds). 16:46:29 -!- MizardX- has changed nick to MizardX. 16:58:53 Ugh. This lib needs to call closure as callback, but the function to register callback doesn't take context. :-/ ... Well, I think this needs trampolines (yay, runtime code generation). :-) 17:06:04 Well, if you don't care about it being even vaguely reentrant, you could just use a global. :P 17:13:32 Unfortunately, that isn't an option there. 17:17:16 -!- uoryfon has joined. 17:20:51 -!- tombom has joined. 17:27:38 -!- uoryfon_ has joined. 17:31:18 -!- uoryfon has quit (Ping timeout: 252 seconds). 17:31:27 -!- uoryfon_ has changed nick to uoryfon. 17:32:43 -!- kar8nga has quit (Remote host closed the connection). 17:40:32 -!- jcp has joined. 17:47:45 -!- MizardX has quit (Ping timeout: 276 seconds). 17:51:17 -!- augur has quit (Ping timeout: 246 seconds). 17:54:34 -!- uoryfon_ has joined. 17:57:38 * cpressey suddenly wants to start a punk band called "sudo rm -rf /" 17:57:42 -!- uoryfon has quit (Ping timeout: 252 seconds). 17:57:43 -!- uoryfon_ has changed nick to uoryfon. 17:58:51 -!- kar8nga has joined. 17:59:38 -!- uoryfon_ has joined. 18:02:39 -!- uoryfon has quit (Ping timeout: 252 seconds). 18:02:39 -!- uoryfon_ has changed nick to uoryfon. 18:04:48 -!- uoryfon_ has joined. 18:08:09 -!- uoryfon has quit (Ping timeout: 252 seconds). 18:08:12 -!- uoryfon_ has changed nick to uoryfon. 18:09:48 -!- uoryfon has quit (Quit: Colloquy for iPhone - http://colloquy.mobi). 18:14:03 -!- jcp has changed nick to javawizard2539. 18:14:40 -!- javawizard2539 has changed nick to jcp. 18:26:40 -!- augur has joined. 18:29:06 -!- lifthrasiir has quit (Ping timeout: 240 seconds). 18:29:11 -!- lifthrasiir has joined. 18:53:52 -!- adam_d has quit (Ping timeout: 272 seconds). 18:59:16 -!- MissPiggy has joined. 18:59:18 -!- MissPiggy has quit (Changing host). 18:59:19 -!- MissPiggy has joined. 19:13:02 I think of a simple loop based language that you can write O(n^k) programs (for any fixed k) 19:13:30 -!- whtspc_ has joined. 19:19:46 Yeah, if one can only do fixed-count iteration, then one can only write algorithms that are in P. 19:20:16 every algorithm in P? 19:21:24 Actually, that's only if one can only iterate over collections. Number-based iteration allows algorithms not in P. 19:21:40 -!- uoryfon has joined. 19:21:44 oop 19:23:50 Actually, if one has number-based fixed iteration, one could do at least up to EXPTIME-complete. 19:25:43 I thought it was NEXPTIME 19:26:18 At least up to... 19:26:51 So might be some even bigger class... 19:27:17 Well, I don't remember where I heard that, and I don't know if I'm remembering it correctly. 19:29:41 -!- whtspc__ has joined. 19:29:45 At any rate, it contains every algorithm described as "feasible", which means... for "practical work" you don't need a Turing-complete computer. You only need TC if you want to write an interpreter :) 19:31:10 -!- whtspc__ has left (?). 19:32:11 s/computer/language/ to be a bit more precise. 19:38:09 -!- Slereah_ has joined. 19:38:50 -!- Slereah has quit (Ping timeout: 272 seconds). 19:40:05 -!- GreaseMonkey has joined. 19:47:02 -!- whtspc_ has quit (Read error: Connection reset by peer). 19:55:28 -!- uoryfon_ has joined. 19:57:40 -!- uoryfon has quit (Ping timeout: 245 seconds). 19:57:43 -!- uoryfon_ has changed nick to uoryfon. 20:06:00 -!- adam_d has joined. 20:06:24 -!- uoryfon_ has joined. 20:09:45 -!- uoryfon has quit (Ping timeout: 245 seconds). 20:09:47 -!- uoryfon_ has changed nick to uoryfon. 20:11:39 -!- uoryfon has quit (Quit: Colloquy for iPhone - http://colloquy.mobi). 20:11:42 cpressey, so writing an interpreter isn't feasible then? ;P 20:14:50 -!- MigoMipo has joined. 20:14:52 -!- MigoMipo has quit (Excess Flood). 20:15:20 -!- MigoMipo has joined. 20:15:21 -!- MigoMipo has quit (Excess Flood). 20:20:50 AnMaster: Apparently not! I do like the distinction you can draw from it, though: "If I can prove my code halts, it's an algorithm. Otherwise, it's an interpreter." 20:26:28 cpressey, you could have interpreters for sub-tc languages you know will always halt 20:26:55 iirc ais/scarf designed one reversible always-halting language 20:27:03 forgot the name of it 20:27:14 ais/scarf? Is that his name now? 20:27:35 uorygl, he used scarf sometimes recently 20:28:04 Neat. Now I know who scarf is. 20:28:15 hah 20:28:27 hm 614 new mails 20:28:31 most are probably spam 20:28:52 actually no, it looks like there has been some huge debate on flightgear-devel list 20:30:02 AnMaster: well, if that' 20:30:44 cpressey, ? 20:30:51 if that's an interpreter, then so is a program that solves the travelling salesman problem, is all I meant. 20:30:59 cpressey, heh 20:31:03 Where the language there is weighted undirected graphs :) 20:31:26 Very, very sub-TC, you might say... 20:32:30 Now, back to fighting my favourite thing to ever come out of gnu: libtool. 20:32:37 * cpressey groans. 20:33:20 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 20:34:22 I wonder if the worlds of pain caused by shared libraries could have been avoided by just having OSes/filesystems that do hash consing. 20:35:45 Nah, probably not, b/c you have to rewrite all those pointers when you link statically, so the same library statically linked into two different files would look different in each. Ah well. 20:43:20 cpressey, why are you using libtool? 20:43:45 you can do shared libraries without libtool just fine 20:43:53 cpressey, also how do you mean hash consing? 20:45:11 AnMaster: basically, every time you allocate a new piece of data, check to see if you already have an identical piece of data, and if so, just keep a reference to the existing data instead. The name comes from the research where the technique was developed in LISP. 20:45:41 as for why libtool... because i am stupidly trying to build some tools i need (subversion, right now) from source 20:46:13 cpressey, like venti? 20:46:25 (plan9 thing iirc) 20:46:33 (yeah part of plan9 even) 20:47:13 cpressey, they tend to just work after ./configure --prefix=$HOME/local/subversion && make && make install 20:48:18 Oh yes, it's very nice when they just work :) Darn thing keeps telling me it can't find expat, though. 20:48:35 cpressey, so install expat 20:48:44 sudo pacman -S expat 20:48:53 or sudo apt-get install expat-dev or whatever 20:49:36 AnMaster: Building shared libraries without libtool is a pain to do portably. 20:49:38 ah seems to be libexpat1-dev on ubuntu 20:49:48 ... Building anything *with* libtool is a pain, so I guess it evens out. 20:49:59 pikhq, does it work on *bsd and linux easily without libtool? 20:50:23 I don't really care about HP-UX, VMS and other obscure systems 20:50:30 oh AIX too 20:50:30 AnMaster: It *works*, but people seem to suck at it. 20:50:41 pikhq, isn't it just gcc -shared ? 20:50:45 (next person to build a shared library without -fPIC gets a kick to the balls) 20:50:56 pikhq, well yes of course you use -fpic 20:50:58 AnMaster: Add -fPIC for fucks sake. 20:51:02 also -fpic NOT -fPIC 20:51:15 the lower case version is better on some platforms iirc 20:51:47 Yes, like DOS. 20:51:47 And DOS. 20:51:49 Also DOS. 20:52:01 and sparc 20:52:45 pikhq, what? -fpic vs. -fPIC? 20:52:46 no 20:52:57 No, wait... 20:53:06 it makes a difference only on SPARC, m68k and RS/6000 says man gcc 20:53:15 According to the man page, it only makes difference on m68k, PowerPC, and SPARC. 20:53:29 haha 20:53:43 pikhq, mine lists SPARC, m68k and RS/6000 under -fpic but m68, PowerPC and SPARC under -fPIC 20:53:45 -fpic makes a smaller offset table. 20:53:48 whatever that is supposed to mean 20:53:56 If it's too small, it'll not compile. 20:54:01 -fPIC will always work. 20:54:04 pikhq, it is faster though 20:54:09 iirc 20:54:20 AnMaster: If your shared library is small enough. 20:54:22 pikhq, and if you need such a large GOT you have too many functions 20:54:35 divide it in more 20:54:50 a library should follow the unix philosophy too 20:54:56 (do one thing, do it well) 20:54:59 Anyways. 20:55:10 on sparc the smaller table means single instructions can be used to load offsets into it, -fPIC generates double-instruction constant loading that can handle large offsets 20:55:12 Many build systems build shared libraries *without* using position-independent code. 20:55:30 olsner, right 20:55:36 Because the x86 dynamic linker will manually relocate the library if it's not PIC. 20:55:37 pikhq, that won't load 20:55:44 on x86-64 iirc 20:55:46 It will on x86. 20:55:48 And *nowhere* else. 20:55:51 pikhq, not on x86-64 20:56:00 pretty sure about that 20:56:03 AnMaster: Yes. That's not x86. 20:56:11 pikhq, well the difference is slight 20:56:18 also x86-64 is the norm nowdyas 20:56:21 days* 20:56:25 for linux 20:56:31 The difference between the CPU architecture is slight. 20:56:38 The ABI is radically different. 20:56:44 true 20:57:06 where is the x86 abi 20:57:14 I only read the amd64 abi 20:57:21 Undefined. 20:57:24 It's per-OS. 20:57:28 And often per-compiler. 20:57:32 pikhq, well it must be documented for linux... 20:57:34 somewhere 20:57:40 And if you're on Windows, give up now. 20:57:48 pikhq, also Microsoft ignores the amd64 abi yes 20:58:02 Microsoft defines its own, yes. 20:58:13 Windows on x86 has 3 or 4 different calling conventions. 20:58:43 The Linux x86 ABI is defined in the LSB. 20:59:17 I would like a nice, easy to use, 3D modeller, based on using boolean functions between primitives. Such as "intersection of this cube and (union of that cylinder and that sphere)". Anyone know such a thing? 20:59:45 Except for C++-specific details; those are from the IA64 ABI documentation for all GCC-supported architectures. 20:59:47 this would in other words not be based on polygons (or it could be as well) 21:00:13 pikhq, linux use different calling convetions on x86 too. regparam for example 21:00:19 -!- rodgort has quit (Quit: Coyote finally caught me). 21:00:28 AnMaster: regparam is very, very rarely used. 21:00:38 cfunge uses regparam attribute on x86 to speed things up (there is a measurable difference) 21:00:53 AnMaster: thank you. libexpat1-dev worked. Why it worked and why plain 'expat' did not, I still have no good idea -- it's not like extra so's were installed (and that's what it was saying it couldn't find.) 21:01:06 cpressey, plain expat is a program it says 21:01:17 cpressey, "expat - XML parsing C library - example application" 21:01:22 apt-get tells me that 21:01:27 err 21:01:28 apt-cache 21:02:04 Wheras on Windows, there's fastcall, stdcall, cdecl, safecall, and pascal calling conventions... 21:02:04 AnMaster: but expat installs /usr/lib/libexpat.so* ... which should be enough to link to, given that it didn't complain about headers. 21:02:07 -!- rodgort has joined. 21:02:23 cpressey, well. maybe it needs *.la or *.a? 21:02:25 -!- rodgort has quit (Client Quit). 21:02:40 And those are just in use by Microsoft's compiler. 21:02:50 cpressey, if you are doing subversion why not apt-get builddep subversion 21:02:53 or was it builddeps 21:02:54 ? 21:02:57 something like that 21:03:00 AnMaster: well, libexpat.la appears to have been in my lib dir since Jan 19 as well 21:03:16 At any rate, it's built. best not to think any more about it, right? :) 21:03:19 pikhq, delphi (which is pascal) used fastcall internally iirc 21:03:23 There's *also* the Borland fastcall and the GNU cdecl. 21:03:29 or was it a modified fastcall? 21:03:32 well probably 21:03:42 pikhq, gnu uses it's own cdecl on windows? 21:03:53 AnMaster: The difference is in struct packing. 21:04:06 At any rate, it's built. best not to think any more about it, right? :) <-- wrong. You always try to figure out *why* something unexpected happened 21:04:11 pikhq, -_- 21:04:15 It packs its structs differently from Microsoft C. 21:04:15 -!- rodgort has joined. 21:04:23 pikhq, that isn't calling convention! 21:04:26 With an attribute for Microsoft packing. 21:04:31 struct packing is, well, ABI yes 21:04:36 but not calling convention 21:04:38 Fine, fine, remove the GNU cdecl. 21:04:52 Borland still has its own fastcall. 21:05:06 (different registers are used) 21:05:12 pikhq, anyway regparam with gcc isn't that rarely used. Let me grep cfunge sources for number of times it is used! 21:05:37 cfunge is the first thing I've heard of actually *using* it. 21:05:42 AnMaster: maybe my smiley should have been a ;-) 21:05:43 pikhq, does MS still use fastcall? 21:05:49 cpressey, maybe 21:05:53 Yes. 21:06:08 pikhq, for what sort of functions 21:06:09 Random parts of Win32 use it. 21:06:13 pikhq, also what about thiscall? 21:06:30 That's just a C++ implementation detail. 21:06:32 ah 21:06:33 "First argument is this". 21:06:43 s/C++/python/ ;P 21:06:54 (except there it is explicit!) 21:07:00 Heheh. 21:07:42 Microsoft at least went sane on x86_64... 21:07:44 how comes C++ needs it's own "different from C" ABI, while python manages fine with the C abi. 21:07:48 There is one calling convention. 21:07:48 well yes I can see the reasons 21:07:50 but still 21:07:52 it makes you wonder 21:08:10 pikhq, different from linux one though on x86_64 21:08:19 pikhq, also doesn't syscalls use their own? 21:08:24 on both linux and windows 21:08:26 Yes, but it's at least a *single* calling convention. 21:08:36 Syscalls must -- there's no way to just "call" them. 21:08:43 pikhq, call gates? 21:08:50 I have a vague memory of reading about that 21:08:58 not sure how it worked 21:09:00 AnMaster: Even that requires some specific work on them. 21:09:38 The Linux call gate is linked in before the dynamic linker is started. 21:09:51 And the Linux call gate is at a specific address. 21:09:52 true 21:09:56 also no longer used 21:10:02 it uses SYSCALL/SYSRET iirc? 21:10:07 ... No, the call gate is still used. 21:10:09 or was it SYSENTER/SYSEXIT? 21:10:13 The call gate is a *recent thing*. 21:10:17 pikhq, if you mean the vdso... 21:10:27 Yes, that's the call gate. 21:10:36 pikhq, not the call gate in the meaning I used it 21:10:42 http://en.wikipedia.org/wiki/Call_gate 21:10:52 "Assuming a call gate has been set up already by the operating system kernel, code simply does a CALL FAR (LCALL in AT&T syntax) with the necessary segment selector (the offset field is ignored). " 21:11:09 Oh, that bloody thing. 21:11:24 pikhq, so you know about it? 21:12:12 Linux doesn't use that. 21:12:22 did I say it did? 21:12:27 No. 21:12:37 I'm saying it doesn't at all, though. 21:13:01 SYSENTER is quite funky. IIRC, it does not save address that called it. 21:13:10 Because it damned well doesn't help matters any. 21:13:19 is it SYSCALL that is used then? 21:13:33 Linux's entry methods are an interrupt, syscall/sysret, or sysenter/sysexit. 21:13:37 So there can only be one SYSENTER in each VM space. 21:13:48 The Linux VDSO uses whichever one is the fastest. 21:13:48 "It should be noted that call gates are more flexible than the SYSENTER/SYSEXIT and SYSCALL/SYSRET instructions since unlike the latter two, call gates allow for changing from an arbitrary privilege level to an arbitrary (albeit higher or equal) privilege level. The fast SYS* instruction only allow control transfers from ring 3->0 and vice versa. Upon comparing call gates to interrupts, call gates are 21:13:49 significantly faster." 21:13:55 Interesting stuff. 21:14:32 I would think they would be a lot faster, especially for some access patterns (though maybe not ones that are frequently used in modern OSes) 21:14:53 And that SYSENTER is part of Linux-gate VDSO. 21:14:59 cpressey, iirc virtualbox uses ring 2 a bit if there is no VT-d/whatever support 21:15:05 or VT-x or whatever it was 21:15:12 Waiting for the next interrupt can be killer. 21:15:21 Ilari: Only if it's present. 21:15:26 Ilari, even on x86-64?' 21:15:31 s/'// 21:15:46 I thought it used syscall exclusively on x86-64 21:16:21 -!- MissPiggy has quit (Read error: Connection reset by peer). 21:16:29 basically AMD64 deprecated Intel's sysenter in the AMD64 specs 21:16:33 * AnMaster opens the file 21:17:01 "6.1.2 SYSENTER and SYSEXIT (Legacy Mode Only)" 21:17:02 Well, if X64 has SYSCALL, its probably better than SYSENTER. 21:17:20 " L i ke S Y S C A L L a n d S Y S R E T, S Y S E N T E R a n d 21:17:20 SYSEXIT are low-latency system call and return instructions designed for use by system and 21:17:20 application software implementing a flat-memory model. However, these instructions are illegal in 21:17:20 long mode and result in an undefined opcode exception (#UD) if software attempts to use them. 21:17:20 Software should use the SYSCALL and SYSRET instructions when running in long mode." 21:17:24 yeargh 21:17:28 * AnMaster kills evince 21:17:37 what the hell did it do there 21:17:47 with that spacing 21:17:52 Ilari: Syscall and Sysenter do roughly the same thing. 21:18:02 One was created by Intel, the other by AMD. 21:18:20 pikhq: And presumably SYSCALL saves RIP... 21:18:46 Probably. 21:19:10 doesn't linux map the clock in process memory for gettimeofday() and such 21:19:18 it is iirc done in the vdso magic 21:19:41 Possibly. 21:23:05 -!- soupdragon has joined. 21:27:03 -!- soupdragon has quit (Client Quit). 21:50:08 -!- MissPiggy has joined. 22:07:33 -!- MissPiggy has quit (Quit: * I'm too lame to read BitchX.doc *). 22:16:01 -!- tombom has quit (Quit: Leaving). 22:19:58 -!- kar8nga has quit (Remote host closed the connection). 22:40:19 -!- coppro has joined. 22:40:52 -!- BeholdMyGlory has quit (Remote host closed the connection). 23:04:53 -!- adam_d has quit (Quit: Leaving). 23:16:03 -!- Leonidas has quit (Changing host). 23:16:03 -!- Leonidas has joined. 23:20:32 hah, getting a newer gmp and compiling mpfr and gmp locally seems to have given around 20% 23:21:13 optimizing while the program isn't even made correct <3 23:21:35 -!- coppro has quit (Quit: restarting the X CPU-Hoggin System). 23:22:18 -!- rodgort has quit (Quit: Coyote finally caught me). 23:22:38 -!- rodgort has joined. 23:22:52 -!- Leonidas has quit (Quit: Reconnecting). 23:22:52 -!- Leonidas has joined. 23:22:52 -!- Leonidas has quit (Changing host). 23:22:52 -!- Leonidas has joined. 23:23:16 -!- Leonidas has quit (Client Quit). 23:24:26 -!- coppro has joined. 23:25:39 -!- Leonidas_ has joined. 23:25:39 -!- Leonidas_ has quit (Changing host). 23:25:39 -!- Leonidas_ has joined. 23:25:56 -!- Leonidas_ has changed nick to Leonidas. 23:29:02 -!- augur has quit (Ping timeout: 265 seconds). 23:29:33 -!- GreaseMonkey has quit (*.net *.split). 23:32:44 -!- GreaseMonkey has joined. 23:39:09 -!- XRY has joined. 23:39:11 -!- XRY has quit (Read error: Connection reset by peer). 23:40:41 -!- XRY has joined. 23:40:46 -!- XRY has left (?). 23:41:38 -!- SimonRC has quit (Ping timeout: 246 seconds). 23:41:54 -!- XRY has joined. 23:41:59 -!- XRY has left (?). 23:43:23 -!- FireFly has quit (Quit: Leaving). 23:45:23 -!- XRY has joined. 23:45:28 -!- XRY has left (?). 23:47:15 -!- GreaseMonkey has quit (Quit: HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it). 23:47:31 -!- GreaseMonkey has joined. 23:49:37 -!- XRY has joined. 23:49:46 -!- XRY has left (?). 23:51:58 -!- SimonRC has joined. 23:58:34 -!- mquin has joined. 23:58:45 -!- zzo38 has joined. 23:58:50 Finally, it works! 23:58:59 It works! The OASYS->TAVSYS works! It works! It {OUCH}