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