00:00:50 <oklopol> ((lambda (a) (eval `(a b 6)) b) define) b
00:01:13 <oklopol> smth like that, but i need lambda to take multiple... statements (?)
00:02:27 <oerjan> define can only be used at the beginning of a "block"
00:04:04 <oerjan> expressions, i guess, and the expressions of a lambda is one example of a block
00:04:44 -!- xor has quit (Connection timed out).
00:07:03 <oerjan> lessee, b is the length of the _arc_ so something trigonometric is necessary
00:08:07 -!- jix_ has quit (Read error: 113 (No route to host)).
00:47:22 -!- oerjan has quit (heinlein.freenode.net irc.freenode.net).
00:47:22 -!- dibblego has quit (heinlein.freenode.net irc.freenode.net).
00:47:22 -!- EgoBot has quit (heinlein.freenode.net irc.freenode.net).
00:47:57 -!- oerjan has joined.
00:47:57 -!- dibblego has joined.
00:47:57 -!- EgoBot has joined.
00:48:52 -!- oerjan has quit (heinlein.freenode.net irc.freenode.net).
00:49:21 -!- oerjan has joined.
01:11:42 -!- navaburo has joined.
01:47:23 -!- bsmntbombdood has joined.
01:48:10 -!- kwertii has joined.
02:29:09 <oerjan> I love to sing-a About the moon-a and the June-a and the spring-a ...
03:30:52 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
03:34:14 -!- bsmntbombdood_ has joined.
04:17:38 -!- poiuy_qwert has joined.
04:22:25 -!- bsmntbombdood_ has quit (Read error: 110 (Connection timed out)).
04:23:26 -!- bsmntbombdood_ has joined.
05:06:43 -!- oerjan has quit ("Good night").
05:14:56 -!- bsmntbombdood_ has quit (Read error: 110 (Connection timed out)).
05:15:25 -!- bsmntbombdood_ has joined.
05:42:20 -!- navaburo has left (?).
05:57:40 -!- bsmntbombdood_ has quit (Read error: 110 (Connection timed out)).
06:44:35 -!- poiuy_qwert has quit.
07:20:32 -!- sorear has joined.
07:25:24 -!- oklopol has quit (Remote closed the connection).
07:44:09 -!- sorear has quit ("zzz").
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:16:39 -!- pbxs2002 has joined.
08:17:21 <pbxs2002> someone please tell me if i should call this girl at 2:15AM .. thanks
08:34:35 -!- ololobot has quit (Read error: 104 (Connection reset by peer)).
08:38:23 -!- pbxs2002 has quit (Read error: 110 (Connection timed out)).
09:01:38 -!- oklopol has joined.
09:02:36 -!- kwertii has quit.
09:27:19 -!- Arrogant has joined.
10:05:59 -!- Karnaugh has left (?).
10:18:16 -!- Arrogant has quit ("Leaving").
10:39:32 -!- Tritonio has quit ("Bye...").
11:37:04 -!- jix_ has joined.
11:39:34 -!- ololobot has joined.
11:40:46 <ololobot> Please tell oklopol how the standard combinator should behave.
11:40:55 <oklopol> i actually think i know what that should do...
11:43:21 <oklopol> plus it's not possible with the current infrastructure
12:17:40 -!- jix_ has quit (Read error: 104 (Connection reset by peer)).
12:28:53 -!- jix_ has joined.
12:55:01 -!- pikhq has quit (Read error: 110 (Connection timed out)).
13:34:17 -!- jix_ has quit (Nick collision from services.).
13:34:33 -!- jix__ has joined.
14:26:35 -!- navaburo has joined.
14:27:23 <navaburo> is there a straight forward way to find an elegant program to produce a certain output?
14:28:12 <navaburo> say in brainfuck, i want to output some string of eight bytes using the fewest possible instructions....
14:28:36 <oklopol> you can't find the shortest program in the general case
14:28:55 <oklopol> !bf_gen you can use this for starters
14:29:02 <oklopol> !bf_text_gen you can use this for starters
14:29:06 <oklopol> !bf_txt_gen you can use this for starters
14:29:16 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
14:29:18 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
14:29:22 <oklopol> !bf_txtgen you can use this for starters
14:29:54 <navaburo> but if i restrict the program to output only (no , instruction), perhaps i can?
14:30:38 <EgoBot> 161 +++++++++++[>+++>+++++++++++>+++++++++>++++++++++<<<<-]>>.>>+.<<----.<-.>>.--.>-.<<<.>.--.>++++.<<.>+.>+++.+.<-.<.>>---.>+.+++.<<<.>.+.>-----.<--.>>++.<++++.<.+. [244]
14:30:57 <navaburo> and if i prefilter for indefinate loops?
14:31:20 <navaburo> well... dont run any program containing []
14:31:52 <navaburo> oklopol: sure, that one would get past a naive prefilter
14:31:57 <oklopol> well, you can't spot infinite loops
14:32:09 <navaburo> i ment loops giving repeating identical conditions
14:32:22 <oklopol> those aren't the only infinite loops
14:33:06 <oklopol> you can do stuff like finding the shortest program that produces a string in *reasonable* time
14:34:34 <oklopol> but because you prolly don't actually need the absolutely shortest program, just find a way to produce strings with *pretty* short code for most strings, and then make a program that converts string -> code for that string
14:34:40 <oklopol> exactly like bf_txtgen does
14:34:55 <oklopol> but you don't have to use 4 cells
14:35:18 <navaburo> i would sleep better at night knowing it was the provably shortest program
14:35:47 <oklopol> do you need a spesific string or the general case?
14:36:35 <navaburo> mmm a specific string i suppose
14:37:26 <oklopol> i can't get wikipedia open today, dunno why, but there's the shortest programs for numbers 0...255 there
14:38:38 <oklopol> dunno if those are proven to be the shortest ones, but they most likely are
14:40:33 <navaburo> mm i am having trouble fnding it
14:42:28 <navaburo> well thanks anywho, i hope you get them fixed
14:46:55 <navaburo> (my firefox has been crazy unstable lately... idk if it is an update problem)
15:24:01 -!- Figs has joined.
15:27:19 <Figs> http://cpp.sourceforge.net/?show=39846
15:27:31 <Figs> I have produced real obfuscated C :)
15:30:42 -!- oerjan has joined.
15:48:36 <Figs> I like self-documenting code...
15:50:22 <oklopol> hmm... i'm pretty sure i was gonna say pretty that exact same line
15:51:20 <oklopol> at least i was thinking it
15:51:34 <oklopol> guess that's a pretty common obfuscation joke
15:51:42 <oklopol> guess that's the only obfuscation joke.
15:53:39 <Figs> I wonder if I can figure out how to get my brainfuck interpreter to be smaller than that...
16:01:17 <Figs> it's a hello world program
16:01:26 <Figs> my next one will be the bf interpreter
16:01:42 <Figs> (already wrote an interpreter... just need to think of a crap load of evil ways to obfuscate it)
16:09:48 -!- helios24 has quit (Read error: 60 (Operation timed out)).
16:10:39 <oerjan> oklopol: you were thinking of [[Brainfuck constants]] on esolangs
16:11:01 <Figs> can any of you compile my code? :S
16:12:22 <oerjan> the wrapping ones are probably the shortest possible.
16:13:40 <oerjan> 255+ -> 0 and vice versa
16:13:48 -!- lakupuu has left (?).
16:16:06 <oerjan> the wrapping allows you to do tricks based on division (mod 256)
16:16:35 <Figs> on my computer wrapping -> negative
16:16:59 <Figs> I did a few things with that...
16:16:59 <oklopol> oerjan: you think non wrapping stuff is harder to make as short as possible?
16:17:06 <Figs> maybe that's why some people are having problems
16:17:26 <oerjan> well they are longer so it's more to search for
16:17:32 <oklopol> Figs: depends on whether you're using signed or not
16:17:41 <oklopol> ah, i didn't think of that
16:18:23 <Figs> I think I only wrapped
16:18:29 <Figs> but I don't really remember
16:18:41 <Figs> no, I think I subtracted once
16:18:48 <Figs> that's probably what killed it
16:18:55 <oklopol> eh... i have no idea what you mean
16:19:12 <Figs> oklopol, char c = 0; c--;
16:19:21 <oklopol> char can be either signed or not
16:19:30 <oklopol> it's implementation defined
16:20:19 <oerjan> in any case wrapping -128..127 or 0..255 don't make a difference for brainfuck
16:20:43 <oerjan> it's just a 256-element cycle in any case
16:20:47 <Figs> does in my program though :P
16:21:45 <oerjan> egobfi has several bitsize options, so it can map on 2^16 or 2^32, also 2^8 is not the default
16:21:56 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
16:21:59 <EgoBot> 1l 2l adjust axo bch bf{8,[16],32,64} funge93 fyb fybs glass glypho kipple lambda lazyk linguine malbolge pbrain qbf rail rhotor sadol sceql trigger udage01 unlambda whirl
16:22:21 <oerjan> but no unbounded version
16:23:12 * Figs wonders if he can find a good use for longjmp(foo,rand%n+1)...
16:23:32 <Figs> rand() if you actually expect it to think about compiling itself.
16:33:25 -!- sebbu has joined.
16:46:40 -!- helios24 has joined.
16:56:30 -!- Figs has quit (Read error: 110 (Connection timed out)).
17:40:35 <oerjan> ook is perfectly on topic :)
18:11:08 -!- bsmntbombdood has joined.
18:18:10 <oklopol> why can't you do ` over y... :|
18:18:31 <oklopol> you can have and ` on aeiou, but y only does
18:20:01 <lament> Because our system for encoding letters is very primitive and doesn't allow arbitrary accents on arbitrary letters.
18:20:07 <oerjan> presumably because it isn't used in a western european language
18:20:55 <oklopol> yeah, but it kinda sucks if it's the *only* one that doesn't exist, thus breaking a nice set just to save one character :<
18:22:08 -!- bsmntbom1dood has joined.
18:22:15 <oklopol> is there a list of different phonemes with sound samples somewhere?
18:22:30 <lament> nasal vowels in Portuguese
18:22:53 <lament> the little squiggle on top used to be an "n"
18:23:58 <oklopol> hmm... a diphtong is quite hard to make :D
18:25:40 <oklopol> does unicode have all vocals "`"'d?
18:26:05 <lament> ãa seems pretty easy...
18:27:06 <oklopol> it becomes an "" when i do it...
18:28:04 <lament> maybe you're not doing it right? The only change between the two is in nasality
18:28:27 <oklopol> hmm, it actually became pretty easy now that i actually added some thought
18:28:29 <oerjan> oklopol: unicode has combining accents
18:29:16 <oklopol> in "a" you basically say "a", but you make a nasal dip, my nose makes a funny move when i do it
18:29:20 <oklopol> but indeed, it's pretty easy
18:30:30 * oerjan detects a subtle sarcasm
18:31:05 <oerjan> you can write the accents as separate characters, to be combined with letters
18:31:40 <oklopol> i can easily pronounce that
18:31:55 <oklopol> i don't even know how you'd write that on paper though...
18:31:57 <oerjan> some south-east asian languages have so many accents on their vowels you cannot possibly include all possibilities
18:32:21 <oerjan> you can have more than one on a letter, certainly
18:32:29 <lament> serializing writing is a lost cause anyway
18:32:34 <oerjan> i recall there is some kind of predefined stacking order
18:32:52 <lament> any encoding method will be either extremely inefficient or extremely complicated
18:33:03 <lament> currently we're using extremely inefficient ones
18:33:29 <lament> which, apart from being exremely inefficient, don't allow to encode anything you might want to encode
18:35:34 <oklopol> is there a list of different phonemes with sound samples somewhere? <<< i'll assume "no" from all your enthusiasm?
18:36:04 <lament> probably... i'd start with the IPA wikipedia article
18:40:06 <navaburo> oklopol: perhaps use phoneme speaking software, and feed it each phoneme individually
18:40:22 <navaburo> text to speach packages frequently allow either natural language or phonetic input
18:41:25 <oklopol> natural language = english pronunciation?
18:41:39 <navaburo> natural language being normal text
18:41:59 <oklopol> in finnish there's no real difference
18:42:24 <oklopol> i think i have a text->speech thing
18:42:36 <oklopol> don't remember the name, but it's a finite hard-drive...
18:46:01 <navaburo> there is a built in text to speech utility in XP
18:46:22 <navaburo> i dont think it will take phonetic inputs with the control panel interface
18:46:58 -!- bsmntbom1dood has changed nick to xor.
18:50:05 <navaburo> well i am SURE festival can do what you want
18:50:13 <navaburo> from what i see you can compile it on windows
18:51:12 <navaburo> http://www.cstr.ed.ac.uk/projects/festival/
18:51:41 -!- kwertii has joined.
18:51:46 <navaburo> it works well, kinda a pain in the ass to get set up iirc, but it is super flexible
18:52:59 <oklopol> i'll try it when i'm less tired
18:53:43 <navaburo> yea, i tried building it from source but gave up and got the unix binary :)
18:55:29 <xor> someone should come up with a regex-like notation for context-free grammars
18:56:07 <xor> because BNF is too verbose
18:56:21 <oerjan> er, you haven't heard of EBNF?
18:57:06 <oerjan> it essentially means using regex things inside BNF to shorten it
18:57:14 <xor> that's still not regex-like
18:57:35 <xor> better than straight up bnf, but not good enough
18:57:36 <oklopol> xor: i have the nestor syntax for that exact purpose
18:57:58 <oklopol> though nestor also has macros for making more general bnf's
18:58:08 <lament> not good enough for what?
18:58:15 <lament> what exactly do you want this for?
18:58:40 <oerjan> lament: he obviously wants BNF to look like line noise
18:59:12 <xor> i want something that doesn't involve production rules
18:59:34 <oerjan> well you need recursion somehow
18:59:38 <xor> or multiple statements
19:00:35 <xor> multiple named statements, then
19:01:36 <oerjan> try running haskell's Parsec through lambdabot's @pl
19:01:37 <lament> hm, you could just express BNF in haskell and then @pl
19:02:03 <xor> that doesn't change anything
19:02:08 <lament> parsec stuff sits in a monad, that must be a huge pain to @pl
19:02:30 <lament> xor: what do you mean, doesn't change anything?
19:02:44 <xor> it's still just bnf
19:03:38 -!- oerjan has quit ("Supper").
19:03:38 <lament> oerjan: i don't think @pl would work, though...
19:03:58 <lament> xor: yeah, but this procedure would get rid of named statements (if it does work)
19:04:12 <xor> and that doesn't mean anything
19:04:22 <xor> well, it means i don't know how to describe what i want
19:04:51 <xor> that would be more verbose than bnf
19:05:05 <lament> you said nothing about being less verbose
19:05:12 <xor> yeah i did
19:05:31 <xor> < lament> why?
19:05:34 <xor> < xor> because BNF is too verbose
19:05:52 <lament> yeah, but your specific requests were to get rid of production rules and named statements
19:06:13 <lament> the reason such a thing doesn't exist is primarily because it would be horrendously ugly and useless
19:06:23 <xor> making it anonymous doesn't get rid of production rules
19:06:26 <lament> but since we're in #esoteric, feel free to invent one
19:19:30 -!- xor_ has joined.
19:23:22 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
19:24:16 -!- bsmntbombdood has joined.
19:24:51 -!- xor__ has joined.
19:30:10 -!- xor___ has joined.
19:30:46 -!- xor has quit (Read error: 110 (Connection timed out)).
19:35:29 -!- xor has joined.
19:36:22 -!- xor_ has quit (Success).
19:38:02 -!- ihope has joined.
19:41:41 -!- xor__ has quit (Connection timed out).
19:46:59 -!- xor___ has quit (Connection timed out).
20:00:31 -!- pikhq has joined.
20:09:35 -!- xor_ has joined.
20:14:53 -!- xor__ has joined.
20:20:27 -!- xor has quit (Read error: 110 (Connection timed out)).
20:26:27 -!- xor_ has quit (Connection timed out).
20:45:37 -!- pikhq has quit (Read error: 110 (Connection timed out)).
20:54:47 -!- importantshock has joined.
20:56:47 -!- RedDak has joined.
20:59:18 -!- xor has joined.
21:00:52 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
21:04:39 -!- importantshock_ has joined.
21:06:19 <ihope> What an important shock that was.
21:11:11 -!- xor__ has quit (Read error: 110 (Connection timed out)).
21:20:45 -!- SunJazz has joined.
21:27:37 -!- SunJazz has quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.6/2007072518]").
21:28:51 -!- importantshock_ has quit.
21:28:52 -!- importantshock has quit (Remote closed the connection).
21:32:14 -!- Figs has joined.
21:44:36 -!- pikhq has joined.
22:03:51 -!- oerjan has joined.
22:13:45 -!- RedDak has quit ("I'm quitting... Bye all").
22:29:26 -!- ihope_ has joined.
22:47:32 -!- ihope has quit (Read error: 110 (Connection timed out)).
23:02:12 -!- sebbu has quit ("@+").
23:26:37 -!- Sgeo has joined.
23:27:54 * Sgeo wonders if he can make 0x00 0x00 0x00 be "print NUL" instead of 0x00 0x00
23:28:14 * Sgeo is thinking of removing the whole domain switching thing
23:28:32 <Figs> I'm going to disappear for a while
23:28:37 <ihope_> Isn't domain switching the main feature or something?
23:28:41 -!- Figs has left (?).
23:30:20 -!- poiuy_qwert has joined.
23:30:44 <Sgeo> Instead of doing, to call function 0x02 in domain 0x01: [0x00 0x01 0x01] 0x00 0x02, you just do 0x00 0x01 0x02
23:31:38 * SimonRC fails to recal the doument name
23:35:32 <Sgeo> The question is, can I make "Print NUL" be function 0x00 in domain 0, or should I shift the PSOX-System domain to 1, and make a special psuedodomain for 0x00 0x00?
23:36:52 <SimonRC> most of the top level is the often-used stuff, butsome of the top-level is reserved for expanding inot lower levels
23:37:23 <ihope_> Reserve low bytes for commands, high bytes for other stuff?
23:38:51 <ihope_> 7F and below is a plain old function. 80 and above is a domain thing.
23:39:38 <ihope_> So you can introduce as many plain old functions as you like without intruding on domains, I guess.
23:39:49 <ihope_> (For some values of "as many as you like".)
23:39:54 <SimonRC> well, you could then have 1-byte codes for things like "print NULL", while keeping everything else ordered
23:40:27 <Sgeo> All of the special stuff will be in PSOX-System domain
23:40:35 <SimonRC> in fact, reserve a 0x80-0xff byte in any position for subtrees
23:41:58 <Sgeo> "256 functions will be enough for any domain designer" --said ala Bill Gates
23:44:00 <ihope_> You changed it from 256 to 255 and back. I like 257 better.
23:44:50 <ihope_> You could either use two bytes for two commands or use a much more clever arithmetic-coding-like scheme.
23:50:08 <Sgeo> My question simply is, would it be better to have 0x00 0x00 be a special case and have to shift everything around, or use 0x00 0x00 0x00 as "print NUL"
23:52:12 <ihope_> Shifting around doesn't sound hard.
23:54:40 <Sgeo> Shifting things around and leaving a pseudodomain feels inelegent to me :/
23:56:05 <SimonRC> Sgeo: that's why I suggested my idea
23:57:26 <Sgeo> erm, I had some trouble understanding it..
23:57:32 <Sgeo> Could you please explain it? Sorry..
23:58:03 <SimonRC> first, one sends a 0, as already
23:58:37 <SimonRC> next, a byte 0-127 is a command, and a byte 128-255 is a domain specifier.
23:59:02 <SimonRC> within each domain, 0-127 will be commands, an 128-255 are subdomain specifiers
23:59:52 <SimonRC> this allows the common stuff to be short (e.g. printing NUL is still "0,0"), but there is plenty of room, and it is *organised*