←2009-02-04 2009-02-05 2009-02-06→ ↑2009 ↑all
00:03:44 -!- BeholdMyGlory has joined.
00:35:21 -!- BeholdMyGlory has quit (Remote closed the connection).
00:38:17 -!- BeholdMyGlory has joined.
00:38:52 -!- Corun has quit ("This computer has gone to sleep").
00:51:02 -!- BeholdMyGlory has quit (Remote closed the connection).
01:01:00 -!- BeholdMyGlory has joined.
01:01:28 -!- BeholdMyGlory has quit (Client Quit).
01:01:34 -!- FireFly has quit ("Later").
02:59:21 -!- Slereah2 has quit (Read error: 60 (Operation timed out)).
03:06:51 -!- Slereah2 has joined.
04:30:28 -!- Sgeo has joined.
06:04:46 -!- whoppix has quit ("Verlassend").
06:32:03 -!- Sgeo has quit ("Leaving").
06:46:43 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
06:47:49 -!- impomatic has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:24:26 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
08:25:18 -!- CakeProphet has joined.
08:58:40 -!- oerjan has joined.
09:01:14 <oerjan> <ehird> Please put some thought before attempting humour.
09:01:20 <oerjan> There is no humour.
09:12:56 -!- GreaseMonkey has quit ("Client Excited").
09:32:55 -!- oerjan has quit ("leaving").
09:36:29 -!- jix has joined.
09:40:35 -!- jix has quit (Client Quit).
09:40:46 -!- jix has joined.
09:48:33 -!- ais523 has joined.
09:53:35 <ski__> (ehird : how about <http://hem.passagen.se/harlekin/html.htm> , <http://noname.c64.org/csdb/release/?id=30400>, then ?)
10:04:47 -!- ais523 has quit (Read error: 60 (Operation timed out)).
10:06:51 -!- ais523 has joined.
10:19:22 <impomatic> Hi ais523
10:19:26 <ais523> hi
10:19:57 <impomatic> I've just written an underload interpreter and wondered why []<> are reserved?
10:20:06 <ais523> historical reasons
10:20:12 <impomatic> Ah, okay
10:20:14 <ais523> although having a few reserved characters is useful
10:20:27 <ais523> when you're writing interps in esolangs
10:20:41 <impomatic> It's at http://corewar.co.uk/assembly/underload.htm
10:20:52 <ais523> yep, I noticed the link added to the wiki
10:21:03 <ais523> anyway, it's always nice to see more Underload interps
10:21:25 <ais523> especially as they help inform the Underlambda Project, which is mostly Underload-based
10:21:59 <ais523> how does Redcode do I/O? By character code?
10:28:21 -!- jix has quit ("Computer has gone to sleep").
10:29:45 * ski__ thought recode had no I/O
10:30:47 <impomatic> Someone added i/o opcodes
10:30:51 <ais523> well, S appears to be implemented in that interp impomatic linked
10:30:54 <ais523> but I can't figure out how it works
10:31:27 <impomatic> sts for output, lds for input (only implemented in exmars streams)
10:31:48 <impomatic> there's also input output in ARES which has a screen buffer mapped into memory
10:31:49 <ais523> ah
10:32:06 <ais523> but in each case, you can output a character just by knowing its character code?
10:32:20 <ais523> I'm trying to design a completely general I/O model that all esolangs with general I/O can use
10:32:22 <ais523> and it's not trivial
10:35:40 <impomatic> I'm wondering which Esolang to implement next
10:35:54 <ais523> have you done a rewriting language?
10:35:57 <ais523> have a go at Thue
10:36:06 <impomatic> I've look at about 50 at random, but not seen anything I fancy
10:36:27 <ais523> also, I'd be interested at how short you can get a MiniMAX interpreter
10:38:26 <impomatic> That sounds like a challenge :-)
10:38:47 <ais523> it is, I designed MiniMAX to have the shortest interpreter possible
10:38:58 <ais523> and I've done some crazily short ones as DOS COM files
10:39:03 <ais523> but Redcode might be able to manage it even shorter
10:51:19 <impomatic> 4 instructions for the main loop: mov }ptr, >ptr / add.ba }ptr, ptr / mov.x ptr, ptr / jmp -3
10:51:37 <ais523> pretty impressive
10:52:15 <impomatic> If the pointer is put in the third instruction and set to the initial values, no extra instructions are required for setup
10:52:32 <ais523> and you're explicitly allowed to do that
10:53:59 <impomatic> Yes
10:54:22 <ais523> looks like Redcode beats x86 by one instruction
10:54:25 <impomatic> Are the i/o extensions documented anywhere?
10:54:36 <ais523> no, because I can't figure out how they work myself
10:55:26 <ais523> basically they just let you do DOS interrupts by executing a 0
10:55:26 <impomatic> Just change the third line to ptr mov.x #2,2 - the program should be directly after the jmp
10:59:02 <impomatic> The 8086 interpreter can align the pointer to either an odd or even byte, but works on words
10:59:25 <impomatic> That behavior isn't portable to the redcode version
10:59:44 <ais523> hmm... IIRC the 8086 program only makes aligned accesses, though
10:59:54 <ais523> at least, if you fill memory with even numbers to start with, and you're supposed to
11:00:05 <impomatic> :-)
11:00:38 <ais523> choosing what form of input works best is part of the fun of MiniMAX, I didn't compromise in trying to get it as short as possible
11:01:05 <ais523> although there are various crazily short langs that did, I think there's a 36-bit interpreter in DOS for a TC language with I/O and programs only contain printable characters
11:01:10 <ais523> it's on Esolang somewhere
11:01:26 <ais523> ah, MinISCule
11:03:36 <impomatic> Back later
12:12:13 <AnMaster> hi
12:12:59 <ais523> hi
12:13:08 * AnMaster tries to figure out what the convo is about without reading it
12:13:33 <ais523> well, you need something to give you a clue as to what it's about
12:13:41 <AnMaster> yes the last few lines
12:13:56 <AnMaster> I/O, ASM, old x86?
12:14:16 <ais523> it's about very short interps for TC languages
12:14:24 <ais523> impomatic wrote a MiniMAX interp in 4 words of Redcode
12:14:29 <AnMaster> machine code consisting of only printable chars?
12:14:46 <AnMaster> also what is Redcode?
12:14:46 <ais523> no, I was talking about some of the other golfed langs
12:14:59 <ais523> AnMaster: programming language used by Core Wars
12:15:02 <ais523> it resembles asm, mostly
12:16:16 <ais523> AnMaster: http://vyznev.net/corewar/guide.html is a good guide, if you haven't seen it before
12:16:34 <AnMaster> um
12:16:34 <AnMaster> hm
12:16:51 <AnMaster> what are the commands in MiniMAX?
12:17:02 <AnMaster> or have I misundestood the wiki page
12:17:12 <ais523> AnMaster: there are no commands
12:17:15 <AnMaster> ah
12:17:23 <ais523> it's an OISC variant, and the command takes no arguments
12:17:26 <ais523> so you don't write it at all
12:17:29 <AnMaster> "A MiniMAX program consists of a series of 3-word commands"
12:17:38 <ais523> well, you set up initial memory
12:17:40 <AnMaster> ah
12:17:41 <ais523> to control the command
12:17:51 <ais523> so as a command is described entirely by its arguments
12:18:04 <ais523> (which are taken from memory, not in the program)
12:18:10 <ais523> you can think of the arguments as the command
12:25:33 <AnMaster> yes and I still think it is strange OISC can be TC...
12:25:47 <ais523> I don't, just about anything can be TC
12:26:08 * AnMaster refrains from jokes about that
12:34:04 * impomatic has been playing with various OISC this week
12:34:39 <ais523> we're going to have to invent a ZISC now
12:34:44 <ais523> if that even makes sense, it probably doesn't
12:34:53 <AnMaster> ais523, I already suggested that some time ago
12:35:02 <ais523> do you have any idea about how it could work?
12:35:05 <AnMaster> and the term was in use
12:35:11 <ais523> there's Wait I suppose, but that doesn't count
12:35:12 <AnMaster> for some ANN thing
12:35:23 <ais523> meh, we can reuse it if we want to
12:35:37 <ais523> we're esolangers, things like name uniqueness shouldn't get in our way
12:36:02 <AnMaster> right, lets call the ZISC interpreter "MSVC"?
12:36:29 <ais523> heh
12:37:16 <ais523> besides, the command-line name for the real MSVC is cl, so there wouldn't even be a conflict
12:38:16 <AnMaster> ais523, well good point, we should make MSVC the ZISC IDE, and the compiler ICC?
12:38:32 <AnMaster> interpreter could be, uh, sh?
12:38:40 <ais523> let's just come up with a spec first
12:38:43 <AnMaster> yeah
12:38:47 <AnMaster> and I have no idea
12:38:52 <ais523> and I really like the idea of calling an esolang interpreter sh
12:39:09 <AnMaster> ais523, csh would be better, no one use THAT
12:39:16 <impomatic> There's a few references to ZISC about
12:39:32 <impomatic> I've been looking at them this week
12:39:38 <ais523> I'm still not entirely sure how you'd do an esolang with no instructions, though
12:39:40 <AnMaster> ais523, well something not based on instructions is the only way I can think of
12:39:47 <ais523> as soon as you make it do anything, that's arguably an instruction
12:39:55 <ais523> so yes, it would have to not be instruction-based
12:39:57 <AnMaster> such as based on ANN
12:40:00 <ais523> ANN?
12:40:05 <ais523> oh, neural networks
12:40:08 <AnMaster> yes
12:40:24 <AnMaster> ais523, http://en.wikipedia.org/wiki/Zero_Instruction_Set_Computer
12:40:26 <AnMaster> *shrug*
12:41:06 <ais523> meh, pattern matching's an instruction
12:41:22 <ais523> in fact, in a lang like Thue I tend to think of each pattern as an instruction
12:41:41 * AnMaster curses tvtroupes
12:41:47 <AnMaster> tropes*
12:45:42 <ais523> <impomatic> Can bf programs be self-modifying?
12:45:46 <ais523> no, but see BrainTwist
12:46:00 <ais523> it's BF, but with an X command that swaps the code and the data arrays
12:46:24 <AnMaster> ais523, how does it handle unbalanced loops?
12:46:32 <ais523> not sure, I've never tried to use it
12:46:46 * ais523 tries to remember how FYB handles unbalanced loops
12:46:55 <ais523> IIRC, it ignores unmatched [s and ]s
12:47:25 * impomatic goes to look at BrainTwist
12:47:27 <impomatic> I would have implemented FukYorBrane in Redcode, but there was something tricky that put me off
12:47:49 <ais523> there are all sorts of weirdnesses in FYB
12:48:02 <ais523> the modulo-17 arithmetic, for one (IIRC it was 17, it might have been some other odd number)
12:52:18 <impomatic> The spec doesn't make clear some points. I think to do with commit, uncommit, threads and defect
12:53:06 <ais523> ah yes, I have no idea what happens if both bots try to commit into the same thread, for instance
12:53:18 <ais523> there's a reference interp lying around somwhere, I suppose we could find out by experiment
12:53:22 <ais523> s/thread/tape/
12:55:56 <impomatic> There's some kind of Corewar game which uses a function language. Called struggle I think
12:56:36 <ais523> there was a BF-based game inspired by Corewars running on Agora for a while, and it's just starting back up again I think
12:56:43 <ais523> not FYB, actual BF
12:56:49 <ais523> you didn't disrupt enemy code, but enemy data
12:57:07 <ais523> it got boring after a bit though as people found the best strategies
13:02:59 <impomatic> Do you have a URL? I haven't found anything in google
13:03:13 <ais523> let me try to find it
13:04:20 <impomatic> Here's the spec for struggle http://tr.im/eqhy
13:04:55 <ais523> http://faculty.washington.edu/kerim/nomic/bf/index.php is the hill
13:05:05 <ais523> everything else was done via email
13:05:36 <ais523> but the basic rules were ordinary BF without I/O, both programs use the same tape but < for one program is > for the other, each program starts at their left end of the tape
13:05:51 <ais523> initial cell is initialised to 128, you lose if you fall off the tape or the cell you started on becomes 0
13:05:56 <ais523> and random tape length
13:07:45 <impomatic> Thanks
13:09:30 <ais523> the problem I think was that the tape was too wide to write a defensive program
13:09:42 <ais523> if it had been randomized in, say, the range 30-60, it would have been more interesting
13:23:59 <impomatic> I'm still scoring 0!
13:24:10 <ais523> what tactics are you trying?
13:25:11 -!- ais523 has quit ("lunch, will be back later").
13:31:18 <impomatic> Tactic: keep moving right, until something non-zero is found. Then set it to zero and repeat
13:31:18 <impomatic> >+[>[-]+]
13:32:00 <fizzie> Heh, I just did [>[-]+]; that's #3 when I run it against joust0..9. Don't feel like thinking about anything nontrivial.
13:49:06 -!- ais523 has joined.
13:50:30 <impomatic> I've got the hang of it now. #1 against the first 15 programs on the list :-)
13:51:09 <ais523> well done
13:51:26 <ais523> I can beat all except some of the last few, if the tournament were still going I'd be about 5th
13:52:42 <impomatic> Is there some way I can submit programs by email?
13:52:53 <ais523> not any more, there was but the tournament ended
13:53:12 <ais523> there's a new one planned, with different rules, but it hasn't been finalised
13:53:43 <ehird> hi
13:53:47 <ais523> hi
13:55:24 <impomatic> Hi Ehird :-)
14:26:16 <ski__> lo
14:31:56 <impomatic> Challenger vs. joust12 - Wins: -1
14:32:06 <ais523> ?
14:32:16 <impomatic> How can I have -1 win :-/
14:32:18 <ais523> I didn't write that, but a negative win count seems unlikely
14:36:42 <ehird> impomatic: o_O
14:36:58 <impomatic> [[>+++++[-]-]-] get -1 wins against joust12
15:17:55 -!- BeholdMyGlory has joined.
15:18:34 -!- FireFly has joined.
15:26:40 -!- Judofyr has joined.
15:27:50 -!- jix has joined.
15:32:07 -!- jix has quit (Client Quit).
15:32:22 -!- jix has joined.
15:57:10 -!- ktne has joined.
15:57:33 <ktne> would a continuation implementation require that the entire stack be copied in order to save the local variables along the call path?
15:59:28 <ehird> No, not if you use CPS.
15:59:41 <ehird> Can I say Cheney on the MTA again? I like saying that.
16:00:00 <ehird> CPS = Continuation Passing Style, google it
16:00:07 <ehird> Then continuations are free, 0-cons
16:00:14 <ktne> i checked Cheney on the MTA
16:00:23 <ktne> but it looks like the stack has a fixed max size
16:00:41 <ktne> when you jump off the cliff i mean
16:01:26 <ehird> yes
16:01:30 <ehird> but since you use CPS
16:01:30 <ehird> the whole stack is there
16:01:36 <ehird> google continuation passing style, you'll see
16:02:17 <ktne> what happens if i have huge local variables?
16:02:31 <ehird> What do you mean
16:02:32 <ehird> ?
16:02:52 <ktne> with stack-based calls, the calling mechanism is agnostic to huge stack sizes
16:03:06 <ehird> ummmm?
16:03:30 <ktne> i mean, if you call a function, the performance of the call itself is not related to how large the local variables are
16:04:07 <ktne> but it looks like that if you copy the live objects when jumping off the cliff then you get a serious performance hit if the cliff is very large
16:04:17 <ehird> You don't copy the objects.
16:04:20 <ktne> hmm
16:04:22 <ktne> then?
16:04:32 <ktne> how do you clean up the unused stack frames?
16:04:38 <ehird> Setjmp.
16:04:43 <ehird> + a call trampoline
16:04:45 <ehird> + CPS
16:04:51 <ktne> well, wouldn't that clean all stack frames?
16:04:59 <ktne> hmm
16:05:03 <ehird> No, longjmp cleans all stack frames up to the point of setjmp.
16:05:07 <ehird> ktne: look up CPS
16:05:09 <ehird> what you do is
16:05:11 <ehird> when you're calling a function
16:05:29 <ktne> do i have to allocate all local variables on heap?
16:05:31 <ehird> instead you set the function & args (where the continuation is one of the arguments, remember) into a thread local variable
16:05:35 <ehird> then longjmp
16:05:38 <ehird> and the trampoline does the call
16:05:40 <ehird> ktne: no
16:05:42 <ktne> if you remember i said yesterday that i want only specially marked local variables
16:05:43 <ehird> with cheney on the mta,
16:05:46 <ehird> you put it all on the stack
16:05:47 <ktne> to be allcoated on heap
16:05:50 <ehird> all variables go on the stack
16:05:54 <ehird> there is no heap
16:06:03 <ktne> yes but what happens if the local variables are very large?
16:06:09 <ehird> the stack is large
16:06:11 <ktne> if for example in a classic stack you do this:
16:06:18 <ehird> ktne: try it with chicken scheme
16:06:22 <ehird> if it works, look at how it does it
16:06:22 <ktne> call_large_function(),call_large_function(),call_large_function(),call_large_function()
16:06:23 <ehird> :P
16:06:28 <ehird> but you can do things like that in chicken yes
16:06:31 <ktne> then the used stack space is constant
16:06:35 -!- Hiato has joined.
16:06:38 <ktne> because the stack is cleaned after each return
16:06:47 <ktne> but in cheney's mta it's not
16:07:07 <ktne> so if the local variables are like several hundred mb large
16:07:29 <ktne> then you get a lot of stack space required, because you need one of that PER stack frame
16:07:41 <ktne> unlike the classical method where you would get that only once in the case above
16:08:02 <ehird> look, I made a suggestion, CPS+cheney on the MTA, chicken uses it, and it works fine for what you're saying, if you don't want to use it then don't
16:09:37 <ktne> it's not in fedora repositories
16:09:55 <ehird> so... compile it yourself?
16:17:58 -!- MigoMipo has joined.
16:27:07 -!- KingOfKarlsruhe has joined.
16:27:59 -!- Hiato has quit ("Leaving.").
16:29:32 -!- Hiato has joined.
16:39:27 <impomatic> Does anyone do anything clever in BF Joust?
16:39:42 <impomatic> I assume everyone makes a decoy to slow down the opponent.
16:40:00 <ehird> YEah.
16:40:18 <ais523> pretty much everyone creates decoys, and there are various strategies to remove them
16:40:30 <impomatic> Do any opponents figure out whether it's quicker to increment or decrement the decoy?
16:40:40 <ehird> I don't think that's possible
16:40:42 <ehird> without doing it
16:40:50 <ais523> impomatic: yes, to some extent
16:41:05 <ais523> one of the well-doing submissions decrements a bit, and if that doesn't get anywhere increments the rest of the way
16:41:07 <impomatic> It's possible if someone has a regular decoy
16:41:28 <ais523> I don't know of any that memorise the opponent's decoy pattern, but I haven't seen the source for all of them
16:41:29 <impomatic> Yes, mine does that :-)
16:42:24 <impomatic> I can score 254 against the last 5 opponents on the list
16:43:24 <ais523> it's also common to exploit the range in which the opponent's flag could be
16:43:32 <ais523> which I can't remember offhand, which is why I didn't tell you
16:43:39 <ais523> but if you know where to start looking, it makes things faster
16:44:53 <ehird> I linked him to the post
16:49:33 * ehird considers a haskell implementation with reallyUnsafeCallWithCurrentContinuation# :: ((a -> b) -> a) -> a
16:49:39 <ehird> Wonder if that'd actually _work_
16:49:49 <ais523> who knows?
16:49:58 <ais523> I don't see why it couldn't in theory
16:50:05 <ehird> Well, laziness.
16:50:07 <ais523> possibly only with a single unsafe
16:50:09 <ehird> How would that work?
16:50:15 <ais523> same way unsafe IO works
16:51:04 <ehird> I guess.
16:51:35 <ehird> Looks like I have to implement Haskell to find out, ay?
16:57:37 <impomatic> I'm giving up of 254. I beat everything apart from two of the Woggle entries
16:58:21 -!- ktne has quit ("Leaving.").
16:58:35 <ais523> hmm... I should tell the contest's author of my ideas for doing something similar for the next round
16:58:44 <ais523> and note that you can join Agoran contests without playing the game as a whole
17:02:15 -!- Hiato has quit ("Leaving.").
17:17:41 -!- Hiato has joined.
17:18:40 -!- MizardX has quit (Read error: 104 (Connection reset by peer)).
17:18:43 -!- MizardX has joined.
17:22:10 -!- MizardX- has joined.
17:22:12 -!- MizardX has quit (Nick collision from services.).
17:22:14 -!- MizardX- has changed nick to MizardX.
17:27:19 <ehird> hi MizardX
17:27:37 <ehird> now that I think about it your name sounds like a gangsta
17:27:43 <ehird> MizzleizzardX in da house. Shiznit.
17:35:06 <ehird> so.
17:36:30 -!- Corun has joined.
17:39:15 <ehird> http://esolangs.org/wiki/RUM
17:39:21 <ehird> ais523: could we delete the retarded, trivial BF dialects
17:39:34 <ehird> i don't think anyone but their creators ever find any joy in them at all
17:39:46 <ais523> ideally, you'd make a separate namespace for them
17:39:49 <ais523> to keep them off random page
17:39:58 <ehird> why
17:39:59 <ais523> I don't like the idea of deleting information like that, inane as it may be
17:40:00 <ehird> nobody wants to look a them
17:40:02 <ehird> t
17:40:11 <ehird> at least ESME was nonsensically amusing
17:40:14 <ehird> these are just boring
17:40:18 <ehird> and dilute the wiki's usefulness
17:40:39 <ehird> http://github.com/irskep/rum/blob/bdef9c84909a260df137dcb57840620d6c492f05/getch.py
17:40:42 <ehird> it even has a broken ,
17:40:48 <ehird> (gets from the terminal before enter, and doesn't print to screen)
17:40:56 <ehird> that's not a BF superset
17:41:12 <ehird> Comment out lines until the next LF with #. Please use discretion when putting punctuation in comments, as I have not
17:41:13 <ehird> tested it at all.
17:41:16 <ehird> Please use discretion when putting punctuation in comments, as I have not
17:41:17 <ehird> tested it at all.
17:41:19 <ehird> ARE YOU SERIOUS
17:41:28 <bsmntbombdood> wtf is brainf*ck
17:42:04 <ehird> brainfuck put through the idiot filter.
17:48:26 <ehird> "I often hang out on the #esoteric IRC channel on freenode.net with the nick kipple. "
17:48:28 <ehird> no you don't :P
17:51:54 <ehird> lcccccccccccccc.n
17:51:55 <ehird> ^!dlrow ,olleH
17:51:57 <ehird> I wish I knew how that worked
18:22:28 -!- alex89ru has joined.
18:22:36 <alex89ru> hi
18:22:41 <ais523> hi
18:26:47 <ehird> hi
18:28:38 * impomatic is still looking for a language to implement! I've looked at about 100 random wiki pages now
18:28:58 <ais523> impomatic: have you implemented a functional language yet?
18:29:03 -!- neosisani has joined.
18:29:13 -!- neosisani has left (?).
18:29:15 <impomatic> Not yet
18:29:26 <ais523> Unlambda's famous, but also famously difficult to implement
18:30:25 <ehird> unlambda is trivial
18:30:28 <ehird> compiling, not so
18:30:53 <ais523> ehird: I wouldn't call implementing c trivial, especially if you don't know the relevant tricks
18:31:03 <ehird> oh, I'd do it in a real language
18:31:18 <impomatic> Is there a minimal language similar to minus?
18:31:19 -!- alex89ru has quit (Remote closed the connection).
18:31:27 <ehird> minus?
18:31:28 <ehird> :P
18:31:47 <ais523> you might want to implement Thue at some point, too, it's another of the classics
18:34:21 <impomatic> Minus has far too many special variables
18:40:16 -!- Mony has joined.
18:42:29 <Mony> plop
18:42:37 <ais523> dlod?
18:42:46 <Mony> heh
18:48:16 <ehird> dold
18:50:33 -!- oerjan has joined.
18:52:23 <lament> drod!
18:56:26 -!- BeholdMyGlory has quit (Remote closed the connection).
18:57:40 <ehird> Hm I don't think this program actually worked
18:58:01 -!- BeholdMyGlory has joined.
18:58:27 <lament> ehird: i wrote my program without sdl ultimately :(
18:58:31 <ehird> lament: :<
18:58:33 <lament> so now it's mac-only
18:58:36 <ehird> what did you use
18:58:45 <lament> quartz api
18:58:55 <ehird> via HOC or sth?
18:59:09 <lament> it's a C api
18:59:12 <ehird> ah
18:59:23 <ehird> lament: could you not sdl to work?
18:59:28 <lament> no
18:59:31 <lament> not on cygwin
18:59:46 <lament> and then i read the readme file for hsdl and it said that there're difficulties getting it to work on os x as well
18:59:52 <lament> so i just decided to not bother
19:00:03 <lament> on the other hand i could just use sdl from c
19:01:23 <lament> i don't -really- care about cross-platform portability, it's not like anyone else would ever use this program :)
19:01:36 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
19:01:36 <ehird> what does it do
19:02:06 <lament> it lets you play the computer keyboard like the right-hand accordion keyboard
19:02:18 <lament> you get almost three octaves of range
19:02:31 <ehird> awwwwwwwwweeeeeeeeeesome
19:02:34 <ehird> GIVE ME IT
19:02:39 -!- KingOfKarlsruhe has quit (Remote closed the connection).
19:04:37 <lament> ehird: you have mac?
19:04:51 <ehird> err yes :P
19:04:55 <ais523> lament: yes, he does
19:05:00 <ehird> i'm sure you knew that./
19:05:03 <lament> one moment, let me tar it
19:05:16 <ehird> haven't I complained with you simultaneously about a guy who was dissing os x? :P
19:05:20 <ehird> i'm sure that happened like months ago
19:05:26 <ehird> not that people remember what happened heremonths ago
19:05:29 <ehird> except me
19:07:14 <lament> how do you tar a directory?
19:07:25 <ehird> lament: umm
19:07:26 <ais523> tar cvf tarball.tar directoryname
19:07:28 <ehird> like normal
19:07:28 <ehird> :P
19:07:29 <lament> thanks
19:07:37 <ais523> or cvzf if you want it as a zipped tarball
19:07:39 <ehird> you could also just zip it in finder, I know that's not hardcore.
19:07:48 <lament> oh, cvzf
19:08:37 <lament> ehird: dcc
19:08:42 <ehird> ya
19:08:44 <lament> you need the hmidi package installed
19:08:46 <ehird> lemme fig how to accept
19:08:48 <impomatic> How much would have to add to Underload to make it functional?
19:08:51 <ehird> YAY I DID IT
19:08:53 <ehird> impomatic: it is functional
19:09:07 <ais523> impomatic: technically speaking, it isn't functional, but all writing in it seems to be functional in practice
19:09:12 <impomatic> Hmmm... not much then
19:09:13 <ehird> lament: firewall probs I think :x
19:09:16 <ehird> use filebin.ca?
19:09:39 -!- KingOfKarlsruhe has joined.
19:09:44 <oerjan> impomatic: it's functional in the same sense as Joy, a mainstream concatenative functional language
19:09:45 <lament> moment
19:09:52 <impomatic> So technically speaking, would I need to ad much to make it functional?
19:10:00 <ehird> No.
19:10:03 <ehird> You would need to add nothing.
19:10:05 <ehird> It's functional.
19:10:22 <ais523> impomatic: you need to add nothing but a debate amongst esolangers as to whether it's functional or not
19:10:24 <oerjan> impomatic: it's functions from stacks to stacks
19:11:31 -!- M0ny has joined.
19:11:32 <lament> ehird: http://filebin.ca/vcfm/haccordion.tar.gz
19:11:48 <ehird> so this uses the ffi, ey?
19:12:13 <lament> it's mostly in C really
19:12:33 <ehird> that's a shame
19:12:43 <lament> "mostly" is just two functions though
19:12:43 <ehird> lament: keycodes.c... couldn't that just be in haskell?
19:12:46 <lament> it's not a very big program
19:13:01 <ehird> keys.c could also be in haskell
19:13:03 <impomatic> What's Underlambda? Empty page on the wiki
19:13:03 <lament> ehird: it's an existing c source code that i modified
19:13:06 <ehird> ah
19:13:21 <ehird> yeah that's a x program :(
19:13:22 <ehird> *c
19:13:25 <ehird> {- #LANGUAGE ForeignFunctionInterface -}
19:13:27 <ehird> that should be
19:13:30 <ehird> {-# LANGUAGE ForeignFunctionInterface #-}
19:13:36 <lament> oh
19:14:25 <oerjan> impomatic: ais523's vaporware language
19:14:54 <ais523> not vaporware on my computer
19:15:04 <ais523> just an I-want-to-make-absolutely-sure-I-get-it-right lang
19:15:08 <ais523> besides, vaporware is fun
19:15:10 <oerjan> if it's not on the wiki, it's vaporware
19:15:12 <ehird> lament:
19:15:14 <ehird> you can replace your makefile with
19:15:19 <oerjan> DO YOU HEAR oklopol?
19:15:22 <ehird> wait no
19:15:23 <ehird> well
19:15:24 * impomatic grabs a few books about functional programming
19:15:28 <ehird> lament: the gcc calls are unneeded
19:15:30 <ais523> if it is on the makefile, poeple will get upset when I change it arbitrarily every 5 minutes
19:15:32 <ehird> you can give ghc c files
19:15:33 <ais523> s/makefile/wiki/
19:15:49 <ehird> also it generates play_note, not ha
19:15:50 <ehird> c
19:16:30 <oerjan> ais523: it's not like you would be the first :D
19:16:37 <ais523> yes, but I like to have style about such things
19:17:10 <ehird> lament it doesn't work :<
19:17:17 <ehird> {- If you don't hear anything or no midi devices are found, here's how to use GarageBand's
19:17:17 <ehird> synth: Open Audio-MIDI setup and make sure IAL is online. Then turn on garageband and
19:17:19 <ehird> create a software instrument track.
19:17:21 <ehird> oh.
19:18:13 <ehird> wait
19:18:16 <ehird> lament: where's audio midi setup
19:19:03 <ehird> hmm
19:19:08 <ehird> it isn't capturing my keystrokes
19:21:26 <ehird> lament: how are you meant to use it :P
19:21:52 -!- seveninchbread has joined.
19:22:05 <oklopol> oerjan: i hear the red lines.
19:23:02 <lament> ehird: is IAL online?
19:23:12 <ehird> IAL
19:23:12 <ehird> ?
19:23:19 <lament> did you open Audio-MIDI setup?
19:23:32 <ehird> where is that
19:23:34 <ehird> :-|
19:23:35 <lament> it's in Applications/Utilities
19:23:35 <oklopol> AnMaster: ehird, All ur memes iz belongz to ur momma! <<< i'm so gonna use this
19:23:39 <oklopol> all the time
19:24:09 <ehird> lament: okay it says
19:24:12 <ehird> OUTPUT IS NOT SUPPORTED
19:24:16 <lament> ehird: huh
19:24:18 <ehird> is this bad
19:24:20 <oerjan> oklopol: bah, selective hearing
19:24:30 <lament> ehird: it says that when you try to bring IAL online?
19:24:50 <ehird> what is IAL and how do I try and bring it online
19:24:51 <ehird> <_<
19:24:54 <lament> open audio-midi setup, click on midi, click on IAL
19:25:06 <lament> sorry
19:25:07 <lament> IAC
19:25:15 * oerjan keeps reading that as I Am Lawyer
19:25:17 <lament> not IAL
19:25:20 <lament> but IAC
19:25:25 <ehird> okay i think it worked
19:25:28 <lament> yay
19:25:33 <ehird> now
19:25:38 <ehird> how do I use this software product of yours
19:25:43 <ehird> just running and typing does naught
19:25:50 <lament> does it say 'played a note'
19:25:58 <ehird> no
19:26:00 <ehird> it just sits there.
19:26:03 <lament> um
19:26:14 <lament> that's when you run play_note?
19:26:19 <lament> it just sits there?
19:26:48 <ehird> yes.
19:26:51 <lament> hrmrm
19:26:58 <lament> what could explain that?
19:27:10 <ehird> the LHC ate your program
19:27:12 <lament> i've compiled it on two macs, works on both
19:27:24 <lament> most unusual
19:27:51 <ehird> lament: maybe I am doing something wrong
19:27:54 <ehird> [ehird:~/Desktop/haccordion 2] % ./play_note
19:27:55 <ehird> a
19:27:56 <ehird> g
19:27:57 -!- Mony has quit (Connection timed out).
19:27:58 <ehird> s
19:28:00 <ehird> goijfoisajflsdjkafg
19:28:03 <lament> mm
19:28:19 <lament> i dunno, put some printfs inside mainloop() in keys.c to make sure it is actually running
19:28:32 <lament> and then
19:28:33 <lament> um
19:28:46 <lament> since it doesn't say played a note, that means the callbacks aren't run
19:29:02 <lament> so CGEventSourceKeyState must not return anything useful?
19:29:09 <lament> hrm
19:29:23 <lament> maybe you need to be superuser or something?
19:29:31 <lament> does your password work for sudo?
19:29:44 <ehird> sudo does nothing
19:30:22 <lament> in keys.c there's a line bool keystate = CGEventSourceKeyState(...
19:30:36 <lament> i guess that is always returning false
19:30:47 <lament> i have no idea why it would do that
19:30:58 <lament> can you check that?
19:32:11 <ehird> okay
19:32:17 -!- Hiato has quit ("Leaving.").
19:32:46 <ehird> ...
19:32:49 <ehird> lament: no output whatsoever
19:32:54 <ehird> bool keystate = CGEventSourceKeyState(kCGEventSourceStateHIDSystemState, keyindex);
19:32:54 <ehird> printf("%i\n",keystate);
19:32:57 <ehird> [ehird:~/Desktop/haccordion 2] % make
19:32:58 <ehird> gcc -c keys.c
19:33:00 <ehird> ghc -framework ApplicationServices -fglasgow-exts --make play_note.hs keys.o keycodes.o
19:33:02 <ehird> Linking play_note ...
19:33:04 <ehird> [ehird:~/Desktop/haccordion 2] % ./play_note
19:33:06 <ehird> a
19:33:08 <ehird> b
19:33:10 <lament> mmm
19:33:11 <lament> barg?
19:33:16 <ehird> barg?
19:33:26 <Deewiant> barg!
19:33:32 <lament> barg :(
19:33:34 <ehird> what
19:33:43 <lament> um
19:33:52 <lament> check that mainloop runs
19:34:04 <lament> but how would it not run??
19:34:15 <ehird> Yes it does:
19:34:16 <ehird> % ./play_note
19:34:17 <ehird> L O L!!! BUTTS!!
19:34:23 <ehird> lament:
19:34:24 <ehird> for (keyindex=0;keyindex<CODES_TO_TRACK;keyindex++)
19:34:25 <ehird> {
19:34:27 <ehird> That'll never be looping
19:34:30 <ehird> For some reason
19:34:31 <ehird> O_O
19:34:32 <lament> what the fuck
19:34:38 <lament> is wrong with your c compiler? :)
19:34:38 <ehird> well its the only thing left
19:34:39 <Deewiant> CODES_TO_TRACK == 0?
19:34:42 <ehird> Deewiant: nope
19:34:42 <ehird> #define CODES_TO_TRACK 50 // approximately equals what we need
19:34:48 <lament> um
19:34:59 <lament> well, uh, i dunno?
19:34:59 <ehird> WAIT
19:35:00 <ehird> lament:
19:35:01 <ehird> bool keystate = CGEventSourceKeyState(kCGEventSourceStateHIDSystemState, keyindex);
19:35:01 -!- MizardX has quit (Nick collision from services.).
19:35:02 -!- MizardX- has joined.
19:35:03 <ehird> this must be hanging
19:35:05 <ehird> forever
19:35:06 <lament> ahhh
19:35:21 -!- MizardX- has changed nick to MizardX.
19:35:25 <lament> put a check before it
19:36:00 <ehird> printf butt-debuggign confirms it
19:36:00 <ehird> % ./play_note
19:36:01 <ehird> into butt land i delve ->
19:36:05 <ehird> CGEventSourceKeyState is hanging
19:36:12 <lament> well.
19:36:21 <lament> that certainly gives another reason to port it to SDL instead :)
19:36:32 <lament> apple docs say nothing about it hanging
19:37:06 <ehird> lament: i'm on tiger
19:37:09 <ehird> could that have something to do with it
19:37:25 -!- alex89ru has joined.
19:37:53 <lament> yes
19:38:02 <lament> fuck.
19:38:12 <lament> apple sucks!
19:38:16 -!- Corun_ has joined.
19:38:37 <ehird> lament: what was it
19:39:12 <lament> um, i don't know
19:39:16 <lament> upgrade to leopard
19:39:25 <lament> i mean i know, it must be a bug in apple api
19:39:34 <lament> but that doesn't really help!
19:40:07 <ehird> :<
19:40:09 <ehird> :<<<<<<<<<<<<<
19:40:22 <oklopol> lament: it lets you play the computer keyboard like the right-hand accordion keyboard <<< beepiano
19:40:26 <ehird> give me a dvd big enough to hold a burned leopard disk and I will lament :P
19:40:32 <oklopol> www.vjn.fi/s/beepiano.py
19:40:37 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
19:40:48 <ehird> import winsound
19:40:49 <ehird> Fail
19:40:55 <lament> hahaha
19:41:02 <lament> ok
19:41:02 <oklopol> mmkay
19:41:19 <oklopol> that's kinda beside the point, worked on xp => not fail.
19:41:53 <oklopol> if you can show me another lib with as nice an interface, i can change it.
19:43:19 <oklopol> thought so.
19:43:28 <ehird> it's more that neither I nor lament can use your program
19:43:35 <ehird> so pointing us to it is rather... pointless
19:43:46 <oklopol> but you can read the order of characters
19:44:25 <ehird> wat
19:44:30 <oklopol> my point was i'd definitely use that keyboard layout for playing, in case i understood correctly what lament meant.
19:44:57 <oklopol> keys=['1','q','a','z2','w','s','x3','e','d','c4','r','f','v5','t','g','b6','y','h','n7','u','j','m8','i','k',',9','o','l','.0','p']
19:45:20 <oklopol> this was the point; and also just that it was a program of mine if lament didn't know that; not that you could test it.
19:45:48 <oklopol> i'm disappointed at your lack of ability to read my mind once again.
19:46:25 <oerjan> oklopol: i knew you were going to say that
19:46:27 <lament> oklopol: that seems like the right layout
19:46:29 -!- Corun has quit (Read error: 110 (Connection timed out)).
19:46:51 <ehird> i read your mind oklopol, I just wanted to annoy you
19:46:54 <oklopol> lament: have you heard me play black diamond in it? i've linked it at least 3 times
19:47:20 <lament> oklopol: no
19:47:34 <ehird> well sure link
19:47:36 * oklopol linkssss!
19:47:57 <oklopol> http://www.vjn.fi/s/black.mp3
19:48:15 <oklopol> (i play the piano better!)
19:48:42 <ehird> hahahahahahahahah that's awesome
19:48:58 <lament> oklopol: so we wrote the exact same fucking program?
19:48:59 <oklopol> that was about 5 hours of practise at the whole concept, i would love to hear you do something with the same layout
19:49:12 <lament> sure, i'm learning a mozart piece
19:49:12 <oklopol> lament: sure. except mine uses an incredibly ugly gui.
19:49:18 <lament> oh, mine doesn't have a gui
19:49:22 <oklopol> right.
19:49:27 <oklopol> mine neither, really
19:49:32 <ehird> lament: Garageband has a keyboard player, y'know
19:49:34 <lament> i can always use this as a gui http://www.thecipher.com/CBA_Csys_Spell.gif
19:49:38 <lament> ehird: yes. It's utter shit.
19:49:41 <AnMaster> <oklopol> AnMaster: ehird, All ur memes iz belongz to ur momma! <<< i'm so gonna use this <-- :D
19:49:42 <ehird> lament: tru dat
19:49:55 <ehird> AnMaster: he was being ironicastic, i.e., he's gonna use it because it's so stupid
19:50:01 <AnMaster> oklopol, what about replacing "ur momma" with "Chuck Norris"
19:50:04 <AnMaster> that would work too
19:50:10 <oklopol> AnMaster: that's still 3.
19:50:18 <oklopol> chuck norris' momma?
19:50:21 <AnMaster> maybe
19:50:27 <AnMaster> oklopol, could work
19:50:47 <AnMaster> ehird, also I was being ironic when I said it....
19:51:01 <ehird> AnMaster: yes, he was saying your joke failed and that was amusing
19:51:02 <ehird> so he'd use it.
19:51:07 <oerjan> one should _never_ joke about chuck norris' momma.
19:51:12 <ehird> what I'm trying to say is that he was laughing at you,
19:51:13 <ehird> not with you.
19:51:19 <ehird> i think.
19:51:23 <oklopol> :)
19:51:29 <AnMaster> ehird, no he didn't
19:51:32 <AnMaster> I checked scrollback
19:51:37 <AnMaster> oerjan, good point
19:51:45 <ehird> AnMaster: no, that's what his line meant
19:52:01 <AnMaster> ehird, that is a matter of interpretation.
19:52:10 <oklopol> ehird: well, tbh i often consider AnMaster fairly hilarious; agreed, sometimes his unjokes are just ...too much.
19:52:16 <oerjan> oklopol: please say ehird is wrong. he is so annoying when he tells what other people mean.
19:52:23 <ehird> oerjan: too late
19:52:23 <ehird> :D
19:52:57 <oklopol> oerjan: well he was wrong, i'm just too polite to tell him that directly.
19:52:57 <ehird> oklopol: your keyboard is so quie
19:52:58 <ehird> t
19:53:05 <ehird> also I was wrong on purpose
19:53:09 <ehird> I can read oklopol's mind, remember
19:53:25 <oklopol> ehird: i think i taped the mic on the speaker or smth :D
19:59:11 <AnMaster> oklopol, ehird: you are using audio communication?
19:59:19 <ehird> ... no.
19:59:22 <oklopol> currently not
19:59:36 <AnMaster> what then awere those lines about...
19:59:37 <ehird> http://www.vjn.fi/s/black.mp3
19:59:41 <AnMaster> were*
19:59:45 <AnMaster> ah
20:00:23 <AnMaster> cool
20:00:48 <AnMaster> oklopol, the beepy melody sounds very good
20:01:10 <AnMaster> I assume it is produced by the keyboard that you hear too
20:01:20 <AnMaster> but what sort of keyboard?
20:01:21 <oklopol> http://www.youtube.com/watch?v=lNLdTfwx5ZQ
20:01:28 <oklopol> umm?
20:01:28 * AnMaster checks
20:01:33 <oklopol> it's played with beepiano
20:01:42 <AnMaster> "beepiano"?
20:01:48 <oklopol> a python program of mine
20:01:59 <ehird> AnMaster: he presses keys and it plays noats
20:02:03 <oklopol> you use the keyboard as an accordion
20:02:03 <ehird> on the computer keyboard
20:02:05 <AnMaster> oklopol, cool, sounds hard to use though
20:02:15 <ehird> yeah but oklopol is a machine
20:02:22 <oklopol> AnMaster: if i played piano that bad, i would *not* link it.
20:02:37 <Asztal> I had a program like that once... I used it solely for annoyance value though
20:02:43 <oklopol> because, you know, lament would kickban me.
20:02:51 <AnMaster> oklopol, um?
20:02:58 <ehird> lament plays piano.
20:02:59 <ehird> obsessively.
20:03:06 <lament> day and night. Non-stop.
20:03:13 <ehird> NSFW
20:03:18 <AnMaster> well, oklopol as bad as what?
20:03:19 <lament> I take it to the bathroom with me.
20:03:34 <AnMaster> the video? I'm still downloading it
20:03:37 <ehird> lament is pianophillac
20:03:39 <ehird> AnMaster: the mp3
20:03:41 <ehird> he linked
20:03:41 <AnMaster> ah
20:03:49 <ehird> also, the video is just the metal song he was playing
20:03:52 <lament> oklopol: sorry can't listen to mp3 i'm at work :(
20:03:54 <oklopol> my piano playing consists of sitting down, making up something completely random, and playing it obsessiely until it turns into a nice short snippet of music, then leaving the piano
20:03:55 <ehird> it doesn't really sound like it :P
20:03:57 <AnMaster> rock? hm?
20:04:04 <ehird> AnMaster: no, metal, we've been over this before :P
20:04:20 <ehird> dammit I have to write my own bleeper now
20:04:21 <oklopol> (also sometimes is actually compose something that makes sense, point is i only play my own songs)
20:04:24 <ehird> DAMN YOU ALL TO HELLHECKDAMN
20:04:35 <AnMaster> in the mp3 it sounded more like something that could have been fast classic music
20:04:53 <oklopol> lament: if you don't know stratovarius, as a finn i must suggest you check out at least some of it.
20:04:55 <ehird> some subgenres of metal draw from classical music, AnMaster
20:05:15 <AnMaster> ehird, yes, I much prefer oklopol's recording over that youtube video
20:05:16 <lament> ok
20:05:29 <AnMaster> though don't worry, song smith is worse ;P
20:05:30 <ehird> AnMaster: yeah, the youtube video has an ELECTRIC GUITAR in. how awful
20:05:35 * ehird cabal install SDL
20:05:56 <AnMaster> ehird, I don't like the sound of electric guitar no
20:06:08 <ehird> oklopol's recording sounded like an electric guitar :P
20:06:12 <oklopol> lament: well, most of it is pretty basic metal stuff. probably not your style; then again, i'm not saying you should *not* listen to it ofc.
20:06:21 <AnMaster> ehird, no it sounded like a PC speaker
20:07:04 <oklopol> the sound of an electric guitar is absolutely beautiful; of course hitting the low piano keys hard is even sexier.
20:07:15 <oklopol> you know octaves so low you make your ass vibrate.
20:07:20 <oklopol> *they
20:08:33 <oklopol> lament: maybe i should take that suggestion back, it's clear i should suggest you to listen to finnish metal as a finn, but i'm not sure i should use up my one suggestion point for stratovarius.
20:08:49 <AnMaster> what about using a church organ? You could go even lower!
20:08:59 <oklopol> AnMaster: yes, but it's not nearly as manly.
20:09:10 <oklopol> the sound doesn't... umm... break?
20:09:21 <AnMaster> uh?
20:09:29 <oklopol> you know low piano notes have distortion, in a sense.
20:09:35 <oklopol> and distortion is good.
20:09:46 <AnMaster> that partly depends on the quality of the piano
20:09:56 <AnMaster> and type
20:10:09 <ehird> bad pianos are HARDCORE
20:10:32 <AnMaster> ehird, I mean, compare an upright piano to a grand piano
20:10:34 <oklopol> i'm talking grand piano, everything else just tries to mimic it
20:10:43 <ehird> or compare your mom to your mom.
20:10:46 <AnMaster> oklopol, large or small grand piano?
20:10:48 <ehird> you decide
20:10:54 <oklopol> AnMaster: the bigger the better, naturally
20:11:08 <AnMaster> ehird, you seriously don't hear any difference between them?!
20:11:21 <ehird> between your mom and your mom?
20:11:28 <ehird> nope, they both moan the same.
20:11:31 <AnMaster> ehird, between upright piano and grand piano
20:11:31 * ehird deports to #misinterpretation
20:11:32 <ehird> BYE GUYYS
20:11:59 <AnMaster> hah hah
20:12:00 <ehird> okay let's see how you MAIN LOOP WITH SDL FUCK YEAH
20:12:01 <oklopol> i'm not sure i'd hear the difference between them, unless playing myself.
20:12:25 <ehird> Waits indefinitely for the next available event.
20:12:26 <ehird> SEEMS RITE
20:12:30 <oklopol> o
20:12:30 <oklopol> o
20:12:34 <ehird> i'd prefer an infinite list of events
20:12:36 <ais523> o k o
20:12:37 <ehird> that's just more... pure
20:12:46 <AnMaster> oklopol, well what if you were playing with a curtain that hid everything but the keys? would you still hear any difference
20:13:01 <AnMaster> or with a blindfold, though that would be hard
20:13:20 <lament> ehird: you're rewriting my thing with sdl?
20:13:21 <oklopol> AnMaster: sure.
20:13:28 <ehird> lament: i'm writing my own thing with sdl
20:13:38 <lament> ehird: hsdl or just sdl?
20:13:41 <AnMaster> oklopol, you would *feel* the difference I bet, but *hear* it?
20:13:41 <ehird> hsdl
20:13:52 <lament> ehird: was it difficult to get hsdl working on mac?
20:13:57 <ehird> /usr/bin/ld: Undefined symbols:
20:13:57 <ehird> _SDL_main
20:13:59 <ehird> collect2: ld returned 1 exit status
20:14:01 <ehird> Vwat
20:14:09 <ehird> Suicide commit time lol
20:14:16 <ehird> let's google on how you ACTUALLY USE THIS THING
20:14:19 <Deewiant> ehird: -lSDLmain?
20:14:38 <ehird> Deewiant: didn't do anything
20:14:50 <Deewiant> put it before/after -lSDL
20:14:50 <oklopol> AnMaster: my playing is fairly aggressive, if you hit the keys hard, a grand piano will respond differently than an upright one.
20:15:11 <ehird> Deewiant: % ghc --make bleep.hs
20:15:12 <ehird> now what :-D
20:15:20 <oklopol> i usually hit them as hard as i can for maximum satisfaction
20:15:20 <AnMaster> oklopol, yes, but part of that is in the feeling, and part in the sound
20:15:25 -!- ktne has joined.
20:15:30 <ktne> hello
20:15:32 <oklopol> i don't believe in feeling
20:15:32 <ais523> hi ktne
20:15:32 <Deewiant> ehird: what do you mean now what :-P
20:15:39 <ehird> Deewiant: no -lsdl
20:15:40 <ehird> :P
20:15:41 <AnMaster> oklopol, I mean tactile feeling
20:15:42 <fizzie> A beepiano is a piano made out of bees. Very painful to play.
20:15:46 <ktne> does anyone know how optional parameters are implemented in compiled languages?
20:15:51 <AnMaster> fizzie, :)
20:16:04 <Deewiant> ehird: cabal knows to tell ghc to add those
20:16:10 <ehird> i know
20:16:11 <Deewiant> (well, on non-Windows systems anyway)
20:16:12 <AnMaster> ktne, depends
20:16:15 <ehird> so whydi get dis error
20:16:20 <oklopol> fizzie: in fact, actually it's from beep+piano, the p just fell out.
20:16:27 <alex89ru> ktne, getopt
20:16:31 <AnMaster> ktne, I assume compiler just resolves it at compile time to pass the extra args
20:16:34 <ehird> alex89ru: uh, no.
20:16:35 <ehird> he means to functions
20:16:40 <AnMaster> in foo(int a = 2) or such
20:16:41 <oklopol> fizzie: quite an embarrassing misunderstanding, i'd expect more from you
20:16:44 <ktne> AnMaster: what is the arity of a function that has optional parameters? required parameters + 1 extra parameter pointing to a struct?
20:17:00 <alex89ru> ah lol
20:17:03 <AnMaster> ktne, good question
20:17:04 <alex89ru> my f ault sry,
20:17:09 <oerjan> fizzie: lately several beepianos have collapsed i hear
20:17:19 <AnMaster> ktne, what is the arity if printf()?
20:17:43 <AnMaster> (in C that is)
20:17:47 <fizzie> I think C++ compilers usually do it simply so that the calling function provides the default values of parameters if you don't specify them.
20:17:48 <ktne> hmm
20:17:51 <oklopol> okay, enough irc for today, see you later... ally... gate... err
20:17:52 <oklopol> umm
20:17:52 <oklopol> ->
20:17:58 <ktne> fizzie: i see..
20:18:02 <ktne> fizzie: great idea
20:18:14 <ehird> <pejo> ehird, that's a common question. Not sure if anyone has solved it but the channel logs should contain lots of references.
20:18:18 <ehird> Dammit.
20:18:21 <AnMaster> ktne, and what I said above.......
20:18:24 <fizzie> So the arity is the sum of normal and "optional" arguments; which in that sense aren't really optional at all, they just have default values provided.
20:18:26 <AnMaster> <AnMaster> ktne, I assume compiler just resolves it at compile time to pass the extra args
20:18:28 <ehird> 20:17 <AnMaster> ktne, what is the arity if printf()?
20:18:28 <ehird> 20:18 <AnMaster> (in C that is)
20:18:32 <ehird> It just passes all args on the stack
20:18:32 <ktne> AnMaster: i see, thansk
20:18:33 <AnMaster> which is same as fizzie
20:18:37 <AnMaster> ehird, indeed
20:18:37 <ehird> and the va_arg functions pops them
20:18:40 <ehird> if you mess up the printf vs args
20:18:43 <ehird> you blow the stack
20:18:55 <AnMaster> ehird, I know this, I just answered ktne's question with another question
20:18:58 <AnMaster> if you read the contex
20:18:59 <ehird> ah.
20:19:00 <AnMaster> context*
20:20:08 <AnMaster> ehird, you know, get him thinking for himself, "if you give a man a fish he has a food for one day, if you teach how to fish he has food for the rest of his life"
20:20:15 <ktne> what about dynamic languages?
20:20:17 <AnMaster> not sure if that is the correct form in English
20:20:49 <AnMaster> ktne, I guess they just resolve it at runtime using metadata about the function?
20:20:57 <ktne> is there any dynamic language that differentiates between two functions that have same name but different arity?
20:21:02 <oerjan> AnMaster: optional arguments are not the same as variable length list of arguments, necessarily
20:21:04 <fizzie> I have a feeling you could (with some difficulty) make a standards-conforming C++ implementation where (in case of functions with default values) the calling site provides just the number of arguments provided, and the function prologue handles the default values.
20:21:11 <AnMaster> ktne, yes, erlang
20:21:18 <AnMaster> ktne, no optional args though
20:21:32 <ktne> AnMaster: that was the catch i was wondering about, they don't look compatible
20:21:45 <AnMaster> io:format(A, B, C) and io:format(A, B) would be two different functions
20:21:59 <ktne> i'm thinking about distinguishing between function using function name, arity, and number of return values
20:22:11 <ktne> would that be sensible?
20:22:29 <AnMaster> (ktne: actually it is io:format("string here: ~s integer: ~p~n", ["my string", 42]).)
20:22:50 <ktne> i see, so it's two parameters
20:22:50 <AnMaster> (thus passing a cons-style list with the arguments
20:22:58 <ktne> right
20:22:59 <AnMaster> ktne, well that specific function
20:23:18 <oerjan> ktne: probably, note prolog also does this and it uses arguments for return values
20:23:22 <AnMaster> ktne, erlang use the notation: module:name/arity, so io:format/2
20:23:34 <oerjan> that's where erlang got it from too
20:23:43 <AnMaster> oerjan, yes they are related in syntax
20:23:54 <ktne> that's what i plan to, except that i also want to consider return values
20:23:59 <lament> Why would you ever have functions that take more than one argument?
20:24:02 <ktne> io:format/2/1
20:24:03 <AnMaster> erlang returns a value
20:24:07 <oerjan> i think mercury may do like prolog but with i/o declarations in addition
20:24:11 <AnMaster> ktne, wow you mean more than one return value? cool
20:24:22 <AnMaster> except
20:24:23 <oerjan> (statical)
20:24:28 <AnMaster> that is basically returning a tuple
20:24:41 <ktne> well, i'm thinking in a more low level thing
20:24:42 <AnMaster> {someatom, someotheratom}
20:24:50 <lament> any language in which functions take more than one argument is clearly completely flawed.
20:24:53 <ktne> i could return the multiple values directly
20:25:04 <ktne> lament: :)
20:25:05 <ehird> <ehird> Lemmih: you made hSDL, right? :) <ehird> how do I fix that error? any ideas? <Lemmih> ehird: Install Linux.
20:25:08 <AnMaster> ktne, well you can do that in erlang:
20:25:11 <ktne> lament: the closure?
20:25:12 <ehird> go to hell, library author.
20:25:16 <ehird> lament: SHARE IN MY ANGER.
20:25:23 <ais523> SDL's cross-platform!
20:25:23 <lament> ehird: hahaha
20:25:23 <AnMaster> {MyVar, MyOtherVar} = my_func(),
20:25:24 <ktne> AnMaster: yes but i want to avoid tuple allocation on return
20:25:33 <AnMaster> ktne, erlang is based on pattern matching :)
20:25:53 <lament> ehird: first of all, note that hsdl has readme files about win32 and osx, and those are NOT written by lemmih.
20:25:55 <ktne> although returning a tuple is sensible because you might just want to assign that tuple as a whole to some other variable
20:26:07 <ehird> lament: okie?
20:26:16 <lament> ehird: so maybe you should bug those people instead
20:26:23 <AnMaster> <ktne> although returning a tuple is sensible because you might just want to assign that tuple as a whole to some other variable <-- or a list, or whatever
20:26:33 <lament> ehird: second, just do that part in C
20:26:34 <AnMaster> ktne, and erlang isn't an esolang, so it is *sensible*
20:26:37 <AnMaster> mostly
20:26:39 <ktne> ok, done, i'm going to consider function name and arity, optional parameters if any will be sent using a hidden parameter, is this ok?
20:26:42 <ehird> lament: the hackage package:
20:26:43 <lament> ehird: and third, see, this is why haskell sucks!
20:26:46 <ehird> Copyright2004-2008, Lemmih
20:26:46 <ehird> AuthorLemmih (lemmih@gmail.com)
20:26:48 <ehird> MaintainerLemmih (lemmih@gmail.com)
20:26:55 <lament> ehird: how does that contradict anything i've said?
20:26:57 <ehird> how could I possibly misinterpret that :D
20:27:01 <AnMaster> ktne, what about using a list of tuples?
20:27:10 <oerjan> ktne: if you want the function to depend on number of return values then obviously the number of return values must be decided _before_ calling it, say by syntax
20:27:11 <ktne> AnMaster: where a list of tuples?
20:27:39 <AnMaster> ktne, like foo(arg, arg2, [{optionalargumentname, Value}, ...])
20:27:44 <AnMaster> erlang uses that way
20:27:51 <AnMaster> but then I love erlang :)
20:27:54 <ktne> AnMaster: that would be slow
20:27:55 <oerjan> maybe something such as python's tuple assignments
20:28:03 <ktne> AnMaster: i want to avoid unnecesary list processing
20:28:08 <AnMaster> ktne, well depends...
20:28:44 <AnMaster> ktne, erlang seems to manage it fine, compiling to bytecode and then running under the vm
20:29:04 <AnMaster> I believe it optimises stuff like constructing tuples too
20:29:09 <ehird> /usr/bin/ld: warning -L: directory name (/sw/lib) does not exist
20:29:10 <lament> ehird: see, lemmih directed you to the same readme file as i
20:29:15 <ehird> Just freaking hardcode for Fink.
20:29:16 <ehird> Why don't you
20:29:26 <AnMaster> ktne, after all it can just prepare one statically, it is single assignment, so no need to copy the stuff around
20:29:36 <AnMaster> sure you need to parse it yes
20:29:53 <ktne> i want to avoid parsing the list for arguments
20:30:03 <lament> ehird: i strongly suggest avoiding hsdl
20:30:05 <AnMaster> oh well
20:30:16 <lament> ehird: that undefined reference to sdl_main is the same error i got yesterday on cygwin, by the way
20:30:18 <ktne> although it would have the advantage of reducing memory usage if you have tons of optional parameters
20:30:28 <ehird> lament: i'm gonna get thsi working.
20:30:29 <ehird> no mattre what
20:30:34 <AnMaster> ehird, what if this "Lemmih" doesn't own any OS X system he can test on?
20:30:34 <ehird> /usr/bin/ld: multiple definitions of symbol _main
20:30:35 <ehird> /opt/local/lib/libSDLmain.a(SDLMain.o) private external definition of _main in section (__TEXT,__text)
20:30:37 <ehird> dist/build/Graphics/UI/SDL/General_hsc_make.o definition of _main in section (__TEXT,__text)
20:30:38 <AnMaster> make a patch!
20:30:39 <ehird> man what.
20:30:40 <AnMaster> to help
20:30:48 <ehird> AnMaster: what are you on about?
20:30:58 <AnMaster> ehird, "<ehird> <ehird> Lemmih: you made hSDL, right? :) <ehird> how do I fix that error? any ideas? <Lemmih> ehird: Install Linux."
20:31:00 <ais523> I suggest you take the resulting binaries, and change the first 3B to 3D
20:31:00 <AnMaster> that
20:31:12 <AnMaster> ais523, um?
20:31:25 <ehird> AnMaster: yeah it was more saying "Install Linux" as a sarcastic flamebait response as opposed to "I don't know, I don't use OS X"
20:31:36 <ais523> AnMaster: ok, this time you have missed a joke
20:32:11 <AnMaster> ehird, after all, OS X has a non-traditional file system structure
20:32:27 <ehird> AnMaster: what the heck has that got to do with anything
20:32:30 <ehird> nothing
20:32:47 <AnMaster> ehird, with things not being where a *bsd or linux developer expects them to be
20:32:48 <lament> AnMaster: that's probably not why you get the same undefined reference error as you do on cygwin
20:32:53 <AnMaster> and the "framework stuff" then
20:33:07 <AnMaster> lament, true, that is likely due to windows
20:33:09 <ehird> call me when you're coherent, mon.
20:33:31 <AnMaster> ehird, AWWWK! The pencil! ARGH!
20:34:50 <oerjan> 3B or not 3B, that's the question
20:35:13 <AnMaster> oerjan, Mr Jelly Beans! Spoon!
20:35:42 <ehird> lament: ha, I think it's working
20:35:53 * oerjan does not get the reference
20:35:53 <lament> ehird: how did you fix it
20:35:59 <ehird> wait, no it isn't working.
20:36:12 <oerjan> and google fails me
20:36:16 <AnMaster> oerjan, the first one: no reference. The second: Discworld.
20:37:00 <AnMaster> oerjan, oh and don't use " around...
20:37:13 <AnMaster> since I'm pretty sure I didn't quote exactly
20:37:25 <oerjan> hm
20:37:32 <ehird> it almost works.
20:37:47 * AnMaster noticed a lot of people here never noticed all the Discworld references he used throughout the year.
20:37:53 <ais523> oerjan: 0xbfb830a3
20:38:02 <AnMaster> I guess around 20%-30% were noticed
20:38:11 <oerjan> AAAAAAAAAAAAA
20:38:15 <AnMaster> oerjan, ?
20:38:19 <ais523> that's a genuine reference, I even wrote a C++ program to generate it
20:38:25 <ais523> no references in C
20:38:25 <AnMaster> ais523, what?
20:38:31 <AnMaster> oh
20:38:32 <AnMaster> right
20:38:38 <ais523> well, to be precise it's a pointer to a reference, but I had to convert it to hex somehow
20:38:48 <AnMaster> ais523, gdb?
20:38:53 <ais523> printf
20:38:56 * oerjan swats ais523 -----###
20:39:01 * ais523 dodges
20:39:08 <AnMaster> ais523, you could probably get the value using gdb
20:39:42 -!- Judofyr has quit ("raise Hand, 'wave'").
20:39:58 <comex> ok, I don't get it
20:40:02 <comex> ais523: bfb830a3?
20:40:02 -!- ktne has left (?).
20:40:09 <oerjan> AnMaster: i'm only up to "Eric"
20:40:21 <AnMaster> oerjan, oh I don't even know what book this was in
20:40:28 <AnMaster> maybe Hogfather?
20:40:29 <ais523> comex: <ais523> well, to be precise it's a pointer to a reference, but I had to convert it to hex somehow
20:40:33 <AnMaster> someone about the UU though
20:40:52 <AnMaster> where Hex got infected by Busariness(sp? forget it...)
20:41:26 <AnMaster> oh wait, ehird would suggest that I use "have" not "got" there
20:41:31 <AnMaster> s/got/have/
20:41:32 <ehird> lament:
20:41:33 <ehird> But we can fake it. In Core/Examples/MacOSX, I've included the Core/Examples/Test.hs example and a small Cabal definition to build it. Our actual 'main' is Test.sdl_main. We provide a Main.main, 'foreign export'ed as 'hs_main', which we will call from C. (We indirect so that the file Main_stub.o need not be rebuilt every time we modify module Test.) We provide our own 'SDL_main' in c_main.c, which initializes the Haskell runtime and calls 'hs_main',
20:41:38 <ehird> running Test.main in an environment with SDL available. Finally, libSDLmain will find our C 'SDL_main' and call it, starting the whole process.
20:41:41 <ehird> I vomited
20:41:53 <lament> ehird: yes, i've read that file
20:42:03 <ehird> well, I'll try it
20:42:03 <lament> that was when i decided for sure to not bother with hsdl
20:42:10 <oerjan> AnMaster: i don't think "have" is correct there
20:42:16 <AnMaster> oerjan, nor do I :)
20:42:18 <lament> it's not like using sdl is terribly hard
20:42:21 <lament> in C
20:42:25 <ais523> AnMaster: probably you want "was"
20:42:29 <lament> you don't really win any points by doing everything in haskell
20:42:37 <AnMaster> ais523, ouch
20:42:44 <ais523> AnMaster: why ouch?
20:42:59 <AnMaster> ais523, because I thought "got" was correct there
20:43:04 -!- GreaseMonkey has joined.
20:43:09 <ais523> got is sort of correct there
20:43:17 <oerjan> lament: LIES
20:43:18 <ais523> just it's a word you rarely hear adults using
20:43:41 <AnMaster> oerjan, wait the first line also had a Discworld reference
20:43:48 <AnMaster> "AWWWK!" -> Thud
20:44:15 <AnMaster> Thud is one of the most recent ones
20:44:26 <oerjan> what about "seeed!" ?
20:44:32 <AnMaster> but that one I didn't think about in advance
20:44:37 <AnMaster> oerjan, hah
20:45:21 <AnMaster> oerjan, well it is clear to me that the person ended up this way due to using sed for something non-trivial
20:45:32 <AnMaster> like writing an RPN calculator
20:45:44 <oerjan> amazing clarity
20:45:46 <AnMaster> so of course he would want awk
20:46:31 <AnMaster> oerjan, "AWWWK!" is a cry for help in this case.
20:46:46 <AnMaster> (Help! I'm stuck in a sed script!)
20:46:57 <oerjan> AWWWK! *THUD* sounds plausible
20:47:18 <AnMaster> oerjan, no, the book is Thud, but Awwwk isn't related to that
20:47:45 <oerjan> AWWWK! *WHOOSH* even more so
20:47:46 <AnMaster> the book is named after the table top game Thud that is quite important to the plot
20:47:51 <AnMaster> Thud is somewhat like chess
20:48:00 <AnMaster> oerjan, mhm....
20:49:27 <ehird> % ghc --make -no-hs-main bleep.hs main.c -o bleep
20:49:27 <ehird> [1 of 1] Compiling Bleep ( bleep.hs, bleep.o )
20:49:29 <ehird> Linking bleep ...
20:49:31 <ehird> lament: that was _easy_
20:49:47 <ehird> 13 lines of trivial c in main.c, then just instead of main in haskell, do:
20:49:52 <ehird> foreign export ccall sdl_main :: IO ()
20:49:53 <ehird> sdl_main :: IO ()
20:50:20 <oerjan> i guess this program is bleeping annoying
20:50:59 <lament> ehird: can you send me it?
20:51:04 <ehird> lament: yep
20:51:33 <AnMaster> ehird, does it work on Linux?
20:51:39 <ehird> yes
20:51:56 <AnMaster> ehird, gave up haskell kernel?
20:51:57 <ehird> lament: here you go: http://pastie.org/private/b4humfcteprzojcrqhcq
20:51:59 <ehird> AnMaster: nope
20:52:02 <AnMaster> :D
20:52:24 <ehird> lament: you can rename sdl_main to sdlMain
20:52:27 <ehird> and call it as sdlMain() in C
20:52:29 <ehird> that's more haskelly
20:52:57 <ehird> er well actually
20:52:59 <ehird> I'm not sure that works :P
20:53:55 <lament> ehird: i don't get it
20:54:05 <ehird> lament: SDL.h defines the macro "main"
20:54:08 <ehird> to rewrite to SDL_main and stuff
20:54:11 <lament> first, how does #include "SDL/SDL.h" work?
20:54:16 <ehird> err, how doesn't it
20:54:28 <lament> like this: main.c:1:21: SDL/SDL.h: No such file or directory
20:54:33 <ehird> okay, well
20:54:40 <ehird> where's your SDL includes?
20:54:40 <lament> shouldn't that be <SDL/SDL.h> ?
20:54:44 <ehird> that works too
20:54:44 <ehird> :P
20:54:54 <lament> they're in /usr/include
20:55:53 <ehird> lament: actually, in main.c
20:55:56 <ehird> don't import bleep_stub.h
20:55:57 <ehird> instead, do this:
20:56:34 <ehird> extern void hs_init(int *, char ***);
20:56:34 <ehird> extern void hs_add_root(void (*)(void));
20:56:35 <ehird> extern void __stginit_Bleep(void);
20:56:37 <ehird> extern void sdlMain(void);
20:56:39 <ehird> extern void hs_exit(void);
20:56:41 <ehird> then you can compile them in one go
20:56:43 <lament> ugh
20:56:43 <ehird> (before I had compiled them separately)
20:56:47 <ehird> lament: it's ugly, but
20:56:49 <ehird> you only have to write it once
20:56:55 <ehird> in fact
20:56:58 <ehird> you can make it even less changey
20:57:03 <ehird> change Bleep to Main
20:57:05 <lament> it doesn't work anyway, i can't even get it to find SDL/SDL.h
20:57:08 <ehird> and remove the module statement from bleep.hs
20:57:11 <ehird> then you never have to touch the c file
20:57:23 <ehird> lament: well, do
20:57:34 <ehird> ghc --make -no-hs-main -L/usr/include main.c bleep.hs -o bleep
20:57:36 <ehird> i guess
20:58:21 <lament> i think my ghc is fucking retarded
20:58:26 <lament> i don't think it accepts cygwin paths
20:58:47 <ehird> then give it c paths :P
20:58:55 <ehird> btw I was wrong, it can't be called main
20:58:56 <ehird> oh well
20:58:59 <ehird> call it SDLMain
20:59:15 * AnMaster leans back and notice no issue on Linux with such stuff. :D
20:59:15 <AnMaster> afk
20:59:17 <lament> i am utterly confused
20:59:26 <ehird> AnMaster: it's hsdl's fault
20:59:26 <lament> AnMaster: there isn't such an issue on any platform
20:59:29 <ehird> lament: ok, what are you doing
20:59:32 <lament> except when you're using this broken library
20:59:43 <lament> ehird: i dunno, i can't get it to find SDL.h
20:59:48 <ehird> paste the command + error
21:00:17 <lament> $ ghc --make -no-hs-main -L/usr/include bleep.hs main.c -o bleep
21:00:17 <lament> main.c:1:21: SDL/SDL.h: No such file or directory
21:00:53 <lament> can you make ghc output the list of header paths searched?
21:00:56 <ehird> not sure
21:01:00 <ehird> try -LC:\real\path
21:02:03 <lament> nope
21:02:20 -!- impomatic has quit ("http://impomatic.blogspot.com :-)").
21:02:40 <lament> on the other hand "$ gcc -L/usr/include main.c" works
21:02:45 <lament> (but dies when linking of course)
21:03:08 <ehird> now -that's- odd
21:03:11 <ehird> lament: as a hack, change the include to
21:03:14 <lament> it's my ghc
21:03:17 <ehird> #include "/usr/include/SDL/SDL.h"
21:03:18 <lament> i'm sure
21:03:20 <ehird> ugly as fuck? yes.
21:03:21 <ehird> but works? yes.
21:03:47 <lament> actually it doesn't, trying the c path instead
21:04:11 <lament> yep, now it found it
21:04:14 <lament> you think that was ugly
21:04:15 <AnMaster> use ghc to generate C output then link it?
21:04:21 <ehird> AnMaster: no...
21:04:25 <ehird> stop making wild guesses all the time kthx
21:04:25 <lament> THIS is ugly: #include "C:\cygwin\usr\include\SDL\SDL.h"
21:04:34 <AnMaster> ehird, you do that too
21:04:35 <lament> but it actually worked \o/
21:04:41 <ehird> AnMaster: uh huh
21:04:43 <ehird> lament: \o/!
21:04:46 <AnMaster> lament, don't you need to escape the \ ?
21:04:51 <lament> now what was all that other stuff i was supposed to do
21:05:01 <ehird> nothing, it's fine
21:05:06 <ehird> do you want an updated version though?
21:05:13 <ais523> technically speaking, strings in a #include can be parsed however the compiler wants
21:05:18 <ais523> they aren't ordinary C strings
21:05:28 <lament> ehird: yay, it actually workes
21:05:34 <lament> the only thing i had to do with add -XCPP
21:05:39 <ais523> they don't even technically have to refer to filenames, although every compiler I've met does that
21:05:43 <lament> since otherwise i get
21:05:44 <lament> Graphics/UI/SDL/RWOps.hs:21:1: lexical error at character 'i'
21:05:48 <ehird> lament: woot
21:06:33 <lament> ehird: but this is fucking ugly
21:06:48 <ehird> lament: not really
21:06:49 -!- BeholdMyGlory has quit (Remote closed the connection).
21:06:50 <ehird> you don't have to think about the c
21:06:52 <lament> since this program doesn't use much sdl, it seems just using C would be cleaner
21:06:53 <ehird> it's static, forever
21:06:57 <ehird> all you modify is your haskell
21:06:59 <ehird> and just copy the c file around
21:07:16 <lament> it's static until you need to modify it
21:07:21 <lament> eg when it can't find SDL.h
21:07:32 <lament> that's when you realize you have a horrible bitrotten mess.
21:07:38 <ehird> WFM without that hack
21:07:38 <ehird> :P
21:07:50 <lament> WFM?
21:07:59 <ais523> Windows Foundation Metaclasses
21:08:01 <lament> "Well Fuck Me"?
21:08:06 <ehird> Works For me.
21:08:19 -!- M0ny has quit ("Quit").
21:08:23 <lament> right, but it's supposed to be crossplatform
21:08:29 <ehird> it should be
21:08:33 <ehird> your system is fucked
21:08:33 <lament> well, it isn't
21:08:33 <ehird> :P
21:08:36 <lament> clearly
21:08:43 <ais523> the SDL itself is cross-platform
21:08:46 <ehird> no, it doesn't work on your system because your ghc or something is broken
21:08:49 <ehird> ais523: thanks cpt obv
21:08:59 -!- BeholdMyGlory has joined.
21:09:17 <lament> ehird: i used windows, then i switched to linux, then i switched to mac
21:09:21 <lament> i use windows and mac at work
21:09:27 <ehird> yes, and?
21:09:27 <lament> new oses come out all the time
21:09:30 <ehird> fix your cygwin environment
21:09:33 <lament> new version of os x comes out, everything breaks
21:09:37 <ehird> no
21:09:39 <ehird> that code is perfectly fine
21:09:41 <lament> my point is, bitrot is a real problem
21:09:43 <ehird> it's your cygwin environment
21:09:51 <ehird> and the C file is 13 bloody lines, man
21:09:52 <lament> and everything that helps avoid bitrot is good
21:09:54 <ehird> it's hard to bitrot 13 lines.
21:10:08 <lament> it's not about the size
21:10:15 <lament> it's about the number of possible points of failure
21:10:29 <lament> in this case, hsdl is an extra point of failure, and this hacky c file is another point of failure
21:10:56 <ehird> i sent the files to you because they're simple and worked for me and you asked
21:11:00 <lament> i trust SDL not to bitrot
21:11:11 <ehird> they don't work on your weird-ass broken cygwin environment
21:11:12 <lament> i don't really trust hsdl not to bitrot, especially since it already requires hacks to run
21:11:14 <ehird> don't complain about that to me
21:11:29 <lament> it's not weird-ass broken, it's a regular cygwin environment
21:11:40 <ehird> except your ghc is broken
21:12:04 <lament> it's a standard install of ghc for windows
21:12:08 <AnMaster> <ehird> ais523: thanks cpt obv <-- you would have been a lot nastier towards me
21:12:18 <ehird> AnMaster: no I would not have
21:12:23 <ehird> stop whining about how horrible I am to you all the time
21:12:28 <AnMaster> *sob*
21:12:32 <ehird> lament: mixing cygwin + non-cygwin always fails
21:12:46 <ehird> ok, this _is_ odd...
21:12:46 <ehird> KeyDown (Keysym {symKey = SDLK_a, symModifiers = [], symUnicode = '\NUL'})
21:12:50 <ehird> why on earth is symUnicode nul
21:15:14 <ehird> lament: link to haccordion? I lost the source
21:15:27 <lament> http://filebin.ca/vcfm/haccordion.tar.gz
21:15:30 <lament> if it's still there
21:15:54 <ehird> does it use haskore?
21:16:21 <lament> no, it uses hmidi
21:16:27 <ehird> haskore looks cooler :-P
21:16:32 <lament> but hmidi is better.
21:16:40 <ehird> why
21:17:29 <lament> i don't even know if haskore has a midi interface
21:17:39 <lament> but it seems a huge library designed for something completely different from what i need
21:17:42 -!- alex89ru has quit ("Verlassend").
21:18:05 <ehird> http://www.haskell.org/haskellwiki/Haskore
21:18:09 <ehird> you just compose chords and play them as midi
21:18:47 <lament> i don't need to compose any chords. Look at play_note.hs.
21:18:58 <AnMaster> ehird, what about playing style? attack?
21:19:07 <ehird> lament: haskore doesn't require you to create a garageband instrument?
21:19:08 <ehird> :P
21:19:23 <lament> ehird: that's a -feature-
21:19:28 <lament> not a garageband instrument
21:19:34 <lament> haccordion is a midi device
21:19:39 <lament> you connect it to any midi synth
21:19:44 <ehird> oh, that's why it didn't work then
21:19:46 <lament> that's a good thing (tm)
21:20:01 <lament> i could connect it to my external midi keyboard for example
21:20:04 <ehird> i thought you typed into the program and it played
21:20:13 <lament> you type into the program, it sends midi events
21:20:22 <lament> it doesn't play anything
21:20:44 <ehird> you didn't make that clear
21:21:23 <lament> it should be pretty obvious from the requirement to open garageband and create a midi track :)
21:21:44 <ehird> lament: how do I set that midi track to the program
21:22:21 <lament> turn on IAC
21:22:23 <lament> IAC is like a loopback
21:22:30 <ehird> how do I use it after doing that
21:22:49 <lament> it should just work after that, because garageband seems to take all midi input
21:23:14 <ehird> 1 midi inputs detected, it says
21:23:17 <lament> yes
21:23:17 <AnMaster> <ehird> you didn't make that clear <-- why?
21:23:18 <ehird> so it;'s the keyboard that's the problem
21:23:21 <lament> yes
21:23:22 <AnMaster> I mean we all have midi set up
21:23:25 <AnMaster> so it would just work
21:23:41 <ehird> you know nothing about what you're talking, AnMaster. please stop.
21:23:44 <AnMaster> using your midi hardware :)
21:24:25 <AnMaster> err
21:24:31 <AnMaster> lament when trying that app
21:24:37 <AnMaster> keys.c:2:53: error: ApplicationServices/ApplicationServices.h: No such file or directory
21:24:39 <ehird> it's os x only.
21:24:40 <AnMaster> ?
21:24:41 <ehird> like he said.
21:24:43 <AnMaster> oh crap
21:24:53 * AnMaster rm -rfs it
21:25:03 <AnMaster> what about wxwidgets
21:25:10 <ehird> wow you're an idiot.
21:25:27 * oerjan watches AnMaster accidentally press return after ~
21:25:40 <lament> AnMaster: does wx provide a way to monitor keyup/keydown events?
21:25:48 <AnMaster> lament, SDL then
21:25:52 <ehird> ...
21:25:54 <lament> nice
21:25:54 <ehird> HE TRIED SDL
21:25:57 <ehird> HAVE YOU BEEN LISTENING?!?!?!
21:26:01 <AnMaster> ehird, yes
21:26:04 <ehird> evidently not
21:26:07 <lament> AnMaster: now you're only like three hours behind the conversation :)
21:26:07 <AnMaster> and I can't see the issue with SDL here
21:26:13 <AnMaster> since I know sdl works for that
21:26:16 <lament> almost catching up
21:26:18 <AnMaster> I used sdl myself for that
21:26:25 <lament> yes
21:26:27 <ehird> oh just shut up
21:26:28 <lament> i will probably do that too
21:26:30 <lament> (use sdl)
21:26:41 <AnMaster> lament, I admit it was from C, not haskell
21:26:43 <AnMaster> so *shrug*
21:26:43 <ehird> lament: but BITROT :-P
21:26:54 <lament> ehird: i trust SDL more than apple api
21:26:58 <AnMaster> oh OS X == bitrot
21:26:59 <AnMaster> indeed
21:27:02 <lament> especially since apple api doesn't work for you!
21:27:10 <AnMaster> lament, exactly
21:27:12 <lament> SDL is not gonna bitrot any time soon
21:27:14 <ehird> AnMaster: do you think you could just jump off a cliff? that'd help this conversation immensely. thanks x
21:27:22 <ehird> brb.
21:28:33 <AnMaster> ehird, permission denied
21:29:46 <oerjan> ENOCLIFF
21:30:02 <AnMaster> :)
21:40:28 <bsmntbombdood> i need some music
21:40:42 <lament> listen to Marvin Gaye "What's going on"
21:40:47 <lament> i don't know what that is, never heard it
21:41:35 <bsmntbombdood> sounds pretty gay
21:42:24 <lament> fine then, listen to mozart - piano concerto no. 21 - andante
21:43:08 <bsmntbombdood> no
21:43:44 <lament> fine then, go fuck yourself with a toilet plunger
21:44:07 <bsmntbombdood> yes please
21:44:20 <ais523> please, the atmosphere in here is deteriorating
22:06:11 -!- KingOfKarlsruhe has quit (Remote closed the connection).
22:10:19 <ehird> back
22:10:22 <ehird> hi lament
22:10:32 <ehird> ais523: wah
22:10:48 <ehird> lament: want the updatd main.c?
22:11:55 <ehird> lament: http://pastie.org/private/nks52uzi3kpvb22vqxzba
22:12:01 <ehird> it'll work as long as it can find sdl/sdl.h
22:12:04 <ehird> so, just use -L or w/e
22:12:05 <ehird> err
22:12:06 <ehird> -I
22:12:13 <ehird> -Ic:\path\to\include
22:17:44 <ehird> lament: hmidi works
22:17:46 <ehird> as i'm using i
22:17:47 <ehird> t
22:24:41 <ehird> lament: you there?
22:28:32 <ehird> lament: does your program support all keys or just alfabettycal?
22:29:40 <ehird> hmm, how does it handle qwerty? it just seems to use the key codes
22:29:48 <ehird> ah, positionForKeyCode?
22:29:49 <ehird> ugly
22:30:52 <lament> yes
22:30:54 <lament> you mean pretty
22:31:01 <lament> since i'm using dvorak and it still works
22:31:10 <ehird> wait, how does it work on both?
22:31:21 <ais523> because scan code is based on location on the keyboard
22:31:24 <lament> yep
22:31:30 <ais523> not on the keycap
22:31:32 <ehird> ah
22:31:37 <ehird> well now I gotsa figure out how to get the scancode from sdl
22:32:17 <ehird> hmm, it has .scancode
22:32:27 <ehird> but it asys it's hardware-specific
22:32:27 <ehird> :<
22:32:34 <ehird> and hsdl doesn't seem to have it
22:32:42 <ehird> h mhm
22:34:12 <ehird> hrrm
22:34:44 <lament> yeah
22:34:50 <lament> it ought to be hardware specific, makes sense :\
22:35:33 <ehird> but yeah, wonder how I get to that
22:36:04 -!- oerjan has quit ("What about circular keyboards?").
22:36:21 <ehird> fuck circular keyboards
22:36:39 <ais523> well, at least if it's a mac you probably have a standard mac keyboard
22:36:46 <bsmntbombdood> so we need to figure out the most useful language for which the halting problem is solvable
22:36:50 <ehird> that's quite an assumption, ais523
22:36:55 <ehird> bsmntbombdood: total FP langs
22:36:58 <ais523> ehird: but macs are designed for mac hardware
22:37:08 <ais523> so the programs you write for them can be too
22:37:08 <ehird> ais523: not in the realm of keyboards and mice. stop trolling please
22:37:36 <ais523> ehird: is that the first time you'v accused me of trolling?
22:37:41 <ais523> a momentous occasion, if so
22:37:46 <ehird> I don't think so
22:37:50 <lament> bsmntbombdood: Haskell, with the condition that every program terminates automatically after a thousand years.
22:37:53 -!- bsmntbombdood has quit.
22:38:02 <ehird> I don't think that's for turing machines lament
22:38:03 <ehird> :P
22:38:05 <ais523> clearly bsmntbombdood didn't like that idea...
22:38:10 <ehird> oh, wait
22:38:11 <ehird> ha
22:38:24 <lament> ehird: he didn't say for turing machines.
22:38:27 <ais523> what about Haskell running on a typical desktop supercomputer?
22:38:28 -!- bsmntbombdood has joined.
22:38:36 <ais523> the halting problem's soluble then, as you have infinite memory
22:38:37 <ehird> typical, desktop, supercomputer
22:38:38 <ais523> *finite memory
22:38:40 <ehird> "VWAT"
22:38:49 <ais523> ehird: there has to be one, surely?
22:38:56 <lament> "soluble"?
22:39:26 <ais523> sorry, all this is evidence that it's late and I should go home
22:39:28 <lament> ais523: a typical desktop supercomputer without any peripherals!
22:39:46 <lament> he said "the most useful"
22:39:55 <lament> an environment without internet access doesn't qualify!
22:40:01 <ais523> well, a desktop supercomputer is more useful than a mainframe supercomputer
22:40:10 <ais523> and more useful than a desktop ordinary computer
22:40:11 <lament> he said the most useful
22:40:15 <lament> not just more useful
22:40:19 <lament> it has to be provably the best
22:40:21 <lament> i.e. Haskell
22:40:27 <ais523> and being typical is useful, as it helps you find other people who know how to use it on IRC
22:40:37 <lament> haskell is pretty typical.
22:40:52 <lament> it has sdl bindings, just like any other language.
22:41:15 <lament> too bad they rely on a nasty hack to work.
22:42:35 <ehird> no
22:42:36 <ehird> only on OS X
22:42:40 <ehird> oother platforms don't have that sdlmain shit
22:43:11 <ais523> I should go home, anyway
22:43:12 -!- ais523 has quit.
22:43:18 <lament> ehird: OS X and Windows.
22:43:25 <ehird> well, fine
22:43:26 <lament> "other platforms" are Linux in this case.
22:43:27 <ehird> but that hack is only 13 lines
22:43:28 <ehird> and it's trivial
22:51:24 -!- Corun_ has quit ("This computer has gone to sleep").
23:02:49 -!- jix has quit ("...").
23:06:57 <ehird> guys, who wants to chip into my fund to buy a lisp machine. I'll give everyone shell access to it.
23:10:32 <GregorR> Lithp mathineth have nethworking?
23:10:36 <GregorR> :P
23:11:28 <Deewiant> He didn't say anything about networking
23:12:11 <ehird> GregorR: I believe so, if not, I can hook another machine up to it as a proxy.
23:12:12 <ehird> Deewiant: *g*
23:15:00 <ehird> but it would be so awesome./
23:15:35 <Deewiant> Just get the keyboard, that's 50% of the awesome
23:15:44 <ehird> More like 30%
23:15:49 <ehird> The actual lisp system is the rest.
23:15:57 <ehird> Then putting it online is 1000000% more.
23:15:58 <Deewiant> I value the keyboard higher than that :-P
23:16:01 <ehird> Especially an HTTP server.
23:16:08 <ehird> I'd run helloiamalispmachine.com
23:17:24 <ehird> also, I have a Symbolics 3640 (l-machine, TTL logic, some bit-slice) and a XL1200 (i-machine, "Ivory" custom cpu). Both run and are capable of working on the network.
23:17:24 <ehird> so yep
23:17:26 <ehird> network
23:35:13 <oklopol> so
23:35:22 <oklopol> have i mentioned i'm a microsoft fan now
23:35:27 <ehird> ...
23:35:28 <ehird> why
23:35:51 <oklopol> microsoft songsmith has a feature where you can sing a song, and it generates the backgrounds automatically
23:36:00 <ehird> umm that's the whole point of songsmith
23:36:03 <ehird> retard for brains
23:36:04 <ehird> :P
23:36:25 <oklopol> mmkay, i thought it was a garageband replica.
23:36:33 <oklopol> but that's kinda beside the point, holy shit that's cool
23:36:45 <ehird> it's also worthless
23:36:47 <ehird> it's shite :D
23:36:58 <oklopol> shite as in how?
23:37:04 <ehird> as in... it works terribly
23:37:08 <oklopol> i've heard three songs
23:37:25 <oklopol> one failed, two were just fine
23:37:38 <oklopol> i don't think a human could do better
23:37:39 <ehird> oklopol: http://www.youtube.com/watch?v=k8GIwFkIuP8
23:39:30 <oklopol> and that's bad?
23:39:43 <ehird> dude are you blind and deaf
23:39:48 <ehird> that advert is awful personified
23:40:00 <oklopol> sounds absolutely perfect to me, which chord sounds bad exactly?
23:40:06 <ehird> i sense sarcasm
23:40:10 <oklopol> yeah the advert is stupid
23:40:11 <oklopol> so?
23:40:19 <oklopol> that's kinda beside the point
23:40:22 <ehird> http://www.youtube.com/watch?v=j7qyjLuWVU8
23:40:22 -!- FireFly has quit ("Later").
23:40:58 -!- BeholdMyGlory has quit (Remote closed the connection).
23:41:16 <oklopol> i'd just heard existing songs backgrounded by it, in britney's toxic it actually failed pretty badly.
23:41:41 <ehird> oklopol: try this
23:41:41 <ehird> http://music.metafilter.com/2943/Runnin-With-The-Songsmith
23:42:45 <oklopol> yeah that fails too
23:43:11 <oklopol> the verse that is, the chords fit the screams pretty well though
23:43:50 <oklopol> but who cares if it can't do songs where the singer sounds like a tractor stuck in mud
23:44:13 <oklopol> i doubt i could make good backgrounds for that, without listening to the original first
23:44:50 <oklopol> i can't believe people don't see how great that is
23:45:32 <ehird> dude you're fucking deaf
23:45:36 <ehird> lament: oklopol likes songsmith
23:45:42 <ehird> kick, ban
23:45:46 <oklopol> 8|
23:46:00 <oklopol> http://www.youtube.com/watch?v=22AWPW5s4EA <<< example of a perfect fit
23:46:00 <lament> kick whom? ban whom?
23:46:08 <oklopol> lament: me, i like songsmith
23:46:15 <oklopol> in fact, i consider it absolutely amazing.
23:46:27 <lament> but songsmith is by microsoft research
23:46:31 <lament> and haskell is by microsoft research
23:46:39 <lament> guilt by association! oh noes!
23:46:40 <ehird> lament: yeah but it's songsmith
23:46:46 <lament> ehird: you like haskell!
23:46:50 <oklopol> okay, it fails further down the road.
23:46:52 <ehird> songsmith, man
23:46:53 <lament> therefore you like songsmith!
23:46:57 <lament> kick, ban
23:47:00 <oklopol> but still, not bad.
23:47:07 <ehird> lament: haskell existed before MS research sucked up spj
23:47:25 <lament> they probably got songsmith from somewhere too
23:47:26 <oklopol> lament: please give sensical comments, as i'm thinking you might actually agree with me, not being a retard.
23:47:40 <ehird> lament: nope
23:47:43 <ehird> team at MS research
23:47:43 <lament> oklopol: i've never seen any songsmith videos
23:47:45 <ehird> I read their freaking forums
23:47:48 <lament> oklopol: and i'm at work so i can't watch them
23:47:54 <lament> (right now)
23:48:03 <ehird> lament: they're awful. bastardizing music. kickban oklopol quick >:|
23:48:06 <lament> ehird: you read songsmith forums?
23:48:12 <ehird> i did when I found out about it
23:48:15 <oklopol> lament: please comment on it when you can, you're the only human i know who knows both computers and music
23:48:25 <lament> ehird: i think i should get an ircop to ban you from the network!
23:48:29 <ehird> http://www.youtube.com/watch?v=uBajcshfTTM
23:48:41 <lament> oklopol: i think it's awesome!
23:48:46 <lament> but i still haven't seen any videos
23:50:00 <oklopol> lament: well, all you really need to know is it makes backgrounds given just the song track - and it actually does it well in some cases.
23:50:10 <lament> amazing
23:50:22 <ehird> lament you like classical
23:50:25 <ehird> you cannot possibly like songsmith
23:50:29 <oklopol> i mean as well as an average songmaker.
23:50:45 <lament> ehird: at least i don't read their forums, fanboi!
23:50:50 <oklopol> it comes up with the same kinda stuff i would come up with, if i just started backing up a singer.
23:50:54 <ehird> lol
23:51:32 <oklopol> lament: please leave work so you can listen and comment.
23:51:50 <ehird> http://www.youtube.com/watch?v=2-BZfFakpzc
23:53:02 <oklopol> wow
23:53:24 <oklopol> i don't remember ever being this amazed at a program
23:54:14 <ehird> oklopol i so hope you're drunk or something
23:54:15 <ehird> :D
23:55:00 <oklopol> i hope you're being annoying just to be annoying
23:55:09 <ehird> :P
23:55:25 <ehird> oklopol: http://www.youtube.com/watch?v=ypycpKQxXR0&feature=PlayList&p=33C9533F899548DD&playnext=1&index=3
23:57:36 <ehird> http://www.youtube.com/watch?v=e1e_h1OJfS4 Wow, it actually improves oasis
23:57:53 <oklopol> oh my god, transposition.
23:58:17 <oklopol> amazing how well it actually understands western song structure
23:58:30 <ehird> understands = was hardcoded in :P
23:58:55 <oklopol> that's possible too, and that might be simpler to do than i think, just haven't heard anyone do it before.
23:59:05 <ehird> similar products exist.
23:59:15 <oklopol> as good?
23:59:42 <oklopol> would love to hear
23:59:43 <ehird> better
23:59:44 <ehird> :P
23:59:46 <oklopol> link
23:59:46 <ehird> but they cost a lot.
23:59:50 <ehird> band in a box, is one
23:59:53 <ehird> songsmith is based on it
←2009-02-04 2009-02-05 2009-02-06→ ↑2009 ↑all