00:20:55 -!- clog has joined.
00:20:55 -!- clog has joined.
00:21:22 <Sgeo> Everything is a log!
00:21:27 <oklopol> clog logs our garbage, you know
00:21:49 <oklopol> isn't that "everything is a file" with append-only
00:22:05 <Tritonio> but how can I search about this: "if you do: cat file | readerapp and readerapp doesn't ever read the data from the stdin what happens to the data? where are they stored? how big is that buffer? blah blah"
00:22:28 <Sgeo> http://ircbrowse.com/channel/esoteric/20070920 doesn't seem to have picked things up..
00:22:47 <GregorR> Tritonio: By searching for a page explaining UNIX pipes from top to bottom and reading away.
00:22:52 <oklopol> google will tell you what you meant if you don't type the right search terms!
00:24:31 * Sgeo also needs time stuff in 0x04
00:24:49 <Sgeo> Any comments on the extra 0x00 after retrieving a line?
00:26:07 <oklopol> wow school doesn't start till 10 hours, how fun
00:27:04 <oklopol> i'm fairly sure i make mistakes of that magnitude a *lot*
00:27:20 <GregorR> I see that one a lot ... there must be a word in most languages like "till" with no direct translation.
00:28:06 <oklopol> you use what's usually translated into "into" in finnish.
00:28:25 <oklopol> though it's a suffix here, instead of a word
00:29:08 <oklopol> "until" is quite close to the meaning
00:29:45 <oklopol> too late for grammar right now
00:29:50 <Sgeo> What's the differenterence between "till" and "until"?
00:30:37 <GregorR> Maybe it was slang 200 years ago ...
00:30:50 <GregorR> All three forms are identical now.
00:31:02 <oklopol> you can use that in an english essay?
00:31:10 <GregorR> Well, I wouldn't use "'til"
00:31:18 <GregorR> But I don't think I'd get complaints for "till"
00:31:52 -!- sebbu2 has changed nick to sebbu.
00:31:55 -!- sebbu has quit ("@+").
00:33:58 <oklopol> ah, "till" would've been used in my sentence if the time had been given absolutely instead of relatively
00:34:07 <oklopol> for 10 hours, but till noon
00:35:17 <oklopol> i was gradually becoming sure of that
00:35:19 <GregorR> I will not go to school for three hours. I will not go to school till noon.
00:35:51 <GregorR> untilexp = (until|'til|till) absolutetimeexp
00:37:01 <oklopol> while i haven't actually studied english grammar, i think i know all these rules given enough time to think
00:38:47 <oklopol> here, "enough" was 10 minutes, and i'm usually about this tired
00:38:57 <oklopol> perhaps it's time for some coke ->
00:52:46 <Tritonio> a game where you programs bugs' minds
00:59:04 <oklopol> my father also knows russian.
00:59:24 <oklopol> (i recently discovered he knew polish when there was a polish guy here..)
01:00:16 <oklopol> a guy that was on this channel
01:00:48 <Tritonio> it was a nickname thankfully then... ;-)
01:01:35 <Tritonio> no you didn't really have to. :-)
01:01:55 * Sgeo should really work on psox
01:02:03 <oklopol> i should've used the lojban name quotes.
01:03:31 <Tritonio> this lojban? http://en.wikipedia.org/wiki/Lojban
01:03:58 <oklopol> it has some nice ideas, nothing revolutionary
01:04:55 <oklopol> QUICK POLL: which of you ever made a conlang?
01:05:57 <Sgeo> I've done a lot of pseudomaths stuff, but not a conlang, afair
01:05:58 <Tritonio> a strange alphabet that uses e way to "encode" the position of the tonge teeth etc
01:05:59 <oklopol> i used to make alphabets all the time when i was a kid, i had 8 alphabets memorized
01:06:13 <oklopol> but none of my friends could memorize them so it wasn't that much fun :<
01:06:24 <Tritonio> i already have a friend that memorized it
01:06:36 <Sgeo> Including numbers that had negative absolute values..
01:06:43 <Tritonio> because if you remember the rules you can draw the symbols on your own
01:07:16 <oklopol> my friends weren't all that old at that time...
01:07:38 <Tritonio> and it is suppossed to be able and encode sound form different languages as well
01:08:07 <oklopol> hmm, i've been contemplating on something similar to that
01:08:12 <oklopol> do you have anything online?
01:08:32 <Tritonio> oklopol, are you talking to me?
01:09:23 <Tritonio> the link will start like this... http://students.ceid.upatras.gr/~asimakias/img/
01:09:54 <Tritonio> i havn't finished writting the link
01:09:57 <oklopol> http://students.ceid.upatras.gr/~asimakias/img/proglogo.png
01:10:28 <Tritonio> http://students.ceid.upatras.gr/~asimakis/img/proglogo.png
01:10:36 <Tritonio> i misspelled my last name. lol
01:11:35 <Tritonio> that sounds like "m" in "mouse"
01:11:52 <Tritonio> the two dots are the nose. and dots mean sound.
01:12:00 <Tritonio> the horizontal line are the lips closed
01:12:09 <oklopol> oh, so it really is a face.
01:12:51 <GregorR> Now I'm looking at the other ones and seeing if similar hinting helps :)
01:14:02 <oklopol> hmm... is that "p" there aspirated..
01:14:21 <GregorR> oklopol: It looks pretty aspirated to me in that picture ;)
01:14:21 <Tritonio> and the vertical line means sudden movement.
01:14:29 <Tritonio> like moving your lips appart suddenly
01:14:53 <GregorR> It seems like you've gone a bit far with the actions ... half of these could be implicit.
01:14:55 <oklopol> GregorR: i meant in "prozak" :P
01:15:12 <GregorR> oklopol: Oh - English has no aspirated 'P' so fleh :P
01:15:28 <oklopol> then i'm using the wrong term.
01:15:35 <Sgeo> What's aspirated?
01:15:39 <oklopol> you say "ph" instead of "p".
01:15:46 <Tritonio> Aspirate As"pi*rate, v. t. [imp. & p. p. Aspirated; p. pr. &
01:15:47 <Tritonio> vb. n. Aspirating.] [L. aspiratus, p. p. of aspirare to
01:15:47 <Tritonio> breathe toward or upon, to add the breathing h; ad + spirare
01:15:47 <Tritonio> to breathe, blow. Cf. Aspire.]
01:15:47 <Tritonio> To pronounce with a breathing, an aspirate, or an h sound;
01:15:47 <Tritonio> as, we aspirate the words horse and house; to aspirate a
01:16:21 <oklopol> yes, but i meant that one phonetically
01:16:39 <GregorR> oklopol: I assure you, the English P is not aspirated.
01:16:52 <Tritonio> anyway the picture sais "programs"
01:17:36 <GregorR> oklopol: The pronunciation of the sound 'p' alone is aspirated because that's the only way you can pronounce it alone.
01:17:53 <GregorR> oklopol: Well, that you can pronounce it and be heard anyway :P
01:18:00 <GregorR> oklopol: But it's not pronounced in actual speech.
01:18:03 <Tritonio> oklopol, as for the impicit thing you mentioned. I didn't like to leave things implicit. so that everyone by applying the rules can decode the symbols.
01:18:17 <oklopol> the aspiration is there in the word "pay" for example.
01:18:34 <GregorR> Hmmm, not in my pronunciation ...
01:18:48 <oklopol> i can make you a sound clip.
01:19:29 <GregorR> Let me put it this way: The English language does not make a distinction between aspirated and unaspirated consonants. Whether any individual aspirates in any particular word is their accent, not the language.
01:19:43 <oklopol> http://www.answers.com/topic/pay?cat=biz-fin <<< p-h-ei.
01:19:59 <oklopol> americans have them aspirated.
01:20:00 <Tritonio> ancient greek had a nice way to organize sounds...
01:20:33 <GregorR> Now that's a highly aspirated pronunciation of that word X-D
01:20:42 <GregorR> I don't think I pronounce it like that in casual speech.
01:21:09 <oklopol> you do use it, though it's less audible in fast speech, naturally.
01:21:25 <oklopol> you notice the difference if i do the finnish non-aspirated version.
01:21:57 <oklopol> if you only know how to make an aspirated "p", it may be hard to think of it as "aspirated"
01:22:05 <Tritonio> i think that answers has made these recordings with a text-2-speech program
01:22:15 <oklopol> GregorR: that was an example
01:22:42 <oklopol> GregorR: was that a correction to what i said?
01:22:56 * Sgeo wants to hear the clip of non-aspirated..
01:23:02 <GregorR> oklopol: Give me a sound clip of a non-aspirated P and an aspirated P for comparison.
01:24:42 <oklopol> i'm not sure if that was a good one, i get a bit of a ramp frenzy or whaddyacallit
01:25:50 <oklopol> hard to pronounce english and only leave out the aspiration
01:26:02 <GregorR> So don't say an English word *shrugs*
01:26:03 <oklopol> but you should hear a clear "pee" without aspiration in the end.
01:26:20 <oklopol> it's already uploaded, too late!
01:27:01 <oklopol> http://vjn.fi/oklopol/r/urinating.wav
01:27:17 <oklopol> that's a bad recording, for i don't exactly have a mike.
01:27:26 <GregorR> Wait, that's the sound 'b'
01:28:20 <oklopol> someone with a non-aspirated "p" in their language would notice the difference.
01:28:35 <oklopol> sorry for the example sentence
01:28:56 <GregorR> To my ear, that sounds identical to 'b'.
01:30:00 <oklopol> http://vjn.fi/oklopol/r/pebe.wav
01:30:32 <GregorR> Wow, there is a difference O_O
01:30:44 <GregorR> I have no idea how to make that sound.
01:30:55 <oklopol> i'm fairly sure i did it correctly in the first clip too.l
01:31:01 <GregorR> And now I'm leaving for home :P
01:31:16 <oklopol> bsmntbombdood: the first part or the second?
01:31:46 <oklopol> if you can spot abnormalities in it in an explicit way, do elaborate
01:31:58 <oklopol> i rarely get the chance to enhance my pronunciation
01:33:39 <oklopol> i wish i had american irl contacts, i'm sure i could perfect it with training (i guess there's not many lunatics who'd be willing to hone it with me.)
01:34:36 <oklopol> that's the best reason i can think of
01:35:10 <oklopol> (i do pretty good german/swedish too!)
01:35:25 <bsmntbombdood> "fuck me gently with a chainsaw. i like the way the blades feel on my genitals"
01:36:09 * Sgeo should go eat now..
01:37:45 <oklopol> http://vjn.fi/oklopol/r/terat.wav
01:38:35 <oklopol> (also remind me to advertise my bands in case i haven't done that yet)
01:40:35 <bsmntbombdood> audacity gives me a nice little error when it starts
01:41:35 <oklopol> i have a "sound recorder" program built-in
01:42:25 <oklopol> the native word would be sukupuolielimillni
01:43:11 <oklopol> nussi minua hellsti moottorisahalla
01:43:11 <oklopol> tert tuntuvat ihanilta genitaaleillani
01:48:08 <oklopol> i'm using a millimeter-in-diameter hole in my laptop for a mike.
01:53:13 <oklopol> btw, i can tell you the exact difference of unaspirated "p" and "b"
01:53:30 <oklopol> it's pretty simple, the vocal cords only do their humming in "b"
01:54:05 <oklopol> i think i didn't say that earlier
01:59:31 <oklopol> and "b" is the exact same except it's... what's the word...
02:02:48 -!- chatty has joined.
02:03:35 <oklopol> gotta go do some quick business ->
02:19:27 -!- bsmntbom1dood has joined.
02:25:26 -!- bsmnt_bot has quit (Read error: 145 (Connection timed out)).
02:30:49 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
02:40:59 -!- bsmntbom1dood has changed nick to bsmntbombdood.
02:44:16 <oklopol> head feels weird, gotta sleep for a while
03:12:25 -!- cmeme has quit (Excess Flood).
03:13:03 -!- cmeme has joined.
03:18:58 -!- oerjan has joined.
03:34:26 <Sgeo> Question? Should PSOX functions that provide file descriptors return the descriptor, or accept a descriptor number from the client and use it if available?
03:35:24 * Sgeo is leaning towards 'return'..
03:52:59 -!- chatty has left (?).
04:37:23 <RodgerTheGreat> http://www.nonlogic.org/dump/images/1190338381-deal.png
04:37:27 <RodgerTheGreat> http://www.nonlogic.org/dump/images/1190345208-winds.png
05:21:17 <GregorR> I think I have a proper NPDA implementation. But I think it won't halt if you have a particularly stupid grammar, like a = a | epsilon
05:21:37 <GregorR> That is, any grammar that can accept an infinite string of nothing actively.
05:22:02 <GregorR> Erm, wait, I meant a = a a | epsilon
05:22:19 <GregorR> Anything that can resolve to an infinite number of epsilons.
05:22:24 <GregorR> I guess that's not a big problem X-P
05:22:50 <GregorR> Anyway, it will halt in every other scenario, it detects possibly-infinite recursion.
05:28:38 <oerjan> removing epsilons can be done as a preprocessing stage on the grammar
05:30:30 <GregorR> Is that true of all context-free grammars? I don't remember such a transformation 8-O
05:30:58 <oerjan> you can remove all except those on the initial token
05:31:10 <GregorR> Don't tell me, let me work it out.
05:31:18 <GregorR> I can probably reinvent this wheel :P
05:33:46 <GregorR> For each left that has an epsilon as an option on the right, remove the epsilon then add an option to each right containing that left.
05:34:16 <GregorR> Wow, that sentence made zero sense :P
05:34:32 -!- zuzu_ has quit (kornbluth.freenode.net irc.freenode.net).
05:34:32 -!- sekhmet has quit (kornbluth.freenode.net irc.freenode.net).
05:35:07 -!- zuzu_ has joined.
05:35:07 -!- sekhmet has joined.
05:35:33 -!- oerjan has quit (kornbluth.freenode.net irc.freenode.net).
05:35:41 -!- oerjan has joined.
05:35:47 <bsmntbombdood> whenever i scan a drawing there's smudges, dust, etc
05:36:31 <RodgerTheGreat> bsmntbombdood: not much- a little white correction, I scaled it down, and I flattened the color map a little
05:37:02 <RodgerTheGreat> I think a fair amount has to do with my scanner itself
05:38:16 <RodgerTheGreat> problem is, in inks like this it can lead to a somewhat rough look.
05:38:46 <RodgerTheGreat> http://www.nonlogic.org/dump/images/1190349064-deal2.png
05:40:51 <oerjan> GregorR: note that you need to find out which tokens can be epsilons, it is not enough to look for literal ones
05:41:23 <RodgerTheGreat> here- I tweaked my filters a bit. That should give you more of what you wanted: http://www.nonlogic.org/dump/images/1190349207-deal3.png
05:42:10 <RodgerTheGreat> all of these were drawn on cheap printer paper with an "ultra-fine point" sharpie
05:42:17 <oerjan> at least i think it is easier that way.
05:42:38 <RodgerTheGreat> It sure as hell doesn't seem to "ultra-fine" in comparison with my .02mm technical drawing pens
05:44:23 <RodgerTheGreat> I was so happy when I found out that the MTU book store not only carries .3mm lead, but they have it in the entire hardness range!
05:45:08 -!- SEO_DUDE has quit (Read error: 104 (Connection reset by peer)).
05:47:37 <RodgerTheGreat> but I think by far my favorite drawing tool for causal work is a Pilot G2 gel pen.
05:48:03 <RodgerTheGreat> It feels and covers paper like a rollerball, with the precision of a ballpoint
05:48:41 -!- SEO_DUDE85 has joined.
05:48:52 <RodgerTheGreat> I wouldn't use it for anything I was planning to publish, but it has a nice feel for sketches
06:01:12 <bsmntbombdood> this "getting up at different times each day" is not working
06:12:00 -!- kwertii has quit (Client Quit).
06:54:34 <GregorR> I missed something in my NPDA interpreter, and it's really effing difficult to fix :( :( :(
06:55:07 <GregorR> My infinite recursion detector can't backtrack properly :(
07:44:55 -!- kwertii has joined.
07:57:14 -!- kwertii has quit (Client Quit).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:04:42 <GregorR> It's a bit complicated, but it's pretty damn fast, detects infinite loops, and PARSES STRINGS INTO ANYTHING 8-D
08:06:13 <GregorR> I feel fairly accomplished right now 8-D
08:07:55 <GregorR> I'm parsing simple math strings into numbers ... WITH AN NPDA
09:24:47 -!- sebbu has joined.
09:25:22 <oklopol> GregorR: in case you're already parsing the parsing rules from plof stack language code, do show the code for math expressions
09:34:51 -!- oerjan has quit ("Lunch").
11:45:47 -!- notzeb has joined.
13:00:39 -!- notzeb has quit ("/lurk").
13:19:39 -!- SEO_DUDE85 has quit (Remote closed the connection).
14:25:43 -!- bsmntbom1dood has joined.
14:36:25 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
14:47:20 <GregorR> NPDAs can't be universally translated into PDAs, can they? I would think that the stack actions munge up the translation rules.
14:49:15 -!- jix has joined.
15:04:11 <SimonRC> though D and ND FSMs are equivalent
15:05:38 -!- oerjan has joined.
15:05:56 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)).
15:05:59 -!- RodgerTheGreat has joined.
15:08:33 <oerjan> NPDA's can parse general context-free grammars. deterministic PDA's can only parse LR(k) grammars or thereabouts.
15:08:50 <SimonRC> bsmntbom1dood: what is "TA"?
15:23:47 <oerjan> and how is that not exactly what one usually calls a Turing machine?
15:25:38 <GregorR> That a state machine + a tape = a Turing machine.
15:27:16 <GregorR> Unfortunately, I found a bug in my logic when making the infinite loop detection *sigh*
15:27:34 <GregorR> It can be fixed, but it's another layer of complexity and I don't have 100% certainty that this is the last one >_>
15:28:08 <SimonRC> so, you are trying to solve the Halting Problem...
15:28:16 <GregorR> This is an NPDA, the halting problem is solvable.
15:28:47 <GregorR> It's just a bit more of a PITA than the halting problem for NFSMs ^^
15:30:02 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)).
15:30:23 -!- RodgerTheGreat has joined.
15:31:23 <GregorR> Anyway, it fails with grammars that have multiple infinite paths ending up at the same node, e.g. L = A | B | epsilon ; A = L "enda" ; B = L "endb"
15:31:38 <SimonRC> small WTF: Why can the address only be changed at this email-forwarding place at 7.15 am?
15:31:42 <GregorR> Fixable (I can detect multiple infinite paths), but I'm not confident that it's the last such problem I'll run into X_X
15:31:56 <GregorR> They probably have a cronjob that makes mass changes :P
15:31:59 <SimonRC> "This will take effect from 7.15 am tomorrow / this morning."
15:32:27 <oerjan> so you did not consider the epsilon-removing transformation?
16:07:27 <oerjan> this is disturbing. SimonRC's last three messages seemed to come in reverse order.
16:07:54 <oerjan> i had thought that at least between two given points things would be queued...
16:25:32 <GregorR> oerjan: My current work has nothing to do with the epsilon-removing transformation, that's up to the grammar->NPDA converter.
16:26:27 <GregorR> oerjan: A naive converter will always be capable of creating an NPDA that this can't detect loops in, but that's not a big problem since a good converter can indeed be written *shrugs*
16:31:25 <GregorR> It's just not worth it to make it that general, I just heed it for the specific case of compiled grammars :)
16:32:46 -!- UnrelatedToQaz has joined.
16:32:49 -!- oerjan has quit ("Out").
16:33:19 -!- UnrelatedToQaz has left (?).
16:37:13 <GregorR> I'm also starting to think that the case I discovered this morning isn't useful ... I'm finding it difficult to imagine a grammar legitimately written like that :P
16:37:49 <GregorR> And I suppose even it could be solved by removing left recursion.
16:38:27 <GregorR> Oh wait ... argh ... never mind, just figured out the simple case :(
16:38:42 <GregorR> addexp = mulexp | addexp + mulexp | addexp - mulexp
16:38:54 <GregorR> Multiple possible recursions through addexp.
16:42:46 -!- SEO_DUDE85 has joined.
16:58:56 -!- UnrelatedToQaz has joined.
17:02:00 -!- UnrelatedToQaz has left (?).
17:08:02 -!- oerjan has joined.
17:11:44 -!- UnrelatedToQaz has joined.
17:20:26 -!- navaburo has joined.
17:39:16 -!- UnrelatedToQaz has left (?).
17:43:58 <oklopol> he only does brief visits about once a month
17:45:55 <oklopol> SimonRC goes for a wak. <<< i misinterpreted this
17:55:02 <oklopol> (someone had to say it! :|)
17:58:50 <oklopol> http://mirror.servut.us/flash/bearhello.swf
17:59:43 <oerjan> it didn't get better when i googled wak
17:59:51 <oerjan> http://www.edenfantasys.com/masturbators/masturbation-sleeves/wak-pak-2000
18:02:27 <oerjan> mad genius, apparently
18:04:03 <oklopol> "waterproof, so you could take it to the shower or pool."
18:04:09 <oklopol> that'd be a hit in a pool party!
18:04:35 <oklopol> hey guys, come check this out, you can masturbate AND see your penis AT THE SAME TIME!
18:05:08 * oklopol should read german grammar
18:23:14 <bsmntbom1dood> it's like those little things little kids put on their arms in the pool
18:25:22 <GregorR> Only with more masturbation.
18:27:36 <g4lt-sb100> so you can have a moose knuckle in every set of pants :/
18:37:49 -!- bsmntbom1dood has changed nick to bsmntbombdood.
18:38:30 <GregorR> ........................................................
18:38:42 <GregorR> Has bsmntbombdood turned into a spambot?
18:39:08 <oerjan> beick bsmbtvbombdood ?
18:40:00 <g4lt-sb100> no, he just forgot typing to grind stupid web tricks
18:40:30 <oerjan> most of it makes sense if i assume his right hand was placed 1 key to far left
18:42:53 <GregorR> I was talking about "<bsmntbom1dood> ^^ little girl likes big dick"
18:45:30 <GregorR> I'm at work, I don't anticipate such a link to be SFW :P
18:45:46 <g4lt-sb100> speaking of which, bsmntbombdood you now owe me for the liquor I need to forget that
18:46:06 <oklopol> internet rule x: nothing is offensive on teh internet
18:47:30 <g4lt-sb100> internet rule y: nothing may be offensive, but there are a lot of things you need large quantities of liquor and/or eyebleach to forget
18:48:11 <GregorR> My NPDA takes .75 seconds to parse "1+2*3+4*5+6*7+8*9+10" 1000 times >_>
18:50:00 <oklopol> i can try what my python numbda interpreter takes
18:50:21 <GregorR> Well, that's not fair, it's not an NPDA :P
18:50:59 <oklopol> i'll still try, for i have no idea
18:51:08 <oklopol> just wanna know what it takes
18:53:48 <oklopol> i'll try what my math parser takes
18:53:50 <GregorR> Of course, that's not fair because your is in Python :P
18:54:05 <oklopol> yes, and definately not written efficiency in mind
18:54:22 <GregorR> This /was/ written with efficiency in mind to a certain degree :(
18:54:34 <GregorR> I did some nasty things with D dynamic arrays that should not be done ;)
18:56:11 <oklopol> now i wanna make a C parser...
18:56:21 <oklopol> a math expression parser in C :P
18:56:57 <oklopol> i definately don't wanna make a C parser
18:57:10 <GregorR> It's still not really fair since a simple math expression parser can't parse everything that an NDFA can ...
18:57:11 <oklopol> hmm, i'll try my java parser
18:57:24 <oklopol> i do know that, that's not my point
18:57:44 <oklopol> my point is to know if it's faster, like it's supposed to be since it's more spesific.
18:58:44 <GregorR> Strangely, this seems to be increasing linearly with longer expressions ... everything I know about NPDAs tells me this should be increasing exponentially...
19:00:21 <GregorR> Because the alternative is to arbitrarily limit the grammars, and that's a bit tough to do. I may not use an NPDA if it turns out to be too bad.
19:02:55 <oklopol> argh, i hate how java libraries always manage to lack everything one might actually need
19:03:25 <GregorR> Hey wait, does your math parser actually come out with an answer in the end? :)
19:03:31 <oklopol> python: "time python" into google, and on the first link a nice clock-function that gives a nice timestamp you can compare
19:03:52 <oklopol> hmm... i may have disabled that :O
19:05:33 <oklopol> 0.98 without evaluation, 1.05 with it
19:07:38 <GregorR> For only $29.99, you can get access to some of the Internet!
19:08:36 <GregorR> That's so many web sites I don't know what to do!
19:10:11 <GregorR> I should make this parse right->left instead of left->right
19:10:27 <GregorR> Then parsing left-recursive grammars, which are by far and away more common, would be more efficient.
19:11:00 <GregorR> Where's my RR(1) parser anyway ^^
19:11:12 <oerjan> what would anyone want to access google for if they cannot access the results? :D
19:12:01 <oerjan> brain damage within brain damage
19:13:01 <GregorR> I'll bet it can't access that.
19:13:04 <GregorR> Not at the hostname google.com
19:17:30 <oklopol> GregorR: the java one takes 31ms
19:17:57 <oklopol> took a bit to find a way to get a nice enought timestamp for java
19:18:01 <bsmntbombdood> either GregorR or oklopol needs to change their nick
19:18:17 -!- oklopol has changed nick to OklopoL.
19:18:47 -!- OklopoL has changed nick to oklokok.
19:19:41 <bsmntbombdood> it would make nicks of similar length farther apart in color
19:19:59 <oklokok> GregorR: 25 times faster than yours, and it's in JAVA, complain THAT :)
19:20:20 <GregorR> It's a hyperlimited parser you cheating loser!
19:21:10 * oklokok lols as he dies of blood loss
19:22:04 <oklokok> the python parser was pretty generic, though not as much so as yours
19:22:54 <oklokok> hmm... i'm pretty sure i've made at least *one* math expression parser in C...
19:23:37 <oklokok> unfortunately most of my programs are named by whacking the keyboard a bit to produce a unique random string
19:24:32 <oklokok> usually when i start coding, i don't have anything spesific in mind... so i just use a random name
19:25:23 <oklokok> i mean, was like that in my c/c++ time, nowadays i just do python, since c takes longer to write :(
19:27:09 <oklokok> omg, i found a stack language interpreter here :DD
19:27:19 <oklokok> wonder if that's any good...
19:28:26 <oklokok> ...brainfuck while loops in a stack language ftw.
19:30:11 <GregorR> The time taken to memoize my REs is equal to the time taken to run the REs X-P
19:31:44 <oklokok> wow, my wireworld implementation
19:32:04 <oklokok> i wonder how much stuff i've done i've completely forgotten about
19:44:47 -!- sebbu2 has joined.
20:03:34 -!- sebbu has quit (Connection timed out).
20:08:37 -!- Arrogant has joined.
20:11:13 -!- Arrogant has quit (Client Quit).
20:11:52 -!- Arrogant has joined.
20:23:05 -!- oerjan has quit ("Good night").
20:34:08 <GregorR> I figured out how to fix my problem with multiple infinite recursions!
20:34:23 <GregorR> I'm already encapsulating the concept of infinite patterns on the stack...
20:34:38 <GregorR> To support this, I just need to encapsulate the concept of infinite^infinite patterns on the stack!
20:34:44 <GregorR> (Which is actually really easy)
20:39:45 <bsmntbombdood> weird how a PDA isn't turing complete, even though it has unbounded storage
20:40:02 <GregorR> Well, it has heavily-bounded access :)
20:41:48 -!- RedDak has joined.
20:53:47 <GregorR> Implemented with no change in time ^^
20:53:57 <GregorR> (And unit tests still passing)
20:55:22 <oklokok> http://www.vjn.fi/pb/p454332531.txt <<< in case you can decipher that, do you like that program structure?
20:55:59 <oklokok> the actual program logic is in the form of a bnf-ish list regex (not clearly visible there...)
20:56:09 <oklokok> "bnf-ish list regex"... anyway.
20:57:39 <oklokok> the last line defines the program as a finite state machine
20:58:21 <oklokok> the three first ones are function definitions
20:58:26 <GregorR> Incidentally, your description reminds me of Plof's runtime grammars :P
20:58:46 <oklokok> that is the oklotalk list regex syntax :)
20:59:08 <GregorR> They are defined as a BNF with both the symbol list and generations.
20:59:32 <GregorR> addexp = addexp /\+/ mulexp => 3 1 "opAdd" dot call
20:59:42 <GregorR> So as it parses, it compiles.
20:59:57 <GregorR> Your desc reminded me of that, but that may be invalid :P
21:00:11 <oklokok> [/input_number (quit_on_zero | out_doubled recurse)] means the "regex" is run by executing one function at a time, x | y means "execute either x or y", and whitespace separation just means that you do the functions in sequence
21:00:45 <oklokok> those names in the regex are function calls
21:01:05 <oklokok> scoping is dynamic when using ...i don't know what to call that, but that kind of calls.
21:01:46 <oklokok> since it's nice to have a global access to stuff or the fsm for the program flow will become cluttered with argument passing...
21:02:35 <oklokok> basically that means, first input a number, then either quit if the input number was zero, or print that number doubled start over
21:02:58 <oklokok> so that'd be a simple command line program to ask numbers and multiply them by two
21:03:46 <oklokok> that can be done much simpler using other constructs, i know, but i kinda like my idea for a program structure, that fsm thing i mean
21:04:06 <oklokok> since usually the program flow is simple and stateful
21:04:31 <oklokok> did you manage to parse that?
21:05:10 <oklokok> [/ ... ] denotes a list regex
21:09:25 <oklokok> hehe, it's actually wrong.
21:09:36 * GregorR is still confused, but is also at work :P
21:09:39 <oklokok> i'll change it if someone points out the error :P
21:09:49 <oklokok> my friend just glanced at it and got it :|
21:10:13 -!- CShadowRun has joined.
21:11:34 -!- CShadowRun has left (?).
21:12:56 <GregorR> (There isn't even a Wikipedia article on it :P )
21:13:56 <oklokok> GregorR: wanna specify what's obscure about that code? unless you're too busy
21:14:20 <GregorR> I guess I'm not so much confused by what each of the constructs are, but by what the whole thing actually /does/
21:14:32 <oklokok> (oklokok) so that'd be a simple command line program to ask numbers and multiply them by two
21:14:51 <oklokok> didn't i say that already...
21:15:00 <oklokok> [/input_number (quit_on_zero | out_doubled recurse)] means the "regex" is run by executing one function at a time, x | y means "execute either x or y", and whitespace separation just means that you do the functions in sequence <<< is this obscure?
21:15:16 <oklokok> the names there are function names, the functions defined above
21:15:37 <GregorR> So, some "consumptions" can actually just be actions, and others actually consume something.
21:15:41 <oklokok> i kinda like that general idea for program structures
21:15:48 <GregorR> Yeah, that's exactly like Plof's runtime grammar :P
21:15:52 <oklokok> that isn't used for any kind of parsing there
21:15:58 <oklokok> that might've confused you
21:16:11 <oklokok> well, it kinda consumes the stdio
21:16:36 <GregorR> Right, but the program logic is written into a parser, as I see it...
21:16:41 <oklokok> you would do games etc. the same way
21:16:54 <oklokok> you'd write the states in a list regex
21:17:18 <GregorR> OK, I'm getting it better now.
21:17:47 <GregorR> Is this intended to be esoteric?
21:18:03 <oklokok> well, in that it's a new concept (i mean, i don't know it exists yet)
21:18:20 <oklokok> also, oklotalk looks like line noise when used correctly.
21:18:30 <oklokok> i've just denoicified it to be pretty
21:18:37 <oklokok> i'm aiming for pretty design, ugly code.
21:18:45 <GregorR> That's a fundamental difference between oklotalk and Plof X-P
21:18:56 <GregorR> Although Plof stack code is pretty ugly ... unless you like Forth.
21:19:56 <oklokok> well, you can do anything in a clean way if you want in oklotalk, in case you find that code example anywhere close to clean
21:21:29 <oklokok> i think that state thing is a more fundamental difference than what code looks like... since even though i concocted that this morning, i'm aiming at making it the *gist* of oklotalk
21:22:00 <GregorR> Well, certainly the entire design is a /more/ fundamental difference ;)
21:24:57 <oklokok> i don't remember what similarities i found earlier between oklotalk and plof, can i see a plof user language spec?
21:25:08 <oklokok> or was that integrated in the stack language spec?
21:25:39 <GregorR> http://www.codu.org/plof/ < look at the Plof2 spec. The Plof3 user language will be similar.
21:25:59 <GregorR> http://www.codu.org/plof/npda.d // my NPDA interpreter (now actually published)
21:27:25 <oklokok> Unlike C and other imperative languages, functions in Plof exist only as
21:27:25 <oklokok> anonymous entities - they are not implicitly associated with names. Giving a
21:27:25 <oklokok> function a name is simply assigning it to a variable.
21:27:43 <oklokok> these similarities seem less revolutionary now that i've studied a bit more theory...
21:28:10 <GregorR> That's pretty common for functional languages, it's only interesting because Plof is not a functional language per se.
21:28:26 <oklokok> that was one of my "great ideas" for oklotalk, but i now realize plof isn't the only language besides oklotalk that has only lambdas for functions...
21:28:48 <GregorR> How about only having functions for blocks? :)
21:29:05 <oklokok> i think that was a great idea for an imperative language
21:29:08 <GregorR> (Also exceedingly common for functional languages)
21:29:42 <oklokok> oklotalk is functional, i guess, though it depends highly on message passing, which might be considered a bit different
21:30:59 <oklokok> when i read about that block thing, it felt like an exaplanation for blocks, which is why i think it seemed like such a nice idea
21:31:22 <oklokok> i mean, explanation for blocks as found in languages like C
21:32:29 <oklokok> a lot of the stuff i found great about plof i later found in perl ;)
21:32:39 <GregorR> Noooooooooooooooooooooooooooooooooooo
21:32:44 <GregorR> Perl is so baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad :(
21:33:26 <oklokok> well, plof exclusively has perl stuff i found great about perl
21:33:35 <oklokok> i found 90% of perl complete bullshit
21:34:40 <oklokok> that prototype model for one
21:35:12 <oklokok> i should be more careful how i connect my sentences
21:35:19 <oklokok> also, i should eat something
21:35:21 <GregorR> Why the hell are prototypes implemented so poorly in so many languages? X_X
21:35:38 <oklokok> i don't know many languages with prototypes, so hard to say :|
21:35:55 <oklokok> plof did that absolutely brilliantly, btw
21:36:02 <GregorR> You're damn right it did ;)
21:36:09 <oklokok> that was something i actually considered stealing :)
21:36:25 <oklokok> but i've found a different way to do it in oklotalk
21:36:43 <oklokok> not necessarily better, but different :)
21:37:21 <oklokok> (i'm willing to go great lengths to avoid making stuff primitive, it should all arise from the perfectness of the core language!)
21:38:31 <GregorR> That's the core reason for my runtime grammar: I want integers to be a runtime-defined type.
21:39:14 <GregorR> I'm going to have the primitive types in Plof3, but they won't be exposed to the user language.
21:39:28 <oklokok> oklotalk even has stuff like "import" for modules non-primitive :)
21:39:38 <oklokok> that might be considered ugly.
21:40:28 <oklokok> since that's something you absolutely want to be a compile-time error, for one :)
21:41:19 <oklokok> oklotalk only has runtime errors, no other, because of the heavy meta-programming, compile-time errors would only take you sofar anyway
21:41:26 <oklokok> and syntax errors are simply impossible.
21:41:47 <GregorR> Heh, syntax errors are definitely possible in Plof :P
21:41:59 <GregorR> If you type $$$?!?!??@#!$#$#HAWHAW it will be quite failurific ;)
21:42:16 <oklokok> that *might* just be considered ugly too.l
21:42:34 -!- Arrogant has quit ("Leaving").
21:42:43 <oklokok> that would be a compile-time warning, most likely, unless the interpreter is for obfuscation purposes :)
21:43:34 <oklokok> i do very random hyphenation :P
21:43:48 <oklokok> but natives do that so much i really don't even know the rules for every case
21:43:51 <GregorR> Uh, that hyphen was correct, actually.
21:44:01 <GregorR> I was laughing at the concept of having a compile time ;)
21:44:30 <oklokok> because of "interpreter"?`
21:44:47 <GregorR> No, because Plof rolls compilation into runtime (with the runtime grammar) :P
21:44:50 <oklokok> because i could never make a compiler? :)
21:44:58 -!- possible248 has joined.
21:45:07 <oklokok> fuck, i find two possible meanings for your joke and it's neither.
21:45:44 <GregorR> Aaaaaaaaaanyway ... when I get home, I'm doing more performance-testing of this NPDA.
21:45:52 <GregorR> I want to really see how much I'm losing on LALR (for example)
21:46:14 <GregorR> Gooooooooooooooogle is your friend :P
21:46:32 <GregorR> (LALR is the kind of parser that Bison/Yacc makes)
21:47:11 <oklokok> i thought you meant something like garbage collection
21:47:55 <GregorR> My poor grammar in that sentence probably helped none 8-D
21:48:02 <GregorR> s/losing on/losing with respect to/
21:48:49 <oklokok> yep, though it might've been "in" if it'd had something to do with locating the bottleneck in your code
21:50:11 -!- possible248 has left (?).
21:50:35 <oklokok> umm... js did function == object?
21:51:05 <oklokok> i mean, you used "function" to create an object
21:51:41 <oklokok> i understand doing function==object, but if you have a keyword "function"...
21:51:52 <oklokok> ...why not make it mean a function?
21:52:04 <GregorR> I can understand doing the opposite, making functions be a kind of object.
21:52:15 <GregorR> But what they did was make an object be the leftover state from a function.
21:52:24 -!- kwertii has joined.
21:54:48 <oklokok> how does js do inheritance?
21:54:56 <oklokok> i can google that too i guess :)
21:56:46 <GregorR> Pretty similarly to Plof, you can combine objects.
21:56:52 <oklokok> this.inheritFrom = superClass;
21:56:58 <oklokok> that is some ugly shit if you ask me
21:57:19 <GregorR> I thought you could + objects?
21:57:32 <oklokok> in case that inheritFrom is a keyword or smth
21:57:32 <GregorR> I guess not ... I haven't actually used JS's object system extensively, because it makes me cry.
21:58:08 <GregorR> No, inheritFrom isn't a keyword, it's taking advantage of the difference between new someCall() and someCall()
21:58:42 <oklokok> you could have had this.iF = superClass; ?
21:59:13 <oklokok> that's some weird name scoping...
21:59:30 <GregorR> You're basically giving yourself the other constructor, but as just a function, then calling it.
21:59:32 <oklokok> well, normal dynamic scoping i guess
22:00:35 <oklokok> js does duck-typing, right?
22:00:50 <oklokok> or am i totally misinterpreting that weird function assignment that's going on
22:01:13 <oklokok> not weird, really, but anyway
22:01:36 <GregorR> Yeah, JS is duck-typing only.
22:01:49 <GregorR> Unlike Plof which keeps type history to allow for static typing when preferable.
22:08:07 -!- RedDak has quit (Remote closed the connection).
22:15:47 <Sgeo> http://www.glumbert.com/media/highpower
22:15:47 -!- ehird` has joined.
22:24:49 -!- Arrogant has joined.
22:34:43 <GregorR> For reasons I may never understand, my NPDA parser seems to be operating with linear complexity ... even though that's impossible. I need a more complex grammar :P
22:36:41 <ehird`> Quick, publish your code
22:36:48 <ehird`> You may have discovered how to do the impossible!
22:37:01 <ehird`> You'll be famous amfous!
22:37:11 <GregorR> http://www.codu.org/plof/npda.d :P
22:37:37 <GregorR> I guess my grammar is just not complicated enough. It has left recursion, which is the mark of slowocity, but apparently it's not slow enough.
22:48:31 <ehird`> linear complexity = yaey
22:48:39 <ehird`> even if it IS impossible..
22:48:45 <GregorR> I want to see what the true complexity of this parser is.
22:48:59 <GregorR> I need a grammar sufficiently complex that this will approach its maximum order.
22:49:22 <ehird`> it's clearly the first O(n) parser ever
22:49:48 <GregorR> I'll bet Forth's parser is O(n) ;)
22:50:58 <ehird`> yes, the identity function is generally O(n)
22:51:05 <ehird`> forth's parser is O(1)
22:51:14 <GregorR> Eh, Forth still needs to /tokenize/
22:51:38 <oklokok> my bitxtreme parser is O(1)
22:52:54 <ehird`> GregorR: Yeah, but that's not parsing
22:53:02 <ehird`> oklokok: that's O(n)...
22:53:33 <ehird`> GregorR: please tell oklokok why his parser is O(n) i can't be bothered
22:53:36 <oklokok> bitxtreme, however, is a bit more *extreme*
22:54:16 <GregorR> bitxtreme has an equal upper and lowerbound on the length of the program.
22:54:26 <oklokok> ehird`: it's O(1), it's not O(n) because that split will always be splitting a string of length 2
22:54:49 <GregorR> So, I think it would be reasonable to say that it's in O(n), but n is actually a constant, so O(1) :P
22:55:27 <GregorR> (Within the limits of bounded memory)
22:55:48 <oklokok> but that's somthing you need to live with
22:56:34 <oklokok> uh, it's no extreme... i need more wine ->
23:04:35 <oklokok> GregorR: do you know perl?
23:05:03 <oklokok> it does prototypes quite like plof, right?
23:05:16 <oklokok> or was it duck-typed too, i forget :|
23:05:30 <GregorR> It does classes with duck typing.
23:05:48 <oklokok> but isn't there a similar inheritance tree as in plof?
23:06:43 <GregorR> Well yeah, but that's just because it has classes :P
23:07:42 <oklokok> oh, i guess i totally remember it wrong, i'll do some reading now
23:09:20 <oklokok> value, but the only mutable part of a function is the scope in which it will be
23:09:37 <oklokok> how freely can you change that?
23:10:11 <oklokok> i mean, do you have access to the variable environment?
23:10:44 <GregorR> I had intended for you to be able to set it explicitly.
23:10:51 <GregorR> Like foo.scope = someobject;
23:10:54 <GregorR> I may have even implemented that ;)
23:11:03 <oklokok> well... i guess... but i don't think of "scope" as a generic name->value dictionary
23:11:09 <oklokok> but a more abstract thingie
23:13:55 <oklokok> hmm... why are ++ and -- both pre- and postfix?
23:14:16 <oklokok> or is C-ity that important?
23:16:18 <oklokok> good, because i'd have had to tell you that ;)
23:18:08 <oklokok> the spec isn't too clear about booleans... there's no "boolean" primitive, but you say stuff like "evaluates to true"
23:18:18 <oklokok> hmm, you might explain what evaluates to true and what doesn't
23:20:11 <oklokok> Assign the value to the given lval. Note that, unlike in C, this
23:20:11 <oklokok> operator evaluates to void: That is, expressions such as
23:20:13 <GregorR> I'm pretty sure I /do/ explain what evaluates to true and what doesn't.
23:20:26 <oklokok> i'm pretty sure you do, too
23:20:31 <oklokok> i just usually talk before i think
23:20:42 <oklokok> but, i don't think that's correct there :)
23:21:27 <GregorR> Non-zero numbers, non-empty strings == fasle
23:21:32 <oklokok> unless "=" doesn't specify evaluation direction and it has to be explicitly parenthesized
23:21:34 <GregorR> Wow, that wasn't right X-D
23:21:59 <GregorR> Zero, empty strings and void = false
23:22:13 <oklokok> Note that this void value is not illegitimate. It can be assigned to a
23:22:13 <oklokok> variable, it can be tested, and it has a truth value (it is false).
23:22:26 <oklokok> That is, expressions such as a = b = c are invalid.
23:22:56 <GregorR> That's an excellent point. I do believe the expression a = b = c works, actually, it just isn't useful.
23:23:06 -!- RedDak has joined.
23:23:24 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
23:23:34 <GregorR> I'd have to verify that, but not right now.
23:23:37 -!- RedDak has joined.
23:23:57 <oklokok> is "=" left-to-right of right-to-left?
23:24:13 <oklokok> you might not have specified that in case you didn't realize that's legal...
23:24:36 <oklokok> i got that at the same instant you did
23:25:04 <oklokok> but i'm drunk, so i must be cleverer than you!
23:25:17 <GregorR> I'm at work, paying more attention to work than this convo :P
23:25:39 <oklokok> i could make excuses for hours.
23:26:26 <oklokok> do you mean making plof or actual work?
23:29:17 -!- jix has quit ("CommandQ").
23:46:37 <ehird`> GregorR: x = "blah" = y
23:48:10 <oklokok> x = (y = "blah") would work
23:51:20 -!- RedDak has quit (Remote closed the connection).
23:52:42 -!- Arrogant has quit ("Leaving").