00:48:56 -!- sebbu has quit ("@+"). 00:57:10 -!- Corun has joined. 00:59:04 -!- olsner has quit ("Leaving"). 00:59:18 -!- olsner has joined. 00:59:29 -!- olsner has quit (Read error: 104 (Connection reset by peer)). 01:35:43 -!- Corun has quit ("This computer has gone to sleep"). 01:41:55 -!- psygnisfive has joined. 01:42:06 I IS HERE 01:54:49 -!- olsner has joined. 02:42:03 -!- Sgeo has joined. 03:07:06 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | and it does implement all the comands. 05:56:43 -!- Sgeo has quit ("Ex-Chat"). 06:29:47 -!- oklocod has joined. 06:35:24 -!- oklopol has quit (Connection timed out). 07:04:16 -!- oerjan has joined. 07:05:51 -!- kar8nga has joined. 07:22:31 -!- kar8nga has left (?). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:08:43 -!- oklocod has quit (Read error: 113 (No route to host)). 08:08:45 -!- oklopol has joined. 08:09:55 orrorrorrorrorrorrorrorrorrorro 08:11:11 orrorrorrorrorrorrorrorrorro 08:27:45 rofr 08:29:43 -!- oklopol has quit (Read error: 113 (No route to host)). 09:07:06 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric |. 09:32:37 -!- oklocod has joined. 09:38:33 was gonna ask what 01101001100101101001011001101001... is, but realized there's a more trivial way to produce it, that everyone knows already. 09:39:11 Morse-Thue Morse-Thue Morse-Thue Morse-Thue Morse-Thue Morse-Thue 09:39:26 wat? 09:39:39 it's the Morse-Thue sequence 09:39:46 i don't know that one 09:39:49 ... 09:39:52 well i guess i do :P 09:39:59 but why the name? 09:40:45 hm apparently wp and mathworld switch the words 09:40:58 well, can you guess where i bumped into that? the course is called microprocessors 09:41:32 http://en.wikipedia.org/wiki/Thue-Morse_sequence#History 09:41:38 i had a program in my error because i initially thought that sequence was 01010101010... before i started thinking 09:41:49 it was one of my advisor's favorite examples 09:42:25 there's nothing about uses there 09:42:40 you asked why the name 09:42:45 ah 09:42:52 answer to my earlier question, right 09:43:30 glad i am now in the long list of mathematicians to discover that. 09:43:39 aye 09:43:46 but, guess the use! :D 09:44:36 (them microprocessors contain an bites...) 09:45:52 is this parity of bits connected? 09:46:12 ya 09:46:17 in binary 09:46:35 to inc, we prepend a 1, and then do everything we've done sofar 09:46:50 prepending a 1 will do nothing but swap all 1's and 0's 09:47:06 which means 09:47:08 err 09:47:12 http://mathworld.wolfram.com/Thue-MorseSequence.html has that as the second way to generate the sequence in Mathematica (of 6) 09:47:24 *prepending a 1 will do nothing but complement all parities 09:47:44 so we always duplicate what we have, but complemented 09:47:50 (the first is the one that connected it with my PhD work) 09:49:14 i'm probably not yet old enough to try reading that, btw? 09:49:32 (*old enough yet) 09:55:30 my magimatical powers aren't that developed yet 09:55:36 mathemagical would be better 10:05:17 -!- oerjan has quit (Read error: 110 (Connection timed out)). 10:43:42 -!- Corun has joined. 11:15:12 -!- oklocod has quit (Read error: 113 (No route to host)). 11:29:18 -!- Corun has quit ("This computer has gone to sleep"). 11:51:35 -!- moozilla has quit (Read error: 104 (Connection reset by peer)). 11:53:11 -!- moozilla has joined. 11:59:18 -!- slereah has joined. 12:25:20 -!- Slereah_ has joined. 12:25:20 -!- slereah has quit (Read error: 104 (Connection reset by peer)). 12:39:51 -!- slereah has joined. 12:40:00 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 12:42:54 -!- lifthrasiir has quit (kornbluth.freenode.net irc.freenode.net). 12:42:55 -!- SimonRC_ has quit (kornbluth.freenode.net irc.freenode.net). 12:42:56 -!- mtve has quit (kornbluth.freenode.net irc.freenode.net). 12:42:56 -!- slereah has quit (kornbluth.freenode.net irc.freenode.net). 12:42:57 -!- ENKI-][ has quit (kornbluth.freenode.net irc.freenode.net). 12:42:57 -!- GregorR has quit (kornbluth.freenode.net irc.freenode.net). 12:42:58 -!- dbc has quit (kornbluth.freenode.net irc.freenode.net). 12:42:58 -!- cmeme has quit (kornbluth.freenode.net irc.freenode.net). 12:43:43 -!- slereah has joined. 12:43:43 -!- ENKI-][ has joined. 12:43:43 -!- GregorR has joined. 12:43:43 -!- dbc has joined. 12:43:43 -!- lifthrasiir has joined. 12:43:43 -!- cmeme has joined. 12:43:43 -!- SimonRC_ has joined. 12:43:43 -!- mtve has joined. 13:00:44 -!- ehird has quit (kornbluth.freenode.net irc.freenode.net). 13:00:44 -!- pikhq has quit (kornbluth.freenode.net irc.freenode.net). 13:00:44 -!- thutubot has quit (kornbluth.freenode.net irc.freenode.net). 13:00:46 -!- psygnisfive has quit (kornbluth.freenode.net irc.freenode.net). 13:00:46 -!- Asztal has quit (kornbluth.freenode.net irc.freenode.net). 13:00:47 -!- comex has quit (kornbluth.freenode.net irc.freenode.net). 13:01:30 -!- psygnisfive has joined. 13:01:30 -!- Asztal has joined. 13:01:30 -!- ehird has joined. 13:01:30 -!- pikhq has joined. 13:01:30 -!- thutubot has joined. 13:01:30 -!- comex has joined. 13:05:47 hi ais523 13:21:16 -!- Mony has joined. 13:39:38 -!- OverNord has joined. 13:40:26 -!- OverNord has left (?). 13:42:13 -!- Slereah_ has joined. 13:42:13 -!- slereah has quit (Read error: 104 (Connection reset by peer)). 13:46:22 I just had an awful idea 13:46:52 There is Scheme. There is also XML Schema. So why not also XML Scheme? It is just a one letter difference. 13:47:13 and I think it may even be possible in theory, though horrible 13:51:22 There's SXML -- XML data as S-expressions. 13:51:30 Less horrible. 13:56:14 AnMaster: It's not a very interesting idea. 13:56:18 Also it's a trivial one. 13:56:29 I wish your "awful ideas" were more awful :| 13:56:39 but yes, been considered before. 13:57:01 This excellent article draws the parallel to xml in the introduction: http://www.defmacro.org/ramblings/lisp.html 13:59:24 Heh, GCC-XML. 13:59:33 Yes. 14:00:12 -!- ENKI-][ has quit (Read error: 104 (Connection reset by peer)). 14:00:28 AnMaster: You'll like this - 14:00:36 GCC-XML was made by the same people as your beloved CMake. 14:00:39 Where's your god now?! 14:01:50 Still, it's only a "C++ to XML so that GCC frontend can be used for parsing easier" tool, not a "XML syntax for C++ for GCC input" one. The latter would be more awful. 14:06:35 -!- ENKI-][ has joined. 14:13:47 ehird, I like some stuff you done, but not everything? Your point? 14:13:59 what 14:14:06 GCC-XML was made by the same people as your beloved CMake. 14:14:06 Where's your god now?! 14:14:10 it was in response to that 14:14:16 i was being silly. 14:14:30 ehird, and I never claimed cmake was perfect 14:14:38 i was being silly. 14:14:40 just less terrible than autotools 14:14:42 ehird, ok :) 14:14:48 yay second time lucky 14:14:56 hah 14:16:06 ehird, well I read it first time, but changing that would mean the irc-line pipeline would have to be discarded. Somewhat like the Pentium 4 pipeline ;P 14:16:44 ah you're obsolete 14:17:18 haha 14:17:39 ehird, no a pentium 4 would have a pipeline of 200 lines or so 14:17:43 I just have 1-2 14:44:51 the latest pentium 4 models had a 31-stage pipeline 14:45:04 I think Core has around 15 14:48:00 wb ais523 15:07:07 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | If A and B are either registers, either given integers and C is register, the. 15:21:22 Uh oh, they're making the Pandoras with LEGOs! http://www.openpandora.de/images/padtop.jpg 15:22:17 I think you mean LEGO(TM) bricks 15:22:18 -!- Slereah_ has quit (Read error: 104 (Connection reset by peer)). 15:22:27 -!- Slereah_ has joined. 15:31:07 Uh oh, they're making the Pandoras with LEGOs! http://www.openpandora.de/images/padtop.jpg <--? 15:31:26 What has that image got to do with Greek mythology? Or was it Roman? 15:31:53 The Pandora is a (poorly-named) open source game system. 15:32:10 well I can't read that German site 15:32:22 Only the image is relevant X_X 15:32:26 openpandora.org for English 15:33:03 well it looks like a lego base plate but with an unusual shape 15:33:22 Yes, that was the joke :P 15:33:24 GregorR, however notice the base of the "studs" are slightly tilted? 15:33:38 I suspect it wouldn't actually fit with real lego due to that 15:33:44 GregorR: if AnMaster ever bugs you about a joke, don't ever reply x_x 15:33:47 even if the studs are the right size otherwise 15:33:54 ehird: I should've remembered that :P 15:34:17 well considering I had no clue what Pandora was in this context, how should I know it was a joke? 15:34:26 for all I know it could have been some lego related product 15:34:32 AnMaster: Touché. 15:34:40 "Oh no they're making the mythological character ut of LEGOs!" 15:34:46 ehird, not "oh no" 15:34:46 I think Occam's Razor applies here. 15:34:49 and read what I said 15:34:54 What has that image got to do with Greek mythology? Or was it Roman? 15:35:01 I wonder if anybody looked up the mythological figure Pandora before naming this game system :P 15:35:07 Oh look, I just broke my own rule. 15:35:26 "Cool, my new Pandora arrived. Time to open it! Haw haw haw, look, all the evil in the universe just came out of my new game system." 15:35:32 ehird, if it had been some lego model looking like mythology related then sure it would have made sense 15:35:40 so I suspect that was step 1 of the building instruction 15:35:42 or such 15:35:45 ... XD 15:36:19 So ehird, how's life in $YOUR_COUNTRY_OF_RESIDENCE. How's $YOUR_EMPLOYER_OR_UNIVERSITY treating you? 15:36:25 GregorR, I have never heard of a game system called pandora :P 15:36:41 GregorR, err, he is too young for either of those 15:36:42 GregorR: Good! And the second variable is null. :-P 15:37:05 "UNIVERSITY" is taken to mean any educational institution at any level. 15:37:16 I reject your semantics and substitute my own. 15:37:23 "UNIVERSITY" means "a fine summer's day" 15:37:26 In which case, very nicely! 15:37:31 hm ehird, what school level are you in now? I don't know the English school system very well 15:37:33 Even though it is not a fine summer's day 15:37:46 ehird: I reject your parody of Adam Savage and substitute my own. 15:37:46 AnMaster: I don't know the Swedish system, so beats me :D 15:37:49 Anyhoo. 15:37:59 GregorR: D: 15:38:05 ehird, what is it called in English then? Primary school? Or is that for younger? 15:38:20 I got no clue how the English school system works as I said :P 15:38:25 AnMaster: Depends which Swedish level you are talking about :P 15:38:26 Oh look 15:38:29 Melab ha made more edits! 15:38:45 Let's see if they're any good 15:38:48 well I was wondering what the English name for it was ehird 15:38:59 AnMaster: for -what- 15:39:39 ehird, the school "level" or whatever you are in. Like "university" "high school" or such 15:39:50 I don't know what the word for the collection of those are 15:39:58 s/are/is/ 15:40:00 http://en.wikipedia.org/wiki/Education_in_the_United_Kingdom 15:40:01 :D 15:40:08 Or rather http://en.wikipedia.org/wiki/Education_in_England 15:40:08 ehird, thanks 15:41:15 AnMaster: (the bottom line in the graph thingy there, 3 tier system) 15:41:19 well from what I know of you and from what that page says, it would be "secondary school"? 15:41:38 oh ok 15:42:02 heh, I'd never heard of the 3-tier system and I live in England 15:42:16 ehird, so "upper school"? 15:42:30 AnMaster: I haven't actually heard it being called "upper school" so I can't say for certain. 15:42:37 But I imagine so. 15:42:40 Asztal: Weird 15:42:40 what would you call it? 15:42:55 AnMaster: If it's the same thing as it looks like on that graph, I'd call it high school. 15:43:01 ah 15:43:02 Every school I've seen up north has been the second kind. 15:43:16 AnMaster: here in England we have primary school, secondary school, college (which is sometimes part of secondary school), and sometimes university 15:43:20 I live up north too. 15:43:29 ais523: Not in the 3-tier system. 15:43:52 I haven't ever seen a non-3-tier school, there was some hullabaloo about people complaining about switching schools to 3-tier a few years ago. 15:44:02 Huh, that's confusing. 15:44:08 College is a separate level from University? 15:44:14 GregorR: 6th form college 15:44:14 Maybe I live in BIZZARO BRITAIN 15:44:20 and yes 15:44:22 GregorR: That's always bemused me too 15:44:23 it's when you do A levels 15:44:32 http://en.wikipedia.org/wiki/Third_oldest_university_in_England_debate 15:44:34 best page title EVER 15:44:40 heh... 15:44:42 A University is just a collection of Colleges in the US :P 15:45:02 this reminds me of the edit war about whether to link to http://thethirdbestwebsiteintheuniverse.com or http://the3rdbestwebsiteintheuniverse.com 15:45:23 Well in Sweden we have grundskola then gymnasie, then university. Grundskolan (Adding an n here means same as "the" in English) is usually divided in three stages, lower, middle, upper. Usually lower and middle stages are co-located at the same school, and the upper stage is often located separately 15:45:54 I don't know why that is so, maybe because they start teaching chemistry and physics in the upper stage ;) 15:46:04 Presumably grundskola is Swedish for "grunge school" and gymnasie is Swedish for "gymnasium" 15:46:09 oh, there's also nursery before primary school, but that's optional and many children never go to nursery 15:46:29 college is optional too, but you're generally considered stupid if you fail to go there (unlike university, where many people never go) 15:46:34 I went to nursery! 15:46:40 so did I, as it happens 15:46:46 GregorR, gymnasium and gymnasie are both valid spellings of the same word, meaning the same. Just a case of language changing over time I think 15:46:47 ais523: this reminds me of the edit war about whether to link to http://thethirdbestwebsiteintheuniverse.com or http://the3rdbestwebsiteintheuniverse.com 15:46:48 wtf 15:46:55 GregorR, and "gymnasie" is like high school 15:47:03 I went to the US equivalent of nursery school (preschool) 15:47:15 grundskolan is like "basic school", literally translated 15:47:16 ehird: you get edit wars about all sorts of silly things 15:47:16 also, grunge school is an awesome name 15:47:20 I'm going to GRUNGE SCHOOOOOOOL 15:47:21 ais523: what article 15:47:23 http://en.wikipedia.org/wiki/Special:Search?go=Go&search=WP:LAME is one of my favourite humor pages 15:48:15 http://en.wikipedia.org/wiki/The_Best_Page_in_the_Universe 15:48:21 sorry, I found it quickly 15:48:24 but the copy-and-paste was weird 15:48:29 it kept higlighting backwards for some reason 15:48:45 and I meant page not website 15:48:54 although presumably the URLs I gave are also taken by now... 15:59:30 -!- sebbu has joined. 16:04:23 * ais523 starts one of eir assignments for University 16:04:26 *their 16:04:35 I'm amused, because it uses Booleans with 9 different possible values 16:04:46 none of which are FILE_NOT_FOUND, unfortunately 16:14:47 -!- oklocod has joined. 16:30:51 ayo 16:31:20 hi psygnisfive 16:31:26 howsit goin guys 16:31:35 slowly and tiredly 16:31:39 :( 16:31:50 conversing with yourself can be like that, i imagine 16:32:07 ah, I'm conversing with other people elsewhere 16:32:13 but not here! 16:32:14 :D 16:34:02 I don't mind monologuing really 16:34:06 as #esoteric has lots of logreaderes 16:34:09 *logreaders 16:35:13 ais523, "Booleans with 9 different possible values"? 16:35:18 Do you have time telling more? 16:35:19 yep 16:35:23 yes, I think so 16:35:27 it's in one of the IEEE standards 16:35:32 to represent real physical booleans 16:35:36 err 16:35:39 which are normally 0 or 1 16:35:40 this is a joke right? 16:35:46 but can take on all sorts of other values in weird cases 16:35:49 and not a joke at all 16:35:50 or are you actually serious? 16:35:52 huh 16:36:00 inside a computer, wires are normally at 0V or 5V for 0 or 1 16:36:05 but there are other possibilities 16:36:13 for instance, a wire might be held at 0V via a resistor 16:36:17 ais523, aren't boolans *defined* as being either true/false, with implementation defined values for true and false? 16:36:25 AnMaster: depends on the language 16:36:34 if you're simulating hardware, they're defined to have 9 possible values 16:36:38 hm 16:36:38 ah 16:36:43 even C has 3 values for booleans, really 16:36:46 true/false/uninitialised 16:36:49 haha 16:37:02 the 9 possible values includes 3 sorts of uninitialised 16:37:04 ais523, that only applies to non-static variables 16:37:08 well, ok 16:37:12 iirc static variables are initialised to 0 16:37:14 but still, do you see what I'm getting at 16:37:17 I *think* it is in the standard 16:37:19 (and yes, they are) 16:37:20 Hey, you are all probably experts in this field: I have this plate made out of "compound marble" (a sort of marble/plastic composite material, apparently) and I need two circular holes in it (with diameters of 34 and 45 mm). Where can I find a company (in Finland, preferrably Espoo) that can make me such holes? 16:37:25 (or NULL for pointers) 16:37:35 -!- kar8nga has joined. 16:37:36 (but 0 in a pointer context _is_ NULL) 16:37:41 ais523, that is only because NULL is defined to be 0 16:37:47 same as false happens to be 16:37:49 ugh, no it isn't 16:37:54 NULL can have a non-zero value 16:38:05 a literal constant integer 0 gets converted to NULL when casted to a pointer, though 16:38:11 ais523, ah yes 16:38:12 unlike a non-constant integer with the value 0 16:38:19 hm right 16:38:43 anyway, there's no reason why a C interp couldn't assign an "uninitialised" value to variables before they were initialised 16:38:44 I'm not quite sure you can have the macro 'NULL' defined to a nonzero value. 16:38:47 anyway yeah true/false are defined differently in different languages. Bash inverts it for example, 0 is true, non-zero is false 16:38:48 and error when they encountered it 16:38:57 fizzie: no, you can't, only (0) or ((void*)0) 16:39:01 but (int)NULL can be nonzero 16:39:23 so, VHDL has 9 possible values of std_logic_bits (which are effectively booleans) 16:39:27 0 and 1 16:39:37 then weak 0 and weak 1 which are like 0 and 1 except if there's a short circuit 16:39:47 (called L and H) 16:39:49 and at least some languages seems to use special types, such as scheme (#t, #f) erlang (the atoms: true, false) 16:39:58 then there's X, which means you have a short circuit that actually catches fire 16:40:07 W which means you've got a value somewhere between 0 and 1 16:40:16 U for uninitialised 16:40:20 ais523, anyway couldn't you define +6V to be true? or whatever 16:40:23 - for if you explicitly don't care 16:40:32 and Z for a wire which isn't connected at all 16:40:34 AnMaster: yes 16:41:03 ais523, and +6.5V, +7V, and so on. So there are an infinite number of "true" 16:41:15 depending on the current circuit 16:41:18 well, yes 16:41:25 in practice 0V and 5V are most commonly used 16:41:34 except RS-232 uses -12V and +12V because it's weird 16:41:43 ais523, no idea, but maybe you want to use less in a low power application? 16:41:53 don't know if that would make sense 16:42:00 well, probably, I suspect inside processors they only use millivolts 16:42:05 this is rather beside the point, though 16:42:19 as 01LHXWU-Z logic works fine no matter what voltages you use 16:42:33 ais523, also what was that about fire? 16:42:45 if you connect 0 to 1 directly in simulation, you get X 16:42:51 if you try it in real life something normally catches fire 16:42:55 hm 16:43:00 as you're shorting out the power supply 16:43:07 ais523: Usually something just turns off. 16:43:12 unless there is a fuse? 16:43:20 well, fuses are designed to catch fire first 16:43:25 to save the rest of the circuit 16:43:41 ais523, err aren't some like fuses you just press a button to re-arm? 16:43:43 fizzie: clearly you work with much higher-grade power supplies than I normally do... 16:43:51 AnMaster: those are circuit breakers, yes 16:43:55 they're fuse-like but resettable 16:43:58 ah that is the English word 16:44:00 and don't need to catch fire to work 16:44:09 they're a lot more expensive than fuses, though 16:44:16 so normally they're only used for buildings 16:44:22 rather than individual plugs 16:44:57 ais523, I think I have seen it used for individual plugs... in a physics classroom :D 16:45:07 well, I wouldn't blame them for doing it there 16:45:14 -!- oerjan has joined. 16:45:15 I was in a physics classroom :( 16:45:25 Slereah_: why the :(? 16:45:26 We did bitwise operation this morning, for some reason 16:45:31 ais523: I don't really do electronics, but I think computer power supplies quite often manage to turn off instead of catching fire if there's a short somewhere. 16:45:33 huh 16:45:45 fizzie: sometimes, often the chip in question burns out first 16:45:49 or at least gets hot 16:46:05 after a while as an electronic engineer, you can detect short circuits by temperature 16:46:12 (if it burns your hand, there's a short circuit...) 16:46:13 get hot? Then what is the point of the fan in the power supply? 16:46:19 AnMaster: hotter even than that 16:46:32 modern computers get hot even without short circuits 16:46:38 but short circuits make them still hotter 16:46:53 yeah, touching a pentium 4 would burn your hand, even if there wasn't a short circuit 16:47:14 I seen a p4 run fine at 60 C or so 16:47:20 *shudder* 16:47:37 you have to be careful at those sort of temperatures 16:47:45 as most hard drives start forgetting data at about 52 degrees C 16:47:48 The on-chip temperature thing on this Athlon X2 says it's running at 35 degrees (core 0) / 30 degrees (core 1). 16:47:52 my current cpu, a sempron, only reach above 40 C on very hot days, currently it is 32 C 16:48:29 oh btw: AnMaster: ehird: are you happy with how you're credited in the current C-INTERCAL README? 16:48:35 s/README/NEWS/ 16:48:37 how am i credite 16:48:37 ais523, well the case had a fan in the front iirc on that computer, and the hardrives where close to that, also one fan in the back, then one on the CPU, then one in the PSU 16:48:39 d 16:48:46 ehird: with your real name 16:48:52 ais523, I ask same question as ehird, and for what? 16:48:53 yep, that's fine 16:49:02 although yeah 16:49:04 AnMaster: for finding bugs 16:49:04 let me link you to it 16:49:04 what for ;-) 16:49:09 also finding bugs 16:49:14 ais523, fine with real name, but don't include any email 16:49:22 oh 16:49:30 you can include my email if you wanted but i don't have a permanent one atm 16:49:30 no email, don't worry 16:49:34 http://code.eso-std.org/c-intercal/NEWS 16:49:43 as i'm likely going to start publicizing my @ehird.net one once I get that 16:49:45 Re INTERCAL, the Wikipedia article -- http://en.wikipedia.org/wiki/INTERCAL -- has broken links for references #2 and #5. 16:49:55 Someone who regularly edits that thing might fix them. 16:50:08 fizzie: good to know, I may fix them at some point 16:50:08 ais523, who reported the -F issue? 16:50:12 they are both available on code.eso-std.org 16:50:14 it is under "Bugs reported by Elliott Hird" 16:50:15 just links to the manual 16:50:22 AnMaster: ehird did first 16:50:24 AnMaster: well 16:50:24 then I fixed it 16:50:25 let's see 16:50:29 it's under "bugs reported by elliott hird" 16:50:29 then it broke again and you reported it the second time 16:50:31 I'm pretty sure I reported it, and you didn't say anything about it back then 16:50:33 do you think you could make a guess :D 16:50:35 but I haven't fixed the new bug yet 16:50:39 ais523, ah right 16:50:50 and unfixed bugs aren't in the changelog 16:52:22 ais523, what is the second entry about really? 16:52:34 the 64-bit things? 16:52:37 er 16:52:38 third 16:52:39 I meant 16:52:52 AnMaster: it's about varargs vs. stdarg 16:52:58 the old method of detecting which one to use was broken 16:53:05 ais523, What did I report it as? 16:53:09 and both you and ehird noticed when trying to compile on architectures that didn't have varargs.h 16:53:18 hm 16:53:24 AnMaster: you reported it as a compile failure, and I figured the bug from the error messages 16:53:30 I don't remember it, but ok. I don't have good memory for such stuff 16:53:51 ais523, sounds vaguely familiar now... 16:53:59 that was ages ago 16:54:04 just after the last release, in April or so 16:54:11 ais523, but wouldn't it just be an autoconf check for the headers? 16:54:15 it is now 16:54:16 it wasn't hten 16:54:18 *then 16:54:28 err how was it done then? 16:54:37 looking for defines in the header files it included 16:54:47 you know, the ones that the standards say should be there 16:54:49 so cfunge-style 16:54:58 only I think they either checked the wrong one, or it was slightly nonstandard 16:55:07 well varargs wouldn't exist, so that would error, but if varargs existed and stdargs didn't, then including that would error. 16:55:19 AnMaster: it checked some other header file for the define 16:55:22 and I don't remember it being defined elsewhere? 16:55:23 probably stdio.g 16:55:25 hm 16:55:25 *stdio.h 16:55:30 as it needs to do varargs for printf 16:55:58 ais523, the va* functions would only be called in the printf function, not needed for the prototype in the header file 16:56:05 so I can't see how that would work either :P 16:56:08 AnMaster: ... 16:56:19 printf needs to know whether to put a ... in the prototype or not 16:56:19 ais523, ? 16:56:35 so it needs to include the headers that define the constants that specify whether to use varargs or stdarg 16:56:43 varargs didn't use the ... syntax 16:57:01 ais523, um, I never actually seen varargs syntax in the wild. 16:57:06 I have 16:57:12 it's prototypeless 16:57:17 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/include/varargs.h seems to have one entry: 16:57:20 the varargs definition for stdio 16:57:21 #error "GCC no longer implements ." 16:57:21 #error "Revise your code to use ." 16:57:23 two 16:57:30 *printf 16:57:33 is int printf() 16:57:45 and then all sorts of magic is used at printf's end to get the argument list 16:57:54 under stdarg.h, of course, it's int printf(char* format, ...) 16:57:55 /usr/include/gentoo-multilib/amd64/stdio.h:extern int printf (__const char *__restrict __format, ...); 16:57:56 err 16:58:00 whatever you say :P 16:58:08 whoops, forgot the restrict and const 16:58:09 seems hard coded to me 16:58:19 AnMaster: that architecture doesn't support varargs.h 16:58:25 which is why C-INTERCAL's old check failed 16:58:33 /usr/include/gentoo-multilib/x86/stdio.h:extern int printf (__const char *__restrict __format, ...); 16:58:37 still seems hard coded? 16:58:42 * AnMaster checks on some other OS 16:58:42 yes, exactly 16:58:49 that's how you code it under stdarg.h 16:58:57 which is right, as varargs.h no longer exists 16:59:02 so the header files don't have to support it 16:59:02 int printf(const char * __restrict, ...); 16:59:04 that is freebsd 16:59:11 if they supported both varargs and stdarg, they'd need two prototypes 16:59:15 one for each mechanism 16:59:16 freebsd 6.3 to be exact 16:59:24 nobody does nowadays though 16:59:28 ais523, I think varargs was dropped years ago 16:59:31 well, yes 16:59:34 C-INTERCAL is years old though 16:59:42 it predates stdarg.h... 16:59:51 ais523, it seems not even gcc 3.x support varargs? 16:59:59 probably not 17:00:01 it was a mess 17:00:09 and actually, it's to do with the headers 17:00:11 not the compiler 17:00:12 well I consider stdargs quite a mess too 17:00:20 as long as all arguments are passed on the stack 17:00:23 which they used to be 17:00:40 well they usually are for variable argument count functions 17:00:54 well, yes 17:00:56 under stdargs.h 17:01:02 which has the ... in the prototype 17:01:05 yep 17:01:07 so the compiler knows to do that 17:01:17 under varargs, the prototype was the same for varargs and non-varargs functions 17:01:22 and everything was passed on the stack 17:01:32 err one question though 17:01:42 1) C89 added stdargs.h 17:01:46 yes 17:01:55 and yes, C-INTERCAL was pre-C89 originally 17:01:58 2) C89 added prototypes too didn't it? At least K&R C didn't have it 17:02:03 and yes 17:02:03 so 17:02:07 " under varargs, the prototype was the same for varargs and non-varargs functions" 17:02:08 stdargs.h needs prototypes to work 17:02:09 my question 17:02:11 What prototypes? 17:02:13 AnMaster: there wasn't a prototype 17:02:18 which is what I meant by it being the same 17:02:32 I should have said the declaration was the same 17:02:37 ah yes NULL = NULL I guess 17:02:40 ==* 17:02:42 ;P 17:04:23 (you should know by now I tend to notice such issues with wording ;P) 17:06:36 ais523, "1. Fixed a typo in the perpet.c version of the help information." 17:06:36 hmm... speaking of C-INTERCAL bugs, is it still possible to write DO ;1 <- ;2 and it will generate (invalid) C? 17:06:40 I don't remember that 17:07:18 ais523, also that reminds me of another bug I reported, that c-intercal generated code with linking errors when trying to run a hello world CLC-INTERCAL program 17:07:21 wb ais523 17:07:29 no idea if that is fixed 17:07:29 (I reported that to esr around 2005/2006, but it doesn't look at first glance as though later versions fixed it) 17:07:50 ais523, you were away? 17:08:04 very well I suggest some log-reading :) 17:08:14 He was away for... a few minutes. 17:08:18 ah 17:08:19 His last message was at 17:02. 17:08:21 It is now 17:08. 17:08:26 * [ais523] idle 00:00:54, signon: Tue Oct 14 22:17:17 17:08:28 hm 17:08:37 AnMaster: link errors? 17:08:37 that shouldn't happen 17:08:37 yes, internet connection failed 17:08:37 I have a bouncer now to avoid quitspamming channels I'm in when that happens 17:08:52 ais523, and yes I remember talking to you about it and you weren't sure how to fix it 17:09:05 he had no link errors 17:09:05 :P 17:09:16 i just said 'wb ais523' when he re-bouncer-connected 17:09:19 AnMaster: do you want to try again? 17:09:24 ais523, this one iirc: http://intercal.freeshell.org/examples/hello.i 17:09:27 the relevant part of the code is really different now from what it used to be 17:09:30 ohh 17:09:33 link errors in cintercal 17:09:33 xD 17:09:48 ehird, no as in link errors when compiling/linking generated program 17:09:57 yes 17:10:03 i thought you meant on irc 17:11:01 Backing up ./configure(-darcs-backup0) 17:11:01 We have conflicts in the following files: 17:11:01 ./configure 17:11:02 blergh 17:11:41 how do you revert a whole file ais523 in darcs? 17:11:49 darcs revert configure just locks up 17:11:59 at: 17:12:01 Shall I revert this change? (1/681) [ynWsfvpxdaqjk], or ? for help: a 17:12:15 AnMaster: it would do, probably 17:12:18 given the nature of configure 17:12:27 the easiest way is to copy it from _darcs/pristine 17:12:32 ah ok 17:12:56 ais523, also it will just be re-generated with newer autotools again 17:13:07 well, yes, probably 17:13:10 is that a problem? 17:13:20 that's what's meant to happen... 17:13:43 ais523, not really, unless you change it making darcs pull result in conflicts ;P 17:14:04 well, in theory you shouldn't store the configure file in the repo at all, for that sort of reason 17:14:05 ais523, most other project leaves configure and other generated files out of repo, having users generate it 17:14:09 yep 17:14:13 but I assume you got some reason 17:14:16 maybe related to DOS 17:14:18 who knows 17:14:23 so that people can download the repo and it works, as it happens 17:14:30 without having the maintainer tools available 17:14:34 ais523, well configure would be generated for release tarballs 17:14:38 yes, it would be 17:14:50 but I try to keep the repo and release tarballs in sync 17:14:53 as in, containing the same files 17:14:55 and do you think most users of the darcs version will lack autotools? 17:15:00 I have no idea 17:15:05 I did, for ages 17:15:07 so it seems plausible 17:15:27 ais523, that would have been quite a problem for a *maintainer* 17:15:36 you'd be surprised 17:15:43 I edited the configure script with search-and-replace 17:15:48 and kept in in sync with config.in 17:15:53 if you're trying to infuriate AnMaster 17:15:57 i can't think of a better way to do it 17:15:58 kudos 17:16:02 well first you have to remove a few PLEASE from that hello.i it seems 17:16:04 ehird: I'm not, I'm just telling the truth 17:16:13 ais523: ... which is possibly the best way :D 17:16:16 AnMaster: yes, CLC-INTERCAL and C-INTERCAL define comment lines differently 17:16:31 you need to put DO in front of every line in hello.i for C-INTERCAL to recognise it 17:16:32 ais523, should I remove " PLEASE PLEASE PLEASE (PRETTY PLEASE)" maybe? 17:16:43 well, every ERROR: line 17:16:50 there's a difference in handling between the two langs 17:17:05 I just removed the PLEASE PLEASE... 17:17:08 $ ./ick hello.i 17:17:08 /tmp/cczl1GlE.o: In function `ick_og9b59730': 17:17:08 hello.c:(.text+0x1ce): undefined reference to `ick_or0' 17:17:09 and so on 17:17:10 in CLC-INTERCAL, DO COME FROM .1 ERROR: This should never be reached is two statements 17:17:15 ais523, that was the error 17:17:17 in C-INTERCAL, it's one statement 17:17:19 I'm 100% sure I reported it before 17:17:20 ah, and ok 17:17:24 and you said it was hard to fix 17:17:24 and yes, you did 17:17:28 I wonder what happened to that? 17:17:33 ais523, do you have a bugzilla? 17:17:34 it means the typecaster's got lost somewhere 17:17:35 ;P 17:17:47 i never, ever use bugzillas 17:17:55 AnMaster: http://bugs.debian.org/cgi-bin/pkgreport.cgi?ordering=normal;archive=both;src=intercal;repeatmerged=1 17:17:57 not a bugzilla 17:17:59 but similar 17:18:03 that's Debian's 17:18:04 ah 17:18:04 but I read it 17:18:14 bug reporting is a form where you enter your problem as plaintext, and it gives you a URL to track people's comments 17:18:19 however, if you use it atm Debian will go mad 17:18:20 ais523, I think launchpad may have one too? 17:18:24 the -developers- can handle stuff like priorities 17:18:28 probably, but that's for Ubuntu only 17:18:31 ais523, yeah 17:18:38 and they've been really bad at forwarding bugs to anyone 17:18:45 I reported a typo in the man page and Debian never saw it 17:18:51 so I've just been reporting directly to Debian recently 17:18:55 ais523: worse than gentoo? 17:19:00 no idea 17:19:03 probably, but that's for Ubuntu only <-- huh? 17:19:04 presently they're at 0% 17:19:11 in my experience 17:19:22 so it's hard for Gentoo to be worse than that 17:19:23 err 17:19:24 wrong one 17:19:28 however, if you use it atm Debian will go mad 17:19:31 ais523: gentoo's at -1% - they make major modifications and then don't tell people 17:19:32 damn scrolling window 17:19:36 it scrolled while I selected! 17:19:39 so the original devs get bugs 17:19:41 due to gentoo changes 17:19:43 AnMaster: because their C-INTERCAL maintainer resigned from that 17:19:51 probably for time reasons or whatever, I don't know 17:19:51 so a lot of devs just say 'don't report problems on gentoo' 17:19:53 hm 17:19:54 and nobody took it up atm 17:20:00 also what do you mean gentoo at -1%? 17:20:07 Can we *PLEASE AVOID A FLAMEWAR* 17:20:24 distro choice is subjective anyway 17:20:32 some prefer source based, other want binary based 17:20:34 and so on 17:20:42 there is no reason to flame about it 17:20:53 * AnMaster considers a flame war about having a flame war 17:20:55 what I mean is, if you report a bug against C-INTERCAL in Debian atm, the core Debian developers have to try to fix it 17:21:02 and they're busy with other things 17:21:11 last time it happened I saved them by sending an upstream patch 17:21:24 ais523, hah 17:22:27 (that was the configure failing in dash bug) 17:22:41 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=485066 17:23:48 ha 17:24:12 but why on earth does anyone care about dash? 17:24:32 it's smaller than bash 17:24:40 since the () version would be valid according to POSIX iirc 17:24:43 and there is at least one extreme disk-space optimiser in Debian 17:24:46 and yes, I agree 17:24:56 the changelog is wrong, it was a dash-only bug 17:25:00 even though it would declare an array 17:25:00 rather than a bashism 17:25:22 but dash is the default /bin/sh on Debian 17:25:24 ais523, didn't you report that as a bug in the changelog? 17:25:33 no, couldn't be bothered 17:25:36 it's not important enough 17:25:42 ais523, you should IMO just to mess with them 17:25:42 to report a slight mistake in someone else's changelog 17:25:54 AnMaster: I want to stay on good terms with them, though... 17:26:29 ais523, I think it is spreading false and negative information about POSIX shell syntax as wekk as being rather arrogant 17:26:32 ;P 17:26:40 this would make such a great flame war... 17:26:41 but no 17:26:51 ais523, and yes it would, but no I wouldn't take part in it 17:27:00 no, neither would I 17:27:10 we're effectively having a flame war by hypotheticals atm, though 17:27:22 "hey, if someone flamed me by saying X, I'd flame them back by saying Y..." 17:27:25 ais523, but I would still contact them about it, as they are clearly misinformed ;P 17:27:58 probably serves me right for writing funky syntax in something that is irrelevant anyway 17:28:05 besides, that code isn't even /in/ C-INTERCAL atm 17:28:18 ais523, well yeah, I wouldn't declare an array there either 17:29:28 (basically since I coded so much bash I would spot it as an array from, maybe not a mile, but maximum reading distance, depending on font, size of text, light level, and so on) 17:31:07 ais523, anyway I'm pretty sure you said, that http://intercal.freeshell.org/examples/hello.i (with corrected please level) should still not generate that linking error, right? 17:31:58 ais523, also it is possible to write programs that work on bot C-INTERCAL and CLC-INTERCAL? 17:32:16 for example, that hello world 17:33:18 ugh 17:33:22 sorry about that 17:33:26 the last I saw was a relatively funny joke from AnMaster about array syntax and the distance at which e could read it 17:33:38 ais523, anyway I'm pretty sure you said, that http://intercal.freeshell.org/examples/hello.i (with corrected please level) should still not generate that linking error, right? 17:33:38 ais523, also it is possible to write programs that work on bot C-INTERCAL and CLC-INTERCAL? 17:33:38 for example, that hello world 17:33:41 was all since then 17:33:59 it's pretty easy to write a C-INTERCAL/CLC-INTERCAL polyglot 17:34:10 that hello world is full of CLC-INTERCAL-specific features 17:34:20 ais523, hm what about throwing J-INTERCAL into that mix too? 17:34:27 and doesn't work on C-INTERCAL even with syntax corrected and in CLC-INTERCAL emulation mode 17:34:37 AnMaster: still possible, but you'd be restricted to INTERCAL-72 features and COME FROM 17:34:43 ah 17:34:47 and have to steer away from some thorny parts 17:35:10 ais523, does that include the needed output for hello world? 17:35:11 also, flow control would be impossible on CLC-INTERCAL's default settings, as INTERCAL-72 flow control is deprecated in CLC-INTERCAL 17:35:19 hehe 17:35:27 AnMaster: actually hello.i doesn't output anything 17:35:34 oh? 17:35:38 it errors if its input isn't "Hello, world!" 17:35:38 I don't have clc around 17:36:08 and CLC-INTERCAL does text I/O differently from J-INTERCAL and C-INTERCAL 17:36:28 it's easy to write a 4-way polyglot between INTERCAL-72, C-INTERCAL, J-INTERCAL and CLC-INTERCAL's C-INTERCAL emulation mode, though 17:36:30 ah 17:36:44 which reminds me, I need to send Claudio some patches to improve that emulation mode at some point 17:37:12 ais523, you got the local changes already? 17:37:19 sort of 17:37:20 not really 17:37:23 -!- puzzlet has quit (Remote closed the connection). 17:37:25 it's kind-of hard to explain 17:37:31 -!- puzzlet has joined. 17:38:24 hm 17:38:33 ais523, ok 17:38:49 ais523, still shouldn't it error out before linking time? 17:38:56 c-intercal on that hello world I meant 17:39:33 no, it should be a runtime error 17:39:38 ais523, ok that then 17:39:44 there is a genuine error you've identified there 17:39:50 but it'll be a pain to track down 17:39:57 I need to figure out wtf the type-caster is doing 17:40:36 ais523, I seem to recall you said it was something with invalid code in comments needing to be around in case they were ever restored 17:40:38 or something such 17:40:48 yes, it is to do with that 17:40:54 but in particular, it's something that looks like an expression 17:41:01 yet doesn't type properly, and the typecaster didn't notice 17:41:07 it's the typecaster not noticing that is the bug here 17:41:12 ais523, got any trace support then? 17:41:20 not for the typecaster, probably I should 17:41:21 dumping parse tree or whatever 17:41:34 I can dump parse tree, but annoyingly the dump doesn't list data types 17:41:51 ais523, does that information exist at the time of the dump? 17:41:53 also, I gave up trying to read C-INTERCAL parse tree dumps years ago 17:41:55 and no, it doesn't 17:41:59 ah 17:42:00 well 17:42:02 type inference is done later 17:42:14 also why did you give up+ 17:42:15 ? 17:42:25 doesn't OIL operate on those trees anyway I thought? 17:42:26 because they're unreadable 17:42:34 OIL is a readable version of the same thing 17:42:51 would dumping it to oil be impossible? 17:42:53 I have a command to translate an expression parse tree into OIL 17:42:58 but that doesn't contain data types either 17:43:04 hmm... maybe I should fix it so it does 17:44:19 ais523, hm a good idea for a name for a tool related to OIL would be CO2 or something such 17:44:40 why? 17:44:52 by the way, I'm working on a new INTERCAL-related tool atm 17:45:15 it's called ickopter, and it's a generic wrapper script that can convert command-line options from any INTERCAL compiler I know of to any other 17:45:15 ais523, considering what cars emit when they console certain parts of the raw oil 17:45:20 ah, ok 17:45:25 after those part have been separated 17:45:39 ais523, I thought that would be a pretty clear connection? 17:45:47 also it can work out the options from the file extension (like CLC-INTERCAL does), or from the modification time (which nothing does atm but something ought to) 17:45:55 AnMaster: not all that obvious, really 17:47:12 ais523, hm, the environment and global warming have been probably been the topic that have grown most in media during the last 1-2 years or so 17:47:15 at least in Sweden 17:47:32 even the oil=petrol connection isn't really obvious to someone British 17:47:38 ais523, err why not? 17:47:42 and then, you have to consider what happens when you set it on fire 17:47:45 ais523: somehow i think that utility needs a "hell" in front 17:47:48 raw oil is used to make petrol 17:47:50 AnMaster: oil is a raw material for petrols 17:47:59 ais523, yes exactly 17:48:02 how isn't that clear? 17:48:02 but that doesn't make them obviously connected 17:48:07 ais523, hm 17:48:12 it would be like calling a program to operate on a tree structure PENCIL 17:48:24 ais523, makes perfect sense :) 17:48:33 took about 3 seconds or so 17:48:46 it's about as convoluted as Cockney rhyming slang, which generally has to be explained for people to understand it 17:49:12 err, of course wooden pencils are made from wood 17:49:24 actually, I was referring to the paper on which the pencils wrote 17:49:28 which is made from trees 17:49:42 ais523, ah ok, both ways work 17:49:47 that is beautifully convoluted 17:49:49 so it's a double-pun 17:49:53 I have in front of me two pencils 17:49:55 such a pity that both puns are really bad 17:49:56 one is a mechanical one 17:50:08 the other is a traditional wood-encased one 17:50:16 that you use a pencil sharpener for 17:50:45 ais523, anyway I don't think the connection is very far fetched at all 17:50:55 no, but it's still ridiculous 17:51:05 also I got a scheme pun for whenever scheme is on the topic, that will even make oerjan's puns seem good 17:51:26 however I won't tell what it is until I find some place to fit it in the discussion :P 17:51:30 oerjan's puns are good 17:51:40 AnMaster: so you're plotting to scheme? 17:51:40 ais523, well this is kind of good and horrible at the same time 17:51:46 oerjan, not that one 17:51:50 but that was good too :) 17:52:26 damn, the pun would have fitted perfectly as a response to oerjan 17:52:28 oh werll 17:52:28 well, I think Guile was named for that pun too 17:52:29 well* 17:52:48 * AnMaster waits for the next chanse 17:52:50 chance* 17:54:08 what does common lisp use for true and false btw? I think I heard mentioned that false was the empty list/NIL? 17:54:10 or? 17:54:18 T and NIL 17:54:25 t and nil 17:54:29 in lowercase IIRC 17:54:33 hm 17:54:44 is it case sensitive? 17:54:51 not sure 17:55:00 maybe it depends on the implementation, there are too many CL implementations 17:55:05 * oerjan didn't think so 17:55:14 for scheme: as far as I understood it, r5rs is case insensitive, but r6rs is case sensitive? 17:55:45 is that your bad pun? 17:55:50 no 17:55:52 if so, I don't get it at all 17:56:14 ais523, well you will spot the pun when you see it ;P 17:56:30 ah, so better than Cockney rhyming slang then 17:56:37 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 17:57:22 ais523, hm that slang must be horrible 17:57:26 any example? 17:57:26 yep 17:57:35 yes, "apples" instead of "chairs" 17:57:42 -!- puzzlet has joined. 17:57:43 because "apples and pears" go together 17:57:47 and "pears" rhymes with "chairs" 17:57:50 err 17:57:51 they're all like that 17:58:04 it messes with your loaf 17:58:08 ais523, pears nad chairs doesn't rhyme in the English I speak at least? 17:58:09 instead of saying X, you say something associated with something that rhymes with X 17:58:17 and* 17:58:23 AnMaster: they do in British English, especially if you use a Cockney accent 17:58:28 ais523, hm 17:58:40 ais523, I try to speak Oxford English hm... 17:58:54 another example is "plates" = "feet" 17:59:09 err... no I don't get that one 17:59:15 nor did I get oerjan's joke above 17:59:17 "plates of meat" is the clue you need 17:59:17 about loaf 17:59:27 and oerjan's isn't a joke, it's just more Cockney rhyming slang 17:59:31 on "loaf of bread" in this case 17:59:35 ais523, plates of meat would mean a plate with some meat on it? 17:59:38 you really have to learn them, they're basically impossible to guess 17:59:38 AnMaster: yes 17:59:39 or is it some idiom? 17:59:45 no, not really an idiom 17:59:49 ah meat feet. 17:59:50 right 17:59:50 thus basically impossible to guess in the first place 18:00:02 bread and head? 18:00:05 yes 18:00:08 gah that is terrible 18:00:22 if they just said the word that rhymed, it wouldn't be too bad as at least you'd have a chance to guess 18:00:33 but something associated with a word that rhymes, you have basically no chance 18:00:37 ais523, so it is a social group marker? 18:00:41 yes, pretty much 18:00:44 quite common in London 18:00:48 at least it used to be 18:00:54 except I don't understand how they can share it in the first place 18:01:01 neither do I 18:01:05 * oerjan read that it was invented to fool the police spies 18:01:08 generally speaking you have to have a parent explain 18:01:32 ais523, no sane parent should teach that 18:01:36 oerjan: at least that makes some kind of sense 18:01:46 * AnMaster agrees 18:01:49 AnMaster: well, it's a useful skill to figure out wtf Londoners are talking about 18:02:04 bbiab food 18:07:37 also the scheme joke will only work in a context where it is clear that the stuff discussed is about scheme 18:07:50 maybe "generic functional languages" would work too 18:08:19 also I think ehird would agree on using it on r6rs 18:08:30 * AnMaster likes leaving cryptic clues 18:09:10 actually, it would work in any lisp context, not just scheme 18:09:23 well i sure hope it's a functional pun 18:09:32 oerjan, was that a pun? 18:09:36 * AnMaster is unsure 18:09:40 of course 18:09:52 well I still can't spot it 18:09:52 so 18:10:03 * AnMaster runs over oerjan with a car for making such a bad pun 18:10:05 functional has an ordinary meaning 18:10:11 (and that was the pun) 18:10:12 AnMaster: "functional" = "working" in everyday English 18:10:40 * AnMaster wonders if anyone will spot it 18:10:47 I am fully functional 18:10:49 * oerjan spotted a car 18:10:53 And trained in many techniques 18:10:55 I did once you pointed it out 18:11:02 ais523, bad wasn't it? ;P 18:11:11 yes, very 18:11:28 :) 18:11:35 back 18:12:05 hm 18:12:13 (define bicycle car) 18:12:44 hmm... Lisp should have all atoms matching ^c[ad]+r$ as builtins 18:12:49 ais523, I suspect it may actually be possible to make some good jokes on the car theme 18:13:06 yes, probably 18:13:07 ais523, having all of an infinite set would to too much haskellish ;P 18:13:11 that is not one of them though 18:13:12 AnMaster: well you need a car to get ahead 18:13:24 oerjan: ok, that one's better 18:13:26 heh yes 18:13:56 and that was a combined scheme/haskell pun, even 18:14:06 oerjan, didn't spot the haskell part? 18:14:29 or wait 18:14:31 oerjan: I wouldn't call it haskell 18:14:35 just list terminology in general 18:14:38 ahead was a reference to the list head 18:14:41 clearly 18:14:54 a terminology used in erlang too for lisp-style lists 18:14:57 head and tail 18:15:06 in haskell head is the function name 18:15:22 You will often see [H|T] as a pattern matching the head and tail of a list in erlang 18:15:39 Prolog calls them head and tail too 18:15:47 head for the first element, tail for the rest of the list 18:15:50 so not very haskellish in fact 18:15:51 and that's also [H|T] 18:16:38 ais523, also I recently found out some more stuff about the prolog and erlang's relation to each other 18:16:42 you may be interested 18:17:26 ais523, http://rafb.net/p/5tVOcH94.html 18:17:57 and some bits of syntax, but the actual programming is very different as far as I understood prolog 18:19:00 ais523, also: http://rafb.net/p/0cHkQ174.html 18:19:11 ah, looks interesting 18:19:17 and yes, I expect programming would be quite different 18:19:34 ais523, in fact that weird stuff like :- in the first paste, is not valid Erlang 18:19:38 whatever it is I don't know 18:19:52 I would guess prolog from the context 18:19:56 :- is one of the most common keywords in Prolog 18:20:14 ais523, looks like an operator to me, but ok 18:20:17 and what does it do? 18:20:19 probably third after , and . 18:20:30 AnMaster: it translates as 'if', but it doesn't really work the same way as if in other languages 18:20:47 it means that whatever's to the left of :- is only true some of the time, and what's to the right describes when 18:21:01 ais523, sounds like the perl variant? 18:21:11 die if x == y 18:21:13 or whatever it was 18:21:15 yes, it's a bit like Perl if 18:21:24 ais523, ok so it differs from that too?! 18:21:35 yes 18:21:48 it's basically one the fundamental ideas of Prolog which aren't in other languages 18:21:54 it's a bit like function definition 18:22:08 think about it this way: in C, you can define a function 18:22:08 ais523, ah it declares a fact is true when foo, doesn't execute code when foo? 18:22:18 or maybe not that either 18:22:19 well, except the condition is the code often 18:22:28 in C, if you define a function more than once, that's a link error 18:22:38 ais523, unless it is a common symbol 18:22:46 or various other linker stuff 18:22:47 well, yes, but that's missing the point here 18:22:52 right 18:22:59 in Prolog, :- sort-of defines a function 18:23:05 but you can and usually do give more than one definition 18:23:19 and the function succeeds if the code to the right of the :- does not fail 18:23:21 ais523, you mean like different entry points matching different conditions? 18:23:24 yes 18:23:31 except you can have different entry points matching the same conditions too 18:23:44 and the compiler tries them until one of them works 18:23:46 foo(1) -> {ok, 1}; 18:23:55 foo(2) -> {error, 2}. 18:24:05 that is erlang code 18:24:15 for two different entry points for the same function 18:24:23 that would basically work in Prolog too, but it wouldn't need :- because the function would have no code 18:24:31 foo(1, pair(ok,1)). 18:24:33 ais523, well you could have code too 18:24:35 foo(2, pair(error,2)). 18:24:39 just an example 18:24:43 (where pair is a data type you define yourself 18:24:44 ) 18:24:56 ais523, efunge uses pattern matching in function clause a lot 18:25:01 so does Prolog 18:25:01 in fact most erlang code does 18:25:11 it can use pattern matching for the return value too, though, because that's just an argument 18:25:25 in fact most Prolog functions can be called backwards, you give them the return value and they return the arguments you need 18:25:42 ais523, I think one function have something like 50 or so different entry points in efunge 18:25:42 let me show you a famous example of Prolog code, if I can remember it: 18:25:48 member(X, [X|_]). 18:25:50 it is the main process_instruction 18:26:09 member(X, [_|T]) :- member(X, T). 18:26:34 ais523, well that wouldn't work in erlang 18:26:40 probably not 18:26:44 since you got all "match any" in all cases 18:26:48 it's a very Prolog-style function 18:26:54 X and T being variable names in erlang 18:27:00 they are in Prolog too 18:27:14 ais523, also see line 72-397 in http://bzr.kuonet.org/efunge/trunk/annotate/113?file_id=finterpreter.erl-20080914111420-p21e8gml3lurds4a-1 18:27:15 basically, it tells whether its first arg is a member of its second arg 18:27:23 so member(2,[1,2,3,4,5]) succeeds 18:27:27 and member(6,[1,2,3,4,5]) fails 18:27:46 ais523, ah wait that could work 18:27:47 hm 18:27:47 however, more interestingly, member(X,[1,2,3,4,5]) returns up to 5 times with X set to each of the numbers 1 to 5 18:27:58 and you can even do member(1,List) 18:28:05 but would beed to be rewritten a bit 18:28:06 that will return [1,_] the first time 18:28:10 like having a body for the first clause 18:28:13 and so on 18:28:16 sorry, [1|_] 18:28:22 if that fails, it'll try [_,1|_] 18:28:26 then [_,_,1|_] 18:28:27 and so on 18:28:41 however, more interestingly, member(X,[1,2,3,4,5]) returns up to 5 times with X set to each of the numbers 1 to 5 18:28:47 now that wouldn't happen in erlang 18:28:48 also 18:28:54 is that like COME FROM? 18:28:58 no 18:29:00 since you seem to need threads there 18:29:00 it's backtracking 18:29:05 ah right 18:29:06 it does one at a time 18:29:09 forgot that thing 18:29:15 e.g. member(X,[1,2,3,4,5]), X>3 18:29:24 will succeed up to twice before failing 18:29:28 with X=4 and X=5 18:29:47 would be it correct to call prolog an out-of-order language? 18:29:51 yes, sort of 18:29:58 except for practical reasons some out-of-orderings don't work 18:30:00 for both meanings? 18:30:01 ;P 18:30:15 but member(X,[1,2,3,4,5]),member(X,[3,6,9]) works, for instance 18:30:19 and binds X to 3 18:30:25 bah... you didn't get that joke 18:30:26 it seems 18:30:27 (or fails if X was already bound to something that wasn't 3) 18:30:31 and yes, I did 18:30:32 eventually 18:30:38 oh that bad then 18:31:00 thinking in Prolog is really strange 18:31:06 it's one of the only langs of its type 18:31:08 ais523, anyway did you look at the link I pasted? 18:31:10 yes 18:31:38 normally 1-5 entry points or so, probably 1-3 18:31:44 the syntax at the end is valid Prolog, but bad style 18:31:49 tail recursive functions tend to have 2 at least 18:31:53 unless they loop forever 18:31:56 like a main loop 18:32:00 and Prolog programs can have millions of entry points to a function 18:32:06 normally when the function is being used as a database 18:32:08 the syntax at the end is valid Prolog, but bad style ?? 18:32:15 AnMaster: it declares 3 variables 18:32:17 and doesn't use them 18:32:26 ais523, see the _ in front? 18:32:32 no_backtracking_no_insert_delete_duality_magic(_,_,_) :- moo. 18:32:35 would be better syntax 18:32:49 ais523, no, not that link... 18:32:54 ah, which link? 18:33:02 ais523, also see line 72-397 in http://bzr.kuonet.org/efunge/trunk/annotate/113?file_id=finterpreter.erl-20080914111420-p21e8gml3lurds4a-1 18:33:11 that one 18:33:59 yes, that sort of thing would be common in Prolog too, for the same reasons 18:34:01 hm that url is illogical, but since I renamed the file I guess it makes sense 18:34:06 if you were writing it imperativish 18:34:10 ais523, what bit of it? 18:34:15 process_instruction() is huge 18:34:26 which is quite uncommon in erlang 18:34:30 using an argument to a predicate to make what's effectively a switch statement 18:34:44 ofc, Prolog would do it the other way round, too 18:34:54 the other way around? 18:34:57 unswitch? 18:35:01 sounds like something for intercal... 18:35:02 you could give it the input and output fungespace 18:35:12 and it would work out what command it needed to run to go from one to the other 18:35:30 like a switch statement, except you don't tell it the control variable and it figures out what it is for you 18:35:38 ais523, ah no, fungespace isn't stored as single assignment in efunge because the performance got so terrible from that, it is stored using something called an ets table 18:35:56 basically I didn't want to wait several minutes for mycology to finish 18:35:57 well, can you pass it as an argument to a function or predicate or whatever Erlang calls it? 18:36:10 ais523, the fungespace there is just a handle 18:36:17 ah, in that case it would work just fin 18:36:19 *fine 18:36:23 you'd just give it input and output handles 18:36:36 ais523, ets tables are implemented in the C parts of erlang 18:36:45 which both had a funge-space already in them 18:37:00 hmm... in Prolog you'd probably store funge-space with self-modifying code 18:37:03 and are modify in place, meant for database backend for mneisa (a database in erlang) 18:37:10 to do it modify-in-place 18:37:11 and for other cases when speed gets too slow 18:37:16 that's how databases and such are done 18:37:30 it is basically a non-single assignment hash table 18:37:37 -!- Slereah_ has quit (No route to host). 18:37:42 that's what a Prolog database is too 18:37:52 it's a predicate which you can modify 18:37:52 and which doesn't allow :- 18:37:54 which comes to the same thing 18:38:02 oh, and only constants in the head 18:38:02 ais523, well is it implemented in prolog or internally in the language runtime system? 18:38:09 depends on the implementation 18:38:17 I know of one which implements it in the runtime 18:38:41 but normally they aren't special-cased by the interp, they're just a special case of things you could do anyway 18:38:42 ais523, also it store erlang tuples. such as {key,value}, where value can be any erlang term, and so can key 18:38:49 wait, you cannot modify predicates with clauses containing :- ? 18:38:54 oerjan: yes you can 18:39:00 in general 18:39:12 if you don't though some implementations are faster 18:39:19 if you tell them in advance that you don't plan to 18:39:23 ah 18:39:31 ais523, anyway the point of them in erlang is that they are high performance for when everything else fails, thus implemented in the C parts of erlang 18:40:25 ais523, so the FungeSpace thing passed around is just an integer I think 18:40:41 yes, well in Prolog if you wanted to do it efficiently 18:40:44 internal representation of such a handle "may change without notice" 18:40:47 you wouldn't pass around anything 18:40:49 according to man page 18:40:55 you'd have a funge_space predicate 18:40:57 but debugger seems to indicate it is indeed an integer 18:41:05 and modify it dynamically to allow for changes in the program 18:41:14 ais523, hm that would require knowing what number the handle ends up as at compile time? 18:41:24 which simply wouldn't work in erlang 18:41:25 no, you don't get it 18:41:27 there wouldn't be a handle 18:41:31 just part of your code 18:41:34 which was self-modifying 18:41:36 hm 18:41:40 ais523, ah erlang doesn't have that 18:41:59 also I think that sounds great for writing a befunge interpreter 18:42:04 do it in a self modifying language! 18:42:12 you know how you can write a ROM in C, effectively, using switch(location) {case 0: return 'H'; case 1: return 'e'; case 2: return 'l' ... 18:42:23 Prolog databases are like that, but self-modifying 18:42:27 ais523, err what? 18:42:34 ROM as in read only memory? 18:42:37 yes 18:42:40 in the code 18:42:46 I would use const 18:42:49 well, yes 18:42:55 but imagine you're on an embedded systen 18:42:58 *system 18:43:01 which has lots of ROM but hardly any RAM 18:43:10 that would be a sensible way to store a string, if the ROM isn't addressable 18:43:10 like static const int myrom[] = { 'a', 'b' } 18:43:13 or such 18:43:27 ais523, hm... 18:43:35 "if the ROM isn't addressable" indeed 18:43:46 AnMaster: it happens 18:43:50 also about using _ 18:43:51 in architectures with separate data and code 18:43:54 in erlang it is bad style 18:43:59 better prefix a variable with _ 18:44:12 erlang _ is almost certainly based on Prolog _ 18:44:22 which is just an anonymous variable which is different each time you use it 18:44:27 to mean "this data will be discarded" 18:44:28 that tells compiler you know you don't want to use it, so it shouldn't warn, And the compiler will optimise away unused variables anyway. 18:44:29 ais523, ^ 18:44:39 but it is still easy to see what it is for 18:44:41 yes 18:44:42 unlike a plain _ 18:44:48 Prolog came first 18:44:49 _FungeSpace tells so much more 18:44:53 and they didn't think of having more than one sort of _ 18:44:55 in case you later want to use it 18:44:59 and discarded 18:45:22 ais523, does prolog have the _ as prefix for rest of variable too? 18:45:31 as I described just above 18:45:35 _ by itself is an anon variable 18:45:42 _ followed by anything else is implementation-reserved, IIRC 18:46:02 when you debug Prolog code the implementation will print out free variables as _0 and _1 or whatever 18:46:10 consider: 18:46:15 using the same number to show that two variables have the same value, but the value isn't known yet 18:46:16 iterate(_Count, _, dead, Retval, _) -> 18:46:22 now you want to change it 18:46:38 but you need to dig to find what those two _ represents 18:46:39 yes, I understand 18:46:41 it isn't clear 18:46:43 iterate(_Count, _Instr, dead, Retval, _Space) -> 18:46:44 however 18:46:45 is clear 18:46:50 -!- slereah has joined. 18:46:55 in fact count too would be _ 18:46:59 good Prolog style involves putting all the clauses for one predicate together 18:47:00 then it is just too confusing 18:47:08 so you can tell easily enough just by looking at the other cases 18:47:09 ais523, so does erlang 18:47:23 ais523, but maybe you implement a function that conforms to some interface 18:47:26 yes 18:47:27 and you pass it as a reference 18:47:29 but that's only a stop-gap really 18:47:32 somewhat like C function pointers 18:47:35 what if you want to put a constant in the head 18:47:35 like 18:47:45 iterate(1, _, dead, Retval, _) 18:47:51 how to know that the 1 refers to a count? 18:48:08 very true point 18:48:18 but you could do 18:48:26 iterate(1 = Count, _, dead, Retval, _) 18:48:28 I think 18:48:32 or even 18:48:35 iterate(1 = _Count, _, dead, Retval, _) 18:48:52 well, you may as well just use inline comments then 18:48:57 I think they use /* */ for that nowadays 18:49:06 although Prolog comments were traditionally % to end of line, IIRC 18:49:09 erlang use %% 18:49:14 at the start of the line 18:49:28 actually it is % 18:49:46 but %% and %%% is used in different places for human readability reasons 18:49:55 and auto-indention purposes 18:50:17 ais523, I think somewhat like 80% or more of #erlang use emacs to edit their erlang code 18:50:22 http://rafb.net/p/j0izSW37.html 18:50:25 anyway 18:51:03 it's so weird seeing code that vaguely resembles Prolog, but that has implicit return values 18:51:18 implicit? 18:51:28 AnMaster: in Prolog things don't have return values 18:51:35 you use pass-by-trail in the argument list 18:51:36 ais523, the return value is the value of the last expression in the block 18:51:40 yes, exactly 18:51:41 everything have a return value 18:51:55 even stuff that wouldn't have return values in scheme got return values here 18:51:57 in Prolog, you'd do something like add(A,B,ReturnValue) :- ReturnValue is A+B. 18:52:02 the ReturnValue is explicit here 18:52:06 Everything returns a value in Scheme. 18:52:23 ais523, ok that sounds like how I wrote return string in envbot because $() is so slow in bash :P 18:52:27 I passed a parameter name 18:52:29 Prolog's rule is nice and simple, then: nothing obviously returns a value 18:52:36 no 18:52:37 -!- slereah has quit (Read error: 113 (No route to host)). 18:52:38 all return values are done via arguments 18:52:38 and used printf -v "$1" '%s' "foo" 18:52:39 functions return one value 18:52:40 pass or fail 18:52:40 or whatever 18:52:41 :P 18:52:52 ehird: except they never return fail 18:53:01 ais523: True. 18:53:03 also, if you're talking like that, cut-fail is another possibility 18:53:10 Everything returns a value in Scheme. <-- exactly 18:53:13 that was my point 18:53:22 you fail to understand humor obviously... 18:53:24 cuts are great 18:53:24 even stuff that wouldn't have return values in scheme got return values here 18:53:30 is a nonseqitur 18:53:31 you spend ages trying to learn Prolog 18:53:37 and eventually you 'get it' 18:53:42 also it's *has 18:53:49 and then you come across cuts, which completely mess up everything you learnt 18:53:50 doesn't scheme have multiple return values, or was that CL? 18:53:56 yes, it does 18:53:58 so does cl 18:54:06 ehird, yes I agree I said that. And that was my point 18:54:12 some implementations have dynamic cuts too 18:54:12 since everything have a return value in scheme 18:54:19 *has 18:54:30 right 18:54:35 which are a bit like longjmp in C, given the dread Prolog programmers generally hold them in 18:54:45 except they're useful slightly more often 18:54:53 -!- Slereah_ has joined. 18:55:10 ais523, so it is considered worse than goto in C? 18:55:22 cut is a bit like goto in C 18:55:27 except that it's used a lot more often 18:55:36 it's something that's jarring to Prolog programmers 18:55:36 hm 18:55:40 but has no real alternatives 18:55:44 heh 18:55:47 hmm... think of it more like GOTO in Basic 18:56:00 except a BASIC in which you don't actually need to use gotos 18:56:07 because you have functions and ifs and those are enough in theory 18:56:10 ais523, well I don't know any basic except "10 PRINT "HELLO WORLD" 20 GOTO 10" 18:56:15 with a newline obviously 18:56:18 AnMaster: that's about it 18:56:22 I never ever coded in basic 18:56:27 yes, that is very typical BASIC 18:56:35 normally there's some sort of IF statement 18:56:35 ais523, I think it is the classical basic 18:56:46 often it's as simple as IF A=2+3 THEN 10, though 18:56:54 but it doesn't say anything about the language really, apart from that it lacks labels other than line numbers 18:56:55 and loops 18:57:24 AnMaster: the trick to BASIC is that there is no more than that 18:57:37 ais523, well more recent basic seem to have it? 18:57:40 AnMaster: yes 18:57:44 and no I don't consider VB then 18:57:56 even QBasic has more control flow stuff than traditional BASIC 18:58:05 can't say I know it either 18:58:26 AnMaster: it was Microsoft's killer app for MS-DOS, I think, originally 18:58:30 I have seen some VB or maybe VBA, and about the only thing I remember is "Dim foo As" or something like that 18:58:38 which explains how old it is to some extent 18:58:49 incidentally, it's also one of the platforms I learnt programming on 18:58:52 although it's a bad one to choose 18:58:57 ais523, basic? 18:59:03 QBasic in particular 18:59:10 pretty basic choice 18:59:24 well, BASIC was invented for beginners in the first place 18:59:28 that's what the B in BASIC stands for 18:59:32 AnMaster: gotcha 18:59:36 "Beginner's All-Symbolic Instruction Code" 18:59:40 yeah that is why basic is basic. 18:59:42 oerjan, hm? 18:59:51 * oerjan thought he saw a pun 18:59:56 oerjan, there was one yes 18:59:59 yes, I spotted it too 19:00:06 I just didn't understand why you said "gotcha" as a response 19:00:29 it wasn 19:00:32 anyway it is easy to make basic jokes based on basic 19:00:37 't bad enough for a groan 19:00:49 oerjan, what one? the last? 19:01:06 and yeah I never claimed to make *high quality* jokes 19:01:19 pretty basic choice 19:01:29 oerjan, so what about " anyway it is easy to make basic jokes based on basic" 19:01:38 or was that one worse? 19:02:14 ais523, oh and I learned the first steps of programming in an even worse environment 19:02:24 I bet you can't guess, unless I told you before I forgot it 19:02:25 too much redundancy i feel 19:02:33 no, you didn't 19:02:37 oerjan, I fear you are basically correct there. 19:02:41 ais523, Apple Script 19:02:45 on Mac OS 7 19:03:29 ais523, just an example: it allows an optional "the" in many places to make the code look more like English 19:03:38 AnMaster: sounds like INTERCAL 19:03:53 and use "of" somewhat like -> but more like <- actually, since you state it in the other order 19:04:21 set myvariable to the first character of the string "hello world" 19:04:25 ais523, that may be valid apple script 19:04:27 not sure 19:04:39 "first character" may not be a valid selector for a string 19:04:49 and you may not ned "the string" there 19:04:58 it was ages ago I last coded in that horrible language 19:05:10 ais523, oh also it can be recorded 19:05:16 wow, very COBOLly 19:05:18 -!- atrapado has joined. 19:05:21 since it was intended to script applications in 19:05:24 like you press record 19:05:36 then do some task, like selecting a file, and double clicking 19:05:39 then that would be recorded 19:06:00 ais523, also wikipedia says: 19:06:02 say "Hello World!" 19:06:06 http://en.wikipedia.org/wiki/AppleScript 19:06:19 tell application "Microsoft Word" 19:06:19 quit 19:06:19 end tell 19:06:21 is the same as 19:06:21 AnMaster: ehird's hi ais523 script is written in AppleScript, IIRC 19:06:24 tell application "Microsoft Word" to quit 19:06:28 -!- ais523 has left (?). 19:06:28 -!- ais523 has joined. 19:06:29 hi ais523 19:06:33 ehird, it is? 19:06:39 ugh 19:06:47 and yeah you should paste it 19:07:06 ais523, well his irc client would provide the needed interface to use it from apple script I guess 19:07:08 colloquy's scripts are in applescript 19:07:08 well, AppleScript is better than Windows 3.1 Recorder 19:07:08 so yes 19:07:13 many mac os apps do 19:07:13 which I tried using for a while and eventually gave up 19:07:23 ehird care to pastebin? 19:07:24 exactly, i hate applescript but its convenient 19:07:32 AnMaster: it's only like 4 lines, I can probably paste it here 19:07:33 it recorded the location of mouse clicks on the screen, and replayed them 19:07:37 ehird, ok :) 19:07:41 didn't know how long it was 19:07:59 ais523, I think functions were done with an "on" clause 19:08:04 no 19:08:06 on is for events 19:08:10 ehird, ah ok 19:08:10 using terms from application "Colloquy" 19:08:10 on member joined m in room 19:08:10 if m's name starts with "ais523" then 19:08:11 tell room to send message "hi " & m's name 19:08:11 end if 19:08:11 end member joined 19:08:13 end using terms from 19:08:16 with..indentation 19:08:19 7 lines 19:08:19 :P 19:08:20 "using terms from application"? 19:08:24 AnMaster: shrug 19:08:26 also, the indentation came through at this end 19:08:28 as italics 19:08:29 that one must be new since OS 7 19:08:30 :P 19:08:31 it imports all the stuff in Colloquy's namespace 19:08:32 it always does for some reason 19:08:36 like "member", "room"... 19:08:41 lines are in italic if they start with an odd number of tabs 19:08:45 I did see one-char wide tabs here ehird 19:08:48 if that is what you meant 19:08:51 kay 19:09:07 iirc irssi got an issue with literal tabs 19:09:24 pixel 7 of row 3 of TIFF image "my bitmap" 19:09:25 hm 19:09:28 *shudder* 19:10:18 anyway last I coded in apple script must have been something like 7 years ago 19:10:22 around when I was 10 or so 19:10:29 actually more 19:10:32 11 years then 19:10:44 which ends up at around 10-11 years old yeah 19:10:59 um 19:11:04 ehird, oh btw iirc the apple script stuff allows using other languages than apple script 19:11:05 11 years ago was before os x was released 19:11:06 :p 19:11:10 and no it doesn't 19:11:12 ehird, yes I said so 19:11:15 ehird, OS 7 19:11:19 was what I used 19:11:19 oh 19:11:21 it had applescript? 19:11:23 weird beans 19:11:24 ehird, it did 19:11:37 ehird, with the script editor that could record 19:11:50 ehird, or at least 7.5.1 or so did 19:12:34 ehird, also it allows different languages: http://en.wikipedia.org/wiki/AppleScript#Open_Scripting_Architecture 19:12:38 :P 19:12:42 I knew I was right there 19:16:25 ais523, so what do you think of AppleScript syntax? 19:16:35 it's very COBOLly 19:16:39 but in lowercase rather than caps 19:17:08 oh I think it got more possible ways to say something than perl at least in some cases 19:17:30 AnMaster: Perl has an infinite number of ways to say things, you can get libraries to use more 19:17:34 most of them are in ACME of course 19:17:57 ACME? 19:18:28 AnMaster: part of CPAN 19:18:33 ah 19:18:34 for things that aren't particularly serious 19:18:37 like Brainfuck interps 19:18:42 hm ok 19:18:56 which was first: CPAN, CTAN, CEAN? 19:18:59 I guess CPAN 19:19:03 or maybe CTAN 19:19:35 well, CUAN almost certainly came later 19:19:37 and seems to be dead atm 19:19:43 "The Perl archive, CPAN, is based on the CTAN model. 19:19:43 CUAN was? 19:19:47 Unlambda 19:19:50 ah so CTAN is older 19:19:55 interesting 19:20:03 well Tex is old, so not strange 19:20:07 but how old is perl? 19:20:58 "CTAN was built in 1992 ... 19:21:16 hm and cpan? 19:21:17 perl 1989 19:21:24 hm that new 19:21:28 thought it was older 19:21:29 cpan 1995(?) 19:21:41 anyway that means perl is about as old as I am. hm 19:22:02 "Perl was originally developed by Larry Wall, a linguist working as a systems administrator for NASA, in 1987, 19:22:11 1987, older then 19:22:13 oh well 19:23:38 hmm... that's the year I was born 19:23:46 I wonder when CRAN was founded... the R language itself seems to have started around 1997, so obviously later than CTAN/CPAN. 19:23:47 I wonder which is older, Perl or me? 19:24:37 CRAN is for? 19:24:38 ais523: Maybe you have the same birthday. How awesome would that be? 19:24:45 it would be pretty awesome 19:24:46 AnMaster: R scripts, obviously. 19:24:56 fizzie, hm what paradigm is R now again? 19:25:02 R is GNU S. 19:25:09 So, statistics. 19:25:09 "Larry Wall began work on Perl in 1987, while working as a programmer at Unisys,[6] and released version 1.0 to the comp.sources.misc newsgroup on December 18, 1987. 19:25:13 also I would find having the same birthday as perl embarrassing 19:25:31 why? 19:25:44 lets just say I'm no big perl fan :P 19:26:44 also I think apple script may have the shortest audio hello world program of any language 19:26:50 http://en.wikipedia.org/wiki/AppleScript#Hello_World.21 19:26:56 that actually *says* hello world 19:27:07 displaying it would be longer 19:27:19 something like creating a dialog, at least under OS 7 19:27:30 no I don't remember syntaxz 19:27:32 syntax* 19:27:43 ah, pity, gprolog doesn't have dynamic cuts 19:27:49 but I think they can be written in terms of throw and catch 19:28:19 ais523, hm try in erlang got a return value btw 19:28:30 as in try ... catch ... end 19:28:53 it is either that of the relevant catch case, or that of the last statement in the try block 19:28:56 AnMaster: well it doesn't in Prolog for obvious reasons, it's trivial to get a value out of it using unification though 19:28:59 actually try got weird syntax 19:30:00 try of mymatch -> ...; myothermatch -> ... catch throw:mycustomexception -> ...; error:badarith -> "Most likely division by zero of fp exception" end 19:30:14 oh and the last clause must _not_ end in ; 19:30:16 that is no typo 19:30:41 adding a ; to the last clause in a if, case, try, catch or other such block is a syntax error 19:30:53 that is actually rather irritating 19:31:07 yes 19:31:15 well it would be in Prolog too, for the related constructs 19:31:21 and results in silly syntax like writing ; at the front 19:31:22 like: 19:31:25 you never do it by mistake though because you always put a full stop there instead 19:31:29 case myfunc() of 19:31:33 foo -> ... 19:31:38 ; bar -> ... 19:31:41 and so on 19:31:50 yes some people do that seriously 19:32:16 also in erlang you get nothing there, full stop only at end of the last function clause 19:32:18 well, Prolog works well due to having basically no control flow constructs 19:32:24 :- , ; ! 19:32:28 ; at end of other clauses 19:32:29 and . for the end of a predicate 19:32:33 *clause 19:32:34 that's it. 19:32:39 and , between expressions in a single block 19:33:24 however the use of .,; neatly sidesteps two issues at once 19:33:42 1) {} not matching indention, this is the reason python fans say their block style is better 19:34:10 2) indention ending up wrong when moving code around in a function, this is the reason C fans use for why python style blocks are bad 19:34:23 yes, Prolog sidesteps the issues like that too 19:34:27 also Prolog clauses tend to be short 19:34:32 so often they don't need indentation at all 19:34:35 in erlang indention doesn't matter, nor do you have { that could match the wrong } 19:34:55 ais523, well not indenting is considering bad coding style in erlang 19:35:09 yes, it would be 19:35:15 in Prolog indenting is common 19:35:23 but only if you write something more than one line long 19:35:25 often, you don't 19:35:43 well I do sometimes put match and code on same line 19:35:50 but only if all the clauses are short 19:36:01 since mixing newline + indention and same line is hard to read 19:36:09 yes 19:36:13 normally all the clauses are short though 19:36:23 also, I'm rather partial to Haskell-style indentation for that sort of thing 19:36:30 you don't newline after the :- 19:36:37 and the next line is indented to after the :- 19:36:46 ais523, I think erlang style base sense apart from the ; before an end 19:36:54 case, if and so on are all terminated by end 19:36:57 well try isn't 19:37:00 it is terminated by case 19:37:01 err 19:37:03 by catch* 19:37:10 which is then terminated by end 19:37:21 also you can have begin 19:38:02 mostly used for funs (like lambda in scheme) 19:38:29 (well not totally, since you don't have it for defining "normal" functions) 19:38:51 (except the compiler actually use that for them too internally, and then converts it back) 19:38:52 -!- p3k has joined. 19:39:53 * AnMaster pokes ais523 19:39:58 Hey, bit-rot hasn't broken my Prolog Scheme! 19:40:00 ?- plscheme. 19:40:00 |: (+ 1 (call/cc (lambda (k) (+ 2 (k 3))))) 19:40:00 4 19:40:07 All that Prolog talk made me test it. 19:40:22 * AnMaster hates call/cc 19:40:27 fizzie: you wrote that? 19:40:27 gives me a headache 19:40:31 That's terrifying beyond measure. 19:40:34 so mind explaining that code 19:40:38 ais523: For the "logic programming" project-work. 19:40:44 since I basically fail as soon as call/cc is involved 19:40:47 ais523: It's written in continuation-passing style Prolog. :p 19:40:58 fizzie, ^ 19:40:58 actually, Prolog uses CPS a lot more than other langs 19:41:07 it's the only way to maintain loop counters and such sometimes 19:41:43 ais523, how does a program coded in prolog compare in speed to one written in scheme? 19:41:47 or one written in C? 19:41:53 Prolog is slow if not optimised 19:42:00 there are many optimisers of different qualities around 19:42:02 AnMaster: The call/cc is just giving (+ 1 []) as the continuation (named k), which is then called (k 3) to get (+ 1 3); the (+ 2 ...) part is forgotten. 19:42:23 fizzie, ok 19:43:11 call/cc is kind of like: the ( ) representing sacks in each other, call/cc turns them inside out 19:43:16 at least that is how it feels 19:43:28 probably make no sense 19:43:38 strange analogy, but I sort of see what you're getting at 19:43:56 the Underlambda definition of making a continuation might help, but probably doesn't 19:44:00 really? that is more than what I did 10 seconds after I said it 19:44:24 #XCx| => X(X(x))x 19:44:33 ofc that makes no sense if you don't understand Underlambda, probably 19:44:36 ais523, mind telling me what language that is? 19:44:39 ah ok 19:44:49 ais523, and no I don't indeed 19:45:52 in fact I never really tried to learn any of un.*(load|lambda) 19:46:06 well, Underlambda's a cross between Underload and Unlambda 19:46:22 which is designed to be trivial to interpret, relatively easy to compile, yet expressive 19:46:27 ais523, well that regex included both of them, so that really doesn't help ;P 19:46:30 and also you can compile Unlambda into it 19:46:39 ais523, and underload? 19:47:11 ais523, also that holds true for any tc language then! 19:47:47 I assume you meant "trivially compile" 19:47:49 or some such 19:48:16 AnMaster: yes, easily compile 19:48:21 or "compile without cheating" 19:48:38 bundling an interpreter works for all TC langs, but is normally considered cheating 19:48:43 ais523, well since you can compile C into bf, is that cheating? 19:49:00 ah you mean like that 19:49:14 ais523, also you could compile bf to C in befunge-93 19:49:15 I bet 19:49:21 since it is mostly string replacement 19:49:51 yes, probably 19:49:55 even though b93 isn't tc 19:50:00 compiling A to B in C doesn't mean that C is tc 19:50:14 if A is tc, though, and C is tc or lower, it means that B is tc 19:50:14 ais523, interpreting in C would 19:50:37 yes 19:50:39 ais523, "tc or lower"? 19:50:48 higher? oracle machines? 19:50:50 or hwat 19:50:52 what* 19:50:59 yes 19:51:15 ais523, could they do it if B wasn't tc? 19:51:20 in theory, an oracle machine could figure out what A did and translate it to an infinitely large lookup table, for instance 19:51:37 bye 19:51:42 ais523, wouldn't work if B had limited ram 19:51:43 ofc this doesn't actually work for any real sub-TC languages B, but some mathematical ones it odes 19:51:45 -!- Mony has quit ("Ne regrettons pas le passé, ne nous préoccupons pas de l'avenir : le sage vit dans le présent."). 19:51:45 and bye Mony 19:51:50 and wasn't TC for that reason 19:52:00 ah yes 19:52:05 you just said 19:52:27 -!- p3k has left (?). 19:52:41 ais523, is lazy evaluation of that look up table allowed? :D 19:52:56 AnMaster: by what? 19:53:04 if it's by B, then arguably B is doing its calculation instead 19:53:09 ais523, by C 19:53:16 oh, in that case B could trivally be sub-TC 19:53:20 it could be cat, for instance 19:53:31 and C wouldn't need to be super-tc 19:53:32 with C being an interpreter for A 19:53:35 yes 19:53:37 it could just be haskell 19:53:38 ! 19:53:38 so that is cheating 19:54:57 could a tc language solve the halting problem for sub-tc languages? 19:55:13 yes, for some sub-tc langs 19:55:20 such as? 19:55:24 finite state machines 19:55:30 you can brute-force their halting problem 19:55:33 with a TC lang 19:55:39 or just with a sufficiently bigger FSM 19:55:46 what exactly is a "finite state machines" 19:56:03 s/s"$/"/ 19:56:19 AnMaster: it's basically anything that can only have a finite amount of internal state 19:56:21 like any real computer 19:56:27 or a programming language without infinite memory 19:56:31 but isn't a computer a BSM? 19:56:35 if A is tc, though, and C is tc or lower, it means that B is tc 19:56:42 a BSM is a special case of an FSM 19:56:48 i don't think you need a restriction on C 19:56:52 it's one which would be TC if not for the bound on memory 19:56:59 oerjan: you do if B can take infinite input 19:57:07 ais523, oh? So a FSM is superset of BSM? 19:57:21 since if A is tc you can write a universal program for it 19:57:48 and the simple fact it can be compiled to B means B is tc 19:57:49 which you couldn't compile into B? 19:57:58 regardless of C 19:58:22 oerjan, not if it was compiled by an oracle machine C, which generated an infinite look up table for all outcomes of the program, as I ais523 said? 19:58:27 s/I/ 19:58:36 or is that wrong? 19:58:45 AnMaster: yes, FSM is a superset of BSM 19:58:50 AnMaster: doesn't matter, it still has to result in _one_ B program 19:58:55 it includes things that wouldn't be TC even with infinite memory 19:59:01 ais523, is BSM the most powerful variant of FSM or? 19:59:08 yes 19:59:14 well, for certain definitions of "powerful" 19:59:16 oerjan, sure? 19:59:20 ais523, oh? 19:59:34 AnMaster: some not-nearly-TC FSMs are better at certain things 19:59:38 like factorising primes 19:59:47 but as the whole brouhaha with ais523 himself and the wolfram TM shows, TC is dubious to define when input can be infinite 19:59:59 ais523, quantum computers are FSM but not BSM or? 20:00:41 AnMaster: quantum computers are infinite state machines 20:00:51 ais523, is that super-turing? 20:00:57 oerjan: I agree with you for finite input 20:01:07 AnMaster: you can't simulate them on real computers exactly, you have to approximate 20:01:12 but the infinite state can't be extracted 20:01:19 because they're probabilistic anyway 20:01:25 the probabilities are arbitrary-precision real numbers 20:01:29 Of course, that's because our computers are kinda finate-state. ;p 20:01:31 ais523, so that means they are sub-tc or super-tc? 20:01:31 but you can't find out what the probability is 20:01:38 AnMaster: sub-TC, in practice 20:01:45 well, they just return results at random 20:01:45 hm ok 20:02:02 a good quantum computer program tries to increase the chance of the result being right as much as possible 20:02:15 but any interesting quantum program can return any possible answer, in theory 20:02:29 Quantum physics? 20:02:34 It is my time to shine :D 20:02:35 you just try to maximise the probability of getting the right answer, then you check the answer on a conventional computer and run again if you're wrong 20:02:36 ais523, so even running it multiple times isn't fool-proof? 20:02:37 Or is it? 20:02:39 Slereah_: quantum computing 20:02:40 AnMaster: no 20:02:49 but normally you can check the answer quite quickly 20:03:00 finding an element in a database, for instance, or factorising prime products 20:03:15 ais523 : Well, there is quantum in it 20:03:28 ais523, worst case is O(inf) then? 20:03:30 yes 20:03:32 And we're doing pretty much only that 20:03:40 ais523, that is as bad as bogo-sort! 20:03:44 -!- kar8nga has quit (Connection timed out). 20:03:54 AnMaster: the typical case is a lot better though 20:04:00 Quantum physics, solid state physics using quantum physics, atomic physics using quantum physics, group theory for quantum physics 20:04:01 ais523, hm 20:04:09 It's like a festival of quantum 20:04:10 factorising prime products in O(log n), for instance 20:04:30 normally it only takes 5 tries or so 20:04:44 also, when that algorithm returns the wrong answer, it's most likely either close to the correct answer, or 0 20:05:01 ais523, but you can't be sure it is a prime? You can be sure if it returns the factors for a composite I guess 20:05:12 but never sure if it is actually prime 20:05:17 or? 20:05:46 AnMaster: normally you know the number you're looking for is the product of two primes in the first place 20:05:48 ais523, also doesn't the integer one return 0 or 1? 20:05:49 for code-breaking, and such 20:05:53 true or false 20:06:06 I'm talking about factorising prime products 20:06:11 rather than checking for primality 20:06:23 Shoors algorithm is the latter isn't it? 20:06:30 or however the name was spelled 20:06:35 Shor's 20:06:39 k 20:07:40 afk, unknown if it lasts till(sp?) tomorrow or if I get back later 20:07:43 later today* 20:09:12 ais523: i'm not sure that a quantum computer really requires infinite memory to simulate exactly. you should be able to rewrite things with explicit matrices, which blow up exponentially but not infinitely. 20:09:27 oerjan: ah, interesting 20:09:34 AnMaster: [OT] Till and 'til are both correct short-forms of "until" 20:09:38 well, in theory, you could give it arbitrary reals as the input to a probability rotation 20:09:51 but there'd be no way to input those using any known input method 20:10:21 i vaguely recall something about quantum computing not being able to do more than PSPACE problems 20:10:35 (in polynomial time) 20:11:01 well, quantum computing doesn't do anything a regular computer couldn't do 20:11:11 it's just O(n/log(n)) faster 20:11:16 which is normally a very worthwhile trade 20:12:51 But quantum computers cannot love. 20:13:07 actually night 20:13:11 Not yet. 20:13:17 night AnMaster 20:14:04 GregorR: [OT] "till" is not a shortened form of "until" 20:14:21 head-of-horn-clause ":-" body-of-horn-clause 20:14:25 isn't that the meaning 20:14:30 defines a procedure 20:14:31 "BQP is contained in the complexity class #P (or more precisely in the associated class of decision problems P#P)[19], which is a subclass of PSPACE. 20:14:32 yes 20:14:47 and "procedure" is one way to put it, they're pretty different from imperative procedures 20:15:01 "Horn clause" is the correct name, unfortunately not very useful for people who don't know what that means 20:28:37 -!- Corun has joined. 20:31:29 ... 20:31:38 i seriously read that as "horny procedure" 20:31:50 /me continues reading logs 20:31:52 ... 20:31:56 not my day. 20:31:57 -> 20:31:57 i seriously avoided mentioning that 20:38:21 P#P 20:38:22 ? 20:38:38 actually the #P should be a superscript 20:38:40 horn clauses are trivial 20:38:53 and funnnnn 20:39:32 is that so? so, err, does it literally mean polynomial + polynomial exponent? 20:39:43 i haven't heard bout no P#P's 20:40:04 so if it's the usual meaning, P^#P means "can be solved in polynomial time with a #P oracle" 20:40:16 i see, i see 20:40:25 and care to tell me what a #P oracle is? :P 20:40:29 and no i won't wpw 20:40:31 *wp 20:41:05 it's like having a Turing machine, except it has a special instruction that allows it to solve any #P problem instantly 20:41:19 and what's #P :D 20:41:23 and right 20:41:32 that's an oracle, ofc 20:41:58 some other class of problems, probably counting problems by the # 20:42:01 i just wasn't familiar with the term except for meaning a superturing thingie 20:42:37 yeah the superturing thing is when you take the oracle problem to be the halting problem or such 20:43:34 "More formally, #P is the class of function problems of the form "compute f(x)," where f is the number of accepting paths of an NP machine." 20:44:29 so while NP checks whether a Turing machine _can_ succeed, #P counts how many alternative ways it can do so 20:44:57 yes, i just haven't generalized that, because when i learned the concept of oracle, it was enough complex for me as it was, and i didn't exactly know much about computational complexity in general 20:45:23 and that came with a lag 20:45:42 except the lag was in the fact i had scrolled a few lines up and was responding to your old message 20:46:35 i see how that's a subset of PSPACE 20:48:22 "One consequence of Toda's theorem is that a polynomial-time machine with a #P oracle (P#P) can solve all problems in PH, the entire polynomial hierarchy." 20:48:30 try the new pro-log, with horny clauses! 20:50:31 -!- sebbu2 has joined. 20:54:14 -!- omniscient_idiot has joined. 21:02:24 -!- sebbu has quit (No route to host). 21:02:24 -!- sebbu2 has changed nick to sebbu. 21:07:07 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | haskell isn't stack based. 21:15:35 -!- Asztal has quit (Read error: 104 (Connection reset by peer)). 21:23:54 -!- KingOfKarlsruhe has joined. 21:25:29 -!- ab5tract has joined. 21:31:41 -!- kar8nga has joined. 22:12:00 -!- ab5tract has quit. 22:15:32 -!- kar8nga has left (?). 22:21:07 -!- Corun has quit ("This computer has gone to sleep"). 22:22:56 -!- Corun has joined. 22:23:11 -!- Asztal has joined. 22:23:47 -!- atrapado has quit ("Abandonando"). 22:29:09 -!- Corun has quit ("This computer has gone to sleep"). 22:29:48 optbot! 22:29:48 -!- optbot has set topic: the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | I feel that it would be far better for people to see that it's wrong to do so, and keep the government out of it.. 22:30:09 what's wrong with "haskell isn't stack based"? 22:32:01 well if the government wants haskell to be stack based, clearly it must be wrong. 22:32:17 ah, ok 22:33:55 Who, Haskell or the gubmint 22:34:09 the government, presumably 22:34:14 duh 22:34:29 * ais523 ponders what stack-based Haskell would be like 22:34:38 actually, I suspect Haskell compiles into Underload 22:34:43 (barring I/O and other things like that) 22:34:57 Wouldn't anything compile into anything? 22:35:03 I mean, easily 22:35:25 Well, since it's sort of functional, I guess 22:43:41 -!- p3k has joined. 22:43:53 -!- p3k has left (?). 23:07:16 -!- KingOfKarlsruhe has quit (Remote closed the connection). 23:14:44 -!- puzzlet_ has joined. 23:21:30 -!- oerjan has quit ("Good night"). 23:24:51 -!- GregorR-L has joined. 23:25:17 I'm looking for trivialities of human behavior that can be formalized to a stupid degree. 23:25:17 -!- olsner has quit ("Leaving"). 23:25:28 I formalized the order of urinals (using an entire whiteboard), but now I'm looking for more :P 23:27:17 -!- ehird has left (?). 23:27:19 -!- ehird has joined. 23:27:22 -!- ehird has left (?). 23:27:26 -!- ehird has joined. 23:27:39 Bouncy bouncy. 23:27:45 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 23:28:24 GregorR-L: formalise quit/join spam in IRC channels 23:33:40 Too nondeterministic. 23:33:52 Or rather, too determined by the whims of stupid humans :P 23:34:00 ok, then, flamewars 23:34:03 that would actually be useful 23:34:04 Hey now. 23:34:06 Hmmmmmmmmmmmmmmmmm 23:34:21 That would take study, but I'll bet it's more formulaic than one might initially think. 23:57:14 -!- poiuy_qwert has joined. 23:58:44 poiuy_qwert: You implemented 2L! Zomg.