←2007-01-14 2007-01-15 2007-01-16→ ↑2007 ↑all
00:06:54 <bsmntbombdood> we can have nil = \x y -> y
00:07:00 <bsmntbombdood> t = \x y -> x
00:08:52 <bsmntbombdood> if p x y = p x y
00:25:29 <ihope> Let's just pretend we can compute the uncomputable.
00:27:12 <pikhq> Let's just pretend that 1+1=3.
00:27:16 <bsmntbombdood> let's
00:27:49 <pikhq> Or, in the factory language. . .
00:27:55 <pikhq> LET 1+1=3
00:27:57 <pikhq> >:D
00:28:02 -!- ihope has changed nick to i.
00:28:07 <andreou> hm can 3 be overloaded in scheme to be 2?
00:28:08 -!- i has changed nick to ihope.
00:28:33 <bsmntbombdood> (set! 2 3)
00:28:41 <bsmntbombdood> (not really)
00:28:46 <andreou> no, tried that ;p
00:28:55 -!- ihope has changed nick to \050.
00:29:05 -!- \050 has changed nick to ihope.
00:29:16 <andreou> there's always (define three 3) (define two three)... but that doesn't really matter.
00:29:20 <andreou> or count
00:29:45 <bsmntbombdood> Happy Happy Joy Joy.
00:29:52 <andreou> off to try the kernel
00:29:54 -!- andreou has quit ("kernel time").
00:33:07 -!- andreou has joined.
00:38:25 <ihope> Joy is not the same as luck, and there is no such thing as joy luck.
00:38:53 <ihope> Sad, isn't it?
00:40:06 <andreou> consider yourself lucky if you have joy
00:40:15 <andreou> and be joyful if you have (good) luck
00:40:30 <andreou> they're like ( and )
00:41:53 <lament> wha.t
00:42:23 * pikhq joins bsmntbombdood in singing "Happy Happy Joy Joy".
00:46:15 <bsmntbombdood> That's what the MIT scheme interpreter says on exit
00:47:31 <pikhq> Ren & Stimpy fans, I see.
00:49:37 -!- ihope has quit (Read error: 104 (Connection reset by peer)).
01:03:40 * bsmntbombdood plays with bsmnt_bot
01:03:55 <bsmntbombdood> someone suggested a change, what was it?
01:16:05 -!- digital_me_ has joined.
01:27:12 -!- digital_me has quit (Read error: 110 (Connection timed out)).
01:41:37 -!- calamari has joined.
01:46:17 * andreou happily plays around with chicken scheme until he's fit for bathing
01:56:53 <bsmntbombdood> #'
02:00:13 -!- ihope has joined.
02:02:54 <bsmntbombdood> foo
02:03:53 <ihope> bar
02:04:13 <bsmntbombdood> eggs
02:04:19 <ihope> ham
02:11:21 -!- pikhq has quit ("leaving").
02:33:32 -!- ihope has quit (Read error: 110 (Connection timed out)).
02:49:53 -!- ShadowHntr has quit (Connection timed out).
03:40:06 -!- andreou has quit ("\").
04:03:40 -!- wooby has quit.
04:38:23 -!- wooby has joined.
05:20:33 <CakeProphet> hmmm... I need to learn C++
05:20:37 <CakeProphet> not because I want to.
05:20:42 <oklopol> true
05:20:46 <oklopol> because it's the best
05:20:49 <CakeProphet> but because I'm going to be using it soon... with little to no experience.
05:20:59 <oklopol> :)
05:21:41 <CakeProphet> see... the people I'm "working", who have little knowledge about programming, seem utterly sure that C++ is the best language to use for their purposes.
05:22:04 <CakeProphet> I told them the best language for me to use would be the one I'm most familiar with... in this case Python, or Lisp (vaguely) as an alternative.
05:22:30 <CakeProphet> but... not good enough... so..
05:22:34 <CakeProphet> now I need to learn C++
05:22:37 <CakeProphet> who knows... it might be fun.
05:22:58 <oklopol> c++ is fun
05:23:06 <CakeProphet> It looks rather boring to me.
05:23:13 <CakeProphet> nothing terribly exciting.
05:23:17 <oklopol> haha :)
05:23:58 <CakeProphet> and static typing is a drag if you've always used duck typing.
05:24:19 <oklopol> with c++ i best have the feeling i can do anything, you have such direct access to the memoryt
05:24:22 <oklopol> *-t
05:24:36 <oklopol> i have a python question for you
05:24:40 <CakeProphet> meh... I've never actually -needed- direct access to the memory.
05:24:41 <oklopol> but not now
05:24:47 <oklopol> bus leaved in 2 minutes
05:24:49 <oklopol> not neede
05:24:52 <oklopol> wanted.
05:24:56 <oklopol> you should want
05:24:58 <CakeProphet> I haven't wanted it either.
05:24:59 <oklopol> now to go ->
05:25:09 <CakeProphet> I'm not even sure what I'd do with it.
05:25:53 <CakeProphet> hmmm.. where can I get the full specification of the standard C++ implementation?
05:26:00 <CakeProphet> I can't seem to find anything but paper books.
05:29:40 <CakeProphet> I would just play around with it...
05:29:43 <CakeProphet> but that seems like too much work.
05:29:50 <CakeProphet> I mean... you have to compile it and all.
05:31:23 <CakeProphet> and I'm not really sure how to access the compiler from windows.
05:43:51 -!- oerjan has joined.
05:45:32 <oerjan> Hi bsmntbombdood
05:45:36 <bsmntbombdood> hi
05:46:01 <oerjan> I noticed that the Haskell tutorial you said you were reading was not the most recent version.
05:46:32 <CakeProphet> One thing that irks me about C++ is I haven't figured out how it's consistent.
05:46:53 <bsmntbombdood> CakeProphet: c++ is hideous
05:47:11 <CakeProphet> In Python everything is universally consistent... but so far I haven't found this to be true in C++
05:47:16 <CakeProphet> it might jsut be my lack of understanding though.
05:47:40 <oerjan> Has anyone claimed C++ is consistent?
05:47:46 <CakeProphet> Nope.
05:48:00 <CakeProphet> I'm just trying to find out if it is.
05:48:27 <bsmntbombdood> static typing is sooo annoying in high level languages
05:48:36 <oerjan> On the other hand (and I say this having never tried to program in it) people are complaining about how its features have lots of unexpected interactions.
05:49:23 <oerjan> Apparently you have to learn a lot of rules for what not to do in combination.
05:49:42 <CakeProphet> I find that true of common lisp.
05:49:46 <CakeProphet> with all the macros.
05:50:07 <CakeProphet> it's hard to keep all straight when you're learning.
05:50:16 <oerjan> Ah yes. I suppose that is a reason why Scheme invented the hygienic macro system.
05:53:16 <CakeProphet> hmmm..
05:53:27 <bsmntbombdood> gah, all these languages, so little time
05:53:39 <CakeProphet> could you define a C++ macro that substitutes all newline characters with ;\n?
05:54:03 <bsmntbombdood> c++ doesn't have macros
05:54:11 <CakeProphet> if you're like me... and lazy and don't feel like getting into the habit of using semicolons and have no real use for writing multiple statements in one line?
05:54:21 <CakeProphet> eh... it has flimsy textual substititions with #define
05:54:24 <CakeProphet> which it calls "macros"
05:54:33 <CakeProphet> they're not lisp macros, no.
05:54:36 -!- ShadowHntr has joined.
05:54:45 <bsmntbombdood> CakeProphet: just use semicolons
05:55:01 <CakeProphet> Yeah, it's no big deal.
05:55:10 <CakeProphet> but any step of laziness I can take would be great.
05:55:24 <bsmntbombdood> no one will be able to understand your code, and it will break
05:56:00 <CakeProphet> Why's that?
05:56:03 <oerjan> I think you mean "no real use for writing a statement over multiple lines"
05:56:07 <bsmntbombdood> if (p)
05:56:11 <bsmntbombdood> foo()
05:56:15 <bsmntbombdood> teh bork
05:56:33 <oerjan> He didn't say to leave out brackets.
05:56:42 <bsmntbombdood> that turns into "if (p); foo();"
05:57:05 <bsmntbombdood> oerjan: you don't need brackets there
05:57:57 <oerjan> He could simply follow a Python-like rule: either use brackets or put the sub-statement on the same line.
05:59:24 <CakeProphet> meh.. I can use C++'s ways no problem.
05:59:27 <oerjan> On the other hand I am not sure whether { ; is permitted in all cases.
05:59:34 <CakeProphet> no use sticking to old modes of thought.
06:00:04 <bsmntbombdood> I think "{ ;" will work, it's just a line with no stuff on it
06:00:14 <CakeProphet> hmm... I do kind of wonder how C++ actually works though...
06:00:28 <bsmntbombdood> ugly
06:00:31 <CakeProphet> the more I read into it the more it starts to sound like how I thought a programming langauge would work back before I learned how to program.
06:00:35 <oerjan> Will it work for switch statements?
06:00:49 <CakeProphet> I probably wouldn't use switch anyways
06:00:52 <CakeProphet> it's kind of silly.
06:01:04 <bsmntbombdood> I think so
06:01:45 <CakeProphet> Does C++ use the same evaluation as Python does for crap?
06:01:49 <CakeProphet> well..
06:01:50 <CakeProphet> what I mean by that.
06:02:20 <CakeProphet> I remember someone finding it odd that "\n".join(SomeList) was a valid python expression.
06:02:28 <CakeProphet> and they were primarily a C/C++ programmer.
06:02:59 <bsmntbombdood> can't call methods on a char*
06:03:10 <CakeProphet> some I'm wondering if C++ uses variables and statements as I knew them
06:03:35 <CakeProphet> ah.
06:03:40 <CakeProphet> oh okay.
06:03:52 <fizzie> On the other hand, some Python programmers might find it odd that 4["foob"] is a valid C expression. :p
06:04:22 <CakeProphet> That's not too odd... it wouldn't work in Python, and I have no clue what it means...
06:04:38 <fizzie> It means the same as "foob"[4]", ie. 'b'.
06:04:40 <oerjan> It means exactly the same as "foob"[4]
06:04:49 <fizzie> Uh, '\0', I mean.
06:04:52 <CakeProphet> ...oh... well that -is- odd.
06:05:02 <CakeProphet> no the syntax... but what the syntax produces.
06:05:06 <fizzie> It's because a[b] is sort-of defined as *(a+b), and + is commutative.
06:05:06 <oerjan> because p[q] = *(p+q), so commutative.
06:05:12 <bsmntbombdood> Right, because C's array syntax is just sugar
06:05:21 <oerjan> Darn speaking in each other's mouths
06:05:28 <bsmntbombdood> x[i] == *(x+i)
06:05:49 <bsmntbombdood> wow, three of us said exactly the same thing
06:06:10 <CakeProphet> hmmm..
06:06:12 <CakeProphet> so....
06:06:23 <CakeProphet> how does it differenciate if it's communative?
06:06:36 <oerjan> It's + that is commutative.
06:06:40 <bsmntbombdood> CakeProphet: Have you programmed in a language with pointers before?
06:06:50 <CakeProphet> would it just as easily been the "foob" slice of 4? (which obviously doesn't make any sense... but it could have been read that way)
06:06:54 <CakeProphet> nope.
06:07:03 <bsmntbombdood> I hope you'll find them enlightening
06:07:16 <bsmntbombdood> I love playing with pointers :)
06:07:23 <oerjan> "foob" in a sense means the position of the 'f'
06:07:37 <CakeProphet> I basically conceptualize them to be like mutable data structures in Python... they point to the exact same chunk of memory rather than a new "copy" of it.
06:07:51 <bsmntbombdood> CakeProphet: pretty much
06:07:53 <oerjan> so "foob"+4 means the position of, well, I suppose not 'b', that was an error.
06:08:11 <bsmntbombdood> oerjan: no, "foob"+4 is correct
06:08:15 <CakeProphet> Alright... then I know how to use pointers.
06:08:28 <bsmntbombdood> CakeProphet: Except, pointers are more usefull
06:08:35 <CakeProphet> I just need to remember that everything is implicitly a copy of the original value unless I use a pointer.
06:08:38 <oerjan> Not in C. "foob"[0] == 'f'
06:08:52 <bsmntbombdood> oerjan: yes...
06:09:16 <CakeProphet> I could see the possible uses... I just question the way its implemented.
06:09:28 <CakeProphet> I would have made pointers implicit... and copies of the value explicit.
06:09:47 <oerjan> So "foob"[4]=='\000', the implicit NUL at end of string.
06:09:49 <CakeProphet> But I'm sure there's a reason.
06:09:57 <bsmntbombdood> oerjan: uh huh
06:10:29 <bsmntbombdood> so 4["foob"] == '\0'
06:10:45 <oerjan> Pointers may be more efficient in some cases, I guess.
06:11:18 <CakeProphet> I think C just has a different idea of what a variable is than me.
06:11:27 <bsmntbombdood> Pointers are more than just mutability, because the pointers can be manipulated themselves
06:11:39 <oerjan> Yes, to C a variable is a region in memory, of arbitrary size.
06:12:11 <CakeProphet> since I get my ideas about variables form Python... which, in terms of C++, makes variables implicitly a pointer.
06:12:38 <CakeProphet> x = [1,2,3,4,5,6,7,8]
06:12:39 <CakeProphet> y = x
06:12:47 <oerjan> Not simply a reference to a region of memory, like presumably in Python (except for primitive immutable types, where the reference is optimized away)
06:13:38 <CakeProphet> hmmm...
06:13:41 <CakeProphet> alright then...
06:13:54 <CakeProphet> I don't like C++ arrays either... if I must complain.
06:14:06 <CakeProphet> I can't think of too many uses for them...
06:14:26 <bsmntbombdood> Don't think of them as an array, just as a succint way to manipulate large areas of memory
06:14:40 <bsmntbombdood> s/array/list/
06:14:40 <CakeProphet> Well... they're fixed-width.
06:14:47 <fizzie> It's probably the lowest-overhead way to have an array, since it's just a block of memory.
06:14:49 <CakeProphet> which... makes them kind of constained in what they can do.
06:15:08 <CakeProphet> yeah... C's all about low overhead. :P
06:15:16 <bsmntbombdood> Like I said, they aren't a list
06:15:25 <oerjan> Interestingly in Haskell and Ocaml, where things _are_ references by default, there are libraries for "unboxing", which means essentially doing it the C way for efficiency.
06:15:27 <fizzie> If you're using C++, you probably want to use STL's containers (like std::vector) anyway, if you want an array-like container, and arrays if you want to _implement_ a container.
06:16:07 <CakeProphet> ah... so arrays aren't intended to be the final structure?
06:16:17 <CakeProphet> just the means to the final structure?
06:16:22 <CakeProphet> Like conses in lisp
06:16:38 <bsmntbombdood> ...they can be
06:16:38 <oerjan> Arrays were inherited from C.
06:16:55 <CakeProphet> Right.
06:16:59 <fizzie> I guess that depends on the user; but all C++ books probably tout the merits of the STL containers.
06:17:35 <oerjan> They essentially just show their age, as does pointers.
06:18:04 <oerjan> Except probably for really low-level programming.
06:20:12 <bsmntbombdood> which is what they are for
06:20:38 <CakeProphet> I imagine when I first start with C++ I'll always forget to type "||" instead of "or"
06:20:43 <CakeProphet> same with && and !
06:20:56 <CakeProphet> I could use #define to substitute them... if I wanted.
06:21:16 <CakeProphet> simply to avoid it from screwing up my program.
06:23:35 <oerjan> I think what Oklopol's nop language needs is a type system so complicated that _it_ is Turing-complete.
06:24:07 <fizzie> C++ templates are, after all. :p
06:24:21 <CakeProphet> ....okay...
06:24:23 <bsmntbombdood> C++ templates are SO GROSS
06:24:32 <CakeProphet> I'm not sure who the hell thought that C++'s comma operator was a good idea.
06:24:43 <fizzie> It's C's comma operator.
06:24:48 <bsmntbombdood> that's why high level languages should be dynamically typed
06:24:50 <CakeProphet> ....and C++'s
06:25:12 <fizzie> What's your problem with the comma?
06:25:24 <CakeProphet> I don't call Python's + operator C's + operator simply because C used it before Python.
06:25:27 <bsmntbombdood> what do you mean, comma operator?
06:25:31 <CakeProphet> nah... it's fine.. and I could actually see myself using it.
06:25:45 <CakeProphet> I 'm just curious who the hell thought it up... and why they chose a comma.
06:26:09 <oerjan> The comma operator is simply a result of C distinguishing too hard between expressions and statements, like a P-language I could mention.
06:26:18 <bsmntbombdood> give me an example, I have no idea what you're talking about
06:26:37 <CakeProphet> int x = (a=5,b=3, 6 )
06:26:40 <CakeProphet> x would be 6
06:27:16 <fizzie> Incidentally, I haven't met anyone who wouldn't write that as "a = 5; b = 3; int x = 6;".
06:27:19 <bsmntbombdood> ...i've never seen/used that
06:27:40 <CakeProphet> yeah I know... I probably wouldn't use it...
06:27:42 <CakeProphet> for that
06:27:44 <fizzie> But the comma is used a lot in initializing several values in the init section of a for loop; for(a = 0, b = 0; ...) ...
06:28:07 <CakeProphet> so it's like a... creepy non-data-type version of a tuple?
06:28:34 <oerjan> Actually it's like a creepy expression version of a statement separator.
06:28:58 <CakeProphet> what's a statement operator?
06:29:01 <CakeProphet> ; ?
06:29:11 <oerjan> separator.
06:29:30 <CakeProphet> aaah.
06:29:38 <CakeProphet> oh okay... I see WHY you would use it now...
06:29:41 <fizzie> The , and ?: operators are very useful if you have some sort of ; allergy and want to write your whole program as a single expression.
06:29:44 <CakeProphet> still think it's a lame way to do it. :P
06:30:00 <CakeProphet> I like writing programs in single expressions. :D
06:30:17 <oerjan> Like Ocaml, a functional language uses ; for both, since it doesn't distinguish statements from expressions.
06:30:21 <CakeProphet> but for some reason I consider variable assignment in an expression "cheating".
06:30:37 <CakeProphet> but that's my inevitable Python bias... because python treats = as a statement.
06:31:41 <oerjan> However, Ocaml's syntax is generally not considered its best part.
06:31:57 <CakeProphet> hmmm..
06:32:54 <lament> of course it's cheating.
06:32:59 <lament> it's a side effect.
06:32:59 <CakeProphet> "for x in SomeList" in Python in "for(x = SomeList[y], y++, SomeList)" right?
06:33:04 <lament> any side effect in an expression is cheating.
06:33:23 <fizzie> Here's a well-structured brainf*ck interpreter in C I wrote once; it shows the amazing usefulness of the ?: operator:
06:33:26 <fizzie> main(j,a,n,t)int*a;{unsigned short p=-1;char*r=calloc(n=p+1,6),*i=r
06:33:29 <fizzie> +n,**k=i+n;for(read(open(*++a,t=0),i,p);n=*i-43,t<0?n-48?n-50||++t:
06:33:31 <fizzie> --t:n?n-2?n-19?n-17?n-3?n-48?n-50?n-1||read(0,r+p,1):p[r]?i=k[j]:j
06:33:34 <fizzie> --:p[r]?k[++j]=i:t--:putchar(p[r]):p--:p++:p[r]--:p[r]++,*i++;);}
06:33:41 <CakeProphet> oh I use conditional expressions all the time... and list comprehensions.
06:33:56 <lament> fizzie: i see a lot of ;
06:34:07 <fizzie> Yes, I don't really have a ; allergy.
06:34:31 <CakeProphet> hmmm... C makes it easier to avoid multiple statements...
06:34:41 <CakeProphet> in Python it's like a fun little challenge though... C makes it too easy. :P
06:34:59 <lament> CakeProphet: not really
06:35:23 <lament> it's probably easier in python since C doesn't have lambdas
06:35:42 <CakeProphet> you can do variable assignments, multiple-expressions-with-side-effects-but-only-use-the-last-one-to-evaluate,
06:35:48 <CakeProphet> it's almost like having statements.
06:36:21 <fizzie> And you have the ?: to do conditionals.
06:36:29 <CakeProphet> Python doesn't allow variable assignments in an expression... which makes it way more difficult (but more "pure") to write one-liners.
06:36:36 <CakeProphet> well.. Python added something for that in 2.5
06:36:46 <CakeProphet> (true if cond else false)
06:37:16 <CakeProphet> which I use... all the time.
06:37:53 -!- ShadowHntr has quit (Connection timed out).
06:38:15 <fizzie> That's a funny way to write it. Perl has the "... if cond;" statement modifier, but it doesn't add an else branch there.
06:38:37 <CakeProphet> it seemed weird at first to me too.
06:38:40 <CakeProphet> but it's grown on me...
06:38:43 <CakeProphet> it reads a lot like English.
06:38:52 <lament> true if cond else false doesn't read at all like english.
06:38:59 <lament> it reads like Forth.
06:39:10 <CakeProphet> it reads like conversational english
06:39:15 <oerjan> I suppose you cannot use ... if ... else ... inside an ... if ... else ... without parentheses.
06:39:22 <CakeProphet> how often do you put your ifs before your assertions?
06:39:29 <CakeProphet> only in formal settings.
06:39:43 <CakeProphet> but in conversation... I always say "I like pancakes, but only if it's noon"
06:39:49 <CakeProphet> the condition came after.
06:40:08 <lament> i prefer the way forth does it.
06:40:09 <fizzie> "I like pancakes, but only if it's noon; else I like RAW MEAT ARRR."
06:40:34 <CakeProphet> well else is kind kind of a weird word.
06:40:39 <oerjan> What about pancakes with raw meat in them?
06:40:40 <CakeProphet> "otherwise" sounds more conversationally.
06:40:45 <CakeProphet> but... else is easier to write. :D
06:41:14 <lament> cond if true else false then
06:41:49 <oerjan> Yeah, Forth's then at the end is really weird.
06:41:50 <CakeProphet> hehehe... to someone unfamiliar with stack-based languages... that would look like someone scrambled the source code.
06:42:57 <CakeProphet> I'm still waiting for python to get a while-loop list comprehension/generator-expression.
06:43:03 <CakeProphet> I never use while loops that much though.
06:43:57 <CakeProphet> usually just one for the main loop of the program.
06:44:54 <RodgerTheGreat> aw, I feel so robbed! SQL doesn't allow definition of recursive functions!
06:45:03 <RodgerTheGreat> CREATE FUNCTION adder(a INT(10), b INT(10)) RETURNS INT(10) RETURN IF(b<>0, adder(a + 1, b - 1), a);
06:45:13 <RodgerTheGreat> ERROR 1424 (HY000): Recursive stored functions and triggers are not allowed.
06:45:13 <CakeProphet> oh woe is you..
06:45:23 <CakeProphet> how will you go on without SQL functions being recursive?
06:45:41 <RodgerTheGreat> I was hoping I'd stumbled upon a brilliant esocoding opportunity.
06:45:56 <RodgerTheGreat> like coding a BF interpreter in mySQL or something
06:46:03 <CakeProphet> SQL is kind of appaling though.
06:46:17 * CakeProphet had a BF interpreter coded in Excel at one point.
06:46:30 <RodgerTheGreat> cool
06:46:32 <bsmntbombdood> I remeber you talking about that
06:46:43 <CakeProphet> yeah I finally got it to work.
06:46:46 <RodgerTheGreat> but excel macros are pretty powerful to begin with
06:46:55 <CakeProphet> it can't really "print" things.
06:47:03 <CakeProphet> it just gives you the entire array to work with.
06:47:27 <CakeProphet> but I guess you could use print to accumulate characters into a single "output cell"
06:47:29 <CakeProphet> if you wanted.
06:47:55 <bsmntbombdood> cond if true-stmnt else fasle-stmt?
06:48:34 <bsmntbombdood> I can't remember enough forth
06:48:37 <lament> oerjan: not really
06:48:46 <lament> oerjan: it just means, "... and then, do this"
06:48:55 <bsmntbombdood> 2 definitions of "then"
06:50:34 <oerjan> if ... if ... else ... then else ... then
06:51:39 <CakeProphet> hmm...
06:51:55 <CakeProphet> I would have implemented it true-stmt then false-stmt else if
06:52:09 <CakeProphet> or false-stmt else true-stmt then if
06:52:26 <CakeProphet> reminds me of the backwardsiness of FORTH. :D
06:52:44 <oerjan> Doesn't work with the Forth compiler principle though.
06:52:56 <bsmntbombdood> yeah
06:53:05 <RodgerTheGreat> ooh. we have an idea- we can't make recursive calls in a general sense, but we *can* define functions with our functions. We might be able to "build the tracks as our train runs on them", so to speak
06:53:07 <CakeProphet> fuck the compiler principle.
06:53:10 <bsmntbombdood> if takes the predicate off the stack
06:53:33 <CakeProphet> hmmm.... here's an idea.
06:53:36 <oerjan> Because anything found before the first "keyword" must be directly executed.
06:54:01 <CakeProphet> make an imperitive esolang modelled after "it puts the lotion on the skin"
06:54:10 <RodgerTheGreat> haha
06:54:25 <CakeProphet> oh
06:54:29 <CakeProphet> it puts the lotion of the skin
06:54:31 <CakeProphet> its
06:54:33 <CakeProphet> skin
06:54:35 <CakeProphet> bleh
06:54:36 <RodgerTheGreat> "It puts the lotion on it's skin or else it gets the hose again"
06:54:42 <CakeProphet> hahahahahaha
06:54:45 <CakeProphet> conditional
06:55:11 * oerjan wonders what the heck you are referring to.
06:56:07 <RodgerTheGreat> we're playing lambs
06:58:33 <oerjan> The obvious name for Ork's successor would be "ORK is to increment."
06:58:52 <CakeProphet> ....I'm calling mine Sophia.
06:58:52 * oerjan is still reading the logs.
06:58:55 <CakeProphet> because I like the name.
06:59:08 <CakeProphet> and because I intend to create a large number of things named "Sophia"
06:59:11 <CakeProphet> to confuse people.
07:00:25 <CakeProphet> I wonder what C++ would have been like if it included the increment in its evaluation (++C)
07:01:12 <RodgerTheGreat> haha
07:01:23 <oerjan> Obviously one of them would have a syntax like: Sophia? Sophia. Sophia! Sophia?
07:01:42 <CakeProphet> ...no
07:01:48 <CakeProphet> that's like... the worst clone ever.
07:01:53 <CakeProphet> a clone of ook...
07:01:55 <CakeProphet> that's appaling.
07:01:56 <oerjan> What, you don't want to increment Ook? :)
07:02:08 <CakeProphet> cloning a cloning is a sin.
07:02:25 <RodgerTheGreat> Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo.
07:02:44 <CakeProphet> It'll basically have ORKs syntax... with Metaclasses and coroutines...
07:02:57 <CakeProphet> and some new directive-type stuff via commands related to "Sophia"
07:03:21 <oerjan> I wasn't suggesting that you make Sophia have such a syntax, but that you make Sophia have it.
07:03:22 <CakeProphet> and some minor syntax tweaks... such as "When this program starts:" being changed to "When Sophia loves us:"
07:03:49 <CakeProphet> no no no... I would really only consider Sophia for that kind of silliness.
07:04:11 <CakeProphet> well... that's actually not a syntax tweak...
07:04:12 <bsmntbombdood> excuse me mister but wtf ru doing?
07:04:18 <CakeProphet> because Sophia will be an object with a method "loves us"
07:04:36 <CakeProphet> so it'd be When sophia is to love us
07:05:32 <CakeProphet> oh yeah... and special methods (yup... can't have OO without SPECIAL METHODS!!_
07:06:02 <CakeProphet> "be said" is the string representation method (and how the object is printed when outputted)
07:06:16 <CakeProphet> When an apple is to be said:
07:07:45 <CakeProphet> and I'll try to think of some ways to totally bastardize ORK.
07:07:51 <CakeProphet> for fun.
07:09:45 <oerjan> You could add a functional layer.
07:10:31 <CakeProphet> I plan on making it heavily corotuinal.
07:10:32 <CakeProphet> actually.
07:10:37 <CakeProphet> with the whole "ring" thing.
07:19:22 -!- digital_me_ has quit (Read error: 110 (Connection timed out)).
07:19:45 -!- Sgeo has quit (Remote closed the connection).
07:28:06 -!- calamari has left (?).
07:58:42 <Sukoshi> Hey look. I've ignored all of you for the last 2000 lines.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:00:07 <oerjan> That's OK, we were ignoring you too.
08:31:36 <Sukoshi> No, it's not OK. It's ORK.
10:20:54 -!- ihope has joined.
10:24:05 -!- oerjan has quit ("leaving").
12:54:55 <oklopol> [08:21:32] <oerjan> I think what Oklopol's nop language needs is a type system so complicated that _it_ is Turing-complete.
12:54:56 <oklopol> it is
12:55:02 <oklopol> but no IO :)
12:55:21 <oklopol> ny nop language
12:59:57 <oklopol> [08:44:14] * CakeProphet had a BF interpreter coded in Excel at one point.
13:00:09 <oklopol> if you're talking about vba, i made one during a class in school
13:02:23 <oklopol> [14:53:16] <oklopol> ny nop language
13:02:26 <oklopol> idiot :\
13:16:41 -!- andreou has joined.
13:21:04 <oklopol> it supports only datatypes list and nopad, nopad being the empty list
13:21:54 <ihope> I did Bitwise Cyclic Tag in Excel.
13:22:09 <ihope> And I don't mean a macro or anything.
13:22:21 <oklopol> with cell arithmetic?
13:22:27 <ihope> Yep.
13:22:35 <ihope> It's easier than BF, of course.
13:22:42 <oklopol> because making it in vba is as easy as in any language :)
13:22:56 <ihope> I think BCT earns the Simplest Turing-Complete Language award.
13:23:09 <oklopol> tho vb is the worst language i've run into
13:23:14 <oklopol> hmm i'll have to check it, don't remember
13:23:21 <ihope> Malbolge is the worse language I've run into.
13:23:24 <ihope> :-)
13:23:33 <ihope> And by worse, I mean worst.
13:25:21 <oklopol> well, in vb it's nicer to do a program, but i like malbolge more :)
13:25:37 <ihope> Epigram has a ridiculously strong type system, doesn't it?
13:25:58 <oklopol> i'll have to see that one too........
13:26:02 <oklopol> :\
13:31:30 <oklopol> BCT stops execution when datastring is empty?
13:32:46 * andreou would like to see the US gov't adopting mycelium as a stego device
13:37:39 <ihope> andreou: :-)
13:37:58 <ihope> They probably have better ways of doing that, you know.
13:38:30 <andreou> probably; not as cool, though
13:38:47 <ihope> Heh.
13:43:38 <andreou> a combination of filigram.c and mycelium would also produce interesting results
13:44:29 <ihope> filigram.c?
13:45:11 <andreou> it's on ../filigram/ in the site of that putty guy
13:45:15 <andreou> (sorry, no c&p here)
13:51:28 -!- ihope_ has joined.
14:07:29 -!- ihope has quit (Read error: 110 (Connection timed out)).
14:12:43 <oklopol> python: reduce ( (lambda a, b : a+b), [[[]], [[[], [], [[], []]], []], [[], [], []]] )
14:12:44 <oklopol> nopol: <<<>><<<><><<><>>><>><<><><>>>:<<..><:>:<::>>
14:13:13 <oklopol> it supports alphanumeric names tho, also comments and whitespace
14:13:44 <oklopol> the function is <<..><:>:<::>>, please crack it if you have time :)
14:15:59 <oklopol> the system is not only turing complete, it's actually pretty nice to write algorithms in
14:18:46 -!- jix__ has joined.
14:54:41 <oklopol> nopol is getting quite complicated for a language you cannot do anything with :\
14:59:38 <oklopol> i think the best feature is you can have lists of negative depth, if a([b]) == b, a(a(a([]))) for example is valid code :)
15:00:09 <oklopol> i gotta finish it so i can make a compiler!
15:00:35 <oklopol> the standard for compilers guarantees a -f final build mode that optimized the whole program to one nop
15:00:46 <oklopol> *optimizes
15:01:22 <andreou> to one nop?!
15:01:30 <oklopol> yes
15:01:45 <oklopol> because, any number of nops is essentially one nop
15:01:48 <andreou> *every* program does absolutely nothing and does it in a quirky way?
15:01:55 <oklopol> yeah :)
15:02:10 <andreou> ah i didn't read the specs -- are there any or is it WIP"?
15:02:14 <oklopol> of course, you can have fun with it with a debugger
15:02:37 <oklopol> because you see what's happening in the memory
15:02:40 <oklopol> specs?
15:02:43 <oklopol> for the lang?
15:02:57 <andreou> heh yeah
15:03:05 <andreou> i think this kind of fun is easier with hallucinogens
15:03:13 <oklopol> :)
15:03:20 <oklopol> i'm not ready yet with the language
15:03:40 <oklopol> and it will be very hard to make an interpreter
15:03:46 <oklopol> (with debugging)
15:04:34 <oklopol> i have to think over all the commands and such to make everything as logical as possible
15:04:45 <oklopol> but not today
15:04:51 <oklopol> gotta go
15:05:34 <andreou> k cheers
15:11:31 <andreou> k cheers
15:11:32 <andreou> eh
15:20:13 -!- pikhq has joined.
15:29:09 -!- andreou has quit ("kernel test").
15:33:01 -!- andreou has joined.
16:24:51 -!- andreou has quit ("kernel test").
16:27:21 -!- tgwizard has joined.
16:31:16 -!- andreou has joined.
16:56:17 -!- wooby has quit.
17:05:01 -!- calamari has joined.
17:05:10 <calamari> hi
17:06:07 <RodgerTheGreat> howdy, calamari
17:06:58 <calamari> apparently some spammers decided @kidsquid.com is a good return address :( getting lots of failure notices
17:07:13 -!- FabioNET has joined.
17:15:34 -!- ais523 has joined.
17:16:16 <ais523> So there are people on #esoteric at the moment after all, then? I was monitoring the logs to see if anyone was online, but somehow I never seem to be online at the same time as other people...
17:16:51 <ais523> !help
17:16:54 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
17:16:56 <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
17:17:02 <ais523> !help fyb
17:17:06 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
17:17:40 <ais523> !fyb :>+!;
17:17:44 <EgoBot> cp: cannot create regular file `fyb/cache/egobot.AbWxMh': Permission denied
17:18:19 <ais523> !ps
17:18:22 <EgoBot> 1 ais523: ps
17:19:00 <ais523> After that publicly-visible error message, EgoBot started spamming me with error messages...
17:20:22 <andreou> happens occasionally
17:20:40 <ais523> Besides, how can it run a single fyb program anyway, considering that two of them, using each other as data space, are needed for the program to work?
17:21:29 <andreou> beats me
17:22:06 <ais523> !fyb file://bomber.fyb
17:22:08 <EgoBot> cp: cannot stat `./files/bomber.fyb': No such file or directory
17:22:42 <andreou> i think it supports http
17:23:25 <ais523> I think it tries to run the program it's given against an internal list of programs to compete against, but it's getting 'permission denied' errors on the programs it has stored
17:23:41 <ais523> !ps
17:23:43 <EgoBot> 1 ais523: ps
17:24:15 * ais523 discovers that giving EgoBot another command stops the error-message spam
17:24:33 <ais523> !fybs :>+!;
17:24:38 <EgoBot> Reporting score for :>+!;.
17:26:12 <ais523> !ps
17:26:15 <EgoBot> 1 ais523: ps
17:26:25 <ais523> It just sent me three hyphens and stopped...
17:29:00 <ais523> !unlambda ```s``s``sii`ki`k.*``s``s`ks``s`k`s`ks``s`k`s`k./``s`k`sikk`k``s`ksk
17:29:03 <EgoBot> /*//
17:29:05 <ihope_> Maybe it lost three games in a row.
17:29:23 <ais523> I suppose so, it wasn't a very good program...
17:30:12 <ais523> !fybs +[>[-]!+]
17:30:15 <EgoBot> Reporting score for +[>[-]!+].
17:30:46 <ais523> More hyphens. But that's a really vulnerable program, due to the tight loop near the start...
17:36:29 <ais523> !fyb {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!}
17:36:31 <EgoBot> cp: cannot create regular file `fyb/cache/egobot.YnjVgJ': Permission denied
17:36:43 <ais523> !ps
17:37:22 <EgoBot> 1 ais523: fyb
17:37:24 <EgoBot> 2 ais523: ps
17:37:52 <ais523> Hey, I think I actually beat some of its library
17:38:11 <ais523> !fybs {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!}
17:38:14 <EgoBot> Reporting score for {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!}.
17:38:41 <ais523> More hyphens, but there was something encouraging in the error messages on the plain fyb
17:42:31 <pikhq> Hello.
17:42:34 <ais523> !fyb %:[%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[-]!]>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!;{{>>>>}{>>>>}[-]++++++++++++++!}
17:42:36 <EgoBot> cp: cannot create regular file `fyb/cache/egobot.Gl82IV': Permission denied
17:42:45 <ais523> Hello, pikhq!
17:43:30 <pikhq> Enjoying Esolangs?
17:44:05 <pikhq> BTW, IIRC, fyb will compare the program given and some of the builtins.
17:44:18 <pikhq> And it seems that Gregor has fucked up Egobot a bit.
17:44:40 <pikhq> GregorR: Give egobot write access to itself.
17:45:05 <ais523> Yes, I'm enjoying esolangs. I enjoyed the logs, too, before I had access to an IRC client.
17:45:26 <ais523> !ps
17:45:29 * pikhq continues hugging BFM
17:45:29 <EgoBot> 1 ais523: ps
17:45:57 <ais523> The new program seems less good than the old one. Maybe it's better to be simple...
17:47:17 <ais523> !fyb :>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]+++++++++++++++!;:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]+++++++++++++++!;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]+++++++++++++++!;
17:47:19 <EgoBot> cp: cannot create regular file `fyb/cache/egobot.2yppuf': Permission denied
17:48:03 <ais523> !ps
17:48:07 <ais523> losing again...
17:48:07 <EgoBot> 1 ais523: ps
17:49:02 -!- oerjan has joined.
17:49:19 * ais523 tries something really simple
17:49:22 <pikhq> string f! "Hello, oerjan."
17:49:26 <pikhq> outs f!end
17:49:43 <ais523> !fyb {>>>}{>>>}+++++++++++++++!
17:49:46 <EgoBot> cp: cannot create regular file `fyb/cache/egobot.CZrAiN': Permission denied
17:50:25 <ais523> !help
17:51:43 <ais523> !ps
17:51:46 <EgoBot> 1 ais523: ps
17:52:20 <ais523> The ps command does seems to stop the flow of error messages and useful answers... (it lost every single game, BTW)
17:53:24 <ais523> Hey, how does EgoBot manage the 2D languages?
17:54:06 <ais523> !help 1l
17:54:08 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
17:54:27 <ais523> Oh, it seems that it reads it off the Web
17:56:22 <ais523> !1l http://esoteric.voxelperfect.net/files/1l/src/1l_a/a.1l
17:56:24 <EgoBot> A
17:57:17 * pikhq is a bit sad that EgoBot doesn't seem to support Dimensifuck. . .
17:57:42 <pikhq> It's my n-dimensional Brainfuck variant. . .
17:57:42 <ais523> !help
17:57:46 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
17:57:48 <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
17:58:02 * pikhq needs to write a BF->DF compiler
17:58:11 <ais523> It doesn't have any of my languages either.
17:58:19 <pikhq> Which are?
17:59:07 <ais523> BackFlip, Underload, and MiniMAX are the main ones (there are also some BackFlip derivatives like ABCDXYZ and Unassignable)
17:59:51 <pikhq> Hmm. . .
17:59:59 * pikhq still <3 BFM. . .
18:00:05 <pikhq> My macro system for Brainfuck.
18:00:11 <pikhq> With much thanks to oerjan.
18:00:29 <ais523> How do you do a loop in Dimensifuck? The wiki isn't clear on how you affect the program flow
18:00:58 <pikhq> =v
18:01:03 <pikhq> Err. . .
18:01:18 <pikhq> =v =v ^
18:01:39 <pikhq> _ _ _
18:02:05 <pikhq> ^code=^+v
18:02:06 <ais523> So v and ^ affect the program counter?
18:02:19 <pikhq> v and ^ conditionally change the direction of program flow.
18:02:33 <pikhq> = and _ change the dimension v and ^ effect.
18:03:53 <ais523> So you could compile BF into 2D Dimensifuck just by drawing loops to represent literal loops, in much the same way as Sansism
18:04:46 -!- andreou has quit ("-").
18:05:14 <ais523> Maybe it would be possible to do it without wire-crossings
18:08:15 -!- sebbu has joined.
18:11:41 <ais523> !fybs {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!}
18:11:45 <EgoBot> Reporting score for {>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>{>>>}{>>>}[-]++++++++++++++!}.
18:15:47 <pikhq> Well, I can *hand*compile BF to Dimensifuck. . .
18:19:13 <ais523> If you assign each loop its own y-coordinate (or better, its own dimension), you could use each of those as a bypass path for the loop if the value is zero
18:19:22 <ais523> and assign another one for the return path
18:19:27 <oerjan> I would expect every BF command to be compiled to a fixed 2D-block of DF commands, except for [], where you need to vary the height of the loop to avoid crossings.
18:20:12 <ais523> + - < > , . are all the same in DF, so it's only the flow control you have to deal with
18:20:58 <ihope_> !
18:21:05 <EgoBot> Huh?
18:21:15 <ihope_> And for a minute there I thought ! no longer did anything.
18:21:42 <oerjan> !daemon nop bf ,[,]
18:22:23 -!- ais523 has quit ("about to lose Internet access for a while").
18:28:30 * SimonRC fails to understand today's xkcd.
18:28:38 <pikhq> !daemon bf ,[,]
18:28:38 <pikhq> !
18:28:48 <pikhq> I win.
18:28:54 <pikhq> !nop
18:29:15 * oerjan hands pikhq the golden cup
18:29:52 * pikhq joins SimonRC.
18:35:02 <pikhq> :)
18:43:13 <calamari> sorry, I'm a bit out of the loop.. is this some kind of game you are playing?
18:43:19 <bsmntbombdood> ~quit
18:43:20 -!- bsmnt_bot has quit.
18:43:24 -!- bsmnt_bot has joined.
18:43:40 <pikhq> Nope.
18:43:42 <EgoBot> cannot open checkpoint file /home/gregor/esoteric/egobot/egobot/daemons/: Is a directory
18:43:43 <EgoBot> cannot obtain a checkpoint stream
18:43:55 <bsmntbombdood> heh
18:43:59 <bsmntbombdood> EgoBot is broken
18:44:10 <pikhq> Gregor, do you not have write access to your home dir?
18:45:12 <bsmntbombdood> !bf +[>+]
18:45:22 <EgoBot> realloc: Cannot allocate memory
18:45:44 -!- digital_me has joined.
18:46:21 <bsmntbombdood> !bf -[->+<]
18:46:38 <calamari> <ihope_> Maybe it lost three games in a row.
18:46:44 <calamari> ^^^ what does this mean? :)
18:46:49 <pikhq> !bf ++++++++++.
18:46:53 <pikhq> calamari: FYB.
18:47:00 <bsmntbombdood> SimonRC: me too
18:51:23 -!- digital_me has quit ("Lost terminal").
19:03:31 * pikhq continues prodding Gregor
19:33:17 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
19:35:06 -!- pikhq has joined.
19:42:05 -!- ShadowHntr has joined.
19:48:02 <pikhq> Kill egobot, Gregor.
19:48:22 <bsmntbombdood> kiiiiiil it
19:48:25 <bsmntbombdood> kiiiiiil it!
19:48:55 * CakeProphet remembers how much he loves duck typing.
19:48:59 <pikhq> I'm getting PMd error messages.
19:49:02 <bsmntbombdood> duck typing is nice
19:49:05 <bsmntbombdood> can't do that in c++
19:49:09 <CakeProphet> it makes sense.
19:49:52 <CakeProphet> What data can do should be defined by its propertie, rather than some "type". :P
19:50:54 <CakeProphet> and...
19:50:57 <CakeProphet> it has a cool name.
19:51:00 <CakeProphet> you can't beat that.
19:53:41 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
19:53:54 -!- EgoBot has joined.
19:54:35 <pikhq> Now, chmod some of its directories +w.
19:54:43 <pikhq> !bf ++++++++++.
19:54:50 * pikhq waits for the error message
19:55:23 * pikhq waits for a newline, even
19:55:55 <oklopol> !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
19:55:59 <EgoBot> A
19:56:12 <oklopol> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
19:56:16 <oklopol> !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
19:56:19 <EgoBot> A
19:57:31 <GregorR> You realize that prodding is useless if you don't say "GregorR"
19:57:45 <GregorR> What with IRC clients highlighting tabs and such.
19:59:23 <pikhq> GregorR, you didn't respond when I said your full name.
19:59:47 <GregorR> I was asleep :-P
19:59:56 <pikhq> Is your home dir rw now?
20:00:07 <pikhq> !daemon bf ,[,]
20:00:09 <bsmntbombdood> hook up your alarm clock to your irc client
20:00:10 <pikhq> !
20:00:58 <GregorR> OK, fyb is fixed.
20:01:12 <bsmntbombdood> !bf_txtgen A
20:01:37 <GregorR> And it runs as user egobot in /home/gregor/esoteric/egobot/egobot :P
20:01:38 <bsmntbombdood> there should be an algorithmic bf textgen
20:01:39 <EgoBot> 30 ++++++++[>++++++++>>><<<<-]>+. [53]
20:01:58 <bsmntbombdood> 30 characters to make an A??
20:02:00 <oklopol> !bf >+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>+++++++++++++++++++++++++++++++++++++++++++.>-------------.>++.>++++++++.>+++.>--------------------------------.
20:02:03 <EgoBot> G+
20:02:06 <oklopol> :)
20:02:13 <oklopol> well, getting close
20:02:19 <oklopol> oh
20:02:50 <oklopol> !bf +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++++++++++.-------------.++.++++++++.+++.--------------------------------.
20:02:53 <EgoBot> GregorR
20:02:56 <oklopol> :)
20:03:01 <oklopol> i made a generator too!
20:03:04 <oklopol> xD
20:03:17 <bsmntbombdood> it's less effecient than EgoBot's
20:03:24 <bsmntbombdood> !bf_txtgen GregorR
20:04:01 <EgoBot> 80 ++++++++++++++[>+++++>++++++>++++++++>+++++++<<<<-]>+.>>++.>+++.++.<---.+++.<--. [250]
20:04:08 <bsmntbombdood> yep
20:05:00 <oklopol> is it really?!?!?!?!? :D
20:05:22 <oklopol> actually, mine is not much slower
20:05:33 <oklopol> just longer
20:05:35 <bsmntbombdood> EgoBot uses a genetic algorithm
20:05:42 <oklopol> genetic?
20:06:09 <oklopol> mine uses a generic algorithm and i wrote it just now in python in 2 minutes
20:06:33 <oklopol> so, yeah it sucks but i love all those chains of letters <3
20:06:57 <oklopol> what algorithm is GregorR's anyway?
20:07:13 <bsmntbombdood> GregorR: You should pipe the output of bf_txtgen through a bf optimizer
20:07:31 <bsmntbombdood> to remove the >>><<< stuff
20:08:45 <oklopol> [250]?
20:09:14 <GregorR> textgen.java . Look @ calamari :-P
20:09:14 <bsmntbombdood> my guess is the generations it wen't through
20:09:48 <oklopol> can i see the thingie?
20:09:51 <GregorR> ^[0-9]+ is the length, \[[0-9]+\]$ is the generations.
20:10:04 <GregorR> It's in the files archive.
20:10:08 <bsmntbombdood> that's what I thought
20:10:35 -!- maverickbna has joined.
20:11:11 -!- ShadowHntr has quit (Nick collision from services.).
20:11:52 <oklopol> okay, what is the files archive :)
20:12:03 -!- ShadowHntr has joined.
20:12:10 -!- ShadowHntr has quit (Read error: 104 (Connection reset by peer)).
20:12:41 <GregorR> http://www.esolangs.org/wiki/LOOK_IT_UP_YOURSELF
20:12:56 <GregorR> Or just http://www.esolangs.org/ :-P
20:13:00 <oklopol> i found no archive :\
20:13:10 <oklopol> :O
20:13:12 <oklopol> OMG
20:13:24 <oklopol> SUPRISINGLY IT WAS NOT IN THE WIKI
20:13:38 <bsmntbombdood> stupid java
20:14:15 <oklopol> okay
20:14:21 <oklopol> i can't find it there either :)
20:14:29 <bsmntbombdood> http://www.esolangs.org/files/egobot/ ?
20:14:52 <oklopol> oh
20:15:09 <EgoBot> cannot open checkpoint file /home/gregor/esoteric/egobot/egobot/daemons/: Is a directory
20:15:11 <oklopol> i thought it was like in a separate folder :)
20:15:11 <EgoBot> cannot obtain a checkpoint stream
20:15:24 <bsmntbombdood> HA HA HA E GO BO T
20:15:36 <GregorR> That's curious :-P
20:15:45 <GregorR> !ps d
20:15:47 <EgoBot> 1 EgoBot: daemon nop reload
20:15:49 <EgoBot> 2 pikhq: daemon bf
20:15:51 <EgoBot> 3 GregorR: ps
20:15:55 <bsmntbombdood> You're just an e go bo t
20:15:55 <GregorR> Damn you pikhq ;)
20:16:00 <GregorR> !undaemon
20:16:10 <GregorR> Of course X-D
20:16:27 <oerjan> Aha
20:16:48 * pikhq grins
20:17:05 <oerjan> now what i wanted to check.
20:17:37 <bsmntbombdood> Someone needs to do something clever with bsmnt_bot
20:17:48 <pikhq> GregorR: I can be cruel to bots at times.
20:18:02 <oerjan> !daemon bf bf ,[.,]
20:18:13 <oerjan> !bf Testing...
20:18:14 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
20:18:18 <bsmntbombdood> heh
20:18:24 -!- EgoBot has joined.
20:18:26 <GregorR> Hm.
20:18:30 <oerjan> !ps d
20:18:32 <pikhq> !daemon glass bf ,[.,]
20:18:33 <GregorR> That's sort of bad X-P
20:18:33 <EgoBot> 1 EgoBot: daemon nop reload
20:18:35 <EgoBot> 2 oerjan: ps
20:18:41 <bsmntbombdood> I should read the EgoBot source
20:18:45 <pikhq> !glass Whee.
20:18:49 <EgoBot> Whee.
20:18:54 <pikhq> !undaemon glass
20:18:57 <EgoBot> Process 2 killed.
20:18:58 <GregorR> You jackass :-P
20:19:05 <pikhq> !daemon glass glass ''
20:19:11 <pikhq> !glass There we go.
20:19:12 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
20:19:21 -!- EgoBot has joined.
20:19:27 <pikhq> Hmm.
20:19:38 <pikhq> !daemon cat cat f
20:19:39 <pikhq> !cat f
20:19:40 -!- EgoBot has quit (Read error: 104 (Connection reset by peer)).
20:19:42 <oerjan> Apparently daemons can be recursive?
20:19:46 <pikhq> Can't.
20:19:50 -!- EgoBot has joined.
20:19:53 <bsmntbombdood> dude, wtf
20:19:53 <GregorR> Can't successfully :-P
20:19:58 -!- maverickbna has quit (Read error: 145 (Connection timed out)).
20:20:00 <bsmntbombdood> you wrote it in c++?
20:20:08 <GregorR> I'm a C++'er.
20:20:11 <GregorR> !daemon bf undaemon bf
20:20:12 <bsmntbombdood> That just ain't right
20:20:12 <EgoBot> Process 1 killed.
20:20:17 <GregorR> !bf foo
20:20:31 <bsmntbombdood> NOT COOL DUDE
20:20:32 <pikhq> !bf foo
20:20:37 <oklopol> bsmntbombdood, as wouter said, ppl who don't like c++ don't understand it
20:20:44 <GregorR> bsmntbombdood: People who don't like C++ --- thanks, oklopol 8-D
20:20:51 <oklopol> :)
20:20:53 * pikhq needs to fiddle with egobot a bit
20:21:25 <oerjan> !daemon undaemon bf
20:21:38 * oerjan cackles evilly
20:21:39 <bsmntbombdood> what's cerr?
20:21:55 <GregorR> oerjan: 8-X
20:21:56 <pikhq> Dude, wtf?
20:22:13 <oerjan> !ps d
20:22:16 <EgoBot> 1 oerjan: ps
20:22:22 <pikhq> Why the hell are you writing IRC commands to stderr?
20:22:22 <oerjan> Hmmm..
20:22:31 <pikhq> bsmntbombdood: It's the C++ stream interface to stderr.
20:22:37 <bsmntbombdood> oh
20:22:45 <oerjan> !daemon undaemon bf ,[,]
20:22:48 <oerjan> !ps d
20:22:51 <EgoBot> 1 oerjan: daemon undaemon bf
20:22:52 <EgoBot> 2 oerjan: ps
20:23:01 <GregorR> pikhq: netcat is a bit funky :(
20:23:05 <oerjan> That's better. Or worse.
20:23:23 <bsmntbombdood> heh, I don't understand the source at all
20:23:40 <GregorR> ...
20:23:41 <pikhq> !help raw
20:23:42 <GregorR> !undaemon undaemon
20:23:44 <EgoBot> Process 1 killed.
20:23:45 <pikhq> bsmntbombdood: What's wrong with you.
20:23:46 <EgoBot> To use an interpreter: <interpreter> <program> Note: <program> can be the actual program, an http:// URL, or a file:// URL which refers to my pseudofilesystem.
20:23:57 <GregorR> pikhq: There's no help on !raw
20:24:19 <pikhq> !raw QUIT :I don't want to live!
20:24:43 <bsmntbombdood> what's lockIRC_o()?
20:24:45 <GregorR> !raw PRIVMSG #esoteric :Do you /really/ think I use security by obscurity, dorkus?
20:24:45 <EgoBot> Do you /really/ think I use security by obscurity, dorkus?
20:25:21 <pikhq> !raw PRIVMSG bsmntbombdood :Don't answer that.
20:25:53 * pikhq realised something stupid
20:26:02 <pikhq> if (sender != string(argv[2])) continue;
20:26:18 <pikhq> So Gregor alone can use raw.
20:26:32 <pikhq> Same for reload.
20:26:37 <pikhq> (bastard)
20:27:56 <pikhq> ./egobot EgoBot GregorR esoteric 10485760 >> EGOOUT
20:28:11 <pikhq> I don't understand how the fuck that allows netcat to access IRC.
20:29:00 <bsmntbombdood> what's a "trigger interpreter"?
20:31:51 <bsmntbombdood> ooooh, trigger is an esolang
20:36:06 <pikhq> At least there aren't any buffer overflows to exploit. . .
20:36:41 <pikhq> . . . I think I stand corrected.
20:36:59 <oklopol> !bf_txtgen was this the command?
20:37:13 <oklopol> !help
20:37:17 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
20:37:19 <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
20:37:27 <oklopol> okay
20:37:37 <oklopol> i... se
20:37:37 <oklopol> *See
20:38:01 <EgoBot> 162 +++++++++++[>+++>+++++++++++>+++++++++>++++++<<<<-]>>--.>--.<----.<-.>+.>+++++++.+.<-.<.>+.------------.---.<.>--.++++++++++++.--..------------.>+++++.<+++.>>---. [930]
20:38:11 <pikhq> No, your use of C strings is safe. . .
20:38:18 <pikhq> Still. . . Bad Gregor!
20:38:19 <oklopol> !bf_txtgen test
20:38:40 <bsmntbombdood> You should have written it in bf
20:38:51 <EgoBot> 54 +++++++++++++[>+++++++++>++++++++>><<<<-]>-.>---.<-.+. [32]
20:38:54 <oklopol> !bf_txtgen test
20:39:22 <bsmntbombdood> args.substr(0, 7) == "http://"
20:39:25 <EgoBot> 54 +++++++++++++[>+++++++++>++++++++>><<<<-]>-.>---.<-.+. [316]
20:39:41 <bsmntbombdood> Double quotes don't evaluate to a c string in c++?
20:39:52 <pikhq> Using char arrays in C++ isn't wise.
20:39:52 <oklopol> yes
20:41:56 <bsmntbombdood> What's the point of forking and then waitpid()ing on it?
20:44:10 <pikhq> "foo" is a static C string in C++. . .
20:50:03 <bsmntbombdood> Then line 253 of cmd.cc is broken I think
20:50:24 <bsmntbombdood> unless string::substr is magice
20:50:30 <bsmntbombdood> *magiv
20:50:33 <bsmntbombdood> *magic
20:51:21 <bsmntbombdood> No idea what the function is used for
20:54:02 <GregorR> Not broken.
20:55:14 -!- cmeme has quit (Connection timed out).
20:55:43 <bsmntbombdood> Oh right
20:55:55 <bsmntbombdood> string overloads ==
20:56:45 <pikhq> string::substr is magic, indeed.
20:56:46 <pikhq> ;)
20:57:31 <bsmntbombdood> yeah
21:01:27 <oklopol> how does the txtgen randomize the same string every time :\
21:01:37 <oklopol> or, even two times in succession
21:02:54 <pikhq> It's a genetic algorithm. . . You're experiencing dumb luck.
21:05:59 -!- Sukoshi has quit ("ERC Version 5.1 (CVS) $Revision: 1.796 $ (IRC client for Emacs)").
21:06:08 <bsmntbombdood> heh, ERC
21:08:07 <bsmntbombdood> !bf http://esoteric.sange.fi/brainfuck/bf-source/prog/99botles.bf
21:08:12 <EgoBot> 99 Bottles of beer on the wall
21:08:20 <bsmntbombdood> damn, pm
21:08:31 <bsmntbombdood> !ps
21:08:34 <EgoBot> 1 bsmntbombdood: ps
21:08:35 <bsmntbombdood> !kill 1
21:08:38 <EgoBot> Process 1 killed.
21:13:37 -!- oerjan has quit ("leaving").
21:39:11 -!- jix__ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
21:41:26 <CakeProphet> Wow...
21:41:30 <CakeProphet> This is great.
21:41:38 * CakeProphet absolutely loves the ring idea.
21:44:12 <bsmntbombdood> I don't understand why it's so great
21:45:21 <CakeProphet> In a static universe... it wouldn't be all that great.
21:45:21 <pikhq> I don't know what idea it is.
21:45:38 <CakeProphet> for a dynamic universe... it's pretty damn sweet.
21:45:41 <CakeProphet> and I've changed it a bit.
21:45:54 <CakeProphet> It's a sequence of functions that can be called.
21:46:59 <CakeProphet> when you call a ring... it calls the first function with those arguments, and uses the return value as the arguments for the next function, etc
21:47:20 <CakeProphet> but there's a "ring return value" as well... which is what the ring returns as a whole.
21:47:39 <CakeProphet> it's like function decorators.
21:47:53 <CakeProphet> but... not exactly.
21:48:51 <CakeProphet> it's not really meant to be a "pure" function (no side-effects)
21:48:59 <CakeProphet> it would work best where everything is a side-effect.
21:55:04 <ihope_> People who don't like C++ don't understand it? Lies!
21:55:33 <ihope_> I refuse to use any programming language that I cannot code first-order logic theories into!
21:56:47 <bsmntbombdood> I hate that excuse that people give
21:57:03 <bsmntbombdood> "You don't like it, so you must not understand it"
21:59:22 -!- Sgeo has joined.
21:59:29 <CakeProphet> That would be assuming that anything understood is liked.
22:00:10 * bsmntbombdood reads K&R
22:00:20 <ihope_> K&R?
22:00:31 <ihope_> That's not the virtualization thing, is it?
22:00:49 -!- sebbu has quit (Connection timed out).
22:00:49 <bsmntbombdood> no
22:01:02 <bsmntbombdood> kernighan and ritchie
22:01:20 -!- pikhq has quit (Read error: 104 (Connection reset by peer)).
22:01:56 -!- pikhq has joined.
22:07:25 <oklopol> No, CakeProphet, just that C++ is nice when you get it.
22:07:36 <oklopol> oh
22:07:46 <oklopol> you did say it genericly
22:07:50 <oklopol> math ->
22:11:07 -!- olli90 has joined.
22:11:13 <olli90> hi all
22:11:28 <pikhq> Hello.
22:12:47 <olli90> I have a question reguarding BrainF*ck ....
22:12:51 <olli90> can you help me?
22:14:46 <ihope_> Sure.
22:14:54 <ihope_> Depends on the question, of course...
22:15:50 <olli90> i have to make a brainfuck program that checks a string...
22:16:02 <olli90> like a serial key checker
22:16:21 <ihope_> You *have* to?
22:16:45 <ihope_> Check one string against another, then?
22:16:48 <olli90> i wuold like to
22:16:53 <olli90> xD
22:17:00 <olli90> sry for my english
22:17:46 <olli90> then if the first is = to the second the program prints "OK" and is not = the program prints "wrong"
22:18:48 <pikhq> Hmm. . .
22:19:26 <pikhq> I can think of the basic structure for such a program in BFM. . .
22:19:46 <pikhq> Would it be a specific, builtin string, or would it compare two strings from stdin?
22:19:48 * ihope_ slaps pikhq
22:20:07 <bsmntbombdood> are the lengths known?
22:20:07 <olli90> it haves to compare 2 strings...
22:20:10 <pikhq> ihope_: Sorry. . . It's easy to think about it at higher levels of abstraction.
22:20:11 <olli90> no
22:20:19 <olli90> yes i know
22:20:28 <ihope_> Input a character, go right, increment, go right, input a character, go right, increment, go right...
22:20:45 <ihope_> Continue until you receive a newline.
22:21:26 <ihope_> After you receive it, go left to the cell you incremented last, then [<<], then go right.
22:22:11 <ihope_> From there, you're at the beginning of the string you want to check against, and there's one cell between each pair of characters, and the next thing that will be input is the other string.
22:22:27 <olli90> ok
22:23:09 <olli90> thanks
22:23:25 <olli90> I think I have undertund :D
22:25:46 <olli90> bye
22:25:50 -!- olli90 has quit ("KVIrc 3.2.3 Anomalies http://www.kvirc.net/").
22:25:52 * pikhq realises one thing that could be much faster in BFM, when compiled into Tcl and interpreted. . .
22:25:56 <pikhq> itoa is slow as hell
22:28:16 <pikhq> Of course, I know an even easier way to make the BFM interpreter faster.
22:28:27 <pikhq> Make it just compile to BF and run through egobfi.
22:28:49 <CakeProphet> Compile it to C.
22:28:53 <CakeProphet> C is nice and face.
22:28:56 <CakeProphet> st
22:29:15 <pikhq> That's great and all, but BFM already targets C.
22:29:37 <pikhq> I just need to get c.tcl pulled over onto my laptop and package it up.
22:29:45 <pikhq> Besides, egobfi8 is very fast.
22:30:07 <pikhq> tclsh ./bfm.tcl -f ~/esoteric/bfm/bott.bfm 1.22s user 0.04s system 56% cpu 2.218 total
22:30:11 <pikhq> egobfi8 0.14s user 0.07s system 9% cpu 2.213 total
22:30:28 <pikhq> Comparing with the BFM interpreter. . .
22:30:34 <pikhq> Give it a few minutes.
22:31:07 <pikhq> (comparing with my in-BFM implementation of 99 bottles of beer)
22:32:23 <pikhq> 79.
22:32:46 <pikhq> Like I said: the in-BFM itoa implementation is slow as fuck.
22:33:10 <pikhq> (at least, it is in an environment where your interpretation of a while loop is very, very slow)
22:33:15 <ihope_> Just how slow is fuck?
22:33:48 <pikhq> I'm watching the thing spit out a string, wait a few seconds, spit out a number and a string, and so on and so forth.
22:34:34 <pikhq> Unbuffered output lets me see what the bottleneck is. . .
22:34:58 <pikhq> String output goes pretty quickly, even for a rather slow interpreter.
22:35:17 <pikhq> tclsh ./bfm.tcl -f ~/esoteric/bfm/bott.bfm -I 285.46s user 0.37s system 98% cpu 4:48.95 total
22:35:22 <pikhq> That's how slow fuck is.
22:36:57 -!- tgwizard has quit (Remote closed the connection).
22:39:15 * pikhq has made the thing a bit faster now. . .
22:39:29 <pikhq> I removed redundant calls to itoa in my bott.bfm program.
22:39:43 <pikhq> It should be 3 times as fast.
22:39:49 <pikhq> Which is still rather slow. . .
22:41:25 <pikhq> tclsh ./bfm.tcl -f ~/esoteric/bfm/bott.bfm -I 130.26s user 0.34s system 92% cpu 2:20.87 total
22:41:42 <pikhq> tclsh ./bfm.tcl -f ~/esoteric/bfm/bott.bfm 0.89s user 0.05s system 93% cpu 1.005 total
22:41:45 <pikhq> egobfi8 0.11s user 0.06s system 9% cpu 1.886 total
22:42:34 <pikhq> Now, we all know how slow fuck is.
22:43:47 <oklopol> i actually made an assignment! :)
22:43:53 <pikhq> . . . Yes?
22:45:30 <oklopol> Math.
22:45:41 <pikhq> . . .
22:45:55 <oklopol> i've done maybe 10 in high school if you don't count exams, so i'm very proud -_______-
23:12:51 <pikhq> . . . Wow.
23:13:01 <pikhq> I've got 939 lines of code in BFM. . .
23:13:16 <pikhq> Not counting my C backend, which I have yet to sync in with the rest of my tree.
23:13:59 <pikhq> My pre-rewrite build was 325 lines.
23:14:17 <pikhq> Kind of odd that I managed to have the thing grow in size as it increased in readability.
23:37:46 -!- FabioNET has quit ("notte notte").
23:38:37 <ihope_> oklopol: you made an assignment?
23:39:24 <ihope_> You assigned something, then?
23:39:32 <pikhq> char a = 2;
23:39:34 <pikhq> Hard.
23:42:15 <oklopol> ya i assigned my foot in yer ass :\
23:45:11 <oklopol> I had to carry out a derivation manually :OO
23:45:18 <oklopol> verry omg!
23:48:02 <ihope_> Gasp!
23:50:25 <oklopol> I have to do 150 to pass the course. I know the answer when I've read the question but it takes 20 minutes to do it.
23:50:31 <oklopol> so... 50 hours
23:50:33 <oklopol> for nothing
←2007-01-14 2007-01-15 2007-01-16→ ↑2007 ↑all