00:00:03 <AnMaster> oerjan, mine also shows the line for who set the topic
00:00:12 <AnMaster> Mathnerd314, iirc he used to use netcat or such before he wrote it
00:00:19 <oerjan> AnMaster: well yeah here too
00:00:36 <pikhq> I think the exception remains his OS.
00:00:40 <pikhq> And possibly his editor.
00:01:03 <pikhq> Software he wrote.
00:01:03 -!- Asztal has quit (Ping timeout: 265 seconds).
00:01:13 -!- Azstal has changed nick to Asztal.
00:01:16 <pikhq> By the way, unignore alise.
00:01:24 <pikhq> I hate having to explain what he says.
00:01:43 <AnMaster> pikhq, "the NIH is string in the zzo38"
00:01:54 <AnMaster> meh that didn't work out well as a star wars parody
00:02:13 <zzo38> http://zzo38computer.cjb.net/prog/PHIRC/phirc.zip (Note I didn't copy the newest version yet, it will be soon)
00:02:19 <AnMaster> pikhq, oh forget he was in here
00:02:21 <alise> pikhq: Just stop doing it; then he'll get all annoyed.
00:02:25 <alise> Yeah right. You did not.
00:02:34 <alise> You were blabbing about ignoring me just before; this is just more of that childishness.
00:02:38 -!- Oranjer has left (?).
00:02:47 <pikhq> AnMaster: /unignore
00:02:55 <alise> Gasp! PHP can access stdio/stdout!
00:03:01 <alise> How is this possible!
00:03:05 <pikhq> Or else next time you go "LAWL IM IGNORING ALISE" I ignore you.
00:03:11 <alise> !sh echo then stop asking pikhq to explain for you ~
00:03:13 <pikhq> Because frankly it's just getting ridiculous.
00:03:17 <alise> i forgot egobot is gone
00:03:22 <zzo38> Yes it is written in PHP, mostly because I know how to socket access in it even cross-platform
00:03:30 <pikhq> You have been fairly often.
00:03:51 <zzo38> Add-ons can also be written in PHP, or in CRISC.
00:03:52 <AnMaster> pikhq, I just replied to your mention of having to repeat what he said that I forgot he was in here, thus I forgot to filter out the "half discussions"
00:04:00 <Mathnerd314> zzo38: this client? gopher://zzo38computer.cjb.net/0fossproj/irc_client/help
00:04:18 <zzo38> Yes, same client. That is an alternate URL
00:04:35 <AnMaster> Mathnerd314, how comes you checked gopher://?
00:04:42 <AnMaster> I mean, who would think doing that
00:04:58 <Mathnerd314> somehow I find it easier to browse his site with gopher :p
00:05:12 <alise> that much is true :P
00:05:14 <pikhq> His website is gopher-proxied, I'm pretty sure.
00:05:30 <oerjan> i have been wondering if we need a stricter ignore policy. (1) no trying to get around ignores (2) no taunting people you are ignoring
00:05:31 <Mathnerd314> it's right on the user page: http://esoteric.voxelperfect.net/wiki/User:Zzo38
00:05:46 <alise> oerjan: we have basically no policies though!
00:05:47 <alise> don't ruin that! :P
00:06:03 <alise> ...anyway AnMaster is the only one who does the latter and i've only done the former to actually tell AnMaster helpful things
00:06:06 <alise> (gave up on that; realised he's not worth it)
00:06:26 <AnMaster> pikhq, actually the http and gopher versions don't match
00:06:29 <oerjan> alise: yeah, i wouldn't do it unless people start getting seriously annoyed - i guess pikhq is the one who comes closest
00:06:31 <zzo38> Actually my HTTP and gopher are two separate sites although they share many files in common. Eventually it is planned to share additional files in common, although some things will be exclusive to one or the other because they are only useful on one
00:06:35 <AnMaster> gopher://zzo38computer.cjb.net/ vs. http://zzo38computer.cjb.net/
00:07:04 <pikhq> oerjan: I'm only annoyed because I tend to talk to both AnMaster and alise a lot.
00:07:34 <oerjan> well who doesn't, they _are_ the most talkative people on the channel, or close to it
00:07:37 <zzo38> For example, the weather reports and movie times will stay on gopher only. In addition, the dynamic images service will stay HTTP only. (There are others too)
00:07:40 <AnMaster> pikhq, well that isn't really my problem. Nor alise's problem. Nor your.
00:07:53 <alise> oerjan: Interesting how that's the smartest and dumbest people!
00:08:11 <alise> Well, AnMaster /is/ the dumbest but you're probably the smartest.
00:08:15 <AnMaster> oerjan, I think fizzie did some graphs showing we were the most talkative persons
00:08:17 <alise> For one, you run away whenever I sling you into doing something.
00:08:24 <AnMaster> I think ehird beat me with a bit
00:08:49 <alise> Of course I will not be that high now being absent 4.5/7 of the week.
00:09:18 <alise> Which is suspiciously close to the golden ratio minus one!!!!!!!!
00:09:45 -!- benuphoenix has joined.
00:10:34 -!- benuphoenix has left (?).
00:11:07 <ais523> my guess is that quite a few people still read it
00:11:08 <oerjan> AnMaster: yeah i recall those, but not the results
00:11:09 <ais523> but nobody's posted in ages
00:11:10 <AnMaster> ais523, there doesn't even seem to be spam on it nowdays
00:11:26 <AnMaster> ais523, that is easy, since no one posts on it ;P
00:11:27 <ais523> at least, I have email notifications
00:11:32 <zzo38> Dynamic images are such as: http://zzo38computer.cjb.net/dynamic_images/cellular_automata.php http://zzo38computer.cjb.net/dynamic_images/clock.php
00:11:40 <AnMaster> ais523, I use a usenet client to check it
00:11:42 <zzo38> I also use it for dynamic avatars on some forums
00:12:51 <zzo38> I also have SMTP but I only run the SMTP program when I am expecting a message (to confirm registration and so on), I won't receive any unwanted messages this way
00:12:56 <AnMaster> ais523, ugh I hate this cold (not temperature, the other type)
00:13:04 <oerjan> <alise_> wtf, Haskell's Rational type doesn't have /
00:13:12 -!- FireFly has quit (Quit: Hey! Listen!).
00:13:27 * AnMaster throws the previous paper handkerchief in the bin
00:15:40 <oerjan> instance Integral a => Fractional (Ratio a)
00:16:20 <alise> I was merely confused
00:17:22 -!- nooga has quit (Ping timeout: 248 seconds).
00:18:07 <fizzie> AnMaster: In case you missed it, as a side effect of this compiler here's yet another (unreadable) fungot graph: http://zem.fi/~fis/test.png
00:18:07 <fungot> fizzie: what's oou? vs eq?.
00:23:11 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
00:25:35 <zzo38> One day I will write operating system stuff, too, when I get another computer
00:30:47 <zzo38> Question: How do you format Icoruma codes as a printable format including page-numbers, cross-references replaced by the chapter/table/page number, index, so that it can be printed to make a book?
00:33:55 * oerjan realizes that zzo38 is strictly following the "Don't ask to ask" principle
00:34:36 <oerjan> and it freaks me out, despite being recommended
00:34:38 <zzo38> Mathnerd314: Icoruma is a markup language specifically for typing the rules for role-playing-games.
00:34:50 <pikhq> oerjan: Most people don't follow it, sadly.
00:35:34 <zzo38> Mathnerd314: Not very well. But just wait a minute I will copy the files and documentation I have so far. I can post examples too, if you want.
00:35:57 <oerjan> pikhq: well it _does_ frequently leave me with a "how can he possibly assume anyone knows this" feeling, then i remember this is #esoteric.
00:36:04 <alise> I ask to ask... but that's only so that I know to not take seriously the advice of people who didn't confirm that they know about what I'm talking about
00:36:11 <alise> (often they give a general, simpler answer to a more specific question)
00:36:13 <zzo38> It will only take a minute
00:36:38 <alise> <zzo38> Question: How do you format Icoruma codes as a printable format including page-numbers, cross-references replaced by the chapter/table/page number, index, so that it can be printed to make a book?
00:36:45 <alise> Do you want it to be nicely typesetted?
00:36:49 <alise> Or do you want to print a book in monospace?
00:36:52 <pikhq> alise: Asking to ask is only really useful if you're really asking if anyone has relevant knowledge, yeah.
00:37:01 <pikhq> zzo38: By the way, TeX it up.
00:37:17 <alise> Just TeX; not LaTeX.
00:37:18 <zzo38> Typesetted, of course. Now I did find some instructions for LaTeX so hopefully I can figure it out
00:37:20 <alise> zzo38 would like TeX.
00:37:25 <alise> He wouldn't like LaTeX.
00:37:39 <pikhq> I don't care if you use some crazy shit to generate the TeX, it's just that, well. TeX does typesetting right.
00:37:40 <alise> TeX is not very documented at all, has not many commands, and is quite low level. LaTeX is a huge mass of macros and structure.
00:37:48 <alise> And TeX gives you much more control over formatting.
00:37:53 <alise> So I think zzo38 will probably like TeX more.
00:38:01 <pikhq> TeX is actually fairly well-documented. The source code is also a book.
00:38:08 <alise> Isn't that internal workings?
00:38:13 <alise> zzo38: TeX automatically numbers pages by default, so you won't need to worry about that.
00:38:20 <alise> Table of contents -- does LaTeX do this or TeX? I have no idea.
00:38:34 <zzo38> alise: OK I found TeX now
00:38:51 <alise> zzo38: LaTeX will format a table of contents wonderfully for you, if you don't mind having not-so-much control over formatting.
00:38:52 <pikhq> Pretty sure that's TeX.
00:38:59 <alise> You can change font, and indenting, and stuff, and even make your own title page.
00:39:03 -!- jcp has joined.
00:39:03 <alise> But some things are a bit iffy to control.
00:39:10 <alise> pikhq: TeX doesn't even do title-making for you...
00:39:21 <pikhq> Well. Do you mean the TeX primitives, or Pure TeX, which is the default macro package?
00:39:36 <zzo38> I can look at both TeX and LaTeX and I can see what codes are available
00:39:38 <alise> Pure TeX, I guess... I've only used TeX primitives, I think.
00:39:49 <alise> zzo38: Oh, you can use TeX in LaTeX of course.
00:39:54 <pikhq> There's only some 300 primitives.
00:40:03 <alise> LaTeX is just a [huge, advanced] set of macros [turing complete] for TeX.
00:40:07 <pikhq> zzo38: LaTeX is just a macro package for TeX.
00:40:10 <alise> zzo38: http://miktex.org/ is TeX for Windows.
00:40:17 <zzo38> O, OK, it is a macro package for TeX.
00:40:19 <pikhq> Very large, as alise said, but just some macros.
00:40:27 <alise> It can output as PDF among other things, which would be ideal for printing as a book.
00:40:35 <alise> You could even get it self-published, say on lulu.com.
00:41:00 <zzo38> I will look at http://miktex.org/ hopefully it can still be cross-platform however I don't want it to be restricted to Windows or to any other operating system
00:41:06 <alise> zzo38: TeX is totally cross-platform.
00:41:18 <alise> MiKTeX is just TeX/LaTeX/pdfTeX compiled for Windows,
00:41:20 <zzo38> alise: Thanks, that is what I thought anyways
00:41:30 <alise> plus tons and tons of macro packages (you need them; core TeX is very small).
00:41:35 <pikhq> It's written by freaking Knuth.
00:41:39 -!- Alex3012_ has quit (Ping timeout: 265 seconds).
00:41:45 <pikhq> Knuth is a bit of a stickler for writing things right. :)
00:41:54 <alise> zzo38: You'd like TeX's actual source code. It's literate programming -- of course, Knuth invented that --
00:42:04 <alise> so it's written in TeX itself, with snippets of 70s Pascal in between.
00:42:20 <pikhq> Actually, TeX the program is actually in literate C.
00:42:22 <alise> His WEB system is used to extract and rearrange the Pascal from this document/code, and then that Pascal is translated into C for compilation for modern systems.
00:42:29 <alise> pikhq: Oh... that's sad.
00:42:46 <alise> It used to be compiled to C from 70s Pascal, though!
00:42:57 <pikhq> Yeah; it got ported.
00:43:12 <zzo38> I currently have Icoruma->HTML so now if I can write Icoruma->TeX as well, it can work
00:43:21 <pikhq> It's still literate code.
00:43:35 <pikhq> And the idea of literate C amuses me.
00:43:38 <alise> ftp://ftp.tex.ac.uk/tex-archive/systems/knuth/dist/tex/tex.web ;; the Pascal TeX
00:43:45 <pikhq> Just seems so... Anathema to most of C.
00:43:51 <alise> Looks like zzo38's code, actually.
00:43:59 <alise> pikhq: GHC includes Literate Perl...
00:44:15 <pikhq> alise: Which seems less odd... *Somehow*.
00:44:21 <alise> zzo38: Your Icoruma is actually very similar to TeX!
00:44:32 <alise> zzo38: It has an embedded turing-complete language for defining macros -- just like TeX.
00:44:35 <pikhq> Also, isn't Literate Perl implemented via Perl... "macros"?
00:44:45 <alise> It evaluates these macros then typesets the document to an output format -- just like TeX.
00:44:55 <alise> A lot of it is built up from simple primitives -- just like TeX.
00:44:58 <alise> pikhq: No, it's preprocessed.
00:45:03 <oerjan> i am not entirely sure but i think the cross-reference handling bits of LaTeX are not TeX, so if you want those you'll have to use LaTeX.
00:45:11 -!- Azstal has joined.
00:45:16 <alise> oerjan: you mean bibtex?
00:45:19 <alise> he won't want that; it's just for papers.
00:45:25 <alise> not really books unless you're Hofstadter :-)
00:45:34 <pikhq> Also, Bibtex isn't LaTeX.
00:45:34 <oerjan> alise: no, just intra-book references
00:45:35 <alise> ==Define AddLinkedContents
00:45:36 <alise> =.=Copy Leader =Argument
00:45:36 <alise> =.=Set Separator ">
00:45:36 <alise> =.=Calc @Name @Separator Concatenate @Leader @Heading Concatenate Concatenate !=Value
00:45:36 <alise> =.=Command =Quote <A HREF="main.html#\?</A><BR>
00:45:36 <alise> =.=Copy AddContents AddNormalContents
00:45:41 <oerjan> he did say he wanted that
00:45:46 <alise> =.=Copy Heading =Argument
00:45:47 <pikhq> It's a bunch of crazy TeX processing.
00:45:48 <alise> =.AddContents ....
00:45:52 <alise> It's so similar to TeX!
00:46:05 <oerjan> um does intra- mean what i think
00:46:20 <zzo38> It is? Well, I didn't know that. Either way, it can be done, I think.
00:46:44 -!- augur has quit (Ping timeout: 245 seconds).
00:46:55 <oerjan> "cross-references replaced by the chapter/table/page number
00:46:58 -!- Asztal has quit (Ping timeout: 265 seconds).
00:47:03 <alise> oerjan: you mean inter-
00:47:05 -!- Azstal has changed nick to Asztal.
00:47:11 <alise> intra-net; a network within an organisation
00:47:14 <alise> inter-net; a global network
00:47:23 <alise> the Internet; the most common inter-net
00:47:25 <oerjan> alise: i definitely did _not_ mean inter-, then
00:47:28 <zzo38> And the "AddLinkedContents" you gave is specific to HTML, it cannot be used in all Icoruma codes. All the other files except for the html_contents.irm are generic Icoruma files, though (since they don't use ==Quote command)
00:47:31 <oerjan> i meant within the book
00:47:37 <alise> oerjan: right, then you mean intra-
00:47:52 <alise> zzo38: Yes. I'm just saying that it's actually very similar!
00:48:02 <alise> So do icoruma files often have links?
00:48:11 <alise> You may want to replace them with footnotes saying "See p.#N".
00:48:13 -!- Alex3012_ has joined.
00:48:46 <zzo38> alise: Icoruma files can have cross-references to other places within the document (although they could be in another file, as long as they are joined together using ==Include command)
00:48:50 <alise> One thing's for sure; if it's typeset with (La)TeX it's going to look very, very good.
00:48:55 <alise> Knuth is a master of typesetting & typography.
00:48:58 <zzo38> Icoruma documents cannot contain any other kind of links.
00:49:40 <zzo38> They cannot contain links with text, however. The cross-reference *is* where the page-number goes.
00:49:50 <alise> Then that will work nicely.
00:50:11 <zzo38> html_contents.irm makes real links simply because it is HTML-specific and uses the ==Quote command for that.
00:51:37 <alise> I ought to make a typesetting system.
00:51:44 <alise> Or at least a document-authoring system.
00:53:07 <alise> pikhq: Wow; Knuth is so obsessive he gives Euler's name in Cyrillic because "Also, Leonhard Euler spent most of his life in St. Petersburg, and published hundreds of works there, so I give his name also in Cyrillic, both old style and new."
00:53:22 <oerjan> zzo38: LaTeX's \ref and \pageref commands to put in cross-references iirc. how to define the key for pointing to depends on what you want to point to (chapter, section, subsection or something else - you can define your own numbered subdivisions).
00:53:25 <alise> Could he be any more precise?
00:53:31 <alise> Only Dijkstra was so.
00:54:02 <alise> So, my current project is defining simple algebraic structures in Coq.
00:54:15 <alise> I have got everything up to abelian groups working /perfectly/; but am having troubles with pseudorings.
00:54:22 <zzo38> oerjan: OK, thanks that helps
00:54:28 <alise> Specifically, my AbelianGroup and Semigroup types are not paramaterised at all: so I need to include an extra field,
00:54:31 <alise> prAg_Sg : (prAg:Type) = (prSg:Type);
00:54:34 <alise> to ensure that they are on the same type.
00:54:41 <alise> Then every property about them most involve lots and lots of casts.
00:54:57 <alise> This means that I cannot use properties of lower structures on them, because they do not recognise the operations, buried as they are underneath so many casts.
00:55:11 <alise> What should I do? Should I parameterise the structures? That has its own problems...
00:55:49 -!- Rugxulo has joined.
00:56:09 <Rugxulo> well, I (basically) finished my B93 interpreter in Rexx
00:56:24 <Rugxulo> doesn't pop zero on underflow yet, but most semi-complex examples work
00:56:38 <Rugxulo> I'll have to tweak and test it more later
00:57:15 <Rugxulo> so if anybody wants to take a look, feel free to ask
00:57:29 <Rugxulo> welp, that's all for now, bye! :-P
00:57:33 -!- Rugxulo has quit (Client Quit).
00:59:39 <alise> "If there is a set of infinite numbers, for instance: set of Natural numbers N, what is the probability of occurrence of a particular number say x belonging to N? Is it zero as probability is 1/infinity so does it mean all the numbers do not exist?
01:01:54 <oerjan> that's actually a somewhat subtle problem
01:02:27 <oerjan> you have no uniform probability measure on the naturals, but there are various approximations
01:02:39 <alise> i just thought the question was funny
01:02:45 <alise> the guy sounds really scared that the natural numbers might not exist
01:03:48 <pikhq> The most obvious form of number.
01:04:43 <alise> natural numbers; numbers untainted by malevolent human hands
01:04:47 <alise> in tune with nature. organic numbers.
01:04:52 <oerjan> and for an _uncountable_ set like the interval [0,1], it's just the usual "every number has probability 0" "paradox" (resolved by having only countable additivity of probabilities.)
01:04:53 <alise> organic numbers; those produced by organs.
01:05:01 <alise> organs; parts of the human body. played in churches.
01:05:17 <pikhq> Oh, also, I was wrong. TeX is still written in WEB, not CWEB.
01:05:58 <pikhq> It's normally compiled via web2c, which directly compiles the subset of Pascal that WEB allows to C.
01:06:08 <alise> See, /this/ is why Knuth is awesome.
01:06:16 <alise> He maintains a progam written in a hybrid of TeX and 70s Pascal.
01:06:30 <pikhq> And does it competently.
01:06:44 <alise> More than competently.
01:07:02 <pikhq> I'm sad that he stopped handing out *actual* Knuth checks.
01:07:05 <alise> He barely maintains it anyway; the version change to π will not change affairs much.
01:07:12 <oerjan> Mathnerd314: well yeah. that doesn't work for [0,1] though.
01:07:14 <alise> It is very stable code.
01:07:31 <alise> TeX π's release -- the silliest way to say "Knuth dying".
01:07:50 <pikhq> Also METAFONT's e release.
01:08:08 <zzo38> Icoruma was not even based on TeX, it was mostly idea from MediaWiki and pod, actually. And Icoruma is best for rules of role plaing games, so it isn't really the best thing to use for anything else (although it still can be -- I have written a beer program in Icoruma, just to see if it can be done). If you want to type rules for a role playing game, though, Icoruma is not such a bad thing to use.
01:09:17 <alise> zzo38: But you inadvertently ended up taking inspiration from TeX, even having not been exposed to it!
01:09:28 <alise> You invented the most-formatting-commands-are-simply-turing-complete-macros-over-primitives idea.
01:09:48 <alise> You invented the collates-documents-runs-macros-then-spits-out-output-based-on-primitives idea.
01:10:00 <alise> Independently reinventing the core of TeX is something to be proud of; it took Knuth to do it the first time.
01:10:05 <zzo38> Mathnerd314: http://zzo38computer.cjb.net/prog/Icoruma.zip this might be what you were looking for
01:10:17 <zzo38> alise: OK, I understand now
01:10:45 <alise> What language is Icoruma coded in?
01:10:52 <pikhq> Also, it's evidence that you're going about this *the right way*.
01:10:57 <zzo38> Icoruma is coded in PHP actually
01:11:04 <pikhq> TeX *defines* how you do typesetting.
01:11:32 <zzo38> Since it in PHP it might be usable even in a wiki, if someone wants to do so
01:11:39 <alise> zzo38: See, Knuth maintains TeX in 70s Pascal, a mammoth task considering how limited and arcane the language is.
01:11:47 <alise> You maintain Icoruma in PHP, a mammoth task considering how limited and arcane the language is.
01:11:57 * alise puts on sunglasses retroactively
01:11:59 <alise> YEAAAAAAAAAAAAAAAAAAHHHHH
01:13:16 <zzo38> Of course, TeX and Icoruma have somewhat different purposes
01:13:37 <oerjan> so does Pascal and PHP. i think.
01:13:44 <alise> I wonder what the simplest, most theoretical Pascal-like you can define is. Not PL/I... some other thing with a similar name; that thing has to be close.
01:14:03 <alise> Oberon is very minimalist.
01:14:24 * oerjan merges Pascal and PHP to avoid correcting his grammar
01:14:30 <alise> Here's the entire definition of Oberon-2:
01:14:31 <alise> http://www.statlab.uni-heidelberg.de/projects/oberon/kurs/www/Oberon2.Report.html
01:14:36 <alise> pikhq will like that, I bet.
01:14:44 <alise> He seems to be a fan of tiny definitions.
01:14:47 <alise> Or, that may just be my heuristics.
01:14:54 <pikhq> alise: I am quite often.
01:14:56 <alise> It's even shorter than R5RS.
01:15:04 <alise> And there's an entire, full-featured, minimalist operating system written in it.
01:15:11 <alise> That fits on a floppy. With a GUI, and a TCP/IP stack.
01:15:17 <alise> It's 16 pages long.
01:15:20 <alise> (The language spec.)
01:15:24 <pikhq> I remember that sucker.
01:15:50 * alise looks for the exact quote
01:15:52 <alise> "The Oberon OS is available for several other hardware platforms, generally in no cost versions. It is typically extremely compact. Even with an Oberon compiler, assorted utilities including a web browser, TCP/IP networking, and a GUI, the entire package fits on a single 3.5" floppy disk. The version which runs on bare PC hardware is called Native Oberon."
01:16:00 <pikhq> Yeah, decent thing.
01:16:05 <alise> zzo38: that zip is not loading for me
01:16:33 <zzo38> alise: What is it doing if it is not loading?
01:16:47 <alise> Just loading indefinitely without result.
01:16:48 <zzo38> What errors do you get?
01:17:00 <alise> My connection is sporadic.
01:17:17 <alise> zzo38: Holy crap, icoruma is small!
01:17:33 <alise> icoruma.php is just 284 lines... icoruma_html.php 128 lines.
01:17:46 <alise> It's only a few functions. I was expecting it to be far bigger
01:18:10 <alise> This thing typesets the entire RPG documentation thing?
01:18:49 <zzo38> Yes, it does that. (icoruma.php just parses and interprets it, icoruma_html.php converts it to HTML)
01:19:01 <AnMaster> * oerjan merges Pascal and PHP to avoid correcting his grammar <- aaaaaaaargh
01:19:23 <alise> pikhq: Does TeX's Pascal even have enumerations?
01:19:28 * pikhq tries to find icomura
01:19:31 <pikhq> alise: Don't think so.
01:19:34 <alise> Or the subrange type thing like 1..10?
01:19:39 <alise> http://zzo38computer.cjb.net/prog/Icoruma.zip
01:19:44 <alise> And it's Icoruma, not Icomura :P
01:19:56 <pikhq> He wrote it in a subset of Pascal meant to be very, very portable.
01:20:05 <pikhq> alise: Ah, Japanese phonology strikes again
01:20:06 <alise> icoruma.php and icoruma_html.php are the files actually used; icoruma_raw.php is just a testing file, and icoruma.txt is a command reference.
01:20:22 <alise> Note how tiny both these files are.
01:20:30 <alise> Note how untouched by PHP's amazing suckiness.
01:20:53 <alise> pikhq: Does it even have definition of types?
01:21:19 <alise> ftp://ftp.tex.ac.uk/tex-archive/systems/knuth/dist/tex/tex.web
01:21:24 <alise> % A reward of $327.68 will be paid to the first finder of any remaining bug.
01:21:34 <alise> Wow, he's released as recently as February 2008.
01:21:51 <pikhq> alise: Sadly, no more proper Knuth checks.
01:21:51 <alise> \def\PASCAL{Pascal}
01:22:07 <alise> pikhq: That's for book errors.
01:22:12 <alise> That's only 0x$1.00, too.
01:22:26 <alise> I imagine if you found a bug in /TeX/, he'd actually pay you the $327.68 -- a rather larger sum.
01:22:47 <alise> Correction: TeX is written in 1982 Pascal (and TeX).
01:22:49 <pikhq> Instead, you get a certificate of deposit to the Bank of San Serriffe.
01:22:52 <AnMaster> * oerjan realizes that zzo38 is strictly following the "Don't ask to ask" principle <-- I make sure to follow that too
01:23:17 <alise> pikhq: ...TeX doesn't use pointers.
01:23:24 <alise> Or set types, or enumerated scala types. Or "with", or "new".
01:23:33 <pikhq> If you would like to make a withdrawal, one can talk to Knuth.
01:23:36 <alise> Or "var" parameters, apart from files (I think var means call-by-name or something).
01:23:45 <alise> It doesn't assign real:=integer, either.
01:23:56 <oerjan> alise: call by reference, more
01:23:56 <alise> "No procedures are declared local to other procedures"
01:24:11 <alise> pikhq: No pointers; I think I've read that before. iirc he stores everything in "sufficiently large" static buffers.
01:24:21 <pikhq> alise: The thing is, Knuth is no longer issuing personal checks.
01:24:28 <pikhq> For security issues.
01:24:29 <alise> pikhq: For errors in his books.
01:24:37 <pikhq> This is "in general".
01:24:44 <oerjan> mostly equivalent to adding * to everything in C, i think
01:24:49 <alise> I'm sure he'd be "kinder" with TeX...
01:25:09 <AnMaster> <pikhq> Very large, as alise said, but just some macros. <-- larger than that even
01:25:36 <alise> Why do Pascal programs have program declarations?
01:25:40 <alise> Does the name actually matter?
01:25:43 <pikhq> alise: Still no checks.
01:26:14 <pikhq> Literally none at all.
01:26:34 <AnMaster> <pikhq> It's a bunch of crazy TeX processing. <-- most of latex and other high level stuff such as bibtex is
01:26:48 <alise> "Since we are assuming 32-bit integers" Tut tut tut.
01:26:55 <pikhq> http://sunburn.stanford.edu/~knuth/boss.html I doubt that 0x$466.60 comes from 0x$1.00 sums. :)
01:26:55 -!- sebbu has quit (Ping timeout: 246 seconds).
01:26:56 -!- sebbu has joined.
01:27:51 <oerjan> alise: well it declares the files the program uses, iirc, originally
01:28:23 <alise> Thorsten Dahlheimer is pretty well off.
01:30:06 <pikhq> I note that he has not withdrawn that.
01:30:18 <pikhq> And thus, that's about $1126 of non-existent money.
01:30:36 <ais523> why are they using hexadecimal dollars anyway?
01:30:42 <alise> ais523: Because it's Knuth errors, dude!
01:30:49 <alise> You get one hexadecimal dollar for finding an error in his book.
01:31:02 <alise> This gets deposited for you into the Bank of San Serriffe.
01:31:08 <alise> ais523: you didn't know that? o_O
01:31:19 <alise> Getting a cheque from Knuth is one of CS' greatest medals.
01:31:20 <ais523> alise: I knew he gave money, and I knew it was no longer in the form of checks
01:31:26 <ais523> I didn't know what form it took nowadays
01:31:33 <alise> He stopped because people tried to fuck with his accounts.
01:31:39 <pikhq> The Bank of San Serrife, of course, has branches on the planet Pincus.
01:31:48 <alise> "To request early withdrawals, please contact D. E. Knuth at Stanford University." -- doing so would be a bit rude of course
01:31:58 <ais523> alise: I thought nobody actually tried, but he did it as a precuation
01:32:02 <pikhq> (Knuth may perform such withdrawals for you)
01:32:13 <pikhq> ais523: No, he went through 3 bank accounts.
01:32:14 <ais523> because it was possible to fuck with someone's accounts if they wrote you a check, or something
01:32:20 <ais523> ('twould be a cheque in the UK)
01:32:38 <pikhq> The electronic banking system is all sorts of fucked up.
01:32:48 <alise> ais523 saying fuck? rare occasion
01:33:00 <alise> So are cheques not really safe? I don't really know about this stuff, but I like cheques.
01:33:05 <ais523> alise: I was semi-quoting
01:33:15 <zzo38> I prefer to use cash, mostly
01:33:15 <ais523> I'm much more likely to use swearwords for htat reason than any other
01:33:17 <alise> "Soon people will learn that it is equally dangerous to reveal the numbers that are printed in plain sight on every check. Forget signatures; banks have no time to verify them. The once venerable system of checking accounts is irretrievably broken. Before long, companies will find it impossible to give out paychecks without exposing themselves to unacceptable risk. "
01:33:21 <pikhq> The world should consider itself glad that someone with a lot of computer knowledge does not have a grudge against human civilization.
01:33:28 <alise> [[Instead of writing personal checks, I'll write personal certificates of deposit to each awardee's account at the Bank of San Serriffe, which is an offshore institution that has branches in Blefuscu and Elbonia on the planet Pincus. ]]
01:33:32 <alise> so you still get a tangible reward
01:33:51 <oerjan> ais523: i vaguely recall something about the problem being people putting up _photos_ of their (uncashed) checks on the web, which _others_ could use to fuck with knuth's accounts
01:33:51 -!- Alex3012_ has quit (Ping timeout: 265 seconds).
01:33:53 <alise> So what is the simplest, portable way of transferring money?
01:34:19 <alise> pikhq: What, in an envelope?
01:34:28 <alise> Even hidden in a birthday card it's still going to get stolen.
01:34:36 <alise> And transferring larger sums of money as cash is a bit hefty.
01:34:46 <alise> Besides, converting currency sucks.
01:34:48 <pikhq> Ah, that. Yeah, go for debit card, or direct money transfer.
01:34:52 -!- ais523 has quit (Remote host closed the connection).
01:35:06 <pikhq> Neither of which is all that secure.
01:35:24 <alise> "It is absolutely idiotic to have 64-bit pointers when I compile a program that uses less than 4 gigabytes of RAM. When such pointer values appear inside a struct, they not only waste half the memory, they effectively throw away half of the cache."
01:35:28 <pikhq> Let's just face it: the only reason that money continues to exist is that one of us does not want to destroy everything.
01:36:09 <alise> http://ripple.sourceforge.net/
01:36:24 * oerjan gets the Blefuscu and Elbonia references, but what is Pincus?
01:36:27 <pikhq> Also, WTF Knuth. Surely you know the benefits of having mmap'd file IO. :P
01:36:50 <zzo38> Perhaps this could be one way: Both people phone each-other to synchronize their accounts for the specific amount of money, and then the sender gets a magnetic ink pad and uses something like a date-stamp to stamp the information onto the cheque.
01:36:53 <alise> mmap? That's not portable.
01:36:57 * pikhq likes his 64-bit pointers
01:38:04 * alise is going to spec out uber-Pascal; a version of Pascal designed to be as uber as it can possibly be.
01:38:07 <alise> No pointers, of course...
01:38:54 <oerjan> Pascal pointers are safer than C ones, anyhow, iirc no pointer arithmetic
01:38:58 <alise> "Read is introduced such that read(f, x) is the same as x:=f^; get(f);. Write is introduced such that write(f, x) is the same as f^ := x; put(f);"
01:39:02 <alise> Well that is useless!
01:39:04 * Sgeo is in love with this Wesnoth song
01:39:12 <pikhq> http://sunburn.stanford.edu/~knuth/iaq.html
01:39:39 <AnMaster> <pikhq> The Bank of San Serrife, of course, has branches on the planet Pincus. <-- pincus?
01:39:45 <AnMaster> google turns up nothing useful
01:39:53 <AnMaster> as to where the name would come from
01:39:54 <pikhq> AnMaster: Is humor.
01:40:07 <oerjan> AnMaster: darn i was just about to google it
01:40:11 <AnMaster> pikhq, yes I understand that, but I don't see what the humor is in it.
01:40:33 <AnMaster> pikhq, I googled san seriffe and found the origin of that (heh), but no luck with pincus
01:40:36 <oerjan> pikhq: the other strange names there _do_ have references, though
01:40:47 <AnMaster> oh, is it supposed to be "pink"?
01:41:20 * Sgeo looks for a song with lyrics "Maybe a mathematician"
01:41:34 <Sgeo> Clip from such a song came with Freespire
01:41:35 <oerjan> um "pink" is not a humorous reference. or maybe it is.
01:41:47 <zzo38> Pointers are very useful in C (even three-star pointers), but less so in higher-level program languages. In other programming languages you can do stuff like pointers in some ways in case you need it, I guess. For example, in PHP you can do the following: $ptr=array(&$x);
01:43:05 <AnMaster> zzo38, I prefer five star ones. From the Michelin guide to pointers
01:43:26 <alise> A pointer is just a single-length array!
01:43:36 <alise> Not that you can pass it by reference, of course!
01:44:05 <zzo38> AnMaster: Well, you can use any number of stars depending on what you are doing. Mostly one-star pointers are useful, but sometimes it is useful with three-star pointers or five-star pointers. (See c2 wiki)
01:44:36 <AnMaster> http://en.wikipedia.org/wiki/Michelin_Guide
01:44:43 <AnMaster> I thought that was common knowledge
01:44:54 <alise> huh, "Embarcadero" bought out Delphi
01:45:07 <zzo38> I didn't know what it was at first, now I can see on Wikipedia, thanks
01:45:31 <alise> zzo38 is ... american or canadian; I forget.
01:46:24 <oerjan> the five-star thing is for hotels, not restaurants though
01:46:45 <AnMaster> oerjan, right, 3 stars for restaurants iirc
01:46:56 <alise> program TEX; {all file names are defined dynamically}
01:47:06 <AnMaster> oerjan, but then there would have been no joke
01:47:07 <alise> program foo(files, that, are, used)?
01:47:14 <zzo38> alise: I live in Canada, as you should be able to check by my IP address
01:47:29 <alise> Canada's a nice place.
01:47:40 <alise> But if files can be declared dynamically why does program exist?
01:48:25 <oerjan> alise: yeah. input and output for stdin and stdout iirc
01:48:42 <oerjan> alise: i guess they couldn't in original pascal
01:48:55 <alise> I wonder how they are defined dynamically.
01:48:57 <alise> I should typeset tex.web.
01:50:17 <alise> noweb - A WEB-like literate-programming tool
01:50:18 <alise> nowebm - A WEB-like literate-programming tool - transitional package
01:50:18 <alise> cwebx - C/C++ literate programming system (Marc van Leeuwen's version)
01:50:18 <alise> funnelweb - A literate-programming tool
01:50:18 <alise> fweb - A literate-programming tool for C/C++/Fortran/Ratfor
01:50:21 <alise> Debian doesn't include WEB; hmph!
01:50:44 <oerjan> our first semester programming course back when was in turbo pascal. iirc that didn't need "program"
01:51:03 <zzo38> I thought Debian includes a lot of stuff, doesn't it? Perhaps some things are missing because nobody is submitting a package for it
01:52:14 <AnMaster> that is all I remember from pascal nowdays
01:52:24 <alise> @!alpha_file=packed file of text_char; {files that contain textual data}
01:52:24 <alise> @!byte_file=packed file of eight_bits; {files that contain binary data}
01:52:29 <AnMaster> oh wait program foo; or such was used for the program file
01:52:32 <oerjan> hm it had that, its own module system iirc. but that was not for main programs i think
01:52:35 <AnMaster> that was delphi not pascal though
01:53:01 <AnMaster> oerjan, delphi used units mostly with a single program file for starting the main program code in some unit
01:53:04 <oerjan> i don't think we ever got to unit in that course though :D
01:53:43 <oerjan> oh. i just vaguely recall turbo pascal had something like it.
01:53:46 <alise> I don't think we need packed.
01:53:53 <alise> packed is just performance stuff.
01:54:02 <alise> I am sure uber-Pascal does not require it.
01:54:20 <oerjan> alise: remainder from way back in memory-starved days, i assume
01:54:44 <oerjan> wasn't string = packed array of char
01:56:15 <alise> " string = packed array [1..255] of char;"
01:56:22 <alise> I think you have to choose the size in the type declaration.
01:56:55 <oerjan> oh, hm. well now i'm getting _really_ vague.
01:57:13 <alise> lol, having to choose a certain length of all strings
01:57:16 <alise> amazing, I love this language
01:57:20 <Sgeo> I think Astro File Manager installed something without my permission somehow
01:58:05 <Sgeo> My N1 came with some religious song :/
01:58:05 <oerjan> turbo pascal had its own dynamical string type, i think
01:58:14 <Sgeo> Generic religiousiy, nothing specific
01:58:18 <Sgeo> Just a song singing about Heaven
01:58:28 <AnMaster> <oerjan> wasn't string = packed array of char
01:58:37 <alise> Sgeo: so remove the app
01:58:46 <AnMaster> I forgot if length was 1 or 2 bytes
01:59:02 <AnMaster> delphi had: <length:4 bytes><pointer to string data>
01:59:08 <alise> apparently dynamically opening files was an extension to Pascal in Knuth's compiler!
01:59:10 <oerjan> AnMaster: i think that is an extension, and what turbo pascal did
01:59:31 <AnMaster> oerjan, heh, but even older pascal didn't use \0 terminated strings iirc
01:59:47 <Sgeo> But I _like_ the app that got installed without my permission
02:00:10 <alise> pikhq: Knuth did not even use structures.
02:00:12 <oerjan> older pascal iirc you had to declare all strings as fixed-length arrays, like alise said (oh _right_...)
02:00:27 <alise> oerjan: the realisation dawns :)
02:00:45 <oerjan> although you didn't have to use a common length type for them, i think
02:00:49 <AnMaster> oerjan, what if you had a shorter string?
02:00:59 <oerjan> AnMaster: different type
02:00:59 <alise> right, but if you made a type "string"...
02:01:02 <Sgeo> Or maybe it's just builtin Quickoffice functionality, rather than an explicitely-installed App
02:01:03 <alise> AnMaster: space padding.
02:01:07 <alise> or \0 padding or something
02:01:14 <alise> Sgeo: probably the former, and *explicitly
02:01:14 <AnMaster> oerjan, well what if you needed to work with unknown string length in some function
02:01:36 <oerjan> AnMaster: dammit now i'm also tempted to quote alise to you
02:01:53 <alise> then you ignored all the ones after some length parameter
02:01:58 <alise> or looked for some sort of padding character
02:02:23 <oerjan> AnMaster: well the point is he clearly knows this stuff at least as well as i do
02:03:31 <alise> @p function new_null_box:pointer; {creates a new box node}
02:03:36 <alise> Pascal didn't have a function keyword...
02:03:40 <alise> ugh; WEB source is so confusing.
02:04:46 <alise> pikhq: hah; TeX /does/ use pointers
02:04:52 <alise> @!pool_pointer = 0..pool_size; {for variables that point into |str_pool|}
02:04:54 <alise> @!str_pool:packed array[pool_pointer] of packed_ASCII_code; {the characters}
02:04:55 <AnMaster> oerjan, btw could you parse that Swedish?
02:05:02 <alise> it just uses integers and a big array
02:05:06 <oerjan> AnMaster: given that he started the pascal discussion...
02:05:28 <AnMaster> what does the pascal discussion has to do with reading Swedish
02:05:50 <oerjan> AnMaster: it was an addition to my previous comment
02:06:22 <alise> Perhaps if I define uber-Pascal properly and write a compiler to some uncouth language like C then I can stop myself coding anything but amazingly pure algorithms :P
02:06:30 <oerjan> alise: um i'm pretty sure pascal had function
02:06:34 <AnMaster> btw I found a new addicting game. It is KDE though
02:06:39 <alise> oerjan: procedure yes, but function?
02:06:53 <oerjan> alise: procedure was like void functions in C
02:07:10 <alise> Yes, you are right.
02:07:16 <alise> Why on earth would you need output?
02:07:46 <AnMaster> oerjan, ah yes I remember that
02:08:39 <alise> @ Here is a procedure that asks the user to type a line of input,
02:08:39 <oerjan> AnMaster: the "sure" was about your swedish though
02:08:40 <alise> assuming that the |selector| setting is either |term_only| or |term_and_log|.
02:08:40 <alise> The input is placed into locations |first| through |last-1| of the
02:08:40 <alise> |buffer| array, and echoed on the transcript file if appropriate.
02:08:40 <alise> This procedure is never called when |interaction<scroll_mode|.
02:08:40 <alise> @d prompt_input(#)==begin wake_up_terminal; print(#); term_input;
02:08:41 <alise> end {prints a string and gets a line of input}
02:08:47 <alise> @d /must/ mean "WEB ish stuff".
02:08:50 <alise> That is certainly not Pascal.
02:08:57 <alise> No; it looks like it desugars into a procedure.
02:09:09 <alise> Bizarre. Anyone have WEB?
02:09:19 <alise> I'd love it if they just typeset and untangled this code so I could know what's what :P
02:09:39 <zzo38> AnMaster: I could probably write something like KNetwalk in QBASIC, which is something I might do one day
02:10:49 <pikhq> Volume 4A of TAoCP is coming out this year.
02:10:59 <AnMaster> zzo38, also why would I want to play a QBASIC variant?
02:11:01 <pikhq> Man, we're actually getting a volume of TAoCP.
02:11:18 <zzo38> AnMaster: No, I have never played it. However I have look on Google and easily found the rules
02:11:24 <AnMaster> zzo38, okay a GTK+ one would be better, but a QBASIC one would not
02:11:49 <AnMaster> zzo38, oh btw on high difficulty levels the play field wraps
02:11:59 <AnMaster> so you can, and have to, connect over the edges
02:12:19 <AnMaster> not on the easier difficulty settings though
02:12:32 <zzo38> OK thanks now I can understand that it can wrap at some settings
02:12:34 <oerjan> alise: um didn't someone say that tex could be turned into a book? that seems like the point of literate programming...
02:12:43 <oerjan> so you _could_ typeset it
02:12:46 <alise> oerjan: yes; of course
02:12:49 <alise> that is what I was asking
02:12:57 <alise> WEB is two programs; one typesets the documentation and code with TeX
02:13:04 <alise> the other spits out Pascal source after fucking with it
02:13:07 <alise> I want the output of both
02:13:11 <oerjan> oh you asked for someone to do it
02:13:14 <alise> but I bet WEB is written in Pascal...
02:13:18 <alise> and Ubuntu doesn't have it
02:13:21 <alise> so I suspect it's a bitch to get
02:13:27 <AnMaster> zzo38, oh and every piece must be connected, not just all the computers
02:13:31 <oerjan> i thought you just meant you'd love if someone had done it
02:14:46 <zzo38> AnMaster: Yes, I almost assumed that at first, actually
02:15:02 <pikhq> There's a few implementations, IIRC.
02:15:22 <pikhq> AnMaster: You. Unignore alise.
02:15:36 <AnMaster> pikhq, hey who is it now who is talking about the ignore
02:15:48 <alise> pikhq: oh just ignore the idiot... as in mentally
02:16:09 <pikhq> Conversation's just going on with you basically shouting non sequiturs. :)
02:16:40 <AnMaster> pikhq, I checked log, and the context looked like it did from my POV there too. So I would have been equally confused even without /ignore
02:16:44 <pikhq> alise: You want WEAVE.
02:16:46 * oerjan is wondering if he should add (3) don't insult people who are ignoring you behind their backs, to his previous list
02:16:49 <alise> pikhq: but also TANGLE
02:16:54 -!- coppro has joined.
02:16:54 <Sgeo> AndChat doesn't seem to be autojoining channels
02:17:03 <alise> oerjan: is anyone being offended?
02:17:09 <alise> AnMaster has done his fair share of annoying me too.
02:17:21 <alise> and some of his insults have been pretty bad
02:17:23 -!- SgeoN1 has joined.
02:17:25 <alise> "idiot" is not much.
02:17:56 <oerjan> alise: yes. if one of you had actually been reasonable, then a request to ban the other could quite possibly have been granted.
02:18:24 <AnMaster> oerjan, I don't think either of us should be banned
02:18:40 <alise> oerjan: I doubt that.
02:18:52 <oerjan> AnMaster: well it would require one of you to actually be annoyed enough to request it
02:19:03 <alise> Nobody would ban me because I'm awesome; AnMaster wouldn't be banned because he hasn't committed an offence more egregious than being an idiot and a fuckwit.
02:19:14 <alise> Besides, everyone brushes it off as "oh they always argue" anyway. :)
02:19:31 <AnMaster> oerjan, if alise does that then consider me doing an automated counter request. But only at that point.
02:19:36 <alise> It is quite pleasant not to have him challenging and mocking everything I say, though. If he'd stop mentioning it and stopped talking to me I wouldn't mind him ignoring me.
02:19:44 <AnMaster> anyway, I don't have an issue with him being here
02:19:52 <alise> AnMaster: Nice passive-aggressivity.
02:19:54 <AnMaster> and lets *not* talk about the ignore for a while?
02:20:08 <alise> Like that will happen with you in here.
02:20:12 <Sgeo> 1 2 3 4 this is how we IRC war
02:20:18 <alise> oerjan: for the record, I formally request a ban of AnMaster; this should be fun.
02:20:25 <AnMaster> oerjan, MAD? As in the the magazine?
02:20:28 -!- Asztal has quit (Ping timeout: 246 seconds).
02:20:31 <alise> anyway it's precedent that you can't platonically time actions
02:20:36 <zzo38> I don't think we need to ban anyone
02:20:43 <alise> zzo38: LET'S BAN YOU
02:20:52 <oerjan> alise: both requests denied
02:21:07 <alise> What about AnMaster's? Uh oh...
02:21:27 <alise> What about my request to ban zzo38?
02:22:12 <oerjan> alise: i'm not a bot, i don't need to apply logic or pretend to play a game of nomic
02:22:28 <pikhq> Hooray, whims of oerjan.
02:22:30 <alise> Anyway, what about my request to ban zzo38? :)
02:22:34 <pikhq> Best government system *ever*.
02:22:36 <AnMaster> oerjan, if he is insulting me behind my back I however formally requests you banning him until he stops doing that. I only ask this because of what you said about adding (3) above
02:22:45 <alise> AnMaster sucks donkey cocks!
02:23:04 <alise> Oh, I felt the pang in his upsetness organ just from the metaphysical knowledge that I said something nasty about him there
02:23:05 <oerjan> AnMaster: that was the second request i denied, silly. you said it was automated.
02:24:14 -!- Mathnerd314 has quit (Ping timeout: 245 seconds).
02:26:40 <alise> http://www-cs-faculty.stanford.edu/~knuth/cweb.html
02:28:03 <alise> http://en.wikipedia.org/wiki/Jensen%27s_Device this is awesome
02:31:22 <alise> it exploits call by name to do "symbolic" parameters
02:31:42 <Sgeo> Knuth made an incorrect conjecture once?
02:31:54 <Sgeo> [Looking at the Man or boy test thing]
02:32:28 <alise> even the greats make mistakes
02:32:35 <alise> function factorial(n:integer):integer;
02:32:36 <alise> for k:=1 to n do factorial:=factorial*k
02:32:36 <Sgeo> Blasphemer! ;)
02:32:41 <alise> using the function name as the return value
02:32:46 <alise> pascal you one crazy bitch
02:33:04 <alise> yeah algol is crazier
02:33:10 <Sgeo> Scala has call-by-name
02:33:18 <alise> note that algol 60
02:33:21 <alise> is relatively conventional
02:33:26 <alise> algol 68 is the uber-crazy one
02:33:28 <alise> but nobody used it
02:33:30 <alise> and algol means 60
02:33:42 <alise> http://en.wikipedia.org/wiki/ALGOL_68 it has a longer article because wikitards like craziness :P
02:36:35 <oerjan> huh, you can include Special:RecentChanges on a wiki page?
02:40:15 <oerjan> i guess this change might help our wiki look more alive
02:41:35 <alise> oh wow; that's ugly
02:41:41 <alise> someone get rid of it
02:41:50 <Sgeo> On esolang wiki?
02:44:15 <oerjan> alise: it's true that the old page looks static, though
02:45:01 <oerjan> if you only looked at it you _could_ get the impression the wiki was dead
02:45:26 <fizzie> oerjan: Perhaps if you embedded a (randomly chosen on each page-load) javascript esolang interpreter on the main page. Can't call that static!
02:47:03 -!- lament has quit (Quit: lament).
02:53:33 <Sgeo> Someone's face is growing out of a phone?
02:57:00 -!- Mathnerd314 has joined.
02:57:09 * alise decides to write an uber-Pascal compiler before specifying it; a path to certain failure, of course.
02:58:08 <alise> Never mind that clearly uber-Pascal is the only acceptable language to write an uber-Pascal compiler in.
02:58:18 <oerjan> there are certain failures you want to avoid
02:58:55 <alise> There are certain certain failures that you are certain to be unable to avoid, certainly.
03:00:50 * alise has written an -- almost certainly incorrect -- uber-Pascal program to print out Collatz sequences, so let's see if we can compile it to C.
03:01:05 <alise> It worries me that writeln() is a polymorphic, variadic function: something patently impossible in Pascal.
03:03:48 <alise> Well, actually, the program enumerates one specific Collatz sequence (the one starting at n=12345).
03:04:01 -!- coppro has quit (Ping timeout: 258 seconds).
03:05:11 <oerjan> spoiler: it ends up at 1
03:08:20 <alise> Well; 50, if you don't count the base case.
03:08:42 -!- SgeoN1 has quit (Quit: Bye).
03:12:09 -!- lament has joined.
03:12:54 <alise> [[Entries in the The On-Line Encyclopedia of Integer Sequences give at most three lines of terms
03:12:55 <alise> (about 200 characters - a carry-over from the days when the database was on punched cards).]]
03:12:59 <alise> I didn't know the OEIS was that old.
03:17:16 <Mathnerd314> maybe 1267650600228229401496703205376 doesn't ever repeat :-)
03:18:38 <oerjan> also, technically i think it's still unknown if there are cycles other that 4,2,1
03:18:51 <oerjan> so it might have repeated somewhere else
03:19:24 <Mathnerd314> just read http://en.wikipedia.org/wiki/Collatz_conjecture
03:20:49 <oerjan> "Simons/deWeger in 2003 extended their own proof up to "68-cycles": there is no m-cycle up to m=68 a=T(a;(1)L1,A1,(1)L2,A2,...,(1)L68,A68). Whatever number of steps in L1 to L68 and whatever exponents A1 to A68 one may choose, there is no positive odd integer number a satisfying the cycle condition. Steiner claimed in a usenet discussion he could extend this up to m=71.[citation needed]"
03:21:18 <alise> Mathnerd314: 1267650600228229401496703205376 < 20 * 2^58
03:21:36 <alise> so it does terminate in 1, by computer exhaustion
03:22:11 <oerjan> "It is also known that {4,2,1} is the only repeating cycle possible with fewer than 35400 terms."
03:22:52 <alise> i'd quickly check it with computer but I don't have a calculator/CAS with that much precision atm
03:23:00 <oerjan> oh m-cycle isn't the same as cycle of length m there
03:23:06 <alise> but what oerjan said :P
03:23:20 * alise writes a crazy parser by hand
03:23:44 <Mathnerd314> no need; my earlier number was just 2^100 :-)
03:23:58 <alise> NEXT; IS('e',go1);
03:23:58 <alise> NEXT; IS('g',go1);
03:23:58 <alise> NEXT; IS('i',go1);
03:23:58 <alise> NEXT; IS('n',go1);
03:24:00 <alise> #define GET old=c; c=getc(f); if(c==EOF) goto eof
03:24:00 <alise> #define FORGET ungetc(c,f); c=old
03:24:01 <alise> #define IS(d,g) if(tolower(c)!=d){FORGET; goto g;}
03:24:02 <alise> #define WHITESPACE GET; while(isspace(c)){GET;} FORGET
03:24:48 <Mathnerd314> lambdabot is just so nice for these sorts of computations...
03:25:11 <oerjan> alise: i checked his number in haskell btw, i have a Collatz.hs module from before
03:25:59 <oerjan> (i did _not_ check before my "spoiler" above, though)
03:28:39 <oerjan> alise: that parser would have trouble with identifiers like beef, wouldn't it
03:29:39 <oerjan> since you are discarding all but the mismatched character
03:30:24 <oerjan> and ungetc can only do one char in a row, can't it
03:33:32 -!- alise has quit (Ping timeout: 258 seconds).
03:42:22 <Mathnerd314> hmmm... is Pure an esoteric programming language?
03:43:11 <zzo38> There are other ways to write stuff using C preprocessor, too, especially if you are using GNU C. GNU C has some additional things that help a bit. Including typeof operator, ({ }) blocks inside of expressions, some __builtin_ commands, are useful when writing preprocessor macros
03:43:43 <zzo38> It might also be what __attribute__((unused)) is meant for.
03:43:47 -!- alise has joined.
03:43:47 <pikhq> GNU C should just add hygienic macros and call it a day, honestly.
03:43:51 <alise> Mathnerd314: pure the rewrite language?
03:43:59 <zzo38> What are hygienic macros?
03:44:02 <alise> <alise> oerjan: i could store all chars read so far in a buffer
03:44:03 <alise> <alise> of a certain fixed size; and specify that identifiers need only be handled up to N long
03:44:08 <alise> Mathnerd314: it is pretty but not really esoteric
03:44:11 <Mathnerd314> this one: http://en.wikipedia.org/wiki/Pure_%28programming_language%29
03:44:12 <alise> the paradigm is esotericish; see Defcalc
03:44:14 -!- fax has joined.
03:44:19 <alise> http://www.esolangs.org/wiki/Defcalc
03:44:27 <alise> but Pure is basically the core of most computer algebra systems
03:44:29 <alise> so not really esoteric
03:44:32 <oerjan> alise: well sure, just your code didn't
03:44:34 <fax> is there an unlambda interpreter in brainfuck?
03:44:37 <alise> oerjan: yeah but it will now!
03:44:39 <fax> or brainfuck to unlambda
03:44:46 <pikhq> zzo38: Macros whose expansion is guaranteed not to cause collisions with existing symbol definitions.
03:44:48 <alise> see http://www.esolangs.org/wiki/EsoInterpreters
03:45:15 <fax> alise it's not there :/
03:45:23 <fax> maybe I can get there in a couple steps
03:45:35 <fax> is ther any program which finds the shortest path in that matrix?
03:45:42 <alise> no, but you could write a general one
03:45:48 <alise> ooh now that calls for some super algorithm
03:45:58 <alise> apply A* to the esointerpreters page.
03:46:35 <oerjan> fax: it's not that hard, _most_ things there are either just implemented, just implemented, or are brainfuck
03:46:47 <Mathnerd314> alise: so why is defcalc esoteric but pure not? :p
03:46:55 <oerjan> and i haven't heard of any unlambda - brainfuck connection
03:47:05 <alise> Mathnerd314: for some paradigm P, tarpit(P) = esoteric; fully-developed language(P) = not esoteric
03:47:12 <pikhq> Though, C already has something *kinda-sorta* like hygienic macros... static functions are *like* them, for some purposes.
03:47:12 <alise> strangestrange instance of(P) = esoteric
03:47:15 <pikhq> Just not as general. :(
03:47:22 <alise> "just implemented, just implemented, or are brainfuck"
03:47:26 <alise> just implementors, you mean
03:48:10 <alise> well to interpret unlambda in brainfuck
03:48:19 <alise> we need to have either an intercal in brainfuck -- not happening
03:48:25 <alise> or a lazy k in brainfuck, which we have
03:48:36 <pikhq> Hmm. Why *is* Brainfuck so popular, anyways?
03:48:39 <zzo38> See line 66 of http://pastebin.com/U0gRGw6N that's how __attribute__((unused)) is used
03:48:46 <alise> lazy k isn't implemented
03:48:50 <alise> fax: can't interpret unlambda, sorry
03:49:02 <alise> unlambda only has self-interps, sorry
03:49:10 <alise> fax: can't be done
03:50:16 <Mathnerd314> no, pure has too many built-in special forms
03:50:16 <alise> pikhq: can't be done with current state of the art.
03:50:22 <pikhq> I could've *sworn* there was a Brainfuck in unlambda. :(
03:50:30 <alise> Mathnerd314: yeah :P
03:51:03 <zzo38> pikhq: If there isn't one, maybe write one
03:51:28 <alise> oerjan: also my parser is actually a lexer... so I lied when I said it was a parser
03:51:35 <alise> the idea is that the compiler operates directly on the lexing results
03:51:37 <pikhq> GCCBF really needs to be worked on. :P
03:51:38 <alise> with no need for parsing
03:51:41 <zzo38> Although perhaps unlambda should have new commands for input/output by bits
03:51:55 <oerjan> alise: lazy k is rather too complicated to implement. like befunge, it's a language that's relatively easy to implement other things in
03:52:00 <alise> if you have a BEGIN without END, it simply fails to return from do_BEGIN() and errors out
03:52:17 <alise> let's see, what would be easiest to implement in unlambda...
03:52:32 <alise> would thue be easy to implement in unlambda?
03:52:36 -!- lament has quit (Quit: lament).
03:52:54 <oerjan> so far only brainfuck has hit the sweet spot of being both. you will note that the only _cycle_ in the graph is with it and another almost identical language (Bub iirc)
03:52:58 <alise> the brainfuck thing for lazyk is just a compilerish thing
03:53:22 <alise> it's not quite identical though
03:53:37 <alise> well, for unlambda we want something without much syntax
03:53:56 <alise> bf in underload can't be hard
03:54:02 <alise> http://www.esolangs.org/wiki/Redivider/Underload_Interpreter ;; I forgot how lovely Redivider is.
03:54:14 <alise> A gem of an esolang; why does nobody like it?
03:54:18 <alise> Well, or at least mention it.
03:54:21 <pikhq> Lazy K in Unlambda would probably be pretty easy.
03:54:47 <alise> but there's no bf-in-lazyk
03:54:50 <alise> it's a set of compiler macros
03:54:53 <alise> http://www.esolangs.org/wiki/Redivider/Brainfuck_Interpreter ;; also smexy
03:54:57 <pikhq> Wouldn't be hard, either.
03:54:58 <oerjan> alise: no, thue would be awful in unlambda, because unlambda has a hard time comparing chars
03:55:11 <alise> Actually the example -- infix to RPN -- on http://esolangs.org/wiki/Redivider -- is actually very nice.
03:55:19 <alise> As in, it'd be nice to write it even in a non-esolang that way.
03:55:39 <oerjan> in fact any brainfuck implementation in unlambda is going to require a full character table of ?x and .x functions
03:56:10 <alise> Brainfuck-in-Thue has the impressive property of containing every 256 ascii character.
03:56:16 <pikhq> Yeah, that's needed for any output in unlambda. :*
03:56:17 <oerjan> (my unlambda in unlambda barely got by with a ?x table, .x could be done with |)
03:56:29 <fax> who was that crazy guy with the blog about smallest possible self interpreters?
03:56:47 <oerjan> alise: brainfuck-in-thue is not really workable without I/O translation
03:57:03 <oerjan> because thue has an input injection problem
03:57:04 <fax> http://eigenratios.blogspot.com/
03:57:27 <pikhq> My God, Redivider is beautiful for parsing.
03:58:20 <oerjan> alise: bf in underload is impossible, because of input lacking
03:58:25 <alise> fax: yeah he's awesome
03:58:26 <alise> fax: it's not smallest
03:58:46 <alise> pikhq: I'll have you know I shaped redivider!
03:58:54 <fax> It sucks he's not been bloging
03:58:57 <alise> I nudged Warrigal until he made it how I like.
03:59:01 <alise> fax: I just said that recently!!
03:59:28 <fax> SYNCRONISITY
03:59:38 <alise> pikhq: There was a really really nice SK interp in it that warrigal did
03:59:39 <pikhq> ORK is probably far too hard to implement in anything... :/
03:59:42 <alise> Lemme try and find it
04:00:01 <pikhq> Except quite possibly Glass.
04:00:03 * alise imagines an esolang designed to minimise the size of its own self-interpreter, while not "cheating" (like say using eval or whatever)
04:00:11 <pikhq> Who wants a Gregorcycle? :P
04:00:14 <alise> Binary lambda-calculus as per John Tromp has a 210 bit self-interpreter.
04:00:19 <oerjan> pikhq> Lazy K in Unlambda would probably be pretty easy. <-- lazy evaluation is hard to emulate if you have neither mutable datastructures nor laziness already
04:00:23 <alise> Which is 26 and 1/4 bytes.
04:00:30 <fax> lambda-calculus is the best possible programming language
04:00:35 <alise> But that's sorta cheating, packing things into one byte.
04:00:40 <fax> coding it in binary is a trick
04:00:46 <pikhq> oerjan: Don't have to be actually lazy, just call-by-need. :)
04:00:49 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
04:01:02 <pikhq> (at least, I don't *think* Lazy K actually mandates laziness)
04:01:21 <fax> hahaha oh wow http://en.wikipedia.org/wiki/Self-interpreter
04:01:25 <fax> "Clive Gifford introduced a measure quality of self-interpreter - eigenratio. Eigenratio is a ratio between computer time spent to run a stack of N self-interpreters and time spent to run a stack of N-1 self-interpreters, when N goes to infinity. This value does not depend on top-level program being run."
04:01:35 <alise> fax: that's the eigenratio blogs
04:01:51 <oerjan> pikhq: i think underload in unlambda can be done without a full character table, since it only prints characters previously read
04:01:51 <alise> he conjectures, based on nothing at all but it would be nice, that the best possible ratio is phi :)
04:02:02 <alise> Here's a binary lambda calculus self-interp:
04:02:04 <alise> 01010001101000010000000110000001100001011110011111110000101
04:02:04 <alise> 11001111111000000111100001011011011100111111110000111111110
04:02:04 <alise> 00010111101001110100101100111111000011011000010111111110000
04:02:04 <alise> 11111111000011100110111101110011010000110010001101000011010
04:02:10 <alise> Or in De Bruijn-index lambda calculus:
04:02:11 <alise> (λ11)(λ(λλλ1(λλ1(λ3(6(λ2(6(λλ3(λ123)))(7(λ7(λ31(21))))))(1(5(λ12))(λ7(λ7(λ2(14)))3)))))(11))(λ1((λ11)(λ11)))
04:02:22 <alise> (where 123 is ((1 2) 3))
04:02:26 <fax> yeah I've seen that program before
04:02:45 <oerjan> pikhq: you mean call-by-name
04:03:04 <fax> it's just ev(fx)=ev(f)ev(x);ev(\x.m)=\x.ev(m[x]) using scott mogensen encoding
04:03:13 <fax> turning it into binary is stupid
04:03:42 <fax> obfuscation
04:04:00 <alise> fax: it's not about that
04:04:03 <alise> it's for kolgomorov complexity
04:04:06 <alise> http://homepages.cwi.nl/~tromp/cl/cl.html
04:04:10 <alise> tromp is a good friend of ours, not an idiot :)
04:04:22 <alise> for kolgomorov complexity you need some sort of number to denote the "size" of a program
04:04:29 <pikhq> oerjan: Ah, right. That.
04:05:39 <oerjan> alise: i dispute that conjecture, i _suspect_ my unlambda-in-unlambda interpreter actually has ratio 1. otoh some might consider its methode cheating.
04:05:56 <alise> oerjan: how does it work?
04:06:04 <alise> and it surely can't run /exactly as fast/ as the host interp
04:06:21 <oerjan> no, but there is no extra overhead after the second iteration or so
04:07:08 <alise> and you have to count normal interp to first selfinterp, anyway
04:07:11 <oerjan> because it parses, always, the program into an eta-expanded version of itself, which is the same one after any number of iterations after the first
04:07:32 <oerjan> and then that is directly run by applying it to an exit continuation
04:08:17 <pikhq> That's like using eval, really.
04:08:21 <oerjan> so in some sense after parsing it skips directly down to the first interpreter
04:10:07 <oerjan> pikhq: i said some might consider it cheating. otoh it cheats using a fundamental feature of lambda calculus :D
04:11:08 <alise> oerjan: right but what is the ratio of host interp : selfinterp?
04:11:23 <alise> that + some (since there's overhead in your parsing) is your eigenratio
04:11:28 <fax> if it parses it then turns it into 'direct' code, the parsing is O(1)
04:11:32 <fax> compared to running the program
04:11:40 <fax> so you can ignore the O(1)
04:11:59 <alise> because eigenratios measure actual time ratio
04:12:08 <fax> over which programs?
04:12:16 <alise> an infinite stack of self-interps
04:12:22 <alise> if you just measured O()ness, that'd be easy
04:12:25 <fax> that's differentt to what I was thinking
04:12:30 <alise> because most every non-stupid interpreter is O(n) so to speak
04:14:58 <oerjan> alise: if you chain n programs, then most steps will take the same time t independent on n, i think. so ((n+1)t)/(nt) = (n+1)/n -> 1
04:15:05 <alise> let's say E is the eigenratio of a language L with self-interpreter I
04:15:22 <oerjan> each step just has to parse the next, then run it
04:15:44 <oerjan> that's my reason for believing it has ratio 1, after all
04:15:52 <alise> now let T(f,x) be the time it takes the interpreting-function f to run the program x
04:16:00 <alise> now let T(f,x,i) be the time it takes the interpreting-function f to run the program x with input i
04:16:37 <alise> and let F(p,i) return an input suitable for passing to I
04:16:42 <alise> that represents run-the-program-p-with-input-i
04:16:55 <alise> now let S(0,p,i)=T(E,p,i); S(n,p,i)=T(E,I,F(p,i))
04:17:25 <alise> now let E'(n) = S(n,nop,"")
04:17:40 <alise> now let E (loosely) = lim n->inf, S(n,nop,"")
04:17:45 <alise> (of course the nop and "" are irrelevant in E)
04:18:19 <alise> now let S(0,p,i)=T(E,p,i); S(1,p,i)=T(E,I,F(p,i))
04:18:37 <alise> S(0) is regular interp
04:18:40 <alise> S(1) is one self interp stack
04:18:43 <alise> S(n) is n nested self-interps
04:18:57 <alise> so E is the limit as n goes to infinity of T(S(n))/T(S(n-1))
04:19:01 <alise> where T measures the time to run
04:19:08 <alise> with some simple base program
04:19:33 <alise> basically you have some simple but not instant base program P, and you do E(P), then E(I(P)), then E(I(I(P))) and eventually they'll tend to some value E.
04:19:36 <alise> i am bad at explaining
04:20:26 <oerjan> alise: note that for my interp chaining is as simple as cat interp interp interp interp botprog botinput | unlambda
04:20:38 <alise> Also note that eigenratios tend to be very large.
04:20:53 <alise> The fastest BF self-interpreter, cgbfi2.b, has an eigenratio somewhere in the low thousands.
04:21:27 <alise> So as n goes to infinity, Time(Stack(n)) = lowthousands*Time(Stack(n-1))
04:21:29 <oerjan> maybe i should actually time my interpreter :D
04:21:38 <alise> oerjan: Feel free.
04:21:47 <alise> Remember to run the first timing twice due to silly OS caching.
04:21:54 <alise> I'd write a program to keep increasing the nestings.
04:22:00 <alise> Also remember to do one with just the base interp
04:22:08 <alise> and, of course, do the division for you at each step
04:22:27 <oerjan> why would we want the base interp alone?
04:22:31 <alise> consider n=1, Time(Stack(1)) = something*Time(Stack(0))
04:22:35 <alise> Stack(0) = base interp
04:22:39 <alise> oerjan: it's the "overhead" of your interp
04:22:48 <alise> i.e. literally a measure of how much slower it makes things
04:22:52 <alise> at least i think you include the base interp
04:23:15 <alise> It's 4:22 am but I'm going to write a Redivider interp anyway because I'm not tired.
04:23:25 <oerjan> it's the limit as stack height -> inf, after all
04:24:04 <alise> oerjan: how about running once without base and once with? :P
04:24:11 <alise> whichever is the larger value is likely correct ;-)
04:24:37 <oerjan> what do you mean _without_ base?
04:24:52 <alise> as in start with cat selfinterp foo | unlambda
04:25:21 <alise> But yes, you're right.
04:25:23 <alise> You should omit base.
04:25:33 <alise> But i'd still take sequential samples.
04:25:48 <oerjan> question is what to use for foo. hello.unl perhaps.
04:25:57 <alise> Sure, that would work.
04:26:19 <alise> The self-interps are complex enough that they'll end up spending most of their time running the endless copies of themselves rather than the actual program.
04:26:40 <alise> Reason to take a bunch of higher and higher samples: it could take too-many-to-run interpreters before it starts converging, so at least you can come up with an approximation formula given a bunch of samples
04:27:00 <alise> which you can then numerically evaluate at lots of big points to get a guesstimate
04:27:07 <oerjan> wait that prints 10 lines
04:27:50 <alise> redirect output to /dev/null
04:27:55 <alise> or NUL or whatever you dos folk use
04:28:07 <alise> oerjan: "Furthermore it seemed that the limit value of this ratio didn't change when a different top level program was used (on the very top of the stack)."
04:28:13 <alise> so it doesn't really matter, but i wouldn't use nop
04:28:18 <oerjan> this is on the nvg linux machine
04:28:50 <alise> lol i tried to reverse redivider to get a nicer interp name
04:30:09 <oerjan> you want the user times i guess?
04:30:23 <alise> isn't it usually real?
04:30:55 <alise> e Elapsed real (wall clock) time used by the process, in
04:30:57 <oerjan> well this is a multiuser machine, does this matter?
04:31:22 <alise> U Total number of CPU-seconds that the process used direct‐
04:31:23 <alise> ly (in user mode), in seconds.
04:31:29 <alise> So basically U is not just you-user.
04:31:39 <alise> You want e, which is how long it actually took according to a stopwatch.
04:33:04 <alise> run it for only one self-interp, then two, etc.; record these values, then for each value take it divided by the previous one
04:33:07 <oerjan> bash-2.04$ time cat interpreter.unl interpreter.unl interpreter.unl interpreter.unl interpreter.unl interpreter.unl interpreter.unl interpreter.unl unlambda-mirror/CUAN/Hello.unl | unlambda > /dev/null
04:33:20 <alise> the resulting list of values are sequential approximations of your eigenratio
04:33:43 <oerjan> well do you want me to use real
04:35:11 <oerjan> 0m0.003s 0m0.059s 0m1.104s 0m1.137s 0m1.159s 0m1.143s 0m1.108s 0m1.111s 0m1.156s
04:35:45 <alise> for i in $(seq 1 20); do /usr/bin/time -f '%e' cat $(seq 1 $n | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl | unlambda > /dev/null; done
04:35:58 <alise> or wait, not enough precision
04:36:21 <oerjan> that's from running unlambda on just Hello.unl to running it on 8 interps + Hello.unl
04:36:33 <alise> mine starts with one interpreter
04:36:50 <alise> pastebin the results... or just put them here, and i'll calculate the eigenratio approximations
04:37:49 <alise> what; then how does your 8 stack result in that?
04:38:13 <alise> oerjan: up it to 100??
04:38:15 <oerjan> probably you have some bug
04:38:33 <oerjan> alise: nonsense, it went far too fast
04:39:11 <alise> the results of time are being piped to unlambda
04:39:36 <fax> alise http://www.paultaylor.eu/~pt/prafm/html/c8.html
04:39:49 <oerjan> oh right only the builtin takes a whole pipeline
04:39:49 <alise> for i in $(seq 1 20); do cat $(seq 1 $n | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl | /usr/bin/time -f '%e' unlambda > /dev/null; done
04:40:09 <alise> fax: has uninterpreted latex :(
04:40:17 <oerjan> cat: 1: No such file or directory
04:40:41 <alise> seq 1 10 | awk '{print "hi"}'
04:41:21 <alise> cat $(seq 1 5 | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl
04:41:25 <alise> you should see a bunch of your interp
04:42:47 <alise> oerjan: ok try this:
04:42:55 <oerjan> that did strange things to the terminal. i think printing a program that contains an ascii table may not be a good idea :D
04:43:10 <oerjan> (nothing really bad though)
04:43:25 <alise> for i in $(seq 1 20); do
04:43:26 <alise> cat $(seq 1 $n | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl |
04:43:26 <alise> (time (unlambda >/dev/null)) 2>&1 | grep real;
04:43:53 <oerjan> can i get that as one line?
04:44:10 <alise> for i in $(seq 1 20); do cat $(seq 1 $n | awk '{print "interpreter.unl"}') unlambda-mirror/CUAN/Hello.unl | (time (unlambda >/dev/null)) 2>&1 | grep real; done
04:44:34 <alise> pikhq: If you're looking for a project... a http://www.esolangs.org/wiki/Redivider self-interpreter would be very easy, considering the BNF is in a form almost accepted by it already ;-)
04:44:59 <oerjan> now that gave a syntax error rather than continuing the command
04:45:13 <pikhq> alise: I've already got quite a project.
04:45:22 <alise> oerjan: how about just giving me shell access :P
04:45:23 <pikhq> If you'll note, I am hardcore learning-Japanese-ness.
04:45:45 <alise> oerjan: what error did I make?
04:46:09 <alise> pikhq: Teach Redivider Japanese.
04:46:43 <oerjan> alise: removing the alise> from your multiline version gave a program that printed a lot and messed up my terminal again
04:47:04 <alise> I'm just going to write all the commands out for you
04:47:34 <alise> it's because it says $n
04:47:37 <alise> look i'll fix it :P
04:48:57 <oerjan> alise: i changed $n to $i, now it printed even more junk
04:48:57 <alise> oerjan: http://pastie.org/933673.txt?key=pzvxvuz0ddpzg15rgokma
04:49:02 <alise> save this as times.sh
04:49:12 <alise> oh wait that won't work
04:49:50 <alise> http://pastie.org/933674.txt?key=j0smhs7f2sgaszh9btlmwg
04:49:52 <alise> run this shell script.
04:50:00 <alise> it will print a bunch of lines starting "real some time"
04:50:59 <fax> what should I do right now?
04:51:27 <oerjan> except the actual numbers, they decreased at some steps :D
04:52:01 <alise> oerjan: well you said the ratio would be ~1, so...
04:52:18 <alise> sed 's/real/user/' it and maybe you will get better results
04:52:24 <alise> pastebin the timings, anyway
04:52:36 <oerjan> 0m0.049s 0m1.150s 0m1.117s 0m1.260s 0m1.204s 0m1.113s 0m1.140s 0m1.164s 0m1.120s 0m1.115s 0m1.152s 0m1.127s 0m1.105s 0m1.125s 0m1.110s 0m1.113s 0m1.118s 0m1.106s 0m1.114s 0m1.128s
04:53:17 <alise> those are the user ones?
04:53:30 <alise> i wish we could have more precision...
04:53:32 * alise calculates eigenratios
04:54:50 <oerjan> 0m0.047s 0m1.107s 0m1.107s 0m1.115s 0m1.119s 0m1.140s 0m1.142s 0m1.147s 0m1.119s 0m1.144s 0m1.102s 0m1.096s 0m1.103s 0m1.101s 0m1.111s 0m1.101s 0m1.114s 0m1.114s 0m1.095s 0m1.105s
04:55:16 <alise> do those better reflect what you saw?
04:55:35 <alise> http://pastie.org/933678.txt?key=q00ia70tvjxrvxsolqe7gq the eigenratios for the real times; you are right, it is very close to 1
04:55:50 <alise> I'd look for an algebraic expression approximating it but that expression would be "1"
04:55:50 <oerjan> um they are all rather similar, both real and user are a bit > 1 s
04:55:56 <alise> apart from the first term, what's up with that.
04:56:42 <alise> for the user ones, two terms are actually 1.0
04:56:47 <oerjan> it never runs the interpreter.unl from eta expanded version
04:57:00 <alise> well the first one has some overhead
04:57:03 <alise> and that's one interpreter.unl vs two
04:57:23 <oerjan> but the first interpreter.unl is run directly by the C interp
04:57:34 <zzo38> There are no GENUINE solutions to "Calculator" problem on Anarchy Golf, how short can anyone write genuine one in different program language? (Put "(genuine)" after your name if you want to tell the difference)
04:57:37 <oerjan> the second is parsed and eta expanded
04:58:23 <oerjan> still, very little happens from the second on...
04:58:28 <alise> zzo38: oh you mean http://golf.shinh.org/p.rb?Calculator?
04:58:30 <alise> that is my problem!
04:58:46 <alise> /can/ you write a genuine solution?
04:58:50 <fax> I have never been able to solve a single one of these golfs
04:58:51 <alise> you used to be able to modify your own source file iirc
04:58:59 <alise> which is how I intended people to do it
04:59:12 <alise> zzo38: you could try doing that
04:59:34 <alise> i forget what your file ends up being named, but
04:59:57 <zzo38> Yes, I believe you still can modify your own source file. That's how I solved "Regexpr Next Input"
05:00:18 <alise> basically you'd make the program be "open own file; append the input and also append 0 if it's *; print "
05:00:22 <alise> where print would print nothing
05:00:24 <alise> then it'd turn into
05:00:30 <alise> and also append /1/ if it's *
05:00:40 <alise> oh wait it has to output 50 at the start...
05:01:51 <zzo38> It is not completely true that nobody has written a genuine solution to "Calculator" problem: I have done it.
05:02:32 <zzo38> The source file is always called "test." and the extension for the type, and for most languages is the only file in the current directory.
05:03:01 <oerjan> alise: one annoying thing about those timings is that the overhead of the first two interps is clearly swamping out everything else, so it is hard to say if the rest is even growing. hm...
05:03:24 <alise> oerjan: i think it is not growing, as it sometimes goes down
05:03:38 <alise> /but/ I am not sure whether your eigenratio is ~23.5 or 1
05:03:40 <zzo38> Although my genuine solution for "Calculator" does not modify its own source file
05:03:55 <alise> I guess it is 1; email Clive Gifford with your findings
05:04:09 <alise> zzo38: oh, that works
05:04:17 <oerjan> alise: well that just means it's even more swamped.
05:04:34 <oerjan> alise: i'll do something else first
05:04:43 <alise> clive.gifford@gmail.com
05:04:56 <alise> FUCK IT'S 5AM WHY!
05:04:56 <oerjan> actually is that site still alive?
05:05:05 <alise> well last post 2007 but the man is still alive presumably
05:05:14 <alise> I want to stay awake, I'm not tired... but now it'll be really late when I wake up
05:05:39 <pikhq> SLEEP IS OVERRATED
05:05:41 <fax> it says 4 am on my clock
05:05:49 <alise> is your clock correct?
05:06:00 <alise> 5:05am Sunday (BST) - Time in United Kingdom
05:06:08 <alise> fax: adjust your clocks... belatedly
05:06:24 <oerjan> fax is an icelandic, clearly
05:06:45 <zzo38> >>a;<<x>>a;expr `<a`||head -1 a
05:09:25 <alise> oerjan: he's uk :P
05:10:04 <pikhq> alise: Pity you guys decided to split the time zones right down Greenwich. j/k
05:10:22 <zzo38> "Check for brainwave activity" is my problem.
05:10:43 <zzo38> And now I know who made "Calculator" problem, too.
05:12:13 <alise> http://golf.shinh.org/p.rb?RPN+calculator+FIXED+NO+REALLY is also mine though it's broken
05:12:37 <alise> http://golf.shinh.org/p.rb?Encoder+decoder is also mine
05:14:07 <alise> http://golf.shinh.org/reveal.rb?Encoder+decoder/*yuko*_1245746372&bas nice BASIC
05:14:49 <alise> it occurs to me that pascal is a slight extension of what happens when you apply the transformation "remove sigils; replace places where you'd want to use GOTO with blocks" to BASIC.
05:15:11 <alise> zzo38: This is also mine: http://golf.shinh.org/p.rb?Print+out+a+lot+_56K+BEWARE_
05:15:17 <alise> Most problems with that were with interpreters timing out!
05:15:55 <alise> I see you were the runner up
05:17:07 <alise> zzo38: I think Brainfuck's mine too; almost certainly. Yes, it was not really FIXED...
05:17:41 <zzo38> I know; I tried and it is not really FIXED
05:18:07 <alise> http://golf.shinh.org/p.rb?Walk+the+line This is mine; I like this one a lot.
05:19:15 <zzo38> I like this one too (although I have not submitted a solution)
05:19:27 <alise> I think anarchy golf shouldn't allow any cheating entries at all.
05:19:28 <alise> It is just boring now.
05:20:56 <zzo38> I think it should still allow cheating entries. But with not endless, so that you can check afterward which are cheating entries
05:21:23 <zzo38> This is one reason why I don't create endless problems
05:21:39 <alise> Well, okay, but they should be discouraged. Hardly anybody submits legit entries any more.
05:23:13 <zzo38> alise: Yes. You are right about that. If you do submit cheating entries I like to put "(cheat)" or something else after my name, some other people do too.
05:23:34 <zzo38> Sometimes when there are many cheating entries, I like to put "(genuine)" afterward to indicate genuine entries.
05:23:45 <alise> There aren't any good golfing languages :( Golf and FlogScript both are too verbose.
05:25:38 <alise> I wonder if we could get anywhere by having a language with aggluntive ops.
05:26:05 <zzo38> What does "aggluntive ops" means?
05:26:07 <alise> Say, if d is double and h is halve, hd and dh would both be nop ops.
05:26:22 <alise> Basically, for operations a and b (that take arguments), ab = composition of a and b.
05:26:29 <alise> Not quite a stack language, because they're operations and after combining take operands.
05:26:35 <alise> If +2 is add two and *2 is double, +2*2 is either double, then add two;
05:26:38 <alise> or add two, then double
05:26:43 <alise> (depending on language; I'd make it add two then double)
05:26:50 <alise> +2*2-2 would be add two, double, take away two.
05:27:17 <alise> 3 +2*2-2 = ((3+2)*2)-2
05:27:24 <alise> 3 +2* 4 = (3+2) * 4
05:27:31 <alise> But this would extend to non-arithmetic too.
05:27:51 <zzo38> Yes, I do understand
05:27:59 <alise> So consider L"abc\ndef" = ["abc","def"], and consider L'["abc","def"]="abc\ndef"
05:28:05 <alise> And consider R[a,b,c]=[c,b,a].
05:28:13 <alise> Then LRL' reverses lines of a string.
05:28:18 <alise> Well, it reverses the order of lines, rather.
05:28:32 <alise> If we have C which is like L but for characters, then CRC' "abcdef" = "fedcba"
05:29:33 <alise> Also, we could have the return ranges of operations depend on the operations you combine them with.
05:30:25 <alise> Consider @ = random number; consider a ? b being "if a then b", where a is a boolean (0 or 1)
05:30:36 <alise> Consider @ = random number; consider a ? b : c being "if a then b else c", where a is a boolean (0 or 1)
05:30:54 <alise> Then @?"yes":"no" is either yes or no, but @+3 is 3 to (some default random value + 3)
05:31:36 <alise> And consider n@ = random number from [0,n).
05:31:54 <alise> Then @@ would be a random number from [0,n) where n is a random number from [0,rand_max).
05:32:00 <zzo38> Probably a very way is binary code-golf with many commands (some of which might be more than 1 byte long, but mostly 1 byte), including many things from GolfScript, FlogScript, dc, and even things like many shell commands; you could have some commands implied in some cases; and various other things; and interpreter can be written in C (optimize for speed) for faster program.
05:33:07 <alise> L(|@?R)L' ;; this would randomly reverse each line's characters or not, then spit out the result
05:33:20 <alise> (if your progam results in an operator, it's fed the input stream)
05:34:02 <zzo38> I like that idea, and perhaps you can post on esolang wiki, even.
05:34:17 <alise> I wonder if "alphabetical" is a useful predicate. I think yes.
05:34:28 <alise> We can just have an alphabet, plus "in" operators and "index"
05:34:45 <alise> (given in = < (operator overloading, woo!), and index = #)
05:34:56 <alise> (and given A = alphabet)
05:35:48 <alise> C<x;x<A?A[x#A-13]>C'
05:36:03 <alise> C{x;x<A?A[x#A-13]}C'
05:36:13 <alise> wait I can just have
05:36:18 <alise> ^ This rot13's every alphabetical character
05:36:25 <alise> Can you tell how it works?
05:37:24 <alise> Basically, we deconstruct into characters, then map a function over.
05:37:32 <alise> <A is x<A, i.e. x in alphabet, because if we have a missing operand, the function variable is substituted
05:37:38 <alise> ? is our conditional, so if x is in the alphabet, we do
05:38:08 <alise> A[...] this indexes into the alphabet, so A[0]="a",A[25]="z"
05:38:17 <alise> #A - this is x#A, i.e. position of x in A
05:38:22 <alise> -13 - take away 13
05:38:32 <alise> #A-13 is always unambiguous because we know that arithmetic cannot apply to arrays
05:38:42 <alise> but how can A be both lower and uppercase?
05:40:21 <oerjan> alise: news just in, there's a bug in my unlambda interpreter chaining that causes it to abort in the middle of the second iteration. no wonder it was not getting slower :D
05:40:57 <oerjan> it's probably the NUL bug i already really should know about
05:41:45 <alise> zzo38: what do you think the simplest esolang is
05:41:49 <oerjan> duh i already have an interpreter.unl2 file fixed for just that very purpose...
05:42:14 <zzo38> alise: I'm not really sure. I suppose it depends in what way of simplicity?
05:42:32 <oerjan> oh actually it's EOF = -1 bug (in the C interp btw)
05:42:52 <alise> zzo38: Simplest semantics; where simple is defined by whatever you most prefer. Imperative semantics, maybe, or mathematical function semantics, or whatever.
05:43:18 <zzo38> Iota and Jot are considered simple
05:44:06 <zzo38> Although there are others
05:44:06 <alise> zzo38: iota is not even one rewrite rule, though...
05:44:15 <alise> you need to have unapplied lambdas S and K
05:44:22 <oerjan> alise: ah _now_ the numbers look more reasonable
05:44:25 <alise> so it's not just one simple rewrite rule
05:44:30 <alise> oerjan: goody, show them
05:44:45 <oerjan> well it'll have to finish first (it's _that_ reasonable ;D)
05:45:18 <zzo38> alise: Yes, I did see that
05:45:38 <zzo38> BCT and some brainfuck minimalizations might be a bit
05:46:29 <oerjan> alise: now it is slowing approximately 1 sec per iteration
05:46:46 <alise> well, gimme the numers :)
05:46:47 <oerjan> that still gives ratio 1 in the limit, just not as quickly
05:48:42 <oerjan> 0m0.027s 0m1.226s 0m2.526s 0m3.656s 0m4.855s 0m6.287s 0m7.282s 0m8.596s 0m10.189s 0m11.309s 0m12.239s 0m13.287s 0m14.976s 0m16.016s 0m17.330s 0m18.475s 0m19.524s 0m21.483s 0m22.508s 0m24.279s
05:48:54 -!- augur has joined.
05:50:05 <alise> oerjan: mind you, it's still basically 1
05:50:11 <alise> first is 45.407407407407405
05:50:14 <alise> second 2.060358890701468
05:50:21 <alise> then it actually starts /decreasing/
05:50:26 <alise> before stabilising, of a sort
05:50:39 <alise> please, tell the eigenratio guy; you'll crush his dreams
05:50:52 <oerjan> basically, the _difference_ between consecutive iters is approximately constant
05:51:28 <alise> that is the eigenratio
05:51:40 <oerjan> no the ratio is the ratio
05:51:47 <alise> well I did division
05:51:56 <alise> Ei(n) = Ti(n)/Ti(n-1)
05:52:09 <alise> which provides an approximation for E = lim(n->inf) Ei(n)
05:53:00 <alise> indeed all terms after the second round to 1
05:53:06 <alise> not even one >=1.5
05:54:20 <oerjan> 0m0.031s 0m1.247s 0m2.451s 0m3.769s 0m5.393s 0m6.052s 0m7.609s 0m8.776s 0m9.804s 0m10.976s 0m12.203s 0m13.869s 0m14.665s 0m15.886s 0m16.971s 0m18.413s 0m19.361s 0m22.003s 0m21.855s 0m23.977s
05:54:30 -!- zzo38 has quit (Quit: The poor mimic the blind.).
05:56:00 <alise> oh you work it out
05:56:05 <alise> it's just dividing each term by its previous
05:57:09 -!- EgoBot has joined.
05:57:09 -!- HackEgo has joined.
05:58:06 <alise> I find myself wanting a language with lots of tuples.
05:58:33 <oerjan> alise: toi! you'll have to build them from sets, though :D
05:58:53 <alise> oerjan: something a bit higher level :)
05:59:19 <alise> i just don't feel like haskell :(
05:59:32 <alise> maybe i should write a redivider self-interp
05:59:47 <fax> why is it called redivider
06:00:42 <alise> and it DIVIDES input into bits to parse them
06:04:30 <alise> iiiiiiiiit's bright outside now
06:05:03 <fax> I'm staying up to fix my sleep pattern
06:05:29 <alise> ha... i have to be up early on monday
06:05:36 <alise> and i want to get a lot of awake time on sunday
06:05:44 <alise> but i am not tired enough to sleep
06:05:45 <fax> I need to be up early on truesday
06:06:17 <fax> I'm reading a cool category theory pdf
06:06:53 <alise> dammit why the fuck do i have to go back on monday...
06:09:03 <alise> and why do i have the urge to write a new interpreter with which to write this interpreter in
06:12:56 * alise wonders how on earth the two syntaxes in http://www.esolangs.org/wiki/Redivider relate
06:13:57 <alise> oh the first is a lexer
06:14:49 <fax> I don't get natural transforms
06:16:49 <alise> there's no reason redivider couldn't be compiled, is there?
06:22:09 <alise> first person to name a language to implement redivider in gets NOTHING
06:26:07 <alise> redivider is a complex language
06:30:21 <alise> <alise> How do I get Python to shut up about deprecated things in old code?
06:30:21 <alise> <_habnabit> alise, fix the deprecated things.
06:30:25 <alise> <_habnabit> Or, things that are using deprecated things.
06:30:26 <alise> <_habnabit> Or maybe even things that are using things that are using deprecated things.
06:31:19 <fax> welcome to IRC
06:32:42 <alise> then they just ignored me after I told them it's not my code and I don't know how to fix it
06:33:22 <alise> for the record, "-W ignore::DeprecationWarning"
06:34:41 <alise> $ echo | ./redivider hello.rd
06:41:49 <alise> fax: fuck it's almost 7am what do i do
06:42:06 <alise> ok ok but when bed
06:43:11 * alise tries to write an enumerator of fibonaccis in redivider
06:43:25 <fax> im doing category theory
06:46:32 <alise> fax: my program calculates fib(13)=233!
06:46:38 <fax> is that correct
06:46:41 <alise> it uses regular expressions... but not numbers
06:46:52 <fax> ¡ : 0 -> A
06:46:56 -!- Rugxulo has joined.
06:46:57 <fax> Ring any bells???
06:47:11 <fax> that's False_rect
06:47:16 <alise> that's a morphism isn't it
06:47:25 <fax> but in category theory they call it "GNAB"
06:47:27 <alise> why is everything the same as every other thing!
06:47:29 <Rugxulo> BTW, alise, log shows that you asked a lot of Pascal questions
06:47:36 <fax> I am learning the language of the people
06:47:42 <alise> fax: here is my program: http://pastie.org/933749.txt?key=9tvwg1cbh3ydxdiqlq
06:47:46 <Rugxulo> I'm not really a Pascal programmer, but there are various versions
06:47:52 <alise> fax: I had to use fib(n+2) because subtraction is hard :)
06:48:05 <Rugxulo> try GNU Pascal sometime, it supports a lot
06:48:15 <alise> nah I only like Pascal in its most minimal form
06:48:32 <alise> even pointers are suspect imo, if knuth can write TeX without using a single one then that's good enough for everyone :)
06:48:46 <Rugxulo> and pointers aren't single-length arrays, they're addresses
06:48:59 <alise> Rugxulo: ftp://ftp.tex.ac.uk/tex-archive/systems/knuth/dist/tex/tex.web
06:49:04 <alise> ignore the bits that look like english and tex
06:49:20 <Rugxulo> ISO 7185 (standard pascal), ISO 10206 (extended pascal), Turbo Pascal, Object Pascal, Delphi
06:49:26 <alise> it's written in 80s-era pascal, without records, or pointers, or more than a few call-by-reference arguments
06:49:29 <alise> or many other things
06:49:47 <alise> yet it's survived 'til today, is trivially translated to C compileable on modern systems, and is responsible for the vast majority of published mathematical and scientific papers
06:50:06 <alise> and it's still maintained, and widely recognised as one of the most reliable programs written... as well as the best typesetter
06:50:07 <Rugxulo> 80s-era doesn't mean anything ... it's either ISO 7185 or TP (or UCSD, unlikely) or VMS or ...
06:50:10 <alise> So who needs pointers?
06:50:21 <alise> @ Different \PASCAL s have slightly different conventions, and the present
06:50:22 <Rugxulo> everybody, you just don't necessarily need to be able to twiddle them
06:50:22 <alise> @!@:PASCAL H}{\ph@>
06:50:22 <alise> program expresses \TeX\ in terms of the \PASCAL\ that was
06:50:22 <alise> available to the author in 1982. Constructions that apply to
06:50:22 <alise> this particular compiler, which we shall call \ph, should help the
06:50:23 <alise> reader see how to make an appropriate interface for other systems
06:50:24 <pikhq> Rugxulo: Trivial subset.
06:50:24 <alise> if necessary. (\ph\ is Charles Hedrick's modification of a compiler
06:50:26 <alise> @^Hedrick, Charles Locke@>
06:50:30 <alise> for the DECsystem-10 that was originally developed at the University of
06:50:32 <alise> Hamburg; cf.\ {\sl SOFTWARE---Practice \AM\ Experience \bf6} (1976),
06:50:34 <alise> Rugxulo: TeX doesn't use a single pointer.
06:50:36 <alise> It has memory pools, sure; of static size.
06:51:00 <Rugxulo> ISO 7185 was from around 1982 or 1983, it was just a formal version of classic Pascal (Jensen and Wirth book, circa 1975)
06:51:59 <Rugxulo> "standard Pascal" didn't officially dictate how to use files, so a lot of stuff was implementation-defined
06:52:42 <Rugxulo> there was no modularization (see Modula-2 or extended Pascal) or units (TP, Delphi)
06:52:51 -!- augur has quit (Ping timeout: 265 seconds).
06:53:39 <Rugxulo> the biggest proponent of "standard" (classic) Pascal these days is Scott Moore (of IP Pascal fame): http://www.standardpascal.org/
06:53:49 <Rugxulo> you wanted to know the most limited Pascal
06:54:07 <Rugxulo> no, definitely not PL/I, but PL/0 (from _Algorithms and Data Structures_)
06:54:44 <alise> right i think that is what i meant
06:54:58 <Rugxulo> Scott Moore even has source to the original CDC 6000 Pascal compiler (well, a later revision from '80s, anyways)
06:55:31 <pikhq> Strictly speaking, what alise wants is the bit of PASCAL that WEB uses. Whatever that is.
06:55:49 <Rugxulo> actually, I read somewhere that Cowlishaw meant Rexx to be a easier-to-learn subset of PL/I
06:56:01 <Rugxulo> 1982 means ISO 7185 (standard)
06:56:14 <alise> pikhq: Well, cleaned up a bit.
06:56:17 <Rugxulo> almost definitely, esp. since that was before Turbo Pascal hit
06:56:28 <Rugxulo> TP isn't standard compliant, nor is Delphi
06:56:30 <oerjan> alise: ok i actually mailed cliff gifford
06:56:36 <fax> alise alise alise alise are you there
06:56:38 <fax> this is important
06:56:39 <alise> oerjan: sweet. he'll be devastated
06:56:47 <fax> Let F be an endofunctor
06:57:06 <fax> An F-algebra is a pair <A,a> with A an object and a : FA --> A.
06:57:11 <Rugxulo> "a standard PASCAL version of TeX" ... probably literally standard Pascal he meant here
06:57:23 <fax> ?????? dependent pair ??????
06:57:26 <Rugxulo> BTW, I wrote a Befunge-93 interpreter in Rexx yesterday ;-)
06:57:39 <alise> fax: what the fuck, we've just discovered that type theory is category theory.
06:57:55 <alise> why does oerjan's theory of synchronicity continually present us with new evidence?
06:57:59 <alise> WHY IS EVERYTHING EVERYTHING ELSE
06:58:04 <alise> WHY CAN'T SOME THINGS BE DEFINITELY NOT OTHER THINGS
06:58:13 <fax> maybe 1 = 0
06:58:20 <fax> and we just don't know it yet
06:58:27 <oerjan> alise: curry-howard-_lambek_ correspondence?
06:59:03 <Rugxulo> "MESA" ... hmmm, rings a bell, must've inspired some famous language, but I can't remember which one
06:59:11 <alise> oerjan: that's an isomorphism to /one/ category, isn't it?
06:59:20 <Rugxulo> possibly Modula-2 since Wirth spent a sabbatical at Xerox
06:59:21 <alise> we're isomorphing type theory and the actual (meta?)theory of category theory
06:59:52 <oerjan> well, there is a category of categories, and stuff
07:00:25 <oerjan> and different type systems correspond to different logics, so why not to different categories.
07:00:52 <Rugxulo> seems Knuth uses (used?) "ph" compiler from 1976
07:01:01 <oerjan> i have little clue what i'm talking about on the category side, though.
07:01:07 <alise> Rugxulo: ph is 1980s extension of 1976 compiler i think
07:01:11 * Rugxulo seems to be talking to himself and also interrupting the other conversation, bah
07:01:15 <alise> also \ph expands to "PASCAL-h" or something in the typesetted version
07:01:25 <alise> oerjan: yes but consider
07:01:32 <alise> you're saying "oh it's isomorphic to /one category/"
07:01:39 <alise> but you're ignoring category theory itself -- which IS a theory
07:01:43 <alise> we CAN reason about whole categories as objects
07:01:47 <alise> and it turns out this is ~~ type theory!
07:02:03 <alise> fax: gnab is a hilarious name. and is the perfect symbol
07:02:05 <oerjan> alise: and then i'm saying there is a category of _all_ categories (sometimes with a smallness requirement, but still)
07:02:14 <alise> oerjan: yes, but that's still /within/ another theory
07:02:21 <alise> (category theory itself at the "top level")
07:02:49 <Rugxulo> I do think that it sounds like Oberon (which excludes some of the rarer features of Pascal), but that isn't 100% easy to convert to (not that I can code in it either)
07:03:18 <fax> you can define intuitionistic type theory naturally inside category theory
07:03:36 <fax> so maybe we're doing this all backwards?
07:03:50 <Rugxulo> long story short: "standard" Pascal is pretty much ignored in favor of Delphi-ish versions (which let you do anything you want with pointers), extended Pascal is rare, and even ones that partially implement them aren't always fully compliant
07:04:19 <Rugxulo> FPC does not pretend to (want to) support any Pascal besides Borland
07:04:44 <alise> Rugxulo: yeah why do people hate purity
07:04:53 <Rugxulo> GNU Pascal is better but tied to specific GCC versions
07:05:04 <Rugxulo> and not included in GCC source tree itself, only as patches
07:05:08 <alise> http://pastie.org/933758.txt?key=lymvolzrld6dwjkryqmtxq
07:05:10 <alise> this calculates 4! = 24
07:06:10 <Rugxulo> "gubed", heh, now I get it ;-)
07:06:34 <Rugxulo> thanks to my Befunge training
07:07:14 <alise> anyone here sufficiently interested in redivider? I'd like to write a binary numbers "library" in it
07:07:18 <alise> since unary is... slow
07:08:19 <Rugxulo> alise, okay it's not really ISO 7185, it claims to only use Jensen and Wirth with some extensions (e.g. default case, which wasn't officially added until extended circa 1988 or so)
07:08:33 <alise> Rugxulo: you mean TeX?
07:08:39 <alise> it also uses dynamic files of some sort
07:09:17 <Rugxulo> according to Scott Moore, Wirth always intended the header file names to be mapped to real files, but his CDC machine was so quirky, and they didn't need ten gazillion lines / files back then, so ...
07:09:19 <alise> binary in redivider should be the wrong way around
07:10:20 -!- augur has joined.
07:10:42 <alise> if the first digit is 0, obviously we flip it to 1 then return the rest untouched
07:10:52 <alise> then obviously it must become 0
07:11:13 <alise> and the rest is incremented
07:11:48 <Rugxulo> hmmm, he's using a few "extensions" that may or may not clash with reserved keywords of most Pascals
07:12:01 <alise> Rugxulo: interestingly enough nobody actually ever compiles the pascal
07:12:05 <alise> Rugxulo: they compile it to C (!)
07:12:11 <alise> but, not a full-blown compiler
07:12:14 <alise> just a simple "translator"
07:12:15 <Rugxulo> GNU --extended-pascal would probably work
07:12:21 <alise> and this stuff is used by tons of people every day...
07:12:35 <Rugxulo> it supports "continue", "halt" (exit), "goto non_numeric_label", etc.
07:12:50 <alise> { /0/; "1" + /.*/ }
07:12:50 <alise> | { /1/; "0" + succ[/.*/] }.
07:12:58 <alise> best successor algorithm ever
07:13:21 <Rugxulo> it's just that Extended Pascal is extremely rare, only Prospero fully implemented it, I think, although GNU Pascal mostly supports it
07:13:42 <pikhq> alise: Nice binary successor.
07:13:49 <alise> pikhq: reverse binary!
07:13:53 <alise> you feed it binary digits in /reverse/ order
07:14:01 <pikhq> That's just a form of endianness.
07:14:15 <alise> I like how it actually shows how the carrying works
07:14:29 <pikhq> Yeah, that's fairly nice.
07:14:55 <pikhq> You could quite feasibly extend that to do reverse decimal arithmetic. :P
07:15:18 <Rugxulo> I think Wirth's CDC used EBCDIC, as do many old IBM machines, but it's mostly ignored
07:15:25 <alise> Rugxulo: it doesn't assume ascii
07:15:31 <alise> it translates inputted/outputted text
07:15:40 <alise> it just uses ascii internally... and also its own charset for some things
07:15:43 <alise> pikhq: yeah but why bother?
07:15:44 <pikhq> alise: Pascal, not your thing. :)
07:15:51 <alise> I'm talking about pascal
07:16:10 <pikhq> UTF-EBCDIC is a funny UTF.
07:16:50 <alise> pikhq: If I was writing this for efficiency, I would do base 256.
07:16:58 <alise> Because that's the max I can store in a character.
07:17:06 <Rugxulo> not sure what the CDC supported, but perhaps its keyboard was only 64 keys, can't remember
07:17:10 <oerjan> !slashes /1|/|0//0|/1//|/1/ 100111|
07:17:15 <pikhq> alise: Yeah, that would be the best.
07:17:29 <Rugxulo> (you don't have to type keywords in uppercase in Pascal, only Modula-[23] and Oberon-* require that)
07:17:31 <alise> pikhq: But I'd have to hardcode every one.
07:17:43 <alise> oerjan: Wake me up when it does infix->postfix :)
07:17:43 <pikhq> Yes, you'd be writing a byte-based lookup table.
07:17:56 <alise> | { /1/; "0" + /.*/ }.
07:17:58 <alise> Just realised I can omit the base case
07:18:02 <alise> then it /fails/ if you pass it 0!
07:18:44 <alise> reverse: { x: /./; reverse[/.*/] + x }.
07:19:32 <alise> eh? my succ doesn't work any more
07:19:58 <alise> no empty string case
07:20:41 <alise> $ echo | ./redivider binary.rd
07:20:51 <alise> Now to do addition and multiplication.. and then sleep it's 720am
07:21:13 <alise> the problem is it has to be called ugly
07:21:20 <alise> because add(m,n) doesn't work so well
07:22:43 <Rugxulo> Extended Pascal also officially supports variable-length arrays, strings, readstr and writestr, etc.
07:23:16 <alise> actually wait, I need to scan both...
07:23:37 <Rugxulo> "packed" (which you mentioned) was apparently to save precious RAM, also because the CDC had some odd word size
07:24:01 <Rugxulo> BTW, in the logs, somebody mentioned Algol
07:24:24 <Rugxulo> mention it to fizzie, he showed me mooz's Befunge-93 interpreter in Algol-60 (check WayBack) !
07:25:05 <alise> anyone want to figure out how to write binary addition in redivider?
07:25:43 <Rugxulo> last:=first; {cf.\ Matthew 19\thinspace:\thinspace30}
07:26:12 <oerjan> the last shall be the first?
07:26:51 <oerjan> "But many that are first shall be last; and the last shall be first."
07:29:07 <alise> i can't figure out thisx redivider error SO TIRED
07:29:27 <Rugxulo> "Since \PASCAL\ does not have a well-developed string
07:29:27 <Rugxulo> mechanism" ... it has none! (until "extended")
07:29:41 <alise> packed array [1..255] of char
07:30:08 <alise> gonna ask him something bout the spec...
07:30:40 <Rugxulo> a simple macro that computes the length of a string." ... again, extended Pascal to the rescue
07:30:55 <alise> Rugxulo: not portable enough for knuth
07:30:58 <alise> MizardX: you remember redivider?
07:30:59 <Rugxulo> alise, I mean a real "string" type, keyword
07:31:08 <Rugxulo> alise, I agree, but it does exist!
07:31:11 <alise> MizardX: why does p[q] hard fail if p soft fails?
07:31:16 <alise> | { succ[add(m, pred[n])] }.
07:31:22 <alise> I can't write this because /0$/[n] hard fails
07:31:55 <MizardX> alise: It's been too long. Could you give a link to the spec?
07:32:02 <alise> yeah, http://www.esolangs.org/wiki/Redivider
07:32:17 <alise> i'm just getting re-into it: wrote fibonacci and factorial; now writing a "library" for reverse binary numbers
07:32:26 <alise> succ is really pretty:
07:32:27 <alise> | { /0/; "1" + /.*/ }
07:32:27 <alise> | { /1/; "0" + succ[/.*/] }.
07:32:31 <alise> but addition is, alas, not so
07:32:36 <alise> for one, i can't see how to make it work
07:33:11 * Rugxulo does have half a mind to (try to) write a Befunge-93 interpreter in Pascal
07:33:37 <Rugxulo> already halfway started, but I was too dumb to finish correctly
07:34:25 <oerjan> it's the one program that doesn't get hurt by pascal's fixed-length strings :D
07:34:39 <Rugxulo> I guess you know Ada is Pascal-ish, included in GCC by default now
07:34:54 <alise> { /0/[m]; /0/[n]; "0" + add(m,n) }
07:34:54 <alise> | { /0/[n]; /1/[n]; "1" + add(m,n) }
07:34:54 <alise> | { /1/[m]; /0/[n]; "1" + add(m,n) }
07:34:54 <alise> | { /1/[m]; /1/[n]; "0" + add(m,succ[n]) }.
07:34:59 <alise> if this worked it would be a nice binary adder
07:35:09 <Rugxulo> Ada83 was 7-bit only (from what I hear), hence why he probably couldn't consider it back then (plus expensive compilers)
07:35:11 <alise> Rugxulo: Ada is way more anal-retentive than pascal
07:35:34 <alise> He's Knuth, man; he programs correct MIX without fail.
07:35:39 <alise> And he /made MIX up/!
07:36:43 <pikhq> Just as a rule, Knuth is the man.
07:36:59 <alise> MizardX: and is there any way to coerce hard failures to soft failures?
07:37:01 <alise> if not, what to do?
07:39:26 <alise> I just came up with an argument for the predecessor of 0 being 1
07:40:10 <Rugxulo> didn't the Romans lack understanding of 0? wasn't it a foreign concept?
07:40:19 <alise> something like that
07:40:35 <alise> consider reverse binary strings i.e. 4 = 001
07:40:47 <alise> the predecessor of 1, followed by some things, is 0, followed by some things; this is the no-carry case
07:40:50 <fax> "reverse" :(
07:41:06 <alise> the predecessor of 0, followed by some things, is 1, followed by the predecessor of some things.
07:41:21 <fax> you're right, that's the reason I'm sad
07:41:23 <Rugxulo> even Hebrew writes numbers left to right (but still pronounced right to left) ... could be wrong, but I think that's what I read
07:41:40 <alise> consider the number "0"
07:41:42 <fax> It makes sense for Hebrews to write that way
07:41:45 <fax> but not Englishes
07:41:49 <alise> the predecessor is "1" plus the predecessor of some things
07:41:59 <pikhq> "Zero" as an actual number is a rather recent concept.
07:42:04 <alise> obviously the predecessor of an empty number -- considered as a recursive base case -- is the empty number
07:42:08 <alise> so the predecessor of 0 is 1.
07:42:40 <pikhq> It shows pretty *heavily* in Chinese numerals.
07:43:14 <oerjan> alise: if you consider the most significant bit of a number to repeat infinitely often from there, then that follows logically
07:43:31 <oerjan> it's just the 2-adic integer representation
07:43:41 <alise> well the predecessor of 0000... would be 1111...
07:43:42 <pikhq> 零 is 0 in Chinese numerals. The next Chinese numeral of similar complexity is 億, 100,000,000...
07:43:44 <alise> which is infinity, zomg!
07:43:54 <fax> oh man I was reading about p-adics but... forgot it all
07:44:00 <fax> 0.999999999 = 1? LOL
07:44:06 <alise> an infinite number of ones?
07:44:11 <oerjan> alise: 2's complement with infinite no. of bits
07:44:19 <alise> who said 2s complement?
07:44:23 <alise> I never said 2s complement
07:44:26 <alise> pure positive binary, man
07:44:30 <alise> the predecessor of 0 is infinity.
07:44:41 <fax> I don't think 11111111... is infinity
07:44:48 <oerjan> alise: well 2's complement is really just 2-adics cut off at some bit length
07:44:49 <fax> that doesn't make sense to me, at least
07:45:05 <fax> 1+1+1+1+1+... = -1/2 is a better infinity
07:45:29 <alise> well it's (1 * 2^0) + (1 * 2^1) + ...
07:45:38 <alise> = 2^0 + 2^1 + 2^3 + ...
07:45:46 <fax> In a short period of less than a year, two distinguished physicists, A. Slavnov and F. Yndurain, gave seminars in Barcelona, about different subjects. It was remarkable that, in both presentations, at some point the speaker addressed the audience with these words: 'As everybody knows, 1 + 1 + 1 + · · · = −1⁄2'. Implying maybe: If you do not know this, it is no use to continue listening.[1]
07:47:53 <Rugxulo> so what, didn't two dudes invent calculus? same as two dudes deciphered the Rosetta stone, same as ...
07:48:18 * oerjan didn't know that about the rosetta stone
07:49:28 <Rugxulo> "Some \PASCAL\ compilers do not implement non-local |goto| statements." ... not sure FPC does either
07:51:15 <Rugxulo> "@ Here the author of \TeX\ apologizes" ... "@^Knuth, Donald Ervin@>"
07:52:45 <Rugxulo> "help1("I'm broken. Please show this to someone who can fix can fix");
07:52:46 <Rugxulo> else begin print_err("I can't go on meeting you like this");
07:52:48 <Rugxulo> help2("One of your faux pas seems to have wounded me deeply...")@/
07:52:52 <Rugxulo> ("in fact, I'm barely conscious. Please fix it and try again.");"
07:53:36 <alise> hmm... so if infinity=....11111
07:53:37 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
07:53:45 <alise> by my algorithm its predecessor is .....00000
07:53:50 <alise> so ... the predecessor of infinity.. is 0
07:54:41 <fax> infinity doesn't equal ...11111!!!
07:54:49 <fax> this is blasphemus
07:55:35 <oerjan> alise: successor you mean
07:55:35 <alise> .....1111 = (1*2^0)+(1*2^1)+...
07:55:46 <alise> = sum{n=0,inf} 2^n
07:55:48 <Rugxulo> words you might be able to have |mem_max| as large as 262142, which is
07:55:48 <Rugxulo> eight times as much memory as anybody had during the first four years of
07:55:52 <alise> you figure out the riemann sum thing for that
07:55:55 <alise> and i'll accept that
07:56:07 <alise> oerjan: no, because the predecessor of 1something is 0something
07:56:11 <alise> so the predecessor of infinity is
07:56:24 <alise> which is 2^1 + 2^2 + ...
07:56:30 <fax> 1 + 2 + 4 + 8 + ... = -1
07:56:48 <alise> I DON'T BELIEVE YOU
07:56:52 <fax> ill proe it
07:57:43 <fax> 1 + 2 + 4 + 8 + ... = X so 1 + 2X = X <=> 1 + X = 0 <=> X = -1
07:58:21 <alise> ... dayum you slick
07:58:44 <alise> what's sum{n=0,inf} n^(3^n)
07:58:51 <augur> greeting yourself and all
07:59:19 <fax> alise, I cant' do finite integral of n^(3^n) :/
07:59:45 <fax> hey augur I am mathing
07:59:59 <alise> it's 8am i haven't slept what's up
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:09 <fax> my clock says 6:59 am
08:00:38 <augur> 25 years and my life is still
08:00:43 <augur> trying to get up that great big hill
08:00:52 <augur> for whatever that means
08:01:02 <augur> oh, no, for a destination
08:01:23 <augur> fax knows what im singing
08:01:27 <alise> 0 + 1 + 512 + 7625597484987 = X so 1 + somethingX = X <=> ?
08:01:27 <fax> IN MY HANDS
08:01:37 <augur> shes sat in a group of faggots with a guiter and sang this song
08:02:04 <augur> you never went to like
08:02:11 <augur> a glbtqq youth group?
08:02:17 <fax> no maybe I should
08:02:26 <augur> how old are you again?
08:02:43 <augur> you're in the young adults group
08:02:48 <alise> NEVER TOO OLD FOR PAEDOPHILIA
08:03:00 <augur> alise, you might like this song
08:03:09 <augur> one of the lines is "and i try, oh my god do i try, in this institution"
08:03:10 <fax> implying that alise is a faggot
08:03:26 <augur> no, just in an institution
08:03:37 * alise cuts self some more
08:04:00 <alise> 8am, haven't slept, should i sleep?
08:04:04 <alise> fuck i have no self control
08:04:08 <fax> alise no we need the finite integral of n^(3^n)
08:04:22 <fax> alise, I don't even know if that is expresible in arithmetics...
08:04:34 <pikhq> alise: Dude, I have forgotten to eat before. I think your situation is not quite as bad.
08:04:34 <alise> plug it into your al-jabr thing :-D
08:04:47 <pikhq> At the very least you will *eventually* sleep.
08:04:49 <alise> pikhq: yeah but i hate being tired; also i want to be awake for a while um... today
08:05:01 <fax> alise just go to bed early
08:05:14 <fax> you'll sleep long and it will get you uppin the morning
08:05:53 <augur> http://www.wolframalpha.com/input/?i=integrate+x%5E%283%5Ex%29+dx
08:06:00 <alise> augur: finite integral.
08:06:01 <alise> fax: no, see, /that/ is not an option because i am /tired/ right now
08:06:06 <alise> and i want to be /awake/, for hours, today
08:06:27 <fax> http://www.wolframalpha.com/input/?i=integrate+floor%28x^%283^x%29%29+dx
08:06:55 <augur> finite integral? what?
08:07:00 <Rugxulo> alise, even taking a small nap (not long, though) will recharge you
08:07:05 <Rugxulo> set your alarm if you're that worried
08:07:13 <alise> fuck recharging; I have to sleep for hours or I fail
08:07:30 <augur> if i sleep for even a tiny bit when im really tired im fucked
08:07:49 <fax> recharging is a lie
08:08:04 <fax> the truth is that when you go to sleep you die
08:08:14 <fax> and god rewrites the world to makes things set up correctly
08:08:17 <fax> then revives you
08:08:18 <augur> a little piece of me dies every day
08:08:23 <fax> and it can take a really long time sometimes
08:08:40 <fax> that's why if you try to sleep up a tiny bit when you've been up for a long time, he fucking stomps you
08:09:00 <alise> you have never existed before this moment. all your memories before this very instant have been planted in your head. the universe replaces itself with a random state every single planck time; this was a coincidence. one in billions. trillions. it will go now. you think you have read this whole line but you have actually just finished reading it. the memory of the rest of a line was, again, implanted by chaos. goodbye.
08:09:10 <fax> it's his way of asying: Look I have a LOT of shit to do, and you are fucking it up
08:10:11 <fax> is there any SCI-FI set in 100 dimensions?
08:10:18 <Rugxulo> var p:pointer; {the node currently under inspection}
08:10:18 <fax> or any bigger number of dimensions than 3D
08:10:19 <Rugxulo> @!q:pointer; {the node physically after node |p|}
08:10:25 <alise> Rugxulo: aha look up the definition of pointer
08:10:27 <alise> it is not a pascal pointer
08:10:31 <augur> fax: 100 dimensional scifi?!
08:10:34 <alise> it is an integer index into a static array
08:10:35 <fax> i am curious about peoples speculations on large numbers of dimensions
08:10:49 <pikhq> fax: Parts of Fine Structure.
08:10:49 <fax> none of the 4D sci-fi I have read has satisfied me
08:11:00 <pikhq> http://qntm.org/structure
08:11:01 <fax> pikhq oh damn - okay ty
08:11:03 <alise> pikhq: 100 dimensions?
08:11:14 <pikhq> alise: Significantly greater than 3.
08:11:27 -!- FireFly has joined.
08:12:41 <pikhq> *Man* the intro to that makes more sense after you've read it once.
08:13:43 <fax> you need to see this
08:13:54 <alise> i will read it sometime.
08:13:55 <fax> http://i.imgur.com/0eWnm.png
08:14:10 <fax> you know in type theory all data types are introduction/elimination
08:14:14 <pikhq> alise: You haven't read everything by Sam Hughes? D:
08:14:26 -!- augur has quit (Remote host closed the connection).
08:14:35 -!- augur has joined.
08:15:15 <alise> pikhq: Hey, I'm old school. I read the Ed stories.
08:17:03 <augur> > "sup dawg, we herd u liek Haskell so we put a recurshin in ur recurshin so you can " ++ cycle "recurse while you "
08:17:20 <alise> WHY DO I DO THIS TO MYSELF
08:17:39 -!- oerjan has quit (Quit: Got to sleep, God wants to reboot).
08:17:40 <fax> I would call my version of haskell either:
08:17:45 <fax> Haskell' or Hasceline
08:17:54 <pikhq> alise: Those were awesome.
08:18:03 <MizardX> alise: Still looking at it, and trying to make it work...
08:18:07 <fax> alise: No it's not
08:18:07 <alise> pikhq: Would make a great movie.
08:18:13 <alise> fax: yes, Haskell Prime
08:18:23 <pikhq> alise: When I first got into Sam Hughes, after I had read a few random snippets I went through and read all the stuff on his site in chronological order.
08:18:27 <fax> alise, yeah that project collapsed from it's own weight
08:18:35 <alise> fax: uhh it got released
08:18:37 <pikhq> Well. All the stories.
08:18:44 <pikhq> The other stuff, I have read massive chunks of.
08:18:49 <fax> alise: ... that's called Haskell 2010 :P
08:19:05 <pikhq> fax: Yes, that's the first bit of results of the Haskell Prime process.
08:19:26 <Rugxulo> Haskell++, Haskell 2.0, Haskell-0x, Haskeller, Haskellwilltravel
08:19:49 <alise> You are not alone. Nor are you rare, nor even unusual; you're so common as to be insignificant. You are small, weak, and stupid. Your lives are meaningless and shorter than an eyeblink. You have achieved nothing. On the universal scale you are nothing.
08:19:49 <alise> This much we share already.
08:19:49 <alise> Now let us share the rest.
08:19:58 <alise> ^ one of my favourite quotes; from the Ed stories
08:20:28 <fax> what does it mean "Now let us share the rest."?
08:20:38 <alise> it's a first contact message
08:21:26 <fax> category theory seems too good to be true
08:22:05 -!- Rugxulo has quit (Quit: beyond).
08:22:06 <alise> MizardX: imo, the language should be changed so that this works:
08:22:08 <alise> { /0/[m]; /0/[n]; "0" + add(m,n) }
08:22:08 <alise> | { /0/[n]; /1/[n]; "1" + add(m,n) }
08:22:08 <alise> | { /1/[m]; /0/[n]; "1" + add(m,n) }
08:22:08 <alise> | { /1/[m]; /1/[n]; "0" + add(m,succ[n]) }.
08:22:22 <alise> i.e., p[q] soft fails if p soft fails; and also, q is modified to be the new input string of p
08:22:31 <alise> I guess "q is modified" can't happen
08:27:07 <fax> heh this is a new one
08:27:53 <fax> set: sigma/R, intros: [M]_R : sigma/R (for M:sigma), elimination: pick x from P in Q : rho (for P : sigma/R, Q(x):rho where x:sigma)
08:28:28 <fax> oh I think I was reading it wrong and it's less amusing than I'd thought
08:32:43 <alise> fax: tell me more category theory correspondences
08:32:54 <fax> that's all I know so far
08:32:57 <alise> anything relating to Prop/proofs?
08:33:02 <fax> I'm finding out more as I go
08:33:14 <fax> well did you know that STLC corresponds to a CCC
08:33:24 <alise> but anything relating to Prop/proofs?
08:33:42 <fax> not that i know of yet
08:34:08 <alise> any more fun related functions other than f-algebras and gnab?
08:34:27 <fax> alise, well
08:34:34 <MizardX> alise: http://pastebin.com/k99UVidS
08:34:44 <fax> Category theorists will often think of the ring R and the category R as two different representations of the same thing, so that a particularly perverse category theorist might define a ring as a preadditive category with exactly one object
08:35:05 <fax> remember what I was saying about proving x0 = 0 ==> 0x = 0 using oppposite category
08:35:08 <fax> that's how
08:35:13 <alise> { /0/[m]; /0/[n]; "0" + add(m,n) }
08:35:13 <alise> | { /0/[n]; /1/[n]; "1" + add(m,n) }
08:35:13 <alise> | { /1/[m]; /0/[n]; "1" + add(m,n) }
08:35:13 <alise> | { /1/[m]; /1/[n]; "0" + add(m,succ[n]) }.
08:35:19 <alise> surely it would be nicer to make this work? ;-)
08:35:33 <alise> also that add hard fails no? [n]
08:35:46 <MizardX> /0/[m] won't work, since the regex isn't allowed to soft fail.
08:35:50 <alise> (and, just a question, why the .* clause in succ?)
08:36:02 <alise> MizardX: even if it did soft fail it'd hard fail
08:36:04 <alise> due to []s definition
08:36:58 <fax> ".. we talked a logic /over/ a category. Categorically this will correspond to one category, capturing the logic, being /fibred over/ another category, captuing the type theory"
08:37:59 <alise> MizardX: so what would be bad about making [] soft fail?
08:39:07 <alise> MizardX: what does mx represent?
08:39:11 <fax> alise http://ncatlab.org/nlab/show/Mitchell-Benabou+language
08:39:43 <alise> The N-Category Cafe!
08:39:48 <alise> MizardX: ah. I usually call that rest :P
08:40:04 <alise> MizardX: so, I guess add can not really be defined as a two-argument function
08:40:05 <MizardX> alise: http://pastebin.com/sJe3qDXr <-- little easier to follow
08:40:11 <alise> actually i think functions in redivider are a wart
08:40:21 <alise> they should just have multiple inputs or something
08:41:26 <MizardX> Last one uses two inputs for add. In the first one, I used the input stream as an input.
08:42:34 <alise> which is more useful do you think? I was just doing two args cuz add(x)[y] looks ugly
08:43:26 <MizardX> add(x)[y] vs add(x,y) and add(x,/.*/) vs add(x)
08:43:52 <alise> just asking for your personal opinion :P
08:44:25 -!- FireFly has quit (Quit: Hey! Listen!).
08:44:26 <MizardX> add(x,y) is more readable, and add(x)[y] is more practical.
08:46:05 <augur> alise: i think you should make a language with strictly monadic functions. :o
08:46:27 <alise> MizardX: hmm... if I'm having functions as ugly as add, I should do more digits
08:46:40 <alise> augur: that's called the lambda calculus
08:46:48 <augur> no i mean truly strictly monadic
08:46:56 <alise> that is truly strictly monadic
08:46:59 <augur> LC is monadic, but its higher order so you can fact polyadicity
08:47:10 <alise> if you have a tuple type you have already lost
08:47:14 <augur> i mean a language where you dont get higher order enabled polyadicity
08:47:14 <alise> or even the naturals
08:47:33 <alise> Goedel((x,y)) = ToUnaryOnes(Goedel(x)) ~ 0 ~ ToUnaryOnes(Goedel(y))
08:47:40 <alise> (~ is binary digit concatenation)
08:47:56 <augur> no pattern matching either
08:47:57 <alise> MizardX: are you sure add cannot be prettier?
08:48:26 <alise> I'm dreading implementing subtraction now :-)
08:48:29 <alise> and multiplication... eek
08:48:39 <augur> all user defined functions must be strictly monadic, no pattern matching, and the only non-monadic things are metasyntactic :x
08:48:42 <MizardX> To be able to use { regex; ... } as an if-statement, you have to do it that way.
08:49:30 <alise> MizardX: But, is there an actual reason [] should not soft-fail?
08:49:58 <MizardX> Maybe so that it could work on streams?
08:53:39 <MizardX> Soft fail utilizes a single fallback point. Hard fail, the program would have to back-track to a point before the fallback point.
08:54:27 <MizardX> On a succesful match, the fallback point is moved up.
08:54:38 -!- Alex3012_ has joined.
08:55:06 <alise> fax: so would a category theory programming language allow you to define and use toposes?
08:55:14 <alise> MizardX: Fair enough.
08:55:24 <alise> I'd be happier with that response if your interp actually lazily read input :-)
08:57:43 <fax> fuck I am tired
08:58:17 <alise> MizardX: I dread to define subtraction now...
08:58:25 <alise> and here I thought redivider was the prettiest language I'd ever seen!
08:59:05 <MizardX> It's good at some things...
08:59:20 <MizardX> arithmetic is not one of them
09:01:08 <alise> my mind boggles even just trying to think of how to write subtraction... also i am tired
09:03:26 <fax> why don't you write it by turning 3-2 into +++--
09:03:35 <fax> then get rid of "+-" --> ""
09:03:51 <alise> i'm doing binary because unary is slow, that's the point :P
09:05:45 <alise> { m: binary; /\+/; n: binary; reverse[add(m)[n]] }
09:05:46 <alise> | { m: binary; /\-/; n: binary; reverse[sub(m)[n]] }
09:05:50 <alise> MizardX: this hard fails if I do - why :(
09:05:54 <alise> how am i supposed to code it
09:06:52 <MizardX> You have to check one thing at the time, and branch.
09:06:52 <alise> fax: http://ncatlab.org/nlab/show/constructive+mathematics
09:07:03 <alise> MizardX: I'm not sure /how/ you branch
09:07:14 <alise> honestly, why don't blocks soft fail if parts soft fail?
09:08:23 <MizardX> alise: They soft fail if the _first_ line soft fails, otherwise they hard fail.
09:08:24 <MizardX> alise: { m: binary; { /\+/; n: binary; reverse[add(m)[n]] } | { /-/; n: binary; reverse[sub(m)[n]] } }
09:08:46 <alise> why is this restriction there? it looks nothing at all like regular bnf when put under that restriction
09:09:21 <alise> Yeah, yeah, backtracking; but PEG parsers allow a ridiculous amount of that and they work fine.
09:09:53 <alise> damn, my subtracter has a bug!
09:11:35 <alise> Heh; in my now-fixed subtracter, 1-x is the successor of x, and 1-2 is 3.
09:12:03 <alise> 1-4 is ... wait, what? 5.
09:12:45 <alise> So wait, 1-n is n+1 if n is even, and n-1 if n is odd.
09:13:10 <alise> MizardX: does your adder ever leave trailing 0s?
09:13:27 <MizardX> alise: only if the input has trailing zeros
09:13:39 <alise> my subtracter does it sometimes :(
09:15:54 <alise> Cool, it's "splitting" the naturals.
09:16:34 <alise> 1000-x is x-1000, strangely.
09:16:54 <alise> Except 1000-10000 = 11000.
09:20:38 <alise> removing the rule 1x - = 1x fixed it.
09:20:43 <alise> removing the rule 1x - = 1x fixed it.
09:21:19 <alise> MizardX: why does your succ function do /.*/ btw? I forgot
09:21:23 -!- lament has joined.
09:22:19 <MizardX> alise: To store the remaining input, before you change it to something else with (...)[n]
09:22:40 * alise runs into a problem
09:23:01 <alise> (reverse binary ahead:) 0x - 1y = 1(x+y)
09:23:06 <alise> that's not right, is it?
09:23:50 <MizardX> x - y = x + (-y) = x + (~y + 1)
09:25:20 <alise> 0x - 1y = 1(x-succ(y))?
09:28:44 <fax> 1x = 1+2*x
09:29:27 <fax> so 2*x - 1+2*y = 2*(x - y) - 1 = 2*(x - y - 1/2)
09:30:55 <fax> it doesn't really help..
09:32:09 <alise> fax: http://ncatlab.org/nlab/show/anafunctor
09:34:48 <fax> that's interesting
09:35:49 <alise> { /0/; rest: /.*/;
09:35:50 <alise> ( { /0/; "0" + sub(/.*/)[rest] }
09:35:50 <alise> | { /1/; "1" + sub(/.*/)[rest] }
09:35:55 <alise> this is certainly right.
09:36:14 <alise> we need to subtract one more than we usually would from the rest
09:36:21 <alise> | { /1/; rest: /.*/;
09:36:21 <alise> ( { /0/; "1" + sub(/.*/)[succ[rest]] }
09:36:22 <alise> | { /1/; "0" + sub(/.*/)[rest] }
09:36:23 <alise> looks correct to me
09:37:07 <alise> so why does it calculate 10011 - 1101 = 1100? it's 110
09:38:02 <alise> MizardX: wait, HTF is your add correct?
09:38:17 <alise> it has 1x+0y = 1(x+y+1)
09:38:54 <alise> MizardX: your add is interesting; it swaps each time
09:41:05 * alise fiddles with stuff
09:42:02 -!- kar8nga has joined.
09:42:28 <alise> 0x-1y = 1(x-(y+1))
09:42:34 <alise> so why do they compute wrongly?
09:43:25 <alise> fax: what type T:*->* has |T A| = Fib(|A|)?
09:44:14 <fax> it's a strange sort of tree
09:45:07 <fax> data Fib n where Leaf :: Fib 1 ; Branch :: Fib a -> Fib b -> Fib (a + b) ...
09:45:19 <fax> I guess that is totally useless because I just repeated what you said
09:45:25 <alise> that's not *->*; that is nat->* :P
09:45:27 <fax> well it's wrong as well
09:45:48 <fax> data Fib n where Leaf :: Fib 1 ; Branch :: Fib n -> Fib n -> Fib (S n)
09:45:53 <alise> consider T := A | B | C | D
09:45:57 <fax> no that's still wrong isn\t it
09:46:08 <alise> therefore |FibTree T| = 3 (!)
09:46:31 <fax> that's different
09:47:26 <alise> what is FibTree's inductive definition?
09:47:51 <fax> 1 + (1) + (1 + (1)) + (1 + (1) + (1 + (1)))
09:48:41 <fax> that was powers of two :/
09:48:48 <fax> I can't do this alise
09:49:58 <alise> so all constructors of FibTree require a value of T at some point
09:49:58 <alise> so a non-base-case value requires two distinct values of T
09:49:58 <alise> FibTree (n+2) == FibTree (n+1) + FibTree n
09:52:01 <alise> fax: the really hard bit is e.g.
09:52:10 <alise> |FibTree (A | B | C)| = 2
09:52:18 <alise> so we can't have Foo : T -> FibTree T
09:55:51 <fax> (a,b) --> (b,(a,b))
09:55:54 <fax> that's the recurrence
09:56:08 <fax> I don't think it's expressible
09:57:07 <alise> why isn't this binary subtraction working
10:00:15 * alise decides to enslave MizardX to write binary algorithms all day
10:01:20 <alise> or not, but /me just asks MizardX -- the new resident Redivider expert -- how feasible e thinks a self-interpreter would be
10:01:26 <alise> it would have to execute while parsing, right?
10:01:39 <alise> but redivider programs can reference later terms... so I'd have to do some sort of awful AST thing
10:02:31 <alise> "Laurent Vogel complains that handling of newlines is not well defined in the specifications and proposes the following convention: when a string is sent to the output stream, no newline is printed at the end, except if the string is empty, in which case a newline is all that is printed.
10:02:33 <alise> rjan Johansen complains that input is a lousy hack that has no way of handling arbitrary strings (think Wikipedia:code injection here) and no well-defined behavior on end of file. This makes an otherwise powerful language useless for implementing I/O-supporting programs properly in. "
10:05:22 -!- tombom has joined.
10:12:43 <alise> imma implement slashes in redivider
10:12:55 <alise> derivider would be a nice name for a redivider implementation
10:13:00 <alise> quotient a nice name for a self-interp
10:14:38 <alise> Eh, too lazy to do slashes.
10:18:18 <alise> http://www.esolangs.org/wiki/Onoz ;; implement this. it involves proof manipulation
10:24:49 -!- lament has quit (Quit: lament).
10:28:55 * alise wonders why this doesn't work
10:29:01 <alise> main : { /$/; "" } | /./ + main.
10:31:49 <fax> alise alise wonders why alise
10:36:22 <alise> ah, you need to handle newlines
10:38:30 <alise> MizardX: /.*/ and /./ don't match \n
10:38:37 <alise> | { /\n/ + main }.
10:38:43 <alise> feature or bug? I think it is inheriting Python's behaviour
10:39:51 <MizardX> Yes. [^\S\s] or (?s). would both match newlines
10:40:25 <alise> So, feature or bug? :P
10:52:44 <fizzie> There's often an option to the regex eggine to make . match newlines too. For Java, the Pattern.DOTALL flag; for Perl, the "s" (single-line) modifier; for Python, the either the re.S or re.DOTALL flag.
10:53:02 <fizzie> But the defaultish behaviour is no-newlines-for-dot for all three.
11:16:53 -!- aschuele1 has quit (Quit: leaving).
11:17:15 -!- aschueler has joined.
11:22:40 -!- augur has quit (Remote host closed the connection).
11:22:48 -!- augur has joined.
11:33:42 <alise> fax: category theory
11:34:07 <fax> http://www.comlab.ox.ac.uk/ralf.hinze/SSGIP10/Notes.pdf
11:36:09 <fax> catagary thary natas
11:38:04 <alise> fax: so your summing thing, what's 2^3^4^5^...
11:38:25 <fax> I can't do that it's too hard
11:38:31 <alise> :( but i wanna know!
11:38:39 <alise> maybe it's the answer to all dependent category theory magic
11:38:43 <alise> encoded in base 10
11:39:00 <fax> I doubt it
11:39:23 <fax> ^ is weird
11:39:26 <fax> I don't trust it
11:40:18 <alise> fax: I assume you distrust (n^^m := {n^n^...} m exponentiations) even less then
11:40:35 <alise> btw http://muaddibspace.blogspot.com/2009/10/cantors-diagonalization-proof-in-coq.html just to check you realise it is /much/ simpler to prove than this
11:40:46 <alise> you don't have to do diagonalisation so literally
11:40:51 <fax> no I don't know a simpler way
11:41:08 <alise> lemme prove it; it's on my other HD
11:41:11 <fax> I just wrote that very quickly because I wanted to have written it
11:42:25 <fax> HD ? is that gordi laughing?
11:42:36 <fax> orr the lazer guy from X-man
11:45:56 <alise> fax: here is the much shorter -- and more general -- proof: http://pastie.org/933892.txt?key=esshdwnk4lab3etv0lehta
11:48:33 <fax> why is mine so long...
11:49:19 <alise> fax: because you translated cantor way too literally :P
11:49:51 <alise> the actual (\x. !magic x x) construction is due to oerjan; though it's "obvious" once you've seen it
11:50:38 <fax> that's the diagonal
11:50:50 <fax> how do you think of it?
11:51:09 <fax> I mean conceptually
11:51:10 <alise> but actually I think we can explain this proof without making reference to a single "diagonal"
11:51:32 <alise> In fact, it's very similar to Russell's Paradox.
11:51:35 <fax> that IS the diagonal
11:51:41 <alise> magic x x = x in x.
11:51:47 <alise> !(magic x x) = x is not in x.
11:51:58 <alise> Is (\x. !(magic x x)) a member of itself?
11:52:31 <alise> basically the issue is that surj lets us hide unrestricted comprehension like that in a perfectly innocent natural, where we can't "see" it
11:52:35 <alise> of course that's only one view of the proof
11:53:05 <oklopol> i wish there was a button to ignore everyones messages from everyone else when i go to sleep
11:53:09 <oklopol> so i didn't have to read logs
11:53:23 <fax> turn off your computer
11:54:13 <alise> fax: so... I really need to find a way to unify computer algebra systems and dependent type theory
11:54:28 <fax> alise you already know what it is
11:54:43 <fax> dependent type theory
11:55:22 <alise> dependent type theory doesn't really let you manipulate expressions structurally with free variables.
11:56:17 <fax> quote them
11:57:38 <fax> tttttttttttttttt
12:00:18 -!- kar8nga has quit (Remote host closed the connection).
12:00:34 <fax> HOW 2 TURn YOUTUBE inTO MP3?
12:01:38 <alise> are you going to answer my question or...
12:01:45 <fax> I just realized
12:01:48 <fax> -1 = 1 mod 2
12:01:55 <fax> -1 * -1 = -1
12:03:28 <alise> fax: you could just give me a simple answer and i would understand you know
12:18:57 <alise> awesome, thusly.org isn't registered
12:20:09 <oklopol> "<fax> turn off your computer" the problem isn't that i somehow can't not read the logs, i just don't want you people to have shared conversations i haven't read
12:25:56 <alise> oklopol: it's ok just stay awake forever
12:27:49 <oklopol> but i need my 13 hour beauty sleep
12:28:16 <oklopol> it was 22:30 - 13:30 or something
12:28:30 <oklopol> or maybe something completely different, who knows
12:29:34 <alise> fax: so what do you mean by quoting
12:30:24 <oklopol> manipulate the expressions as data
12:30:42 <oklopol> encode them in a negative integer
12:35:13 -!- hiato has joined.
12:44:55 <alise> hi lim n->inf ( hi)^(n)ato
12:49:09 <augur> aww alise, you're so adorable :D
12:49:13 <alise> "# Emacs Lisp. Wow...so this is what forethought, design and programming-in-the-large look like" <- HAHAHAHAHAHA#
12:50:00 <hiato> I didn't get a nick hitight there for some reason
12:50:14 <alise> wait hiato is the pascaller guy isn't he? oh the synchronicity
12:51:29 <hiato> I think he's trying to put his shadowy past behind him
12:52:00 <alise> we - well, mostly I - were talking about minimalist pascal before
12:52:08 <alise> a la TeX; ftp://ftp.tex.ac.uk/tex-archive/systems/knuth/dist/tex/tex.web
12:53:19 <hiato> heh - a la tex <-> a latex
12:53:20 <alise> the most advanced mathematical typesetter, and one of the most bug-free pieces of software, is written in a dialect of Pascal used by a circa-1982 compiler, and avoids the use of pointers, set types, enumerated scala types, and only uses var parameters for files.
12:53:28 <alise> It pretty much avoids /everything/. It has a "pointer" type, but it's just an index into a global static array.
12:54:10 <hiato> That is actually pretty esoteric
12:54:25 <hiato> at least compared to what pascal is today
12:55:41 <alise> hiato: Note that the intermingled TeX is the documentation; per Knuth's WEB system.
12:55:44 <hiato> in a sort of prolonged sense
12:55:54 <alise> Ignore everything that doesn't look like Pascal, except some lines which are automagically translated to Pascal from some other form.
12:56:01 <alise> Also, be prepared to crossreference.
12:56:11 <hiato> heh, and so it has begun
12:56:13 <alise> wait, brb to read tex source? :P or something else
12:56:33 -!- kar8nga has joined.
13:14:35 <hiato> alise: brb for food
13:14:41 <hiato> now to read sour:e
13:15:36 <hiato> alise: are there any docs for the "WEB" lang?
13:16:08 <alise> it's not just a one-use thing
13:16:27 <alise> hiato: basically half of it is TeX, half of it is Pascal, and epsilon of it is some sort of macro-thing that i'm not sure if it compiles to pascal or not
13:16:41 <alise> hiato: your best bet is likely to typeset the WEB source to get the documentation and source typeset as a TeX document.
13:17:10 <alise> however, I have been unable to find a WEB distribution for a modern computer; all I can find is its C-based relative CWEB.
13:17:42 <alise> The first published literate programming environment was WEB, introduced by Donald Knuth in 1981 for his TeX typesetting system; it uses Pascal as its underlying programming language and TeX for typesetting of the documentation. The complete commented TeX source code was published in Knuth's TeX: The program, volume B of his 5-volume Computers and Typesetting. Knuth had privately used a literate programming system called DOC as early as 1979. He was inspir
13:17:42 <alise> ed by the ideas of Pierre-Arnoul de Marneffe[12]. The free CWEB, written by Knuth and Silvio Levy, is WEB adapted for C and C++, runs on most operating systems and can produce TeX and PDF documentation.
13:17:48 <alise> I am trying to find a WEB distribution now.
13:18:09 <alise> hiato: Failing all that, the hint is that stuff can include other sections; the macro things are obvious when you see them, and text and \ stuff is TeX; things that look like Pascal, are.
13:18:23 <hiato> Hmmm, interesting that this pascal works sans assignments, or at least casting of 'types' in one
13:18:48 <alise> TeX nowadays is compiled by using web2c, which translates the WEB/Pascal source to C.
13:19:01 <alise> it uses assignments, just not casts in them yeah
13:20:05 <alise> hiato: An awful lot of the TeX source and its conventions are so that it runs giving strictly the same results no matter /what/ the input for all environments you can imagine.
13:20:11 <alise> So it's a bit idiosyncratic in its minimalism.
13:21:51 <hiato> Yeah, I'm beginiing to see that, though, I'm more impressed with how archaic the implementation language is for what must be one of *the* most reliable and bug free systems
13:22:30 <alise> Yes! Of course nowadays the younguns use pdfTeX which I think has more C bits to it maybe? and even XeTeX which I have no idea what the hell it is.
13:22:47 <hiato> Never heard of that last one
13:22:55 <alise> But if you run tex(1) with the intention of getting a .dvi out of it, you're running something compiled from C translated from 80s restricted Pascal.
13:23:14 <alise> hiato: It's basically a merger of TeX and Unicode + "modern font techologies"
13:23:18 <alise> So I don't know how the code is done.
13:24:44 <hiato> and heh, younings? Getting a tad above yourself there :P But yeah, this is, well I must say strange. I know their intention was not performance, but surely there were better choices, even back in the 80's (?)
13:25:08 <alise> Their? This is almost entirely the work of the single demigod Knuth. :-)
13:25:26 <alise> Well, C wasn't really so portable or standardised then, I imagine.
13:25:36 <alise> Pascal was pretty much the only other language...
13:25:43 <alise> And his WEB system was already built to use Pascal.
13:25:46 <hiato> added lol having just watched clash of the titans
13:25:58 <alise> Besides, TeX isn't even very slow.
13:26:11 <hiato> and tex in forth would've been too cool lo exist
13:26:27 <hiato> But, yes, not really
13:27:02 <hiato> for the speed thing that is. Eh, my concentration is wavering. Must. Mono. Task.
13:27:47 <alise> Actually Knuth still writes his programs in WEB's son CWEB.
13:28:00 <alise> They're like nobody elses...
13:28:08 <hiato> Reall,? Wait, is this knuth of up arrow fame?
13:28:25 <alise> Yes... and The Art of Computer Programming fame.
13:28:30 <alise> And oh so many things.
13:28:44 <hiato> v. v. v. impressive in that case
13:29:43 <alise> Oh, and also the KnuthMorrisPratt algorithm.
13:29:46 <alise> And the Knuth shuffle.
13:30:12 <alise> Oh, and the guy who popularised big-O notation for computer algorithms.
13:30:24 <alise> Safe to say... Knuth is a god.
13:31:31 <hiato> I always felt that the more you know about somethieg (In this case maths), the less you know about everything else. What was it? Academics are people who know more and more about less and less until they know nearly everything about nothing. or some such. But, I guess I never explored the comp sci side of him, in terms of practical and implemented stuff - as opposed th theory
13:32:02 <alise> At least the nothing that is mathematics is a very interesting and beautiful nothing.
13:32:04 <fax> hiato, except physics
13:32:18 <fax> people who know physics seem to know a lot and be quite sane and clever
13:32:39 <hiato> Wait, dont get me wrong, I wranna be an academic, but that is still a roughly accurate vew in my opinion
13:32:48 <alise> I note that a lot more mathematicians believe in God than do scientists.
13:32:56 <hiato> fax: heh, that's why I wanna go into astro phys
13:33:04 <alise> The natural numbers, they're God. Close as you'll get to a formal definition.
13:33:10 <alise> Physics and the like are much more concrete, finite, etc.
13:33:24 <hiato> Hmmm, interesting view
13:33:28 <fax> don't equate finitism with atheism
13:33:45 <alise> fax: I'm making analogies and hypotheses.
13:34:01 <alise> Anyway, I'm pretty sure /any/ reasonable definition of God includes an inkling of the infinite.
13:34:10 <alise> So someone who is truly, /truly/ a finitist to the bone would be an atheist.
13:34:24 <fax> didn't I just say...
13:34:24 <alise> And I'm an infinitist and strongly disbelieve in God.
13:34:27 <hiato> heh, but, I do agree that finitness+rigidity and friends and god and so on anre not mutually excl
13:34:37 <alise> fax: I don't avoid saying things just because you don't want me to...
13:34:46 <fax> alise yeah but URgh
13:34:52 <alise> hiato: what is god that is not infinite?
13:34:56 <fax> I was not telling you "don't say this"
13:35:06 <alise> fax: Well, give me a reason for not equating the two.
13:35:11 <alise> I only mean very strong finitism, you understand.
13:35:15 <alise> A philosophy transcending mathematics.
13:35:17 <hiato> Alise, no less or more a god in my view
13:35:19 <fax> god = infinity is just idiocy
13:35:27 <fax> this is like saying 666 = the devil
13:35:29 <fax> I mean really
13:35:33 <fax> it's just crazy
13:35:44 <fax> hey I am doing analogies now
13:36:10 <alise> Anyway, this is a waste of time since obviously God doesn't exist.
13:36:20 <hiato> sigh. At the mention of the word god people start breaking. But, this is isnteresting.
13:36:31 <fax> alise how can you say that is obvious, it is not even true
13:36:41 <alise> fax: I knew that would provoke you!
13:36:44 <alise> hiato: Don't worry, I don't actually believe it's obvious.
13:36:46 <fax> God exists and I can prove it
13:36:46 <hiato> fax: I'd be careful of making that a fact
13:36:54 <alise> But fax is so sure that God exists and uses "atheist" as an insult, it's funny.
13:36:55 <fax> watch a plant grow: You have witnessed it
13:37:07 <alise> Wow, nice one, Anselm of Canterbury.
13:37:08 <hiato> alise: heh, no worries
13:37:15 <alise> That even tops the "I imagined it; it's awesome; so it exists" one.
13:37:32 <hiato> fax: proof enough for ou perhaps
13:37:48 <fax> are you just going to call me a famous italian monk or will you try and refute my argument? :)
13:37:59 <fax> hiato, you don't buy this?
13:38:02 <hiato> and throfgh his sarcasm, alise is merely saying the same
13:38:44 <fax> maybe you have an outdated definition of God that means some kind of conscious being which listens to people when they prey to win the lotterly
13:38:56 <alise> "Plants grow => God exists" simply does not follow in any sense. Maybe you meant "Plants grow; plants growing is wonderous; I perceive God as the generalised-'growing' nature of things; therefore God exists".
13:39:08 <fax> alise no not at al
13:39:10 <alise> Which is very, very close to pantheism -- a concept which is atheism, just with names changed.
13:39:56 <hiato> nope. in fact, I take prayer as proof of man's interpretation of an ideal god and the want for such a being, but def not it's existence
13:40:15 <fax> hiato, I'm saying /that/ stuff is BS
13:41:11 <alise> Anyway, this is pointless. The only way to convince a reasoned atheist to become religious is programming; the only way to make an atheist out of a reasoned religious person is deprogramming.
13:41:30 <alise> Unreasoned religious people can of course be atheist-ised, and impressionable atheists who haven't thought about it much can be made religious too.
13:41:32 <fax> alise: other way around
13:41:34 <hiato> fax: I do believe, however, that should there be god(s) there are some fundemental criteria for their/it's comprehendable existence, with rigid tests
13:41:42 <alise> fax: Yes, thank you for inserting your personal opinion.
13:41:47 <alise> I knew you would take the terms perjoratively.
13:41:51 <fax> alise I just did that because you did it :P
13:41:59 <alise> I can't think of better terms. So there.
13:42:03 <alise> But we're clearly both on the reasoned end.
13:42:11 <fax> hiato, it's easy to test my theory, just look at a sunrise
13:42:12 <alise> And we're not going to try and (de)program each other.
13:42:16 <alise> So let's just stop now.
13:42:26 <alise> And give up with your fucking "the universe is beautiful GOD EXISTS" non-sequiturs. Please.
13:42:46 <fax> alise: It's not about beauty
13:42:54 <alise> Remember when I said let's stop talking about this?
13:43:13 <hiato> alise: in the name of a reasonable conversation I object. So long as this is not offeding anyone, the fact that there can be no changing of views shold not stop a coversation
13:43:34 <alise> But this is just degenerating into a flamewar, from an irrelevant tangent at that.
13:43:42 <alise> Let's keep the peace and talk about things we can have constructive discussions about.
13:43:45 <fax> I wouldn't call it a flamewar
13:43:55 <alise> You know my personality. It will be one soon :)
13:44:04 <fax> I didn't want to say that :P
13:44:27 <hiato> But ok, I digress. Back to Pascal
13:45:27 <hiato> Is there a cellphone IRC client?
13:45:39 <alise> For what cellphone?
13:45:40 <hiato> as in Java nonsense
13:45:41 <alise> There are countless.
13:45:55 <alise> http://www.google.co.uk/search?q=java+mobile+irc+client&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-GB:unofficial&client=firefox-a
13:47:22 <alise> I wonder, I wonder, how to self-interpret Redivider.
13:47:28 <alise> It would help if it had... data structures; at all.
13:47:37 <alise> Well, it does, they just have to be strings.
13:48:26 -!- oklopol has quit (Read error: Connection reset by peer).
13:48:34 <fax> I'm aatheist
13:48:44 -!- oklopol has joined.
13:48:53 <fax> (just kidding)
13:49:00 <oklopol> <oklopol> is fax religious?
13:49:11 <alise> he certainly is if he believes God exists.
13:49:14 <hiato> 14:35 < fax> hiato, you don't buy this?
13:49:20 <alise> <hiato> 14:35 < fax> hiato, you don't buy this?
13:49:24 <fax> 12:48 < alise> <hiato> 14:35 < fax> hiato, you don't buy this?
13:49:30 <alise> <fax> 12:48 < alise> <hiato> 14:35 < fax> hiato, you don't buy this?
13:49:39 <alise> that's the biggest anything can possibly be
13:49:50 <alise> was fun while it lasted
13:49:54 <hiato> bring the fury alise
13:49:59 <oklopol> and he does? that's what i'm asking, with fax i never know what's serious and what's not
13:50:14 <alise> oklopol: he's got really offended at me for saying something about atheism before
13:50:19 <alise> so i'd assign a v. high probability he's serious
13:50:32 <fax> oklopol: I can prove god exists: You can see a plant grow
13:50:34 <oklopol> i don't care about probabilities
13:50:47 <hiato> oklopol: there's your proof
13:51:01 <fax> why does nobody accept my proof ??
13:51:03 <oklopol> fax: you accept that proof?
13:51:07 <alise> fax: stop embarrassing yourself
13:51:09 <fax> it's obvious
13:51:14 <fax> oklopol do you
13:51:32 <alise> you have a chance to be filed under "religioustype mathematician guy", not "half-mathematician, half-religiouscrackpot"
13:51:33 <fax> this isn't a matter of opinion
13:51:35 <oklopol> i don't believe in proving things out of a formal system
13:51:38 <alise> don't throw it away
13:52:00 <fax> oklopol, what about cogito ergo sum? You don't buy that
13:52:02 <oklopol> in a formal system where plants growing implies gods i accept it
13:52:23 <alise> Cogito ergo sum is not even close to "plants grow therefore god exists".
13:52:44 <oklopol> "<oklopol> i don't believe in proving things out of a formal system"
13:52:44 <fax> what about proving that some kind of innoculation works? by testing it and such
13:52:49 <alise> oklopol: but fax analogised.
13:52:53 <fax> alise, no it wasn't an analogy
13:53:12 <oklopol> as a scientific truth, you can ask whether god exists
13:53:19 <fax> oklopol, it's not a mathematical proof but it has the same effect no?
13:53:23 <oklopol> which means "is it useful to model the world as a world where a god exists"
13:53:29 <oklopol> the answer is obviously no in my opinion
13:53:46 <oklopol> fax: no, nothing to do with math
13:53:56 <oklopol> it's just information about the past
13:54:08 <oklopol> this innoculation has worked most of the time
13:54:20 <fax> oklopol, it's not induction
13:54:25 <alise> THIS GOD HAS COMFORTED ME MOST OF THE TIME
13:54:31 <fax> oklopol, people actually have an explanation about why it should work too
13:54:37 <fax> as well as testing to back it up
13:55:05 <oklopol> fax: that's just models for the world again supported by the fact they've modeled the world wellb efore
13:55:11 <fax> looks like alise has starting flaming to make sure she doesn't learn anything
13:55:11 <alise> hiato: hiato: haito:
13:55:14 <hiato> fax, out of interest, does it matter if god doesn't exist? I mean, as far as the end user is concerned, the effects would be the same
13:55:19 <oklopol> i don't care if there's a reason in that model why something should work
13:55:20 <alise> fax: haha seriously shut up
13:55:28 <alise> just shut up, you're being a total idiot
13:55:28 <oklopol> i don't consider it a truth
13:55:33 <alise> first i made a joke, then i tried to change the topic
13:55:38 <fax> hiato: if god didn't exist everything would just instantly stop like pulling the plug out of a computer
13:55:42 <alise> yes, "you're being an idiot" is a flame
13:55:47 <alise> because it's fact, you are
13:55:50 <alise> ...and I can prove it!
13:55:53 <oklopol> hiato: about the mattering, that's what i mean by scientific truth
13:55:53 <hiato> ok, I have what I need
13:55:57 <alise> fax: Funny, no, it wouldn't.
13:56:00 <oklopol> whether it's useful to think there's a god
13:56:07 <oklopol> whether the world behaves as if there was a god
13:56:08 <hiato> oklopol: not sure I understand
13:57:14 <oklopol> hiato: science does not talk about what's true and what's not, that's the science of opinions called philosophy's job, sciences talks about mathematical models for certain phenomena
13:57:23 <oklopol> and backs them up with experiments and shit
13:57:46 <hiato> haha, poor chioce of wording for that last one
13:57:48 <alise> also pulling a plug out of the computer -- atheism is LAPTOP BATTERIES
13:57:49 <alise> it all makes sense now
13:58:01 <fax> alise: why are you being a dick?
13:58:06 <oklopol> so you can ask the scientific question of "whether god exists" by making some sort of model in which there's an all-knowing god and explaining stuff with it
13:58:12 <fax> alise: you're like riot police
13:58:20 <fax> alise: all you do is escalate things and cause fights
13:58:31 <alise> Yeah, I'm basically Satan ...in a can.
13:58:38 <fax> alise: what?
13:59:03 <fax> alise: seriously you are coming off as very deluded and brainwashed
13:59:29 <alise> I sure am one brainwashed atheist, Mr. Plants Grow.
13:59:31 <fax> alise: it's like you have to cling on to atheism for dear life, because you are so terrified something might make fun of you for "beleiving in god"
13:59:38 <fax> alise: plants do grow
13:59:44 <alise> I've considered my atheism many times.
13:59:48 <fax> alise: if you think otherwise you are mistaken
13:59:58 <alise> That doesn't mean God exists though.
14:00:01 <fax> yes it does
14:00:12 <fax> oh good point
14:00:21 <fax> I had not considered "No. It doesn't." before
14:00:22 <alise> fax: seriously you are coming off as very deluded and brainwashed. it's like you have to cling on to consciousness-does-not-existism for dear life
14:00:22 <hiato> He's not crazy. It's the government man. But noone believes me. But you will, right? Haha! You do, but they wont! haha! they called me mad- but I showed them!
14:00:30 <fax> alise: typical...
14:00:31 <alise> because you are so terrified something might make fun of you for "believing in consciousness"
14:00:37 <alise> Hmmmmmmmmmmmmmmmmmmmmmmmmmm
14:00:42 <fax> I used to beleive in consciousness actually
14:00:49 <alise> I used to believe in God.
14:00:51 <oklopol> you don't believe in consciousness?
14:00:52 <alise> And it's spelled Believe.
14:00:55 <fax> alise did you really?
14:01:05 <alise> oklopol: no, he thinks consciousness means "metaphysical-soul-type".
14:01:14 <alise> fax: As much as I could coherently believe anything before developing proper rational thouht.
14:01:16 <fax> alise I was a very strong atheist until like 1 year ago
14:01:19 <alise> Which is not much at /all/.
14:01:28 <alise> Ohh, that would explain the incoherence and fanaticism.
14:01:36 <alise> Recently deconverted atheists are the most fanatical of all religious people.
14:01:40 <alise> Erm, re-converted.
14:01:41 <fax> alise like we used to have to sing hyms in class and I would just sit there not singing
14:01:57 <fax> that was in primary school tohugh
14:02:01 <hiato> oklopol: si back and enjoy the show
14:02:01 <alise> RAGE AGAINST THE HYMN MACHINE, FAX
14:02:12 <oklopol> hiato: have to smiley occasionally
14:02:22 <fax> I'm not fanatical
14:02:50 <alise> god exists because plants grow. can we get back to haskell now
14:02:58 <fax> alise: Well here is a problem:
14:03:07 <fax> (*) nobody beleives my proof
14:03:19 <fax> (*) nobody will LISTEN to my proof because _they've already decided it's wrong_
14:03:25 <fax> what does that remind you of/
14:03:39 <alise> I looked at your proof, and tried to figure out how on earth it made sense at all, which led to an automatic analysis of it in my wetware.
14:03:41 <fax> hint: It reminds you of trying to convince religous people that god doesn't exist
14:03:48 <alise> It used logical systems, philosophical systems, etc. to try and find a match.
14:03:53 <alise> It concluded that your proof is full of shit.
14:03:57 <alise> I happen to believe it's right.
14:04:02 -!- AquaLoqua has joined.
14:04:04 <alise> It's me, incidentally.
14:04:21 <alise> I don't try and convince religious people God doesn't exist because it doesn't work.
14:05:35 <fax> alise: Also if someone is going to judge me and ignore the content of what I say based on "oh but they've got different beleifs than me" then I don't give a fuck what they think
14:05:38 <fax> re: 12:51 < alise> you have a chance to be filed under "religioustype mathematician guy", not "half-mathematician, half-religiouscrackpot"
14:05:44 <AquaLoqua> er, i mean god is, er, dating an athiest
14:05:58 <alise> I'm not interested in talking about this.
14:06:02 <fax> yes you are
14:06:09 <fax> you just realize that you've been pwnd :D
14:06:12 <fax> so you want to stop
14:06:14 <alise> You have no chance of convincing me your religious opinions are not crazy, so do not even bother as it is a waste of both of our time.
14:06:28 <fax> ^ typical distraction technique
14:06:32 <alise> While you seem to have succeeded at taking your delusions to higher and higher levels I'm not even going to listen now
14:06:37 <fax> now you will pat yourself on the back so you can continue living your delusion
14:06:46 <alise> you are really fucking crazy.
14:06:47 <hiato> fax: everyone is a winner here. Except oklopol
14:07:04 <alise> hiato: now we are going to talk about pascal and nothing else. i am intensely interested in every footnote about Pascal.
14:07:24 <fax> oklopol: you can win
14:07:37 <hiato> oklopol: not allowed. 1st commandment
14:08:14 <fax> hiato seems to be pulling out some kind of history book
14:08:16 <hiato> Have you considered cosmetic surgery
14:08:46 <oklopol> my face regex's all treatment
14:09:20 <oklopol> atheists are such annoying idiots
14:09:33 <hiato> yay, I have two votes
14:09:34 <alise> conclusion: AquaLoqua = plants
14:09:44 <alise> AquaLoqua = hiato; therefore hiato = plants
14:09:58 <hiato> I am a vegiterian for what it's worth
14:10:06 <alise> what the /hell/ is a vegiterian
14:10:21 <hiato> and jewish, and gay, and black, and a midget
14:10:25 <fax> 13:08 < oklopol> atheists are such annoying idiots
14:10:37 <hiato> so hate all you want on me
14:10:54 <alise> hiato: what, /all/ of those things?
14:11:10 <hiato> most hated women in the world, that's me
14:11:23 <alise> wait wait, i am /fairly/ sure you are male
14:11:30 <fax> according to quantum physics, nothing isn't nothing anymore.. it's really a boiling bubble brew of particles coming in and out of existence at such a small scale that you can't ese it
14:12:05 <hiato> alise: yeah. and caucasian, and straight, and six 2 and and and
14:12:30 <fax> alise talk to me :(
14:12:35 <oklopol> i belong in no minority i think
14:12:38 -!- AquaLoqua has quit (Quit: used jmIrc).
14:12:42 <alise> fax: not unless you talk about something else
14:12:53 <fax> alise quantum theory IS somehing else
14:12:59 <alise> something else else.
14:13:42 <alise> why are there no good CASs... grr
14:14:02 <hiato> fdulu@chippy> wtf CAS ~
14:14:03 <fax> empty space has this much energy: 10^120*energy of the universe
14:14:05 <hiato> wtf, I don't know what CAS means!
14:14:16 <fax> 10^120*energy of the universe = 0
14:14:35 <alise> hiato: Computer Algebra System
14:14:45 <fax> alise what's the smallest prime numbers above that ?
14:14:48 <alise> symbolic expression evaluator/etc such as Mathematica, Maxima, Axiom, etc.
14:14:49 <fax> that might the constant
14:14:59 <hiato> Aah, yes, then wlf would be the wrong place to ask
14:15:11 <alise> anyone know of a mathematical-notation handwriting recogniser thing?
14:15:18 <hiato> also, what about fuse?
14:15:29 <hiato> it's not that though
14:16:33 <fax> Draw a picture of 3D curved space
14:17:13 <hiato> any programme that has a livo cd is a win in my books
14:17:34 <alise> sage is kind of limited.
14:17:35 <alise> like, really limited
14:17:39 <alise> oh I forgot Maple in my list
14:17:44 <hiato> wouldn't actually know
14:17:48 <alise> Sage is really just an interface to other CASs and the python doesn't blend too well with it
14:17:54 <alise> plus, well, it just doesn't do as much as the commercial ones
14:18:02 <hiato> Oh, well thanks for the heads up
14:18:26 <hiato> then, there's only one thing left alise: be a pirrrrate
14:18:38 <alise> But even Mathematica is not really decent.
14:18:39 <fax> Do you beleive in graviational lensing?
14:18:44 <alise> It is also very slow on Linux.
14:18:48 <fax> I think it's a fairy story like global warming or linux
14:18:48 <alise> Perhaps Maple? I have not tried it.
14:19:05 * alise hopes that fax is joking for /once
14:19:48 <hiato> Perhaps. TBH, if Mathematica is anything like what I've heard, then I'm not sure that the software you're looking for has been invented yet
14:21:40 <alise> I don't believe it has been; no reason though: it should be.
14:22:20 <alise> @ I must remember to say |break| at the end of the program for each case.
14:24:01 <alise> Grr! I hate Linux font rendering.
14:24:15 <fax> alise part of the conspiracy I guess...
14:24:54 <fax> hey alise if the universe was flat it would have total energy 0
14:24:58 -!- Asztal has joined.
14:24:59 <fax> but it's not flat, so god exsts
14:25:16 <alise> you're just trolling me now
14:26:15 <fax> non-euclidean
14:27:49 <hiato> Gregor: please set topic: "hey alise if the universe was flat it would have total energy 0, but it's not flat, so god exsts"
14:28:13 <alise> anyone can set topic
14:28:30 <fax> finally, at least hiato understands my proof
14:28:33 <alise> just keep the logs url
14:30:35 <hiato> Aah: "When +t is set, only channel operators may modify the topic of the channel. This mode is recommended in larger, more public channels to protect the integrity of the topic."
14:31:21 <alise> so set the topic yourself. /topic.
14:31:36 <hiato> no, it's not, but I was just curious as to the mechanism
14:31:49 <fax> No the universe IS flat
14:32:04 <oklopol> it's flat like ur mommas chest
14:32:12 <fax> I retract my earlier statement
14:32:13 <hiato> oklopol is just rour 'cause he lost and everyone else won
14:32:17 <alise> fax: so there is 0 energy
14:32:19 <alise> so god does not exist
14:33:36 <fax> the universe is accelerating
14:33:40 <alise> hiato: so I'm interested in defining, inspired by TeX, a sort of ultra-subset of Pascal -- maybe not /quite/ as small as PL/0 -- say, uber-Pascal.
14:33:44 <alise> you are now officially quality control.
14:33:46 <oklopol> yep getting faster and faster
14:34:04 <fax> 70% of the energy of the universe resides in empty space
14:34:13 <hiato> alise: I am so very game
14:34:51 -!- hiato has changed nick to oklopol_.
14:34:55 <alise> hiato: are you still game if I told you I was thinking of dropping pointers?
14:35:00 -!- oklopol_ has changed nick to hiato.
14:35:04 <oklopol> yeah or would that just make you mad?
14:36:06 <hiato> alise: Well, in principle, I dont really have a problem, but is there any reason in specific? I mean, is this just in the name of reducing the language?
14:36:20 <hiato> Also, it will vake things more painful
14:36:21 <oklopol> yeah do you just wanna reduce it or what?
14:36:27 <alise> hiato: pretty much: pointers in pascal are already restricted quite a lot, and I would imagine that buffers would work fine in most of the cases
14:36:29 <fax> oklopork do you like cosmology
14:36:43 <alise> hiato: theory is "good enough for knuth, ..."
14:36:45 <oklopol> is it the science of stars
14:36:50 <alise> plus, I really hate malloc/free.
14:36:59 <alise> so not having them at all will be a relief; I won't feel obligated to use them!
14:37:24 <hiato> alise: heh, but ok. I too share a distrust with thos methods whose names we do noht mention, so ok then
14:37:50 <alise> I don't distrust them, I just find them so incalculably tedious that I find myself doing crazy things just to avoid them.
14:38:13 <alise> hiato: Packed arrays can obviously go.
14:38:14 <fax> antropic principle is religous?
14:38:29 <hiato> Naah, I _distrust_ them. Wouldn't give them house address in case we accidentally get overrun with junk
14:38:39 <alise> hiato: What about files? Is there any problem with removing the program statement and adding "file" as a new type instead of weird x^ variables?
14:38:54 <hiato> heh, but... but... but
14:39:08 <hiato> Well, let's try fermalise this
14:39:30 -!- kar8nga has quit (Remote host closed the connection).
14:40:06 <alise> As shown in the example above, Pascal files are sequences of components. Every file has a buffer variable which is denoted by f^. The procedures get (for reading) and put (for writing) move the buffer variable to the next element. Read is introduced such that read(f, x) is the same as x:=f^; get(f);. Write is introduced such that write(f, x) is the same as f^ := x; put(f); The type text is predefined as file of char. While the buffer variable could be used
14:40:07 <alise> for inspecting the next character to be used (check for a digit before reading an integer), this concept leads to serious problems with interactive programs in early implementations, but was solved later with the "lazy I/O" concept.
14:40:13 <alise> I don't see how this shouldn't be solved with simply functions
14:40:44 <hiato> Depending on what you hate+ what I hate, I think we can find a better way to construct most of the existng types. As for I/O, we can come up with some clever def's and types based around buffers
14:41:07 <hiato> ah, it seems we agree then
14:41:11 <alise> Yes. Er, just out of curiosity, how attached are you to records?
14:41:16 <alise> (I know, I'm crazy! I just need to consider /everything/.)
14:42:00 <alise> I'll take that as "very".
14:42:15 <alise> Obviously n..m types are useful.
14:42:21 <hiato> Not at all. In fact, in my final exam for school i lost all the varks for using funky types and meesed up arrays instead of them. It's really not necessanry in a minmalist group
14:42:29 <alise> What about enumeration -- (a,b,c) types?
14:42:52 <alise> Those are "nice" I guess but really... that's just a bunch of constants and an n..m type.
14:42:56 <alise> No rason to be part of the language.
14:42:58 <hiato> Can you find a time where they are absolutely necessary?
14:43:04 <alise> Theoretically they are never.
14:43:07 <alise> I think I like records though.
14:43:21 <alise> Sets -- Perhaps they may be faster, but I'm not sure I lik ethem.
14:43:30 <hiato> Well, if you like them then we get to keep localised functions
14:43:41 <alise> hiato: Not even C has them, does it?
14:44:00 <alise> What is a localised function, exactly?
14:44:18 <hiato> You know, the whole not using C bit gets in the way every now and then :P
14:44:53 <alise> What has that got to do with sets?
14:44:56 <alise> Or am I parsing you wrongly?
14:45:21 <alise> Now. writeln. I don't like writeln because it's a variadic, polymorphic function that does different things depending on the types of each of its arguments.
14:45:23 <hiato> nothing at all, I was merely saying that if we compromise on records, we compromise on that too :)
14:45:26 <alise> In Pascal, this is absolutely impossible.
14:45:29 <alise> So writeln is absurd.
14:45:47 <hiato> Wait, not necessarily
14:45:49 <alise> However I don't think variadic functions are even very standard at all in Pascal.
14:46:09 <hiato> Are we going to have overloaded functin defs?
14:46:27 <alise> hiato: You mean f(x) and f(x,y) and also for different types?
14:46:44 <alise> The only language I know of that does that is C++, I think.
14:46:51 <alise> CLOS does but that doesn't really count.
14:46:51 <hiato> specifically for types
14:47:29 <hiato> My vote is yes for them, because it's such an overlooked feature nowadays
14:47:54 <hiato> what wit auto casting and implicit types
14:51:17 -!- alise has quit (Ping timeout: 258 seconds).
14:51:28 -!- alise has joined.
14:51:49 <alise> <alise> Well, I think that a lot of overloading is misused.
14:51:49 <alise> <alise> For instance a function working on integers and the analogous function on the reals are often very different.
14:51:50 <alise> <alise> Such as division vs integer division.
14:51:50 <alise> <alise> Plus it complicates the compiler a lot.
14:52:17 <hiato> Well, I missed that all, un moment por favor
14:52:45 <hiato> Hmmm, ok, I guess that is a valid point
14:53:20 <hiato> and through some quick resarch, I found that pascal has/had anoter mechanism to make writeln possible
14:53:25 <hiato> http://stackoverflow.com/questions/617654/how-does-writeln-really-work
14:53:42 <alise> now, the ancient problem of having to say
14:53:42 <hiato> procedure MyProc(args : array of const);
14:53:45 <alise> string = array [1..n] of char
14:54:11 <alise> what should we do about that?
14:54:23 <hiato> Wait, what's the problem there?
14:54:32 <hiato> of, n as in var n?
14:54:47 <alise> hiato: that array of const thing is just for delphi&co
14:54:51 <alise> it's that you have to pick n
14:55:06 <hiato> FPC i take as nearly standard
14:55:41 <alise> FPC? Remember that I'm not a Pascalite. :)
14:55:51 <alise> FreePascal, I see.
14:55:56 <hiato> Ah, my bad: Free Pascal Compiler
14:56:34 <alise> So what have we agreed on. "program" sucks, separate file buffer things suck.
14:57:17 <hiato> aah, ok, as for string, the way I figure is to just use a shortStr = array [0..255] of char
14:57:27 <hiato> and build from there
14:58:00 <alise> But this has numerous disadvantages, over a hypothetical structure containing the length of the string, followed by a dynamically allocated block.
14:58:09 <alise> Say, can't files represent such a thing?
14:58:15 <alise> Who says they have to be bound to actual files...?
14:58:24 <hiato> yes, also, we will keep recordss, loclaised functions, no overloading, and buffer base IO
14:58:42 <hiato> I like that idea actually
14:58:48 <alise> I didn't agree to localised functions! :-)
14:59:02 <alise> Hmm, files don't support random access, though, do they?
14:59:35 <alise> That's an issue for strings, then.
14:59:40 <alise> But how come files get to be infinite?
14:59:45 <hiato> which is not technically a problem, but just adds a lot of overhead
15:00:30 <hiato> They dont, reall,. In fact, IIRC, the FP for a file is restricted to cardinal
15:00:35 <alise> Not sure if you've realised this, but we're basically honing in on defining a slight subset of Oberon-2 http://www.statlab.uni-heidelberg.de/projects/oberon/kurs/www/Oberon2.Report.html :-P
15:00:42 <hiato> which is unsigned int32 in C I guess
15:00:57 <hiato> Never heard of it, but damn
15:01:16 <alise> Oberon-2 is Wirth's latest language in the Pascal series.
15:02:40 <hiato> this I dont like: Function = PROCEDURE(x: INTEGER): INTEGER
15:03:03 <hiato> it looks like Function is a type then
15:03:11 <hiato> which makes no sense
15:03:48 <hiato> and the fact that PROCEDURE can return is a tad of putting for me
15:03:53 <alise> Function is the type of procedures taking an integer and returning an integer.
15:04:22 <hiato> but that's meaningless, surel,?
15:05:38 <hiato> unless we do first class functions and need a type for them, but then it would really be nice to have pointers
15:06:19 <alise> I imagine Oberon has function pointers.
15:06:52 <fax> wow apparently evolution is better than general relavity?
15:07:29 <hiato> yugh, and oberon has a ridiculous expansion for n-dimensional arrays
15:07:47 <alise> how's it ridiculous
15:09:35 <hiato> ARRAY L0, L1, ..., Ln OF T ==> ARRAY L0 OF ARRAY L1 etc in Oberon. In the spirit of all that is Pascal, that should just be invalid.
15:10:15 <hiato> alise: ... because that's just the way it is :)
15:10:30 <alise> Anyway, opinion: the REAL type is named incorrectly.
15:10:53 <alise> It can not even represent all rationals; it cannot represent a single irrational.
15:10:58 <alise> RATIONAL_APPROX is what it is.
15:11:27 <fax> what about karma
15:11:35 <alise> fax: in what sense
15:11:38 <fax> do you beleive in chamelions?
15:11:52 <alise> now that's in my head
15:12:37 <hiato> Well, in all fairness, real reals have always been the job of external libs in any Pascal deriv
15:12:47 <alise> I doubt any of them were /real/ reals.
15:12:53 <alise> Can they represent sqrt(2) precisely? pi; all of it?
15:13:15 <alise> If they did, then they are "computable reals", not found much outside of abstract mathematics. They have several disadvantages, such as that equality always diverges if given two equal reals.
15:13:18 <hiato> yes, ofc not _actual_ reals
15:13:40 <alise> That's still rationals. :P
15:14:04 <alise> Incidentally, goal: the uber-Pascal's self compiler should be <10,000 lines. Including parser, everything.
15:14:05 <hiato> but if that is your gripe with the real type, then it's merely a matter of syntax
15:14:56 <hiato> I sand into the keyboard
15:15:11 -!- hiato has quit (Quit: underflow).
15:15:44 -!- hiato has joined.
15:16:13 <alise> hiato: I wonder what the self-compiler should output.
15:16:22 <alise> Perhaps very simple bytecode in the style of Pascal compilers of old.
15:16:26 <hiato> alise: I died a ping death, what'd I miss?
15:16:36 <alise> Then a simple machine-specific compiler would compile this to, say, assembly.
15:16:54 <alise> Anyone know a good free text usenet server? Don't think my ISP provides.
15:19:47 <hiato> alise: heh, yeah, some 'junk' and a few bytes of import, then let's go fancy and huffman code the pascal, with delimeters for vars/const etc
15:20:14 <fax> alise how much quantum physics do you know
15:20:17 <alise> hiato: Oh, I was thinking way more than that: actually compiled to a pseudo-asm type dealie.
15:20:18 <hiato> damn my terrible coneection
15:20:24 <hiato> anyway, it was a nice idea in my head
15:20:29 <fax> alise we can learn it together
15:20:43 <alise> fax: will you keep trying to find ways to relate things to dog, I mean god
15:22:29 <fax> alise, quantum physics has NOTHING to do with god
15:22:33 -!- hiato has quit (Quit: underflow).
15:22:37 <alise> fax: Thank god! Er...
15:24:12 -!- hiato has joined.
15:24:46 <hiato> Ok, let's hope this works, I have now tunneled with SSH just to get a better ping
15:43:04 <oklopol> when i wanna learn quantum physics i'll just take a course at uni
15:43:51 -!- hiato has quit (Quit: IPL finals).
15:56:17 -!- kar8nga has joined.
16:39:57 -!- Mathnerd314 has joined.
16:44:57 <MizardX> alise: Took a while to knit out all the bugs... http://pastebin.com/71FdS5ge <-- updated version of the previous program, now supporting negative numbers and subtraction.
16:45:26 <alise> MizardX: It's tricky business, isn't it.
16:45:58 <alise> MizardX: Do you think it would be fruitful to extend this to base 256?
16:48:33 <MizardX> I have one for decimal numbers. It can calculate expressions with +, -, (, )
16:50:08 <MizardX> Ah, wait... It isn't finished
16:50:16 <alise> well, your binary functions trivially generalise
16:50:21 <alise> since the carry operation is all that matters
16:50:29 <alise> it's just for efficiency in programs, since unary is really slow and binary is not much better
16:50:40 <alise> could we calculate small factorials with base 255? (need ~ for negative)
16:54:54 <MizardX> Space optimization for sub(m,n): add(m,succ[invert[n]]).
16:55:13 -!- hiato has joined.
16:58:11 <MizardX> To do factorials, we need multiplication. To implement base-256 we need a case for every digit-digit-combination; some 65000 rows for each operation at least.
16:59:44 <alise> Presumably it would be computer-generated.
16:59:54 <alise> BTW, am I right in thinking there is no real obstacle to compiling Redivider?
16:59:54 <fax> computer programming
17:00:06 <alise> Code and data are firmly separated, and there's no dynamicness...
17:00:33 <MizardX> The regex implementation could be an obsticle, but not impossible.
17:01:01 <alise> You could use Google/Russ Cox's re2, since the spec doesn't require backreferences or anything.
17:01:06 <alise> That would be superfast.
17:01:11 <alise> MizardX: Would your parser be adaptable to this task?
17:02:00 -!- Tritonio_GR has quit (Ping timeout: 258 seconds).
17:03:25 <alise> MizardX: I'm thinking that a hard fail -- being an unrecoverable operation that terminates the entire program -- is just a printf-exit type dealie.
17:03:38 <alise> A soft fail is just, say, returning NULL so the whole program is effectively a chain of ||s.
17:08:08 <MizardX> Redivider is highly recursive, so a simple translation into C would have stack troubles.
17:08:45 <MizardX> The python implementation handles the stack itself.
17:09:14 <alise> uorygl: Woot! The creator is here.
17:09:29 <alise> uorygl: I think that in Redivide, p[q] should soft fail, not hard fail, if p soft fails.
17:09:34 <alise> This would allow a lot nicer branching and stuff.
17:09:56 <uorygl> Too bad I don't remember anything about Redivider.
17:10:06 <alise> Look up the spec; http://esolangs.org/wiki/Redivider
17:10:14 <fizzie> I have a tiny bit of JavaScript that translates Redivider to JavaScript code, but it's probably very incomplete, and I don't remember the implementation strategy at all.
17:10:24 <alise> uorygl: Also, I think that in {a;b;c}, b and c soft failing should cause the whole thin to soft fail, not hard fail; yes, this means that backtracking becomes large, but PEG parsers do that too, and they have no problem (e.g. Parsec)
17:10:30 <alise> And it would make the language nicer for branching and stuff.
17:10:57 <uorygl> I think the very point of hard fail is to prevent backtracking from becoming large.
17:11:55 * uorygl looks at the spec and hopes it's not anything too embarrassing.
17:15:35 <alise> Backtracking becoming large is not really too much of a problem.
17:15:39 <alise> Parsec and the like do it.
17:16:05 <alise> uorygl: It's not embarrassing, it's one of the prettiest esolangs!
17:16:25 <uorygl> Well, I meant the spec itself.
17:16:30 <uorygl> I know the language is awesome. :P
17:16:44 <alise> The spec is pretty poor, but eh.
17:17:08 -!- jcp has joined.
17:19:39 <alise> uorygl: If Redivider had data structures a self-interp would be quite easy.
17:19:43 <alise> Apart from regexps.
17:20:08 <uorygl> Strings aren't good enough for you, I see. :)
17:21:57 <alise> uorygl: Not for representing all that :)
17:22:54 <alise> uorygl: I'm impressed how clean and readable Redivider code is, when all it really is is regexps and branching.
17:23:11 <alise> Although I think functions are a wart; having separate () and [] seems to me a wart that could be fixed.
17:23:25 <uorygl> Yeah, I agree that that part's kind of ugly.
17:23:51 <alise> Especially since deciding between f(x,y) and f(x)[y] is often hard; the latter is ugly in appearance but the former is ugly to use.
17:23:58 <alise> f[x,y], if that could be made to work somehow, would be ideal.
17:24:01 <uorygl> The solution is simple: remove (). :P
17:24:42 <uorygl> Well, sure, say that f[a,b,c,...,x] is syntactic sugar for f(a,b,c,...)[x].
17:24:52 <alise> But the semantics are different. That only helps the syntax.
17:25:37 <uorygl> You could say that f(a,b,c,...,x) is syntactic sugar for the same if f has one less argument than was actually given.
17:27:38 <uorygl> Anyway, for backtracking, you could extend the language. Say that `this` means the same thing as this, except when this hard fails, in which case `this` soft fails instead.
17:28:04 <uorygl> So you have backtracking, but only when the programmer thinks it's a good idea.
17:28:42 <alise> That's just a kludge.
17:28:43 <alise> Make everything backtrack.
17:29:56 <uorygl> I suppose since it's an esoteric language, you could say that any of the three solutions will work. :P
17:30:39 <MizardX> prolog uses "!" to cut off back-tracking inside a predicate.
17:30:39 <uorygl> I guess taking a really long time is usually preferable to halting with an error, isn't it.
17:31:56 <alise> Smite, and smitten; that thing is then smote.
17:34:47 <uorygl> Here's my non-esoteric programming language design slogan: put the programmer in a maximum-sexurity prison and give them all the keys.
17:35:21 <MizardX> What else would be inside the prison?
17:36:45 <uorygl> The standard library and computing tools.
17:37:20 -!- FireFly has joined.
17:37:30 <MizardX> pick up adder. use adder on bill and bob.
17:37:39 <alise> throw adder at various non-adder objects.
17:37:50 <alise> remark that snakes have learned incredible arithmetical abilities since last seen.
18:22:23 <alise> fax: wanna specify what you meant by quoting for dependently typed / cas :/
18:22:58 <fax> it's obviou
18:22:59 <fax> it's obvious
18:29:27 -!- lament has joined.
18:34:34 -!- Sgeo_ has joined.
18:34:56 -!- Tritonio_GR has joined.
18:35:46 <alise> reals are [...] hard
18:37:08 -!- Sgeo has quit (Ping timeout: 240 seconds).
18:38:56 * Sgeo_ listens to someone chattering away in German :/
18:40:04 -!- tombom_ has joined.
18:40:55 -!- cheater3 has joined.
18:40:55 -!- cheater2 has quit (Read error: Connection reset by peer).
18:43:31 -!- tombom has quit (Ping timeout: 252 seconds).
18:44:25 -!- coppro has joined.
18:48:27 -!- MizardX has quit (Ping timeout: 260 seconds).
18:48:30 <hiato> Quick question: if a language were to apply a move-to-front transform on its instructions, would it be possible for it to be TC?
18:54:56 <alise> hmm any real-ish lib i write can't be self-contained, has to be integrated with the cas
18:55:04 <alise> because consider e.g. pi*SomeRandomF[pi/e]
18:57:25 <uorygl> Take Brainfuck. Add a move-to-front transform. Does this remove its TCness? If not, the answer to your question is yes.
19:00:07 <Sgeo_> uorygl, but it might remove BF's TCness, but another language specially equipped to deal with it might still be TC
19:00:16 <hiato> uorygl: heh, thanks, but I suspect it does
19:01:25 <alise> hiato: examine BCT.
19:01:26 <hiato> and, in fact, I can prove trivially that you can write a loop in BF-MTF that does do the same thig everytime, but as for hindering a a tag proof, ay, I'm not sure
19:01:28 <uorygl> I guess your question seems too vague to have a meaningful answer.
19:01:29 <alise> http://www.esolangs.org/wiki/BCT
19:01:33 <alise> it does a lot of bit jiggling too
19:03:23 <alise> you know what would be fun?
19:03:30 <hiato> uorygl: Ok, I understand. Perhaps the question should've been, does applying MTF to a procedural language necessarily hinder it's ability to loop with predictable effects?
19:03:37 <alise> a program that outputs semantic-descriptions of esolangs
19:03:51 <alise> like, say, of a certain form; with say paramaterisable "arg count" / "complexity" or something
19:04:12 <uorygl> hiato: I see MTF as something you apply to strings, not languages.
19:04:13 * Sgeo_ holds his breath and opens VStudio for the first time in a bit of a while
19:05:10 <alise> MTF is something you do to genders!
19:05:31 <hiato> uorygl: it's an encoding scheme, ad as such can be used to encode the meanings of any tokens, say, in a programming language
19:06:01 -!- alise has left (?).
19:06:03 -!- alise has joined.
19:06:44 <uorygl> Well, can't you simply say that the first step in parsing the language is to un-MTF it?
19:07:26 -!- Rugxulo has joined.
19:07:52 * alise wonders about such things.
19:07:56 <hiato> uorygl: sigh, ok. Again: does applying MTF to a procedural language necessarily hinder it's ability to loop with predictable effects?
19:08:06 <hiato> didnt't change that one
19:09:12 <hiato> does applying MTF, so as to encode instructions, to a procedural lang on a per token basis necessarily hinder it's ability to loop with predictable effects?
19:09:13 * uorygl attempts to type a g-with-caret and fails.
19:10:25 <uorygl> hiato: do you mean if each instruction is actually a number n referring to the nth most recently executed instruction?
19:21:38 <pikhq> Rugxulo: You fail at Unicode.
19:21:42 <Rugxulo> hmmm, it looked right when I cut and pasted it ... oh well
19:21:56 <Rugxulo> it'd be easier within ERC / Emacs, but Opera ain't as comfortable for me
19:26:56 * Sgeo_ writes a short C++ program on his Nexus One
19:28:27 * Sgeo_ should do all his C++ homework on it
19:30:29 <fizzie> Rugxulo: Did you happen to see what my static compiler made (because of a bug of it) out of your benchmark.bef?
19:31:12 <fizzie> Rugxulo: It basically turned it into what would be in C "foo: goto foo;".
19:31:16 <Rugxulo> did you hear that I wrote an B93 interpreter in Rexx?
19:31:32 <Rugxulo> so you can add it to your collection (and I'm still waiting for links to your Fortran and Forth ones) ;-)
19:31:44 <Rugxulo> infinite loop, yes, that sounds like what I saw in the logs
19:31:56 <fizzie> Rugxulo: I didn't have the "pop 0 from empty stack" logic in place yet, so the starting value for the "-= 100" loop was "undef", and therefore it removed the whole computation.
19:32:04 <fizzie> Ah, you logread thoroughly.
19:32:21 <Rugxulo> sometimes, not necessarily all the math stuff alise is fond of ;-)
19:32:26 <fizzie> Didn't notice the Rexx one; I did notice I had been highlighted re mooz's Algol-60 stuff.
19:32:39 <alise> Oh come on, nothing I do counts as real mathematics.
19:34:07 <Rugxulo> in fairness, my benchmark is pretty lame ... I'm sure there are better things to test than subtraction (mul or div, perhaps)
19:35:00 <fizzie> http://pastebin.com/WUY8YyjL -- there's that Forth one, though it's horribly lame; I'm ashamed of it. I seem to have done it seven years ago; I could do better now! (I hope.)
19:36:31 <Rugxulo> why be ashamed? as long as it works ... !
19:36:37 <fizzie> http://pastebin.com/h2eYkH2q -- Fortran; also quite bad, I presume.
19:36:42 <fizzie> I don't even know if these work right.
19:36:48 <fizzie> Away to make some dinnur now.
19:37:37 <fizzie> The big GOTO instruction in the Fortran one is funny, I think.
19:37:47 <Rugxulo> here's the Rexx one: http://www.pastebin.org/177657
19:38:43 * alise wonders what the Christus Rex line is there for
19:40:30 <alise> Dance! Everybody-- dance! O;
19:40:31 <Rugxulo> I wonder which Fortran variety this is (77?)
19:40:37 <alise> dance! Everybody-- dance!
19:40:57 <Rugxulo> BTW, fizzie ... thanks!! :-)
19:41:33 <fax> why isnt augur
19:41:41 <Rugxulo> what Forth is this for (or is it ANSI)?
19:41:51 <alise> fax: he's busy doing things, presumably
19:42:20 <alise> Rugxulo: American National Standard Forth != ANSI
19:42:27 <alise> it's an ISO standard though, roughly
19:42:39 <fizzie> Rugxulo: I think I've tested it with gforth, but I used the ANS Forth standard doc as a reference, so it might even be a bit portable.
19:42:47 <Rugxulo> ANS, ANSI, ISO, tomato, tomahtoe ... blah
19:42:57 <alise> ANSI is an organisation, ANS is just a name of a forth standard
19:42:58 <alise> HAHA, gandi.net added "no bullshit" to their header line
19:43:02 <alise> going all out I guess
19:45:23 <Rugxulo> bah, whatever crumbs of Forth I knew, I've forgotten
19:46:59 <fizzie> Hmmn, I seem to have done the same ANSI mistake there;
19:47:04 <fizzie> \ ANSI standard word READ-LINE defined here since pforth doesn't have it
19:47:16 <fizzie> Also it mentions a "pforth", apparently it was that instead of gforth.
19:47:47 <fizzie> I've been dabbling with gforth lately; wrote some socket bindings (the existing were silly), and a JSON parser in it.
19:49:27 <alise> linuxy guys: what would you put on a server that you don't want any crap on at all, so that it's administratable without dealing with a bunch of debian-style administration cruft?
19:49:32 <alise> i'm thinking arch, maybe
19:49:34 <Rugxulo> pforth? doesn't ring a bell, but then again there are a billion !
19:50:08 <alise> pikhq: I'd go Slackwise, but I kinda like... packages...
19:50:22 <pikhq> Slackware has packages. Just no... Dependencies...
19:50:23 <fizzie> Slack's what I was going to say too; at least it doesn't get in your way at all.
19:50:36 <alise> pikhq: That's not really... a package... :P
19:50:40 <fizzie> I think pForth's reasonably well-known; http://www.softsynth.com/pforth/
19:50:55 <alise> slax is nothing to do with servers afaik
19:50:55 <pikhq> Just no package management. :)
19:51:00 <Rugxulo> okay, I do recognize the webpage
19:51:00 <alise> pikhq: well, i'd like package management ;P
19:51:05 <alise> slackware is close mind
19:51:15 <alise> even slackware and arch have to be configured to get rid of their usual crap
19:51:15 <Rugxulo> but you know ... everybody has their own Forth, it seems
19:51:31 <Rugxulo> at least Slackware has 64-bit version now
19:51:50 -!- oerjan has joined.
19:51:51 <alise> all i want is some standard non-sucking shit like qmail and the like, no /etc/init.d rubbish, no really pointless programs installed
19:51:59 <alise> that's pretty much it
19:52:14 <alise> ... plus package management.
19:52:17 <pikhq> Closest you're going to get this side of BSD.
19:52:18 <alise> Besides, doesn't Slackware even use HAL now?
19:52:18 <oerjan> but but - pointless programming is all the rage!
19:52:28 <alise> I Forgot About That.
19:52:41 <alise> But I don't like ports...
19:52:43 <pikhq> Of course, you could just build Alisix.
19:53:03 <alise> You're right BSD would be nice, but I dislike ports.
19:53:07 <Rugxulo> FreeBSD seems popular on servers
19:53:21 <alise> Alisix would be nice but eh.
19:53:27 <alise> Save my efforts for the long-term things.
19:53:32 <alise> A Linux distro is not worth the effort.
19:53:52 <pikhq> Pity stali hasn't a release.
19:54:04 <pikhq> Would be nice for the occasional really simple system build.
19:54:14 <alise> I think sta.li may be a bit further than I'd want for a server: it has /no packages/, all systems have exactly the same set...
19:54:19 <alise> and there is no choice, only one of each type of app
19:54:27 <alise> and i've have to manually compile all the other stuff
19:54:49 <pikhq> You could just run Buildroot.
19:55:04 <pikhq> Which is uclibc+Busybox's distro builder thing.
19:55:10 <alise> I admit you have got me tempted by the BSDs... is there an alternative to ports?
19:55:48 <pikhq> Gentoo/FreeBSD is FreeBSD using Portage instead off Ports.
19:55:58 <alise> I'll pass. I think.
19:56:03 <alise> Binaries are sort of nice. I think.
19:56:10 <pikhq> (yes, it is a completely normal FreeBSD system)
19:56:34 <pikhq> I think it uses the Gentoo init script setup, and portage... And that's the sum total of differences.
19:56:35 <Mathnerd314> hmm... is the author of defcalc around anywhere?
19:56:44 <alise> Mathnerd314: the wiki
19:57:00 <alise> pikhq: the thing that gets me is that nobody does server editions any more
19:57:03 <pikhq> Oh yeah. Ships with bash by default, because many parts of Portage assume bash.
19:57:03 <Rugxulo> aliseBinaries are sort of nice. I think.
19:57:06 <alise> like, you get all this pointless desktop crap.
19:57:15 <alise> that you just don't need
19:57:18 <alise> HAL -- completely useless on a server
19:57:33 <pikhq> alise: Gentoo actually still has "server editions".
19:57:45 <alise> pkgsrc -- is that widely used?
19:58:02 <alise> pikhq: Mm... but I just can't bring myself to buy into the USE flags, 24-hour-install culture.
19:58:04 -!- hiato has quit (Quit: Weather).
19:58:11 <pikhq> That's what NetBSD *uses*.
19:58:20 <alise> Not if you use binary packages.
19:58:25 <alise> And NetBSD comes as binaries, not source.
19:58:41 <pikhq> pkgsrc is NetBSD's ports-alike.
19:58:42 <alise> Mathnerd314: yes; after all, he wrote the article.
19:58:45 -!- kar8nga has quit (Remote host closed the connection).
19:58:52 <pikhq> Which happens to work on a large number of Unixes.
19:59:19 <oerjan> <alise> the actual (\x. !magic x x) construction is due to oerjan; though it's "obvious" once you've seen it
19:59:25 -!- iamcal has quit (Ping timeout: 252 seconds).
19:59:32 <pikhq> And yes, it has binaries.
19:59:49 <oerjan> it's just the fixpoint theorem of lambda calculus, really. as is every other diagonalization, ever. well, more or less.
19:59:53 <pikhq> Oooh. And you can use it on Slackware.
20:00:35 <oerjan> so once you've seen a handful of them, it's obvious.
20:00:48 <pikhq> http://kuparinen.org/martti/comp/slackware/slackware.html
20:01:00 <pikhq> I do believe that actually produces Linux/NetBSD.
20:02:57 <Mathnerd314> alise: like, prove to me that he hasn't dropped off the face of the earth sometime in the past month
20:02:58 * Asztal hates pressing ctrl-shift-backspace by accident.
20:03:06 <Asztal> I do it worryingly often.
20:03:15 <alise> Mathnerd314: can't.
20:03:18 <alise> use the email-this-user feature
20:03:26 <alise> Asztal: disable that key
20:03:56 * Sgeo_ ALMOST implemented a search through a BST as though it was merely a tree
20:04:02 <fax> I can't solve my equstion :(
20:04:21 <Sgeo_> It's even more work to implement it that way
20:04:27 * oerjan isn't reading through all the logs today, just searching for his nick
20:04:27 <fax> oerjan, (x-2)(x-3)(x-7)=0
20:04:51 <fax> I tried to solve it using galois theory but I got the wrong answers
20:05:27 <oerjan> fax: if it's a field then a product being zero <=> one of the factors is zero
20:05:33 <oerjan> otherwise, what Mathnerd314 said
20:05:43 <fax> here is my attempt http://www.pasteit4me.com/413001
20:06:00 <fax> that is unreadible if you don't have the steps I am following
20:06:25 <fax> I don't know why it doesn't just work!
20:06:28 <alise> http://www.wolframalpha.com/input/?i=(x-2)(x-3)(x-7)=0
20:07:03 <oerjan> fax: oh you mean extracting that from the original polynomial? yeah i guess that's supposed to be galois theory. unfortunately i don't remember that part.
20:08:03 <oerjan> alise: i think fax was a _little_ unclear on what he was actually trying to do there.
20:08:37 <oerjan> wait, or is that she nowadays
20:08:47 * Rugxulo wonders if everybody here is studying mathematics at university
20:08:53 <fax> it's (1/3)(s1 + y + z)
20:10:11 <lament> i'm studying mathematics in #not-math
20:10:21 <oerjan> lament: that's not allowed!
20:10:55 <oerjan> unless it's the math of "not". in which case the above diagonalization would be relevant.
20:11:37 * Sgeo_ wonders if he's abusing continue and break
20:11:45 <fax> maybe I got s_2 wrong
20:12:09 <oerjan> breaking and continuing sounds like abuse in itself, i'd think
20:14:10 <uorygl> I'm studying mathematics at university!
20:14:29 <Sgeo_> http://codepad.org/brm0TsGn
20:15:03 <uorygl> I'm attempting to get good marks in mathematics at university!
20:15:11 * Sgeo_ sees how he could change things to not use continue
20:15:22 <Mathnerd314> Sgeo_: you could use a break in the first to make it more consistent
20:18:15 <uorygl> Use Haskell, where if you want continue and break, you have to write them yourself!
20:18:49 <pikhq> Pretty easy to do, though.
20:19:12 <pikhq> Just write a new monad, or do it in continuations.
20:19:26 <pikhq> Or even some Template Haskell.
20:19:34 <oerjan> Sgeo_: you could use else break; then the continue's would be unnecessary. fwiw.
20:19:35 <uorygl> Yeah, continuations make it possible.
20:19:45 <Mathnerd314> pikhq: he'd just do some pattern matching with recursion
20:19:48 <alise> CONTINUATIONS MAKE EVERYTHING POSSIBLE
20:20:02 * alise wonders why there's sprunge.us, taking pastebin input on HTTP; but no "nc paster.org"
20:20:05 <pikhq> Continuations are the ultimate in flow control, so yeah.
20:20:46 <Mathnerd314> Sgeo_: why can't you just return a bool instead of passing in a reference?
20:20:48 * alise is considering registering uti.li for a bunch of little-utilities
20:21:03 <alise> $ nc uti.li (whatever the lowest unused port number is) <file
20:21:04 <Sgeo_> Mathnerd314, because this is what the professor wants, I think
20:21:09 <alise> $ somecmd | nc uti.li portn
20:21:16 <pikhq> Still, Sprunge is pretty nice when you stick the small curl line in a script in ~/local/bin/.
20:21:24 <alise> Yes, but it's still highly unoptimal!
20:21:32 <alise> nc is perfect because the API is there in EVERY language, more or less.
20:21:39 <alise> If it can open a socket, you can do a paste in a few lines.
20:21:53 <pikhq> nc is perfect because it's the simplest damned networking scheme.
20:21:59 <pikhq> "Send bits over line"
20:22:00 <Sgeo_> Mathnerd314, data structures
20:22:06 <alise> s = opensock("uti.li", portn); writesock(s, "...paste stuff..."); readsockline(s, &r); closesock(s);
20:22:13 <alise> /* r is now url to paste */
20:22:27 <alise> The only problem with uti.li is that I keep typoing it!
20:22:30 <alise> It's hard to type...
20:22:36 <alise> 2/TCP,UDP Management Utility Official
20:22:40 <alise> Who cares about that?
20:22:42 <alise> Does anything actually bind it?
20:23:13 <alise> So does anything bind 2/tcp?
20:23:26 <alise> If not, well, `alias paste=nc uti.li 2` now!
20:23:42 <pikhq> Nothing well-known.
20:23:58 <alise> Hey, I could put one of the oldschool multiuser unix games onto another port.
20:24:00 <pikhq> It's reserved and completely and utterly unused.
20:24:12 <pikhq> 4 is officially unassigned.
20:24:12 <alise> Have some expression evaluators/etc. somewhere over HTTP...
20:24:21 <alise> Host some useful bots...
20:24:25 <alise> maybe some sort of wiki thing
20:24:29 <oerjan> pikhq: that's what they _want_ you to think
20:24:31 <alise> Could be a nice little domain.
20:25:16 <pikhq> A handful of the more useful daemons...
20:25:44 <pikhq> Heck, stick some of the retarded throwaway ones there too.
20:25:45 <alise> Some CAS interface thing, maybe.
20:25:50 <alise> Because Wolfram Alpha is a bit naff.
20:25:55 <pikhq> Echo, QotD, character generator...
20:26:06 <alise> AliseCAS: Because Wolfram Alpha Is A Bit Naff(TM).
20:26:17 <HackEgo> * Considered to be poor taste; Bad; tasteless; Something that is poorly thought out, doesnt really work, or is otherwise not very good; Heterosexual \ [20]en.wiktionary.org/wiki/naff \ * An English surname
20:26:17 <alise> HACKEGO CANNOT HELP YOU NOW
20:26:32 <alise> Wolfram Alpha is a bit heterosexual.
20:27:15 <alise> isn't wolfram gay?
20:27:44 <oerjan> who could stand to live with him, man or woman?
20:27:47 <alise> you know, wolfram alpha would be pretty neat if it was more strict in what it accepted ironically
20:28:06 <alise> masturbation has never been so incestuous
20:28:16 <oerjan> alise: i think that might end in an explosion
20:28:24 <alise> yes. BUT OF WHAT KIND...
20:28:32 <oerjan> involving gamma rays, perhaps
20:29:16 <alise> pikhq: Clearly it should expose Hunt the Wumpus on some port.
20:29:22 <Ilari> Grr... Apt-get nowadays first tries IPv4 and then falls back to IPv6. :-/
20:29:38 <alise> Which suggests a more typeable domain name along the lines of "nick-nacks"; it'd be a little repository of mostly-fluff.
20:29:50 <fizzie> Ilari: They've seen too many brokenly configured IPv6 systems, I guess.
20:30:20 <fizzie> And meh; I got an apparently-working fungot (at least the ^bf command worked when I pointed it to a listening nc) as a x86-64 executable out of that compiler of mine, but if I compile it as a 32-bit executable (the real fungot doesn't run on x86-64 hardware) it segfaults on startup.
20:30:20 <fungot> fizzie: you can break before the call to throw-failure." page 7, under heading 5, evaluation. scheme, or doing a side effect
20:30:45 <fizzie> fungot: I appreciate you trying to help, but I'm not sure that's quite it.
20:30:46 <fungot> fizzie: and too, and these are people who are brave enough to do it
20:31:05 <alise> Apparently n.kn is available.
20:31:06 <Ilari> This machine in question has broken IPv4 connectivity (but IPv6 connectivity works)... :-))
20:31:14 <alise> Saint Kitts and Nevis!!!!!
20:31:16 <Rugxulo> doh, silly typo in the Rexx B93 thingy: "do ; " (shouldn't have that semicolon)
20:31:38 <fax> I solved it!
20:31:55 <fax> you guys were right, the roots are 2,3,7
20:32:17 <oerjan> fax: erm, you _said_ it in the beginning, sheesh
20:32:27 <fax> yes but I solved it using a different method
20:32:55 <alise> I cannot believe n.kn is available! I wonder how much it costs
20:33:13 <fax> http://www.pasteit4me.com/414001
20:33:17 <alise> Reserved/Not Available
20:33:20 <fax> what's n.kn?
20:33:25 <alise> fax: a domain name
20:33:50 <alise> I just wish uti.li was easier to type; it's really short and sounds nice + is memorable.
20:33:57 <alise> But typing it, at least on QWERTY, is like a tongue-twister for your hands.
20:34:03 <alise> uti - stumble - ,. - li
20:34:23 <alise> because your fingers have to bend terribhorribly
20:34:24 <fizzie> uti.li/ties, the best place to shop for ties.
20:35:45 <Rugxulo> use.ful ... easier to type
20:35:54 <alise> .ful doesn't exist though.
20:36:01 <alise> THAT IS THE ONE FLAW WITH YOUR PLAN
20:36:56 <alise> Hmm, it'd be really nice to have a bot in here hooked up to a competent CAS.
20:37:24 <alise> We get into the more... shall we say, abstract side of computing ... and each of us opening a Haskell buffer and scribbling away to get an approximation every time we need a calculation is a bit sucky.
20:37:25 <fax> I have parigp installed
20:38:25 <alise> Of course the issue with hooking a bot up to a CAS is that most of the half-decent ones -- namely Mathematica and Maple -- cost.
20:38:46 <alise> And I'm not sure how licensing would go if other people are on the server.
20:38:51 <fax> I want to write a (very basic) CAS
20:38:53 <alise> (And I'm not sure pirating it and then exposing it is such a grand idea.)
20:38:55 <alise> (Axiom is alright, I gather, and Maxima is... you know... well, it works sometimes...)
20:39:03 <fax> just something that will do basic calculations that I don't want to do myself
20:39:12 <alise> fax: I want to write a (very advanced) CAS
20:39:35 <alise> with the important property of "not sucking"; one missing from all major CASs
20:39:38 <alise> especially mathematica.
20:39:41 <alise> it lacks not sucking in droves.
20:39:56 <alise> (this is equivalent to sucking; i guess i do accept ~~p->p after all)
20:40:42 <fax> of course you accept it for decidible predicated
20:40:51 <oerjan> alise: that's a hasty generalization. i think you just default to things sucking unless proved otherwise.
20:41:05 <alise> oerjan: have you ever used mathematica?! :-)
20:41:21 <alise> Error: no help found for topic "me".
20:41:25 <fax> I have a math probluem
20:41:28 <fizzie> Mhm. The compiled bot connected to freenode okay, and it answers to "bf" and "ul" commands in privmsg just fine, but it doesn't seem to accept my authority; the "raw" command doesn't do anything.
20:41:28 <alise> oerjan: ah, you lucky bastard
20:41:34 <alise> it taunts you in, it shows pretty pictures
20:41:36 <alise> then it lags, it crunches
20:41:58 <alise> fizzie: This is the final stage of sentientosity...
20:42:02 <alise> Nice knowing you! FOOOOOOOOOOM
20:42:07 <alise> My these paperclips are ni
20:42:30 -!- Rugxulo has quit (Quit: Rugxulo).
20:42:42 <oerjan> the paperclips who say ni
20:43:03 <alise> fax: the problem with writing a good CAS is that you end up having to write most everything else with it
20:43:14 <Mathnerd314> Sgeo_: my proposal: http://codepad.org/0BathdOv
20:43:26 <oerjan> alise: it's not so bad, in fact the universe turned into paperclips _ages_ ago.
20:43:48 <alise> you need to write a good typesetting system, so you can integrate it perfectly with your language; you need to write a good editor, to write stuff in; you need to write a good document editor (it has to be the same as the former two things) suitable for writing and publishing entire documents in with mathematical code interspersed
20:43:51 <oerjan> it's just the paperclips organized to make a simulation.
20:43:52 <Mathnerd314> Sgeo_: should be more useful than yours for the rest
20:43:55 <Sgeo_> Mathnerd314, that looks.. unhelpful
20:44:07 <alise> implementing a good cas is basically implementing the entirety of mathematical discipline
20:44:16 <alise> oerjan: wow, you turned into wolfram!
20:44:57 <alise> hmm, I'd like to make a Connection Machine-inspired OS, where the whole thing is N-in-the-range-of-billions entirely-parallel machines that operate on one bit at a time, with communication pathways between them
20:45:06 <alise> so everything becomes a task in weaving communication together...
20:46:01 <alise> http://www.esolangs.org/forum/ 1 to 5 are spam; all the same question/response format advertising some product
20:46:49 <oerjan> alise: i mentioned that already.
20:46:55 <fax> I want a cool CAS
20:47:14 <fax> it's basically a calculator that has better numbers than just integers
20:47:19 <fax> and floats
20:47:28 <alise> mathematica is so shit.
20:47:29 <oerjan> assuming there are no new ones, rss says no
20:47:49 <fax> alise do you think that handwriting recognition could really work?
20:48:09 <alise> and I don't even know whether it'd be faster than typing
20:48:13 <alise> just have to try eh?
20:48:22 <alise> mathematicians like writing on paper and it usually isn't /too/ messy, so...
20:48:59 <alise> fax: also imo: the important symbolic-computation part of a CAS is basically a partial evaluator that stores infinite-precision values as free variables, accompanied with special-cases in every relevant function over these free variables
20:49:13 <alise> it's just having an atomic symbol behave according to certain rules, then calling it a real
20:49:22 <fax> I don't think I agree with that
20:49:26 <alise> plus some approximation function that takes an expression and approximates it numerically to arbitrary precision
20:49:27 <fax> what you are talking about sounds like just one approach
20:49:32 <fax> and I have a slightly different one in mind
20:49:33 <alise> fax: well, CAS = /symbolic/
20:49:41 <alise> if you just mean a computer program that does algebra, well
20:49:46 <alise> yes that technically satisfies (expand CAS)
20:49:49 <fax> well yeah as a starting point
20:49:50 <alise> but you know how acronyms and names go
20:50:03 <alise> I wouldn't call anything that wasn't symbolic a CAS
20:50:16 <alise> ...which is why i'm thinking a lot about how to unify symbolic term rewriting and dependently-typed functional languages
20:50:19 <Mathnerd314> alise: why is mathematica shit? I can only find 2 results on google for that
20:51:09 <alise> Mathnerd314: It entices you in with pretty pictures and the like, but -- and ais523, winner of the Wolfram Prize, sufferer under Mathematica can attest to this -- one, it's coded shittily. It's basically unoptimised tree rewriting. The compositions of the C primitives that Wolfram Research expect/want you to do are blazing. Change one tiny little thing? Glacial.
20:51:18 <alise> I mean glacial: Mathematica is either insanely fast, or unbelievably slow.
20:51:33 <fax> without knowing t1,t2,t3
20:51:44 <alise> Also, for an advanced mathematical CAS a large portion of its function library is not-so-mathematical things like image processing and the like.
20:51:51 <alise> Also, the GUI is laggy on a lot of machines.
20:51:58 <alise> On Linux it's so ridiculously laggy that I find it unusable.
20:52:05 <fax> primarily I just want to calculate answers
20:52:06 <alise> Finally, it costs far too much.
20:52:12 <fax> a useable interface can come later
20:53:06 <alise> Mathnerd314: conclusion: Mathematica sucks.
20:53:10 <alise> From what I've heard Maple is alright.
20:54:28 <alise> Big is not such an issue.
20:54:45 <alise> But very slow, creates hype and then fails to live up to it, and expensive are the main things.
20:55:14 <oerjan> it creates so much hype it slows down the computations!
20:55:15 <fax> basically mathematica
20:55:22 <fax> is better than lisp
20:55:43 <Mathnerd314> well, expensive -> big, so that makes sense
20:57:25 <fax> hey CAS users
20:57:35 <fax> I have a challenge for you (i.e. solve this problem for me)
20:58:30 <alise> well I have maxima installed right now... not that that will do any good
20:58:48 <fax> oh you guys will actually try it?
20:59:05 <fax> okay let w = e^(2ipi/3) so that w is a primitive cube root of unity,
20:59:34 <fax> let y = t_1 + w*t_2 + w^2*t_3 and z = t_1 + w^3*t_2 + w*t_3
21:00:00 <alise> t_n are unknown yeah?
21:00:06 <fax> yes they are just some variables
21:00:17 <fax> now I have a theorem that says y^3 + z^3 and y^3 * z^3 are both in Q.
21:00:48 <fax> Extra informaton:
21:00:55 <alise> fax: am i meant to encode this theorem?
21:01:09 <fax> no just calculate the values of y^3 + z^3 and y^3 * z^3
21:01:29 <alise> how? you have free variables
21:01:54 <fax> t_1,t_2,t_3 are roots of t^3 - s1 t^2 + s2 t - s3 = 0, where s1 = t1 + t2 + t3, s2 + t1*t2 + t1*t3 + t2*t3, s3 = t1*t2*t3
21:02:17 <alise> wait t1 = t_1 here?
21:02:18 <fax> 1 + w + w^3 = 0 or w + w^2 = -1
21:02:21 <fax> oops, yeah
21:02:27 <fax> didn't mean to switch notations
21:02:41 <alise> well i will try but i don't think maxima is up to this
21:02:59 <alise> well there's find_root... singular...
21:03:25 <alise> hmm i wonder could i just use solve to do this?
21:04:05 <alise> s1 = t1 + t2 + t3, s2 + t1*t2 +
21:04:06 <alise> that should be = right
21:05:16 <alise> (%i13) allroots(t^3 - s1 * t^2 + s2 * t - s3 = 0);
21:05:16 <alise> `allroots': polynomial not univariate: (s3, s2, t, s1)
21:05:16 <alise> -- an error. To debug this try debugmode(true);
21:05:43 <oerjan> alise: the roots are given by his s1 =
21:05:46 <oerjan> t1 + t2 + t3, s2 + t1*t2 + t1*t3 + t2*t3, s3 = t1*t2*t3 equations
21:05:50 <fax> well start by multiglying out y^3 + z^3
21:05:56 <fax> and them simplify it down to a rational
21:06:12 <alise> oerjan: actually i just have no idea how to tell maxima all this
21:06:17 <alise> so i give up, pretty much
21:06:48 <fax> urgh you haven't even tried
21:06:53 <fax> there is no root finidng involved
21:07:04 <fax> just multiply out y^3 + z^3
21:07:05 <alise> but a cas sucks if it can't work it all out for you.
21:07:07 <fax> you will get something huge
21:08:00 <alise> Plus Maxima is so hard to use with its ugly output.
21:08:21 <Mathnerd314> fax: got something huge: http://www.wolframalpha.com/input/?i=%28t_1+%2B+w*t_2+%2B+w^2*t_3%29^3+%2B+%28t_1+%2B+w^3*t_2+%2B+w*t_3%29^3+with+w+%3D+e^%282+i+pi+%2F+3%29
21:08:23 <fax> if your computers can't do this I will have to figure it out myself..
21:08:41 <alise> see, just outsource it to web 3.0
21:08:52 <alise> even did the subscript. clever wolfram alpha
21:09:30 <fax> Mathnerd314: well there is a 3 in there which should be a 2
21:11:51 <Mathnerd314> http://www.wolframalpha.com/input/?i=%28t_1+%2B+w*t_2+%2B+w^2*t_3%29^3+*+%28t_1+%2B+w^2*t_2+%2B+w*t_3%29^3+with+w+%3D+e^%282+i+pi+%2F+3%29
21:12:09 <Mathnerd314> http://www.wolframalpha.com/input/?i=%28t_1+%2B+w*t_2+%2B+w^2*t_3%29^3+%2B+%28t_1+%2B+w^2*t_2+%2B+w*t_3%29^3+with+w+%3D+e^%282+i+pi+%2F+3%29
21:16:40 <fax> that "Alternate form assuming t1, t2 and t3 are real:" looks good,I am trying to rewrite it in terms of s1,s2,s3
21:16:50 <fax> 2 s1 - 3 ((t_2^2 + t_3^2) t_1 + (t_1^2 + t_3^2) t_2 + (t_1 + t_2^2) t_3) + 12 s3
21:16:57 <fax> something like that, I can't see what to do with the middle bit
21:18:09 <fax> actually I just notice that I got this wrong, that s1 part is a mistake
21:19:49 <fax> parts of that 12 may want to be shared out
21:19:55 <fax> there's something odd about the '2' tohugh
21:20:11 <fax> infact I would say it's the oddest prime
21:21:51 -!- cal153 has joined.
21:25:16 <Mathnerd314> http://www.wolframalpha.com/input/?i=factor+2+x^3+-+3+y+x^2-3+z+x^2-3+y^2+x-3+z^2+x%2B12+y+z+x%2B2+y^3%2B2+z^3-3+y+z^2-3+y^2+z
21:27:53 <fax> right... now we can work on y^3 z^3 :P
21:28:01 <fax> unless you are fed up of this
21:28:27 <fax> once I have this, I should be able to write down an solution for the general cubic
21:29:45 <fax> do you know Steven pinker?
21:30:00 <fax> I jus twatched this, http://fora.tv/2008/09/12/Steven_Pinker_The_Stuff_of_Thought it's pretty cool (linguistics)
21:30:12 <fax> very basic I guess .. compared to what you do though
21:33:29 <augur> i dont know if ive watched that one yet
21:33:37 <augur> but the corresponding book has some interesting chapters
21:33:41 <augur> and raises some interesting questions
21:33:52 <augur> anyway, i have to be out of here
21:35:23 <fax> I should go to bed soon
21:35:31 <Mathnerd314> hmmm... product is too long to enter into the textbox
21:35:42 <fax> Mathnerd314 that keeps happening to me with wolfram :[
21:38:34 -!- augur has quit (Ping timeout: 264 seconds).
21:38:35 -!- nooga has joined.
21:39:02 <alise> I'd offer to use Mathematica, but it's not on this machine.
21:39:09 <alise> Try their web API.
21:39:16 <alise> I am sure it will accept more.
21:40:14 -!- Alex3012_ has quit (Ping timeout: 265 seconds).
21:40:21 <Mathnerd314> I actually got visited at a summer camp by wolfram :-)
21:40:29 <alise> That must have been horrible.
21:40:45 <alise> Wait, how did he fit his ego in the room and still have space left for you?
21:41:10 <nooga> wolfram is the god of nerds
21:41:29 <alise> nooga: I resent that
21:41:32 <alise> he's no god of mine
21:41:45 -!- funcot has joined.
21:41:48 <fizzie> ?ul (hello, I am a real executable)S
21:41:48 <funcot> hello, I am a real executable
21:41:48 <alise> Mathnerd314: Like a TARDIS!
21:41:58 <alise> fizzie: What about the whole, you know, self-modifying malarkey?
21:42:41 <nooga> alise: you're not a nerd
21:42:41 <fizzie> Well, it doesn't. I have (will have, hopefully, etc.) jitfunge for those use-cases.
21:43:04 <alise> fizzie: So fungot doesn't really use g or p at all?
21:43:05 <fungot> alise: the outer macro is interpreting the code ( follow the link
21:43:12 <alise> Or is it just modifying code that doesn't work?
21:43:13 <fax> t_1^6-3 t_2 t_1^5-3 t_3 t_1^5+6 t_2^2 t_1^4+6 t_3^2 t_1^4+3 t_2 t_3 t_1^4-7 t_2^3 t_1^3-7 t_3^3 t_1^3-3 t_2 t_3^2 t_1^3-3 t_2^2 t_3 t_1^3+6 t_2^4 t_1^2+6 t_3^4 t_1^2-3 t_2 t_3^3 t_1^2+9 t_2^2 t_3^2 t_1^2-3 t_2^3 t_3 t_1^2-3 t_2^5 t_1-3 t_3^5 t_1+3 t_2 t_3^4 t_1-3 t_2^2 t_3^3 t_1-3 t_2^3 t_3^2 t_1+3 t_2^4 t_3 t_1+t_2^6+t_3^6-3 t_2 t_3^5+6 t_2^2 t_3^4-7 t_2^3 t_3^3+6 t_2^4 t_3^2-3 t_2^5 t_3
21:43:27 <nooga> looks like i'm on acid
21:43:31 -!- Azstal has joined.
21:43:42 <fizzie> alise: There's a funge-space, sure, it's just data-only. I use it a lot for data-storage, but not for modifying anything that will be executed.
21:44:06 -!- Asztal has quit (Ping timeout: 265 seconds).
21:44:10 -!- Azstal has changed nick to Asztal.
21:44:57 <fizzie> In fact the executable is ~235 kilobytes, because there's a 592*80*4 byte static array containing the cells defined in the program source, in case it tries to 'g' those values.
21:46:45 <fizzie> I'm sure there are still lots of bugs, but it's a nice feeling that it got on IRC with so little work. The babbler part probably won't work; it's the most complicated piece of the bot, after all.
21:47:25 <fizzie> There's no data files there, or styles.
21:47:42 <fizzie> I should probably try funcot with the real fungot's state-files and others.
21:47:43 <fungot> fizzie: what about him? :) everyone seems to have a nice day solely because of the
21:47:53 -!- funcot has quit (Remote host closed the connection).
21:48:59 <pikhq> fizzie: How goes jitfunge, anyways?
21:49:53 <fizzie> pikhq: I've been sidetracked with this other compiler a bit.
21:50:31 <pikhq> I presume you're using LLVM for both?
21:50:59 <fizzie> Yes, but a bit differently. I didn't really feel like doing C++ for this static compiler, so I just generate LLVM .ll assembly sources.
21:51:13 <coppro> alise: RUN THE SKY IS FALLING
21:51:27 <alise> coppro: AAAAAAAAAAAAAAAAAAAAAAAAAAAAH
21:51:37 <alise> Mathnerd314: sage is kinda crappy
21:51:50 <alise> it's just a half-baked python interface to a bunch of half-decent tools
21:51:51 <pikhq> So, not the same code generation. :(
21:52:01 <Mathnerd314> alise: but it has a polynomial factorer :-)
21:52:17 <coppro> alpha removed almost all incentive to use Sage
21:52:24 <fizzie> I can probably reuse fingerprint implementations and some other bits, but they're reasonably independent projects. If jitfunge code would have been cleaner, maybe I could have shared more code.
21:55:12 <Mathnerd314> fax: (x^2 - x y + y^2 - x z - y z + z^2)^3
21:56:14 <fax> Mathnerd, http://hpaste.org/fastcgi/hpaste.fcgi/view?id=25045
21:56:18 <alise> alpha is just so unreliable, that's the issue
21:56:30 <alise> which is why we need alyskas
21:56:30 <alise> (mangled alisecas)
21:56:42 <fax> this is great the cubic is solved!
21:57:48 <fax> Mathnerd314, one thing which is missing is radical expressions for cube roots of unity.. but that will be another time
21:58:10 -!- nooga has quit (Ping timeout: 260 seconds).
21:58:17 <alise> just install few digits
21:59:24 -!- Alex3012_ has joined.
21:59:44 -!- kar8nga has joined.
21:59:53 -!- sebbu has quit (Quit: Quitte).
22:00:09 -!- sebbu has joined.
22:00:46 <fax> alise, another thing my algebra system will have is radical numbers and algebraic numbers
22:00:58 <Sgeo_> There's no easy way to download from Magnatune without paying anymore :(
22:01:07 <Sgeo_> I'm going to need to write an app for that
22:01:20 <alise> fax: shouldn't you just do x^1/n
22:01:28 <alise> Sgeo_: there's an app for that
22:02:16 <alise> Sgeo_: Only on iPhone.
22:02:39 <alise> There's an app for that.
22:02:44 <alise> ...er, no, wait. It was rejected.
22:03:11 <Sgeo_> I take it that you were joking about there being an app for downloading from Magnatune for iPhone?
22:03:38 <fax> alise aren't you going to bed soon ?
22:04:03 -!- oerjan has quit (Quit: Later).
22:05:41 -!- fax has quit (Quit: Lost terminal).
22:08:08 <alise> oerjan lament fizzie?
22:08:19 <alise> lament never uses ops except as part of his regular exercise routine (trolling)
22:08:29 <alise> oerjan hasn't used ops one iirc
22:08:39 <alise> the last time fizzie used ops he was so nervous he almost shattered from the cruelty of what he was doing
22:08:49 <alise> this place approximates anarchy pretty closely over time
22:09:07 <alise> so it's either an argument for anarchy working or not working depending on your perspective :D
22:10:09 <alise> Alγsκαs is pretty... albeit meaningless
22:11:17 <coppro> Anyone know of a LaTeX package to make a table where the head column stretches out diagonally to save horizontal space?
22:11:25 <coppro> like what you might see in a brochure
22:12:20 -!- Phantom_Hoover has joined.
22:15:12 <alise> Phantom_Hoover: you fail
22:15:19 <alise> turing-complete is a perfectly well-defined concept
22:15:39 <alise> so? BaronW could have -- if Dwarf Fortress allowed -- presented a finite construction allowing turing-complete computation
22:15:42 <alise> just like a BF interpreter does
22:15:46 <alise> so it's a valid thing to say :P
22:16:29 <alise> Yes, well, that is the issue.
22:17:29 <Phantom_Hoover> I have to say that his division routine seems long-winded.
22:17:41 <alise> http://df.magmawiki.com/index.php/Dwarf_Fortress_Wiki:Magmawiki I wonder what the point of this i.
22:18:31 <coppro> Phantom_Hoover: my brain is Turing-complete
22:19:17 <alise> Why replace MW with something about identical to it?
22:19:21 <alise> coppro: universe is finite
22:19:31 <alise> also, like Phantom_Hoover said, you are finite
22:19:32 <coppro> universe is not finite
22:19:36 <alise> coppro: physics disagrees.
22:20:14 <alise> All the evidence and our best-accepted theories point to it being finite...so...
22:20:16 <Phantom_Hoover> AFAIK it's unknown whether it's finite and unbounded or not.
22:20:42 <coppro> it is technically finite, but because it's expanding faster than I can travel, it is effectively infinite
22:20:43 <alise> coppro: But besides, Phantom_Hoover is right; you are not immortal.
22:20:51 <coppro> I will make myself immortal!
22:20:55 <alise> Also, even if you were, the universe is not.
22:21:12 <alise> So you do, in the end, only have the option of halting.
22:21:32 <alise> Mind, that doesn't make /me/ give up hopes that the singularity will sort out the pesky problem of entropy.
22:21:40 <coppro> entropy is such a misapplied concept :(
22:21:41 <alise> Hey, it's just a statistical law...
22:22:03 <alise> I'm imagining some godlike force of matter keeping the universe prised open like a toothpick when it's due to big-crunch
22:22:12 <alise> fuck yeah, take that, universe
22:22:50 <Phantom_Hoover> Even so, coppro would be in no state to be doing algorithms.
22:22:57 <coppro> and on a universal scale, the nature of entropy is not well-understood
22:23:21 -!- kar8nga has quit (Read error: Connection reset by peer).
22:23:42 <alise> I mean when we're post-Singularity, provably immortal unless something goes really, really badly wrong, and Ω tells us it's figured out how to stop the universe from ending...
22:23:56 <alise> Then I'll accept that you can act as a Turing machine, given sufficient patience.
22:24:01 <alise> Although you would be an /unreliable/ Turing machine.
22:24:48 <alise> As well as the sheer likelihood of human error after so much time.
22:25:07 <alise> Unless Ω upgraded our minds, too.
22:25:15 <alise> Then yes, you'd be able to act as a Turing machine.
22:25:15 <Mathnerd314> that story has been going around: http://www.multivax.com/last_question.html
22:25:50 <alise> Ω = superintelligence
22:26:12 <alise> Mathnerd314: It's been going around forever.
22:27:29 <alise> Mathnerd314: The story? As in literally?
22:27:35 <alise> Ask a better question.
22:28:37 <alise> Mathnerd314: I doubt there is a sort of metareality into which AC can somehow slip into when the universe ends.
22:28:41 <alise> So the end is very metaphorical.
22:28:57 <alise> But an intelligent hypercomputer is of course possible. Reversing entropy, who knows?
22:29:47 <Mathnerd314> well, it definitely has a "punchline" at the end
22:30:58 <Phantom_Hoover> I'm now severely regretting getting a low-end laptop and accidentally squishing my Windows partition to a sliver more than it needs...
22:31:16 <alise> "Like all economics professors, I have no soul, and so am unable to sympathize with your loss."
22:31:44 -!- Phantom_Hoover has quit (Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100401213457]).
22:32:41 <alise> "You are the husband of a wonderful and beautiful lady whom you love very much - and whom you just found in bed with another man. In a rage, you take your hardcover copy of Introduction To Game Theory and knock him over the head with it, killing him instantly (it's a pretty big book)."
22:32:43 <alise> This post is awesome
22:33:31 <alise> "You are the dictator of East Examplestan, a banana republic subsisting off its main import, high quality hypothetical scenarios."
22:34:08 <alise> The post is http://lesswrong.com/lw/24o/eight_short_studies_on_excuses/
22:35:29 <alise> "A leader of your state's atheist community breaks into your office via the ventilation systems"
22:36:48 <alise> "The next day, the atheist leader comes in again. This time, he is wearing a false mustache and sombrero."
22:36:51 <alise> pikhq: http://lesswrong.com/lw/24o/eight_short_studies_on_excuses/
22:43:23 -!- SimonRC has quit (Ping timeout: 246 seconds).
22:45:58 -!- Tritonio_GR has quit (Ping timeout: 268 seconds).
22:46:38 -!- tombom_ has quit (Quit: Leaving).
22:52:18 -!- Azstal has joined.
22:52:39 -!- Asztal has quit (Ping timeout: 276 seconds).
22:52:47 -!- Azstal has changed nick to Asztal.
23:00:43 -!- FireFly has quit (Quit: Hey! Listen!).
23:00:58 -!- Alex3012_ has quit (Read error: Connection reset by peer).
23:03:08 -!- Alex3012_ has joined.
23:16:02 -!- BeholdMyGlory has quit (Remote host closed the connection).
23:28:34 -!- nooga has joined.
23:53:12 -!- sshc has quit (Read error: Connection reset by peer).