00:00:03 btw is it even possible to write a non-trivial 2/3 polygot 00:00:04 ? 00:00:08 Yes. 00:00:16 import sys; prunt = sys.stdout.write 00:00:20 prunt('Hello, world!\n') 00:00:21 ehird, maybe it wasn't, maybe it was just in #esoteric 00:00:25 It's not hard if you keep within the boundaries. 00:00:48 ehird, it is harder writing a C extension that works with both indeed 00:00:54 AnMaster: so don't do that 00:00:55 usually i want my randomization done in interesting and novel ways 00:00:59 since nobody uses 3 00:01:00 ehird, why not? :/ 00:01:09 well nobody uses 3 because nothing supports it 00:01:18 Untrue: work is underway. 00:01:20 It's not too stable yet. 00:01:28 the only way to make more people use it would be to support it 00:01:49 ehird, well I found a crash bug in python 3 thanks to porting a C extension 00:02:39 -!- M0ny has quit ("Quit"). 00:02:51 because of a bug in one of the the C API functions that tried to convert a PyUnicode to PyByterray twice, in an unchecked way 00:03:35 Reported it? 00:03:58 yes 00:04:58 ehird, yes I tried to, but the bug reporting system never managed to send me the confirmation email 00:05:05 so I was unable to report it 00:05:09 -!- Gracenotes has joined. 00:05:15 probably the issue is at my isp 00:05:16 meh 00:05:41 Hey, when I get bogons I can be pretentious about my ISP. 00:05:43 It's the little things! 00:05:50 hah 00:06:11 ehird, anyway I forgot what exact API call it was by now. I worked around it in some way iirc 00:07:09 ehird, I did report it in #python with a note about that the bug tracker was broken for me. 00:07:54 night 00:08:08 (really, I need to go up early tomorrow so...) 00:08:45 Another installment in the "That classes as _music_?" series: http://www.youtube.com/watch?v=_po0RTKjsC8&fmt=18 00:16:29 okay that's awesome 00:19:12 oklopol_: it goes on for 30 minutes 00:19:15 in the real shows 00:19:18 apparently it reaches 120dB 00:19:48 oh it actually sounds like that 00:19:51 coool 00:20:00 :D 00:21:30 http://forum.slicehost.com/comments.php?DiscussionID=3234&page=1#Item_0 00:21:32 Fail. 00:24:15 Hm. 00:24:21 As far as I can tell, bogons is just two people. 00:24:21 XD 00:31:10 so i go into a huge directory and grep foo -R . 00:31:20 this takes like 3 minutes 00:31:36 but grepping a tarball of the same directory only takes 15 seconds 00:33:23 bsmntbombdood: directory iteration is slow 00:33:30 and, well, files in general. 00:34:13 there's a stat,open,and close for every single file :/ 00:34:46 how can i make this faster? 00:34:56 bsmntbombdood: don't grep a directory tree. 00:35:03 consolidate multiple files. 00:35:12 that's annoying 00:35:15 yes. 00:35:17 Filesystems are. 00:38:19 ... 00:40:42 -!- oerjan has joined. 00:40:48 bsmntbombdood: What? 00:41:00 that's not a soluiton 00:41:11 ehird: koalas 00:41:15 bsmntbombdood: Well, there's no other solution. 00:41:19 That's how the fs apis are. 00:42:11 -!- FireFly has quit ("Later"). 00:42:11 ... 00:42:27 bsmntbombdood: Do you have a language impediment? 00:43:26 ... 00:43:31 Clearly. 00:44:01 there's got to be a good way to do it 00:44:13 bsmntbombdood: sorry to disappoint 00:44:42 was just wondering could there be an infinite vector space for which there is no linearly independent subset which generates the space 00:45:09 oerjan: so whether they always have a basis 00:45:18 but found out yes they do 00:45:24 13:29:18 Intuition says 'no' 00:45:24 13:29:27 But I guess with the AoC anything can happen ;-P 00:45:26 but just write your response 00:45:33 in fact AoC is used in the proof 00:45:44 heh. 00:45:47 and it's "yes" 00:46:24 wait the axiom of death is used in it and it's on the same course as me 00:46:29 sounds dangerous 00:46:33 axiom of death :D 00:46:47 the axiom of death: exists P. P&~P 00:47:34 or more directly, you use Zorn's lemma 00:48:10 ah that's actually just a few pages down the material 00:48:19 i think i'll leave it for next week 00:48:22 basically, if you have an independent set which does _not_ generate all, you can always extend it, and you can take the union of a chain of them 00:48:45 ah 00:48:54 and then you just take the smallest supremum 00:48:55 so Zorn's lemma applies to say a maximal chain generates all 00:49:15 or is it infimum 00:49:21 there's no _the_ smallest supremum, because the extension is not unique 00:49:28 hmm true 00:49:37 hmm wait 00:49:43 does exists P. P&~P actually break anything 00:49:44 (also supremum is always smallest by definition 00:49:45 ) 00:49:48 I mean you still can't get to a P 00:50:01 ehird: yes you can 00:50:07 orl 00:50:08 y 00:50:08 how 00:50:17 ehird: assume there exists P such that P&~P, then true=false => everything is true 00:50:38 well right 00:50:42 oklopol_: that's not quite a first order proof though 00:50:43 I was concentrating on the 'exists P.' part 00:50:50 oerjan: indeed is not. 00:51:16 i want a "schaum's mathematical handbook with proofs" 00:51:44 oklopol_: also, Zorn's lemma is needed exactly to know that a maximal set exists 00:52:22 ah yes 00:52:31 P => (A => P) is an axiom 00:53:03 or can be, anyway 00:53:40 er it is? 00:53:44 so you get for that P, A => (P & ~P) 00:53:47 oerjan: that's not true, because what if P is true by an axiom 00:53:51 then there's no A 00:54:08 huh 00:54:18 ehird: em now i'm also using the P&~P hypothesis 00:55:02 -!- neldoreth has quit ("Lost terminal"). 00:55:19 maybe this is overkill 00:55:42 ~P = P => false 00:55:54 so P & ~P => false 00:56:07 and false => A is an axiom 00:56:51 that's pretty much what i was going for 00:57:15 yeah 00:57:31 yes but there's a reason I said 'exists' 00:57:33 * ehird shrug 00:57:34 so P & ~P => A (which could also be an axiom) 00:57:37 i'mw rong :) 00:57:54 well then you need to use the quantifier rules 00:58:44 ah yes 00:59:10 exists P. P & ~P => exists P. A 00:59:18 if that's not an axiom, it's close 00:59:34 finally, you can remove existentials if the variable is unused 01:00:03 err what does that mean? 01:00:15 exists P. A => A 01:00:23 ah 01:00:29 * (exists P. A) => A 01:00:42 yes ofc 01:02:12 of course since the set of axioms can vary by formulation, this is all a bit wishy-washy 01:02:44 *axioms/deduction rules 01:03:18 P => ~P ← tip: Use "really untrue" things. 01:03:34 yes kinda like a broken washing machine 01:03:53 P => ~P is equivalent to ~P, anyway 01:04:22 more like ~P & ~P 01:05:10 well in principle, but A => B = ~A \/ B (in classical logic), not & 01:05:36 point is the redundancy was relevant to ehird's weird point 01:05:50 also P => ~P is equivalent to ~P with just intuitionist logic 01:05:55 i was formulating new logic 01:06:00 you have regular true things which are untrue 01:06:04 so you have to use really untrue things 01:06:06 to distinguish 01:06:09 really untrue = ~~~ 01:06:39 oerjan: what do you mean with just intuitionistic logic? 01:06:42 *intuitionist 01:06:49 oh 01:07:06 actually isn't intuitionist logic a well-known logic, probably referred to that 01:07:08 intuitionist logic is a logic where the excluded middle doesn't hold, among other things 01:07:16 yeah 01:07:29 and where you cannot rewrite => & \/ in terms of each other 01:07:37 i've just had one course in logic, and it was more about proving stuff than the general philosophical issues 01:07:39 although ~P = P => false still 01:07:50 and by philosophy i mean other kinds of logics 01:08:37 Under the Curry-Howard isomorphism, Peirce's law is the type of continuation operators, e.g. call/cc in Scheme[1]. 01:08:41 that's fucking hot 01:08:48 yes 01:09:01 Peirce's law? 01:09:13 oklopol_: ((p->q)->p)->q 01:09:19 curry-howard isomorphism is like the best ting to happen to programming 01:09:44 intuitionistic logic corresponds to ordinary typed lambda calculus, while classical logic (with peirce's law etc.) corresponds to a lambda calculus with continuations 01:09:46 hard to say, i don't understand it. 01:09:53 oklopol_: 01:10:00 modusPonens :: (p -> q, p) -> q 01:10:01 proof: 01:10:05 modusPonens (f,x) = f x 01:10:08 (,) = and 01:10:10 Either = or 01:10:14 (->) = guess 01:10:27 Not a = a -> Void 01:10:30 (where "data Void") 01:11:05 yeah i've seen the definitions in many forms 01:11:13 so how don't you understand it 01:11:19 type = proposition, non-bottom implementation = proof 01:11:33 ah well that makes more sense 01:12:06 falseImpEverything :: Void -> a 01:12:12 i mean just seeing a syntactical mapping between types and logic doesn't really tell me much. 01:12:17 falseImpEverything x = case x of {} 01:12:25 oerjan: cheat 01:12:28 that's a bottom implementation 01:12:29 not allowed 01:12:33 ehird: no it is not 01:12:36 err k 01:12:46 because Void has no constructors 01:12:47 (although you can't get any (Not a) with no-bottom rule, so maybe we need a better definition) 01:12:56 (i mean maybe I am wrong) 01:13:14 hm sure you can 01:13:17 how 01:13:25 there's no value of type Void that isn't bottom 01:13:36 but Not a is not Void 01:13:45 it's (a -> Void) 01:13:52 oerjan: youc an't implement that 01:13:53 surely 01:13:54 so you need to start with a contradiction 01:14:06 well you said _any_ Not a 01:14:17 there are specific a's you can get 01:14:22 oerjan: liek? 01:14:23 Not Void being one 01:14:28 well okay 01:14:41 i guess you have to go into axiom land to get more 01:14:43 another would be ~(p & ~p) 01:14:47 which involves bottom, I guess 01:14:50 oerjan: hmm 01:14:58 ((p, p -> Void) -> Void) 01:15:00 -> Void 01:15:10 prove with fix, I assume? 01:15:17 err no 01:15:20 how can you prove that 01:15:31 f (p, q) = q p 01:15:43 oerjan: you don't have a (p,q) 01:15:47 you have a ((p,q)->Void) 01:15:55 no 01:15:55 ~(p&~p) 01:15:55 = 01:16:00 Not (p, Not p) 01:16:00 = 01:16:05 ((p, p -> Void) -> Void) 01:16:12 so how can you prove 01:16:15 f :: ((p, p -> Void) -> Void) 01:16:20 ohh 01:16:24 you mean proving ~(p&~p) 01:16:25 f (p, q) = q p 01:16:29 yes 01:16:33 instead of proving Not ~(p&~p) 01:16:33 sorry 01:16:35 brainfart 01:16:36 right, right 01:16:38 okay 01:17:14 okay i think i get it now 01:17:27 for anything of the form Not a, the intuitionist and classical tautologies are the same btw. 01:17:44 oklopol_: yeah it's pretty hot isn't it, every piece of code you write is a proof of some proposition 01:18:21 what logic would python be 01:18:37 oklopol_: erm python doesn't really have types as such... 01:18:46 so... none :D 01:19:04 it works best with functional languages 01:19:23 well i was mainly hoping for a fun pun answer 01:19:27 functional strongly typed langs 01:19:27 so 01:19:28 haskell 01:19:30 and ml 01:19:54 oklopol_: the serpent calculus 01:20:05 thank you ! 01:20:15 i'm sure that is fun if you get the obscure logic reference 01:20:24 i don't really 01:20:41 but i'll just assume it is really something. 01:20:42 sequent calculus is a way of axiomatizing logics 01:21:10 ...so s/q/rp/? 01:21:26 *qu 01:21:54 right was too busy correcting my keyboard's errors to see mine 01:21:56 You agree that neither you nor any person using the Service with your permission shall use the Service: for any fraudulent, criminal or unlawful purpose; to send unsolicited advertising or promotional material (or to engage in any "spamming" activity); to transmit any virus, worm, trojan horse or other harmful material; for the purpose of intimidating, harassing or causing annoyance to any third party 01:22:02 being annoying = illegal 01:25:12 so err f (q, p) = p q proves f :: ((p, p -> Void) -> Void), but can't you prove the inverse, f :: (p, p -> Void), with simply having f be a pair of (some value, function that bottoms) 01:25:20 no i don't think i still get it. 01:25:37 bottom = no 01:25:44 oklopol_: you cant use bottom 01:25:48 bottom -> a 01:27:17 i don't know what you mean 01:27:24 oklopol_: using bottom isn't allowed 01:27:39 where did i use it incorrectly? 01:27:49 i was thinking f = (value, mockingbird) 01:27:58 (some value, function that bottoms) 01:28:01 you used bottom 01:28:03 you lose 01:28:06 it is not allowed 01:28:11 in any circumstance 01:28:31 only terminating functions allowed 01:28:40 yep 01:28:45 otherwise your logic is inconsistent 01:30:08 so how isn't f (q, p) = p q wrong then, p bottoms 01:30:13 also, the mockingbird doesn't type in ordinary haskell 01:30:20 ... o rly oklopol_? 01:30:27 oklopol_: it's an argument 01:30:53 ehird: wut? that was a question 01:30:56 yes, Void values bottom, so you cannot produce them, but you can still look at what happens if you get them in 01:31:07 oerjan: okay makes sense 01:31:12 i was just going by ehird 01:31:16 's definition 01:31:43 i mean (value, mockingbird) is a terminating implementation 01:31:48 but right makes sense 01:32:01 awesome, bogons.net cofounder posted about how he hates Phorm on a mailing list 01:32:02 it needs to be well-typed in the logic too 01:32:58 there _are_ ways to type the mockingbird, but they involve letting an expression have two types simultaneously 01:33:01 oerjan: well okay mockingbird was a bad idea 01:33:50 (\a -> a a) :: (A /\ (A => B)) => B 01:34:02 but that's not a haskell or ML type 01:34:51 (/\ here has a different meaning than the (,) one, it means a should _actually_ be both types simultaneously) 01:38:21 oh it's 4 am 01:38:25 that's kinda cool. 01:38:34 guess it's no sleep for me 01:39:11 need to go give a friend a book at the railway station at exactly 8 am 01:39:19 "no sleep today, the milk has run awaaay" 01:39:28 or do i remember that wrong 01:40:05 i knew it, oklopol_ is a terrorist! 01:40:24 -!- oklopol_ has changed nick to oklopol. 01:40:27 wait i am? 01:40:55 who but a terrorist would show up at railway stations at exactly 8 am to give friends books 01:41:03 well you see 01:41:07 this guy has an exam on monday 01:41:11 and has 600 pages to read 01:41:15 i guess you _could_ be a secret agent 01:41:26 so it's somewhat crucial to get the book to him as early as possible 01:41:30 bomb making is no easy course 01:42:46 like, at least two weeks ago? 01:43:51 you don't need a railway station, you need a time machine 01:43:59 :P 01:44:19 coolness is not only a top clicker, he's a dedicated reader too 01:44:48 /whois coolness 01:44:56 pointless game reference 01:45:03 #pokenet? is that some pokemon thing? 01:45:28 hmm err different coolness 01:45:39 i'm talking about the guy who played ehird's fun clickery game 01:46:28 hm indeed it is 01:46:44 he recently spent a week reading 16-20 hours a day, i have a long way to go. 01:50:22 and why are our university's pages constantly broken, i want to stare at my exam schedule :< 01:51:23 must be all the hackers doing exercises 01:52:30 sadly we don't have any explicit hacking courses 01:52:53 how can you be a successful terrorist university without hacking courses 01:53:38 i'm not sure i can parse that. 01:53:52 hmm 01:53:54 no i can 01:54:43 there are implicit hacking courses, you need to learn some non-hacking too 01:55:12 maybe it's so you can pretend you're not a terrorist when necessary 01:55:40 ah 01:58:40 also maybe it's the university pretending that. 01:59:46 somehow deciding to stay awake because i'd only get a few hours of sleep reminds me of the story of the guy who threw all the eggs away because he dropped one. 02:00:16 such random associations. 02:00:57 * oklopol decides he probably shouldn't read because he didn't reach his quote anyway 02:01:00 *quota 02:03:06 wow i beat computer level 1 in reversi 02:03:44 * oerjan plays a fanfare 02:04:10 =@==<| 02:22:22 -!- Sgeo has joined. 02:56:54 A campfire hanging by a knotted string. 02:58:58 oklopol: that's not a random association at all. 02:59:16 It's a precisely appropriate association. 02:59:41 Mot juste, in fact. 03:00:32 Or mō zhōos, as we reformers like to spell it. (The macrons are optional, but consider adding silent e's to compensate.) 03:02:25 what happened to the poor t 03:02:56 My English teacher failed to pronounce it. 03:03:02 I think the French don't or something. 03:03:41 i think your english teacher had a speech impediment 03:04:06 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 03:04:13 http://en.wiktionary.org/wiki/mot_juste does not agree in either english or french 03:04:14 -!- Sgeo has joined. 03:05:14 nor does http://www.merriam-webster.com/dictionary/mot+juste 03:06:35 -!- olsner has joined. 03:09:41 kerlo: it was? i must be smarter than i thought. 03:10:14 in fact it is not the exact same thing, half of the reason not to sleep is being afraid of not waking up in time 03:10:22 * kerlo puts the Humble Hat on oklopol. 03:10:31 but the other half is that egg thing. 03:10:44 i always do it 03:10:54 it is very bad to wake up with egg on your face 03:11:03 Okay. Mō zhōost. 03:11:38 stop being moose 03:11:56 interesting use of o 03:12:19 stop being abtoose 03:13:04 *abstroose 03:13:32 or possibly *obtoose 03:13:46 thought you meant the latter 03:14:02 o 03:14:02 o 03:14:15 in a self-referential way 03:14:58 What's an interesting use of o? 03:15:13 ōkləpŏl 03:16:15 a use that is pronounced nowhere near lower back afaik 03:17:39 the french is of course an upper front rounded vowel 03:19:08 By "lower" and "upper", do you mean... well, no, I don't know what you mean. 03:19:27 tongue position 03:19:28 Oh, low is open and high is close. 03:19:49 So the open-mid back rounded vowel is indeed near lower back. 03:19:56 terminology is so forble 03:20:32 And the "o" in "mot juste" is open-mid back rounded, if Wiktionary is trustworthy. 03:20:36 words are pretty useless 03:21:04 but the u is definitely not 03:21:11 that was the interesting part 03:21:11 -!- olsner has quit ("Leaving"). 03:23:40 So the "u" isn't like the stereotypical "u" at all. 03:24:21 unless you mean stereotypically french, in which case it is 03:24:36 * kerlo looks 03:25:48 Oh, I see. 03:26:41 I guess the anglicisation preserved the roundedness rather than the frontness. 03:26:47 Thus, ōo. 03:26:50 huh? 03:27:49 Using ōo to mean the vowel in "goose". 03:29:15 i don't read either wiktionary or merriam-webster that way. 03:29:39 although the latter has its own strange set of pronunciation symbols 03:30:17 * oerjan suddenly realizes his typing is nowhere near touch these days 03:30:27 Well, Wiktionary's representation of that vowel is more like ōō. 03:30:34 unless i concentrate 03:30:39 A long macron that goes right over both o's. 03:31:58 what i am saying is that neither actually says mot juste is pronounced with an oo sound in english 03:39:07 True.' 03:39:20 But hey, we're anglophones. We anglicise. 03:43:53 i think i'm going to save one egg by sleeping for an hour 03:44:24 wake me up at 7:30 if i'm not awake yet, current time being 5:54 03:44:32 thanks in advance -> 03:45:15 oklopol, your clock is off by approximately 10 minutes. 03:45:19 Or maybe my clock sucks. 03:46:00 oklopol: and then you can have egg and bacon for breakfast! well, assuming you have bacon. 03:46:29 * kerlo creates bacon. 03:46:30 of course i have bacon! 03:46:33 kerlo: it's a vacuum clock? 03:46:37 well actually i don't. 03:46:51 kerlo: three clocks here show the exact same time 03:47:00 Hum. 03:47:03 so probably at least one of them is correct 03:47:43 actually i would assume the probability is either none, or exactly three are 03:47:44 No, they're all incorrect. 03:48:03 damn it's hard to touch type when you've slipped out of doing it properly 03:48:04 The correlation is probably due to a common cause that is not the correct time. 03:48:14 like what? 03:48:23 Like setting two of the clocks to the other. 03:48:32 Or setting all three clocks to an outside incorrect clock. 03:48:49 WHAT? WHO WOULD DO SUCH A SILLY THING? 03:48:51 the computer's clock was set a few years ago, and has been ticking silently in the corner of my room until i switched it on today 03:49:22 * oerjan wonders if the way he is usually typing is better for his wrists 03:49:23 my cell phone asks its time ...somewhere every time it boots 03:49:45 and the third clock was set by me, some time ago 03:50:04 kerlo: ideas for correlation? 03:50:14 Do you live in a very strange time zone? 03:50:20 well, me lying. but that's the easy way out 03:50:35 i don't think time zones get any stranger than 30 min off 03:50:39 UTC+3:50 or something? 03:50:39 or do they? 03:50:42 YOUR HART IS FULL OF LYE! 03:50:43 anyway no 03:50:58 What's your daylight saving time offset? 03:51:11 ah! ten minutes, that must be it 03:51:28 Cool. 03:51:30 yeah so anyway take that into account when waking me up, sleep time 03:51:31 -> 03:52:25 oklopol: actually there are some quarter zones 03:52:34 So wake you up at 00:20 local time. 03:53:12 http://en.wikipedia.org/wiki/List_of_time_zones 03:56:08 nepal, chatham islands, a village in australia (unofficial) 04:02:22 * kerlo separates sentences into chunks of unique letters 04:04:24 separ|ates |sent|enc|es into| chunks| of| uniq|ue l|et|ters 04:04:43 Touch typing challenge: type each of those chunks without moving the fingers between keys. 04:04:51 Only move fingers between keys between chunks. 04:07:47 ser.. argh! 04:08:11 next, keep one finger on backspace :D 04:08:20 Inefficient. :-) 04:08:50 I want a key that sends backspace about four times. 04:09:09 separates sentences damn 04:09:34 forgot space was not | 04:09:50 * oerjan gives up this exercise, which is stupid and STINKS 04:10:13 separsate ssentencesin tochukn of unique letters 04:10:18 I need more practice. 04:10:37 that sentence doesn't separse 04:11:56 separsate 04:11:59 I like that word. 04:12:25 I think I'll use more gentle chunking next time. 04:12:25 tochukn is probably a village in alaska 04:13:26 i[ th]i[nk ]il[]l [use] [more] ge[ntl]e chun[ki]n[g ]next[ ]time 04:13:33 Put a chunk break anywhere within the brackets. 04:17:32 i th|ink| il|l use| more| gentl|e chun|king| next| time 05:27:44 well, me lying. but that's the easy way out <<< in fact this turned out to be pretty close, i simply read the times wrong, the computer's clock is 10 min wrong :) 05:27:49 well 05:27:51 more sleep 05:28:17 may still another one is wrong, i'll know only after more of it 05:28:33 *maybe 05:28:34 -> 05:28:58 -!- psygnisfive has joined. 05:29:16 cocks! 05:30:48 psygnisfive: http://www.n-tv.de/img/1131671_src_path.E3IA.jpg 05:31:14 white asparagus? 05:39:22 -!- bsmntbombdood has quit (Read error: 145 (Connection timed out)). 05:49:48 -!- bsmntbombdood has joined. 06:21:34 -!- jix_ has joined. 06:24:30 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 06:32:56 -!- GreaseMonkey has quit ("X-Chat -> http://xchat.org <- At least when I quit I don't look like a lamer"). 06:36:04 -!- jix has quit (Read error: 110 (Connection timed out)). 06:45:20 o 06:45:53 animals are a weird concept 06:46:59 recursive eating 06:47:24 wait how can you be up 06:47:26 this is a new day 06:47:54 because i woke up 7 hours ago? 06:48:13 although i did consider taking another nap 06:48:36 i'm not really even tired anymore 06:48:48 but i have a happy hunch i'm going to be, soon. 06:49:07 IT'S LIKE AN ADDICTION I TELLYA 06:50:05 our drummer has holy days from his army duty, and suggested we play today; god i hope we don't, so i can just you know dozerate all day long 06:51:42 also the guy i gave the book to is probably going to do fine, we went over the contents, and it seems the course is a pretty thorough review of about 8 other courses 06:54:05 holy days, sacred nights 06:55:25 you want to drive around wrecking the neigborhood? 06:55:55 wait, you already gave him the book? darn timezones 06:56:01 dozeration is that? 06:56:19 clearly it should involve a bulldozer somehow, right? 06:56:38 ah i thought it made sense somehow 06:56:41 that dozer thing 06:56:54 but couldn't get my fingers to touch it. 07:06:52 wait 07:07:00 there an ad in my stream 07:07:37 ^ul ((SPAM )S:^):^ 07:07:38 SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM SPAM ...too much output! 07:07:48 WONDERFUL SPAM 07:07:53 yes 07:07:57 i agree with you 07:09:24 thanks a lot, 10 min into the episode, an ad pops up, plays for 80 minutes and the rest of the episode won't play 07:16:18 what's the coolest round object in germany? 07:16:33 is this a pun? 07:17:19 * oerjan is reminded of that hitler globe 07:19:47 * oerjan finds http://www.nytimes.com/2007/09/18/arts/design/18globe.html?_r=1 07:40:22 can you give me the cliff notes version 07:41:12 well actually sleep. 07:41:20 well the nazis made these huge globes, and hitler had several 07:41:27 nice 07:41:41 i want one too 07:41:43 and this guy is searching for the one that was at hitler's headquarters 07:41:54 i see 07:41:59 and he doesn't think it's any of the ones at the known museums 07:42:08 why? 07:42:58 well the one that claims to be it actually has a specially designed foot that matches one that was ordered for ribbentrof, not hitler 07:43:19 umm okay 07:43:25 sounds like a pretty boring movie 07:43:31 i did not read it all very carefully 07:43:42 more so than me 07:43:54 and there's a bit about chaplin in there 07:44:26 i read that one, recognized him in th epic 07:44:29 he apparently based a scene in The Great Dictator on parodying hitler and his globe 07:44:29 *the pic 07:44:39 yeah i've seen it 07:44:57 i haven't 07:44:59 he has sex with it 07:45:04 the globe 07:45:09 raw animal sex 07:45:10 i find that unlikely 07:45:15 and calls it his bitch 07:45:27 "uhh take that call me your führer" 07:45:44 well. likely or not, it's true 07:45:48 just watch the film 07:45:49 anyway 07:45:52 need to sleep 07:45:53 ---------> 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:18:31 -!- kar8nga has joined. 08:30:04 -!- Mony has joined. 08:30:32 -!- Mony has changed nick to Guest71668. 08:30:48 -!- Guest71668 has changed nick to M0ny. 08:31:09 yo 08:31:51 ho 08:37:05 -!- neldoreth has joined. 09:00:01 -!- jix_ has quit (Read error: 113 (No route to host)). 09:03:04 -!- BeholdMyGlory has joined. 09:18:48 there's got to be a good way to do it <-- what about opening the partition itself and implementing a file system driver in your app, and then search directly that way? 09:18:56 lol ok 09:19:14 bsmntbombdood, 1) needs root 2) complex and messy 09:19:31 bsmntbombdood, or you could create an index of the directory then search in that index 09:19:34 or such 09:19:45 that's probably the only real solution 09:20:14 bsmntbombdood, if you are searching C source files apps like cscope and ctags might be useful, depending on what exactly you want to search for 09:20:31 i wouldn't mind rolling my own index 09:20:50 bsmntbombdood, but you would mind rolling your own file system driver in userspace? 09:20:56 yes 09:21:00 odd 09:21:16 you wouldn't write using it anywya 09:21:18 anyway* 09:22:18 probably wouldn't be that much faster anyway 09:22:35 why? 09:23:01 disk i/o is a bottleneck 09:23:27 bsmntbombdood, didn't you say reading an uncompressed tar was fast? 09:23:49 fast_er_ 09:23:52 still not fast 09:24:03 so i go into a huge directory and grep foo -R . 09:24:03 this takes like 3 minutes 09:24:03 but grepping a tarball of the same directory only takes 15 seconds 09:24:09 -!- kar8nga has quit (Read error: 60 (Operation timed out)). 09:24:10 sounds quite a bit faster yeah 09:24:17 that's compressed too 09:24:21 oh ok 09:24:31 bsmntbombdood, so use a file system that compresses on the fly? 09:24:37 still, not fast 09:24:55 i can grep 1 gigagbyte in .5 seconds 09:24:57 bsmntbombdood, use solid state drive or ram disk? 09:25:04 ... 09:25:20 bsmntbombdood, um, how large was that directory then...? 09:25:29 30 GB or something? 09:25:40 i mean, grep 1 gigabyte from a pipe 09:25:43 ah 09:26:56 $ dd if=/dev/zero of=/dev/null bs=1G count=2 09:26:56 2+0 records in 09:26:56 2+0 records out 09:26:56 2147483648 bytes (2,1 GB) copied, 2,7549 s, 780 MB/s 09:27:15 bsmntbombdood, warning: bs must be smaller than free ram 09:27:27 obviously 09:27:32 and wtf is that shit? 09:27:42 bsmntbombdood, ? 09:27:43 that's slow as balls 09:27:57 bsmntbombdood, it is my computer. From late 2005. 09:28:08 $ dd if=/dev/zero of=/dev/null bs=1M count=2K 09:28:08 2048+0 records in 09:28:08 2048+0 records out 09:28:08 2147483648 bytes (2.1 GB) copied, 0.0419093 s, 51.2 GB/s 09:28:13 Linux tux.lan 2.6.27-gentoo-r8-1 #1 Sat Jan 31 04:55:36 CET 2009 x86_64 AMD Sempron(tm) Processor 3300+ AuthenticAMD GNU/Linux 09:28:26 bsmntbombdood, that would be faster probably 09:28:39 $ dd if=/dev/zero of=/dev/null bs=1M count=2K 09:28:39 2048+0 records in 09:28:39 2048+0 records out 09:28:39 2147483648 bytes (2,1 GB) copied, 2,34859 s, 914 MB/s 09:28:41 yep faster 09:28:55 bsmntbombdood, probably faster due to cache 09:29:04 i'm confused 09:29:09 $ dd if=/dev/zero of=/dev/null bs=128K count=2K 09:29:10 2048+0 records in 09:29:10 2048+0 records out 09:29:10 268435456 bytes (268 MB) copied, 0,0579806 s, 4,6 GB/s 09:29:11 hah yeah 09:29:20 we are looking at a 4 order of magnitude difference here... 09:29:20 the L2 cache on this CPU is 128 KB 09:29:24 something is wrong on your end 09:29:26 bsmntbombdood, see ^ 09:29:41 it's still only 4.6 GB/s... 09:29:52 bsmntbombdood, so it is. 09:30:16 $ dd if=/dev/zero of=/dev/null bs=128K count=50K 09:30:16 51200+0 records in 09:30:16 51200+0 records out 09:30:16 6710886400 bytes (6,7 GB) copied, 1,34931 s, 5,0 GB/s 09:30:36 again, slow as balls 09:30:44 bsmntbombdood, single core Sempron from 2005, what do you expect? 09:30:56 i have a single core pentium 4... 09:31:42 maybe it's a matther of memory bandwidth? 09:32:00 bsmntbombdood, actually this should be one of the few things that a pentium is good at, it has larger cache than my CPU probably, there won't be a lot of branch prediction misses either 09:32:05 and possibly that too 09:32:38 an whole order of magnitude though? 09:33:07 bsmntbombdood, well memory bw could explain that. + X here is eating 10 % CPU atm... no clue why 09:33:41 X kind of has issues when running for a few weeks without restart 09:33:55 i'm confused 09:35:59 also, comma instead of period for a decimal point is retarded 09:37:46 not really 09:38:09 a period instead of a comma is equally retarded 09:38:18 bsmntbombdood, or do you have any justification? 09:38:38 that's some sort of europism 09:38:40 that's why 09:39:00 commas are supposed to go like this: 123,456.78 09:39:03 bsmntbombdood, how does something being European make that thing retarded? 09:39:21 cuz europe is retarded, duh 09:39:32 bsmntbombdood, why do you think Europe is retarded then? 09:39:52 because they use commas instead of periods 09:40:02 logical flaw there... 09:40:25 so you are just trolling then, right. 09:41:07 obviously 10:06:17 Deewiant, there? 10:06:35 I'm trying to fix your mycoedge so I can test if my exact bounds code work 10:07:00 should it be (14,5) or (14,4) after removing (14,0) ? 10:07:17 I think y should be 4, but mycoedge thinks it should be 5 10:08:24 currently I get: 10:08:25 GOOD: y says initial minimal point is (14,0) 10:08:25 BAD: after removing (14,0) y doesn't say minimal point is (14,5) 10:08:25 BAD: after removing (14,5) y doesn't say minimal point is (15,5) 10:08:35 but yes that is off by one for y I think 10:09:59 -!- sebbu has quit ("@+"). 10:15:46 -!- oerjan has quit ("leaving"). 10:28:32 -!- tombom has joined. 10:32:25 -!- MigoMipo has joined. 10:52:58 -!- sebbu has joined. 10:56:39 -!- M0ny has quit ("PEW PEW"). 11:16:49 Deewiant, the slowdown script is broken, It doesn't properly clear around 0,0 11:17:02 there are still stuff left there 11:17:06 causing bounds not to shrink 11:22:28 -!- KingOfKarlsruhe has joined. 11:23:28 -!- Judofyr has joined. 11:31:23 Deewiant, I think you clear relative offset incorrectly or something 11:37:12 Deewiant, also it causes errors in stack stack testing in mycology 11:37:41 after manually clearing the static area and waiting for recalcuation of bounds (took a few minutes yeah) 11:52:35 -!- FireFly has joined. 12:05:35 -!- tombom has quit ("Peace and Protection 4.22.2"). 12:14:53 Deewiant, ah yes, mycology also tries to remove any stack stack when it detects it is not correct, thus causing huge bounds again 12:15:11 it sets storage offset to 0 12:15:18 at "WARNING: attempted recovery of stack stack, situation may be corrupt" 12:16:24 so slowdown doesn't work 1) at all, because the clearing code is incorrect 2) for mycology, because mycology restores stack stack a bit before y. 12:19:05 It does work "at all", because it slows down things. It even works better than intended, as it slows down things even for interpreters that shrink bounds. 12:19:23 fizzie, well, that is unfixable. 12:19:25 basically yes 12:19:55 btw I now have two stratergies, depending on how large the difference is 12:20:02 if it is small I just try to shrink from the edges 12:20:38 if it is large I instead iterate over all recorded values in the hash table and store max/min, then iterate over the static space and adjust those max/min if needed 12:21:12 currently large is defined as: max-min > 0x10000 12:21:33 will have to tune that probably 12:21:50 You could also select it based on the hash table size, I guess. 12:22:04 fizzie, hm? 12:23:14 Since the hash table iteration time depends on how big it is, you could concievably tune your definition of a "large" difference based on how many entries there are. 12:23:28 "large model" is way faster when difference is 10 000 000 or so (as in slowdown, after I manually cleared static space), but much worse when the bounds are smaller and I would only need to shrink with a few columns/row 12:23:38 fizzie, hm maybe 12:24:05 but first lets get rid of code duplication here.. brb 12:25:24 2) I suspected might happen but wasn't sure 12:26:04 Deewiant, what about bug 1? 12:26:14 1) is a bug I guess; which cells aren't cleared? 12:26:38 Deewiant, those of the initial program at least. 12:26:41 not sure about other ones 12:26:49 All of them? 12:27:08 Deewiant, unknown, ccbi has a much better debugger, I would suggest trying with it? 12:27:11 Deewiant: Didn't you have a debugger, anyway? :p 12:27:13 but iirc all of them yes 12:27:22 Hmm, wonder what I messed up there 12:27:53 Deewiant, guess: you didn't compensate for the recently created storage offset when clearing? 12:27:58 or did that incorrectly 12:28:08 something like that sounds quite plausible to me 12:29:58 No, it looks like I just forgot about an area 12:30:34 ah ok 12:30:49 Not sure how or why though, I'll take a look at it at some point, no time now 12:31:25 mhm 12:33:51 -!- olsner has joined. 12:39:10 Deewiant: 12:39:11 $13 = {32 , 118, 32, 32, 32, 32, 32, 32, 118, 32, 60, 46, 46, 47, 46, 46, 47, 116, 114, 117, 110, 107, 47, 109, 121, 99, 111, 12:39:11 108, 111, 103, 121, 47, 109, 121, 99, 111, 108, 111, 103, 121, 46, 98, 57, 56, 32 , 380260801, -1325984155, 180, 795, 42, 107, 12:39:11 36, 62, 35, 94, 95, 48, 52, 52, 112, 62, 58, 35, 118, 95, 110, 52, 52, 103, 35, 118, 95, 118, 32 , 380260981, -1325983360, 32, 12:39:12 32, 118, 32, 32, 32, 32, 32, 112, 48, 43, 97, 103, 32, 52, 52, 60, 32, 32, 32, 32, 32, 32, 32, 32, 62, 48, 97, 34, 46, 101, 109, 97, 110, 32, 101, 12:39:15 108, 105, 102, 32, 121, 116, 112, 109, 101, 110, 111, 110, 32, 100, 101, 101, 78, 34, 32, 32, 32, 118, 32 , 118, 32, 71, 45, 62, 12:39:18 52, 52, 103, 49, 43, 52, 52, 112, 32, 32, 94, 32, 32, 32, 32, 32, 32, 32, 32, 32, 62, 32 ...} 12:39:23 seems like you forgot quite a bit indeed 12:40:08 AnMaster: Did a quick fix, try the one I just uploaded 12:40:13 Gotta go now -> 12:46:09 Deewiant, url? 12:47:22 -!- KingOfKarlsruhe has quit (Remote closed the connection). 12:50:25 Deewiant, still broken 12:50:57 (found url in logs) 12:51:07 looks just as bad btw 13:00:32 AnMaster: comma as decimal point is retarded. 13:00:41 oklopol, why? 13:00:47 because of tuples 13:00:55 you use comma in them for a different purpose 13:01:28 in finland, the standard notation for tuples becomes (a; b) when either a or b contains a decimal point (comma) 13:01:35 oklopol, and why should tuples use comma then? Why not make them use dots. Sure it would be a bit unusual, but why not? 13:01:40 a better solution would be to use ; all the time ofc 13:01:48 after all lisp use . for pairs 13:01:59 like (car . cdr) 13:02:29 AnMaster: clearly just swapping all notation is an automorphism. 13:02:49 but if tuples use comma, it shouldn't be the decimal point 13:03:45 * AnMaster googles "automorphism" 13:03:47 also natural language uses commas in tuples, "x, y and z", but there commas as decimal points aren't really confusing, because numbers are less frequent; still pretty ugly tho 13:04:07 oklopol, does lojban too? 13:04:16 AnMaster: no use googling, i'm using my intuitive view of it 13:04:32 oklopol, care to explain what you mean then? 13:04:38 if you knew what automorphisms were, you might understand what i meant, or, umm, not. 13:04:41 i meant, 13:04:55 if you swap all notation, there will be no collisions. 13:05:06 unless you care about syntactical differences. 13:05:11 oklopol, I just fail at knowing the English terminology 13:05:19 Also they use the same "do ; if the tuple item contains a ," rule: "foo, which means bar; baz, which means quux and zuul, which means zingobongo". 13:05:43 I googled and I actually ran into it in Swedish, but I didn't know the English word. 13:05:45 bbiab 13:05:54 ran into what? 13:06:04 automorphisms 13:06:05 lojban doesn't use notation for anything, it uses terms. 13:06:06 now really 13:06:10 bbiab -> 13:06:50 and automorphisms are a mathematical concept, a property of a mapping from a system to itself 13:07:05 Korpela lists another typical ;-use in lists of people-names in the "Surname, Given name" format. 13:07:14 lol 13:07:27 or well. maybe not 13:07:41 you could consider it a handy way to do nested lists or depth 2 13:07:52 oklotalk does that, after all 13:08:10 (in some cases, in most cases not) 13:08:37 err, band training sessions time. 13:08:38 Yes; also you could extend it so that a ", with two dots over" would be the separator for lists of depth three, and so on. 13:08:40 -> 13:08:52 hah, that would be cooool 13:09:22 ;̈ if you happen to get combining-characters rendered correctly. 13:09:23 except for some reason i like it when (especially) languages break the 0-1-infinity rule 13:09:32 i did 13:09:42 <- using ubuntu 13:09:49 and it's a higher os. 13:09:52 anyway see ya -> 13:09:57 Bye. 13:10:08 you can't bye me. 13:10:13 i'm an individual 13:40:59 -!- Asztal_ has quit (Read error: 104 (Connection reset by peer)). 13:47:00 -!- Mony has joined. 13:47:28 -!- MigoMipo has quit (Read error: 60 (Operation timed out)). 13:47:28 -!- Mony has changed nick to Guest99604. 13:49:28 -!- Guest99604 has changed nick to M0ny. 13:56:03 heh 14:54:17 -!- Judofyr has quit (Remote closed the connection). 14:55:09 AnMaster: Hmm, it worked for a small example 14:57:35 Hmm, I wonder what's wrong, now it clears around 200 lines down for Mycology but not further 15:01:55 Deewiant, interesting 15:02:10 Deewiant, since cfunge lacks a debugger beyond gdb I'll let you figure it out 15:02:47 -!- BeholdMyGlory has quit (Remote closed the connection). 15:03:15 Alright, looks like it /should/ be clearing down to 249,836 15:03:22 Deewiant, however, if I manually clear it from inside gdb then cfunge handles it fine (assuming EXACT_BOUNDS was turned on at compile time). Mycology's stack-stack check breaks however 15:03:28 heh, i never knew that all lines in the unefunge source code should be concatenated into one line. 15:03:29 Now let's see where it /is/ clearing down to 15:03:36 -!- MigoMipo has joined. 15:03:55 lifthrasiir, oh yes they should. For Befunge I recommend handling form feed like that to 15:03:56 too* 15:04:34 that is, do not advance x, y or z when loading a file and you hit a form feed if you are in befunge mode and are not loading with i set to binary mode 15:04:39 Argh, it looks like it was just a typo 15:04:48 Well, maybe it's fixed now 15:05:12 AnMaster: Give it a try 15:05:17 a sec 15:05:29 AnMaster: that means form feed should be ignored in unefunge and befunge, and newline should be ignored in unefunge, right? it seems the spec is almost clear about that. 15:05:36 Easier to ask you than to print 1000x1000 areas into my terminal looking for chars ;-) 15:05:37 fails 15:05:45 Any idea whereabouts? 15:05:46 $1 = {topLeftCorner = {x = 128, y = -910415652}, bottomRightCorner = {x = 2128881350, y = 967}, entries = 0x1958010, col_count = 0x1958050, 15:05:46 row_count = 0x1958090, boundsexact = true, boundsvalid = true} 15:05:47 and 15:05:51 $2 = {32 , 118, 32, 32, 32, 32, 32, 32, 118, 32, 60, 46, 46, 47, 46, 46, 47, 116, 114, 117, 110, 107, 47, 109, 121, 99, 111, 15:05:52 108, 111, 103, 121, 47, 109, 121, 99, 111, 108, 111, 103, 121, 46, 98, 57, 56, 32 , 2128881171, -910415647, 180, 795, 42, 107, 15:05:52 36, 62, 35, 94, 95, 48, 52, 52, 112, 62, 58, 35, 118, 95, 110, 52, 52, 103, 35, 118, 95, 118, 32 , 2128881351, -910414852, 32, 15:05:52 32, 118, 32, 32, 32, 32, 32, 112, 48, 43, 97, 103, 32, 52, 52, 60, 32, 32, 32, 32, 32, 32, 32, 32, 62, 48, 97, 34, 46, 101, 109, 97, 110, 32, 101, 15:05:53 967 O_o 15:05:55 108, 105, 102, 32, 121, 116, 112, 109, 101, 110, 111, 110, 32, 100, 101, 101, 78, 34, 32, 32, 32, 118, 32 , 118, 32, 225, 251, 15:05:58 62, 52, 52, 103, 49, 43, 52, 52, 112, 32, 32, 94, 32, 32, 32, 32, 32, 32, 32, 32, 32, 62, 32 ...} 15:06:24 Gah, this is getting really slow in CCBI 15:06:29 Tick: 14768785 15:06:40 Deewiant, this time it locks up before mycology output at all 15:06:48 that is when it loads into that specific quadrant 15:06:48 Eh? 15:06:50 relative 0 15:06:51 AnMaster: Doesn't lock up for me 15:06:57 Gets up to the wraparound bit in CCBI 15:06:57 Deewiant, well depends on where it is loaded 15:07:07 Hmm 15:07:07 Deewiant, needs to be in y < 0 x > 0 15:07:15 for that to happen 15:07:18 It /does/ test whether it overlaps with itself 15:07:32 yes right 15:07:42 hm 15:07:51 It could do it incorrectly, of course :-P 15:08:10 Deewiant, in fact only positive for both x and y seems to work correctly. No clue why 15:08:26 AnMaster: That sounds like a bug in cfunge now 15:08:32 Deewiant, with the previous version the first quadrant worked though 15:08:35 Because it's definitely working for negative ones here 15:08:38 and I haven't changed cfunge since then 15:08:45 but quite possible 15:09:25 Positive x, negative y works in CCBI 15:09:28 Deewiant, Hm is the offset in { incremental? 15:09:35 and if yes. does mycology test that? 15:09:38 How do you mean incremental 15:09:55 wait forget it 15:10:31 what I said there made no sense 15:10:34 anyway 15:10:50 Deewiant, does it properly clear the area around 0,0 for you or not? 15:11:02 It clears some of it but not all 15:11:28 Hmm 15:11:41 Seems to be something else broken than just what I fixed 15:14:10 Deewiant, well I set the bounds to a bit around the static area... and dumped 15:14:14 http://rafb.net/p/yivjIS19.html 15:14:29 that is the bounds were set to be possible to dump 15:14:42 Deewiant, it does certainly look strange 15:15:15 Deewiant, does it load mycology more than once? 15:15:18 Yes, twice 15:15:21 ah 15:15:37 seems like one time, close to the core program isn't properly cleared 15:16:03 Hmm, I asked my debugger for the stack 15:16:07 That wasn't a good idea :-P 15:16:56 Deewiant, hah 15:17:12 Deewiant, anyway something is broken with delta there when it locks up too 15:17:17 wait hm 15:17:36 (gdb) print fspace 15:17:36 $1 = {topLeftCorner = {x = -652966086, y = 128}, bottomRightCorner = {x = 378, y = 230825290}, entries = 0x136a010, col_count = 0x136a050, row_count = 0x136a090, 15:17:36 boundsexact = true, boundsvalid = true} 15:17:37 this time 15:17:52 it locked up before reaching mycology yes 15:17:58 lets see 15:18:15 Deewiant, anyway original version does reach mycology, but not the last one 15:18:18 It does clear down to 839 250 :-( 15:18:39 AnMaster: The last one reaches it for me every single time. 15:18:49 This might be broken, but so is cfunge. :-P 15:20:33 Deewiant, the last one only reaches mycology when +x,+y, the previous one ("quick fix" some hours ago) broke for -x,+y, the first one worked for all quadrants 15:20:49 AnMaster: The last one reaches it for me every single time, regardless of quadrant. 15:20:55 (I tried all 4 quadrants.) 15:21:09 Deewiant, well I tested with the first one and it works for all those, but the last one doesn't 15:21:10 meh 15:21:17 cfunge is broken then. :-P 15:21:30 1: fspace = {topLeftCorner = {x = 199, y = 173}, bottomRightCorner = {x = 349208971, y = 1373734736}, entries = 0x298a010, col_count = 0x298a050, row_count = 0x298a090, 15:21:30 boundsexact = true, boundsvalid = true} 15:21:35 that one works 15:21:42 but still doesn't clear original program 15:22:41 Hmm, I'm going to pipe this debugger output to a file so I can see what original coordinates the p ones correspond to 15:23:42 10 seconds of CPU time to get to the start of Mycology :-P 15:24:09 Deewiant, http://rafb.net/p/QtfJPW50.html 15:24:15 that may be interesting 15:24:23 note the dump does NOT start at 0,0 this time 15:24:35 Yay let's print a 632545 element stack of 10-character integers 15:24:53 AnMaster: Yes, I've found that area 15:25:16 And I'd very much like to know why it's not getting p'd to oblivion 15:25:28 Since it seems like the stack has all the coordinates it's supposed to... 15:26:29 Deewiant, so would I, because I minimise the bounds even when wrapping if bounds are marked as fudgy AND difference is between max and min (for either x or y) is greater than 2^16 (that is power, not any bitwise operator) 15:29:28 Deewiant, actually efunge should handle this well because it basically does a db search when finding next non-space cell iirc... Somewhat like this (but in erlang ets query syntax, instead of pseudo SQL) when going <: SELECT FROM fungespace WHERE x=pos.x AND y < pos.y AND value <> ' ' LIMIT 1 15:29:36 (where it gets first non-matching yes 15:29:36 iirc 15:29:45 or maybe that was only in some specific cases 15:29:47 I forgot 15:30:16 and I don't remember how I handled flying ips at all 15:32:11 meh, seems I misremembered totally, since it doesn't implement t at all it just handles this same as z in the mainloop 15:33:06 Deewiant, a bug fixed mycoedge would be nice too btw! 15:33:30 Deewiant, hm now it works for -x,-y too 15:33:34 odd 15:33:44 maybe not quadrant then 15:34:05 ah, -x,+y still broken 15:34:06 AnMaster: Can you find me the coordinates of any char which isn't cleared 15:34:20 Deewiant, in cfunge? not easily without a linear scan no 15:35:17 Deewiant, I could find any columns or rows with non-space in though easily 15:35:27 Give me a row 15:35:27 would just need to tweak a certain routine 15:35:33 Deewiant, hm? 15:35:35 Ah, then forget it 15:35:43 It'll be faster if I look for one in the debugger 15:35:49 right 15:36:04 71 254 15:36:50 a sec 15:38:08 (gdb) print cfun_static_space[(64+71)+(64+254)*512] 15:38:09 $6 = 32 15:38:13 space 15:38:25 Not in CCBI :-P 15:38:38 Deewiant, maybe it depends on which run? 15:38:46 No, doesn't matter 15:38:48 mhm 15:39:21 Cell ( 71 254 ): value 62 (0x3e), character '>' 15:39:24 Deewiant, this is with 8 bit funge cells 15:39:27 err 15:39:28 8 byte* 15:39:33 so maybe that makes a difference 15:39:35 Also shouldn't matter 15:40:59 well in cfunge it is always cleared 15:41:04 let me write a sparse dump 15:51:38 Deewiant, waiting for it to dump to disk... 15:52:56 lets see if the pastebin accepts it 15:53:04 Pasting > 800 kB often tend to fail with rafb. Use --verbose or --debug to see the 15:53:04 error output from wget if it fails. Alternatively use another pastebin service. 15:53:04 Pasting > 10000 lines often tend to fail with rafb. Use --verbose or --debug to see the 15:53:04 error output from wget if it fails. Alternatively use another pastebin service. 15:53:05 lets see 15:53:20 * AnMaster waits for wgetpaste to finish 15:53:40 Deewiant, 114676 lines with the output 15:53:46 I'll have to ompload it 15:54:08 since it is too big for pastebin 15:54:37 Deewiant, http://omploader.org/vMWhhaA 15:54:44 there is the dump of all set cells you asked for 15:55:35 Deewiant, well? 15:55:41 When did I ask for that? 15:55:47 AnMaster: Can you find me the coordinates of any char which isn't cleared 15:55:48 there 15:56:00 I wrote the coded needed to do it now 15:56:05 I didn't ask for a whole dump, just one char 15:56:06 And besides 15:56:07 2009-04-04 17:35:34 ( Deewiant) Ah, then forget it 15:56:07 2009-04-04 17:35:42 ( Deewiant) It'll be faster if I look for one in the debugger 15:56:10 ah 15:56:15 And I found one already 15:56:16 2009-04-04 17:36:04 ( Deewiant) 71 254 15:56:18 Deewiant, well it may be useful still 15:56:22 since that one is cleared here 15:56:26 Now it looks like I have x and y flipped 15:56:31 Deewiant, 71 258 is set though 15:56:35 AnMaster: 254 15:56:38 Oh right 15:56:40 Well whatever 15:56:41 Deewiant, cleared as I said 15:56:51 I'm wondering what I've got wrong here 15:58:09 Deewiant, I even dumped it in pseudo sexp and I don't get any "thanks" :( 15:58:12 oh well 15:58:37 :-P 15:59:08 Deewiant, did you even look at it+ 15:59:09 ? 15:59:36 it has separate sections for static array and hash 15:59:39 Yes I opened it 15:59:54 Deewiant, and what do you think of the dump format? Nice I assume? 16:00:16 It's legible, thus fine 16:00:58 well hash area is unsorted, but can't do anything about that 16:01:20 Of course you can, you could sort it :-P 16:01:32 But anyway, found it and fixed it 16:01:37 1000x1000 starting at (0,0) is clear 16:01:50 Deewiant, not easily. I'm using an iterator struct thingy found in the hash library I use 16:02:00 sorting it in C would be a pain 16:02:03 I'd say making a temp array is easy 16:02:12 Well alright, maybe not in C :-P 16:02:37 Deewiant, + my funge space file is already over 1100 lines long 16:02:48 I don't want to add more if I can avoid it 16:02:53 :-P 16:02:59 This is only temporary, you know 16:03:05 AnMaster: Uploaded one which seems to work 16:03:12 -!- oerjan has joined. 16:04:33 hah 16:04:37 at iwc 16:04:45 (had to read it, since I saw oerjan join) 16:04:47 Deewiant, a sec 16:05:01 boo! 16:06:27 Deewiant, right it still fails at -x,+y and +x,-y 16:06:36 AnMaster: Right and that's cfunge's problem. 16:06:39 Deewiant, hm 16:07:18 Deewiant, -x,-y and +x,+y works correctly until mycology messes up storage offset 16:07:28 also, vampires and werewolves are clearly not so scary after all 16:07:37 Deewiant, can you fix this mycology bug? ;P 16:07:38 AnMaster: At what point is that, BTW? 16:07:42 It's probably not a bug 16:07:48 Deewiant, can't you try it in ccbi? :P 16:07:58 GOOD: } reflects when stack stack has only one stack 16:07:58 GOOD: u reflects when stack stack has only one stack 16:07:58 GOOD: u with zero count does nothing 16:07:58 BAD: u with a negative count reflects 16:07:58 WARNING: attempted recovery of stack stack, situation may be corrupt 16:07:59 y claims all of the following: 16:08:02 it happens at that WARNING 16:08:06 AnMaster: Well er 16:08:11 Why does u with a negative count reflect 16:08:22 Deewiant, it doesn't when located in the normal place 16:08:31 So can you find out why? 16:08:41 Deewiant, doesn't ccbi has a better debugger? ;P 16:08:52 AnMaster: But cfunge is the only one that's buggy 16:09:12 u should only reflect if there's only one stack on the stack stack... 16:09:25 Deewiant, so stack stack isn't "panic corrected" by mycology in ccbi? 16:09:38 AnMaster: And that WARNING is /supposed/ to do exactly that, it tries to force the offset to (0,0) and to remove any extra stacks from the stack stack 16:10:22 AnMaster: I don't know, I can try to let this run for an hour if you want to find out :-P 16:10:24 u reflects if there is only one stack on the stack stack 16:10:25 that's why 16:10:32 no idea why there is only one at that point 16:10:33 So why is there only one stack on the stack stack 16:10:45 Deewiant, unknown. 16:11:07 Deewiant, can't you patch your bounds manually from inside gdb or whatever to make it work? 16:11:30 as in set bounds= 16:11:31 I don't know how to use gdb 16:11:41 Deewiant, well what debugger do you use then? 16:11:44 I don't use debuggers 16:11:47 I use printf debugging 16:11:47 meh 16:12:03 Deewiant, add a command in the ccbi debugger to hot patch bounds then? 16:12:36 I'd rather watch this run 16:12:42 hm? 16:12:43 It's eating up around 950 megs of memory :-) 16:12:50 Deewiant, what? 16:12:55 Allocating a space cell for each one that it runs into 16:13:01 um 16:13:04 Deewiant, is that on the stack or? 16:13:09 No, Funge-Space 16:13:17 Deewiant, you don't remove space cells? 16:13:26 No, I add them for faster lookup 16:13:29 Deewiant, I mean, in hash area setting to space is same as free 16:13:44 because I can find if a cell is non-existing easily 16:13:59 if ght_fspace_get returns a null pointer I know it is a sparse space 16:14:07 Yes, I can do that as well 16:14:20 Deewiant, sure it is faster by not doing sparse spaces? 16:14:24 But I try to avoid having to do those checks 16:14:41 AnMaster: Well, it allows me to do unsafeGets when I know I've just done a get 16:14:45 Deewiant, but you loose cache locality when you have 950 MB data instead! 16:15:01 the check overhead would be smaller 16:15:01 I don't have locality anyway since it's a hash table 16:15:17 Deewiant, well true, but parts of the hash table will be in hash 16:15:21 in cache* 16:15:22 duh 16:15:23 anyway 16:15:34 but less so with all those spaces 16:15:56 Deewiant, also did you profile the overhead of get? 16:16:04 No 16:16:18 This is from before anybody really cared about speed :-P 16:16:19 well then I did for my code, and found it was faster doing sparse 16:16:28 because I had less items in the hash array 16:16:31 meaning less collisions 16:16:35 I can't see the difference for Mycology time 16:16:39 and unsafeget, eww, that breaks the funge space abstraction 16:16:50 Funge-Space isn't abstracted here, sorry ;-) 16:17:00 Deewiant, well in my case it is, much more than stack is 16:17:15 Well, it is 16:17:39 unsafeGet is just part of the abstraction here ;-P 16:24:11 Deewiant, I made cfunge print { u and } when the relevant instruction was run 16:24:19 here is the result for normal run and a slowdown run: 16:24:23 http://rafb.net/p/bmJPkK13.html 16:25:01 Deewiant, "GOOD: u with a positive count transfers cells correctly" is missing for some reason 16:25:17 maybe you copied mycology incorrectly? I don't know 16:25:36 still I suggest testing it in CCBI to see if it works there 16:25:54 Testing this in CCBI is somewhat hard as you know 16:25:56 until then I have to write it off as a slowdown bug 16:26:26 Deewiant, I recommended doing it by hot patching bounds as I said above 16:27:01 anyway the load in quadrants where x and y are of different signs is a cfunge bug or a ccbi bug indeed 16:27:19 hm test with pyfunge maybe... iirc it implements exact bounds 16:27:38 lifthrasiir, there? what is the url to get the most recent pyfunge that works and have exact bounds? 16:27:57 AnMaster: that's always available in http://hg.mearie.org/pyfunge/ . 16:28:13 lifthrasiir, ok, I forgot how to use mercurial. 16:28:15 how= 16:28:17 s/=/?/ 16:28:31 well, hg clone http://hg.mearie.org/pyfunge/ and it will be done. 16:29:51 lifthrasiir, does this do exact bounds when wrapping too or? 16:29:58 because y isn't run at the point where it is needed 16:30:00 what do you mean? 16:30:23 lifthrasiir, I mean if that I'm trying to find if the bug is in slowdown.b98 or cfunge. 16:30:40 hmm.. i think pyfunge is too slow for it 16:30:56 lifthrasiir, iirc you said you did only calculate the exact bounds for wrapping when program used y 16:31:11 lifthrasiir, oh ok... I need it to be kind of non-slow to be able to test... 16:31:17 hmm 16:31:29 $ ./pyfunge.py 16:31:29 Traceback (most recent call last): 16:31:29 File "./pyfunge.py", line 295, in 16:31:29 sys.exit(main(sys.argv)) 16:31:29 File "./pyfunge.py", line 213, in main 16:31:29 version() 16:31:31 TypeError: 'NoneType' object is not callable 16:31:33 should that happen? 16:31:33 oops 16:31:40 $ python --version 16:31:40 Python 2.5.2 16:31:46 in case that matters 16:32:08 heck, that was my mistake 16:32:11 ok 16:32:37 (and wait for moment, i'll enable hgweb's zip and tar.gz archive option) 16:33:01 pyfunge times: 16:33:03 real 0m11.506s 16:33:03 user 0m10.523s 16:33:03 sys 0m0.185s 16:33:10 too slow to do average over 50 runs 16:33:14 which is what I usually do for cfunge 16:33:40 Ten minutes (for 50 runs) is too slow for you? You're such a speed freak indeed. 16:34:01 if you have psyco it will run faster (2-3x), but still slow 16:34:03 because 50 runs for cfunge is something like 2-3 seconds 16:34:04 :P 16:34:10 lifthrasiir, does it work on x86_64? 16:34:12 iirc it was x86 only 16:34:20 and my python is 64-bit yes 16:34:21 ah then it won't work... :S 16:35:16 lifthrasiir, any option to trace program or such? 16:35:34 try python -m cProfile ./pyfunge.py args. 16:35:34 as in position of ip 16:35:37 ah 16:35:50 hmm... it uses pyfunge_stopat environment variable for now 16:36:02 should have debugger though 16:36:04 lifthrasiir, somewhat like ./cfunge -t 5 (or higher, 3 5 and 9 are currently used levels for tracing in cfunge) 16:36:32 lifthrasiir, I don't know where, it is random, I just want to know when it reaches somewhere far out in x and y 16:36:36 btw hm 16:36:40 hmm.... 16:36:49 Deewiant, how will slowdown.b98 calculate position for bignum funges? 16:36:52 just wondering 16:37:15 Deewiant, that is when mycology says " That the number of bytes per cell is -1" 16:37:45 $ ./pyfunge.py ~/src/cfunge/trunk/tests/asdf.b98 16:37:45 BAD: y says initial minimal point isn't (14,0) 16:37:45 BAD: after removing (14,0) y doesn't say minimal point is (14,5) 16:37:45 BAD: after removing (14,5) y doesn't say minimal point is (15,5) 16:37:50 lifthrasiir, cfunge gets the first one right 16:38:05 lifthrasiir, the other ones may buggy in the test 16:38:09 also that is really mycoedge 16:38:11 -!- Judofyr has joined. 16:38:48 lifthrasiir, basically, do you set bounds to be 0,0 initially or such? if you do it is wrong for this program 16:38:50 AnMaster: heh, where is asdf.b98? 16:39:14 lifthrasiir, well ask Deewiant for a copy of mycoedge, the two latter tests are known to be broken, but the first one is correct. 16:39:23 i think not, but i could have a problem with Space.putspace (eg. used for i or o) but not with Space.put 16:39:31 okay 16:40:15 AnMaster: It'll fail 16:40:18 If they pass -1, that is 16:41:15 It'll probably loop forever trying to generate a position in the range (0,0)-(0,0) which doesn't overlap with (0,0)-(70,44) :-P 16:42:00 Sometimes MATLAB's really too silly: 16:42:01 >> x = y = 1 16:42:02 ??? x = y = 1 16:42:02 | 16:42:02 Error: The expression to the left of the equals sign is not a valid target for an assignment. 16:42:32 Deewiant, ah 16:42:35 Ooh, CCBI's been running for 18 minutes of CPU time and one wraparound is done 16:42:42 Deewiant, wow. 16:42:47 It's at GOOD: 4k # jumps 4 times from k 16:42:50 Deewiant, tell me what happens for u and such then 16:43:00 AnMaster: Might not be done today 16:43:12 Deewiant, a lot of wrap arounds is there? 16:43:14 I mean, if it's, say, 15 minutes per wraparound this could take hours 16:43:17 There might be 16:43:28 I'm not sure how many before the stack stack tests 16:43:32 Deewiant, well, why not do as I said then, manually adjust bounds 16:43:37 But I wouldn't be surprised if there were many 16:43:47 AnMaster: That'd involve adding that to the debugger :-P 16:43:49 Deewiant: is mycoedge available? :S 16:43:50 This is much easier 16:43:54 lifthrasiir: No, since it isn't done 16:44:02 If you want the broken one, ask AnMaster :-P 16:44:06 I guess he fixed it a bit too 16:44:19 okay, then... 16:44:29 Deewiant, no I didn't 16:44:40 I just verified I was right 16:44:44 AnMaster: Well, you're the one with the command-line paste tools 16:44:45 and it was wrong 16:44:59 hmm 16:45:06 Deewiant, it doesn't work well for spaces though, so I'll ompload it 16:45:14 Deewiant, also doesn't arch have packages for those? 16:45:20 -!- FireyFly has joined. 16:45:26 I don't know 16:45:31 If it does, I wouldn't know how to use them 16:45:42 lifthrasiir, http://omploader.org/vMWhhcw 16:45:56 AnMaster: thank you 16:45:56 Deewiant, simple usually: $ 16:46:10 lifthrasiir, the two latter tests are off by one I think 16:46:15 hs funge author said so too 16:46:59 Deewiant, for example: $ wgetpaste mycoedge.b98 or $ ompload mycoedge.b98 16:47:00 or such 16:47:07 Deewiant, very simple to use yes :) 16:47:24 -!- FireFly has quit (Nick collision from services.). 16:47:26 -!- FireyFly has changed nick to FireFly. 16:47:45 Ooh, nother wraparound done 16:47:47 GOOD: 'vs places v 16:48:01 So maybe it's around 10 minutes per wraparound 16:48:48 * oerjan swats FireFly -----### 16:49:05 Swat my network instead 16:49:14 * oerjan swats FireFly's network -----### 16:49:46 Deewiant, there are 20 wraps 16:49:48 to wait for 16:49:54 :-) 16:50:01 So 3-4 hours then 16:50:01 I just made cfunge print it out 16:50:07 Deewiant, that is just before y 16:50:17 5 wraps in y 16:50:18 Is {} before or after y 16:50:22 Deewiant, before 16:50:25 just before 16:50:29 Great 16:50:43 http://pastie.org/436879 hell, what's going on then? 16:50:44 Deewiant, there are wrapping in the {} test code though 16:50:57 lifthrasiir, uh what? 16:51:10 AnMaster: You can bother to find this out but not what's going on with cfunge there? :-P 16:51:29 Deewiant, because that would include trying to follow mycology code flow 16:51:48 AnMaster: as i said pyfunge does update rectmin and rectmax (i.e. bounds) only when sysinfo is used, and it should call Space.updaterect but it works correctly! 16:51:51 INTERCAL is worse yes than that yes, but most other things are not 16:52:13 * lifthrasiir checks for sysinfo implementation 16:52:14 lifthrasiir, you set initial bound to 0,0? 16:52:19 hm 16:52:23 I always track that correctly 16:52:36 AnMaster: yes, before sysinfo is executed. 16:52:37 AnMaster: You could paste a trace of what happens after cell 145,83 (relative to the new offset, of course) 16:52:52 when sysinfo is used it updates (or should update) to correct bounds 16:52:53 I mark bounds as "not valid" until first non-space have been loaded from initial file 16:52:58 when I update all bounds 16:53:15 after that I just do as usual 16:54:10 Deewiant, hm... ok. it is a bit hard, because once cfunge passed into new mycology it is so fast. How would I find out where the new offset it 16:54:21 omg, there was a bug. how did i manage such a bug... :S 16:54:33 Deewiant, give me a fixed place to break on and info where new x,y is stored! 16:54:42 and I'll do it 16:54:43 AnMaster: Break at a k 16:54:58 The third or fourth one is at (-2,0) relative to new offset 16:55:07 mhm 16:55:47 Deewiant, so the third k I hit? 16:55:56 Or fourth, I forget 16:56:05 The first one that is far away from (0,0) :-P 16:56:33 the third one yes 16:56:50 Deewiant, which I don't hit for the "different sign for x,y" case 16:56:53 interesting 16:56:54 CCBI is up to GOOD: } transfers cells correctly 16:57:00 Deewiant, that was fast... 16:57:14 32 mins of CPU time 16:57:35 okay, get fixed 16:57:44 Deewiant, 54571405+2+145,1419676713+83 right? 16:57:50 if those large numbers is the k 16:57:52 Yeah, something like that 17:00:48 ok did that trace 17:00:52 let me save the output 17:00:58 GOOD: u with zero count does nothing 17:01:02 Exciting times lie ahead! 17:02:14 Deewiant, http://omploader.org/vMWhhdw 17:02:30 that is from the position you said to y 17:02:49 Cheers, I'll look at that after CCBI fails/succeeds 17:03:24 Deewiant: are you going to add new test (i suppose that's related to boundary of Funge space)? 17:03:37 Deewiant, well the position in y isn't relative storage offset afaik? right? 17:03:40 lifthrasiir: Mycoedge is supposed to be that at some point 17:04:15 AnMaster: ? 17:04:30 Deewiant, is the least point as reported by y relative storage offset? 17:04:33 it isn't afaik 17:04:52 Not sure, don't think so 17:04:59 Depends on whether o's input is :-P 17:05:30 Deewiant, if mycology would reach that far when loaded offset it would probably barf on that 17:05:39 BAD: u with a negative count reflects 17:05:44 Indeed, with CCBI too 17:05:45 Wonder why 17:05:46 Deewiant, see! 17:05:51 now it will reset offset 17:06:01 Yes, it's supposed to 17:06:08 right 17:06:54 Deewiant, So is storage offset relative or not in ccbi? 17:07:02 err 17:07:11 Seems to me like it shouldn't be, but I don't remember 17:07:13 Deewiant, So is storage least point relative offset or not in ccbi?* 17:07:16 was what I meant 17:07:17 I.e. it'd make more sense if it wasn't 17:07:27 Deewiant, is o relative? 17:07:29 or i 17:07:33 AnMaster: Same answer. 17:07:44 y is not relative here, but o and i are 17:07:48 Since what y pushes is supposed to work directly as an input to o. 17:07:49 since you told me that 17:08:06 as in "go make everything relative offset" 17:08:08 some months ago 17:08:15 well not everything 17:08:16 So why didn't you make y :-P 17:08:18 but lots of things 17:08:19 ;-P* 17:08:38 Deewiant, because mycology never complained about it I probably didn't even remember about that 17:08:39 I guess 17:10:19 Check the spec if it says anything 17:13:42 Deewiant, iirc it doesn't 17:15:05 "1 vector containing the least point which contains a non-space cell, relative to the origin (env)" 17:15:13 Deewiant, depends on what origin means 17:15:29 I'd guess it means 0,0 17:15:31 not storage offset 17:16:08 Yes, it does, that's defined 17:16:35 So hmm, would it make sense for i and o to be absolute then 17:16:46 Nah, I don't think so 17:17:28 that's a spec bug, which became a feature now 17:17:29 Since you get the storage offsets right next to that when you do y anyway 17:17:35 lifthrasiir: Yeah, probably :-) 17:17:45 AnMaster: Taking notes for -109? ;-P 17:18:06 I'm going to the sauna now -> 17:18:23 hm 17:18:31 Deewiant, possibly 17:18:49 but since no one else but Mike Riley *is* interested... 17:19:05 i'm also interested in 17:19:13 meh 17:19:17 maybe I'll try to then 17:19:29 -!- kar8nga has joined. 17:21:05 There's the "These two vectors are useful to give to the o instruction to output the entire program source as a text file." note there too, which sort-of breaks if i/o are relative but y bounds are not; OTOH you can't really have relative y bounds since it explicitly says "relative to the origin". 17:27:24 indeed 17:27:41 fizzie, iirc Deewiant said i and o should be relative some months ago 17:28:23 hm seems gcc 4.3 has inter-procedural optimising thingy 17:28:27 Yes, it does feel logical to me too that they would be relative; this is just one point that suggests otherwise. 17:32:21 anyway tracking bounds add around 0.010 wall clock to a normal mycology run (optimised build, no concurrent funge, empty environment, redirecting to /dev/null). With more env and/or concurrency it adds more of course. The overhead is not constant rather it is relative number of writes to funge space (and to a lesser degree also ip wrap check) 17:35:30 -!- kar8nga has quit (Remote closed the connection). 17:35:34 -!- kar8nga has joined. 17:36:51 Hmpfh, Octave doesn't seem to do much auto-vectorization, based on the fact that it's using almost exactly 50 % of CPU on this two-core system. 17:37:48 Or maybe it does in some operations, since it has now climbed up to 60 %. 17:38:27 Auto-parallelization, I mean. 17:40:00 ah 17:40:14 fizzie, for gcc there is an option to do that in 4.3 iirc 17:40:23 maybe it was added in 4.2 or so, not sure 17:40:36 but yeah, doesn't help you 17:41:15 Well, it is doing *something* sensible, since the CPU usage has climbed up to 69 %. 17:47:02 Deewiant, found why it locks up, because it still fails to clear the static area when funge space is loaded in -x,+y or +x,-y quadrants. Or it locks up before it cleared it. 17:47:04 not sure 17:47:16 anyway it is after the program was loaded 17:47:28 I think the main program is wrapping 17:47:33 I think I've been misreading those CPU usage numbers, actually; I guess the ps-reported one should climb to >100 for parallelistics, but it's some sort of longer-term average, and that's why it's changing so slowly. Since "top" shows exactly 100 in the "%CPU" column, but something like "48.6%us" in the total CPU usage line. 17:47:52 Deewiant, ah yes that it... slowdown itself is wrapping there, before it cleared itself 17:47:58 that's the issue it seems 17:48:12 x=21 y=37: 0 (48) 17:48:12 x=22 y=37: 5 (53) 17:48:12 x=23 y=37: - (45) 17:48:12 x=24 y=37: : (58) 17:48:12 x=25 y=37: p (112) 17:48:13 x=1906068373 y=37: (32) 17:48:18 does that make any sense? 17:49:10 Uh no, that shouldn't happen 17:49:27 There's a 0 at x=27 y=37 17:49:45 Deewiant, hm what the hell happened then... 17:50:09 Slowdown doesn't wrap at all after loading the file for the second time 17:50:16 Since otherwise it could run into the other file's code 17:50:27 hm ok 17:51:40 Deewiant, so if I want to make slowdown print something just before that, where would be the safe place to insert it 17:51:47 I'm going for valgrind now 17:51:54 and I can't break there easily tnen 17:51:55 then* 17:52:03 AnMaster: That code is in the loop which pushes a space 600000 times 17:52:47 Deewiant, would putting '1, or on the side of "Begin magic" be safe 17:52:51 vertically of course 17:52:56 Sure 17:53:25 That code isn't very self-modifying, you can mess with it quite freely 17:53:36 Just make sure everything remains aligned :-P 17:54:24 meh why does the code before that take so long... 17:54:43 What, cfunge is slow? :-P 17:55:12 Deewiant, I think there is some issue with buffered output... 17:55:16 (line buffered) 17:55:17 -!- neldoret1 has joined. 17:55:49 ah yes that is it 17:55:56 when I insert a newline there I get the output I wanted 17:56:14 now lets see under valgrind 17:56:57 Deewiant, that x is it from the right side? 17:57:04 ? 17:57:04 -!- ehird has left (?). 17:57:06 I mean x ;JUMP; is where it actually jumps right? 17:57:13 and that is entered from the right side 17:57:15 Yep 17:57:30 * AnMaster adds some debugging code in the blank space there 17:59:34 -!- ehird has joined. 18:00:34 -!- neldoreth has quit (No route to host). 18:00:43 lets see how long a working one takes 18:00:50 so I can know when to give up with valgrind... 18:01:01 (this is super-slow under valgrind btw) 18:01:41 ah that fast 18:02:02 and here comes a broken one... 18:02:14 * AnMaster made i print new bounds at end 18:04:43 08:40 AnMaster: logical flaw there... 18:04:43 08:40 AnMaster: so you are just trolling then, right. 18:04:50 AnMaster's deduction engine runs in verbose mode 18:05:54 ehird: BTW, about me and 22 dB, I assume your allegation was another instance of shit 18:06:10 Deewiant: Everything I say is an instance of shit. 18:06:11 ☺ 18:06:19 ehird: Alright, I won't respond properly then 18:06:29 Deewiant: You're going to put me out of business 18:06:33 Deewiant: Everything I say is an instance of shit. <-- that explains it... 18:06:39 AnMaster: Mycology assumes (0,0) storage offset there, yes. 18:06:46 AnMaster: The error message is wrong though. 18:06:55 hm 18:07:09 Deewiant, ah ok. Is this a mycology bug? 18:07:17 and will you fix it? 18:07:24 also now I have a case of broken offsets 18:07:28 lets see what happens 18:07:37 AnMaster: The error message is: I've apparently forgotten to move a ; after inserting some code 18:07:54 AnMaster: The offset thing isn't IMO, since I can't assume that y works there so I can't know the correct offsets. 18:08:00 right 18:08:06 Deewiant, which offset thing? 18:08:08 about i/o? 18:08:15 AnMaster: The thing that u complains about. 18:08:19 ah 18:08:30 strange error message btw ;P 18:08:39 2009-04-04 20:06:45 ( Deewiant) AnMaster: The error message is wrong though. 18:08:43 AnMaster: The error message is: I've apparently forgotten to move a ; after inserting some code <-- this must mean "BAD: I've apparently forgotten to move a ; after inserting some code" 18:08:44 duh 18:08:45 ... 18:08:56 ... 18:09:08 AnMaster: If you want, I could probably make it just print the storage offsets with UNDEF 18:09:09 Deewiant, it was a lame joke yes 18:09:26 Deewiant, well, it is usually bad 18:09:31 so I wouldn't bother 18:09:45 It'd make Mycology a step closer to being slowdown-clean :-) 18:09:47 Deewiant, slowdown is non-conforming anyway 18:09:55 How do you mean 18:10:27 Deewiant, because mycology isn't position independent. And I think having relative i and o is completely valid 18:10:37 and y is defined as relative 0,0 18:10:46 http://www.arctic-cooling.com/catalog/product_info.php?cPath=2_&mID=244&language=en ← Yum. 18:10:49 AnMaster: How does any of that make slowdown non-conforming 18:11:17 Deewiant, because it modifies the interpreter so the program that will run in it won't run in a conforming environment 18:11:18 duh 18:11:29 Well of course, but the program itself isn't 18:11:39 It isn't guaranteed to work for all programs: that's obvious 18:11:39 Deewiant, make slowdown mycology clean instead by interpreting instead! 18:11:54 By what? 18:12:22 slowdown should be a befunge98 in befunge98 interpreter, it would store it's interpreter code near the program to avoid the slow wrap thing or something 18:12:29 18:09 AnMaster: Deewiant, slowdown is non-conforming anyway 18:12:31 slowdown? 18:12:34 Yeah, right :-P 18:12:45 Deewiant, still it would work better 18:12:51 Of course it would 18:13:12 Deewiant, also this is odd, the quadrant bug is *not* due to memory corruption 18:13:13 But it'd be a crapload of work 18:13:16 so what on earth then... 18:13:32 at least not detectable by either valgrind or mudflap 18:14:14 Deewiant, can you provide a trace of ccbi running it in +x,-y or -y,+x that lists each instruction executed in some format? 18:14:22 I don't have a working D compiler as you know 18:14:31 Get one :-P 18:14:49 Deewiant, can I just download ldc, compile it against llvm 2.5 and it will work out of box on x86_64? 18:14:59 because my llvm is pure 64-bit host backend only 18:15:02 AnMaster: Yes. 18:15:23 hm ok 18:15:38 -!- BeholdMyGlory has joined. 18:16:28 Deewiant, last release or some svn or whatever version 18:16:28 ? 18:16:41 AnMaster: You'll need latest hg, hang on 18:16:47 Deewiant, commands? 18:16:56 AnMaster: Didn't you get pyfunge? :-P 18:17:21 Deewiant, well I don't know url for ldc 18:17:27 Oh, LDC 18:17:31 I thought you meant CCBI :-P 18:17:33 hg clone was it? 18:17:35 Deewiant, that too 18:17:39 I don't know that url either 18:17:43 AnMaster: tar.us.to 18:17:48 ? 18:17:50 LDC's URL is on its home page, of course 18:17:54 hg tar.us.to clone? 18:18:08 hg clone http://tar.us.to:8000 18:18:37 and for ldc? 18:18:41 LDC's URL is on its home page, of course 18:18:42 do I need svn or? 18:18:46 or last release... 18:18:52 hg for that as well, I think 18:18:52 that was the question I asked 18:18:56 And I don't know 18:19:02 Deewiant, llvm 2.5? 18:19:03 I always use the latest 18:19:05 AnMaster: Yes. 18:19:45 that takes forever 18:20:14 What does 18:20:17 bzr is faster these days, it used to be a bit slow for remote operations on large repos, but since 1.13 it is blazing fast 18:20:24 but cloning ldc takes forever 18:20:36 The server is slow, not the program 18:20:53 Deewiant, should I get D2 or tango? 18:21:05 AnMaster: Read the LDC build instructions, also on the home page. 18:21:14 Fetch the tango runtime for D1 18:21:14 svn co http://svn.dsource.org/projects/tango/trunk ldc/tango 18:21:14 or 18:21:14 Fetch the druntime for D2 (this is experimental) 18:21:14 svn co http://svn.dsource.org/projects/druntime/trunk ldc/druntime 18:21:17 says that 18:21:19 which 18:21:37 One is experimental, one isn't 18:21:40 yes and? 18:21:44 which does ccbi use 18:21:48 It's the language runtime 18:21:51 CCBI uses neither 18:21:54 oh? 18:21:58 I don't hook into the compiler :-P 18:21:59 so I shouldn't fetch either then? 18:22:02 Or anything equally strange 18:22:09 Are you intentionally dense? 18:22:09 Deewiant, you needed tango didn't you say? 18:22:14 Do you know what a language runtime is? 18:22:17 Deewiant, yes... 18:22:18 duh 18:22:28 but iirc you said D2 wasn't compatible 18:22:31 or something 18:22:34 but I was unsure 18:22:47 Yes, CCBI uses D1 18:22:56 But as far those runtimes are concerned it really shouldn't matter 18:23:03 I recommend the tango one 18:23:09 Since it isn't experimental and will work 18:23:15 The other one may or may not, since it is experimental. 18:23:17 Deewiant, but tango vs. phobos *did* matter? "But as far those runtimes are concerned it really shouldn't matter" meh 18:23:20 you make no sense 18:23:28 AnMaster: I reiterate: Do you know what a language runtime is? 18:23:32 yep 18:23:53 So you should also realize that if they are both conforming to the language spec, it makes absolutely no difference which one is used 18:23:53 Deewiant, it would be like libc, or libstdc++ or such 18:24:20 18:22 Deewiant: Are you intentionally dense? 18:24:25 my thoughts exactly. 18:24:29 Deewiant, but then I should be able to use phobos too, yet you needed tango. Or is phobos non-conforming? 18:24:40 Deewiant: he doesn't know what a language runtime is. 18:24:42 AnMaster: Those are libraries, not part of the language spec, and not language runtimes. 18:24:55 They both provide a language runtime. 18:25:06 druntime is only a language runtime. 18:25:12 Tango is a language runtime + a library. 18:25:17 Phobos is a language runtime + a library. 18:25:28 You can use the Phobos library with the Tango runtime. 18:25:46 You can not use the Tango library with the Phobos runtime because the Phobos runtime is crap. 18:25:58 You can use both libraries with druntime, at least in theory. 18:26:27 One plus two is two. 18:26:29 Two plus two is four. 18:26:34 Deewiant, hm does out of tree builds work for ldc? 18:26:37 Er. 18:26:39 "One plus two is two." 18:26:39 AnMaster: Yes. 18:26:42 goo 18:26:42 fail :-D 18:26:43 ehird: :-) 18:26:43 good* 18:26:54 AnMaster: There's no "make install". 18:26:59 You have to put it in your PATH. 18:27:01 ehird: Yes there is. 18:27:06 Deewiant: It doesn't work properly 18:27:09 I know this because I tried 18:27:15 Maybe not on OS X, but it worked for me. :-P 18:27:15 also, it isn't documented 18:27:22 the documented method is to put it in your PATH 18:27:26 That's probably because it doesn't work properly. ;-) 18:27:28 hm? 18:27:38 I plan to install to ~/local/ldc 18:27:45 AnMaster: Well, don't "install". 18:27:48 Just move the build tree there. 18:27:49 llvm is in ~/local/llvm btw 18:27:53 If you're doing it that way anyway. 18:30:03 Deewiant, do I want any of BUILD_BC_LIBS, BUILD_SHARED_LIBS, BUILD_SINGLE_LIB ? 18:30:09 no 18:30:17 ... 18:30:24 are you bsmntbombdood 18:30:28 BUILD_SINGLE_LIB is on by default 18:30:32 well, fine. 18:30:32 keep that. 18:32:53 what about USE_BOEHM_GC? 18:33:12 AnMaster: You don't have to touch any of the settings. 18:33:34 Deewiant, I do need to touch linker flags because otherwise llvm doesn't work, need to add rpath and such 18:33:36 so yes I do 18:33:38 Deewiant: Why did you do that? We could have spent half an hour answering 100 questions. 18:34:21 svn: '/home/arvid/src/llvm/llvm-2.5' is not a working copy 18:34:22 what? 18:34:34 ... 18:34:37 sigh. 18:34:41 that's right. The directory doesn't even exist 18:34:43 AnMaster: Did the rest of the build fail? 18:34:45 No? 18:34:50 I don't have the llvm source checkout around any more 18:34:53 Also, that's because you specified a path wrong. 18:34:55 not yet no 18:34:56 -!- neldoret1 has quit (Client Quit). 18:35:01 that error is expected 18:35:04 but it has to exist 18:35:05 the directory 18:35:09 so you did it wrong. 18:35:21 ehird, err, I only keep installed llvm around, not the source 18:35:26 and the source was an out of tree build 18:35:28 ... 18:35:28 Yes. 18:35:30 That's correct. 18:35:33 But the path has to exist. 18:35:37 why? 18:35:39 It's checking whether it's an svn version. 18:35:42 But the path has to exits. 18:35:46 Otherwise it'll break later on. 18:35:50 When it tries to use that. 18:35:52 Path. 18:35:52 ehird, that is a bug in the build system clearly 18:35:55 stupid 18:35:55 No. It's not. 18:36:09 "If something went wrong it's obviously *their* fault." 18:36:23 ehird, I hope it won't write anything in it at least? 18:36:50 AnMaster: redo cmake and specify the paths right. 18:37:05 ehird, yes llvm install path exists. it is ~/local/llvm/ 18:37:12 Deewiant: kill me. 18:37:15 but the SOURCE PATH FROM WHICH LLVM WAS INSTALLED IS NO LONGER AROUND 18:37:23 how hard is that to understand 18:37:32 AnMaster: Did something go wrong, exactly? 18:37:52 Deewiant, no but ehird seems to say that you need the llvm source around, I just asked why "svn: '/home/arvid/src/llvm/llvm-2.5' is not a working copy" happened 18:38:04 When I did it it gave that error about my actual llvm directory. 18:38:06 I don't keep source around for installed programs 18:38:12 I infer that it should at least exist. 18:38:17 It checks whether you have a recent enough version, which includes checking for SVN revision. 18:38:25 It assumes it's recent enough if it's not SVN. 18:38:31 (I think.) 18:38:41 well the path in question is not listed in ccmake 18:38:51 it only mentions /home/arvid/local/llvm there 18:38:58 so no way I can fix it then 18:39:00 meh 18:39:10 lets hope it works 18:39:24 Where is that mentioned? LLVM_INSTDIR? 18:39:33 In my case it's /usr which obviously doesn't contain llvm-2.5 18:39:56 LLVM_CONFIG:FILEPATH=/home/arvid/local/llvm/bin/llvm-config 18:39:56 LLVM_INSTDIR:PATH=/home/arvid/local/llvm 18:39:59 there 18:40:01 which is correct 18:40:03 for my system 18:40:18 I don't have llvm in /usr 18:40:34 how hard is this to understand 18:40:37 * AnMaster headdesks 18:40:40 WTF? 18:40:43 I didn't say you had 18:41:04 Deewiant: Whatever you're doing, do it more so he headdesks more. 18:41:05 Thanks. 18:41:10 And what are you complaining about, the build is working, right? 18:41:20 Scanning dependencies of target gen_revs_h 18:41:20 [ 1%] Generating revisions.h and llvm-version.h 18:41:20 svn: '/home/arvid/src/llvm/llvm-2.5' is not a working copy 18:41:24 I was wondering about that yes 18:41:38 And if it continued on to 2% there isn't a problem? 18:42:01 no it jumped straight to 3% 18:42:03 in fact 18:42:07 [ 1%] Built target gen_revs_h 18:42:08 [ 3%] Generating dmd/impcnvtab.c 18:42:08 Oh noes, it skipped 2%! 18:42:17 Deewiant, hah 18:42:23 I hope that means it won't take too long... 18:42:37 Fortnights 18:42:49 Deewiant, at 47% already... 18:42:55 FUCK! WE HAVE A SKIPPING 2% SITUATION IN THE HOUSE! 18:42:59 ehird, hah 18:43:01 Oh god get a SWAT team 18:43:05 it is normal for cmake 18:43:07 duh 18:43:13 AnMaster: National emergency 18:43:17 I declare martial law 18:43:17 hm this is strange though 18:43:22 [ 47%] Building CXX object CMakeFiles/ldc.dir/ir/irlandingpad.cpp.o 18:43:22 Linking CXX executable bin/ldc 18:43:22 /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/ld: BFD (GNU Binutils) 2.18 assertion fail /var/tmp/portage/sys-devel/binutils-2.18-r3/work/binutils-2.18/bfd/elf64-x86-64.c:2548 18:43:22 /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/../../../../x86_64-pc-linux-gnu/bin/ld: BFD (GNU Binutils) 2.18 assertion fail /var/tmp/portage/sys-devel/binutils-2.18-r3/work/binutils-2.18/bfd/elf64-x86-64.c:2548 18:43:23 [100%] Built target ldc 18:43:28 it fails to link 18:43:28 :-D 18:43:40 "assertion fail" 18:43:45 Tools just get more and more informal 18:43:47 ehird, yes, in binutils 18:43:48 Upgrade binutils 18:43:54 next up: 18:44:06 "im in ur supposed program, confused about this missin {" 18:44:08 Deewiant, is this a known issue with binutils 2.18? 18:44:20 "Yo dawg, I herd u liek recursion but you just blew the stack." 18:44:21 AnMaster: I don't know, I'm not an LDC developer 18:44:33 "I herd u liek segfaults" 18:44:44 Deewiant, well, then I'd rather track stable in gentoo binutils 18:44:59 Deewiant, and skip ldc 18:45:09 ITT: your loss. 18:45:30 wait 18:45:38 it did link bin/ldc 18:45:44 at least there is a binary there 18:45:46 which runs 18:46:10 AnMaster: do you know what '[100%] Built target ldc' means? 18:46:16 you do know that make gives up on errors, right? 18:46:17 yes 18:46:49 but the word assertion mislead me 18:47:06 since that usually means it will exit, but I guess this isn't assert() 18:47:22 Deewiant, btw any small test program in D to check with? 18:47:26 like helloworld or such 18:47:31 AnMaster: I've had worse ld fuckups -- it seems to only sort symbols to so many characters, so if you have long mangled names that are same for a long prefix -- it spits out 'atom sorting error' 18:47:32 AnMaster: Did you make runtime? 18:47:35 Got a few hundred? Have fun EVERY LINK TIME <3 18:47:43 ah no 18:47:45 * AnMaster does that 18:47:49 object.d: Error: module object cannot read file 'object.d' 18:47:53 make[3]: *** [runtime/dcrt/bitmanip.o] Error 1 18:47:54 hm 18:47:55 import tango.io.Stdout; void main() { Stdout("Foo").newline; } 18:47:59 Deewiant, ^ 18:48:02 make runtime fails 18:48:09 AnMaster: Did you download a runtime? 18:48:22 "What's a runtime?" 18:48:22 Deewiant, I did "svn co http://svn.dsource.org/projects/tango/trunk ldc/tango" yes 18:48:27 as it said 18:48:51 One option at this point is to try and follow the instructions and not do an out-of-tree build 18:49:06 Deewiant, meh... that sucks 18:49:12 Yes, following instructions does. 18:49:15 but ok 18:49:18 COMPUTER ANARCHY 18:49:21 Deewiant, you said it worked though 18:49:25 Nobody's gonna tell me what to do! 18:49:28 AnMaster: It used to; maybe it doesn't any more. 18:49:28 Deewiant: you LIED to him 18:49:32 -!- Judofyr has quit (Remote closed the connection). 18:49:35 you said it worked. you LIAR! You malicious... lying thing. 18:52:02 ehird, you seem edgy today ehird. 18:52:15 AnMaster: Actually, this is lighthearted. 18:52:25 The more lighthearted, the more fun I have poking fun at you. 18:53:12 "Edgy" would be /ignore and /part and arguing with you; yelling at others is lighthearted 18:53:36 Deewiant: I appoint you my public relations officer. 18:53:46 I refuse the appointment. 18:53:56 Deewiant, no that would be "raging" I think 18:54:04 Deewiant: No choice. 18:54:17 AnMaster: Yeah, I guess the former two at least would be. 18:54:57 yeah 18:58:58 in-tree works 18:58:59 fail 18:59:21 (as in out of tree builds are better) 18:59:47 I declare martial law 18:59:53 I declare martian law 19:00:16 you must all grow antennas, and drink only 1 liter of water per year 19:00:21 kk 19:00:24 Deewiant, how do I build ccbi then? 19:00:25 I used to never say k 19:00:29 It was always kk 19:04:25 Deewiant, well? ldc *.d */*.d or something? 19:04:28 I have no clue 19:04:48 AnMaster: ldc won't rm -rf $HOME if you do something wrong 19:05:02 Deewiant: Actually it will, I added that a few days ago 19:05:05 You can try that, I don't know if that works 19:05:06 Deewiant, well but it was better asking you 19:05:12 It's in pebkac_fix.d 19:05:14 Deewiant, how do you build ccbi? 19:05:26 AnMaster: The 'easy' way is to get rebuild; but it doesn't know about LDC and requires a bit of hacking to get to compile. 19:05:38 AnMaster: Unless 19:05:43 AnMaster: Can you run 32-bit executables? 19:05:51 If you can, just get Rebuild. 19:06:04 I can't, so I had to hack it a bit and build a 64-bit version. 19:06:22 yay ldc segfaulted 19:06:37 Ooh, nice! What'd you do? 19:06:41 ldc --segfault 19:07:03 http://rafb.net/p/tMWfK914.html 19:07:06 Deewiant, ^ 19:07:41 Sweet 19:07:48 Let's see if I can reproduce that 19:08:05 AnMaster: What Rebuild does is build each file to a .o and then links them 19:08:08 You can try that 19:08:27 AnMaster: Also, Mycology updated, you can see if cfunge gets any further under slowdown. 19:08:49 slowdown? 19:09:34 AnMaster: Doesn't happen for me :-/ 19:09:42 Upgrading binutils might help, perhaps :-P 19:09:45 hm 19:09:52 ehird: iki.fi/deewiant/files/befunge/programs/slowdown.b98 IIRC 19:11:43 Deewiant, hm llvm is 64 bit only, but otherwise I can run 32 bit binaries yes 19:12:01 http://m1.2mdn.net/2233165/300x250-proggit.gif ← Best ad ever. 19:12:01 AnMaster: So you should just get Rebuild (part of DSSS), like I said. 19:12:31 ehird: Doesn't look quite 100% to me. :-P 19:12:32 Deewiant, so rebuild doesn't need 32-bit ldc? 19:12:45 AnMaster: Like I said it isn't aware of LDC. 19:12:45 to build rebuild I mean 19:12:47 Deewiant: The best part is that it blinks. 19:12:48 Deewiant, ... 19:12:58 AnMaster: Like I said to get it to build implies hacking. 19:13:03 AnMaster: So, get the binary. 19:13:17 Deewiant: Don't say dirty words like "binary". 19:13:24 ehird: Binary binary binary 19:13:26 ehird, that is some javascript code dumped into the page in that image... 19:13:27 There are children here. 19:13:31 AnMaster: No shit sherlock! 19:13:34 You're a genius. 19:13:43 Mosaic renders the contents of