←2008-01-29 2008-01-30 2008-01-31→ ↑2008 ↑all
00:00:04 <ehird> oerjan: ditto in C and every other language
00:00:09 <ehird> even lisp has that problem, with mutable cons cells
00:00:20 <oerjan> sure, none of which have type inference
00:01:19 <ehird> oerjan: what does that change?
00:01:32 <ehird> seriously, present a program of your choosing
00:01:43 <ehird> : name ... ; or : name ( before -- after ) ... ;
00:01:46 <ehird> [quoted]
00:01:51 <ehird> and make up any library routines you want to demonstate
00:02:12 <oerjan> if a stack can be passed around and mutated then it becomes untenable to decide statically whether runInStack is well-typed
00:02:47 <ehird> oerjan: i still don't quite understand. can you show a program? :p
00:04:26 <oerjan> let's say there are two copies of a stack on the top of the main stack
00:04:49 <oerjan> you do a pop on one of them
00:05:15 <oerjan> *two shared copies
00:05:19 <ehird> does coding in non-haskell break your brain? :P
00:05:20 -!- Hiato has quit (Read error: 110 (Connection timed out)).
00:05:39 <ehird> but yes
00:05:42 <ehird> with you so far
00:06:16 <oerjan> clearly that one pop has changed the types of the top two elements of the stack
00:06:37 <ehird> yes
00:06:39 <ehird> no problem so far
00:06:43 <ehird> since there's only one object
00:06:49 <ehird> continue
00:07:17 <oerjan> then you do a drop, and a runInStack with the remaining stack object
00:07:36 <ehird> so runInStack verifies the types are OK then interprets.
00:07:50 <oerjan> so runInStack needs to do dynamical type checking?
00:08:16 <ehird> : runInStack ( STACK ( -- a ) -- a ) ... ;
00:08:18 <ehird> or similar
00:08:27 <ehird> oerjan: yes.
00:08:29 <ehird> yes it does.,
00:09:36 <oerjan> hm
00:09:54 <ehird> runInStack might not even be in the library
00:09:56 <ehird> it was just an example
00:09:59 <ehird> but yeah: this is OK
00:10:22 <oerjan> it is not statically type inferrable in advance of running the program though
00:10:31 <ehird> no, because runInStack is a type of eval
00:10:47 <ehird> oerjan: one thing that is worth noting: how do we express the type of "i"
00:10:54 <ehird> [X] i => X
00:11:05 <ehird> we need a way to express a polymorphic function.. which we have: PROG
00:11:10 <ehird> but then we need to have the return value
00:11:17 <ehird> : i ( PROG -- ? ) ... ;
00:11:21 <ehird> so we need a ( -- ) form
00:11:24 <ehird> but what is it?
00:11:39 * oerjan gives up
00:11:52 <ehird> oerjan: :( what did i do this time
00:11:52 <ehird> :P
00:12:27 <oerjan> you are trying to make a language that is a mish-mash of dynamical and static types, and expecting _me_ to have any idea how to type it
00:12:41 <ehird> well, ok, oerjan, I don't want it to be dynamically typed.
00:12:59 <ehird> So let's say a stack has a well-defined type at any time.
00:13:05 * oerjan isn't sure he can do it even with static types, to be fair
00:13:09 <ehird> mm
00:13:16 <ehird> How about we ditch first-class stacks for now?
00:13:32 <ehird> oerjan: Let's concentrate on getting Value to be polymorphic, so we can have a Type and do that properly, no?
00:16:52 <ehird> :)
00:17:01 <ehird> oerjan: So you said we needed to make Value polymorphic -- how do we do that?
00:18:40 <ehird> oerjan died
00:18:42 <oerjan> i'm sorry. cannot do it.
00:19:09 <ehird> literal 'cannot' or 'i cannot'? :p
00:19:24 <oerjan> never should have said that "maybe"
00:23:31 -!- immibis_ has joined.
00:25:44 -!- RockTheDragon has quit ("This computer has gone to sleep").
00:30:26 <ehird> oerjan: aww
00:30:27 <ehird> :)
00:36:55 -!- immibis has quit (Read error: 110 (Connection timed out)).
00:44:29 -!- immibis_ has quit (Read error: 110 (Connection timed out)).
00:44:55 -!- immibis_ has joined.
01:00:28 -!- immibis_ has quit (Read error: 104 (Connection reset by peer)).
01:00:45 -!- immibis_ has joined.
01:03:20 -!- RockerMONO has quit ("gentoo VM, here i come =P").
01:13:59 -!- RockerMONO has joined.
01:26:08 -!- ehird has quit ("This computer has gone to sleep").
02:38:07 -!- Insane_ has joined.
02:38:19 -!- Insane_ has quit (Remote closed the connection).
02:54:02 -!- Insane has quit (Read error: 110 (Connection timed out)).
03:20:59 -!- immibis_ has quit ("Clap on! , Clap off! Clap@#&$NO CARRIER").
03:42:45 -!- Tritonio__ has quit (Remote closed the connection).
04:37:29 -!- Hiat1 has left (?).
05:17:24 -!- GreaseMonkey has quit ("might be back later").
06:01:44 -!- oerjan has quit ("leaving").
06:17:53 -!- adu has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:42:45 -!- adu has quit (Remote closed the connection).
11:32:00 -!- RodgerTheGreat_ has joined.
11:32:43 -!- RodgerTheGreat has quit (Read error: 104 (Connection reset by peer)).
11:57:24 -!- Tritonio_ has joined.
12:33:21 -!- Tritonio_ has quit (Read error: 113 (No route to host)).
12:47:12 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
12:49:16 -!- puzzlet has joined.
12:57:07 -!- Insane has joined.
12:57:19 <Insane> I have a pseudo-idea for a new language
12:57:56 <Slereah> Pseudo-stacks?
12:58:06 <Insane> Maybe a calculations-based language, where different operators (eg. +.*/^%) are different instructions that modify the current memory cell at the same time
12:58:24 <Insane> Like 5+3*8/2 would be a program
12:58:33 <Slereah> I think some guy proved that the Z3 computer was TC, and it was only able to do that
12:58:59 <Slereah> "It was possible to construct loops on the Z3, but there was no conditional jump instruction (although it would have been rather straightforward to insert one). Nevertheless, there is a way of implementing a universal Turing machine on a Z3 (assuming unlimited storage and zero crashing probability), as was shown in 1998."
12:59:19 <Slereah> http://www.zib.de/zuse/Inhalt/Kommentare/Html/0684/universal2.html
12:59:21 <Slereah> Thar.
12:59:22 <Insane> Hmm, no, I mean like the + instruction doubles the value at the same time, and the * instruction would print it etc.
12:59:24 <Insane> things like that
12:59:45 <Slereah> Oh.
13:01:15 <Insane> Hmm
13:01:26 <Insane> I'm just trying to invent an interesting new language :P
13:01:45 <Insane> btw
13:01:50 <Insane> Is there a language harder than malbolge?
13:01:53 <Insane> eg. more confusing
13:02:14 <Insane> I need something to write an interpreter for, now that my C# malbolge interpreter works fine
13:02:39 <Slereah> There's some suggestions to make Malbolge more difficult on the wiki IIRC.
13:04:58 -!- jix has joined.
13:32:32 <Slereah> Would this be confusing enough? A language that's based on the current time.
13:33:00 <Slereah> Instructions would just be wait and execute, and the execution would depend on the current time.
13:33:13 <Slereah> It would be quite vulnerable to lag.
13:37:28 <Insane> I guess
13:37:43 <Slereah> Also, wereprograms.
13:37:52 <Slereah> PRINTS HELLO WORLD ON FULL MOONS!
13:38:00 <Insane> reminds me of my "EFFICIENCY" prototype, a language that's so slow programmers *need* to write efficient code
13:38:04 <Insane> lol
13:38:12 <Slereah> Although for that, I guess you'd need more than just two instructions.
13:38:18 <Slereah> Like also sum conditionals.
13:38:23 <Insane> maybe
13:38:36 <Insane> ah brb, need pizza
13:39:15 <Slereah> You'd also have to time the execution time of the commands, otherwise you'd be screwed!
13:45:01 <Slereah> All I need now is a catchy name, and I can start working on it...
13:59:03 <Insane> back
13:59:16 <Insane> heh
13:59:22 <Insane> FuckTime
14:00:30 -!- ehird has joined.
14:02:13 <Slereah> Too expected.
14:02:26 <Slereah> And it won't be brainfuck comands
14:02:38 <Insane> Erm, no ChanServ in this chan btw?
14:02:46 <Slereah> I dunno
14:02:50 <Insane> lol
14:02:58 <Insane> oh wait
14:03:08 <Insane> I forgot that CahnServ doesn't have to be in the channel
14:03:15 <Insane> :P
14:03:50 <Insane> I'd recommend setting chanserv guard on
14:03:52 <Insane> but w/e#
14:05:42 <Insane> Let's make the language meep
14:06:00 <Slereah> What are you, a road runner?
14:06:17 <Insane> Noooah, I arez a bus meep meep
14:07:02 * Insane <3 lolcatz & lolcode
14:07:18 <Slereah> Considering that I want to use the commands more than once every reset of the computer clock, every 60 years or so, I think I'll need some modulo
14:14:26 <Insane> heh
14:14:47 <Insane> maybe time of day
14:15:09 <Insane> like certain programs can only function at 8 pm
14:16:18 <ehird> Insane: lolcode, insisiting on chanserv...
14:16:19 <ehird> hmph!
14:16:27 <ehird> :p
14:16:53 <ehird> some of us (well, OK, two of us) around here think lolcode's a ripoff :p
14:17:01 <Insane> off?
14:17:32 <ehird> rip - off
14:17:38 <ehird> it's not a big word, i'm sure you can handle it ;)
14:18:09 <Insane> No, I mean, what is it a ripoff of? ^^
14:18:29 <ehird> eh, various similar languages
14:18:36 <ehird> that take on internet memes and similar
14:18:41 <ehird> like l33t and the smiley ones
14:18:47 <ehird> + the hype oh god the hype
14:18:51 <ehird> the guy who made it is ridiculous
14:19:04 <ehird> he thinks he's some kind of god and made this awesome creation that everyone loves and wow aren't i awesome
14:19:18 <Insane> yay, drumming lessons and *coughing fit* church school
14:19:26 <Insane> See you guys in 5 hours
14:19:30 <Slereah> Bai.
14:19:35 -!- Insane has left (?).
14:19:38 <ehird> church 'school'
14:19:59 <Slereah> Involves a lot of getting on your knees, wink wink
14:20:05 <ehird> hah
14:21:21 <Slereah> Hm. Maybe I could do some multiple clocks for clock operations.
14:21:35 <Slereah> For no obvious purpose, but who knows!
14:22:02 <ehird> : dip (a' (a' -- b') -- b') ... ;
14:23:54 <Slereah> Maybe... some sort of multiple clocks memory
14:23:56 <Slereah> Or something.
14:24:11 <Slereah> Damn. I need some Gary Gum.
14:27:01 -!- pikhq has quit (Read error: 110 (Connection timed out)).
14:27:16 -!- helios24 has joined.
14:37:31 -!- pikhq has joined.
14:44:04 -!- Hiato has joined.
14:44:17 <Hiato> Guess who's back :P
14:45:21 <ehird> not hiato
14:45:23 <ehird> ?
14:45:50 <Hiato> damn, was I too obvious...
14:53:16 <RodgerTheGreat_> Slereah: you'd probably need some anti-garry gum, too.
14:54:33 <ehird> anti garrity gum
14:54:38 <ehird> It's japanese.
14:55:15 <RodgerTheGreat_> ehird: Garry Gum is most definitely british
14:55:52 <RodgerTheGreat_> http://www.youtube.com/watch?v=MiMWJ1xBo8w
14:55:55 <ehird> RodgerTheGreat_: 'anti garrity gum'
14:55:58 <ehird> say it out loud
14:56:55 <Slereah> Look around you even produced a music video! http://www.youtube.com/watch?v=g09gOh2qwug
14:57:10 <Slereah> It's quite good.
14:57:29 <RodgerTheGreat_> interesting
14:57:37 <ehird> that's from the Computer episode
14:57:38 <ehird> iirc
14:57:46 <Slereah> Music episode.
14:57:54 <ehird> ah
14:57:58 <ehird> well, a computer did it
14:58:01 <Slereah> Though the music was produced by a music-writing computer!
14:59:47 <RodgerTheGreat_> Look around you: computers! http://www.youtube.com/watch?v=diD2lr_BGcU
14:59:58 <ehird> i love being british
14:59:58 <ehird> :P
15:00:20 <Slereah> So far, my idea's this. Imagine a Turing machine. Only instead of cells, you have clocks (although the clocks must actually be created by the program).
15:00:48 <Slereah> The program either waits a second, or execute the value of the clock, modulo (number of instructions)
15:03:24 <Slereah> Commands being the creation (or possibly just reseting, if I chose that they exist from the beginning) or a clock, input, output mod 256, changing clock, and so on
15:03:51 <Slereah> Probably some special clock for the computer clock, too.
15:07:53 <RodgerTheGreat_> I have an immense urge to name a computer "Bournemouth"
15:08:10 <ehird> RodgerTheGreat_: that's actually a good idea
15:08:10 <Slereah> Will it be able to escape a steel cage?
15:08:14 * ehird sets his hostname to that
15:08:28 <ehird> although bournemouth doesn't really suite an imac
15:08:31 <RodgerTheGreat_> Slereah: if it's powerful enough
15:09:38 -!- timotiis has joined.
15:13:30 <Slereah> Why is there an Esco link in the Byter article?
15:13:42 <Slereah> It doesn't even pretend to interpret it as far as I know
15:13:47 <ehird> beacuse the esco people are annoying spammers
15:13:48 <ehird> :)
15:14:10 <ehird> who also can't write a decent interpreter for even Brainfuck
15:14:36 <ehird> http://esco.sourceforge.net/?page=elang yep, they don't even claim to interpret it
15:14:38 <ehird> gah
15:14:57 <ehird> ' The name of the language is generally not capitalized, although it is a proper noun.' they fucking capitalize it in the same page
15:15:00 <ehird> how dumb have you got to be
15:15:01 <ehird> >_<
15:15:43 <RockerMONO> hi
15:15:49 <RockerMONO> ehird: the wikipedia page for brainfuck?
15:16:01 <ehird> RockerMONO: no
15:16:04 <ehird> esco's carppy site
15:16:13 <RockerMONO> ah, brainfuck has that same quote =P
15:16:18 <RockerMONO> *the brainfuck wikipedia page
15:16:38 <ehird> its copied and pasted
15:17:05 <RockerMONO> heh
15:17:09 <RockerMONO> thing that bugs me...
15:17:20 <RockerMONO> "...and is not suitable for practical use." <-- i made an IRC bot in it
15:17:26 <ehird> no
15:17:27 <ehird> you didn't
15:17:29 <RockerMONO> (using a custom dialect)
15:17:32 <ehird> exactly
15:17:33 <ehird> and
15:17:39 <ehird> that's not 'practical use'
15:17:46 <ehird> just as much as the mandelbrot program is
15:17:57 <Slereah> What is practical use?
15:17:59 <RockerMONO> define 'practical use'?
15:18:03 <RockerMONO> damn Slereah beat me
15:18:14 <ehird> an illdefined thing but mainly involves 'writing serious stuff'
15:18:30 <ehird> serious not being like 'I AM SERIOUS GRRR' but things that aren't just amusing toys to play around with
15:18:34 <ehird> ... like an IRC bot written in BF
15:18:49 <RockerMONO> ... well the irc bot can parse brainfuck too =P
15:18:54 <RockerMONO> s/parse/interpret/g
15:18:54 <Slereah> I have a moustache, isn't it serious enough?
15:19:42 <RockerMONO> issue w/ the bot is it's tendency for the socket to break and send the bot into 50% CPU usage because it isn't using a blocking socket (which slows the loop) >.>
15:20:36 <RockerMONO> i added 3 commands in my dialect of brainfuck... need to work on the connection itself though (that actually requires a string =P)
15:21:30 <Slereah> What's the dialect?
15:22:18 <RockerMONO> Slereah: i haven't decided what to call it yet, i made it myself, starting w/ a simple brainfuck interpreter me and danopia wrote in PHP (that in itself is enough to make me laugh:)
15:22:27 <ehird> in PHP
15:22:27 <ehird> :|
15:22:40 <RockerMONO> ehird: dont piss yourself yet, i'm working on one in C++
15:22:41 <ehird> RockerMONO: do you even know any non-BF esolangs?
15:22:41 <RockerMONO> =P
15:22:45 <ehird> uh
15:22:47 <ehird> thats just as bad.
15:22:55 <Slereah> What are the differences with BF?
15:22:59 <RockerMONO> ... ok, and no i dont
15:23:04 <RockerMONO> Slereah?
15:23:08 <ehird> RockerMONO: typical.
15:23:12 <Slereah> You know, the dialect.
15:23:15 <ehird> what you have done is common and uninteresting.
15:23:33 <RockerMONO> ehird: woohoo thanks for being an ass?
15:23:54 <Slereah> Well, 7 commands. Let's see what I can does with it.
15:24:01 <tejeez> does anyone know a esolang that could be used for anything serious? ;)
15:24:24 <Slereah> tejeez: Theoretical purpose?
15:24:30 <Hiato> ACRONYM, for serious frustration ;)
15:25:15 <ehird> RockerMONO: it's true.
15:25:29 <ehird> tejeez: 'xactly, that's the antiesolang
15:25:45 <RockerMONO> ehird: yea but you dont see anyone else being an ass about it
15:26:16 <Slereah> My ass is, but that's how he's always like
15:26:27 <ehird> i wasn't being an ass.
15:26:40 <ehird> maybe you should be more resistant to criticism
15:27:04 <Slereah> Hm. Maybe Clockpunk for the name.
15:27:21 <RockerMONO> ehird: maybe theirs no reason for criticizing someone messing around because they have nothing better to do at the moment, hm?
15:29:27 <RockerMONO> criticizing someone for messing around in something they just found not even 3 days ago is about as useful as me dealing with this when i dont even need to be in this channel
15:29:34 -!- RockerMONO has left (?).
15:30:39 <ehird> sensitive.
15:30:50 <Slereah> And nothing of
15:30:54 <Slereah> def movehead(w, h):
15:30:58 <Slereah> if w=="LE":
15:31:02 <Slereah> a=1
15:31:06 <Slereah> b=0
15:31:10 <Slereah> if w=="RI":
15:31:14 <Slereah> a=-1
15:31:18 <Slereah> b=1
15:31:30 <Slereah> if h==b:
15:31:33 <ehird> whoa
15:31:33 <ehird> whoa
15:31:34 <Slereah> h=h+a
15:31:34 <ehird> whoa
15:31:35 <ehird> PASTEBIN
15:31:38 <Slereah> elif h>0 and h%2==1:
15:31:39 <ehird> :|
15:31:42 <ehird> pastebin!!
15:31:42 <Slereah> h=h+(2*a)
15:31:42 <Slereah> elif h>=0 and h%2==0:
15:31:42 <Slereah> h=h-(2*a)
15:31:42 <Slereah> return h
15:31:42 <Slereah> Damn, wrong buttin
15:32:19 <Slereah> When I say "wrong button", it means I didn't intend to paste it!
15:34:03 <ehird> that came AFTER you said everything
15:34:08 <ehird> and way after i told you to stop
15:34:52 <Slereah> Or did it?
15:35:21 <ehird> yes
15:35:24 <ehird> [15:31] <Slereah> h=h-(2*a)
15:35:24 <ehird> [15:31] <Slereah> return h
15:35:24 <ehird> [15:31] <Slereah> Damn, wrong buttin
15:35:24 <ehird> [15:32] <Slereah> When I say "wrong button", it means I didn't intend to paste it!
15:37:01 <Slereah> Strange.
15:37:18 <ehird> nos
15:37:18 <ehird> no
15:37:20 <ehird> that's how irc works
15:37:34 <Slereah> [16:30] <Slereah> Damn, wrong buttin
15:37:37 <Slereah> [16:31] <ehird> whoa
15:37:41 <Slereah> [16:31] <ehird> whoa
15:37:46 <Slereah> [16:31] <ehird> whoa
15:37:49 <Slereah> [16:31] <ehird> PASTEBIN
15:37:50 <Slereah> [16:31] <ehird> :|
15:37:50 <Slereah> [16:31] <ehird> pastebin!!
15:37:50 <Slereah> [16:32] <Slereah> When I say "wrong button", it means I didn't intend to paste it!
15:37:50 <Slereah> Time paradox?
15:37:55 <ehird> no
15:37:56 <ehird> that's how irc works
15:37:59 <Slereah> How!
15:38:26 -!- RodgerTheGreat_ has changed nick to RodgerTheGreat.
16:21:08 <ehird> hmm
16:21:11 <ehird> i want a reason to write something in C
16:25:51 <Slereah> I currently have nuclear missiles directly pointed at your house.
16:26:04 <Slereah> They will be launched if you do not program in C.
16:26:26 <tejeez> time paradoxes are quite common in irc
16:29:20 <ehird> Slereah: =(
16:29:25 <ehird> BUT SRSLY
16:29:47 <Slereah> I ARE SERIOUS
16:30:20 <Slereah> Code, or feel the power of my dong!
16:30:23 <Slereah> That is, http://en.wikipedia.org/wiki/Taepodong-1
16:32:40 <puzzlet> seems that you killed the whole channel
16:32:52 <Slereah> "The rocket's first stage is a Nodong-1 IRBM."
16:33:06 <Slereah> It's hard to take the nuclear threat that seriously.
16:33:51 <puzzlet> me neither, it's also funny for native Koreans
16:34:10 <RodgerTheGreat> especially when it has an inferior steering mechanism
16:40:02 <ehird> RodgerTheGreat: Slereah: puzzlet: people who are awake:
16:40:16 <ehird> http://pastebin.ca/raw/880225 what do you think of my iteration/recursion thingy?
16:40:29 <RodgerTheGreat> what language is this?
16:40:30 <ehird> : factorial ( INT -- INT ) [zero?] [1] [1 -] [*] iter-rec ;
16:40:34 <ehird> RodgerTheGreat: mine
16:40:34 <ehird> :P
16:40:47 <ehird> ( before -- after ) is a simple stack diagram, it's a function type
16:41:16 <ehird> if you look at my factorial, you can see the correspondence with my factorial code
16:41:29 <ehird> according to oerjan it's Haskell's iterate+takeWhile+foldr all in one
16:41:35 <ehird> and unfoldr can be built from it, apparently
16:44:28 * Slereah is trying a partial hello world on Clockpunk
16:44:41 <Slereah> Partial because it will already take two minutes to work.
16:47:15 <Slereah> Well, the printing function works okay at least.
16:52:13 <Slereah> Maybe I should work in 0.1 seconds.
16:52:57 -!- Hiato has quit (Read error: 110 (Connection timed out)).
16:55:01 <Slereah> Much better.
16:57:24 <Slereah> Ah yes, the reason why I chose 1 second.
16:57:36 <Slereah> 0.01 second makes the execution time matter.
16:59:06 <Slereah> Well, let's try with 1 and go from there.
17:04:08 -!- Hiato has joined.
17:09:35 <Slereah> It seems that the instruction time quickly matters.
17:14:41 <ehird> try 0.1, not 0.01
17:14:47 <Slereah> I tried.
17:14:53 <Slereah> I also tried 1 second.
17:15:26 <Slereah> I should find out how long each instruction takes.
17:15:47 <Slereah> It might verily be the slowest and least portable language!
17:19:34 -!- puzzlet_ has joined.
17:31:20 <ehird> :(
17:31:33 <ehird> it seems c has absolutely no use!
17:31:42 <Slereah> http://pastebin.ca/raw/884902
17:32:06 <Slereah> That's what Hello, world! would look like, assuming that the symbols are evaluated in 0 seconds.
17:32:37 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
17:34:28 <Slereah> Although I wonder if I can actually take advantage of the execution time.
17:34:38 <Slereah> To reduce the number of -'s.
17:36:23 -!- puzzlet_ has changed nick to puzzlet.
17:38:27 <ehird> puzzlet: you're the one who has loads of logs you can grep right?
17:40:28 <puzzlet> i'm the one who seems to, but no, i don't log things
17:43:02 <ehird> was it timotiis then?
17:43:15 <ehird> someone was fast with the logs when i asked about my TC regexp conversation with ais523
17:43:28 <timotiis> ehird: that wasn't me, but I can look up who it was for you
17:43:54 <timotiis> or not, I don't log this place apparently
17:44:41 <ehird> it was: puzzlet or sekhmet then
17:44:44 <ehird> i dunno
17:44:46 <ehird> they look right
17:44:55 <ehird> i think puzzlet really..
17:45:07 <puzzlet> i'd use google
17:45:53 <ehird> hm ok
17:46:03 <ehird> nope
17:46:12 <sekhmet> ehird: I do
17:46:17 <sekhmet> ehird: What do you desire?
17:46:40 <ehird> sekhmet: hehe, my conversation with faxasthia about concise lisp, and i ought to set up a bouncer so all my logs are in one place..
17:46:48 <ehird> :)
17:47:05 <sekhmet> ehird: Actually I've gotta split, I'm late as it is
17:47:19 <sekhmet> I'll hook you up when I get back (in N hours, where N>2)
17:47:38 <ehird> alright
17:47:40 <ehird> bye :)
18:00:16 <ehird> google isn't helpful ;(
18:00:43 -!- Corun has joined.
18:00:47 <Slereah> THE GOOGLE, THEY DO NOTHING
18:18:09 <Corun> THE NOTHING, THE DO GOOGLE
18:18:54 -!- Corun has quit ("google...").
18:25:09 <AnMaster> <Slereah> That's what Hello, world! would look like, assuming that the symbols are evaluated in 0 seconds.
18:25:14 <AnMaster> what language is that?
18:26:00 <AnMaster> ehird, I do log
18:26:05 <AnMaster> around when was this
18:26:11 <AnMaster> as I rotate logs once / month
18:26:27 <AnMaster> and place ones older than 3 months on cd compressed
18:27:04 <ehird> well
18:27:05 <ehird> kind of recent?
18:27:11 <AnMaster> last 3 months?
18:27:12 <ehird> either in the past 3 months, or the 3 months before that
18:27:28 <AnMaster> I'm not sure I was in this channel 6 months ago
18:27:33 <AnMaster> what word to grep for?
18:28:33 <AnMaster> ehird, ?
18:28:40 <Hiato> Slereah, I know this is delayed, but could you please paste the pastebin paste in nopatse (that was allot of paste ;) ) because Pastebin comes up as blank in my web browser. You are welcome to deny this request :P
18:28:55 -!- Insane has joined.
18:30:44 <AnMaster> ehird, ah "concise lisp" was it? well I found something from this month's log
18:31:13 <ehird> this month? hm maybe
18:31:19 <AnMaster> http://rafb.net/p/kiZFVq83.html
18:31:26 <AnMaster> ehird, tell me if you want more context
18:31:38 <AnMaster> emacs++ btw
18:32:17 <ehird> hm
18:32:21 <ehird> what's emacs got to do with it? :p
18:32:31 <AnMaster> jan 15 02:11:10 <ehird`> faxlore: obviously Concise Lisp will come with its own emacs-alike written in Concise Lisp ;)
18:32:32 <AnMaster> that
18:32:32 <AnMaster> ?
18:32:35 <ehird> ah
18:32:36 <ehird> yeah :D
18:32:50 <AnMaster> ehird, anyway was this the convo you wanted?
18:32:54 <ehird> yes, thank you
18:32:54 <ehird> :)
18:32:56 <AnMaster> more context?
18:33:24 <ehird> yeah, it spanned pretty much all jan 15
18:33:34 <AnMaster> hm can I pastebin that much
18:33:56 <AnMaster> ehird, well the times are in UTC+2
18:33:58 <AnMaster> eh
18:33:59 <AnMaster> +1
18:34:00 <AnMaster> actually
18:34:10 <AnMaster> CET anyway
18:34:30 <AnMaster> ehird, so still all of the 15th?
18:35:03 <AnMaster> $ grep -E '^jan 15' FreeNode-#esoteric.log | wc -l 1288 <-- hrmm
18:35:05 <ehird> i think so
18:36:27 <AnMaster> http://rafb.net/p/LYZPUZ63.html
18:37:45 <AnMaster> ehird, useful? want more?
18:38:32 <ehird> i think that's all
18:38:32 <AnMaster> ehird, also tell me: what is "concise lisp"?
18:38:55 <ehird> AnMaster: my ridiculous dialect of lisp, created when i saw how shitty arc was going to be :P
18:39:05 <AnMaster> arc?
18:39:13 <ehird> eh, you aren't the best person to talk about this to
18:39:13 <ehird> :-)
18:39:16 <AnMaster> ehird, btw: these logs are from erc :)
18:39:18 <ehird> PG's terrible dialect of lisp
18:39:20 <AnMaster> emacs irc client
18:39:21 <ehird> AnMaster: aieeee
18:39:25 <AnMaster> ehird, what?
18:39:31 <ehird> concise lisp's editor, though emacs-like, will certainly have no irc client ;)
18:39:32 <AnMaster> erc rocks
18:39:47 <AnMaster> ehird, aww? but I can check my mail in it I hope?
18:39:52 <AnMaster> and play dunnet?
18:40:51 <ehird> AnMaster: hm, you can check your mail solely on the provision that you're only doing it to edit outgoing mail in it
18:40:52 <ehird> :-)
18:41:02 <AnMaster> heh?
18:41:05 <ehird> dunnet... hm, maybe if i get bored ;)
18:41:09 <AnMaster> and browse the web?
18:41:20 <AnMaster> ehird, well may I'll code extensions to it that does irc then!
18:41:25 <AnMaster> if I get bored
18:41:28 <AnMaster> GNU emacs++
18:41:30 <ehird> AnMaster: okay ;)
18:41:48 <ehird> yeah well concise lisp is a lot saner than emacs
18:41:50 <AnMaster> ehird, anyway how does it differ from normal lisp?
18:41:54 <ehird> for instance it actually has lexical scope
18:41:54 <ehird> xD
18:42:06 <ehird> AnMaster: tidied up, some new stuff, and really concise shit
18:42:10 <ehird> (def accgen [{++ _}])
18:42:22 * AnMaster mostly codes in C (-std=c99 -Wall -Werror -pedantic) or bash in fact
18:42:25 <ehird> ^^ i got tired of paul graham saying how great arc was because the accumulator generator was so short in it
18:42:33 <AnMaster> I'm not very good at elisp
18:42:43 <AnMaster> just did a bit to customize erc with a few custom hooks
18:42:47 <ehird> you don't want to be elisp is horrid
18:42:50 <ehird> it's dynamically scoped
18:42:51 <ehird> :|
18:43:01 <AnMaster> hm?
18:43:31 <ehird> AnMaster: if you define a variable X in function F that calls function G, in G, X refers to F's definition
18:43:34 <ehird> so:
18:43:45 <AnMaster> ah, sounds like local variables in bash
18:43:48 <AnMaster> they work that way
18:43:56 <ehird> (defvar foo 2) (defun f () (let ((foo 3)) (g))) (defun g () foo)
18:43:59 <ehird> (f) ==> 3
18:44:06 <ehird> which, of course, is just ASKING for bugs
18:44:14 <ehird> since what if it's in a long away file, several places up the call stack?
18:44:35 <ehird> lexical scoping is much better
18:44:36 <AnMaster> ehird, well a function local variable in bash is accessible in any functions called from the function that declared it
18:44:41 <ehird> the example there would return 2
18:44:44 <AnMaster> I abused that a few times when coding in bash
18:44:58 <ehird> because the scoping is inferrable entirely form the source text
18:45:01 <ehird> thus: lexical
18:45:01 <AnMaster> like "return by variable name to avoid slow subshells" in my irc bot in bash (http://envbot.org)
18:45:02 <AnMaster> !
18:45:04 <EgoBot> Huh?
18:45:14 <AnMaster> using printf -v of bash 3.1 or later XD
18:46:41 <AnMaster> ehird, :)
18:47:56 <ehird> AnMaster: here's how superior concise lisp is when compared to scheme:
18:47:57 <ehird> jan 15 01:14:11 <ehird`>(def acc [{++ _}])
18:47:57 <ehird> jan 15 01:14:24 <ehird`>(define (acc n) (lambda (x) (set! n (+ n x)) n))
18:48:15 <AnMaster> which is which?
18:48:26 <ehird> former is concise lisp
18:48:30 <ehird> thus, concise
18:48:37 <AnMaster> looks like functional brainfuck
18:48:56 <AnMaster> partly
18:49:03 <AnMaster> gopher://blubb.ch/1/software/fbf
18:49:11 <AnMaster> very interesting brainfuck variant
18:49:26 <AnMaster> I got a version that fixes some tracebacks locally, a sec
18:49:40 <AnMaster> ehird, gopher://inspircd.dyndns.org/1/Software/fbf
18:50:10 * AnMaster waits for comments on the choice of protocol
18:50:18 <ehird> nah
18:50:23 <ehird> i like gopher! (note: lie ;))
18:50:39 <AnMaster> hahah
18:50:45 -!- Tritonio_ has joined.
18:50:47 <AnMaster> ehird, anyway it works in firefox
18:50:50 <AnMaster> or lynx
18:50:56 <AnMaster> don't try wget or curl
18:51:35 <AnMaster> ehird, anyway! what do you think of it?
18:51:38 <AnMaster> fbf I mean
18:52:40 -!- chuck has quit (Remote closed the connection).
18:52:45 -!- chuck has joined.
18:53:12 <Tritonio_> fbf?
18:54:16 <AnMaster> gopher://blubb.ch/1/software/fbf (and my bug fixed version at: gopher://inspircd.dyndns.org/1/Software/fbf )
18:55:02 <AnMaster> Tritonio_, :)
18:57:22 <Tritonio_> http://inshame.blogspot.com/search/label/My%20Progs%3A%20FuckBrainfuck
18:59:34 <AnMaster> Tritonio_, hm? this is not "fuckbrainfuck" it is "functional brainfuck"
18:59:40 <Tritonio_> i know
18:59:48 <Tritonio_> :-)
19:03:51 <AnMaster> Tritonio_, so they are different things
19:04:16 <AnMaster> Tritonio_, do you provide the source in a easier to read online format than zip?
19:04:25 <Tritonio_> not exactly. the both compile to brainfuck and support functions...
19:04:41 <AnMaster> Tritonio_, I don't want to download it to see it so..
19:04:45 <Tritonio_> no. just download the zip and open the Fuckbrainfuck.lua file
19:04:50 <Tritonio_> sorry
19:04:50 <AnMaster> lua? eww
19:04:54 <AnMaster> no way then
19:04:59 <Tritonio_> :-P
19:05:27 <AnMaster> fbf (and that refers to functional brainfuck, FBF to your one) is at least C
19:06:13 <Tritonio_> so?
19:08:13 <Tritonio_> is there a way to create [] blocks with unbalanced <> ?
19:09:09 <oklopol> in what?
19:09:22 <Tritonio_> fbf
19:10:33 <AnMaster> Tritonio_, not sure what you mean?
19:10:47 <Tritonio_> some thing like this [->]
19:11:24 <AnMaster> should compile in brainfuck, however won't it result in an endless loop?
19:11:38 <Tritonio_> not necessarily
19:11:50 <Tritonio_> it might find acell with value 1 and stop there
19:11:54 <AnMaster> if the program contains only that then yes
19:13:03 <AnMaster> Tritonio_, anyway, fbf is functional, purely functional apart from input routine I think
19:13:43 <Tritonio_> what do you mean? (apart for the input routine)
19:14:16 <AnMaster> that a function using the input routine obviously depends on something else than it's parameters
19:14:33 <AnMaster> eh
19:14:35 <AnMaster> statement*
19:14:45 <AnMaster> as in ,
19:15:49 <Tritonio_> O_o
19:15:55 <AnMaster> ?
19:16:10 <Tritonio_> i still don't get what you're talking about... :-(
19:16:37 <Tritonio_> how do you input data? you simply use the , in a code block right?
19:16:39 <AnMaster> any function using the opcopde/statement/whatever for input (,) in fbf will depend on something else than just the parameters to said function
19:17:09 <Tritonio_> and why is that?
19:17:11 <oklopol> AnMaster: if you were talking about bf in general, you need to be able to have unbalanced <>'s
19:17:13 <AnMaster> therefore they are not pure functions
19:17:28 <oklopol> not sure if the semantics are different in your languages
19:17:42 <Tritonio_> read(1) { $1, }
19:17:44 <AnMaster> oklopol, "mine" is wrong, I didn't code it, I mearly fixed a few bugs in it
19:17:45 <Tritonio_> isn't this ok?
19:17:53 <AnMaster> oklopol, gopher://inspircd.dyndns.org/1/Software/fbf
19:18:05 <AnMaster> Tritonio_, sure is, but it isn't a pure function
19:18:22 <Tritonio_> what is it then?
19:18:32 <AnMaster> http://en.wikipedia.org/wiki/Functional_programming#Pure_functions
19:21:10 <Tritonio_> oh ok. i got it now.
19:30:40 <AnMaster> oklopol, so is fbf turing complete?
19:31:12 <Tritonio_> can you implement tables on it?
19:31:23 <Tritonio_> you will need unbalanced <> to do so
19:31:50 <Tritonio_> in brainfuck you can and it's turing complete. so maybe this one is not?
19:32:23 <oklopol> AnMaster: it is not if you have matched <>'s with normal bf semantics, but i'm assuming you have something more
19:32:42 <oklopol> unless, you have bignums, then it prolly is
19:33:48 <AnMaster> oklopol, I gave a link above
19:34:02 <oklopol> yes, but my screen does not have room for firefox
19:34:21 <AnMaster> oklopol, it compiles to brainfuck, so it depends on the interpreter then running that brainfuck code
19:34:22 <oklopol> watching friends
19:34:28 <AnMaster> it could have bignums
19:34:40 <AnMaster> "friends"?
19:34:44 <AnMaster> what friends?
19:34:59 <oklopol> well, anyway, a lot of stuff is very hard to do without unbalanced <>'s
19:34:59 <AnMaster> is it a movie or something?
19:35:18 <oklopol> because you have to have infinite data structures in a fixed number of cells
19:35:25 <oklopol> it's just friends episodes
19:35:55 <AnMaster> "friends" is a tv series or something?
19:36:10 <oklopol> basically, the only feasible way is to use modulus for stuff like lists.
19:36:16 <oklopol> friends is a tv series, yes
19:36:36 <AnMaster> oklopol, hm? fixed number of cells? no, not really, depends on the interpreter
19:36:52 <AnMaster> some doesn't limit except the machine byte size
19:36:56 <oklopol> ...?
19:36:56 <AnMaster> eh
19:37:01 <AnMaster> machine memory size*
19:37:09 <AnMaster> if you mean number of data cells
19:37:12 <oklopol> i mean
19:37:16 <oklopol> lessay you want a stack
19:37:20 <AnMaster> yep
19:37:45 <oklopol> the easy way is to have the stack as numbers on the tape
19:37:48 <oklopol> so that going right is pushing
19:37:52 <oklopol> and going left is popping
19:38:00 <oklopol> this is impossible with unbalanced <>'s
19:38:10 <AnMaster> hm
19:38:26 <AnMaster> but do you need to have a stack to be turing complete?
19:38:36 <oklopol> you have to store the stack as a*N^0 + b*N^1 + c*N^2 etc.
19:38:49 <oklopol> where a, b and c are the values on the stack
19:38:55 <Tritonio_> AnMaster, yeap
19:38:56 <oklopol> and N is the maximum size of one element
19:39:06 <oklopol> AnMaster: lol :P
19:39:15 <oklopol> you need to be able to simulate a stack, yes :D
19:39:17 <AnMaster> couldn't you store a value to identify how long the stack is?
19:39:23 <oklopol> err
19:39:25 * AnMaster ponders
19:39:28 <AnMaster> actually no
19:39:49 <AnMaster> oklopol, however as I said, I didn't make fbf, I just took the software and fixed a few bugs
19:40:02 <AnMaster> maybe I'll extend it if it isn't turing complete
19:40:23 <oklopol> i'm just saying you need unbalanced <>'s or you'll end up simulating a tape with a bignum using modulus.
19:41:09 <oklopol> nothing wrong with that, but i don't think we need another deathmode for brainfuck :-)
19:41:19 <AnMaster> "deathmode"?
19:42:01 <oklopol> my inversion of wimpmode
19:42:09 <AnMaster> wimpmode meaning?
19:42:11 <oklopol> some others have used it, so i'm using it nowadays
19:42:15 <oklopol> umm
19:42:23 <oklopol> simplification of a language that's otherwise hard
19:42:34 <AnMaster> oh yes this makes the language simpler indeed
19:42:37 <oklopol> like adding lambdas to unlambda or something
19:42:40 <AnMaster> ah no
19:42:45 <oklopol> it makes some stuff easier, yes
19:42:50 <AnMaster> just making it functional :)
19:43:03 <oklopol> but for anything complicated, you very much need unbalanced <>'s.
19:43:11 <oklopol> functional? first-class functions?
19:43:18 <AnMaster> oklopol, see the link
19:43:23 <oklopol> :\
19:43:28 <oklopol> do i have to...
19:43:37 <AnMaster> yes!
19:43:41 <AnMaster> but indeed no higher order functions.
19:44:09 <oklopol> then i won't see it, many have added *procedures* to brainfuck and compiled to brianfuck
19:44:10 <oklopol> :)
19:44:31 <Insane> yay my telnet-based netbrainfuck interpreter works
19:44:35 <Insane> Who wants the C# source? ^^
19:44:42 <AnMaster> Insane, how many files?
19:44:45 <Insane> one
19:44:52 <Insane> heh
19:44:54 <AnMaster> oklopol, but well actually it shouldn't be hard to add higher order functions
19:45:01 <oklopol> no?
19:45:02 <AnMaster> Insane, pastebin it?
19:45:07 <Insane> did
19:45:14 <AnMaster> Insane, and post link?
19:45:22 <Insane> I also have a speciallized brainfuck C# class for use in embedded applications (non-console environments with custom i/o)
19:45:28 <oklopol> AnMaster: it's tons harder than making non high-order functions
19:45:31 <Insane> http://insane.pastebin.org/
19:45:34 <Insane> Latest three
19:45:42 <Insane> are (in order) malbolge, netbrainfuck, brainfuck
19:45:46 <AnMaster> oklopol, hm depends
19:46:01 <AnMaster> oklopol, I could code it in bash, not sure if I could mange it in C
19:46:07 <oklopol> well, you have to carry around some kind of pointers to functions
19:46:15 <Insane> Btw, I think I'm the first person ever on planet earth to write a malbolge interpreter in C#
19:46:45 <AnMaster> oklopol, as long as there is no recursion heh
19:46:54 <oklopol> Insane: yes, and you are also the first person ever to say that exact sentence, prolly.
19:47:07 <oklopol> AnMaster: lol :)
19:47:14 <AnMaster> oklopol, however that is needed
19:47:40 <oklopol> recursion in the source code can usually be just translated to imperative stuff
19:47:55 <oklopol> first-class functions allow for much harder stuff to compile.
19:48:07 <AnMaster> Insane, heh if only non-printable chars wasn't such a pain in bash I would do it just to prove it!
19:48:17 <oklopol> you can, after all, just have a list of functions, and randomize which ones to call in which order.
19:48:37 <AnMaster> oklopol, heh that would be uh, undefined
19:48:43 <oklopol> 8|
19:48:55 <AnMaster> the result I mean in some cases
19:49:08 <oklopol> i don't see what you mean
19:49:09 <AnMaster> not if they are pure functions that do not call each other of course
19:49:13 <Tritonio_> AnMaster, did you say that it support's first class functions?
19:49:34 <oklopol> it does not
19:49:41 <oklopol> asdf, i'll take a look
19:50:16 <AnMaster> Tritonio_, afraid not as it just translates to brainfuck, and brainfuck is not self modifying
19:50:28 <oklopol> anyway, making high-order functions compile into brainfuck would prolly require you to write an interpreter, and encode the interpreted prog in the source
19:50:40 <AnMaster> oklopol, ahhaha
19:50:42 <AnMaster> indeed
19:50:47 <oklopol> it's *not* trivial to compile, unlike procedures, where you can just copy and paste
19:51:00 <AnMaster> oklopol, yes, extreme inlining!
19:51:04 <Tritonio_> it would be nice to see an x86 emulator in brianfuck...
19:51:11 <Tritonio_> not an emulator
19:51:22 <AnMaster> x86_64!
19:51:23 <Tritonio_> but something that could run that assembly...
19:51:27 <oklopol> *accumulator
19:52:06 <tejeez> emulator for something simpler that can be more easily used to do the x86 emulation
19:52:18 <Tritonio_> like what?
19:52:29 <tejeez> i don't know
19:52:30 <AnMaster> hm
19:52:43 <AnMaster> what about a brainfuck -> bash translator
19:52:57 <AnMaster> considering I already coded a brainfuck interpreter in bash heh
19:53:35 <AnMaster> actually it wouldn't be too hard, you just need to map stuff like [ to a while loop, then have an array for the memory hm
19:53:45 <AnMaster> yes you could "compile" it into bash quite easily
19:54:02 <oklopol> well, duh :P
19:54:05 <AnMaster> what would be interesting would be optimzing it :)
19:54:14 <tejeez> a brainfuck -> c translator is very easy
19:54:17 <AnMaster> as in getting rid of < and > when possible
19:54:34 <AnMaster> to just access the interesting variable right away
19:54:35 <Tritonio_> that's already done by many people
19:54:42 <AnMaster> but any to bash!?
19:54:54 <Tritonio_> no but it's almost the same code
19:54:55 <oklopol> optimizations, sadly, are pretty much the same :)
19:54:56 <AnMaster> that is the interesting question! :P
19:55:05 <oklopol> Tritonio_: get the fuck off my head?!?
19:55:16 <Tritonio_> oklopol, ??
19:55:32 <oklopol> you said twice what i was just about to say
19:55:36 <Tritonio_> lol
19:55:39 <oklopol> although i didn't say the first one, it seems
19:55:47 <oklopol> so you didn't notice that
19:55:53 <oklopol> anyway, need to do school stuff :\
19:55:54 <oklopol> ->
19:56:02 <AnMaster> Insane, http://insane.pastebin.org/16135 <-- eww, why on earth do you use vb!?
19:56:13 <Insane> I don't
19:56:15 <Insane> Easy enough
19:56:30 <Insane> Just pointing out the difference in two overloads to a different programmer
19:56:36 <Insane> That uses VB
19:56:40 <Insane> :P
19:56:44 <Insane> Although I detest it myself
19:56:58 <Insane> Heh
19:57:02 <Insane> I have about 20 different pastebins
19:57:06 <Insane> some on .org and some on .com
19:57:09 <Insane> ^^
19:57:22 <Tritonio_> what's wrong with VB? it's easy...
19:57:32 <Insane> which is a bummer because one of the two always seems to be down, and I need .com right now
19:57:38 <Insane> Tritonio_, C# is easier
19:57:41 <Insane> Than Vb.NET
19:57:45 <AnMaster> Insane, just use rafb
19:57:45 <Tritonio_> :-P
19:57:46 <AnMaster> :)
19:57:47 <Tritonio_> oh
19:57:50 <AnMaster> it works well
19:57:53 <Insane> Naw, brainfuck pwns
19:58:10 <Insane> I coded an irc bot in netbrainfuck
19:58:22 <Tritonio_> i don't know about .NET. vb6 was easy anyway
19:58:48 <Insane> meh
19:58:53 <Insane> the syntax is much too bloated
19:59:04 <AnMaster> like C++ then
19:59:09 <Insane> { and } for example are much easier to understand than "Start" and "End"
19:59:30 * AnMaster prefers pure C99 to C++ because of bloated syntax, or C#
19:59:50 <Tritonio_> i hate {}. They are angly when mixed with normal text.
20:00:00 <Insane> Not when formatted well
20:00:01 <Insane> lol
20:00:02 <oklopol> i hate keywords
20:00:46 <Tritonio_> hey come on. an "end" is realy nice to close something. And after a while you see the keywords easily
20:01:00 <Tritonio_> let alone using syntax highlighting...
20:01:38 <Tritonio_> anyway it's just personal taste....
20:01:38 <Insane> It's still harder to skim through and quickly navigate than C#, esp. without syntax highlighting ^^
20:01:40 <Insane> Yeah
20:01:46 <Insane> Let's leave the matter at rest
20:01:51 <Tritonio_> :-)
20:02:16 <Insane> And talk about how I lost the url to the spoofed image I was working on on my lappy to fake a password entry screen
20:02:16 <AnMaster> C99!
20:02:17 <Insane> heh
20:02:25 <AnMaster> Insane, C# is bloated too
20:02:32 <AnMaster> C99 for me
20:02:34 <Insane> I pastebin'd the link but pastebin.com is down
20:02:36 <Insane> heh
20:02:44 <AnMaster> C++ got bloated syntax, C# got bloated runtime
20:02:46 <Insane> You mean due to .NET?
20:02:48 <AnMaster> sigh
20:03:00 <AnMaster> Insane, yes the actual syntax of C# isn't as bad as c++
20:03:05 <Insane> Yeah
20:03:07 <Insane> I agree
20:03:16 <Insane> Well .NET is a so-so solution
20:03:23 <AnMaster> "so-so"?
20:03:32 * AnMaster use mono anyway for .NET stuff
20:03:34 <Insane> It's quick to easily develop apps for casual use, but it isn't a good cross-platform and highspeed solution
20:03:36 <Insane> heh
20:03:43 <AnMaster> as I do run linux
20:04:02 <Insane> Heh
20:04:08 <Insane> I run windows on my development machine
20:04:12 <Tritonio_> what about lua? since i used it i odn't want to write in anything else
20:04:22 <Insane> linux on my lappy/private server
20:04:27 <AnMaster> Tritonio_, it's interpreter isn't it?
20:04:34 <Tritonio_> with a VM
20:04:34 <Insane> Lua is interpreted though :/
20:04:41 <AnMaster> Insane, linux on desktops and laptops, freebsd for servers
20:04:45 <Tritonio_> it's one of the fastest interpreted languages
20:04:47 <AnMaster> and gentoo linux when it is linux
20:04:47 <Insane> Try writing a 3D app in Lua
20:05:06 <Insane> Heh
20:05:13 <Tritonio_> luaGL
20:05:17 <AnMaster> Insane, indeed, that is *just* possible in C#, but C++ or C is what is best for 3D
20:05:18 <Insane> I run kubuntu on my lappy and XP on my development machine
20:05:21 <Tritonio_> there are extensions for anything
20:05:29 <Insane> Which is why I use XNA for 3d apps
20:05:29 <AnMaster> Tritonio_, coded in C I bet?
20:05:49 <Tritonio_> yes i've used C
20:05:50 <AnMaster> Insane, nah, just call opengl directly
20:05:52 <AnMaster> ;P
20:05:57 <AnMaster> libGL.so
20:06:01 <AnMaster> works like a charm
20:06:03 <Tritonio_> but only when I ad no other option
20:06:20 <Insane> Heh, thanks, but I prefer a managed and mostly natively coded DirectX framework over direct OpenGL calls
20:06:28 <Insane> Since I prefer DirectX over OpenGL anyways
20:06:32 <Insane> At least for gaming
20:06:42 <AnMaster> Insane, ugh :(
20:07:04 <AnMaster> Insane, no, really, C or C++ and using some opengl framework
20:07:14 <AnMaster> directx is TOTALLY non-portable
20:07:40 <Insane> And that's why about 90% of consumers and developers for today's corporate games use windows + directx
20:07:41 <Insane> Yeah
20:08:08 <Insane> Go into a video game shop. How many games use OpenGL? How many games use DirectX?
20:08:22 <Insane> I use DirectX since it's the current consumer trend for gaming
20:08:23 <AnMaster> Insane, go to freshmeat.net, check the same
20:08:25 <AnMaster> :P
20:08:27 <Insane> Heh
20:08:29 <Tritonio_> lol
20:08:50 <AnMaster> Insane, apart from nvidia binary driver and bios I run 100% open source on my computer
20:09:03 <Insane> Heh
20:09:04 <Insane> Have fun then
20:09:08 <Insane> I don't care about open source
20:09:22 <AnMaster> Insane, I do, I'm involved in several open source projects
20:09:29 <Insane> Each to himself then
20:09:38 <AnMaster> Insane, so the pastes you did, what license are they under?
20:09:46 <Insane> No license
20:09:53 <AnMaster> public domain?
20:09:57 <Insane> I'd guess
20:10:39 <Insane> Feel free to use them if you want, although you might want a more optimized solution with a dynamic growing array and direct io streams instead of a read-all-at-once output
20:10:54 <AnMaster> indeed
20:11:01 <AnMaster> malbolge in C#, heh
20:11:03 <Insane> :P
20:11:15 <Insane> Well I'm most comfortable in C# atm, so I use it for "complicated" stuff
20:11:18 <AnMaster> Insane, is it 100% compatible?
20:11:24 <Insane> No
20:11:44 <Insane> There's at least one bug left that nobody's ever found after many source comparisions and double checks
20:11:52 <AnMaster> Insane, oh what bug?
20:12:01 <Insane> Every program I've seen runs 100% fine, except for the 99 bottles of beer loop version
20:12:07 <AnMaster> ah
20:12:08 <Insane> Which runs fine on the official interpreter
20:12:27 <AnMaster> Insane, what about those cases of abusing non-ascii values?
20:13:12 <Insane> Well it has full 10 digit trit support up to values of 3^10
20:13:48 <AnMaster> Insane, err where is "Ternary" defined?
20:13:51 <AnMaster> it's a class right?
20:14:05 <AnMaster> oh wait
20:14:07 <Insane> I might consider doing a "serious" rewrite of my brainfuck module using three different streams some time, and release it packaged, with documentation etc. since there seems to be no available "ready to use" brainfuck component atm
20:14:07 * AnMaster misread
20:14:12 <Insane> Oh right
20:14:14 <AnMaster> Ternary.ToTernary(a);
20:14:15 <Insane> I wanted to pastebin that too
20:14:16 <AnMaster> that
20:14:21 <AnMaster> can't find ToTernary
20:14:30 <Insane> public static string ToTernary(ushort num)
20:14:34 <Insane> It gives you a string
20:14:43 <AnMaster> yes but where is it defined?
20:14:51 <Insane> pretty inefficient but I didn't find a better way to handle trits
20:14:54 <Insane> In Ternary.cs
20:14:54 <Insane> ^^
20:15:01 <AnMaster> not included in paste?
20:15:02 <Insane> I never pastebin'd it, like I just said
20:15:03 <Insane> nope
20:15:06 <Insane> Want me to upload?
20:15:10 <AnMaster> yep
20:15:44 <AnMaster> at least in pascal you could easily define a new data type for it (heh, every language got it's own upside and downside)
20:15:58 <Insane> http://insane.pastebin.org/17432
20:16:04 <Insane> Heh
20:16:13 <Insane> I considered using a direct bitwise solution
20:16:19 <AnMaster> though pascal got a LOT more of the latter
20:16:22 <Insane> But I voted against it since it would be even slower to convert to/from
20:16:28 <Insane> :P
20:16:32 <AnMaster> hm it would?
20:16:36 <Insane> Well
20:16:50 <Insane> I'd convert to string/bitlist and that to array/list or w/e, and vice versa
20:16:51 <AnMaster> actually just define a struct tenary
20:16:53 <Insane> means I add an extra step
20:16:57 <Insane> hmm
20:16:58 <AnMaster> that represents one bit
20:16:58 <Insane> Maybe
20:17:03 <Insane> Erm
20:17:06 <Insane> Would be called Trit
20:17:08 <Insane> anyways
20:17:09 <AnMaster> ah right
20:17:11 <AnMaster> yes
20:17:18 <AnMaster> a tenary is an array of trits!
20:17:18 <Insane> Hm
20:17:19 <AnMaster> :D
20:17:29 <Insane> A trit needs two bits
20:17:35 <Insane> since a trit can hold 3 different values
20:17:37 <Insane> 0, 1 and 2
20:17:41 <AnMaster> yes indeed, a trit is a enum!
20:17:42 <Insane> Then 4 would be unused
20:17:57 <AnMaster> enum trit { true, false, filenotfound }
20:17:59 * AnMaster runs
20:18:16 <AnMaster> bad syntax heh
20:18:33 <Insane> I think it would be better to store 2 triplets at once, using 3 bits
20:18:45 <AnMaster> hm
20:18:51 <Insane> Better for memory
20:19:01 <AnMaster> how many bytes would you waste in malbolge on it?
20:19:04 <Insane> Since I'd assume that even an enum would use 2 bits for the task
20:19:06 <AnMaster> if you got an overhead of one bit
20:19:10 <Insane> Actually
20:19:14 <Insane> This discussion is pointless
20:19:16 <AnMaster> not much I suspect
20:19:20 <Insane> Since my malbolge interpreter is *so* unifficient
20:19:21 <AnMaster> Insane, oh is it?
20:19:26 <Insane> Heh
20:19:36 <Insane> Anyways
20:19:37 <AnMaster> Insane, well the C one is efficient is it?
20:19:46 <Insane> Yeah
20:19:51 <Insane> It was a for-fun project anyways
20:20:00 <Insane> Nothing serious like the brainfuck class which I actually used
20:20:08 <Insane> Anyways
20:20:16 <Insane> I came here to discuss a new idea I'm having
20:20:17 <AnMaster> Insane, what about intercal in C#?
20:20:23 <Insane> A new "for-fun" esoteric language
20:20:24 <AnMaster> intercal is iirc rather extensive
20:20:24 <Insane> heh
20:20:30 <AnMaster> isn't it?
20:20:34 <Insane> maybe some other time
20:20:44 <Insane> I have this awesome new esoteric language idea
20:20:51 <Insane> It would have the same commands as brainfuck,
20:20:52 <AnMaster> Insane, ah tell us!
20:21:09 <AnMaster> and how would it differ then?
20:21:15 <Insane> but instead of inputting the commadns directly, you input musical notes, and the difference between any two given notes would be the actual command
20:21:33 <Insane> Then the interpreter would play the notes as they get executed
20:21:34 <AnMaster> hehehe
20:21:38 <AnMaster> Insane, what scale?
20:21:50 <AnMaster> make it C# as scale XD
20:22:00 <AnMaster> eh wait
20:22:03 <Insane> Probably standard musical notation, like 1-bar difference is +, 2bar is - etc.
20:22:05 <Insane> Heh
20:22:30 <Insane> I can beep notes through my system speaker
20:22:38 <AnMaster> Insane, anyway I don't know the words for scales in English, I *do* know them in Swedish
20:22:43 <Insane> I wrote a parser for it and implemented it into my irc bot
20:22:43 <Insane> heh
20:22:52 <Insane> Sweden > *
20:22:56 <AnMaster> oh?
20:22:59 <AnMaster> where are you from?
20:23:03 <Insane> Germany
20:23:04 <Insane> :/
20:23:10 <Insane> Sweden > * > Germany
20:23:13 <AnMaster> ah, no elks around where I live!
20:23:15 <AnMaster> ;P
20:23:17 <Insane> Heh
20:23:29 <Insane> no møøse?
20:24:00 <AnMaster> 1) no møøse is monty python 2) moose is in canda
20:24:06 <AnMaster> here we got elk (älg)
20:24:14 <AnMaster> and it is ö not ø in Sweden
20:24:33 <AnMaster> ø is for Danish/Norweegian
20:24:43 <Insane> Heh
20:25:48 <tejeez> there seems to be so many such brainfuck derivatives in existence that someone has possibly already done that.. :P
20:25:59 <Insane> Does this look realistic enough to fool my mother? http://img101.imageshack.us/img101/7492/biosspoofau2.png
20:28:14 <Insane> I'm still deciding between C# WinForms, XNA or GML to code the actual spoofer
20:29:40 <AnMaster> Insane, spoof what!?
20:29:46 <Insane> BIOS
20:29:52 <AnMaster> err why?
20:29:52 <Insane> nvm
20:29:55 <Insane> lol
20:29:58 <AnMaster> Insane, anyway no it doesn't
20:29:58 <Insane> why not? ^^
20:30:03 <Insane> Bah
20:30:06 <AnMaster> Insane, too high resolution
20:30:07 <Insane> Of course it does
20:30:11 <AnMaster> of text
20:30:12 <Insane> only the font is different heh
20:30:16 <Insane> hmm
20:30:17 <Insane> true
20:30:18 <Insane> w/e
20:30:24 <Insane> she doesn't even know what resolution is
20:30:54 <AnMaster> Insane, well I got a 20" TFT (1400x1050) and if my bios looked like that it would be awesom
20:30:56 <AnMaster> some*
20:31:08 <AnMaster> Insane, also the "live update thing" is wrong
20:31:09 <Insane> hehe
20:31:13 <Insane> Why?
20:31:22 <AnMaster> never seen it in a bios
20:31:28 <Insane> It is on mine
20:31:28 <Insane> for real
20:31:33 <AnMaster> what!?
20:31:34 <Insane> even though it doesn't even have a live update
20:31:46 <Insane> I literally copied my own bios 1:1 with different numbers and labels
20:31:51 <Insane> but the design is the same
20:32:00 <AnMaster> yes I see the numbers are different
20:32:04 <Insane> heh
20:32:06 <Insane> v1337
20:32:11 <Insane> Try finding that on a real BIOS
20:32:11 <AnMaster> Insane, but just why do you want this?
20:32:19 <Insane> Because it's fun
20:32:30 <AnMaster> Insane, anyway the font is way less blocky than in a bios
20:32:45 <Insane> True
20:33:02 <Insane> I developed it on my lappy kubuntu so I didn't have my usual supply of bios-like console fonts
20:33:10 <AnMaster> Insane, basically on a tft you need it to look 1) blockly 2) blurry
20:33:44 <AnMaster> on a crt it just needs to be blocky
20:34:04 <tejeez> i'm quite sure your mother doesn't care about the resolution on bios startup messages.. :P
20:34:30 -!- Hiat1 has joined.
20:34:33 <AnMaster> Insane, also why not just use the real password protection of your bios :P
20:34:44 <Insane> AnMaster, huh?
20:35:11 <Insane> this is not for "adding" a password, it's for something else
20:35:13 <Insane> I better stop here
20:35:30 <AnMaster> Insane, anyway I would like to know what it is :D
20:35:54 <AnMaster> however the font looks totally wrong for bios
20:36:16 <Insane> bah
20:36:19 <Insane> lol
20:36:27 <AnMaster> Insane, also the blue logo needs to be fixed to look as blocky
20:36:29 -!- Tritonio_ has quit ("Bye...").
20:36:39 <Insane> best monospaced font I could find at all on kubuntu
20:36:45 -!- Tritonio_ has joined.
20:37:08 <AnMaster> Insane, looks like the font I use for irc, I bet it is bitstream vera sans mono? or maybe dejavu sans mono?
20:37:12 -!- Tritonio_ has quit (Client Quit).
20:37:26 -!- Tritonio_ has joined.
20:37:48 <tejeez> AnMaster: but does his mother notice anything unusual in that? probably not.
20:37:48 <AnMaster> Insane, am I right?
20:38:13 <AnMaster> tejeez, hm no idea
20:38:30 <Insane> heh
20:38:40 <Insane> No
20:38:42 <AnMaster> my mother got a good memory for details, while not knowing much about computers
20:38:43 <Insane> It's "Monospace"
20:39:05 <AnMaster> Insane, "monospace" just maps to a monospace default font on system
20:39:06 <Insane> or "Monospaced" or similar
20:39:06 <Insane> actual name
20:39:11 <AnMaster> same as "sans" maps to a default font
20:39:13 <Insane> hmmk
20:39:18 <Insane> No idea then
20:39:19 <Insane> :P
20:39:57 <AnMaster> Insane, but on gentoo monospace does indeed map to bistream
20:40:08 <AnMaster> bitstream*
20:41:03 <tejeez> take a picture of your real bios with a camera!
20:41:39 <Insane> Heh
20:41:41 <Insane> naw
20:41:49 <AnMaster> tejeez, that will look bad I bet, if CRT bits of it will be missing due to refresh rate, if TFT you will get moire patters
20:43:19 <tejeez> true
20:48:47 -!- Hiat1 has quit ("Leaving.").
20:49:56 -!- Hiato has quit (Read error: 110 (Connection timed out)).
21:09:12 -!- und3f has joined.
21:09:14 <und3f> re
21:18:14 <Insane> Hehehe
21:18:19 <Insane> Both of my parents fell for it
21:18:20 <Insane> totally
21:18:31 <Insane> Well
21:18:37 <Insane> They didn't actually etner the password
21:18:50 <Insane> But they both think's its genuine
21:18:52 <Insane> w/e
21:23:49 -!- helios24 has quit ("Leaving").
21:32:53 -!- chuck has changed nick to meilrahc.
21:33:17 -!- meilrahc has changed nick to _chuck_.
21:33:56 -!- _chuck_ has changed nick to chuck.
21:34:11 -!- und3f has left (?).
21:49:30 <sekhmet> ehird: Dunno, that's a little harder to track down
21:49:50 <sekhmet> http://rafb.net/p/kiZFVq83.html
21:49:51 <sekhmet> maybe?
21:49:58 <sekhmet> Someone else had pasted that some time ago
21:50:20 <ehird> yeah
21:55:06 <ehird> hm
21:55:10 <ehird> who here knows scheme
21:56:03 <oklopol> depends on the definition of "know"
21:57:45 <ehird> oklopol: i think you count
22:01:40 -!- GreaseMonkey has joined.
22:02:30 <GreaseMonkey> IMHO card topples are turing-complete
22:03:09 -!- RedDak has joined.
22:11:22 <oklopol> topples are fine, but i prefer them bottomless
22:14:15 <AnMaster> GreaseMonkey, and what are those?
22:14:44 <GreaseMonkey> you put the cards upright like this: /|\ /|\ /|\
22:14:49 <GreaseMonkey> and then you push them over
22:14:55 <AnMaster> hm?
22:14:58 <GreaseMonkey> so they look something like this: ____________
22:15:01 <AnMaster> domino bricks?
22:15:03 <GreaseMonkey> yeah
22:15:16 <AnMaster> I see, how are they turing complete?
22:15:37 <AnMaster> can you prove it?
22:15:53 <AnMaster> because if it was true, that would be really fun
22:16:04 <AnMaster> write a domino simulator!
22:17:06 <ehird> who is a schemer?
22:17:15 <AnMaster> btw as game of life is turing complete, but what I find more interesting: it is multitasking XD
22:17:33 <AnMaster> all computations happen at once in life
22:18:58 -!- RedDak has quit (Remote closed the connection).
22:22:57 -!- immibis has joined.
22:23:08 <ehird> nobody?
22:26:01 <ehird> well, i know bsmnt's a schemer
22:26:02 <ehird> but who else?
22:26:20 <oklopol> GreaseMonkey: it may be tc given an infinite starting pattern
22:35:09 <Insane> We need a bot in here that executes code in various esoteric languages
22:35:09 <Insane> like brainfuck
22:35:16 <ehird> he's aclled egobot.
22:35:21 <ehird> !bf ,[.,]!hello
22:35:27 <ehird> hm
22:35:29 * ehird pokes EgoBot
22:35:30 <Insane> What's the !hello?
22:35:30 <ehird> !help
22:35:34 <ehird> Insane: input
22:35:36 <ehird> prog!input
22:35:38 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
22:35:40 <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
22:35:56 <ehird> !bf ,[.,]!hello
22:36:13 <Insane> !bf ++++++++++++++++++++++++++++++++++++++++++++++++.+.+.+.+.+.+.+.+.
22:36:16 <Insane> :(
22:36:16 <EgoBot> 012345678
22:36:19 <Insane> :D
22:36:23 <AnMaster> ehird, wrong syntax?
22:36:32 <ehird> what's wrong with it?
22:36:34 <Insane> !bf +[,.]!Meep
22:36:46 <ehird> !bf8 ,[.,]!hello, world
22:36:48 <AnMaster> ehird, the !hello maybe?
22:36:52 <ehird> AnMaster: no.
22:36:53 <ehird> egobot does that.
22:37:00 <AnMaster> for input?
22:37:10 <ehird> yes
22:37:17 <AnMaster> what is bf8? bf16 and so on?
22:37:34 <ehird> bf8=0-255
22:37:34 <ehird> etc
22:37:39 <ehird> the amount of bytes per cell
22:37:42 <AnMaster> !bf64 ,[.,]!hello
22:37:50 <AnMaster> ehird, I want a bignum version
22:37:50 <ehird> er bits
22:38:03 <ehird> AnMaster: you'll never get past 64 bits in brainfuck ;)
22:38:08 <AnMaster> oh?
22:38:11 <ehird> if you have a program getting to that, it'll just hang on egobot anyway
22:38:15 <ehird> 'cause it'll take years
22:38:32 <Insane> Let's make a 256bit brainfuck interpreter
22:38:36 <ehird> why
22:38:43 <ehird> and why are you implying plural there
22:38:46 <ehird> why don't you do it
22:39:12 <Insane> Is the environment wrapping?
22:39:12 <immibis> !ps
22:39:14 <Insane> For EgoBot
22:39:23 <EgoBot> 1 ehird: bf
22:39:23 <EgoBot> 2 ehird: bf
22:39:23 <Insane> !help bf
22:39:23 <EgoBot> 3 Insane: bf
22:39:23 <EgoBot> 4 ehird: bf8
22:39:23 <EgoBot> 5 AnMaster: bf64
22:39:24 <EgoBot> 6 immibis: ps
22:39:26 <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.
22:39:28 <immibis> !i 1 Hello. This is how you give input, ehird.
22:39:40 <immibis> !kill 1
22:39:42 <EgoBot> Hello. This is how you give input, ehird.
22:39:44 <EgoBot> Process 1 killed.
22:40:09 <ehird> immibis: I knew that,.
22:40:12 <ehird> but you can also use !
22:40:20 <immibis> how come it doesn't work then?
22:40:23 <ehird> beats me
22:40:25 <immibis> !kill 2
22:40:25 <ehird> egobot is on crack?
22:40:28 <EgoBot> Hello worldHello worldHello worldHello worldHello worldGoodbye world
22:40:30 <EgoBot> Process 2 killed.
22:40:33 <ehird> SEE
22:40:35 <ehird> I WAS RIGHT
22:40:47 <ehird> !bf ,[.[-],]!hello foo
22:40:50 <ehird> !ps
22:40:50 <immibis> no, i typed !i 2 Hello world several times in /query EgoBot
22:40:52 <EgoBot> 1 ehird: bf
22:40:54 <EgoBot> 2 ehird: ps
22:40:56 <ehird> !flush 1
22:40:56 <EgoBot> 3 Insane: bf
22:41:06 <AnMaster> !kill 1
22:41:07 <AnMaster> !kill 2
22:41:08 <EgoBot> Process 1 killed.
22:41:10 <EgoBot> Process 2 killed.
22:41:25 <Insane> !bf ++++++++++.[-]>+++++++++[<+++++++++>-]<.++++.------------.+++++++++++.
22:41:35 <Insane> interesting
22:41:39 <Insane> Very interesting
22:41:41 <Insane> Good
22:41:45 <AnMaster> what?
22:41:55 <Insane> No extremely and blatantly obvious security holes ^^
22:42:01 <ehird> duh
22:42:02 <Insane> I tried sending a \n followed by QUIT
22:42:03 <ehird> egobot is robust
22:42:03 <Insane> :P
22:42:05 <ehird> we've had it for ages
22:42:06 <Insane> hehe
22:42:09 <Insane> Just testing
22:42:09 <ehird> it's not a toy irc bot
22:42:11 <immibis> i believe GregorR fixed that hole
22:42:14 <ehird> it doesnt have any bugs like that
22:42:18 <Insane> !bf +++++++.
22:42:22 <Insane> Does it beep?
22:42:33 <ehird> it will on the server it runs on.
22:42:39 <ehird> however, it is unlikely any terminal is open on it.
22:42:42 <AnMaster> <Insane> No extremely and blatantly obvious security holes ^^
22:42:43 <AnMaster> err
22:42:44 <AnMaster> wrong
22:42:52 <AnMaster> you forgot CRLF after
22:42:53 <AnMaster> or LF
22:43:01 <ehird> AnMaster: freenode isn't an anal ircd
22:43:02 <AnMaster> it just prints quit without a newline after
22:43:05 <Insane> You only need \n
22:43:08 <AnMaster> indeed
22:43:10 <Insane> oh
22:43:11 <Insane> duh
22:43:12 <Insane> right
22:43:13 <AnMaster> Insane, but you didn't have one
22:43:13 <Insane> no
22:43:21 <Insane> You only need \nQUIT
22:43:22 <GregorR> It knows what newlines are and doesn't just ignore them, it actually handles them as separate lines of output and sends them all independently.
22:43:28 <GregorR> You should have gotten a PM with the remaining output.
22:43:31 <Insane> Yeah
22:43:32 <Insane> I did
22:43:35 <ehird> GregorR: so why doesn't "!bf ,[.,]!foo" work
22:43:37 <ehird> it did like yesterday
22:43:42 <Insane> Mine just inserts <0x10>
22:43:43 <Insane> heh
22:43:53 <GregorR> ehird: Uhhh, no?
22:43:57 <GregorR> ehird: It takes input with !i
22:44:03 <ehird> It used to allow you to do that though.
22:44:05 <ehird> As well as.
22:44:09 <GregorR> EgoBot never did.
22:44:30 <AnMaster> where do I get the source for egobot?
22:44:36 <GregorR> In the files archive at esolangs.org
22:44:37 * AnMaster wonders what language it is in
22:44:41 <AnMaster> ah thanks
22:44:46 <GregorR> C++ (please don't kill me)
22:45:05 <immibis> what's wrong with C++, gregorr?
22:45:13 <GregorR> I now know D ^^
22:45:16 * ehird really needs to write SuperEgoBot
22:45:18 <ehird> or IdBot
22:45:35 * GregorR just turned in his last graduate application.
22:45:42 <GregorR> Now I just have to wait for rejection letters to pour in.
22:45:48 <AnMaster> D sounds interesting
22:45:50 <Insane> I actually wrote an irc bot in NetBrainfuck
22:46:03 <AnMaster> GregorR, how does D differ from C/C++
22:47:03 <GregorR> http://www.digitalmars.com/d/2.0/comparison.html
22:47:34 <GregorR> Uh, WTF?
22:47:36 <ehird> I personally think SuperEgoBot/IdBot should be written in one of:
22:47:37 <GregorR> That comparison table seems to have gone wonky ...
22:47:38 <ehird> Scheme, Haskell
22:47:38 <ehird> ;)
22:47:44 <ehird> Oooh! I know!
22:47:49 <ehird> Strongly typed IRC bots.
22:47:55 <ehird> Their consistency is guaranteed!
22:47:58 <immibis> what about bash? lol.
22:48:02 <AnMaster> GregorR, there is just D
22:48:04 <immibis> i once wrote an irc bot in bash.
22:48:07 <AnMaster> ehird, ada!
22:48:12 <AnMaster> immibis, http://envbot.org
22:48:12 <ehird> AnMaster maintains an irc bot in bash.
22:48:14 <ehird> It's modular.
22:48:16 <GregorR> AnMaster: Like I said, "<GregorR> That comparison table seems to have gone wonky ..."
22:48:16 <AnMaster> modular!
22:48:16 <ehird> hah
22:48:16 <ehird> typical
22:48:37 <AnMaster> GregorR, indeed and I don't know C++ well enough to fill it in using my head
22:48:40 <GregorR> AnMaster: Suffice to say that there's no one killer feature that makes D better than C++, it's just much cleaner in the general sense.
22:49:00 <AnMaster> GregorR, C++ got a bloated syntax, almost as bad as perl
22:49:08 * AnMaster prefers C99
22:49:14 <GregorR> Yeah, D's syntax is comparatively quite simple.
22:49:19 <GregorR> Even more simple than C in terms of type declarations.
22:49:32 <AnMaster> C# got nice syntax but instead a bloated runtime
22:49:33 <AnMaster> :/
22:49:34 <ehird> GregorR: cast your name vote: SuperEgoBot/IdBot
22:49:40 <pikhq> What I know of D makes it look damned elegant.
22:49:42 <GregorR> char*[] is an array of pointers to characters, none of this wonky char *foo[] (which way does that go?!)
22:49:43 <pikhq> ehird: IdBot.
22:49:54 <GregorR> ehird: "Ego" is trademark GregorCorp, so IdBot ;)
22:49:55 <AnMaster> GregorR, hah
22:49:59 <ehird> but SuperEgoBot is funny :P
22:50:01 <AnMaster> ehird, hum?
22:50:03 <immibis> char* foo[] (any clearer?)
22:50:08 <ehird> it makes me think of egobot in a red cape
22:50:11 <ehird> flying
22:50:11 <AnMaster> what is wrong with plain egobot?
22:50:12 <ehird> superman-style
22:50:17 <ehird> AnMaster: that's GregorR's
22:50:24 <AnMaster> ehird, yes and?
22:50:26 <ehird> and it's also a superego bot!
22:50:33 <pikhq> immibis: Except that the type of foo is char*[]. Confuses yet?
22:51:43 <AnMaster> GregorR, I find pointers in C rather simple most time, unless you get something mad like: char **** blah[][] (or something like that, saw it once, horrible)
22:52:07 <AnMaster> it was in a K&R style parameter definition, inside mosaic iirc
22:52:29 <immibis> char **** blah[][] is an 2-dimensional array of pointers to pointers to pointers to pointers to characters (or pointers to pointers to pointers to strings).
22:52:30 <AnMaster> may have been some other software
22:52:36 <immibis> but who would need that??
22:52:48 <AnMaster> immibis, don't ask me, I use cdecl for that :P
22:52:49 <GregorR> AnMaster: You need parens and such for more complicated types.
22:52:57 <AnMaster> GregorR, yes seen that too
22:52:58 <GregorR> AnMaster: In D it's always just left-to-right type declarations.
22:53:00 <AnMaster> just typedef
22:53:02 <AnMaster> :D
22:53:10 <AnMaster> GregorR, but do D need any runtime?
22:53:14 <ehird> GregorR: If ego is copyrighted, is superego?
22:53:15 <GregorR> Yes.
22:53:16 <AnMaster> I know C++ does
22:53:20 <ehird> That's draconian copyright law! :P
22:53:22 <GregorR> Well, basically yes.
22:53:25 <AnMaster> GregorR, C doesn't need any runtime
22:53:30 <ehird> AnMaster: yes it does.
22:53:34 <ehird> what do you think calls main
22:53:36 <GregorR> Technically people have made it work with no runtime, but you lose many features.
22:53:39 <AnMaster> ehird, yeah...
22:53:42 <pikhq> It's called the C standard library.
22:53:42 <GregorR> Yeah, same with C.
22:53:48 <ehird> OK, so it's a very trivial kind of runtime, but :)
22:53:50 <oklopol> GregorR: has registered /.*ego.*/
22:53:51 <ehird> pikhq: No. That's differnt.
22:54:01 <oklopol> yeah, they take regexps now.
22:54:02 <GregorR> The D language doesn't require a runtime so long as you don't use 'new' or dynamic arrays.
22:54:03 <ehird> oklopol: Now THAT's dracegonian! ;)
22:54:03 <pikhq> ehird: Fine; strictly speaking, you don't need stdlib.
22:54:10 <AnMaster> ehird, what about static linking against your own functions replacing the libc stuff you use?
22:54:20 <pikhq> You just need stdlib for doing more than inline assembly.
22:54:23 <GregorR> AnMaster: That just means you've written your own runtime.
22:54:26 <pikhq> I assume D is actually similar.
22:54:44 <GregorR> Yeah, it is similar, the standard runtime just happens to have more features, so you lose more of the language if you go runtime-less.
22:54:52 <AnMaster> GregorR, well I know C++ does need a rather large cruft thing called libstdc++ or something like that
22:55:04 <AnMaster> anyway uclib :D
22:55:10 -!- timotiis has quit ("leaving").
22:55:20 <pikhq> How large is libstdd?
22:55:29 <ehird> pikhq: Big.
22:55:32 <AnMaster> on x86_64
22:55:33 <ehird> But the neccessary parts - gc, etc
22:55:34 <ehird> are small.
22:55:40 <GregorR> ehird's answer is good.
22:55:53 <GregorR> And if you use Tango (yay for competing runtimes) the core part isn't lumped with additional bits.
22:55:54 <ehird> You could get a working (though not very full featured, as far as garbage collection goes) D system in.. hmm, 300-400 lines?
22:55:56 <AnMaster> also gc is bad, it prevents stuff from going into swap when needed
22:55:58 <pikhq> Does D statically link in the parts you need?
22:56:00 <ehird> That's assuming you write an actual, real GC.
22:56:04 <ehird> AnMaster: you can disable it
22:56:06 <AnMaster> keeping memory resident
22:56:13 <AnMaster> that is what I hate with java and such
22:56:24 <AnMaster> garbage collectors should die
22:56:31 <GregorR> Hahahah
22:56:38 <GregorR> I remember thinking like that ...
22:56:42 <pikhq> AnMaster: D's garbage collection is on by default, but you may turn it off when you want to leave it alone.
22:56:52 * pikhq both loves and hates garbage collection. . .
22:56:59 <pikhq> Really, it depends upon what you're doing.
22:57:04 <AnMaster> garbage collection is for the lazy
22:57:15 <GregorR> AnMaster: Yes, it is. And?
22:57:21 <pikhq> And sometimes laziness is good.
22:57:25 <pikhq> Thus compilers.
22:57:25 <AnMaster> and it keeps memory resident, preventing it from going into swap if needed
22:57:44 <GregorR> Languages higher-level than assembly are for the lazy.
22:57:52 <immibis> especially java.
22:57:53 <pikhq> GregorR: Assembly is for the lazy.
22:57:53 <oklopol> us non lazy people just use asm
22:58:02 <GregorR> Languages higher-level than machine code for the lazy.
22:58:07 <pikhq> You only need a toggle board on your computer. ;)
22:58:08 <GregorR> *are for
22:58:14 <oklopol> hmph, i'll need more complex jokes
22:58:17 <AnMaster> well do they have the downsides of garbage collection?
22:58:18 <AnMaster> no
22:58:37 <pikhq> AnMaster: What kind of paging algorithm would not swap pages out if they're garbage collected?
22:58:41 <pikhq> A Microsoft one?]
22:58:44 <immibis> GregorR: Forgetting the word "are" is for the lazy.
22:59:14 <immibis> pikhq: any one, until the garbage collector runs everything is still allocated.
22:59:20 <ehird> AnMaster: you have too much experience with bad GCs.
22:59:23 <AnMaster> pikhq, that isn't the problem, the problem is if the page still contains data but isn't accessed by program right now
22:59:25 <ehird> Lisp systems have good GCs.
22:59:29 <ehird> They are incredibly efficient.
22:59:34 <ehird> AnMaster: Also, bash has gc you foo
22:59:45 -!- ehird has changed nick to totallynotehirdi.
22:59:58 <pikhq> AnMaster: I think that you've experienced some crappy GCs.
23:00:02 -!- totallynotehirdi has changed nick to ehird.
23:00:03 <immibis> totallynotehirdi????
23:00:05 <AnMaster> pikhq, then if the garbage collector of for example java keeps scanning over it: bad, makes kernel avoid paging out that page, prefering other that may be more important
23:00:16 <AnMaster> pikhq, possible
23:00:28 <pikhq> Ah, *that* kind of GC.
23:00:38 <AnMaster> but I know this has been discussed on the kernel mailing lists a fair bit
23:00:39 <pikhq> That GC algorithm, though accurate, is inefficient as fuck.
23:00:45 <immibis> AnMaster: doesn't java gc only run when the program is using lots of memory?
23:01:15 <pikhq> Wouldn't surprise me; with that GC algorithm, you're going to want to defer it. . .
23:01:44 -!- Insane has quit (Read error: 104 (Connection reset by peer)).
23:01:53 <AnMaster> the only thing that should scan memory like that is IMO stuff like valgrind
23:01:56 <AnMaster> debugging tools
23:02:31 * pikhq would like to cite reference counting for decent GC. . .
23:02:40 <immibis> try running a java program that uses lots of memory (netbeans for example) and have a memory usage monitor open while you run it.
23:02:49 <immibis> pikhq: circular references...
23:02:54 <pikhq> Although it doesn't handle circular references, it certainly works efficiently.
23:02:57 <AnMaster> immibis, I uninstalled java here :P
23:03:06 <pikhq> immibis: I'm saying it's decent, not that it's perfect.
23:03:52 <ehird> pikhq: A good GC strategy: have a reference counter, and a non-conservative GC. Run the GC a lot less often than you'd run just a conservative GC.
23:04:04 <AnMaster> why use a gc? why not just do it the right way, malloc/free new/delete, or if you do it in C++: http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization
23:04:11 <GregorR> I just got offered a research fellowship at Purdue. Which is weird because I haven't been accepted (or rejected) yet.
23:04:26 <ehird> AnMaster: because good programmers are lazy.
23:04:35 <ehird> and doing work the computer can do, unless performing low-level tasks, is a sin.
23:04:42 <ehird> a complete and utter SIN
23:04:47 <AnMaster> ehird, valgrind :D
23:04:50 <ehird> not excusable in any form at all
23:04:53 <ehird> AnMaster: that's even more work.
23:05:21 <AnMaster> ehird, it does it's job. I want my code to run fast. not depend on crappy runtimes (java, and such)
23:05:36 <pikhq> Well, *I* see. . .
23:05:38 * AnMaster wants unmanaged C# :D
23:05:52 <pikhq> AnMaster has been disillusioned from the idea of GC due to the crappiness of Java.
23:06:01 <immibis> Java is crappy?
23:06:10 <pikhq> immibis: For efficiency, yes.
23:06:20 <AnMaster> pikhq, mono/.NET is *slightly* better
23:06:22 <pikhq> (for my sanity, as well)
23:06:23 <AnMaster> but far from good
23:06:29 <ehird> AnMaster: A decent GC system can be very fast.
23:06:36 <ehird> Sometimes, faster than manually managed code.
23:06:37 <pikhq> For the love of $diety, don't touch those two.
23:06:53 <AnMaster> ehird, depends on how good the programmer is
23:06:58 <ehird> If you think otherwise, you had the wrong first impressions of GC and *are wrong*
23:06:59 <ehird> AnMaster: Hah.
23:07:12 <ehird> You are wrong, and I can't be bothered telling you why - once you use a good GC, you will understand.
23:07:19 <immibis> pikhq: I find Java runs reasonably fast (although nothing runs reasonably fast on this computer, but it does on decent ones)
23:07:32 <AnMaster> ehird, well, is there one for C99?
23:07:59 <pikhq> However, rule one of programming: programmer time is worth one hundred times as much as computer time.
23:08:02 <AnMaster> as in I just want to write it as I currently do mostly, but indeed not having to call free all the time...
23:08:04 <pikhq> AnMaster: There's Boehm GC.
23:08:16 <AnMaster> pikhq, is it good?
23:08:21 <ehird> AnMaster: Pretty good, yes.
23:08:25 <ehird> Not as good as some Lisp systems.
23:08:27 <ehird> But good.
23:08:37 <ehird> It can't be as good as them, incidentally, because of the nature of C: it must be conservative
23:09:00 <pikhq> Just replace your malloc and realloc calls with calls to the Boehm functions, and voila.
23:09:02 <ehird> AnMaster: replace malloc with GC_MALLOC
23:09:04 <pikhq> Garbage collected.
23:09:08 <ehird> same with calloc and realloc.
23:09:11 <AnMaster> and no free?
23:09:14 <ehird> and then s/free();\n//
23:09:16 <ehird> Err
23:09:19 <ehird> with ana rgument
23:09:19 <ehird> heh
23:09:21 <ehird> AnMaster: yep
23:09:24 <ehird> WARNING, though.
23:09:31 <AnMaster> ehird, so what about malloc being done in third party stuff?
23:09:34 <pikhq> Do the same with GC_FREE if you *really* want to, but it's not needed. . .
23:09:35 <AnMaster> like glibc
23:09:36 <ehird> If you call misbehaved libraries that think that allocating their own memory is a good idea,
23:09:39 <ehird> then either:
23:09:44 <ehird> 1. stop using these broken libraries
23:09:44 <ehird> or
23:09:50 <ehird> 2. find out which ones it mallocs, then tell the gc about them
23:09:56 <ehird> i forget the macro, but it's along the lines of
23:09:58 <AnMaster> ehird, err, glibc I'm sure allocates memory
23:10:03 <pikhq> ehird: Glibc is one of those libraries. . .
23:10:07 <AnMaster> and it isn't broken
23:10:10 <ehird> HEY_GC_YES_YOU_I_MEAN_YOU_TAKE_A_LOOK_AT_THIS(thing)
23:10:11 <ehird> pikhq: Hmm.
23:10:14 <ehird> Well fuck glibc. :p
23:10:14 <immibis> ehird said fuck!
23:10:16 <ehird> But yes.
23:10:22 <pikhq> Although it's explicitly returning a pointer in that case.
23:10:25 <ehird> immibis: Interesting observation.
23:10:29 <AnMaster> well all libcs in fact
23:10:31 <immibis> ehird: hey, my script works
23:10:32 <ehird> Is that an automatic script? you were veryfuck fast.
23:10:33 <immibis> ehird said fuck!
23:10:38 <ehird> immibis said fuck!
23:10:39 <immibis> ehird said fuck!
23:10:48 <AnMaster> who said fuck?
23:10:48 <immibis> AnMaster said fuck!
23:10:50 <pikhq> Fuckfnuck.
23:10:51 <immibis> pikhq said fuck!
23:10:54 <AnMaster> brainfuck?
23:10:54 <immibis> AnMaster said fuck!
23:11:00 <ehird> ahiahahahahaha AnMaster
23:11:00 <AnMaster> immibis, err brainfuck is normal here
23:11:01 <immibis> AnMaster said fuck!
23:11:04 <AnMaster> you want to ignore that
23:11:13 <ehird> just plain fuck is normal in here
23:11:13 <ehird> :)
23:11:14 <immibis> ok changed
23:11:16 <ehird> well, when i'm around
23:11:18 <ehird> or bsmntbombdood
23:11:19 <ehird> ;)
23:11:27 <AnMaster> yes what ehird fucking said
23:11:32 <AnMaster> ;D
23:12:21 * AnMaster wish valgrind could tell when a pointer was *last* accessible
23:13:01 <ehird> GregorR: Are you sure SuperegoBot isn't permissable?
23:13:08 <ehird> Draconian :P
23:13:29 <GregorR> I can't stop you from making it - but I WILL sue you. O_O
23:13:35 <ehird> :( why
23:13:49 <AnMaster> http://www.hpl.hp.com/personal/Hans_Boehm/gc/ "[ This is an updated version of the page formerly at http://reality.sgi.com/boehm/gc.html and before that at ftp://parcftp.xerox.com/pub/gc/gc.html.]"
23:13:50 <AnMaster> wow
23:13:56 <ehird> wow what
23:13:59 <AnMaster> that page moved a bit between companies heh
23:14:04 <ehird> yes
23:14:09 <immibis> fuck recognition is now set by anyone saying "fuck [on|off]" in any channel or query.
23:14:19 <AnMaster> fuck off!
23:14:22 <AnMaster> ;P
23:14:35 <AnMaster> (do not take it as an attack ;P)
23:14:45 <AnMaster> just wanted to show what it could mean
23:14:52 <immibis> i know.
23:15:00 <ehird> fuck on :O
23:15:01 <immibis> ehird said fuck!
23:15:02 <immibis> any better ideas?
23:15:05 <ehird> immibisfuck
23:15:05 <immibis> ehird said fuck!
23:15:08 <ehird> immibis: yes, disable it
23:15:09 <ehird> its crap
23:15:13 <AnMaster> immibis, it is more uncommon with "fuck enable"
23:15:13 <ehird> or
23:15:14 <immibis> AnMaster said fuck!
23:15:20 <AnMaster> fuck off...
23:15:20 <immibis> ok
23:15:22 <ehird> make it recognize these words as fuck:
23:15:23 <immibis> thanks
23:15:28 <pikhq> fuckdisable
23:15:30 <ehird> waffle, potato, belgium, fruitcake
23:15:33 <ehird> Okay?
23:15:37 <immibis> okay.....
23:15:38 <ehird> Still make them say "X said fuck!"
23:15:38 <AnMaster> ehird, why "belgium"?
23:15:39 <AnMaster> ...
23:15:41 <ehird> AnMaster: Because.
23:15:45 <ehird> AnMaster: Also, HHGTTG.
23:15:47 <pikhq> You have to ask?
23:15:48 <AnMaster> ehird, ah right
23:15:54 <AnMaster> was long ago I read it
23:15:56 <AnMaster> remember now
23:15:59 <ehird> I notice you don't question about waffle, potato or fruitcake.
23:16:02 <AnMaster> some party
23:16:10 <AnMaster> ehird, no I was comming to those
23:16:15 <AnMaster> tell me about them
23:16:23 <immibis> why HHGTTG? what does it mean?
23:16:35 <AnMaster> immibis, if you don't know that!...
23:16:45 <AnMaster> immibis, hitchhikers guide to the galaxy
23:16:45 <ehird> anyway, immibis.
23:16:46 <pikhq> immibis: Geek license revoked.
23:16:47 <ehird> just add them.
23:16:48 <AnMaster> very geeky book
23:16:51 <immibis> ok....
23:16:59 <ehird> belgium
23:17:01 <AnMaster> ehird, now tell me about the other ones
23:17:05 <ehird> sheesh, hurry up! ;)
23:17:07 <immibis> so should i mention that i've read it?
23:17:14 <ehird> AnMaster: they're funny words. I would like them to be filtered.
23:17:19 <ehird> But as "fuck".
23:17:21 <ehird> So:
23:17:21 <AnMaster> immibis, not if you actually haven't
23:17:33 <AnMaster> immibis, you should instead read it
23:17:34 <ehird> <person> Well, waffles ARE tasty.
23:17:36 <AnMaster> all the 5 books
23:17:38 <ehird> <immibis> person said fuck!
23:17:41 <AnMaster> or whatever it is
23:17:45 <immibis> there are 6.
23:17:49 * AnMaster got an omnibus edition
23:17:55 <ehird> GregorR: will you really sue me? :P
23:18:00 <immibis> and i've only read 1 and 3 because i lost the second.
23:18:03 <AnMaster> ehird, sue for what?
23:18:07 <GregorR> ehird: Doubtful :P
23:18:26 <AnMaster> GregorR, egobot is open source isn't it?
23:18:32 <AnMaster> what licence?
23:18:45 <ehird> GregorR: Yay! So I can make SuperEgoBot? :P
23:18:58 <GregorR> I don't even recall what license I stuck it under, it's in the headers I'm sure :P
23:19:26 <immibis> someone say fuckenable
23:19:36 <immibis> it only looks at incoming messages.
23:19:52 <pikhq> It's GPL2.
23:19:53 <immibis> it now recognizes belgium, waffle, potato, fruitcake, and hhgttg.
23:19:59 <immibis> since you asked.
23:19:59 <pikhq> GPL2 or later, IIRC.
23:20:07 <pikhq> Belgium, man, blegium!
23:20:08 <ehird> I didn't ask for hhgttg.
23:20:11 <ehird> :|
23:20:15 <pikhq> s/blegium/belgium/
23:20:16 <ehird> waffle
23:20:19 <ehird> potato
23:20:21 <ehird> fuck on
23:20:22 <ehird> potato
23:20:25 <ehird> fuck off
23:20:25 <immibis> ehird said fuck!
23:20:26 <ehird> fuck on
23:20:26 <immibis> ehird said fuck!
23:20:27 <ehird> potato
23:20:27 <immibis> ehird said fuck!
23:20:29 <pikhq> belgium on
23:20:30 <immibis> pikhq said fuck!
23:20:34 <ehird> loool
23:20:35 <immibis> fuck off means fuckenable.
23:20:36 <pikhq> belgium off
23:20:37 <AnMaster> ehird, about boehm gc, err. what about foo = GC_malloc(whatever); bar = foo
23:20:37 <immibis> pikhq said fuck!
23:20:39 <ehird> Well, I like fruitcake.
23:20:39 <immibis> ehird said fuck!
23:20:46 <ehird> AnMaster: that's fine.
23:20:48 <AnMaster> that is you copy the pointer
23:20:52 <AnMaster> ehird, it will know of that?
23:20:52 <ehird> AnMaster: it is fine.
23:20:54 <AnMaster> hm
23:20:55 <ehird> a pointer is just an integer.
23:20:57 <pikhq> fuckoff
23:20:58 <immibis> pikhq said fuck!
23:20:58 <ehird> like 23573485
23:21:08 <ehird> So -- who is from Belgium here?
23:21:08 <immibis> ehird said fuck!
23:21:18 <ehird> hehe, Belgium -- Anybody read HHGTTG?
23:21:18 <immibis> ehird said fuck!
23:21:21 <AnMaster> ehird, rather longer I bet (since I'm on 64-bit :)
23:21:24 <ehird> I like these new, waffley changes.
23:21:27 <ehird> ...
23:21:29 <ehird> FAIL
23:21:34 <pikhq> AnMaster: Twice as long, actually.
23:21:38 <AnMaster> ehird, indeed
23:21:42 <AnMaster> ehird I know that
23:21:42 <immibis> you said it should recognize waffleS.
23:21:54 <immibis> but ok, changed.
23:22:00 <ehird> waffley
23:22:14 <immibis> someone needs to say fuckenable again.
23:22:25 <immibis> or fuck off.
23:22:28 <AnMaster> ehird, so how does the GC know if there is still any pointer left to a memory block?
23:22:42 <immibis> AnMaster: maybe it could use smart pointers?
23:22:53 <ehird> AnMaster: that's not how it works, i don't think
23:22:54 <immibis> or you need to do something like GC_AddRef(ptr)
23:22:54 <ehird> oh well
23:22:55 <ehird> it's clever.
23:22:59 <ehird> immibis: you don't
23:22:59 <AnMaster> immibis, <AnMaster> ehird, about boehm gc, err. what about foo = GC_malloc(whatever); bar = foo
23:23:03 <ehird> but you do if glibc does that
23:23:04 <AnMaster> <ehird> AnMaster: that's fine.
23:23:05 <AnMaster> err?
23:23:10 <ehird> AnMaster: look
23:23:11 <ehird> it's clever
23:23:12 <ehird> trust it
23:24:22 <AnMaster> ehird, no I don't unless you can tell me how it can know that I copied the pointer, converted it to an correctly sized uint, put in a structure, converted back and duplicated, how could it possibly keep track of that
23:24:33 <ehird> GregorR: ping
23:24:34 <ehird> :)
23:24:43 <GregorR> NEVARPONG
23:24:58 <ehird> AnMaster: It's using deep magic. Do you have a problem with that?
23:25:09 <ehird> It's unlikely you'd be able to understand the inner workings of a deeply magical, advanced C gc.
23:25:10 <AnMaster> ehird, yes! and the code use memcpy too
23:25:17 <GregorR> D only follows pointers in types that contain pointers.
23:25:20 <AnMaster> and much more
23:25:25 <ehird> AnMaster: it's OKAY
23:25:26 <GregorR> That is, if you just have a big ubyte[], it won't follow pointers in it.
23:25:33 <ehird> TONS OF PEOPLE use the boehm gc
23:25:34 <pikhq> GregorR: We're discussing BoehmGC.
23:25:36 <ehird> LOADS of production software
23:25:37 <GregorR> OH
23:25:37 <AnMaster> ehird, I don't trust it
23:25:38 <ehird> LOADS of compilers, too
23:25:40 <AnMaster> yes
23:25:44 <AnMaster> I know that
23:25:49 <AnMaster> but I don't trust it
23:25:52 <pikhq> IIRC, it's in GCC.
23:25:54 <ehird> so SHUT UP and stop thinking that you're the most clever c programmer and if you don't immediately understand how osmething works IT CAN'T BE TRUSTED
23:25:59 <ehird> pikhq: yes, GCC uses it
23:26:01 <GregorR> What do you mean, "how could it keep track of that"?
23:26:08 <GregorR> How is it difficult to keep track of at all?
23:26:20 <GregorR> All it does is scan memory, it doesn't know you put it in an unsigned int, then an array, then whatever.
23:26:27 <ehird> GregorR: So.. is SuperEgoBot okay to use as a name or do I have to be clever and think of somethiing else? ;)
23:26:27 <GregorR> It just knows that it sees something pointer-like that points to valid memory.
23:26:44 <immibis> ehird: DriheBot.
23:26:47 <GregorR> ehird: To be honest, I would appreciate it if you didn't use something derivative of the name "EgoBot"
23:26:47 <AnMaster> GregorR, so it scans the memory pages? it isn't smart using ref counting?
23:26:53 <GregorR> ehird: But I'm not going to stop you.
23:26:59 <ehird> GregorR: all right. SuperEgoBot just amuses me ;)
23:27:04 <GregorR> AnMaster: How could it POSSIBLY use ref counting? It just sits on top of C!
23:27:11 <ehird> GregorR: OK, can I at least call it superegobot until I think of a brilliant name for it? :)
23:27:13 <AnMaster> GregorR, hm
23:27:18 <GregorR> ehird: Valtevar.
23:27:23 <ehird> GregorR: Lame! ;)
23:28:19 <immibis> ehird: AlterEgoBot?
23:28:46 <ehird> immibis: he doesn't want me to use a derivative of EgoBot
23:29:18 <immibis> ehird: Toboge.
23:29:24 <immibis> ehird: I used one.
23:29:28 <immibis> ehird: Why can't you?
23:29:51 <immibis> toBogE is EgoBot backwards.
23:30:09 <ehird> GregorR: are you OK with the name toboge?
23:31:53 <AnMaster> ehird, this works even with many shared objects?
23:32:10 <AnMaster> hm
23:32:19 <AnMaster> (as in *.so)
23:32:24 <ehird> yes
23:32:27 <ehird> GregorR: ping
23:32:27 <immibis> ehird: Pong!
23:32:30 <AnMaster> so the .so file uses garbage collector too
23:32:36 <ehird> AnMaster: something like that
23:32:42 <ehird> i don't know the internals, the creators are wizards :)
23:33:03 <AnMaster> ehird, what if a .so does use garbage collector but the main program doesn't?
23:33:03 -!- jix has quit ("CommandQ").
23:33:57 <ehird> beats me, i think everything still goes OK
23:34:00 <ehird> on some platforms
23:34:04 <ehird> a GC_init() is required, though
23:34:05 <immibis> ehird: Pong!
23:34:05 <immibis> ehird: Ping!
23:34:10 <ehird> so you just have to say in the shared library something like
23:34:10 <immibis> ehird: Pong!
23:34:10 <immibis> ehird: Ping!
23:34:16 <ehird> 'HAY, use gc_init'
23:34:16 <immibis> ehird: Pong!
23:34:16 <immibis> ehird: Ping!
23:34:24 <ehird> or define 'sharedlib_init' and tell people to use that AND SHUT THE FUCK UP immibis
23:34:24 <immibis> ehird: Pong!
23:34:24 <immibis> ehird: Ping!
23:34:27 <ehird> STOP IT
23:34:27 <immibis> ehird: Pong!
23:34:27 <immibis> ehird: Ping!
23:34:27 <ehird> NOW
23:34:27 <immibis> ehird: Pong!
23:34:27 <immibis> ehird: Ping!
23:34:30 <ehird> YOU FUCKING MORON
23:34:30 <immibis> ehird: Pong!
23:34:31 <immibis> ehird: Ping!
23:34:43 <ehird> CAN SOMEONE PLEASE KICK immibis HE HAS AN AFFECTION FOR RETARDED SPAMMING SCRIPTS
23:34:44 <immibis> ehird: Pong!
23:34:44 <immibis> ehird: Ping!
23:34:47 <AnMaster> ehird, also I think a lot of X libraries internally malloc stuff that I don't know about
23:34:54 <AnMaster> ehird, I agree
23:34:54 <immibis> oops bug very sorry
23:35:02 <AnMaster> immibis, stop testing them here
23:35:08 <AnMaster> create a new channel
23:35:17 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx.").
23:36:17 <GregorR> ehird: Toboge is sufficiently different, yuh.
23:36:40 <AnMaster> GregorR, err it is egobot backwards
23:37:21 <immibis> i told you it was not intentional and i am very sorry.
23:37:45 <ehird> GregorR: so is SuperEgoBot
23:37:47 <ehird> I could call it
23:37:50 <ehird> SuperEgoBawt
23:37:52 <ehird> if that would help
23:38:00 <immibis> ChickenBot.
23:38:28 <immibis> OgeRepusBot
23:39:28 <ehird> GregorR: opinions?
23:43:58 <EgoBot> hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 hi world.........................!i 3 h
23:44:33 <AnMaster> huh
23:44:36 <AnMaster> interesting
23:57:41 -!- Tritonio__ has joined.
23:59:06 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
←2008-01-29 2008-01-30 2008-01-31→ ↑2008 ↑all