00:00:29 <oerjan> for each hole at the n level, you must know what hole it is at the n+1 level
00:01:21 <oerjan> hm this actually gives a correspondence with some arbitrary choice in the numbering of the n+1 level holes
00:03:08 <oerjan> perhaps one should choose some consistent ordering of the holes, like by x then y coordinate
00:03:55 <oerjan> ordering by infinite path
00:04:29 <oerjan> ah, if so this is one detail which needs to be more careful with quadtrees than bitrees
00:04:46 <oerjan> you can easily order holes in bitrees by linear position
00:05:16 <oerjan> but for quadtrees you cannot use just x then y if you want to keep things in the same region together.
00:05:30 <zzo38> One computer game I made, near the end someone gives you a bunch of stuff (ammunition, health points, torches, money, multimeter, etc) and tells you that you need it to complete the game, and then leaves (through a passage which is locked if you try to follow him). Actually, none of that stuff will help you in the least bit. It will doom you if you are not careful!
00:05:37 <elliott> "The resulting ordering can equivalently be described as the order one would get from a depth-first traversal of a quadtree; because of its close connection with quadtrees, the Z-ordering can be used to efficiently construct quadtrees and related higher dimensional data structures."
00:06:04 <oerjan> elliott: just think of the position as an infinite list of NW, NE, SW, SE tags
00:06:33 <elliott> oerjan: oh hm i remember seeing this in oleg's thing...
00:06:41 <elliott> We define a `higher-order' zipper:
00:06:41 <elliott> > data ZipperD m term dir = ZD{ zd_z:: Zipper m term dir,
00:06:41 <oerjan> and order them by that (with the list going infinitely leftwards)
00:06:42 <lambdabot> <no location info>: parse error on input `}'
00:06:42 <lambdabot> <no location info>: parse error on input `data'
00:06:49 <elliott> oerjan: and then the 2-hole zipper is defined as a pair of those
00:06:52 <elliott> where the paths are kept in sync or something
00:07:02 <elliott> (don't worry, nothing else oleg said was useful :))
00:07:24 <elliott> (well, it might be, but it's based on his continuation stuff and
00:07:26 <elliott> > data Zipper m term dir =
00:07:27 <elliott> > Zipper dir term ((Maybe term, dir) -> CCW m (Zipper m term dir))
00:07:27 <elliott> > type CCM m term dir a = CC (PS (Zipper m term dir)) m a
00:07:27 <elliott> > type CCW m w = CC (PS w) m w
00:07:27 <Ngevd> Wow, Assassin's Creed Revelations comes out TODAY
00:07:28 <lambdabot> <no location info>: parse error on input `data'
00:07:28 <lambdabot> <no location info>: parse error on input `type'
00:07:28 <lambdabot> <no location info>: parse error on input `|'
00:07:28 <lambdabot> Not in scope: data constructor `Zipper'Not in scope: `dir'Not in scope: `te...
00:07:28 <lambdabot> <no location info>: parse error on input `type'
00:07:30 <elliott> is not very comprehensible to me)
00:07:51 <elliott> oerjan: ok, so i'm with you, I think
00:08:18 <oerjan> elliott: z-order sounds like what i'm thinking of, yes
00:08:35 <elliott> have to say, z-order is one of the ugliest curves, visually :P
00:09:08 <oerjan> with z-order all holes that are in the same subregion will be consecutive in the order
00:10:05 <oerjan> so then you can think of this as a grouping operation
00:10:18 -!- copumpkin has joined.
00:11:15 <elliott> oerjan: i'm still not sure what this actually looks like, though :P
00:11:30 <oerjan> well let's say we have holes 1,2,3,4,5 by order
00:12:22 <oerjan> and 1 is in its own region, 2 and 3 are the NW and SW of the next upper region, and 4 and 5 are the NW and SE
00:12:36 <zzo38> Make a computer game, in one level, there is an invisible bomb that kills you so much that you have to restart the entire game.
00:13:37 <oerjan> then the embedding can be given as a 3-element list, each element telling the size of its group, how the elements are embedded, and what are the quadtrees of the non-hole siblings
00:14:15 <oerjan> 1 would have 3 siblings, 2 and 3 would have 2, as would 4 and 5.
00:14:53 <oerjan> and a cursor would be itself a list of such embedding lists
00:15:42 <oerjan> the descriptors for the embedding would be hairy though
00:16:05 <elliott> oerjan: the essential performance problem is, if we have two cursors really far away from each other, then a modification in one causes massive changes in the other, right?
00:16:16 <oerjan> well for 1 it would be fairly similar to our old single-hole stuff
00:16:20 <elliott> because the path to the other cursor has to be rewritten, so to speak?
00:16:57 <oerjan> i'm guessing this isn't all the correct terminology
00:17:22 -!- Taneb has joined.
00:17:24 <oerjan> i used "multicursor" above
00:17:37 <elliott> I was just thinking, ignore me :)
00:18:38 <Taneb> Gregor, how goes the IOCCC?
00:19:21 <elliott> oerjan: but ok, I'm still following
00:19:50 <Gregor> Taneb: Haven't looked at it since my last message.
00:20:29 -!- Ngevd has quit (Ping timeout: 252 seconds).
00:20:32 -!- augur has joined.
00:20:42 <oerjan> trying to make this more concrete so let me write 3 levels of positions for all the holes. 1: nwnwnw, 2: nwnenw, 3: nwnesw, 4: nwsenw, 5: nwsese
00:22:02 <oerjan> this being level 0, at level 1 the holes would be nwnw, nwne, nwse
00:22:18 -!- augur has quit (Remote host closed the connection).
00:22:29 <oerjan> (just cut off the last path element)
00:23:20 <oerjan> so if we make some hideous constructors...
00:24:05 <Gregor> Taneb: But be not concerned: It will be amazing.
00:24:15 <Gregor> Although I'd still like to find a good counter.
00:26:50 <Gregor> Also, I'm tallying the points for Whose Line is it Anyway.
00:26:50 <oerjan> [[FromNW {neSibling = ..., swSibling = ..., seSibling = ...}, FromNWNE { swSibling = ..., seSibling = ... }, FromNWSE { neSibling = ..., swSibling = ... }], [fromNWNESE { swSibling = ... }], [fromNW { ... }], ... {- only single hole contexts from here on -} ]
00:27:05 <elliott> oerjan: you switched to lowercase :)
00:27:10 <oerjan> elliott: that would be a possible multicursor format
00:27:19 <elliott> oerjan: is fromNWNESE meant to be a function?
00:27:26 <elliott> oerjan: afaict you want an infinite number of constructors
00:27:28 <Taneb> Gregor, it was an interpreter right?
00:27:47 <Gregor> Taneb: It's a JIT now.
00:27:57 <oerjan> elliott: no they're finite, there are only 15 possibilities
00:28:12 <elliott> oerjan: why 15, exactly? seems weird...
00:28:20 <Taneb> Gregor, any specs for the language?
00:28:31 <oerjan> because you cannot have more than 4 holes merging at the same level, and 0 holes doesn't need a constructor
00:28:36 <Gregor> Taneb: Not 'til it's implemented :P
00:28:50 <Taneb> I anticipate with glee
00:29:04 <Gregor> Taneb: It will look VAGUELY similar to BF with labels.
00:29:04 <elliott> oerjan: will you hate me if i ask how to modify the element at one of the cursors? :P
00:29:12 <elliott> (with the other cursors being able to navigate there and see the new element, ofc)
00:29:14 <Gregor> Taneb: (And jumps to label instead of loops)
00:29:17 <oerjan> all the sibling things would be QuadTree t's, of course
00:30:25 <Taneb> Gregor, you mean, like Bub?
00:31:13 <Gregor> Taneb: Vaguely, and its existence serves the same purpose, but it will be more limited (the language will NOT be TC)
00:31:14 <oerjan> elliott: well modifying the element value is simple enough, since that's part of the MultiContext outside the multicursor
00:31:33 <elliott> oerjan: well, ok, going east then :P
00:31:57 -!- hagb4rd has quit (Ping timeout: 240 seconds).
00:32:02 <Taneb> I know not enough C to write a non-obfuscated program
00:32:09 <elliott> hm if most of the time I won't modify the value in the context, it seems like you could make moving faster if you can skip propagating the changes... but it's probably not a good idea to think about _that_ right now
00:32:48 <oerjan> elliott: there will have to be an additional first identifying level in case there are holes at the exact same level 0 position
00:33:28 <oerjan> that one won't be restricted to merging just 4, but on the other hand there is nearly no other data than their number to track
00:34:20 <elliott> oerjan: this is quite impressively complicated :P
00:34:32 <oerjan> so the first step to going east would be to find your cursor/hole in that list, and checking if there are other holes in the same position.
00:34:55 <oerjan> well yeah i expected it to be, didn't i :P
00:36:12 <oerjan> hm in fact the question of whether there are other holes left is going to appear at all levels, i think
00:36:35 <elliott> oerjan: watch as this algorithm turns out to be strictly more work than not keeping any zippers and just re-traversing the tree for every operation :P
00:36:37 -!- CakeProphet has joined.
00:36:37 -!- CakeProphet has quit (Changing host).
00:36:37 -!- CakeProphet has joined.
00:36:52 <oerjan> elliott: quite possibly :P
00:38:53 <oerjan> and going east can obviously change the order of holes
00:39:20 <oerjan> there needs to be an initial map from holes to holes-in-order :P
00:39:44 <elliott> oerjan: maybe we should ask oleg :P
00:40:25 <zzo38> From something else I found Akinator again, this time I tried entering answers according to my Dungeons&Dragons character. Well, I play in unusual ways so it could not figure it out, until the menu came up where you can select if any of them are the correct answer; I found two correct answers on that menu and selected both.
00:41:25 -!- augur has joined.
00:42:26 -!- augur has quit (Remote host closed the connection).
00:42:43 <oerjan> when leaving a region, you only convert that region to a downward quadtree if there were no other cursors there
00:44:09 <elliott> oerjan: ...you know, I think my non-zipperised circular version is easier to get working than this :P
00:44:22 -!- derdon has quit (Read error: Connection reset by peer).
00:44:25 <elliott> oerjan: it /could/ work with tying the knot, right?
00:45:14 <oerjan> i don't think circular immutable structures are compatible with easy modification
00:45:33 <elliott> oerjan: indeed, I meant non-easy :P
00:46:01 <oerjan> you have to traverse everything to change it to point to the new version
00:46:10 <elliott> oerjan: yes, but you only pay that cost when you force those thunks
00:46:38 <elliott> oerjan: and since modification is quite significantly rarer than access...
00:46:56 <elliott> and other IPs modifying is basically just the same, except you're twiddling the pointers of a far-away thing, not where you are now
00:47:21 <oerjan> but forcing those thunks may still be linear in the number of modifications _anywhere else_
00:47:41 <oerjan> might even stack overflow, that way
00:48:09 <elliott> oerjan: but forcing each individual location is /easy/
00:48:22 <elliott> it's just rewriting N/S/W/E to point at new thunks, mostly
00:49:11 <Gregor> As of 1x09, the points leader is Wayne Brady with 2,001,130.5 points and the episode-average leader is also Wayne Brady, with an average of 285,875.8 points per episode. The log-points leader is (wouldja believe it) again Wayne Brady, with 43 ln-points, and the episode-average log-points leader is Laura Hall with 6.9 in the one episode where she gained points.
00:49:27 <elliott> oerjan: it won't make modifications fast at all, but lookups and moving is /very/ fast
00:49:53 <elliott> oerjan: if you really think it won't work at all just tell me btw, I don't want to waste my time :P
00:50:35 <Gregor> elliott: I decided to add log points because 1,000,000 points really isn't 1,000 times 1,000 points :P
00:50:56 <oerjan> i fear that it will essentially require traversing all versions of everything you haven't looked at yet when you force something
00:52:07 <oerjan> in fact, hm, it may be equivalent in total work to just using array copying
00:52:21 <oerjan> if my worst suspicions are true
00:53:52 <elliott> oerjan: total work, quite possibly (although note that the array data /itself/ will only change in _one_ node)
00:54:05 <elliott> oerjan: but if it's spread over the cost of moving across locations...
00:54:52 <oerjan> i'm not sure it will be spread out, really
00:55:28 <oerjan> it may be that once you look at an unknown cell, you do all the work remaining
00:55:47 <elliott> oerjan: um... you realise that there is not one structure per cell, right?
00:55:51 <elliott> each Location is 128x128 cells
00:56:17 <oerjan> so whenever you look at an unknown location, then
00:57:21 <elliott> that's basically what it'd look like
00:57:30 <elliott> with some too-clever-for-me-right-now knot tying to make the whole thing work
00:57:48 <elliott> i'm not sure it will work at all, but I don't see why it'd necessarily force all work just from one step...
01:00:21 -!- Taneb has quit (Ping timeout: 244 seconds).
01:01:16 <elliott> oerjan: otoh there's no obvious way to generalise this to a structure that isn't this N/S/E/W thing :P
01:01:38 <elliott> oerjan: I think I /know/ how to implement a really efficient space with mutation, so it's really tempting to just give up on persistence
01:15:10 <Gregor> I'm at 510 characters.
01:15:13 <Gregor> Things it does not yet do: JIT.
01:15:34 <oerjan> elliott: there's a 2048 char limit iirc
01:15:35 <Gregor> elliott: 2048 character (with weird counting) limit.
01:16:27 <Gregor> New as of some time a decade ago or something ;P
01:16:51 <elliott> Especially as you can just factor out most of your program into, like, an stdlib file if it's an implementation.
01:17:00 <zzo38> Did Creative Commons used to have CC-SA license but now they only have CC-BY-SA? Can they put it back on?
01:17:27 <Gregor> zzo38: They have both ...
01:17:38 <Gregor> Ohwait, maybe they changed :P
01:18:16 <Gregor> Nope, seems you're right.
01:18:24 <Gregor> SA without BY kinda makes little sense though ...
01:22:17 <zzo38> For what reason is that?
01:23:58 -!- tiffany has quit (Quit: nini~).
01:40:08 <elliott> oerjan: btw did I mention that I need to support n-dimensional spaces, so the same code needs to handle bitrees, quadtrees, octtrees and up generically :P
01:40:57 <elliott> oerjan: I BET IT'S EASY NOW HUH
01:41:36 <oerjan> well i guess the principles are the same as for quadtrees.
01:41:46 <oerjan> for what i described above.
01:42:05 <elliott> that makes it easy then :P
01:43:08 <oerjan> and sooooooooo efficient.
01:46:17 -!- SgeoN1 has joined.
01:58:02 -!- augur has joined.
02:05:03 -!- Zuu has quit (Ping timeout: 244 seconds).
02:07:08 <zzo38> An idea is, allow fields in a record update syntax to have the field name and = omitting the value for some fields, and it makes a function taking arguments in the order which you have specified, such as: join (X { aaa = 6, bbb =, ccc = }) <$> [1..6]
02:07:47 <zzo38> And that it can be used even without constructors; it could be used also with functions or values that are of record type and you just update some fields
02:10:14 <Gregor> Suggested symbols for label, unconditional jump, and conditional jump?
02:11:08 <elliott> Gregor: unconditional jump: / -- it's like a ramp!
02:11:27 <elliott> conditional jump... umm... ≠? it's a ramp with a barrier!!!!!!!!1111111
02:13:02 -!- Zuu has joined.
02:24:11 -!- derrik has joined.
02:25:45 <zzo38> elliott: It is not ASCII, though; in case that matters
02:26:10 <elliott> ASCII shmASCII... that's... that didn't work.
02:33:11 <Gregor> OK, my JIT segfaults on all input.
02:33:13 <Gregor> So not quite perfect yet.
02:34:16 <oerjan> very aggressive memory optimization
02:39:53 <pikhq> Gregor: Why, that's a *perfect* implementation of _|_!
02:40:20 <Gregor> pikhq: Figured out the issue, my prologue-size heuristic algorithm is heuristically wrong :P
02:45:29 <elliott> http://twitter.com/#!/ioccc
02:45:34 <elliott> This... this feels so wrong...
02:45:43 <elliott> http://ioccc.org/index.html#new It's official.........
02:46:52 <zzo38> What are some Applicative which are not Monad?
02:47:08 <elliott> zzo38: most people think ziplist, oerjan disagrees :)
02:47:15 <elliott> Gregor: http://www.ioccc.org/1988/spinellis.hint ;; lol, this is what prompted the "no human intervention" rule
02:47:21 -!- augur has quit (Read error: Connection reset by peer).
02:47:54 <oerjan> hm didn't we find a clearer example last we discussed this
02:48:05 <Gregor> Grrf, where'd my prologue go
02:48:23 <elliott> oerjan: data Applic a = Pure a | forall b. Ap (Applic (b -> a)) (Applic b)
02:48:24 <zzo38> I know about ZipList, but I can seem to defined join for ZipList
02:48:30 <oerjan> or was that just for Functor
02:48:30 -!- augur has joined.
02:48:45 <elliott> oerjan: Functor we had (,) obviously
02:49:08 <oerjan> zzo38: me too, although there are troubles with the monad laws and joining non-rectangular lists of lists if you are not careful
02:49:11 <zzo38> Define join for ZipList doesn't always defined results, the way I did it, however, but the laws they still defined results
02:49:25 <zzo38> oerjan: Yes, those things too
02:50:16 <elliott> oerjan: aren't ZipLists meant to be always infinite?
02:50:54 <elliott> oerjan: well pure makse them infinite :P
02:50:55 <oerjan> but of course if you do that, they're equivalent to Reader Nat
02:51:30 <zzo38> You can have f (f a -> a) and (<*>) :: f (f a -> a) -> f (f a) -> f a
02:51:35 * elliott wishes you could make (idx -> a) arrays fast...
02:51:49 <zzo38> I also seem similarity to stream monad too
02:51:52 <elliott> (idx -> a) -> (idx,a) -> (idx -> a)
02:51:56 <elliott> which would "extend a pattern match"
02:52:45 <oerjan> > scanl1 (zipWith (flip const)) [[1,2,3,4],[5,6],[7,8,9]]
02:52:55 <oerjan> > scanl1 (zipWith (flip const)) [[1,2,3,4]]
02:53:00 <Gregor> Hmmmmmmm, my putchar function is subtly broken ...
02:53:00 <oerjan> > scanl1 (zipWith (flip const)) []
02:53:19 <Gregor> Also, I have (limited) JITting and I'm not even up to 2K /with/ indentation :P
02:53:31 <zzo38> What does "extend a pattern match" mean?
02:53:33 <oerjan> zzo38: i believe that applying that before taking the diagonal gives a working join
02:54:13 <elliott> zzo38: well for instance if (\x -> case x of 0 -> "a"; 1 -> "b"; 2 -> "c"; _ -> undefined) is compiled to a jump table
02:54:25 <elliott> then you could overwrite the "c" case with (2,"d")
02:55:21 <zzo38> elliott: That is what I thought you meant by the type signature; I think you also need (Eq idx)
02:55:48 <elliott> it should probably just work for Int, since it's unlikely that other types would compile down to a jump table :P
02:57:49 <zzo38> O no, you already have the (e ->) monad and has functor, join, acting like the stream monad; and you can have contrafunctor
02:58:29 <zzo38> So you can add another function usable with that, doing that, possibly called update
03:01:11 <oerjan> Gregor: shouldn't you have managed it like in the last hour before the IOCCC deadline, or something.
03:01:28 <Gregor> My JIT just said "Hello World!"
03:02:24 <Gregor> D'aww, doesn't work with -O2 (yet!)
03:03:11 <Gregor> And before you say anything, gimme a break, I'm heuristically determining the size of the function pro/epilogue :P
03:03:59 <elliott> Gregor: I gotta see this thing :P
03:04:05 <elliott> Gregor: Does it have a GC????????
03:04:33 <Gregor> elliott: The language is similar to BF, but worse.
03:04:59 <oerjan> what, not malbolge? how disappointing.
03:07:29 <Gregor> OK, do you REAAAAALLY want to see it? :P
03:08:07 <elliott> Don't post it in the channel
03:08:11 <elliott> Pretty sure that disqualifies you :P
03:13:31 <zzo38> Read the rules to figure out. Maybe it can be done after the deadline; I don't know for sure
03:14:14 <Gregor> I see nothing about sharing, but it's a fair point.
03:14:19 <Gregor> Maybe it'll just have to stay a secret :P
03:14:27 * Gregor tries compiling it with owcc.
03:15:04 <Gregor> lol, it's taking SO LONG to compile :P
03:15:21 <Gregor> To be fair, this file has 2,000 functions in it ...
03:16:54 <Gregor> D'awwwww, doesn't work :(
03:18:59 -!- NihilistDandy has joined.
03:19:12 <Gregor> Wow, owcc is SO SLOW on this code X-D
03:21:29 <Gregor> owcc makes some weird code >_>
03:21:46 <Gregor> This is in its function prologue: 8048110: 68 2c 00 00 00 push $0x2c
03:21:46 <Gregor> 8048115: e8 1f ad 01 00 call 8062e39 <__CHK>
03:21:52 <Gregor> What the hell is it checking for?
03:22:20 <Gregor> Oh, it has stack overflow checking whether you want it or not X_X
03:24:32 -!- augur has quit (Remote host closed the connection).
03:27:04 -!- derrik has left.
03:27:44 <Gregor> Argh, owcc is weird ...
03:27:51 <Gregor> Why does the prologue float :P
03:37:35 -!- elliott has quit (Remote host closed the connection).
03:59:33 -!- Darth_Cliche has joined.
04:20:32 -!- CakeProphet has quit (Ping timeout: 245 seconds).
04:22:14 -!- MDude has changed nick to MSleep.
04:32:24 <zzo38> Is there Haskell library that search paths in the environment variable?
04:32:28 -!- CakeProphet has joined.
04:32:28 -!- CakeProphet has quit (Changing host).
04:32:28 -!- CakeProphet has joined.
04:44:04 -!- SgeoN1 has quit (Quit: Bye).
04:49:44 -!- SgeoN1 has joined.
04:54:45 -!- pikhq has quit (Ping timeout: 240 seconds).
04:54:51 -!- pikhq has joined.
05:15:37 <pikhq> Magic tournaments stopped using Elo? :(
05:17:31 <pikhq> Your score can't go down?
05:17:48 <pikhq> I call bullllllshiiiiiit.
05:18:17 <pikhq> This isn't a competitive scoring system, this is... Madness.
05:19:22 <coppro> it actually seems reasonably sane
05:20:11 <coppro> I know people who played in GPs partially for the amusement of beating a pro and costing them a hundred rating points or so
05:20:12 -!- augur has joined.
05:20:17 <pikhq> Replacing it with a system that rewards, not skill, but playing at all, seems, well, ridiculous.
05:21:22 <coppro> Elo didn't reward skill
05:21:30 <coppro> It ended up rewarding luck
05:21:38 <coppro> and the new system does reward skill somewhat
05:21:45 <pikhq> It at least attempts to. Admittedly, it's less well-suited for Magic than for chess.
05:22:23 <pikhq> But making a homebrew scoring system that is heavily weighted towards merely participating?
05:22:34 <coppro> It's heavily weighted towards winning matches
05:22:40 <coppro> the problem is that it doesn't measure relative skill
05:22:59 <coppro> Elo had the issue that pros didn't want to play with nonpros
05:23:28 <coppro> since losing a single match to mana screw would cost enough rating as to be a serious issue to recover
05:23:43 <pikhq> And it's not like WotC couldn't try and get a system better suited for Magic; I mean, jeeze, given their audience they could probably get a few people to volunteer.
05:23:57 <coppro> and they've stated that for the competitive events and qualifications, they don't want casual events to be a significant factor
05:24:22 <coppro> so they're trying to scale the system such that for most places where the ratings actually matter, you're in a reasonably competitive field
05:37:13 -!- CakeProphet has quit (Ping timeout: 258 seconds).
05:56:31 -!- madbr has joined.
05:57:10 <madbr> hmm, I need to find a name for my language :D
06:06:22 <madbr> I was thinking of something that stresses how it expands continuously
06:06:33 <madbr> like "Fatmouse" or something
06:08:29 <quintopia> there isnt a language called Juidhejsbcuska yet
06:08:39 <madbr> """FATMOUSE IS THE NEW SCIENCE OF MATHEMATICS. THE FATMOUSE THEOREM IS:
06:08:39 <madbr> FATMOUSE + YOU = FATMOUSE
06:10:47 -!- oerjan has quit (Quit: Good night).
06:16:50 <madbr> or maybe it could be called "juffo-wup"
06:22:14 -!- NihilistDandy has quit (Quit: http://haskell.org).
06:34:01 -!- Ngevd has joined.
06:38:53 <lambdabot> Not in scope: `see'Not in scope: `that'
06:38:56 <lambdabot> Not in scope: `google'Not in scope: `it'
06:47:11 -!- Taneb has joined.
06:51:23 -!- Ngevd has quit (Ping timeout: 260 seconds).
06:56:21 -!- SgeoN1 has quit (Ping timeout: 240 seconds).
06:56:32 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.).
06:59:34 -!- SgeoN1 has joined.
07:11:03 -!- Taneb has changed nick to Ngevd.
07:22:16 <lambdabot> http://en.wikipedia.org/wiki/It_(novel)
07:22:16 <lambdabot> Title: It (novel) - Wikipedia, the free encyclopedia
07:23:03 -!- CakeProphet has joined.
07:23:03 -!- CakeProphet has quit (Changing host).
07:23:03 -!- CakeProphet has joined.
07:24:17 <CakeProphet> I have achieved the current fastest instantaneous velocity in my lifetime, relative to the inertial reference frame of the surface of the earth.
07:24:43 <pikhq> What, first time on an airplane?
07:24:57 <CakeProphet> no I've never been on a maglev or an airplane.
07:25:38 <pikhq> Careful, man. The department of revenue acquisition, I mean, the police, might catch you.
07:25:38 <HackEgo> ? \ @ \ addquote \ allquotes \ calc \ define \ delquote \ etymology \ forget \ fortune \ frink \ google \ json \ k \ karma \ karma+ \ karma- \ learn \ log \ logurl \ macro \ marco \ paste \ pastekarma \ pastelog \ pastelogs \ pastenquotes \ pastequotes \ pastewisdom \ ping \ prefixes \ qc \ quote \ quotes \ roll \ runperl \ toutf8 \ translate \ translatefromto \ translateto \ units \ url \ wl \ word \ wtf
07:25:55 <CakeProphet> pikhq: no it was on a basically always cop-free stretch of road.
07:26:38 <HackEgo> 704088/3125 (exactly 225.30816)
07:27:10 <pikhq> I'm rather confident my car can't do that.
07:27:25 <Ngevd> I'm rather confident my car doesn't even exist
07:27:30 <pikhq> Though, my car is honestly a bit scary around 75, so...
07:27:52 <CakeProphet> pikhq: it took an insanely wasteful amount of gas. basically full throttle for about 30 seconds to creep slowly from 135 (the previous maximum) to 140
07:28:06 <CakeProphet> 130 is the speed it can comfortably accelerate to before becoming difficult to go faster.
07:28:41 <pikhq> You and your not-completely-terrible vehicle.
07:28:41 <CakeProphet> perhaps one day I'll travel in one of these flying machines and go faster.
07:28:54 <CakeProphet> pikhq: the engine and transmission are wonderful
07:28:58 <CakeProphet> it's just... everything else that I've had to replace.
07:29:11 <CakeProphet> and body damage from THAT STUPID FUCKING DEER
07:29:39 <Ngevd> I have been in many flying machines
07:30:47 <CakeProphet> pikhq: it's amazing the difference between a small common 4 cylinder engine (my previous car was a 2.1L I believe) and 3.0 liters of displacement in a V6
07:31:05 -!- zzo38 has quit (Quit: Not lose the game please).
07:33:04 <fizzie> Try lifting your foot up a bit next time, that might work.
07:33:18 <CakeProphet> fizzie: well I mean from a complete stop for example.
07:33:30 <CakeProphet> if I push down too little I'm not going much of anywhere
07:33:55 <CakeProphet> and then just a tiny fraction further and I'm moving forward very quickly.
07:35:55 <CakeProphet> enough about car shit. no one cares. even worse, all the scandinavians are appalled at my crass recklessness.
07:37:15 <CakeProphet> by "all the scandinavians" I mostly mean Vorpal if he were here. that counts right?
07:40:16 <CakeProphet> the rest are probably magical elves and not actually Scandinavians.
07:41:57 <fizzie> Personally I just think it's a bit weird; and also sort-of wish you would in fact get caught by the po-po; it would make for a good story in the traditional "look how clever I am, I know where the police are, I can flaunt my flaunt-flaunt and drive as fast as I want, ha-ha, they suck => COMEUPPANCE" plotline.
07:42:48 <CakeProphet> it's not so much that I believe I have smugly outwitted the law
07:43:07 <Ngevd> I'm glad I live in such a place where I don't need a car
07:43:32 <fizzie> Should what, live in such a place, or need a car?
07:43:37 <Ngevd> I will have shower now
07:43:41 -!- Ngevd has quit (Quit: CLEAN).
07:43:57 <CakeProphet> fizzie: uh, neither? you should be glad you live in a etc etc
07:44:08 <fizzie> I don't know, somehow I just didn't grok that.
07:44:32 <fizzie> "Kevin Richardson proposed the idea of rewarding drivers travelling at or below the posted limit with a cash lottery, funded by the fines on speeding drivers. This was demonstrated in Stockholm, Sweden, in November 2010.[25]"
07:46:04 <CakeProphet> so I can speed and just not get caught and I'm rewarded anyway.
07:46:30 <fizzie> Sure. Well, if you're also lucky enough to win the lottery.
07:46:49 <CakeProphet> rewarded with the opportunity of luck, I suppose.
07:48:05 <fizzie> It's like those "you may already be a winner!" snailmail-spams.
07:48:28 <fizzie> You win the right to have a chance to win.
07:49:15 <CakeProphet> though from what I understand it's a bit easier to get caught speeding in Sweden.
07:50:29 <CakeProphet> oh, also, I realized one of the reasons for higher collission rate in the US compared to European countries could be that we have more intersections and virtually zero roundabouts.
07:51:08 <fizzie> Possibly. From what I hear, it's reasonably easy here too. They keep plonking those cameras here and there (of course there's crowdsourced maps of them for navigators and all that), and I suppose the police are reasonably random about where they stage speed-measuring sessions, though from what I understand there are still some "favourite spots" too.
07:51:29 <CakeProphet> US cops are all about favorite spots. it's stupid.
07:51:44 <CakeProphet> I've been driving the same roads for about 2-3 years now and they're always in the same spots.
07:52:24 <fizzie> Also Finland used to have virtually zero roundabouts, but lately (last decade or so?) they've been putting in those mini-roundabouts just about everywhere.
07:52:38 <CakeProphet> also, in Georgia specifically, local officers are /not allowed/ to stop you for speeding unless you're going 15 over.
07:52:59 <fizzie> "A "modern roundabout" is a type of circular junction that was developed by the UK's Transport Research Laboratory[citation needed] in the mid twentieth century,[citation needed] in which road traffic must travel in one direction around a central island and priority is given to the circulating flow. Signs usually direct traffic entering the circle to slow down and give the right of way.[7]
07:52:59 <fizzie> These junctions are called "modern roundabouts" in order to emphasise the distinction from older circular junction types which had different design characteristics and rules of operation.[citation needed] Older designs, called "traffic circles" or "rotaries", are typically larger, operate at higher speeds, and often give priority to entering traffic.[7] In some cases, the term "traffic circle" has been used to describe roundabouts in North America. The original
07:53:00 <fizzie> ly British term "roundabout" is now often [7] used in North America too by officials and engineers, but it remains rare in general US usage though commonplace elsewhere.[8][9]"
07:53:03 <fizzie> Right, those 'modern'-style ones.
07:53:17 <fizzie> Lots of [citation needed] there.
07:54:00 <CakeProphet> offering priority to entering traffic sounds like a bad idea.
07:54:17 <CakeProphet> from the standpoint of reducing congestion.
07:54:19 <monqy> I've only ever heard them called roundabouts
07:54:55 <fizzie> There's one old (and old-fashioned) "traffic circle" in Helsinki; it's big, it's got two lanes in the circle, and it has half a dozen sets of traffic lights in it.
07:55:35 <fizzie> It's more like a short circular road than a junction.
07:55:36 <pikhq> Likewise. "Traffic circle" to me only really refers to those godawful traffic-lighted things around the East coast, particularly Massachusetts.
07:55:58 <monqy> was it here that the magic roundabout was brought up a while ago? that thing's amazing
07:56:22 <pikhq> I really, really wish roundabouts were more prevalent. Traffic lights *suck*.
07:57:20 <monqy> http://en.wikipedia.org/wiki/Roundabout_Appreciation_Society good
07:58:47 <pikhq> fizzie: Also, RE: speeding. Flaunting the police is a bit more understandable when you realise that they don't function to increase safety here (and in many cases *reduce* it), but rather just to get cash.
07:59:37 <fizzie> http://users.ics.tkk.fi/htkallas/roundabounda.jpg
08:00:34 <fizzie> According to fi.wikipedia, that one's Finland's first "traffic circle".
08:05:56 <fizzie> One thing I've sometimes wondered is whether there is any explicit law against going around and around and around( and around)* in one of those things.
08:06:47 <CakeProphet> fizzie: probably not necessary as no one woukd waste the time / fuel.
08:07:30 <fizzie> Guess so, and it'd be somewhat silly to make it a crime to accidentally miss your exit and go the full circle at least once.
08:09:51 <fizzie> Also in the category of "what?": they're having this competition in Finland, where people (six at the beginning) sit inside this mini-excavator at a shopping centre, and the one who sits in it the longest wins the excavator. At the moment the (two remaining) competitors have spent 166 days in their mini-excavators.
08:11:10 <fizzie> Well, it's organized by the company selling those things, I suppose they wanted some visibility.
08:11:22 <fizzie> http://www.kaivuriskaba.fi/index.php?page=1032&lang=2
08:11:27 <monqy> how do people spend 166 days in their mini-excavators
08:12:13 <monqy> do mini-excavators have toilets
08:12:25 <fizzie> I think they have a total of one hour per day they can be outside the excavator.
08:12:36 <fizzie> For bathroom breaks and so on.
08:15:16 <fizzie> I'm not entirely certain they expected the thing to last this long.
08:17:00 <pikhq> I'd imagine they only really expected it to last a week, tops.
08:17:25 <monqy> I can't imagine sitting in the excavator more than a couple of minutes
08:17:40 <monqy> I'll never win prizes
08:18:59 <pikhq> I could only imagine it if I gave approximately G_64 more shits than I do.
08:25:14 <madbr> Ok decided to call my language Fatmouse
08:27:38 <madbr> http://esolangs.org/wiki/Fatmouse
08:28:14 <madbr> Kinda like it too... my first language that's not some kind of broken functional-ish language
08:29:22 <madbr> Can't be implemented until I figure out how to garbage collect it though :D
08:33:38 <CakeProphet> madbr: sir, those conditions at the end of statements
08:34:05 <monqy> how does statement evaluation order work? nondeterministic?
08:34:18 <madbr> in theory it doesn't matter
08:34:47 <madbr> nah, no side effects
08:35:13 <madbr> there's i/o but it's not affected by evaluation order either
08:35:23 <CakeProphet> madbr: just do a reference count garbage collection. so basically if a variable is part of a condition that's +1 refcount
08:35:44 <CakeProphet> when a conditional statement is executed that's -1 refcount.
08:36:00 <madbr> cake: it's not quite that simple as far as I can tell :D
08:36:35 <madbr> the problem is that a variable can be collected when it can't cause any more other statements to turn true in turn
08:37:01 <madbr> that would be easy except for the variable arrays
08:37:59 <madbr> for instance in the brainfuck example, none of the statements ever become obsolete
08:39:04 <madbr> essentially it calculates the new state from the old state. the interpreter has to figure out what's part of the old state and thus unreachable and garbage collectable, and what isn't
08:39:14 <madbr> but that seems to depend on variable indices
08:39:25 -!- myndzi has joined.
08:39:44 -!- myndzi has quit (Client Quit).
08:39:56 -!- myndzi has joined.
08:40:38 <madbr> for instance icnt.0 becomes obsolete once the 4 lines that depend on it have run
08:40:58 <CakeProphet> okay, so what's the problem with my scheme?
08:41:10 <madbr> dunno, I'll think about it
08:41:13 <CakeProphet> just treat each variable index as a unique variable to be garbage collected.
08:42:48 <CakeProphet> the refcount would be a compile-time thing essentially.
08:42:58 <CakeProphet> well, no, probably needs to be runtime I guess.
08:43:49 <CakeProphet> essentially whenever a variable (or array index) is "created" it then needs to make a count of how many times it's referenced in a conditional.
08:44:03 <CakeProphet> then when a conditional that references the variable executes, you decrement its refcount
08:44:08 <CakeProphet> when it reaches 0, you can garbage collect.
08:44:10 <madbr> but that count might be infinity
08:44:29 <CakeProphet> last I checked we don't write infinite programs very often.
08:44:35 <madbr> cake: actually that sounds like a good idea
08:45:20 <madbr> but yeah I mean a same variable can be used multiple times by a statement I think
08:46:23 -!- madbr has quit (Quit: Radiateur).
08:58:55 -!- monqy has quit (Quit: hello).
09:01:49 -!- Ngevd has joined.
09:11:07 -!- copumpkin has quit (Ping timeout: 240 seconds).
09:11:34 -!- derdon has joined.
09:11:42 -!- copumpkin has joined.
09:34:09 -!- sebbu2 has changed nick to sebbu.
09:49:11 -!- ais523 has joined.
09:57:30 -!- copumpkin has quit (Ping timeout: 258 seconds).
09:57:56 -!- copumpkin has joined.
10:05:09 -!- Ngevd has quit (Ping timeout: 248 seconds).
10:37:31 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
10:44:13 -!- GreaseMonkey has quit (Quit: The Other Game).
10:50:54 -!- hagb4rd has joined.
12:31:03 -!- variable has quit (Excess Flood).
12:31:43 -!- variable has joined.
12:33:49 -!- variable has quit (Excess Flood).
12:39:13 -!- variable has joined.
12:41:47 -!- Phantom_Hoover has joined.
12:42:06 -!- variable has quit (Excess Flood).
12:43:43 -!- variable has joined.
12:44:08 <lambdabot> Phantom_Hoover: You have 2 new messages. '/msg lambdabot @messages' to read them.
12:49:58 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
12:50:22 -!- Phantom_Hoover has joined.
12:55:36 -!- variable has quit (Excess Flood).
12:56:35 -!- variable has joined.
13:13:17 -!- Ngevd has joined.
13:17:01 -!- Aune has joined.
13:28:46 -!- Ngevd has quit (Ping timeout: 240 seconds).
13:36:59 -!- Ngevd has joined.
13:44:45 -!- copumpkin has quit (Ping timeout: 252 seconds).
13:45:13 -!- copumpkin has joined.
13:46:01 <Ngevd> Today's BBC News Technology section:
13:46:09 <Ngevd> Facebook sucks, here's something else!
13:46:26 <Ngevd> The creator's died
13:48:53 <Ngevd> Who was that Scottish guy, Robert or Robbie or something
13:49:12 <Ngevd> Doesn't narrow it down, does it?
13:49:50 <Phantom_Hoover> I know at least two Robbies, although only one of them's Scottish.
13:50:06 <Ngevd> Folk hero type person
13:51:12 <Ngevd> The clue is "Sir Walter Scott's hero" and my gran thinks it's a Scot called Robert
14:11:21 <Phantom_Hoover> Argh, still another hour at least until the computer bits arrive.
14:11:39 <Ngevd> Well, Assassin's Creed Revelations arrived this morning!
14:12:29 <Ngevd> Nah, just video games
14:16:37 <Phantom_Hoover> Hmm, Scotland fast-tracks you to university if neither of your parents went.
14:17:15 <Phantom_Hoover> (Apparently that's something the rest of the UK can blame on us: the expectation that university should be the norm.)
14:21:37 <fizzie> What about those things you run video games on? You know, those... computaurs?
14:22:05 <Ngevd> We've got computaur stores
14:22:57 <fizzie> Impressive; I don't think Hexham-sized places here do, at least any good/cheap ones.
14:23:36 <Ngevd> We've got "The Computer Shop"
14:23:49 <Ngevd> We used to have "The laptop shop" but that closed down
14:26:06 <Ngevd> There's also the Violin Shop
14:26:16 <Ngevd> But you can't by computers there
14:27:10 <Phantom_Hoover> Please please tell me that all shops in Hexham are just called The _ Shop.
14:27:27 <Ngevd> Just Violin, Computer, Laptop, and Sandwich
14:27:31 <fizzie> Do you have a "The Shop"?
14:27:40 <fizzie> Apparently they indeed do have two (2) computaur stores (or approximations of) also in the Hexham-sized place I was thinking of.
14:30:00 <Ngevd> We also have a soft drinks brewery
14:31:11 <fizzie> The 2nd largest electronics retailer (and the oldest webstore) in Finland -- net sales of 173 million euro/year, probably the largest sort-of computaur-focused consumer-shop -- is called "verkkokauppa.com", lit. "webstore.com". It's not exactly the most imaginative name either.
14:32:51 -!- derrik has joined.
14:34:37 <fizzie> Even the "webstore.com" used to be called Arctecho in olden days.
14:35:18 <fizzie> "For the first 19 years of his life an unemployed US teenager was known as Calvin Gosz, but after selling his naming rights to a Finnish consumer electronics retailer he is now called Verkkokauppa Com.
14:35:19 <fizzie> The contract says that Calvin Gosz, of Sheboygan, Wisconsin will legally change his name to Verkkokauppa Com in exchange for the asking price of USD 5,000 (ca. EUR 3,400)."
14:40:17 <fizzie> Probably nothing, unless they've specified some time limits in the contract.
14:40:52 <Gregor> Maybe Verkkokauppa just likes it.
14:40:52 <fizzie> "He is eligible to change his name back after two months."
14:40:59 <Gregor> Probably goes by Verko.
14:48:19 -!- Darth_Cliche has joined.
15:01:10 <Gregor> Argh, JITting isn't easy X-D
15:01:14 <Gregor> Stupid function pro/epilogues.
15:01:22 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
15:12:35 -!- augur has quit (Remote host closed the connection).
15:14:50 <fizzie> "Recommended videos: Fat Man Shoots A Gun (0:08) .. because you watched The Man with the Gun". Oh YouTube... (The former is Exactly What It Says on the Tin; the latter is a PPOT music video.)
15:15:03 <fizzie> Maybe when the Semantic Web comes we'll get relevant recommendations.
15:16:10 <Phantom_Hoover> I can say on firm logical foundations that when the Semantic Web comes along we'll have flying pigs.
15:18:45 <Gregor> But the flying pigs will all be linked by their semantic properties.
15:19:15 <Ngevd> On a not entirely unrelated note, I think I may have thought of a brilliant way to do XSLT S and K
15:23:26 <Gregor> "register" is ANSI C right? (Although with no defined semantics)
15:24:43 <ais523> Gregor: yes, and it does have a defined semantic (UB if you try to take a pointer to it)
15:24:59 <ais523> admittedly, it's a defined semantic that's strictly more useless than auto's, but it's there
15:25:01 <Phantom_Hoover> Ngevd, how is it this hard to copy subtrees of an XML expression.
15:25:43 <Ngevd> And yes, XSLT is completely nuts
15:25:45 <Gregor> ais523: Heh, I meant no semantics of "it will actually be a register" of course :)
15:25:48 <Ngevd> I can do one iteration just fine
15:25:52 <Gregor> ais523: And a parameter can be marked "register", right?
15:25:53 <Ngevd> I can't make it recurse
15:26:05 <ais523> Gregor: I think so, although I'm not completely sure
15:26:23 <Phantom_Hoover> ISTR that XSLT left that out deliberately because they objected to TCness or something?
15:26:36 <Gregor> Maybe I should just compile with -ansi -pedantic
15:27:09 <Phantom_Hoover> Ngevd, have you read http://conferences.idealliance.org/extreme/html/2004/Kepser01/EML2004Kepser01.html ?
15:27:35 <Gregor> full.c:31:8: warning: ISO C forbids conversion of function pointer to object pointer type [-pedantic] HAHA COMPLETELY FORGOT ABOUT THIS
15:27:42 * Gregor chooses to ignore that >_>
15:28:03 <ais523> Gregor: you can use void(*)() as a generic function pointer type if you like
15:28:11 <ais523> although you'll have to cast back and forth explicitly
15:28:19 <Phantom_Hoover> It promises a coding of recursive functions, so it might be worth reading.
15:28:52 <Ngevd> You know what would be interesting?
15:29:00 <Gregor> ais523: I'm doing a JIT, I explicitly need to cast between function and non-function pointers.
15:29:02 <Ngevd> A program that when it has no input prints its source code
15:29:06 <Gregor> ais523: It complains even with a valid cast.
15:29:14 <Ngevd> But when it has input interprets that input as its own language
15:29:30 <ais523> in general, that's completely impossible
15:29:50 <ais523> (I've used archs before which had 14-bit words in the program storage and 8-bit words in the RAM-equivalent)
15:29:56 <Phantom_Hoover> Ngevd, so an interpreter which spits out its own source when you give it an empty program?
15:30:04 <ais523> I guess the only truly portable way is to go via a char array
15:30:09 <Ngevd> A self-intpreter, Phantom_Hoover
15:30:10 <ais523> that is, to avoid the warnings
15:30:19 <ais523> it still won't /work/ on archs with separate code and data
15:30:31 <Gregor> ais523: Errr, it is possible to "ignore" the warnings, I've done it.
15:30:43 <Gregor> ais523: Cast through an integer type, size_t.
15:30:48 <Gregor> ais523: (void*)(size_t)func
15:30:52 <ais523> Gregor: intptr_t, you mean
15:31:14 <Gregor> ais523: If sizeof(size_t)!=sizeof(void*) you're usually screwed anyway :)
15:31:31 <ais523> but intptr_t exists for that purpose, why not use it?
15:31:36 <Ngevd> Preferrably in an esoteric language
15:31:46 <Gregor> ais523: It's just unfortunate for IOCCC X-D
15:31:53 <Gregor> But anyway, I'll focus on making the JIT /work/ first.
15:32:01 <Ngevd> I still haven't got into Assassin's Creed
15:41:31 <Ngevd> ^^^extract from a BF program I'm working on
15:42:30 -!- augur has joined.
15:45:30 <Ngevd> ASSASSIN'S CREED TIEM
15:48:14 -!- copumpkin has joined.
15:51:17 -!- boily has joined.
15:57:10 -!- ais523 has quit (Read error: Operation timed out).
16:13:36 <Ngevd> Should I get a Diaspora account?
16:13:58 <fizzie> It's also possible to ignore the warning by going via the reinterpret-bits route; with C99 compound-literal and designated-init you can do it inline with a simple and elegant int func(void); ...; void *vp = (union { void *v; int (*f)(void); }){ .f = fn }.v;
16:16:17 <Ngevd> I think the worst thing about Diaspora is that not enough people have an account
16:17:03 <Phantom_Hoover> Ngevd, I think wait until elliott turns up, he'll probably have some strong opinions on it.
16:18:52 -!- derrik has quit (Quit: gone).
16:20:01 -!- MSleep has changed nick to MDude.
16:21:01 <pikhq> Gregor: POSIX C permits conversion of function pointer to object pointer.
16:21:28 <pikhq> i.e. that warning is bullshit.
16:21:29 <Gregor> pikhq: IOCCC is ANSI, not POSIX.
16:21:36 <Gregor> pikhq: And that warning is only with -ansi -pedantic.
16:22:04 <pikhq> IOCCC says "it must compile with an ANSI C compiler" and then goes on and describes how ideally you should comply with POSIX.
16:22:26 <Gregor> I'm using mmap anyway X-P
16:22:29 <fizzie> The warning also explicitly says "ISO C forbids".
16:22:34 <Gregor> Even MAP_ANON, which is non-POSIX.
16:22:47 <pikhq> I think what they *mean* is that it should use an ANSI C compiler *as oppossed to K&R C*.
16:23:08 -!- Ngevd has quit (Ping timeout: 244 seconds).
16:23:14 <Gregor> This is going to be a challenging enough project without getting all pedantic >: )
16:23:54 <pikhq> I'd interpret it to mean "common UNIX compliant" if I were you. :)
16:24:22 <Gregor> That's what I am doing.
16:24:26 -!- Ngevd has joined.
16:30:26 -!- Ngevd has quit (Ping timeout: 256 seconds).
16:46:36 <fungot> Phantom_Hoover: i know! and yet, i still know it's true, but which cannot! the speeder do you fit the entire poopulation o, i am the master, the men and die horribly, don't you?
16:54:15 <fungot> Darth_Cliche: i can think of one good thing, but laughed it off one on one and it is while balanced precariously on the back of the tavern
16:55:02 <fungot> Phantom_Hoover: there's the internet, adam. it could just apply a jolly good. nothing has a bite that big to you, our helpful. ' is phone is still workin' class, guv.
16:55:09 -!- ais523 has joined.
16:56:18 <fungot> Selected style: fungot (What I've said myself)
16:56:30 <fungot> Phantom_Hoover:, so i'd make stuff up to. why, this is for you guys are a lot
16:57:07 <Darth_Cliche> :D I knew 'I know and yet I still know it's true' sounded familiar
16:57:41 <fungot> ais523: is that something you know and and
16:57:44 <ais523> also, Darth_Cliche: hi!
16:57:49 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
16:59:40 <Gregor> Darth_Cliche has been here for a while.
17:01:59 <Gregor> Anybody know off-hand the gcc optimization flag to not rearrange functions? X-P
17:02:38 <Gregor> Seems to be -fno-reorder-functions
17:06:20 -!- monqy has joined.
17:07:39 <Phantom_Hoover> Darth_Cliche, ouch, I don't want to be you when elliott arrives.
17:07:40 <Phantom_Hoover> He hates people getting the number of ls and ts wrong.
17:14:45 -!- kmc has quit (Quit: Leaving).
17:15:04 <Gregor> How annoyed would the IOCCC folks be if I said it works with -O0, -O1 or -O2 -fno-align-functions -fno-optimize-sibling-calls -fno-peephole2 >_>
17:22:58 <ais523> Gregor: ooh, I'll have to look at those optimisation combos for my own program
17:23:02 <ais523> although, I suspect even -O1 breaks it
17:23:22 <Gregor> ais523: Rearranging functions breaks me quite horribly :)
17:23:34 <ais523> it relies really heavily on variables always being stored in memory; marking them volatile and passing pointers to them to functions works for gcc -O0 and clang -O0
17:23:54 <ais523> but I doubt it fools higher optimisation levels, and know it doesn't fool -O3
17:24:34 <Gregor> Yeah, I doubt those flags will help you then.
17:24:42 <Gregor> I rely on variables being stored in registers :P
17:26:09 <Gregor> Now to try on 32-bit, which I haven't done in a long while ...
17:28:00 <ais523> hmm, this is the first time I've ever tried to do really portable stack-smashing
17:28:13 <ais523> it even allows for differences in the direction of the stack, and doesn't care where on the stack frame the variables are stored
17:28:22 <ais523> and it's in a recursive function, to /force/ them to be stored on the stack
17:28:46 <Gregor> That may be more portable than me :P
17:28:57 <Gregor> But to be fair, portable JITting is completely impossible.
17:29:18 <Gregor> Now the real test: ARM
17:29:42 <ais523> hmm… identify function prolog and epilog statistically, compile code in order to generate the instructions you need?
17:29:45 -!- SgeoN1 has quit (Remote host closed the connection).
17:30:36 <ais523> I mean, as a suggestion on how to portably JIT
17:31:21 <Gregor> But the pro/epilogue stuff is a nasty trick.
17:31:26 <Gregor> Especially with optimization.
17:31:55 <Gregor> I keep forgetting that OWCC is the slowest compiler ever written.
17:32:47 <ais523> what bytecode/language are you taking as the input to the JIT?
17:32:49 <Gregor> !bf_txtgen Hello, world!
17:32:53 <EgoBot> 127 +++++++++++[>+++++++>+++++++++>++++>+<<<<-]>-----.>++.+++++++..+++.>.------------.<++++++++.--------.+++.------.--------.>+.>-. [697]
17:32:56 <Gregor> ais523: Something vaguely similar to BF.
17:33:11 <ais523> oh, a /very/ simple JIT
17:33:19 <Gregor> Gimme a break, I have 2048 characters.
17:33:33 <ais523> is it still left/right/inc/dec/loop? or does it mention numbers?
17:33:49 <Gregor> s/loop/label and jump/
17:34:48 <ais523> hmm, I'm pretty sure we have a name for BF-except-with-conditional-GOTO
17:34:56 <ais523> we have a name for basically every other BF deriv, right?
17:36:30 <Gregor> Yeah, it's out there somewhere.
17:36:34 <Gregor> Mine isn't quite that either.
17:36:40 <Gregor> It's precisely what was most JITtable of course :P
18:03:57 -!- elliott has joined.
18:06:56 -!- SgeoN1 has joined.
18:09:42 <ais523> hey, argument currently dominating #nethack: how is "xor" pronounced?
18:10:06 <lambdabot> elliott: You have 9 new messages. '/msg lambdabot @messages' to read them.
18:10:16 <ais523> elliott: hmm, you're on the other side of the argument to me, then
18:10:37 <elliott> ais523: I hereby declare it to be pronounced with a Lojbanic x
18:11:52 <Deewiant> Dictionary.com says it's "exor", I always
18:13:30 <Gregor> On a related note, ZEEEEEEEEEEEEEEEEEEE
18:13:37 <elliott> Deewiant: You can't "say just xor" :P
18:14:21 <elliott> I pronounce it like "pshaw"!
18:19:58 -!- Phantom_Hoover has quit (Ping timeout: 240 seconds).
18:23:52 <Gregor> ead8: e59f200c ldr r2, [pc, #12] ; eaec <j333333+0x20>
18:23:52 <Gregor> eaec: 00051615 .word 0x00051615
18:24:04 <Gregor> Another way to read that is "Just try to JIT this, bitch!"
18:26:23 <elliott> ais523: I pronounce "xor" by hitting the back of my tongue off the top of my mouth while moving air through it quickly and then "or"
18:26:28 <elliott> That almost certainly has a name.
18:26:37 -!- Ngevd has joined.
18:27:14 <ais523> elliott: hmm, I just pronounced that first consonsant a few times, and it sounds more like a Welsh ll than anything
18:27:18 <Gregor> I wonder how I could convince ARM not to put this constant in .text >_>
18:27:42 <elliott> ais523: It sounds like "k" here, i.e. the whole thing sounds like "core" but much more... I dunno, thuddy :P
18:27:55 <elliott> Also it's impossible to do vowels after it so I sound like a ghost or something.
18:28:03 <ais523> my tongue stays low for a k
18:28:20 <elliott> ais523: It isn't how I pronounce a "k", it just sounds like it :P
18:28:27 <elliott> btw I don't actually say it like this.
18:30:29 <Ngevd> I pronounce xor as kssor
18:31:10 <Gregor> NO ONE TALKS LIKE THAT SHADDAP
18:31:23 <monqy> i don't quite have a good pronunciation for xor
18:31:28 <elliott> Darn, Audacity can't do my microphone.
18:31:38 <monqy> sometime's it's ksor sometimes it's zor somtimes it's ex-or
18:32:07 <elliott> ais523: I pronounce "xor" by punching myself in the face and then "or"
18:32:21 -!- zzo38 has joined.
18:32:26 <monqy> i pronounce xor by punching whoever wanted me to punch xor in the face
18:32:42 <monqy> i also punch whoever gave xor its name
18:32:56 <ais523> `addquote <elliott> ais523: I pronounce "xor" by punching myself in the face and then "or"
18:32:58 <HackEgo> 717) <elliott> ais523: I pronounce "xor" by punching myself in the face and then "or"
18:33:15 <Ngevd> elliott, opinion on Diaspora
18:33:36 <Gregor> OK, I'mma come back to ARM later :P
18:33:45 <Gregor> Oh yeah, x86 and ARM are the only platforms.
18:33:51 <elliott> i dont know much about jews.......................................... but i hear the greg egan book is good!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
18:34:03 <Ngevd> elliott, you know what I meant
18:34:09 <Darth_Cliche> I believe it's relatively common in Greek as well
18:34:31 <Darth_Cliche> though always simplified to /z/ when a Greek word is loaned to English, like /ps/ > /s/
18:34:44 <elliott> Wow Wikipedia, do you really want to call this appeal person an "author of 549 Wikipedia articles"? I thought you didn't do that :P
18:35:34 <ais523> elliott: the WMF are running out of ideas for pleading for funding
18:35:44 <ais523> also, Wikipedia's collapsing in terms of activity
18:35:48 <elliott> wow, they're asking for 3 pounds a month
18:35:53 <ais523> number of editors/edits/etc are all dropping
18:35:58 <elliott> do they really think many people will do that?
18:36:56 <elliott> ais523: "The amazing thing about Wikipedia is that nerds like me, who love weird things like gastropods (snails), get to come together and share our passion with the world."
18:36:59 <elliott> ais523: actual quote from the appeal
18:37:16 <ais523> meh, it's not as bad as Enigma's advertising
18:37:18 * Gregor hurls money at Wikipedia
18:38:07 <elliott> ais523: hmm, I somehow can't imagine Wikipedia dying
18:38:47 <Gregor> I'll bet they'd get donations if they went down for one day and then came back up saying "lol sorry guys, couldn't pay the bills for that day."
18:39:59 -!- zzo38 has quit (Remote host closed the connection).
18:45:50 <elliott> http://esoteric.voxelperfect.net/wiki/User:Newkitten PLEASE DON'T DELTE THIS OMG ;___;
18:46:53 -!- boily has quit (Ping timeout: 252 seconds).
18:55:05 <Gregor> Damn it, my JIT isn't portable :(
18:56:48 <elliott> Gregor: does itw ork on ppc
18:57:35 <Gregor> elliott: No. Or I would have said something jubilant like "MY JIT IS SO AWESOME WOOOH"
18:57:45 <elliott> Gregor: does it work with... sparc
18:57:45 <Gregor> Although the way it fails on PPC is a bit mysterious.
18:58:14 <ais523> elliott: but it's spam
18:58:35 <monqy> but it's gooooooood
18:58:36 <ais523> you could, umm, transwiki it somewhere?
18:58:47 <elliott> ais523: I'll move it to my userspace and remove the links???
18:58:52 <elliott> Gregor: i wasn't joking :P
18:59:01 <ais523> then I'll delete the redirect
18:59:28 <ais523> actually, I suspect it might be copyvio, checking now
18:59:40 <monqy> mm remembering My name is Johny, what the F**K, or whatever it was
18:59:45 <monqy> good names for good wiki pages
18:59:47 <ais523> nope, not copyvio, I think it's a markovbot
18:59:54 <elliott> http://esoteric.voxelperfect.net/wiki/User:Ehird/Newkitten tada
18:59:57 <ais523> monqy: elliott still needs to invent that language
19:00:09 <elliott> ais523: i'm working on it!
19:00:43 <monqy> somehow I pronounce the ** as vv in my head
19:00:49 <ais523> I suspect the latest batch of spambots have a page they want to advertise, and the way they do it is by looking for a search that people are using to reach that page (maybe an unlikely one), then doing that search themself and markoving the results
19:01:37 <monqy> i still like the spambots that replaced large chunks of page with compliments
19:01:51 <elliott> http://catsandkittenstraining.com/Introducing-a-New-Kitten.html
19:01:53 <monqy> i would like one as a pet if i could train it
19:01:54 <elliott> that stretched cat face is terrifying
19:02:01 <ais523> elliott: you actually visited a spam link?
19:02:05 <ais523> don't, that justifies the spambots' existence
19:02:12 <ais523> think about it, even one person visiting the link is a win for them
19:02:24 <elliott> but... even a dog can learn these cat training techniques
19:02:25 <monqy> Cat Training Made Easy
19:02:25 <monqy> Even a dog can learn these cat training techniques
19:02:33 <ais523> you're promoting the spamming of Esolang by visiting spam links
19:02:49 -!- ais523 has set topic: The IOCCC is back on! http://www.ioccc.org | Even a dog can learn these cat training techniques | http://codu.org/logs/_esoteric/.
19:02:54 <elliott> ais523: I don't think it's possible to unpromote spam
19:03:12 <elliott> I'm not sure they'd stop even if they got 0 visitors from every single wiki they spam
19:04:05 <ais523> * 19:03, 15 November 2011 Ais523 (Talk | contribs | block) deleted "User:Newkitten" (redirect left behind after userfication of spam)
19:04:16 <CakeProphet> http://features.peta.org/mario-kills-tanooki/
19:04:21 <ais523> elliott: they're just trying to bump up their Google rankings for searches
19:04:35 <elliott> ais523: then visiting it should be irrelevant, no?
19:04:41 <elliott> ais523: also, don't we use nofollow?
19:04:55 <ais523> elliott: but visiting the link directly is like bumping up the rankings, just more direct
19:05:12 <ais523> why would spammers want high Google rankings, if not for pageviews?
19:06:40 <elliott> oh my god "super tofu boy"
19:06:57 <monqy> super tofu boy is brilliant
19:07:39 <Darth_Cliche> As of now, I'm finally convinced that PETA is a troll
19:07:52 <Gregor> Does Super Meat Boy have anything to do with meat other than the player being made of meat?
19:07:57 <monqy> TIP: Tofu Boy is not only sexy, he tastes good too!
19:08:02 <monqy> TIP: Vegans do it better!
19:08:22 <elliott> OH YM GOD IVE MADE MY USERPAGE HORRIFYING
19:08:34 <elliott> Gregor: I don't think so :P
19:08:51 <monqy> oh god your userpage
19:08:55 <CakeProphet> elliott: can't be as bad as my wikipedia userpage
19:09:00 <elliott> http://esoteric.voxelperfect.net/wiki/User:Ehird
19:09:04 <Gregor> elliott: ... BAHAHAHAHAHAHA
19:09:05 <Darth_Cliche> elliott: You replaced the snowman with something I can't see?
19:09:10 <elliott> Darth_Cliche: It's CAT FACE
19:09:31 <Darth_Cliche> It is ridiculous that there is a unicode symbol for snowman
19:09:38 <elliott> Darth_Cliche: Ngevd: http://i.imgur.com/b7NOS.png
19:10:01 <Ngevd> Indeed that is hideos
19:10:25 <monqy> if only there was...cat snowman....
19:11:01 <elliott> http://esoteric.voxelperfect.net/wiki/User:Ehird
19:11:11 <elliott> lol scroll all the way to the right
19:11:46 <CakeProphet> I now pledge to be a vegan here: https://secure.peta.org/site/Advocacy?cmd=display&page=UserAction&id=2055&c=STBpvp&s_src=ppmisc
19:11:55 <elliott> http://esoteric.voxelperfect.net/wiki/User:Ehird oh noooooooo
19:12:46 <CakeProphet> irssi is dumb and doesn't capture wiki urls correctly
19:13:00 <elliott> monqy: click the cat...btw...
19:13:38 <monqy> elliott: i saw. good link...will you make a newkitten language...
19:13:48 <elliott> monqy: maybe..............
19:13:54 <CakeProphet> perhaps I could... submit a bugreport with a.... a patch?
19:13:58 <elliott> Deewiant: Can you agree to make CCBI's fungespace slower so I don't have to resort to mutability
19:13:59 <monqy> my name is johny and i am a new kitten what the fvvk
19:14:00 -!- ais523 has changed nick to ais523\unfoog.
19:14:40 <elliott> Deewiant: Hmm, let's try that again
19:15:22 <elliott> Deewiant: Uh, just to check, you do do the optimisation I'm thinking you do, right? (Caching the array that the IP is in to avoid hashtable lookups)
19:15:56 <Deewiant> Yes, except that it's to avoid a linear scan, not a hashtable lookup
19:16:17 <Deewiant> CakeProphet: Them things're expensive.
19:16:22 <CakeProphet> AAAAAAAAH THE THEORETICALLY AVERAGE CONSTANT TIME, IT BURNS.
19:16:29 <elliott> Deewiant: Wait, why do you have a linear scan
19:16:34 <elliott> CakeProphet: "Average constant time" my ass
19:16:50 <Deewiant> elliott: Because I don't have a bucket PR-CIF k-d tree
19:16:53 <elliott> It's constant time if you never do any inserts
19:17:08 <CakeProphet> I'm afraid I don't have the power to render your ass in such an scalable manner.
19:17:27 <Deewiant> elliott: Seriously, because I couldn't be bothered to do anything better and it works well enough :-P
19:17:33 <CakeProphet> elliott: yes I am generally aware of how hash tables work. :P
19:18:11 <elliott> CakeProphet: Anyway, it matters when you'd be doing thousands and thousands of them per second
19:18:20 <elliott> I wonder how many instructions/s CCBI manages; Deewiant?
19:18:39 <Deewiant> elliott: ccbi -s might tell you, at least when combined with time(1)
19:18:40 <CakeProphet> elliott: with a slow hash function, this is true, yes.
19:18:59 <elliott> CakeProphet: Allow me to simplify this down to your level
19:19:06 <elliott> CakeProphet: Not doing a hash-table lookup is faster than doing a hash-table lookup
19:19:34 <CakeProphet> elliott: I didn't say it wasn't slower, rather, that with a slow hash function /it matters/
19:19:42 <elliott> Deewiant: I'd have to find a long-running benchmark that tests different kinds of instructions :P
19:19:59 <Deewiant> elliott: Just run mycology a bunch of times? :-P
19:19:59 <elliott> CakeProphet: It matters when the goal is to be as fast as possible
19:21:04 <elliott> CakeProphet: Elliott "need for not having each Fungicide benchmark take over ten minutes to run" Hird
19:21:25 <elliott> Deewiant: BTW, it sucks how your Fungicide table doesn't have units :P
19:21:30 <Darth_Cliche> I wonder what the simplest possible TC language is
19:21:57 <CakeProphet> elliott: just think of those ten minutes as quality time you can spend enjoying your life, to kick back and let some of the pressure of everyday existence evaporate away.
19:21:58 <monqy> what does "simple" mean
19:22:08 <elliott> Deewiant: You only have one table
19:22:19 <Deewiant> elliott: I was hoping for a link, but fine
19:22:21 <elliott> Darth_Cliche: Probably self-BCT if it's TC
19:22:24 <elliott> Deewiant: http://users.tkk.fi/~mniemenm/befunge/fungicide-rankings/
19:22:39 * elliott uses non-permalink. It's super effective!
19:22:40 <Deewiant> elliott: "All time measurements are in seconds (s) and all memory measurements are in mebioctets (Mio)."
19:22:50 -!- boily has joined.
19:22:53 <Deewiant> elliott: (Yes, it probably should be repeated closer to the table.)
19:22:56 <elliott> Deewiant: That's above the charts! :p
19:23:05 * elliott would just put the units in parens in the table headings.
19:23:21 <elliott> 54 gigs is pretty impressive RAM usage.
19:23:25 <elliott> (OK, so it's total, not maximum.)
19:23:35 <Deewiant> I probably did that but it made it flow badly or something.
19:23:48 <Deewiant> And yeah, measuring total RAM usage is totally relevant to something.
19:24:58 <CakeProphet> ais523\unfoog: so what are the difficulties with implementing Checkout on a GPU?
19:25:13 <elliott> CakeProphet: The fact that you can't program current GPUs at that level?
19:25:29 <elliott> Deewiant: I'm not sure "total RAM usage" even makes sense
19:25:34 <elliott> Deewiant: RAM doesn't really accumulate
19:25:41 <elliott> It's "RAM usage if you ran all the benchmarks at once" :P
19:26:01 <ais523\unfoog> elliott: actually, current GPUs can be programmed at quite close to that level; most of Checkout's commands can be given explicitly, but some can't and you just have to hope the GPU figures out what you mean from an approximation
19:26:14 <Deewiant> elliott: Yeah, that's what I was saying, it's not really very sensible
19:26:14 <elliott> ais523\unfoog: Well, yeah, I said "that level", not "quite close"
19:26:19 <elliott> I don't think OpenCL has a checkout command :P
19:26:21 -!- Phantom_Hoover has joined.
19:26:40 <Ngevd> Hold on a god-damn second
19:27:07 <Ngevd> How is self-BCT different from regular BCT?
19:27:36 <elliott> Deewiant: Could you make something else slower, then
19:27:48 <Deewiant> elliott: Nah, I'm committed to keeping it fast
19:28:03 <elliott> Deewiant: Can I convince you to change your commitment
19:28:54 <elliott> Deewiant: That's what I'm asking
19:29:06 <Deewiant> elliott: How much can you offer?
19:29:14 <elliott> Deewiant: Depends on how much you want!
19:29:43 <Deewiant> elliott: That's not how it works; I don't need to tell you anything since you're the one with the need here
19:29:51 <Phantom_Hoover> Motherboard-CPU-RAM-PSU-GPU-HDD looks best, currently.
19:30:06 <elliott> ais523\unfoog: Make sure Phantom_Hoover doesn't blow himself up, please
19:30:29 <Gregor> BLARGH PPC WHY YOU NO WORK
19:30:34 <elliott> RIP Phantom_Hoover 2011-2011
19:30:37 <Phantom_Hoover> ais523\unfoog, it would be a tragedy if all these expensive bomb parts were to go to waste, also me.
19:31:02 <elliott> Deewiant: Okay how about... 200 pounds
19:31:49 <CakeProphet> Phantom_Hoover: eh humans mostly consume value.
19:32:11 <Deewiant> elliott: Sure, I'd take that, assuming pounds = GBP
19:32:11 <ais523\unfoog> elliott: why are you trying to bribe Deewiant to slow down ccbi, when it's hilarious when it beats cfunge?
19:32:21 <elliott> ais523\unfoog: Because I want Shiro to beat it
19:32:32 <ais523\unfoog> Deewiant: elliott's trying to trick you, a ?? is rather small compared to a GBP
19:32:35 <elliott> ais523\unfoog: And my options right now are slower fungespace, or mutable fungespace
19:32:45 <CakeProphet> elliott: I think you're maybe going about this from the wrong direction
19:32:50 <elliott> ais523\unfoog: Latter is super ugly and doesn't go well with my "better code" goals for Shiro 2
19:32:54 <elliott> ais523\unfoog: Former is slower
19:33:33 <ais523\unfoog> is this a case of Haskell not being able to achieve top speed without being ugly?
19:33:35 <Deewiant> ais523\unfoog: I would've made a new, faster interpreter with a different name anyway
19:34:12 <CakeProphet> elliott: mutable fungespace + abstractions = clean code + fast fungespace
19:34:17 <elliott> ais523\unfoog: Oh, it wouldn't be /uglier/ than CCBI
19:34:18 <Gregor> Heyo, works on SPARC :)
19:34:27 <elliott> ais523\unfoog: It'd just be uglier than a non-mutating fungespace
19:34:48 <elliott> Haskell very rarely ends up UGLIER when doing mutable shit to match the performance of other languages, it just doesn't end up any nicer :P
19:34:55 <Phantom_Hoover> So there was nothing radically wrong with my bomb assembly?
19:35:08 <ais523\unfoog> really, we want compilers to be able to infer mutability
19:35:15 <elliott> CakeProphet: You still need to handle the mutability, which needs sequencing, which is sort of the whole point
19:35:17 <ais523\unfoog> where you write a bunch of pure changes, and it changes them to mutations when it's safe
19:35:24 <elliott> ais523\unfoog: That's called GC
19:35:36 <elliott> ais523\unfoog: More seriously, uniqueness types/linear typing/whatever
19:35:40 <elliott> But you still have to sequence things there
19:35:46 <ais523\unfoog> copy-and-GC-the-original is different from mutate-the-original
19:35:51 <elliott> Anyway you can want that all you want but it's very much sufficiently-smart-compiler territory
19:36:08 <ais523\unfoog> (derlo deals with the problem by using a refcounting GC and mutating when the refcount is 1, but that's obviously not perfect)
19:38:52 <ais523\unfoog> although one that breaks on cyclic structures (in languagest that have them)
19:39:04 <pikhq> I'd consider it a form of automatic memory management, but not GC.
19:39:33 <ais523\unfoog> it collects garbage, how is that not garbage collection?
19:39:36 <elliott> ais523\unfoog: argh, you're making me think about my lazy underload again :)
19:40:09 <elliott> ais523\unfoog: but shiro 2 was managing that! sort of!
19:40:16 <CakeProphet> ais523\unfoog: I am inclined to agree. so you know it's a legit stance. :)
19:40:36 <pikhq> ais523\unfoog: "Garbage collection" to me refers to the class of memory management schemes that free things that are not referred to directly or indirectly from a root set.
19:41:23 <ais523\unfoog> it's just that the bugs are different in the two cases
19:42:07 <pikhq> ais523\unfoog: Refcounting doesn't, really. There is never a "scan memory" step, there is only a "mutate reference count" step.
19:42:28 <pikhq> Well, "mutate reference count and if ==0 free()"
19:42:33 <elliott> Phantom_Hoover: Did you know: Anti-static wrist straps work by directing the shocks to... YOUR HEART.
19:42:35 <Phantom_Hoover> Attaching the strap to the case, then screwing the motherboard in, is enough to ensure no damage to components plugged into the motherboard, right?
19:43:03 <ais523\unfoog> Phantom_Hoover: no, it'd make no sense for all the pins on the motherboard to be connected to its chassis ground
19:43:10 <elliott> pikhq: Hmm, subleq would be good for refcounting
19:43:16 <ais523\unfoog> however, if the motherboard's just come out of packaging
19:43:26 <ais523\unfoog> there's no obvious way it could have got charged in the first place
19:43:42 <Phantom_Hoover> But what if I charge the case, which isn't itself grounded?
19:43:56 <pikhq> "Ground" is relative.
19:44:25 <ais523\unfoog> when talking about static discharge, both are relevant
19:44:28 <Phantom_Hoover> Yes, but the case could still, pathologically, build up a charge relative to the motherboard.
19:45:12 <CakeProphet> ais523\unfoog: if I recall correctly, I believe Python's refcounting scheme has a way to detect some cycles without resorting to weakrefs or something?
19:45:12 <ais523\unfoog> (it mostly involves actions by humans, such as walking)
19:45:15 <Phantom_Hoover> My instinct is that it'd be fairly irrelevant for practical purposes, given that I'm not exactly wearing nylon clogs and skimming over wollen carpets.
19:45:25 <ais523\unfoog> the best cure for static buildup is to discharge once before everything starts, and then just sit still
19:45:43 <elliott> ais523\unfoog: hehehehehe you're going to make PH sit as still as a rock, afraid to breathe
19:45:50 <ais523\unfoog> Perl does refcounting without cycle breaks, but it's not a problem in practice as cyclic structures are rare, and when you want one, you add a delete method that breaks the cycle
19:46:24 <CakeProphet> ais523\unfoog: oh, no. it just uses a regular garbage collector to collect cyclic structures.
19:46:38 <ais523\unfoog> CakeProphet: and refcounting to collect everything else?
19:46:39 <elliott> CakeProphet: no, that's python
19:46:40 <pikhq> Tcl also does refcounting without cycle breaks, but it's not a problem as you can't really do cyclic structures from the reference counting system's point of view.
19:46:42 <Phantom_Hoover> I'm just going to clip myself to the case and try not to worry too much.
19:46:49 <pikhq> elliott: He was discussing Python.
19:46:52 <elliott> Phantom_Hoover: don't breathe too heavily, it'll cause a static discharge
19:46:56 <CakeProphet> elliott: "this is python's garbage collection scheme" "no, that's python"
19:47:04 <elliott> Phantom_Hoover: because of the flantz bobnicator
19:47:10 <pikhq> ais523\unfoog: Yeah. It's probably the most pointless scheme.
19:47:10 <elliott> Phantom_Hoover: and gluggunutz electrostatic hydromorphism
19:47:23 <CakeProphet> ais523\unfoog: oh, and yes. refcounting for everything else.
19:47:24 <elliott> experts shocked to discover that python is stupid
19:47:31 <pikhq> "Let's do all the simplicity of a garbage collector with all the speed of a reference counter!"
19:47:55 <elliott> I wonder if anyon's tried just removing the refcounter frmo Python.
19:48:13 <elliott> Phantom_Hoover: Reminder that idiots regularly assemble computers successfully.
19:48:14 <CakeProphet> elliott: I almost said that Python has the most stupid per unit of popularity
19:48:30 <pikhq> Phantom_Hoover: You are much more paranoid than you should be.
19:48:34 <fizzie> The Python tracing gc is disableable, though, if you're sure you're never creating any cycles.
19:48:37 <Phantom_Hoover> elliott, yes, but they're defended because their brain activity doesn't cause static buildup!
19:48:52 <elliott> python is worse than php because not many people deefnd python
19:48:58 <elliott> python is worse than php because not many people deefnd php
19:49:04 <pikhq> fizzie: Strange, it's the reference counting that you would want to turn off.
19:49:11 <pikhq> Unless their GC is *really* bad.
19:50:12 <CakeProphet> pikhq: well if you used weakrefs for cycles and then turned off the GC, I think refcount would be reasonably efficient (???)
19:51:09 <CakeProphet> a weakref being "a reference that doesn't increment the refcount"
19:52:04 <pikhq> Mutating the reference count and free if ==0 actually does a number on performance. That's a pipeline flush on basically every function call.
19:52:37 <pikhq> Not to mention that malloc and free are actually not very speedy at allocation & deallocation.
19:52:40 <CakeProphet> I don't think you can turn off refcounting.
19:53:13 <pikhq> I'd be horribly shocked if it weren't in a few macros.\
19:53:28 <elliott> what kinda gc does python use
19:53:34 <elliott> how would it interact with C extensions
19:54:19 <CakeProphet> elliott: I think Python uses a custom allocator so that it can garbage collect C-level stuffs.
19:54:45 <CakeProphet> so, if your C extensions are well written, it should interact fine.
19:55:09 <pikhq> *Obviously* C extensions need to behave well with the GC already.
19:55:18 <pikhq> It's on by default.
19:55:25 <Gregor> I'm sure that Python's GC is sufficiently bad that it would actually slow down :)
19:56:00 <CakeProphet> so that people will defend python's amazing automatic memory management.
19:56:24 <olsner> I think #python can never be fun
19:56:43 <CakeProphet> olsner: no, I distinctly enjoy showing them my "unpythonic" code.
19:56:50 <pikhq> Gregor: That'd be impressive.
19:56:52 * elliott considers joining and saying "LOL PROJECT EULER"
19:56:59 <pikhq> Rather possible, but impressive.
19:57:16 <CakeProphet> olsner: read: code that is "confusing" because it does too many things in one line.
19:57:27 <monqy> did you use reduce
19:57:47 <olsner> iirc python uses reference counting for "gc" ... though I wonder how it breaks loops
19:57:47 <CakeProphet> I can't recall what the code actually was.
19:57:57 <elliott> olsner: i love how people join in conversations in #esoteric
19:58:01 <monqy> I find folds much easier to read than for loops most of the time because i'm unpythonic weirdo
19:58:03 <elliott> that has been the topic of the conevrsation
19:58:13 <elliott> and things loop around again
19:58:41 <CakeProphet> elliott: huh, I wonder if Python's GC interacts well with C extensions. maybe you could turn refcounting off.
19:58:51 <olsner> I just read the last line, and if it's something I'd like to respond to I do
19:59:45 -!- pikhq_ has joined.
20:00:10 <CakeProphet> pikhq: what about a refcounting scheme that instead maintains a list of things to be freed
20:00:19 <CakeProphet> and then frees when its sufficiently large but not too large.
20:01:58 -!- pikhq has quit (Read error: Operation timed out).
20:02:19 <pikhq_> Clearly. malloc and free maintain a list of things that are free. free() does nothing but record "the block foo is free".
20:02:42 <pikhq_> A refcounting scheme that instead maintains a list of things to be freed would just duplicate work.
20:06:49 <Gregor> x86, x86_64, SPARC, MIPS :)
20:07:22 -!- nys has joined.
20:08:07 <CakeProphet> my goal: create an absolutely shitty implementation for a language of my design that becomes massively popular and attracts large numbers of fanatics.
20:08:07 <elliott> Gregor: But not ARM ha ha ha
20:08:19 <elliott> Gregor: What about...... IA-64?
20:08:33 -!- Darth_Cliche has quit (Quit: You are now graced with my absence.).
20:08:47 <Gregor> elliott: I can't qemu IA-64 :P
20:08:59 <elliott> Gregor: http://ski.sourceforge.net/??????
20:09:13 <elliott> "Ski can be used in two operating mode: user- and system-mode. In user mode, you can run user level applications directly on top of the simulator. The emulation stops at the system call boundary. The system call is emulated by calling the host OS, such as x86 Linux. Conversions between 64-bit and 32-bit parameters are done by ski as needed. This allows fast execution of user programs. Most system calls are emulated, though the emulation is not alw
20:09:13 <elliott> ays 100 percent accurate."
20:09:20 <elliott> "In system-mode, operating-system kernel development and execution is possible because interrupts and virtual memory behaviors are simulated. In this mode you can actually run the Linux kernel and, once booted, user applications can be run on top of the simulated kernel."
20:09:25 <elliott> Former sounds easier to test with :P
20:09:57 <elliott> Gregor: (The chances of it working on IA-64 are probably ~0)
20:10:18 <Gregor> elliott: Is that a bet? :P
20:10:22 <Gregor> I'll bet you zero virtubux.
20:10:31 <elliott> Gregor: VLIW is fucking weird :P
20:10:49 <Gregor> elliott: Hey, working with -O0 counts ;)
20:11:02 <Gregor> Argh, Debian doesn't have ski.
20:11:06 <Gregor> I'll come back to it later :P
20:11:43 <elliott> Gregor: Clearly the Right Decision.
20:13:27 -!- Darth_Cliche has joined.
20:15:43 <Gregor> I keep on coming back to OpenWatcom and going "Oh yeah, slow as shit"
20:17:55 <fizzie> Watcom is so DOS game/demoscene. All the cool dudes had a copy.
20:18:56 <fizzie> I think my warezzzed copy was 9.something.
20:19:07 <Gregor> Hence why OpenWatcom is good fun.
20:19:46 <elliott> fizzie would know, he's the prime distributor of pirated QuickBasic copies nowadays.
20:19:50 <elliott> That... that might even be true.
20:22:20 <fizzie> I'm pretty sure you'd find it on some shady "abandonware" sites that have gotten more downloads than a hypothetical fizzie.
20:22:42 <elliott> fizzie: Yes, but nowadays? e.g., giving it to hypothetical me onwards?
20:22:48 <elliott> Surely people can't have downloadad it since then.
20:23:49 -!- tiffany has joined.
20:23:53 <Gregor> Oh, never mind, Debian /does/ have ski.
20:24:27 <elliott> Gregor: THE RIGHT DECISION!!!\
20:24:46 <fizzie> "I want Quick Basic 4.5 for DOS
20:24:47 <fizzie> I want to learn this program but I have not this program, If you have this program, please tell me by e-mail where this program!
20:24:51 <fizzie> I hope this program is free for me!
20:24:59 <fizzie> Still a top seller, I think!
20:25:07 <fizzie> Okay, that was from 2000.
20:25:35 <elliott> I want to learn this program / but I have not this program / If you have this program / please tell me by e-mail where this program!
20:26:12 <fizzie> Ooh, you can still buy it from http://www.emsps.com/oldtools/msbas.htm
20:26:16 <olsner> ooh, quick basic 4.5! that's what I used to do my first programming :D
20:26:19 <fizzie> Also browsed away already.
20:26:50 <fizzie> But it was quite high up in the Google search for "quickbasic 4.5".
20:27:36 <Gregor> elliott: Installin' an ia64 cross-dev env!
20:27:54 <fizzie> Only $99 if you want 3.5" floppies.
20:28:17 <fizzie> Plus another $99 for the manual.
20:28:35 <elliott> fizzie: I can't find it. :'(
20:28:44 <Gregor> elliott: ... ... how the hell do you use ski :P
20:28:51 <elliott> Gregor: http://ski.sourceforge.net/
20:29:09 <fizzie> You just point them downhill and GO.
20:29:31 <Gregor> elliott: Nooooooooooooooooooooooooooooooooooooooooooooo it only MOSTLY works :(
20:29:31 <elliott> "Windows is written in mostly VB and VC++ if you ask me."
20:29:43 <elliott> fizzie: Oh no, I... I feel the BASIC Bug catching me once more.
20:29:49 <Gregor> elliott: It does the right things to the tape but can't call putchar :(
20:30:04 -!- Aune has left ("Lmnar").
20:34:04 -!- Nisstyre has quit (Ping timeout: 260 seconds).
20:37:44 <Gregor> I wish (read: I do not wish) C had a type qualifier that meant "this is a register and thou shalt not change it"
20:40:03 <Gregor> register int foo __asm__(...)
20:40:12 <Gregor> But I need a portablish solution :P
20:41:28 -!- Nisstyre has joined.
20:41:29 -!- Nisstyre has quit (Max SendQ exceeded).
20:44:13 <elliott> Gregor: Why doesn't ARM work, again?
20:44:58 <Gregor> elliott: It writes integer literals raw into .text then copies them by offsets from PC.
20:46:10 <Gregor> elliott: Which could work in principle, but there's no way I can detect it >_>
20:48:06 <Gregor> Huh, maybe ski just doesn't like output much ...
20:49:45 <elliott> Try the other "variant" things?
20:53:02 <Gregor> I'm becoming increasingly convince that ski sucks :P
20:54:00 <Gregor> It's ... ... failing to scanf("%d", &C); ???
20:58:05 <Gregor> tcc can't even produce a runnable program.
21:00:36 -!- oerjan has joined.
21:01:13 * oerjan wonders what the unfoog stands for
21:03:16 <Phantom_Hoover> ais523\unfoog, due to elliott's incompetence, I need to keep the motherboard, RAM and CPU in storage for a couple of days; do I disassemble them and put them all back in their original packaging?
21:03:43 <elliott> Hey, I resemble that remark.
21:03:45 <ais523\unfoog> Phantom_Hoover: that's one possibility; the other is just putting them inside some antistatic wrapping
21:04:03 <ais523\unfoog> or just in any old place and discharge yourself before you touch them
21:16:42 -!- Patashu has joined.
21:20:10 -!- Nisstyre has joined.
21:24:19 <Gregor> $ wine jitchards.exe < hello.jch
21:27:20 <olsner> hello dear esolangs reddit! how are you today? (esolangs.org) submitted 3 years ago by ehird
21:28:13 <oerjan> i'd say there wasn't a market for that one.
21:29:09 <oerjan> "If you come to visit Australia, you are not likely to meet anything more dangerous than a dodgy kebab."
21:29:37 <oerjan> by a strange coincidence, the first and most dodgy kebab i ever got was in australia.
21:29:54 <olsner> we could turn the reddit over to fungot
21:29:55 <fungot> olsner: if ( sense ahead foe?) x" to give you a hint:
21:30:40 <oerjan> it smelled like puke, although it may have been just melted cheese.
21:30:52 <pikhq_> Australia? The land of everything trying to kill you (especially that)?
21:31:08 -!- GreaseMonkey has joined.
21:31:08 <oerjan> pikhq_: that's the subject of the rerun annotation, of course
21:31:28 <Ngevd> I have never had a Doner kebab
21:31:37 <Ngevd> Shish kebabs by the dozen, though
21:32:13 <oerjan> i've had both, i think.
21:32:21 <elliott> oerjan: i find it hard to believe you've been outside of norway, sorry.
21:33:16 -!- boily has quit (Ping timeout: 258 seconds).
21:33:48 <oerjan> kebab places are a dime a dozen in norway these days. and my current favorite restaurant is run by a turkish kurd family
21:34:18 <ais523\unfoog> in the UK, kebabs are generally sold by fish and chip shops
21:34:32 <olsner> oerjan: how much does a kebab cost in norway?
21:34:33 <ais523\unfoog> hmm, this sort of thing is why I use chicken burgers to compare fast food outlets
21:34:36 <elliott> oerjan: I was just responding to the implication you'd been outside the country
21:35:59 <oerjan> olsner: hm i'm not sure for the late night fast food kind, which i haven't had for a long time.
21:36:16 <oerjan> somewhere between 50-100 kr, i assume
21:37:13 <olsner> "Most pizzerias sell Kebab Pizza, a pizza with kebab meat and the aforementioned sauces as a topping, now the most popular pizza in Sweden."
21:37:29 <oerjan> (the kebab dinners at this restaurant are around 130-150)
21:38:11 <oerjan> 1 Norwegian krone = 0.111008012 British pounds
21:38:21 <Deewiant> ais523\unfoog: 1 British pound = 9.00835879 Norwegian kroner
21:38:34 <ais523\unfoog> hmm, I actually converted 0.11 to 1/9 and then back again
21:39:09 <Ngevd> One of my friends carries around a 100kr note to make her feel rich
21:39:28 <pikhq_> Yeah, that's... $17. That's obscene.
21:39:44 <oerjan> norwegian food is expensive, because of general cost level and our isolationist agricultural policy
21:39:54 <pikhq_> Admittedly, food prices in the US are rather horribly fucked up.
21:39:59 <ais523\unfoog> I'd expect somewhere from around £2 to £6 for that sort of fast food meal at a UK fast food shop, depending on quality
21:40:11 -!- elliott has quit (Read error: Connection reset by peer).
21:40:18 <olsner> around here, the normal price for a kebab with fries would be around 70 SEK = 6.65 bounds
21:40:29 -!- elliott has joined.
21:40:45 <olsner> in pita bread with no extras, about half that
21:40:58 <pikhq_> Same ballpark for US, I *think*. Kebab aren't quite common here, but that's around what it'd be for a similar sort of fast food thing.
21:40:59 <olsner> ... and it's served with burger dressing
21:41:04 <Gregor> If it can't be bought for $5 or less, it ain't worth buyin'!
21:41:06 <oerjan> ais523\unfoog: well it's probably closer to 50 than 100, i'm just hedging
21:41:44 <ais523\unfoog> I know that the prices for directly comparable food between Ottawa and Birmingham were slightly more expensive, but not much more, in Ottawa
21:41:51 <Gregor> I think gyros (which is what we call what you call kebab sandwiches, as we call something completely unrelated kebab) are probably around $5.50 on average here. For just the sandwich.
21:41:58 <ais523\unfoog> (I used an identical sandwich from Subway to make the comparison; you can't get much more standardised than that)
21:42:31 <ais523\unfoog> Gregor: "kebab sandwich" would be a weird combination; it's more common to hear just "kebab" and imply the other elements of the meal
21:42:32 <olsner> subway is expensive for fast-food though
21:42:45 <elliott> isn't everything expensive in norway :P
21:42:49 <ais523\unfoog> olsner: yes, but I expected it to be consistent on both sides of the Atlantic
21:42:56 <Gregor> ais523\unfoog: Well, this isn't how we use those words :P
21:43:10 <elliott> http://esoteric.voxelperfect.net/wiki/Twisted_Python_Chat_Server
21:43:12 <elliott> twisted python chat server
21:43:31 <elliott> http://esoteric.voxelperfect.net/wiki/Love_Dating_Quizzes
21:43:50 <elliott> Wikipedia cambodian women datingonline dating servicesbad chat influence larelationship trustmistakes made by women in relationshipsa chat room
21:44:16 <ais523\unfoog> Twisted Python Chat Server really /could/ be an esolang
21:44:45 <elliott> I love the random bolding.
21:44:52 <elliott> Wait, it's bolding all occurrences of the page title words.
21:44:55 <pikhq_> ais523\unfoog: Yup, looks like the prices between something at Subway in the US and the UK are comparable.
21:44:56 <olsner> twisted python chat server could also just be a chat server written in python using the twisted framework
21:45:09 <elliott> olsner: that's what the article is about
21:45:12 <pikhq_> I think it's *slightly* more expensive in the UK?
21:45:16 <ais523\unfoog> elliott: I think that's probably the same spambot that advertised Google, I haven't seen it for ages
21:45:27 <ais523\unfoog> the link [http://en.wikipedia.org Wikipedia] gives it away
21:45:46 <ais523\unfoog> pikhq_: it wouldn't surprise me; I also think it depends on how central you are and in which city you were
21:46:01 <oerjan> <elliott> isn't everything expensive in norway :P <-- yeah probably. actually i vaguely recall from a recent newspaper article that we may be doing well on medical drugs.
21:46:09 <ais523\unfoog> I only really got to compare with central Ottawa, which wouldn't surprise me at all if it was significantly more expensive than in some small town
21:46:39 <oerjan> or perhaps that was sweden. i'm not quite sure.
21:46:41 <pikhq_> ais523\unfoog: Prices in fast food chains *generally* are consistent nation-wide.
21:46:46 <ais523\unfoog> elliott: can you edit Twisted Python Chat Server into a real esolang, changing as little in the page as possible?
21:46:48 <elliott> hmm my only mental associations for ottawa are "capital of canada, pretty"; dunno where that second one came from
21:47:08 <elliott> ais523\unfoog: It'd probably change most of the page :P
21:47:34 <oerjan> elliott: oh and electricity is still _somewhat_ cheaper in norway, although the common nordic market has reduced that difference a lot.
21:47:59 <pikhq_> I suspect part of that is that our idea of "fast food" developed out of McDonalds, which is basically run on a "make everything as consistent as humanly possible" kick.
21:48:30 <elliott> the problem with my name is johny, what the f**k? is that an esolang has to be really good to be worthy of that name
21:48:31 <ais523\unfoog> elliott: will you take long enough that it's worth deleting the page meanwhile?
21:48:37 <elliott> ais523\unfoog: most likely, yes
21:52:42 <elliott> oerjan: are you /sure/ there isn't a simpler way to do n-cursor zippers? :P
21:59:07 <oerjan> oh i'm sure oleg could find one.
22:12:47 -!- copumpkin has quit (Remote host closed the connection).
22:14:14 -!- pikhq_ has quit (Read error: Operation timed out).
22:14:28 -!- Ngevd has quit (Quit: Goodbye).
22:15:12 <oerjan> hm i recall some stuff i thought of before
22:16:01 <oerjan> basically if you wanted to do zippers with n cursors on arbitrary trees, you'd need a way to represent trees with several root leaves
22:16:21 -!- pikhq has joined.
22:16:34 <oerjan> for just _two_ cursors and a tree that is a straight line, this is basically Seq
22:17:19 <oerjan> because your representation of a zipper would need to cut up the large tree at each cursor, and to be able to modify each resulting tree close to where the cursor is
22:17:33 <oerjan> (note i am thinking of the large tree as _unrooted_ here.)
22:18:06 <oerjan> since in spirit a zipper of a tree is basically about ignoring where the usual root is
22:18:07 <elliott> oerjan: that sounds quite reassuring, since Seqs are not quite as slow to mutate as your n-cursor zippers would be :P
22:18:31 <oerjan> well the thing is this doesn't work for more than 2 cursors touching a subtree
22:18:51 <oerjan> then it needs to be a more refined structure
22:19:30 <oerjan> oh hm _this_ refined structure is where that median stuff from my never published paper was relevant
22:19:50 <elliott> poor never-published paper :(
22:19:54 <oerjan> because whenever you have three points on a tree, there is a unique median point
22:21:06 <oerjan> which is either the one of the three points which separates the other two, or some fourth point which separates all the original three
22:22:55 <oerjan> given that this median point is canonical, it _might_ give a canonical way to split subtrees into Seq's of subtrees
22:23:30 <elliott> ooh. this is sounding super elegant :P
22:23:42 <oerjan> this is all something i thought about long ago when pondering n-cursor zippers
22:25:02 <CakeProphet> All the lonely people, where do they all belong?
22:25:29 <elliott> oerjan: so what's the obstalce to just applying that directly to a quadtree? :P
22:26:11 <oerjan> well i've never tried to wrap my head around the details
22:26:33 <CakeProphet> oerjan: wrapping your head around something is usually not good for it.
22:27:12 -!- MSleep has joined.
22:27:24 <CakeProphet> oerjan: I don't understand. I can't wrap my head around your head.
22:27:36 <elliott> oerjan: well, i'm listening >:)
22:27:43 <oerjan> you need to become a boa constrictor first
22:27:48 <elliott> oerjan: so this should actually allow fast mutation from n cursors, right?
22:28:00 -!- MDude has quit (Ping timeout: 252 seconds).
22:32:16 <Gregor> Because they're a salty delight?
22:32:33 <ais523\unfoog> CakeProphet: they taste nice; I ate some earlier today (although they're called crisps in the UK)
22:33:32 -!- copumpkin has joined.
22:33:41 <CakeProphet> I just ate a whole bag of these chips. Hopefully I won't get vitamin A poisoning.
22:34:12 <oerjan> hm those median points would become sort of virtual extra cursors, perhaps
22:34:22 <CakeProphet> Researchers have succeeded in creating water-soluble forms of vitamin A, which they believed could reduce the potential for toxicity.[44] However, a 2003 study found water-soluble vitamin A was approximately 10 times as toxic as fat-soluble vitamin.[45] A 2006 study found children given water-soluble vitamin A and D, which are typically fat-soluble, suffer from asthma twice as much as a control group supplemented with th
22:35:26 <elliott> note to self: don't ask oerjan that in future
22:36:02 <HackEgo> /home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: ?welcome: not found
22:36:06 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:36:11 <elliott> `@ ais523\unfoog ? welcome
22:36:12 <CakeProphet> interestingly enough Vitamin A poisoning causes blurry vision. weird.
22:36:14 <HackEgo> ais523\unfoog: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:36:54 -!- MSleep has changed nick to MDude.
22:37:17 <Gregor> !bf_txtgen Hello, world!
22:37:19 <EgoBot> 125 +++++++++[>++++++++>+++++++++++>+++++>+<<<<-]>.>++.+++++++..+++.>-.------------.<++++++++.--------.+++.------.--------.>+.>+. [169]
22:37:34 -!- Betawolf has joined.
22:38:02 <HackEgo> Betawolf: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
22:38:36 <ais523\unfoog> elliott: no fair making me direct my random welcomes at people in particular
22:39:18 <ais523\unfoog> elliott: I can one-up that: http://qdb.rawrnix.com/?735
22:39:37 <CakeProphet> `@ elliott `@ ais523\unfoog `@ monqy `echo hi
22:39:39 <HackEgo> elliott: exec: 9: `@: not found
22:39:51 <HackEgo> elliott: CakeProphet: monqy: exec: 9: hi: not found \ echo:
22:39:52 <CakeProphet> `@ elliott @ ais523\unfoog @ monqy echo hi
22:39:55 <HackEgo> elliott: ais523\unfoog: monqy: hi
22:40:12 <HackEgo> ais523\unfoog: y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y
22:40:33 <HackEgo> @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @ ais523\unfoog \ @
22:40:37 <elliott> `run `yes @ ais523\unfoog`
22:40:39 <Betawolf> Ah, I shouldn't be surprised. It's -that- usage of 'esoteric'
22:40:53 <elliott> Betawolf: We often get people expecting the other kind.
22:40:58 <ais523\unfoog> Betawolf: you know both usages? and came here willing to talk about either?
22:41:09 <HackEgo> bash: xrealloc: ../bash/subst.c:4952: cannot allocate 67108864 bytes (134258688 bytes allocated)
22:41:17 <Betawolf> Well, for a given value of 'willing'.
22:41:40 <Betawolf> I was intending to lurk, lurkerly.
22:41:42 <ais523\unfoog> accidentally; I was drinking a glass of water and started laughing at HackEgo's response
22:41:49 <elliott> My sincerest apologies. I will be more effective next time.
22:42:13 <elliott> Betawolf: Lurking is so cliché; just ask yiyus.
22:42:14 <fungot> y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y y ...too much output!
22:42:19 <fungot> y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ y \ ...too much output!
22:43:33 <elliott> `run ghc -e "print (99 + 42)"
22:43:48 <elliott> Evaluate expr; see for details.
22:44:03 <elliott> But I need to see for details.
22:44:09 <lambdabot> "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...
22:44:10 <Betawolf> Is that just echoing via bash?
22:44:26 <lambdabot> Couldn't match expected type `Data.Tree.Tree a'
22:44:28 <lambdabot> "y\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\...
22:44:32 <elliott> Yeah, it uses the interpreter, I think.
22:44:35 <elliott> Betawolf: HackEgo, you mean?
22:44:46 <elliott> Betawolf: It's a fully-sandboxed, persistent Linux system.
22:44:49 <elliott> Betawolf: Our QDB is based on it.
22:45:34 <ais523\unfoog> Betawolf: HackEgo basically runs arbitrary commands, with protection against doing silly things
22:45:53 <HackEgo> bash: -c: line 0: syntax error near unexpected token `{:' \ bash: -c: line 0: `:(){:|:&};:'
22:46:10 <Betawolf> Yeah, that was what I was worrying about.
22:46:13 <ais523\unfoog> (actually, I was curious as to why the space was needed, guess I know now)
22:46:14 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
22:46:22 <elliott> It's kept in a repository: http://codu.org/projects/hackbot/fshg/
22:46:31 <elliott> And you can revert even if the whole system inside is broken.
22:46:56 <elliott> the actual code is at /hg/
22:47:02 <elliott> at least, I presume that's what it stands for
22:47:32 <Betawolf> You guys may be interested in a friend of mine's old project - a brainfuck interpreter written in javascript.
22:47:52 <elliott> It's not BestFriends. Please tell me it's not BestFriends.js.
22:47:55 <Betawolf> http://extremetomato.com/interesting/brainfuck/
22:48:32 <elliott> Aww, it doesn't support infinite tapes :)
22:48:37 <Betawolf> He wrote a proper compiler, too, but I don't think there's a public link for it.
22:49:10 <elliott> CakeProphet: that would be esotope, presumably
22:49:23 <elliott> (so Betawolf knows what I'm referring to: https://bitbucket.org/lifthrasiir/esotope-bfc/overview)
22:51:24 <elliott> oerjan: You can run but you cannot hide@
22:51:37 <elliott> I like how whenever anyone joins the channel explodes in activity.
22:52:28 <fungot> http://git.zem.fi/fungot/blob/HEAD:/fungot.b98
22:52:33 <elliott> We like bots written in esolangs MOST OF ALL.
22:52:42 <elliott> fungot: Say hi to Betawolf.
22:52:42 <fungot> elliott: " and this is a new game. there is no
22:52:45 <fungot> Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot* homestuck ic irc iwcs jargon lovecraft nethack pa sms speeches ss wp youtube
22:52:47 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
22:52:50 <elliott> fungot: You can do better than that.
22:52:50 <fungot> elliott: a ged file *is* notation... i barely fnord across the scheme/ vm/
22:52:57 <elliott> fungot: Come on. One long one.
22:52:57 <fungot> elliott: the negative list makes a list from return values :p i want to
22:53:08 <fungot> Selected style: europarl (European Parliament speeches during approx. 1996-2006)
22:53:16 <fungot> CakeProphet: mr president, since i only have one main objective of the isd which is due for adoption by the end of 1999, which attempted to establish minimum requirements. mrs schreyer, that, in the absence of criticism of it, which does not allow it to provide criteria, after which we should like to end by emphasising the fact that it has an opportunity to work for the betterment of the people, by their nature, very undiscipli
22:53:59 <fungot> CakeProphet: may i start by thanking parliament once again.
22:53:59 <Betawolf> Is that random sampling, as in that really well-known bot I can't remember the name of?
22:54:25 <elliott> Betawolf: marko v. shaney, perhaps?
22:54:25 <ais523\unfoog> works out the next word to say statistically, by seeing the probability that words are used in that context
22:55:31 <elliott> well, for some value of nlp :-)
22:55:50 <CakeProphet> Betawolf: more like a markov chain. a big markov chain.
22:56:00 <elliott> Betawolf: it's just based on how many times a word follows a context of a certain length
22:56:05 <Betawolf> Sure, I remember the process from AI
22:56:22 <CakeProphet> maybe humans are just big sexy markov chains.
22:56:37 <fungot> CakeProphet: mr president, the commission, the scope of monetary policy is compatible with the completion of the internal political situation in burma. political pressure will have to pay out the funds. pensions should not be overestimated. a peaceful and lasting settlement.
22:56:41 <elliott> CakeProphet is our other markov chain bot.
22:57:48 <CakeProphet> elliott: mr president, suck my balls, sir. thank you parliament.
22:58:10 <elliott> ais523\unfoog: You should kick the worst channel members whenever someone new comes in.
22:58:32 <Betawolf> Heh, would keep the place fresh.
22:59:03 <ais523\unfoog> you'd need a -maxheap too where you just kicked the /best/ channel members whenever someone new comes in
22:59:18 <ais523\unfoog> might be fun to see who was still there in a year's time
22:59:48 <ais523\unfoog> they'd have to be very persistent to stay there despite the bunch of lurkers and crazy people
23:00:08 <elliott> Yes. And yet somehow, #esoteric survives.
23:00:58 <ais523\unfoog> this reminds me of the BF Joust hill before it was fixed
23:01:40 <ais523\unfoog> !bfjoust it_shouldnt_go_on_the_hill_with_this_nick (>)*8(>[-])*21
23:01:48 <EgoBot> Score for ais523_unfoog_it_shouldnt_go_on_the_hill_with_this_nick: 20.4
23:02:01 <ais523\unfoog> please tell me that didn't /actually/ end up on the hill
23:02:14 <CakeProphet> elliott: surely I'm not the worst channel member. Perhaps units of bad per units of regularity.
23:03:16 <elliott> ais523\unfoog: you won't know until next time
23:04:00 <ais523\unfoog> elliott: it's not in last place, or anywhere near it
23:04:07 <elliott> ais523\unfoog: Haskell is about twice as bad as Perl!
23:04:20 <oerjan> <elliott> note to self: don't ask oerjan that in future <-- i'd have thought leaving it out would be a hint.
23:04:32 <oerjan> in other news, we are now having a backscroll session.
23:05:09 <elliott> oerjan: nothing interesting happened! now TELL ME MORE.
23:08:56 <CakeProphet> distinctly not as bad as the republican party.
23:09:03 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
23:12:13 <Betawolf> I imagine dwarf fortress is difficult to play outside of dwarfism conventions.
23:12:34 <ais523\unfoog> CakeProphet: and combine points in the annual dwarf fortress tournament?
23:12:35 -!- Phantom_Hoover has quit (Quit: Leaving).
23:13:17 <elliott> Betawolf: I think it'd be just as difficult within those.
23:13:20 <Betawolf> They must be difficult to stack, too.
23:13:47 -!- augur has quit (Remote host closed the connection).
23:13:54 <elliott> http://www.bay12games.com/dwarves/screens/dwf5.png <-- dwarfism convention
23:14:00 <Betawolf> And not overly resistant to bombardment...
23:14:46 * ais523\unfoog envisages a stack of dwarves balanced on each other
23:15:00 <ais523\unfoog> if you pushed them over, you could just pop them back up again
23:15:19 <Betawolf> If trained, they could spring back up of their own accord.
23:15:50 <elliott> finally, i'm back to not believing the channel is actually having the conversation it is
23:15:55 <elliott> that was a worrying bout of sanity
23:16:42 <oerjan> <elliott> oerjan: You can run but you cannot hide@ <-- i hide in the past
23:16:53 <ais523\unfoog> elliott: enjoy being locked in your matrix of solidity!
23:17:54 <elliott> ais523\unfoog: It's so solid.
23:18:47 <ais523\unfoog> elliott: is going mad a reasonable cure for depression, btw?
23:18:57 <elliott> I, um, how serious is this question?
23:19:14 <ais523\unfoog> elliott: not completely frivolous, but substantially frivolous
23:19:31 <elliott> IANADispenserOfSubstantiousFrivolity
23:19:50 <ais523\unfoog> I feel I need to keep Feather around in case of emergencies
23:20:09 <Betawolf> Manic depression is a form of both mad and depressed, if that's at all unhelpful.
23:20:16 <elliott> "I'm depressed, time to work on Feather"
23:20:33 <elliott> "Great, now I'm a depressed time traveller."
23:21:12 <ais523\unfoog> Feather doesn't actually time-travel its users, that would be absurd
23:21:50 <Betawolf> I feel I have to ask what Feather is, other than not a time-travel device.
23:22:00 <elliott> ais523\unfoog: time to use your op powers for good
23:22:18 <elliott> Betawolf: http://esolangs.org/wiki/Feather, further answers can be derived from reading http://codu.org/logs/_esoteric/
23:23:09 <oerjan> <elliott> oerjan: nothing interesting happened! now TELL ME MORE. <-- well i'm thinking that the virtual cursors that split the tree will be the median subalgebra generated by the real cursor nodes. you would need a map from real to virtual, and a map from virtual to neighboring Seq subtrees on each side.
23:23:32 <elliott> oerjan: ok. this is sounding significantly more manageable :P
23:24:04 <elliott> my motto is, as long as you have less than 15 constructors, you're good
23:24:05 <ais523\unfoog> Betawolf: summary: imagine a prototyping OO language, except that instead of delegation or similar concepts, you use time travel
23:24:14 <ais523\unfoog> explaining more will cause me to go mad, so I don't want to
23:25:08 <Betawolf> Chicken! Embrace the inevitable.
23:25:31 <ais523\unfoog> anyway, after a while of working on Feather, I couldn't take it any more, and everyone (correctly) accused me of chickening out
23:25:52 <pikhq> *Clearly* it must be implemented in Haskell.
23:25:59 <pikhq> It already has time travel semantics, after all.
23:26:11 <ais523\unfoog> the time travel semantics aren't even the difficult bit
23:26:28 <ais523\unfoog> those were worked out early on, and are very sane, and unproblematic
23:26:45 <ais523\unfoog> the major problem with Feather is that it's metacircularly implemented in itself, back to infinity
23:27:03 <ais523\unfoog> and whenever I try to work out if this actually makes sense or not, I conclude that it does but I'm going about it wrong
23:27:26 <ais523\unfoog> otherwise it'd take infinitely long for it to do anything
23:27:37 <ais523\unfoog> so the question is how you implement a language in itself without using any of its language constructs
23:28:10 <Betawolf> I'm pretty sure that doesn't make sense. :-)
23:28:31 <elliott> Betawolf: the version that makes sense isn't vague enough to not make ais523\unfoog go insane
23:28:55 <elliott> ais523\unfoog: Did anything come out of you fixing the issue with your previous prototype interpreter?
23:29:01 <Betawolf> Perhaps a certain madness is requisite.
23:29:01 <SgeoN1> #haskell seems to be invaded by kids
23:29:31 <elliott> ais523\unfoog: hmm, you fixed /one/ issue with it.
23:29:33 <ais523\unfoog> or, well, if you're talking about a different issue, I did
23:29:43 <ais523\unfoog> and all it proved is that I wasn't completely crazy
23:30:01 <Betawolf> coppro: Well, it stops being niche and cool when everyone's doing it.
23:30:15 <HackEgo> 2011-11-15.txt:23:29:45: <ais523\unfoog> coppro: NetHack clan
23:30:35 * elliott has changed nickname to elliott\unſoog
23:30:35 <HackEgo> 2011-11-15.txt:23:29:45: <ais523\unfoog> coppro: NetHack clan
23:30:47 <elliott> oerjan: I TAKE IT YOU'RE EXPANDING ON THAT NOW >:)
23:31:13 <oerjan> Betawolf: no problem. they'll just add more type features until no one understands anything and it'll be niche and cool again.
23:31:23 <oerjan> elliott: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
23:31:29 <Betawolf> coppro: Though I appreciate 'niche' might not really apply as a label for haskell, given the channel we're in.
23:31:46 <lambdabot> No instance for (SimpleReflect.FromExpr [SimpleReflect.Expr])
23:31:47 <CakeProphet> Haskell is almost as esoteric as Perl, which is a genuine esolang.
23:31:57 <elliott> Betawolf: we keep haskell around for when we need to accomplish _real_ work.
23:32:14 <elliott> it helps if you can avoid using something so practical, though
23:32:16 <ais523\unfoog> I have no qualms about even mixing the languages when necessary
23:32:45 <elliott> ais523\unfoog: kick CakeProphet please
23:32:47 <Gregor> elliott: ski is shiiiit
23:33:52 <elliott> oerjan: MORE ABOUT N-CURSOR ZIPPERS PLZ
23:34:57 <Gregor> ais523\unfoog: As in the ia64 simulator.
23:36:10 <CakeProphet> elliott: you so good. warm in my heartgut.
23:37:56 <elliott> Just now or longer-term? :-P
23:38:36 <CakeProphet> ais523\unfoog: perhaps you just have unrealistic expectations
23:38:43 <CakeProphet> for example, that #esoteric might save the world.
23:39:22 <elliott> ais523\unfoog: This channel has always been terrible.
23:39:28 <ais523\unfoog> just assume I'm drunk at the moment, it simplifies things
23:39:51 <elliott> Oh no, ais523\unfoog had dairy. Or something.
23:40:25 <Gregor> ski really sucks at I/O >_>
23:40:32 <SgeoN1> So, ais523 gets "drunk" in the same way I do?
23:41:13 <elliott> ais523\unfoog: Exactly why deviated septum medical procedures? Along with a greater problem that is experienced the particular surgery. Ahead of these queries might be responded successfully, a brief release in to exactly what a deviated septum can be should be examined. The actual nose septum is the portion of the nose which divides the actual nose pathways. Your septum comprises of the two bone tissu
23:41:26 <elliott> Remarkably there's a single occasional actress who's occupation sustained as a result of the nasal surgical treatment was Jennifer Gray. Many will don't forget your ex through the woman's noticably motion pictures becoming Dirty Dance, as well as Red-colored Beginning. After the woman's role inside the film Unclean Bouncing, Greyish decided to have a very nasal work to remove your lump via your ex nost
23:42:12 <oerjan> would you like fries with that?
23:42:20 <SgeoN1> Is elliott posting spam?
23:42:27 <elliott> SgeoN1: I'm actually the wiki spammers.
23:42:37 <oerjan> ...that would explain so much...
23:42:50 <SgeoN1> I meant, seen spam into here
23:43:00 <CakeProphet> ais523\unfoog: please kick elliott for spam.
23:43:02 <elliott> Nothing I posted was spam.
23:43:06 <elliott> It had no unsolicited links or whatever.
23:44:02 <SgeoN1> What does unsolicited stupidity count as? And please don't say that I'm a producer.
23:44:23 <ais523\unfoog> I thought that was posted in #esoteric for a moment
23:44:33 <elliott> SgeoN1: You write your own material, dude.
23:44:50 <ais523\unfoog> You have been watching /Unsolicited Stupidity/ ~ Producer: elliott ~ Director: SgeoN1
23:45:27 <elliott> ais523\unfoog: from Substantious Frivolity Productions
23:46:02 <HackEgo> 2011-11-15.txt:23:19:31: <elliott> IANADispenserOfSubstantiousFrivolity
23:47:41 <elliott> ais523\unfoog: wait, does [^] actually /work/?
23:47:48 <elliott> it /special-cases the first character/?
23:48:29 <ais523\unfoog> my regex for matching BF comments is along the lines of [^][<>,.+-]
23:48:30 <elliott> oerjan: hi zippers..... please???
23:49:11 <ais523\unfoog> Perl lets you write it as [^\[\]\+\-\,\.\<\>] instead
23:49:53 <ais523\unfoog> and a bunch of other languages, like Python/Ruby/Java, ripped off Perl's regexes
23:50:03 -!- ais523\unfoog has quit (Remote host closed the connection).
23:51:16 -!- pikhq has quit (Ping timeout: 258 seconds).
23:51:18 -!- pikhq_ has joined.
23:52:07 <oerjan> i think this is intuitively equivalent to collapsing as much of the tree as possible while keeping it a tree and the real cursors distinct
23:52:27 -!- DCliche has joined.
23:53:22 <oerjan> and a Seq of trees is a representation of a line resulting from collapsing between two nodes
23:53:29 -!- augur has joined.
23:54:06 <elliott> controlled demolition: the zipper story
23:55:55 -!- Darth_Cliche has quit (Ping timeout: 240 seconds).
23:56:46 <oerjan> i am not quite sure, but i think the number of virtual cursors cannot be more than twice the number of real ones
23:59:40 <oerjan> so lookup of stuff is hopefully O(log n) in the number of cursors