00:13:14 -!- Sgeo has joined.
00:19:03 <bsmntbombdood> I hate it when people say HTML isn't a programming language
00:26:06 <SimonRC> bsmntbombdood: It's a language, but not a *programming* language.
00:26:36 <bsmntbombdood> "A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. "
00:26:36 <SimonRC> You can't calculate anything with it
00:27:02 <GregorR-W> HTML is a markup language, not a programming language.
00:27:18 <bsmntbombdood> Programming languages don't have to be turing complete
00:27:31 <SimonRC> Note: a programming language need not be turing-complete
00:27:50 <GregorR-W> "A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer." < true
00:28:04 <GregorR-W> "All artificial languages that can be used to control the behavior of a machine, particularly a computer are programming languages." < false
00:28:32 <SimonRC> Epigram is clearly a programmming language, even though it is not generally recursive, and htus not Turing-Complete.
00:29:24 <SimonRC> Anyway, having taken the bait, I should go to bed.
00:30:43 <GregorR-W> HTML provides no branch or loop semantics, which are IMHO a requirement for anything to be considered a programming language.
00:33:04 <GregorR-W> By the way, on that same page of Wikipedia: "Non-computational languages, such as markup languages like HTML or formal grammars like BNF, are usually not considered programming languages."
01:30:26 -!- GregorR-W has quit ("Chatzilla 0.9.77 [Firefox 2.0/0000000000]").
02:45:39 -!- ihope_ has quit (Connection timed out).
02:51:59 -!- oerjan has quit ("Good night").
03:36:50 -!- pikhq has joined.
04:02:38 <GregorR> require("stdio.plof"); stdio.StdOut.writeln("Plof lives!");
04:06:50 <pikhq> string ow! "Making BFM a better compiler hurts!"
04:18:39 -!- bsmnt_bot has joined.
04:18:49 <pikhq> Now, can you add BFM support to EgoBot? :p
04:19:15 -!- EgoBot has joined.
04:19:39 <GregorR> !raw PRIVMSG #esoteric :I'm better.
04:20:12 <EgoBot> help ps kill i eof flush show ls bf_txtgen usertrig daemon undaemon
04:20:14 <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
04:20:21 <pikhq> bsmntbombdood: No, really?
04:20:35 -!- GregorR has changed nick to bsmntbombdood2.
04:20:48 -!- bsmntbombdood2 has changed nick to GregorR.
04:20:58 <bsmntbombdood> "^:bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG \S* :!exec"
04:21:18 * pikhq has a better regex. . .
04:21:27 <bsmntbombdood> oops, "^:bsmntbombdood!n=gavin@about/copyleft/user/bsmntbombdood PRIVMSG \S* :!raw"
04:22:57 <pikhq> That could probably be abused.
04:23:04 * pikhq looks for abusive ctcps
04:23:50 <bsmntbombdood> !exec self.register_raw("^pikhq.*!%s" % "zomgquit", lambda x : True)
04:24:09 <GregorR> Repeat that a few times == DDOS
04:25:22 -!- GregorR has changed nick to pikhq_not.
04:25:42 -!- pikhq_not has changed nick to GregorR.
04:26:41 <bsmntbombdood> !exec self.register_raw("^:pikhq.*!%s" % "zomgquit", lambda x : True)
04:28:46 <bsmntbombdood> !exec self.register_raw("^:GregorR.*!%s" % "zomgquit", lambda x : bot.raw("PRIVMSG GregorR :ha ha you can't kill it"))
04:29:55 <bsmntbombdood> :kornbluth.freenode.net 505 bsmnt_bot :Private messages from unregistered users are currently blocked due to spam problems, but you can always message a staffer. Please register! ( http://freenode.net/faq.shtml#privmsg )
04:33:37 <GregorR> On an unrelated note, http://www.codu.org/plof/
04:37:04 -!- bsmnt_bot has quit (Remote closed the connection).
04:37:23 -!- bsmnt_bot has joined.
04:38:30 * pikhq recommends you rewrite the bot in Tcl.
04:38:52 <pikhq> With [package require irc], from Tcllib, you've got your work cut out for you.
04:39:41 <bsmntbombdood> http://bsmntbombdood.mooo.com/ircbot.py is teh codz0rs
04:40:20 <GregorR> pikhq: The phrase, "You've got your work cut out for you" means "You have a lot of work"
04:47:31 <GregorR> In D, so you probably can't [easily] use it ^^
04:49:33 <GregorR> Inheritance, interface implementation and such are abstracted to object arithmetic.
04:51:14 <GregorR> Want me to compile dplof for you?
04:54:19 <GregorR> http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-19.tar.gz
04:55:01 <GregorR> It's a sort of crappy parser, so if you get an assertion failure, it's probably unparsable code with no useful error message :)
04:57:38 -!- bsmntbombdood has left (?).
04:57:42 -!- bsmntbombdood has joined.
04:58:02 <GregorR> Could you be less specific? :)
04:58:29 <GregorR> var linefromstdin = stdio.StdIn.readln();
04:58:58 <GregorR> I suppose I should allow it to read from stdin >_>
05:01:33 <GregorR> [] is an object, {} is a function
05:03:12 <GregorR> There's at least one point where I have: *(cast(int *) 0) = 0;
05:03:25 <GregorR> Because it's easier to backtrace than an assert :)
05:03:46 <GregorR> pastebin your code, I'll probably see the issue.
05:04:07 -!- pikhq has quit (Connection timed out).
05:05:12 <GregorR> I think now would be a good time to make some useful error messages for misparses :)
05:05:30 <GregorR> I just assert()'d away anything that couldn't parse :)
05:08:47 -!- Sgeo has quit ("Ex-Chat").
05:12:25 <GregorR> Pretty much everything needs a semicolon - there are only statements.
05:12:32 <GregorR> In [], elements are comma-separated.
05:12:55 <GregorR> (I'm considering changing that)
05:13:30 <GregorR> OH - you can have an expression as the only member of a function, with no ;, in which case it's a function that returns the value of that expression.
05:15:37 <GregorR> OH ... I thought it was 'this', but I'm starting to think I may not have implemented that in dplof 8-X
05:15:49 <GregorR> Shoot ... I may have forgotten to put that in >_>
05:19:46 <GregorR> Yeah, I'm fixing it as we speak.
05:26:12 <GregorR> Done, making you a new binary.
05:28:10 <GregorR> http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-19-2.tar.gz
05:33:49 <GregorR> I think I inexplicably included some rampantly-incomplete core/*.plof files in that tarball, but no worries :P
05:37:38 -!- bsmnt_bot has quit.
05:44:09 <GregorR> Yup, that's one of those nasty things you can do :P
05:44:18 <GregorR> Incidentally, "this." isn't necessary there.
05:44:38 <GregorR> (Part of why I didn't remember to put in "this" is that it's not strictly necessary)
05:44:46 <GregorR> (Erm, not with a dot anyway)
05:45:11 <GregorR> If you don't put a "var" before something, it will look for it in parent scopes, not create a new one at the current scope.
05:45:45 <GregorR> Basically, you need to explicitly declare all variables *shrugs*
05:47:01 <GregorR> They are - variables in objects, however, have a different syntax entirely.
05:47:31 <GregorR> Variables in [] are just comma-separated variables - it doesn't take full expressions, so it's not ambiguous.
05:48:49 <GregorR> I think i can explain that better:
05:48:59 <GregorR> In {} you have code: statements, expressions, whatever.
05:49:04 <GregorR> In [], you just have a list of variables in that object.
05:56:43 -!- ShadowHntr has quit ("End of line.").
05:59:30 <Sukoshi> So, is Plof a whole bunch of Flex/Bison?
06:01:21 <Sukoshi> Aha. A real programmer, huh? ;)
06:01:25 <GregorR> It only has three intrinsic constructs, so parsing is simple.
06:01:45 <Sukoshi> I'm attemping to follow a Ruby discussion in Japanese.
06:02:13 <GregorR> And how's your Japanese? :)
06:02:30 <Sukoshi> Actually, enough to follow most of the conversation without resorting to the dictionary.
06:03:03 <Sukoshi> The computer words and some other stuff get me.
06:03:19 <Sukoshi> Apparently a packed Ruby Struct is a good structure to use for something like an address book.
06:03:29 <GregorR> I think vocabulary is the reason I never learned another language: grammar I can do, but vocabulary is just impossible X_X
06:03:47 <Sukoshi> I crunch some 60 words a day for a while, then go on a massive review.
06:03:57 <Sukoshi> I'm in a review phase now.
06:10:46 <Sukoshi> Meh. Obviously Japanese people aren't as clean as they're advertised to be.
06:34:48 -!- Sukoshi has changed nick to Razor-X.
06:34:55 -!- Razor-X has changed nick to Sukoshi.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
09:25:55 -!- CakeProphet has quit (Read error: 104 (Connection reset by peer)).
09:26:25 -!- CakeProphet has joined.
09:35:14 -!- CakeProphet has quit (Connection reset by peer).
09:35:19 -!- CakeProphet_ has joined.
09:35:23 -!- CakeProphet_ has changed nick to CakeProphet.
09:37:43 -!- CakeProphet_ has joined.
09:38:23 -!- CakeProphet has quit (Read error: 131 (Connection reset by peer)).
09:38:24 -!- CakeProphet_ has changed nick to CakeProphet.
10:02:25 -!- Asztal has joined.
10:31:59 -!- CakeProphet has quit ("haaaaaaaaaa").
10:37:38 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
10:38:07 -!- puzzlet has joined.
10:38:09 -!- puzzlet has quit (Client Quit).
10:38:20 -!- puzzlet has joined.
10:41:04 -!- ihope_ has joined.
12:00:51 -!- has_many_questio has joined.
12:02:25 -!- has_many_questio has left (?).
13:46:10 -!- ore2 has joined.
14:39:52 -!- jix_ has joined.
15:00:33 -!- pikhq has joined.
15:51:29 -!- GregorR-W has joined.
15:53:53 -!- Asztal has quit (Read error: 113 (No route to host)).
16:45:10 -!- PiedotTaste|Lapt has joined.
16:48:06 <pikhq> ERROR: LAZY PROGRAMMERS
16:49:16 -!- PiedotTaste|Lapt has quit ("bai bai.").
17:05:12 -!- bsmnt_bot has joined.
17:05:19 <GregorR-W> bsmntbombdood: My thoughts exactly :P
17:07:45 <pikhq> You live in Colorado?
17:08:32 <GregorR-W> Why is your bot in ... I don't even know what country. Belaruse?
17:09:58 <GregorR-W> When it's below freezing, we get freezing rain and sleet.
17:10:04 <GregorR-W> When it's above freezing, we get rain.
17:11:00 <pikhq> When it's below freezing, we get either snow or cold air.
17:11:21 <pikhq> When it's above freezing, we get either snow, hail, rain, cold air, or warm air.
17:11:46 <Sukoshi> When it's below freezing, us Californians wonder what the hell is going on in the world.
17:12:14 <pikhq> Sukoshi: Need an extra "i" for your name to be valid Romanised Japanese. ;)
17:12:55 <GregorR-W> ... they ... don't have a "shi" sound?
17:13:05 <Sukoshi> My IME and xjdic and kinput2 read it correctly.
17:13:13 <pikhq> GregorR-W: Yes, they do.
17:13:55 <pikhq> Sukoshi: The word "sukoshii" has an elongated "i".
17:14:07 <pikhq> Unless you refer to some word that I don't know, that is. :p
17:14:29 <Sukoshi> My dictionary says Sukoshi, with no extra `i'.
17:15:16 <pikhq> I could've *sworn* it was an i-adj.
17:15:33 * pikhq needs to get an IME set up. XD
17:15:34 <Sukoshi> Maybe you're thinking of 小さい
17:15:44 <Sukoshi> Small quantity, little, few.
17:17:06 <pikhq> You're right. I'm horribly wrong.
17:17:42 <pikhq> What IME do you recommend for GNu/Linux?
17:17:53 <pikhq> (and link, please)
17:17:57 <Sukoshi> Of course, 小さ(な) is also valid ... ;)
17:18:04 <Sukoshi> kinput2 out of Emacs, mule in Emacs.
17:18:17 <Sukoshi> Mule is incredibly, because it can switch encodings and everything.
17:18:22 <pikhq> Oh. . . It's an Emacs package.
17:18:30 <pikhq> Too bad I don't use Emacs for IRC.
17:18:47 <Sukoshi> kinput2 with canna as your dictionary.
17:19:13 <pgimeno> --- 少し :Erroneous Nickname
17:19:13 <Sukoshi> kinput2 has nothing to do with KDE.
17:19:26 <Sukoshi> ... Or any other WM for that matter.
17:19:42 <pikhq> No installation candidate in my apt repository. :'(
17:20:04 <pikhq> Package kinput2 is not available, but is referred to by another package.
17:21:05 <pgimeno> pikhq: try apt-cache search kinput
17:23:28 <pikhq> Now to figure out how to get it working.
17:24:10 <Sukoshi> Run ``kinput2 -canna &'' somewhere.
17:24:39 <Sukoshi> Then you have to mess with some envars, like LC_ALL, IIRC.
17:25:00 <pikhq> $ zsh: command not found: kinput2 ~/gnash/server/asobj
17:25:33 <pgimeno> pikhq: use dpkg -L kinput2-canna to see which files it installed; look for the /usr/bin ones
17:25:46 <Sukoshi> Mmmf. It's been a while since I've used apt.
17:25:59 <Sukoshi> I've gotten used to the Slackware way of things, I guess.
17:26:00 <pikhq> /usr/X11R6/bin/kinput2-canna
17:26:33 <pgimeno> that'd be it, try kinput2-canna
17:28:00 * pikhq isn't getting anything
17:28:28 <pgimeno> "When everything fails, it's time to read the manual"
17:28:29 <Sukoshi> Like I said, restart your X application with your modified envars.
17:29:16 <Sukoshi> And then you use Ctrl+Shift, IIRC, (dependant on package/version/whatever) to start the IME.
17:29:19 <Sukoshi> Read the manual, I suggest.
17:31:27 * pikhq has discovered one simple reason. . .
17:31:32 <pikhq> GNOME Terminal: locale not understood by C library, internationalization will not work
17:32:32 <pgimeno> try (as root) dpkg-reconfigure locales
17:32:55 * pikhq waits on gNewSense's dpkg
17:36:11 -!- tgwizard has joined.
18:00:27 <pikhq> GNOME Terminal: locale not understood by C library, internationalization will not work
18:04:00 <GregorR-W> You could (at some point) write a Plof version :)
18:04:45 * pikhq should start learning Plof sometime
18:05:01 <pikhq> Maybe make a simple method of accessing C++ classes from Plof.
18:07:02 <GregorR-W> Plof is capable of accessing C via dlopen and friends.
18:07:14 <GregorR-W> So accessing C++ would likely involve making a C wrapper.
18:07:41 * pikhq tries to find the Plof website
18:07:58 <GregorR-W> If you want a binary of dplof I'll make one for you (presuming you don't have GDC)
18:09:14 * pikhq should probably get GDC.
18:11:12 <Sukoshi> Oh. Are you supposed to use your pinky for parentheses or something?
18:11:27 * Sukoshi learned Dvorak the homebrew way.
18:11:42 <Sukoshi> My middle finger goes on parentheses.
18:11:52 <Sukoshi> I need an idea for a project in Lisp, ya know.
18:12:15 <pikhq> GregorR-W: Just hand me a binary. ;)
18:12:48 <Sukoshi> Blah. Time to write an HTTP parser :(
18:12:59 <Sukoshi> And client. A very limited client, though.
18:14:08 <pikhq> I might just pick up the Digital Mars compiler. . .
18:14:24 <GregorR-W> DMD + GNU/Linux = painful horribletude.
18:14:35 * pikhq gets the GCC source, then.
18:14:43 <GregorR-W> http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-19-2
18:14:48 <GregorR-W> http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-19-2.tar.gz
18:14:51 <Sukoshi> Guh. But GCC is a pain in the *arse* to compile.
18:14:54 <GregorR-W> And http://www.codu.org/gdc-nightly/ if you want it.
18:15:04 <pikhq> Sukoshi: Yes, but I know how to build GCC.
18:15:18 <GregorR-W> GCC isn't so bad, all things considered.
18:15:33 <Sukoshi> Yeah. I'll bet it takes less time than Firefox2.
18:15:49 <GregorR-W> Sukoshi: I can say for a fact that it does.
18:15:56 <GregorR-W> Having compiled both of them on several platforms.
18:16:07 <pikhq> My desktop does Gentoo.
18:16:15 <pikhq> I know that it's time-consuming.
18:16:20 <bsmntbombdood> The slot SOCKET is unbound in the object #<IRC-BOT {AEBCAE9}>.
18:17:46 <Sukoshi> Well uh... bind the slot then?
18:21:41 -!- oklopol has joined.
18:21:41 -!- okokoko has quit (Read error: 54 (Connection reset by peer)).
18:26:39 <ore2> Count twice to ten.
18:30:20 <Sukoshi> Error: Twice is not a valid range bound.
18:34:31 <pikhq> ERROR: This programmer accepts Brainfuck code only.
18:35:25 <pikhq> ERROR: Not enough errors.
18:46:06 <GregorR-W> pikhq: Presumably you got the dplof binary working? :P
18:47:10 <pikhq> Going to work on GDC later.
18:47:18 <pikhq> (when I feel like it ;))
18:47:33 <GregorR-W> You did see my link to the GDC nightly-build binaries, right?
18:48:31 <GregorR-W> "<GregorR-W> And http://www.codu.org/gdc-nightly/ if you want it."
18:49:44 <pikhq> It seems that Plof has sufficient capabilities to allow for a good deal of useful programming. . .
18:49:54 <pikhq> Like, say, a GTK binding.
18:50:13 <pikhq> I assume more features would be nice, though.
18:50:15 <GregorR-W> I'd like to make a "standard" Plof GUI interface.
18:51:00 <pikhq> That'd work with GTK, Qt, and W32?
18:51:44 <GregorR-W> Well, whatever anybody was willing to implement, I juts mean a set of objects with defined interfaces that could have different backends implemented, so you could just use pui.whatever and it would work on every platform.
18:52:16 <GregorR-W> Actually, I could more easily just answer "yes" :P
18:52:57 * pikhq wonders what the hell else(); does
18:53:36 <GregorR-W> if(condition, {foo;}); else({bar});
18:53:59 <GregorR-W> Or do you mean how it actually works?
18:54:55 <pikhq> How the hell do you have an else call without an if call?
18:55:44 <pikhq> Wouldn't if(version(), {foo;}); make more sense?
18:56:12 <GregorR-W> To the degree that I think I'll make that change right now.
18:56:24 <pikhq> And why the hell is else a seperate function?
18:56:45 <GregorR-W> There are only functions and objects, conditions are not language intrinsics.
18:57:04 <pikhq> In most functional languages I've seen, 'else' is done via something like, say, another set of arguments to 'if'.
18:57:25 <pikhq> One doesn't do: if {foo} {bar};else {baz}
18:57:42 <pikhq> "if {foo} {bar} else {baz}" is how it's called. . .
18:57:48 <pikhq> With just the function 'if'.
18:58:04 <GregorR-W> Hm, the reason I didn't do it that way is that there wouldn't be a word "else", but I think that that could be repaired...
18:58:32 <pikhq> Everything else, I'm loving.
18:58:45 <GregorR-W> Would you argue: if(condition, {blah}, elsif, condition, {blah}, else, {blah})
18:59:02 <GregorR-W> (Note the comma after elsif and else)
18:59:19 <pikhq> You know, that sort of *does* look weird in Plof.
18:59:39 <GregorR-W> It's hard to fit something like you're showing in that would not break my core rule of minimal constructs.
19:03:35 <GregorR-W> It looks pretty C-like except for the commas :P
19:18:50 <lindi-> arguments are evaluated lazily?
19:21:24 <GregorR-W> The answer to which is "not unless I made them functions"
19:21:35 <GregorR-W> Which I should to make it consistent with while anyway.
19:27:45 <pgimeno> I like the idea of statements being also expressions (unlike C)
19:39:35 <GregorR-W> Since nobody's vehemently against it, I'm doing it the way pasted.
20:02:35 -!- oklopol has quit (Excess Flood).
20:02:45 -!- oklopol has joined.
20:03:58 <Sukoshi> So, are functions first-class datatypes?
20:06:22 <Sukoshi> Or, a more general structure, like Lisp's cond.
20:06:51 <Sukoshi> cond( {condition, true code, false code} { ... } {default, code} )
20:19:38 -!- bsmnt_bot has quit (Remote closed the connection).
20:20:30 <GregorR-W> Sukoshi: Yes, functions are first-class data types, Plof is intended to be a hybrid of functional and imperative.
20:20:58 <GregorR-W> bsmntbombdood: I did it like that before, but it was confusing since the only thing separating the if-true block and the if-false block was a comma.
20:21:34 <GregorR-W> bsmntbombdood: Yeah, but lisp is terrible.
20:22:09 <Sukoshi> It works in Lisp because of the way the parentheses work.
20:22:33 <GregorR-W> The basic syntactic structure of Plof and lisp are too different to compare. eg, exactly what Sukoshi just said.
20:23:02 <Sukoshi> Remember that if you want a block in IF, you have to use PROGN (or BEGIN in Scheme).
20:24:11 <Sukoshi> Heh. Darcs is a **** on Solaris, I hear.
20:24:21 <Sukoshi> A friend of mine is trying unsuccessfully to setup revision control systems.
20:24:39 <Sukoshi> You could have something like: (defun meh () (if 3 4 5)) in CL which would always return 4.
20:24:41 <GregorR-W> But to host a darcs repository takes about zero effort, so I went with darcs ;)
20:25:03 <GregorR-W> I actually prefer centralized SCM to decentralized SCM.
20:25:15 <Sukoshi> I like what decentralized offers.
20:25:24 <Sukoshi> Especially now that I've come up with a dead project maintainer.
20:26:07 <GregorR-W> Inactive is a slightly more curable case :)
20:26:09 <Sukoshi> Well, I lie. He just came back to life yesterday.
20:26:24 <Sukoshi> ....Which is a little late, since I've already made some really big patches.
20:31:10 <Sukoshi> Heh. Which is why you don't.
20:31:17 <Sukoshi> It takes more RAM to compile than this box has.
20:31:35 -!- ore2 has quit ("Nettalk6 - www.ntalk.de").
20:32:19 -!- pikhq has quit ("leaving").
20:38:10 <bsmntbombdood> "Unlike (most of) the other P-languages, Plof attempts to be usable as a functional programming language"
20:49:11 <Sukoshi> Even then, I don't think functions are first-class data types in Python.
20:50:11 <bsmntbombdood> Well maybe not, I'm not quite sure what that means
20:50:35 <Sukoshi> You can do everything with a function that you can do with every other data type.
20:50:41 <Sukoshi> Like integers, characters, etc.
20:51:12 <Sukoshi> In most cases, passing functions as arguments is a big step in that direction.
20:54:22 -!- Asztal has joined.
21:00:13 <bsmntbombdood> But by that definition, functions are first-class data types in C
21:00:39 <GregorR-W> That's not a definition you jackass X_X
21:00:58 <GregorR-W> ANYway, functions are first-class data types in C.
21:01:08 <GregorR-W> But there's more to functional programming than functions being first-class data types.
21:01:52 <Asztal> they are? I mean, you can pass them around, but it's really rather awkward
21:02:15 <GregorR-W> You can, and the only thing that's awkward is the syntax.
21:03:53 <GregorR-W> Functional programming also requires things like nested functions,
21:04:13 <GregorR-W> Hm, can't think of other off the top of my head.
21:04:59 <GregorR-W> Closures are a superset of nested functions.
21:05:13 <GregorR-W> And while you can implement closures in C, it's a mild HUGE PAIN IN THE ASS :)
21:05:48 <GregorR-W> Given that C is Turing-complete, if you're going to be that lenient with your definition of "functional programming", C must by-definition of its being TC be functional.
21:06:53 <GregorR-W> It's a huge pain in the ass, and requires about nine levels of abstraction, but it's possible.
21:07:13 <GregorR-W> You'd have to make functions (possible), and then function arguments (possible), and then pointers.
21:07:26 <GregorR-W> It doesn't have functions, and C doesn't have closures.
21:07:57 <GregorR-W> If you're going to say that C has closures, then BF without a shadow of a doubt has functions.
21:08:57 <GregorR-W> Now you see my point about how C is not a functional language? :)
21:10:07 <bsmntbombdood> How would you implement functions in a language without jmp though?
21:12:44 <GregorR-W> Every "label" corresponds to a "bucket" in the beginning of the memory space. To perform a jump, you set a bucket to 1, then drop out of your loop. The whole program is in a big loop that reads all the buckets and goes to the code corresponding to the bucket which is set.
21:14:57 <GregorR-W> Every "label" (in code) corresponds to a "bucket" in the beginning of memory space. There is a loop in the code that reads in the buckets and goes to the code corresponding to the bucket which is set.
21:36:02 * SimonRC wonders if there is a database server anywhere that can provide sub-millisecond response times.
21:38:42 <GregorR-W> That was an astonishingly content-free statement :p
21:39:17 <ihope_> SimonRC: respond with an error message most of the time.
21:39:27 <ihope_> Or, rather, the smallest possible well-formed response.
21:39:53 <GregorR-W> SELECT * FROM bleh; -> ERROR("This is a fake database engine")
21:40:07 <ihope_> That would probably be an RST packet.
21:41:18 -!- ShadowHntr has joined.
21:42:45 <GregorR-W> In case anybody's interested in Plof with the new changes, http://www.codu.org/plof/dplof-x86-gnuWlinux-2006-12-20.tar.gz
21:43:03 -!- GreaseMonkey has joined.
21:43:13 <bsmntbombdood> var A =[]; A:["main"] = {println("Hi\n");}; a = new(A); a:["main"]();
21:43:24 <SimonRC> I would need a DB that fast to take the saying "A game is just a database with a pretty front-end." literally.
21:44:45 <GregorR-W> bsmntbombdood: Uh, is that not working? 8-X
21:45:13 <GregorR-W> You have to declare all variables.
21:49:50 * SimonRC reads about Codethulhu on TDWTF.
21:51:18 <SimonRC> Y'know, that image is great for so many programming projects: http://img.thedailywtf.com/images/200612/Codethulhu.gif
22:01:50 -!- jix_ has quit ("Bitte waehlen Sie eine Beerdigungnachricht").
22:03:12 <ihope_> I want a programming language that has cofactors and inhibitors and denaturing.
22:03:36 <ihope_> By the time I get back, I expect it to be all implemented and everything, okay?
22:06:29 -!- ComputinChuck has joined.
22:06:29 <SimonRC> I suspect something like could be done if you fed a sed program to itself repeatedly.
22:07:12 <SimonRC> After all, enzyes basically work my pattern-matching and simple transformations, a bit like sed does.
22:07:30 <SimonRC> ComputinChuck: good question
22:07:56 <SimonRC> I can tell you what an esotreic programming language is.
22:08:36 <SimonRC> It is a programming languag that is weird or unusula most for the sake of being so, rather than for any practical reason.
22:09:06 <SimonRC> I recommend checking out Brainfuck, INTERCAL, befunge, and Malbolge for some examples.
22:09:20 <SimonRC> then take a look at some random languages from the wiki
22:09:44 -!- GregorR-W has quit (Remote closed the connection).
22:12:07 -!- ComputinChuck has quit ("Lost terminal").
22:12:38 -!- GregorR-W has joined.
22:15:49 <Sukoshi> Hmmm. Is there a more effecient way in parsing HTTP messages rather than doing a whole bunch of strncmp or memcmp?
22:16:21 <bsmntbombdood> There's no more effiecient way to compare strings, no
22:16:39 <Sukoshi> Well... I was wondering if there's some other commonly used method.
22:16:53 <Sukoshi> If not, I'm a gonna hope Duff's Device is fast.
22:17:11 <bsmntbombdood> If you know its length is divisible by 4, you can do it larger blocks, but no matter what it's going to be O(n)
22:17:40 <Sukoshi> Oh. But Duff's Device is for copying, doh.
22:17:54 <Sukoshi> Lemme take a look at fnord's implementation of memcmp.
22:19:12 <SimonRC> Sukoshi: You could consider the message format to be a grammar of 1-character tokens and try to make a state-machine-based parser.
22:19:25 <Sukoshi> Yes, I was thinking of doing that too.
22:19:27 <SimonRC> You would be able to write assembler quite directly.
22:19:33 <Sukoshi> But that's a complex beast.
22:20:00 <Sukoshi> Heck, even in C, a parser like that is a total PAIN.
22:20:27 <SimonRC> There are these things called "parser generators", you know.
22:20:30 <Sukoshi> Uggh. Why couldn't HTTP use something sensible like opcodes? -_-''
22:20:46 <Sukoshi> SimonRC: Mmmf. Would it produce something that effecient though?
22:20:50 <SimonRC> They give you th power of a LR parser with the simplicity of a predictive parser.
22:21:07 <SimonRC> Have you ever seen the code a parser generator generates?
22:21:18 <Sukoshi> I just tend to mistrust generated code.
22:21:20 <SimonRC> It consists mostly of gotos, IIRC
22:21:31 <Sukoshi> *Cough* String to BF *cough*
22:21:36 <SimonRC> Sukoshi: ah, so you are one of those assembley nuts?
22:21:40 -!- ihope_ has quit (Connection timed out).
22:21:53 <Sukoshi> No, but this project is pretty high on the low-level side.
22:22:23 <Sukoshi> ASM optimization is going to come at a later step, not now. For now, I think I'll use Fnord's usage of memcmp for inspiration.
22:22:32 <Sukoshi> Maybe do something similar to Duff's case bastardization.
22:24:24 <SimonRC> Well, the object code that compilers output is "generated code".
22:25:12 <SimonRC> If you treat all generated code like object code, you should be fine.
22:25:16 <Sukoshi> But, I don't know if parser generator code is effecient or not.
22:25:34 <SimonRC> I.e. consider it nonportable and do not put it into source control.
22:25:55 <SimonRC> Parser generators do not worry about readability.
22:26:00 <GregorR-W> SimonRC: What about portable generated code? I get a lot of strife for putting configure in SCM :)
22:26:38 <SimonRC> GregorR-W: Putting generated code into source controll just adds pointless deltas and enourages people to edit it.
22:26:58 -!- FabioNET has joined.
22:27:19 <GregorR-W> IMHO it makes life easier for developers who don't know/care about aclocal, autoconf, autoheader, libtoolize and automake.
22:27:26 <SimonRC> Parser generators create types of prsers that humans cannot sensibly create, like LR, LALR, etc.
22:27:48 <Sukoshi> Well, I wanna see if this code is more effecient than parser generator code.
22:27:59 <Sukoshi> God help me, I'm going to commit case hell.
22:29:01 <GregorR-W> Seeing as that that's the only reason that about 60% of people come in here, I'm starting to regret I wrote that aticle XD
22:29:17 <FabioNET> they are Italian I do not speak well English excused the uneasiness.
22:29:38 <SimonRC> Sukoshi: allow me to demonstrate.
22:29:46 <GregorR-W> Sukoshi: http://www.esolangs.org/wiki/IRP
22:30:25 <Sukoshi> So is *that* why all those people have been coming?
22:30:44 <Asztal> At least they don't make us infinite loop
22:30:52 <bsmntbombdood> lol http://thedailywtf.com/forums/thread/106950.aspx
22:30:57 <Sukoshi> I thought they wanted to prove us turing complete, I thought we were special ;-;
22:31:45 <tokigun> hmm, i've tested IRP in some other channel, and got syntax error... :p
22:32:39 <bsmntbombdood> No way that part of a CS degree should be web design
22:33:54 <GregorR-W> If you're having trouble with HTML on your way to a CS degree, you need to reconsider your life choices XD
22:35:52 <GregorR-W> I haven't had that experience - there's only one incompetent teacher I've had, and she wasn't THAT incompetent.
22:36:16 <GregorR-W> And everybody loved her because she teaches mostly beginning-level courses and nobody at that level knows enough to know she's an idiot :(
22:37:07 <GregorR-W> I'm actively in the process of majoring in CS.
22:38:10 <GregorR-W> Real CS, I just finished a computer security course and last year I took advanced agorithms and networking protocols.
22:38:12 <bsmntbombdood> It pisses me off when people use CS to spice up the name of a programming class
22:38:34 <Asztal> Our teacher came out with gems like "There's no M in \"Mrs Sharp\""
22:38:56 <Asztal> (Because we got bored and started making anagrams of her name)
22:39:13 * SimonRC will never again forget which way round vector multiplication goes: http://xkcd.com/
22:39:31 -!- bsmntbombdood has left (?).
22:39:32 <Sukoshi> I'm a total web programming incompetent :P
22:39:36 -!- bsmntbombdood has joined.
22:40:03 <Sukoshi> Anything that depends on something like interface, user approachability, or aesthetic quality I fail at.
22:40:19 <SimonRC> he went through a boring phase of going on and on about his girlfriend.
22:40:58 <SimonRC> Sukoshi: OTOH, I have a tendancy ot hack URLs.
22:41:15 <GregorR-W> I'm not awful at web programming *shrugs*
22:41:17 <SimonRC> I chop bits off, remove unneeded parameters, etc.
22:41:28 <GregorR-W> I still consider myself to firstly be an app programmer though.
22:43:21 <tokigun> SimonRC, i have it too, and get angry when the hacking is impossible
22:44:03 <Asztal> With Camping, I can stand we programming
22:44:49 <Asztal> web programming is bearable... provided I use the Camping web framework :)
22:44:49 <bsmntbombdood> Asztal: Error: AssertError Failure plof/parser.d(122)
22:45:12 <Asztal> First time I've seen D used actually :)
22:48:05 <SimonRC> with university, you get that feeling far more often
22:48:11 <Asztal> I skipped 2 weeks of lectures because I was busy dying with a fever! :)
22:55:10 <GregorR-W> bsmntbombdood: Yes yes, my parser has no error messages, blahblah :P
22:55:23 <GregorR-W> bsmntbombdood: pastebin some failing code? (or did you figure it out)
23:03:52 <GregorR-W> That's a ridiculously cumbersom way to type "1" :P
23:07:16 <GregorR-W> You and your ... whatever language that is.
23:09:30 <GreaseMonkey> hashEsoteric@()=+{if({GregorR~.CheckStatus("BuildingPlofCompiler");}{GreaseMonkey~.Act("BuildTomatoCompiler")});};
23:11:43 <SimonRC> GreaseMonkey: Define "Tomato".
23:12:12 <SimonRC> and will one of you change your nick so that they don't have the forst 3 chars in common.
23:12:28 <SimonRC> It irritates my tab-completion finger.
23:13:12 <SimonRC> apparently, some people do not have nick-completion in their client, and call me "Simon".
23:13:22 <GregorR-W> [15:09]*NickServ* Nickname: GreaseMonkey << ONLINE >>
23:13:23 <GregorR-W> [15:09]*NickServ*Registered: 6 weeks 2 days (18h 35m 33s) ago
23:13:25 <GregorR-W> [15:09]*NickServ* Nickname: GregorR-W
23:13:26 <GregorR-W> [15:09]*NickServ*Registered: 35 weeks (5h 5m 11s) ago
23:13:30 -!- FabioNET has quit ("Buon natale ocn la passera").
23:13:34 <GregorR-W> And that's with my non-primary nick ;)
23:16:36 <GreaseMonkey> Tomato is a programming language under development which looks slightly similar to C and supports self-modifying code.
23:17:43 <GregorR-W> !glass {M[m(_o)O!"You're mean :("(_o)o.?]}
23:18:46 -!- bsmnt_bot has joined.
23:20:54 <GregorR-W> TO WORK, OR NOT TO WORK? That is the question.
23:21:19 <GregorR-W> !ctcp #esoteric ACTION roflcopters?
23:21:42 <bsmntbombdood> !exec self.register_raw(".*dude.*", lambda x : bot.raw("PRIVMSG #esoteric :sweet"))
23:22:58 <GregorR-W> OH! Well in that case: Hey everybody, let's DDoS the bot!
23:23:10 <GregorR-W> Repeat as desired: /msg bsmnt_bot !ctcp #esoteric PING
23:23:16 <GreaseMonkey> daemon ctcp bf8 +.[,--------------------------------]+,----------[++++++++++.,----------]+.+++++++++.
23:23:43 <GreaseMonkey> !daemon ctcp bf8 +.[,--------------------------------]+,----------[++++++++++.,----------]+.+++++++++.
23:23:48 <bsmntbombdood> !exec for i in self.raw_regex_queue: i[1] != self.do_ctcp or self.raw_regex_queue.remove(i)
23:24:28 * SimonRC looks back at this window and wibbles
23:24:29 -!- EgoBot has quit (Read error: 54 (Connection reset by peer)).
23:24:31 <bsmntbombdood> GreaseMonkey: the !exec I just ran removed the !ctcp command
23:26:08 <GreaseMonkey> daemon ctcp bf8 [[-]+.[,--------------------------------]+,----------[++++++++++.,----------]+.+++++++++.]
23:26:37 <bsmntbombdood> !exec self.register_raw(r"^:bsmntbombdood!\S*gavin@\S* PRIVMSG \S* :!ctcp", self.do_ctcp)
23:26:59 <bsmntbombdood> GreaseMonkey: Anyone matching the regex "^:bsmntbombdood!\S*gavin@\S* PRIVMSG \S* :!exec"
23:29:01 <GreaseMonkey> bsmntbombdood: do you know of any good networking tuts for linux?
23:31:29 <bsmntbombdood> One of the ones on that page might be a little more friendly ;)
23:32:17 <bsmntbombdood> !exec self.register_raw( ".*!%s" % "rtfm", lambda x : bot.raw("PRIVMSG #esoteric :dude, go rtfm"))
23:33:30 <GregorR-W> man 7 socket is a HORRIBLE reference for networking XD
23:33:59 <GreaseMonkey> so what's man 2 socket like compared with man 7 socket?
23:34:14 <GregorR-W> man 7 socket is information on socket programming in general, man 2 socket is the socket() function.
23:42:29 * bsmnt_bot feels a great love for GreaseMonkey
23:43:51 <GreaseMonkey> and it learns: "If I do this, I will feel that."
23:44:08 <Asztal> A truly intelligent bot has a terrible pain in all the diodes down his left side
23:46:19 <GreaseMonkey> for example, if you're guiding a bot around, it does not like idling as it does not achieve anything, so it will do something.
23:46:39 <bsmntbombdood> !exec self.register_raw(".*!%s .*" % "join", lambda x : bot.raw("JOIN %s" % x.split("!%s " % "join")[-1]))
23:47:14 <RodgerTheGreat> building a system to elicit "mood shifts" based on keywords and users tied to an emotional context doesn't seem like it should be that hard
23:47:36 <tokigun> but could need very large database
23:48:20 <tokigun> theorically, large database could cover most of problem; only remaining problem is how to construct the database
23:48:39 -!- Asztal has quit ("Chatzilla 0.9.75 [IceWeasel 1.0.1b2] (kidding!)").
23:48:43 <GreaseMonkey> and then it would check if it communicated or not, feeling either good or bad
23:49:10 <RodgerTheGreat> the other issue is that 'common sense' is a prerequisite for advanced intelligence, which means the machine needs a vast backlog of cultural knowledge and the like
23:50:25 <RodgerTheGreat> you'd probably get the best possible results by building a forwards-compatible database engine that you can retain throughout improvements in the rest of the system, so that you aren't wasting any learning time
23:52:12 <RodgerTheGreat> I guess the main thing is that the majority of the information you need isn't information itself, it's the interconnections between pieces of information- massive cross-indexing of everything in relation to everything else
23:52:36 <oklopol> actually, moods are but abstractions mainly, so a learning system need not have them hard-coded
23:56:11 <RodgerTheGreat> when you think about how the brain functions on a systemic level, you can strip off a large portion of it's high-level operations as a series of "services", like "internal monologue", "mind's eye", and so on. At the core, you have "consciousness"- the tricky part. I figure it most likely breaks down into pattern recognition, learning, predictive analysis, and planning capabilities that set goals and pursue the steps necessary to ca
23:57:13 -!- Sgeo has joined.
23:58:31 <RodgerTheGreat> as long as the assumption that the way these pieces of functionality are integrated is more important than the precise contents of these "black boxes" is true, I can't stand anything standing in the way of eventual development of AI on par with human abilities