00:10:51 -!- ais523 has quit (Remote host closed the connection). 00:12:46 -!- BeholdMyGlory has quit (Remote host closed the connection). 00:25:48 -!- coppro has joined. 00:37:35 o hai 00:38:07 oerjan, yet iff symbolically is merely <-> 00:38:15 a single-lined double arrow 00:39:49 also 00:39:51 CAFFEINE! :D 00:44:48 who was it that suggested lo carb monster 00:48:26 oh, noone here 00:50:33 -!- kar8nga has quit (Remote host closed the connection). 01:05:24 -!- lament has quit (Ping timeout: 276 seconds). 01:06:52 augur: (ノ゚ο゚)ノミ★゜・。。・゜゜・。。・゜☆゜・。。・゜゜・。。・゜ 01:07:07 -!- lament has joined. 01:07:11 hahahahaha 01:10:33 wtf is that 01:10:54 beats me, I can't see it 01:11:02 Quadrescence: なぜ絵文字を使いますか。 01:11:21 shiiiiiiit 01:11:42 何? 01:12:02 I have no idea what you're saying. 01:12:39 Japanese-script-using failure. 01:13:07 Fortunately I don't know Japanese. 01:17:23 Then why are you using 01:17:29 JIS art? 01:17:30 :P 01:17:43 -!- MizardX has quit (Ping timeout: 268 seconds). 01:25:20 pikhq: because i speak japanese 01:25:32 Quadrescence: 本当に? 01:25:38 yes 01:26:47 でも、「絵文字」を知らない。 01:27:46 Hrm. ... Emoji is wrong word. JIS art. 01:31:05 -!- oerjan has joined. 01:50:26 Hm, alise isn't here? 02:05:02 So, keywords do exist in Common Lisp 02:07:22 -!- benuphoenix has joined. 02:07:51 Not ATM. 02:10:30 -!- zzo38 has joined. 02:13:08 -!- benuphoenix has quit (Quit: leaving). 02:22:53 Do you know how to make hypervisor mode in ARM-based computer? 02:51:34 -!- zzo38 has quit (Remote host closed the connection). 03:07:36 -!- lament has quit (Ping timeout: 276 seconds). 03:11:06 -!- lament has joined. 03:21:23 -!- adu has joined. 03:35:12 -!- oerjan has quit (Quit: leaving). 04:57:22 -!- Khazar has joined. 05:15:46 goodnight! 05:15:48 -!- Oranjer has left (?). 05:17:45 It is time to put those Haitian jigaboos in their place! No matter how many times the civilized world donates money, opens schools, rebuilds their nation, and holds their little monkey paws, the damn niggers can never get it right. They never will! The same goes for New Orleans! Cancun in Mexico suffered few fatalities after their major hurricane, and the rebuilding is already completed. Wha 05:17:45 t have the niggers in New Orleans done? If you are sick of this, join Chimpout Forum! http://www.chimpout.com/forum We welcome all races except for NIGGGGGGGERS! We are not white supremacists, just negro inferiorists! http://www.chimpout.com/forum 05:19:41 lament: Art thou awake? 05:20:27 Khazar: 馬鹿ね。 05:27:24 -!- Azstal has quit (Ping timeout: 256 seconds). 05:53:19 -!- adu has quit (Quit: adu). 05:59:56 ... wow. 06:00:01 Good ol' fashioned spam I guess. 06:00:12 Not all that "good ol' fashioned". 06:00:21 If it were that, Khazar would be giving the GNAA spiel. 06:00:30 Rarely has "good ol' fashioned" meant "good" :P 06:01:44 Heheh. 06:02:17 Curious, I would expect a spambot to join various channels, but Khazar is only on #esoteric. 06:02:35 Curious. 06:02:55 Probably more of a *troll* than a spambot, then. 06:05:01 -!- lament has quit (Ping timeout: 264 seconds). 06:06:07 Naw, a troll would be responsive, I assume. 06:06:10 Just a moron. 06:09:01 -!- lament has joined. 06:09:15 Mmm. 06:10:22 lament: Can has kickban on Khazar plz kthx 06:13:44 Alternatively, can have access +o on Gregor? :P 06:15:15 it isn't spam 06:15:22 where did I mention viagra or porn? 06:15:54 You opted form "chimpout" instead. 06:15:57 Erm. For. 06:16:06 Oh wow, it is a "human". 06:16:07 Shocking. 06:16:29 If nothing else, your racist idiocy has no relevance to this channel and is unsolicited, making it spam. 06:16:40 we have discovered that on Freenode, it is wiser to be more lowkey 06:16:42 Advertising a site that is offensive to many and sought out by few is generally considered spam. 06:16:45 precluding the usage of bots 06:16:48 it is more profitable 06:16:57 if you are interested in such a job in irc marketing 06:17:06 That would be because people on Freenode are, in general, more intelligent than turnips. 06:17:10 email recursoshumanos@telvista.com.mx 06:17:20 Whereas the target audience for your site is in the 0.25-to-0.75 turnips intelligence range. 06:17:34 People on Freenode are more likely to be offended by marketing in general, you know. 06:17:40 Which would place them just a tad below intelligent design advocates, and roughly on par with flat-Earth-theorists. 06:18:13 (... Particularly here. Have you *seen* the crazy shit we write?) 06:18:46 i once knew a nigger named esoteric 06:18:54 It's too bad that "recursos" means "resources" instead of "recursive", "recursive humans" == an awesome concept :P 06:19:02 he had a sister named shaquanda 06:19:16 New idea: let's all /ignore 06:19:23 3, 2, 1, go 06:19:26 Khazar: Would you please be so kind as to inform us of the reasons for your opinion? 06:19:44 pikhq: Oh dear :P 06:19:50 I am certain that they are detailed, profound, and may well be enlightening as to certain aspects of the human condition. 06:20:23 Average Human IQ 100 Average Nigger IQ 80 Of course there are negroes that have normal IQs, but you are much more likely to run into a feral ape 06:20:28 than a magic negro 06:20:42 many who don't see this have been isolated from the bulk of the nigger population 06:20:49 and just know a few magic ones in the workplace 06:20:55 Well, with such "compelling" evidence as that, I'm sure convinced haw haw X-D 06:21:16 -!- Khazar has quit (Quit: Haiti=Mierda). 06:21:21 Daaaamn :P 06:21:28 Magic ones are OK I guess. 06:21:29 Alas. 06:21:33 I know a few magic ones. 06:21:56 I guess we need to sprinkle some pixy dust on everyone. 06:22:02 Thus making magical negroes. 06:22:09 Sounds about right to me. 06:22:19 (*Everyone* to allow for the possibility of racial mixes, of course.) 06:22:26 Naturalismo. 06:22:38 Now, let us discuss recursive humans. 06:22:53 I think something along the lines of Russian nesting dolls. 06:22:57 The idea intrigues me, and I would like to subscribe to relevant newsletters. 06:23:03 -!- coppro has quit (Remote host closed the connection). 06:24:00 -!- coppro has joined. 06:43:24 -!- ElMexicano has joined. 06:43:26 It is time to put those Haitian jigaboos in their place! No matter how many times the civilized world donates money, opens schools, rebuilds their nation, and holds their little monkey paws, the damn niggers can never get it right. They never will! The same goes for New Orleans! Cancun in Mexico suffered few fatalities after their major hurricane, and the rebuilding is already completed. Wha 06:43:26 t have the niggers in New Orleans done? If you are sick of this, join Chimpout Forum! http://www.chimpout.com/forum We welcome all races except for NIGGGGGGGERS! We are not white supremacists, just negro inferiorists! http://www.chimpout.com/forum 06:44:01 ElMexicano: It remains unintelligent here. 06:44:27 OK, the straight-up reappearing and pasting the same thing is bizarre :P 06:44:34 Yeah. 06:45:21 ElMexicano: なぜ、おメキシコ人、それと思うかな。 06:46:02 pikhq: Google translates that as "Why Mexicans us, I think it is." :P 06:46:12 Not the most understandable translation I've ever seen. 06:46:23 Gregor: That's because Japanese is a royal pain to translate. 06:46:30 *Highly* context-dependent. 06:46:44 That is "Why, oh Mexican, do you think that?" 06:47:17 Should've done it in keigo so I could translate it was "Wherefore doth thou think that, most honerable Mexican?" 06:47:48 Could be bots 06:48:21 -ElMexicano- VERSION xchat 2.8.6 Ubuntu 06:48:22 Unfortunately, I can't remember the appropriate verb. 06:48:37 ElMexicano, are you, in fact, a human? Prove it. 06:52:21 Apparently not. 06:52:33 It is time to put those Haitian jigaboos in their place! No matter how many times the civilized world donates money, opens schools, rebuilds their nation, and holds their little monkey paws, the damn niggers can never get it right. They never will! The same goes for New Orleans! Cancun in Mexico suffered few fatalities after their major hurricane, and the rebuilding is already completed. Wha 06:52:33 t have the niggers in New Orleans done? If you are sick of this, join Chimpout Forum! http://www.chimpout.com/forum We welcome all races except for NIGGGGGGGERS! We are not white supremacists, just negro inferiorists! http://www.chimpout.com/forum 06:54:33 -!- ElMexicano has quit (Quit: Haiti=Mierda). 06:54:37 -!- Chazz has joined. 06:54:57 Hey Chazz 06:55:07 -!- werdan7 has joined. 06:55:11 Hai 06:56:18 * Sgeo points to the channel logs 06:57:45 he seems to be using a single hostname 06:58:46 Yeah. 07:10:15 who wants to hear some obnoxious bullshit from contemporary formal semanticists? :D 07:15:58 ALWAYS 07:16:19 Gregor: OK 07:16:47 so apparently these nutballs try to account for the meaning of modal adjectives like, say, "always" 07:16:53 using the following _syntactic_ structures 07:17:40 Transforming the meaning of "always" into something purely syntactic...? 07:17:50 [λs [s [ssh [always [λr [r [John complained]]]]]]] 07:18:07 no, they just try to invent a shit ton of extra syntax so that the syntax maps neatly into logic 07:19:13 -!- Linuxiano has joined. 07:19:25 It is time to put those Haitian jigaboos in their place! No matter how many times the civilized world donates money, opens schools, rebuilds their nation, and holds their little monkey paws, the damn niggers can never get it right. They never will! The same goes for New Orleans! Cancun in Mexico suffered few fatalities after their major hurricane, and the rebuilding is already completed. Wha 07:19:25 t have the niggers in New Orleans done? If you are sick of this, join Chimpout Forum! http://www.chimpout.com/forum We welcome all races except for NIGGGGGGGERS! We are not white supremacists, just negro inferiorists! http://www.chimpout.com/forum 07:20:03 *sigh* 07:20:06 lament! 07:20:50 augur: Just to be clear, that's the sentence "John always complained", yes? 07:20:52 Or something along those lines. 07:20:56 yes. 07:21:19 the best argued syntax for that is at most [always [John complained]] 07:21:44 but typical semanticists add in a whole bunch of other shit because otherwise they cant explain anything 07:22:04 That is the way of formal semantics :P 07:22:16 its not 07:22:22 there are some formal semanticists that dont do that 07:22:31 If I knew the context I could maybe understand what function each additional layer serves, but I'm too tired and need to sleep, so I'll do that instead :P 07:22:39 its just annoying that they stick the shit into the syntax not the semantics 07:22:44 ah well ok 07:22:49 its basically 07:23:18 s, ssh, and r are situation variables 07:23:27 john is just some person value lets say 07:23:46 complained is a function of type Ind -> Sit -> Bool 07:24:02 always is of type (Sit -> Bool) -> Sit -> Sit -> Bool 07:24:52 so if this were in haskellish 07:25:44 ... Sticking semantics into syntax = failure. 07:25:50 \s -> always (\r -> (complained John r)) ssh s 07:26:09 pikhq: its so true. 07:26:31 i mean, its one thing if you map from one to the other relatively transparently or something 07:26:46 but to use your syntax as a place to encode your logical objects 07:26:55 the whole theory just blows up and becomes incredibly complex 07:31:37 It is time to put those Haitian jigaboos in their place! No matter how many times the civilized world donates money, opens schools, rebuilds their nation, and holds their little monkey paws, the damn niggers can never get it right. They never will! The same goes for New Orleans! Cancun in Mexico suffered few fatalities after their major hurricane, and the rebuilding is already completed. Wha 07:31:41 t have the niggers in New Orleans done? If you are sick of this, join Chimpout Forum! http://www.chimpout.com/forum We welcome all races except for NIGGGGGGGERS! We are not white supremacists, just negro inferiorists! http://www.chimpout.com/forum 07:32:29 * Sgeo pokes werdan7 07:36:45 -!- Linuxiano has quit (Quit: Haiti=Mierda). 07:41:27 `translate mierda 07:41:36 crap 07:54:43 `translate No hagas mierda estúpida. 07:54:45 Do not do stupid shit. 07:55:00 Darn these inconsistent translations. 07:55:52 `translate Con voz como John Scott / Ronco, ronco / Formó todos los coros 07:55:55 With a voice like John Scott / snoring, snoring / formed the choirs 07:56:30 `translate Con voz como John Scott / Ronco, ronco / Formó todos los coros / Tocó: Doblo con Mollo, bombo con Moro, / tom tom con Porno, joropo con Tormo, bongó con Don Johnson / Tocó con Toto, los Lobos, los Door, los Moscos / Compró dos vox 07:56:32 the flies / bought two vox 07:56:44 `translate Con voz como John Scott / Ronco, ronco / Formó todos los coros / Tocó: Doblo con Mollo, bombo con Moro, / tom tom con Porno, joropo con Tormo, bongó con Don Johnson 07:56:46 With a voice like John Scott / snoring, snoring / formed the choirs / played: Double Mollo, hype with Moro, / tom tom for Porno, joropo with Tormo, bongo with Don Johnson 07:58:01 `translatefromto en es The others are crazy; I know them; I don't support them. 07:58:03 Los otros son locos, yo los conozco, yo no los admite. 07:59:35 `translatefromto As I eat how I eat, nothing swims at all; nothing swims at all like I eat. 07:59:37 No output. 07:59:43 `translatefromto As I eat how I eat, nothing swims at all. 07:59:45 No output. 07:59:56 `translatefromto en es As I eat how I eat, nothing swims at all; nothing swims at all like I eat. 07:59:58 Como yo como cómo comer, nada nada en absoluto, nada en nada como comer. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:15 `translate Como como como como como como como como. 08:00:17 How how how how how how how how. 08:00:32 `translate Como nada nada como nada como como nada nada como como nada como nada nada como. 08:00:35 As nothing like nothing like nothing like nothing like nothing like nothing like nothing like anything. 08:03:01 `translatefromto en es Whence do I insist that thou beest? 08:03:03 żDe dónde puedo insistir en que beest tú? 08:04:20 o.O 08:04:43 `translate The quick brown fox jumpeth over the lazy dog. 08:04:46 var sl_select, tl_select, web_sl_select, web_tl_select;var ctr, web_ctr, h;var tld = ".com";var sug_lab = "";var sug_thk = "";var sug_exp = "";var dhead = "Dictionary";var dmore = "View detailed dictionary";var tr_in = "Translating...";var isurl = "";var show_roman = "Show romanization";var hide_roman = 08:04:55 `translatefromto en es The quick brown fox jumpeth over the lazy dog. 08:04:57 El rápido jumpeth el saxofón detrás del palenque de paja. 08:06:26 `translatefromto en es The large round potato jumpeth over the square ruse. 08:06:28 La gran jumpeth patata redonda sobre el ardid cuadrados. 08:07:00 `translatefromto en es In computer science, the term type punning referreth to a programming technique that subverteth or circumventeth the type system of a programming language. 08:07:02 En informática, el término tipo referreth juegos de palabras a una técnica de programación que subverteth o circumventeth el sistema de tipo de un lenguaje de programación. 08:10:35 -!- Chazz has quit (Read error: Connection reset by peer). 08:31:47 what what 08:32:12 oh mexicans 08:33:20 -!- ChanServ has set channel mode: +o lament. 08:33:25 -!- lament has set channel mode: +b *!*@*.cable.dyn.cableonline.com.mx. 08:33:29 -!- lament has set channel mode: -o lament. 08:34:07 it's strange that one of his nicks was khazar 08:36:04 * augur shrugs 08:36:08 crazy people 08:37:05 also his platform is silly 08:37:23 "we're not white supremacists, just negro inferiorists" 08:37:33 well its true 08:37:37 if hes mexican, hes not white 08:37:43 well sure 08:37:48 but he still hates black people 08:37:53 but it seems like it would be hard to find support 08:38:00 since if someone hates blacks, he's probably racist 08:38:01 inside the US maybe :p 08:38:08 and so hates other races too 08:38:14 lots of people outside the US are overtly racist 08:38:16 oh yes, this is true 08:54:19 -!- amca has joined. 09:07:07 -!- tombom has joined. 09:24:44 -!- adam_d has joined. 09:41:37 -!- adu has joined. 09:51:33 -!- Leonidas has quit (Remote host closed the connection). 09:51:36 -!- Leonidas has joined. 09:57:13 -!- oerjan has joined. 10:21:47 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 10:25:20 -!- oerjan has quit (Quit: leaving). 11:11:39 -!- adu has quit (Quit: adu). 11:14:23 -!- amca has quit (Quit: Farewell). 11:30:02 -!- sebbu2 has joined. 11:32:38 -!- sebbu has quit (Ping timeout: 246 seconds). 11:35:24 does anyone know if it is possible on 32-bit x86, to atomically write or read a 64-bit integer from memory? 11:35:35 without mutexes or such I mean 11:36:14 you do have cmpxchg8b 11:36:29 and maybe lock prefixes work for 8-byte accesses 11:36:34 olsner, yes, but that doesn't help for plain read or write 11:36:37 afaik 11:36:53 olsner, what if you want to read without changing the value, but want to do so atomically 11:38:29 olsner, for the use case I consider, any sort of mutexes or such just have way too much overhead 11:39:16 and collisions are extremely likely. 11:42:25 olsner, the use case is async threaded funge. And specifically it's funge space. Assuming we have (part of it) implemented as a static non-sparse array, and the rest of it as a tree structure or hash table, then it should be possible I think to only require locking for the the non-static part 11:42:46 and since most programs operate around origo, this should help quite a bit 11:42:56 the issue is how to handle 64-bit funge on 32-bit systems 11:43:28 looks like you need cmpxchg8b - if you just use the same value for the comparison and the exchange, you'll get the current value read back into edx:eax ... not sure how to do writing easily though (except spinning until you get two consecutive exchanges in between another writer) 11:43:39 hm 11:43:45 *lock cmpxchg8b, that is 11:44:04 sounds somewhat messy but okay 11:44:22 I guess atomically writing or reading the native word size on both x86 and x86_64 should be trivial? 11:44:51 iirc, simple memory transfers in the native word size are always atomic 11:45:28 which could mean that 64-bit access in 32-bit mode *on 64-bit hardware* is also atomic 11:45:36 olsner, how backwards 11:45:48 but what about the actual MMU and system bus and so on 11:45:59 isn't there a possibility of that causing a mess there? 11:46:28 olsner, and can you do 32-bit atomic reads, writes and CAS on x86_64 in 64-bit mode? 11:46:53 that is, without causing it to operate on 32 extra bits you don't want to touch 11:47:13 it does get messy in the rest of the system, but there are synchronization protocols for that, like making sure that only one cpu "owns" memory for write access at any time 11:47:36 olsner, you mean cache coherency and such? 11:47:44 yes, exactly... it also gets extra messy with NUMA, if you want to do atomic stuff to another cpu:s memory 11:47:59 olsner, I don't own a numa system, so I can't test 11:48:10 oh btw, is L1 data cache coherrent? 11:48:37 iirc I read somewhere there are some restrictions on L1 instruction cache, but I have no idea about L1 data cache 11:48:54 iirc, recent AMD multi-core systems are all numa, they split up the memory between the cpu:s 11:50:19 olsner, I have a 64-bit sempron that is not SMP or multicore, plus a core2duo system 11:50:31 so only the latter allows me to test this 11:51:18 olsner, btw, do you happen to know any sort of concurrent-access hash table or balanced tree thingy? 11:51:26 RCU seems to have a high update overhead 11:51:56 testing doesn't prove the absence of bugs though... what you want to do is get to the bottom of which guarantees you actually have according to the x86 specs :) 11:52:11 multiple readers, and preferably "multiple writers-in-different-parts" should be supported 11:52:45 olsner, of course. But testing is required to see that I didn't mess up something 11:53:24 also implementing this won't happen straight away. Consider the current stage early investigation of what possibilities I have for it 11:53:43 -!- MigoMipo has joined. 11:54:57 olsner, also how does out of order execution affect this sort of things 11:55:08 hrrm 11:55:27 well that shouldn't be a problem unless it splits up a single read or write 11:56:50 and the LOCK prefix seems to force a memory barrier according to AMD docs at least 11:57:27 some care will be required, to say the least 11:58:25 olsner, of course 11:58:46 not sure if any of it will cause problems, but you best prove that it won't :P 11:59:27 olsner, also I suspect that 64-bit cells would be faster than 32-bit cells, due to less data being in each cache line -> less chance of two threads fighting over same cache line 12:00:25 for "normal" funge 64-bit cells are somewhat slower than 32-bit cells, on x86_64. Most likely for the same (or rather, opposite) reason 12:00:39 s/for the same/due to the same/ 12:06:04 olsner, it seems LOCK XCHG can be used for stores 12:06:49 I guess to optimise this, the funge *implementation* should self modify to only use it in case of multiple threads 12:06:58 XD 12:07:06 does xchg work for 64-bit words though? 12:08:02 hm good point *opens another pdf* 12:08:59 olsner, there is an 64-bit form 12:09:09 and there is nothing saying that LOCK prefix doesn't work for it 12:09:16 that is on x86-64 though 12:09:24 not sure about 64-bit on 32-bit 12:11:28 -!- MizardX has joined. 12:12:26 olsner, what I can't figure out is if lock xchg is required if you don't care about the data being visible right way 12:12:56 specifically, what if you do a normal write, then another cpu does a normal write to the same cache line, but not to the same specific address 12:13:21 will the first write get lost if it wasn't flushed to main memory yet 12:13:33 I suppose it shouldn't... 12:16:03 AnMaster: I just went and wrote a JSON parser in Forth, because I could not think of anything more sensible. I'm classifying this as your fault too. 12:16:08 I think it's set up so that it won't be cached in more than one place if anyone writes 12:17:10 -!- BeholdMyGlory has joined. 12:20:14 fizzie, ? 12:20:46 fizzie, now write a FORTH-to-JSON serialiser and deserialiser 12:20:57 alternatively, use xml instead of json 12:20:59 -!- MissPiggy has joined. 12:21:10 in both cases the result is something that should never have existed 12:21:34 olsner, hm 12:23:01 I wonder what mmap()ing /dev/mem does 12:23:10 I don't dare test that though 12:24:00 mmap:ing /dev/mem sounds like a sensible way to use it 12:24:11 har 12:24:16 address space is usually larger than the amount of physical memory anyway 12:24:18 olsner, it is a char device, not a block device 12:24:34 which makes me think it can't be used that way 12:24:53 AnMaster: Forth is a bit too low-level for "sensible" serialization to any structured format. There's cells, floating-point values and blocks of memory; that's about it. (And of course no run-time type information anywhere.) I could of course serialize some custom-defined structures into JSON, but... 12:25:16 fizzie, well, write a FORTH interpreter that reads the program fro ma JSON format then! 12:25:28 from a* 12:27:20 What I have now parses JSON into (type, data) pairs, where the types map mostly to JSON types (bool, int, float, string, array, object) and data is two cells (the value 0 or -1 for bool, a signed-integer cell for int, a float for a float, a pointer-length pair for a string, a pointer-length pair for an array and a pointer to unbalanced binary tree "string => json-value" map for an object). 12:28:02 fizzie, I didn't know Forth had pairs 12:28:06 AnMaster: the man page for mem links to mmap :) 12:28:20 olsner, mem(4)? 12:28:21 not here 12:28:35 AnMaster: It's not a native pair, of course; just a memory block the size of three cells. 12:28:40 SEE ALSO 12:28:41 chown(1), mknod(1), ioperm(2) 12:28:42 is all 12:28:53 hmm, probably got a different manpage that, it was mem(7D) 12:29:03 olsner, I don't have mem(7D) 12:29:11 I don't even have 7D at all 12:29:41 olsner, what weird OS is it? 12:29:49 SunOS at least has a 7D section. 12:29:51 (For devices.) 12:29:57 when googling, the only 7D I can find is indeed SunOS 12:30:01 I googled, so that wasn't even linux 12:30:04 ah 12:30:21 but it'd be screwed up not to be able to mmap it :) 12:30:39 olsner, you could use normal fseek and such on it 12:30:57 yeah, but how irksome 12:32:05 You can mmap /dev/mem, according to kernel sources: 12:32:07 * capabilities for /dev/mem, /dev/kmem and similar directly mappable character 12:32:07 * devices 12:32:07 * - permits shared-mmap for read, write and/or exec 12:32:07 * - does not permit private mmap in NOMMU mode (can't do COW) 12:32:07 * - no readahead or I/O queue unplugging required 12:32:40 mhm 12:32:56 fizzie, what file is that from? 12:33:05 fs/char_dev.c 12:33:11 also mmaping a char device seems just backwards to me 12:33:27 and well, I have no clue what the heck readahead would *mean* on /dev/mem 12:34:26 fizzie, also, iirc /dev/mem is restricted these days to only allow BIOS and PCI space or such (needed for X) 12:34:36 well, it's a kernel option 12:34:45 pretty sure I have it turned on 12:34:51 Yes, I seem to remember reading a description like that. 12:35:04 and I don't even have a /dev/kmem 12:35:08 for some unknown reason 12:35:32 further, I wonder what grepping /dev/mem would do 12:35:39 I don't want to actually try that either 12:36:09 man mem says "Examining and patching is likely to lead to unexpected results when read-only or write-only bits are present." 12:36:34 which I guess refers to the page flags 12:37:18 "CONFIG_STRICT_DEVMEM: -- If this option is switched on, the /dev/mem file only allows userspace access to PCI space and the BIOS code and data regions. This is sufficient for dosemu and X and all common users of /dev/mem. If in doubt, say Y." 12:38:48 fizzie, and I presume /dev/kmem can be turned off elsewhere? 12:40:06 Possibly. Or it might be that it's just not generated by default nowadays and you have to manually make the device node if you want it. I'm not sure I want to start source-diving for it. 12:40:47 fizzie, my laptop which is on an older kernel has /dev/kmem 12:40:54 but then it is also on a distro generic kernel 12:40:58 unlike my desktop 12:41:57 I don't seem to have /dev/kmem either on this desktop. 12:43:06 fizzie, strange, om my laptop I also have /dev/oldmem 12:43:17 $ ls -l /dev/*mem 12:43:17 crw-r----- 1 root kmem 1, 2 2009-07-25 23:32 /dev/kmem 12:43:17 crw-r----- 1 root kmem 1, 1 2010-03-05 11:17 /dev/mem 12:43:18 crw-rw---- 1 root root 1, 12 2010-03-05 11:17 /dev/oldmem 12:43:30 whatever that is 12:44:38 grepping sources on there turns up just one hit 12:44:41 ./include/linux/crash_dump.h:extern ssize_t copy_oldmem_page(unsigned long, char *, size_t, 12:44:45 and that doesn't seem relevant 12:44:54 oh wait that is just headers 12:44:55 not sources 12:45:40 hm 12:45:42 #ifdef CONFIG_CRASH_DUMP 12:45:42 [12] = { "oldmem", 0, &oldmem_fops, NULL }, 12:45:42 #endif 12:45:49 from drivers/char/mem.c 12:47:09 There seems to be a CONFIG_DEVKMEM flag, I just didn't notice it in the configura-a-tron. 12:47:26 fizzie, "configura-a-tron"? 12:47:36 make menuconfig, or such. 12:47:41 fizzie, I meant the spelling 12:47:43 not the meaning 12:47:53 -!- oklokok has quit (Remote host closed the connection). 12:47:53 "Say Y here if you want to support the /dev/kmem device. The /dev/kmem device is rarely used, but can be used for certain kind of kernel debugging operations. When in doubt, say "N"." 12:48:08 It's just random irregular spellamatics. 12:48:16 -!- oklokok has joined. 12:48:31 fizzie, I meant the a at the end of the first word should be an e 12:50:38 Not if it's from the word "configurator". 12:50:50 "Welcome to the prerelease of Adobe® Configurator. Configurator is an open source utility that enables the easy creation of panels (palettes) for use in ..." 12:50:53 See, a real word. 12:51:31 heh 12:53:20 I can't find any other JSON libraries for Forth by googling (at least on the first three pages of results). I may have found an untapped market here. 12:55:12 -!- tombom has quit (Ping timeout: 258 seconds). 12:55:53 fizzie, so publish the thing XD 12:56:19 fizzie, now you need to write an XML DOM thingy with xpath support for Forth too! 12:56:35 -!- tombom has joined. 12:59:07 -!- kar8nga has joined. 13:02:33 fizzie, is there any way to list kexec loaded kernels btw? 13:05:44 [85909.348091] sdhci-pci 0000:15:00.2: Will use DMA mode even though HW doesn't fully claim to support it. 13:05:48 how reassuring! 13:05:52 fizzie, ^ 13:07:52 I have about three zillion lines of 13:07:54 ehci_hcd 0000:00:12.2: force halt; handhake ffffc90000072024 0000c000 00000000 -> -110 13:07:57 in my dmesg buffer. 13:08:08 I'm not sure I want to know what "handhake" is. 13:08:13 fizzie, something strange with usb 2.0 it sounds like 13:12:55 fizzie, look for what usb device might cause it 13:13:04 lsusb and look for "0000:00:12.2" perhaps 13:13:23 well, it would be split up there 13:13:33 It's no longer connected; based on timestamps I think that was around when I used that USB sound stick thing. 13:13:48 sound stick? 13:14:07 It sounds stupid to call it a "sound card" when it doesn't resemble a card at all. 13:14:27 aah 13:14:33 did it work well? 13:14:53 Yes, no problems there. 13:15:46 hm 13:15:55 http://www.terratec.net/en/products/Aureon_Dual_USB_9842.html -- got that in order to get optical s/pdif out of the iBook back when I was using it as a TV box. 13:17:40 ah 13:18:23 fizzie, what exactly is wrong with normal copper for audio? 13:19:03 wow, they explicitly support linux 13:19:05 that's unusual 13:20:58 -!- ais523 has joined. 13:21:36 Well, nothing wrong with coaxial s/pdif either, but the iBook only has one 3.5mm headphone plug, no other audio outputs at all. 13:22:09 nothing wrong with 3.5mm headphone plugs 13:22:29 And for some reason or another, the output from that was pretty noisy when connected to the amplifier; whereas with digital output there's of course no noise to speak of. 13:23:42 fizzie, why s/pdif? 13:23:54 ah 13:23:56 well 13:24:07 a good 3.5mm plug should be just as good 13:24:13 of course, a noisy one is rather strange 13:25:33 -!- uorygl has quit (Read error: Connection reset by peer). 13:25:48 -!- uorygl has joined. 13:25:58 I don't know about that; at least with digital connections you get the d/a conversion done at the amplifier, which is a bit more audibly oriented device than a regular PC box. (I'm sure that the outputs from a real sound card would be a different thing.) 13:28:01 Also, I could get multichannel sound out from the iBook through that thing. It's just that with only two speakers connected to the amplifier, the benefits of that are a bit theoretical. 13:39:30 fizzie, does the amplifier beat a sb live? 13:40:26 I have no idea about that, but at least it's bound to be reasonably good, as opposed to the sort of random motherboard-integrated stuff I otherwise have. 13:40:39 I did say that a real sound card might have also helped. 13:40:45 well yes 13:40:55 I was just trying to compare it to my "real soundcard" 13:41:57 I am not aware of any benchmarks, really. 13:42:17 It's a harman/kardon AVR-147; the manufacturer is reasonably well-known. 13:43:03 "A 24-Bit/twin-core Cirrus Logic CS 49510 DSP processor with 32-bit post processor and 192kHz/24-bit D/A conversion", say the marketing hype, but of course you never know. 13:43:42 And given that it's generally just 16-bit 48/44.1 kHz digital stuff that gets sent over the s/pdif link, I'm not sure how much that matters. 13:45:23 heh 13:47:20 I'm not even sure if the S/PDIF link supports all that. The standard sample resolution for s/pdif seems to be 20 bits, and 24-bit samples are a bit of a hack. 13:50:24 heh 13:50:30 only 24 bits? ;P 13:51:23 it should be represented as an accurate physics model of the source using numbers from R or something! 13:52:05 The owner's manual is silent about whether it supports the s/pdif 24-bit thing, but at least the straight 2-channel PCM digital input "only" goes up to 96 kHz sample rates. 13:53:55 It does support decoding the 5.1 surround DTS 96/24 format, which technically speaking is 24 bits and 96 kHz, but that involves some compression, I think. 13:55:20 I am a bit doubtful whether the alsa drivers would know how to stick 96 kHz 24-bit samples out of the pipe anyway, even if it supported that. 13:56:21 fun... http://en.wikipedia.org/wiki/Thread_join redirects to thread, and that doesn't explain what thread join is... 13:58:55 Quick history-browsing seems to suggest that it didn't explain joins back when the redirect was made, either. 13:59:04 indeed 14:20:44 bored 14:21:15 cheater, watch videos about technological singularity: http://www.youtube.com/user/singist 14:22:46 "This would be cleaner in C++ with templates." <-- shudder, this is from a README of a library in C 14:22:57 also I can't imagine how it would be cleaner: 14:23:06 "The cleanest way to use these routines is probably to define the stack node type with an initial AO_t link field, so that the conversion between the link-field pointer and the stack element pointer is just a compile-time cast. But other possibilities exist. (This would be cleaner in C++ with templates.)" 14:23:13 is the full paragraph 14:23:37 oh and this is from libatomic_ops, which is bundled with libgc 14:25:38 lockless two-thread concurrent stack seems fun 14:29:22 -!- oklokok has quit (Ping timeout: 265 seconds). 14:32:47 -!- ais523 has changed nick to ais523|away. 14:33:18 -!- ais523|away has changed nick to ais523. 14:33:22 -!- FireFly has joined. 14:34:02 -!- alise has joined. 14:35:04 -!- augur has quit (Quit: Leaving...). 14:35:39 so I'm trying to define induction on the naturals set-ly 14:35:42 I think it's 14:35:59 define? as an axiom? 14:36:08 well, just formulate 14:36:10 you could look up set theory if you want the answers 14:36:17 i know that 14:36:27 i didn't mean like that 14:36:30 do you take back what you said yesterday 14:36:37 what exactly 14:36:48 when I said enjoy your russles paradox then you called me an idiot 14:37:06 (other than not being able to spell russell) 14:37:08 i mean obviously we state it as intersect(P(0), (forall n. intersect(P(n), P(S(n)))) subset-of (forall n. P(n)) 14:37:13 MissPiggy: no 14:37:26 well, I take back that you're an idiot personally 14:37:29 but your statement was idiotic 14:37:41 you can perfectly well have set builder notation without russell popping in 14:37:50 it's just sugar... 14:38:05 you can't have self application of functions though 14:38:14 (functions defined in the usual way) 14:38:19 well forall n. blah is isomorphic to function from n to blah and I have that so 14:38:36 MissPiggy: yeah i'm gonna have to work out a nice way to combine all this 14:39:29 you can model lambda calculus in set thoery, that's scott domains and such 14:39:49 also, self application as in f(f)? or as in recursion 14:40:38 f(f) 14:41:47 I've no qualm with that. 14:41:58 I don't see f(f) as intuitively well-founded. 14:43:01 yeah because if f : A -> B, then you're saying that A -> B = A but that's a source of problems 14:43:20 Exactly. 14:43:27 Even id(id) is not neccessarily well-founded. 14:43:33 that's what I was TRYING to say the other day :P 14:43:53 So? 14:44:01 It's not Russell's paradox because you don't allow it :P 14:44:04 okay 14:44:13 And I really don't mind id(id) not being possible to be honest 14:44:30 I need to do some study today but I'm really fucking lazy 14:44:58 -!- ais523 has changed nick to ais523|away. 14:45:01 One issue I have is that I don't think !(p&!q) = the regular set of pair sfunction structure 14:45:21 !(p&!q) is classically used for p -> q? 14:45:23 it's ~(p intersect ~q) 14:45:27 MissPiggy: yeah 14:45:44 * MissPiggy never really got why people would do that .. but can't complain because it does work 14:45:48 i just think it's a nice identity :P 14:46:06 i mean it's not like you get many constructivist set theorists so 14:48:00 wait P->Q is actually P superset Q 14:48:01 not subset 14:48:27 I reasoned subset because a->b = x elem a -> x elem b = b superset-of a = a subset-of b 14:49:18 -!- ais523|away has changed nick to ais523. 14:49:55 no longer scarfaic? 14:50:06 -!- hodyna has joined. 14:50:33 yeah P->Q means P <= Q 14:51:46 because false implies everything (ex falso quodlibet) is just saying that bottom is <= anything 14:53:00 yeah 14:53:13 apparently some people write P->Q as P =) Q though 14:53:16 which is weird 14:54:01 set thoery is weird :P 14:55:28 -!- ais523 has changed nick to ais523|away. 14:55:48 -!- ais523|away has changed nick to ais523. 14:57:15 -!- alise_ has joined. 14:57:22 anyway so 14:57:36 -!- alise has quit (Ping timeout: 252 seconds). 14:58:08 I think {E : x <- S, y <- S, ...} is the purest form of set building 14:58:35 but {E : P x, Q x y, ...} is easier to make useful 14:58:41 the latter sucks though because it depends on logic 14:58:44 I think of it as syntactic sugar for the axioms 14:58:46 whereas logic should be defined with sets 15:00:55 also I don't think you can define the naturals with just set building which upsets me 15:01:10 N = {0} union {{n} union n : n <- N} 15:01:17 you don't want me to give it away? 15:01:37 Money? Please do. 15:02:03 I'm rather strange... I know type theory but I don't even know the regular definitions used when implementing mathematics in set theory. 15:02:24 Martin-Lob roolz, ZFC droolz. 15:06:53 S = { (n, {n} union n) | n <- N } 15:06:57 -!- ais523 has changed nick to ais523|away. 15:07:01 S = { {n, {n, {n} union n}} | n <- N } 15:09:08 -!- ais523|away has changed nick to ais523. 15:09:54 I was thinking of having a nice axiom but I've forgotten where it is 15:11:18 i think induction is the coolest thing ever. srsly 15:14:45 yeah 15:15:09 if you have a type 15:15:20 months := January | Feb.... 15:15:24 then induction = case analysis 15:15:40 if you have N := O | S N, induction is the normal idea, with links to recursion 15:15:47 -!- ais523 has changed nick to ais523|away. 15:15:52 but then you get things like O := Z | S O | Lim (N -> O) 15:15:57 it is ubiquitous 15:15:57 where you have transfinite induction 15:16:07 and beyond that you get inductive-recursive definitions 15:16:17 where you simultaneuously define a type and an elimiation on it 15:16:20 even just induction on the naturals though, is so cool 15:16:42 it's like we have a base, and a way to ascend... and then suddenly we ascend to infinity 15:16:51 yes, it's a totally trivial concept 15:16:53 but it's AWESOME 15:17:04 trivial?? 15:17:55 well as in 15:18:08 -!- ais523|away has changed nick to ais523. 15:18:11 it's not like supergroupsetgraphtheory's metacalculus 15:18:30 but it's so general and powerful and simple 15:18:35 -!- ais523 has quit (Remote host closed the connection). 15:21:25 22:16:57 if you are interested in such a job in irc marketing 15:21:26 Surreal. 15:22:38 haha magic negros what 15:22:44 ?? 15:23:39 my biggest problem right now is getting some notes written 15:27:00 grep http://tunes.org/~nef/logs/esoteric/10.03.06 for Khazar and read on 15:27:32 hmm i wish logic was a more common foundation for mathematics than set theory, would be... logical? 15:28:15 logic as a foundation? 15:29:52 sure. hasn't this been done, i heard something about "plural quantification" that basically let logic talk about what set theory talks about 15:31:01 * alise_ ponders: Basing forall on exists or vice versa? 15:31:50 you can implement exists in dependent type theory 15:32:03 -!- oklokok has joined. 15:32:21 -!- alise__ has joined. 15:32:48 forall x. P == ~(exists x. ~P) 15:32:57 exists x. P == ~(forall x. ~P) 15:33:00 erm 15:33:02 forall x. P == ~(exists x. ~P) 15:33:05 exists x. P == ~(forall x. ~P) 15:33:09 forall x. P == ~(exists x. ~P) 15:33:11 dsfsdf 15:33:13 sdfsdf 15:33:16 forall x. P == ~(exists x. ~P) 15:33:20 exists x. P == ~(forall x. ~P) 15:33:39 "For all x, P is true." "There does not exist an x such that P is false." 15:34:05 "There exists an X such that P." "Not for all X, P is false." 15:34:17 that's classical alise 15:34:21 So defining forall in terms of exist is intuitively superior because "Not for all ..." reads horribly. 15:34:23 MissPiggy: Yes, it is. 15:34:31 I'm taking a break from constructivism just to explore. 15:34:55 disgusting. 15:35:07 Like Haskell! 15:35:14 MissPiggy: I presume you're not being entirely serious 15:35:20 http://i.imgur.com/vv9OO.png 15:35:22 -!- alise_ has quit (Ping timeout: 252 seconds). 15:35:25 haskell is grrrrrrreat 15:36:09 I don't like haskell because I'm too stupid to program in it 15:36:55 I write 1/4 of a progarm then get worried about its correctness and give up 15:37:33 http://en.wikipedia.org/wiki/Plural_quantification 15:40:24 -!- oerjan has joined. 15:41:58 -!- alise__ has quit (Ping timeout: 252 seconds). 15:42:53 -!- tombom_ has joined. 15:44:01 -!- tombom has quit (Ping timeout: 276 seconds). 15:44:02 -!- alise has joined. 15:47:44 eq = {(x,x) | true} is not ok in zfc :( 15:53:02 I wonder if I should represent it as eq = { (S, {(x,x) | x <- S}) | S <- * } 15:53:10 Then eq(N) is { (0,0), (1,1), ... } 15:54:58 r2f = { (R, {(x,{(y, xRy) | y <- S}) | x <- S}) | R <- BiRel } 15:55:21 if we take eq to actually mean eq(S) then r2f(eq)(2)(2) = true, r2f(eq)(2)(4) = false 15:55:29 asuming xRy stands for (x,y) in R, which ... it does 15:56:02 of course if we allowed more sugar on top of (x,y) = {{x},{x,y}} we could just say r2f = \(R:BinRel). \(x:S). \(y:S). xRy 15:56:26 -!- ais523 has joined. 15:58:03 hi ais523 15:58:13 hi 15:59:40 ais523: does "eq = { (x,x) | x <- someset }" make you balk? 15:59:50 reminds me of Proud 15:59:51 (the correct answer is no) 15:59:56 whereby = i mean := that is 16:00:00 ais523: but does it make you balk? 16:00:10 no 16:00:22 good 16:00:24 (ZFC doesn't allow it) 16:00:27 although that sort of thing probably works better in uncomputable langs 16:00:46 it's not uncomputable at all 16:00:53 it isn't even infinite if someset isn't infinite 16:01:01 I know 16:01:02 take someset := {1,2,3} 16:01:11 then we get eq = {(1,1), (2,2), (3,3)} 16:01:14 oh, I thought someset included all sets, somehow 16:01:25 yeah that's inconsistent :) 16:01:36 alise: um of course zfc allows { (x,x) | x <- someset } 16:01:46 well yes 16:01:50 but not the combined set for all sets 16:02:02 hmm i wonder if it allows it if you exclude eq from the results 16:02:50 huh? 16:02:52 (x,y) := {{x},{x,y}} 16:02:53 \(x:t).y := { (x,y) | x <- t } 16:02:58 eq := \(S:Set_0). { (x,x) | x <- S} 16:03:01 oerjan: as in 16:03:17 eq := { (x,x) | x <- everything } (except there's no universal set, but) 16:03:32 imagine say forall sets s { (x,x) | x <- s }, except you exclude (eq,eq) from it 16:04:31 no. you cannot have {(x,x) | x is an ordinal} 16:04:40 exactly 16:04:43 but 16:04:55 there is no set of all ordinals 16:05:24 but excluding (eq,eq) won't be enough to exclude those 16:05:30 -!- alise_ has joined. 16:05:37 what did i miss since my last utterance? 16:05:40 but excluding (eq,eq) won't be enough to exclude those 16:05:54 but excluding (eq,eq) won't be enough to exclude those 16:05:56 just one line 16:05:59 yes but 16:06:01 we quantify over sets 16:06:03 and there is no set of all ordinals 16:06:07 so that problem doesn't exist 16:06:35 eq = union-of-forall (x:Set0). { (y,y) | x <- y } 16:06:48 alise: the problem is your eq contains enough members that if it were a set, you could use it to _construct_ the set of all ordinals! 16:07:46 ais523: does "eq = { (x,x) | x <- someset }" make you balk? <-- what do you mean with "<-" here? "element from set"? 16:07:58 AnMaster: it's syntax from a hypothetical lang, I think 16:08:02 well sure 16:08:03 oerjan: ah 16:08:17 oerjan: paramaterising over the set has no problems though, does it? 16:08:18 but I still wonder what it means in this context 16:08:31 obviously if S1 /= S2, then x in S1 /= y in S2 16:08:38 alise_: well no, the diagonal of a set is of course a set 16:08:40 alise_, ^ 16:08:47 so: 16:08:51 eq := \(S:Set_n). { (x,x) | x <- S} 16:08:58 Set_n meaning "work out the damn levels yourself" here ;-) 16:09:08 then eq on two different sets is 16:09:16 given x in S1 and y in S2 16:09:28 -!- alise has quit (Ping timeout: 252 seconds). 16:09:32 (S1 eq S2) & (x eq(S1) y) 16:09:36 *shrug* I guess you aren't going to answer it 16:09:41 AnMaster: huh what 16:09:49 well if you account for subsets then 16:09:50 alise_, " ais523: does "eq = { (x,x) | x <- someset }" make you balk? <-- what do you mean with "<-" here? "element from set"?" 16:09:54 alise_, that 16:09:55 (S1 subset-of S2) & (x eq(S2) y) 16:10:04 AnMaster: set builder notation, look it up 16:10:09 alise_, also (x,x) means what here? tuple construction? 16:10:19 (x,y) is {{x},{x,y}}. 16:10:35 alise_, I have not seen <- in set builder notation 16:10:41 wait then (x,x) is not okay 16:10:44 AnMaster: well it means in 16:10:45 so there :P 16:10:50 (x,x) = {{x},{x,x}} 16:10:55 alise_, why not the e-ish shape for that? 16:11:11 and {x,x} is, well, {x} 16:11:11 or more specifically i'm too lazy 16:11:11 AnMaster: windows loathes unicode input 16:11:21 well, I guess (x,x) = {{x},{x}} is fine actually 16:11:27 except wait 16:11:32 not really 16:11:38 since you can't use the usual definition of second element 16:11:48 AnMaster: it looks like a strange hybrid between set building (with element) and list/monad comprehensions from haskell. of course for the Set monad, <- means the same as element of in set building. 16:12:03 alise_, yeah I had only seen the ∈ notation for it 16:12:07 thus the confusion 16:12:27 oerjan: yeah i'm just using more convenient syntax to type out 16:12:30 <- reminded me of list comprehensions though 16:12:44 hey i can define Ethingy as a relation itself :) 16:12:52 wait, no 16:12:58 oerjan, yeah erlang has <- in list/binary comprehensions too 16:13:05 that results in "x in y" meaning "(x,y) in 'in'" 16:13:18 alise_, yearghs 16:14:03 alise_, I think you need to have some operators that you can not define in terms of other ones 16:14:10 you don't say 16:14:10 that is, they are not syntax sugar 16:14:23 they're called axioms 16:14:25 alise_, captain obvious at your service! 16:14:41 of course i'd have the definition of the 'in' relation be axiomatic but even that doesn't work :) 16:15:51 alise_, what about defining x in S by using {x} ⊆ S ? 16:16:01 not sure if that is completely valid 16:16:06 then i don't need to define the in relation :P 16:16:07 also, it is 16:16:13 well no 16:16:19 because you used strict subset 16:16:21 instead of subset 16:16:22 bad boy 16:16:23 alise_, no I didn't? 16:16:32 alise_, there is a line below it here 16:16:33 or do i have that the other way around 16:16:39 i'm so used just to using ascii notation 16:18:49 oerjan: wait oh dear 16:19:00 eq := \(S:Set_n). { (x,x) | x <- S } 16:19:02 is too large too 16:19:04 because it desugars to 16:19:19 -!- augur has joined. 16:19:27 eq := { (S, { (x,x) | x <- S }) | S <- Set_n } 16:19:30 oerjan: right? 16:19:59 *facepalm* 16:20:21 oerjan: i feel small :P 16:20:51 it's a _subset_ of Set, but not an element, afaict 16:21:23 your contradiction only appears if you think all subsets of Set should be elements 16:21:47 i'm so used just to using ascii notation <-- I don't know what the ascii notation is for that 16:22:09 the math notation is a lot easier to read due to being the way I'm used to seeing it 16:22:13 oerjan: well I have the regular hierarchy Set_1 = {Set_0} 16:22:13 Set_2 = {Set_1} 16:22:14 and so on 16:22:26 Set_0 = everything not in the Set_n hierarchy 16:22:33 by Set_n in eq, just imagine another wrapper function with n 16:22:49 alise_: um shouldn't that be Set_1 = {x | x subset Set_0} ? 16:23:02 etc. 16:23:28 well Set_0 elem Set_1 16:23:30 whereby elem i mean is in 16:23:38 eq = { (n, { (S, { (x,x) | x <- S }) | S <- Set(n) }) | n <- Nat (or some other type for the levels) } 16:23:50 still too big 16:23:53 naturally, but Set_1 would contain many other elements 16:23:53 all our eggs in one set 16:24:02 oerjan: such as? 16:24:29 alise_, what do you mean "too big"? 16:24:34 such as _every_ subclass of Set 16:24:40 alise_, and what language is this in? 16:24:55 AnMaster: too big meaning we can derive the set of all ordinals from it 16:25:06 basically i'm trying to define equality as a relation without causing everything to break 16:25:07 ah 16:25:08 and set theory 16:25:15 alise_: take a look at Von Neumann-Bernays-Godel theory 16:25:19 oerjan: where Set is? Set_0? 16:25:44 alise_, why exactly is that bad? Allows some messy paradox? 16:25:52 anyway, it seems to me that since all my notions are defined in terms of sets, "eq", no matter how paramaterised, is still a fucking gigantic set 16:25:56 although... wait 16:26:27 eq has the cardinality of the natural numbers, eq(n) has the cardinality of Set(n), eq(n)(S) has the cardinality of S 16:26:41 so maybe if we avoid letting people combine all these into one, it's safe? oerjan? 16:29:00 alise_: in NBG theory, eq is a perfectly legal _class_. it is not a set. 16:29:08 alise_, btw you might like this comment from a library that is embedded inside libgc: "This would be cleaner in C++ with templates." 16:29:21 oerjan: yeah 16:29:34 but that sort of defeats the entire point of building everything on sets 16:29:34 NBG only has two levels, but i guess that's easy to generalize 16:29:34 (something I disagree with) 16:29:38 AnMaster: saw, in the logs. 16:29:42 and it's probably right 16:29:51 alise_, right 16:29:52 C is almost unusable due to its lack of parameterised types 16:30:07 oerjan: then isn't class just = Set_1? 16:30:18 which is the set of the set of sets 16:30:18 alise_, well, here all it neded was a pointer to a special field. *shrug* 16:30:29 well i guess "the set of" doesn't make much sense since we're not talking types hrtr 16:30:30 *here 16:30:34 alise_: well possibly 16:30:41 but i mean this is the same way you disallow russell's paradox isn't it? 16:30:51 not allowing sets to contain members "higher" than themselves? 16:30:53 well the traditional way 16:31:38 alise_: as long as you distinguish eq(n) as different levels, i think you should be fine 16:31:57 basically all of this is leading to creating a fun lil' set theoretic esolang (Hyper Set Language is, well, not crappy but zzo38 in that it's... completely and utterly inconsistent in every way) 16:32:04 (in the formal sense of inconsistent) 16:32:15 you wouldn't need an extra S parameter though - just use Set(n) ? 16:32:19 of course i will run into problems in that set theory isn't really constructivist, for instance you won't be able to do the reals 16:32:34 oerjan: hmm really? so eq(n) is the equivalences of every set of level n? 16:32:53 so e.g. eq(0) is all we ever care about really 16:33:01 since it's rare that we'll ever want to compare the Set_1, Set_2 and so on bonanza 16:33:08 alise_, isn't equality a relation on sets already? Isn't it in some areas _defined_ as being the reflexive, symetric, antisymetric, and transitive? 16:33:26 s/\?/ relation?/ 16:33:37 no equality isn't a real relation in zfc because it's too big 16:34:02 alise_, well, I don't remember if it was zfc even I was thinking about 16:34:07 or a more naive set theory 16:34:26 alise_: that's my intuition of it 16:34:36 oerjan: nice 16:34:57 of course, slight issue in that to paramaterise on level we need a function Set 16:35:05 Set : (n:Nat) -> Set (n+1) 16:35:14 there is a bit of a circularity here... 16:35:27 alise_, wait, is eq "equals" or "equivalence"? 16:35:30 thankfully though the result type doesn't matter in set theory 16:35:32 if the latter, then ignore what I said 16:35:34 because values aren't tied to sets 16:35:39 AnMaster: equality 16:35:49 oerjan: complicates the axioms, though 16:36:19 hmm Set(n) is "the value of x in the tuple (n,x) that is in Set" 16:36:31 so we have Set := { (0,Set_0), (1,Set_1), ... } 16:36:39 quiz: what set level can we put Set into? 16:36:49 it contains Set_0, it contains Set_1, ... 16:36:54 so, great 16:36:57 Set_omega contains Set :-) 16:37:06 alise_: if you take that too far i think you're going to get an inconsistency eventually 16:37:15 just a hunch though 16:37:41 a very vague one :D 16:37:43 oerjan: yeah isn't this what principa mathematica set up only to be whooped by godel? 16:37:49 alise_, all this strange ASCII notation for perfectly fine symbols confuse me :( 16:38:01 AnMaster: oh shut up 16:38:55 alise_: hm, i don't really know the PM type system, or how far _up_ it goes 16:39:29 up, up and away! 16:39:57 otoh "large cardinals" in my intuition is much about how to simulate this kind of stuff inside zfc 16:40:32 mm 16:41:45 large cardinals are hilarious 16:41:55 dunno why i just love the huge list of them on wikipedia 16:42:27 what exactly is the point of "const volatile"? No it isn't a pointer. 16:43:00 as in, strongly inaccessible cardinals allow you to put models of ZFC inside each other, http://en.wikipedia.org/wiki/Grothendieck_universe 16:43:02 oh wait, nvm, figured it out 16:43:41 imho zfc is pretty shitty 16:45:40 dunno why i just love the huge list of them on wikipedia <-- link? 16:45:43 i am totally underqualified to hold that position though 16:46:26 -!- benuphoenix has joined. 16:46:35 alise_, since: Large cardinal (Redirected from List of large cardinals) 16:46:41 and that contains no such list 16:46:46 I guess it is elsewhere? 16:47:07 see top of article redirected to 16:47:08 http://en.wikipedia.org/wiki/List_of_large_cardinal_properties 16:47:13 ah 16:47:14 -!- benuphoenix has left (?). 16:50:49 I should formulate my own set theory so that it can be laughed at how horrible it is 16:51:07 Good morrow. 16:51:55 pikhq, intentional typo? 16:51:57 !(exists x. x in {}) seems like a reasonable start 16:52:02 no 16:52:06 intentional untypo 16:52:27 which is 16:52:49 -!- tombom__ has joined. 16:53:01 !(exists x. {x} subset-of {}) 16:53:18 then 16:53:23 forall x. x superset-of {} 16:55:30 AnMaster: actually i think in is more fundamental than subset 16:55:42 -!- tombom_ has quit (Ping timeout: 268 seconds). 16:55:54 x subset-of y := forall z, z in y -> z in x 16:56:21 although that requires implication be something other than subset 16:56:25 otherwise we have a circularity 17:00:21 intentional untypo? 17:00:24 err 17:00:27 <-- ? 17:00:28 I meant 17:00:38 AnMaster: actually i think in is more fundamental than subset <-- what is? equals? 17:00:39 well could be 17:01:09 x subset-of y := forall z, z in y -> z in x <-- ... notation please... 17:01:21 I can't read it 17:01:22 :P 17:01:40 yes, you ca 17:01:42 *can 17:04:05 no 17:04:18 -!- alise has joined. 17:04:23 as i said before i was cut off 17:04:31 and being obstructive in your communication will just result in me... not communicating 17:05:30 -!- tombom__ has quit (Ping timeout: 248 seconds). 17:06:00 -!- tombom__ has joined. 17:06:13 alise, was it ∀z(z ∈ y → z ∈ x) 17:06:14 ? 17:06:28 yes. as you well knew 17:06:40 and it turns out, you know english! 17:06:44 alise, but since you defined <- to be "in", shouldn't -> be "in" the other way? 17:07:12 -!- alise__ has joined. 17:07:23 so, at this point is where i just stop bothering to talk as you do not understand ad hoc notation 17:07:31 alise_, there is xemacs for windows. There is M-x set-input-mode TeX 17:07:34 it does wonders 17:07:49 alise__, I find ad hoc notation confusing and hard to read 17:07:53 *shrug* 17:08:02 bbl 17:08:08 -!- alise_ has quit (Ping timeout: 252 seconds). 17:08:26 as does your mother 17:08:58 alise__, that one doesn't even make sense 17:09:48 I mean, "your mother 'finds ad hoc notation confusing and hard to read'" is not even an insult is it? 17:10:21 that's what she said! 17:10:28 oerjan, :P 17:11:04 -!- alise has quit (Ping timeout: 252 seconds). 17:11:48 considering how bad autoconf code is, I wonder what autoconf itself is like 17:11:52 ais523, any idea? 17:12:06 AnMaster: likewise bad 17:12:18 ais523, shouldn't it be even worse logically? 17:12:27 the code generated by autoconf is much better than the code of autoconf itself 17:12:28 considering it can generate such messy configure output 17:12:34 ais523, whoa 17:13:05 I put 17:13:22 ? 17:13:28 he put 17:13:29 *I put quite a lot of effort into learning how autoconf itself works, to use it properly; it seems GNU didn't 17:13:40 sorry, touchpad error deleted most of my message after I'd already written it 17:13:58 ais523, no undo in your client? 17:14:19 AnMaster: doesn't help after you've already pressed return 17:14:22 race condition 17:14:28 I deleted it /as/ I was pressing return 17:14:46 ah 17:17:53 -!- hodyna has left (?). 17:18:02 -!- alise__ has quit (Ping timeout: 252 seconds). 17:20:28 btw that new "swap as compressed pages in ram" thingy seems really interesting 17:20:44 and quite a lot faster than normal swap with a lot of the benefit 17:21:00 experimental staging driver in 2.6.33 it seems 17:27:41 -!- hiato has joined. 17:40:05 -!- MigoMipo has quit (Remote host closed the connection). 17:47:51 -!- alise has joined. 17:50:55 -!- Wareya has quit (Ping timeout: 265 seconds). 17:52:07 -!- jcp has joined. 17:55:34 -!- MigoMipo has joined. 17:58:16 i love this little machine 17:59:07 -!- Quadrescence has quit (Ping timeout: 265 seconds). 18:00:48 alise, dpi? 18:02:49 the screen is not great. it's very TN (colour distortion is pretty much unavoidable). but 1366x768 @ 13" = 120 ppi 18:03:09 13.6" = 115 ppi, so whatever the exact size it's a good ppi 18:03:44 alise, aren't most monitors TN? 18:03:59 yes. but it's very TN i.e. not a very high quality TN 18:04:04 ah 18:04:15 i.e. if you look at it even slightly off the proper place you get dark to light gradient over the whole thing 18:04:28 and if you look at it a bit too much from above than you should it's all white-washed 18:04:31 alise, I think my desktop is TN but rather high quality TN, while my thinkpad is lower quality TN 18:04:42 but from a good angle - and those are the most common angles to look at a laptop from - it's fine 18:04:44 though, the colour doesn't change that quickly for the laptop 18:04:54 this thing is almost certainly worse than a thinkpad display 18:05:04 but consider, thinkpad costs like a thousand and a bit pounds 18:05:13 this costs something like £475 18:05:22 -!- Asztal has joined. 18:05:35 spoiler: it's not very fast, though; single core 1.2ghz and no virtualisation in sight. well at least i think it's single core 18:05:35 alise, I can see line in supposedly "smooth" gradients on my thinkpad (such as in gimp colour picker). Not so on my desktop 18:05:48 beats an Atom any day 18:05:48 I'm not sure if that is due to the monitor or the intel graphics 18:06:39 alise, also thinkpads are great but the greatness was not spent on the speakers at all, and only a little bit of it on the display 18:07:08 -!- oerjan has quit (Quit: Good night). 18:07:30 alise, iirc thinkpad uses some magnesium cage thingy internally though. And the keyboard has drainage holes (you can see them when looking at the laptop from below 18:07:31 ) 18:07:54 (beats me why they end up right below it, shouldn't that mean it could flow to the battery and fry things badly? 18:07:55 ) 18:10:06 -!- alise has quit (Ping timeout: 252 seconds). 18:10:10 -!- kar8nga has quit (Remote host closed the connection). 18:13:38 -!- alise has joined. 18:13:54 alise, see log 18:14:14 also that connection must be annoying 18:14:17 still in a taxi? 18:14:22 seen the logs 18:14:23 also, no 18:14:30 turns out taxis stop sometimes :( 18:14:35 alise, how boring 18:15:03 it's just that this place has no interwebs 18:15:17 also, there goes my plans for a taxi based perpetum mobile :( 18:17:37 -!- Quadrescence has joined. 18:19:22 alise, this is somewhat amusing to read: http://llvm.org/docs/ReleaseNotes.html#whatsnew 18:19:33 (yeah I know they haven't yet filled it in... but still) 18:19:48 ... is really a popular feature it seems 18:21:29 argh oerjan isn't here any more 18:21:38 alise, why argh? 18:22:08 wanted to quiz him about mathqs :P 18:23:28 alise, lucky him who left 18:25:33 hm... FAUST "Functional AUdio STream"... What are the chances of that name NOT being designed to fit the acronym? 18:25:57 alise, ^ 18:26:09 Low. 18:27:08 So I wrote what I wanted in TeXmacs but it can't copy to Unicode. 18:27:31 alise, TeXmacs? Isn't that some weird type setting thingy that isn't compatible with LaTeX? 18:27:48 I tried it and found it irritating to say the least 18:28:14 It isn't weird and it can export to LaTeX. 18:28:24 true 18:28:33 alise, from what I remember it rendered text blurry when editing 18:28:56 probably perfect for you with your no-hinting mania though 18:29:10 (pdfs never turn out that blurry) 18:29:32 Not blurry, and the PDFs look exactly the same depending on your font settings. 18:29:32 (well, I mean, pdf with text in... pdf with a photo of blurry text could of course) 18:29:45 It looks exactly like the .ps files that TeX generates, in fact. 18:29:57 huh 18:30:32 Also, I use slight hinting on linux 18:30:45 What's the LaTeX for the bold, non-italic set names used as variables> 18:30:46 *variables? 18:30:46 okay 18:30:52 Like \forall x \in X 18:30:56 what do you enclose X in? 18:31:02 alise, hm *tries to remember* 18:31:43 \mathbb N? 18:32:09 alise, I couldn't remember, so I checked what lyx did when I clicked the button for it :P 18:32:12 \mathbb is the doublestruck style, if you want that. 18:32:18 \mathbb{N} 18:32:19 No. 18:32:29 If you just want non-italic bold, that'd be mathbf. 18:32:36 Thanks. 18:32:44 fizzie, bold, set -> blackboard bold in my parser 18:32:48 No, that is italic for single-letter names. 18:32:49 not sure how that happened 18:33:37 alise, what fizzie said produces bold here? 18:33:46 well, in lyx preview at least 18:34:26 Sigh. 18:34:58 alise, I don't know what you want then :/ 18:36:20 Anyway whatever. 18:38:45 -!- Sgeo has quit (Ping timeout: 265 seconds). 18:40:14 -!- kar8nga has joined. 18:40:14 Whatever indeed; though I have to note that for me \mathbf{X} (even for single-letter strings) certainly produces non-italic bold; I had to use amsmath's \boldsymbol{} recently to get some homework answers compatible with the homework questions, which used italic-bold style for vectors and matrices. 18:40:49 Well, the $...$ is in italic-formatted stuff. 18:40:58 alise, ? 18:41:10 you use \mathbf{foo} *inside* $$ 18:41:43 works for me 18:41:51 $$ DESU $$ 18:41:58 MissPiggy, $$? 18:42:14 it was between those that it was supposed to be inserted 18:42:17 not between two of them 18:42:43 anyway, isn't display style different? \[ or something ? 18:43:27 $$ is set apart, $ is not 18:44:01 $$ x $$ is not the recommended way of doing displaymath in LaTeX, though. 18:44:05 It's the older TeX-style. 18:44:12 aha 18:44:17 yeah; amsmath has a bunch of better options 18:44:28 well I'm not old enough to having used TeX directly 18:44:30 only LaTeX 18:44:35 No, I mean, just plain LaTeX has better options; $$ is not even officially part of LaTeX. 18:44:38 \[ .. \] is. 18:44:45 fizzie, indeed 18:45:07 oh, I did not know that 18:45:10 no one in their right mind uses just plain TeX 18:45:44 "While the double dollar sign (still) works in LaTeX, it is not part of the "official" LaTeX command set (in fact, most books on LaTeX don't even mention it) and its use is discouraged. Use the bracket pair "\[", "\]" instead." -- though that's from a guide. I think I saw it in a more reputable source too, though. 18:45:47 (with exception of Knuth and those that implement LaTeX, ConTeXt and such) 18:46:05 fizzie, what is the reason for that though? 18:46:09 -!- user2 has joined. 18:46:20 My guess is that it involves equation numbering or such 18:46:53 -!- hiato has quit (Quit: leaving). 18:47:30 Another guide says that $$ can lead to wrong spacing in "some situations". And yet another says that \[ .. \] is preferred because the ending tag is different, which helps in error checking. It will still do close to the same thing. 18:51:19 fizzie, but then why hasn't $ $ been replaced to help error checking as well? 18:51:49 LaTeX does define \( .. \) as a replacement for $ .. $, but I haven't seen anyone seriously advocate the use of that. 18:52:20 -!- user2 has left (?). 18:53:00 * AnMaster is irritated at llvm.org for not providing a list with all sub projects such as clang and klee 18:53:16 the project using llvm list seems to be "non-llvm.org based projects" 18:57:26 They seem to call those things sub-projects, but there's not much of a list to be seen. 18:57:47 fizzie, I said sub project above yeah 18:57:51 Ah. 18:57:57 fizzie, klee and clang are the two I know about 18:57:58 Well, http://llvm.org/docs/ReleaseNotes.html has a sort of a list in the status update section. 18:58:12 fizzie, yes sure, but I want to see the full list, and any that aren't yet there 18:58:26 also looking at the svn ( http://llvm.org/viewvc/llvm-project/ ) doesn't help much 18:58:32 for example, cfe turns out to be clang 18:59:12 ah http://compiler-rt.llvm.org/ exists at least 18:59:26 fizzie, trying to do a zone transfer on llvm.org didn't work very well either ;) 18:59:43 Yes, that rarely works. 19:00:04 fizzie, no idea if it was on my side or their side it was blocked 19:00:40 -!- Wareya has joined. 19:01:02 poolalloc.llvm.org did not exist for example 19:01:03 Their side, probably. I have a feeling that the current BIND example configs (and defaults for other servers) nowadays allow zone transfers only for explicitly listed secondary nameservers. 19:01:19 fizzie, probably 19:01:23 why though? 19:02:30 To avoid leaking any unnecessary information about the structure of their network, is I guess the official explanation. Not that it should hurt in the usual case, but why go advertise around 1quasi-private things like that if it isn't necessary. 19:03:22 1quasi? 19:03:29 quasi 19:03:46 Deewiant, I think that 1 was intentional 19:04:10 I doubt it. 19:04:18 If it was intentional, I don't recall what the intention was. 19:05:47 heh 19:06:05 this poolalloc thing seems very interesting 19:06:30 Oh, there's another stated reason; AXFR replies are several times larger than any other (usual) DNS messages, so DNS-based ways of doing DDoS attacks (like the usual: send a whole lot of small UDP dns requests with the same spoofed source IP) are made worse by allowing those. 19:07:31 http://www.auscert.org.au/render.html?it=80 for example seems to recommend against it. 19:13:54 the project "safecode" seems fairly interesting too 19:19:01 interesting ones found so far: clang, klee, poolalloc, safecode. Poolalloc seems to be an optimisation pass to automatically detect and rewrite code that would benefit from using a memory pool 19:19:41 -!- tombom_ has joined. 19:21:30 -!- alise_ has joined. 19:23:15 -!- tombom__ has quit (Ping timeout: 276 seconds). 19:23:32 -!- alise__ has joined. 19:23:42 I think that, on balance, laptops were definitely designed by someone without a penis. 19:24:54 -!- alise has quit (Ping timeout: 252 seconds). 19:25:15 alise__, oh? 19:25:22 alise__, is it getting fried? 19:25:53 XD No. 19:26:00 -!- alise_ has quit (Ping timeout: 252 seconds). 19:26:00 It's just not the most comfortable position for a computer 19:26:19 alise__, I was about to suggest "or because you find it so comfortable?" 19:26:22 :P 19:26:26 >_< 19:26:30 Oh; I thought this was some sort of attituditional complaint about laptops lacking some metaphorical BALLS. 19:26:45 Is that an invisible laptop on your lap or are you just happy to see me? 19:26:51 fizzie, yeah they have nipples instead (at least thinkpads does XD) 19:27:18 alise__, hey, did I mention that joke someone told me about modern smart phones being so big? 19:27:47 it went: is that a smartphone in your pocket, or are you just happy to see me? 19:28:01 So a manly laptop with a TrackPoint should be referred to as a hermaphrodite? 19:28:25 alise__, I think you can take a sexual joke too far :P 19:28:28 AnMaster has a laptop from a range that used to be manly and sturdy but is now merely Asian. I hereby refer to it as a ladyboy. 19:28:38 alise__, haha 19:28:53 LadyPad: The laptop that doubles up as a... I'm stopping this right here. 19:28:56 alise__, you know, when I called lenovo support I ended up at IBM 19:28:58 last week 19:29:27 (a small crack in the plastic that makes up the palm rest, went on warranty, user replaceable part) 19:29:39 err wait, it was this week even 19:29:45 still isn't past midnight 19:29:57 should be delivered tomorrow or the day after that I guess 19:38:19 -!- Sgeo has joined. 19:53:08 -!- alise__ has quit (Ping timeout: 252 seconds). 19:54:04 -!- coppro has quit (Quit: I am leaving. You are about to explode.). 20:15:37 -!- Ilari has quit (Ping timeout: 260 seconds). 20:17:51 fizzie, safecode proved useful too 20:17:59 found a wtf in cfunge using it 20:18:14 unlikely to actually cause any harm in practise, but very wrong stiff 20:18:15 -!- Ilari has joined. 20:18:16 still* 20:18:22 * uorygl ponders whether "A is evidence for B" is equivalent to "~A is evidence for ~B" 20:18:26 * AnMaster corrects the order of those free() calls 20:18:30 Defining "A is evidence for B" as P(B|A) > P(B). 20:19:01 wait no 20:19:04 that isn't the issue... 20:20:52 That's perhaps better expressed as P(A and B) > P(A)*P(B). Take the complement, and you get 1 - P(~A or ~B) > (1 - P(~A))(1 - P(~B)). Expand, and you have 1 - P(~A or ~B) > 1 - P(~A) - P(~B) + P(~A)P(~B)... 20:21:18 AnMaster: What'd it find? 20:22:15 Expand some more, and you have 1 - P(A and B) - P(A and ~B) - P(~A and B) > 1 - P(~A and ~B)P(~A and B) - P(~A and ~B)P(A and ~B) + P(~A)P(~B)... 20:22:27 To quote a friend of mine, ow ow ow ow! 20:24:43 Er, I did that wrong. 20:25:11 Expand some more, and you have 1 - P(A and B) - P(A and ~B) - P(~A and B) > 1 - P(~A and ~B) - P(~A and B) - P(~A and ~B) - P(A and ~B) + P(~A)P(~B). Which is much better, as we can now eliminate stuff. 20:25:19 Deewiant, I'm not sure... 20:25:25 Deewiant, looking closer at it it makes no sense 20:25:32 Deewiant, I suspect broken debug info 20:26:01 Deewiant, or something. I added a printf debug thingy before that point, it stopped at same point but the printf message was never output 20:28:35 -!- alise has joined. 20:29:32 -!- ais523 has quit (Remote host closed the connection). 20:30:49 So, -P(A and B) > -2P(~A and ~B) + P(~A)P(~B). Rearrange some: 2P(~A and ~B) > P(A and B) + P(~A)P(~B). 20:32:00 Let a = P(B|A), b = P(B|~A), c = P(A), d = P(B). Now ac + b(1-c) = d. A being evidence for B means that a > d. OTOH, if ~A is not evidence for ~B, 1 - P(B|~A) <= 1 - P(B) => b >= d. Thus, ac + b(1-c) = d > dc + d(1-c) = d. Impossible. 20:32:29 -!- alise_ has joined. 20:33:06 -!- alise has quit (Ping timeout: 252 seconds). 20:33:11 * alise_ ponders the implementation of ⊥-elim : ⊥ → ∀a·a 20:33:52 Orthodoxy defines it as an empty case-analysis of its argument, giving ⊥-elim x := case x {} 20:34:11 But this does not gel if you most commonly do case analysis via pattern matching. 20:34:43 This translates to foo p = q; foo q = e' 20:34:44 So consider foo x := case x {p -> e; q -> e'} 20:34:59 So, for each case, emit the function with the pattern and result in the appropriate place. 20:35:14 This would suggest that the implementation is in fact the null string, and just the type signature should suffice. 20:35:16 But then what of type inferrence? 20:35:23 okay this does indeed make no sense.. 20:35:28 Define this. 20:36:04 alise_, the "bug" the experimental llvm tool sc detected 20:36:16 k 20:36:20 because switching order of two statements make the second error out. And they should not affect each other 20:36:38 freeing two different fields in a struct 20:36:46 (both are pointers) 20:36:49 Agda implements it as "⊥-elim ()". 20:37:04 I assume () is just an empty nesting there, but doing /any/ case analysis on the empty type should be verboten. 20:37:26 Having no right-hand side, meanwhile, basically makes it mandatory that the compiler c 20:37:30 *handles this special case. 20:38:13 Perhaps the empty case analysis is still the best. 20:38:35 Complete: 20:38:45 data ⊥ : Type 20:39:01 * AnMaster tries again with llvm-gcc instead of clang to generate the llvm .bc files 20:39:25 fun that crashes in *yet* another place 20:39:58 -!- alise has joined. 20:40:16 and something likes to strip the debug info down to bare minimum 20:40:24 Fuck this 20:40:33 data ⊥ : Type 20:40:48 alise, 3G stick? 20:41:31 -!- alise__ has joined. 20:41:47 okay, now it reliably crashes in the same place (using llvm-gcc) irrespective of the order of the calls there 20:41:54 \zxdcfghjk 20:42:01 alise__, 3G stick? 20:42:11 data ⊥ : Type 20:42:13 ⊥-elim : ⊥ → ∀a·a 20:42:15 ⊥-elim false := case false {} 20:42:22 hd 20:42:24 yesssssssssss 20:42:26 irejg 20:42:30 i sent it all before disconnecting 20:42:55 oh I think it dislikes me freeing the null pointer 20:42:57 perhaps 20:43:00 -!- alise_ has quit (Ping timeout: 252 seconds). 20:43:02 which should be valid 20:43:14 it's unreliable 20:43:26 alise__, what? free(NULL)? 20:43:41 yes. many systems behave badly 20:43:55 alise__, even C89 says that should be valid 20:44:09 so you don't need to check if everything was allocated in the structure you are freeing up 20:44:21 by having (free NULL ≡ ⊥) 20:44:26 alise__, ..? 20:44:29 AnMaster: tough 20:44:31 it's still unreliable 20:44:33 anyway 20:44:35 then you could do 20:44:40 alise__, examples of systems it fails on? 20:44:44 ⊥-elim (free NULL) 20:44:45 sure I can add an if() 20:44:50 and derive ANYTHING! 20:44:50 -!- alise has quit (Ping timeout: 252 seconds). 20:44:58 AnMaster: mostly old ones, I am not your personal memory bank 20:45:02 but I know it's true 20:45:19 alise__, I doubt llvm targets them though 20:45:32 it's still trying to help you avoid bugs 20:45:34 stop whinging 20:45:42 hm 20:45:44 -!- dougx has joined. 20:46:04 alise__, I take advantage of free(NULL) in cfunge. If so it should be possible to turn that warning off. :/ 20:46:40 It's a bug-finding tool. 20:46:43 It's supposed to annoy you. 20:47:00 alise__, actually sc is supposed to add run time checks to production code for actual bugs 20:47:14 so it detects (with low overhead) out of array bounds access and such 20:47:15 in C code 20:47:41 K 20:47:47 alise__, also it gives error for my call to putchar() 20:47:53 well according to the line number at least 20:48:23 perhaps due to using a VLA in that function. I don't know 20:48:26 As a slightly related thing, ANSI C allows realloc(NULL, x) as equivalent to malloc(x), but at least according to comp.lang.c FAQ "several earlier implementations do not support it, so it may not be fully portable"; they don't list problematic implementations, though. 20:48:42 free(NULL) might be more common than realloc(NULL, x), though.. 20:48:45 fizzie, heh, another thing I made use of somewhere 20:48:56 to just need one code path instead of two 20:50:31 realloc(NULL, x) isn't uncommon at all. 20:51:11 Maybe not, since it's reasonably convenient. 20:51:25 However, it's OK for the same reason as free(NULL), for data structures with e.g. a length and pointer field, where the length is zero if the pointer is NULL. Ignore the length's value, expand, realloc, you're OK. 20:52:17 Gregor, yeah pretty much how I used it iirc 20:52:35 For that sort of thing having a fixed "prevsize*2" rule for the expanding is not a very good idea, though. :p 20:53:13 True :P 20:53:58 also it reports alignment error on calling a function pointer 20:54:00 either that 20:54:19 or on assigning the return value to a bool 20:55:07 * AnMaster wonders whatever is on 0x419d70 20:55:20 well the debug info is mostly stripped somewhere (I don't know where, irritating anyway) 20:55:25 so I can't figure it out really 20:59:05 hm... seems to be the function pointer itself 20:59:09 and I suspect it is wrong here 21:00:59 -!- Guest21507 has joined. 21:01:13 -!- Guest21507 has quit (Client Quit). 21:10:09 alise__, also it seems to dislike calling free() on something you got from strdup() 21:10:28 which the man page explicitly says should be freed using free() 21:10:57 lolwtf 21:11:23 Gregor, well, it is an svn version, and there is no stable version yet 21:11:27 so I'm not *too* surprised 21:11:41 Gregor, you know how it is with llvm projects I assume 21:11:41 ? 21:11:54 Not much of a clue. 21:11:58 -!- alise__ has quit (Ping timeout: 252 seconds). 21:12:07 you are *bound* to get at least two assertion errors on anything non-trivial 21:12:16 that requires some tracking down to figure out what the heck is going on 21:12:44 (in this case I have to force llvm itself to not optimise things into vector stuff using SSE for example) 21:13:18 and they love to use assert(0 && "foo is not implemented yet"); for erroring out 21:14:00 Gregor, clang is now past this phase 21:14:12 and the clang static analyser seems to only crash sometimes nowdays 21:14:19 Sweet 21:14:56 Gregor, it is pretty easy to crash llvm tools in general though. Heck it is easy to make llvm unable to compile itself if even 21:14:59 or used to be at least 21:15:04 -!- dougx has left (?). 21:15:19 was easy in 2.6. 2.7 is to be released on April or May iirc 21:15:37 In a month; the code freeze is in some hours 21:16:05 Deewiant, and the major new hot feature in almost all categories is "..." I see: http://llvm.org/docs/ReleaseNotes.html#whatsnew 21:16:13 ... is the new black or something 21:16:23 Rather, the release notes haven't yet been written 21:16:34 Deewiant, I know, but I prefer my interpretation 21:16:48 Whatever makes you happy 21:17:10 Deewiant, for a start, mine is funnier 21:34:23 -!- adu has joined. 21:38:37 why do people keep asking me to debug PHP scripts 21:40:16 Wareya, no idea. Do you know PHP at all? 21:40:34 barely 21:40:44 well, no idea then 21:41:11 Wareya, but while you are at it, please go formally prove the entire mediawiki codebase will you? ;P 21:41:55 night → 21:42:20 night 21:48:34 -!- alise has joined. 21:48:37 hi 21:48:39 I realised something [obvious] 21:48:43 okay 21:49:17 You don't need special syntax for forall and the like. 21:49:19 e.g. 21:49:21 ∀ : Type → (Type → Type) → Type 21:49:38 then 21:49:40 id : ∀Type (λa. a → a) 21:50:02 Hmm, actually, since forall is implicit arguments I guess it's actually 21:50:47 ∀ : ∀Type (λa. (a → Type) → Type) 21:50:48 Which is, alas, circular. 21:51:04 Also you need to handle the type levels and whatnot 21:51:27 -!- alise_ has joined. 21:52:01 What did I last say? 21:52:38 alise, http://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.RulesForTheStandardSetFormers 21:52:45 scroll to the very bottom, 21:52:46 see: π : (a : U) -> (T a -> U) -> U 21:52:50 T (π a b) = Π (T a) (\x -> T (b x)) 21:53:05 this is an example of an inductive-recursive definition (like I was talking about earlier) 21:54:07 you mean how implementing the obvious type for induction in a dep-type lang gives you recursion? 21:54:07 or is this a separate thing 21:54:40 umm 21:55:17 seems pretty similar from those two lines at least 21:55:36 -!- alise has quit (Ping timeout: 252 seconds). 21:55:55 Hey, actually, I can define forall nonrecursively. 21:56:15 -!- adu has quit (Quit: adu). 21:56:48 ∀-Type : (Type → Type) → Type 21:56:49 ∀ : ∀-Type (λa. (a → Type) → Type) 21:56:59 Of course, the two are still axioms. 22:02:30 http://pastie.org/858677.txt?key=x2vpvu1ou7e3uyjcbd8ybg 22:02:44 (Note: T is merely an unfortunate name, not \top) 22:03:05 * alise_ replaces it with X locally 22:03:50 Actually, \gamma, since it looks like "y" and "y" evokes "mi" evokes "me". 22:10:57 Hmm, my \mu-elim fails to actually let you go through the recursive structure. I should fix that. 22:11:16 (greet "alise") 22:11:39 map : ∀Type (λa. ∀Type (λb. (a → b) → RecList a → RecList b)) 22:11:39 map f := μ-elim (∨-elim (λ_. unit) (∨-elim (λx xs. cons (f x) (map f xs)) (λxs ys. consRec (map f xs) (map f ys)))) 22:11:50 is certainly theoretic, but it's still packed with explicit recursion. 22:11:53 As pretty as it is. 22:15:14 MissPiggy: hmm, with a proper recursion combinator I could easily have my core language be point-free couldn't I? 22:20:08 alise_: Yes, with a fixed-point combinator, point-free-ness is feasible. 22:20:50 pikhq: *structural recursion combinator 22:20:54 fix : (a -> a) -> a is unsound. 22:21:10 consider: 22:21:24 id-specialised : _|_ -> _|_ 22:21:27 fix id-specialised : _|_ 22:21:38 _|_-elim (fix id-specialised) : a 22:21:49 Yay, now we can derive anything. 22:23:24 alise_: Okay, fine. You want Mu, not y. 22:25:49 -!- kar8nga has quit (Remote host closed the connection). 22:26:41 y is even more unsound than the named definition of fix, which is a stunning anti-achievement :P 22:27:08 y is indeed quite unsound. It doesn't work with types. 22:27:41 you can type it in some systems 22:27:41 specifically designed for it 22:27:55 Mmm. 22:27:58 The problem is that structural recursion requires mu (p |) and that bothers me 22:28:08 I already have |-elim, it'd be nice to have an independent mu-elim 22:28:13 but I can't think of a type for it at all 22:28:29 mu-elim : ... -> mu a -> ? 22:28:43 we know that a : * -> * 22:28:54 so we could exploit that somehow to replace the recursive bits with something of our own design 22:28:57 like (), say 22:29:37 for instance that gives for nats () | () 22:29:50 so we can distinguish it in the function given by left/right 22:29:55 but then what of the return value? 22:30:17 we need to somehow "reduce" it 22:30:18 so that we can further eliminate it 22:30:31 so what do we need for structural recursion: a base case, and a step case 22:30:42 but how do we distinguish the two if all we have is mu a where a : * -> *? 22:31:03 alise did you raed it? 22:31:18 * Sgeo should check his KI-mail 22:31:42 MissPiggy: i'm doing so 22:31:58 was just wondering because if you didn't I can try not to link anything to you 22:32:05 which would save me time obviously 22:32:25 you're so happy-go-lucky 22:33:14 MissPiggy: i don't get what you're trying to express with your quotes 22:33:20 that pi is structural recursion there? 22:33:38 every function is defined by structural recursion 22:33:42 pi is syntax for forall 22:33:59 kinda like 22:33:59 21:48 < alise> ∀ : Type → (Type → Type) → Type 22:34:17 ah. right 22:34:56 MissPiggy: is it possible to define mu-elim without having it be (mu (a |)) or similar 22:34:59 instead just being mu a? 22:35:17 mu-elim : (a something -> ?) -> ... -> mu a -> ? 22:36:47 alise, in Coq I can define: 22:36:49 Inductive Mu : Set := roll : list Mu -> Mu. 22:37:01 or 22:37:01 Inductive Mu : Set := roll : (Mu * nat) -> Mu. 22:37:16 or even 22:37:16 Inductive Mu : Set := roll : (nat -> list Mu) -> Mu. 22:37:25 lots of different ones 22:37:32 but I can't defined 22:37:33 Inductive Mu (F : Set -> Set) : Set := roll : F (Mu F) -> Mu F. 22:37:45 that is not valid _unless F is known to be a strictly positive functor_ 22:38:04 supposing F were a SPF, what would the induction scheme for Mu F be? 22:38:16 oh you do it with functors? 22:38:24 MissPiggy: by that question do you mean "implement Mu"? 22:38:36 no 22:38:48 then what 22:38:59 you don't know how to calcuate induction schemes from data defintions yet 22:39:01 ? 22:39:10 I was just attempting to clarify the question. 22:39:34 I certainly know how to derive maybe from Maybe and the like if that's what you're referring to. 22:39:39 yes 22:39:42 Oh, I see, Mu there is a type 22:39:48 except more dependent 22:39:48 I don't know Coq syntax, I thought it was a function type 22:39:56 oh you should learn Coq 22:40:04 Yes, I believe so too. 22:40:10 it will compute a lot of things for you which would take ages otherwise 22:40:20 In my system I was going to have mu be axiomatic to solve this, like the Epigram people. 22:40:28 (the definition problem) 22:40:32 Anyway, the induction scheme. 22:41:01 (I denote, I think from Agda, the inducterifier for T with T-elim,) 22:41:34 Let me try and do this bit by bit. 22:41:41 Mu-elim : ... -> Mu F -> something that doesn't involve mu 22:42:11 (Admittedly I have not actually researched the mechanical ways to do things like this because Surely The Computer Can Work It Out For Me, so this will be slapdash and stupid.) 22:42:57 Well, we have (a->b)->f a->f b 22:43:01 which works out to 22:43:16 (mu f -> b)->f (mu f)->f b 22:43:20 N := O : N | S : N -> N 22:43:25 MissPiggy: i'm aware 22:43:31 k I'll just not bother 22:44:10 So if we can transform the "guts" of some mu to something else, we can eliminate the mu. 22:44:39 But the guts are also recursive. 22:44:55 (mu (f (mu f)) -> b) -> f (mu (f (mu f))) -> f b 22:45:23 MissPiggy: I should learn the mechanical method for this. But my hunch is that we will be transforming the Fs into another type, and keeping the recursive structure. 22:45:47 With some opportunity for a base case. 22:45:57 Presumably along the lines of the elimination given by fmap above. 22:48:52 MissPiggy: Your silence is bothersome. 22:49:32 ((forall x. a x -> b x) -> mu a -> mu b) 22:49:43 is presumably doable but leaves no opportunity for a base case 22:49:57 dealing with a situation 22:50:00 hmm... i think 22:54:57 cool 22:56:28 -!- tombom_ has quit (Quit: Leaving). 23:01:50 we 23:04:20 * Sgeo visits a possibly malicious site from a school computer 23:04:45 -!- sshc has quit (Ping timeout: 240 seconds). 23:04:59 -!- MigoMipo has quit (Remote host closed the connection). 23:05:05 -!- sshc has joined. 23:05:40 Beh, nothing useful 23:17:00 -!- adam_d has quit (Quit: Leaving). 23:20:29 MissPiggy: it'd be cool if you just told me the induction schema :D 23:24:33 apparently epigram has one single elimination operator that works on every single type 23:24:39 which is fantastic if it really works 23:26:50 alise_ has me on ignore? 23:26:59 Well, probably not 23:26:59 no 23:32:09 I think I gave up on 23:32:10 22:42 < MissPiggy> N := O : N | S : N -> N 23:32:10 22:43 < alise_> MissPiggy: i'm aware 23:36:07 i did not know that more was forthcoming 23:36:13 if you don't want to answer fine 23:36:52 I was going to say what the induction principle for N was 23:39:46 * Sgeo goes to visit his Relto 23:40:40 MissPiggy: I did not realise this at the time. Please, go on. 23:41:23 you know this one already, P(O) -> (forall n, P(n) -> P(S n)) -> forall n, P(n) 23:41:38 and for B := T | F we have P(T) -> P(F) -> forall b, P(b) 23:42:52 yeah 23:42:55 it gets more interesting with ordinal-induction, where you have something like O := Z : O | S : O -> O | L : (N -> O) -> I 23:42:59 oops 23:43:05 O := Z : O | S : O -> O | L : (N -> O) -> O 23:43:08 -> O prs'mbly 23:43:48 P(Z) -> (forall o, P(o) -> P(S o)) -> (forall l, (forall n, P(f n)) -> P(l f)) 23:43:50 oopr 23:43:55 P(Z) -> (forall o, P(o) -> P(S o)) -> (forall l, (forall n, P(f n)) -> P(l f)) -> forall o, P(o) 23:44:09 wait sec 23:44:13 gimme a second to read that 23:44:28 From whence f in this definition? 23:44:32 You do not quantify over it. 23:44:39 oops 23:44:47 P(Z) -> (forall o, P(o) -> P(S o)) -> (forall f, (forall n, P(f n)) -> P(l f)) -> forall o, P(o) 23:44:53 f : N -> O 23:44:57 From whence l? 23:45:00 grr 23:45:04 P(Z) -> (forall o, P(o) -> P(S o)) -> (forall f, (forall n, P(f n)) -> P(L f)) -> forall o, P(o) 23:45:09 this is correct now 23:45:17 now lemme read it :P 23:45:58 so the last one is "show that for all f : * -> * and all n : Nat, P (f n) implies P (L f)." 23:46:07 f : N -> O 23:46:10 so if it's true for any type-function, so to speak, it's true for L f 23:46:14 L that function, that is 23:46:19 MissPiggy: right 23:46:27 how do we use this? 23:46:46 if f is a family of nat indexed ordinals, then L f is an ordinal 23:47:03 yeah 23:47:07 so if you can prove P for every (f n), then P (L f) holds -- principle of transfinite induction from set theory 23:47:18 gotcha 23:47:27 it's just nested induction basically 23:47:32 yes 23:47:35 !! exacty!! 23:47:37 so, wait 23:47:45 we have P (_ : N -> O) and yet P (_ : O) 23:47:52 no wait 23:47:52 no 23:47:53 it's f n 23:47:54 right 23:47:54 gotcha 23:47:55 sweet 23:47:55 P : O -> * 23:48:00 okay, so, next thing 23:48:23 now it gets more difficult 23:48:50 what if we defined a strange type of trees like this 23:49:00 T := L : T | B : list T -> T 23:49:34 hmm 23:49:45 presumably we have to nest list induction 23:49:46 lets jsut remember that list T is equivalent to Sigma n, Fin n -> T 23:50:01 so we could write 23:50:21 T' := L' : T' | B' : (n : N) -> (Fin n -> T) -> T 23:50:33 I am unfamiliar with your definitions of Sigma/Fin in this particular case. 23:51:06 If you give me the definitions directly we can swiftly move on. 23:51:20 : Sigma n, P(n) it's a dependent pair 23:51:46 Fin 0 = False, Fin 1 = (), Fin 2 = Bool, Fin 3 = {yes,no,maybe}, Fin 4 = {north, south, east, west}, .. 23:52:00 so Fin n is what set theorists would term n 23:52:06 and, uh, what? 23:52:21 sigma as in dependent quantification? 23:52:23 "Sigma" is like exists, except that it's data rather than proofs 23:52:31 right but you have to specify a type... 23:52:48 Fin : N -> * 23:52:55 And is it Sigma a, b the syntax? 23:52:55 like Forall a, b 23:52:58 so n is a natural number in Sigma n, Fin n -> T 23:53:04 well you could write 23:53:09 right, but i still do not get Sigma 23:53:11 Sigma N (\n -> Fin n -> T) 23:53:15 rewrite it with dot notation 23:53:16 ok so it's 23:53:18 if it was defined as 23:53:23 sigma (n:N). Fin n -> T 23:53:38 Sigma (T : *) (P : T -> *) : <_,_> : (t : T) -> P t -> Sigma T P 23:53:41 oops 23:53:44 Sigma (T : *) (P : T -> *) := <_,_> : (t : T) -> P t -> Sigma T P 23:53:45 I am still unsure why we specifically chose this to isomorph list to. 23:54:04 a lists is say, 4::4::3::2::5::5::nil, 23:54:23 so that's equivalent to the function {#0->4,#1->4,#2->3,...} 23:54:31 (using # notation for elements of Fin) 23:54:58 And 0->4,1->4, etc but fair dos. 23:55:00 Why do we need Sigma here? 23:55:06 the reason is because we can compute the induction principle for T, but we DOnt know how to do T yet 23:55:09 oops 23:55:10 the reason is because we can compute the induction principle for T', but we DOnt know how to do T yet 23:55:22 -!- Gracenotes has quit (Remote host closed the connection). 23:55:52 no what i mean is 23:55:55 I get how a list is isomorphic to Fin n -> T 23:55:58 no 23:55:59 oh i see 23:56:02 we're using sigma to quantify 23:56:05 list is isomorphic to Sigma n, Fin n -> T 23:56:18 can you use the notation forall (n:N) in future? Sorry; it's just heavily ingrained in my mind. 23:56:27 because (Sigma n, Fin n -> T) : *, but (forall n, Fin n -> T) : N -> * 23:56:28 My mind parses that Sigma very badly :/ A personal failing. 23:56:39 list T : * whereas Vector T : N -> * 23:56:46 Hmm. I see. 23:56:52 Not in mine. 23:56:55 forall is implicit in mine. 23:56:59 Then {n:N} ->, I suppose. 23:57:19 anyway you can do the induction principle for T' the same way as we did O 23:57:50 Can you repeat T''s definition with {x:T} -> notation? 23:57:53 I think I will understand it then. 23:58:04 T' := L' : T' | B' : (n : N) -> (Fin n -> T') -> T' 23:58:25 *{n : N} -> 23:58:32 But, gotcha. 23:58:32 it's not implicit 23:58:38 Except that only handles infinite lists 23:58:41 what do you mean by {}? 23:58:43 MissPiggy: oh right 23:58:45 no it only handles finite lists 23:58:46 sorry 23:58:49 really? 23:58:50 every natural number is finite 23:58:55 yes, but 23:58:58 Fin 984350934580345 23:59:05 that's still finite :D 23:59:06 doesn't work as a param to a 5-length list 23:59:23 no it isn't you have to be able to access element N for every natural N 23:59:30 which is the very definition of countably infinite...