←2008-11-17 2008-11-18 2008-11-19→ ↑2008 ↑all
00:18:48 -!- sebbu has quit ("@+").
00:22:53 -!- puzzlet_ has joined.
00:28:36 -!- olsner has quit ("Leaving").
00:29:50 <MizardX> ehird: I think I managed to make functions in JumpFuck. http://pastie.org/317387
00:30:14 <ehird> congrats!
00:30:34 <ehird> wow, that looks really neat
00:30:35 <ehird> :)
00:31:04 <ehird> i think it'd actuallly be very easy to convert that to normal BF; you're doing most of the continuationy stuff yourself
00:32:24 -!- puzzlet_ has quit (Read error: 60 (Operation timed out)).
00:32:40 <psygnisfive> oi!
00:32:45 <psygnisfive> someone who speaks swedish!
00:32:48 <psygnisfive> how do you say "lyrics"
00:34:03 -!- puzzlet_ has joined.
00:34:32 <MizardX> either lyrics, or "sångtext(er)"...
00:34:57 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
00:40:12 <GregorR> That looks like it sounds like "song text"
00:42:27 <oerjan> close enough
00:44:18 <ehird> I have a very nice picture of a lighthouse.
00:44:19 <ehird> Who wants it?
00:47:57 -!- metazilla has quit ("- nbs-irc 2.37 - www.nbs-irc.net -").
00:48:12 <GregorR> ehird: Your MOM.
00:48:26 <ehird> No. My mother would not enjoy a picture of a lighthouse.
00:49:29 <ehird> GregorR: Would you?
00:51:17 <SimonRC> zzzzzzzzzz
01:36:18 -!- Sgeo has joined.
01:48:25 -!- GreaseMonkey has joined.
02:29:20 -!- psygnisfive has quit ("Leaving...").
04:00:42 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
04:04:32 -!- Slereah has joined.
04:17:54 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
05:27:18 <GregorR> http://home.codu.org/5ctj/
05:28:28 <oerjan> hm Catholic bishop - shouldn't be too hard
05:28:40 <GregorR> Pfff
05:28:44 <GregorR> Lucky random :P
05:29:18 <oerjan> 2 clicks
05:29:26 <GregorR> Pfff
05:29:27 <GregorR> Lucky random :P
05:29:29 <oerjan> actually i forgot to check if there was a 1 click
05:31:51 <oerjan> "St. Ignatius Mission"?
05:31:57 <oerjan> it's not even trying :D
05:32:45 <oerjan> 2 clicks there too
05:33:29 <oerjan> oops this one looks harder
05:35:58 <GregorR> Oops, broke it :P
05:35:59 <GregorR> Just a sec
05:36:26 <GregorR> Fixed :P
05:36:34 <oerjan> must i restart?
05:37:23 <GregorR> No, but I just broke it again X-P
05:37:35 <GregorR> Sorry, I'm trying to add logic so it won't allow you to fake links.
05:38:06 <GregorR> Fixed again :P
05:38:26 * GregorR starts modifying it in a new file :P
05:39:23 -!- psygnisfive has joined.
05:40:48 <GregorR> OK, now I'm going to replace it and you will have to restart if you're in the middle of a game.
05:41:04 * GregorR waits for complaints
05:41:48 <GregorR> *doink*
05:41:57 <GregorR> psygnisfive: http://home.codu.org/5ctj/
05:42:08 <psygnisfive> whatsit
05:42:23 <oerjan> what the?
05:42:29 <oerjan> oops
05:42:41 <GregorR> psygnisfive: Five clicks to Jesus. Find Jesus ... in five clicks or less :P
05:42:53 <oerjan> and i had just found "Christianity" :(
05:42:54 <psygnisfive> i dont get it
05:43:04 <GregorR> oerjan: Sowwy :(
05:43:16 <GregorR> psygnisfive: It gives you a random Wikipedia page, and you try to get to Jesus in five clicks or less.
05:43:36 <psygnisfive> oh i see
05:45:14 <oerjan> oh it fixed when i went back in history
05:45:28 <oerjan> just made it in 5
05:45:50 <GregorR> So far I haven't found a single page that I can't make it in five, so it may be worthwhile to reduce the limit to four, maybe even three.
05:46:03 <GregorR> (Five is just the way I'd heard the game formalized)
05:50:47 <oerjan> 3
05:51:14 <oerjan> eek a porn star
05:51:17 <GregorR> lol
05:51:19 <GregorR> That'll be tough :P
05:51:55 <GregorR> Now I need to make a database so it can compare your result to others.
05:51:55 <oerjan> not necessarily, let me jump straight USA
05:51:56 <oerjan> *to
05:53:44 <oerjan> and from there to Roman Catholicism which i've used before
05:54:03 <GregorR> And then: JESUS!
05:54:04 <oerjan> oops a trap
05:54:10 <GregorR> ?
05:54:22 <oerjan> it was not the global one, but Roman Catholicism in the United States
05:54:30 <GregorR> Wah wah waaaaah
05:54:35 <GregorR> Make sure to hover over the links ;)
05:55:54 <oerjan> well still just 4
05:56:13 -!- GreaseMonkey has quit ("So, how much do you love noodles?").
05:56:19 -!- Sgeo has quit ("Ex-Chat").
05:56:48 <oerjan> a swedish lake
05:57:39 <GregorR> Anything that lets you get to a country is a free three-clicker.
05:57:54 <oerjan> oh?
05:57:57 <oerjan> Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 508361 bytes) in /home/gregor/5ctj/index.php on line 98
05:58:05 <GregorR> Country -> Christianity -> Jesus
05:58:09 <GregorR> Whaaa? D-8
05:58:30 <GregorR> Well that's weird
05:58:40 <GregorR> Does it happen consistently?
05:59:01 <oerjan> let me go back in history
05:59:10 <oerjan> oops it restarted
05:59:11 <GregorR> Refreshing is safe.
05:59:17 <GregorR> Don't go that far back X-P
05:59:24 <GregorR> It keeps your session on the server to dissuade cheating :P
05:59:40 <oerjan> but it's worked before, but then i may have gone to the bottom link
05:59:59 <GregorR> Hrm, shouldn't work at all >_>
06:00:27 <GregorR> E_DOESNTWORKFORME :P
06:00:37 <oerjan> ok let me try that country method again
06:01:46 <oerjan> liar! Croatia doesn't contain Christianity
06:02:03 <oerjan> although surely it's roman catholic, hm
06:02:34 <GregorR> OK, MOST countries work that way X-P
06:03:49 <oerjan> the article has no religion section :D
06:03:54 <GregorR> You'd think the page "Church of England" would mention Jesus somewhere.
06:05:49 <oerjan> oh well i'll go on to hungary
06:06:19 <GregorR> OK, sleepitime for me.
06:06:24 <GregorR> Enjoy my stupid game X-P
06:07:21 <oerjan> a nice country with a link to Christianity
06:07:54 <oerjan> made it in 4
06:15:48 <oerjan> Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 516520 bytes) in /home/gregor/5ctj/index.php on line 103
06:16:44 <oerjan> fixed on reload
06:18:45 <oerjan> apparently London works as a country :)
07:23:00 -!- GreaseMonkey has joined.
07:24:44 <fizzie> "Congratulations! You found Jesus in 3 clicks!"
07:24:47 <fizzie> Just to be contrary, I went France -> Judaism -> Jesus instead of Christianity in the middle.
07:30:34 <fizzie> Going through Main Page feels a bit cheatery.
07:31:57 <fizzie> As does using http://www.netsoc.tcd.ie/~mu/wiki/, obviously, even though it gives interesting routes. "Kyle & Jackie O -> Musical ensemble -> The Beatles -> Jesus" instead of going through a country.
07:34:11 <oklopol> o
07:36:12 -!- olsner has joined.
07:39:55 <oklopol> Congratulations! You found Jesus in 3 clicks!
07:41:27 <olsner> oh joy!
07:41:51 <oklopol> :---------)
07:42:05 <olsner> why the long face?
07:42:36 <oklopol> that's my happy! :o
07:43:42 <olsner> then, why all the happy!?
07:44:37 <oklopol> fizzie: the real problem with utu is not the course descriptions, but the fact exams simply never get graded; i had an exam 13.10., sent an e-mail to the lecturer too, no answer
07:44:47 <oklopol> olsner: well all the jesus!
07:46:15 <oklopol> that's the worst i've had sofar, but that's probably only because that was the first exam i took :P
07:46:39 <fizzie> oklopol: Officially we have a rule that all our exams get graded within a month of submitting; usually that means it always takes almost exactly a month to get results. Sometimes it's longer, though.
07:46:46 <oklopol> oh
07:46:52 <oklopol> our official rule is two weeks.
07:47:10 <oklopol> well guess it's not that bad then.
07:47:14 <oklopol> it's fucking annoying though.
07:47:31 <fizzie> Sometimes I've gotten results the same day the exam was; there's a large variance.
07:47:39 <oklopol> :P
07:47:41 <fizzie> "Congratulations! You found Jesus in 2 clicks!" That was fast!
07:47:50 <oklopol> route?
07:48:01 <fizzie> 323 BC -> Alexander the Great -> Jesus.
07:48:10 <fizzie> I got a good starting point that time.
07:48:29 <oklopol> i suck at that game
07:48:34 <olsner> did you know, if you read to the end of the book of mormon, you will see god?
07:49:30 <oklopol> olsner: now if only the religious people told stuff we could actually check
07:49:37 <oklopol> would be easier to tell who's right
07:49:51 <oklopol> but noooo, you'd have to read something
07:51:05 <olsner> "95% of the test subjects reported experiencing auditory and visual hallucinations after completion of the text"
07:51:58 <Corun> Uh
07:52:06 <Corun> Are you trying to get to jesus from random wiki articles?
07:53:14 <oklopol> yeah GregorR's game
07:53:34 <oklopol> well rather well-known game he implemented i think
07:53:43 <Corun> implemented?
07:54:20 <oklopol> yes, but i can't link it
07:54:26 <oklopol> because my backlog is only a page long.
07:54:33 <Corun> Handy.
07:54:45 <Corun> Oh don't you just LOVE terminals?
07:54:48 <fizzie> http://home.codu.org/5ctj/
07:54:58 <Corun> Heh, ta
07:56:43 <oklopol> it's not a terminal, it's mirc.
07:57:14 <oklopol> it just decided, one day, that the backlog needs to be short because i wasn't using the handy "logviewer" functionality enough.
07:57:30 <Corun> Sigh, I'm failin' at this
07:57:36 <oklopol> god that's retarded, wish it was physical so i could punch it.
07:57:53 <Corun> Just ePunch it
07:59:11 <Corun> Thai_Braille -> Thai_Language (THE ONLY LINK ON THE BRAILLE PAGE :/) -> English Language -> Republic of Ireland -> Roman Catholic -> Jesus
07:59:32 <Corun> I expected/hoped for a jesus link on both the eng lang page AND the rep ire page, oh wells.
07:59:43 <lament> jesus hates thai
07:59:49 <Corun> Clearly.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:46 <Corun> OH YEAH, 3 links.
08:01:05 <Corun> List of Child Prodigies -> Akiane_Kramarik -> Christian_God -> Jesus
08:01:49 <lament> Thai Language->Buddhism->Christianity->Jesus
08:01:59 <Corun> Yeah, I considered that
08:02:18 <lament> dude, of course buddhism is more likely than english language
08:02:30 <lament> why would you expect jesus on the english language page
08:02:46 <fizzie> lament: Because Jesus invented the English language!
08:02:56 <lament> oh right as per KJV
08:03:48 <fizzie> Yes; it's clearly in English, and clearly also exactly what he said.
08:04:13 <Corun> I was expecting: History of English Language, something about, I dunno, how it relates to christianity in some way. I guess it's not likely to have Jesus in it :-P
08:04:23 <Corun> I know it doesn't relate :-P
08:04:31 <Corun> But wikipedia pages have _a lot_ of shiz on them
08:05:06 <Corun> I figured English Language was bound to have a link to christianity some where, if it didn't have jesus
08:05:22 <Corun> But anyway
08:05:40 <Corun> Doesn't help that I'm not used to playing lowest number of links
08:06:44 <fizzie> Back in March 2008, you could've gone "English Language -> Beowulf -> Jesus", but that link doesn't seem to be there anymore.
08:06:46 <Corun> We used to play the wikipedia game at school (find a random destination article (not allowed to be a stub) and both start from the same article and first to get to the other article without using catagories wins)
08:08:02 <Corun> Doing it by time makes it more frantic :-D
09:05:21 -!- MizardX has quit (Read error: 54 (Connection reset by peer)).
09:09:24 -!- GreaseMonkey has quit ("So, how much do you love noodles?").
09:11:05 -!- MizardX has joined.
09:20:03 -!- Corun has quit ("This computer has gone to sleep").
09:36:03 -!- Corun has joined.
09:46:58 -!- Corun has quit ("This computer has gone to sleep").
09:50:08 -!- Slereah_ has joined.
09:54:22 -!- oerjan has quit ("leaving").
09:54:28 -!- Slereah has quit (Read error: 60 (Operation timed out)).
10:49:04 -!- puzzlet_ has quit (Remote closed the connection).
10:49:12 -!- puzzlet has joined.
10:59:17 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
10:59:57 -!- jix has joined.
11:00:22 -!- puzzlet has joined.
11:42:00 <MizardX> +ul (test)S (test)S
11:42:00 <thutubot> test
11:42:14 <MizardX> +ul (test)Sx(test)S
11:42:14 <thutubot> test
11:42:24 -!- Slereah has joined.
11:42:28 <MizardX> heh, breaks on invalid input
11:44:39 -!- Slereah_ has quit (Read error: 60 (Operation timed out)).
11:47:04 <fizzie> ^ul (test)Sx(test)S
11:47:05 <fungot> test ...bad insn!
11:48:22 <fizzie> Usually thutubot's error messages are better than fungot's, though; it even says which instruction stack-underflowed. (Though I could add that one too.)
11:48:23 <fungot> fizzie: appendix a character to the debugger needs to have the same identifiers as the two characters have the extension `.i', `:1601' ( note that it can be set up for your operating system you're using it, it had some obvious deficiences ( such as the above example shows, the first line of code might never be executed with e633, so the next character. there isn't a thread; attempting to `go back' as input ( if an expression as
11:48:31 <fizzie> ^style wp
11:48:31 <fungot> Selected style: wp (1/256th of all Wikipedia "Talk:" namespace pages)
11:48:41 <fizzie> That intercal manual style is so verbose.
11:50:32 -!- Slereah_ has joined.
11:55:21 <MizardX> http://esoteric.voxelperfect.net/wiki/Redivider/Underload_Interpreter :)
11:57:20 <MizardX> oh, got to run
12:04:21 -!- Slereah has quit (Read error: 110 (Connection timed out)).
12:13:06 -!- Slereah_ has quit (Read error: 113 (No route to host)).
12:30:51 -!- Slereah_ has joined.
12:37:13 <fizzie> I just realized there are probably people for whom the primary meaning of the word "string" is "a piece of cord" instead of "a sequence of characters". That's strange.
12:38:17 -!- Hiato has joined.
12:41:47 <Slereah_> Isn't that the original meanin
12:42:08 <Slereah_> ?
12:42:53 <fizzie> Sure, but, you know, strings. Strings are made out of characters.
12:43:06 -!- ais523_ has joined.
12:43:12 <ais523_> hi AnMaster
12:43:18 <AnMaster> hi
12:43:21 <AnMaster> see new /msg
12:43:34 <ais523_> can't this time, I'm on Mibbit, although I'll see it when I'm back on my laptop
12:43:47 -!- Slereah has joined.
12:49:06 <AnMaster> a sec
12:51:53 -!- Slereah_ has quit (Read error: 145 (Connection timed out)).
13:10:14 -!- Hiato has quit (Read error: 110 (Connection timed out)).
13:21:12 <ehird> hi ais523_
13:21:46 <ais523_> hi ehird
13:21:50 <ais523_> hmm... that must have been manual
13:22:00 <ais523_> unless you've improved your script somewhat
13:24:39 <ehird> ais523_: nah
13:24:41 <ehird> the bouncer, remember?
13:24:43 <ehird> it played back the hi
13:24:44 <ehird> err
13:24:46 <ehird> played back the join
13:24:54 <ehird> so my script responded t o it...
13:25:07 <ais523_> haha
13:25:29 <ais523_> would it respond multiple times if I cyclespammed from mibbit while you weren't online?
13:25:41 <ehird> yes.
13:33:15 <ehird> ais523_: do you want a nice picture of a lighthouse that I scaled and cropped?
13:33:21 <ehird> GregorR didn't.
13:33:24 <ehird> Nor did SimonRC.
13:33:32 <ehird> I'm beginning to think that cropped-resized lighthouses are just a thing of the past.
13:33:58 <GregorR> Does this happen to be a gummy lighthouse? :P
13:34:38 <ehird> No. The lighthouse in question is neither phallic nor gelatin-based.
13:35:10 <GregorR> If it's not phallic then it's not a lighthouse.
13:35:22 -!- ais523_ has quit ("http://www.mibbit.com ajax IRC Client").
13:35:36 <ehird> It's an unphallic lighthouse.
13:35:38 <ehird> Can you imagine?
13:35:47 <GregorR> I cannot.
13:36:05 <ehird> Would you like to see this non-phallic lighthouse?
13:38:05 <ehird> GregorR: Welp, here you go. http://xs133.xs.to/xs133/08472/lighthouse157.png
13:38:18 <ehird> Hi ais523 .
13:38:24 <ehird> I posted the lighthouse two messages up.
13:38:35 <ehird> It is scaled and cropped from http://commons.wikimedia.org/wiki/Image:Crown_Point_Light_House.jpg.
13:38:41 <ehird> Or rather, from http://upload.wikimedia.org/wikipedia/commons/8/85/Crown_Point_Light_House.jpg.
13:38:41 <ais523> hi ehird
13:38:58 <ais523> ehird: why are you posting pictures of lighthouses?
13:39:12 <ehird> Only various versions of one lighthouse.
13:39:24 <ehird> http://xs133.xs.to/xs133/08472/lighthouse157.png is the main one up for grabs, post-processing.
13:44:23 <ehird> I hope you have enjoyed it.
13:44:34 <ais523> ehird: I'm using w3m as my primary browser atm
13:44:41 <ehird> w3m can display images here.
13:44:44 <ais523> atm meaning over a very short period of time
13:44:54 <ais523> I've been messing around with powertop, you see
13:45:03 <ehird> Perhaps you should use it from the console, like real men.
13:56:51 <AnMaster> ais523, hm hi
13:58:00 <AnMaster> ais523, 11 patches
13:59:10 <AnMaster> ais523, http://kuonet.org/~anmaster/c-intercal/
14:05:30 * ehird installs fish
14:14:10 <ehird> 60-70% CPU usage process of tcl installign texlive. Wonderful.
14:28:08 -!- Asztal has joined.
14:34:48 <ehird> http://github.com/rails/rails/commit/22af62cf486721ee2e45bb720c42ac2f4121faf4 wat
14:37:12 <fizzie> Well, common lisp also has the functions "first", "second", "third", "fourth", ..., "tenth" for getting elements of a list.
14:37:36 <ehird> :)
14:39:41 <fizzie> Scheme doesn't, although car, cadr, caddr and cadddr work as first .. fourth.
15:24:38 -!- sebbu has joined.
15:25:50 <GregorR> ehird: That lighthouse is undeniably phallic.
15:26:08 <ehird> You see phalluses in too many things, GregorR.
15:26:45 <GregorR> The rule is that if it's at least double as long as it is wide, and is either round or has more than five sides, it's phallic.
15:27:03 <ehird> Ha.
15:28:27 <GregorR> Furthermore, some friends of mine have determined that all things are one of phallic, mammary or concave.
15:28:43 <GregorR> It's only a matter of determining which :P
15:32:11 * ehird tries to figure out how to keep a website and its apache config file in a single git repo nicely while still not exposing the config file via the site
15:39:54 -!- pinkillo has joined.
15:40:47 -!- pinkillo has quit (Client Quit).
15:46:31 -!- warrie has quit (Read error: 110 (Connection timed out)).
16:20:34 <ehird> Suggestions welcome :-P
16:21:37 <ehird> hi ais523
16:23:11 <ais523> wb me
16:23:56 <ehird> fish(1) is nice.
16:24:58 <Slereah> Guys.
16:25:23 <Slereah> Could you simulate logic gates with missiles/anti-missiles missiles/ and so on?
16:26:46 * ehird writes ANSI->HTML
16:44:16 -!- Mony has joined.
16:46:44 <Mony> plop
16:47:42 <ais523> hi
16:48:18 <ais523> yay, the first part of gcc-bf's new build system seems to be working
16:58:34 <AnMaster> ais523, added even more patches
16:58:54 <AnMaster> see /msg too ais523
17:26:17 <oklopol> get used to seeing even more of me from now on. i'm never going out again
17:26:35 <fizzie> Whyzzat?
17:26:54 <oklopol> the wind
17:26:57 <oklopol> it hurts my brain
17:27:05 <fizzie> Oh yes; it is quite windy here too.
17:27:29 <oklopol> walked the way from band training backwards, i just couldn't ride my bike or walk normally.
17:27:35 <oklopol> hurt so goddamn much
17:27:50 <oklopol> my head is a bit sensitive
17:27:57 -!- pinkillo has joined.
17:28:04 -!- pinkillo has left (?).
17:28:25 <fizzie> Oh, again a real storm (>21 m/s) on the sea nearby, and 19 m/s right around here. Not bad.
17:32:05 <oklopol> ouch.
17:35:53 -!- Asztal has quit ("ChatZilla 0.9.84 [Firefox 3.0.4/2008102920]").
17:42:38 <ais523> fizzie: I didn't know you lived near the sea
17:43:38 <AnMaster> ais523, see /msg again
17:44:59 <fizzie> Helsinki (and Espoo too) is on the coast of the Gulf of Finland. Although my actual apartment is some 5 km from the sea, I guess.
17:45:07 <ais523> btw, my department now has a second Door I think
17:45:23 <ais523> the original one still exists, and even has been working recently
17:45:26 <ais523> but the new one is fun
17:45:29 <fizzie> (Or 2 km if you could that one bay, but...)
17:45:30 <ais523> it got into an infinite loop the other day
17:45:32 <oklopol> i'm less than 5 km away from the sea
17:45:35 <oklopol> but i never see it
17:45:38 <ais523> and ended up opening and closing alternately for several hours
17:45:42 <fizzie> s/could/count/
17:45:44 <ais523> until security came and forcibly locked it
17:46:17 <fizzie> Do you think the door is TC?
17:46:42 <oklopol> hmm
17:46:44 <fizzie> Maybe you could get a brainfuck interp running by opening and closing it in the right pattern.
17:46:50 <oklopol> well, it has one bit of storage
17:48:43 <ais523> fizzie: I don't believe my department's Doors are TC yet, but suspect it's only a matter of time
17:50:25 <oklopol> oh
17:50:34 <oklopol> perhaps i should take MizardX off ignore
17:50:39 <oklopol> hmm.
17:50:49 <oklopol> how is that done i wonder :P
17:51:23 <ehird> oklopol: why did you ignore him?
17:51:29 <oklopol> ehird: felt like it
17:51:39 <ehird> he made recursive functions in jumpfuck
17:51:39 <ehird> which is neato
17:51:49 <oklopol> yes, but i didn't tell python that, just the nicks.
17:52:14 <oklopol> how do you usually unignore in clients?
17:53:05 <oklopol> and he got them recursive huh? last i heard that was something they *didn't* support yet
17:54:37 <ais523> oklopol: /unignore is the usual command
17:54:38 <MizardX> Just need to keep track of the recursion level, and set the continuation-id accordingly. Each function gets the continuation-id as argument, so just use that plus one.
17:55:21 <oklopol> seems you have to give it the "-r" flag
17:55:34 <oklopol> from "remove", presumably
17:56:24 <oklopol> /unignore i naturally tried, but it doesn't exist
17:56:34 <oklopol> ^bool
17:56:35 <fungot> No.
17:56:40 <oklopol> another episode?
17:56:40 <oklopol> ^bool
17:56:41 <fungot> No.
17:56:42 <oklopol> k
17:56:48 <ehird> oklopol:
17:56:49 <oklopol> should i read a bit?
17:56:50 <ehird> it changed its mind
17:56:51 <oklopol> ^bool
17:56:51 <fungot> No.
17:56:52 <ehird> ^bool
17:56:52 <fungot> Yes.
17:56:58 <ehird> see, my ^bool
17:56:58 <ehird> was for the episode
17:56:58 <ehird> ^bool
17:56:58 <fungot> No.
17:57:01 <ehird> ah
17:57:02 <ehird> fungot:
17:57:02 <fungot> ehird: to be neutral so i accept differing view points. i want to defend measurements. there is no
17:57:04 <ehird> make up your mind
17:57:05 <ehird> ^bool
17:57:05 <fungot> No.
17:57:09 <oklopol> can it have changed its mind about the reading?
17:57:15 <ehird> fungot: are you sure?
17:57:15 <ehird> ^bool
17:57:16 <fungot> ehird: b. greed and fnord produce the bonds i.e fnord between the karma and our fnord causeway. the scene uses hare coursing as a metaphor and may be fnord to other military units ( normal infantry, rangers, ect.) during the current writers guild strike, but the link kept being removed. small—preceding wikipedia:signaturesunsigned comment added by fnord ( user fnord)
17:57:16 <fungot> Yes.
17:57:18 <oklopol> i mean, that's what i wanna do.
17:57:18 <oklopol> oh
17:57:20 <oklopol> neato
17:57:27 <ehird> oklopol: so read
17:58:07 <oklopol> should i ignore someone else now?
17:58:08 <oklopol> ^bool
17:58:08 <fungot> No.
17:58:14 <oklopol> okay
17:58:15 <oklopol> ->
17:59:59 <ehird> oh wowzers
18:00:00 <ehird> ais523:
18:00:02 <ehird> warrie:
18:00:05 <ehird> http://esolangs.org/wiki/Redivider/Underload_Interpreter
18:00:10 <ais523> I noticed that
18:00:15 <ais523> pretty impressive
18:00:19 <ais523> also warrie isn't here atm
18:00:22 <ehird> redivider looks lovely
18:00:36 <ehird> I'ma write a compiler
18:00:38 <ehird> ^_^
18:00:52 <ais523> wait, that looks buggy
18:01:00 <ais523> AFAICT ~ isn't fully implemented
18:01:09 <ais523> MizardX: ^
18:01:14 <ehird> ah
18:01:20 <ehird> ais523: e wasn't told about ^
18:01:25 <ehird> yesterday he listed the commands he thought
18:01:27 <ehird> and omitt
18:01:28 <ehird> no wait
18:01:31 <ehird> | { /[\^]/;
18:01:31 <ehird> fst: head[stack];
18:01:31 <ehird> rest: tail[stack];
18:01:32 <ehird> run(rest)[fst + /.*/] }
18:01:39 <ais523> ehird: I was referring to ~ not working
18:01:44 <ehird> oh
18:01:45 <ais523> and used ^ to nickping the previous line
18:01:46 <ehird> anmaster-pings
18:01:46 <ehird> ewwwwwwww
18:02:18 <MizardX> doh
18:02:24 <MizardX> fixing it now
18:02:48 <oklopol> wow derivider is pretty
18:02:53 <ehird> yeah
18:02:57 -!- Corun has joined.
18:02:58 <ehird> oklopol: i helped make its syntax!
18:02:58 <ais523> clever, too
18:03:05 <ehird> originally it had a lot of pointless empty ()s and []s
18:03:06 <ehird> and stuff
18:03:15 <ehird> I told ihope to remove them and voila, redivider is pretty.
18:03:19 <oklopol> ehird: yeah i was there.
18:03:31 <ehird> lol
18:03:31 <ehird> :D
18:03:38 <ehird> just gotsa brag
18:03:53 <oklopol> :)
18:04:36 <oklopol> hmm, redivider is a palindrome. i wonder how many times i've realized that...
18:05:14 <oklopol> it has regexes?
18:09:34 <MizardX> Regexes as a sub-language. It is the only way match input/substrings.
18:10:31 <oklopol> hmm.
18:11:27 <oklopol> okay *this* is pretty http://esolangs.org/wiki/Redivider/Brainfuck_Interpreter
18:13:12 <MizardX> The underload interpreter was much easier to write. It doesn't require implementing any new arithmetic operation.
18:21:21 <ehird> [[\X, where X is an ASCII character mnemonic (NUL through US and DEL)]]
18:21:22 <ehird> fuck you redivider
18:21:25 <ehird> >:|
18:21:39 <ais523> hah, that's clever
18:23:37 -!- Sgeo has joined.
18:34:03 <MizardX> Geh, bug in my interpreter then. It uses \n \r etc.
18:36:04 <MizardX> should I still allow the short, well-established form? (\n and \NL)
18:37:04 * ehird got his parser parsing strings
18:37:04 <ehird> woop
18:37:12 <ehird> it will compile to python
18:37:12 <ehird> :D
18:37:27 <ehird> MizardX:
18:37:27 <ehird> <stringguts> consists of ASCII characters other than " and \ as well as escape codes. Escape codes must include \\, representing \; \", representing "; \n, representing the newline character; \0nnn where n is an octal digit, representing the character with code nnn; \0xnn where n is a hexadecimal digit, representing the character with code nn; and \X, where X is an ASCII character mnemonic (NUL through US and DEL). The set of escape codes must be prefix-free a
18:37:28 <ehird> quite complex.
18:38:15 <ehird> WTf...
18:38:19 <ehird> This is a valid redivider program:
18:38:22 <ehird> ) ; +
18:38:27 <ais523> why?
18:38:27 <ehird> A program consists of <token>s separated by whitespace
18:38:29 <ehird> <token> ::= <word> | "(" | "," | ")" | ":" | "|" | "+" | "{" | ";" | "}" | "."
18:38:29 <ehird> | <string> | <regex> | "#" anything newline
18:38:34 <ais523> oh
18:38:36 <ais523> does it mean anything?
18:38:41 <ehird> BUG BUG BUG BUG ALL ONBOARD THE BUG TRAIN
18:38:46 <ehird> SPEC GOT A BUGGY BUG WOOOOOOOOOOO!
18:38:58 <ehird> well
18:39:02 <ehird> it makes sense if you interpret it like an idiot
18:39:03 <ehird> :3
18:39:06 <MizardX> ok, \n is given. How about \r, \f, \t etc?
18:39:27 <ehird> MizardX: sure
18:39:30 <ehird> it's undefined so you can
18:40:22 -!- kt3k has joined.
18:40:56 <ehird> Hmm.
18:41:01 <ehird> Nothing actually _uses_ <token>
18:41:18 -!- kt3k has quit (Client Quit).
18:43:09 <ehird> UGH!
18:43:16 <ehird> It's almost impossible to parse the regexes
18:43:22 <ehird> as you have to parse all regex escapes too
18:43:37 <ais523> ehird: reminds me of Perl
18:43:57 <ehird> MizardX: how do you do it?
18:44:04 <MizardX> regex :)
18:44:12 <ehird> you can't parse regexes with regex.
18:44:17 <ehird> MizardX:
18:44:23 <ehird> /[abc/def]/
18:44:46 <MizardX> /(?:\\.|[^\\])*/
18:44:54 <MizardX> /(?:\\.|[^\\/])*/
18:44:57 <ehird> does not match /[abc/def/] properly.
18:45:38 <MizardX> No, you need to escape the /
18:46:13 <ehird> iirc, perl disagrees with me.
18:46:36 <ais523> ehird: you need to escape / in [] in Perl m// I think
18:46:47 <ais523> because it finds the end of the regex first
18:46:50 <ais523> then parses its insides
18:48:05 <ehird> i should probably do like MizardX's interp and lex it all first.
18:49:02 -!- KingOfKarlsruhe has joined.
18:52:10 -!- Corun has quit ("HAMMER POWER").
19:01:49 <ehird> (?:(/(?:(?:\\.|[^/])*)/|#[^\n]+|{|\)|}|;|([a-zA-Z]+)|\||,|\+|\(|:|\.|"(?:(?:\\.|[^"])*)")\s*)
19:01:54 <ehird> MizardX: think that'll parse redivider? :D
19:02:03 <ehird> well
19:02:04 <ehird> needs ordering ofc
19:02:06 <ehird> but whatever
19:02:19 <oklopol> making redevider in redevider?
19:02:24 <ehird> nah
19:02:27 <ehird> just making lexing easy
19:02:56 <oklopol> o
19:03:08 <ehird> better one:
19:03:10 <ehird> (?:(([a-zA-Z]+)|[(,):|+{;}.]|"(?:(?:\\.|[^"])*)"|/(?:(?:\\.|[^/])*)/|#[^\n]+)\s*)
19:04:25 <MizardX> <word> ::= {letter or digit}
19:04:35 <ehird> {...} = many
19:05:02 <ehird> ([a-zA-Z]+|[(,):|+{;}.]|"(?:(?:\\.|[^"])*)"|/(?:(?:\\.|[^/])*)/|#[^\n]+)
19:05:05 <ehird> final version, probably
19:05:07 <ehird> as long as it works
19:06:04 <MizardX> [a-zA-Z0-9]+
19:06:09 <ehird> oh
19:06:11 <ehird> right
19:06:11 <ehird> duh
19:06:34 -!- nooga has joined.
19:06:43 <nooga> hello :>
19:06:49 <ehird> yo
19:06:53 <ehird> :)
19:07:31 <MizardX> [^\W_]+ :)
19:07:43 <ehird> MizardX: I see no _
19:07:49 <ehird> also, that's \w
19:08:25 <MizardX> \w = [^\W] = [A-Za-z0-9_]; [^\W_] = [A-Za-z0-9]
19:08:31 <ehird> ah, right
19:08:38 <ehird> very clever & evil
19:09:48 <nooga> well
19:14:16 <fizzie> [[:alnum:]] is also very obvious, though a couple of letters longer.
19:14:45 <nooga> i wonder if it's possible to generate a tiny bit of x86 machine code, place it in the char array and then call it as a C function, all in runtime ofc
19:14:54 <nooga> stupid queston, it is possible
19:15:02 <fizzie> Sure.
19:15:02 <nooga> though i never tried ;|
19:15:05 <fizzie> I do that in jitfunge.
19:15:16 <fizzie> (Although it's a mmap()'d block with PROT_EXEC privileges.)
19:15:25 <nooga> a
19:15:29 <fizzie> (A general malloc()d block might not be suitable for executing code.)
19:15:41 <nooga> why?
19:15:51 <ais523> nooga: it might be placed somewhere marked nonexecutable
19:16:00 <ais523> as an anti-buffer-overflow message
19:16:55 <nooga> can i read some sources with such neat trickz? :>
19:17:21 <fizzie> I have a very preliminary tarball of jitfunge in the web, but that's really not a pleasant thing to read.
19:17:22 <ais523> fizzie: doesn't jitfunge do something like that?
19:17:26 <fizzie> ais523: Yes.
19:18:16 <nooga> giev
19:18:26 <nooga> giev sauce! xD
19:18:50 <ehird> nooga: perhaps a quicker response could be gained by using english
19:18:54 * ehird just sayin'
19:19:03 <fizzie> http://zem.fi/~fis/jitfunge-export.tar.gz if I recall the URL correctly.
19:19:18 <fizzie> That version is somewhat buggy, though.
19:19:38 <fizzie> (That is not to imply that I'd actually *have* a bug-free version; I don't.)
19:20:13 <nooga> ehird: yea, currently i'm fascinated by speech used by 4chan retards
19:20:23 <ehird> i gathered
19:21:24 <nooga> fizzie: i just need the runtime execution schema
19:21:46 <ehird> nooga: so you want fizzie to do all the work for you
19:21:48 <ehird> cmon :D
19:21:54 <fizzie> Well, that's easy.
19:22:22 <fizzie> mmap(..., PROT_READ|PROT_WRITE|PROT_EXEC, ...); -- then just write there, cast it to a function pointer and call it.
19:22:30 <nooga> ah
19:23:14 <fizzie> It's there in the "AsmFunction" class if you want to look at how jitfunge does it.
19:23:28 <fizzie> Not too tricky, anyway.
19:24:23 <nooga> + i must generate all that stuff that gcc does in functions to seamlessly imitate a 'real' function
19:25:01 <fizzie> Well, sure, you need to know your platform's and compiler's calling conventions.
19:25:12 <nooga> rrright
19:25:31 <nooga> what is that SConstruct file?
19:25:49 <fizzie> It's a scons build file.
19:26:07 <fizzie> (And SCons is a make-replacement.)
19:26:33 <MizardX> Can you declare a function-pointer as __stdcall, __cdecl or __fastcall ?
19:27:21 <fizzie> I assume you could; at least it sounds useful.
19:27:56 <nooga> wow
19:28:07 <nooga> Assembler class looks nice :>~~~
19:28:34 <fizzie> It's just a x86 code generation tool. Very idiosyncratic, too; probably not too friendly to use.
19:29:56 <fizzie> The put_call methods do only calls to the specific types of function pointers I use, and sp_load/sp_store are about moving the Befunge stack pointer I keep in the ESI register... it's not really very generic. And it only contains those x86 opcodes I've happened to use.
19:30:57 <nooga> yea
19:31:01 <nooga> i can see that
19:31:22 <nooga> but i will need to write something more or less similar
19:31:47 <oklopol> you know what's cute?
19:31:49 <fizzie> LLVM might be worth thinking about for code generation, too.
19:32:23 <fizzie> I did all that stuff from scratch just for fun.
19:32:24 <oklopol> watching python try out all self-avoiding paths.
19:32:51 <AnMaster> oklopol, eh?
19:33:17 <oklopol> all paths on NWSE where the path doesn't intersect itself.
19:33:18 <nooga> oh, didn't knew that LLVM exists
19:33:20 <nooga> thx
19:37:43 <oklopol> it's a bit unfortunate the little guy will never grow up to be much more than 15 :<
19:37:59 <ehird> wat
19:38:19 <oklopol> my self-avoiding path wormy, it'll never grow up to be even 15 cells long
19:38:20 <nooga> he?
19:38:28 <ehird> lol
19:38:29 <oklopol> because that'd take ages :|
19:38:34 <ehird> speed it up
19:38:38 <ehird> by 1000x
19:38:46 <oklopol> i made it skip every 200th iteration
19:38:59 <oklopol> but that didn't look nearly as cute
19:39:08 <oklopol> also it starts to get stuck then.
19:39:20 <oklopol> because there are, occasionally, big gaps between two self-avoiding paths
19:43:49 <nooga> http://www.hacker.org/hvm/ seen this?
19:44:02 <nooga> a bit lame i'd say
19:44:28 <nooga> i have developed a compiler targeting that
19:44:40 <nooga> though loops are a bit tricky
19:45:15 <oklopol> yeah looks like it
19:47:56 <nooga> jump instructions must jump over corelated jump instruction + literals of variable length = tricky part
19:48:33 <oklopol> yeah but isn't it enough to push the amount of jumps just before the jump instructions
19:49:00 <oklopol> doesn't sound too hard if you're making a compiler, might be annoying manually, if you were programming directly in the lang
19:49:41 <oklopol> "amount of jumps"
19:49:42 <oklopol> lol
19:49:47 <oklopol> i meant the length of the jump
19:49:58 <fizzie> Since it's obviously not trying to be an especially hard-to-program language, it really could have a "push literal" instruction instead of just 0-9.
19:50:27 <oklopol> it's probably designed to be a trivial to implement langauge.
19:50:30 <oklopol> *ölanguage
19:50:33 <oklopol> ...
19:50:35 <oklopol> *language
19:50:56 <nooga> hyyy
19:52:42 <nooga> compiling while is like: <beginning><adress of end><!condition test><jump?> <blah blah> <adress of beginning><jump> <end>
19:52:46 <nooga> and now
19:53:32 <nooga> adress of end must include length of adress of beggining and vice versa
19:54:02 <oklopol> yes, but that's not too hard, you can just pad the computation to be the same length everywhere.
19:54:05 <nooga> sh...
19:54:09 <fizzie> It's still trivial if you're not a perfectionist and can stand a couple of nops here and there when your literals happen to be unexpectedly short.
19:54:14 <nooga> that's what i've done
19:54:14 <oklopol> yeah
19:54:17 <nooga> using nops
19:54:21 <nooga> spaces
19:56:41 <fizzie> Do you use something clever to find the shortest way of pushing a particular literal, or just something boring like base-9 numbers with x+9*y+9*z+...?
19:56:56 <nooga> hmmm
19:57:05 <nooga> you can call it clever
19:57:20 <nooga> let me refresh my memory and explain
19:57:47 <fizzie> (I'm partially away, so I may not respond with the appropriate "um"s and "oh"s. Hopefully someone else is willing to do that part.)
19:59:48 <ehird> >>> parse(lex('abc(a,b)'))
19:59:48 <ehird> [('decl', 'abc', ['a', 'b'])]
19:59:49 <ehird> gettin' there
20:00:18 -!- KingOfKarlsruhe has quit (Remote closed the connection).
20:00:34 <nooga> well
20:00:47 <nooga> it's an uuuuuuuuuuugly ruby function :D
20:00:52 <nooga> http://rafb.net/p/GlTDVw34.html
20:01:28 <nooga> ruby multiplies strings
20:03:55 <nooga> but works
20:03:57 <nooga> irb(main):025:0> literal(43629)
20:03:58 <nooga> => "99996*5+*7+*5+*6+"
20:05:09 <fizzie> That looks like a base-9 number to me, really.
20:05:40 <nooga> nope
20:06:15 -!- Asztal has joined.
20:06:18 <fizzie> 6*9^4+5*9^3+7*9^2+5*9+6
20:06:24 <fizzie> What else is it than a base-9 number?
20:06:56 <nooga> that cannot beeee.... noooooooo :C
20:07:20 <nooga> but seems to be shorter than normal base 9 notation
20:07:55 <nooga> "992+*1+"
20:08:10 <nooga> (9+2)*9+1
20:08:47 <nooga> this is 100
20:09:09 <fizzie> You could still write it as "69*5+9*7+9*5+9*6+", which is the base-9 notation (in a stack-based language) that I first thought of.
20:09:19 <nooga> 1*9^2+2*9+1
20:10:09 <fizzie> Obviously no-one would write it as 69999****5999***+799**+59*+6+.
20:11:06 <nooga> 99*29*1++ vs 992+*1+
20:12:25 <nooga> so it's just base 9 in written in a bit more intelligent form
20:12:37 -!- Mony has quit ("Join the Damnation now !").
20:16:00 <fizzie> Anyway, I was just hoping for something that'd give "88*0^*" instead of "9995*5+*5+*1+" to push 4096. Not that I'd probably have bothered either.
20:17:13 <nooga> hm
20:18:13 -!- Deewiant has quit (Read error: 60 (Operation timed out)).
20:18:33 <nooga> it shouldn't be so hard
20:21:14 <nooga> factorize, build a tree, find identical nodes or try to optimize and generate the code
20:21:16 <fizzie> Sure it should. It's pretty close to the Kolmogorov complexity.
20:21:33 <fizzie> Well, I guess it shouldn't be hard to get *something* that might work.
20:21:43 <fizzie> But that sort of thing won't use loops at all.
20:22:22 <nooga> cig break, need to think about my lameness
20:24:14 <fizzie> Let's say you want to push A(4,4) or something; it's quite likely that the shortest way (or at least a good way) to do that is the recursive definition of A, but I wouldn't want to have to write some code that'd grok things like that.
20:24:25 <fizzie> Well, given the size of A(4,4) maybe you don't need to push it often.
20:25:23 <oklopol> yeah it's basically kolmogorov complexity.
20:26:11 <fizzie> That c/$ pair is a bit silly; why does it push the program counter and not the program counter +1?
20:26:32 -!- Deewiant has joined.
20:27:29 <fizzie> Well, maybe it's because $ increments afterwards. Okay, then it makes sense.
20:28:21 <nooga> hehe
20:28:42 <nooga> it's sooo hackerish
20:29:13 <fizzie> Personally I think it's a bit boring; it's like unefunge with SUBR.
20:29:24 <fizzie> And no going backwards, either.
20:29:40 <fizzie> Of course I guess it's not trying to be especially interesting, but still.
20:29:42 <nooga> implementation of && || and < > >= <= == was somewhat entertaining
20:30:27 <nooga> ah, the whole hvm thingy is just a platform for problems like floodfill etc
20:30:37 <fizzie> My implementation of Funge-98's ` (which is basically >) uses no conditional jumps. (Just a conditional set.)
20:37:15 <nooga> uh
20:38:24 -!- ehird has left (?).
20:38:28 -!- ehird has joined.
20:39:04 -!- kar8nga has joined.
20:40:12 <nooga> i need to code something at least a bit hacky
20:40:25 <nooga> my skills are getting worse and worse
20:40:37 <ais523> nooga: write an INTERCAL to Malbolge compiler
20:40:45 <nooga> nope
20:47:43 -!- Asztal has quit (Read error: 110 (Connection timed out)).
20:55:57 -!- oerjan has joined.
20:57:47 <nooga> i'd build a processor from transsistors or sth
21:00:02 <ehird> __main__.RedividerSyntaxError: Around line 1, column 11: Expected rparen, got string
21:00:03 <ehird> odd.
21:07:52 <oerjan> <Slereah> Could you simulate logic gates with missiles/anti-missiles missiles/ and so on?
21:08:12 <oerjan> i have this feeling this would be a once-only simulation
21:11:34 <oerjan> <ais523> and ended up opening and closing alternately for several hours
21:11:49 <ais523> oerjan: seriously
21:11:56 <ais523> it's an automatic Door
21:12:10 <ais523> and when it closed it triggered the someone's trapped behind the door sensor
21:12:17 <ais523> so it opened again for health and safery reasons
21:12:18 <oerjan> your department sounds like it has a door curse, or a ghost. try an exorcist :D
21:26:19 <oerjan> The set of escape codes must be prefix-free and all other escape codes are undefined. <-- ahem, i see both \SO and \SOH in the python code
21:26:38 <ehird> oerjan:
21:26:46 <ehird> nd \X, where X is an ASCII character mnemonic (NUL through US and DEL).
21:26:49 <ehird> ITT: We read the specs
21:26:56 <ehird> now, who wants to debug my parser
21:27:17 <oerjan> ehird: the spec is contradicting itself
21:27:26 <ehird> how
21:27:52 <oerjan> because the mnemonics are _not_ prefix free. both SO and SOH are mnemonics (assuming MizardX has them right)
21:29:11 <ais523> yep, Shift Out and Start of Header
21:30:45 <ehird> ah
21:30:49 <ehird> well, lol :D
21:30:56 <oerjan> MizardX: also you forgot DEL one way in http://paste.eso-std.org/v
21:31:03 <ehird> in mine, SOH wouldn't work
21:31:05 <ehird> it'd be SO, then H
21:31:15 <ehird> and you know what
21:31:17 <ehird> i don't care
21:31:17 <ehird> :P
21:31:56 <oerjan> which was the point of trying to require prefix freeness in the first place, i assume
21:32:41 <oerjan> MizardX: (in escapes_re)
21:33:37 <ais523> clearly \SOH should have the same effect as . . in HOMESPRING
21:34:42 <oerjan> which is?
21:34:53 <ais523> oerjan: it causes a temporal paradox
21:35:03 <ais523> the reason is that dot space is an escape for space
21:35:08 <ais523> space dot is an escape for dot
21:35:15 <ehird> *kaboom*
21:35:50 <ais523> and dot space dot is ambiguous, and instead of addressing this problem the person who specced out HOMESPRING said that conforming implementations had to cause a temporal paradox if this happened, and as a result there are no conforming implementations
21:36:13 -!- KingOfKarlsruhe has joined.
21:36:15 <ehird> write it in twoducks
21:37:08 <oerjan> very fishy
21:37:28 <MizardX> Added DEL, and switched SO/SOH. It'll get uploaded on next version
21:38:28 <ehird> MizardX: wanna debug my parser? :}
21:39:37 <MizardX> I could look at it... but not right now.
21:40:16 <oerjan> i guess the prefix free part of the spec will just have to be removed
21:41:52 <ehird> or
21:41:55 <ehird> remove the stupid mnemonic thing
21:42:36 * oerjan makes it parse greedily
21:49:37 <oerjan> <nooga> i wonder if it's possible to generate a tiny bit of x86 machine code, place it in the char array and then call it as a C function, all in runtime ofc
21:50:56 <oerjan> i recall reading that the ghc haskell compiler uses that for it's ffi interface, and that this gave trouble when trying to use it with a secure linux implementation
21:51:59 <oerjan> because the security includes disallowing self-modifying code
21:52:38 <oerjan> (SELinux)
21:53:38 <fizzie> Making stack and heap non-executable is quite common, but I would think at least some systems still allow executing code from memory area that's been explicitly requested for that purpose.
21:54:28 <oerjan> yeah, this was about security-enhanced linux
21:55:01 <ehird> THISMAKESNOSENSE
21:55:04 <fizzie> (About that in SELinux:) "If the program really needs this behavior there is no really easy way out. One possibility is to create an anonymous file (just unlink it after creation), size the file using ftrunctate, and then map the file in two places. In one place map it with MAP_SHARED and write permission but without execution. For the second mapping use execution permissions but no write permissions. This might be a bit confusing at first but can be handled."
21:55:38 <ehird> someone fix my parser
21:57:31 <fizzie> Parsing is a solved problem, as someone famous said.
21:57:45 <ehird> so is your mom
21:57:46 <ehird> ooh burn
21:59:05 <lament> solving problems is a solved problem.
21:59:28 -!- kar8nga has left (?).
22:07:28 <ehird> my parser works
22:07:29 <ehird> ^.^
22:14:06 <MizardX> ehird: Give me a link. I'll look at it now.
22:14:16 <ehird> hehe, sure
22:14:20 <ehird> I'll paste the relevant part
22:14:41 <ehird> MizardX: http://paste.eso-std.org/w
22:14:47 <ehird> with some inspiration from yours :)
22:15:18 <ehird> it's a compiler
22:15:20 <ehird> obviously
22:15:21 <ehird> :p
22:15:23 <ehird> well, it will be
22:15:24 <ehird> that's just the parser
22:16:14 <MizardX> token.match(code[index:]) == token.match(code,index)
22:16:23 <ehird> oho
22:16:28 <ehird> i was not aware that existed.
22:18:08 <ehird> MizardX: um, isn't del 127?
22:18:09 <ehird> not 177
22:18:09 <ehird> in yours
22:18:17 <MizardX> 177 octal = 127 decimal
22:18:27 <ehird> MizardX: python \n is decimal
22:18:28 <ehird> iirc
22:18:36 <ehird> huh
22:18:36 <ehird> its not
22:18:37 <ehird> weird.
22:18:38 -!- KingOfKarlsruhe has quit (Remote closed the connection).
22:19:23 <ehird> ok, parser all done
22:19:26 <ehird> now for the compiler!!
22:19:28 <ehird> :D
22:19:33 <MizardX> you don't allow whitespace before the first token :P
22:19:56 <ehird> MizardX: that's why you .strip() the input string.
22:20:04 <fizzie> What were you compiling it to?
22:20:08 <ehird> i could put that in parse :P
22:20:13 <ehird> fizzie: python first, then c if that goes well
22:20:21 <ehird> i'll c if it does
22:20:22 <ehird> :-p
22:20:37 <ehird> oerjan: pun alert!
22:25:38 <oerjan> YOU KNOW I HATE PUNS ----###
22:25:53 <ehird> lulz
22:26:38 <MizardX> ehird: "A name without the list of parameters denotes the variable if it is in scope, the parser otherwise.". You threat all names without parens as variables.
22:26:39 <oerjan> CRUSH THEM LIKE FLIES, I SAY
22:26:50 * oerjan turns down the volume
22:27:00 <ehird> MizardX: that's handled by the runtime.
22:27:06 <ehird> (the variable will override the parser)
22:27:16 <ehird> and calling will be done in a way specialcasing that
22:27:16 <ehird> sooooooo
22:27:35 <ehird> i hope i dont have to do scope analysis at compile time
22:27:36 <ehird> :(
22:28:16 <MizardX> variable names are static, so they will always only refer to the previous declaration.
22:28:21 <ehird> yeah
22:28:26 <ehird> still means i have to do analysis
22:28:26 <ehird> :P
22:32:27 <MizardX> Well... I didn't spot any other bugs. Good job so far.
22:33:33 * ehird makes all regex's precompiled in the output
22:36:36 <MizardX> Precompiled regex'es in python?
22:37:10 <oklopol> o
22:37:29 <ehird> MizardX: yaeh
22:37:30 <ehird> *yeah
22:37:55 <fizzie> I assume that means "will be compiled when the Python script starts", not "precompiled" in the most strictestest sense.
22:37:59 <ehird> Yes.
22:38:12 <MizardX> That makes more sense
22:40:55 <ehird> hmm
22:40:57 <ehird> a + b is just
22:41:07 <ehird> hmmm
22:41:10 <ehird> it returns the result of b, right?
22:41:19 <ehird> i.e. when giving it stuff, it throws the result of that fed through a away
22:41:36 -!- jix has quit ("...").
22:41:59 <ehird> Or... what?
22:42:41 <ais523> I think it's them concatenated, based on the Underload interp MizardX pasted
22:42:43 <ais523> but I'm not sure
22:42:55 <ehird> Can't parsers return things other than strings?
22:43:57 <MizardX> The plus sign denotes concatenation. First, the input string is fed into the left parser. If it succeeds, then the new input string is fed into the right parser. If it succeeds, the concatenation also succeeds, returning the string concatenation of the two result strings as the result and the input string of the right parser as the new input string.
22:44:27 <ehird> I guess so. Huh.
22:44:29 <MizardX> They can only return strings. Though they can also both soft and hard fail.
22:44:35 <ehird> Soft/hard fail is confusing, yeah.
22:44:43 <ehird> I'm representing it as two seperate python exceptions, is that right?
22:44:55 <MizardX> Soft fail is like a null result. Hard fail is like an exception.
22:45:15 <ehird> So a parser returning "" soft fails?
22:45:33 <fizzie> "" sounds like succeeding to me.
22:45:40 <fizzie> It's just an empty string.
22:45:54 <ehird> [[soft fail is like a null result]]
22:46:01 <fizzie> But "" is not like a null result.
22:46:08 <MizardX> A soft fail in the middle of a block, argument list or concatenation results in a hard fail.
22:46:22 <ehird> MizardX: does this parser soft fail:
22:46:23 <ehird> foo: "".
22:46:28 <MizardX> no
22:46:33 <ehird> ok
22:46:39 <MizardX> succeeds with an empty string result.
22:46:42 <ehird> im just finding it hard to distinguish between hard/soft failing
22:47:25 <MizardX> Soft fails becomes important for alternations. A soft fail for the left child results in that the right child gets parsed instead.
22:47:40 <ehird> why not just a regular fail?
22:47:44 <ehird> fail for left child -> right child
22:47:49 <ehird> and no hard/soft
22:48:20 <MizardX> Strings always succeeds. Regexes can either succeed or soft fail.
22:48:27 <ehird> right, but...
22:48:29 <ehird> why not just have one type of fail
22:48:53 <MizardX> No hard fail?
22:49:09 <ehird> What's the problem with no hard fail?
22:49:31 <fizzie> My guess is that you might want to have a "this failed completely, don't even try to continue messing around" type of failure.
22:49:45 <MizardX> I guess it so it could potentionally be run on input with no back-tracking capabilities.
22:50:10 <ehird> Alright.
22:51:26 <ehird> Hmm.
22:51:42 <ehird> + and | are... whatever the word is for not mattering about left/rightness, right?
22:51:48 <ehird> (a + b) + c == a + (b + c)
22:51:53 <ehird> and (a | b) | c == a | (b | c)
22:51:57 <MizardX> yes
22:52:00 <ais523> associative
22:52:26 <ehird> MizardX: except... if the first hard/soft fails
22:52:28 <ehird> it fails the same way
22:52:30 <ehird> but if the second does
22:52:33 <ehird> in any way
22:52:35 <ehird> it hard fails
22:52:40 <ehird> so, it matters what exactly the escond is
22:52:51 <ehird> so they aren't, are they?
22:53:03 <ehird> it's a + (b + c) in the spec, anyway
22:53:28 <MizardX> if b or c soft fails in either case, the whole expression hard fails.
22:53:48 <ehird> yeah
22:53:53 <ehird> you're right
22:55:28 <MizardX> Soft fail no the last branch on the alternation on the other hand, only causes the whole expression to soft fail.
22:55:54 * ehird has to structure, oops.
22:55:56 <ehird> *restructure
22:56:04 <ehird> can't do a + b without each subparser being a seperate function
22:56:09 <ehird> so i need to do that for a | b too
23:00:37 <oklopol> so
23:00:45 <oklopol> i think i should have some breakfast.
23:00:52 <oklopol> since it's tomorrow already
23:00:53 <ehird> weird idea
23:01:40 <oklopol> is it? what's weird about eating
23:09:11 <MizardX> I'll go to sleep now. Need to get up in a few hours. :S
23:10:43 <MizardX> ehird: One problem for you; How to check if two strings are equal in Redivider, without hard-failing.
23:10:54 <ehird> Hrrrrrrrrm.
23:11:04 <ehird> MizardX: is that even possible
23:11:16 <ehird> wait
23:11:18 <ehird> that's easy
23:11:28 <ehird> i think
23:11:38 <ehird> MizardX: got it, i think:
23:12:21 <ehird> wait, no.
23:12:22 <ehird> hmm.
23:13:06 <ehird> ais523: ping
23:13:49 <ais523> pong
23:13:55 <ais523> yay, gcc-bf's build system works
23:14:04 <ais523> at least for an initial compile
23:14:08 <ais523> next step: make it work as a Makefile
23:23:16 <fizzie> Hum, if you've got a string in variable 'a' and another in variable 'b', and you want to test for their equality, and you happen to know X's not in the string, can't you just do /([^X]*)X\1/ a + "X" + b ?
23:23:24 <fizzie> Not quite generic, of course.
23:25:56 <fizzie> Uh, meaning /([^X]*)X\1/ [ a + "X" + b ] there, of course. For some reason read the "parser_1 [ parser_2 ]" without the brackets.
23:26:13 <fizzie> I've never done anything with that language.
23:26:31 <MizardX> if the regular expression fails, then re[...] will hard fail
23:26:39 <ehird> wb MizardX? :P
23:26:45 <pikhq> heheheh... Nice work, ais523.
23:26:57 <ehird> MizardX: btw, i think i have an idea for the comparer
23:27:26 <GregorR> I have an idea: Call it the "comparator" :P
23:28:30 <ehird> MizardX:
23:28:30 <ehird> equal(a, b): { /$/[a]; /$/[b]; "equal" } | { /$/[a]; "not equal" } | { /$/[b]; "not equal" } | { ha: head[a]; hb: head[b]; equal(ha, hb); equal(tail[a], tail[b]) }.
23:28:31 <ehird> head: /(.)/.
23:28:31 <ehird> tail: /.(.*)/.
23:28:35 <ehird> needs the one-character case, but still
23:29:14 <MizardX> /regex/[input] will hard fail if the regex soft-fails
23:29:37 <fizzie> Causing the whole | to hard-fail. That's one tricky language.
23:29:48 <ehird> mmph.
23:30:37 <MizardX> one way would be {/regex/; body}[input]
23:31:22 <MizardX> as long as body doesn't fail
23:31:53 <MizardX> or ({/regex/;body}|alt)[input]
23:32:04 <fizzie> How would that work? Won't the block instantly hard-fail if the regex fails?
23:32:21 <MizardX> not for the first line
23:32:33 <fizzie> "If the first parser soft fails, the block soft fails. If any other parser fails, or the first parser hard fails, then the block hard fails."
23:32:39 <fizzie> Why not?
23:32:51 <fizzie> Oh, right.
23:32:57 <fizzie> The regex will only soft-fail there.
23:35:42 <ehird> hmmmmmmmmmmmmmmmm
23:35:47 <ehird> anyone who knows about prolog:
23:35:55 <ehird> is it possible for a predicate to cause a new statement (axiom, whatever?)
23:35:56 <ehird> like
23:35:57 <ehird> you can do
23:36:00 <ehird> pred(X) :- condition
23:36:00 <ehird> but
23:36:02 <ehird> can another predicate
23:36:02 <ehird> state
23:36:03 <ehird> pred(X)
23:36:12 <ehird> so that even if the condition it was stated on becomes false, the axiom remains?
23:36:33 <oerjan> ehird: assert(...)
23:36:50 <ehird> oerjan: so I can do
23:36:57 <ehird> makeFoo(X) :- assert(foo(X))
23:36:57 <ehird> then
23:37:00 <ehird> makeFoo('hi')
23:37:06 <ehird> and => foo('hi')?
23:37:15 <oerjan> yep iirc
23:37:22 <ehird> | ?- assert(foo('hi')).
23:37:22 <ehird> uncaught exception: error(existence_error(procedure,assert/1),top_level/0)
23:37:37 <ehird> ah
23:37:39 <ehird> works with swi
23:37:46 <ehird> yay it works
23:37:46 <ehird> :)
23:37:54 <oerjan> oh right there are some technicals
23:37:55 <fizzie> You can also retract/1 things.
23:37:59 <ehird> awesome
23:38:07 <ehird> my game of prolog in nomic shall pwnz0r!!11
23:38:11 <oerjan> you may need to declare foo first in some implementations
23:38:15 <nooga> eee
23:38:19 <ehird> oerjan: hmm
23:38:20 <ehird> like just
23:38:21 <ehird> foo.?
23:38:26 <ehird> or...what
23:38:30 <ehird> if i want no defaulted predicates...
23:38:32 <nooga> did someone ever implemented something like esoteric prolog?
23:38:34 <ehird> eh
23:38:42 <ehird> nooga: no, btu ais523 designed Proud or was it Pound
23:38:44 <ehird> which is uncomputable
23:38:45 <oerjan> i don't quite recall how
23:39:50 <ehird> btw:
23:40:02 <ehird> foo(X) :- not(bar(X)), assert(...)
23:40:03 <fizzie> I've done a Scheme interpreter in Prolog; it felt a tiny bit esoteric-y, even if both involved languages are so mainstream. It's not "esoteric prolog" in the sense you meant, though.
23:40:07 <ehird> youre not meant to use not in prolog are you?
23:40:16 <ehird> you're meant to use cut aren't you
23:40:17 <ehird> and i forget how
23:41:40 <fizzie> Maybe you could just foo(X) :- bar(X), !, fail. foo(X) :- assert(...). or something, but I'm not sure if that's any nicer. Not a Prologer, though.
23:41:57 <oerjan> ehird: ah you declare it with dynamic
23:42:08 <ehird> ah
23:42:21 <oerjan> http://gollem.science.uva.nl/SWI-Prolog/Manual/dynamic.html
23:42:26 <ehird> thanks
23:42:52 <ehird> dynamic(player).
23:42:52 <ehird> register(email, name) :- not(player(email, N)), assert(player(email, name)).
23:42:54 <ehird> discuss!
23:43:20 <ehird> No permission to modify static_procedure `(dynamic)/1'
23:43:20 <ehird> D:
23:43:24 <oerjan> ehird: dynamic player/2, actually
23:43:30 <ehird> ah
23:43:40 <ehird> still:
23:43:41 <ehird> ERROR: (/Users/ehird/Documents/Code/nomic.pl:1):
23:43:41 <ehird> No permission to modify static_procedure `(dynamic)/1'
23:44:17 <ehird> also
23:44:20 <ehird> needs to be Email, Name
23:44:21 <ehird> obviously
23:44:46 <ehird> but yeah
23:44:49 <ehird> dynamic no worky :(
23:45:00 <nooga> i saw prolog implementation in ruby that permitted using prolog inline
23:45:17 <nooga> bcs it was coded using ruby's syntax awesomness
23:45:20 <nooga> pwnage
23:46:01 <ehird> nooga: yeah, seen it
23:46:43 <ehird> yay it works
23:47:18 <ehird> hmm
23:47:25 * ehird wonders if you can dump the state of the prolog world to a file
23:48:56 <oerjan> ehird: you need :- dynamic player/2. see the link above
23:49:01 <ehird> yeah
23:49:02 <ehird> :)
23:49:30 * ehird tries to remember the if/else syntax in prolog
23:49:31 <ehird> ah yes
23:49:34 <ehird> X -> Y; Z
23:51:49 <ehird> hmm
23:51:55 <ehird> i wonder how you give a reason for failing?
23:51:58 <ehird> there's just fail/0
23:56:44 <oerjan> i'm not sure that makes sense
23:57:02 <ehird> well, true
23:57:07 <ehird> i'll just build it into the infrastructure
23:57:13 <ehird> as in, commands can be replied to
23:57:16 <ehird> so i'll just make it part of the reply
23:58:37 <ehird> hmm
23:58:54 <oerjan> there are exceptions though
23:58:54 <ehird> how come the format predicate always outputs, isn't there a way to get it to put the output in an atom?
23:59:37 <ehird> aha:
23:59:42 <ehird> format(atom(Foo), ...)
←2008-11-17 2008-11-18 2008-11-19→ ↑2008 ↑all