00:03:01 -!- MissPiggy has quit (Quit: Lost terminal).
00:22:20 -!- cpressey has left (?).
01:11:00 -!- augur has joined.
01:20:28 -!- augur has quit (Ping timeout: 245 seconds).
01:22:37 -!- augur has joined.
01:26:57 -!- augur has quit (Ping timeout: 256 seconds).
01:28:39 -!- augur has joined.
01:40:53 -!- augur has quit (Ping timeout: 245 seconds).
01:42:25 -!- augur has joined.
01:49:38 -!- augur has quit (Ping timeout: 245 seconds).
01:50:23 -!- coppro has joined.
01:53:54 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
02:08:03 -!- augur has joined.
02:25:28 -!- augur has quit (Ping timeout: 245 seconds).
03:22:11 -!- gm|lap has joined.
03:49:54 -!- bsmntbombdood_ has joined.
03:51:53 -!- bsmntbombdood has quit (Read error: Operation timed out).
03:55:09 -!- oerjan has quit (Quit: Good night).
03:56:07 -!- adu has joined.
04:09:53 -!- Gracenotes has joined.
04:16:17 -!- bsmntbombdood__ has joined.
04:18:48 -!- bsmntbombdood_ has quit (Ping timeout: 245 seconds).
04:35:03 -!- Sgeo_ has changed nick to Sgeo.
04:40:12 -!- augur has joined.
04:55:34 -!- bsmntbombdood__ has changed nick to bsmntbombdood.
05:00:13 -!- augur has quit (Ping timeout: 265 seconds).
05:03:33 -!- Wareya has quit (Ping timeout: 252 seconds).
05:06:37 -!- zzo38 has joined.
05:07:39 <zzo38> I see the note about INTERCAL in the topic message. But what I know, is, P.D.Q. Bach is the INTERCAL of Baroque music. But it doesn't help much unless you know about both INTERCAL and about P.D.Q. Bach.
05:19:56 <zzo38> I try to figure out how to add natural numbers represented as sets
05:21:38 <zzo38> And I am still also trying to figure out how to write a program in Hyper Set Language that produces a set of all non-halting programs
05:34:58 -!- coppro has quit (Ping timeout: 264 seconds).
05:38:51 -!- augur has joined.
05:44:12 <zzo38> I have looking up things about set theory on Wikipedia, today.
05:44:51 -!- kwertii_ has joined.
05:47:23 -!- kwertii has quit (Ping timeout: 246 seconds).
05:47:23 -!- kwertii_ has changed nick to kwertii.
05:48:02 <zzo38> I think the old Russell's paradox set in Hyper Set Language was wrong, I fixed it now, hopefully this way is actually Russell's paradox for real, this time: Russell={[0.#;1.0]/(element_of/(#.#))}\*;
05:48:37 <zzo38> Where element_of={[<#]&>#;not/(not/@)};
05:48:52 <zzo38> And not=({0}!(0.0))|(0.1);
05:53:56 -!- coppro has joined.
06:03:06 <augur> zzo38: you should help work on the formal grammars pages. :D
06:19:37 <zzo38> What formal grammars pages did you mean?
06:20:43 <zzo38> Also, I looked at the article about fuzzy sets, and now it allowed me to think of something else, which is, quantum fuzzy sets (the probabilities can be entangled).
06:22:21 <augur> http://toolserver.org/~soxred93/pages/index.php?name=Augur&namespace=0&redirects=noredirects
06:22:55 <augur> those are the ones i created recently, i also modified the TAG, CCG, and Indexed Grammar pages
06:23:08 <augur> you should contribute some stuff regarding some other formalisms
06:24:41 <zzo38> Which ones should I contribute?
06:24:52 <augur> anything you want!
06:24:56 <augur> just not controlled grammars
06:25:00 <augur> since im working on that page
06:25:24 <zzo38> Unfortunately I don't know enough about formal grammars to write a Wikipedia article
06:29:15 <zzo38> Ah! PHP works now on Hackiki.
06:30:22 <augur> thats ok, zzo38, its a opportunity to LEARN about them. :D
06:30:54 <zzo38> augur: Yes, I can learn about formal grammar from what is already written on Wikipedia
06:30:55 * Sgeo rates xkcd on WOT as being not particularly child friendly
06:31:10 <zzo38> What does "WOT" means
06:31:24 <augur> zzo38: no no, i mean, you can find some reference to some formalism on wikipedia that isnt property explained, or given thorough examples, or whatever
06:31:30 <augur> and then you can go research them, etc.
06:31:45 <augur> thats what im doing for the categorial minimalism stuff, and for the control grammar stuff
06:32:06 <augur> and you just go through doing that. if you find some reference in a paper or book to some formalism you havent heard of ever, check to see if its on wiki
06:32:11 <augur> if not, go find info about it and put it up
06:34:02 <Sgeo> There's something about Reddit that my computer doesn't like
06:34:13 <augur> ok im going to play some wipeout
06:35:04 <zzo38> And I'm on Hackiki now
06:35:08 -!- zzo38 has quit (Quit: zzo38).
06:36:17 <augur> redbull is THE official drink of the early Wipeout games. :D
06:36:22 <augur> not that i like redbull or anything but
06:43:59 -!- jcp has quit (Quit: I will do anything (almost) for a new router.).
06:45:45 -!- yiyus has quit (Ping timeout: 265 seconds).
06:49:32 -!- adu_ has joined.
06:50:54 -!- adu has quit (Ping timeout: 265 seconds).
06:56:37 * Sgeo should not be on the computer right now
06:56:42 * Sgeo should be sleeping
06:57:13 -!- adu_ has quit (Quit: adu_).
06:59:05 -!- yiyus has joined.
07:04:42 -!- Asztal has joined.
07:05:59 -!- tombom has joined.
07:10:29 -!- coppro has quit (Quit: good night).
07:23:33 <augur> i shouldnt be sleeping
07:39:01 -!- kwertii has quit (Quit: bye).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:03:32 <augur> so ive invented fun little variant of the lambda calculus which isnt usable as a mode of computation but which is useful in constructing interesting representations of meaning :T
08:19:49 -!- Asztal has quit (Ping timeout: 265 seconds).
08:47:58 -!- MizardX has joined.
08:59:17 -!- scarf has joined.
08:59:21 -!- scarf has quit (Changing host).
08:59:21 -!- scarf has joined.
09:03:17 -!- gm|lap has quit (Quit: HydraIRC is a child molester -> http://silverex.net/news <- i couldn't change my quit message).
09:22:38 -!- scarf has quit (Read error: Connection reset by peer).
09:22:43 -!- scarf has joined.
09:33:22 -!- SHAXMAT has joined.
09:38:36 -!- pikhq has quit (Read error: Connection reset by peer).
09:39:54 -!- pikhq has joined.
09:42:58 -!- SHAXMAT has quit (Ping timeout: 245 seconds).
10:04:28 -!- Asztal has joined.
10:15:13 -!- scarf has quit (Ping timeout: 264 seconds).
10:15:44 -!- scarf has joined.
10:58:51 -!- scarf_ has joined.
11:00:55 -!- scarf has quit (Ping timeout: 276 seconds).
11:08:22 -!- scarf_ has changed nick to scarf.
11:08:36 -!- augur has quit (Quit: Leaving...).
11:08:39 -!- augur has joined.
11:15:52 -!- BeholdMyGlory has joined.
11:54:57 -!- scarf has quit (Ping timeout: 252 seconds).
11:55:46 -!- scarf has joined.
12:12:48 -!- bsmntbombdood has quit (Read error: Operation timed out).
12:30:17 -!- scarf has quit (Remote host closed the connection).
12:30:26 -!- scarf has joined.
12:30:31 -!- bsmntbombdood has joined.
12:34:32 -!- tombom_ has joined.
12:37:35 -!- oerjan has joined.
12:38:25 -!- tombom has quit (Ping timeout: 276 seconds).
12:38:49 <oerjan> <zzo38> I see the note about INTERCAL in the topic message. But what I know, is, P.D.Q. Bach is the INTERCAL of Baroque music. But it doesn't help much unless you know about both INTERCAL and about P.D.Q. Bach.
12:39:11 <oerjan> um there is a major distinction: INTERCAL actually _exists_.
12:39:26 <scarf> oerjan: on the forum where that was originally posted, it made sense to assume that I Wanna Be The Guy would be well-known to people who viewed it
12:40:02 <oerjan> well, I Wanna Be The Guy _also_ exists, i believe
12:40:20 <oerjan> and i had heard of it (on this channel), so...
12:40:52 <oerjan> i am referring to P.D.Q. Bach, who regretfully doesn't (and never did).
12:41:36 -!- FireFly has joined.
12:42:02 <oerjan> and i would bet that we have a better fit to that on the wiki. any of the Lesser Known languages, say
12:43:27 <oerjan> admittedly existence of persons and existence of programming languages may not be quite directly comparable.
12:48:13 -!- augur has quit (Ping timeout: 264 seconds).
13:11:55 -!- MissPiggy has joined.
14:03:06 -!- oerjan has quit (Quit: leaving).
14:24:11 -!- augur has joined.
15:09:26 <AnMaster> is there any esolang where writing tac would be easier than writing cat?
15:09:48 <AnMaster> (in case you don't know, tac is like cat but reverses the order of the lines)
15:20:33 <Deewiant> Any stack-based one with only line-based I/O, presumably
15:27:30 -!- cpressey has joined.
15:37:24 <cpressey> If INTERCAL's the PDQ Bach, which one's the Victor Borge?
15:39:38 <AnMaster> Deewiant, how so? tac doesn't reverse the stuff inside a given line
15:39:44 <AnMaster> it only reverses the order of lines
15:39:59 <Deewiant> AnMaster: Thus the restriction for line-based I/O
15:40:16 <AnMaster> Deewiant, indeed, but still it would be as simple as doing one read then one write and so on
15:40:18 <Deewiant> Although I guess it's still easier to print them out as they come in
15:40:44 <AnMaster> so that is not a valid answer to my question then
15:41:49 <Deewiant> It mightn't've been in any case, if no such language exists
15:55:55 <scarf> AnMaster: Cyclexa would be like that if not for a hack that meant that both ways were equally easy
16:03:19 <scarf> AnMaster: nothing to look at
16:03:24 <scarf> but it treats memory as a stack
16:03:56 <AnMaster> scarf, describe it then, since you obviously know about it
16:04:21 <scarf> AnMaster: think stupidly generalised regex
16:04:41 <AnMaster> I can't quite imagine what that means
16:40:25 <cpressey> It matches things besides strings? Pointers, dogs, bicycles, trampolines, caves, ideologies, chuck steak...?
16:43:27 * AnMaster notes that FILE is too C-dependant
16:43:47 <scarf> cpressey: well, think of "B" in a regex as meaning "if the current string starts with B, remove it; otherwise fail"
16:43:48 <AnMaster> I'm not sure how to implement all of r, w, a, r+, w+, a+ in erlang
16:43:56 <scarf> that's what it means in Cyclexa
16:44:04 <scarf> now, B^ means "add a B to the start of the current string"
16:44:07 <AnMaster> but for some I'm unsure what the hell the distinction is supposed to be
16:45:21 <cpressey> scarf: Sounds kind of like the regex version of an unrestricted grammar (or relatively unrestricted)
16:46:26 <cpressey> AnMaster: not sure what the a means (I thought + meant append) but I thought the rest were supported (Erlang used to even use the same chars as C, but they changed it at some point)
16:46:46 <AnMaster> cpressey, it seems related to positioning of the stream
16:46:50 <scarf> cpressey: + means both readable and writable
16:47:11 <scarf> and r positions at start, w truncates the file then there's only one position, a positions at end
16:47:26 <scarf> r+ lets you read from the start, or write at the start
16:47:33 <scarf> w+ truncates the file
16:47:40 <scarf> but after writing to it, you can read back what you just read
16:47:45 <AnMaster> well, that is tricky, I need to manually emulate w+ I think
16:48:25 -!- MigoMipo has joined.
16:49:04 <scarf> *read back what you just wrote
16:49:04 <Deewiant> I've yet to run into a non-eso language that doesn't support those six modes trivially
16:49:24 <scarf> but then, hello world is awful in VHDL
16:49:48 <AnMaster> Deewiant, well there is no "read+write+truncate", I need to do some manual truncate after for that mode
16:49:55 <Deewiant> scarf: It's not really a programming language
16:49:57 <AnMaster> Deewiant, does mycology test all 5 modes or just some?
16:50:07 <scarf> Deewiant: what a weird statement
16:50:22 <scarf> it's just not intended to program computers, which is why it's so different
16:50:25 <Deewiant> scarf: Well, I haven't used it
16:50:52 <Deewiant> s/eso/eso computer programming/
16:51:10 <scarf> I don't see why programming should be restricted to computer programming in general, though
16:51:26 <Deewiant> Not in general, but in the context of file I/O...
16:51:57 <scarf> otherwise, you could just say that freestanding C has no file I/O at all unless it's in a nonstandard library
17:04:20 * cpressey builds a "Hello World" circuit on his breadboard
17:04:53 <cpressey> (It's a battery, two wires, and a lamp.)
17:09:13 -!- charlls has quit (Ping timeout: 245 seconds).
17:20:04 -!- jcp has joined.
17:25:41 <AnMaster> Deewiant, interesting mycology result on half-implemented FILE:
17:25:50 <AnMaster> GOOD: reopened file in append+read mode
17:28:01 <AnMaster> Deewiant, well, I'm just curious how it could happen. I assume you don't care about "fixing" it to error out more gracefully, but if you did, here is the output showing which ones are implemented:
17:28:25 <Deewiant> Probably just the S error handler goes to the wrong place
17:29:06 <AnMaster> Deewiant, right, a trace is really painful here. Should be possible to spot it by reading the code if it is as simple as that though
17:29:48 -!- MizardX- has joined.
17:32:18 <AnMaster> file:position(IoDev, cur) to set the possition to the current one and get the current abs position
17:32:26 <AnMaster> so basically a no-change to read current
17:33:58 -!- MizardX has quit (Ping timeout: 260 seconds).
17:34:16 -!- MizardX- has changed nick to MizardX.
17:35:22 <AnMaster> Deewiant, tell me if you want me to test any fixed version, preferably before I implement S.
17:35:44 <Deewiant> I can easily break it in a local CCBI
17:37:17 -!- amca has joined.
17:38:16 <AnMaster> Deewiant, is FILE byte based or unicode based?
17:38:42 <AnMaster> I guess unicode might break fungot's use of FILE
17:38:42 <fungot> AnMaster: these unique items make us invincible! but you are true heros. the world, tee, hee! it's not the only one thing we need to defeat you, lavos.
17:41:15 <AnMaster> Deewiant, does mycology test that?
17:41:24 <fungot> Available: agora alice c64 ct* darwin discworld europarl ff7 fisher ic irc jargon lovecraft nethack pa speeches ss wp youtube
17:41:33 <Deewiant> I think it just wrote text, not binary
17:41:37 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
17:41:48 <AnMaster> Deewiant, testing value above 255 would be a good idea
17:42:07 <AnMaster> "# Functions W and R write cells as bytes, any cells containing values greater than 255 will have the top bits stripped. "
17:42:14 <AnMaster> from http://rcfunge98.com/rcsfingers.html#FILE
17:42:24 <AnMaster> Deewiant, so doesn't look undef to me
17:42:33 <AnMaster> Deewiant, unless he added that after
17:43:01 <AnMaster> that operation is somewhat confusing
17:43:36 <Deewiant> It says nothing about negative numbers though :-P
17:43:43 <cpressey> You need a special bit stripper to properly strip off the "top bits".
17:45:40 <AnMaster> Deewiant, well lets assume something for them -_-
17:51:37 <fizzie> There's that thing about FILE that you got negative values for bytes >= 128 on some interpreter.
17:51:54 <fizzie> fungot only uses values in the [0, 127] range, doing multibyte values in a base-128 sort of way.
17:51:55 <fungot> fizzie: that's simple to understand. :p fnord/ news/ fnord/ fnord/ fnord/ fnord, that is).
17:52:53 <cpressey> fizzie: What interpreter is fungot running on?
17:52:54 <fungot> cpressey: even bawden rees point out in the third argument to dynamic-wind calls a continuation from outside the environment itself...
17:53:22 <scarf> cpressey: last I heard it was cfunge, and before that rc/funge
18:02:14 <amca> Does it matter that the rcfunge homepage doesnt say what rcfunge is for?
18:02:59 <Deewiant> It has the manuals, which do say
18:08:01 <scarf> amca: that's typical of the rc/funge documentaion
18:08:39 <fizzie> Yes, fungot started on RC/Funge, then migrated to cfunge.
18:08:40 <fungot> fizzie: i cannot see where are the logs? where is the middot? can't find it with a spoon for far too long. you can't. scheme is a language of stuff like that
18:08:48 * amca found the website confusing
18:09:45 <fizzie> http://git.zem.fi/fungot/commitdiff/75359446b1d88ef6644b88f3fa879d2f8d683592 was needed to make it work on cfunge.
18:09:46 <fungot> fizzie: scroll down to the mit scheme repl does indeed provide hooks for customizing the printer, but it's not r5rs
18:11:06 -!- sebbu2 has joined.
18:11:15 <AnMaster> why is my FILE G in cfunge so complex
18:11:17 -!- charlls has joined.
18:11:35 <AnMaster> oh it tries to emulate fgets() but treating all of \r \n \r\n as newlines
18:11:58 <fizzie> There was some difference on how STRN's L/R worked in the corner case of requesting more characters than the length of the string itself.
18:12:45 -!- sebbu3 has joined.
18:13:37 <AnMaster> due to missing SOCK and FING and STRN
18:14:23 <fizzie> The spec now specifies that L/R with more than the number of chars should return the full string, but I think cfunge instead reflects; it was some sort of theological argument about the immutability of specifications there.
18:14:23 <AnMaster> and I'm not implementing FILE because of it, but to avoid having to do rm myco*.tmp
18:14:29 -!- sebbu has quit (Ping timeout: 260 seconds).
18:14:51 <AnMaster> fizzie, s/theological/philosophical/
18:15:12 <Deewiant> I just used to do 'ccbi mycology.b98; rm -f *.tmp'
18:16:58 -!- sebbu2 has quit (Ping timeout: 264 seconds).
18:17:52 <AnMaster> now why the hell do I have pop_gnirts, push_list and push_gnirtses in efunge...
18:18:07 <AnMaster> and for push_list I would need to reverse it
18:21:24 <AnMaster> lists:reverse(String, [0|Stack]).
18:21:34 <AnMaster> now that is a wonderful implementation
18:22:15 <AnMaster> also *watches confusion grow amongst Deewiant, fizzie and scarf*
18:22:35 * cpressey didn't remember a lists:reverse/2
18:23:09 <AnMaster> cpressey, oh so you became confused too?
18:23:59 <scarf> I recognise it, being used to Prolog
18:24:18 <scarf> although it's a bit non-obvious what reverse does there, I agree
18:24:55 <AnMaster> scarf, well, it reverses the first list then appends the second
18:25:09 <AnMaster> since it is a BIF it should be pretty well optimised too
18:25:36 <AnMaster> (BIF = Built In Function. Means it is implemented (in C probably) by the runtime)
18:26:23 <cpressey> Because the compiler can't recognize and optimize lists:reverse(List) ++ Tail.
18:27:15 -!- kar8nga has joined.
18:28:27 <AnMaster> cpressey, really? How strange.
18:28:47 <AnMaster> pretty sure it does. It certainly does optimise [H] ++ Tail into [H|Tail]
18:28:54 <AnMaster> read that somewhere (official docs iirc)
18:29:35 <cpressey> It's certainly possible to write "sufficiently clever compilers", but you rarely encounter them in the world at large.
18:30:59 <AnMaster> Deewiant, what does G do on EOF?
18:31:05 <AnMaster> it seems cfunge reflects on that
18:33:09 <Deewiant> I can't tell you anything beyond what the spec says
18:33:21 <fizzie> What's that "b" returned by FILE's G in http://www.rcfunge98.com/rcsfingers.html#FILE ?
18:34:43 <AnMaster> Deewiant, does mycology assume G trims the trailing whitespace?
18:35:18 <AnMaster> that is, the length of the 0gnirts
18:35:29 <fizzie> Oh. That wasn't very obvious.
18:35:29 <Deewiant> Why do you ask me instead of mycology
18:37:23 <AnMaster> a pitty this means I can no longer use lists:reverse/2, since I don't need to reverse at all
18:37:37 -!- cpressey has left (?).
18:38:43 <fizzie> The pit viper falls into a pit. How pitiful. Isn't that the pits?
18:39:18 <AnMaster> Deewiant, btw, I think we have another bug with R reflecting causing the program to go to the wrong place
18:39:48 <AnMaster> Deewiant, basically look at: http://sprunge.us/IfWW
18:43:34 <AnMaster> why? Because that way I throw an exception if it isn't true
18:43:48 <AnMaster> which means I can move all the error handling for this function to one place
18:46:18 -!- charlls has quit (Ping timeout: 245 seconds).
18:51:11 -!- kar8nga has quit (Remote host closed the connection).
18:55:44 -!- charlls has joined.
18:58:47 -!- cpressey has joined.
19:02:40 <Sgeo> What language is this?
19:02:49 <Sgeo> Wow, typing the keys on the keyboard feels so light
19:02:53 <Sgeo> I was just blowing snow.
19:07:02 -!- charlls has quit (Read error: Connection reset by peer).
19:07:31 -!- charlls has joined.
19:07:37 <amca> Sgeo: Your fingers get vibrated numb?
19:08:02 <Sgeo> It's physically hard pushing on the snow blower
19:08:48 * amca doesnt live where snow falls, so didnt realise
19:09:06 <Sgeo> I think the snow blower is crap, tbh
19:10:17 <fizzie> Yes, you should switch to a snow-sucker.
19:13:24 <pikhq> Or perhaps even a snow-melter.
19:14:55 <uorygl> It blows cool, dry air on the snow, and the snow sublimates into that air.
19:16:06 <amca> Or increase global warming
19:17:39 <Ilari> Unfortunately, increasing global warming has all sorts of negative effects... :->
19:20:45 <Sgeo> Won't he be here tomorrow, or is he usually here on Fridays?
19:22:26 <scarf> he's usually here friday evening
19:22:30 <scarf> although not most of the day
19:29:44 -!- charlls has quit (Ping timeout: 240 seconds).
19:35:36 <AnMaster> Deewiant, pushed the FILE for cfunge (both trunk and supervisor-tree)
19:35:52 <AnMaster> <Sgeo> What language is this? <-- what language is what?
19:36:17 <Sgeo> Whatever language they were talking about?
19:36:36 <Sgeo> When I said that
19:37:00 <AnMaster> well, then the channel had been idle for a bit over 15 minutes, so none I guess
19:37:32 <Sgeo> Well, whatever language they were talking about 15min before I said that, then
19:38:17 <AnMaster> Sgeo, if it was the discussion I was involved in
19:38:26 * Sgeo doesn't even remember
19:38:51 <AnMaster> even though it is still on screen
19:39:44 <AnMaster> Deewiant, anyway: might be time to update the mycology results page soon. Perhaps include efunge too :)
19:40:03 <AnMaster> Deewiant, note that only supervisor-tree has TURT
19:40:11 <AnMaster> but in general it is less stable
19:43:45 <AnMaster> (this is true for a direct current if the total resistance is 6.8 Ohm, and we assume there are only simple linear components)
19:44:23 * Sgeo wonders how many facepalms the next episode of SG-1 [in season 9] will give him
19:44:26 <AnMaster> oh btw, I wonder why CPLI doesn't do polar form
19:46:43 <cpressey> Interestingly, 6.8 ohms is one of the standard values for resistors, too
19:47:03 <AnMaster> Deewiant, by the way: "Can't test o in linear text mode: i ignores spaces, no way to know from within standard Funge-98 whether they are output to file." is completely wrong. You can see if it skipped those spaces when reading in again. Like, the data continues after those spaces where it should
19:47:09 <AnMaster> just read it in in binary mode
19:47:39 <AnMaster> cpressey, oh yeah, probably a hidden message there!
19:49:15 <AnMaster> hm, I think this requires a fingerprint ACDC that would implement various electricity related calculations
19:50:17 <AnMaster> of course there are more operations than there are upper case letters, especially for AC
19:52:48 <AnMaster> cpressey, btw if you are interested in efunge: bzr branch lp:~anmaster/efunge/supervisor-tree
19:53:10 <AnMaster> cfunge would be at bzr branch lp:cfunge
19:53:24 <AnMaster> (yay for vendor creep, better to say it before someone else does)
19:53:59 <AnMaster> (lp: of course is a short hand for https://something.launchpad.net/)
19:55:14 <Deewiant> AnMaster: o with that mode removes only trailing spaces
19:56:15 <Deewiant> (Well, and trailing newlines / form feeds)
19:56:40 <AnMaster> Deewiant, so while you couldn't check trailing newlines/ff at the end of the file
19:56:53 <AnMaster> you could check if it removed spaces at the end of all but the last line
19:57:06 <AnMaster> Deewiant, also if FILE was available you could check it fully
19:57:28 <AnMaster> (of course, FILE could be intentionally lying if the interpreter detected mycology)
19:57:37 <AnMaster> (but that seems rather unlikely)
19:57:58 <Deewiant> Mycology doesn't really try to handle being lied to ;-P
19:58:32 <AnMaster> fizzie, btw, do you use G or just R for your FILE usage?
19:58:56 <fizzie> AnMaster: I think I use G for some of the ^command persistence things, since it was easier there.
19:59:11 <fizzie> (It's a line-based format.)
19:59:49 <Deewiant> Hmm, I guess i in binary mode only doesn't write spaces, it still increments the x-coordinate
20:00:02 * AnMaster debates if to enable the read_ahead option when opening files in FILE
20:00:05 <Deewiant> So yeah, I think you could detect it in that way, you're right
20:00:55 <AnMaster> "The read_ahead buffer is also highly utilized by the read_line/1 function in raw mode, why this option is recommended (for performance reasons) when accessing raw files using that function."
20:01:08 <AnMaster> and since I (for various reasons) use raw files...
20:01:45 <AnMaster> default size for read_ahead is 64 kb
20:01:51 <fizzie> Nothing performance-intensive in fungot uses G, though; just the initial state-loading.
20:01:53 <fungot> fizzie: aaargh... this bug can't be found that easily... but i probably will
20:02:04 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher ic irc* jargon lovecraft nethack pa speeches ss wp youtube
20:02:40 <AnMaster> why doesn't FILE have an option for transparent gzip :/
20:02:46 <AnMaster> that way it would have been trivial in erlang
20:02:56 <AnMaster> since there is (for some reason) built in support for that
20:03:27 <AnMaster> (doesn't work with read+write of course=
20:03:52 <fungot> Selected style: nethack (NetHack 3.4.3 data.base, rumors.tru, rumors.fal)
20:04:08 <uorygl> fungot, what do you sound like with the nethack style?
20:04:09 <fungot> uorygl: they say that some yetis are full of hot air. its small, distant cousin. various varieties exist, and whispered to him, " one rest") is sometimes termed " minister to the sea; there's no food.
20:04:30 <AnMaster> fizzie, how much would readahead benefit fungot for R though?
20:04:31 <fungot> AnMaster: nurses are trained to touch it. so david prevailed over the lower edge of the tribute) as well quit now!" i-hsiu was unable to quit it for use in hand-to-hand combat; wrap it round your head to ward off noxious fumes or avoid the gaze of the dead.
20:05:02 <fizzie> AnMaster: No clue, since I don't know how much it benefits R in general. In any case, there really aren't any performance problems in fungot at the moment.
20:05:03 <fungot> fizzie: they say that dungeoneers prefer dark chocolate. the glare of the servants of the lords of death. you know what that is so much useless rusted scrap in no time at all.) had told him: " mirror, mirror: " you have a rocky road ahead of them must have brought it with blood a-drip at vlana's feet.
20:05:26 <fizzie> That fact about yetis sounds a bit suspicious.
20:05:31 <uorygl> Nurses are trained to touch it.
20:05:38 <uorygl> It's true that some yetis are full of hot air.
20:05:49 <uorygl> ...well, it's the sort of thing that sounds true.
20:05:56 <scarf> in NetHack, it is true
20:06:42 <fizzie> It seems to be; it's from rumors.tru.
20:08:05 <scarf> fizzie: I know a lot about NetHack; I can normally guess whether a rumor is true or false
20:08:35 <fizzie> Even though I'm not a very NetHacky person, I've actually acquired a fair amount of passive knowledge by osmosis from r.g.r.n.
20:08:36 <uorygl> What's that cockatrice-related false rumor?
20:08:50 <scarf> fizzie: you read rgrn?
20:09:00 <scarf> uorygl: there's one about wielding a lizard corpse against a trice
20:09:11 <fizzie> scarf: Yes. In fact, I noticed one of your posts there recently.
20:09:36 <fizzie> There's two others: "A cockatrice corpse is guaranteed to be untainted!" + "A dead cockatrice is just a dead lizard."
20:10:08 <lament> why would you read rgrn
20:10:15 <lament> even if you did play nethack
20:10:37 * cpressey shakes his head at all of USENET
20:10:39 <lament> it's full of sad, sad people
20:11:13 <lament> who dedicated their life to nethack, think they're the ultimate authority on it, and actually aren't even very good
20:11:32 <scarf> rgrn's tactical advice isn't so much bad, as twenty years out of date
20:11:44 <scarf> but the newsgroup as a whole has been getting better
20:12:15 <fizzie> I also haven't felt the tone to be pompous at all, which is what your description makes it sound like.
20:12:59 <scarf> the pompous people are the devteam, and they hardly ever say anything
20:14:16 -!- wareya has joined.
20:14:55 <AnMaster> <fizzie> AnMaster: No clue, since I don't know how much it benefits R in general. In any case, there really aren't any performance problems in fungot at the moment.
20:14:56 <fungot> AnMaster: sorry, no one knows why medusa stands alone in the kidnappings and raids the inhabitants of the temples. filling the gaps between these strips and the outside, he enjoys visiting the earth, a grasping tail, hooves, or yeti, is outside it; and so he returned to practice, teach, and thieves. he has been suggested that it was a pretty fair shot with a wand of vibration might bring the whole course of known life from the
20:15:04 <AnMaster> how much are continuous reads?
20:15:24 <lament> with rgrn, who can tell?
20:15:26 <fizzie> There's not much continuous reading at all.
20:15:47 <AnMaster> fizzie, you don't use t do you?
20:16:18 <AnMaster> <scarf> in NetHack, it is true <-- how can yetis be full of hot air
20:16:26 <AnMaster> as in, what does that actually mean for playing
20:16:33 <scarf> AnMaster: it means, that if you eat one, you might be full of hot air
20:16:38 <scarf> which is the message for gaining cold resistance
20:16:57 <fizzie> AnMaster: No t there, right.
20:16:58 <scarf> if they weren't full of hot air, they'd be hurt by the cold
20:17:07 <scarf> and that seems wrong for yetis
20:17:41 <fizzie> The messages are always so punny; your health currently feels amplified for shock resistance.
20:18:08 <AnMaster> fizzie, well since performance was one reason to switch to cfunge for you iirc (allowing bf/ul programs to run for longer), I doubt you would be interested in efunge.
20:18:51 -!- wareya has changed nick to Wareya.
20:19:18 <fizzie> Mhm, maybe not; the sub-interpreters (bf, ul) are pretty slow, after all.
20:19:33 -!- MigoMipo has quit.
20:19:42 <fizzie> Though I'd like to have fungot 2.0 use ATHR; it sounds much more enterprisey that way. I'm just bad at getting things done.
20:19:42 <fungot> fizzie: they say that a potion of sickness. ( funk wagnalls standard dictionary of the sun.... thrice i filled the tub and emptied it.
20:19:56 <fizzie> That's a strange thing to say.
20:20:22 <Deewiant> If you really want to be enterprisey, find a use for TRDS
20:20:28 <Deewiant> What's better than time travel, after all
20:20:45 -!- MigoMipo has joined.
20:20:52 <AnMaster> Deewiant, well, why not have 2 time dimensions
20:21:16 <AnMaster> Deewiant, first tell me what the hell that even means
20:21:32 <AnMaster> ooh wait, maybe like having the third dimension be the time dimension
20:21:52 <AnMaster> so trefunge but every tick creates a new layer and move all ips there.
20:22:00 <AnMaster> but then something-something to travel in it
20:22:40 <Deewiant> You were doing okay until the "something-something"
20:23:10 <fizzie> In any case, rgrn is one huge bundle of pleasantness compared to unmoderated comp.lang.c.
20:23:11 <AnMaster> I can't work out the something-something
20:23:51 <fizzie> AnMaster: Yours is in fact more right.
20:24:15 <Deewiant> The hamming distance is lower for mine
20:24:16 <fizzie> But it is also more right than Deewiant's.
20:24:24 -!- charlls has joined.
20:24:48 <fizzie> Edit distance from what?
20:24:56 <Deewiant> From rec.games.roguelike.nethack
20:25:06 <fizzie> Oh, right, I completely unsaw AnMaster's typo.
20:25:12 <AnMaster> indeed I didn't notice it either
20:25:14 <Deewiant> rec.games.rougelike.nethack and rec.games.roguelikes.nethack
20:25:23 <Deewiant> How can people not notice these things :-P
20:25:37 <AnMaster> Deewiant, I can't spot it reading quickly
20:25:47 <AnMaster> the different length is harder to miss
20:26:15 <fizzie> Deewiant: Even though I know it's there, I still have to look at it twice. Anyway, right, usually (or at least often) the "insert" and "substitute" operations have the same cost, so yours is in fact more right.
20:26:26 <AnMaster> Deewiant, as long as first and last letter are the same, the length is the same, and the general word shape (tall/low letters) is the same, you can easily read a text with some swapped letters.
20:26:51 <AnMaster> for low swappedness it is hard to notice even
20:26:58 <Deewiant> I can read it often enough, yes, but I still notice every typo
20:27:05 <AnMaster> cpressey, what the heck would that do ^_^
20:27:42 -!- amca has quit (Quit: work).
20:28:02 <AnMaster> cpressey, possibly it should make it so that the IP can have it's stack values identified on exit?
20:28:20 <fizzie> F posts a YAFAP to rgrn, while A posts a YAAP; M posts a YAFM, D posts a YAAD, and S a YASD. All with completely made-up details, of course. And so on.
20:28:57 <fizzie> Deewiant: Yet Another Funny Message, and Yet Another Annoying Death.
20:29:11 <fizzie> AnMaster: Yet Another First Ascension Post.
20:29:17 <fizzie> AnMaster: Generally you should call F only once. :p
20:29:37 <AnMaster> fizzie, I never posted my first ascension
20:30:00 -!- coppro has joined.
20:30:12 <fizzie> It's a bit debatable if it's "Yet Another (First Ascension) Post", or "Yet Another First (Ascension Post)".
20:30:18 <fizzie> If the latter, you could do it even later.
20:30:40 <AnMaster> misunderstood what "later" was relative here
20:31:09 <coppro> I didn't post my first ascension :(
20:31:28 <fizzie> You could even post a YAFAP-2 of some non-first ascension, followed by a YAFAP-1 of the first ascension.
20:31:31 <Deewiant> I haven't ascended so I'm still good
20:33:02 <AnMaster> Deewiant, how far have you reached?
20:33:12 <fizzie> Mooz has a YAFAP in rgrn, for those who remember/know the person.
20:33:41 <fizzie> It's not very special, but first ascensions aren't so often.
20:34:04 <uorygl> I've completed the quest once.
20:34:51 <Deewiant> I don't think I've got as far as receiving it
20:35:13 <Deewiant> It's not exactly a priority for me ;-P
20:35:28 <Deewiant> You finished ADOM and Angband and everything else too?
20:35:55 <lament> it used to be difficult to ascend
20:36:17 <lament> step 3. play on NAO and ask people for help when necessary
20:36:53 -!- daef has joined.
20:37:26 <daef> just played around with brainf*** the first time
20:37:53 <daef> threw together a bunch of characters that output the current cell in decimal
20:38:04 <daef> so if the current cell holds the value 123
20:38:15 <daef> it output's "123" (the three characters)
20:38:33 <uorygl> Now write a program that does the same thing except without messing up any other cells. :P
20:38:41 <daef> but it looks much too complicated - is there someone who can look over the code and tell me what could be optimized
20:39:06 <scarf> daef: try running it in-channel, so we can have a look, if it's less than around 500 chars long
20:39:07 -!- oerjan has joined.
20:39:12 <daef> uorygl: it messes up nothing - but it needs the next 9 cells to be empty (clear's them by itselve)
20:39:15 <scarf> !bf ,[.,]!Hello, world!
20:39:30 <scarf> uorygl: you know that's impossilbe
20:39:39 <scarf> ^bf ,[.,]!Hello, world!
20:39:52 <daef> ++++++++[>++++++++<-]>[-<++>]<----- // schreibt die zahl 123 in die erste zelle
20:39:55 <daef> >[-]++++++++[>[-]<[->+<]>-]<<<<<<<<< // lschen der nchsten zellen
20:39:57 <oerjan> never mind that, where's alise?
20:39:58 <daef> [->+<]>[>+<-<+>]>[>>>>>[->+<]>+<<<<< // der eigentliche code
20:40:00 <daef> ++++++++++<[->>+<-[>>>]>[[<+>-]>+>>]
20:40:03 <daef> <<<<<]>[-]>[-<<+>>]>[-<<+>>]<<]>>>>>
20:40:05 <daef> [<<<<+++++++[-<+++++++>]<-[<+>-]<.[-
20:40:08 <daef> ]>>>>>>[-<+>]<-]<<<<<<<
20:40:27 <daef> first line writes 123
20:40:33 <daef> second line clears next 9 cells
20:40:43 <scarf> oerjan: I don't know either, I'm worried
20:40:55 <daef> following 5 lines do the work, clean everything up and set the pointer back to the initial 123
20:41:15 <AnMaster> <Deewiant> You finished ADOM and Angband and everything else too? <-- no
20:42:08 <scarf> daef: it looks relatively standard, and there's nothing obviously wrong
20:42:25 <scarf> what does the [>>>] do? seeing an unbalanced loop makes me suspicious, as that code shouldn't really need one
20:42:34 <daef> thought there must be a easier way to do it
20:43:02 -!- cheater2 has quit (Ping timeout: 246 seconds).
20:43:06 <oerjan> scarf: well, there are of course a million possible innocent explanations *knock on wood*
20:43:06 <daef> scarf: the [>>>] is from my divide-code - when the dividend got zero the [>>>] ensures that the pointer points to an emtpy cell
20:43:30 <daef> needed for my version of an if(is_zero...
20:43:35 <scarf> division in BF is painful
20:43:40 <daef> didn't know anything better
20:43:50 <daef> my first approach was this one (works!)
20:44:00 <daef> >>[-]>[-]>[-]>[-]<<<<<:clear
20:44:00 <daef> [>->+<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]+:code
20:44:00 <daef> <[>[-]<[-]]>[<<+<[<+>-]>>>-]<<<<<-]>
20:44:00 <daef> [-]>[<<+>>-]>[<<+>>-]<<<
20:44:01 <pikhq> I'm pretty sure there's a better division algorithm on the Esolang wiki.
20:44:03 <scarf> there's an article on brainfuck algos on our wiki
20:44:11 <scarf> [[e:Brainfuck algorithms]] IIRC
20:44:15 <daef> my second one is this one
20:44:16 <daef> >>[-]>[-]>[-]>[-]<<<<<
20:44:16 <daef> [->>+<-[>>>]>[[<+>-]>+>>]<<<<<]>[-]>
20:44:16 <daef> [-<<+>>]>[-<<+>>]<<<
20:44:20 <scarf> umm, http://esolangs.org/wiki/Brainfuck_algorithms
20:44:24 <daef> second one got the unbalanced loop
20:44:46 <daef> but it's much shorter and doesnt dup around the values from a to b,c and back...
20:44:48 <scarf> there's a division algo by Calamari there that only needs four temporaries
20:44:59 <daef> i need five... damn
20:45:09 <scarf> and which is balanced
20:45:27 <daef> where can i find it - so i can study it?
20:45:54 <daef> cells 0 and 1 are the values
20:45:58 <uorygl> Darn, I forgot to finish speaking.
20:46:04 <daef> 2 and 3 get the result
20:46:07 <uorygl> It is an iter vehemens ad necem.
20:46:14 <daef> 4 and 5 are tmp
20:46:22 <daef> where 4 always stays zero
20:46:38 <daef> so i only "invent" cells 2345
20:46:43 <daef> that are 4 tmp cells
20:47:53 <daef> i cannot find a link... *scrollscroll*
20:48:46 <scarf> http://esolangs.org/wiki/Brainfuck_algorithms
20:48:49 <scarf> there, I've repeated it for you
20:49:59 -!- Oranjer has joined.
20:50:22 -!- MigoMipo has quit (Remote host closed the connection).
20:51:13 -!- cheater2 has joined.
20:51:39 <daef> the version on the wiki much looks like my first approach
20:51:51 <daef> but my second one is definetly faster
20:52:06 <scarf> the first one may optimise better, because it probably optimises into polynomials
20:52:11 <daef> all the temp's screw me up a bit - i have to translate it to bffirst
20:55:55 -!- MigoMipo has joined.
20:57:17 <daef> scarf: what do you mean?
20:57:35 <scarf> daef: some BF interps are less naive than others
20:57:39 <scarf> and some can be very fast indeed
20:57:57 <scarf> generally speaking, a highly optimised BF interp is faster on balanced loops than unbalanced loops, due to the "polynomial optimisation"
21:00:05 <daef> so i now translated the version from the wiki:
21:00:07 <daef> >>[-]>[-]>[-]>[-]<<<<<
21:00:07 <daef> [>>+<<-]>>[<[>>+>+<<<-]>>>[<<<+>>>-]
21:00:07 <daef> <[>+<<-[>>[-]>+<<<-]>>>[<<<+>>>-]<[<
21:00:07 <daef> -[<<<->>>[-]]+>-]<-]<<<+>>]
21:00:12 <scarf> I'm not sure if we have any BF optimisation experts here, though
21:00:25 <scarf> alise knows a bit about it, but he's missing atm
21:00:26 <daef> and this one is my first approach:
21:00:27 <daef> >>[-]>[-]>[-]>[-]<<<<<
21:00:27 <daef> [>->+<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]+
21:00:27 <daef> <[>[-]<[-]]>[<<+<[<+>-]>>>-]<<<<<-]>
21:00:27 <daef> [-]>[<<+>>-]>[<<+>>-]<<<
21:00:39 <scarf> not quite identical
21:00:43 <daef> they really look nearly the same :)
21:00:55 <scarf> the algo looks different, although that might just be an illusion
21:01:20 <daef> just watched them @ work - seen to work quite the same way
21:01:58 <daef> my last two loops are just to get the results in the place i want them
21:02:07 <daef> so they dont really "do" anything
21:03:03 <AnMaster> <scarf> I'm not sure if we have any BF optimisation experts here, though <-- as in bf compiler optimising
21:03:15 <scarf> um, compiler optimising
21:03:17 <cpressey> scarf: Might the "polynomial opt" have to do with the fact that you can precalculate all the offsets from the position where the loop begins?
21:03:21 <AnMaster> I know some of the compiler optimising stuff
21:03:27 <scarf> neither Calamari nor Keymaker's here, though
21:03:28 <AnMaster> lifthrasiir is the expert on it
21:03:28 <scarf> cpressey: that's it
21:03:34 <scarf> and then change loops into multiplications
21:03:39 <scarf> AnMaster: ooh, right
21:03:42 <cpressey> scarf: OK... but I don't see what's "polynomial" about it :)
21:03:52 <scarf> cpressey: because the multiplications turn into more multiplications
21:03:56 <scarf> and you end up with polynomials
21:04:33 <pikhq> Hrm. It's 9 PM in ehirdland.
21:04:47 <AnMaster> pikhq, this looks like dire news indeed
21:05:10 <AnMaster> pikhq, about ehird not being here at this time
21:05:55 * cpressey awaits the homing pigeon w/fragment of parchment tied to leg
21:06:20 -!- |MigoMipo| has joined.
21:07:31 <AnMaster> cpressey, I don't quite get the reference
21:08:30 <oerjan> cpressey: no no, it will be a bottle with a message inside
21:09:38 -!- MigoMipo has quit (Ping timeout: 246 seconds).
21:10:24 <AnMaster> daef, anyway, what is the optimising stuff you need help with there?
21:11:44 <AnMaster> daef, and yes, unbalanced loops really reduces the possibilities to optimise an expressions
21:11:57 -!- |MigoMipo| has changed nick to MigoMipo.
21:12:06 <AnMaster> however I don't think it ever optimises to integer division, because that is very tricky
21:13:02 <AnMaster> daef, where was your program code? (pastebin please so it is easy to download) I want to see how the bf-compiler I wrote optimises it
21:13:15 <oerjan> in principle you could turn it into a lookup table, since it uses a finite number of cells :D
21:14:01 <oerjan> (assuming finite cell size of course)
21:14:04 <AnMaster> oerjan, wouldn't it grow exponentially or such?
21:14:23 <oerjan> superexponentially probably...
21:14:25 <AnMaster> but a given piece of linear code
21:14:39 <oerjan> AnMaster: there is no point in optimizing across input
21:15:06 <AnMaster> oerjan, sure there is, of course not for that cell
21:15:22 -!- charlls has quit (Read error: Connection reset by peer).
21:15:37 <AnMaster> you probably want to shift input and output to early and computations to late
21:15:51 -!- charlls has joined.
21:15:59 -!- MigoMipo has quit (Quit: When two people dream the same dream, it ceases to be an illusion. KVIrc 3.4.2 Shiny http://www.kvirc.net).
21:17:17 <AnMaster> daef, I need the full program, not just that algorithm, since otherwise it will optimise by assuming that at the start of the program every cell is zero
21:17:25 <AnMaster> meaning that likely it will just end up as s nop
21:17:48 <daef> was sunk in the code from the wiki
21:17:59 <daef> trying to translate it to as much highlvl i can
21:18:05 <daef> to understand what he really does
21:18:12 <daef> complete code...
21:18:14 <oerjan> AnMaster: put ,[>,][<] in front? :D
21:18:32 <daef> containing the code to clear - which is not needed in this example - i guess
21:18:58 <AnMaster> oerjan, also it was on irc, would need to remove the [daef] prefix from it
21:19:29 <scarf> AnMaster: oh, you're planning to run in-between on it?
21:19:32 <oerjan> AnMaster: silly you, [daef] at start of program is a comment
21:19:34 <scarf> (what a weird name for a bf interp, btw)
21:19:51 <AnMaster> oerjan, it might infinite loop since [] is a loop
21:20:00 <scarf> AnMaster: at the start of the program, it's a header comment
21:20:03 <AnMaster> scarf, it made sense at the time
21:20:07 <scarf> nothing runs, because the current cell is 0
21:20:07 <daef> AnMaster: http://pastebin.com/raw.php?i=w9wQAmGJ
21:20:14 <AnMaster> scarf, yes but look, it was split over multiple lines!
21:20:51 <AnMaster> err wth, that ends up like this:
21:20:55 <AnMaster> >[-]++++++++[>[-]<[->+<]>-]<<<<<<<<<
21:21:12 <daef> tr is your friend
21:21:15 -!- MigoMipo has joined.
21:21:24 <AnMaster> daef, it aslo has a doctype and some headers
21:21:37 <scarf> can't it convert HTML to plaintext in batch mode?
21:22:09 <scarf> ah yes, lynx -dump file.html
21:22:17 <AnMaster> daef, the code produced: http://sprunge.us/EQhd
21:22:19 <daef> i pasted the raw because i thought it should be ease to fetch from the shell
21:22:34 <AnMaster> daef, I dare say esotope-bfc will manage better
21:22:37 <Deewiant> How about esotope-bfc or whatever the better one was
21:23:07 <AnMaster> http://sprunge.us/DURO is esotope
21:23:58 <AnMaster> Deewiant, butp[-6] += ((7*p[-5])-1);
21:24:08 <daef> the second one fits on my screen :)
21:24:13 <Deewiant> AnMaster: Yours gets it as well
21:24:35 <daef> where's that from?
21:24:36 <AnMaster> Deewiant, yes but mine doesn't use that extra () around that expression
21:24:48 <Deewiant> AnMaster: esotope obviously brackets every expression
21:24:54 <daef> that's for the number to ascii
21:25:02 <AnMaster> daef, in your original code? No clue. both of those do things like sort the instructions and merge them
21:25:14 <cpressey> I note that esotope doesn't optimize non-relatively-addressed cells into locals
21:25:14 <AnMaster> daef, basically there is no way to tell what comes from where
21:25:29 <cpressey> That would be hard, but not impossible
21:25:32 <daef> what is in my original code?
21:25:51 <daef> 22:19 < AnMaster> daef, in your original code? No clue. both of those do things like sort the instructions and merge them
21:25:57 <daef> what do you mean by that?
21:26:03 <daef> sry - english isn't my mother tongue
21:26:25 <AnMaster> daef, I mean, the compilers reorders stuff like: >>+<<+ into +>>+<< then into [0]++ [2]++
21:26:39 <AnMaster> daef, and sometimes move instructions to the other side of a loop
21:26:52 <AnMaster> so well, it is very hard to figure out what part of the original code ended up where in the new code
21:26:54 <daef> when it doesn't matter
21:27:05 <daef> and what i see
21:27:12 <fungot> echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble
21:27:15 <fungot> >+9[<+8>-]<.>+7[<+4>-]<+.+7..+3.>>>+8[<+4>-]<.>>>+10[<+9>-]<-3.<4.+3.-6.-8.>>+.
21:27:34 <daef> since i've always seen bf as "current cell" - i've seen "moving the pointer costs time"
21:27:54 <daef> but when you "compile" it with absolute adresses
21:27:55 <AnMaster> here is another (same?) hello world:
21:27:56 <AnMaster> >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-]
21:27:57 <AnMaster> <.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
21:28:00 <daef> that doesnt count
21:28:18 <AnMaster> daef, and that code produces this: http://sprunge.us/gbXQ
21:28:25 <AnMaster> now that is impressive isn't it? :)
21:29:22 <daef> why can't it compile my code to s("123");?
21:29:28 <daef> it's static too
21:29:44 <daef> as long as there is no "," it should always be possible
21:29:56 <AnMaster> daef, sure, but it doesn't do full tracing
21:30:10 <AnMaster> basically what my compiler did there was: figure out constant values. Figure out what balanced loops with constant number of iterations does. Figure out what output instruction works on constants. Transform those to constant outputs. merge constant outputs into string output
21:30:17 <pikhq> No; so long as there is no "," and it doesn't halt, it is possible.
21:30:29 <pikhq> It's impossible to prove whether or not it halts.
21:30:39 <daef> sry - that's correct
21:30:42 <daef> old problem...
21:30:46 <AnMaster> daef, I can tell you the issue with your
21:31:01 <daef> should have known that :D
21:31:15 <AnMaster> daef, that is an unbalanced loop
21:31:47 <AnMaster> daef, I think it maps to [>[-]<[->+<]>-]
21:31:52 <daef> what my code does
21:31:59 <daef> when the first cell is 123
21:32:01 <AnMaster> and well, unbalanced loops are tricky to get right
21:32:03 <daef> it expands it to:
21:32:18 <daef> where the last one is the length
21:32:24 <AnMaster> daef, that unbalanced thing is what breaks my compiler at that code however. It doesn't try to do much with them
21:32:25 <daef> then it outputs the 1
21:32:40 * pikhq waits on clang -O3 -S LostKng.c.
21:32:44 <AnMaster> since in general there isn't much you can do. Sure if it is a constant one at the start...
21:32:47 <pikhq> Curious what code you get out of that.
21:32:53 <daef> the nice thing about BF is to let your code move along the data
21:33:10 <daef> so unbalanced stuff can make things very interesting - in my opinion
21:33:26 <AnMaster> pikhq, well not sure. I think mine managed a few things esotope didn't in lostking, and the vice verse
21:33:41 <AnMaster> daef, sure, but it inhibits optimisation
21:33:56 <AnMaster> sure, you could try to track if you could figure out if it was a constant
21:33:59 <pikhq> AnMaster: I'm curious what assembly is made. ;)
21:34:02 <AnMaster> but that is somewhat hard still
21:34:22 <daef> the only thing i wrote once was a string to number func where you put in "(2+2)^3-3.3" and it gave the correct answer - recusions, paranthesis, etc...
21:34:28 <daef> but i've never built a complete AST
21:34:29 <AnMaster> pikhq, I'm curious as to ram usage. I certainly never managed to compile it with gcc locally
21:34:36 <AnMaster> pikhq, I used tcc to test that it was valid c
21:34:54 <pikhq> AnMaster: That's because GCC uses *massive chunks* of RAM for compilation.
21:35:10 <daef> AnMaster: in C# :D
21:35:11 <pikhq> Clang is about as good at C compilation and optimisation, and doesn't use chunks of RAM.
21:35:22 <pikhq> Also, only took a couple of minutes to compile.
21:35:26 <AnMaster> daef, well I'm happy I didn't write it
21:35:37 <AnMaster> I coded C# and well.... it's better than C++ certainly
21:35:40 <AnMaster> but that is all I can say about it
21:35:45 <daef> and made a boolean-tester too - so you could test "2>1"
21:36:01 <daef> with and,or,xor,constants,comparison...
21:36:13 <AnMaster> pikhq, sempron 3300+ with 1.5 GB RAM here
21:36:24 <daef> it was a quite straightforward piece i wrote because school was boring for a few hours
21:36:51 <pikhq> AnMaster: Phenom II X3 710, runs at 2.8 GHz.
21:37:00 <pikhq> Only one core in use, of course.
21:37:02 <AnMaster> pikhq, quite a lot faster then
21:37:20 <AnMaster> pikhq, what? why no parallel compilation?
21:37:40 <AnMaster> to do local optimisations on different halves
21:37:43 <pikhq> AnMaster: ... *Single file*.
21:37:57 <pikhq> It's theoretically possible, but not done by any compiler.
21:38:00 <AnMaster> pikhq, nevertheless I think it should be possible once you built the AST
21:38:25 <pikhq> Because the big gains are gotten from telling Make to run multiple compilers at once.
21:38:52 <AnMaster> pikhq, reminds me of a sad thing. erlang's build system broke at make -j2
21:38:56 <AnMaster> which is pretty sad considering
21:39:23 <AnMaster> (it was trying to run the erlang compiler before the runtime was completely built)
21:40:08 <pikhq> That is pretty dang sad.
21:40:22 <AnMaster> pikhq, yeah, I think it was only with some rare configure options
21:40:44 <daef> one should think a trivial language should be easy to optimize - but it doesn't seem so... :)
21:41:02 <AnMaster> daef, well, brainfuck is a lot easier to optimise than befunge certainly
21:41:09 <AnMaster> befunge is self modifying after all
21:41:23 <daef> AnMaster: read about it a time ago i think
21:41:32 <AnMaster> fast interpreters yes, and fizzie was working on a JIT compiler for it
21:47:38 <daef> i just re-read http://de.wikipedia.org/wiki/Befunge - now i like it :D
21:48:22 <daef> AnMaster: w0ot?
21:48:44 <AnMaster> daef, there are two major versions of befunge: befunge-93, the original, Befunge-98 the newer one
21:48:57 <AnMaster> I mainly dealt with befunge-98 (implementing it twice)
21:49:01 <daef> what's the difference in the definition
21:49:19 <AnMaster> http://catseye.tc/projects/funge98/doc/funge98.html
21:49:24 <Deewiant> AnMaster: You forgetting bashfunge?
21:49:36 <AnMaster> Deewiant, intentionally. It was 93+a-bit
21:50:50 <daef> since both, 93 and 98, seem to have limited space - and limited cellsize - the stack must be infinite in length to be touringcomplete - doesn't it?
21:50:54 <AnMaster> Deewiant, remember, it's funge-space was 200x*, that is 200 wide but infinite high. No negative funge-space
21:51:06 <AnMaster> daef, 98 can have non-limited cell size
21:51:20 <AnMaster> daef, one of the implementations I wrote is bignum
21:51:38 <AnMaster> daef, of course, in practise that will never be TC on any real computer
21:52:21 <daef> AnMaster: that's clear
21:52:30 <daef> but i thought cell's were limited in the spec
21:52:33 <daef> from what i've seen
21:52:56 <AnMaster> daef, not exactly no. Or rather, for the "size of cells" value returned by y I return -1
21:53:13 <Deewiant> The spec doesn't allow nor disallow it
21:53:19 <AnMaster> also the plan is to allow it for befunge-111
21:53:33 <AnMaster> and since it isn't forbidden currently it's fine
21:53:33 <daef> i have to read the whole spec when i'm awake
21:53:47 <AnMaster> daef, there are some inconsistencies in it
21:53:57 <AnMaster> that is one of the reasons we are planning befunge-111
21:54:10 <AnMaster> cpressey here is the author of previous befunge versions
21:54:20 <daef> i really had a hard week @work - so my brain is not really open for so much new stuff - i think my BF code should be enough for today's eve
21:54:46 <daef> cpressey: nice work!
21:54:57 <pikhq> Why does glibc suck so much?
21:55:26 * AnMaster imagines in a few years writing a new fingerprint, having by then completed ATHR. The introduction would be along the lines of: "Like ATHR extended Befunge to multi-core systems, <whatever it will be called> aims to truly move Befunge into the realm of distributed HPC"
21:55:39 <pikhq> I have a program that literally *just uses a system call* that still links in 624k of library if statically linked.
21:56:32 <pikhq> AnMaster: 624k of libraries for the function "syscall".
21:56:34 <daef> AnMaster: what's ATHR?
21:57:02 <AnMaster> daef, a fingerprint (loadable extension) for befunge-98 that provides async threads. It is work in progress
21:57:24 <cpressey> pikhq: Is that why my ghc binaries are always at least ~500k?
21:57:31 <AnMaster> daef, the goal is to be able to make full use of multiple CPU cores.
21:57:49 <pikhq> cpressey: No, GHC doesn't try to statically link against glibc.
21:57:51 <AnMaster> daef, of course this is pretty insane. But then what isn't :)
21:58:12 <pikhq> GHC statically links against all Haskell libraries and the Haskell runtime.
21:58:17 <pikhq> (note: not in 6.12.
21:58:22 <daef> AnMaster: as long as it works - it's not insane - it's genious
21:58:24 <cpressey> pikhq: Ah well, bloat by any other name...
21:58:32 <AnMaster> daef, well parts of it works, parts do not
21:58:33 <daef> (might also be true if something MIGHT work - once...)
21:59:01 <AnMaster> daef, http://sprunge.us/MUQO is the work-in-progress spec
21:59:27 <Gregor> I need a favicon for Hackiki
21:59:33 <AnMaster> Gregor, hi there. Fix egobot and hackego
22:00:10 <AnMaster> that was an interesting reaction
22:00:20 -!- EgoBot has joined.
22:00:41 -!- HackEgo has joined.
22:01:11 <daef> AnMaster: how should i imagine - two threads - asynchrounously- altering their codebase with p-commands
22:01:19 <daef> completely unpredictable result i smell
22:01:31 <Gregor> I need a favicon for Hackiki
22:01:44 <AnMaster> daef, with some medicine against headaches nearby perhaps? ;P
22:02:42 <AnMaster> daef, seriously, it can work out, the fingerprint provides some ways to sync things. As long as the implementation does whatever is needed to keep the threads from corrupting internal data structures it is fine
22:03:05 <AnMaster> after all, most parts apart from the books/mutex thingy works already
22:03:50 <daef> sounds interesting - i'll keep that spec open and read it tomorrow - after a friend of mine and i try to alter a huge videowall in my hometown :D
22:04:05 <daef> i have to catch some sleep for tomorrow
22:04:22 <AnMaster> heh I noticed I had forgot I wrote this:
22:04:25 <daef> nice place here - might come back to idle a bit :)
22:04:29 <AnMaster> "The "extended ISBN numbers" mentioned may be any number in the range valid for
22:04:29 <AnMaster> the Funge cells. For bignum funges this means the library is clearly Hilbert's
22:05:00 <AnMaster> worst part is of course that I wrote that myself
22:05:05 <daef> dave hilbert - the mathematician?
22:05:25 <AnMaster> daef, yeah, by analogy to the "hilbert's hotel"
22:05:41 <AnMaster> that is used to demonstrate what is meant with infinites
22:05:48 <AnMaster> and infinites of various sizes
22:06:10 <daef> i never studied - so i've never HEARD about him - just remeber him from screwing around through the intertubes...
22:06:10 <AnMaster> http://en.wikipedia.org/wiki/Hilbert%27s_paradox_of_the_Grand_Hotel
22:06:35 <AnMaster> daef, well, without a decent amount of math that may not be quite as fun
22:06:54 <daef> define: a decent amount of math
22:08:15 <MissPiggy> one day I want to go to that hotel
22:08:58 <daef> MissPiggy: and ask everyone for a penny?
22:09:04 <uorygl> MissPiggy: you're in it! This planet and all its celestial bodies are room number 1.
22:09:11 <uorygl> Er, and all its artificial satellites.
22:09:12 <AnMaster> MissPiggy, quite. Anyway that is a strange way to solve "Infinitely many coaches with infinitely many guests each" on wikipedia
22:09:19 <uorygl> The Moon is room number 2.
22:09:29 <uorygl> Room number 3 is still under construction.
22:09:53 <uorygl> I mean, it already exists, fully constructed. But we're not sure which one it is yet.
22:10:24 <AnMaster> I thought what you did was arrange all the guests in a square on the (infinite) parking lot and then apply Cantor's zig-zag thingy
22:10:34 <AnMaster> then load them all back into one coach
22:10:43 <AnMaster> now it is reduced to a problem you already solved above
22:10:45 <uorygl> That's an efficient way to do it.
22:10:57 <uorygl> What's Wikipedia's way? Powers of prime numbers?
22:11:25 <AnMaster> "then put the first coach's load in rooms 3n for n = 1, 2, 3, ..., the second coach's load in rooms 5n for n = 1, 2, ... and so on; for coach number i we use the rooms pn where p is the (i + 1)-th prime number."
22:11:35 <AnMaster> uorygl, it also seems to suggest some other ways
22:11:53 <AnMaster> "You can also solve the problem by looking at the license plate numbers on the coaches and the seat numbers for the passengers (if the seats are not numbered, number them). Regard the hotel as coach #0. Interleave the digits of the coach numbers and the seat numbers to get the room numbers for the guests. The guest in seat number 1729 moves to room 01070209 (i.e, room 1,070,209.) The passenger on seat
22:11:54 <AnMaster> 4935 of coach 198 goes to room 4199385 of the hotel."
22:12:01 <uorygl> That is a strange way of doing it, especially since it puts multiple guests in room 15.
22:12:04 <AnMaster> which is a solution I haven't seem before
22:13:27 <uorygl> I elect to blame you instead. But anyway.
22:13:39 <uorygl> That's a slightly less strange way of doing it.
22:13:41 <AnMaster> uorygl, I reflect that blame so you take the whole of it
22:14:04 <uorygl> I also reflect the blame, so it forms a standing wave in the resonant cavity between us.
22:14:40 <uorygl> (That's what the dentist said!)
22:16:30 * daef sets mode +blame to the company with finite workers that wasn't able to finish the roof of the hotel in finite time :D
22:18:17 <oerjan> uorygl: oh no, you've constructed a blaser
22:20:05 * pikhq sets mode +blame to the punk who claimed this hotel was infinite.
22:20:13 * uorygl feeds energy into the resonant cavity.
22:20:22 <pikhq> There's a whole infinity less hotel than was claimed!
22:20:58 <oerjan> pikhq: heck, there's even a whole infinity _times_ less hotel than was claimed
22:21:53 <uorygl> There's an entire logarithm... um... infinitely less amount.
22:22:03 <oerjan> uorygl: no there isn't!
22:22:34 <cpressey> "A _path_ in a playfield given by a position vector P and a velocity vector V is the set of cells of the playfield addressed by any vector which is the sum P and n * V, where n is any non-negative integer."
22:22:48 <cpressey> (today's Befunge-111 spec excerpt)
22:23:00 <uorygl> You know, the union of all countable ordinal numbers is uncountable, but there's a countable set that has all the countable ordinal numbers as subsets.
22:23:21 <uorygl> Well, let me rephrase that.
22:23:30 <Deewiant> cpressey: You probably want "sum of" there
22:23:37 <oerjan> uorygl: um not if you use von Neumann representation, i think
22:24:04 <uorygl> The union of all countable ordinal numbers is countable, but there's a countable set such that for every countable ordinal number, that number is order isomorphic to a subset of that countable set.
22:24:13 <cpressey> Also, I think that's the first time I've ever heard Hilbert referred to as "Dave".
22:24:35 <oerjan> uorygl: right, like the rationals
22:24:58 <oerjan> there isn't a _well-ordered_ such set, though
22:24:59 <uorygl> Wait, how do I know that the rationals are such a set?
22:25:15 <oerjan> uorygl: because i said so, silly
22:25:28 <uorygl> Because every countable ordinal number is the limit of countably many ordinal numbers.
22:25:34 <uorygl> Whew. Disaster averted.
22:26:02 <oerjan> uorygl: um that's not the argument i know, and i don't see how that helps
22:26:35 <uorygl> Well, if you have a set of rational numbers, you can compress it into a set of rational numbers in the interval [0,1).
22:26:46 <oerjan> especially since, if it's a successor ordinal, you have to include itself in the limit
22:26:59 <uorygl> Well, if it's a successor ordinal, it's obvious.
22:27:05 <uorygl> Take the previous ordinal and stick one more on the end.
22:27:30 <uorygl> If it's a limit ordinal, map the first ordinal in the sequence into [0,1), the next into [0,2), the next into [0,3), and so on.
22:28:01 <oerjan> uorygl: the argument i know start with the obvious fact that if you have a countable ordinal, there is an actual _counting_ of it, i.e. a sequence containing all its elements.
22:28:32 <uorygl> Oh, so you can just take the enumeration and pick a rational number for each element.
22:28:33 <oerjan> uorygl: hm that might work
22:29:57 <oerjan> uorygl: i am not _entirely_ convinced that your method works, you would need it to be a limit of an _increasing_ sequence of smaller ordinals
22:30:27 <uorygl> Well, if you have a non-increasing sequence, you can just toss out every element that isn't the highest one so far.
22:31:28 <uorygl> So. I am now a constructive proof that omega^omega can be embedded in the rationals.
22:32:11 <oerjan> uorygl: you need a constructive way to pick a counting, though
22:32:18 <oerjan> (which exists, of course)
22:32:31 <uorygl> You are now a constructive proof that omega^omega is countable.
22:32:54 <uorygl> Actually, you're an enumeration of omega^omega.
22:32:58 <oerjan> I am now confused by your anthropomorphism.
22:33:41 <lament> zygohistomorphic anthropomorphism?
22:34:00 <oerjan> well, omega^omega in cantor normal form consists of finite sums of things of the form omega^n * m, where n and m are both finite
22:34:13 <oerjan> *elements in cantor normal form
22:36:44 <oerjan> hm, you can identify that with the natural numbers by using the products p_n ^ m
22:36:55 <oerjan> p_n = n'th prime number
22:37:26 <uorygl> oerjan: you're an enumeration; you're supposed to start stating numbers.
22:38:28 <oerjan> n should start at zero so we get omega^0, m should start at 1
22:39:27 <uorygl> Have you stated an ordinal number yet?
22:39:33 <oerjan> 0, 1, omega, 2, omega^2, omega + 1, omega^3,
22:40:30 <oerjan> 3, omega*2, omega^2 + 1, omega^4, omega + 2,
22:42:02 <uorygl> This could get tiring.
22:42:19 <oerjan> omega^5, omega^3 + 1, omega^2 + omega, 4, omega^6,
22:42:51 <uorygl> I should come up with an actual mapping.
22:43:13 <oerjan> well my counting is clear enough, anyway
22:43:44 <uorygl> Okay, I'll describe the second half of the mapping first.
22:45:53 <oerjan> there is a way to choose based on continued fractions, which has the advantage (iirc) that if you always choose another number between any two, you get to use _all_ the rationals. of course that won't happen here, anyway.
22:46:49 <oerjan> basically whenever p1/q1 and p2/q2 are neighbors, the next between them is (p1+p2)/(q1+q2), iirc
22:46:50 <uorygl> Set a/d = 0/1, b/e = 1/2, and c/f = 1/1. If the list is empty, return b/e. Otherwise, remove the first element of the list. If it was "down", set a/d and b/e to b/e and (a+b)/(d+e), respectively. If it was "up", set b/e and c/f to (b+c)/(e+f) and b/e, respectively. Repeat.
22:48:02 <oerjan> come to think of it, i'm sure this (and the resulting tree) has been discussed on this channel before
22:49:10 <uorygl> Hey, you described my algorithm a second before I described mine.
22:49:45 <AnMaster> <cpressey> "A _path_ in a playfield given by a position vector P and a velocity vector V is the set of cells of the playfield addressed by any vector which is the sum P and n * V, where n is any non-negative integer."
22:49:45 <AnMaster> <cpressey> (today's Befunge-111 spec excerpt)
22:49:46 <oerjan> hm to get all rationals and not just (0,1), you'd want sort of -1/0 and 1/0 at the end, i thikn
22:49:47 <Gregor> On a scale from "lame" to "inhumanly terrible", how lame is http://hackiki.org/favicon.ico
22:50:25 <uorygl> If your scale also included "perfect", it would be that.
22:50:31 <uorygl> But I'm violating the rules just by saying so.
22:50:34 <oerjan> Gregor: i was hoping for something with an axe in it
22:50:52 <uorygl> oerjan: start at 0, and initially do nothing but add or subtract 1.
22:50:53 <oerjan> for hacking, of course
22:51:33 <oerjan> uorygl: yeah at the ends, it's just that adding and subtracting 1 is equivalent to using -1/0 and 1/0 as hypothetical neighbors, isn't it
22:52:02 <AnMaster> Deewiant, I don't get what the point of that bit is
22:52:14 <AnMaster> I mean, I understand what it means once adding the missing "P"
22:53:01 <Deewiant> Anyway, he defines what a path is. There is no point beyond that in that excerpt.
22:53:26 <uorygl> oerjan: oh, that's very true.
22:53:36 <AnMaster> Deewiant, why do we need it though
22:53:48 <Deewiant> Why we need it, I don't know; presumably so that he can say things like "the next funge-space cell in the IP's path"
22:54:07 <uorygl> Though the median-thingy of -1/0 and 1/0 is 0/0, not 0/1.
22:54:11 <uorygl> That probably makes sense.
22:54:52 <oerjan> so you'll need to include 0/1 at the start, then
22:54:57 <AnMaster> uorygl, what are you doing there dividing with zero!?
22:54:58 <uorygl> Those endpoints don't give you a defined starting point, but every rational number between them does give you a defined starting point.
22:55:10 <oerjan> AnMaster: i suggested it
22:55:17 <uorygl> AnMaster: / doesn't mean division here!
22:55:20 <AnMaster> oerjan, why and what does it actually mean
22:55:53 <oerjan> AnMaster: a "formal" fraction, to start enumerating the rest of the rationals in any way you want
22:56:01 <AnMaster> uh, don't you usually write that (x_1,x_2,...,x_n)?
22:56:21 <uorygl> Yes, but we're writing it x/y instead of (x,y).
22:56:31 <uorygl> I'm guessing "formal" means "pretend" in this case.
22:56:34 <oerjan> MissPiggy: it has the form of a fraction, but not the meaning?
22:56:52 <uorygl> There, that's what it means. Having the form of a fraction but not the meaning.
22:57:23 <AnMaster> oerjan, are you doing cantor's zig-zag thingy?
22:58:01 <oerjan> AnMaster: no, this is a different way, which can be adapted to put _any_ countable ordered set into the rationals
22:58:47 <AnMaster> oerjan, what is this way called?
22:59:00 <oerjan> AnMaster: i'll try to find the wp article
23:00:52 <oerjan> http://en.wikipedia.org/wiki/Stern%E2%80%93Brocot_tree i think
23:02:12 <uorygl> Construct a binary search tree out of the set. Map it onto its Stern-Brocot tree.
23:02:30 <pikhq> Just for kicks, I thought I'd write enough of a libc to support LostKng.c
23:02:31 <AnMaster> oerjan, cantor's zig-zag is a lot easier to follow
23:02:47 <oerjan> AnMaster: for enumerating rationals, yes
23:07:22 <lament> write down a rational, then interpret the resulting ASCII string as a base-256 numeral
23:08:41 <MissPiggy> fuck cantor he was insane and a liar
23:09:11 <MissPiggy> I have disproved cantors "theorem" using magic sequences
23:09:44 <oerjan> there are no sets. there is just a vast sea... of cantor trolls.
23:10:36 <oerjan> well some cranks, too.
23:11:00 <oerjan> they are indistinguishable by the fundamental quantum principle known as poe's law.
23:11:12 <cpressey> AnMaster: The concept 'path' comes up in the spec a couple of times and it needs an explanation (in wrapping, semicolons, and ' and s and k)
23:11:37 <oerjan> in fact several symmetries will interchange them, such as turning the sea upside down.
23:12:23 <cpressey> oerjan: Which Poe is that named after? Edgar Allen?
23:13:38 <oerjan> cpressey: it is hard to determine that, because the law is metacircularly self-applying
23:15:53 <oerjan> ah there _is_ a poe's law named after edgar allan too
23:16:10 * pikhq can has LostKng in 92K.
23:18:28 <pikhq> Hmm. Any idea how much memory LostKng actually needs?
23:18:31 <AnMaster> <lament> write down a rational, then interpret the resulting ASCII string as a base-256 numeral <lament> fuck cantor <oerjan> how crude :D <-- wonderful
23:19:15 <cpressey> Of course, ASCII is overkill for that. You could write it down in binary, requiring only a 3-symbol alphabet.
23:19:37 -!- tombom_ has quit (Quit: Leaving).
23:19:51 -!- scarf has quit (Remote host closed the connection).
23:19:55 <lament> two symbols - digit and separator
23:20:27 <pikhq> AnMaster: LostKng.
23:20:38 <pikhq> I want to know how many *Brainfuck cells* it needs.
23:20:38 <AnMaster> pikhq, yep. But if compiled to C
23:20:50 <pikhq> And I don't want to play *every branch of the game*.
23:21:10 <pikhq> I still don't want to play *every branch of the game*.
23:21:27 <AnMaster> pikhq, I have no idea how to figure out
23:21:39 * pikhq shall try to grep for whatever esotope uses for relative memory accessing
23:21:42 <cpressey> Need a BF abstract-interpreter
23:22:25 <pikhq> AnMaster: I've got the C code from esotope-bfc here.
23:22:27 <AnMaster> pikhq, it won't help past a unbalanced loop
23:22:37 <pikhq> I'm wondering if it even *uses* relative memory accessing.
23:22:50 <pikhq> If it doesn't, then I can just grep for the largest number used.
23:22:53 <cpressey> Yeah, I'm thinking, abs interp of BF is kind of hard for unbalanced loops
23:23:30 <pikhq> AnMaster: LostKng after optimisation of it through esotope?
23:23:45 <pikhq> I at least didn't *see* any.
23:23:56 <AnMaster> pikhq, do you know what to look for?
23:24:16 <AnMaster> iirc it uses a pointer p as "current" or such
23:25:07 <cpressey> Oh man. Deewiant: Does mycology test for y's ability to perform "pick"? I sure hope not.
23:25:31 <pikhq> AnMaster: It uses "p" as a pointer to the array and does everything in terms of it.
23:25:34 <AnMaster> cpressey, of course it does. And it's a useful feature
23:25:53 <AnMaster> pikhq, as soon as it move p you change the relativeness
23:26:03 <pikhq> So, I can look for actual modification of p.
23:26:31 <pikhq> Yup, it actually modifies p.
23:26:59 <pikhq> It doesn't have to.
23:27:18 <pikhq> There's only 645 modifications of p in the program.
23:27:19 <cpressey> Deewiant: Um, given that y can push a variable number of value onto the stack, ... how does it work???
23:27:28 <AnMaster> pikhq, similar for in-between iirc
23:27:34 <AnMaster> around 700 or so I think there
23:27:43 <Deewiant> cpressey: It uses 0y first to see how many values it pushes, and assumes that it doesn't change when you do another 0y.
23:28:06 -!- MizardX- has joined.
23:28:18 <Deewiant> Which is a reasonable assumption, although I suppose some OS might allow messing with a program environment variables behind its back
23:28:34 <AnMaster> Deewiant, I dread EVAR + ATHR + y
23:28:38 <pikhq> 30,000 it is, then.
23:29:04 <Deewiant> I suppose some interpreter might also modify its own environment variables randomly but... meh
23:29:30 <AnMaster> Deewiant, oh and gdb to mess with the env vars
23:29:58 <cpressey> "1 cell containing the number of bytes per cell (global env). aka cell size. Typically 4, could also be 2, 8, really really large, infinity, etc." <-- Wow, an actual contradiction.
23:30:23 <cpressey> Or at least, a very undefined corner: 16-bit cells.
23:30:30 -!- MizardX has quit (Ping timeout: 260 seconds).
23:30:30 <Deewiant> AnMaster: Yeah, I suppose you're right
23:30:35 -!- MizardX- has changed nick to MizardX.
23:30:48 <AnMaster> cpressey, they are forbidden iirc
23:30:48 <Deewiant> cpressey: Any size works decently well
23:31:07 <AnMaster> cpressey, well I suggest -1 there for "bignum"
23:31:14 <AnMaster> since well, we don't have "infinity"
23:31:21 <Deewiant> Mycology requires at least 10 bits though, since it's so big
23:31:21 <cpressey> I also like how "infinity" is mentioned, but not how to represnt it.
23:31:34 <AnMaster> cpressey, there is no MAX_BIGNUM
23:31:35 <Deewiant> If you have a floating-point Funge?
23:31:55 <AnMaster> for floating point: I pitty those programmers
23:32:06 <AnMaster> who have to code in it and who have to use it
23:32:26 <Deewiant> Mycology would probably run fine with a floating-point Funge
23:32:38 <AnMaster> Deewiant, depends on precision
23:32:49 <Deewiant> Yes, of course, a 1-bit wouldn't work.
23:32:54 <AnMaster> Deewiant, also division would give strange results
23:33:33 <Deewiant> For certain values of "strange"
23:34:00 <AnMaster> Deewiant, strange as in "mycology would probably bail out early on if division didn't produce expected results
23:34:20 <Deewiant> Can't remember if it tests floored division
23:36:42 -!- MigoMipo has quit (Remote host closed the connection).
23:41:32 -!- MigoMipo has joined.
23:43:28 <pikhq> Hooray, ridiculously small LostKng.
23:52:37 <fizzie> Many (or some, anyway) bignum systems have a MAX_BIGNUM; for example, GMP's documented integer format on a 32-bit system can't be larger than something like 2^(32*2^31); and for a 64-bit system, typically it's actually still just 2^(64*2^31), which might even fit in the memory of a reasonable system; it's just 32 gigabytes.
23:52:57 <fizzie> It might not be very user-friendly to have y return a 32-gigabyte cell value, though.
23:54:03 <Sgeo> Why would a bignum have a maximum value?
23:54:34 <fizzie> Because of the implementation. GMP's is just a dynamic-length array of 32- or 64-bit "limbs", and the length field is a regular signed 32-bit int.
23:56:51 -!- MigoMipo has quit (Remote host closed the connection).
23:57:08 <Gregor> A number that takes 32 GB is a very big number :P
23:57:25 <fizzie> Gregor: Only 16 GB! I miscalculated there.
23:57:36 <fizzie> (One of the bits of the limb count is used as a sign bit.)
23:57:45 <Gregor> A number that takes 16 GB is a very big number :P
23:59:09 <fizzie> Well, unless you want to reserve the description "very big" for Graham's number and his friends.