00:01:22 <CakeProphet> oklopol: like... introspection of code behavior?
00:05:22 -!- RedDak has quit (Read error: 104 (Connection reset by peer)).
00:19:08 -!- tusho has quit.
00:47:43 <pikhq> Hmm. Question: should I cease my current "stuck in the mountains, not shaved for weeks" look and go back to my usual goatee?
00:49:11 <oklopol> i just mean an object, when created, would get to know if it's only used in simple ways
00:49:20 <psygnisfive> oklopol your girlfriend is interrogating me! :(
00:49:55 <oklopol> pikhq: keep the current one
00:50:26 -!- bwr has joined.
00:50:28 <pikhq> CakeProphet: But I like having a goatee.
00:50:28 <oklopol> i think that might be interesting.
00:50:54 <CakeProphet> pikhq: trimming does not require the losing of a goatee.
00:50:55 <oklopol> and i always like languages hanging on the edge of being impossible to implement :D
00:51:14 <CakeProphet> it just wouldn't straightforward, you know.
00:51:17 <oklopol> CakeProphet: it is in general, yes
00:51:29 <oklopol> but in most cases the object would just get the "no idea how you're used" message
00:51:55 <CakeProphet> well, it depends on what kind of interpreter/compiler you have to.
00:52:00 <CakeProphet> if it's a single-pass interpreter, for example.
00:52:08 <pikhq> CakeProphet: You suggested trimming, but keeping my current look. Which means: trimmed full beard, not a goatee. :p
00:52:11 <CakeProphet> then, I think, you'd need to initialize it at that state.
00:52:42 <oklopol> CakeProphet: i'm not following you.
00:53:01 <oklopol> it would have to be compiled.
00:53:15 <CakeProphet> well... you can't know how an object is used at the point its created... so it would be impossible to give it anything but a don't know message.
00:53:31 <oklopol> right, yeah, that's not possible.
00:53:40 <oklopol> but it would most likely be compiled
00:53:49 <CakeProphet> if you compile... or do something inbetween... then you can analyze how it is used later... before its created at runtime.
00:54:09 <oklopol> i think i'll try adding that to straw
00:54:20 <oklopol> with that and the mutation stuff, it would actually be quite a unique piece of art.
00:55:07 <oklopol> no straw lesson will be given today, in case someone would've been interested
00:55:18 <CakeProphet> ...why do I not have links to any of your language specs.
00:55:30 <oklopol> because i rarely spec them
00:56:05 <oklopol> perhaps i could spec straw up at least a bit.
00:58:13 <bwr> is there a link to straw?
00:58:38 <oklopol> there is a link to one short example, but i'm afraid even that is a bit outdated
00:58:52 <oklopol> www.vjn.fi/oklopol/straw.txt
00:59:00 <oklopol> it's a lot more static nowadays
00:59:47 <oklopol> but, one of the fun things is already there
01:00:08 <bwr> what's that
01:00:33 <oklopol> basically, if you do "n = 1", you can add 1 to n so that n changes value by doing n._inc
01:00:51 <oklopol> and if you did n.inc, you'd get n+1 without modifying n
01:01:13 <oklopol> and the fun part is, you can just write the code to do either of these two, and you can immediately use both ways
01:01:53 <oklopol> compile-time checks for making sure methods without an underscore don't modify the program state
01:02:05 <bwr> oh that's neat
01:02:27 <oklopol> yeah, but that's basically the tip of the iceberg, i have quite a lot of ideas for this one
01:02:50 <oklopol> been piling up the ideas too practical for esolangs into it :P
01:04:12 <oklopol> i'll try to write the AverageKeeper class and see if i find a nice way to do the "optimization hints"
01:04:28 <CakeProphet> I have a affinity with languages that use their source code as their primary data structure.
01:04:42 <bwr> like lisp?
01:04:49 <oklopol> bwr: lisp does not do that
01:05:00 <bwr> what do you mean then
01:05:15 <oklopol> say befunge without a stack, and just p/g
01:05:29 <bwr> yea, i've used befunge
01:05:34 <bwr> but i always used the stack
01:05:52 <oklopol> well p and g set/read a value to/from the program space
01:06:02 <bwr> i get it now
01:06:20 <oklopol> basically, that any conceptual memory and instruction pointers would exist in the same space
01:06:28 <oklopol> the von neumann structure i guess
01:06:29 <CakeProphet> dupdog literally just used the entire source code
01:06:33 <bwr> befunge is the one esolang i have done anything with :P it was fun
01:06:39 -!- garotosopa has joined.
01:06:52 <CakeProphet> I'd like something more structured though.
01:07:02 <oklopol> befunge is quite nice to program, yes
01:07:15 -!- garotosopa has left (?).
01:11:58 <CakeProphet> ggggggggggggggggggggggggg?(gggggggg?gggggggggggggggg?ggggggggggggg?)
01:13:32 <CakeProphet> if the instructions in codehere manipulated the code in codethere.
01:21:14 <CakeProphet> the brackets tell you which instructions modify what.
01:21:31 <bwr> are there any befunge compilers that actually compile? the only ones i've seen wrap the befunge in a C interpreter and then you compile it.
01:21:52 <bwr> CakeProphet: that's weird
01:22:01 <oklopol> bwr: it's not really compilable
01:22:23 <CakeProphet> bwr, ...thank you. that is now my cue that I've found a decent idea.
01:22:23 <oklopol> because you have such immense control over the codespace as a 2d structure
01:23:06 <bwr> that doesn't seem like that big of a problem
01:23:45 <bwr> CakeProphet: i'll be interested to see how that works
01:24:20 <oklopol> well at the very least you need to have a compiler in the executable, and you have to have the source there too, in some form, as the code can be changed on the fly.
01:24:34 <CakeProphet> it also gives you the ability to have binary instructions... sort of.
01:24:51 <oklopol> a befunge program can read any byte in the source, so the source must actually exist at runtime.
01:26:01 <CakeProphet> like "this instruction does such and such if the source code being modified, source code A, contains more instructions than the source code that A modified, source code B"
01:26:56 <bwr> i am confused
01:27:58 <CakeProphet> and some other instructions that reverse words
01:28:56 <CakeProphet> and something like la da la da > de do de do <
01:30:45 * CakeProphet is trying to find the eureka moment... where it figures out how everything will become usable.
01:43:47 <oklopol> http://www.vjn.fi/pb/p565622232.txt straw is getting a bit more oklo :)
01:43:59 <oklopol> the rewriting syntax will probably change
01:44:54 <oklopol> #calls {{ this.getavg( ?s ) }} is the interesting part, special keyword that kinda searches the code for a certain expression
01:45:31 <oklopol> so you'd get a list of calls to the method calculating the average
01:45:42 <oklopol> isn't conceptually all that pretty, but that's not my point anyway here
01:46:17 <oklopol> i should unify the syntax a bit though
01:46:30 <oklopol> all kinds of prefixes and brackets flying about
01:47:17 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
01:51:57 <oklopol> http://www.vjn.fi/pb/p464321425.txt dropped the highlevel rewriting, <<<...>>> is now simply a list of occurrances
01:52:24 <oklopol> except as a right-side of a substitution, where it is kinda highlevel again :)
01:53:42 <oklopol> actually @ "dotPrefixed.setvar = <<< this.?var = ?var >>>" the <<<...>>> notates a simple quoted piece of code
01:53:47 -!- cherez has joined.
01:53:50 <oklopol> so guess i should use a different bracket type
01:54:03 -!- cherez has quit (Client Quit).
01:54:23 <oklopol> basically i'm just defining here that you can use the syntax .var in a method's parameter list to set a field
01:56:43 <oklopol> *** separates the two tiers, kinda, if you have n tiers, where n!=1, the first two would be parsed, then the first one run, but all <<<...>>>'s referring to the second code
01:57:01 <oklopol> so you can define new syntax in an imperative fashion in the language itself
01:57:18 <oklopol> this is all a bit ugly in a language where syntax isn't initially simple
01:59:05 -!- cherez has joined.
03:05:50 -!- oerjan has joined.
03:31:46 <Slereah__> I don't even know where the curly brackets come from.
03:32:06 <Slereah__> They're supposed to enclose multiple lines :o
03:32:20 <Slereah__> Where do those one line curly brackets come from?
03:36:12 <oerjan> sure it was, before the mutations started
03:37:47 <oerjan> ah it is all clear now. evolution is the work of satan. we were really supposed to all be happy single-celled bacteria
03:38:06 <CakeProphet> ....why does everyone care about terseness
03:38:18 <Slereah__> WHAT'S WRONG WITH AUTOREPLICATING RNA STRANDS?
03:38:22 <oerjan> no, bacteria. the singular is bacterium.
03:38:47 <oklopol> what the fuck http://www.youtube.com/watch?v=Cg1e77lRRjk&NR=1
03:38:49 <oerjan> those were just the prototype
03:39:49 <oklopol> this girl seriously needs a timecube of her own
03:40:20 -!- lilja has quit ("KVIrc 3.2.0 'Realia'").
03:40:33 <Slereah__> I can't understand anything she says
03:40:34 <psygnisfive> she might be just talking about vedic junk
03:40:46 <Slereah__> SPEAK WITH ONLY ONE VOICE, CRAZY WOMAN
03:40:47 <oerjan> Slereah__: she could be just using the Royal We
03:40:53 <oklopol> what is this vedic i've been hearing for the past 5 minutes?
03:41:09 <CakeProphet> "dude, if you start at 1 and break a circle into 9 equal parts. 0 IS 9"
03:41:10 <oerjan> vedic == ancient indian, essentially
03:41:13 <Slereah__> Wasn't there a story about Wiener and a squiggle?
03:41:45 <Slereah__> Like he was with a collegue in front of a blackboard with just a squiggly line on it
03:42:09 <oerjan> yes, modulo 9, 9 is a lot like 0
03:42:11 <Slereah__> And they were very absorbed by the reflection
03:42:26 <Slereah__> And no one ever knew what it meants :o
03:42:41 <Slereah__> Of course, it's hard to know with Wiener's anecdotes
03:42:57 <oklopol> i think i should devote my life to killing people who don't know the difference between a number and its base 10 representation.
03:43:14 <oklopol> they just get me so fucking angry
03:43:22 <oerjan> was wiener's famous dachshound involved?
03:43:57 <Slereah__> Just tell that exact same story around you
03:44:32 <oklopol> i think i should do a sleep to now sleep. ->
03:44:50 <oerjan> that may be for the best
03:48:43 <oklopol> fresh batch coming soon just ya wait ::::)
03:49:05 <oklopol> but seriously, i sleep now, and no, you will not be getting naked pictures tonight :P
03:49:20 * oerjan is reminded of a dilbert cartoon where dilbert cuddles himself in front of camera to convince his mother he has a girlfriend
03:53:48 <Slereah__> There was also an episode of Dilbert.
03:54:02 <Slereah__> And then you see Asok hugging himself.
04:01:33 <oklopol> lol, once again some old math problem i heard ages ago pops into my head just as i'm about to sleep, and i just solve it instantly
04:01:52 <oklopol> in case i recall that one problem correctly, would have to ask ihope
04:03:44 <oklopol> i think it was like, basically, you have a 2d tilemap, cell at x,y connected to those (x',y') with abs(x-x')==1 xor abs(y-y')==1
04:04:19 <oklopol> you have to find the biggest structure such that by removing a cell there are no connected structures of size n or bigger
04:05:12 <oklopol> "2d tilemap, cell at x,y connected to those (x',y') with abs(x-x')==1 xor abs(y-y')==1" was a very weird explanation.
04:05:40 <oklopol> so that nodes are connected to their four neighbors
04:06:51 <oklopol> he was wondering whether the obvious solution, a cross of height and width 2n+1
04:07:09 <oklopol> well, it's clear we can only separate four structures with removing one node
04:07:31 <oklopol> you have an initial connected structure
04:07:49 <oklopol> such that there are no connected structures of size n or bigger anymore
04:07:58 <oklopol> the problem is to find the biggest such structure
04:08:33 <psygnisfive> i mean, all we have i think so far is just a square grid and "maximize the size of this square grid"
04:08:42 <oklopol> you need to be able to split it into structures less than n in size by removing some node
04:09:30 <psygnisfive> your explanation is whats hard, but thats ok. go to sleep.
04:10:10 <oklopol> the problem: for some n you need to find the largest connected structure such that there is a node whose removal will split the structure into structures less than n in size
04:10:32 <oklopol> algorithm is a function from an integer n to such a structure
04:10:48 <psygnisfive> and what determines what n is? and what determines the shape of the structure? etc
04:10:50 <oklopol> the algorithm we're looking for
04:11:02 <oklopol> psygnisfive: you need to find it for any given n
04:11:13 <psygnisfive> do all nodes need to be connected to 4 other nodes?
04:11:26 <oklopol> no, just some structure consisting of nodes on a grid like this
04:12:16 <psygnisfive> ok, take an infinitely large square grid and remove two intersecting axes, and add a node that connects the four at the corners
04:12:27 <oklopol> the problem: for all n you need to find the largest connected structure such that there is a node whose removal will split the structure into structures less than n in size
04:12:42 <psygnisfive> granted, the substructures are also i guess infinitely large
04:12:55 <psygnisfive> but it works for all squares that could form those corners
04:13:07 <oklopol> psygnisfive: so what do you remove to get it to split into structures less than n in size?
04:13:19 <oklopol> if you remove the middle cell, you get four infinite structures
04:13:28 <oklopol> n need not be infinity, that's one of the trivial cases
04:13:47 <psygnisfive> but you do split it into structures smaller than the original one
04:13:49 -!- vollmond has joined.
04:14:19 <psygnisfive> because obviously you can just add more nodes to any of the substructures so long as they dont connect the substructures
04:14:24 <oklopol> there is no largest such structure? there are multiple equally good structures in size.
04:14:39 <psygnisfive> take four squares and connect them at the corner
04:14:51 <psygnisfive> if n is three you have what sort of structure?
04:14:57 <oklopol> you saying you can have the initial structure infinite?
04:15:11 <oklopol> that's not the biggest you can do
04:15:27 <psygnisfive> well let me just make sure im getting this correct
04:15:51 <psygnisfive> if n is three, what is an example of such a structure
04:16:19 <psygnisfive> i need to see an example of possible structures
04:16:25 <oklopol> http://www.vjn.fi/pb/p333224163.txt
04:16:34 <oklopol> this is the largest possible
04:16:55 <oklopol> because by removing the middle you get four structures of size 2
04:17:07 <oklopol> you define largest by the fact there is no larger one.
04:17:26 <oklopol> the problem was just proving this, which is of course trivial
04:18:01 <oklopol> trivial, but still scary when it just slams into your face when you're trying to sleep :P
04:18:18 <psygnisfive> so im not entirely sure i follow still but
04:18:50 <oklopol> the problem: for all n you need to find the largest connected structure such that there is a node whose removal will split the structure into structures less than n in size
04:19:01 <oklopol> because it can be any integer
04:19:04 <psygnisfive> if thats the case then the largest structure will always be (n-1)*4+1 in size
04:19:25 <oklopol> the problem was just proving that
04:19:41 <oklopol> err that there's no bigger one
04:19:45 <psygnisfive> the middle node divides the single node into at most four smaller nodes
04:20:01 <psygnisfive> since no node can connect to more than 4 other nodes
04:20:11 <psygnisfive> thus the biggest would have 4 substructures as a result
04:20:21 <psygnisfive> since no substructure can have more than n nodes
04:20:30 <oklopol> yes, the gist is simply that removing a node that can have at most 4 edges from it to others can only split the graph into 4 subgraphs
04:20:40 <psygnisfive> thus each of the four substructures has n-1 nodes
04:21:12 <psygnisfive> i dont see why this is an interesting problem
04:21:30 <oklopol> i can give you the other one i solved
04:21:35 <oklopol> i wasn't trying to solve it
04:21:43 <oerjan> because otherwise he won't be _able_ to sleep
04:21:51 <psygnisfive> you werent trying to but you did solve it? :P
04:21:52 <oklopol> i wasn't trying to solve it, i just solved it
04:21:54 -!- Corun has quit ("This computer has gone to sleep").
04:22:00 <oklopol> the other one is more interesting
04:22:07 <oerjan> also, after this mess i'm not sure if he will be able to anyhow
04:23:12 <oerjan> well sure, for me it's morning so i don't need to sleep...
04:23:13 <oklopol> so, at the topmost row of the matrix you have numbered nodes from 1 to N
04:23:59 <oklopol> now, you take kinda steps towards the bottom
04:24:16 <oklopol> so that each of these numbers can move either left or right one step each time you go one row down
04:24:40 <oklopol> but, no two nodes with the adjacent numbers can be more than 1 column apart, ever
04:24:48 <oklopol> so you have kinda like a chain
04:25:09 <oerjan> you mean separated by more than one column?
04:25:13 <oklopol> to prove that there is no set of movements that makes this chain move away from the matric
04:25:36 <oklopol> you can move out of it just by moving one right from the right edge or the other way around
04:25:49 <oklopol> matrix was just an explanation of the form, not anything mathematical.
04:26:39 <oerjan> can a number stay in place?
04:26:52 <oklopol> it can move right, left, or stay put
04:27:08 <oerjan> and all numbers move or stay simultaneously at each step
04:27:09 <oklopol> two can be on the same spot.
04:27:24 <oklopol> just that you can't have adjacent numbers two apart
04:27:41 <oklopol> otherwise everything can move freely, although at most one to either direction on each step
04:28:00 <psygnisfive> no two neighboring numbers can different by more than 1
04:28:11 <oerjan> what is preventing you from eventually merging all numbers into one spot then?
04:28:20 <oklopol> but that doesn't solve it.
04:28:29 <psygnisfive> oerjan: all numbers move simultaneously in each row
04:28:33 <oklopol> the goal is to get them all out of the matrix before the last row
04:28:35 <oerjan> and then move them in tandem whereever you want
04:28:58 <oklopol> oerjan: there are only N rows
04:29:04 <oerjan> oh so you have a limited number of steps
04:29:04 <psygnisfive> ah so you mean move them all N to the left or right in less than N steps
04:29:39 <oerjan> i see. 1 doesn't have time to leave right, N doesn't have time to leave left?
04:29:51 <oklopol> oerjan: no, they can leave at either end
04:29:56 <psygnisfive> move an object left or right by a total of N places in under N moves, moving only one place at a time
04:30:06 <oerjan> um then what's the problem?
04:30:11 <oklopol> psygnisfive: err not exactly
04:30:17 <oerjan> move N left, move N and N-1 left, and so on
04:30:25 <oklopol> if there wasn't the constraint that adjacent numbers need to be adjacent
04:30:27 <oerjan> if there is time enough
04:30:36 <oklopol> you could just move half out from the left, and half out the rightt
04:30:57 <psygnisfive> but i thought you said the whole row had to move as one?
04:30:58 <oerjan> oklopol: what is preventing you from moving all left as fast as you can?
04:31:10 <oklopol> oerjan: you won't get the last one out
04:31:32 <oerjan> oklopol: in other words, there isn't time for N to leave left, which i already asked
04:31:54 <oerjan> i thought you said there was
04:32:07 <oklopol> err i prolly misunderstood
04:32:25 <oerjan> in other words, 1 _must_ leave leftwards, N _must_ leave rightwards.
04:32:32 <psygnisfive> the minimum number of steps is Ceiling(N/2)
04:33:06 <oklopol> psygnisfive: you won't get the last one out
04:33:16 <oerjan> this implies at least _some_ adjecent numbers must leave in different places, a contradiction
04:34:28 <psygnisfive> and N-m steps if you go in the other direction
04:36:13 <oklopol> psygnisfive: so far so good
04:36:43 <psygnisfive> for item N/2 and N/2+1 for an even N, the number of steps left for item N/2 is the same as the number of steps right for item N/2+1
04:37:21 -!- vollmond has quit (Nick collision from services.).
04:37:45 <psygnisfive> so for even N, after N/2, going left will increase the number of steps
04:37:48 <oklopol> oerjan: anyway that was, for some reason, confusing to me when i first heard it... although probably i was just not really familiar with the concept of "knowing, yet proving"
04:38:03 <oklopol> not confusing, but i didn't come up with a proof
04:38:16 <psygnisfive> for N/2 for odd N, it doesnt matter which direction you choose since its in the middle.
04:38:28 <psygnisfive> tho that explanation is painful and unnecessary.
04:38:58 <oklopol> psygnisfive: err was that the proof?
04:39:16 <oklopol> err okay, i don't see a proof there
04:39:50 <oklopol> it seems you've proved for all N, for any item in the toprow, there is a way to get it out in N-1 steps
04:40:07 <psygnisfive> i proved that its possible to get it out in Ceil(N/2) steps
04:40:33 <psygnisfive> for items < N/2, move left, for items > N/2 move right
04:40:55 <oklopol> first of all you *cannot* solve that
04:41:04 <oklopol> this is about proving it's impossible
04:41:26 <oklopol> the constraint that two adjacent numbers cannot be apart more than one column is there.
04:41:45 <psygnisfive> ok you need to go back and specify what that means i think
04:41:56 <psygnisfive> because your previous explanation permitted what i just said.
04:42:24 <oklopol> where there are two indices A and B such that |A-B|>1 and |array[A]-array[B]|=1
04:42:53 <oklopol> all adjacent numbers need to be at most one column apart
04:43:04 <psygnisfive> but what does adjacent mean in this context.
04:43:52 <oklopol> yeah, it's not, the point was to prove tat
04:44:10 <psygnisfive> well that proof was part of the set up for the other longer one i did :P
04:44:25 <oklopol> err can you show it again?
04:44:51 <psygnisfive> moving left will take m steps since its m from the edge
04:45:26 <psygnisfive> given that you cannot separate the items but more than 1 space
04:45:29 <oklopol> i like interrupting a long explanation like that, just continue :)
04:46:09 <psygnisfive> you cannot spread the items in any way that leaves a gap N in size between two items
04:46:16 <psygnisfive> meaning spreading them all apart will do no good
04:46:32 <psygnisfive> because atleast one will still be in the square
04:46:57 <psygnisfive> thus only moving them in the same direction is a way of getting them out of the square
04:47:12 <psygnisfive> and that means that it would take N steps for item N
04:47:30 <psygnisfive> which violates the constraint that it be done in <N steps
04:48:25 <oklopol> yes, the gist is simply realizing to solve this you would need to get some adjacent numbers out the opposite ends leading to a contradiction, as oerjan said
04:48:41 <psygnisfive> i mean, its trivial to understand visually.
04:49:36 <psygnisfive> meaning that with no spreading, item N will still be inside the square
04:49:44 <psygnisfive> with spreading, item N/2 will still be in the square
04:50:03 <oklopol> psygnisfive: i'd say the mathematical way to say it is quite simple
04:50:36 <oklopol> well that's one way to see it
04:51:01 <psygnisfive> the extreme possibilities cant solve it, and therefore no intermediate possibilities can.
04:51:54 <oklopol> there's no difference between a formal proof and an intuitive one, except that the intuitive one can rely on construct that need not necessarily exist
04:52:04 <oklopol> but yeah, this one is trivial to see, and trivial to put to maths
04:52:07 <psygnisfive> that, and formal proofs are a bit more rigorous
04:52:32 <psygnisfive> but i dont see why this is an interesting problem.
04:52:50 <oklopol> this is more the grunt work exercise, in your terms, yes
04:53:08 <oklopol> perhaps i should, at some point
04:53:13 <oklopol> it's just i'm not at all tired
04:55:52 <oklopol> also the only software i had for the webcam broke
04:56:31 <oklopol> i'm on skype, but that's not gonna happen :P
05:01:17 -!- poiuy_qwert has joined.
05:11:47 <psygnisfive> something with a completely different perspective on computation
05:15:45 <oerjan> sometimes, xkcd is ... weird.
05:15:56 <oerjan> that's one reason why we love it, i assume
05:16:09 <psygnisfive> i mean, i know it HAS, most new paradigms are like that
05:16:23 <psygnisfive> because i like weird and different models of computation
05:16:57 <oklopol> psygnisfive: it was not a tease, i was actually going to show you my face on webcam.
05:17:12 <oklopol> it's just my computer crashed for 15 minutes
05:18:04 -!- pikhq has quit ("leaving").
05:18:15 <oklopol> for some reason this program i used to use the webcam with, or used once trying to check if it works, crashed when i retried it a while ago
05:18:21 <oklopol> crashing the whole computer for ages
05:19:03 <oklopol> now, at first it seemed that if skyped does it also, then might be something @ my configurations, and vista's just taking its usual approach to that kinda thing
05:19:37 <oklopol> skype opened the fucking program that crashes this computer when opened the webcam feed with, just after i'd gotten it to quit
05:19:56 <oklopol> i don't know whether it's skype, or just trying to access the webcam
05:20:22 <oklopol> nah, i can do most things with my current set.
05:20:36 <oklopol> watch videos, irc and code
05:21:03 <oklopol> not sure if i can live with that, need to ponder the issue
05:21:24 <oklopol> got pretty tired looking at the black screen
05:53:18 -!- oerjan has quit ("Omnibus").
06:15:33 <CakeProphet> I would not expect so much win from a pop type.
06:18:08 -!- olsner has joined.
06:19:21 -!- GreaseMonkey has joined.
07:31:05 -!- olsner has quit ("Leaving").
07:54:17 <AnMaster> <oklopol> anyway i doubt AnMaster knows even all european capitals, just scandinavia + the ones that are historically relevant
07:54:36 <AnMaster> Madrid, Paris, Rome, Berlin, London, what more do you want?
07:56:21 <AnMaster> and of course Oslo, Helsinki, Stockholm, Copenhagen
07:56:54 <AnMaster> Warsawa (or is it Warsaw in English?)
07:57:33 <AnMaster> Hm Turkey, that would be Ankara
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:07:06 <fizzie> You've pretty much left most of Eastern Europe out. There's at least Tallinn, Riga, Vilnius, Budapest, Prague, Bucharest. And that's very much not an exhaustive list. (Also at least Vienna, Bern missing in Western/Central Europe.)
08:23:54 -!- poiuy_qwert has quit.
08:36:49 -!- deveah has joined.
08:44:53 -!- Slereah_ has joined.
08:52:11 <GregorR> AnMaster, fizzie: Now list all the state capitals of the US states and Canadian provinces :P
09:02:14 <fizzie> No idea about those. My knowledge of European geography is poor enough; of the other continents it's pretty much non-existent.
09:03:16 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
10:19:07 <AnMaster> I can do a bit better in Asia I think
10:19:40 <AnMaster> Seul (English spelling?), Tokyo, Bejing (again spelling, it is spelled "Peking" in Swedish...)
10:20:36 <AnMaster> Singapore, or is that part of China nowdays?
10:21:37 <AnMaster> Kuala Lumpur, Kathmandu, Islamabad
10:22:54 <AnMaster> Naypyidaw is Burma, not sure about spelling
10:24:29 <AnMaster> that's all in North America iirc
10:26:47 <AnMaster> Pretoria, Dakar, Dar es Salaam
10:31:42 -!- tusho has joined.
10:33:43 <Deewiant> Peking is valid in English as well, the more common is Beijing
10:34:13 <AnMaster> still I think I managed rather good
10:34:33 <AnMaster> compared to what most Americans manage about Europe
10:34:34 <Deewiant> don't know about that Burma one
10:34:49 <tusho> jesus christ AnMaster is still bitching about that?
10:35:03 <AnMaster> <GregorR> AnMaster, fizzie: Now list all the state capitals of the US states and Canadian provinces :P
10:35:27 <AnMaster> Deewiant, about the Burma one, I remember it from the news about the protests in Burma last year
10:35:28 <tusho> AnMaster: let's put it this way
10:35:34 <AnMaster> otherwise I wouldn't have known it
10:35:42 <tusho> knowledge about Sweden = isn't going to help anyone in the USA for shit
10:35:44 <AnMaster> tusho, I listed lots of capitals
10:36:03 <tusho> knowledge about USA for Swedes = helpful because it's one of the most powerful countries in the world and certainly the most noticable
10:36:14 <puzzlet> AnMaster: what's wrong with Sri Jayawardenapura-Kotte? ;)
10:36:29 <AnMaster> puzzlet, eh? don't think I know what that one is
10:36:43 <puzzlet> i've pasted that one from Wikipedia though
10:37:35 <tusho> AnMaster: see? You don't care that you know nothing about Sri Lanka.
10:37:38 <tusho> It's not relevant to you.
10:38:36 <tusho> Well don't call out on americans for not knowing much about Sweden. It's the same.
10:51:18 <tusho> http://en.wikipedia.org/wiki/Criticism_of_the_APL_programming_language
10:51:22 <tusho> http://en.wikipedia.org/wiki/APL
10:51:27 <tusho> http://en.wikipedia.org/wiki/APL_(programming_language)
10:52:35 -!- GreaseMonkey has quit ("HydraIRC -> http://google.com <- Go find something better").
11:19:56 <deveah> what's that s/foo/bar thing?
11:22:19 <tusho> deveah: look it up.
11:22:26 <tusho> http://en.wikipedia.org/wiki/Regular_expression
11:25:58 <oklopol> deveah: it's not just a regex
11:26:27 <oklopol> you find "from" from something someone said, usually the one doing the s thing, and replace it with "to"
11:26:45 <oklopol> so if i had typoed something to soemthnig there
11:27:21 <oklopol> s/a/b/ and s/a/b are both used
11:28:04 <oklopol> a can be any regexp, so you can do more complex stuff inside it to match something other than just a simple string, assuming your listeners aren't monkeys
11:34:02 -!- deveah has left (?).
12:03:05 -!- Sgeo has joined.
12:05:20 -!- sebbu has quit (Read error: 113 (No route to host)).
12:10:18 -!- sebbu has joined.
12:17:27 * Sgeo might get his computer back today!
12:18:11 * tusho might spam the same message in all channels today!
12:23:52 -!- Slereah__ has joined.
12:27:49 -!- tusho has quit ("And then-").
12:35:46 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
12:52:13 -!- Slereah_ has joined.
13:04:29 -!- tusho has joined.
13:10:26 -!- Corun has joined.
13:12:47 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
14:02:47 -!- Slereah__ has joined.
14:11:33 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
14:17:41 -!- Corun has quit ("This computer has gone to sleep").
14:25:20 -!- Corun has joined.
14:38:16 -!- ais523 has joined.
14:40:58 <Sgeo> WTF http://nethack.devnull.org/ why would a page give 400?
14:41:24 <psygnisfive> same reason all webpages would give a 400 error?
14:41:35 <tusho> WTF why would a page give a 404
14:41:40 <tusho> http response codes??
14:41:44 <tusho> why would you use those??
14:41:58 <Sgeo> tusho, why is it giving 400 not 404?
14:42:07 <tusho> Sgeo: Why is it giving 500 and not 404?
14:42:10 <tusho> Because they're different errors.
14:42:44 <Sgeo> But how is the browser trying to access it a 400? Isn't that for if I were to do ASDF instead of GET or somesuch thing?
14:43:04 <tusho> The server thinks the browser's request was bad.
14:43:23 <tusho> It's a server problem.
14:44:19 -!- pikhq has joined.
14:47:26 -!- ais523 has quit ("restarting X").
14:48:42 -!- ais523 has joined.
15:12:11 <tusho> ais523: seen the icfp entry in tex?
15:12:16 <tusho> http://sdh33b.blogspot.com/2008/07/icfp-contest-2008.html
15:12:25 <ais523> no, I haven't, but I knew it existed
15:14:04 -!- Corun has quit ("This computer has gone to sleep").
15:17:43 * pikhq groans while listening to people behind me updating a Mac. . .
15:18:07 <pikhq> You'd *think* that 'It Just Works' package management would be taken advantage of by Apple. . .
15:19:22 <tusho> pikhq: I've never had any problems with upgrading macs.
15:19:49 <pikhq> "We have to update foo, then bar, then baz, then qux..."
15:20:03 <psygnisfive> weird. what software are they talking about>
15:20:04 -!- tusho has quit ("And then-").
15:20:15 <pikhq> The OS, iTunes, Office, Firefox, etc.
15:20:29 <psygnisfive> the OS and iTunes updates are one click in software update
15:20:41 <psygnisfive> anything else is just software stuff external to it being a Mac.
15:20:51 <pikhq> Maybe I'm just spoiled by 'apt-get update&&apt-get upgrade' or 'emerge --sync&&emerge -avuDN world'.
15:21:14 <psygnisfive> i dont know how those word, so i cant comment.
15:21:19 <ais523> pikhq: it's even easier nowadays, you can do it from the GUI so you don't have to remember how apt-get works
15:21:36 <psygnisfive> i presume they update all apps that you have that are acquirable via apt-get?
15:21:45 <ais523> psygnisfive: that's it
15:21:51 <pikhq> They update every single program on a Linux box from the command line (the first is for Debian or Ubuntu, the second is for Gentoo).
15:21:54 <ais523> update lets you know which ones can be updated
15:21:57 <ais523> upgrade does the update
15:22:34 <pikhq> Hmm. Now, when was apt first written? '97?
15:22:36 <ais523> pikhq: actually, you don't need the first for ubuntu at all, it does the apt-get update automatically in the background as it doesn't change anything, and gives you an icon to click on to do the apt-get update if it's needed
15:22:43 <psygnisfive> dont know how well it'd work on a mac, tho, given that mac apps are all Cocoa
15:23:01 <psygnisfive> ive used apt-get on my mac but only for nix programs that never fucking work. :P
15:23:32 <psygnisfive> thats one reason i do my best to avoid linux. as much as i like linux, you have to be torvalds to get the damn thing to work.
15:23:38 <ais523> psygnisfive: not any more
15:23:53 <ais523> well, I'm not Torvalds
15:23:59 <ais523> I use the command line because I like it
15:24:05 <psygnisfive> ubuntu comes with no disk partitioner? what nonsense is this
15:24:05 <ais523> but I've done things GUI-style without trouble too
15:24:07 <oklopol> ubuntu was the easiest os i've ever seen
15:24:13 <psygnisfive> and then to install a partitioner, forget it
15:24:14 <ais523> psygnisfive: it has a disk partitioner in the install
15:24:22 <pikhq> ... But it *does* have a partitioner.
15:24:24 <oklopol> anything you wanna do, just ask here and write a line to the console :)
15:24:34 <psygnisfive> ais: i wasn't looking for one on the install
15:24:52 <pikhq> Gparted on Ubuntu, Qtparted on Kubuntu.
15:25:10 <psygnisfive> the ubuntu website provided instructions for installing gparted
15:25:14 <pikhq> Or, if you're willing to use the command line, fdisk.
15:25:31 <pikhq> Um. . . There shouldn't need to be instructions.
15:25:42 <pikhq> "In the package manager: install gparted."
15:26:54 <pikhq> If Google is down, then I think we have bigger issues to worry about.
15:27:02 <pikhq> Such as the nuking of California.
15:28:02 <pikhq> The command line, in theory, is not that hard to use on Linux. . .
15:28:09 <pikhq> Especially for package installation.
15:28:45 <pikhq> To install gparted on Ubuntu from the command line, for example? : sudo apt-get install gparted
15:28:49 <psygnisfive> i have a problem with the shit that doesnt work
15:29:10 <psygnisfive> which in my experience seems to be every god damned thing that requires the CL
15:29:33 <ais523> I'm just trying through the GUI
15:29:37 <ais523> Applications | Add/Remove
15:29:41 <ais523> and I searched for "partition"
15:29:53 <ais523> and "GNOME Partition Editor" was the only thing the search turned up
15:30:00 <ais523> I could just click on it and click on install now, and it would work
15:30:14 <psygnisfive> i didnt even know you could add programs like that. :D
15:30:46 <ais523> well, on Windows, Add/Remove only removes stuff
15:30:54 <ais523> on Ubuntu, and many other Linux distros, it adds stuff too
15:31:01 <ais523> and it has a pretty good range of things to add
15:31:09 <ais523> ofc behind the scenes it just runs the relevant apt-gets
15:31:14 <psygnisfive> im used to just downloading apps from their makers website.
15:31:17 <ais523> and gives you a pretty GUI for them
15:31:36 <ais523> psygnisfive: the issue with that is you end up with about 20 different auto-updaters in your system tray; on Ubuntu there's only 1
15:32:18 <psygnisfive> maybe ive been trying to install apps all wrong
15:32:33 <psygnisfive> i usually just follow the CL instructions on the netosphere
15:32:51 -!- Corun has joined.
15:34:11 <pikhq> If it's not of the form 'sudo apt-get install package-name', then the CL instructions are shit. Of course, the GUI is fairly handy if you're not a command line guru.
15:34:55 <psygnisfive> its the same if i compile it myself too tho.
15:34:59 -!- tusho has joined.
15:35:01 <ais523> psygnisfive: the command-line is normally harder if you're not used to it, but faster if you are
15:35:10 <psygnisfive> i tried installing gparted and i got some dependency errors
15:35:28 <psygnisfive> then i tried some other method, i forget what, and it worked no errors
15:35:31 <pikhq> ... Dependency *errors*? WTF?!?
15:35:47 <psygnisfive> i followed the instructions and it started installing JAVA.
15:35:49 <ais523> normally that means it depends on things that you told it not to download
15:35:51 <pikhq> Whatever instructions you were using were shit.
15:36:09 <psygnisfive> i think they were the instructions from the gparted people ;_;
15:36:22 <psygnisfive> well, i say "people" like there is such a thing
15:36:38 <tusho> ais523: I am running a script that tries to find a self-hashing crc32
15:36:46 <tusho> Until x == crc32(x)
15:36:54 <ais523> what if that enters a loop?
15:36:55 <tusho> Is this going to terminate in my lifetime?
15:37:14 <ais523> well, at least CRC32's reverse-engineerable
15:37:14 <tusho> psygnisfive: Uh, no.
15:37:18 <tusho> It just depends on CRC32's definition
15:37:26 <ais523> so you'd just have to solve a degree-33 polynomial
15:37:28 <tusho> We can make a pretty good guess.
15:37:36 <tusho> ais523: I just wanted an intuition, sheesh
15:37:37 <ais523> tusho: CRC32's a polynomial in base 2
15:39:42 <tusho> ais523: any intuitions?
15:39:54 <tusho> it's been going for a while
15:40:10 <ais523> tusho: it's very likely to end up in a loop, I think
15:42:40 * tusho considers a good hashing function to find a self-hash in
15:43:04 -!- Dewio has joined.
15:45:45 <AnMaster> ais523, updated yet? I'm working on a Def-BF implementation in C now
15:45:51 <ais523> AnMaster: pushing write now
15:46:07 <AnMaster> it will follow the standard. but... it will do it completely strange
15:46:12 <ais523> although I haven't added all those warnings you wanted, or unwarninged my own code
15:46:52 <AnMaster> ais523, if you were to parse a language like C, what would you use? I have no experience with flex or bison or such
15:47:05 <ais523> AnMaster: I'd use flex/bison
15:47:12 <ais523> or lex/yacc, the original versions of such
15:47:25 <ais523> AnMaster: flex and bison work together
15:47:30 <ais523> although it's possible to use just one of them
15:47:34 <ais523> flex tokenises the source
15:47:38 <ais523> bison parses sequences of tokens
15:47:38 <AnMaster> the language is rather simple really, brainfuck + a few instructions + functions
15:48:09 <AnMaster> ais523, so how would a flex file look for, say, brainfuck?
15:48:19 <ais523> it would be very simple for Brainfuck
15:48:28 <ais523> just a list of the possible characters
15:48:31 <ais523> and a token name for each one
15:49:16 <ais523> AnMaster: well, lexing would still be simple, as both { and } (say) are tokens, you'd match the { to the } in the parser
15:49:21 <AnMaster> the blocks use define: functionname[a, b, c, ...] [ bf code ]
15:49:53 <AnMaster> so it need to make a difference between what type of [ I assume?
15:50:38 <ais523> well, if you're using [ for two different things depending on context, you parse them both into [ in the lex/flex code and let yacc/bison tell the contexts apart
15:51:04 <AnMaster> ais523, file endings for flex is .l isn't it? and what is it for bison?
15:51:35 <ais523> there's lexer.l and oil.y and parser.y in C-INTERCAL if you want something to look at
15:51:40 <ais523> oil.y is a lot simpler than parser.y
15:51:41 -!- oklopol has quit (Read error: 113 (No route to host)).
15:51:43 -!- Corun has quit ("This computer has gone to sleep").
15:51:46 <ais523> because OIL is a lot neater than INTERCAL syntax-wise
15:52:07 <pikhq> AnMaster: Well, I could hand you my lexer for Def-BF. . . I'd hand you my parser, but it doesn't work.
15:52:11 <AnMaster> We have conflicts in the following files:
15:52:11 <AnMaster> Finished pulling and applying.
15:52:13 <pikhq> Shift/reduce conflicts galore.
15:52:16 -!- Dewio_ has joined.
15:52:35 <AnMaster> how do I make it throw away my version
15:53:28 <ais523> AnMaster: I haven't had a conflict before
15:53:33 <ais523> I think you edit the file to be what you want
15:53:36 <ais523> then call darcs resolve on it
15:54:52 -!- Dewi has quit (Nick collision from services.).
15:54:56 -!- Dewio_ has changed nick to Dewi.
15:56:53 <ais523> although normally the regexness isn't used except in cases like [0-9]+
15:56:55 <AnMaster> so, say \[[-+]\] would match [-] and [+]
15:57:07 <AnMaster> also first match selected I guess
15:57:12 <ais523> AnMaster: longest match, I think
15:57:40 <AnMaster> ais523, yacc just wants numbers in in-data?
15:57:49 <ais523> it wants token numbers
15:57:58 <ais523> each of which can have some data carried along with it
15:57:58 <AnMaster> and they are just defined somewhere?
15:58:08 <ais523> in the %token at the top
15:58:18 <ais523> basically you say %token followed by all your data
15:58:33 <ais523> and it outputs a header file
15:58:37 <ais523> giving a unique number to each token
15:58:40 <AnMaster> hrrm there is oil.y but no oil.l?
15:58:49 <ais523> AnMaster: yes, I did the lexing for OIL by hand, as it was simple
15:58:58 <ais523> you'll see the yylex function written, in C, at the bottom of that file
15:59:27 <AnMaster> if a special brainfuck instruction take an argument how do you do then
15:59:36 <AnMaster> ? takes a hex number as a parameter
16:00:40 <tusho> wow, ais523 is a walking yacc tutorial.
16:01:06 <ais523> AnMaster: it would be %token <int> SPECIALINSTRUCTION
16:01:10 <ais523> to define the token in the yacc file
16:01:18 <ais523> then you'd have to make sure yylex passed it an int somehow
16:01:22 <ais523> that's what %union is for
16:01:29 <ais523> but it's slightly complicated
16:03:36 <pikhq> In general, parsers and lexers are complicated, even if you know what you're doing.
16:04:29 <AnMaster> I written simple parsers in bash and such
16:04:41 -!- Dewio has quit (Read error: 101 (Network is unreachable)).
16:05:18 <AnMaster> ais523, say, if I expect the ? instruction to have a 64-bit value as a parameter, which is what I do
16:05:45 <AnMaster> oh looking at lexer.l it seems you use \( \), just like regexes
16:05:58 <ais523> yes, that's how it works
16:06:05 <ais523> and if you look at the { } block after it
16:06:05 <pikhq> Flex actually uses regexps. ;)
16:06:08 <tusho> Parsec is pretty much the only simple parser.
16:06:17 <ais523> it takes that value and atois it into a number
16:12:15 <tusho> LINERIDER REQUIRES SILVERLIGHT
16:13:31 * pikhq mutters about Silverlight being the worst thing for mankind since mankind
16:13:43 <ais523> not quite, but it's pretty bad
16:13:51 <tusho> LINERIDER WAS TOTALLY AWESOME
16:13:54 <tusho> NOW THEY'RE REQUIRING SILVERLIGHT
16:14:03 <tusho> YOU COULD HAVE DONE IT WITH FLASH TRIVIALLY YOU IDIOTS.
16:14:12 <tusho> WHY DEPEND ON SOME SHIT THAT ONLY WORKS ON WINDOWS AND SUCKS EVEN THEN
16:14:15 -!- Ilari has quit (""Won't be back for a while..."").
16:14:57 <AnMaster> ais523, an issue, seems like yyval stuff is 32-bit?
16:15:57 <ais523> AnMaster: you can choose the type of the data you send
16:16:02 <ais523> there's an int, always, for the token type
16:16:08 <ais523> and data it carries along with it which can be any type
16:16:48 <AnMaster> ?0x([0-9]+) { yylval.numval = atoll(yytext); return tok_pop; }
16:17:24 <ais523> AnMaster: you need to define yylval.numval, that's what the %union directive's for
16:17:39 <ais523> you can define it as long long, because that's what you want
16:18:16 <AnMaster> hm so how do you bind them together
16:19:41 <ais523> you can get yacc to generate the header file if you like
16:20:12 <ais523> in fact that's what messed up oklopol's C-INTERCAL installation recently, I accidentally gave them the wrong yacc-generated header file and all the token numbers were wrong
16:23:56 <ais523> AnMaster: they're references to regexen defined earlier in the file
16:24:06 <ais523> if you scroll up, you'll see their definitions
16:24:13 <AnMaster> also I guess // comments would be like: //.*$
16:24:34 <ais523> because I'm not sure which chars have to be escaped
16:24:43 <ais523> safest to escape all the punctuation chars
16:25:10 <AnMaster> hm... does it have to be a tab to separate the regex from the code processing it?
16:25:57 -!- Corun has joined.
16:27:08 <ais523> AnMaster: any whitespace works
16:27:18 <ais523> tabs are neater, though
16:27:50 -!- Slereah_ has joined.
16:29:20 <AnMaster> ais523, you said longest match? but what if a short one should take precedence?
16:29:48 <ais523> AnMaster: how could that be shorter than the thing that accidentally takes precedence over it?
16:29:54 <ais523> the longest-match rule is good for keywords
16:30:02 <ais523> if you end up violating it you're probably doing things wrong
16:30:11 <ais523> AnMaster: a multiline match that // commenting should take precedence over?
16:30:28 <AnMaster> ais523, a string beginning inside the // comment
16:30:43 <ais523> AnMaster: it's longest match from each particular point
16:33:50 <AnMaster> pikhq, what is a valid variable name and function name in Def-BF?
16:34:43 <pikhq> I'm saying [[:alpha:]_\-][[:alphanum:]]*
16:34:56 <pikhq> [[:alpha:]_\-][[:alphanum:]_\-]*
16:35:55 <AnMaster> pikhq, import: is anything until end of line?
16:36:35 <ais523> not sure, I'd recommend strdup
16:36:38 <pikhq> AnMaster: I'd assume so.
16:36:49 <ais523> I can't see why lex would be making deep copies itself
16:36:54 <ais523> because normally you don't need them
16:37:04 <ais523> only for identifiers do you need them
16:37:06 <pikhq> Though one may want to pester Rodger soon as he decides to /join #esoteric.
16:37:14 <ais523> and in professional compilers they tend to be hashed
16:37:17 <pikhq> He's currently on Freenode.
16:37:33 <pikhq> I'd start with strdup.
16:38:00 <pikhq> If you find yourself wanting a hash map for usage later, then it's not too hard to move to from strdup. . .
16:38:17 <AnMaster> define: functionname[var, var, var, ...]
16:38:24 <AnMaster> can't do that in one single regex really
16:38:41 <pikhq> That's done in Yacc, not Lex, for starters.
16:38:58 <AnMaster> so would doing something like: ^import:{W}(.+)$ { yylval.str = strdup(yytext); return tok_import; }
16:39:22 <ais523> so you don't use it to match brackets or anything like that
16:39:34 <ais523> basically you're there defining import to be outside the normal structure of the language
16:39:37 <ais523> which may be what you want
16:40:01 <AnMaster> well it will take a filename as parameter
16:40:02 <pikhq> Believe me, import: is a token.
16:40:09 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
16:40:18 <pikhq> So, that's probably valid.
16:40:24 <AnMaster> pikhq, oh? but it will be resolved at compile time right?
16:40:45 <pikhq> Though I *think* that line will have yytext also including the "import:" string.
16:40:46 <ais523> AnMaster: what do you mean by that?
16:40:54 <pikhq> *That* is probably not what you want.
16:41:02 <ais523> pikhq: yes, I think so, there's a different directive to get the first () group IIRC
16:41:07 <ais523> but it's a while since I messed with that particular syntax
16:41:22 <pikhq> I recommend pulling up the flex manual.
16:41:32 <ais523> yes, info flex is excellent
16:41:42 <pikhq> GNU's documentation generally is.
16:41:52 <AnMaster> pikhq, I'm looking at it's website's doc
16:42:07 <pikhq> Same exact documentation.
16:42:30 <pikhq> Just a different argument to infotex to make it output HTML instead of .info, after all.
16:42:44 -!- RodgerTheGreat has joined.
16:43:44 <AnMaster> in Def-BF how are the arguments to ? given?
16:43:54 <pikhq> RodgerTheGreat: AnMaster is the guy working on Def-BF (obviously). Enjoy. ;)
16:44:21 <AnMaster> RodgerTheGreat, I'd assume hexdecimal for now
16:44:33 -!- Corun has quit ("This computer has gone to sleep").
16:44:37 <RodgerTheGreat> I think the original idea was to allow both 0x1234 and regular integer representations
16:45:01 <RodgerTheGreat> having both would be convenient, but you can have just hex at the lowest level if you want
16:45:03 <pikhq> Since it might be a while before I actually get Def-BF sanely working, I'll end up following AnMaster's semantics for the most part.
16:45:05 <tusho> RodgerTheGreat: anmaster's implementation is a VM in C, just FYI
16:45:14 <tusho> not the to-the-metal one you were going to do, iirc
16:45:32 <AnMaster> as I'm learning flex/bison at the same time
16:45:51 <pikhq> Hell, if his implementation is flexible enough, I'll just make an asm backend.
16:45:52 <RodgerTheGreat> and if it makes it easier to develop while it builds interest, it's a good tradeoff
16:46:38 <AnMaster> the pre-processor will strip all function information and such, and just generate the basic commands part
16:47:27 -!- oklopol has joined.
16:47:40 <AnMaster> RodgerTheGreat, what about standard library?
16:48:04 <AnMaster> the second tier will generate one additional instruction, "use compiler implementation of this standard library function"
16:48:24 <RodgerTheGreat> AnMaster: I intended for the standard library to be coded in the language whenever remotely possible
16:48:36 <AnMaster> yes but the compiler could optimize some
16:48:56 <RodgerTheGreat> some kind of external call (to C functions, for example, as pikhq has been thinking about) would be useful though, yes
16:50:22 <RodgerTheGreat> I'd say, write the standard libs first, and then say somewhere in the spec that compilers may substitute their own implementations as long as they produce the same behavior
16:50:25 <AnMaster> my apps will be called: dbc and dpp
16:50:49 <pikhq> RodgerTheGreat: I'd also recommend differentiating between a hosted and freestanding implementation, as C does.
16:51:23 <pikhq> (a hosted implementation is running on a working OS, with a stdlib. A freestanding implementation is on bare metal: no stdlib)
16:51:54 <RodgerTheGreat> well, I figure at least initially we'll go with an entirely statically-linked scheme
16:52:22 <RodgerTheGreat> as I imagine that's the implementation difference between those approaches
16:53:23 <ais523> RodgerTheGreat: they're terms in the C standard, "hosted" means you're guaranteed to have all the standard library and main works as you expect, "freestanding" means that only a small amount of the stdlib need be there (for instance you might not have printf) and the calling conventions can be strange
16:53:48 <pikhq> A freestanding implementation has barely anything.
16:54:30 <pikhq> GCC's freestanding mode, IIRC, just has a few builtin functions from math.h.
16:54:39 <RodgerTheGreat> well, when I say "standard library", I tend to think of it like the Java API- it's a set of tools you're guaranteed to have in every implementation, thus the value of writing them in the language itself.
16:54:55 <AnMaster> http://rafb.net/p/cq8ROs23.html
16:55:02 <pikhq> A systems programming language can't be that way. ;)
16:55:09 -!- lilja has joined.
16:55:41 <RodgerTheGreat> pikhq: that isn't necessarily true. The standard library doesn't need to be huge and sprawling
16:55:46 <pikhq> Realistically, it *will* be running in environments without anything set up except maybe the BIOS.
16:56:17 <pikhq> And if it's starting up from 32-bit mode on an x86, it won't even have that.
16:57:03 <RodgerTheGreat> I'm imagining the standard library as consisting of things like array manipulation, string stuff, complex math, possibly some simple data structures and a few I/O helper functions
16:57:31 <RodgerTheGreat> I'm not saying it should come standard with an XML parser or something
16:57:39 <ais523> with freestanding, you mostly just get things like limits.h and setjmp
16:57:42 <ais523> nothing fancy like malloc
16:57:56 <pikhq> You're saying something closer to PEBBLE's standard macros, then.
17:01:33 <RodgerTheGreat> but I hope it's clear that all of those things can be cleanly and portably implemented in Def-BF itself, so there's no reason for them not to be available at compile-time
17:02:43 <tusho> RodgerTheGreat: You need malloc for string manip.
17:09:55 -!- Hiato has joined.
17:13:57 <tusho> AnMaster: OK, most of the time, for most operations.
17:14:03 <AnMaster> memcpy(), strstr(), there are a few
17:14:28 <ais523> tusho: you don't need malloc for string manipulation, just to make new strings
17:14:34 <ais523> which you often want to do as a result of string manipulation
17:14:36 <tusho> ais523: sometimes you do!
17:14:41 <ais523> in-place manipulation rarely needs malloc
17:14:52 <ais523> tusho: even an in-place concat doesn't need malloc if you have the space beforehand
17:14:59 <ais523> which you can do in many circumstances
17:15:06 <AnMaster> tusho, what about passing pointers to pre-allocated buffers around
17:15:11 <tusho> well yes these are all very valid
17:15:25 <tusho> RodgerTheGreat envisioned array manipulation and data structures
17:15:31 <tusho> i'll bet you're gonna need malloc somewhere along the line for THEM
17:15:43 <tusho> perhaps def-bf should have a two tier library, RodgerTheGreat, pikhq
17:15:49 <tusho> tier one will run on even the bare metal
17:15:55 <tusho> tier two requires things like malloc and other niceties
17:16:12 <tusho> so you can use tier one to implement all the basics for an OS and then get tier two
17:19:47 <AnMaster> hm is a recursive parser stupid or?
17:20:06 <RodgerTheGreat> AnMaster: sometimes it's really easy to implement that way
17:20:18 <AnMaster> yes it is here in the low level tier
17:21:35 <RodgerTheGreat> in general I think we should be thinking about eventually making this self-hosting (which is important for it to become a serious systems programming language of any kind), so we shouldn't make use of things we don't know how to implement ourselves
17:22:29 <AnMaster> RodgerTheGreat, I don't plan to write a Def-BF compiler in Def-BF
17:22:50 <pikhq> I would be quite willing to, once I know a hell of a lot more about parsers.
17:23:01 <pikhq> I know *just* enough to use Yacc ATM.
17:23:02 <oklopol> AnMaster: well there are other people who know how to code
17:23:26 <oklopol> yacc is for noobs, parsers should be written manually :P
17:23:44 <pikhq> Once I know enough to hand-write, say, a recursive descent parser, then I'd be quite willing to implement Def-BF in Def-BF.
17:24:17 <oklopol> it's not as hard as you'd think
17:24:48 <ais523> oklopol: I actually wrote an LALR(1) parser in VBA once
17:24:52 <AnMaster> well for now I will. parse it as hexdecimal
17:24:54 <ais523> back when I didn't have access to any decent programming languages
17:25:11 <RodgerTheGreat> it takes time and can be a little tedious, but it isn't tremendously hard if the syntax is straightforward
17:25:14 <oklopol> i heard about parsing during my python time
17:25:49 <oklopol> and that is something i never invented myself
17:26:14 <pikhq> oklopol: I might just wait for the college class on it.
17:26:20 <pikhq> Key word: *might*.
17:26:28 * tusho wants to see oklopol's Parserless Languge
17:26:39 <pikhq> We'll see once I've got a Def-BF kernel running. ;)
17:26:47 <tusho> oklopol: but just about everything is a parser
17:26:49 <tusho> e.g. a brainfuck parser
17:26:53 <oklopol> i have this one basic with operator precedence and all, without parsing
17:26:59 <tusho> you still parse it
17:27:00 <oklopol> just strings and rewrite rules :))
17:27:03 <tusho> it's just mingled with the interpretation
17:27:09 <ais523> tusho: what about MiniMAX?
17:27:11 <oklopol> err well yes, i read the strings.
17:27:16 <oklopol> but i don't use anything like lists
17:27:20 <ais523> the version where you have to write the program in binary doesn't seem to need a parser
17:27:22 <tusho> ais523: that's about as close to parserless as youc an get
17:27:24 <ais523> you just blit the program into memory
17:27:31 <oklopol> tusho: well duh, that's not what i meant and you know it
17:27:50 -!- olsner has joined.
17:28:23 <oklopol> if you have "parsing" to mean that the interpreter reads your source before it executes it, then yes, everything needs to be parsed
17:28:43 <oklopol> except for a few languages where programs are empty, in which case it's not clear
17:29:21 <oklopol> i guess you could say i never had a separate parsing stage, jsut.
17:30:53 <ais523> oklopol: what if the program's just blitted into memory?
17:32:35 <oklopol> well then you're not really doing the interpreting yourself
17:32:45 <oklopol> i'd say the processor will still parse
17:32:50 <oklopol> err, well not the processor
17:32:58 <oklopol> that guy who gives it the shit to run
17:34:31 * oklopol shows extreme knowledge about hardware
17:39:20 <AnMaster> yay what a nice recursive parser I made
17:42:09 -!- Corun has joined.
17:42:40 <oklopol> anyone have a nice java disassembler nearby?
17:51:39 -!- Slereah__ has joined.
18:05:38 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
18:05:50 -!- Slereah_ has joined.
18:17:03 <psygnisfive> since its obviously not a set, nor is it an identity
18:19:21 <lament> well, not the song, the singer is whiny.
18:23:09 <AnMaster> http://rafb.net/p/fdXBOV79.html
18:23:34 <pikhq> Sweet; you can parse Brainfuck.
18:23:37 <tusho> Congratulations you implemented brainfuck.
18:23:56 <tusho> AnMaster: You parsed all of it apart from the bit that wasn't brainfuck.
18:24:01 <tusho> You can parse brainfuck! Awesome.
18:24:14 <tusho> You can't parse brainfuck.
18:26:24 <AnMaster> tusho, oh the bug was in the tree dumping code
18:26:30 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
18:30:18 * pikhq will be sure to steal your parser. :p
18:30:40 <pikhq> Hmm. Out of curiosity, why are you having [-] as its own little bit of syntax?
18:31:40 <ais523> pikhq: that's how e's optimising it
18:31:47 <ais523> but that should be in the parser not the lexer really
18:32:27 <tusho> It shouldn't be in the parser.
18:32:31 <tusho> It should be in a seperate optimizer step.
18:32:36 <pikhq> That should be a transformation on the parsed tree.
18:32:36 <tusho> So that [><-] can be optimized.
18:32:42 <tusho> So that >< is eliminated
18:32:52 <tusho> i think that's called peephole optimization
18:33:03 <pikhq> I guess your optimization is just not yet done, then.
18:33:05 <AnMaster> tusho, well the >< step isn't implemented yet
18:33:14 <ais523> maybe I should make a Brainfuck version of OIL...
18:33:16 <AnMaster> currently the optimize step only handles [-] and [+]
18:33:26 <tusho> ais523: nah, the compiler language is more expressive for this
18:33:31 <AnMaster> it will handle renumbering and so on
18:33:32 <tusho> since there's a lot of complex opts
18:33:37 <tusho> that need a lot of computation and lookahead/behind
18:34:03 <AnMaster> however the [-] is converted to a single new token in the optimize step
18:34:07 -!- Corun has quit ("This computer has gone to sleep").
18:34:54 <pikhq> Convert that [-] to ?0x0. ;)
18:35:26 <AnMaster> pikhq, well it is it's own value now, as I thought brainfukc
18:35:32 <AnMaster> brainfuck* but that would work
18:36:29 <AnMaster> also for most other things the param will be count of instruction
18:36:40 <AnMaster> will also be done in optimizer
18:37:41 <pikhq> Hmm. This makes me half-tempted to learn how to write a GCC frontend.
18:46:55 -!- ais523 has quit ("(1) DO COME FROM ".2~.2"~#1 WHILE :1 <- "'?.1$.2'~'"':1/.1$.2'~#0"$#65535'"$"'"'&.1$.2'~'#0$#65535'"$#0'~#32767$#1"").
18:52:57 -!- Corun has joined.
18:56:17 <AnMaster> psygnisfive, because it's first time I do it I guess
18:56:28 <tusho> i guess AnMaster can implement basic esolangs, and optimize things to hell
18:56:30 <tusho> that'd explain cfunge
18:56:39 <psygnisfive> i mean, i guess its hard because C requires that you fuck with strings in nasty ways but
18:56:47 <tusho> psygnisfive: still not that hard
18:56:55 <AnMaster> psygnisfive, no string handling needed really
18:56:55 <tusho> i mean a lot of the time you can just print it out as you go
18:57:04 <AnMaster> just trying to figure out how to generate code the best way
18:57:10 <tusho> AnMaster: fprintf.
18:57:21 <tusho> and a switch around the type of the instruction in a main loop
18:57:26 <AnMaster> it was how to use gotos and so
18:58:11 <AnMaster> the generated code will use gotos
18:58:16 <AnMaster> it's the only sane way for jump
18:58:25 <tusho> i mean goto is fine in generated code
18:58:26 <AnMaster> % jump to absolute address in code
18:58:26 <AnMaster> : resume execution from previous address
18:58:28 <tusho> but why do you need to use it
18:59:01 <tusho> psygnisfive: blame AnMaster
18:59:12 <psygnisfive> someone should make a keyboard map that swaps space and return
18:59:37 <psygnisfive> i downloaded the Theory of Computation torrent
19:00:20 <oklopol> send i like virtual bookers
19:00:33 <oklopol> well that's a bit too much send like 29 of them
19:00:52 <oklopol> just take some bits of the torrent file and i think that'll do it
19:02:19 -!- cherez has quit ("Leaving.").
19:04:15 <psygnisfive> http://www.wellnowwhat.net/transfers/Theory%20of%20Computation.zip
19:07:02 <tusho> psygnisfive: AnMaster thinks that he's being spied on
19:07:04 <tusho> downloading illegal material.
19:07:13 <AnMaster> which is why I won't do it anyway
19:07:16 <Deewiant> and he thinks that https would help
19:07:43 <tusho> Deewiant: I was leaving that bit of humour to the reader.
19:07:48 <tusho> Subtlety and all that.
19:08:23 <tusho> don't worry AnMaster
19:08:27 <tusho> they're probably DIRTY PDFs
19:08:29 <tusho> you couldn't read them anyway
19:09:08 <AnMaster> I think... I will have to use setjmp
19:09:25 <AnMaster> but it is the only possible way to do resume from jump
19:09:33 * tusho bets AnMaster's code generator handles indentation
19:10:22 <tusho> AnMaster: are you planning on submitting -object code- to a C Beauty Contest or something
19:10:24 <tusho> because you are batshit fucking insane
19:10:47 <tusho> AnMaster: I was being sarcastic
19:10:50 <AnMaster> I wouldn't have done it unless you mentioned it
19:11:53 <pikhq> God gave man indent(1) for a purpose.
19:12:06 <AnMaster> or I could use the computed goto's of gcc
19:12:07 -!- Corun has quit ("This computer has gone to sleep").
19:12:11 <AnMaster> but I don't want to be gcc specific
19:13:44 <tusho> pikhq: God gave us AnMaster so that we could say things like that and they would go straight from his ears to /dev/null,
19:13:50 <tusho> Why God was so evil I will never know.
19:14:09 <AnMaster> tusho, actually I won't indent the code
19:14:13 <pikhq> And Jesus his PFY.
19:14:25 <AnMaster> but doesn't C-INTERCAL indent it's code?
19:14:34 <tusho> AnMaster: It's not amusing.
19:14:38 <tusho> It's something you would do.
19:14:59 <tusho> not fully, AnMaster
19:15:05 <tusho> i.e. like 3 lines of code
19:17:15 <AnMaster> actually I will have to generate gcc specific code
19:20:00 <tusho> AnMaster: use a switch
19:20:21 <tusho> then to 'goto var'
19:20:29 <tusho> pretty standard stuff
19:20:35 <tusho> and switch fallthrough makes it work elegantly
19:20:47 <AnMaster> oh I can't do loops as while blocks I guess, I need to jump into them
19:21:09 <AnMaster> tusho, yes I see what you mean
19:21:17 <tusho> AnMaster: yes you can
19:21:19 <tusho> switch is freeform
19:21:29 <tusho> will go to the toplevel switch
19:21:38 <AnMaster> oh yes.... forgot that C "feature"
19:21:45 <AnMaster> that you can jump into other blocks
19:21:58 <tusho> congrats, you're a duff-devicer ("one who abuses the freeform behaviour of switch in C").
19:22:47 <AnMaster> yes I know about duff's device
19:22:55 <lament> is there a reason for switch behaving the way it does?
19:23:27 <oklopol> so that noobs would fail and you could laugh at them?
19:24:22 <tusho> lament: it's simpler to implement
19:24:29 <tusho> and it allows for tricks like this
19:24:34 <tusho> which was relevant in the 70s
19:24:45 <tusho> switch () { ... } is just a goto
19:24:48 <tusho> and 'case x' a label
19:24:51 <tusho> thus why it's case x:
19:24:54 <tusho> not case (x) { ... }
19:25:07 <AnMaster> tusho, most likely it is a goto into a jump table
19:25:18 <AnMaster> which then points to the code bit in question
19:25:40 <AnMaster> so you can just do something like: JUMP_RELATIVE_PC variable
19:25:55 <lament> tusho: i don't buy that
19:26:02 <tusho> lament: then don't
19:26:28 <oklopol> case'0':case'1':case'2': etc
19:26:41 <oklopol> not that i know, just always assumed
19:27:03 <oklopol> psygnisfive: what upload? :D
19:27:21 <oklopol> where did you upload them?
19:27:30 <tusho> the reason is that partly oklopol
19:27:33 <tusho> case a: case b: case c:
19:27:35 <psygnisfive> http://www.wellnowwhat.net/transfers/Theory%20of%20Computation.zip
19:27:43 <tusho> and the easiest way to do that?
19:29:34 <oklopol> reasons raisins, no one cares about reasons
19:39:02 -!- Corun has joined.
20:23:20 <oklopol> sorry, it's just i've never used that so that it made even remotely sense.
20:25:13 -!- kotrin has joined.
20:26:22 -!- kotrin has left (?).
20:38:45 <AnMaster> well it generates a executable that compiles now
20:46:59 <tusho> You know, AnMaster, Def-BF isn't exactly hard.
20:47:13 <AnMaster> tusho, well I never generated C code before
20:47:22 <tusho> Yeah because generating C is so hard
20:48:32 <oklopol> i've generated c code manually, like a true codar
20:48:58 <AnMaster> tusho, but I admit this is my first compiler
20:49:01 <oklopol> bow before me and shit, this stuff is bigger than ya.
20:49:03 <AnMaster> as in compile to other language
20:49:28 * tusho bows before oklopol
20:49:38 <AnMaster> pikhq, I figured out one extra instruction I need when optimizing, constant call
20:49:48 <AnMaster> pikhq, if the instruction just before is a load constant
20:55:57 <oklopol> constant call, it's the friend of the damned, press its buttons and you'll know its name...
20:58:53 -!- Corun has quit ("This computer has gone to sleep").
21:02:42 -!- Hiato has quit ("Leaving.").
21:03:03 <oklopol> I'm the Scatman....repeat after me
21:03:03 <oklopol> It's a scoobie oobie doobie scoobie doobie melody
21:03:05 <oklopol> I'm the Scatman....repeat after me
21:03:05 <oklopol> It's a scoobie oobie doobie scoobie doobie melody
21:03:41 <oklopol> the actual chorus @ the lyrics i copied from...
21:04:23 <oklopol> although i guess that's funnier.
21:04:55 <oklopol> perhaps i still do, haven't heard it for ages
21:09:28 <psygnisfive> in the music video theres this boy thats hot
21:09:59 <oklopol> if it rhymes it must be true.
21:12:19 <AnMaster> I will do just to irritate tusho
21:12:41 <tusho> actually mmap is less work than reallocating a buffer all the time
21:18:12 -!- pikhq has left (?).
21:34:19 -!- Corun has joined.
21:37:31 <AnMaster> RodgerTheGreat, what is the file extension for Def-BF?
21:43:26 -!- atsampson has quit (Read error: 104 (Connection reset by peer)).
21:44:31 <AnMaster> oh wait call doesn't work completely
21:44:48 <tusho> RodgerTheGreat: .bf is befunge
21:44:52 <tusho> may I suggest .defb
21:45:04 -!- atsampson has joined.
21:45:58 <AnMaster> tusho, he said .dbf not .defbf
21:46:29 <tusho> 'bf' means befunge in file extensions
21:46:33 <tusho> so .defb is better
21:46:54 <tusho> .defbf would be acceptable also
21:47:14 <tusho> AnMaster: that's why I pinged RodgerTheGreat
21:47:31 <AnMaster> $ ./dbc -o tmp/helloworld.c tmp/helloworld.b
21:47:31 <AnMaster> File written to tmp/helloworld.c, to compile use:
21:47:43 <tusho> RodgerTheGreat: conflicts with database
21:47:49 <tusho> that's a common sqlite extension
21:47:54 <AnMaster> RodgerTheGreat, call stack is broken
21:48:02 <Deewiant> tusho: there are always conflicts
21:48:13 <tusho> Deewiant: but .defb and .defbf are unlikely to.
21:48:18 <Deewiant> if you want one <= 4 chars, at least
21:49:18 <Deewiant> sorry, it's a "Data Flask Data Formula File"
21:49:19 <AnMaster> ==2443== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 5 from 1)
21:49:19 <AnMaster> ==2443== malloc/free: in use at exit: 0 bytes in 0 blocks.
21:49:19 <AnMaster> ==2443== malloc/free: 114 allocs, 114 frees, 5,088 bytes allocated.
21:49:21 <Deewiant> http://filext.com/file-extension/dfb
21:49:30 <tusho> Deewiant: .db is pretty conflicty though.
21:49:40 <tusho> and bf means befunge in file extensions
21:49:42 <Deewiant> sure, but on the other hand that makes it a good file extension in some cases
21:49:47 <AnMaster> ==2559== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 5 from 1)
21:49:47 <AnMaster> ==2559== malloc/free: in use at exit: 0 bytes in 0 blocks.
21:49:47 <AnMaster> ==2559== malloc/free: 1 allocs, 1 frees, 65,536 bytes allocated.
21:49:53 <Deewiant> in this case, though, I wouldn't go with it.
21:51:04 <AnMaster> the file extension of brainfuck is .b
21:52:02 <AnMaster> Deewiant, well I give same issue
21:52:11 <Deewiant> and why would you care about DOS
21:52:15 <AnMaster> as Def-BF is a system programming language
21:52:20 <AnMaster> what if they port FreeDOS to it?
21:52:47 <Deewiant> freeDOS supports beyond 8.3 doesn't it?
21:53:05 <AnMaster> anyway I know a good extension
21:53:21 <Deewiant> anything 1-char is taken many times over
21:53:29 <Deewiant> anything 2-char is taken at least once
21:53:53 <AnMaster> Deewiant, sure .c is taken more than once?
21:54:05 <tusho> AnMaster: of course
21:54:09 <Deewiant> http://filext.com/file-extension/c
21:54:21 <tusho> not all the world is C, AnMaster
21:54:37 <lament> actually, all the world is C.
21:57:00 <AnMaster> Program and/or Extension Function [What's This?] Company [What's This?]
21:57:14 <AnMaster> Program and/or Extension Function [What's This?] Company [What's This?]
21:58:03 <Deewiant> yeah, it's crap because it's case-insensitive
21:58:17 <tusho> Deewiant: just about everything should be case-insensitive really
21:58:21 <tusho> filesystems, web servers
21:58:28 <tusho> humans _don't_ distinguish things just based on their case
21:58:33 <tusho> so it's really stupid
21:59:29 <Deewiant> depends on the language, of course
21:59:44 <Deewiant> but most things are built with English in mind
22:01:08 <tusho> Deewiant: 'God' vs 'god' is a ridiculous religious notion and requires explicit effort from humans.
22:01:17 <tusho> It wouldn't happen if they weren't commanded to by 'God'.
22:01:50 <lament> "I helped my uncle Jack off a horse" vs. "I helped my uncle jack off a horse"
22:01:58 <Deewiant> ah yes, that's the good example :-)
22:02:45 <tusho> names are the exception
22:02:57 <tusho> however, consider http://awesomefamily.org/Jack/
22:03:00 <lament> "God" is similar to a name
22:03:02 <Deewiant> and we were talking file _names_ right ;-)
22:03:03 <tusho> http://awesomefamily.org/jack/
22:03:11 <tusho> in English text, for names, it matters.
22:03:18 <tusho> In filenames, I doubt it ever will.
22:03:37 <lament> that's why all sane operating systems are already case-insensitive :D
22:03:58 <Deewiant> case-sensitivity but with case-insensitive matching might be a good middle ground
22:04:15 <lament> Deewiant: and that's exactly what Windows and OS X do.
22:04:17 <Deewiant> e.g. Jack and jack are different but if you only have one, any case matches it
22:04:38 <Deewiant> the way I see it you could still have both Jack and jack coexist
22:04:43 <lament> i thought you could have both Foo.txt and foo.txt but you can't :(
22:04:47 <Deewiant> in Windows you can't, at least
22:04:56 <tusho> lament: that is just confusing though
22:05:03 <tusho> it leads to nothing but mistakes
22:05:24 <tusho> case-insensitive but case-preserving is basically the sane way to do this
22:05:36 <tusho> In fact you can generalise it
22:05:45 <tusho> matching-insensitive but creation-preserving
22:05:45 <lament> perhaps the biggest argument against case sensitivity is that it's just too difficult in general
22:05:49 <Deewiant> in Windows you can't rename something changing only its case :-/
22:05:49 <lament> although it works fine for English
22:05:52 <tusho> that can apply to tons of stuff
22:05:59 <tusho> Deewiant: that is a flaw, yes
22:06:02 <tusho> same with os x's HFS
22:06:06 <tusho> you have to go to another temp name
22:06:09 <tusho> that is just a technical flaw
22:06:16 <lament> it works for me in OS X
22:06:29 <tusho> lament: open up a terminal
22:06:33 <tusho> mv foo.txt Foo.txt
22:06:51 <lament> both with mv and in Finder
22:07:11 <tusho> % mv test.txt Test.txt
22:07:11 <tusho> mv: `test.txt' and `Test.txt' are the same file
22:07:17 <tusho> maybe leopard fixed t
22:07:43 <tusho> but I assume he is
22:07:47 <tusho> since he mentions case-insensitivty
22:07:52 <tusho> also installing OS X on non-HFS stuff is a bitch
22:07:54 <lament> how do i see what the filesystem is?
22:07:59 <tusho> lament: disk utility
22:08:38 <lament> "Format :Mac OS Extended (Journaled)"
22:09:05 <Deewiant> haven't tried Vista in this regard, maybe they fixed that there, too ;-)
22:09:49 <tusho> 'hopeful' and vista, *g*
22:10:39 <Deewiant> tusho: this is more of that subtlety you were telling me about. ;-)
22:10:59 <tusho> Deewiant: it only applies to other people
22:11:09 <lament> the problem with case sensitivity is that it's too hard
22:11:15 <lament> unless you restrict yourself to English
22:24:29 -!- pikhq has joined.
22:25:52 <oklopol> well actually i think you've always been able to do it in explorer
22:28:07 <Deewiant> hmm, apparently I'm talking out of my ass and you can
22:28:15 <Deewiant> I wonder what it was that didn't work then
22:33:17 -!- Corun has quit ("This computer has gone to sleep").
22:33:28 <tusho> would you live in a police state
22:33:49 <pikhq> Because, properly speaking, that would be a ninja state.
22:36:33 <oklopol> well life would be the exact same really
22:36:55 <oklopol> heh, god i love ninja jokes
22:37:05 <oklopol> ninja parade & ninja tea party ftw
22:37:16 <tusho> oklopol: exact same ... except for ...
22:37:23 <Deewiant> I wouldn't live in a police state, especially one where the cops can kill you without you ever noticing they're there
22:37:44 <tusho> NINJA POLICE STATE.
22:38:37 <Deewiant> hence police state, hence I wouldn't live there, given the choice. :-P
22:38:43 <tusho> WHAT IS WRONG WITH YOU.
22:38:47 <tusho> FUCKIN' NINJA POLICE.
22:39:10 <Deewiant> ninjas are cool only when they're not actively trying to mess with you
22:39:41 <tusho> Ninjas are the DEFINITION OF COOL POLICE.
22:39:49 <tusho> Therefore, Ninja police state = Cool police police state
22:40:19 <Deewiant> no matter how cool that's still a police state. Sorry! ;-)
22:40:51 <pikhq> It's cool * -cool.
22:41:11 <pikhq> It's therefore worse than being just -cool (or, that is, uncool).
22:42:06 <tusho> pikhq: But it's NINJA POLICE STATE
22:42:15 <tusho> That's (cool*A(g64,g64))+-cool
22:42:21 -!- Slereah__ has joined.
22:42:30 <tusho> Slereah_: Would YOU live in a ninja police state?
22:42:35 <tusho> A police state, but the police are NINJAS.
22:43:45 <pikhq> tusho: Times, not plus. :p
22:54:48 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
22:55:11 -!- Slereah_ has joined.
23:01:59 -!- Judofyr has quit.
23:06:25 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
23:09:24 -!- Sgeo has quit (Read error: 110 (Connection timed out)).
23:28:22 -!- Slereah__ has joined.
23:45:03 -!- Corun has joined.
23:47:27 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
23:47:39 -!- Slereah_ has joined.
23:48:57 <pikhq> Some days, I hate Gentoo.
23:49:09 <pikhq> "No disk space available". . .
23:49:21 <pikhq> When the partition in question is only 70% used. . .
23:50:20 <pikhq> If I get that error again, now that the disk is only 56% used, I'm kicking someone in the shin.
23:50:29 -!- Slereah__ has quit (Read error: 110 (Connection timed out)).
23:51:12 <oklopol> okay i sense there is something wrong, but i don't know what, because my train of thought got intercepted
23:56:16 <oklopol> the fun thing is i have no idea whether it's a seriously depressing thought, or something like "this is a bad name for this function"
23:56:21 <oklopol> it often takes ages to remember what it was
23:56:55 <oklopol> failed an oko on a channel, and kinda only half-noticed i did.
23:57:09 <oklopol> usually they're at least a little worse :)