←2008-03-06 2008-03-07 2008-03-08→ ↑2008 ↑all
00:00:12 <ehird> 'series of jpg images' is actually a video format
00:00:15 <ehird> can't remember its name
00:00:27 <ehird> ihope_: H.264 is where it's at
00:02:12 <ihope_> So if I have one image displaying for half an hour...
00:04:59 <ehird> The brk and sbrk functions are historical curiosities left over from ear-
00:04:59 <ehird> lier days before the advent of virtual memory management.
00:05:01 <ehird> SHUT UP OS X MANPAGES
00:05:25 -!- ihope has quit (Read error: 110 (Connection timed out)).
00:05:28 <ehird> SimonRC: where is kigforth
00:13:44 -!- atsampson has joined.
00:14:50 <lament> so i have this MPEG file
00:14:52 <lament> it's porn
00:15:21 <lament> it was made by catting several smaller clips together
00:15:51 <lament> now, some players (MPlayer) play all of it, and some (Quicktime) stop after the first clip
00:16:36 <lament> i wonder if the mpeg standard is under-specified, or if mplayer is just really smart
00:17:42 <Corun> That's what I'm normally wondering while watching catted together porn.
00:17:58 <ehird> lament: mplayer smartness
00:18:01 <ihope_> lament: yes.
00:18:02 -!- slereah__ has joined.
00:18:15 <ihope_> Which, I suppose, means "both".
00:19:16 <slereah__> >:|
00:19:35 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
00:21:25 -!- olsner has quit ("Leaving").
00:53:59 -!- Sgeo has joined.
01:10:46 <ehird> hmmm
01:10:52 <ehird> the eso-std.org pastebin will be up sometime
01:11:20 <slereah__> Is it ESO approved?
01:11:34 <ehird> but of course.
01:11:43 <ehird> unfortunately; pygments doesn't haev that many esolang highlighters right now
01:11:45 <ehird> it has Brainfuck, though.
01:11:50 <ehird> Still, writing 'em will be trivial.
01:12:12 <slereah__> What is there to highlight in BF apart from brackets?
01:17:02 <ehird> slereah__: grouping
01:17:07 <ehird> <> and +- and ,.
01:17:17 <ehird> those groups should be highlighted differently but the same between chars
01:17:19 <ehird> < and > the same
01:17:23 <ehird> + and - the same, but different from <>
01:17:34 <ehird> slereah__: Name the pastebin's code. :P
01:19:51 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)).
01:20:00 -!- Judofyr has joined.
01:20:16 <slereah__> Pastebin. 9000.
01:20:16 <slereah__> Well, I have no idea.
01:20:16 <slereah__> Wouldn't highlighting the +- and all result in a terrible eyesore?
01:20:16 <slereah__> Oh, grouping.
01:20:16 <slereah__> Why ., then?
01:20:21 <slereah__> It's a legitimate pice of code!
01:21:00 <ehird> ...
01:21:03 <ehird> Highlight +-
01:21:06 <ehird> as the same
01:21:08 <ehird> Same with <>
01:21:09 <ehird> etc
01:21:19 <ehird> I.e. groups of instructions that are inverses or whatever, should highlight the same
01:21:23 <ehird> ais523's emacs mode does that
01:21:35 <slereah__> Then I reiterate my remark : wouldn't that be a terrible eyesore?
01:22:16 <slereah__> Like a gay alphabet soup
01:22:40 <ehird> No.
01:22:43 <ehird> It's quite nice in ais523's mode
01:22:59 <slereah__> Pixplz?
01:23:04 <ehird> Noes, lazy.
01:24:14 <slereah__> Any other highlighter project in mind?
01:25:00 -!- ihope__ has joined.
01:25:03 -!- ihope__ has changed nick to ihope.
01:26:01 * slereah__ tries to make esolangs stats
01:26:10 <slereah__> number of symbols/commands
01:26:28 <slereah__> The "command" thing is a little fuzzy for some though.
01:28:55 <slereah__> ...
01:28:58 <slereah__> Holy shit.
01:29:03 <slereah__> I have no attention span
01:32:22 <ihope> It is kind of a shame that we don't have attention spans.
01:32:37 <ihope> I have a wonderful idea for a program but don't have the attention span to write it.
01:33:43 <slereah__> I usually wait for some period of activity where I can actually hold on to a project for a few weeks!
01:34:26 <slereah__> That's pretty much how the Love Machine 9000 and Lazy Bird got written. And why everything since is in limbo.
01:34:31 <ihope> Some period of activity?
01:34:43 <slereah__> You know, motivation and focus!
01:34:59 <ihope> Are you currently schooling?
01:35:14 <slereah__> Yes. Although it has little to do with it.
01:35:30 <slereah__> It's mostly motivation.
01:40:47 * ihope nods
01:41:00 <ihope> I blame all my lack of motivation to write programs and such on school. :-P
01:41:45 -!- ihope_ has quit (Read error: 110 (Connection timed out)).
01:43:17 -!- slereah_ has joined.
01:43:18 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
01:50:51 <ihope> I want to give 10,000 creatures each a 10-kilobyte brain and see what emerges.
01:51:18 <slereah_> Mudkips.
01:57:18 <ihope> Interesting.
01:57:47 <slereah_> Quite.
01:58:36 <ihope> Well, I'll be gone, sir, and anon sir, and quoting Shakespeare again when I return.
01:58:40 <ihope> Adieu.
01:58:56 <slereah_> Bai
02:00:02 -!- ihope__ has joined.
02:04:17 <slereah_> Is there a definition for a command?
02:07:21 -!- pikhq_ has changed nick to pikhq.
02:17:32 -!- ihope has quit (Read error: 110 (Connection timed out)).
02:20:30 -!- slereah__ has joined.
02:20:30 -!- slereah_ has quit (Read error: 104 (Connection reset by peer)).
02:20:56 -!- calamari has joined.
02:28:33 -!- Corun has quit ("Leaving").
03:29:19 <GregorR> ihope__: so i herd u liek mudkips
03:38:04 <Sgeo> GregorR, pikhq ihope__ slereah__: Should I remove directory manipulation, i.e. only allow removal of individual files at a time?
03:38:10 <Sgeo> And copying moving etc.?
03:39:11 <slereah__> Are you going to use it?
03:39:14 <Sgeo> ehird?
03:39:34 <Sgeo> slereah__, hm?
03:40:27 <slereah__> Because boy will you be disappointed if you toil at it only to never use it:
03:42:58 -!- ihope__ has quit (Read error: 110 (Connection timed out)).
03:49:20 <oklofok> "<ihope> I blame all my lack of motivation to write programs and such on school. :-P" <<< i did too, until i got half a year basically off school, and my productivity crashed totally
03:49:26 <oklofok> also, he's not here
03:49:38 <slereah__> Oh you.
03:50:11 <oklofok> yeah, me :)
03:51:00 <oklofok> i only implemented ints and lists to oklotalk, but while having to take a break from writing it i've realized it already lets you do pretty complicated abstractions
03:51:22 <slereah__> But...
03:51:26 -!- ehird has quit ("This computer has gone to sleep").
03:51:26 <slereah__> What is Oklotalk!
03:51:36 <oklofok> you can extend numbers with new operations and you can make new types with the old ones, and new ones... currently you cannot do both though :P
03:51:41 <slereah__> It's been six months and I still don't know! :
03:51:59 <oklofok> that will require explicit second-order coding
03:52:06 <oklofok> which is kind of a lame term
03:52:21 <oklofok> slereah__: my grandest language atm
03:52:28 <oklofok> also my oldest language
03:52:39 <slereah__> Yes, that much I know.
03:52:43 <slereah__> But what is inside!
03:52:48 <slereah__> What is the underlying concept!
03:53:01 <oklofok> it's very... ugly.
03:53:17 <oklofok> it's kinda like python, but even less restricted
03:53:38 <oklofok> syntax is 100% robust in that everything parses
03:54:28 <oklofok> it's functional, although given it has both dynamic and static typing you can just make a while function and write iterative code without knowing it's done with recursion
03:54:35 <oklofok> *scoping
03:54:54 <slereah__> 'kay
03:54:57 <oklofok> dynamic *typing* simply sounds more natural, i always confuse the terms :)
03:55:48 <oklofok> like I = 5; while ´{ I < 10 } ´{ I <- I + 1 }
03:56:12 <oklofok> "´"'s are ncessary, because functions are assumed to be funcokens otherwise
03:56:29 <slereah__> Funcokens?
03:56:32 <oklofok> a funcoken is a token parsed as an operation, kinda
03:56:49 <slereah__> Phew. I had gay porn on my mind.
03:56:53 <oklofok> so you can do 4 {_ * __ - 2} 5 to get 4*5-2
03:57:46 <slereah__> Why the double underscore in the middle?
03:57:49 <oklofok> "__" as an implicit binary operand marked isn't done yet, so you'd have to do 4 {A B->A*B-2} 5, but anyway
03:57:55 <oklofok> it means ropd
03:57:58 <oklofok> right operand
03:58:01 <oklofok> _ is left operand
03:58:09 <oklofok> ...in case both are used, that is
03:58:20 <oklofok> if you don't use __ in the body, both will be in _ :D
03:58:39 <oklofok> so... parsing needs infinite lookahead
03:58:53 <oklofok> i consider this a positive thing
03:59:17 <oklofok> well... you don't have to do that at parsing
03:59:42 <oklofok> i haven't done it yet, so i don't even know the exact semantics with more complicated functions
03:59:51 <slereah__> Heh.
03:59:58 <slereah__> Is it inspired by anything in particular?
04:00:05 <oklofok> hmm... wonder if i should make functions objokens by default...
04:00:15 <oklofok> oklotalk? i guess by K
04:00:31 <oklofok> although i don't exactly know much about K
04:00:58 <oklofok> the name looks like smalltalk, but when i decided on the name, i had no idea what smalltalk was
04:01:11 <slereah__> Holy hell, K is ugly.
04:01:17 <slereah__> Looks like an esolang!
04:01:25 <oklofok> it's fairly curious smalltalk may be the language oklotalk has most in common with.
04:01:33 * faxathisia wonders why everyone learns K instead of J :S
04:01:48 <slereah__> faxathisia: It's superior.
04:01:51 <slereah__> One letter above.
04:01:52 <oklofok> faxathisia: it's one more?
04:01:55 <oklofok> yeah
04:02:01 <faxathisia> I like J a lot more
04:02:35 <oklofok> nothing says a joke is trivial more than two guys saying it simultaneously
04:03:07 <slereah__> :D
04:04:09 <oklofok> god i'm an idiot, went to see this guy to pick up my religion assignments he'd done for me... forgot my power cord and half of the assignments at his place, and he's not coming home for ages :)
04:04:22 <oklofok> whhell, as they say, cheating is self-beating!
04:04:40 <oklofok> oh, right, they don't.
04:05:01 <oklofok> i had a dream i was running in the hallway of my house and ircing via the buttons of the elevator
04:05:16 <slereah__> What, you were senging it in binary?
04:05:49 <oklofok> no, the wall had the whole alphabet
04:06:01 <oklofok> not qwerty, pretty random
04:06:10 <oklofok> there was no screen, i saw the text in my head
04:06:34 <oklofok> this dream involved me drinking 3 liters of chocolate milk
04:06:38 <slereah__> DVORAK?
04:06:40 <oklofok> no
04:06:45 <oklofok> well
04:06:48 <oklofok> i don't know dvorak
04:06:54 <oklofok> so, maybe dvorak.
04:07:02 <slereah__> Well, you know 6 letters of it already!
04:07:10 <faxathisia> ',.ppyfgfgcrgrcl
04:07:12 <faxathisia> aoeuueididhtdhtn
04:07:13 <faxathisia> ;qjkjkxbkxbmmxbw
04:07:22 <oklofok> faxathisia: gesundheit
04:07:47 <faxathisia> this is roughly the layout :P
04:07:52 <oklofok> the problem with oklotalk parsing is, even though everything parses, most things are pretty uninteresting
04:08:15 <oklofok> faxathisia: baning at it at random?
04:08:18 <oklofok> *banging
04:08:45 <faxathisia> ',.pyfgcrl aoeuidhtn qjkxbmwv <-- without duplicates
04:09:56 <oklofok> hmm
04:10:05 <oklofok> i like the idea of left-had only okoing
04:10:14 <oklofok> scscscscscscscscscscscscs
04:10:23 <oklofok> well
04:10:28 <oklofok> i guess there's efefefefefefe
04:10:37 <oklofok> but i never got into that really
04:12:01 <oklofok> perhaps i should continue my cise interp instead of watching friends
04:17:39 <oklofok> orange juice, i want that
04:22:04 -!- Judofyr has quit (Read error: 110 (Connection timed out)).
05:26:08 -!- calamari has quit ("Leaving").
05:58:20 -!- lifthras1ir has quit (brown.freenode.net irc.freenode.net).
05:58:33 -!- Sgeo has quit (Remote closed the connection).
05:58:45 -!- lifthras1ir has joined.
06:18:02 <lament> my keyboard feels sticky and disgusting :(
06:18:09 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
06:18:46 <lament> but it's really. really pretty.
06:26:56 -!- cmeme has quit (Read error: 104 (Connection reset by peer)).
06:29:47 -!- cmeme has joined.
06:41:06 -!- Judofyr has joined.
06:45:41 <oklofok> lament: pix
06:46:04 <lament> http://z3.ca/~lament/keyboard.html
06:46:31 <oklofok> 8|
06:46:37 <oklofok> du bist schnell
06:47:26 <faxathisia> wow nice
06:47:38 <oklofok> hmph, i'm still loading
06:48:52 <oklofok> asdf i want a keyboard where keys aren't in that stupid formation
06:49:46 <oklofok> it seems i'm the only one in this world who wants their character part of the keyboard to be symmetric
06:49:56 <lament> what do you mean?
06:49:58 <oklofok> this is fairly weird, since not many have asymmetric hands
06:50:15 <oklofok> the character part of the keyboard == the left part
06:50:20 <oklofok> where the characters are
06:50:25 <lament> it's mostly symmetric
06:50:39 <oklofok> the uppermost line
06:50:48 <oklofok> is wrong
06:50:58 <oklofok> it should be a bit to the right or a bit to the left
06:51:12 <lament> i think the keyboard should just be split into two halves
06:51:14 <oklofok> every time i press a button on it, i die a bit inside, it's simply wrong.
06:51:22 <lament> since each button is only assigned one hand
06:51:30 <lament> it makes no sense to keep the two parts together
06:51:53 <lament> (well, you need to have two space buttons... big deal)
06:51:54 <oklofok> true, but that's something i can live with
06:52:02 <lament> such keyboards do exist
06:52:10 <oklofok> you mean, your kind?
06:52:14 <oklofok> that i now
06:52:15 <oklofok> konw
06:52:17 <oklofok> know
06:52:43 <oklofok> but are there any keyboards out there where the lines of the keys aren't... retarded?
06:52:59 <oklofok> i have a hard time finding a term for that
06:53:00 <lament> oh, nice, it's not even very expensive:
06:53:01 <oklofok> misaligned
06:53:01 <lament> http://www.kinesis-ergo.com/freestyle.htm
06:53:28 <oklofok> you see those in shops all the time
06:54:36 <oklofok> hmm... perhaps i could buy that projective keyboard and wribble it into giving me a sensible keyboard setting
06:54:49 <oklofok> that would be double cool
06:59:42 <oklofok> hmph, if only oses would provide a basic set of objects for programs to use, for instance playlists would readily be unionizable without any effort
07:00:08 <oklofok> well, i guess vlc supports that anyway, but i have no idea how
07:00:20 <oklofok> prolly just by opening the playlist
07:21:39 -!- Judofyr has quit.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:09:42 -!- Corun has joined.
08:17:02 -!- oerjan has joined.
08:18:33 -!- olsner has joined.
08:18:59 -!- Corun has quit ("This computer has gone to sleep").
08:56:12 -!- olsner has quit ("Leaving").
09:16:40 -!- faxathisia has quit ("-").
10:27:30 -!- oerjan has quit ("Bus-y").
10:43:39 <SimonRC> ehird: Direct-threaded code is Fail for portability. You cannot portably compile DTC at run-time: each Forth word will be a list of function calls. But with my indirect-threaded code, each Forth word is a list of word addresses; more portably compilable.
10:52:32 <SimonRC> lament: nise kb
10:52:34 <SimonRC> *nice
11:37:15 -!- tejeez has quit (Read error: 145 (Connection timed out)).
11:42:42 <SimonRC> ooh, cool stuff: http://www.lambdacs.com/debugger/debugger.html
11:43:16 <SimonRC> the more you play with it, the more amazing it gets
12:05:07 -!- Tritonio_ has joined.
12:26:02 <AnMaster> <ehird> AnMaster: fix yur bzrweb ???
12:46:09 -!- tejeez has joined.
13:20:57 -!- ihope__ has joined.
13:20:59 -!- ihope__ has changed nick to ihope.
13:23:28 -!- jix has joined.
13:42:34 -!- ihope__ has joined.
13:46:42 -!- Tritonio_ has quit (Remote closed the connection).
13:59:35 -!- ihope has quit (Read error: 110 (Connection timed out)).
14:06:15 -!- RedDak has joined.
14:38:48 -!- BMeph has joined.
14:41:36 -!- RodgerTheGreat has quit.
15:08:04 -!- Corun has joined.
15:29:24 -!- ais523 has joined.
15:33:49 -!- ihope__ has quit (Read error: 104 (Connection reset by peer)).
16:13:44 -!- Sgeo has joined.
16:14:30 <Sgeo> LAST STORY IN FINE STRUCTURE RELEASED WOOHOO! http://qntm.org/?structure
16:15:40 <ais523> Sgeo: ?
16:16:51 <Sgeo> what's ? about it?
16:19:44 <ais523> the sentence doesn't make a whole lot of sense, and I don't like clicking on random hyperlinks
16:19:49 <AnMaster> hm optimizing befunge is near impossible
16:20:01 <ais523> AnMaster: that was deliberate in the design of befunge
16:20:11 <ais523> which was designed to keep out compilers, and optimisers by extension
16:20:17 <AnMaster> in brainfuck an interpreter/compiler could just merge several + for example, in befunge that isn't possible
16:20:42 <AnMaster> the k instruction of funge98 *can* be optimized sometimes, but that is about all
16:20:48 -!- oerjan has joined.
16:20:54 <AnMaster> ais523, indeed
16:21:41 <AnMaster> possibly you could do some JIT optimization, like say, pre-compile paths or something
16:22:13 <Sgeo> Fine Structure is basically a connected collection of fiction stories by Sam Hughes
16:23:07 <oerjan> damn, here i thought there were news about the variability of the fine structure constant
16:23:22 <AnMaster> oerjan, same
16:24:19 <oerjan> it's fascinating - a subatomic, dimensionless constant that apparently may have _changed_ over the lifetime of the universe
16:24:21 <AnMaster> ais523, actually, several things in funge98 can be optimized, but almost none in befunge93
16:24:39 <ais523> oerjan: also, which happens to be ridiculously close to an integer
16:24:50 <ais523> (in fact 1/an integer, but it's dimensionless so it could just as easily be the other way up)
16:25:41 <ais523> hm... it seems to have drifted away from the 137.00 value that was announced previously
16:25:48 <ais523> probably due to more accurate measurements
16:25:58 <AnMaster> ais523, for example, on the ; instruction, store the position of the matching ; for next time you hit it, or k, for example you can optimize 2kv to just change direction once
16:27:21 -!- ehird has joined.
16:27:31 <AnMaster> oerjan, I know that, but what exactly is it, I just know it is some constant that you can measure in a way that won't be affected by instruments (ie, you can't check if an atom got larger, because the atoms in the instrument you use to check would also have grown)
16:27:48 * Sgeo was wrong, it wasn't the last installment
16:27:53 <AnMaster> ehird, hi
16:28:05 <AnMaster> <ehird> AnMaster: fix yur bzrweb <--- what is wrong with it?
16:28:08 <AnMaster> it works fine here?
16:28:10 <oerjan> http://en.wikipedia.org/wiki/Fine-structure_constant
16:28:20 <AnMaster> oerjan, thanks
16:28:51 <oerjan> WIYF (& G T)
16:28:51 <AnMaster> "WIFY"?
16:29:07 <oerjan> Wikipedia Is Your Friend
16:29:38 <AnMaster> oerjan, except, when the articles goes over my head *looks for Swedish interwiki or simple English*, like it often does in cases of physics
16:30:09 <ais523> ehird: http://pastebin.ca/932238
16:30:19 * AnMaster sighs at the usual "stub" status of the Swedish pages
16:30:22 <ais523> (you asked me how Underlambda was getting on, that's the most recent draft spec)
16:30:26 <ais523> (but it isn't finished yet)
16:30:54 <AnMaster> ais523, hm? why not use latex for writing the draft?
16:31:06 <ais523> AnMaster: because those are just the notes I made
16:31:14 * AnMaster uses the gui "frontend" lyx for anything such
16:31:21 <ais523> the actual specification is likely to be in something more suitable
16:31:33 <ais523> but flat text files are good for jotting things down in
16:31:42 <AnMaster> I find lyx is very useful, and lets me avoid headache from pure latex
16:31:57 <ais523> (I'm developing a reference interp which pretty much just implements the rewrite rules literally)
16:32:14 <ais523> However, the language is designed so that it can be compiled, or implemented much more efficiently.
16:32:37 <ais523> It's just that the rewrite rules turned out to be a good way to write the spec in an unambiguous way
16:32:58 <ais523> the definition of C, for instance, is very complicated when written out in words referring to stacks
16:33:03 <AnMaster> ais523, on jotting down I agree, but my draft for a befunge08 (basically 2D funge98 with some details to make it possible to implement in, say, bash, in a sane way, though my long term goal is extending to full 2D funge98) now at 10 pages, I use lyx for it
16:33:40 <AnMaster> <ais523> the definition of C, for instance, is very complicated when written out in words referring to stacks <-- hah indeed *has read large parts of C99 standard*
16:34:17 <AnMaster> ais523, on your specs, "#! /usr/bin/underlambda" must it be that exact line?
16:34:21 <ais523> I was referring to C the Underlambda command, not the language, but I've read much of the C89 and 99 draft standards too
16:34:23 <ais523> AnMaster: yes
16:34:24 <AnMaster> what if the binary is somewhere else?
16:34:28 <AnMaster> like in /usr/local/bin
16:34:31 <ais523> symlink
16:34:43 <ais523> but the string is more for identification of the language
16:34:51 <AnMaster> ais523, I suggest it should be allowed to be: #!/usr/bin/env underlambda
16:35:03 <ais523> there are also various subtle things, such as # can be used as a quote symbol for an m4 interpreter
16:35:16 <ais523> hmm... maybe #!/dev/env/underlambda
16:35:30 <AnMaster> ais523, that is the way I do for bash, because on for example, freebsd, all non-basesystem binaries are installed to /usr/local/*
16:35:55 <ais523> but I don't like forcing symbols into people's environments
16:36:00 <AnMaster> and really, underlambda, or any esoteric language interpreter/compiler, does hardly belong in a base system of any OS
16:36:06 <ais523> there should be a /dev/which, really
16:36:16 <AnMaster> ais523, heh? no system got that
16:36:25 <ais523> that does what the which command does
16:36:30 <AnMaster> /usr/bin/env is standard, I think POSIX
16:36:31 <ais523> so /dev/which/sh = /bin/sh
16:36:38 <AnMaster> so that means, /usr/bin/env bash
16:36:44 <AnMaster> will find bash if it is in the path
16:37:06 <ais523> looking at env's man page, that looks like a bit of a hack
16:37:10 <AnMaster> ais523, it is the generic portable way for when your interpreter may be in a different place
16:37:45 * ais523 checks my BusyBox/ash root
16:37:48 <ais523> and it seems to work there too
16:38:05 <AnMaster> for example
16:38:07 <AnMaster> $ ls /usr/bin/python* /usr/local/bin/python
16:38:08 <AnMaster> ls: /usr/bin/python*: No such file or directory
16:38:08 <AnMaster> /usr/local/bin/python
16:38:13 <ais523> so maybe /usr/bin/env would work
16:38:14 <AnMaster> on freebsd
16:38:23 <ais523> (I'm still open to suggestions)
16:38:33 <ais523> the important part is the #! / at the start, anywway
16:38:36 <ais523> s/ww/w/
16:38:39 <AnMaster> on gentoo linux:
16:38:40 <AnMaster> $ ls /usr/bin/python /usr/local/bin/python*
16:38:40 <AnMaster> ls: cannot access /usr/local/bin/python*: No such file or directory
16:38:40 <AnMaster> /usr/bin/python
16:38:52 <AnMaster> ais523, you mean that space? hm ok
16:39:30 <ais523> (it's needed for portability, because there's some OS (forgotten which one) which looks for magic 32-bit words at the start of files to determine their file type)
16:39:42 <ais523> (and it uses #! / as the magic word for executable text files)
16:39:52 <AnMaster> hm
16:40:01 <AnMaster> ais523, never heard of such a OS
16:40:08 <ais523> I suspect it's an old one
16:40:13 <AnMaster> tell me if you remember the name of it
16:41:11 <ais523> The /usr/bin/underlambda was anyway just my guess at what should go there; I'm not very good with #! strings
16:42:12 -!- jix has quit ("CommandQ").
16:48:47 <AnMaster> ehird, well what is wrong with my bzrweb? it works here
16:49:14 <AnMaster> ais523, for portability, using env is likely the best way :/
16:49:20 <ais523> agreed
16:49:28 <ais523> on modern systems, it should be available
16:49:31 <ais523> is it in POSIX?
16:49:52 <AnMaster> ais523, not sure about that, but I think it may be
16:50:09 <AnMaster> STANDARDS
16:50:10 <AnMaster> The env utility conforms to IEEE Std 1003.1-2001 (``POSIX.1''). The -P,
16:50:10 <AnMaster> -S and -v options are non-standard FreeBSD extensions which may not be
16:50:10 <AnMaster> available on other operating systems.
16:50:22 * AnMaster checks on his gentoo system as well
16:50:46 <AnMaster> hm just the usual "see info page", sigh
16:51:00 <AnMaster> (*bsd got way better man pages than linux)
16:52:30 <ais523> what do you think of the rest of the spec?
16:52:41 <ais523> (it isn't nearly finished yet, there should be a lot more, containing more advanced commands)
16:53:24 <AnMaster> ais523, was away eating so haven't had time to look
16:53:30 <ais523> OK
16:54:24 <AnMaster> ais523, tell me a summary what is special with this language please
16:54:36 <ais523> it's designed as an update to Underload
16:54:46 <ais523> Tier 1 is sufficient to be TC
16:54:51 <AnMaster> underload was one you never finished? or?
16:54:52 <ais523> and tier 2 for Brainfuck-completeness
16:54:56 <ais523> Underload was finished
16:55:04 <ais523> but wasn't very usable for practical programming
16:55:10 <ais523> seeing as it was an output-only tarpit
16:55:34 <AnMaster> ok, what was special for underload then?
16:55:34 <ais523> Underlambda is 'purer' in some sense; it's a concatenative programming language where all data are functions
16:55:42 <ais523> Underload is basically a concatenative tarpit
16:55:50 <ais523> the same way that Brainfuck is an imperative tarpit
16:55:59 <ais523> and Unlambda is a functional tarpit
16:56:19 <AnMaster> ok (you know, most of us in this channel, including myself, got very odd minds, or we wouldn't do this kind of stuff!)
16:56:37 * ais523 thinks that concatenative languages are very neat
16:56:42 <oerjan> Unlambda isn't really a tarpit. it has bells and whistles. odd ones, but...
16:56:44 <AnMaster> I can't say, I'm familiar with the concatenative languages thing
16:56:55 <AnMaster> what is their speciality?
16:57:01 <ais523> basically, all commands are functions which take a stack as an argument and output another stack
16:57:15 <ais523> and concatenating two commands leads to another command which is the composition of their functions
16:57:25 <ais523> manipulating code as data is normal, and the usual way to write loops
16:57:38 <ais523> (in fact the only flow control command in Underload is 'eval', written as ^)
16:57:56 <AnMaster> ah, multi-stack based language? and self modifying?
16:58:18 <ais523> one stack in Underload
16:58:23 <ais523> and not exactly self-modifying
16:58:30 <ais523> it's more like Muriel; you construct new program on the fly
16:58:33 <AnMaster> ah, you said functions take stacks and return stacks?
16:58:38 <ais523> yes
16:58:39 <AnMaster> but with just one stack?
16:58:45 <ais523> you apply the entire program to an empty stack
16:58:50 <ais523> because the entire program is just a function
16:58:53 <AnMaster> sounds like unefunge98, with a single stack, stripped of most commands?
16:58:53 <ais523> and it returns a stack
16:59:04 <ais523> you can use it like that
16:59:11 <ais523> except the flow control is completely different
16:59:21 <ais523> and you can put all sorts of data on the stack
16:59:35 <AnMaster> ok, flow control is one of the major things that make funges to what they are
16:59:36 <ais523> (such as bits of your program)
17:00:37 <ais523> as an example, an infinite loop in Underload is (:^):^
17:00:49 <ais523> (:^) pushes the code :^ on the stack
17:00:59 <ais523> : copies that, so there are two copies of :^ on the stack
17:01:16 <ais523> and ^ executes the top stack element, leaving :^ as the program and :^ on the stack
17:01:22 <ais523> (and everything repeats from there)
17:01:33 <AnMaster> ais523, anyway, making the #! /usr/bin/env underlambda to the fixed string would be as bad, because what if someone else made another interpreter for the language, he/she couldn't use same name, and if you want to use a specific interpreter, you would have to run it like: nameofotherinterpreter sourcefile.whatever
17:01:51 <ais523> you would do it like that anyway
17:01:57 <ais523> hmm... maybe I should simply just insist on the #!
17:01:59 <AnMaster> ais523, hm?
17:02:14 <ais523> you would normally run a program under an interpreter by writing the interpreter's filename
17:02:14 <AnMaster> ais523, actually "#! /" should be ok
17:02:20 <ais523> yes
17:02:30 <ais523> and you can write #! /bin/false if you don't want the program to be executable
17:02:48 <ais523> (one of my favourite Perl cheat quines: #!/bin/cat)
17:03:18 <slereah__> Hello people folks.
17:03:19 <AnMaster> ais523, you would? you know, likely quite a few shell scripts exists in your /usr/bin, you are not likely to run them with the interpreter's name in front
17:03:23 <ais523> hello slereah__
17:03:31 -!- slereah__ has changed nick to Slereah.
17:03:36 <ais523> yes, but I generally prefix gcc to C programs
17:03:43 <ais523> and likewise the name of a BF interp to BF programs
17:03:58 <ais523> Underlambda is expressly designed to be compilable
17:04:19 <AnMaster> ais523, for example, do you do bash /bin/gunzip? or just gunzip?
17:04:25 <ais523> (Underlambda tier 1 -> GolfScript is possible by simple text substitution, for instance)
17:04:32 <AnMaster> on my system it is a short shell script, calling gzip with some parameters
17:04:57 <ais523> same here, actually
17:05:25 <ais523> but what I'm saying is that although shell scripts and other scripts are normally run through the #! line, programs in non-scripting languages normally aren't
17:05:33 <ais523> especially on Windows...
17:05:38 <AnMaster> windows, bah
17:05:47 <ais523> yes, but I want the language to be portable
17:06:09 <AnMaster> ais523, I think python on windows installs some registry entry to make sure if you double click a *.py, it will run under python
17:06:14 <ais523> yes
17:06:15 <AnMaster> it is possible I know
17:06:18 <ais523> based on the file extension
17:06:23 <ais523> it's actually quite easy
17:06:35 * ais523 used Windows for several years (and DOS before that), but uses Linux nowadays
17:06:53 <AnMaster> ais523, anyway, by forcing a specific #!* line, you restrict portability in fact
17:07:21 <ais523> to me a portable program is one that works without problems on multiple systems without changing the source code
17:07:35 <ais523> a specific #! line is more portable, because at least it can be picked up by commands like file(1)
17:07:37 <AnMaster> ais523, ah, I went from Mac OS 7 -> redhat linux 5.0 (or 6.0? not sure)
17:08:09 <AnMaster> then slackware due to rpm hell, then suse, debian and quite a few other distros
17:08:17 <Slereah> Idea : A negative reinforcment language.
17:08:22 <ais523> but say if I write #! /home/ais523/blah/blah/blah/underlambda at the top of my script
17:08:27 <AnMaster> and finally settled on gentoo and freebsd
17:08:30 <Slereah> If there's a syntax error, it deletes your hard drive :o
17:08:39 <AnMaster> <ais523> to me a portable program is one that works without problems on multiple systems without changing the source code
17:08:39 <AnMaster> indeed
17:08:56 <ais523> then it might run on my system if I change the directory structure, but probably not yours
17:09:07 <AnMaster> <ais523> a specific #! line is more portable, because at least it can be picked up by commands like file(1) <--- file tells me a file starting with #!/bin/env bash is a bash script here
17:09:13 <AnMaster> rerr
17:09:14 <AnMaster> err*
17:09:17 <AnMaster> */usr/bin
17:09:22 <AnMaster> yay for *not copy pasting*
17:09:24 <AnMaster> :/
17:09:46 <AnMaster> <Slereah> If there's a syntax error, it deletes your hard drive :o <-- you mean deathstation 9000?
17:10:01 <Slereah> Sure, why not
17:10:05 <AnMaster> Slereah, (if you don't know it, a joke about all the "the result is undefined" in C standard)
17:10:35 <ais523> t.t: a underlambda script text executable
17:10:48 <ais523> (actual output of file(1) when run on #! /usr/bin/env underlambda)
17:10:58 <Slereah> A hostile language
17:11:22 <AnMaster> ais523, indeed, file is quite smart.
17:11:36 <AnMaster> btw, what is the correct file ending for a befunge93 program? and what about befunge98?
17:11:38 <ais523> except it sometimes identifies C files as Pascal
17:11:50 <ais523> AnMaster: .bf and .b93 according to the specs
17:12:08 <ais523> which is why I'm annoyed when people use .bf for Brainfuck
17:12:08 <AnMaster> ais523, hm, .bf sounds like brainfuck to me
17:12:15 <ais523> it should be .b
17:12:23 <AnMaster> hm
17:12:33 <AnMaster> ais523, what about befunge98 then?
17:12:42 <ais523> .b98
17:16:21 <Slereah> Ah, found the Gödel proof with modern notation.
17:16:31 <Slereah> The original has the horrible PM notation.
17:17:37 <oklofok> pm?
17:17:47 <Slereah> Principia Mathematica.
17:17:56 <oklofok> ah
17:18:10 <Slereah> Fact : Bertrand Russel hated parenthesis
17:18:19 <Slereah> He didn't even like Polish notation!
17:18:32 <Slereah> He used some sort of horrible dot based notation.
17:20:59 <Slereah> Although the Godel paper spare me the dots.
17:21:00 <oklofok> :D
17:21:03 <oklofok> sounds awesome
17:21:15 <oklofok> i don't exactly like the standard math notation
17:21:25 <Slereah> oklofok: http://membres.lycos.fr/bewulf/Russell/2.56.jpg
17:21:33 <Slereah> (Yes, that's why that folder is named Russell)
17:21:52 <Slereah> Proof written in both Russell and modern notation.
17:22:07 <oklofok> i'd like something like polish notation, but so that you could optionally have function arguments on top of each other
17:22:11 <Slereah> At least the first line.
17:22:16 <oklofok> kinda like you do with standard division notation
17:22:21 <oklofok> i cannot open that
17:22:30 <oklofok> something wrong with my internets
17:22:37 <Slereah> Oh.
17:23:31 <Slereah> Well, if you want an example;
17:23:35 <Slereah> ⊢ :: p ⊃ ~( ~q ) . ⊃ . p ⊃ q : ⊃ :. ~q ⊃ ~p . ⊃ . p ⊃ ~( ~q ) .: ⊃ : ~q ⊃ ~p . ⊃ . p ⊃ q
17:23:41 <Slereah> If the unicode displays.
17:23:46 <oklofok> it does
17:23:49 <oklofok> go that's sexy
17:23:56 <oklofok> *god
17:24:21 <Slereah> If you want to know the principle, it's in the PM. Maybe you'll understand it, unlike me!
17:24:38 <Slereah> I can sort of read it, but I don't think I can actually write big things in it.
17:25:44 <oklofok> i don't feel like guessing syntax without having no idea about semantics :P
17:25:55 <oklofok> i'm assuming the u's are what they are in math ?
17:26:08 <oklofok> "is super-/subset of"
17:26:13 <Slereah> No.
17:26:15 <oklofok> oh
17:26:17 <oklofok> just superset
17:26:20 <Slereah> It's the old notation for "imply"
17:26:21 <oklofok> and okay
17:26:24 <oklofok> yeah
17:26:29 <oklofok> that was my second guess
17:26:32 <oklofok> seen that somewhere
17:26:39 <Slereah> Translation is ⊢ ( ( p → ~( ~q ) ) → ( p → q ) ) → ( ( ( ~q → ~p ) → ( p → ~( ~q ) ) ) → ( ( ~q → ~p ) → ( p → q ) ) )
17:26:47 <oklofok> actually guessed that after realizing there were no C's
17:27:11 <Slereah> The dots serve to separate statements.
17:27:24 <oklofok> could someone link me the funge-98 spec?
17:27:53 <oklofok> i cannot access pages, so i need the link so i can ask a guy to send it to me via dcc :P
17:28:00 <ais523> http://quadium.net/funge/spec98.html
17:28:10 <oklofok> thnks
17:28:25 <ais523> I actually think that's a mirror, but it seems to have the right data on
17:28:30 <oklofok> *thanks
17:28:56 <oklofok> that's the massive spec even ehird was scared of?
17:30:49 * ais523 isn't scared of it
17:30:53 <ais523> but ehird was for some reason
17:31:23 <ehird> vacj
17:31:25 <ehird> back
17:31:31 <ehird> whoa
17:31:34 <ehird> i missed a LOT
17:32:44 <oklofok> if ehird doesn't consider something trivial, it must have some complexity.
17:32:49 -!- RedDak has quit (Remote closed the connection).
17:33:14 <ehird> ais523: /usr/bin/env is highly common
17:33:25 <ais523> I'll use that, then
17:33:45 <ehird> AnMaster: bzrweb -- yours wont;' show the file contentes
17:33:56 <ais523> I was more interested in forcing a particular magic string, than what that string actually was
17:34:08 <ais523> i.e. I want all progams to use the same string but don't care what it is
17:35:31 <ehird> [17:06] * ais523 used Windows for several years (and DOS before that), but uses Linux nowadays
17:35:34 <ehird> you used windows like yesterday
17:35:36 <ehird> :-)
17:35:46 <ehird> i remember saying that GNU/Windows was the most awful idea i've heard
17:36:04 <ais523> I still use Windows for some things, such as checking emails with my real work on my laptop
17:36:30 <ais523> generally use SunOS when I don't have my laptop (accessed via Exceed on Windows)
17:36:41 <ais523> GNU/Windows was what I used at home before I got this laptop
17:36:53 <ehird> SunOS, hee :)
17:37:16 <ais523> CDE/SunOS, to be precise
17:37:23 <ehird> i'm a mac luser but i suck because my first mac was intel
17:37:25 <ehird> it was this one
17:37:27 <ais523> but at least it gives me a POSIX shell I can type commands into...
17:37:32 <ehird> and stupidly I didn't upgrade the ram from the base 1gig
17:37:34 <ehird> :|
17:37:42 <ehird> i can upgrade that on the cheap anyway, at least
17:38:05 <ehird> works much better than my old, crusty computer though ... that thing was ready to die like 5 years ago
17:38:51 <ais523> you could try to save it by putting some lightweight version of Linux on it
17:39:05 * ais523 has been working on a Linux system with 64MB memory and 16MB disk space recently
17:39:18 <ehird> ais523: the hardware is mostly mutually compatible
17:39:19 <ais523> Busybox/Linux, not GNU/Linux
17:39:33 <ehird> the base system came from when i was a young'un..
17:39:41 <ehird> i didn't really know how to not break a computer then
17:41:10 <ehird> ais523: anyway, the eso-std.org pastebin coding is underway
17:41:14 <ais523> hmm... it seems that consistent-speed multithreading was implemented in both Funge-98 and FukYorBrane before it was added to INTERCAL
17:41:23 <ais523> ehird: are you using an Emacs-based syntax highlighter?
17:41:30 <ehird> ais523: nope, something better ...
17:41:37 <ehird> it's written in python for about two reasons - the first, and most important, is the syntax highlighter -- Pygments
17:41:43 <ehird> it supports, like, 200 languages out of the box
17:41:46 <ehird> even Brainfuck, by default
17:41:55 <ehird> and its lexer-thingy framework is very flexible
17:41:59 <ehird> http://pygments.org
17:42:12 <ais523> how does it handle Perl?
17:42:21 <ais523> that's really hard to syntax-highlight
17:42:30 <ehird> ais523: what's that 'unparsable perl' snippet again?
17:42:32 <ehird> the regexp + # thing
17:42:36 <ehird> i'll try it on pygments
17:42:51 <ehird> probably it fails somehow, but generally you shouldn't complain ;)
17:43:14 <ehird> ais523: look at the language dropdown
17:43:14 <ehird> it's huge
17:43:17 <ais523> from memory, maybeunarymaybebinary /1*0; #/;
17:43:37 <ais523> actually, that should be 'maybenullarymaybeunary'
17:43:52 <ehird> ah it's this
17:43:52 <ehird> whatever / 25 ; # / ; die "this dies!";
17:44:07 <ais523> same principle
17:44:23 <ehird> ais523: http://pygments.org/demo/636/
17:44:36 <ehird> so, it fails, but fails in the same way that the eye would scan it
17:44:55 <ehird> which.. isn't too bad, I'd say
17:46:32 <ais523> http://pygments.org/demo/637/
17:46:32 <ais523> kate beats it on that
17:46:34 <AnMaster> <ehird> AnMaster: bzrweb -- yours wont;' show the file contentes *looks*
17:46:54 <AnMaster> ehird, ah indeed
17:46:57 <AnMaster> will fix later
17:47:35 <AnMaster> now I got a funge98 question, the standard doesn't mention the issue, and mycology doesn't test it. what should happen on this code (entering from left, going right):
17:47:47 <AnMaster> 04-k#
17:48:02 <ehird> I think thats undefined
17:48:22 <AnMaster> ehird, ok, (at least C standard says things are undefined, sigh)
17:48:31 <ehird> 2008?02?02
17:48:32 <ehird> The behaviour of 1k # is now considered UNDEF.
17:48:37 <ehird> AnMaster: from mycology web page
17:48:42 <ehird> I think that's isomorphic??
17:48:46 <AnMaster> ehird, err no
17:48:49 <ehird> okay
17:48:52 <ehird> then contact Deewiant
17:48:57 <AnMaster> my question is for negative iterations
17:48:59 <ehird> memoserv might help.
17:49:05 <ehird> AnMaster: hmm
17:49:07 <ehird> jump bcakwards?
17:49:30 <AnMaster> ehird, what should happen when the iteration count is negative for k, in general, for #, jump backwards may be a good idea
17:49:35 <AnMaster> but what about other ones?
17:49:42 <AnMaster> like +? or a number
17:49:43 <ehird> AnMaster: I am sorry, I have no idea.
17:49:46 <ehird> Ask Deewiant. :-)
17:49:49 <AnMaster> hm ok
17:50:02 <AnMaster> when is he/she on irc normally? and in this channel?
17:50:18 <ehird> Used to be quite often.
17:50:25 <ehird> [17:50] -NickServ- Nickname: Deewiant << ONLINE >>
17:50:25 <ehird> [17:50] -NickServ- Registered: 1 year 9 weeks 4 days (5h 30m 22s) ago
17:50:31 <ehird> Well whaddya know -- he's online now.
17:50:42 <ehird> In #haskell, no less.
17:50:45 <ehird> I am tempted to /invite him :-)
17:50:50 <ehird> To put the real answer on the record.
17:50:55 <ehird> Aww.
17:50:57 <Sgeo> Who's Deewiant?
17:50:58 <ehird> You can only invite if you're an op?!
17:50:59 <ehird> Lame.
17:51:03 <ehird> Sgeo: Mycology & CCBI author.
17:51:14 <ehird> And, therefore, Befunge-98 guru.
17:51:33 <Sgeo> Am I a PSOX guru? </self-centeredness>
17:51:43 <AnMaster> * [Deewiant] is away (Sauna.)
17:51:56 <ehird> I'll /msg him for when he gets back, I guess.
17:53:02 <AnMaster> ehird, I sent a /msg to him
18:01:13 * oerjan smells a finn
18:01:51 <oklofok> KILL WITH FIRE
18:01:53 <oklofok> KILL KILL
18:02:10 <oerjan> no, another one
18:02:13 <oklofok> (i actually mean POWER, but no one knows the reference anyway)
18:02:56 <oerjan> POWER WITH FIRE? interesting.
18:03:11 <oklofok> umm no, silly
18:03:15 <oklofok> KILL POWER FIRE
18:03:21 <oerjan> ah
18:03:26 <oklofok> and then POWER KILL
18:03:28 <oerjan> that makes sense
18:03:28 <oerjan> not
18:04:02 <ais523> hmm... that makes even less sense than the average HOMESPRING program
18:04:09 <ais523> but apart from the caps is visually similar
18:04:15 <oklofok> :D
18:04:25 <oklofok> KILL POWER FIRE
18:04:42 <Slereah> FIRE POWER KILL
18:05:01 <oklofok> KIRE FOWER PILL
18:05:47 <Slereah> PILL ROW FREE PK
18:07:08 <oklofok> this channel must be the second weirdest i ever encountered
18:07:09 <oerjan> FLOWER KIPPER POLE
18:07:16 <oerjan> o_O
18:07:20 <oklofok> CLOWER FLIPPER MOLE
18:07:23 <Slereah> oklofok: Not even close!
18:07:27 <oklofok> *CLOVER
18:07:34 <Slereah> *CLOWNER
18:07:43 <oklofok> Slereah: well, unless you count temporary chanels
18:07:45 <oerjan> NOONE OWNS CL
18:07:47 <oklofok> *chanelzorz
18:08:01 <oerjan> chanel 5?
18:08:10 <oklofok> yeah, and 9.
18:08:29 <ais523> oklofok: which one was weirder?
18:08:44 <oklofok> not in this network
18:08:45 <ais523> (just out of interest, #esoteric seems relatively sane about half the time it's active)
18:09:24 <oklofok> sure, that's why it was #2
18:09:34 <Slereah> Esoteric is pretty sane if I compare it to some other chans.
18:09:44 <Slereah> Plus, it is even serious most of the time!
18:09:54 <oklofok> in the other channel, you often see hours of okoing without no one talking anything else.
18:09:57 <oklofok> *on
18:10:21 <ais523> okoing?
18:10:23 <oklofok> assssssdf, cise is hell to implement
18:10:30 <oerjan> oh noes, we are not the mad enough
18:10:34 <oklofok> ais523: okokokokokokokokoko
18:10:43 <ais523> why would anyone do that?
18:10:53 <oerjan> oklofok: er, are you the only person in it? :D
18:10:55 <oklofok> well, why not.
18:11:17 <oklofok> oerjan: no, we're actually a registered association :)
18:11:41 <Slereah> What, the ESO association?
18:11:43 <oerjan> association internacional de okoficacion
18:11:50 <oklofok> :D
18:12:01 <AnMaster> ehird, how goes tuberculosis?
18:12:06 <Slereah> I wonder, are there any girls on esolang?
18:12:12 <Slereah> I don't think I ever saw one.
18:12:18 <oklofok> there was this sukoshi chick
18:12:22 <lament> there were one or two
18:12:34 <oerjan> *CACK* *COUGH* *ACKFOO* *GWAPF*
18:12:35 <lament> they were about as fucked up as you would expect esolang girls to be
18:12:51 <oklofok> *two*?
18:12:54 <oklofok> hmm
18:13:03 <oklofok> actually, i think i remember another one
18:13:08 <oklofok> the one i scared away
18:13:16 <lament> with the naked pics?
18:13:30 <oklofok> i don't remember
18:14:11 <oklofok> hmm
18:14:16 <oklofok> something about being a sexbot
18:14:19 <oklofok> :D
18:14:33 <oklofok> i should dig up the logs
18:14:57 <oklofok> her nick was something like gamegirl, unless she turned out to be a guy in the end, don't remember
18:15:22 <oklofok> actually, i vaguely recall you, lament, saying it couldn't be a girl, because no girl would put "girl" on their nick
18:15:23 <oerjan> anyone with "girl" in the nick is a guy, isn't that well-known?
18:15:30 <oklofok> probably, all of this was just a dream.
18:15:32 <ehird> oerjan: vise-versa?
18:16:05 <oerjan> no, i definitely don't think everyone with "guy" in the nick is a girl. but i might be wrong.
18:16:13 -!- oklofok has changed nick to okloMAN.
18:16:24 <lament> believable so far
18:16:28 <lament> now change it to oklogirl
18:16:33 <okloMAN> omg
18:16:35 <okloMAN> no way!
18:16:39 <oerjan> rofl
18:16:43 <okloMAN> okay, okay
18:16:47 -!- okloMAN has changed nick to okloHOTGIRL.
18:16:52 <Slereah> HEY BABY
18:16:54 <lament> see? not believable at all :)
18:16:55 <okloHOTGIRL> i'm so gonna get banned from all the chans i'm on.
18:16:59 <lament> yes
18:17:03 -!- Deewiant has joined.
18:17:03 <Slereah> :D
18:17:08 <okloHOTGIRL> lez hope not.
18:17:09 <AnMaster> heh, most girls that I know are girls on irc use gender neutral nicks
18:17:10 -!- okloHOTGIRL has changed nick to oklopol.
18:17:14 <lament> oklopol: starting with this one :P
18:17:21 <oklopol> lament: nooooo :D
18:17:23 <AnMaster> Deewiant, hi, did you see the questions I asked in /msg
18:17:25 <lament> AnMaster: that's true of men too
18:17:31 <Deewiant> AnMaster: negative k is undefined by the spec
18:18:00 <Deewiant> AnMaster: in my interpreter it reflects, in some it crashes or causes infinite loops :-)
18:18:00 <oerjan> never let your k become negative
18:18:18 <oklopol> talking about the k-means algo?
18:18:20 <AnMaster> Deewiant, also in general, the instruction k execute, executes on the k, right?
18:18:21 <Deewiant> AnMaster: if you're interested in what exactly happens across interpreters have a look at http://iki.fi/matti.niemenmaa/befunge/mycology-comparison.html
18:18:24 <ehird> Deewiant: It's funny that it's taken him a few days to get close to what you did in over a year. :-)
18:18:32 <ehird> Though, admittedly, he DID have Mycology &co. to test it on :p
18:18:43 <AnMaster> so what would 2k'c do?
18:18:46 <Deewiant> ehird: most of the time was spent in writing Mycology, not the interpreter :-)
18:18:53 <oklopol> everything gets finished in a day, or in about a year
18:19:07 <oklopol> make that over a year
18:19:11 <AnMaster> Deewiant, I have used mycology on my befunge interpreter (not complete yet, but the 93 part is complete)
18:19:19 <ehird> Deewiant: Hehe. Still, in *Bash*..
18:19:25 <AnMaster> ehird, indeed
18:19:29 <ehird> ... Next up: Besed-98? :-)
18:19:39 <Deewiant> AnMaster: it's not 100% specified whether k executes on or off the k, personally I think it's on the k
18:20:06 <Deewiant> AnMaster: 2k'c is something that could do pretty much anything depending on how you want to think about it
18:20:17 <Deewiant> it's similar to the issue with nested k
18:20:32 <AnMaster> Deewiant, what would you recommend a interpreter to do in those cases?
18:20:44 <ehird> AnMaster: Print out messages implying that it is a toaster.
18:20:52 <Deewiant> i.e. if you need to execute something that moves whilst within a k, do they all execute from the k or only the first or none of them or what
18:20:58 <oerjan> a *hot* toaster
18:21:01 <ais523> sort of like the ask-the-user on division by 0?
18:21:07 <Slereah> It should output to the bell.
18:21:13 <Slereah> Your computer has a bell output, no?
18:21:19 <ehird> ais523: hah
18:21:26 <AnMaster> Deewiant, I find the 98 specs are quite unclear over k really hm
18:21:36 <ehird> Slereah: for(;;){printf("\7");fflush(stdout);}
18:21:40 <Deewiant> AnMaster: there was some correspondence between Jerome Quelin (author of Language::Befunge), Mark Glines (author of Befunge98 [the interpreter]) and myself about nested k which somewhat relates to these questions of yours
18:21:42 <ais523> (note that division by zero produces a result of zero in Funge-98, but Befunge-93 instead is supposed to ask the user what they want the result of the division to be)
18:21:46 <ehird> Slereah: for(;;){printf("\7***TOASTING***\n");fflush(stdout);}
18:21:47 <Slereah> Heh
18:21:59 <Deewiant> AnMaster: and yes, they are. as they are on many other things.
18:22:33 <ehird> Deewiant: You should write a Trefunge test-suite.
18:22:35 <Deewiant> wait, did I say Mark Glines? err. I meant Lee Houghton.
18:22:43 <ehird> Or -- a program that algorithmically generates an N-dimensional test suite!
18:22:45 <AnMaster> Deewiant, hm maybe someone should make those issues clearer? (at least C standard says things are undefined ;)
18:22:53 <Deewiant> ehird: sh'ya right :-D
18:23:09 <Deewiant> AnMaster: I suppose you could ask Chris Pressey about that if you're interested
18:23:11 <ehird> Deewiant: even an autotester
18:23:16 <Deewiant> AnMaster: I'm not sure if he is, though ;-)
18:23:32 <AnMaster> Deewiant, errm who?
18:23:35 <ehird> % ./Ncology -s 1 -e 100 -p Nfunge
18:23:49 <Deewiant> AnMaster: guy who invented Befunge
18:23:57 <ehird> ..........................FAILS on 64d: Quaridor fails to jeuros through-outen the vinn.
18:24:29 <oerjan> AnMaster: he comes by here every few months
18:24:31 <AnMaster> hm
18:24:52 <Slereah> When was the last time!
18:25:03 <Deewiant> I probably would have implemented correct nested k -handling in my interpreter but it would have turned out to be too tricky so I got lazy :-)
18:25:16 <oerjan> probably along the same time as he last edited the wiki... lessee
18:25:19 <AnMaster> Deewiant, so what does your interpreter do on nested k? I can't get the the gcc d compiler to compile on 64-bit so...
18:25:35 <Deewiant> can I paste five lines on Befunge here?
18:25:38 <Deewiant> s/on/of/
18:25:58 <Deewiant> and if not, is there a pastebin you guys use or something
18:26:03 <AnMaster> Deewiant, and also what does it do on for 2k'c
18:26:17 <Deewiant> AnMaster: I'm not sure, but I think it'd first push ' and then c
18:26:18 <ehird> Deewiant: Yes! pb.eso-std.org
18:26:19 <oerjan> that would be Nov 13
18:26:21 <ehird> (Note: May not be up yet)
18:26:25 <ehird> For now, pastebin.ca :-)
18:26:30 <AnMaster> Deewiant, interesting, and what about 3k'c then? heh
18:26:33 <Deewiant> ehird: :-)
18:26:48 <AnMaster> ehird, Firefox can't find the server at pb.eso-std.org.
18:26:49 <Deewiant> AnMaster: 3k'ca would push ', c, and then a. (I think.)
18:26:53 <ehird> AnMaster: GOSH REALLY
18:27:10 <AnMaster> ehird, ah right, didn't read the "may not be up" line
18:27:23 <Deewiant> AnMaster: I'm not 100% sure to be honest, since 2k# jumps twice from k I guess that's how ' would work
18:27:31 <AnMaster> Deewiant, and if the line ends after the c?
18:29:04 <ehird> Deewiant: Hey, you should write the Befunge-98 lexer for eso-std's pastebin. Pygments' is horribly b0rken. :P
18:29:21 <AnMaster> Deewiant, so, summary, these instructions are not allowed in k: ", ; and space (and don't reflect) these are allowed but behaviour is unclear: k ' and s.
18:29:23 <ehird> I think Befunge-98 would be extremely hard to parse properly within pygments though
18:29:25 <AnMaster> is that correct?
18:29:36 <Deewiant> AnMaster: it'd push a space as is standard for acccessing outside bounds
18:30:13 <Deewiant> AnMaster: space and ; are somewhat unspecified/unclear as well, the spec says they're not to be executed but whether that means they're ignored or reflected on is up to you
18:30:25 <Deewiant> AnMaster: http://pastebin.ca/932396
18:31:17 <Deewiant> hmh, that code is misaligned for some reason
18:35:27 <AnMaster> hm, I'd give a warning and not reflect on nested k. As for nested ', I'd push the char after the ' the given number of times for k to iterate, then continue after the k'c (or whatever char)
18:35:48 <AnMaster> err not " nested ' "
18:35:51 <Deewiant> so what about 2k# then
18:35:54 <AnMaster> remove nested in that place
18:36:06 <Deewiant> does it make sense to you that it jumps only once?
18:36:07 <AnMaster> Deewiant, for that mycology got a test, I would follow that test
18:36:14 <Deewiant> AnMaster: I wrote that test. :-P
18:36:23 <AnMaster> Deewiant, indeed I know that
18:37:00 <Deewiant> I'm just saying that you're going to have some special casing to do if you want them all to "feel logical"
18:37:08 <AnMaster> negative iterations on k, on *nix: reflect on windows: format c:
18:37:13 <AnMaster> *runs*
18:37:37 <Deewiant> i.e. 5k# jumps 5 times, but 5k'c pushes c 5 times <- one of those has to be a special case
18:37:40 <AnMaster> Deewiant, I already special case k, as I do the "ip forward" bit at the end of the main loop.
18:38:05 <ais523> AnMaster: Windows will prompt the user for the volume label of the hard drive if you do that
18:38:07 <Deewiant> I mean that you're going to need separate cases depending on what instruction k is executing
18:38:12 <ais523> as a check against accidentally formatting it
18:38:18 <AnMaster> ais523, aww
18:38:32 <Deewiant> ais523: and further, if windows is installed on C, it'll say that the volume is in use even if you say yes to the "are you sure"
18:38:48 * ais523 didn't realise that Windows did a volume-in-use check in such cases
18:39:10 <Deewiant> AnMaster: and you can't really write a separate case for every instruction especially if you plan on implementing (m)any fingerprints :-)
18:39:12 <AnMaster> <Deewiant> I mean that you're going to need separate cases depending on what instruction k is executing <-- yep
18:39:41 <AnMaster> Deewiant, I plan a minimal befunge98 implementation as I do it in bash(!)
18:39:47 * ais523 thinks k should always reflect with a negative argument
18:39:51 <Deewiant> AnMaster: the way it's specified, I don't think there should be any special cases
18:39:56 <AnMaster> ais523, yeah
18:40:09 <ais523> because there is no way to run a command a negative number of times
18:40:09 <Deewiant> AnMaster: apart from the invalid instructions like ";
18:40:23 <ais523> which is why Underlambda only supports nonnegative integers in its stdlib
18:40:47 <AnMaster> ais523, hm, I'm sure it would be possible in TURKY BOMB ;)
18:41:00 <AnMaster> (what with all their "half a bit wide" and such)
18:41:03 <ais523> (or to be precise tier 4, which acts like an arithmetic stdlib, and has a low tier number because most implementations will want to optimise it for performance)
18:41:24 <ais523> AnMaster: there's no syntax to express it in TURKEY BOMB but it fits well into the spirit of the language ;)
18:41:35 <AnMaster> ais523, exactly
18:41:36 <Deewiant> AnMaster: implement the TRDS fingerprint, it's a nice one
18:42:18 <AnMaster> Deewiant, I'm not even sure how to do fingerprints, currently my plan for the negative funge space thing is four arrays around the origin, one for each quadrant
18:42:36 <Deewiant> TRDS is the time travel fingerprint
18:42:56 <Deewiant> really annoyed me, probably spent a month on that one alone
18:43:02 <AnMaster> Deewiant, that reminds me, the funge registry thing link at http://catseye.tc/projects/funge98/doc/funge98.html is broken
18:43:19 <Deewiant> and then the first test I run against RC/Funge leads to it crashing
18:43:19 <AnMaster> so where do I find out about such things
18:43:19 <Deewiant> AnMaster: yeah, it doesn't exist
18:43:20 <AnMaster> like what handprint I should use and such
18:43:33 <Deewiant> although I think there's an archive of it somewhere, sec
18:43:44 <AnMaster> currently I use the sum of the values of the ASCII chars in Bashfunge
18:43:47 <Deewiant> http://catseye.tc/projects/funge98/doc/old_index.html
18:44:24 <Deewiant> AnMaster: my Mycology page links to all Befunge-98 interpreters I know of and has downloads for any that've fallen of the 'Net, too
18:44:26 <AnMaster> Deewiant, and what about the finger print registry?
18:44:52 <Deewiant> and Mycology tests almost every fingerprint that has been implemented on any of said interpreters :-)
18:45:06 <Deewiant> and the Mycology readme refers to the two or three that it doesn't test
18:45:07 <ais523> the registry doesn't appear to be on catseye.tc, at the moment
18:45:17 <Deewiant> ais523: I linked to it above
18:45:17 <AnMaster> Deewiant, hm, and where do I find docs on the different fingerprints?
18:45:37 <Deewiant> AnMaster: in the readmes of the interpreters that first implemented them, mostly
18:45:46 <AnMaster> sigh
18:46:15 <Deewiant> AnMaster: RC/Funge-98, the jvh version of same, and then http://catseye.tc/projects/funge98/
18:47:04 <AnMaster> Deewiant, also, for y instruction, byte size, what should your return in, say, an interpreted languages that treat everything as strings (like bash do)?
18:47:19 <AnMaster> or if you use bignums
18:47:28 <Deewiant> eh
18:47:31 <Deewiant> I dunno :-P
18:47:52 <Deewiant> maybe the amount of memory installed? :-)
18:48:11 <Deewiant> hmh, the specs are clear as usual
18:48:12 <Deewiant> " Typically 4, could also be 2, 8, really really large, infinity, etc."
18:48:19 <Deewiant> I wonder how one would push infinity as an integer
18:48:50 <Deewiant> AnMaster: I'd just push a really big number.
18:48:56 <AnMaster> I'd give special meanings to negative values returned from that y request, like -1 = BIGNUM/infinity -2 = Not applicable -3 = Implementation defined
18:49:19 <Deewiant> -3? of course it's implementation defined, you're asking the implementation what it defines it as :-)
18:49:31 <Deewiant> something like that would be nice but it's not in the spec.
18:49:35 <AnMaster> Deewiant, ok "-3 = none of these"
18:49:44 <AnMaster> (say, quantum befunge)?
18:49:54 <ais523> Deewiant: certain floating-point bitpatterns are defined to mean infinity
18:49:58 <Deewiant> I thought about writing an "unofficial spec" which would clarify everything but decided against it, there are already two standards
18:50:05 <ais523> but that's not very helpful for an interp which only uses integers
18:50:11 <Deewiant> ais523: yes, but this is an integer we're talking about.
18:50:19 <AnMaster> Deewiant, so I'd do befunge08
18:50:20 <Deewiant> "In Funge-98, stack and Funge-Space cells alike should be treated as signed integers of the same size. "
18:50:23 * AnMaster fires up lyx
18:50:27 <Deewiant> ais523: it's defined as above
18:50:42 <ais523> maybe we need a Funge-08
18:50:56 <Deewiant> AnMaster: we already have 3 standards only 1 of which is properly defined and only 1 of the latter 2 was ever really implemented properly :-)
18:51:11 <AnMaster> Deewiant, bashfunge does a workaround for that, it can't store \0 in a variable, so results with \0 are stored as the *string* NUL heh
18:51:32 <Deewiant> personally I think Funge-98 is interesting enough in itself, a new standard wouldn't be of much use to anyone
18:51:45 * ais523 is a big Funge-98 fan too
18:51:45 <Deewiant> AnMaster: gotta love bash :-)
18:51:46 <AnMaster> Deewiant, well, 98 is so unclear
18:51:58 <ais523> only in corner cases, though
18:51:59 -!- Judofyr has joined.
18:52:17 <ais523> I'm speccing up Underlambda as a set of rewrite rules, with side effects specified in English
18:52:23 <ais523> I doubt that that would help for Befunge, though
18:52:32 -!- timotiis has joined.
18:52:38 <AnMaster> ais523, I think it should at least say "on blah the result is undefined" like the C standards do
18:52:49 <Deewiant> AnMaster: the trouble is that there are so many cases to consider
18:52:56 <Deewiant> especially with the fingerprint mechanism
18:52:57 <ais523> AnMaster: are you referring to Befunge or Underlambda?
18:52:59 <AnMaster> not knowing if it is undefined, or somewhere else in the standard is a problem
18:53:07 <Deewiant> I decided early on not to test separate fingerprints together
18:53:15 <AnMaster> Deewiant, well yes, I'd implement 0 fingerprints
18:53:20 <Deewiant> the universe would end trying to put them together
18:53:38 <AnMaster> Deewiant, also a working registry is needed IMO
18:53:50 <Deewiant> AnMaster: aye, but as originally specified you can have fingerprints, so when you think from the viewpoint of the spec-writer it's tricky to go through everything
18:54:30 <Deewiant> AnMaster: the days of standardizing funge-98 are over, in the meanwhile we make do with what we have :-)
18:54:33 <AnMaster> Deewiant, what is the license of the 98 standard document itself?
18:54:44 -!- RedDak has joined.
18:54:50 <Deewiant> AnMaster: beats me
18:54:58 <Deewiant> AnMaster: has a copyright at the bottom apparently
18:55:25 <AnMaster> Deewiant, doesn't say if you are allowed to make changes to it or not
18:55:42 <Deewiant> AnMaster: I doubt mr. pressey is that much of a jerk :-P
18:55:47 <ais523> by default things like that are copyrighted all-rights-reserved, unless the author states otherwise
18:55:48 * AnMaster would be much happier with something like GFDL or even CC-by-sa
18:56:07 <Deewiant> AnMaster: at the time, such things weren't as much an issue as today
18:56:08 <ais523> I suspect that you'd get permission if you asked for it, but I think you do have to ask to avoid breaking the law
18:56:17 <AnMaster> ais523, indeed
18:56:22 <AnMaster> anyone know his email?
18:56:30 <Deewiant> it's on the web page
18:56:54 <AnMaster> maybe on the site, but not on the page
18:56:56 * ais523 is amused that cats-eye.com has been domain parked, and the domain parkers have put a picture of a dog at the top
18:57:55 <AnMaster> Deewiant, can't find the email?
18:58:34 <Deewiant> AnMaster: http://catseye.tc/about/catseye.html
18:58:45 <AnMaster> ah
18:59:53 <ehird> ais523: hurray for the {{catseye}} template!
18:59:57 <ehird> the snarkiest template on all wiki.
19:01:17 * ais523 has to go, anyway
19:01:19 -!- ais523 has quit ("bye!").
19:08:42 <oerjan> oh no, he went. we are not observed any more. does that mean we cease to exist?
19:08:43 <AnMaster> Deewiant, I sent a mail about it
19:09:22 <Deewiant> AnMaster: I hope he's not interested, I'd hate to have to rewrite more bits of Mycology ;-)
19:09:42 <AnMaster> Deewiant, then I'd write a Funge08 standard from scratch
19:09:56 <Deewiant> AnMaster: and I'd be happy to not implement it ;-)
19:11:00 <AnMaster> Deewiant, I aim at making it compatible. The only thing I'd is clean up corner cases, and add a new instruction to be able to modify some rules at runtime (say, should we use befunge93 or funge98 style spaces?)
19:11:22 -!- otesanek has joined.
19:11:28 <AnMaster> in bash at least, the latter is quite easy
19:11:44 <AnMaster> I would just redefine the function that handles the " instructions on the fly
19:11:46 <AnMaster> :)
19:12:05 <Deewiant> or just add a check in the handler
19:12:23 <AnMaster> Deewiant, yeah, but that is slower to execute ;)
19:12:33 <Deewiant> yeah, I suppose
19:12:52 <AnMaster> Deewiant, also I can't get your interpreter to compile, because I can't get gcc d compiler to compile
19:13:07 <Deewiant> complain to the GDC folks :-)
19:13:14 <AnMaster> hm
19:13:33 <Deewiant> join #d and ask about it
19:13:43 -!- RedDak has quit (Read error: 113 (No route to host)).
19:14:29 <Deewiant> I've been thinking of making a linux binary but never got around to it
19:14:58 <AnMaster> Deewiant, for what arch?
19:15:05 <Deewiant> x86, it's all I've got
19:15:09 <AnMaster> I got x86_64
19:15:18 <AnMaster> but I could run it in 32-bit mode then
19:17:03 -!- RedDak has joined.
19:17:16 <AnMaster> Deewiant, btw does j wrap? also what about say a program consisting of this only: ff*j
19:17:23 <Deewiant> everything wraps
19:17:39 <AnMaster> would that wrap a lot of times?
19:17:39 <AnMaster> hm
19:17:46 <AnMaster> Deewiant, so when mycology tests s at -1,-1, where should result end up?
19:18:31 <Deewiant> hmm? it does 501-01-p or something, right, and expects to get 5 back when it does 01-01-g
19:18:51 <AnMaster> err not s indeed
19:18:54 <AnMaster> g I meant
19:18:59 <AnMaster> (late here)
19:19:23 <AnMaster> Deewiant, ok, so it shouldn't put a value in negative fungespace?
19:19:35 <Deewiant> of course it should, that's what p is defined as doing :-)
19:19:50 <Deewiant> but it doesn't actually test that by jumping to -1,-1 though
19:19:58 <Deewiant> although it prolly should
19:21:13 <AnMaster> Deewiant, hm, I think we should have several possibilities for implementations here, allowing them to implement only some quadrants ;) just to make test suite writing as hard as writing implementations
19:21:32 <Deewiant> no no, the spec is quite unambiguous on this one ;-)
19:21:51 <Deewiant> and trust me, writing the test suite was much harder than writing CCBI :-D
19:22:00 <AnMaster> but adding stuff to y would break things "abusing" y to get a value from the existing stack
19:22:19 <Deewiant> ah, that doesn't work on most impls anyway
19:22:54 <AnMaster> Deewiant, it doesn't on mine either, I push -27315 and print out "the coder is a jerk"
19:22:58 <Deewiant> AnMaster: hint: easy way of implementing Funge-Space is to use a hash table or equivalent, if your lang provides such
19:23:26 <AnMaster> Deewiant, bash doesn't, I use an array that wraps every nth entry, so [n * y +x]
19:23:37 <AnMaster> and when it needs to grow, it reallocates the entire thing
19:23:41 <AnMaster> time consuming I know
19:23:50 <AnMaster> (at least it is a sparse array)
19:24:04 <AnMaster> bash only provides single dimension arrays
19:25:47 <AnMaster> Deewiant, btw, writing a test suite would be easier with less compact code, I wrote some tests for my interpreter, fewer tests than mycology but more lines in file
19:25:55 <AnMaster> not a lot on each line though
19:26:05 <Deewiant> that's not the hard part
19:26:12 <Deewiant> the problem is that you can't assume instructions work
19:26:16 <Deewiant> or that's how I tried to do it
19:26:28 <Deewiant> so that you get maximal info even if some instruction prior doesn't work at all
19:27:17 <AnMaster> Deewiant, oh and mycouser.b98 doesn't check y if unbuffered input is used
19:27:29 <AnMaster> so it wants an extra enter after asking for a char
19:27:43 <Deewiant> just hold down the button then :-)
19:27:44 <AnMaster> my interpreter uses unbuffered input
19:28:06 <Deewiant> mycouser can't really assume y works either, since it's befunge-93 as well
19:28:07 <AnMaster> Deewiant, well, shouldn't it check 1y for that flag ?
19:28:12 <AnMaster> Deewiant, ah ok
19:28:13 <AnMaster> right
19:28:35 <AnMaster> you could check if it is 93 or 98, like you do in the main test suite
19:28:36 <AnMaster> ;P
19:28:46 <Deewiant> I couldn't be bothered
19:28:55 <Deewiant> I do do something though since it checks a few fingerprints
19:29:09 <AnMaster> yeah
19:29:45 <AnMaster> also "cell size in bytes", what about a trinary funge?
19:29:57 <AnMaster> or in future, one using qbytes?
19:30:09 <Deewiant> doesn't matter, it still stores a set amount of data in each cell?
19:30:19 <Deewiant> (or infinity)
19:30:37 <AnMaster> Deewiant, yep but funge98 says: "1 cell containing the number of bytes per cell (global env)."
19:30:41 <AnMaster> that wants it in bytes
19:30:54 <AnMaster> but it may not be bytes, or not whole bytes, and so on
19:30:56 <Deewiant> hey, even bytes is poorly defined
19:31:02 <Deewiant> 8-bit bytes? 24-bit bytes?
19:31:07 <AnMaster> Deewiant, aren't they always 8 bits?
19:31:08 <ehird> Deewiant: byte = 8-bit
19:31:11 <Deewiant> no
19:31:12 <ehird> that's the definition of 'byte'
19:31:16 <Deewiant> http://en.wikipedia.org/wiki/Byte
19:31:19 <AnMaster> ehird, I thought so too
19:31:21 <ehird> (It is not the definition of 'char' in C, however.)
19:31:31 <ehird> (But mostly 'char' is 8-bits in C.)
19:31:35 <ehird> (sizeof(char) == 1 in C, always, though.)
19:31:40 <Deewiant> "historically, bytes have ranged from five to twelve bits."
19:31:49 <ehird> ok
19:31:50 <ehird> that's fskced
19:31:51 <ehird> :)
19:31:51 <Deewiant> "Bytes of six, seven, or nine bits were used on some computers, for example within the 36-bit word of the PDP-10."
19:32:00 <Deewiant> "The UNIVAC 1100/2200 series computers (now Unisys) addressed in both 6-bit (Fieldata) and 9-bit (ASCII) modes within its 36-bit word."
19:32:04 <Deewiant> etc. :-)
19:32:12 <AnMaster> ehird, so if char is 16 bits, then what would sizeof a type of less bits be?
19:32:23 <Deewiant> there is no such type
19:32:32 <AnMaster> ah, char must be smallest?
19:32:36 <Deewiant> yep
19:32:57 <AnMaster> right, then that part of the standard needs to be cleaned up
19:33:11 <Deewiant> are you making notes? :-)
19:33:26 <AnMaster> Deewiant, I am
19:34:33 -!- otesanek has left (?).
19:34:45 <AnMaster> Deewiant, I would add some special negative values, one being "something else" or such, then a y request of, say, 21 would return if it is binary/trinary/and so on and if 21 returns -1 it would be "qbits", a value of 0 = none of these
19:34:49 <AnMaster> something like that
19:35:07 <Deewiant> the thing is they have to be of use to the program
19:35:08 <AnMaster> 22 would then define the size of the cells in the unit of 21
19:35:09 <AnMaster> :)
19:35:11 <oklopol> read funge-98
19:35:16 <oklopol> was quite simple
19:35:19 <AnMaster> oklopol, I have
19:35:34 <AnMaster> point is, it doesn't work for a trinary funge or such
19:36:04 <Deewiant> if it uses qubits it still has to return some kind of meaningful value instead of just "some qubits"
19:36:13 <AnMaster> or where there is no byte size, say, language interpreter is coded in is treating everything as strings
19:36:19 <oklopol> AnMaster: i read it, i meant
19:36:21 <AnMaster> Deewiant, indeed
19:36:37 <oklopol> so... funge-98 doesn't have n-funge?
19:36:43 <Deewiant> sure it does
19:36:45 <AnMaster> oklopol, it does
19:36:53 <Deewiant> it introduced them :-P
19:36:53 <AnMaster> however, that is n dimensions
19:36:54 <oklopol> hmm, i missed that then :)
19:37:09 <AnMaster> but it assumes binary
19:37:20 <oklopol> ...binary?
19:37:29 <AnMaster> oklopol, as in "not trinary"
19:37:31 <AnMaster> or such
19:37:35 <AnMaster> (fournary?)
19:37:39 <oklopol> oh, right
19:37:39 <Deewiant> quaternary
19:37:42 <AnMaster> ah
19:37:49 <oklopol> anyway, where's n-dimensionality defined?
19:37:52 <oklopol> in the spec
19:37:57 <Deewiant> probably in a footnote at the bottom or something
19:37:58 <Deewiant> aside from trefunge
19:38:23 <oklopol> Funge-98 is a class of three real and officially sanctioned programming languages (Unefunge, Befunge, and Trefunge) and provides a paradigm for describing any number of imaginary ones with different topologies and any number of dimensions."
19:38:32 <oklopol> this was said in the beginning
19:38:37 <Deewiant> there you go
19:38:40 <AnMaster> oklopol, yes, "any number" indeed
19:38:43 <oklopol> but i didn't actually see any standardization on that
19:38:50 <Deewiant> there's not much to standardize
19:39:03 <AnMaster> Deewiant, however, what about 2+3i-funge (no idea how to implement)
19:39:12 <AnMaster> or 1.84-funge?
19:39:24 <Deewiant> AnMaster: how would you define a nonintegral space :-)
19:39:34 <Deewiant> I mean, go ahead by all means
19:39:35 <AnMaster> Deewiant, indeed, no idea
19:39:42 <oklopol> hmm, i guess x can, in theory, set any vector to be delta.
19:39:46 <Deewiant> like it says under "Other Topologies"
19:39:57 <oklopol> where does it get the length of the vector?
19:40:01 <Deewiant> oklopol: "vector" is defined as "n numbers where n is the number of dimensions"
19:40:08 <AnMaster> Deewiant, however, please see http://catseye.tc/projects/turkeyb/doc/turkeyb.html
19:40:11 <Deewiant> oklopol: so in befunge, it's always 2 numbers, in trefunge it's 3, etc.
19:40:23 <AnMaster> Deewiant, "Two thirds of a bit plus half a trit."
19:40:23 <oerjan> fractional spaces are fractals. may be hard to do with a minimum cell distance though
19:40:36 <Deewiant> AnMaster: :-)
19:40:37 <ehird> An RPC client library based on JSON (so loads of good language support) in 119 lines of Python, even including an HTTP proxy for it. Woot.
19:41:00 <oklopol> The x "Absolute Vector" instruction pops a vector off the stack, and sets the IP delta to that vector.
19:41:00 <oklopol> A vector on the stack is stored bottom-to-top, so that in Befunge, x (and all other vector-popping instructions) pops a value it calls dy, then pops a value it calls dx, then sets the delta to (dx, dy).
19:41:03 <AnMaster> oerjan, I never understood how "fractional spaces are fractals" work
19:41:07 <oklopol> this is all that's said about x.
19:41:24 <oklopol> oh, so it's just a preset amount of dimensions?
19:41:27 <Deewiant> oklopol: "http://catseye.tc/projects/turkeyb/doc/turkeyb.html
19:41:30 <Deewiant> darn
19:41:30 <oklopol> lol.
19:41:32 <Deewiant> oklopol: "a vector (set of co-ordinates)"
19:41:40 <ehird> Deewiant: TURKEY BOMB is odd yet.
19:41:41 <ehird> *yes
19:41:41 <Deewiant> oklopol: " The origin is (0, 0) in Befunge, (0) in Unefunge, and (0, 0, 0) in Trefunge. "
19:41:49 <AnMaster> Deewiant, ehird is trying to make a turkey bomb interpreter btw
19:41:56 <Deewiant> ehird: good for you :-)
19:42:04 <oklopol> i've always assumed funge-98 supported infinite dimensions
19:42:34 <AnMaster> oklopol, the size of a vector grows with one cell for each dimension
19:42:54 <oklopol> AnMaster: and that has what to do with what?
19:43:06 <AnMaster> oklopol, that the standard does define it
19:43:27 <oklopol> the standard doesn't say anything about infinite dimensions
19:43:28 <AnMaster> vector on stack (top -> bottom) zxy in 3-funge
19:43:35 <oklopol> there's a preset amount of dimensions
19:43:39 <AnMaster> there English fails
19:43:52 <AnMaster> you can add 3 more dimensions using Swedish
19:44:02 <oklopol> yeah, or finnish
19:44:03 <AnMaster> öäåzyx
19:44:04 <Deewiant> oklopol: no, it has to be finite if it's to be Cartesian
19:44:07 <AnMaster> oklopol, indeed
19:44:13 <AnMaster> anyway I meant zyx above
19:44:16 <AnMaster> not zxy
19:44:17 <oklopol> Deewiant: no
19:44:22 <oklopol> it can be *extendable*
19:44:35 <AnMaster> Deewiant, yes but you could always add one :P
19:44:39 <oklopol> in a lazy funge, it could actually be done with the current x instruction
19:44:47 <oklopol> but laziness isn't defined either
19:44:49 <AnMaster> oklopol, just store all as bignums
19:45:00 <oklopol> AnMaster: that doesn't help.
19:45:02 <AnMaster> oklopol, tell me more what you mean with that?
19:45:12 <AnMaster> adding dimensions on demand?
19:45:32 <oklopol> just that i could start moving into any dimension
19:45:45 <Deewiant> how would that work
19:45:48 <Deewiant> using x
19:45:53 <AnMaster> oklopol, indeed, but how would x know how big the vector should be?
19:46:04 <oklopol> so that you' use 0"gnirts", for instance
19:46:06 <oklopol> but you don't
19:46:13 <AnMaster> oklopol, ah sounds good
19:46:22 <AnMaster> however, a problem
19:46:28 <oklopol> that's how i've done it, made a befunge extension a few years ago
19:46:35 <AnMaster> 0 is a valid delta in a dimension
19:46:37 <oklopol> before i knew much about befunge
19:46:48 <oklopol> mind you, it's a lot more complicated and extensive than funge-98.
19:46:50 <AnMaster> say, you mode 0 in the first dimension and 1 in the second
19:46:55 <AnMaster> that would be equal to >
19:47:04 <AnMaster> oklopol, got a link?
19:47:04 <oklopol> because even rail is more complicated than that :)
19:47:12 <oklopol> i don't have much online.
19:47:16 <AnMaster> aww
19:47:22 <oklopol> i have exactly one language online.
19:47:26 <AnMaster> oklopol, what is rail? ruby on rails?
19:47:35 <oklopol> and one graphica example on my page
19:47:38 <oklopol> err no
19:47:44 <oklopol> rail @ esolang
19:47:47 * AnMaster looks
19:48:08 <oklopol> rail has function entry points at a semantical level, funge doesn't seem to
19:48:13 <Deewiant> nope
19:48:17 <Deewiant> it's all 'goto'
19:48:23 <oklopol> yeah.
19:48:33 <Deewiant> not even 'gosub' :-)
19:48:38 <oklopol> heh :)
19:50:03 <AnMaster> anyway clearly funge98 needs to be extended
19:50:08 * oerjan suddenly wonders if you could combine gosub and COME FROM
19:50:23 <oklopol> indeed. the turtles need to be cleverer
19:50:28 <AnMaster> oerjan, hm what about come to?
19:51:03 <AnMaster> no, I got no idea what come to would do?
19:51:08 <oklopol> oerjan: rewrite the come from line to have the line of the return line?
19:51:24 <oklopol> come from is one hot concept
19:51:45 <oklopol> COME TO PAPA
19:51:58 -!- Judofyr has changed nick to JudoBot.
19:52:24 <oklopol> oh, right, and rail isn't mine, in case i wasn't clear about that and the page is neither
19:52:26 <oerjan> ah, the truth is revealed
19:52:30 <AnMaster> COME TO: maybe a probability for the program to jump to that point at any time? Like gravity this probability would decrease when you get further from the statement?
19:52:32 <AnMaster> what about that?
19:52:33 <oklopol> once again, i cannot open pages
19:52:34 <oerjan> he was not human at all
19:53:03 -!- JudoBot has changed nick to Judofyr.
19:53:17 * AnMaster looks at Judofyr
19:53:43 <oklopol> what's that one language on esolang where every operation only *probably* works?
19:53:46 <oklopol> or are there multiple?
19:53:52 <Judofyr> I'm using wi-wi-wi-windows 386!
19:54:01 <Judofyr> All my applications are running at once!
19:54:05 <oklopol> i'd like to see that, but once again, i need a straight link so i can dl via a friend
19:54:18 <oerjan> Java2K
19:54:26 <oklopol> ah
19:54:32 <oklopol> remembered it had a j
19:54:52 <oklopol> damn
19:55:01 <AnMaster> what?
19:55:01 <oklopol> my downloader has disconnected :P
19:55:07 <oklopol> anyone wanna send me the spec on dcc?
19:55:09 <AnMaster> oklopol, why not just browse the web?
19:55:12 <oklopol> i'm feeling eso tonight
19:55:23 <oklopol> well, i cannot open webpages right now
19:55:30 <AnMaster> oklopol, dcc? should I dcc them to you?
19:55:31 <oklopol> don't ask me why, i don't know and i don't care :)
19:55:40 <oklopol> AnMaster: if it's not too much trouble.
19:56:03 <AnMaster> oklopol, well how can you recieve it then?
19:56:23 <oklopol> dunno why, but dcc works.
19:56:27 <AnMaster> just sounds like chicken or egg first problem to me
19:56:41 <oklopol> irc and messenger work fine
19:56:56 <AnMaster> oklopol, so you want me to send over DCC, the specs for DCC?
19:57:01 <AnMaster> may I ask why
19:57:16 <ehird> Judofyr: I have data here, I have data there
19:57:16 <oerjan> what about ftp?
19:57:18 <oklopol> i'd like to read 'em
19:57:19 <ehird> I have data that has never been together
19:57:24 <ehird> Wi-wi-wi-windows 386!
19:57:29 <Judofyr> yes!
19:57:29 <AnMaster> oklopol, is it so you know how to implement DCC so you can receive the specs on DCC so you can...
19:57:31 <AnMaster> ;P
19:57:50 <AnMaster> oklopol, what about gopher? would be easier for me
19:57:55 * AnMaster runs a gopher server
19:58:00 <Deewiant> gopher!
19:58:00 <oklopol> AnMaster: umm... java2k specs that is
19:58:02 <oklopol> :)
19:58:05 <AnMaster> Deewiant, :D
19:58:08 <oklopol> i don't need dcc specs
19:58:13 <oklopol> what's gopher?
19:58:14 <AnMaster> <oklopol> anyone wanna send me the spec on dcc?
19:58:26 * oklopol is even stupider than usual without google
19:58:27 <AnMaster> oklopol, that sounded like you wanted the specs on dcc
19:58:33 <ehird> http://weblog.jamisbuck.org/2008/3/6/when-duplication-is-not-duplication This is so wrong. Two or more, use a for!
19:58:36 <oklopol> yeah, i didn't realize that, sorry
19:58:55 <oklopol> stop linking stuff! :D
19:58:57 <Deewiant> AnMaster: do you actually /use/ gopher?
19:59:20 <ehird> Deewiant: He runs a server so he can tell everyone he runs a gopher server.
19:59:25 <ehird> Same reason he uses Bash..
19:59:32 <Deewiant> ah, I see
19:59:38 <AnMaster> Deewiant, yes to make ppl on irc ask about it
19:59:39 <AnMaster> :P
19:59:43 <AnMaster> but bash I use more in fact
19:59:58 <AnMaster> Deewiant, http://envbot.org <-- modular irc bot in bash, and project is serious
20:00:31 <Deewiant> sure, "serious" in the sense that it's not a joke, but /why/? :-P
20:00:33 <AnMaster> Deewiant, anyway gopher://inspircd.dyndns.org (yes it is a bit empty)
20:00:36 <ehird> it's serious so far as AnMaster runs it to make people ask why.
20:00:40 <ehird> (Do you see a pattern here?)
20:00:45 <AnMaster> ehird, no in fact not
20:00:49 <AnMaster> Deewiant, because it is fun
20:00:53 * oklopol is starting to think no one will send the spec to him
20:00:54 <ehird> AnMaster: inspircd is a real program you know
20:00:55 <AnMaster> and a challenge
20:01:00 <AnMaster> ehird, yes I know
20:01:19 <AnMaster> I used to be on the QA team of inspircd, quit though, had too little time for it last yea
20:01:20 <AnMaster> year*
20:01:24 <Deewiant> I've never found shell scripts fun, but to each his own I guess :-)
20:01:28 <AnMaster> got more time now, so I may rejoin
20:01:39 <AnMaster> ehird, so yes I know about inspircd :)
20:01:39 * oerjan is reminded of once dilbert lost his net access
20:01:58 <AnMaster> oklopol, I'll do when I find out how to do dcc from erc
20:02:06 <oklopol> what client?
20:02:09 <AnMaster> please don't flame about that I use ERC
20:02:14 <AnMaster> oklopol, I said ERC didn't I?
20:02:15 <oklopol> ah.
20:02:21 <AnMaster> irc client for emacs
20:02:22 <ehird> AnMaster: inspircd is far too unmodern..
20:02:22 <oklopol> i'm not aware of that
20:02:23 <ehird> :)
20:02:36 <AnMaster> ehird, it is? nah, I would say it is cutting edge
20:02:40 <ehird> I oughta code IRCd That's Actually Modern, You Know, Like, No Code From 1992, I Mean Sheesh
20:02:41 <oklopol> i'm guessing /dcc
20:02:47 <AnMaster> ehird, what one would you call modern then?
20:02:47 <ehird> itamyklncf1ims
20:02:56 <AnMaster> oklopol, "unknown command"
20:03:04 <ehird> erc can't do dcc
20:03:09 <AnMaster> ehird, ah
20:03:10 <oklopol> heh
20:03:15 <AnMaster> maybe I could write a module to do it
20:03:20 <AnMaster> just I suck at elisp
20:03:22 <ehird> AnMaster: already done
20:03:23 <ehird> erc-dcc
20:03:26 <ehird> but erc is just a toy.
20:03:27 <ehird> seriously.
20:03:27 <AnMaster> ehird, ah right
20:03:33 <oklopol> ehird: btw. cise has turned out to be quite a task
20:03:53 <ehird> oklopol: I want the spec!
20:03:53 <ehird> :(
20:04:01 <oklopol> didn't finish the spec, because i had a sudden inspiration to just implement it :D
20:04:03 <AnMaster> Deewiant, btw when I do funge08, it will be in LaTeX
20:04:08 <ehird> oklopol: let me tryyy
20:04:09 <ehird> :D
20:04:11 <AnMaster> Deewiant, using the GUI frontend lyx :)
20:04:12 <Deewiant> AnMaster: good luck with that :-)
20:04:26 <AnMaster> Deewiant, well lyx is easy, and I love lyx
20:04:29 <oklopol> ehird: nooooo, you'll just ruin my fun :)
20:04:35 <AnMaster> pure latex would be hard
20:04:50 <AnMaster> Deewiant, http://www.lyx.org/
20:04:54 <ehird> ummm
20:04:56 <ehird> latex isn't hard
20:05:01 <ehird> But I think TeX is the nicest.
20:05:04 <ehird> Pure, unadulterated TeX.
20:05:18 <AnMaster> ehird, ok right, don't say my interest for bash is insane then :P
20:05:29 <ehird> TeX is simple.
20:05:30 <ehird> And nice.
20:05:33 <ehird> oklopol: naww
20:05:35 <ehird> I suck at parsers
20:05:38 <ehird> let me try horribly
20:05:59 <AnMaster> ehird, so do I, so I prefer languages where each char is an instruction
20:06:05 <AnMaster> like brainfuck or funge
20:06:07 <oklopol> ehird: this is no ordinary parsing ;)
20:06:30 <ehird> oklopol: lemme try :D
20:06:36 <ehird> AnMaster: I certainly don't prefer those.
20:06:38 <oklopol> you have to constantly type check as you parse, and choose the first parse tree without type mismatches
20:06:42 <ehird> They're unimaginative, for the most part.
20:06:46 <ehird> oklopol: wow, that sounds awesome
20:06:48 <AnMaster> ehird, for parsing them that is
20:06:51 <ehird> let me try, i'll make it terrible
20:07:00 <AnMaster> not for writing parsers in
20:07:01 <AnMaster> :P
20:07:06 <oklopol> ehird: it is very awesome, indeed :)
20:07:27 <AnMaster> oklopol, fun!
20:08:02 <oklopol> it's basically prefix, but type checked and with currying
20:08:03 <AnMaster> can you in java2k actually write a program that does the same thing every time it is run?
20:08:26 <ehird> AnMaster: yes, iirc
20:08:32 <oklopol> AnMaster: i think you can make a metaprogram that gets you any desired *probability* of it working.
20:08:42 <AnMaster> oklopol, 100%?
20:08:43 <oklopol> the exact answer would be no, though, iirc.
20:08:54 <oklopol> AnMaster: no
20:08:57 <oklopol> i mean
20:08:59 <oklopol> limit of 100
20:09:06 <AnMaster> oklopol, is it turing complete then?
20:09:21 <ehird> http://www.p-nand-q.com/humor/programming_languages/java2k/13.txt
20:09:23 <ehird> hello world2k
20:09:25 <oklopol> i guess technically no, but do realize ehird recalled differently.
20:09:31 <ehird> http://www.p-nand-q.com/humor/programming_languages/java2k/26.txt
20:09:32 <AnMaster> ah
20:09:33 <ehird> this prints out F
20:09:45 <oklopol> is it long? paste it to me if not :<
20:09:52 <AnMaster> oklopol, it certainly is
20:09:56 * oklopol is retarded
20:09:58 <AnMaster> I could pastebin it though
20:10:02 <oklopol> ...
20:10:04 <AnMaster> ;P
20:10:08 <oklopol> :D
20:10:14 <ehird> 'Java2K uses a 11-based number system, which is a very good approximation of the 10-based decimal system for many purposes, including counting up to and including 9.'
20:10:14 <ehird> :D
20:10:14 <AnMaster> oklopol, tried restarting your router?
20:10:32 <oklopol> ehird: i lolled too :D
20:10:33 <AnMaster> heh indeed
20:10:41 <oklopol> AnMaster: no. i don't want to disconnect irc...
20:10:44 <oklopol> :<
20:10:45 -!- ehird has set topic: Fe fi fo funge, I smell the brainfuck of an Englishman. | pastebin - http://pb.eso-std.org/.
20:10:49 <ehird> lulz, not yet :D
20:10:55 <Sgeo> ehird, I'm thinking of not doing safety in PSOX 1.0 and just having the filesystem domain manipulate indivitual files
20:10:58 <ehird> oklopol: get a decent client, sheesh ;)
20:11:02 <ehird> Sgeo: lulz
20:11:05 <Sgeo> That is, there will be an rm, but no rm -r
20:11:16 <oklopol> ehird: a decent client will not disconnect if i restart my router? :o
20:11:19 <ehird> pikhq: Sgeo, PSOX, tank, skateboard, tanks are filled with water.
20:11:25 <ehird> oklopol: no
20:11:28 <ehird> but it will remember everything
20:11:29 <AnMaster> oklopol, depends
20:11:34 <ehird> so you'll be out for about 3 mins
20:11:34 <ehird> max
20:11:37 <oklopol> ehird: i have konversation
20:11:45 <oklopol> can it be made remember?
20:11:47 <oklopol> :)
20:11:56 <ehird> oklopol: yes
20:11:57 <AnMaster> oklopol, with static ip it *may* be possible for client and server not to note that you disconnected
20:11:58 <ehird> go into networks
20:12:00 <oklopol> i'm assuming you know everything about it becauseeeee you were using it iirc
20:12:00 <ehird> edit Freenode
20:12:05 <AnMaster> assuming you reconnects fast enough
20:12:08 <ehird> add to channel list
20:12:19 <ehird> voila, channels auto-joined on startup/connect
20:12:48 <AnMaster> oklopol, you may also want your client to auto identify to services on connect
20:13:06 -!- jix has joined.
20:13:11 <ehird> yes
20:13:15 <ehird> add to auto commands:
20:13:18 <ehird> /msg nickserv identify FOO
20:13:20 <ehird> and voila
20:13:24 <oklopol> tbh i can't find "networks".
20:13:26 <ehird> you can also tick 'connct at startup'
20:13:28 <ehird> oklopol: its in the first menu
20:13:30 <ehird> on the menu bar
20:14:48 <pikhq> Heh.
20:14:57 <oklopol> define "in the first menu", it's not in any of the basic menus or "settings" :)
20:15:24 <oklopol> *because
20:15:58 * Sgeo wonders if YouOS is Still Alive
20:16:29 <oklopol> ehird: found it
20:16:33 <oklopol> thanks
20:16:57 <oklopol> it was "server list", so naturally my robot brain saw no relation to "networks"
20:17:35 <ehird> ah
20:17:36 <ehird> :)
20:17:51 <ehird> Sgeo: Hmm.
20:17:56 <ehird> Another "Web OS"
20:18:02 <ehird> How interesting, exciting, and useful.
20:18:16 <Sgeo> I made some apps for i
20:18:17 <Sgeo> it
20:18:28 <oklopol> hmm... i guess it's not that bad that i'm actually searching through the whole tokenization space + parse tree space...
20:18:38 <ehird> oklopol: plz spec
20:18:53 <oklopol> O(k^n) parsing, where k depends on similarity of tokens
20:19:25 <Sgeo> Although I agree taht it's mostly pointless
20:19:37 <ehird> http://squatt.er/ would be a great name to be domainsquatted
20:19:46 <ehird> oklopol: 'similarity'?
20:20:16 <oerjan> what country is er?
20:21:13 <oklopol> ehird: hard to define
20:21:23 <oerjan> hm cannot find it
20:21:25 <oklopol> the point is, you get an exponential amount of tokenizations
20:21:40 <oklopol> and for each tokenization, and exponential amount of parse trees
20:21:55 <oklopol> so, perhaps "second order" exponential number of possibilities
20:22:11 <oklopol> the expression separator is finally starting to make sense
20:22:13 <oklopol> :)
20:23:30 <oerjan> ehird: i conclude that .er would be a great name to be domainsquatted
20:24:33 <oerjan> oh, Eritrea
20:25:33 <GregorR> Personally I can't wait for the Somali government to ... come back into existence.
20:25:43 <GregorR> And hopefully sell domains to anyone.
20:25:46 <ehird> http://en.wikipedia.org/wiki/.er
20:26:08 <ehird> rochest.er (lame delegation - delegated servers have no such zone)
20:26:09 <ehird> heh
20:26:17 <ehird> .er is great for obscenities
20:26:19 <ehird> http://fuck.er/
20:29:58 <Judofyr> ehird: What happened to your IRC-bot/parser?
20:30:38 -!- Corun has quit (Read error: 110 (Connection timed out)).
20:31:26 <SimonRC> ehird: Direct-threaded code is Fail for portability. You cannot portably compile DTC at run-time: each Forth word will be a list of function calls. But with my indirect-threaded code, each Forth word is a list of word addresses; more portably compilable.
20:33:02 * oerjan gets the deja-vu feeling
20:34:18 <SimonRC> yeah, but ehird weasn't there the first time
20:45:57 <ehird> back
20:46:03 <ehird> Judofyr: What about it?
20:46:15 <ehird> SimonRC: Blah blah blah blah blah THIS IS FORTH DAMNIT
20:46:17 <Judofyr> is it usable?
20:46:28 <ehird> Judofyr: No. Not yet. :(
20:53:23 <SimonRC> how do you compile at run-time?
20:53:39 <SimonRC> I assume you have to comma together a load of opcodes?
20:54:06 <SimonRC> Sgeo: that isn't the last episode of fine structure.
20:54:20 <Sgeo> SimonRC, I realized
20:54:24 <SimonRC> ok
20:54:28 <Sgeo> I thought that the next one would be the last, but I was wrong
20:54:33 <Sgeo> Are you an FS fan?
20:54:38 <SimonRC> a bit, yes
20:54:48 <SimonRC> I liked the ed stories too
20:55:38 <ehird> SimonRC: its very simple to compile at runtime
20:55:51 <ehird> see: jonesforth :)
20:55:55 <Sgeo> Any hypotheses on the unlisted story?
20:55:56 <ehird> and ooh, Sam Hughes++
20:56:14 <SimonRC> ehird: no, joensforth uses indirect-threaded code, like I do
20:56:15 <Sgeo> I tried looking for fiction edited in Feb. 2008, but didn't find anything
20:56:20 <SimonRC> you use direct-threaded code
20:56:26 <ehird> SimonRC: oh, yes
20:56:28 <ehird> well, mine is simple
20:56:37 <ehird> you see a word name
20:56:45 <ehird> look it up in the dictionary, find its funcptr
20:56:49 <ehird> append that to the word
20:56:56 <SimonRC> but to compile, you must comma together a load of function calls
20:57:02 <ehird> yes
20:57:03 <ehird> and?
20:57:03 <SimonRC> ehird: no
20:57:14 <SimonRC> a string of function pointers is not executable directly
20:57:23 <AnMaster> ehird, compiling forth? quite possible iirc
20:57:31 <ehird> AnMaster: gosh, really.
20:57:35 <ehird> SimonRC: yes it is
20:57:37 <ehird> ip++()
20:57:37 <ehird> ip++()
20:57:37 <ehird> ip++()
20:57:38 <ehird> ip++()
20:57:38 <ehird> ip++()
20:57:38 <ehird> ip++()
20:57:46 <lament> ip--()
20:57:51 <ehird> ip%2()
20:57:58 <AnMaster> err, what is the problem?
20:58:06 <SimonRC> ok...
20:58:08 * AnMaster reads up but can't find where discussion start
20:58:14 <AnMaster> starts*
20:58:20 <SimonRC> but the ip points to a pointer to a function...
20:58:32 <ehird> SimonRC: funcptr() works in c.
20:58:35 <SimonRC> yes
20:58:36 <ehird> it's (*funcptr)()
20:58:47 <ehird> SimonRC: anyway
20:58:55 <ehird> if we have '+ +'
20:58:59 <AnMaster> ehird, prototypes prefered ;P *runs*
20:59:01 <ehird> we search the dictionary for '+'
20:59:10 <SimonRC> and a function can't be built by caoncatenating together a load of pointers
20:59:16 <ehird> then, the next memory address is its length
20:59:23 <ehird> then, is all the functions
20:59:25 <ehird> we just take that address
20:59:28 <ehird> and append it to our list.
20:59:36 <SimonRC> ok
20:59:38 <ehird> and the last thing in every function is the postlude
20:59:41 <ehird> which pops the stack and goes back
20:59:46 <AnMaster> SimonRC, ehird: may I ask what you are doing or trying to do?
20:59:48 <SimonRC> so how do you compile ina reference to a function written in forth?
20:59:53 <ehird> SimonRC: ...
20:59:54 <ehird> i just told you
20:59:55 <SimonRC> AnMaster: write a forth
21:00:05 <SimonRC> um
21:00:08 <SimonRC> no
21:00:09 <AnMaster> SimonRC, there are plenty of interpreters and compilers for forth iirc?
21:00:10 <ehird> SimonRC: my forth words are valid functions
21:00:21 <SimonRC> ehird: yes
21:00:21 <ehird> AnMaster: There is also a working Befunge-98 implementation. Stop writing yours.
21:00:32 <ehird> Actually, stop writing any software. It's probably been done before.
21:00:34 <SimonRC> ehird: I'll have to see this to get what you are talking about
21:00:35 <AnMaster> ehird, ok, point taken
21:00:38 <AnMaster> ;P
21:00:54 <AnMaster> but forth isn't really esoteric is it?
21:01:39 <ehird> no
21:01:39 <ehird> it isn't
21:01:39 * AnMaster makes a difference between "writing yet another compiler/interpreter for an esoteric language" and for "normal languages"
21:02:24 <AnMaster> for a "mainstream/normal" language, I would try to improve existing tools, or have a extremely good reason to create a new one
21:02:30 <ehird> AnMaster: IT'S FUN.
21:02:31 <ehird> stfu.
21:02:42 <AnMaster> ehird, so when do you plan to write your own C compiler?
21:02:45 <AnMaster> *runs*
21:02:48 <ehird> I have.
21:02:49 <ehird> :|
21:02:54 <AnMaster> ehird, oh!?
21:02:55 <AnMaster> link?
21:02:56 <ehird> Forths are a lot easier, though.
21:03:07 <ehird> AnMaster: Bitrotten. And none of them really worked fully, as a whole they were probably pretty good.
21:03:17 <AnMaster> ah
21:03:19 <AnMaster> I see
21:03:35 <AnMaster> considering GCC is still not fully C99...
21:04:00 <ehird> uhm
21:04:02 <ehird> k&r c ofc
21:04:08 <AnMaster> ok :/
21:04:15 <ehird> C is simple, honestly
21:04:33 * AnMaster thinks C should be classed as esoteric when it lacks prototypes ;P
21:05:01 <ehird> SimonRC: woot, i have a simple dictionary
21:05:01 <ehird> char d[] = { 3, 104, 108, 116, 0, F_hlt, 0 };
21:05:05 <ehird> err, wait
21:05:08 <ehird> a funcptr won't fit into a char.
21:05:09 <ehird> oops.
21:05:19 <ehird> hm, that's interesting.. i don't wanna use whole ints for each name char
21:05:25 <AnMaster> ehird, indeed, you need something that is intptr_t wide
21:05:36 <ehird> AnMaster: no, just int. portability is not important for forths :)
21:05:36 <AnMaster> ehird, that could be 64-bit even
21:05:40 <ehird> AnMaster: anywayu
21:05:41 <AnMaster> ...
21:05:44 <ehird> i can't just use an integer type
21:05:45 * AnMaster runs x86_64
21:05:54 <ehird> AnMaster: who gives a damn, this is a small toy interp
21:06:03 <ehird> I run x86_64 too, damnit.
21:06:09 <ehird> but I don't want to use an int
21:06:12 <AnMaster> ehird, so you plan to compile it in -m32?
21:06:16 <SimonRC> maybe some kind of union of char[4] and int?
21:06:21 <ehird> SimonRC: maybe
21:06:25 <AnMaster> SimonRC, 8 char!
21:06:43 <ehird> can you initialize unions in literals?
21:06:52 <SimonRC> I have a set of asserts that all the components of my union are the size of the union
21:06:54 <AnMaster> ehird, in C99 you can afaikk
21:07:01 <SimonRC> {.foo = bar}
21:07:06 <ehird> no, no c99 kthx
21:07:08 <AnMaster> no idea about older C
21:07:38 <AnMaster> anyway please don't assume pointers are 32-bits. Such C code is horrible
21:07:38 <ehird> hmm
21:07:49 <ehird> AnMaster: this is meant to look like the J prototype interp ffs
21:07:58 <ehird> why are you so uptight about people coding fun toy interpreters?!
21:08:08 <ehird> anyway, I wonder if I can cast directly to a union
21:08:09 <ehird> if so...
21:08:09 <ehird> D d[] = { 3, "hlt\0\0\0\0\0", 0, F_hlt, 0 };
21:08:17 <ehird> a dictionary record is this:
21:08:32 <AnMaster> ehird, I'm not, as long as it compiles with -ansi -pedantic -Wall -Wextra -Werror
21:08:33 <AnMaster> ;P
21:08:41 <ehird> name length, name, number of instructions, funcptr
21:08:42 <AnMaster> or -std=c99 instead of -ansi if you want
21:08:44 <ehird> 0 terminates
21:08:46 <SimonRC> ehird: that would put a string pointer in there
21:09:03 <ehird> SimonRC: hmm, as an int? yes, probably
21:09:06 <SimonRC> hmm
21:09:07 <ehird> damnit.
21:09:16 <SimonRC> what is the def of F_hlt?
21:09:19 <AnMaster> ehird, SimonRC indeed about the string pointer: you can put an actual string in a struct too, in C99
21:09:20 <AnMaster> *runs*
21:09:22 <ehird> SimonRC: something like this:
21:09:28 <ehird> void F_hlt() {exit(0);}
21:09:29 <AnMaster> C99 got variable size structures
21:09:35 <SimonRC> AnMaster: yup
21:09:57 <SimonRC> ehird: ok, what is the structure notation for this:
21:10:00 <ehird> SimonRC: for forth words, the funcptr will be F_magic
21:10:08 <ehird> SimonRC: which will step through the funcptrs after it, calling it
21:10:14 <ehird> thus, a program really is just a list of functions.
21:10:21 <ehird> hmm
21:10:22 <SimonRC> ah, I think I see
21:10:25 <ehird> it will be F_magic, hackified
21:10:29 <ehird> to hardcode the addr
21:10:32 <SimonRC> but how does F_magic know which word to step through?
21:10:38 <ehird> SimonRC: just like that.
21:10:39 <SimonRC> ouch
21:10:41 <ehird> the perverse way of doing closures
21:10:42 <ehird> :-)
21:10:57 <SimonRC> ehird: right, that was the admission I was looking for
21:11:00 <AnMaster> ehird, and this will only work on little endian 32-bit I assume? :P
21:11:04 <SimonRC> or you could hack with ip?
21:11:14 <ehird> SimonRC: actually, wait, that's right!!
21:11:18 <ehird> hmm
21:11:19 <ehird> but then..
21:11:24 <ehird> words aren't a list of funcptrs any more
21:11:30 <ehird> :(
21:11:31 <ehird> AnMaster: stfu
21:12:09 <SimonRC> (In fact I had mentally discounted your perverse closures)
21:12:22 <ehird> haha
21:12:28 <ehird> ooh, wait...
21:12:32 <ehird> hmm, no..
21:12:40 <ehird> SimonRC: since ip will be F_magic.. there's no way to utilize ip
21:12:41 <ehird> unless..
21:12:43 <ehird> ip2!
21:13:06 <AnMaster> ehird, you know, software that isn't portable bitrots much faster
21:13:33 <ehird> AnMaster: I don't. give. a. shit.
21:13:41 <ehird> I will write this once, use it for 10 minutes, laugh, admire it.
21:13:47 <ehird> Then ignore it
21:13:53 <AnMaster> btw, someone made a forth interpreter in bash
21:13:54 <ehird> I repeat --
21:14:02 <ehird> THIS IS NOT INTENDED TO BE A SERIOUS INTERPRETER FOR REAL USE!!!
21:14:05 <AnMaster> ehird, ok what is so special about your forth interpreter?
21:14:13 <ehird> NOTHING, except I wrote it!
21:14:16 <AnMaster> ah
21:14:17 <ehird> Goddamnit, shut. up!
21:14:28 <SimonRC> well, mine is written in a really dense style
21:14:33 <SimonRC> and to give me some C practice
21:14:34 <ehird> SimonRC: ditto
21:14:57 <SimonRC> most of the source is macro calls, and much fo the rest is macro defs
21:15:51 <ehird> SimonRC: I concede you're right with the funcptr thing.
21:15:52 <AnMaster> SimonRC, you know, C99 got the inline keyword :P
21:15:53 <ehird> How do you resolve it?
21:16:04 <ehird> AnMaster: are you being intentionally dense? :|
21:16:10 <AnMaster> ehird, aye
21:16:14 <SimonRC> AnMaster: but how do you write this with it? :
21:16:25 <AnMaster> SimonRC, I agree macros are useful sometimes
21:16:28 <SimonRC> #define V(x,b) void x(){b}
21:16:31 <SimonRC> Or this:
21:16:33 <AnMaster> but it is easy to overdo it
21:16:39 <SimonRC> #define OD(c) C*p=dic;while(p){{c}p=p[1].p;} // loop p over dictionary
21:16:51 <AnMaster> SimonRC, why do you want a macro like #define V(x,b) void x(){b}
21:16:52 <SimonRC> or this: #define W(n,pr,N,c) V(f_##n,c;ip++;) C n[]={{.s=N},{.p=pr},{.f=f_##n}}; // native word
21:16:59 <ehird> AnMaster: BECAUSE IT'S A JOKE
21:17:02 <ehird> IT'S LIKE THAT FOR FUN
21:17:04 <ehird> IT'S AMUSING
21:17:07 <ehird> GOD. FDSFKSDF DAMNIT
21:17:08 <SimonRC> AnMaster: 'cause I have a lot og functions with that signature
21:17:19 <AnMaster> SimonRC, those macros would require some variables to be in that function, or global variables
21:17:26 <AnMaster> hm
21:17:32 <ehird> AnMaster: Would they?? Wow, I thought they involved puppies.
21:17:36 <SimonRC> (I think AnMaster is being not very serious and not showing it clearly, hence ehird is taking him to seriously)
21:17:41 <ehird> SimonRC: so how do you handle the thingy
21:17:41 <ehird> and oh
21:17:43 <ehird> okay then
21:17:43 <ehird> :p
21:17:54 <AnMaster> SimonRC, indeed you got it
21:18:00 * SimonRC bangs ehird and AnMaster's heads together
21:18:03 <ehird> ow
21:18:04 <AnMaster> ouch!
21:18:22 <SimonRC> the traditional Clarkstone approach for bickering boys
21:18:24 <SimonRC> :-)
21:18:34 <AnMaster> but seriously, I'm much happier with clean code. you know about doxygen? there is such I thing for bash, called bashdoc
21:18:35 <AnMaster> I use it
21:18:45 <AnMaster> for any script larger than about 200 lines
21:18:51 <AnMaster> does that tell you something ;P
21:19:00 <SimonRC> that might be where you're goping wrong
21:19:06 <SimonRC> you're writing 200 lines of bash
21:19:09 <SimonRC> *grin*
21:19:11 <AnMaster> SimonRC, haha
21:19:31 <AnMaster> SimonRC, I got programs in bash with over 1000 lines of code (comments excluded)
21:19:38 <AnMaster> I think envbot is such
21:20:50 <ehird> SimonRC: pleez tel muy? :p
21:20:57 <ehird> oh, i know what i could do!
21:21:16 <SimonRC> oh, I forgot your question
21:21:18 <ehird> entry = name length, name, number of instructions, funcptr, instructions -- as usual
21:21:19 <ehird> BUT
21:21:26 * AnMaster suggests ehird write a GCC frontend for forth
21:21:28 -!- ais523 has joined.
21:21:29 <ehird> instruction = address of 'name length', ...
21:21:29 * AnMaster runs
21:21:35 <ehird> then, NEXT is:
21:21:57 <SimonRC> ehird: that is exactly what mine does, I think...
21:22:06 <SimonRC> and JonesForth
21:22:15 <SimonRC> it's indirect-threaded code
21:22:20 <ais523> the topic lies!
21:22:27 <ehird> ip += (*ip)+2; ip(ip+1);
21:22:29 <AnMaster> ais523, it does
21:22:30 <ehird> ais523: yes
21:22:30 <ehird> :)
21:22:45 <SimonRC> ah, waitamo, maybe not
21:22:55 <ehird> #define NEXT ip+=(*ip)+2,ip(ip+1)
21:22:56 <ehird> :D
21:23:01 <ehird> SimonRC: and that isn't what yours does
21:23:07 <ehird> yours doesn't take the instructions as arguments
21:23:35 <SimonRC> well, I pass round w, tha address of the most-recently-started word, as a global variable
21:23:50 <SimonRC> the dataflow is actually just that of an argument
21:24:14 <ehird> SimonRC: I still don't get how you resolve this
21:24:39 <SimonRC> ok
21:25:13 -!- ais523 has changed nick to ais523|slightly_.
21:25:13 <SimonRC> I have a structure I will call a word
21:25:23 -!- ais523|slightly_ has changed nick to ais523|sl.
21:25:29 <SimonRC> it is 3+n cells
21:25:49 -!- ais523|sl has changed nick to ais523|sl_busy.
21:26:04 <SimonRC> name pointer, previous word pointer, code pointer, data*
21:26:26 <SimonRC> my forth code is a list of pointers to words
21:26:36 <ais523|sl_busy> <oerjan> oh no, he went. we are not observed any more. does that mean we cease to exist?
21:26:43 <ais523|sl_busy> luckily, we have logs, so you're still alright
21:27:10 <SimonRC> to execute forth code:
21:27:26 <SimonRC> the ip points to the current position in the list
21:27:47 <SimonRC> you deref the ip into the w register
21:28:05 <oerjan> ah that's good
21:28:28 <SimonRC> then you call the function pointed to by the code field of the word pointed to by the w register
21:29:11 <SimonRC> that function will often look at the w register to see which word is being executed
21:29:32 <SimonRC> for forth words, the code is the co function
21:30:06 -!- jix has quit ("CommandQ").
21:30:21 <SimonRC> that pushes the ip on the return stack, sets the ip to point to the data of the word (fields 3+), which is also a list of word addresses
21:30:36 <SimonRC> the last one of those will be the address of ret
21:30:47 <SimonRC> the code of ret is a function to pop the ip off the stack
21:31:05 <SimonRC> EOF
21:37:55 <oklopol> yay
21:38:01 <oklopol> cise mergesort parses correctly
21:38:26 <oklopol> not that that's all that hard to do
21:38:34 <oklopol> just 4 different parse trees
21:38:49 <oklopol> for the second expression, two for the first
21:39:06 <oklopol> mergesort, once again, '/,}#<
21:39:40 <oklopol> it manages to parse that as (' (/ *)) ((}# <) *)
21:39:47 <oklopol> * is the "stream parameter"
21:40:35 <oklopol> the stream is something that holds the current result of computations, the function params are on it, then passed on to each expression one by one, always putting the result back on the stream
21:40:53 <oklopol> ' / }# < are the operations
21:41:07 <oklopol> as you see, nothing tells it what to curry and what way
21:41:47 <oklopol> it simply knows }# wants a function, so it gives it "<", and appliesthe curried (}# <) to the stream parameter
21:42:01 <oklopol> where, on the other hand, "'" wants a list of lists (it)
21:42:07 <oklopol> (it's the recursion function)
21:42:30 <oklopol> so it will use / to split the stream parameter, and use the result of "/" as its lists
21:42:37 <oklopol> "/" is the function to split lists
21:43:01 <oklopol> i'm fairly sure i score one in my quest to invent something original here
21:43:10 <SimonRC> hmm
21:43:12 <oklopol> which would be a total of 2 points!
21:43:14 <oklopol> mwahaha
21:43:42 <SimonRC> have you read about ursala?
21:43:49 <oklopol> no :|
21:43:57 <oklopol> is it... that? :)
21:44:09 <SimonRC> http://www.basis.uklinux.net/ursala/
21:44:19 <SimonRC> it is an insanely dense programming language
21:44:25 <oklopol> something like this is prolly done with perl too. i just make it a bit more explicit
21:44:34 <oklopol> i can't open that :)
21:44:44 <SimonRC> it has a sublanguage called pointer expressions where each command is 1 char, and you can do a fair amount in it
21:44:53 <SimonRC> oklopol: huh?
21:45:03 <oklopol> umm, and it does type checking for tokenization and parsing?
21:45:09 <SimonRC> no,
21:45:13 <oklopol> SimonRC: i cannot open webpages.
21:45:16 <SimonRC> I was thinking m,ost ly the insane density
21:45:20 <SimonRC> oklopol: why?
21:45:31 <oklopol> oh, no, that was not my "new" idea...
21:45:41 <oklopol> there's a lot of languages for that already
21:46:06 <oklopol> the new thing is just the way i'm making it terse
21:46:19 <SimonRC> ok
21:46:29 <oklopol> i still have no idea whether it works for bigger programs, but i think it's pretty cool it could even parse that :)
21:46:43 <SimonRC> doesn't that mean that changing the type of one function can break oterh functions by changing their parse treee?
21:46:56 <oklopol> sure.
21:47:00 <SimonRC> ouch
21:47:11 <oklopol> this is incredibly inefficient to parse
21:47:22 <oklopol> which is exactly why it might be fruitful for terseness
21:47:24 <SimonRC> doesn't matter that much on modern machines
21:47:33 <SimonRC> can humans parse it?
21:48:01 <oklopol> they can, but they won't necessarily find the right parse tree...
21:48:07 <oklopol> a computer will take the first possible
21:48:12 <oklopol> a human will take what suits them.
21:48:17 <SimonRC> oh dear
21:48:22 <SimonRC> well, it is esoteric
21:48:30 <oklopol> i'm going to add commands for actually choosing the parse tree ;)
21:48:38 <SimonRC> how about ( and )
21:48:46 <oklopol> like, "choose fifth parse tree"
21:48:54 <SimonRC> ouch
21:49:05 <oklopol> those are parsed as you'd except
21:49:07 <oklopol> expect
21:49:19 <oklopol> also, "," and ";" are used to separate expressions
21:49:23 <SimonRC> give me more detail about how that mergesort works
21:49:30 <oklopol> by separating them, you can escape the hell of exponential parsing.
21:49:33 <oklopol> okay
21:50:08 <oklopol> (' (/ arg)) split arg in two, then recurse to both branches
21:50:18 <oklopol> then, the result is given to the second part
21:50:22 <oklopol> }#<
21:50:34 <oklopol> ((}# <) arg)
21:50:36 -!- BMeph has quit (Read error: 104 (Connection reset by peer)).
21:51:03 <oklopol> }# is fairly mergesort-spesific, although it's very generic, it takes a list of lists, and a function to choose an element from a list
21:51:17 <oklopol> it then gives the function the head of each list
21:51:32 <oklopol> and puts on a "return list" the head that was returned
21:51:37 <oklopol> now, < has two definitions
21:51:47 <oklopol> it can either take a list, and return minumum
21:51:50 <oklopol> *minimum
21:52:06 <oklopol> or it can take two values and return a boolean indicating which was smaller
21:52:18 <oklopol> now, the first one is type inferred, of course
21:52:47 <SimonRC> ok
21:52:49 <oklopol> so }#< gets two sorted lists (they were recursed into), and always picks the smaller of their heads
21:52:55 <oklopol> until they're empty
21:53:09 <oklopol> also, you don't need to check the special cases [] and [1-element]
21:53:40 <oklopol> because recursing with param N just returns N if the function has already been called with it iiiin the same recursion stack
21:53:42 <oklopol> *in
21:53:51 <oklopol> that was some confusing terminology
21:53:56 <oklopol> in the same recursion anyway
21:54:01 <SimonRC> what is the recursion pattern of ' ?
21:54:10 <oklopol> pattern?
21:54:15 <oklopol> what do you mean?
21:54:21 <SimonRC> what exactly does ' do?
21:54:25 <oklopol> ah
21:54:37 <oklopol> it takes a list of values, and maps current function to it
21:54:48 <SimonRC> what is "current function"?
21:54:49 <oklopol> current being the one it is called from
21:54:54 <oklopol> in this case the whole program
21:54:58 <SimonRC> ok
21:55:01 <oklopol> well, the mergesort
21:55:17 <SimonRC> what does comma do?
21:55:26 <oklopol> separates two expressions
21:55:33 <oklopol> when a function is called
21:55:39 <oklopol> the params are put on the "stream"
21:55:47 <oklopol> the stream is then run through each expression
21:56:07 <oklopol> and after running them all, its contents are the return value of the function
21:56:25 <oklopol> you can use it to escape the exponential parsing hell, i imagine
21:56:29 <SimonRC> "run through"?
21:56:39 <SimonRC> and in what order?
21:56:48 <oklopol> lessay you have expressions e1 e2 e3 ... en
21:56:53 <oklopol> separated by commas
21:57:25 <oklopol> you'd basically do (en ... (e3 (e2 (e1 args))))
21:57:32 <oklopol> and that would be the result of the function
21:57:40 <oklopol> the expressions are functions
21:57:57 <oklopol> running through means applying the function to the contents of the stream, and putting the result on the stream
21:57:59 <SimonRC> why is the stream called a stream?
21:58:07 <SimonRC> hmm
21:58:08 <oklopol> because i decided it is :)
21:58:18 <oklopol> information kinda flows through the expressions
21:58:22 <oklopol> that's the idea
21:58:33 <oklopol> you can have other kinds of expressions too, you see
21:58:39 <oklopol> pattern matching, for instance.
21:58:45 <oklopol> you can just do that on the fly
21:58:48 <SimonRC> wait
21:59:01 <SimonRC> if I have a stream continging [1,2,3] and I pass it through icrement, what do I get out?
21:59:05 <oklopol> this is done by prepending the expression with ; instead of a comma
21:59:10 <oklopol> depends
21:59:13 <oklopol> what's increment?
21:59:21 <SimonRC> \x -> x + 1
21:59:32 <oklopol> that would not have a parse tree.
21:59:44 <SimonRC> indeed, no
21:59:52 <oklopol> well
22:00:01 <SimonRC> I mean, increment is the function that returns one more than its argument
22:00:30 <oklopol> lists may for instance map functions like that through them if nothing else works
22:00:41 <SimonRC> "if nothing else works"?!
22:00:52 <oklopol> on paper, at least, i have the possibility of putting a value for operations' types
22:01:06 <oklopol> so that there are less wanted types of operations
22:01:18 <oklopol> that are taken if a parse tree could not otherwise have been formed.
22:01:33 <SimonRC> ok
22:01:44 <SimonRC> this is nuts
22:02:01 <oklopol> i probably will not implement that any time soon, because even doing what i have now efficiently is hell'
22:02:21 <oklopol> and "less wanted operations" are by definition only used after the whole parse tree space has been searched
22:02:28 <oklopol> and... that's an exponential job.
22:02:47 <SimonRC> how does / split the list?
22:02:48 <oklopol> i'll take those nuts as a compliment, i'm fairly satisfied with cise myself <3
22:02:50 <oklopol> ah
22:02:54 <oklopol> it has two definitions
22:03:04 <oklopol> int -> list -> list of lists
22:03:25 <oklopol> which splits into (whatever the int was) lists
22:03:36 <oklopol> *splits the given list into
22:03:45 <oklopol> equally distributing the elements
22:03:49 <oklopol> then
22:03:52 <SimonRC> cool
22:03:56 <oklopol> there's just / :: list -> list of lists
22:03:59 <oklopol> which splits in hald
22:04:01 <oklopol> *half
22:04:07 <AnMaster> night
22:04:26 <oklopol> i'll try actually adding / :: int -> list -> list of lists now, lessee what happens
22:04:27 <SimonRC> AnMaster: 'night
22:04:45 <SimonRC> oklopol: is the implementation available anywhere?
22:04:49 <oklopol> hmph, you're both green, stupid konversation
22:05:05 <oklopol> umm, i just scribbled it up, so no, not yet at least
22:05:10 <oklopol> also, it does not yet evaluate it.
22:05:15 <oklopol> although that isn't too hard
22:05:37 <oklopol> the parsing is the gist of cise really
22:06:39 <SimonRC> how does ' know when to stop?
22:07:23 <oklopol> as i said, there's a runtime check that recursion is not done twice with the same params
22:07:35 <oklopol> if it is, params are just returned.
22:07:38 <SimonRC> ok
22:07:47 <SimonRC> waitamo...
22:07:54 <SimonRC> the input the mergesort isn't a list of lists
22:08:07 <oklopol> my original way was to return [] when given [], but that was less parametrizable
22:08:12 <SimonRC> how does }#> get given one?
22:08:16 <oklopol> ' takes a *list* of values
22:08:35 <oklopol> and returns a list of the values that went through recursion
22:08:36 <oklopol> now
22:08:45 <oklopol> mergesort gets (list int)
22:08:55 <oklopol> / makes it (list (list int))
22:09:13 <oklopol> ' makes it (list (list int)), just recurses through them
22:09:22 <oklopol> then
22:09:37 <oklopol> (}# <) gets the (list (list int)) ' returned
22:09:46 <oklopol> hmm...
22:10:01 <oklopol> wonder what happens if i do }#<'/... :D
22:10:12 <oklopol> that's semantically equivalent, you see
22:10:30 <SimonRC> do we end up merging pairs of lists of lots at a time?
22:10:45 <oklopol> we may end up merging lists of lists
22:11:09 <oklopol> it's not something you often need, prolly, true, but there are a *lot* of list operations in cise.
22:11:17 <oklopol> it's basically a list language
22:11:45 <oklopol> St sorts a list, for instance, currently
22:12:14 <oklopol> there's also a separate "permutation type", you can kinda "almost" sort a list with it:
22:12:19 <oklopol> you call Sp on a list
22:12:25 <oklopol> and it returns a permutation
22:12:39 <oklopol> which is how the list should be permutated to be sorted
22:12:46 <oklopol> you can just do Sp list list to get it sorted
22:13:05 <oklopol> hmm
22:13:16 <oklopol> just today i had a situation where i needed that...
22:13:22 <SimonRC> that's cool
22:13:43 <SimonRC> it allows you to keep keys and values in seperate lists, and sort both by sorting one
22:14:02 <oklopol> yeah, for instance.
22:14:14 <SimonRC> the super-dooper operators sound rather J/K-ish
22:14:18 <oklopol> but there was something that was pretty hard to do otherwise, involving a "group" operation as well
22:14:27 <oklopol> yeah.
22:14:57 <oklopol> they do, i'm not saying i'm the first one to make a terse *array-processing language* either, just the parsing is completely "new" :P
22:15:12 <oklopol> also, i'm calling mine list-processing, but same thing i guess.
22:15:28 <oklopol> well, lists imply trees more than arrays, imo
22:15:36 <SimonRC> also the magical figuring out what variation of an operator to apply is J/K-like
22:15:40 <SimonRC> kinda
22:15:42 <SimonRC> and the overloading
22:15:49 <oklopol> and cise should, at least in the future, also have a nice support for tttttrees
22:15:55 <oklopol> hmm
22:16:04 <oklopol> yes, sure, but i doubt it's done to this extent
22:16:05 <SimonRC> ho do they differ from ordinary trees?
22:16:13 <SimonRC> oklopol: indeed
22:16:16 <oklopol> most likely the parse tree is clear without context.
22:16:44 <oklopol> there's compile-time *overloading* done based on types, but on the existing parse tree.
22:16:54 <SimonRC> yup
22:17:12 <oklopol> at least i think so, because no one in their right mind would do something like what i've done :D
22:17:32 <oklopol> what do you means how do they differ from ordinary trees?
22:17:38 <SimonRC> could you maintain a serious program written in it
22:17:51 <SimonRC> surely any tiny change would introduce a fountain of problems
22:17:55 <SimonRC> ?
22:18:17 <oklopol> well, if you keep expressions short, it may just work.
22:18:47 <oklopol> parsing nested functions has to be done at runtime, though, it is done when the function is first encountered, based on what functions existed at that time
22:18:57 <oklopol> after that, the functions is uses will not change
22:19:09 <oklopol> this means you can, if you want, introduce new operators to the language
22:19:15 <SimonRC> mmmm, jit
22:19:25 <oklopol> "jit"?
22:19:33 <SimonRC> oops, JIT
22:19:39 <SimonRC> just-in-time compiling
22:19:43 <oklopol> ah.
22:19:44 <oklopol> right
22:19:46 <oklopol> ofc
22:20:13 <oklopol> that is necessary, because when you're parsing the beginning of the program, you cannot have parsed the rest to see what operators will emerge
22:20:21 <oklopol> because you'd have to have parsed the beginning.
22:20:33 <oklopol> nothing good would arise from this sick fixed-point equation, methinks.
22:20:56 <SimonRC> couldn't you just enforce top-down semaintics?
22:21:07 <SimonRC> everything has to be deduceable from the program up to that point?
22:21:19 <oklopol> well, that's what i have, basically.
22:21:28 <oklopol> hmm
22:21:30 <oklopol> ah
22:21:42 <oklopol> you mean
22:21:57 <oklopol> i could use the functions that have been defined in the source up to the point of parsing
22:21:57 <oklopol> ?
22:22:06 <SimonRC> yes-ish
22:22:11 <oklopol> that's not good, because you may want to have circular dependency
22:22:20 <SimonRC> that is rare
22:22:27 <oklopol> i guess.
22:22:30 <SimonRC> introduce a specific operator for it
22:22:36 <ais523|sl_busy> oklopol: just do it like C and allow a way to predeclare a function
22:22:47 <SimonRC> yup
22:22:49 <oklopol> i already have an operator for setting a variable.
22:22:56 <oklopol> hmm
22:23:00 <SimonRC> or Forth has deferred words
22:23:14 <SimonRC> which are also general-purpose function hooks, ISTR
22:23:20 <oklopol> predeclaration doesn't really fit in
22:23:26 <oklopol> oh
22:23:30 <oklopol> or then does
22:23:35 <oklopol> i mean
22:23:39 <SimonRC> or how about a y-combinator kind of thing?
22:23:46 <oklopol> you just have to have introduced the *token*, to use it in parsing
22:23:48 <SimonRC> a specific mechnism for mutual reference
22:24:18 <oklopol> so you can do 0;foo to set foo, and then function-involving-foo;bar and then function-involving-bar;foo
22:24:22 <oklopol> ; sets a variable
22:24:41 <ais523|sl_busy> that's actually what C does, more or less
22:24:48 <oklopol> yeah
22:24:50 <SimonRC> Oh dear, NFS is playing up again
22:25:18 <oklopol> i guess you could actually compile cise if it's done like that
22:25:23 <SimonRC> I thought ; was for function sequencinging kind of things?
22:25:43 <oklopol> which would be quite awesome actually, weeks of compiling just to get a few chars of program to compile :P
22:25:52 <oklopol> (assuming using my unoptimized strict parser)
22:26:11 <oklopol> SimonRC: "," is the sequencer
22:26:20 <oklopol> ";" is a pattern matcher
22:26:43 <SimonRC> ok
22:26:43 <oklopol> so you can put parts of the stream or all of it in variables midway in the function
22:26:56 <SimonRC> wibble
22:27:12 <SimonRC> BTW, does the left or the right part of a function go "first"?
22:27:31 <oklopol> xD
22:27:44 <oklopol> okay, this was a classic failure from my part...
22:27:52 <oklopol> i did ghc cise.hs -o cise
22:28:03 <oklopol> guess what my cise SPEC was called ;)
22:28:09 <SimonRC> ouch
22:28:42 <oklopol> "file has changed do you want to reload from disk?" I HAVE NO IDEA WHY THAT'S HAPPENED, BUT SHUUURE :DDD
22:28:51 <oklopol> i'm a fucking idiot
22:28:59 <SimonRC> lost much?
22:29:00 <Sgeo> oklopol, is there a cise~ ?
22:29:00 <oklopol> hmm
22:29:12 <Sgeo> or whatever?
22:29:17 <SimonRC> can you "undo" the re-load~?
22:29:20 <oklopol> SimonRC: it's basically prefix + currying
22:29:25 <ais523|sl_busy> look for a backup
22:29:25 <oklopol> Sgeo: i may just love you
22:29:28 <oklopol> let's see
22:29:38 <ais523|sl_busy> or see if you pasted or copied it anywhere
22:29:48 <SimonRC> or something in a pastebin?
22:29:50 <oklopol> yeah! :)
22:30:04 <oklopol> i probably wouldn't even have looked xD
22:30:11 <oklopol> but it was there
22:30:13 <SimonRC> or be like Paul Graham and say "screw the docs the program is the spec"
22:30:26 <oklopol> :P
22:30:35 <SimonRC> in future, keep you manual is a different dir
22:30:43 <Sgeo> oklopol, so I was right?
22:30:43 <oklopol> guess i should
22:30:45 <SimonRC> or maybe call it "cise.txt"
22:30:52 <oklopol> Sgeo: yes, i do love you
22:32:28 <Sgeo> I can never remember the log for this channel
22:33:03 * ais523|sl_busy generally goes to it via the community portal on Esolang
22:33:25 <ais523|sl_busy> it's http://tunes.org/~nef/logs/esoteric/ according to my browser history
22:33:36 -!- RedDak has quit (Remote closed the connection).
22:34:06 * oerjan just writes t u in the address bar and the browser shows the rest
22:34:35 <ais523|sl_busy> since I accidentally deleted the Underlambda specs (by typing rm * by mistake), I've set emacs to back up everything in a different directory
22:34:52 <ais523|sl_busy> and it took out my old reference interp at the same time
22:35:04 <ais523|sl_busy> but I'm working on a new version now (when I'm not doing University work)
22:36:11 <SimonRC> ais523|sl_busy: doesn't your uni keep backups?
22:36:22 <ais523|sl_busy> I was doing it on my laptop
22:36:32 <ais523|sl_busy> not on the University servers
22:36:50 <ais523|sl_busy> and although I keep backups, I didn't take them often enough to save the spec
22:37:00 <ais523|sl_busy> (which I'd only been working on for about 2 days then)
22:37:34 <oklopol> wow
22:37:43 <oklopol> [['}#', '<'], ["'", ['/', '*']]] from }#<'/
22:37:47 <oklopol> oh right
22:37:51 <oklopol> i didn't check if that was right
22:37:53 <oklopol> lol :P
22:37:55 <oklopol> let's check
22:38:02 <oklopol> it is
22:38:10 <ais523|sl_busy> one of my friends stores their home directory, minus large media files, in Subversion, so they can access it from anywhere, and so it's automatically backed up with a simple svn ci
22:38:26 <oklopol> that pretty awesome, there is, after all, about 6 parse trees from those 4 tokens
22:38:38 <oklopol> (okay, it's not)
22:38:45 <oklopol> (but it's promising!)
22:39:21 <oklopol> 5 character mergesort, and not even *complete* cheat
22:39:35 <ais523|sl_busy> is cise concatenative
22:39:42 <ais523|sl_busy> I can't quite tell from your description
22:39:47 <oklopol> not fully, i don't think so
22:39:49 <lament> are they unicode characters
22:39:51 <oklopol> well
22:39:54 <SimonRC> cise is "gluing"
22:40:05 <SimonRC> it stick stuff together in whatever way works
22:40:11 <oklopol> :P
22:40:15 <SimonRC> composition, argument-passing, curring, etc
22:40:23 <SimonRC> *currying
22:40:24 <oklopol> yeah, you can pretty much just slash your characters there and it works!
22:40:33 <oklopol> lament: i don't think so
22:40:52 <SimonRC> except when the computer finds a nex and exciting interpreetation of your ambiguous parse tree...
22:40:56 <SimonRC> *new
22:41:02 <oklopol> curly bracket close, that number character, less-than, single quote, slash
22:41:07 <SimonRC> And I thought C++ was bad
22:41:14 <oklopol> heh
22:41:19 <SimonRC> (In C++, parsing depends on the kinds of various identifiers)
22:41:34 <ais523|sl_busy> (and in cise, it depends on what parses don't cause type errors?)
22:41:45 <SimonRC> (foo(bar); could meant many different things)
22:41:46 <oklopol> ais523|sl_busy: (exactly)
22:42:07 <ais523|sl_busy> what do you do when there are two non-erroneous ways to parse the program?
22:42:09 <SimonRC> what is your typesystem?
22:42:14 <oklopol> SimonRC: but at least in c++, foo is always s single identifier ;)
22:42:21 <oklopol> ais523|sl_busy: it takes the first one.
22:42:29 <oklopol> SimonRC: i currently have ints, booleans and lists.
22:42:39 <oklopol> implemented simply as python tuples :)
22:43:00 <oklopol> so you can just add types by introducing another type name :)
22:43:20 <SimonRC> what order do parses come in? i.e. which is "first"?
22:43:40 <oklopol> that i shall define in the spec, currently it's what my implementation has.
22:44:01 <oklopol> it has to be well-defined ofc, because this is all about terseness.
22:44:58 <oklopol> well, for many programs, you can simply use a clear prefix notation.
22:45:07 <SimonRC> brackets?
22:45:09 <oklopol> so it should try to parse your thing as such
22:45:18 <oklopol> there are not brackets.
22:45:31 <SimonRC> they would help human readers
22:45:33 <oklopol> well, () are used to define a function
22:45:37 <SimonRC> ok
22:45:55 <oklopol> i guess i might make it possible to use that in a sort of bracket-like fashion
22:45:57 <oklopol> somehow...
22:46:05 <SimonRC> or something liek it
22:46:13 <SimonRC> how about intercal-style ""
22:46:25 <SimonRC> which also parse ambiguously
22:46:27 <oklopol> you can set variables, so you can definately be as clear as you wish.
22:46:31 <oklopol> hehe
22:46:33 <SimonRC> but less ambiguously than without
22:46:40 <SimonRC> ok
22:47:14 <oklopol> ;I,;mc,[]("[]"),=}!!b->"+"+mC1"-"-mC1">"+C1"<"-C1(;X)Wh=mC0=}X??b i wonder if this parses :P
22:47:22 <oklopol> that's not at all ambiguous, even
22:47:28 <oklopol> ...or then it is, not sure
22:47:43 <oklopol> that should be a fully working binary brainfuck
22:47:45 <SimonRC> what should it do?
22:47:49 <SimonRC> cool
22:48:00 * ais523|sl_busy is amused by IRC messages crossing from time to time
22:48:01 <SimonRC> how the fuck does it work?
22:48:14 <SimonRC> ais523|sl_busy: yeah, brain-lag
22:48:19 <oklopol> it uses goto's and whiles, and i'm not sure i even remember how it works :)
22:48:25 <SimonRC> *boggle*
22:48:31 <SimonRC> but, it's like, 1 line!
22:48:36 <ais523|sl_busy> goto is, of course, not impossible even in a concatenative language
22:48:41 <SimonRC> I wonder if J/K can beat that
22:48:53 <oklopol> first of all, a lot of that is not up to date anymore.
22:49:00 <oklopol> i think.
22:49:24 <oklopol> let's look at something simpler, preferably :)
22:49:35 <oklopol> Al/_:¨ this should check if a number is prime 8|
22:49:48 <ais523|sl_busy> umlaut is a character in cise?
22:49:50 <ais523|sl_busy> that isn't in ASCII
22:49:56 <oklopol> true.
22:50:18 <oklopol> it's in my keyboard, so i use it. :)
22:50:28 <oklopol> i prolly change everything to ascii later
22:50:37 <oklopol> because cheating otherwise, ofc
22:50:39 <SimonRC> how does the ascii-checker work?
22:50:41 <ais523|sl_busy> the shortest BF interpreter entered on codegolf.com was 106 bytes long
22:50:44 <ais523|sl_busy> in Perl
22:51:15 <ais523|sl_busy> however, that website doesn't let you see what the program was, unless it was you who submitted it
22:51:40 <oklopol> SimonRC: ascii-checker?
22:52:23 <SimonRC> oops
22:52:28 <SimonRC> I meant prime-checker
22:52:45 <oklopol> hmm, first of all, Al/_¨ should work now, second, this seems to rely on type *conversion*
22:52:45 <oklopol> :)
22:53:14 <oerjan> haskell.org
22:53:31 <oklopol> that does (all (div val [1..val-1]))
22:53:42 <oerjan> wong time no see
22:53:51 <oklopol> and assumes an integer can also be divided by a list to get a list of them resultzorz
22:53:56 <ais523|sl_busy> oerjan: I don't understand your last two comments
22:54:01 <oklopol> :)
22:54:06 * oklopol does
22:54:15 <SimonRC> oklopol: or, in Bill Gates's case, long time no C
22:54:19 <oerjan> the second explains the first one. perfectly.
22:54:20 <oklopol> oerjan is an irc advertiser bot
22:54:43 <ais523|sl_busy> really? I thought they were a Norwegian mathematician
22:55:05 <ais523|sl_busy> but it's easy to jump to conclusions over the internet
22:55:08 <SimonRC> Ah, I see
22:55:17 <oklopol> ais523|sl_busy: observe oerjan closely, what you just saw was oerjan's *thing*
22:55:37 <oklopol> everyone has a thing!
22:55:42 <SimonRC> hmm, no I don't
22:56:05 <oklopol> you only have one thing in my head
22:56:36 <oklopol> because you're not *that* active, not that weird, and you've clearly stated to me a personal detail
22:56:57 <oklopol> wonder if you know what that is
22:57:53 <oklopol> hmm, one a clock
22:58:02 <Sgeo> What's my thing?
22:58:11 <oklopol> Sgeo: do you really have to ask?
22:58:30 <ais523|sl_busy> Sgeo: it most probably starts with P
22:59:12 <oklopol> ais523|sl_busy's thing is also pretty clear, you're branded for life.
22:59:29 <oklopol> well
22:59:29 * oerjan thinks ais523|sl_busy has at least two things
22:59:41 <oklopol> oerjan: what's the other?
22:59:43 <ais523|sl_busy> I'm pretty sure I have several
23:00:01 <oerjan> he's also the INTERCAL guy in my mind
23:00:04 <ais523|sl_busy> getting into arguments with ehird over programming style and choice of language is one of the non-obvious ones
23:00:06 <Sgeo> Oh, I misunderstood what you meant by "thing", I thought you meant style of talking
23:00:08 <oklopol> ais523|sl_busy: my branding comment meant exactly that while you have done a lot of stuff, you just have that one thing.
23:00:30 <ais523|sl_busy> repeatedly adding daemons to EgoBot was another, but it isn't here at the moment
23:00:36 <oklopol> yeah, i also know he's an intercal guru, but the global fame overrides that.
23:01:05 <ais523|sl_busy> as for style of talking, I'm ridiculously addicted to singular they
23:01:10 <ais523|sl_busy> even though I forget to use it from time to time
23:01:20 <oklopol> true
23:01:30 <SimonRC> Didn't we have this conversation a few months back?
23:01:45 <SimonRC> I am the neophile.
23:01:52 <oklopol> heh
23:02:03 * oklopol is many philes...
23:02:11 <oklopol> i need to eat something ->
23:02:15 <Sgeo> neophile? Addicted to matrix, or something else? Obsessed with new stuff?
23:02:28 <oerjan> addicted to sniffing neon
23:02:45 <ais523|sl_busy> oerjan: that would have no effect, surely?
23:02:56 <SimonRC> I go "ooh stack programming bounce bounce bounce bored ooh array programming bounce bounce bounce bored ooh hight-order functions bounce bounce bounce bored"
23:02:59 <SimonRC> etc
23:03:07 <SimonRC> *higher-order
23:03:16 <oerjan> you'll have to sniff a _lot_
23:03:21 <Sgeo> ais523|sl_busy, would have an effect if oxygen didn't get to your lungs
23:03:28 <SimonRC> hmm
23:03:37 <oklopol> hmm, actually a lot of guys here don't have a thing
23:03:38 <ais523|sl_busy> write a few Underload programs, then you'll get the hang of concatenative programming
23:03:45 <oklopol> because i've never seen them talk
23:04:02 <SimonRC> well, if you have any elemental flourine in you it will react with xenon...
23:04:03 <ais523|sl_busy> or look at my draft Underlambda spec and write some pure functional concatenative programs (in the Unlambda sense of pure functional, not the Haskell sense)
23:04:08 <SimonRC> but not neon afaik
23:04:25 <ais523|sl_busy> SimonRC: surely no body could survive large amounts of elemental flourine
23:04:40 <SimonRC> ais523|sl_busy: unless you are a flourine elemental
23:04:55 * SimonRC recalls a GITP episode
23:04:55 <ais523|sl_busy> flourine, or fluorine?
23:05:01 <SimonRC> whatever
23:05:02 <ais523|sl_busy> I think we've been mispelling it consistently
23:05:16 <SimonRC> "uo" is rare in English
23:05:27 <ais523|sl_busy> Noun
23:05:27 <ais523|sl_busy> flourine
23:05:27 <ais523|sl_busy> 1. Common misspelling of fluorine.
23:05:34 <ais523|sl_busy> (from Wiktionary)
23:05:55 <oerjan> that's a LIE
23:06:06 <ais523|sl_busy> but the way that's written, it seems like "Common misspelling of fluorine" is the /definition/ of 'fluorine'
23:06:18 <ais523|sl_busy> s/'fluorine'/'flourine'/
23:06:26 <oerjan> flourine is a dangerous chemical arising in flour that has been stored too long
23:06:34 <SimonRC> :-P
23:06:37 <ais523|sl_busy> so therefore 'flourine' is a noun that can only possibly refer to the word 'flourine'
23:06:43 <ais523|sl_busy> in a nice bit of self-reference
23:06:53 <SimonRC> heh
23:07:15 <SimonRC> oklopol: how about a compiler with common sense
23:07:18 <SimonRC> ?
23:07:23 <oerjan> recursive [adj.]: see recursive
23:07:37 <ehird> SimonRC: No, I will NOT compile this virus!
23:07:44 <SimonRC> "obviously I don't want to throw away all the results you stupid machine, I meant to save them in that otherwise-empty list!"
23:07:44 <oklopol> SimonRC: like, that it'd take the parse tree resulting in a nice algo? ;)
23:08:08 <SimonRC> and it would automatically change the program to DWYM
23:09:05 <oklopol> DWYM?
23:09:18 <SimonRC> Do What You Mean
23:09:22 <oklopol> (cannot google...)
23:09:23 <oklopol> ah
23:09:25 <ehird> SimonRC: main(){printf("%i",pi);}
23:09:29 <ais523|sl_busy> as in WYSIWYM
23:09:29 <ehird> prints out all of pi
23:09:30 <ehird> but
23:09:41 <ehird> comparisons etc involving pi
23:09:41 <ais523|sl_busy> (posited as an improvement on WYSIWYG)
23:09:44 <ehird> use an approx. value
23:09:46 <SimonRC> oklopol: why you not have interwebz?
23:09:53 <oklopol> i have no idea
23:10:06 <oklopol> perhaps i should restart my router like ppl keep telling me :o
23:10:07 <ehird> oklopol: Router. Restart it.
23:10:07 <ais523|sl_busy> oerjan: that doesn't terminate
23:10:12 <ehird> oklopol: You just set up Konversation, so!
23:10:21 <SimonRC> can you start a web browser?
23:10:26 <oklopol> well, i just set just freenode
23:10:32 <ais523|sl_busy> a better example would be 'recursive [adj.]: see the definition of recursive in the previous edition of this dictionary'
23:10:37 <oklopol> SimonRC: yes, but it won't open anything
23:10:46 <ais523|sl_busy> with a genuine definition in the first edition
23:11:12 <ais523|sl_busy> oklopol: can you ping anywhere outside your network?
23:11:12 <oklopol> that would most likely be tail recursion
23:11:13 <ehird> ais523|sl_busy: lazily evaluated recursion
23:11:19 <oklopol> depending on the laziness of the reader
23:11:24 <oklopol> ais523|sl_busy: lessee
23:11:36 <ais523|sl_busy> ehird: eso-std.org doesn't respond to pings
23:11:45 <SimonRC> oklopol: well, you can get on IRC...
23:11:47 <ehird> recursive [adj.]: when a function (see recursive-inner).
23:11:49 <ais523|sl_busy> looks like I'll have to go back to bouncing them off Google
23:11:52 <oklopol> i can ping google.
23:11:56 <ehird> recursive_inner: calls a function that (see recursive_inner)
23:12:05 <ehird> ais523|sl_busy: does it not? oh wells.
23:12:09 <ehird> ais523|sl_busy: it will, sometime.
23:12:12 <ais523|sl_busy> no wait, Google isn't responding to pings from here either
23:12:22 <ais523|sl_busy> the University firewall must block pings...
23:12:25 <oklopol> ehird: did you read my cise rant?
23:12:39 <oklopol> it seems my idea actually works, to some extent
23:12:53 <oklopol> ais523|sl_busy: i *can* ping google
23:12:55 <SimonRC> have you tried a different web browser?
23:13:03 <oklopol> hmm no
23:13:06 <SimonRC> or telnet www.google.com 80
23:13:09 <ehird> oklopol: gimme spec
23:13:13 <ais523|sl_busy> what about typing HTML commands in by hand?
23:13:26 <ais523|sl_busy> (heh, that's what SimonRC suggested, but I meant to say HTTP and got the wrong acronym)
23:13:57 <oklopol> okay.
23:14:03 <oklopol> i can get google on telnet :P
23:14:06 <oklopol> ah.
23:14:08 <oklopol> LOL
23:14:18 <oklopol> i have a proxy set, must be down :)
23:14:21 * oklopol owns
23:15:14 <SimonRC> I have noticed I sometimes try to apply debugging techniques to religion-like things
23:15:26 <ais523|sl_busy> SimonRC: that's unlikely to work
23:15:31 <SimonRC> otehr peoples'
23:15:41 <SimonRC> :twisted:
23:15:41 <ais523|sl_busy> unless they're porting gdb to humans nowadays
23:16:01 <oklopol> i had a jehova's witness on the door today
23:16:10 <oklopol> apparently there's a big jesus party coming
23:16:13 <SimonRC> I mean, I see some nonsense, and try to divide up the reasoning
23:16:18 <SimonRC> oklopol: again
23:16:23 <SimonRC> ?
23:16:28 * Sgeo starts looking at Magnatune again
23:16:30 <oklopol> yep, and same guy actually :)
23:17:00 <SimonRC> surely everyone gets a chance to repent during those seven nasty years?
23:17:01 <oklopol> it would be so awesome to join a group like that
23:17:06 <SimonRC> hmm
23:17:08 <ais523|sl_busy> BTW, I made an ogg version of the Fugue Hello World I wrote
23:17:14 <ais523|sl_busy> (for people who can't read MIDI)
23:17:16 <oklopol> i've just seen so many cult movies i'm afraid they'd kill me :)
23:17:25 <SimonRC> start your own
23:17:25 <ais523|sl_busy> but Esolang doesn't accept ogg-format uploads for some reason
23:17:30 <SimonRC> then you'd be boss
23:17:36 <Sgeo> ais523|sl_busy, url?
23:17:37 <oklopol> heh
23:17:50 <ais523|sl_busy> Sgeo: nowhere, as I've just explained
23:17:53 <Sgeo> oh
23:17:59 <ais523|sl_busy> I can paste it to a filebin temporarily, though, for you
23:18:01 <Sgeo> I thought maybe you put it up elsewhere
23:18:17 <Sgeo> Actually, I think I did get the midi to work
23:18:20 <Sgeo> It's just painful
23:18:26 <SimonRC> oklopol: interwebs work now?
23:18:30 <oklopol> yeah
23:18:36 <SimonRC> yay!
23:18:42 <oklopol> yayeeee
23:18:45 <ais523|sl_busy> Sgeo: http://filebin.ca/ddtfxb/hworld.ogg
23:18:57 <oklopol> do i have to upload my interp now?;)
23:19:02 <ais523|sl_busy> (unfortunately that link will stop working after an unspecified length of time)
23:19:11 <oklopol> would be no use, you simply could not read it.
23:19:20 * SimonRC invites oklopol to a party with lemons, a girl in a tub, goats, and E
23:19:25 <SimonRC> mwahaha
23:19:45 <oklopol> omg i love tub parties
23:19:52 <SimonRC> uh
23:19:56 <oklopol> will there also be another girl and a cup?
23:19:56 <Sgeo> Anyone up to making a PSOX program in Fugue?
23:20:03 <SimonRC> oklopol: of course
23:20:28 <ais523|sl_busy> Sgeo: I have a very complicated indirect chain of programs which amount to a BF->Fugue compiler
23:20:32 <oklopol> good, is this the #esoteric orgy me and bsmntbombdood have been planning for ages?
23:20:47 <ais523|sl_busy> however, they're sufficiently non-portable that I don't think they're capable of running on more than one computer
23:20:53 <ais523|sl_busy> and unfortunately that computer isn't this one
23:20:54 <Sgeo> chain of programs? Please elaborate?
23:21:12 <SimonRC> oklopol: dunno
23:21:18 <ais523|sl_busy> BF->Prelude compiler. Prelude->Fugue compiler, but with music in a weird intermediate format I invented.
23:21:50 <ais523|sl_busy> Then I use that weird intermediate + another program I wrote to send a series of keystrokes to a proprietary MIDI editor, typing in the entire piece of music
23:22:03 <ais523|sl_busy> (hmm... maybe I could alter it so it works with Rosegarden?)
23:22:11 <SimonRC> is there any Choon involved?
23:22:24 <Sgeo> According to the wiki and my understanding, Prelude is equiv. to Fugue.. is this wrong?
23:22:27 <ais523|sl_busy> Then, I export to MIDI, and use TiMidity to synthesize that into ogg if needed
23:22:33 <ais523|sl_busy> Sgeo: almost but not quite
23:22:44 <Sgeo> "not quite"? howso?
23:22:46 <ais523|sl_busy> Fugue's a superset because it can handle literal constants greater than 9
23:22:52 <ais523|sl_busy> but that's a very minor difference
23:22:58 <ais523|sl_busy> SimonRC: no Choon anywhere
23:23:42 <SimonRC> :')
23:23:44 <SimonRC> oops
23:23:47 <SimonRC> :'(
23:23:59 <Sgeo> So why not translate Prelude to Fugue directly?
23:24:01 <ais523|sl_busy> SimonRC: because it's a different language
23:24:05 <ais523|sl_busy> Sgeo: because I don't know MIDI
23:24:11 <ais523|sl_busy> or at least, I know MIDI pretty well
23:24:13 <ais523|sl_busy> but not its file format
23:24:25 <ais523|sl_busy> (I'm more used to it as a protocol)
23:24:26 <oklopol> btw i made a music description language the other day, it totally owns standard score notation
23:24:37 <ehird> unquote :: 'R ('R -> 'S) -> 'S
23:24:38 * Sgeo types pylib into Fx
23:24:45 <oklopol> i'll turn it tc next week, methinks
23:25:06 <Sgeo> Nothing on there, /me googles Python MIDI
23:25:07 <ais523|sl_busy> ehird: I'm having problems figuring out the kind of 'R in that
23:25:21 <SimonRC> you mean you calculate scores?
23:25:24 <ehird> ais523|sl_busy: R is an abbrev. for "Rest"
23:25:30 <oklopol> for a while now i've been thinking about something like hamming distance for melodies, would be nice to have a database of songs
23:25:36 <ehird> ais523|sl_busy: It means "the rest of the stack."
23:25:47 <oklopol> for instance you could check whether a melody is your invention, or already exists
23:25:49 <Sgeo> http://www.mxm.dk/products/public/pythonmidi
23:25:51 <ehird> And, of course, EVERYTHING types as ('R -> 'S) -- you give it a stack in and you get a stack out
23:26:00 <SimonRC> oklopol: this has been studied before of course
23:26:03 <ais523|sl_busy> oklopol: I seem to remember that someone once did that simply by writing down the up-down sequence of notes
23:26:10 <ais523|sl_busy> which discriminates between tunes pretty quickly
23:26:15 <ais523|sl_busy> althoug of course it isn't a perfect hash
23:26:16 <SimonRC> but only roughly
23:26:34 <SimonRC> and will split very similar tunes apart
23:27:10 <oklopol> everything done on the subject suck ass as far as i know.
23:27:12 <SimonRC> and what if you can't remember the intor?
23:27:13 <oklopol> *sucks
23:27:14 <SimonRC> *intro
23:28:01 <ais523|sl_busy> it may be best to have it both for the intro and for the first few notes of the chorus/main theme, for tunes that have one
23:28:25 <oklopol> umm, or just the whole piece
23:28:48 * Sgeo goes to write a prelude2fugue.py
23:29:07 <ais523|sl_busy> my bf2pre.c is in the Esolang filestore IIRC
23:29:19 <SimonRC> oh great, now I have both the SG-1 and Atlantis themes in my head at once now
23:29:40 <ehird> SimonRC: damn, my headmusicplayer isn't multithreaded
23:29:45 <ehird> it has a gui like xmms too
23:29:55 <SimonRC> mine task-switches...
23:30:19 <SimonRC> I do actually task-switch quite explicitly in some situations
23:30:46 <oklopol> atlantis theme?
23:30:51 <ehird> SimonRC: you read the daily wtf, don't you? that place is becoming a wtf in itself
23:30:59 <SimonRC> ehird: really?
23:31:00 * ais523|sl_busy reads it
23:31:05 <ehird> I mean, at least the *parody* MFDs in the comments are funny..
23:31:14 <SimonRC> oklopol: yeah, Stargate Atlantis
23:31:25 <ais523|sl_busy> did you see the thread with 700+ comments on one of the main stories?
23:31:30 <SimonRC> which?
23:31:31 <ais523|sl_busy> presumably it was linked from one of the big sites
23:31:48 <ais523|sl_busy> SimonRC: the one where a company had used JavaScript for authentication
23:31:54 <ehird> ais523|sl_busy: reddit linked it
23:31:59 <ehird> it got on the front page
23:32:00 <ais523|sl_busy> where the password was checked against plain text client-side
23:32:04 <ais523|sl_busy> ehird: that would explain it
23:32:05 <SimonRC> hehehe
23:32:12 <SimonRC> that could describe several ones
23:32:22 <ehird> Error: Target org.macports.fetch returned: fetch failed
23:32:23 <ehird> Error: Status 1 encountered during processing.
23:32:23 <ehird> sfhkjsdfh
23:32:25 <ais523|sl_busy> the amusing thing was that it appeared to be a scam company's website in the first place
23:32:40 <oklopol> i need to sleep for a while, cya ->
23:33:02 <SimonRC> did anyone sign up as "little Bobby Tables"? :-)
23:33:17 <ais523|sl_busy> SimonRC: you can't inject SQL into client-side JavaScript validation
23:33:28 <ais523|sl_busy> that's one thing to be said for it, at least
23:33:34 <SimonRC> ais523|sl_busy: no, but it might make it through to the server side
23:33:54 <ais523|sl_busy> there was no server side
23:34:01 <SimonRC> wibble
23:34:05 <ais523|sl_busy> the page simply had a script that checked the username/password
23:34:15 <ais523|sl_busy> and if it was right, redirected the user to another web page
23:34:20 <SimonRC> ah, ok
23:34:24 <ais523|sl_busy> which they could just access directly if they knew the URL
23:34:47 <ais523|sl_busy> still more amusingly, the people in charge of the website found out, and changed the username/password
23:34:55 <SimonRC> lol
23:34:59 <ais523|sl_busy> (but of course they were still visible in view source...)
23:35:02 <SimonRC> What the fuck?!
23:35:11 <SimonRC> that is the WTF moment
23:35:13 <SimonRC> really
23:35:30 <ais523|sl_busy> it was one of the better frontpage stories there
23:35:48 <SimonRC> I wonders if MFD is supposed to be any good or whether someone knows they are crap but people will like discussing it.
23:35:50 <ehird> Amusingly, the daily wtf's first few submissions sucked. terribly
23:36:07 <SimonRC> ehird: it was not originally on thedailyWTF
23:36:08 <ehird> SimonRC: I dunno, I basically skim over the actual comic and read the hilarious modified versions in the comments instead
23:36:10 * Sgeo decides to give up on prelude2fugue
23:36:11 <SimonRC> and IMO they weren't oo bad
23:36:15 <SimonRC> *too
23:36:20 <ais523|sl_busy> SimonRC: on Wikipedia, MFD is where non-article content is deleted
23:36:27 <ehird> ais523|sl_busy: Mandatory Fun Day
23:36:29 <ais523|sl_busy> as in, pointless webcomics that people run on project pages
23:36:36 <ehird> hahahaha
23:36:36 <SimonRC> ah
23:36:37 <ais523|sl_busy> I found the acronym coincidence amusing
23:36:40 <ehird> that's great
23:36:44 <SimonRC> maybe deliberate
23:36:49 <SimonRC> what does "MFD" stand for?
23:36:55 <ehird> SimonRC: Misc. for deltition
23:36:56 <ais523|sl_busy> Miscellany for Deletion
23:36:57 <ehird> *deletion
23:36:59 <SimonRC> ok
23:37:05 <ais523|sl_busy> as in, all pages not covered by other deletion processes
23:37:12 <ais523|sl_busy> mainly, it's used for project pages and user pages
23:37:12 <SimonRC> hm....
23:37:12 <ehird> Mandatory Fun Day: Man, Fuck 'Dis
23:37:30 <SimonRC> no
23:37:39 <ais523|sl_busy> although I hold the record for successful MfDs of system interface messages
23:37:45 <SimonRC> Man, Fucked by Dis (the language)
23:37:58 <ehird> heh
23:37:58 <ais523|sl_busy> (I have 2, nobody else has any)
23:38:03 <SimonRC> ais523|sl_busy: system interface messages?
23:38:04 <ehird> ais523|sl_busy: wow
23:38:06 <ehird> how did you do that
23:38:12 <ehird> SimonRC: things like the global site header
23:38:16 <ehird> yes, they're actually transcluded pages
23:38:19 <SimonRC> wow
23:38:21 <ehird> MediaWiki is awful, awful software
23:38:23 <ais523|sl_busy> not quite transcluded, but much the same
23:38:26 <ehird> I think everyone can agree on that
23:38:31 <ais523|sl_busy> and MediaWiki makes a lot of sense for WMF
23:38:38 <SimonRC> the forum software is TRWTF
23:38:41 <ais523|sl_busy> but most of its features are designed just to be convenient for them
23:38:43 <ais523|sl_busy> SimonRC: I know
23:38:45 <ehird> the wiki software is TRWTF
23:38:46 <SimonRC> the preview that isn't
23:38:57 <ais523|sl_busy> I mentioned the CAPTCHA in one of my posts
23:39:00 <ehird> Twiki softwareITRWTF <-- shorthand!
23:39:04 <ehird> ais523|sl_busy: everyone does that
23:39:05 <ehird> :(
23:39:11 <ais523|sl_busy> when you preview the post, it changes the captcha image, but keeps the same word
23:39:22 <SimonRC> hehehe
23:39:25 <ais523|sl_busy> giving you a second chance to OCR it with different data
23:39:37 <ais523|sl_busy> (and ehird: no, I didn't say what the CAPTCHA word was, like so many people do)
23:39:50 <ehird> http://thedailywtf.com/Articles/18-The-Bullet-That-Slayed-The-Beast.aspx What is the expected *reaction* to this? 'Ha ha ha'?
23:39:55 <ais523|sl_busy> (but from what they have said, it seems to me that it's just taking random words from lorum ipsum)
23:40:05 <ehird> It basically amonuts to 'LOL, Microsoft r awsum. Open src ppl SUXORR'
23:40:22 <SimonRC> ehird: the reverse of the usual?
23:41:34 <ais523|sl_busy> ehird: I actually rather like MediaWiki in some ways
23:41:42 <ais523|sl_busy> (see Wiki Cyclic Tag on Esolang, for instance)
23:41:49 <ais523|sl_busy> it's not TC because infinite loops are impossible
23:42:03 <ehird> ais523|sl_busy: Even toy wikis disable template recursion. :-)
23:42:03 <ais523|sl_busy> but it is TC when the user restarts the loop by hand (by piping output to input)
23:42:20 <ehird> everything
23:42:24 <ehird> 's tc when the user does it
23:42:24 <ehird> :)
23:42:36 <ais523|sl_busy> yes, but not much user intervention is needed
23:42:42 <ais523|sl_busy> I call the situation 'Muriel-complete'
23:43:06 <ehird> ais523|sl_busy: Would a brainfuck interp in MWT be possible?
23:43:24 <ehird> {{brainfuck|,[.,]|hello}}
23:43:25 <ais523|sl_busy> ehird: I've already written a cyclic tag system in it
23:43:31 <ehird> Obviously, you'd need to restart it at points
23:43:35 <ehird> But could you actually do that parsing?
23:43:44 <ais523|sl_busy> but there's no way to do parsing for chars that don't have special wikimarkup meanings
23:43:54 <ehird> ah
23:44:00 <ais523|sl_busy> which is why the cyclic tag system needs to use = as a list separator
23:44:31 <ais523|sl_busy> ehird: it may be possible if Extension:StringFunctions were installed, though
23:44:51 <ais523|sl_busy> (note that I avoided extensions for Wiki Cyclic Tag, including the well-known ParserFunctions that make MediaWiki a bit like a programming language)
23:45:30 <ehird> ais523|sl_busy: Hmm. It occurs to me that a template system can trivially simulate the lambda calculus..
23:45:32 <ehird> Like this:
23:45:42 -!- oerjan has quit ("Good night").
23:45:44 <ehird> K is
23:45:50 <ehird> Err
23:45:54 <ehird> Let's try the mocking bird combinator
23:45:54 <ehird> easier
23:45:55 <ehird> :P
23:46:01 <ehird> {{ {{{1}}} | {{{1}}} }}
23:46:33 <ais523|sl_busy> ehird: no
23:46:45 <ehird> ais523|sl_busy: Yes, I know MW's probably doesn't allow that, but that's because it sucks
23:46:48 <ais523|sl_busy> actually, maybe that would work
23:46:53 <ais523|sl_busy> and MW does allow that syntax
23:47:06 <ais523|sl_busy> but I was trying to track what happened to the parameters
23:47:06 <ehird> only one way to find out..
23:47:10 <ais523|sl_busy> but it seems it's fine
23:47:21 <ehird> User:Elliott/mwc/m here I come!
23:47:23 <ais523|sl_busy> and ehird: you'll just get a template loop error if you aim it at itself
23:47:26 <ehird> (mwc == mediawikicode)
23:47:39 <ehird> ais523|sl_busy: 'Y' could come in handy here
23:47:45 <ehird> Hmm, you can't create anonymous templates though
23:47:53 <ehird> So you can't do Y, or much anything really
23:47:56 <ehird> Hmm.
23:48:00 <ehird> I'll try S, K, I
23:48:03 <ais523|sl_busy> you may be able to do something with extra parameters
23:48:07 <ehird> Hmm, wait..
23:48:11 <ais523|sl_busy> by defining K1, S1, S2
23:48:15 <ehird> ais523|sl_busy: Is it possible to curry it?
23:48:15 <ehird> Yes
23:48:19 <ais523|sl_busy> (the partially-curried forms of S and K)
23:48:20 <ehird> But how do we get the param to K1
23:48:25 <ehird> that was given to K
23:48:35 <ais523|sl_busy> you would need to be passing more than one param around
23:48:42 <ehird> ais523|sl_busy: example?
23:48:44 <ehird> show me K
23:48:54 <ais523|sl_busy> however, bug 5678 has now been fixed, so I don't think it's possible nowadays
23:49:12 <ehird> I mean, you can do:
23:49:13 <ais523|sl_busy> previously, you could do something like K = K1 {{!}} {{{1}}}
23:49:16 <ehird> Hmm
23:49:19 <ehird> What is {{!}}
23:49:27 <ais523|sl_busy> a template containing just |
23:49:30 <ehird> OK.
23:49:33 <ehird> I'll give it a try.
23:49:38 <ais523|sl_busy> but that only worked by exploiting a parser bug
23:49:42 <ehird> ais523|sl_busy: K1, or {{{K1 ...}}} ?
23:49:49 <ais523|sl_busy> related to ParserFunctions, which aren't on Esolang
23:50:05 <ais523|sl_busy> you dereferenced the {{!}} using {{#if:1|{{{thingtodereference}}}}}
23:50:21 <ais523|sl_busy> but that doesn't work nowadays, and never ought to have worked in the first place
23:50:25 <ehird> ais523|sl_busy: {{User:Elliott/!}}
23:50:28 <ehird> is that OK?
23:50:41 <ehird> also
23:50:47 <ehird> #if:1 could be simulated by If1
23:50:51 <ais523|sl_busy> yes, that's pretty much identical to the corresponding Wikipedia template
23:50:51 <ehird> which would be {{{1}}}
23:50:55 <ais523|sl_busy> and ehird, no, it was a bug in #if
23:51:02 <ehird> Welp, I'll try it anyway
23:51:19 <ehird> ais523|sl_busy: K1 would just be {{{1}}}, correct?
23:51:25 <ais523|sl_busy> yes
23:51:29 <ehird> Hmm
23:51:31 <ehird> Then it could be
23:51:35 <ehird> I {{!} {{{1}}}
23:51:35 <ehird> :-)
23:51:37 <ais523|sl_busy> allowing for dereferences in appropriate places
23:51:54 <ais523|sl_busy> and I can't figure out where they ought to go right now
23:51:59 <ehird> ah
23:52:12 <ais523|sl_busy> but they won't work anyway, so you can't test
23:52:16 <ehird> okay :(
23:52:21 <ehird> ais523|sl_busy: so there's no way to curry a template properly
23:52:36 <ais523|sl_busy> there may still be a way
23:52:38 <SimonRC> alas, that si so often the case
23:52:40 <ais523|sl_busy> but it's kind of hard to explain
23:52:48 <SimonRC> I am working at work on a system that would be TC if you could curry
23:52:50 <ais523|sl_busy> suppose /every/ template carries around two params
23:53:06 <ehird> ais523|sl_busy: I think I might see where you're going
23:53:13 <ais523|sl_busy> then, you make sets of 3 templates, to generate the resulting template base name, first param, second param
23:53:18 <ehird> (Permission to pollute esolang's main namespace? I, K, etc. aren't going to be really common names.)
23:53:22 <ais523|sl_busy> and somehow cart blocks of those around
23:53:33 <ais523|sl_busy> ehird: I can't give you that permission, you'd have to ask Graue
23:53:47 <SimonRC> who is Graue?
23:53:50 <ehird> I'll take Graue's permission as implied. iirc, you can delete pages, ais523|sl_busy, so if I regret it I'll just bash yiou ;)
23:53:52 <ehird> SimonRC: esolangs owner
23:53:57 <ehird> ais523|sl_busy: hmmm
23:54:03 <ehird> K = K1 {{{1}}}
23:54:06 <SimonRC> not on IRC?
23:54:09 <ais523|sl_busy> incidentally, see User:Ais523/k1 on Esolang; I had this sort of idea earlier
23:54:17 <ehird> {{ {{ K | foo }} | bar }}
23:54:19 <ehird> -> foo
23:54:29 <ais523|sl_busy> SimonRC: not registered, apparently, but he does come here occasionally
23:54:34 <SimonRC> +
23:54:38 <ehird> I've gottt it!
23:54:41 <ehird> Time to do shizz
23:55:03 <ais523|sl_busy> ehird: I can also block users :)
23:55:21 <ehird> ais523|sl_busy: don't be cruel :'(
23:55:36 <ehird> hey hoo, K can just be 'I {{{1}}}'
23:55:38 <ais523|sl_busy> I only intend to do that, though, if you cause a big mess and then blame it on me
23:55:38 <ehird> that's cool
23:56:07 <ais523|sl_busy> hmm... Esolang is still on Parser_OldPP, I think, so there is at least some chance that you'll be able to get delayed parsing of |
23:56:23 <ehird> I don't think I need it, ais523|sl_busy.
23:56:24 <ehird> Well, not sure.
23:56:26 <ais523|sl_busy> (on the new preprocessor, it decides which |s are literal and which ones are commands right at the start of parsing, so that wouldn't work)
23:57:21 <ehird> ais523|sl_busy: I think I can trick MW into accepting the Y combinator
23:57:26 <ehird> Since I think I can avoid *direct* recursion.
23:57:40 <ais523|sl_busy> ehird: I think it checks to see if the same template name is used three times in a chain
23:57:48 <ais523|sl_busy> no matter what the params
23:57:49 <ehird> Hmph. Oh well
23:58:21 <Sgeo> MW?
23:58:25 <ais523|sl_busy> MediaWiki
23:58:31 <Sgeo> Oh MediaWi..riright
23:58:44 <ehird> ais523|sl_busy: is whitespace ignored?
23:58:50 <ehird> {{ {{{1}}} | abc }} and stuff
23:58:58 <ais523|sl_busy> ehird: sometimes
23:59:07 <ais523|sl_busy> if it's either side of a metadata character, it's normally ignored
23:59:19 <ais523|sl_busy> and it's definitely ignored between {{ and |, which in this case is the only relvant case
23:59:36 <ais523|sl_busy> (except if you have a multiword template name, of course)
23:59:41 <ehird> {{ {{ {{{1}}} | {{{3}}} }} | {{ {{{2}}} | {{{3}}} }} }}
23:59:42 <ehird> S2
23:59:44 <ehird> ais523|sl_busy: is that OK?
←2008-03-06 2008-03-07 2008-03-08→ ↑2008 ↑all