←2008-11-16 2008-11-17 2008-11-18→ ↑2008 ↑all
00:00:41 <oklopol> did you see swedish past "datorn som verktyg"?
00:00:44 <fizzie> If you select a single course, the contents (lecture schedules, news, assignments, things like that) will be only in the Official Language of the course.
00:00:46 <oklopol> hmm
00:00:52 <oklopol> the "grunderna.." thing
00:01:11 <AnMaster> https://noppa.tkk.fi/noppa/kurssi/t-106.1002/etusivu is in Finnish however
00:01:40 <oklopol> a lot of things happen optionally in swedish, in finland.
00:01:45 <oklopol> tuition is one of those things
00:02:32 <fizzie> Well, those (T-106.1002, T-106.1207) are a bit of special case, since they have a distinct course code for the Swedish versions; probably because they are so common courses (several hundred students each year) and they want it to be easier to arrange things like exam papers in the right language.
00:02:51 <AnMaster> heh
00:03:09 <AnMaster> isn't Torvalds Swedish speaking?
00:03:14 <fizzie> T-106.1002 isn't active right now, so the contents come from the automagical dump of the study guide; I guess all those pages might well be in Finnish.
00:03:17 <oklopol> bilingual
00:03:31 <oklopol> finnish too, that is
00:03:46 <AnMaster> well iirc I remember hearing him speaking Swedish in some audioclip of how to pronounce linux
00:03:52 <AnMaster> probably found on kernel.org iirc
00:04:01 <fizzie> We've got (according to wikipedia) 5.5 % officially Swedish-speaking people.
00:04:21 <fizzie> The Linux pronounciation audio clip I've heard was in English, though.
00:04:43 <AnMaster> http://kernel.org/pub/linux/kernel/SillySounds/
00:04:45 <AnMaster> there it is
00:04:48 <fizzie> "My name is Linus Torvalds and I pronounce Linux as Linux."
00:04:52 <AnMaster> English and Swedish
00:04:57 <AnMaster> but not Finnish
00:04:58 <AnMaster> heh
00:05:15 <fizzie> "His family belongs to the Swedish-speaking minority (5.5%) of Finland's population."
00:05:29 <AnMaster> ah ok
00:05:30 <AnMaster> well
00:05:32 <AnMaster> *shrug*
00:05:40 <AnMaster> not that it matters to me
00:05:46 <AnMaster> we all end up using English on irc
00:06:03 <AnMaster> it is sad but I type faster in English than Swedish
00:06:40 <AnMaster> but the Swedish qwerty keyboard variant is even more abysmally bad for the language than the English one
00:06:56 <AnMaster> should probably learn dvorak
00:06:58 <psygnisfive> swedish dvorak!
00:07:05 <AnMaster> psygnisfive, yes Svorak
00:07:06 <fizzie> He does speak Finnish too; I've heard some interview or something. Maybe he though that Finnish people won't need the pronounciation guide audio-clip.
00:07:08 <AnMaster> exists
00:07:32 <AnMaster> fizzie, well I didn't need it in Swedish
00:08:51 <fizzie> I guess someone Swedish could presumably do it with a long "i" in it. Like in the name "Linus". (I don't think it was with a long "i", though?)
00:09:19 <AnMaster> fizzie, hm?
00:09:29 <AnMaster> that is a short i
00:09:31 <AnMaster> in Linus
00:09:47 <AnMaster> well to tell the truth it is hard to tell the difference for i
00:09:56 <fizzie> The pronunciation given in Wikipedia is "[ˈliːnɵs ˈtuːrvalds]" which is a long one.
00:10:01 <AnMaster> for some vowels it is much easier
00:10:03 <fizzie> Didn't bother listening to the audio clip, though.
00:10:21 <AnMaster> I mean, easy enough with a
00:10:25 <AnMaster> but not with i really
00:11:44 <oklopol> i hear swedish vowels are actually distinct depending on whether they're long or short.
00:11:44 <AnMaster> http://kernel.org/pub/linux/kernel/uemacs/ <-- heh
00:11:55 <oklopol> so that doesn't sound plausible
00:11:57 <AnMaster> oklopol, usually ues
00:11:58 <fizzie> I think I personally say "Linus" and "Linux" with a different-length 'i'. (In any case, they say that Finnish-speaking people are good at differentiating vowel/stop lengths since we use those a lot for different meanings.)
00:11:59 <AnMaster> wait
00:12:01 <AnMaster> hm
00:12:18 <AnMaster> fizzie, Linus is between long and short I'd say
00:12:21 <AnMaster> it is not sil nor sill
00:12:31 <AnMaster> (the first one = sieve, the latter one a type of fish)
00:12:40 * oklopol knew that
00:12:50 <AnMaster> but
00:12:59 <AnMaster> Linus is somewhere in between for me
00:13:04 <fizzie> fi:siivilä and fi:silli here, I think.
00:13:14 <fizzie> I assume it's the same fish.
00:13:26 <AnMaster> drop adding those double vowels all the time ;P
00:13:43 <oklopol> i don't know what fish that is, but i'm pretty sure it's the same one.
00:13:50 <AnMaster> well
00:13:54 * oklopol refuses to learn animals
00:13:59 <AnMaster> I got no clue what that fish is in English
00:14:17 <oklopol> err
00:14:18 <oklopol> herring?
00:14:25 <oerjan> herrings are so silly
00:14:26 <AnMaster> maybe
00:14:31 <AnMaster> oh?
00:14:37 <oklopol> yeah they are pretty silly
00:14:38 <oerjan> yes, herring
00:14:43 <AnMaster> maybe
00:15:02 <oerjan> not maybe, for sure
00:15:31 <oklopol> perhaps...
00:15:38 <oklopol> i'll check so we know for sure!
00:15:43 * oklopol checks
00:15:46 * oerjan does an all-round swatting ----###
00:16:01 <oklopol> herring, Atlantic herring
00:16:09 <oklopol> oerjan and i guessed right it seems!
00:16:21 <oerjan> guessed?
00:16:21 <oklopol> lottery time methinks!
00:16:29 <oerjan> it's "sild" in norwegian fwiw
00:16:42 <oklopol> oerjan: how many exclamation marks must i use for you to see the sarcasm
00:16:53 <oerjan> oklopol: about 3684
00:16:55 <AnMaster> oerjan, sieve daemon?
00:17:08 <AnMaster> sild would be sieve daemon obviously
00:17:23 <oklopol> oerjan: can you count yourself and tell me when you see it?
00:17:34 <AnMaster> </very bad pun>
00:17:35 <oerjan> maybe
00:17:40 <oklopol> (i'll start putting them in random locations so you slowly get the sarcasm!)
00:18:15 * AnMaster waits for anyone to get the joke
00:18:16 <oklopol> oerjan: not maybe, for sure.
00:18:27 <oklopol> AnMaster: i'm assuming "d" is a common suffix for daemons
00:18:30 <oerjan> that's what YOU think
00:18:33 <AnMaster> oklopol, yes it is
00:18:39 <oklopol> oerjan: what i think doesn't matter
00:18:51 <oklopol> making all your arguments void.
00:18:52 <oerjan> Satand is _so_ pissed that we keep misspelling his name
00:19:09 <oklopol> AnMaster: see, that's a good daemon pun :P
00:19:18 <oklopol> you've got a lot to learn
00:20:04 <AnMaster> hm?
00:20:11 <AnMaster> ahhah
00:20:35 <AnMaster> oerjan, is satand the .no name?
00:20:39 <oerjan> no
00:20:41 <oklopol> nope
00:20:44 <AnMaster> ah
00:20:49 <AnMaster> well not fun then
00:21:01 <oklopol> we type it as satan, whereas it's actually satand
00:21:04 <oklopol> because satan is a demon
00:21:09 <AnMaster> oh right
00:21:15 <AnMaster> need to sleep really
00:21:29 <oklopol> :P
00:25:13 <fizzie> While I was ready preparing for sleep, I thought of two word-pairs with only a i-length difference with hilariously different meanings.
00:25:27 <AnMaster> fizzie, oh?
00:25:42 <fizzie> There's sima/siima (mead/fishing line) and sika/siika (pig/a type of fish).
00:27:40 <oerjan> how positively side-splitting
00:27:41 -!- biden has changed nick to comex.
00:28:04 <fizzie> Also lika/liika (dirt in the "dirty" sense, filth, something like that/"too much" in suitable contexts).
00:28:52 <oklopol> likalla lakilla liikaa likaa
00:29:00 <AnMaster> anyone here good at git?
00:29:08 <AnMaster> how do I see where git pulls from?
00:29:16 <AnMaster> it is being an unhelpful bastard as usual
00:29:26 <AnMaster> none of the svn like commands work
00:29:29 <AnMaster> nor any other
00:29:32 <oerjan> AnMaster: well what do you expect with that name
00:29:37 <AnMaster> oerjan, true
00:29:41 <AnMaster> but still
00:29:55 <oerjan> wow AnMaster got a pun
00:30:06 <AnMaster> I ignored the pun
00:31:25 <oklopol> i said "o"
00:32:19 <oerjan> oklopol: when?
00:32:26 <oerjan> not recently
00:32:56 <oklopol> oerjan: sorry, that was actually a short story of mine
00:33:05 <AnMaster> aha
00:33:06 <AnMaster> strace
00:33:14 <AnMaster> $ strace -v -s 100 -f git pull 2>&1 | grep write
00:33:23 <oklopol> it continues: "the man looked at me for an hour or so, then responded: 'o'"
00:33:32 <oerjan> ok
00:33:34 <oerjan> o
00:33:37 <oklopol> that's it really, i forget the rest.
00:33:42 <AnMaster> [pid 24867] write(4, "0052git-upload-pack /pub/scm/linux/kernel/git/acme/pahole.git\0host=git.kernel.org\0"..., 82) = 82
00:34:11 <AnMaster> I guess there is a simpler way
00:34:16 <oerjan> oklopol: do you call this "The story of O"?
00:34:22 <AnMaster> but the help of git is abysmal
00:34:27 <AnMaster> very hard to locate stuff in
00:34:34 <AnMaster> with svn, bzr and so on it is simple
00:34:38 <AnMaster> svn info
00:34:40 <AnMaster> bzr info
00:35:02 <oklopol> oerjan: i think it's "the story of two lonely o's"
00:35:06 <AnMaster> darcs show iirc
00:35:34 <oerjan> i guess they would start out lonely yes
00:35:50 <oklopol> :)
00:35:55 <oklopol> o's are nice people.
00:36:28 <fizzie> No, really; "git fetch -v" shows it.
00:36:41 <fizzie> Or "pull -v" or something.
00:36:42 <AnMaster> fizzie, ok
00:36:48 <AnMaster> fizzie, but it isn't easy to find
00:37:02 <AnMaster> fizzie, svn set a standard for a good user interface
00:37:18 <AnMaster> learn one and you can find your way around them all
00:37:20 <fizzie> It was pretty trivial to find; I didn't even have to check any man pages, I just did "well, -v is probably the verbosity flag for the pull command".
00:37:34 <AnMaster> fizzie, well I didn't want to do the pulll
00:37:39 <AnMaster> just show where it would have been
00:37:55 <AnMaster> fizzie, which is pretty different
00:38:30 <AnMaster> fizzie, tell me how you would do it in git
00:38:37 <fizzie> "git remote show origin".
00:38:42 <fizzie> Which also wasn't difficult to find.
00:38:55 <AnMaster> how the heck would I know it was git remote to begin with?
00:38:59 <AnMaster> I looked at git help
00:39:07 <AnMaster> it doesn't even list remote
00:39:13 <AnMaster> so yes it's help is abyssmal
00:39:18 <fizzie> It's the *remote repository* you're interested in; I would've thought it's quite easy to figure out.
00:39:32 <fizzie> I don't think that's very commonly used command, though.
00:39:34 <AnMaster> fizzie, how would I know there existed a command called remote
00:39:46 <fizzie> By saying "man git", maybe?
00:39:46 <AnMaster> $ git help | grep remote
00:39:46 <AnMaster> push Update remote refs along with associated objects
00:39:50 <AnMaster> wich isn't relevant
00:39:56 <AnMaster> fizzie, I expect help such as from svn
00:39:59 <AnMaster> git help
00:40:03 <AnMaster> seems to be like that
00:40:25 <fizzie> It says "commonly used commands" right there; it even has a -a flag for all commands, which you would've seen from "git help help".
00:40:44 <oklopol> o
00:40:59 <AnMaster> fizzie, well it is counter intuitive(sp?)
00:41:07 <fizzie> I'm not trying to say I love git's command-line interface, even when compared to svn, but I can't really agree it's especially *difficult*.
00:41:13 <AnMaster> fizzie, also I prefer not having it pop up in man
00:41:23 <AnMaster> since once I hit q it is all gone
00:41:29 <AnMaster> in konsole
00:41:35 <AnMaster> doesn't work that way in xterm
00:41:39 <AnMaster> but it does in konsole
00:41:55 <AnMaster> since it seems to use a separate buffer for cursor addressing mode or something
00:42:04 <AnMaster> I noted it with TERM fingerprint in cfunge too
00:42:20 <fizzie> Probably depends on whatever magic is in the terminfo strings.
00:42:32 <AnMaster> well. both use xterm-color here
00:42:35 <AnMaster> *shrug*
00:42:46 <AnMaster> night
00:42:49 <fizzie> Night.
00:47:19 <ehird> fizzie: AnMaster hates git
00:47:25 <ehird> but that hate doesn't seem to be based on logic
01:07:52 -!- Slereah has quit (Read error: 60 (Operation timed out)).
01:12:56 -!- sebbu has quit ("@+").
01:15:37 -!- zoltran has joined.
01:19:04 -!- zoltran has left (?).
01:41:24 -!- CakeProphet has joined.
01:43:16 <CakeProphet> redivider looks nifty
01:43:43 <ehird> yes
01:44:07 <oklopol> hi cakey long time no see
01:44:53 <CakeProphet> Hey... okie?
01:44:59 <CakeProphet> I keep popping in occasionally
01:45:03 <oklopol> yes
01:45:22 <CakeProphet> I can't really say I've been busy though, I've just been out of the loop
01:45:36 <oklopol> yeah, me too. out of all loops really
01:49:52 <CakeProphet> the only real ideas I've gotten lately that I haven't really seen much of deals with event-based programming
01:50:17 -!- PovAddict has joined.
01:50:58 <CakeProphet> when <condition>: <action>
01:51:17 <CakeProphet> like a come from that's useful
01:51:30 <oklopol> yeah i have a few of that kinda langs
01:51:40 <oklopol> but they're a bit rare, and they're pretty nice
01:52:27 <oklopol> you get a nice declarative paradigm if condition is simply a boolean expression
01:52:37 <CakeProphet> the main question is in what order execution should take place... and where the control flow should go afterwards.
01:52:48 <oklopol> well i'd go for nondeterminism
01:53:16 <oklopol> and no control flow except the comefroms is pretty natural.
01:53:29 <oklopol> but if you had some kinda imperative core, that might be pretty tasty
01:53:53 <oklopol> basically run some kinda statements one by one, and have comefroms with triggers
01:54:12 <CakeProphet> imperitive seems the most natural
01:54:33 <CakeProphet> not really esoteric... but deliciously cause-effect anyways.
01:54:49 <oklopol> sounds pretty delicious yes
01:55:17 <PovAddict> has anyone here used Whirl?
01:55:27 <oklopol> keymaker made a quine in it recently
01:55:32 <oklopol> that's all i've heard about the lang
01:55:44 <PovAddict> ah that enormous quine :P
01:55:57 <oklopol> hmm. no i don't think it was that enormous
01:56:13 <oklopol> compared to that one other quine of his
01:56:18 <oklopol> don't remember the language
01:56:23 <PovAddict> I only tried it in the Flash VM and it ran for quite long without outputting anything, so I closed it
01:56:24 <CakeProphet> the more I look at io's specs the more I like it
01:56:26 <oklopol> but it was like dozens of pages
01:56:29 <CakeProphet> I think I'm going to download it and play with it some
01:56:38 <PovAddict> should try with a proper interpreter later
01:57:52 <PovAddict> I've yet to see a Whirl program using PAdd (program jump)
01:59:00 <PovAddict> maybe this quine uses it... I don't see too many other ways to make a Whirl program whose output isn't much smaller than the code itself
01:59:10 <PovAddict> (in this case, equal)
01:59:50 <GregorR> I'm addicted to having a point of view too.
01:59:53 <oklopol> isn't padd the only way to do control flow?
02:00:13 <CakeProphet> -downloads io-
02:00:29 <oklopol> okokokoko
02:08:06 <CakeProphet> anyone ever used Q?
02:33:48 <bsmntbombdood> this conversation is impossible to follow, all four of you are the same color
02:57:37 -!- GreaseMonkey has joined.
03:20:19 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
03:28:12 -!- oerjan has quit ("Good night").
04:46:48 -!- Azstal has joined.
04:55:08 -!- ab5tract has joined.
05:02:36 -!- ab5tract has quit.
05:04:32 -!- Asztal has quit (Read error: 110 (Connection timed out)).
05:04:52 -!- Sgeo has quit ("Ex-Chat").
05:23:21 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)).
05:23:27 -!- puzzlet has joined.
06:14:29 -!- moozilla has joined.
06:15:29 -!- metazilla has quit (Read error: 60 (Operation timed out)).
06:24:37 -!- immibis has joined.
07:05:37 -!- immibis has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. and email ths to).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:05:03 -!- jix has joined.
08:05:10 -!- jix has quit (Remote closed the connection).
08:05:17 -!- jix has joined.
08:26:50 -!- PovAddict has quit (Read error: 104 (Connection reset by peer)).
08:27:14 -!- metazilla has joined.
08:27:14 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
08:27:22 -!- metazilla has changed nick to moozilla.
08:35:07 -!- metazilla has joined.
08:35:08 -!- moozilla has quit (Read error: 54 (Connection reset by peer)).
08:35:17 -!- metazilla has changed nick to moozilla.
08:35:54 -!- jix has quit ("Computer has gone to sleep").
09:00:15 -!- GreaseMonkey has quit ("So, how much do you love noodles?").
09:11:00 -!- Azstal has quit (Read error: 110 (Connection timed out)).
09:35:33 -!- metazilla has joined.
09:35:35 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
09:35:41 -!- metazilla has changed nick to moozilla.
09:36:33 -!- metazilla has joined.
09:36:38 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
09:36:43 -!- metazilla has changed nick to moozilla.
09:40:49 -!- metazilla has joined.
09:40:50 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
09:40:59 -!- metazilla has changed nick to moozilla.
09:57:16 -!- moozilla has quit (Read error: 104 (Connection reset by peer)).
09:57:21 -!- moozilla has joined.
10:06:51 -!- Corun has joined.
10:07:25 -!- moozilla has quit (Read error: 54 (Connection reset by peer)).
10:07:27 -!- metazilla has joined.
10:23:29 -!- metazilla has quit (Read error: 104 (Connection reset by peer)).
10:23:31 -!- moozilla has joined.
11:07:26 -!- metazilla has joined.
11:07:32 -!- moozilla has quit (Nick collision from services.).
11:19:18 -!- moozilla has joined.
11:28:09 -!- metazilla has quit (Read error: 110 (Connection timed out)).
11:32:14 -!- Corun has quit ("This computer has gone to sleep").
11:38:00 -!- metazilla has joined.
11:38:02 -!- moozilla has quit (Nick collision from services.).
12:01:23 -!- sebbu has joined.
12:01:37 -!- moozilla has joined.
12:01:39 -!- metazilla has quit (Read error: 104 (Connection reset by peer)).
12:01:46 -!- moozilla has changed nick to metazilla.
12:16:46 -!- moozilla has joined.
12:16:47 -!- metazilla has quit (Read error: 104 (Connection reset by peer)).
12:16:57 -!- moozilla has changed nick to metazilla.
12:22:48 -!- Sgeo has joined.
12:45:37 -!- Hiato has joined.
12:46:17 -!- pikhq has quit (Remote closed the connection).
12:54:17 -!- Hiato has quit ("Underflow").
12:55:56 -!- AquaLoqua has joined.
13:09:28 -!- pikhq has joined.
13:29:21 -!- CakeProphet has joined.
13:37:05 -!- AquaLoqua has quit ("Dana").
14:13:40 <AnMaster> hm ais523 isn't marked away
14:13:52 <AnMaster> so I guess you are there ais523?
14:15:57 <AnMaster> seems like the answer is no
14:23:17 <oklopol> o
14:30:09 <oklopol> hmm.
14:30:24 <oklopol> wonder how hard it is to compile bf with unbounded cells to bf with bounded cells
14:38:49 <AnMaster> oklopol, you mean bignum to unsigned byte?
14:41:12 <oklopol> compile bf with unbounded nonnegative cells to bf with bounded unsigned cells
14:41:26 <AnMaster> hm
14:41:46 <AnMaster> well I would first compile it to C with bounded integers, then use gcc-bf
14:41:54 <AnMaster> highly suboptimal
14:42:29 <oklopol> heh.
14:43:22 <AnMaster> well one issue is that if a cells grows you may need to move all other cells upwards
14:43:29 <oklopol> i can easily do something like store numbers in base 255, storing numbers 0-254 as numbers 1-255, and use a zero byte as a marker between numbers.
14:43:44 <oklopol> and move the whole tape contents to the right when a carry happens over the number boundary
14:43:57 <oklopol> that's probably faster than whatever gcc-bf would do.
14:44:01 <AnMaster> indeed
14:44:30 <oklopol> my point was, is there some nice kinda interleaving of the bytes of the numbers
14:44:30 <AnMaster> oklopol, but if you suddenly run out of space for the lowest cell you need to move all above it upwards
14:44:43 <oklopol> without the need to bookkeeping that requires unbounded cells
14:44:47 <oklopol> *for
14:45:05 <oklopol> AnMaster: yes, that's why that's a bad idea.
14:45:07 <fizzie> After moving the tape, you also need to find your way back where you were, which might involve some other marker value.
14:45:31 <AnMaster> indeed
14:45:52 <AnMaster> which is why gcc-bf would be easier, though even less efficient
14:45:58 <fizzie> If you want a fixed-size (N) tape of unbounded numbers, and you have an infinite tape of bounded numbers, you can of course store the bytes of the k'th number at k, k+N, k+2*N, ...
14:48:39 <AnMaster> interleaving data like that is really confusinf
14:48:41 <AnMaster> confusing*
14:49:36 <oklopol> yeah probably better to use two bytes to represent a number boundary, one for marking current cell, one for storing a static zero.
14:49:57 <oklopol> one doesn't work, at least easily, because you need bookkeeping when doing the bookkeeping required for it, i think.
14:50:04 <oklopol> which is quite hard to do.
14:50:38 <oklopol> fizzie: yeah that works
14:50:38 <oklopol> but
14:50:59 <oklopol> my point was, can you easily do that without needing unbounded cells for the bookkeeping when locating the bytes
14:51:09 <oklopol> the indices get pretty big.
14:51:58 <AnMaster> easy, store the length of the length
14:52:00 <oklopol> well, you just need one number for that, so guess you could use a simpler interleaving for it, like have every other byte zero and use that for the index
14:52:02 <AnMaster> then for that length:
14:52:14 <AnMaster> store the length as a number of zero bytes
14:52:31 <AnMaster> the length of the length is the same length as the count of those zero bytes
14:52:33 <AnMaster> XD
14:52:48 <oklopol> there are a lot of ways, i don't see a use for something more complicated than storing it as BBBBBB0
14:53:02 <fizzie> What do you need the cell indices for?
14:53:28 <oklopol> fizzie: say i add 1 to byte 2 of a number, i need to locate byte 1 if there's a carry
14:53:33 <AnMaster> oklopol, what if there is a 0 in the BBBBB series?
14:53:40 <oklopol> can you do that without actually calculating the index of byte 1?
14:53:43 <AnMaster> like 0xff0055
14:53:45 <AnMaster> that number
14:53:59 <oklopol> AnMaster: 0-254 stored as 1-255 as i said
14:54:10 <oklopol> but let's not bikeshed
14:54:12 <AnMaster> hm
14:54:18 <oklopol> this is a trivial problem.
14:54:30 <oklopol> i mean, finding a way to store *one* number.
14:55:03 <AnMaster> you could ask the user to write it down
14:55:10 <AnMaster> and then do various operations on it
14:55:18 <oklopol> write what down
14:55:22 <AnMaster> the number
14:55:23 <AnMaster> ;P
14:55:24 <fizzie> I'm not good at brainfuck, but you do have the pointer pointing there, and two completely different operations; <> for "move to prev/next cell" and "<<<[N of 'em]<<<"-style for "move to prev/next byte".
14:56:00 <oklopol> fizzie: that works in a static context, yes.
14:56:10 <oklopol> but i need to have the same code for adding two adjacent integers, naturally
14:56:19 <oklopol> and that code changes depending on the cell location
14:57:03 <oklopol> err
14:57:15 <oklopol> and n <'s won't even work within one number
14:57:19 <oklopol> hmm
14:57:24 <oklopol> yeah okay it would for byte 2
14:57:37 <fizzie> Hmm? You can just swabble around between the same byte in the two adjacent integers, add it, then continue to the next byte if there's carry, or something.
14:57:42 <oklopol> but *obviously* the code for doing carries for *one* number needs to work for any number length
14:57:53 -!- oerjan has joined.
14:57:57 <oklopol> yes, but how do i go to the next byte?
14:57:59 <oklopol> that's the issue
14:58:16 <oklopol> the code needs to be the same no matter which byte of the number i'm in
14:58:16 <fizzie> With N >s? That moves always from byte k of cell l to byte k+1 of cell l.
14:58:23 <oklopol> err.
14:58:37 <oklopol> fizzie: If you want a fixed-size (N) tape of unbounded numbers, and you have an infinite tape of bounded numbers, you can of course store the bytes of the k'th number at k, k+N, k+2*N, ...
14:58:38 <oklopol> okay
14:58:39 <oklopol> sorry
14:58:42 <oklopol> i read that as 2^N
14:58:54 <oklopol> assumed you were solving the problem i asked a solution for
14:59:11 <oklopol> that's a solution to a trivial problem :P
14:59:30 <fizzie> Well, you just said "bf with unbounded cells to bf with bounded cells" without mentioning the length of the tape.
14:59:56 <oklopol> sorry, it was implicit i want my bf to have an infinite tape.
15:00:11 <fizzie> Well, you would.
15:00:19 <oklopol> err i would?
15:00:27 <oklopol> not with your scheme
15:00:28 <fizzie> You're the kind of guy who likes infinite things.
15:00:32 <oklopol> ah
15:00:34 <fizzie> I mean, you would want it.
15:00:35 <oklopol> you meant it like that
15:00:37 <oklopol> yes
15:00:39 <oklopol> i definitely would
15:00:43 <oklopol> so bad
15:01:16 <oklopol> but
15:01:17 <oklopol> still
15:01:24 <oklopol> if you're assuming bf doesn't have an infinite tape
15:01:34 <oklopol> then you need to assume that for both bf's i was talking about.
15:01:41 <oklopol> in which case your scheme doesn't have bignums.
15:01:47 <oklopol> you can't have them on a finite tape
15:02:03 <oklopol> so i'm pretty sure you should've known i meant an infinite amount of bignums.
15:02:39 <fizzie> It was just a random comment that you can trade infinite storage of one kind (finite amount of bignums) into an infinite storage of another kind (infinite amount of bounded integers) reasonably easily.
15:02:54 <oklopol> yes, that is true.
15:03:47 <oklopol> but i misread it, and got pissed at myself.
15:03:52 <fizzie> I wouldn't want to be the one who has to write the arithmetics for a system where you have an infinite amount of infinite sequences interleaved on a tape.
15:04:12 <oklopol> you wouldn't?
15:04:18 <oklopol> well that's just silly :P
15:05:30 <fizzie> It doesn't sound simple. Of course you can interleave them "diagonally" like A1, A2, B1, A3, B2, C1, A4, B3, C2, D1, but moving around there without single-cell bignums doesn't sound very much fun.
15:06:04 <oerjan> oklopol: i would like to point out that incrementing a number and propagating a carry _are_ the same operation, and independent of position
15:06:17 <oerjan> similarly for decrement and borrowing
15:06:24 <oklopol> hmm
15:06:28 <oklopol> oerjan: what do you mean?
15:06:34 <oklopol> oh
15:06:39 <oklopol> yeah true, sure
15:06:55 <oerjan> so it should not be a problem with the BBBB0 style
15:07:13 <oklopol> definitely not, it's just that you need to move the whole tape around.
15:08:11 <oklopol> guess you could simulate boolfuck on it, use the bytes for just booleans, would make the moving part faster
15:08:12 <oerjan> but on the other hand any other solution seems to me to require indices to find out how far you need to go
15:08:26 <oklopol> oerjan: yes, but you could use BBB0 for the indices
15:08:31 <oklopol> because you only need a few of them
15:08:42 <oklopol> so it's not really a problem.
15:08:52 <oklopol> though i'm not sure that actually make things that much faster
15:09:10 <oklopol> if you're moving around a tape, you need to be movign the indices around anyway
15:09:19 <oklopol> could just as well be moving the tape contents too.
15:09:48 <oklopol> why doesn't my uni give out any esolang courses :<
15:10:04 <oerjan> oklopol: too few mad professors
15:10:31 <ehird> hey oklopol
15:10:35 <ehird> we could establish an irc universe.
15:10:40 <ehird> with esolang courses.
15:10:41 <ehird> err
15:10:45 <ehird> s/universe/university/
15:10:48 <ehird> although universe sounds better.
15:11:01 <oklopol> that's actually something vjn has been contemplating for a long time
15:11:13 <oerjan> a sufficiently mad university is indistinguishable from a universe
15:11:34 * oklopol hopes to be a mad professor one day
15:11:42 <ehird> oklopol: you need to get gray hair
15:11:43 <oerjan> with all the crazy spacetime experiments going on
15:11:50 <ehird> and also stop being cool
15:11:52 <ehird> have fun
15:12:20 <oklopol> "the basics of esoteric programming", "brainfuck algorithms"...
15:12:27 * oerjan imagines a mad scientist getting ostracized by his colleagues when they discover he is coloring his hair
15:12:35 <oklopol> heh
15:14:07 <oerjan> actually, evil mad scientists can be bald too, i think
15:14:45 <AnMaster> hm
15:14:59 <oerjan> the good ones need to have grey hair, and/or be little kids
15:15:16 <AnMaster> is there any language that is easily provable to be tc but is exceedingly hard to prove bf-complete? That is the same IO capabilities as bf
15:15:19 <oerjan> mind you my data is a bit sketchy
15:15:34 <AnMaster> would it be possible to construct such a language?
15:15:37 <oerjan> AnMaster: Underload, duh
15:15:57 <AnMaster> oerjan, you can prove it to not have the same output capability
15:16:08 <AnMaster> can't output non-matched ()
15:16:20 <AnMaster> I meant one that is hard to find out if it is bf complete
15:16:29 <AnMaster> with underload that is trivial
15:16:33 <ehird> i'm a little kid
15:16:34 <oerjan> well why didn't you say so :D
15:16:34 <ehird> do i count
15:16:53 <oerjan> ehird: maybe, can you test your death ray somewhere spectacular?
15:16:54 <AnMaster> oerjan, I thought I said so, but maybe I didn't
15:17:04 <oerjan> oh wait i said _good_ mad scientists
15:17:08 <ehird> oerjan: do you like jupiter?
15:17:15 <ehird> i don't, either
15:17:17 <ehird> should i get rid of it?
15:17:25 <oerjan> ehird: maybe something that would create less debris
15:17:40 <ehird> oerjan: i can zap the debris too.
15:17:42 <oerjan> unless your death ray takes care of that
15:17:44 <oerjan> ok then
15:17:52 <AnMaster> anyway
15:18:01 <AnMaster> would such a language as I mentioned be possible?
15:18:01 <ehird> it's a gravitational antiforce blackhole/wormhole-directed-at-itself hybrid
15:18:08 <ehird> ok, jupiter going in 3...2..1..
15:18:10 <ehird> ZAPPPPPPP
15:18:13 <ehird> ok, jupiter's gone
15:18:20 <ehird> but it looks like it's still there
15:18:26 <ehird> because it's so big that the image will take a few years to fade
15:18:29 <ehird> maybe even decades.
15:18:32 <ehird> centuries!
15:18:33 <oerjan> AnMaster: well it's just a matter of making binary I/O sufficiently awkward isn't it
15:18:42 <oerjan> like INTERCAL but worse
15:18:48 <AnMaster> oerjan, hm I guess so
15:19:43 <oerjan> ehird: interesting effect given that Jupiter is only a few light hours away
15:20:05 <ehird> oerjan: hey, this is what happens when you mess with jupiter.
15:20:09 <ehird> it's a pretty crazy thang
15:20:09 <oerjan> ah
15:20:22 <ehird> oerjan: it is not actually composed of gas, but gravity.
15:20:25 <ehird> pure gravity.
15:20:28 <oerjan> ehird: oh wait, i wasn't thinking. will this mess up my horoscope much?
15:20:40 <ehird> oerjan: just ignore all the bad bits
15:20:43 <ehird> jupiter is responsible for them.
15:20:47 <oerjan> ah
15:20:52 <oerjan> exc-ell-ent
15:21:03 <ehird> [[although i can't recall any horoscope ever saying anything non-vaguely bad]]
15:21:18 <ehird> "YOU WILL DIE TOMORROW"
15:21:24 <ehird> ^ fucking jupiter
15:21:33 -!- Sgeo has quit ("Ex-Chat").
15:21:46 <AnMaster> or "at 15:23 you will break a leg"
15:21:56 <oklopol> :P
15:22:22 <oklopol> it'd be cool if there was a horoscope that told exactly what'll happen
15:22:26 <oklopol> ...and it'd really happen
15:22:30 <ehird> yes
15:22:43 <oklopol> ...but only if you *believe* it
15:22:47 <oerjan> "beware of siamese twins today"
15:22:58 <oklopol> heh
15:23:46 <oklopol> "win the lottery today, it'll bring you luck"
15:23:50 <oerjan> the technical problem is that newspaper horoscopes only have 12 options for all readers to share
15:23:52 <ehird> lol
15:23:57 <ehird> oerjan: just change time
15:24:05 <ehird> so that everyone in the same sign has exactly the same day.
15:24:18 <oklopol> yeah, that's a bit stupid about hs
15:24:24 <ehird> that's a bit problematic if you make them die ofc
15:24:28 <ehird> less profit
15:24:28 <oklopol> haha
15:24:40 <AnMaster> heh
15:24:52 <AnMaster> you could special case it
15:25:07 <AnMaster> "if your name begins with S beware of falling rocks"
15:26:01 <ehird> doo da bop
15:26:22 <ehird> http://www.engadget.com/2008/11/17/the-bacon-iphone-sleeve-for-discerning-eyes-only/
15:26:35 <oerjan> mm, bacon
15:27:19 <ehird> yes
15:27:23 <ehird> thought:
15:27:25 <ehird> get bacon to write horoscopes
15:27:27 <ehird> it can do no wrong
15:27:28 <oklopol> bacon is a fun food.
15:27:49 <AnMaster> is it real bacon?
15:27:51 <oklopol> "ling" is thai, it means "ape"
15:27:53 <AnMaster> or just looks like it?
15:28:04 <oklopol> it's real bacon alright
15:28:08 <AnMaster> seems to be coloured wool on that pic
15:28:18 <oklopol> can't you see the fat dripping of it
15:28:24 <AnMaster> nop
15:28:24 * oklopol goes, NOW
15:28:25 <oklopol> ->
15:31:42 <ehird> btw
15:31:49 <ehird> i wanna go to jupiter sometime
15:31:51 <ehird> but i zapped it
15:31:53 <ehird> fuck :D
15:32:58 <AnMaster> ehird, it isn't zapped yet, due to speed of light it will be a few hours before it reach Jupiter, so just invent faster than light travel, go there and visit, and leave before it gets zapped
15:40:41 <ehird> hi ais523
15:40:49 <AnMaster> hello ais523
15:41:05 <ais523> hi AnMaster
15:48:07 <AnMaster> ais523, you had forgot to use /away last time it seems
15:57:23 <oerjan> AnMaster: I had assumed the bouncer did that automatically. Perhaps he wasn't properly disconnected.
16:00:27 <AnMaster> hm ok
16:01:33 <ehird> -psyBNC: Mon Nov 17 15:40:36 :connect from sm01-fap05.bham.ac.uk
16:01:33 <ehird> [15:40] -psyBNC: Mon Nov 17 15:40:39 :User ais523 logged in.
16:01:33 <ehird> [15:52] -psyBNC: Mon Nov 17 15:52:38 :User ais523 disconnected (from
16:12:44 * ehird considers gobolinux+etoile
16:20:06 -!- puzzlet has quit (Remote closed the connection).
16:20:11 -!- puzzlet has joined.
16:26:17 -!- d4064684 has joined.
16:26:25 -!- d4064684 has changed nick to Asztal.
16:36:48 <AnMaster> heh fun: http://www.suckless.org/programs/ii.html
16:40:46 -!- Asztal has quit (Remote closed the connection).
16:43:23 -!- Asztal has joined.
16:47:24 <AnMaster> ais523, what is the link for gcc-bf now again?
16:47:46 <ais523> AnMaster: there's an out of date version online, let me post the most recent version, then I'll tell you the URL
16:48:11 <ais523> actually... it's a bit hard to separate the bits that are mine from the bits that aren't atm
16:48:14 <ais523> and I don't have a build system
16:48:15 <AnMaster> ah
16:48:23 <ais523> not entirely sure what I should paste, exactly
16:49:05 <AnMaster> hm
16:49:13 <AnMaster> don't you have a darcs repo?
16:49:32 <ais523> not really
16:49:34 <ais523> it's not for the whole thing
16:49:39 <ais523> just for the gcc backend thing
16:49:44 <ais523> and I'm not using it as proper version control
16:49:53 <ais523> just as a place to store deleted code, rather than commenting it out
16:50:01 <ais523> gcc-bf's a mess from the project management point of view
16:54:34 <AnMaster> heh
16:54:39 <AnMaster> ais523, how complete is it
16:54:49 <AnMaster> and what would the steps be to try it out
16:54:56 <ais523> AnMaster: almost, just need a sane build system and the bit that actually produces the BF itself
16:55:06 <AnMaster> ais523, also aren't you using the gcc build system for the gcc backend?
16:55:10 <ais523> yes, I am
16:55:14 <ais523> except that I have to wrap it
16:55:18 <AnMaster> ah
16:55:19 <ais523> it's sort of confusing
16:55:24 <ais523> bits of the Makefile run three times
16:55:24 <AnMaster> ais523, you don't produce any bf?
16:55:28 <AnMaster> I thought you said you did
16:55:32 <ais523> it gets as far as ABI
16:55:39 <ais523> and then produces the BF for the constants at the start
16:55:47 <ais523> but that's just +++++>>>>>>+++>>>>>+++++>>>>>> stuff
16:55:49 <AnMaster> brb phone
16:56:10 -!- oerjan has quit ("leaving").
17:04:07 <AnMaster> back
17:04:14 <AnMaster> ais523, hm ok
17:04:23 <AnMaster> ais523, so how would I go about building this?
17:04:27 <AnMaster> what gcc version and so on
17:04:33 <ais523> my current build system is full of hardcoded paths
17:04:38 <ais523> but basically, it works like this:
17:04:38 <AnMaster> ah
17:04:41 <ais523> first, you patch gcc
17:04:43 <AnMaster> I got gcc 4.3.2 here
17:04:48 <ais523> and it's a particular version the patches are against, let me check
17:04:49 <AnMaster> as the system gcc
17:04:57 <ais523> 4.2.3
17:05:01 <AnMaster> or 4.1.2 on my amd64
17:05:05 <ais523> although ofc they might work against other versions too
17:05:11 <ais523> just I haven't tried
17:05:15 <AnMaster> well my system gcc are those two
17:05:18 <ais523> then there's a patch for the makefile too
17:05:49 <AnMaster> ais523, is this gcc a vanilla gcc or a distro gcc?
17:05:59 <AnMaster> I mean is it already patched
17:06:11 <AnMaster> mean,*
17:07:00 <AnMaster> ais523, =
17:07:01 <AnMaster> ?
17:07:37 <ais523> ugh, sorry
17:07:39 <ais523> connection...
17:07:41 <AnMaster> ah
17:07:50 <AnMaster> <ais523> then there's a patch for the makefile too
17:07:50 <AnMaster> <AnMaster> ais523, is this gcc a vanilla gcc or a distro gcc?
17:07:50 <AnMaster> <AnMaster> I mean, is it already patched
17:08:00 <ais523> it's the Debian sources
17:08:02 <ais523> for gcc
17:08:10 <ais523> I think that's ready-patched
17:08:12 <AnMaster> well is it patched or an upstream one
17:08:15 <AnMaster> ah
17:08:24 <AnMaster> so do I need the debian one then?
17:08:29 <AnMaster> and how on earth do I get hold of it
17:08:31 <ais523> hmm... the simplest solution is almost certainly just to redistribute the whole tarball
17:08:34 <ais523> my code and other people's
17:08:37 <AnMaster> considering I'm no debian user
17:09:09 <AnMaster> ais523, would be better if it also was possible to get the specific parts
17:09:18 <AnMaster> in order to upgrade to a new gcc
17:09:20 <ais523> yes
17:09:29 <ais523> although gcc changes the internal interfaces around quite a lot, it seems
17:09:36 <AnMaster> oh hm
17:09:55 <AnMaster> ais523, well main issue here I see is that I can't easily find a debian gcc afaik
17:10:17 <ais523> I should just send you my gcc tarball
17:10:26 <ais523> or at least I would if I could figure out how it interacts with the build system
17:10:27 <AnMaster> not by mail
17:10:29 <ais523> as it's in more than one directory
17:10:39 <ais523> hmm... probably best is if you wait until my Christmas holidays
17:10:45 <AnMaster> my isp limits it to 10 mb
17:10:47 <ais523> then I can attempt to figure out wtf is going on
17:10:50 <AnMaster> the mail account
17:10:53 <ais523> and no, probably by http
17:15:55 <AnMaster> ais523, this is a nice irc client: http://www.suckless.org/programs/ii.html
17:16:35 <AnMaster> and meanwhile I have extended the ideas for my potential esolang FS a bit
17:16:43 <ehird> i request that everyone stop talking to AnMaster so i don't have to read monologues
17:16:45 <ehird> actually forget tha
17:16:46 <ehird> t
17:16:47 <ehird> they're funny
17:16:48 <ehird> :D
17:17:31 <ais523> "the big brother of sic"
17:17:36 <ais523> ha!
17:18:40 <AnMaster> ais523, what are the different subdirs at http://code.eso-std.org/gcc-bf/ ?
17:19:38 <ais523> bf-ld is the stuff that runs after gcc (the implementation of as and ld, mostly); config-bf is the bit that goes inside gcc, libbf is C code for the standard library, and bitemplate is an attempt at figuring out the build system
17:19:50 <AnMaster> ah
17:20:29 <AnMaster> loloop <-- laughing out loud object oriented programming?
17:20:34 <AnMaster> http://code.eso-std.org/gcc-bf/libbf/longjmp.S
17:20:48 <ais523> AnMaster: it's the low-overhead loop command
17:20:55 <ais523> unfortunately gcc's optimiser doesn't seem to generate them
17:21:04 <AnMaster> ais523, how do you mean low overhead?
17:21:05 <ais523> but vaguely speaking, a typical loop is implemented in terms of computed gotos
17:21:09 <ais523> whereas a loloop is just []
17:21:23 <AnMaster> ais523, well does many machines have something like a loloop?
17:21:24 <ais523> "low overhead loop" is a technical term in the gcc docs
17:21:28 <ais523> AnMaster: quite a few do
17:21:32 <AnMaster> oh?
17:21:39 <ais523> even x86 has the rep instruction
17:21:43 <ais523> but that only does one command
17:21:47 <AnMaster> hm
17:21:51 <ais523> most of the loloop-wielding machines I see have registers
17:21:57 <ais523> which basically put a goto into the code at runtime
17:22:03 <ais523> and decrement stuff at the same time
17:22:48 <AnMaster> ais523, how would I download this and set it up?
17:22:53 <AnMaster> wget -r?
17:22:55 <AnMaster> for download?
17:23:03 <ais523> yes, wget -r for download
17:23:09 <ais523> and with great difficulty in terms of setting it up
17:23:11 <AnMaster> well wget -m -np I guess
17:23:14 <ais523> some of the files you need aren't even there
17:23:24 <AnMaster> ais523, ok, care to upload the files at least
17:23:28 <AnMaster> and some vague hints
17:23:37 <AnMaster> I can figure out how to fix build failures usually
17:23:42 <AnMaster> but here I got no idea where to start
17:24:10 <ais523> I'm trying to figure out where to start atm
17:24:13 <AnMaster> haha
17:24:14 <ais523> everything depends on everything else...
17:24:30 <AnMaster> ais523, so you can't begin with compiling gcc-bf?
17:24:34 <AnMaster> then do the linker and so on
17:24:54 <AnMaster> wait the linker is just perl
17:24:56 <ais523> let's see... you do linker first
17:25:01 <ais523> but it doesn't need compiling as it's Perl
17:25:08 <AnMaster> ais523, you just put it in path or?
17:25:48 <ais523> ugh, unfortunately not
17:25:55 <AnMaster> oh?
17:25:57 <ais523> I had enough pain trying to get gcc to look in the right directory to start with
17:26:16 <ais523> let me try to find my config.status, then at least I'll know what the configure command line is
17:26:25 <AnMaster> heh
17:29:50 <AnMaster> ais523, hm?
17:30:15 <AnMaster> ais523, lets say I got the whole /home/gcc-bf for doing this
17:30:21 <ais523> # This directory was configured as follows,
17:30:22 <ais523> # on host dell:
17:30:23 <ais523> #
17:30:25 <ais523> # /home/ais523/esoteric/brainfuck/gccbf/gcc-4.2-4.2.3/gcc-20080201/configure --target=bf --prefix=/home/ais523/esoteric/brainfuck/gccbf/gcc-4.2-4.2.3/build2/buildinto --with-sysroot=/home/ais523/esoteric/brainfuck/gccbf/gcc-4.2-4.2.3/build2/buildinto --with-build-time-tools=/home/ais523/esoteric/brainfuck/gccbf/gcc-4.2-4.2.3/build2/buildinto/bin --disable-libssp --enable-languages=c
17:30:27 <ais523> ugh
17:30:29 <AnMaster> heh
17:30:44 <ais523> also, it was with a patched Makefile
17:30:45 <AnMaster> so where would the linker be?
17:30:51 <ais523> it was in /bin
17:30:52 <ais523> of buildinto
17:30:53 <AnMaster> ais523, which isn't uploaded?
17:31:05 <ais523> it is, but in a different directory
17:31:13 <AnMaster> um ok
17:31:21 <ais523> as I said, this thing is an utter mess
17:31:35 <AnMaster> well I'll guess I'll skip it for now
17:31:40 <AnMaster> why build2 btw?
17:31:55 <ais523> because I got confused trying to figure out what had happened to the original build directory
17:32:01 <ais523> I probably have to make build3 sometime soon...
17:32:06 <AnMaster> heh
17:32:16 <AnMaster> ais523, you mean build system got borked
17:32:19 <AnMaster> ?
17:32:21 <ais523> no, it was working fine
17:32:26 <ais523> I just couldn't figure out how
17:32:31 <AnMaster> huh?
17:32:47 <ais523> AnMaster: the whole thing is a mess of twisty little shell scripts, all alike
17:32:56 <ais523> which all reference hardcoded paths in other directories
17:33:14 <AnMaster> well I'm quite good at shell scripts, so I guess I could help clean it up
17:33:21 <ais523> the scripts are fine
17:33:23 <AnMaster> I was thinking of doing that for iffi build script
17:33:32 <ais523> just... tracing what happens when is hard enough
17:33:38 <AnMaster> hard coded paths aren't fine
17:33:39 <ais523> I'm not even sure I know which one you're meant to run first
17:33:43 <ais523> well, yes
17:33:48 <ais523> they're hard-coded relative paths
17:33:56 <ais523> but still, they're to things which should be elsewhere
17:34:05 <ais523> mostly it's that the directory structure they're in is confused
17:34:06 <AnMaster> heh?
17:34:33 <ais523> here's one of them, as an example:
17:34:36 <ais523> rm -f gcc/libgcc.a
17:34:38 <ais523> rm -f gcc/libgcc/*
17:34:39 <ais523> make && make install && (cd ../buildinto/libexec/gcc/bf/4.2.3/install-tools/ ; ./mkheaders)
17:34:43 <AnMaster> ais523, btw did I tell you that cfunge builds under Open64 too?
17:34:49 <ais523> no, you didn't
17:34:56 <AnMaster> well it does.
17:35:10 <AnMaster> gcc, icc, open64
17:35:20 -!- puzzlet_ has joined.
17:35:59 <AnMaster> no longer clang, since it seems clang silently miscompiled a feature used in cfunge, which however didn't affect cfunge (heh), but now it aborts on it instead
17:36:11 <AnMaster> but considering that clang is pre 0.0.1 still
17:36:12 <ais523> what feature is that?
17:36:31 <AnMaster> ais523, struct mystruct variable = { .fieldname = foo }
17:36:36 <AnMaster> C99 thing
17:36:39 <ais523> ah, yes
17:36:57 <AnMaster> something I use in many cases, often for clarity
17:37:07 <AnMaster> it is so much easier to see what is going on using it
17:37:57 <AnMaster> ais523, btw Open64 pretends to be GCC, even cmake gets confused by it (it manages to understand that icc isn't gcc, even though icc pretends to be)
17:38:14 <AnMaster> however it also accepts gcc flags
17:38:14 <ais523> does autoconf get confused by it?
17:38:20 <AnMaster> but:
17:38:22 <AnMaster> opencc WARNING: -Wdisabled-optimization is ignored
17:38:35 <AnMaster> ais523, haven't tried
17:38:35 <ais523> it looks for what the compiler does, not what it is
17:38:39 <AnMaster> they all define __GNUC__
17:38:56 <AnMaster> ais523, well so do I most of the time
17:39:10 <AnMaster> and I check that the warning flags actually work
17:39:36 <AnMaster> but the irritating bit here is that open64 claims it works then outputs a warning it is ignored
17:40:27 <AnMaster> clang says this btw:
17:40:28 <ais523> AnMaster: check on code that shouldn't produce the warning too
17:40:32 <AnMaster> /home/anmaster/cfunge/trunk/src/interpreter.c:78:3: error: cannot codegen this initializer list with designators yet
17:40:52 -!- Mony has joined.
17:41:00 <AnMaster> ais523, well I do check that it compiles, checking compiler output would be more complex
17:41:11 <AnMaster> I mean stderr output
17:41:34 <AnMaster> considering some compilers, like icc, tends to output even when everything is ok
17:41:43 <AnMaster> it's default verbosity level is rather high
17:42:04 <Mony> plop
17:42:12 <ais523> couldn't you use -Werror and check the exit code?
17:42:31 <AnMaster> ais523, hm.
17:42:38 <AnMaster> not all compilers support it
17:42:42 <AnMaster> unsure about open64
17:42:47 <AnMaster> since it seems to lack all form of man pages
17:42:54 <ais523> you can deduce whether it supports it or not
17:43:04 <ais523> you only need three tests
17:43:18 <ais523> warningy program without -Werror, non-warningy program with -Werror, warningy program with -Werror
17:43:24 <AnMaster> well I actually do a check for the compiler type before testing all the warning flags
17:43:39 -!- psygnisfive has quit (Remote closed the connection).
17:43:46 <ais523> if the third one is the only one with nonzero exit status, -Werror probably does what you want
17:44:04 <AnMaster> but seems it seems to be some "look like gcc" tournament it rather messes up the the check
17:44:11 <AnMaster> but since*
17:44:35 <AnMaster> even clang defines __GNUC__
17:45:44 <ais523> that's for header files
17:45:56 <ais523> just like everything defines STDC, even things that don't conform to the C standard
17:46:28 <AnMaster> only one that doesn't define __GNUC__ so far is tcc, which a) doesn't optimise except turning very basic constant arithmetic expressions into one value, such as 2*2 into 4. b) has too incomplete C99 support to get anywhere with cfunge.
17:46:39 <AnMaster> tcc compiles c-intercal though
17:46:53 <ais523> C-INTERCAL should in theory compile on everything which supports prototypes
17:46:57 <AnMaster> ais523, well IMO the defines should make sense
17:47:01 <ais523> it used to compile on compilers before that too, I think
17:47:14 <AnMaster> if I want to check for a specific compiler I should be able to
17:47:17 <ais523> whether it links is another matter, rather depends on what's in the standard library
17:47:23 <AnMaster> if I want to optionally use a feature of it
17:47:34 -!- puzzlet_ has quit (Remote closed the connection).
17:47:39 -!- puzzlet_ has joined.
17:47:54 <AnMaster> then if something defines that but it fails to understand that feature you have to realise how faulty the idea was in the first place
17:47:54 -!- puzzlet has quit (Read error: 110 (Connection timed out)).
17:48:14 <AnMaster> to pretend to do something you dont'
17:48:17 <AnMaster> don't*
17:48:27 <ais523> AnMaster: anyway, I'm working on gcc-bf build3 right now
17:48:32 <ais523> once I figure out how it's done I'll tell you
17:48:34 <AnMaster> ais523, that other can use?
17:48:38 <AnMaster> heh
17:48:39 <ais523> and this time I'll keep a record of everything that I do
17:48:49 <AnMaster> ais523, right. btw did I tell you about WLIW?
17:49:09 <AnMaster> I'm sure you know about VLIW architectures
17:49:11 <ais523> no, you mentioned it but didn't say what it was
17:49:14 <AnMaster> but what about WLIW ones
17:49:21 <AnMaster> Wood Log In Wall
17:49:28 <AnMaster> not computer architecture
17:49:29 <AnMaster> ;P
17:49:45 <AnMaster> very bad joke yes
17:50:09 <AnMaster> (VLIW being Very Long Instruction Word)
17:50:23 <AnMaster> ais523, ping?
17:50:38 <ais523> AnMaster: pong!
17:50:59 <AnMaster> I wonder why I didn't get any comment on the joke
17:51:14 <ais523> because it isn't a very good one...
17:52:11 <AnMaster> true
17:52:21 <AnMaster> so a "groan" would have been the correct response
17:52:38 <ais523> no, groaning is done for jokes so bad you enjoy them
17:52:41 <ais523> whereas that one's just bland
17:52:42 <AnMaster> in fact since oerjan specialize in good puns
17:52:51 <AnMaster> I will specialize in bad and bland ones
17:53:16 <AnMaster> as a particle and an anti-particle
17:53:23 <AnMaster> this is the matching anti-joke
17:58:26 <ehird> AnMaster? a bland joke?
17:58:28 <ehird> shocking!
17:58:56 <AnMaster> ehird, yes indeed that is what my goal is
18:07:56 <AnMaster> ais523, coopt.sh in ick got a typo:
18:08:01 <AnMaster> # This optimizer is only run on noninteractive code that takes no
18:08:01 <AnMaster> # output.
18:08:05 <AnMaster> surely that should be input?
18:08:09 <ais523> ah, yes
18:08:12 <AnMaster> unless you have used XCHG on them
18:08:14 <AnMaster> in intercal
18:08:20 <ais523> wait...
18:08:26 <ais523> no, output is output in INTERCAL, but it's read
18:08:29 <ais523> and input is written
18:11:34 <AnMaster> ais523, err
18:11:41 <AnMaster> ais523, so is the wording correct?
18:11:45 <ais523> no, it isn't
18:11:49 <AnMaster> right
18:11:52 <ais523> but it's a comment bug, not as important as a code bug...
18:12:05 <AnMaster> also well yes from the user point of view the input is written and output read
18:12:09 <AnMaster> ais523, indeed
18:16:05 -!- psygnisfive has joined.
18:16:48 <AnMaster> ais523, i was thinking of fixing cftoec.sh to make it actually work
18:17:02 <AnMaster> however, do it need to use this pre-posix shell syntax?
18:17:12 <AnMaster> a posix shell can handle [] at least iirc
18:17:15 <AnMaster> instead of test
18:17:17 <ais523> AnMaster: as I've completely changed the build system around it there's no point
18:17:30 <AnMaster> ais523, compared to the last pushed version or what?
18:17:33 <ais523> also, why can't I write out test? it's in POSIX too
18:17:36 <ais523> no, not compared to last pushed
18:17:39 <ais523> compared to last release
18:17:40 <AnMaster> well
18:17:46 <ais523> last pushed doesn't handle cfunge build at all
18:17:53 <AnMaster> I was thinking of making it work for out of build tree
18:18:03 <AnMaster> out of tree build*
18:18:05 <AnMaster> in build tree
18:18:37 <AnMaster> but I'm unsure how to figure that out
18:18:39 <AnMaster> easiest would be:
18:18:53 <ais523> AnMaster: it should work for both out-of-tree and in-tree
18:19:07 <AnMaster> run in build dir, first argument is path to ick source, second path to cfunge source
18:19:17 <AnMaster> for in tree it would be . for the first
18:19:42 <AnMaster> ais523, there is no gpl header or otherwise a copyright header so I'm unable to edit it
18:19:44 <AnMaster> ;P
18:20:00 <AnMaster> hm
18:20:04 <ais523> AnMaster: it's GPLv2+, I should put an explicit header there though
18:20:21 <AnMaster> maybe autoconf could be made to insert source and build paths in the script?
18:21:18 <ais523> yes, it could
18:21:31 <ais523> how would it work, a --with-cfunge=/home/AnMaster/cfunge?
18:21:31 <AnMaster> ah ../c-intercal/src/cooptsh.in
18:21:44 <AnMaster> ais523, hm maybe that would work
18:21:50 <AnMaster> don't like to mess with automess so...
18:21:58 <AnMaster> but I can make the script work somewhat
18:27:28 <AnMaster> ais523, --std?
18:27:32 <AnMaster> afaik it is a single -
18:27:44 <AnMaster> yep
18:27:47 <ais523> it's either iIRC
18:27:58 <AnMaster> man page only lists single dash here
18:28:21 <ais523> use info, gcc's man pages are really incomplete
18:28:49 <AnMaster> info pages are horribly hard to use
18:33:10 <AnMaster> find . -name '*.c' -printf "gcc $CFLAGS -c %p -o %f.o\n" | sh <-- huh?
18:35:31 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:55: varning: implicit deklaration av funktionen "FungeSpaceCreate"
18:35:31 <AnMaster> hm
18:35:35 <AnMaster> need to update those
18:37:58 -!- Sgeo[College] has joined.
18:43:13 <fizzie> There are nicer info readers than the default one; I always use "pinfo gcc" when I want GCC flags.
18:44:11 <fizzie> (Although it makes me sad that I have to have "considered non-free by Debian" packages installed just to see GCC documentation.)
18:44:22 -!- Sgeo[College] has left (?).
18:46:02 <AnMaster> haha
18:46:07 <AnMaster> pinfo isn't free?
18:46:16 <fizzie> No, pinfo is free, GCC's docs aren't.
18:46:24 <AnMaster> ais523, well fixing all the build errors, expect a patch later today
18:46:33 <ais523> thanks
18:46:34 -!- pinkillo has joined.
18:47:05 <pinkillo> hello
18:47:32 <ais523> hello
18:47:36 <ais523> what brings you here?
18:47:41 <pinkillo> nothing
18:48:40 <AnMaster> hm
18:48:53 <pinkillo> what does we speak here?
18:49:03 <AnMaster> ais523, a question:
18:49:08 <AnMaster> unsigned char * restrict str = stack_pop_string(ip->stack);
18:49:09 <AnMaster> ick_create(str, l);
18:49:13 <AnMaster> when do you free that string?
18:49:16 <ais523> pinkillo: esoteric programming languages
18:49:34 <ais523> AnMaster: I don't, I think
18:49:36 <pinkillo> esoteric programming language??
18:49:40 <pinkillo> what does it mean?
18:49:41 <ais523> as ick_create was designed to be passed pointers to string literals
18:49:49 <AnMaster> ais523, hm
18:49:56 <ais523> pinkillo: programming languages outside the mainstream
18:49:57 <AnMaster> err
18:50:00 <ais523> designed as jokes or for fun
18:50:00 <AnMaster> ah
18:50:02 <ais523> or to try things out
18:50:06 <ais523> rather than for practical uese
18:50:08 <pinkillo> thk
18:50:10 <ais523> *practical use
18:50:50 <AnMaster> ais523, what does ick_create do?
18:51:03 <fizzie> Um... is http://esolangs.org/wiki/Esoteric_programming_language supposed to look a bit... strange, or is my browser just acting up?
18:51:05 <ais523> AnMaster: implements a create statement
18:51:17 <ais523> basically it just puts an entry into a hash table
18:51:20 <ais523> which isn't a hash table really
18:51:20 <AnMaster> ais523, worth noting is that the pointer that stack_pop_string() returns may pointer to a larger alloced area than the string
18:51:23 <AnMaster> it currently does
18:51:27 <ais523> just a linear-search lookup table
18:51:30 <AnMaster> but may change without prior notice
18:51:34 <ais523> and it doesn't matter how large the alloced area is
18:51:39 <AnMaster> ok
18:51:50 <ais523> just as long as it doesn't mysteriously free behind my back
18:52:57 <AnMaster> it shouldn't
18:53:17 <AnMaster> ais523, however I expect a few things will be renamed soon
18:53:23 <AnMaster> in fact I'll rename them right now
18:53:36 <AnMaster> I saw some typos of my identifiers when I was editing the IFFI fingerprints
18:53:48 <AnMaster> and one that didn't get changed in name conversion
18:54:32 <pinkillo> what the differences between variable and constant???
18:54:57 <AnMaster> um
18:54:59 <ais523> pinkillo: generally speaking, variables can change values and constants can't
18:55:08 <pinkillo> thk
18:55:11 <AnMaster> ais523, not true for SSA though
18:55:18 <ais523> AnMaster: yes
18:55:35 <ais523> and constants can change values in some langs, such as Forte, INTERCAL, and early versions of Fortran
18:55:45 <pinkillo> hash tables is taht a constant a varible a fonction an object???
18:55:53 <ais523> pinkillo: it's a data type
18:55:58 <ais523> so it's a sort of value
18:55:59 <AnMaster> ais523, certain pascal and/or delphi version
18:56:11 <pinkillo> hmm
18:56:21 <AnMaster> versions*
18:56:26 <AnMaster> allowed you to change constants
18:57:16 <ais523> C-INTERCAL will block blatant assignments like DO #1 <- #2 unless you give it the -v switch
18:57:25 <ais523> but there are various more devious ways to assign to constants
18:57:38 <AnMaster> ais523, heh?
18:57:46 <AnMaster> well I guess you could in C using pointers
18:57:54 <AnMaster> except it wouldn't actually work
18:58:10 <AnMaster> you would get a segfault
18:58:26 <ais523> AnMaster: actually, in some versions of C char* a="Hello, world!"'' *a='J'; works
18:58:35 <ais523> *AnMaster: actually, in some versions of C char* a="Hello, world!"; *a='J'; works
18:58:36 <AnMaster> well not on modern platforms
18:58:57 <AnMaster> it would work on older ones that lack memory protection I guess
18:59:09 <AnMaster> so you can't set memory as read only
18:59:38 <AnMaster> however since I don't work with such environments it is not anything I have ever seen
19:01:31 <pinkillo> why do you put '*' front of char ??? it is the same statement as DIM in basic?
19:01:44 <lament> ***???
19:01:53 <AnMaster> is this a troll?
19:02:01 <pinkillo> hm..
19:02:03 <lament> ???
19:02:12 <lament> pinkillo: habla usted C?
19:02:26 <pinkillo> whats is c?
19:03:17 <pinkillo> ok
19:03:18 <pinkillo> cya
19:03:21 <pinkillo> by
19:03:22 -!- pinkillo has quit.
19:03:28 <AnMaster> oh my
19:04:34 -!- AquaLoqua has joined.
19:05:14 <fizzie> Modifying a string literal works on this Alpha/Tru64-V5.1B box, which isn't that non-modern; even the hardware is from this millennium.
19:05:53 <AnMaster> fizzie, what compiler?
19:06:00 <AnMaster> for me it segfaults
19:06:18 <fizzie> GCC 3.0; although the vendor's compiler does the same.
19:06:32 <AnMaster> fizzie, 3.0....
19:06:32 <ais523> AnMaster: gcc has a command-line option to not segfault when writing to a literal string
19:06:35 <AnMaster> that is old old
19:06:40 <AnMaster> ais523, had, iirc they removed it
19:06:49 <ais523> no, some old programs need it to compile
19:07:02 <AnMaster> ais523, if you mean writable-strings it is removed
19:07:29 <ais523> really?
19:07:39 <AnMaster> ah hm wait
19:07:41 <AnMaster> -fno-const-strings
19:08:53 <AnMaster> ais523, I can't find it in GCC 4.3.2 man page
19:08:55 <fizzie> http://gcc.gnu.org/gcc-4.0/changes.html does say: "GCC no longer accepts the -fwritable-strings option. Use named character arrays when you need a writable string."
19:09:00 <ais523> ah, ok
19:09:03 <AnMaster> but it does exist in 4.1.2
19:09:09 <ais523> strings are writable in gcc-bf, btw
19:09:14 <ais523> just as a side-effect of how I implement pointers
19:09:31 -!- Hiato has joined.
19:09:35 <fizzie> Anyway, 3.0 isn't "old old", it's (again) this millennium.
19:10:38 <fizzie> "It's not old if it starts with a '2'."
19:10:51 <AnMaster> um
19:10:55 <AnMaster> 2 is old
19:10:58 -!- AquaLoqua has quit ("Dana").
19:11:00 <fizzie> I mean the year.
19:11:08 <AnMaster> ah
19:11:28 <AnMaster> fizzie, well I would be amazed if cfunge compiled on it
19:11:37 <AnMaster> cfunge does compile with gcc 3.4.6 iir
19:11:38 <AnMaster> iirc*
19:11:46 <AnMaster> I don't have any older to test with
19:12:30 <fizzie> There's no cmake on that box; is there a way to work around that? Although I'm not sure I'll bother.
19:12:34 <AnMaster> ais523, you said ick_create() wants a string literal?
19:12:40 <AnMaster> then why the heck do I get this for a const char*:
19:12:44 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:111: warning: passing argument 1 of ‘ick_create’ discards qualifiers from pointer target type
19:12:52 <AnMaster> you need to fix your prototype to say const char*
19:12:55 <ais523> well, yes
19:13:04 <ais523> everywhere in the whole giant compiler
19:13:11 <ais523> C-INTERCAL was invented before const was, I think
19:13:13 <AnMaster> I may make patches :P
19:13:14 <ais523> or at least before it caught on
19:13:28 <AnMaster> cfunge uses it correctly everywhere
19:14:19 <ais523> AnMaster: you have to get your head around just how old C-INTERCAL is, it used to not use header files but instead declare library functions inside functions
19:14:41 <ais523> as in main()int argc, char** argv{extern char* sprintf(); /*... */
19:14:50 <AnMaster> err
19:14:51 <AnMaster> what?
19:14:57 <ais523> that still works I think, but I don't know anyone who's written it deliberately in decades
19:15:01 <AnMaster> ais523, oh and IFFI lacked a header file
19:15:06 <ais523> ah, ok
19:15:08 <AnMaster> gettimeofday() is in sys/time.h
19:15:11 <AnMaster> you had forgot that
19:15:31 <AnMaster> anyway I replaced it with the logic for looking for clock_gettime() that i use in cfunge now
19:15:49 <AnMaster> #ifdef HAVE_clock_gettime
19:15:49 <AnMaster> # include <time.h>
19:15:49 <AnMaster> #else
19:15:49 <AnMaster> # include <sys/time.h>
19:15:49 <AnMaster> #endif
19:15:49 <AnMaster> #include <assert.h>
19:15:57 <AnMaster> err the last one wasn't related
19:16:00 <ais523> HAVE_clock_gettime's in my config.h
19:16:21 <AnMaster> ais523, defined to 0 or undefined when off?
19:16:32 <ais523> it's undef against defined to 1, IIRC
19:16:34 <AnMaster> cfunge expects #define/#undef
19:16:41 <AnMaster> instead of 1/0
19:16:42 <AnMaster> ok
19:16:44 <AnMaster> should work then
19:16:56 <AnMaster> ais523, remember what I said about no librt on freebsd
19:17:33 <ais523> hmm, I do but I haven't worked out a fix for it yet
19:17:43 <ais523> even a sane one would do
19:17:49 <AnMaster> CFUNGE_CHECK_FUNC(clock_gettime)
19:17:49 <AnMaster> if (NOT CFUNGE_HAVE_clock_gettime)
19:17:49 <AnMaster> find_library(LIBRT_LOCATION
19:17:49 <AnMaster> NAMES rt)
19:17:49 <AnMaster> endif (NOT CFUNGE_HAVE_clock_gettime)
19:17:58 <AnMaster> get_filename_component(LIBRT_PATH ${LIBRT_LOCATION} PATH)
19:17:58 <AnMaster> CFUNGE_CHECK_LIBRARY_FUNC(cfunge rt clock_gettime ${LIBRT_PATH})
19:18:09 <AnMaster> that is how I do it
19:18:11 <ehird> fizzie:
19:18:16 <AnMaster> ais523, rather cmake specific
19:18:25 <ehird> does fungot prefer more common follow-ons in its babble
19:18:26 <fungot> ehird: " 195? 2. darwin thoroughly appreciated/ good work put into/ stocks, and snapdragons. -in fnord millefolium. -effect :) climate :) an opposite state, to/ height :) many hundred feet.
19:18:32 <AnMaster> but iirc autoconf got a "search in libraries, pick the first matching one" function, right?
19:18:39 <ais523> but ideally it would do something silly like chroot to a copy of the filesystem with a symlink in there, or use some sort of ldd hack to replace fopen librt to fopen libc
19:18:55 <AnMaster> ais523, eh what?
19:19:23 <ais523> AnMaster: I was trying to think up a really silly way around the problem
19:19:32 <AnMaster> I never build as root
19:19:32 <fizzie> ehird: Hmm? Yes, the "next word" probabilities come directly from the n-gram frequencies; so if it has "foo bar" as context, and the data contains "foo bar baz" thrice and "foo bar quux" once, it selects baz with a 75 % probability and quux with 25 %.
19:19:35 <AnMaster> so chroot would fail
19:19:41 <ehird> OK.
19:19:44 <ais523> hmm... use fakeroot then I suppose
19:19:49 <fizzie> ^style
19:19:49 <fungot> Available: agora alice darwin* discworld europarl ff7 fisher ic irc lovecraft pa speeches ss wp
19:19:55 <ehird> I'm trying to think how to make a markov bot that is gud at the punctuatinz
19:19:56 <fizzie> ^style irc
19:19:57 <fungot> Selected style: irc (IRC logs of freenode/#esoteric, freenode/#scheme and ircnet/#douglasadams)
19:19:59 <ais523> I think it can simulate chroots, not sure though
19:20:10 <ehird> i.e. has nested stuff, i guess, so parens[a b c] -> (a b c)
19:20:21 <fizzie> fungot would be reasonably good with punctuation if I just implemented what I did in the C++ code.
19:20:21 <fungot> fizzie: perhaps, if it were b, they'd already have stuck him full of probes and returned home, and realised i forgot to tell you
19:20:37 <AnMaster> — Macro: AC_SEARCH_LIBS (function, search-libs, [action-if-found], [action-if-not-found], [other-libraries])
19:20:37 <AnMaster> Search for a library defining function if it's not already available. This equates to calling `AC_LINK_IFELSE([AC_LANG_CALL([], [function])])' first with no libraries, then for each library listed in search-libs.
19:20:38 <AnMaster> hm
19:20:41 <AnMaster> I suspect:
19:21:10 <fizzie> (Which was a stack of current "open paren/quote/etc" so that it could discard spurious ")"-like things, and finally stick all the necessary closing parts at the end of the output.)
19:21:12 <AnMaster> AC_SEARCH_LIBS(clock_gettime, rt)
19:21:13 <AnMaster> or such
19:21:17 <AnMaster> not sure of exact syntax
19:21:23 <AnMaster> you probably need a few []
19:21:46 <AnMaster> ais523, anyway http://www.gnu.org/software/autoconf/manual/html_node/Libraries.html#Libraries
19:21:50 <AnMaster> it seems to solve the issue
19:21:54 <AnMaster> in a neat and sane way
19:22:05 <ais523> yes, pity, but I'll probably use it anyway
19:22:06 -!- Asztal has quit ("ChatZilla 0.9.84 [Firefox 3.0.4/2008102920]").
19:22:15 <ais523> and that would work with 0, 1 or 2 []s around each arg
19:22:39 <AnMaster> ais523, not sure
19:22:45 <AnMaster> probably you need one around each
19:22:56 <AnMaster> ais523, and I don't know if it should be librt or just rt
19:23:01 <ais523> 1 or 2 would be the correct official amount
19:23:03 <AnMaster> for cmake you normally skip the "lib" part
19:23:14 <ais523> 2 as it's string literals, 1 as it's args, it doesn't matter because it comes to the same thing either way
19:23:28 <AnMaster> ais523, yeah 0 probably works...
19:23:36 <AnMaster> well
19:23:41 <AnMaster> make it 1 for rt at least
19:24:12 <ais523> in case it's defined to something?
19:24:17 <ais523> you'd need 2 to protect against taht
19:24:19 <ais523> *that
19:24:28 <AnMaster> ais523, hm about config.h
19:24:33 <AnMaster> cfunge expects it on command line
19:24:38 <AnMaster> would need some changes in some way
19:24:40 <AnMaster> unsure how
19:24:44 <ais523> that's easy enough to fix
19:24:49 <ais523> you can choose where the substitutions go
19:24:58 <ais523> so just substitute into the makefile instead
19:25:01 <AnMaster> -DHAVE_acosl -DHAVE_asinl -DHAVE_atanl -DHAVE_cosl -DHAVE_powl -DHAVE_roundl -DHAVE_sinl -DHAVE_sqrtl -DHAVE_tanl -DHAVE_clock_gettime
19:25:08 <AnMaster> those are all the HAVE that I use
19:25:27 <ais523> I use quite a bit more than that IIRC
19:25:28 <AnMaster> for the math ones I fall back on the classical double versions
19:25:43 <AnMaster> ais523, well that is because I have a different "base line" that I support
19:26:18 <AnMaster> mine is FreeBSD 6.3 or POSIX.1-2001, whichever is the lowest
19:28:25 <AnMaster> ais523, now I get this:
19:28:30 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:43: warning: no previous prototype for ‘ick_SaveIPPosDelta’
19:28:30 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:51: warning: no previous prototype for ‘ick_RestoreIPPosDelta’
19:28:30 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:59: warning: no previous prototype for ‘ick_InterpreterRun’
19:28:30 <AnMaster> ./src/fingerprints/IFFI/IFFI.c:94: warning: no previous prototype for ‘ick_iffi_InterpreterOneIteration’
19:28:58 <ais523> AnMaster: that's because it's trying to link against code in C-INTERCAL itself
19:29:03 <ais523> presumably it would want me to put that in a shared header file
19:29:40 <AnMaster> ais523, you use CamelCase? Since cfunge use _ instead of CamelCase since some time
19:29:48 <AnMaster> that was the bulk of the changes I had to make
19:29:52 <ais523> haven't really had a chance to update it
19:30:03 <ais523> C-INTERCAL itself mostly uses lowercaseruntogethercase
19:30:06 <AnMaster> anyway
19:30:13 <AnMaster> ‘ick_InterpreterRun’ isn't in ick itself
19:30:21 <AnMaster> it is just that it is missing from IFFI.h
19:30:41 <AnMaster> gcc complains because you didn't make it static, nor put it in a header
19:30:42 <AnMaster> :P
19:31:40 <ais523> ugh
19:32:16 <AnMaster> well I used the same warning flags I used for cfunge normally to check the code, I found a bug with one of the functions I only have there for your sake thanks to that
19:32:26 <AnMaster> a missing cast in fungespace_load_string()
19:33:34 <AnMaster> ais523, where are they called from?
19:33:46 <AnMaster> since they aren't listed in "// Externally-visible functions from IFFI.c"
19:33:49 <AnMaster> in the header for it
19:34:05 <ais523> let me try to remember
19:34:21 <ais523> ick_InterpreterRun is called from cfunge itself
19:34:25 <AnMaster> also there is a call to ick_InterpreterMainLoop() and that I got no clue where it is
19:34:29 <ais523> *C-INTERCAL
19:34:45 <ais523> AnMaster: are you looking in the INTERCAL half of the IFFI stuff?
19:34:50 <AnMaster> iffi stuff
19:34:56 <ais523> that should explain where most of the missing references are
19:34:57 <AnMaster> as in IFFI.c
19:35:13 <AnMaster> ais523, where is the other half then?
19:35:34 <ais523> I've forgotten, let me try to find it
19:36:37 <ais523> AnMaster: pit/explib/ecto_b98.c:
19:36:42 <ais523> um, without the colon
19:36:57 <ais523> that's what's calling the functions
19:37:36 <AnMaster> hm
19:38:58 <AnMaster> ugh you mix forward declarations with external ones
19:40:03 <AnMaster> ais523, are you aware of that you are using mixed spaces and tabs for indention?
19:40:11 <ais523> yes
19:40:25 <ais523> that's correct, it saves on file size when transmitting over Usenet
19:40:32 <AnMaster> sigh
19:40:35 <ais523> as long as tabs are set to 8 spaces, which is industry standard
19:40:53 <AnMaster> ais523, maybe it was, but no sane modern user or editor use that any more
19:41:16 <AnMaster> struct ick_ipposdeltatype {
19:41:16 <AnMaster> long long ix, iy, dx, dy;
19:41:16 <AnMaster> };
19:41:17 <AnMaster> um?
19:41:21 <AnMaster> why long long?
19:41:25 <ais523> AnMaster: it stores the IP position and delta
19:41:33 <AnMaster> yes but you use -DUSE32
19:41:46 <ais523> yes, but I wanted to make sure it was big enough even if the define was different
19:41:52 <AnMaster> and cfunge use either int32_t or int64_t
19:42:01 <AnMaster> and long long can be *anything*
19:42:09 <ais523> well, it has to be at least 64 bits
19:42:09 <AnMaster> you can't know how large long long is
19:42:13 <ais523> thus large enough to store the deltas
19:42:26 <AnMaster> hm
19:42:26 <ais523> I'm not relying on wraparound, it's signed anyway so you can't rely on behaviour for out-of-range
19:42:39 <AnMaster> well true
19:43:13 -!- Corun has joined.
19:44:23 <AnMaster> "The 0x70001ff1 is a magic number used specifically by this code"?
19:44:32 <AnMaster> yet I don't see that value except in the comment?
19:45:12 <AnMaster> oh wait
19:45:22 <AnMaster> it is one screen above the comment
19:45:29 <AnMaster> ais523, ... ^
19:45:35 <ais523> let me look at that again
19:45:40 <ais523> see if I can figure out how it happened
19:46:42 <ais523> AnMaster: oh, that's correct, it's commenting the use of the number two screenfuls down
19:47:00 <ais523> and it's at the top because the comment is about the control flow in the function
19:47:14 <ais523> which can either use autogenerated numbers (the very next line) or a magic number written later
19:47:20 <AnMaster> err
19:47:21 <AnMaster> what?
19:47:23 * ais523 can write sane C, but chooses not to when working on C-INTERCAL
19:47:26 -!- kar8nga has joined.
19:47:51 <AnMaster> I didn't even understand that logic
19:48:19 <ais523> AnMaster: you need to know something of how ick_ec.h works to follow that logic
19:48:27 <AnMaster> well I guess so
19:48:30 <ais523> and remember that INTERCAL code doesn't run from top to bottom
19:48:45 <ais523> it's sort of like annotating the target of a COME FROM to explain stuff about the COME FROM itself
19:48:49 <ais523> or vice versa
19:48:52 <AnMaster> anyway what was the command to build using iffi, I mean building a test program
19:48:55 <AnMaster> since I need that now
19:49:33 <ais523> ick -eb iffit1.i iffit2.b98
19:49:35 <ais523> I think
19:49:45 <ais523> iffit1.i and iffit2.b98 can be found in pit/tests
19:49:58 -!- puzzlet_ has quit (Read error: 60 (Operation timed out)).
19:50:17 <AnMaster> hm
19:50:38 <ais523> you don't need the -b if you like to live dangerously
19:50:42 <AnMaster> ais523, what about ecto_b98.c?
19:51:02 <AnMaster> since I needed to modify it
19:51:04 <ais523> AnMaster: that's linked in automatically when it sees -e and a file ending .b98
19:51:12 <AnMaster> ais523, so where does it look for the file?
19:51:14 <ais523> it's installed somewhere
19:51:21 <ais523> in /usr/share/ick-0.29 I think
19:51:34 <AnMaster> ah /home/anmaster/local/ick-iffi/share/ick-0.29/ecto_b98.c
19:51:34 <ais523> or possibly /usr/include
19:51:37 -!- puzzlet has joined.
19:51:40 <ais523> so yes, shaer
19:51:41 <ais523> *share
19:51:59 <ais523> could be either I suppose, it should be in the place for "include files written in a different language"
19:52:27 <AnMaster> ICL899I HELLO?
19:52:28 <AnMaster> err?
19:52:47 <ais523> ugh, I can't remember what that one is straight off either
19:53:11 <ais523> AnMaster: it couldn't find libick_ecto_b98
19:53:17 <AnMaster> ah
19:53:20 <ais523> which is the file the build system's meant to have been building in the first plcae
19:53:22 <ais523> *place
19:53:28 <ais523> *libick_ecto_b98.a
19:54:50 <AnMaster> it got a bug
19:54:59 <AnMaster> output doesn't match iffit.doc
19:55:06 <ais523> interesting
19:55:08 <ais523> how different is it?
19:55:08 <AnMaster> last line is XV
19:55:15 <ais523> ugh, wrong command line
19:55:18 <ais523> try with -bea
19:55:19 <AnMaster> XIV
19:55:20 <AnMaster> 15
19:55:20 <AnMaster> 16
19:55:20 <AnMaster> 17
19:55:20 <AnMaster> XV
19:55:21 <ais523> that kept tripping me up too
19:55:22 <AnMaster> like that
19:55:26 <AnMaster> what is the -a for?
19:55:33 <ais523> support for CREATE statements
19:55:39 <AnMaster> ah
19:55:41 <AnMaster> then it works
19:56:56 -!- KingOfKarlsruhe has joined.
19:57:04 <AnMaster> It is an interesting challenge to try to figure out how the tests
19:57:05 <AnMaster> work, especially given that the Funge program is self-modifying, the
19:57:05 <AnMaster> statements in the INTERCAL program don't always do the same thing
19:57:05 <AnMaster> every time they're run, and the Funge program modifies the syntax of
19:57:05 <AnMaster> the INTERCAL program at runtime.
19:57:07 <AnMaster> hehe
19:57:29 <ais523> this is needed for a thorough test suite...
19:57:46 <AnMaster> ais523, um didn't you say mid dot was the same in utf8?
19:57:50 <AnMaster> my terminal disagrees
19:58:21 <ais523> AnMaster: no, not in UTF8
19:58:21 <AnMaster> with iso-whatever it shows a middot, in utf8 it shows a box
19:58:24 <ais523> it's in Latin-1
19:58:30 <ais523> which is iso-whatever, yes
19:58:36 <ais523> it's the same in Unicode
19:58:36 <AnMaster> and what other one?
19:58:39 <ais523> but UTF8 != Unicode
19:58:43 <AnMaster> ah right
19:58:43 <AnMaster> hm
19:58:54 <ais523> you'd need to use UTF-9 or bignum characters to get it to work in a Unicode character set
19:59:06 <AnMaster> UCS-2?
19:59:07 <ais523> and AFAIK nothing implements UTF-9, therefore I must add it to convickt I suppose
19:59:21 <AnMaster> ais523, what about UTF-16?
19:59:21 <ais523> AnMaster: nope, uses two bytes per char so is incompatible with Funge
19:59:26 <AnMaster> ah hm true
19:59:27 <AnMaster> right
19:59:35 <AnMaster> well UTF-9 wouldn't work either
19:59:36 <ais523> AnMaster: UTF-16 is UCS-2, pretty much, the differences are too minor to be relevant here
19:59:44 <AnMaster> unless CHAR_BITS = 9
19:59:44 <ais523> AnMaster: it would on a 9-bit system
19:59:46 <AnMaster> which doesn't work
19:59:51 <AnMaster> according to POSIX 2001
19:59:54 <ais523> AnMaster: why wouldn't CHAR_BIT=9 work?
20:00:07 <AnMaster> ais523, all types must be a multiple of CHAR_BITS
20:00:22 <AnMaster> so int can be 4 times as large for example
20:00:23 <AnMaster> however
20:00:28 <AnMaster> that doesn't work for int32_t
20:00:32 <AnMaster> which C also defines
20:00:35 <ais523> AnMaster: your code is buggy
20:00:38 <AnMaster> if CHAR_BITS isn't a multiple of 2
20:00:40 <ais523> you should be using int_least32_t
20:00:52 <ais523> int32_t doesn't exist if there isn't a 32-bit type for it to refer to
20:00:54 <AnMaster> ais523, no I shouldn't, I'm using int32_t because that is what 32-bit funge means
20:00:59 <AnMaster> it means exactly 32 bits
20:01:06 <ais523> you could simulate it on a 36-bit system, surely?
20:01:15 <AnMaster> ais523, give me one to test on?
20:01:21 <ais523> well, exactly
20:01:25 <ais523> I'd have to write an emulator first
20:01:35 <ais523> just because the technology doesn't exist, though, doesn't mean C-INTERCAL shouldn't handle it
20:01:38 <AnMaster> well POSIX.1-2001 says CHAR_BITS nowdays have to be exactly 8
20:01:46 <AnMaster> on POSIX conforming systems
20:01:46 <ais523> although I perfectly understand cfunge not running on that sort of thing
20:01:56 <AnMaster> since otherwise you can't have int8_t
20:02:18 <AnMaster> and using int_least8_t makes no sense if you need to read a binary file format for example
20:02:46 -!- KingOfKarlsruhe has quit (Remote closed the connection).
20:03:22 <AnMaster> ais523, but really the C standard only allow a multiple of 2 these days
20:03:29 <fizzie> Don't those systems usually just read binary files as nonets where the highest bit is always zero?
20:03:42 <AnMaster> fizzie, heh? maybe
20:03:51 <ais523> fizzie: probably they have options, and converters, and such
20:04:13 <ais523> I'm more worried with figuring out how to represent UTF-9 on an 8-bit system
20:04:19 <ais523> it would be in C-INTERCAL already if not for that
20:05:21 <AnMaster> ais523, err where is ick_iffi_handle_control called from
20:05:29 <AnMaster> it is implemented in ecto_b98.c
20:05:43 <AnMaster> but it doesn't seem to be called anywhere
20:06:26 <ais523> AnMaster: let me grep for it
20:06:31 <fizzie> ais523: You can represent it by packing your stuff stuff into units of four UTF-9 characters, and then representing those as 7 base64 characters; that should be perverse enough for everyone. And email-safe!
20:07:36 <AnMaster> wtf
20:07:40 <ais523> AnMaster: what is it actually called?
20:07:46 <ais523> that name doesn't seem to appear anywhere in my repo
20:08:00 <AnMaster> ick_iffi_HandleControl
20:08:02 <AnMaster> I think
20:08:25 <AnMaster> where is char* ick_iffi_befungeString? Everywhere I look it is extern
20:08:34 <AnMaster> so where is the actual non-extern one
20:08:48 <ais523> AnMaster: both are in generated code
20:08:52 <ais523> that's why you couldn't find them
20:09:00 <AnMaster> the handle one too?
20:09:01 <AnMaster> ok
20:09:06 <AnMaster> where is it declared
20:09:07 <ais523> for the first one, the name is irrelevant except the linker needs to find it somewhere
20:09:18 <AnMaster> ais523, so how can I rename it?
20:09:21 <AnMaster> to the underscore one
20:09:30 <AnMaster> since you seem to try to write the same style of names as I do
20:09:42 <AnMaster> so since I changed logically so should you
20:09:52 <ais523> the second one is in perpet.c
20:09:54 <ais523> in a string literal
20:09:57 <AnMaster> and for ick_iffi_befungeString it needs to be changed to unsigned
20:10:05 <AnMaster> since that is what befunge expects nowdays
20:10:13 <ais523> AnMaster: but it's just a string literal
20:10:19 <ais523> and string literals aren't of type unsigned char*
20:10:20 <AnMaster> hm ok I'll cast it
20:10:27 <AnMaster> ais523, const char*
20:10:32 <ais523> yes
20:10:33 <AnMaster> which on my system seems to be signed
20:10:52 <AnMaster> befunge uses unsigned char* for all strings nowdays
20:11:00 <AnMaster> but a cast would work yes
20:11:49 <AnMaster> ais523, anyway where is ick_iffi_handle_control named then?
20:12:12 <ais523> AnMaster: the name is irrelevant, it's just because it needs something to pass to the linker
20:12:19 <ais523> you could call it foo and the compiler wouldn't care
20:12:29 <AnMaster> so do I need to update some linker script?
20:12:32 <ais523> but then it might clash with a user-defined identifier foo if someone was linking INTERCAL/C/Befung
20:12:33 <ais523> *Befunge
20:12:37 <ais523> and no, it's automatically handled
20:12:41 <AnMaster> aha
20:12:51 <ais523> the ICK_EC_FUNCTION_START generates the prototypes and the wrapper code and everything
20:13:14 <Mony> 'night
20:13:40 -!- Mony has quit ("Join the Damnation now !").
20:15:38 <AnMaster> hm
20:16:10 <AnMaster> /tmp/ecto_b98.c:78: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ick_restore_ip_pos_delta’
20:16:11 <AnMaster> huh
20:16:19 <AnMaster> oh
20:16:23 <ais523> AnMaster: is that the first error?
20:16:30 <ais523> that normally means missing header file, IIRC
20:16:32 <AnMaster> I fixed it
20:16:35 <AnMaster> it was externvoid
20:16:39 <AnMaster> instead of a extern void
20:16:56 <AnMaster> works now
20:19:21 <AnMaster> ais523, does posix shell support +=
20:19:26 <AnMaster> for string concat
20:19:34 <AnMaster> I know bash does but..
20:22:19 -!- Hiato has quit (Read error: 60 (Operation timed out)).
20:22:35 <AnMaster> ais523, ?
20:22:43 <ais523> AnMaster: I'm not sure
20:22:48 <ais523> I prefer to keep to very simple stuff
20:22:54 <ais523> it should run on shells from decades ago ideally
20:22:58 <AnMaster> # Please enable this when making changes. Requested by the cfunge author.
20:22:58 <AnMaster> #CFLAGS="$CFLAGS -Wall -Wextra -pedantic -Wpointer-arith -Wimplicit -Wnested-externs -Wcast-align -Wcast-qual -Wbad-function-cast -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wparentheses -Wshadow -Wundef -Wpacked -Wredundant-decls -Wfloat-equal -Wstrict-aliasing=2 -Wformat=2 -Wdisabled-optimization -Wmissing-noreturn -Wmissing-format-attribute -Wdeclaration-after-statement -Wunuse
20:22:58 <AnMaster> d-function -Wunused-label -Wunused-value -Wunused-variable -Wwrite-strings"
20:23:00 <AnMaster> ;P
20:23:07 <ais523> heh
20:23:36 <AnMaster> well it is what i use in cfunge basically, well I use a few more that give spurious warnings for this code
20:23:47 <AnMaster> ais523, btw this prototype looks odd to me:
20:23:48 <AnMaster> extern void ick_create(char*, unsigned long);
20:23:52 <AnMaster> you are missing parameter names
20:24:02 <AnMaster> which are useful for understanding wtf the code does
20:25:39 <psygnisfive> FINNS!
20:25:47 <psygnisfive> WHERE ARE YOU ALL
20:25:55 <oklopol> o
20:26:02 <psygnisfive> http://uk.youtube.com/watch?v=nUyFg9xoPKk
20:26:21 <ais523> AnMaster: it creates an entry in a hash table
20:26:44 <ais523> if you like, call it char* signature, unsigned long line_number_variant_that_isnt_used_for_a_global_variable
20:26:52 <ais523> because all the names like lineno are already taken
20:27:00 <psygnisfive> watch it, oklopol
20:27:01 <psygnisfive> WATCH IT
20:28:03 <CakeProphet> hmmm... you don't have to put variable names in function prototypes?
20:28:05 <AnMaster> ais523, I have a 725 line diff here
20:28:23 <ais523> not bad
20:28:30 <ais523> presumably it's mostly search-and-replace?
20:28:36 <AnMaster> many parts yes
20:29:47 <AnMaster> wait it got one single error
20:29:50 * AnMaster fixes
20:30:29 <oklopol> psygnisfive: yeah i watched
20:30:48 <oklopol> julmahuvi is awesome
20:30:52 <AnMaster> ais523, it does not integrate it in build system, I can't manage that, but it would be easy to make it do so
20:31:03 <ais523> hmm... a start would be nice to work from though
20:31:07 <ais523> it would make it easier to integrate
20:31:07 <psygnisfive> oklopol: finns are crazy :P
20:31:45 <oklopol> in what way?
20:32:55 <oklopol> our scetch shows are, in my experience, more experimental than say american ones on average
20:33:01 <AnMaster> ah
20:33:26 <oklopol> not sure if we're that much crazier as a people, i don't know that many amercans
20:33:29 <oklopol> *i¨
20:34:30 <AnMaster> 6956 /mnt/phoenix/ick/c-intercal/iffi.diff
20:34:32 <AnMaster> wtf
20:34:33 <AnMaster> oh wait
20:34:38 <AnMaster> configure was regenerated
20:34:45 <AnMaster> and someone put it in the damn repo
20:34:51 * ais523 grins evilly
20:35:09 <AnMaster> well why do so much change between autoconf versions
20:35:17 <AnMaster> -# Generated by GNU Autoconf 2.61 for C-INTERCAL 0.29.
20:35:17 <AnMaster> +# Generated by GNU Autoconf 2.63 for C-INTERCAL 0.29.
20:35:44 <ais523> AnMaster: it doesn't actually, it's just superficial things that annoy diff a lot
20:36:12 <AnMaster> ok 735 now
20:36:31 <AnMaster> ais523, what is the darcs command like svn st?
20:36:34 <AnMaster> listing changed files
20:36:38 <AnMaster> just file names
20:36:41 <AnMaster> not full diffs
20:37:03 <ais523> trying to remember
20:37:43 <ais523> I think it might be darcs whatsnew -s
20:37:45 <ais523> but I'm not sure
20:38:44 * AnMaster test patches and compiles
20:40:20 <AnMaster> ais523, http://kuonet.org/~anmaster/tmp/iffi.diff
20:40:42 <AnMaster> ais523, I haven't done anything to make those HAVE_ work
20:40:51 <AnMaster> nor messed with autotools at all
20:41:03 <AnMaster> but the script now takes two parameters: ick source and cfunge source
20:41:13 <AnMaster> should be easy to modify to make autoconf set those
20:41:20 <AnMaster> for you that is
20:41:31 <ais523> ok
20:41:33 <AnMaster> and you need to cp the library yourself into the install
20:41:43 <ais523> and that needs fixing but shouldn't be too hard
20:41:53 <AnMaster> ais523, oh and you need the cfunge version I pushed just about an hour ago
20:41:54 <ais523> ever seen the gcc build system by the way, it's a nightmare
20:42:09 <AnMaster> new release: a few weeks probably
20:42:24 <AnMaster> and no I haven't looked at gcc build system
20:42:27 <AnMaster> tell me about it
20:42:29 <ais523> also the diff has mixed tabs and spaces even in the code which is indented as pure tabs
20:42:36 <ais523> because of unidiffs putting spaces at the start of each line
20:42:41 <ais523> anyway, it's like autoconf but worse
20:42:44 <ais523> it's vaguely based on autoconf
20:42:44 <AnMaster> ais523, well blame diff
20:42:49 <ais523> but filled with lots of shell scripting in between
20:42:52 <AnMaster> it puts a space at the start of each
20:42:55 <ais523> yes, I know
20:43:06 <AnMaster> it *should* be correct elsewhere
20:43:13 <AnMaster> I mean when applied
20:44:03 <AnMaster> anyway now this works for me:
20:44:05 <AnMaster> ../etc/cftoec.sh .. ../../cfunge/trunk
20:44:13 <AnMaster> ../etc/cftoec.sh: Permission denied
20:44:16 <AnMaster> # Curse darcs
20:44:20 <AnMaster> chmod +x ../etc/cftoec.sh
20:44:21 <AnMaster> ../etc/cftoec.sh: Permission denied
20:44:22 <AnMaster> err
20:44:25 <AnMaster> ../etc/cftoec.sh .. ../../cfunge/trunk
20:44:28 <AnMaster> [...]
20:44:37 <ais523> ...
20:44:37 <AnMaster> make install
20:44:45 <AnMaster> cp libick_ecto_b98.a /home/arvid/local/ick/lib/
20:44:49 <AnMaster> ais523, basically
20:45:04 <AnMaster> of course adjust paths
20:45:06 <AnMaster> :P
20:45:12 <AnMaster> and adjust the +x of darcs
20:45:20 <AnMaster> it refuses to use +x for anything
20:45:23 <ais523> what made you change away from CamelCase/
20:45:25 <ais523> btw
20:45:27 <ais523> just curious
20:45:40 <AnMaster> ais523, an inner change of state of mind I guess
20:45:44 <ais523> AnMaster: it uses +x for files which were +x before they were added, just it doesn't store file permissions in the repo
20:45:49 <AnMaster> finding my true self
20:46:02 <AnMaster> ais523, it was -x here...
20:46:12 <CakeProphet> I've always held a policy of minimum underscores.
20:46:25 <CakeProphet> because they take a long time to type for me
20:46:33 <ais523> AnMaster: I mean if you have a +x file
20:46:36 <ais523> and you update it
20:46:38 <ais523> it stays +x
20:46:48 <ais523> but if darcs has to create it it doesn't know what perms to give it
20:46:59 <AnMaster> heh
20:47:19 <AnMaster> CakeProphet, why? _ takes as long as A
20:47:23 <AnMaster> Shift--
20:47:25 <AnMaster> or
20:47:28 <AnMaster> Shift-a
20:47:32 <ais523> depends on the keyboard layout probably
20:47:38 <ais523> also, shift-a's faster for me
20:47:42 <CakeProphet> not at all
20:47:44 <ais523> because I don't have to open my hand as much
20:47:46 <AnMaster> hm?
20:47:52 <CakeProphet> yeah... _ is way up top
20:47:56 <ais523> shift-A is two fingers right next to each other
20:47:59 <AnMaster> - is next to the right shift key
20:48:03 <CakeProphet> it'd be more like a shift-P
20:48:05 <CakeProphet> ah
20:48:07 <AnMaster> so you can just use two fingers there twoo
20:48:07 <CakeProphet> well
20:48:08 <AnMaster> too*
20:48:08 <ais523> not on a typical UK or US keyboard
20:48:09 <CakeProphet> I usually use left shift
20:48:12 <AnMaster> well
20:48:13 <ais523> - is to the right of 0
20:48:15 <AnMaster> on a Swedish keyboard
20:48:17 <ais523> above P
20:48:23 <AnMaster> bnm,.-<shift>
20:48:44 <AnMaster> { and } are horrible however when programming
20:48:55 <AnMaster> a messy AltGr-7 and AltGr-0
20:48:56 <CakeProphet> python ftw
20:49:01 <AnMaster> CakeProphet, scheme
20:49:10 <CakeProphet> yes
20:49:13 <AnMaster> or erlang
20:49:19 <AnMaster> though erlang use {} for tuples
20:49:28 <AnMaster> but erlang is one of the few languages with really sane indention
20:49:39 <AnMaster> in a mad sane way
20:49:48 <AnMaster> it uses neither {} nor indention
20:49:50 <AnMaster> for blocks
20:49:57 <AnMaster> , to delimit expressions
20:50:01 <AnMaster> ; to end a block
20:50:07 <AnMaster> . to end the last clause of a function
20:50:13 <AnMaster> basically
20:50:30 <AnMaster> ais523, anyway does the diff work for you?
20:50:57 <AnMaster> ais523, also I left the hard coded gcc
20:50:59 <AnMaster> rather than cc
20:51:06 <AnMaster> I assumed you had some reason for it
20:51:13 <ais523> atm ick_ec won't compile under anything else
20:51:17 <ais523> I'd like to fix that at some point
20:51:23 <ais523> but I'm doing stupid compiler tricks as-is
20:52:31 <AnMaster> ais523, it compiles under icc iirc
20:52:45 <AnMaster> though with "gcc extensions" warning
20:53:35 <AnMaster> ais523, there is one place I can approve of "stupid compiler tricks" and that is kernel. The Linux kernel does some pretty strange compiler and linker tricks for example
20:56:30 -!- puzzlet has quit (Remote closed the connection).
20:56:35 -!- puzzlet has joined.
20:58:05 <AnMaster> ais523, so the patch works for you then? Want me to make some patches adding missing const?
20:58:47 <AnMaster> I assume you already tests if const exists...
21:00:17 <AnMaster> ?
21:12:58 <AnMaster> ais523, ?
21:13:10 <ais523> AnMaster: I haven't tested it yet, got sidetracked with something else
21:13:18 <ais523> I spend ages applying patches because I review them for ages first
21:13:20 <ais523> in my head often
21:13:31 <AnMaster> ais523, and what about the const bit?
21:14:28 <ais523> probably something for a later version
21:16:33 <AnMaster> ais523, I can make patches now
21:16:34 <AnMaster> :P
21:17:02 <ais523> feel free to go ahead if you do, and I'll review them some time later
21:17:06 <ais523> s/do/like/
21:18:34 <AnMaster> ais523, ok, what was the strange build procedure for clc now again?
21:18:39 <AnMaster> with the multi-pass compiling iirc?
21:19:04 <ais523> AnMaster: basically, it has an IASM interpreter in Perl
21:19:11 <ais523> and an INTERCAL -> IASM compiler, written in IASM
21:19:31 <ais523> sorry, the INTERCAL -> IASM compiler is written in IACC
21:19:40 <ais523> and there's a IACC -> IASM compiler written in IACC too
21:19:51 <AnMaster> right
21:20:05 <ais523> so you compile the compiler to produce the compiler with the aid of a prebuilt compiler, then you compile the compiler that compiles the program with the new compiler, then compile the program
21:20:08 <ais523> and interpret the result
21:20:22 <AnMaster> didn't it support embedding perl into intercal
21:20:29 <AnMaster> in a highly undocumented way
21:21:14 <ais523> yes
21:21:18 <ais523> into IASM actually
21:21:38 <AnMaster> so
21:21:44 <AnMaster> why not JIT it into pure perl
21:21:49 <AnMaster> as an additional step
21:24:00 <ais523> AnMaster: have you seen IASM?
21:24:02 <ais523> it has COME FROMs
21:24:06 <ais523> and CREATEs
21:24:12 <ais523> and theft handling
21:24:23 <ais523> I'm not entirely sure JITting it into pure Perl makes a whole lot of sense
21:25:03 <AnMaster> hm
21:25:07 <AnMaster> ais523, really?
21:25:11 <AnMaster> ok
21:25:23 <AnMaster> but was that ever a point considered with intercal?
21:25:28 <AnMaster> making sense I mean
21:25:32 <ais523> oh
21:25:40 <ais523> you're right, it would be impressive
21:25:43 <ais523> just I'm not sure it's possible
21:25:44 <AnMaster> haha
21:25:47 <AnMaster> ah
21:26:08 <AnMaster> then JIT the perl into C which you JIT into native code?
21:26:09 <AnMaster> ;P
21:26:28 <ais523> does Perl JIT into C?
21:26:38 <AnMaster> you could make it
21:26:46 <AnMaster> need to write a lot of code of course
21:27:00 <AnMaster> anyway by that point it has probably become JTL
21:27:04 <AnMaster> Just Too Late
21:27:14 <ais523> CLC-INTERCAL is a JTL compiler
21:27:18 <ais523> with exactly that expansion
21:27:18 <AnMaster> oh
21:27:49 <AnMaster> heh
21:28:02 <AnMaster> ais523, why was the reason for that name now again?
21:28:30 <ais523> because of the way it does CREATE
21:28:35 <ais523> when it reaches a syntax error, it errors
21:28:44 <ais523> then the error cleanup code recompiles the relevant bit of code
21:28:47 <AnMaster> hm
21:28:49 <ais523> for the new syntax
21:29:23 <AnMaster> what if the statement is valid but has another meaning before the create?
21:30:25 <ais523> I think it's invalidated
21:30:27 <ais523> at some point
21:30:45 <ais523> btw
21:30:55 <ais523> the JTL is done even without CREATEs
21:31:06 <ais523> as the compiler just bundles a whole load of CREATEs with the program
21:31:13 <AnMaster> hm
21:31:18 <ais523> and what's bundled with the program is actually the compiler
21:31:23 <AnMaster> why not evaluate the CREATE as you run into them?
21:31:29 <AnMaster> instead of trying to continue anyway
21:32:14 <AnMaster> and how does it handle the possibility that output has already been performed?
21:32:34 <AnMaster> or is this before running it?
21:32:40 <ais523> this is before running
21:32:43 <AnMaster> ok
21:32:46 <AnMaster> still
21:32:48 <AnMaster> why not evaluate the CREATE as you run into them?
21:33:01 <ais523> because it's INTERCAL?
21:33:08 <ais523> also, that would cause repeated recompiling for short programs
21:33:13 <AnMaster> hm
21:33:22 <ais523> as they're more CREATE-laden than command-laden
21:33:26 <AnMaster> you could evaluate the CREATE as you compile
21:33:28 <ais523> also it fails if someone modifies the compiler itself
21:33:32 <ais523> or the syntax of CREATE itself
21:33:41 <AnMaster> or?
21:34:13 <AnMaster> couldn't you?
21:38:51 <psygnisfive> create-laden, command-laden, bin-laden
21:47:09 -!- kar8nga has left (?).
21:51:58 <AnMaster> ../c-intercal/src/ick_ec.c: In function ‘ick_dounop’:
21:51:58 <AnMaster> ../c-intercal/src/ick_ec.c:76: warning: initializer element is not computable at load time
21:52:03 <AnMaster> ais523, I got no clue what that means
21:52:20 <AnMaster> oh wait
21:52:23 <ais523> AnMaster: is the line in question inside a function?
21:52:25 <ais523> if so, that's fine
21:52:30 <AnMaster> ais523, eh? what?
21:52:36 <AnMaster> if(st)
21:52:36 <AnMaster> {
21:52:36 <AnMaster> ick_createdata icd[3]={{16,0,1601,{og1,os1},arg1},
21:52:36 <AnMaster> {16,0,1602,{og2,os2},arg2},
21:52:36 <AnMaster> {16,0,1603,{og3,os3},0}};
21:52:38 <AnMaster> it is like that
21:52:42 <ais523> yes, that's fine
21:52:45 <AnMaster> the array is the one it warns on
21:52:53 <ais523> it's just complaining that it can't optimise the thing
21:52:54 <ais523> which is correct
21:52:58 <ais523> as it's filled in partly at runtime
21:53:00 <AnMaster> ais523, doesn't that mean PIC code breaks?
21:53:08 <ais523> why would it?
21:53:14 <AnMaster> hm ok
21:53:19 <ais523> it's the same as filling in the structure at runtime
21:53:22 <AnMaster> ah right
21:53:27 -!- Corun has quit ("Leaving").
21:53:27 <AnMaster> why does it complain at all then?
21:53:37 <ais523> because it can't have a nice constant initialiser it can blit into place
21:53:41 <ais523> it's less efficient that way
21:54:22 -!- Sgeo[College] has joined.
21:54:44 <AnMaster> heh I tried to use csope for quick browsing but it gets confused by ick's source
21:54:57 <ais523> in what way?
21:55:12 <AnMaster> line numbers are off
21:55:13 <ais523> ick's source confuses lots of things, I have #if 0s to unconfuse emacs' auto-indenter for isntance
21:57:38 <AnMaster> ah now it works again
21:57:43 <AnMaster> C symbol: ick_findandfopen
21:57:43 <AnMaster> File Function Line
21:57:43 <AnMaster> 0 uncommon.h <global> 6 extern FILE* ick_findandfopen( char *, char *, char *, char *);
21:57:43 <AnMaster> 1 uncommon.h <global> 6 extern FILE* ick_findandfopen( char *, char *, char *, char *);
21:57:48 <AnMaster> why two matches I don't know
21:57:52 <AnMaster> seems to be the same one
21:57:56 <AnMaster> so still confused
21:58:44 <AnMaster> ais523, er what does /*@observer@*/ mean?
21:58:55 <AnMaster> and /*@dependent@*/
21:59:11 <ais523> AnMaster: they're annotations for splint
21:59:15 <ais523> not correct ones though
21:59:17 <AnMaster> and what do they mean?
21:59:20 <ais523> they're approximately right
21:59:26 <AnMaster> and what do they mean?
21:59:27 <ais523> it's basically a memory leak checker
21:59:35 <AnMaster> since splint fails at C99 it means I don't use it
21:59:41 <ais523> observer means that the pointer is to something which isn't allocated or deallocated and is valid to start with
21:59:44 <ais523> as in, it takes a pointer
21:59:53 <ais523> and just looks at its contents
21:59:58 <ais523> and doesn't allocate or deallocate or anything
22:00:16 <ais523> dependent means that it's derived in some way from some other value, for instance it's a field in a struct and the struct itself is malloced
22:00:21 <AnMaster> hm
22:00:37 -!- Sgeo[College] has left (?).
22:00:44 <AnMaster> observer means it doesn't change either?
22:00:47 <AnMaster> const?
22:00:59 <ais523> const means it isn't allocated at all I think
22:01:04 <AnMaster> hm
22:01:05 <ais523> but it's a global that isn't changed
22:01:09 <ais523> anyway, it's a while since I annotated
22:01:10 <AnMaster> I mean it seems to be a *C* const
22:01:13 <ais523> and the annotations are wrong
22:01:20 <ais523> they have to be
22:01:31 <ais523> as it's mathematically impossible to correctly annotate a program that contains memory leaks
22:01:34 <ais523> without cheating
22:01:39 <ais523> and C-INTERCAL has memory leaks
22:01:50 <ais523> just I don't think splint can grasp the sort of memory structure it has
22:01:55 <AnMaster> oh?
22:01:58 <AnMaster> can you describe it?
22:02:07 * AnMaster already added a few const
22:02:09 <ais523> it's the multithreading structure that creates the most havoc
22:02:24 <ais523> it's a linked ring of threads (like a linked list but the start and end connect)
22:02:35 <ais523> except that threads have stacks of threads growing from them
22:02:39 <AnMaster> ais523, also is there a reason not to put the names of the parameters in the prototypes in the headers?
22:02:39 <ais523> and the stacks can share tails
22:02:53 <ais523> and each element of each of those stacks can reference other elements anywhere due to sharing
22:03:08 <ais523> AnMaster: splint doesn't like it, if there's a macro with that name declared before the header's included the header breaks
22:03:15 <ais523> also, size in some cases
22:03:20 <AnMaster> eh?
22:03:26 <ais523> when you have functions with 11 args, giving the params names is kind-of pointless
22:03:31 <ais523> better to write a comment explaining what they do
22:03:34 <AnMaster> hm
22:03:43 <AnMaster> a macro shouldn't be lower case
22:03:43 <ais523> rather than trying to fit the full crazy semantics into the prototype
22:04:37 <AnMaster> so not an issue
22:04:37 <ais523> which wasn't designed for them
22:04:37 <ais523> AnMaster: it is in some cases
22:04:37 <ais523> for instance all the identifiers in stdio.h are in implementation namespace
22:04:37 <ais523> even the params in prototypes
22:04:37 <AnMaster> well
22:04:37 <AnMaster> you shouldn't name one stderr
22:04:37 <AnMaster> or errno
22:04:37 <ais523> in case someone does #define fmt void
22:04:37 <AnMaster> obviously
22:04:42 <AnMaster> and #define fmt void is pure insane
22:04:47 <ais523> then stdio does int printf(const char* fmt, ...)
22:04:50 <AnMaster> and it's their own faults
22:04:56 <ais523> AnMaster: not according to the standard
22:05:02 <ais523> it's perfectly legal to do that then include stdio.h
22:05:10 <ais523> even more fun:
22:05:16 <ais523> #define va_list void
22:05:19 <ais523> #include <stdio.h>
22:05:23 <ais523> #undef va_list
22:05:25 <AnMaster> err
22:05:26 <ais523> #include <stdarg.h>
22:05:31 <ais523> (later on, call vprintf)
22:05:39 <AnMaster> sigh
22:05:39 <ehird> from what i can gather, AnMaster is continuing his usual paradox of "Follow the standards exactly" and "If someone fucks up let them burn"?
22:05:51 <ehird> i should just have someone relay me everything AnMaster says.
22:05:52 <ehird> ...wait.
22:05:53 <ais523> gcc's install process includes a script merely to correct system headers for that pathological case
22:06:01 <ais523> and no, it's the ohter way round
22:06:24 <ais523> AnMaster is claiming that compilers shouldn't take care to support what I just wrote because it's obviously insane
22:06:33 <ais523> well, yes, it is, but the standard doesn't disallow it
22:06:48 <ehird> but AnMaster rigidly supports standards.
22:06:54 <ehird> so he cannot reconcile those two opinions.
22:07:34 <AnMaster> eh what?
22:07:51 <AnMaster> ais523, does ick do anything like that?
22:07:56 <ais523> no, it doesn't
22:08:00 <AnMaster> if not it isn't an issue in internal headers
22:08:03 <AnMaster> for ick_ec.h ok
22:08:04 <AnMaster> maybe
22:08:11 <ais523> but if you've ever used splint, it's one of the most pathologically scrupulous lint versions ever
22:08:16 <ais523> maybe I should run it on cfunge just for fun
22:08:24 <AnMaster> ais523, it can't handle C99
22:08:26 <ehird> "Error: Code is broken."
22:08:27 <AnMaster> I tried it
22:08:27 <ais523> ah, yes
22:08:40 <AnMaster> it fails on a simple for (int i...) for example
22:08:47 -!- Corun has joined.
22:08:51 <ais523> but it reports all sorts of things at the highest level which should never be a problem for anyone in practice
22:08:53 <AnMaster> or the { .fieldname ... } thing
22:08:53 <ais523> because it can
22:08:59 <ais523> and I approve of that, personally
22:09:03 <AnMaster> ais523, splint -weak
22:09:04 <AnMaster> iirc
22:09:06 <AnMaster> or +weak
22:09:08 <AnMaster> can't remember
22:09:17 <AnMaster> also it don't know POSIX
22:09:22 <AnMaster> since it complains about unknown functions
22:09:28 <AnMaster> and man says part of the 1993 POSIX
22:09:34 <AnMaster> even when using the +posixwhatever flag
22:09:40 <AnMaster> ais523, so IMO it is crap
22:09:46 <ais523> AnMaster: you can create a splint information library to get around that
22:10:03 <AnMaster> ais523, it should be able to look at the system headers to find out
22:10:04 <ais523> it's just difficult to use, and simultaneously crazily overengineered and crazily underengineered
22:10:08 <ais523> and as an esoprogrammer, I like that
22:10:23 <AnMaster> except it totally fails to parse anything
22:10:26 <AnMaster> so pointless
22:10:45 <AnMaster> and it wants you to cast the result from malloc
22:10:49 <AnMaster> iirc
22:10:55 <AnMaster> sure fine for C++
22:10:57 <AnMaster> but this is C*
22:11:02 <AnMaster> *C**
22:12:04 <ais523> probably you had it set up wrong; the problem is setting it up right is very hard
22:12:32 <AnMaster> ais523, well I don't know. I sent a mail about the C99 issue. I never got any answer
22:12:41 <AnMaster> It was over 5 months ago
22:13:04 <AnMaster> yay uncommon.c is warning free
22:13:19 <ais523> hmm... uncommon.c is used by everything, so that's nice
22:13:34 <AnMaster> ais523, well correctly const warnings
22:13:50 <AnMaster> I'm not insane enough to use all the warnings cfunge use for ick
22:13:52 <fizzie> My splint (completely without flags) doesn't want me to cast malloc.
22:14:06 <AnMaster> ais523: just -Wall -Wextra -pedantic -Wwrite-strings
22:14:40 <ais523> ok
22:14:51 <ais523> just as long as you don't turn on unsafe loop optimisations...
22:16:21 <fizzie> (Not even "splint +strict" wants me to cast malloc's return value; although in that mode it does complain about testing whether foo is NULL or not with "if (foo)"...)
22:16:32 <AnMaster> ugh returning a pointer to a static buffer
22:16:47 <AnMaster> ais523, oh you tried it?
22:16:49 <ehird> ais523: careful, the name C-INTERCAL starts with a c just like cfunge
22:16:52 <ehird> slippery slope
22:16:55 <ais523> AnMaster: no, I'm not that insane
22:17:18 <ais523> AnMaster: which return pointer to static function are you worried about?
22:17:29 <AnMaster> ick_findandtestopen
22:17:32 <AnMaster> static char buf2[BUFSIZ];
22:17:38 <AnMaster> ret = ick_debfopen(buf2,mode); /* where it ought to be */
22:17:38 <AnMaster> if(ret) {(void) fclose(ret); return buf2;}
22:17:56 <AnMaster> and static buffer
22:17:58 <AnMaster> not function
22:18:30 <ais523> AnMaster: ah, ok
22:18:41 <AnMaster> ais523, still this worries me
22:18:45 <ais523> that one doesn't always return a pointer to a static buffer
22:18:51 <ais523> sometimes it returns a pointer to argv instead
22:18:55 <AnMaster> yes
22:19:22 <AnMaster> ais523, btw would it be possible to make it return const char* ?
22:19:33 <AnMaster> or would that mess up elsewhere
22:19:37 -!- KingOfKarlsruhe has joined.
22:19:43 <ais523> you can return a char* as const char*, can't you
22:19:46 <ais523> so probably it would be safe
22:19:49 <ais523> (argv's a char*)
22:19:56 <ais523> I think the result is only ever used immediately
22:19:58 <AnMaster> ais523, well it would cause issues elsewhere if you tried to change it
22:19:59 <ais523> and then discarded
22:20:01 <AnMaster> right
22:20:11 <ais523> not sure though, let me grep the code as usual
22:20:15 <AnMaster> it makes it possible to get rid of warnings in the case it returns the argument file
22:20:19 <AnMaster> which it sometimes does
22:20:29 <AnMaster> and that is sometimes a string constant it seems
22:20:38 <ais523> yes
22:20:50 <ais523> even better, it's a string constant passed in from configure via the makefile
22:21:08 <ais523> anyway, anything that's input as observer is safe to return as const
22:21:11 <ais523> at least if I have the annotations right
22:21:19 <ais523> wait
22:21:27 <ais523> except in the case that the caller owns the observer in question
22:21:29 <ais523> never mind
22:21:57 <AnMaster> anyway you can't make it return a const char* as a char* logically
22:22:04 <AnMaster> well you probably could
22:22:08 <AnMaster> in C it is a warning not an error
22:22:11 <AnMaster> but anyway.
22:22:22 <AnMaster> ../c-intercal/src/yuk.c:185: warning: ISO C90 does not support the ‘ll’ printf length modifier
22:22:22 <AnMaster>
22:22:23 <AnMaster> eh what?
22:22:26 <ais523> const_cast<char*>(my_const_char_argument)
22:22:28 <AnMaster> heh
22:22:36 <AnMaster> ais523, this is not C++
22:22:38 <ais523> yes
22:22:39 <ais523> I know
22:22:41 <AnMaster> ../c-intercal/src/yuk.c:183:35: warning: use of C99 long long integer constant
22:22:41 <AnMaster> ../c-intercal/src/yuk.c:184:14: warning: use of C99 long long integer constant
22:22:41 <AnMaster> ../c-intercal/src/yuk.c:184:37: warning: use of C99 long long integer constant
22:22:42 <AnMaster> hm
22:22:43 <AnMaster> ?
22:22:48 <ais523> hmm...
22:22:51 <ais523> C99 in yuk.c is an error
22:22:53 <ais523> I think
22:23:03 <AnMaster> there are several more
22:23:07 <ais523> unless suddenty C-INTERCAL needs C99 to be able to debug it
22:23:08 <AnMaster> ../c-intercal/src/yuk.c:182:25: warning: use of C99 long long integer constant
22:23:08 <AnMaster> ../c-intercal/src/yuk.c:182:53: warning: use of C99 long long integer constant
22:23:08 <AnMaster> ../c-intercal/src/yuk.c:183:13: warning: use of C99 long long integer constant
22:23:08 <AnMaster> ../c-intercal/src/yuk.c:183:35: warning: use of C99 long long integer constant
22:23:08 <AnMaster> ../c-intercal/src/yuk.c:184:14: warning: use of C99 long long integer constant
22:23:09 <AnMaster> ../c-intercal/src/yuk.c:184:37: warning: use of C99 long long integer constant
22:23:14 <AnMaster> ../c-intercal/src/yuk.c:185: warning: ISO C90 does not support the ‘ll’ printf length modifier
22:23:15 <AnMaster> ../c-intercal/src/yuk.c:185: warning: ISO C90 does not support the ‘ll’ printf length modifier
22:23:17 <AnMaster> ../c-intercal/src/yuk.c:185: warning: ISO C90 does not support the ‘ll’ printf length modifier
22:23:19 <AnMaster> ../c-intercal/src/yuk.c:185: warning: ISO C90 does not support the ‘ll’ printf length modifier
22:23:21 <AnMaster> ../c-intercal/src/yuk.c:185: warning: ISO C90 does not support the ‘ll’ printf length modifier
22:23:23 <AnMaster> ../c-intercal/src/yuk.c:185: warning: ISO C90 does not support the ‘ll’ printf length modifier
22:23:24 <ais523> are there any actual long longs in there?
22:23:25 <AnMaster> ../c-intercal/src/perpet.c:697:8: warning: C++ style comments are not allowed in ISO C90
22:23:27 <AnMaster> haha
22:23:29 <AnMaster> the last one
22:23:47 <AnMaster> YPTIMERTFORMAT
22:23:49 <ais523> ugh, that's serious if it isn't temporary
22:23:50 <AnMaster> yes that one
22:23:57 <ais523> I use // comments for debug stuff deliberately
22:24:02 <AnMaster> ais523, YPTIMERTFORMAT seems to be %ll
22:24:07 <ais523> so I can compile as strict to get the warnings to see where it is
22:24:07 <AnMaster> I guess
22:24:11 <AnMaster> no clue what YPTIMERTFORMAT
22:24:12 <ais523> oh, and if it's YPTIMERTFORMAT that's fine
22:24:20 <AnMaster> ais523, oh why?
22:24:20 <ais523> config.h works out if long long is available
22:24:31 <ais523> the YPTIMERTYPE stuff has lots of different settings
22:24:41 <ais523> some of which are C89, some are C99, some are POSIX and some aren't even that
22:24:48 <ais523> there's a SunOS-specific version of it
22:25:02 <ais523> you can override YPTIMERTIME to 0 by hand in yuk.h to avoid the warnings
22:25:09 <ais523> if you don't mind a really bad profile resolution
22:25:22 <ais523> so it's C99 because configure determined that C99 was safe there
22:25:36 <ais523> but on a C89 system YPTIMERTFORMAT would be something else
22:26:30 <AnMaster> #if 0
22:26:30 <AnMaster> 0) // to unconfuse Emacs
22:26:30 <AnMaster> #endif
22:26:33 <AnMaster> there it is
22:26:35 <AnMaster> the //
22:26:43 <ais523> but that's in a #if 0
22:26:46 <ais523> therefore it will never be parsed
22:26:54 <ais523> wait
22:26:56 <AnMaster> ais523, well tell that to gcc 4.3.2
22:27:00 <ais523> comments happen before pp-directives don't they
22:27:03 <GregorR> #if 0
22:27:06 <ais523> ah, but it's not a problem
22:27:06 <AnMaster> I think so
22:27:09 <GregorR> HAHAHAH, nothing will ever happen on #esoteric again!
22:27:10 <ais523> in C89 it isn't a comment
22:27:16 <AnMaster> GregorR,
22:27:17 <ais523> it's a syntax error
22:27:18 <AnMaster> #endif
22:27:22 <ais523> but syntax errors are harmless inside #if 0
22:27:24 <GregorR> Nooooooes!
22:27:26 <GregorR> Foiled again.
22:27:29 <ais523> so it's very very INTERCAL in fact
22:27:37 <ais523> a syntax error which never runs, that's how INTERCAL does comments...
22:27:49 <AnMaster> ../c-intercal/src/perpet.c:300: warning: assignment discards qualifiers from pointer target type
22:27:50 <AnMaster> hm
22:28:00 <ais523> that's presumably a result of your const changes?
22:28:17 <AnMaster> well rather the lack of it
22:28:22 <AnMaster> I hadn't changed that
22:28:24 <AnMaster> oh wait
22:28:27 <AnMaster> a configure time constant
22:28:29 <ais523> presumably you changed somewhere else
22:28:31 <AnMaster> string literal
22:28:34 <ais523> ah, ok
22:28:43 <AnMaster> ais523, no I simply enabled the relevant -W :P
22:28:49 <AnMaster> ../c-intercal/src/perpet.c:559: warning: format not a string literal, argument types not checked
22:28:49 <AnMaster> ../c-intercal/src/perpet.c:559: warning: format not a string literal, argument types not checked
22:28:50 <AnMaster> hehe
22:29:15 <AnMaster> ais523, gcc can check that format is correct if it is a literal
22:29:18 <AnMaster> did you know that?
22:29:21 <AnMaster> -Wformat=2
22:29:30 <ais523> yes, I did know about format checking
22:29:37 <ais523> however, I'm interpolating something into a format arg there
22:29:44 <AnMaster> #ifndef HAVE_SNPRINTF
22:29:44 <AnMaster> (void) sprintf(buf2, tempfn, argv[optind]);
22:29:44 <AnMaster> #else
22:29:44 <AnMaster> (void) snprintf(buf2, sizeof buf2, tempfn, argv[optind]);
22:29:44 <AnMaster> #endif
22:29:45 <AnMaster> hm
22:29:48 <ais523> probably it's worth checking separately if there's a printf injection bug there
22:29:49 <AnMaster> what about making a macro?
22:29:56 <AnMaster> would probably be easiler
22:29:57 <AnMaster> easier*
22:30:00 <AnMaster> maybe_snprintf
22:30:01 <AnMaster> or whatever
22:30:11 <ais523> I suppose so
22:30:16 <AnMaster> that is what cfunge would do
22:30:22 <ais523> actually, it's just hiding the underlying problem
22:30:25 <AnMaster> also it would fix that "need to fix up emacs"
22:30:27 <AnMaster> :P
22:30:30 <ais523> which is that there's a buffer overflow if you don't have snprintf
22:30:46 <AnMaster> ais523, yes true, but then there is no solution to it
22:30:51 <AnMaster> since you don't have it anyway
22:30:59 <ais523> you could implement it yourself I suppose
22:31:03 <AnMaster> well
22:31:04 <fizzie> Didn't you just say that a macro shouldn't be in lowercase? :p
22:31:09 <AnMaster> it may not be intercal-y
22:31:10 <ais523> but what I really need is an assert_snprintf
22:31:14 <ais523> which snprintfs if needed
22:31:18 <AnMaster> fizzie, true, but a macro function vs a defined constant
22:31:21 <AnMaster> a bit different
22:31:26 <ais523> and if ther would be a buffer overflow it barfs spectacularly
22:31:37 <ais523> raise(SIGSEGV) maybe, it comes to the same thing in the end
22:31:39 <AnMaster> ais523, ah I think I have seen it
22:31:42 <ais523> just not exploitabl
22:31:45 <ais523> *exploitable
22:31:48 <AnMaster> let me take a look at the crossfire source
22:32:05 <AnMaster> I'm pretty sure it barfs if sprintf says it overflowed
22:32:20 <ais523> AnMaster: I'll just reimplement it myself
22:32:30 <AnMaster> well it is GPL2 so
22:32:45 <AnMaster> crossfire's porting.c
22:32:47 <ais523> still, I don't want the INTERCAL licence situation to get even more muddled than it is
22:32:52 <AnMaster> even contains several variants of tempnam()
22:32:58 <AnMaster> all insecure
22:33:04 <ais523> I have a dream of chasing down the contributors and getting them to relicence bits of it sometime
22:33:14 <ais523> also C-INTERCAL's temporary naming system is even worse
22:33:18 <AnMaster> hm
22:33:18 <ais523> as it uses hardcoded names in /tmp
22:33:30 <ais523> so you can't run two copies of it in parallel safely
22:33:32 <AnMaster> ais523, hah use mkstemp
22:33:37 <AnMaster> anyway crossfire is worse
22:33:40 <AnMaster> since it is a server
22:33:46 <AnMaster> and it does a linear search every time
22:34:21 <AnMaster> starting at (in settings.tmpdir) crossfire.pid.0
22:34:28 <AnMaster> and then incrementing the last digit
22:34:41 <ais523> how does that not lead to collisions?
22:34:41 <AnMaster> so it is O(n) where n is current number of temp files
22:34:46 <AnMaster> ais523, single threaded
22:34:57 <AnMaster> and it expects you to set a custom temp dir
22:35:01 <AnMaster> + the pid of course
22:35:24 <AnMaster> ais523, crossfire is from 1992, the oldest parts I mean
22:35:28 <AnMaster> so that kind of explains it
22:35:34 <ais523> C-INTERCAL is older I think
22:35:38 <AnMaster> well yeah
22:36:11 <ais523> yep, intercal-0.3.shar is dated 1990
22:36:23 <ais523> so C89 was very new back then
22:36:30 -!- oerjan has joined.
22:36:31 <ais523> and C99 hadn't even been thought of
22:36:33 <AnMaster> argv[optind] = "ecto_b98";
22:36:34 <AnMaster> wtf?
22:36:35 <AnMaster> is that
22:36:43 <ais523> that is fun
22:36:50 <AnMaster> you are editing argv?
22:36:52 <AnMaster> why on earth
22:36:53 <ais523> you can go mad trying to track how argv changes throughout C-INTERCAL
22:37:05 <AnMaster> ais523, why are you editing argv?
22:37:13 <ais523> and because the C standard says you cna, and the code already did that when I got to it
22:37:16 <AnMaster> it messes up my whole plan
22:37:33 <AnMaster> ais523, ok but what are you using it for+
22:37:34 <AnMaster> ?
22:37:35 <ais523> most of what it does puts NULs in there to replace dots
22:37:41 <ais523> in order to strip off file extensions
22:37:45 <AnMaster> /* Sort out the ecto_b98 expansion library. */
22:37:45 <AnMaster> argv[optind] = "ecto_b98";
22:37:45 <AnMaster> goto fixexpansionlibrary;
22:37:47 <AnMaster> is what it says
22:37:47 <fizzie> A lot of people edit argv; it's great fun, changing the command line as it shows up in places.
22:37:58 <AnMaster> fizzie, doesn't work the way it does it
22:37:59 <ais523> fizzie: I hadn't even thought of that side effect
22:38:09 <AnMaster> you need to edit in place
22:38:14 <AnMaster> or it doesn't work on linux afaik
22:38:19 <ais523> AnMaster: I edit in place too
22:38:22 <ais523> just not that bit of code
22:38:32 <AnMaster> oh my
22:38:37 <ais523> well, not me, someone else wrote the bit that sets '.' to '\0' at the end of the filenames
22:38:38 <AnMaster> *bsd got a function for it
22:38:42 <AnMaster> setprocname
22:38:44 <AnMaster> or something
22:38:46 <AnMaster> can't remmeber
22:38:49 <AnMaster> remember*
22:38:57 <ais523> oh, I thought you mean it had a function for stripping extensions in-place in argv
22:39:07 <ais523> that would be an oh my moment
22:39:14 <AnMaster> no
22:39:25 <AnMaster> it would be a "oh fuck" one
22:39:39 <AnMaster> "oh fuck why am I even looking at this code"
22:40:19 <AnMaster> ../c-intercal/src/perpet.c:1087: warning: comparison between signed and unsigned
22:40:20 <AnMaster> ../c-intercal/src/perpet.c:1107: warning: comparison between signed and unsigned
22:40:20 <AnMaster> btw
22:40:53 <ais523> I reckon there's at least a 50% chance there's something in CPAN to do that for Perl
22:41:16 <fizzie> I think a perennial favourite of forcibly lying about the process name is to rename your "nethack" game to "emacs thesis.tex".
22:41:59 <ais523> fizzie: how risky, you should make it a symlink instead
22:42:35 <AnMaster> fizzie, doesn't work since nethack is sgid games
22:42:40 <AnMaster> and various other reasons
22:42:49 <AnMaster> like too long name to edit in place on linux
22:42:52 <ais523> the symlink method would work if not for the wrapper script
22:42:56 <ais523> but you can just run directly
22:43:01 <AnMaster> indeed
22:43:18 <AnMaster> ../c-intercal/src/perpet.c:268: warning: no previous prototype for ‘isenv’
22:43:18 <AnMaster> ?
22:43:36 <ehird> http://www.pps.jussieu.fr/~canou/obrowser/tutorial/
22:43:39 <AnMaster> oh it should be static
22:43:40 <ehird> W H O A
22:43:44 <ais523> AnMaster: the 1087 warning is due to reusing a general-purpose temporary
22:43:56 <AnMaster> ais523, er?
22:43:59 <ais523> which should be unsigned in context but is in fact signed
22:44:00 <AnMaster> ah
22:44:06 <fizzie> Can't you just execve(3) it with any argv[0] you like?
22:44:06 <ais523> AnMaster: there's a temporary variable called i
22:44:09 <AnMaster> ais523, well just cast it
22:44:10 <ais523> which is used for lots of stuff
22:44:19 <ais523> and no, casting is the wrong solution here
22:44:29 <ais523> the solution is to use a temporary variable that isn't hideously overloaded
22:44:32 <AnMaster> well just um use C99 with for (int i
22:44:35 <AnMaster> ;P
22:44:41 <AnMaster> of course not an option indeed
22:44:44 <ais523> yes
22:45:01 <ais523> and of course the ironic thing here is that i only takes values in about the range 0-50
22:45:08 <ais523> so it isn't actually an issue in the first place
22:45:13 <AnMaster> ../c-intercal/src/perpet.c:269: warning: ‘isenv’ defined but not used
22:45:14 <AnMaster> wtf
22:45:15 -!- KingOfKarlsruhe has quit (Remote closed the connection).
22:45:19 <AnMaster> and yet it is used
22:45:31 <AnMaster> oh wait
22:45:35 <AnMaster> it should have:
22:45:36 <AnMaster> #if __DJGPP__
22:45:38 <AnMaster> around it
22:45:43 <ais523> ah, yes
22:45:58 <AnMaster> and it should be static
22:46:00 <AnMaster> well there we go
22:46:37 <ais523> yes, that's because djgpp doesn't have a real /tmp dir
22:46:41 <ais523> so it's looking for a temporary directory
22:46:57 <ais523> that's one of my few concessions to Windows, that one of the env vars it checks is something it defines
22:50:51 <AnMaster> http://kuonet.org/~anmaster/tmp/const1.diff
22:51:01 <AnMaster> ais523, ^
22:51:05 <AnMaster> some early work on it
22:51:20 <AnMaster> I suspect small patches are easier to review
22:51:23 <AnMaster> that one megapatch
22:51:37 <AnMaster> ais523, if you want to ask questions about it hurry up since I'm going to bed soon
22:51:46 <AnMaster> urr
22:51:54 <AnMaster> ais523, ignore the config.h stuf changes
22:52:00 <ais523> ehird: why does all the text behind that link change colour when I mouseover?
22:52:00 <AnMaster> I blame it on autotools
22:52:09 <ehird> doesnt for me
22:52:27 <ais523> just the <p> tags
22:52:39 <ais523> AnMaster: it looks like normal const addition
22:52:49 <AnMaster> ais523, yes and a few static
22:52:54 <ais523> I'd probably run it all through splint and see if anything broke, then through gcc and see if anything broke
22:53:04 <AnMaster> ais523, gcc broke nothing
22:53:04 <fizzie> p:hover { background-color: #ddf8ff }
22:53:07 <fizzie> That's why.
22:53:08 <AnMaster> splint I don't know
22:53:14 <AnMaster> ais523, since splint is insane
22:53:16 <fizzie> Now that's a very strange style to set.
22:53:21 <ais523> messing with static could potentially be risky, but I don't think so; I added static a couple of versions back
22:53:24 <AnMaster> fizzie, agreed
22:53:26 <ais523> after splinting the whole thing
22:53:41 <ais523> ehird: your browser clearly doesn't implement CSS3 properly if it isn't happening to you
22:53:48 <ehird> it does.
22:53:49 <AnMaster> ais523, I checked that those static functions weren't used anywhere else
22:53:53 <AnMaster> using grep
22:53:59 <ais523> ok
22:53:59 <ehird> anyway
22:54:01 <ehird> that's not even css3
22:54:04 <ehird> anyway
22:54:06 <ais523> obviously I must have missed them the first time
22:54:07 <ehird> if you mean the Abstract: and such
22:54:08 <ehird> yes
22:54:10 <ehird> the background changes
22:54:11 <ais523> ehird: it is for tags other than <a>, isn't it?
22:54:13 <ehird> but the actual content... no
22:54:16 <ehird> ais523: no.
22:54:16 <AnMaster> ais523, it was the isenv one
22:54:22 <ehird> that is, iirc, css1
22:54:23 <AnMaster> it is only used on DJPPG thingy too
22:54:35 <ais523> ehird: all the P tags, not just the abstract
22:54:39 <ehird> yes, well, WFM
22:54:43 <ais523> even lower down, the code examples don't but the explanation text does
22:55:23 <AnMaster> ais523, indeed
22:56:15 <fizzie> It's not CSS-anything where :hover works: "CSS doesn't define which elements may be in the above states, or how the states are entered and left." (in CSS2.1, at least.)
22:56:18 <ais523> I especially like the way they use .exe as an extension for OCaml bytecode
22:57:38 -!- Slereah_ has joined.
22:58:06 <fizzie> Personally I have a soft spot for insane uses of JavaScript; maybe I should do something strange with it at some point.
22:58:43 <Slereah_> Like NOT USE IT
22:59:01 <ais523> fizzie: functional JS is fun, but that's been done
22:59:20 <ais523> maybe we should get olsner to compile my Underload interp in Thue to mod_rewrite
22:59:30 <ais523> and have the very slowest Underload interpreter ever
22:59:36 <ais523> but that's not JS, just vaguely webby
23:01:03 <AnMaster> fizzie, jsmips
23:01:34 <AnMaster> ais523, is mod_rewrite allowed to run for that long?
23:01:41 <AnMaster> wouldn't it abort like mediawiki
23:03:56 <AnMaster> ais523, is it safe to make ick_numerals const?
23:03:59 <AnMaster> in numerals.c
23:04:06 <ais523> trying to remember
23:04:09 <AnMaster> and the name part
23:04:11 <ais523> I don't think so, doesn't clockface() edit it?
23:04:22 <ais523> the word list should be OK though
23:04:27 <AnMaster> ais523, no idea
23:04:35 <AnMaster> typedef struct
23:04:35 <AnMaster> {
23:04:35 <AnMaster> char *name;
23:04:35 <AnMaster> intvalue;
23:04:35 <AnMaster> }
23:04:40 <AnMaster> numeral;
23:04:42 <AnMaster> is what it says
23:04:48 <AnMaster> I want char*name to be const char*name
23:04:53 <ais523> ick_numerals should be fine
23:04:59 <ais523> and I think char* name can be const too
23:04:59 <AnMaster> that will get rid of lots and lots of warnings
23:05:14 <AnMaster> ais523, you said clockface edits it?
23:05:17 <ais523> no
23:05:23 <ais523> it changes a different array
23:05:29 <ais523> which is in abcess.h, probably
23:05:34 <ais523> *cespool.c
23:05:37 <ais523> *cesspool.c
23:05:53 <AnMaster> ais523, ick_numerals isn't extern elsewhere
23:05:57 <AnMaster> yet it is used elsewhere
23:06:00 <ais523> AnMaster: #include
23:06:01 <AnMaster> how the heck does that work
23:06:05 <AnMaster> including the C file?
23:06:07 <ais523> yes
23:06:17 <AnMaster> ais523, I quote this filename.
23:06:19 <AnMaster> ../c-intercal/src/arrgghh.c
23:06:36 <AnMaster> oil.y:281: warning: assignment discards qualifiers from pointer target type
23:06:36 <AnMaster> oil.y:281: warning: assignment discards qualifiers from pointer target type
23:06:36 <AnMaster> oil.y:282: warning: assignment discards qualifiers from pointer target type
23:06:36 <AnMaster> oil.y:282: warning: assignment discards qualifiers from pointer target type
23:06:36 <AnMaster> oil.y:283: warning: assignment discards qualifiers from pointer target type
23:06:37 <AnMaster> oil.y:283: warning: assignment discards qualifiers from pointer target type
23:06:39 <ais523> $ grep -n numerals.c *
23:06:39 <AnMaster> lots like that
23:06:40 <ais523> cesspool.c:47:#include "numerals.c"
23:06:43 <AnMaster> for all the lines
23:07:42 <ais523> ah, found it
23:07:48 <AnMaster> found what?
23:07:51 <ais523> line 72
23:07:51 <AnMaster> that oil.y one?
23:08:01 <ais523> it's a char* element of a struct
23:08:01 <AnMaster> char* condition; /* Points to a constant string; the condition to generate
23:08:01 <AnMaster> ?
23:08:04 <AnMaster> ais523, yes
23:08:06 <ais523> which has string literals assigned to it
23:08:08 <AnMaster> is it safe to change?
23:08:20 <ais523> "Points to a constant string" that sounds very like const char* to me
23:08:29 <AnMaster> " Could also point to something the lexer
23:08:29 <AnMaster> mallocs, but then the lexer has to keep track of being
23:08:29 <AnMaster> able to free it again."
23:09:06 <ais523> AnMaster: the fact that it could hold a constant string means it won't change
23:09:09 <AnMaster> ais523, only helped with half of the warnings
23:09:14 <AnMaster> in oil.y
23:09:18 <ais523> the next char* should be const char* too
23:09:22 <ais523> for nodetypename
23:09:37 <AnMaster> safe?
23:09:50 <ais523> yes
23:09:54 <ais523> why do you ask? compile and find out
23:10:03 <ais523> if it isn't safe you'll get an error for modifying something const
23:10:10 <AnMaster> ais523, I may not be able to trigger a case where it fails at runtime
23:10:19 <AnMaster> considering how ick does it
23:10:20 <ais523> it will fail at compile time if you write to a const
23:10:25 <ais523> unless there's a dangerous cast in there
23:10:34 <AnMaster> yes but not if you pass it to something taking a char*
23:10:37 <ais523> which there aren't because there's no need to cast to char* if everything's char* already
23:10:39 <ais523> AnMaster: that's an error
23:10:41 <AnMaster> will just be a warning
23:10:44 <AnMaster> ais523, a warning
23:10:46 <ais523> well, you'll notice it won't you
23:11:07 <AnMaster> ais523, with the crapload of other warnings it spews?
23:11:14 <ais523> grep exists...
23:11:22 <ais523> or you could turn on just the particular warning you wany
23:11:24 <ais523> *want
23:11:26 <AnMaster> true
23:11:33 <ais523> for that matter, someone should develop a warningdiff tool
23:11:37 <ais523> which saves compiler output
23:11:37 <AnMaster> ais523, the autoconf output is rather messy and hard to read
23:11:38 <ais523> you make changes
23:11:45 <ais523> and then it tells you what changed
23:11:46 <AnMaster> make clean all &> make.log
23:11:48 <AnMaster> or such
23:11:53 <AnMaster> but that is a pain
23:11:57 <ais523> why are you doing make clean every time?
23:12:04 <AnMaster> ais523, hard to diff otherwise
23:12:14 <AnMaster> with a new make.log
23:12:24 <AnMaster> now cfunge is easy :P
23:12:28 <ais523> hmm... couldn't you make, touch, make
23:12:35 <ais523> then change stuff
23:12:39 <ais523> then make, touch, make again
23:12:42 <ais523> if you touched the same file each time
23:12:43 <AnMaster> maybe
23:12:47 <ais523> the same bits would recompile
23:12:58 <AnMaster> but I often jump between files when I edit
23:13:02 <AnMaster> so hard
23:13:16 <AnMaster> a sane colour coded output would
23:13:18 <AnMaster> such as from cmake
23:13:25 <AnMaster> ../c-intercal/src/feh2.c:491: warning: initialization discards qualifiers from pointer target type
23:13:40 <AnMaster> enablersm1 hm
23:13:41 <ais523> AnMaster: do make mostlyclean rather than make clean, does that help?
23:13:55 <ais523> AnMaster: ah, that one's fun
23:14:00 <AnMaster> ais523, it takes like 20 seconds to build
23:14:06 <ais523> it's how I make enablers be an array indexed from -1
23:14:11 <ais523> declare enablersm1
23:14:16 <AnMaster> ais523, read only?
23:14:17 <ais523> then define enablers to be enablersm1 + 1
23:14:22 <ais523> and I think it is
23:14:24 <ais523> or at least hope it is
23:14:30 <ais523> as it's a list of all the commands handled at compile-time
23:14:38 <AnMaster> 0 feh2.c <global> 462 char *enablersm1[MAXTYPES+1] =
23:14:39 <AnMaster> 1 feh2.c <global> 498 char ** enablers = enablersm1+1;
23:14:39 <AnMaster> 2 ick.h <global> 132 extern char *enablersm1[MAXTYPES+1];
23:14:39 <AnMaster> hrrm
23:15:13 <AnMaster> also what is enablers?
23:15:45 <ais523> AnMaster: it basically is a human-readable name for each command
23:15:51 <AnMaster> ais523, feh2.c and feh.h?
23:16:01 <ais523> AnMaster: feh.c was split into two files
23:16:06 <ais523> which are feh2.c and dekludge,c
23:16:09 <ais523> *dekludge.c
23:16:20 <ais523> feh.h applies to the stuff in both
23:17:39 <AnMaster> ais523, ick builds quickly so make clean is no issue
23:17:46 <AnMaster> 35 seconds vs. 20
23:18:02 <AnMaster> parser.c: In function ‘yyparse’:
23:18:02 <AnMaster> parser.c:2781: warning: passing argument 1 of ‘yyerror’ discards qualifiers from pointer target type
23:18:02 <AnMaster> parser.c:2927: warning: passing argument 1 of ‘yyerror’ discards qualifiers from pointer target type
23:18:03 <AnMaster> hm
23:18:10 <ais523> "ick builds quickly" <--- yay, something is seriously wrong with the world
23:18:18 <ais523> AnMaster: parser.c is generated code
23:18:27 <AnMaster> ais523, well is the yyerror too?
23:18:34 <AnMaster> ah no
23:18:35 <AnMaster> extern int yyerror(char*);
23:18:37 <AnMaster> is in the y file
23:18:42 <AnMaster> shouldn't that be const char*
23:18:42 <ais523> ah
23:18:45 <ais523> and yes, probably
23:18:49 <ais523> what does it do with it?
23:18:53 <ais523> and where's yyerror defined
23:18:54 <AnMaster> ais523, also that is what happens when you pass const to non-const
23:18:58 <AnMaster> such a warning not an error
23:19:02 <AnMaster> ais523, line 39
23:19:07 <AnMaster> in parser.y
23:19:09 <AnMaster> is what I pasted
23:19:18 <ais523> that's declared not defined
23:19:50 <ais523> ah, in lexer.l
23:19:53 <AnMaster> ./prebuilt/parser.c:extern int yyerror(char*);
23:19:53 <AnMaster> ./prebuilt/oil-oil.c:int yyerror(char const *);
23:19:53 <AnMaster> ./prebuilt/oil-oil.c:int yyerror(char const *s)
23:19:54 <AnMaster> ?
23:19:57 <ais523> you have to change the definition as well as the declaration
23:20:10 <ais523> AnMaster: prebuilt is fun, it's for people without lex and yacc
23:20:19 <ais523> also in the repo, but you can ignore it if you have lex and yacc workalikes yourself
23:20:20 <AnMaster> ah ok
23:20:59 <AnMaster> lexer.l:496: warning: no previous prototype for ‘yyerror’
23:20:59 <AnMaster> lexer.c:2409: warning: ‘yyunput’ defined but not used
23:20:59 <AnMaster> lexer.c:2452: warning: ‘input’ defined but not used
23:21:08 <AnMaster> ais523, myatoi?
23:21:09 <AnMaster> wtf
23:21:24 <ais523> AnMaster: its argument is potentially wchar_t
23:21:25 <ais523> rather than char
23:21:32 <ais523> although I think we gave up on the wchar_t stuff
23:21:37 <ais523> because it was too confusing
23:21:42 <AnMaster> it should probably be const
23:21:46 <ais523> yes
23:21:52 <AnMaster> though gcc doesn't see any string literal passed to it
23:21:53 <ais523> what it does, is it copies its arg into a char array
23:21:55 <AnMaster> so it didn't say anything
23:22:03 <ais523> it is being passed a char*
23:22:05 <ais523> by bison
23:22:10 <ais523> which returns everything as char*s
23:22:13 <AnMaster> right
23:22:17 <AnMaster> still it should be const
23:22:18 <ais523> just like all C code does before it's constified everywhere
23:22:21 <AnMaster> since it doesn't change
23:22:27 <ais523> but yes, modifying it is probably a bad idea
23:23:05 <AnMaster> ais523, the code doesn't currently modify it
23:23:06 <ais523> hi olsner
23:23:07 <AnMaster> olsner, really?
23:23:11 <ais523> yes, I did
23:23:18 <ais523> I was referencing the Thue -> mod_rewrite compiler
23:23:20 <olsner> AnMaster: yes, someone actually did.. I'm so happy now
23:23:24 <ais523> AnMaster: no, nor should it
23:23:34 <ais523> olsner: did you see my Underload interp in Thue?
23:23:36 <AnMaster> ../c-intercal/src/cesspool.c:401: warning: passing argument 3 of ‘ick_clc_cset_convert’ discards qualifiers from pointer target type
23:23:37 <AnMaster> hm
23:23:39 <ais523> it's the slowest Underload interp I know
23:23:55 <ais523> and I thought it would be fun to combine it with your mod_rewrite stuff to make one that was even slower
23:23:58 <olsner> it'll be even slower in mod_rewrite I promise you
23:24:11 <ais523> AnMaster: ugh
23:24:19 <AnMaster> ais523, ?
23:24:21 <ais523> ick_clc_cset_convert isn't a function I even like thinking about the call pattern of
23:24:25 <olsner> and apache has memory leaks, it doesn't free the memory for mod_rewrite until it's finished with the whole request
23:24:29 <ais523> it has arguments everywhere going both ways
23:24:40 <olsner> so anything larger than fruit flies will just OOM the web server :)
23:24:43 <AnMaster> ais523, oh well I have that sometimes, out parameters and in parameters
23:24:56 <ais523> olsner: I'm kind of curious as to how long it would take to do hello world now
23:25:10 <ais523> AnMaster: it's worse than it seems, because it can take some of its inputs either from files or from global variables
23:25:24 <AnMaster> ais523, ok, what ones are safe to const?
23:25:48 <olsner> getting late now though... I'll have to look into this tomorrow
23:26:51 <olsner> feel free to give the thue->mod_rewrite a test run though (hey, it's just a four-line sed script amyway...)
23:27:02 <ehird> cc by-sa 3.0 is the best license for creative works. discuss.
23:27:12 <AnMaster> ehird, I agree
23:27:14 <ais523> AnMaster: I'm not sure offhand
23:27:33 <AnMaster> well parameter 3 and 4 are straightforward
23:27:46 <AnMaster> damn it isn't in a header
23:27:46 <ais523> really, I can't remember what half the arguments to that thing do
23:27:49 <ais523> luckily there are annotations
23:27:50 <AnMaster> it is extern
23:27:56 <fizzie> "<AnMaster> ehird, I agree" -- that's something you don't see every day. Were you people doing the ignore thing still?
23:28:09 <AnMaster> ais523, well I could easily track incset/outcset control flow
23:28:09 <ais523> (that's the good thing about Splint, the annotation reminds me wtf the args are meant to do)
23:28:20 <ehird> fizzie: Still ignoring him. Tell him that actually i was being sarcastic even though I wasn't; it'll restore the universal balance.
23:28:42 <ais523> in this case the partial marker means that that struct has members some of which are inputs and some of which are outputs
23:29:00 <AnMaster> ais523, suggestion, move extern int ick_clc_cset_convert(... out of cesspool.c to some header
23:29:02 <fizzie> ehird: He'll see that without any explicit telling, anyway. But it's good to keep the balance.
23:29:19 <AnMaster> ehird, I agree it is a good way to keep the balance
23:29:25 <ais523> maybe
23:29:29 <ais523> I use it in a couple of places
23:29:45 <ais523> just I have this strange attitude where I like sharing source between executables, but not headers
23:29:46 <AnMaster> ais523, clc-cset.h could be created
23:29:56 <ais523> that's completely backwards of course
23:30:04 <ais523> creating a header file is the sane solution
23:30:19 <AnMaster> heh
23:30:25 <AnMaster> so you wouldn't do it then
23:30:27 <ais523> hmm... maybe I should make a polyglot header file/source, it would simplify maintenance
23:30:33 <ais523> put #defines so you can #define HEADER
23:30:38 <ais523> then include all the source files
23:30:41 <AnMaster> heh
23:30:45 <ais523> and it just includes the prototypes
23:30:50 <ais523> in theory, this makes maintenance a lot easier
23:31:01 <AnMaster> ais523, you can use gcc -combine to debug such defines
23:31:10 <AnMaster> err
23:31:12 <ais523> AnMaster: you're acting like this is actually a good idea...
23:31:12 <AnMaster> externs
23:31:25 <AnMaster> ais523, you can check that externs match using gcc -combine
23:31:32 <ais523> gcc -combine would fail on C-INTERCAL
23:31:36 <AnMaster> ais523, oh?
23:31:40 <AnMaster> how comes
23:31:40 <ais523> partly because it fits together multiple ways
23:31:45 <ehird> hmm, since AnMaster said "even though I wasn't" the universe is still out of balance
23:31:48 <ais523> there are various subsets of the files involved that works
23:31:49 <ehird> ok, let's try this:
23:31:54 <ais523> *that work
23:31:56 <ehird> bsd3 is the best license for codeular works. discuss.
23:31:59 <ais523> and you get a different program each way
23:32:10 <AnMaster> ais523, "<AnMaster> ehird, I agree it is a good way to keep the balance" <-- tell ehird that
23:32:21 <ehird> s/said/heard/
23:32:26 <ais523> +ul (<AnMaster> ais523, "<AnMaster> ehird, I agree it is a good way to keep the balance" <-- tell ehird that)S
23:32:26 <thutubot> <AnMaster> ais523, "<AnMaster> ehird, I agree it is a good way to keep the balance" <-- tell ehird that
23:32:41 <ehird> yeah, like AnMaster would know anything bout sum universal balance
23:33:23 <AnMaster> +ul (ehird, it may not always be the best with BSD, but it is often very good iirc. I don't remember the details about which one BSD 3-clause is exactly.)S
23:33:23 <thutubot> ehird, it may not always be the best with BSD, but it is often very good iirc. I don't remember the details about which one BSD 3-clause is exactly.
23:33:39 <ehird> damnit. you're meant to argue about how gpl3 is way better.
23:33:45 <ehird> stop putting the universe out of balance, you dick.
23:34:11 <ais523> ehird: stop it, trying to read one and a half conversations at once is really confusing
23:34:16 <ehird> :D
23:34:39 <fizzie> Abandon the universe, abandon the universe, it's gonna tilt out of balance and fall off (but where?).
23:34:49 <AnMaster> +ul (ehird you are right, I should stop agreeing with you, but it is hard when you are being right for once :P)S
23:34:50 <thutubot> ehird you are right, I should stop agreeing with you, but it is hard when you are being right for once :P
23:34:56 <AnMaster> ais523, heh
23:35:03 <ehird> ^ul (YOU SUCK DICK)S
23:35:04 <fungot> YOU SUCK DICK
23:35:12 <fizzie> fungot: Language!
23:35:12 <fungot> fizzie: if i go to community college, i do
23:35:13 <ehird> Universal balance restored.
23:35:17 <ehird> lol
23:35:20 <ehird> he thinks you mean studying language
23:35:20 <ehird> :D
23:35:24 <fizzie> fungot: That's no excuse.
23:35:25 <fungot> fizzie: nah. i'm not sure.
23:35:28 <ais523> ^style ic
23:35:29 <AnMaster> +ul (Factually incorrect actually. But I know someone who does if you are interested.)S
23:35:29 <fungot> Selected style: ic (INTERCAL manual)
23:35:29 <thutubot> Factually incorrect actually. But I know someone who does if you are interested.
23:35:40 <ais523> fungot!
23:35:41 <fungot> ais523: this error means that the libraries themselves are pattern templates specifying what operands these operators is to write a library suitable for use with ascii-7, and so are not always right to left, or at least, that is expressions which have a 16-bit result; c-intercal relaxes this rule slightly and only if your input is being created. typical syntax for a bug ( either the line label is encountered ( in a multithreade
23:35:43 <ehird> ^ul (psygnisfive?)S
23:35:49 <ehird> Hey fuck you fungot
23:35:49 <fungot> ehird: otherwise, the funge program or a mixture of the statement is self-abstaining or self-reinstating ( this is a name clash between any two functions, the code at all.
23:35:50 <ehird> Talk to me
23:35:53 <ehird> ^ul (psygnisfive?)S
23:35:53 <fungot> psygnisfive?
23:35:54 <AnMaster> +ul (ehird^)S
23:35:54 <thutubot> ehird^
23:35:59 <psygnisfive> yah?
23:36:08 <ehird> psygnisfive: nuttin'
23:36:17 <AnMaster> ais523, hm anyway
23:36:35 <AnMaster> ais523, where were we?
23:36:56 <ais523> debating the merits of gcc --combine
23:37:05 <AnMaster> ais523, right. so combine wouldn't work even when just building one part of it?
23:37:05 <ais523> and whether C-INTERCAL was sufficiently crazy to defeat it
23:37:07 <AnMaster> such as ick
23:37:09 <AnMaster> or oil
23:37:16 <AnMaster> ?
23:37:16 <ais523> it would have to recompile all the object files multiple times I think
23:37:20 <ais523> it would work for oil but that's only one file
23:37:21 <AnMaster> well true
23:37:29 <AnMaster> ais523, -fwhole-program ;)
23:37:31 <ais523> and that wouldn't fit in the makefile
23:37:49 <ais523> not to mention, you're forgetting the code ick's output generates
23:37:55 <ais523> at runtime
23:37:55 <AnMaster> ais523, well no -combine doesn't work at all with any make system I forgot
23:38:01 <AnMaster> s/fogot/know/
23:38:02 <AnMaster> damn
23:38:16 <AnMaster> don't read and write at the same time at 00:38
23:38:40 <ais523> DO :1 <- #38 DO PIN :1
23:38:46 <AnMaster> ais523, will you be here tomorrow?
23:38:52 <ais523> yes, I think so
23:38:57 <ais523> time for me to leave as well I reckon
23:39:00 <AnMaster> ais523, ok what was that DO PIN?
23:39:04 <ais523> AnMaster: PIC-INTERCAL
23:39:13 <ais523> it's a command to read and write at the same time
23:39:14 <AnMaster> and how was it related to anything above?
23:39:17 <AnMaster> ah
23:39:23 <AnMaster> that is crazy
23:39:33 <AnMaster> ais523, how can you read and write a pin at the same time?
23:39:41 <ais523> it affects 16 pins at once
23:39:50 <ais523> some of which are read and some of which are written
23:39:54 <AnMaster> haha
23:39:56 <ais523> and actually, changing to input mode is a sort of writing
23:40:06 -!- CakeProphet has quit (Read error: 110 (Connection timed out)).
23:40:07 <ais523> because you can detect externally that an output is in input mode
23:41:18 <AnMaster> heh
23:41:20 -!- CakeProphet has joined.
23:43:10 <AnMaster> ais523, what is /*@partial@*/ ?
23:43:32 <ais523> AnMaster: it means it's both an input and an output
23:43:39 <ais523> basically the struct there has various fields
23:43:46 <ais523> some of which hold useful values when it's called
23:43:55 <ais523> and others of which gain useful values when it returns
23:44:10 <AnMaster> ais523, a char* is a struct?
23:44:12 <AnMaster> it says
23:44:19 <AnMaster> /*@partial@*/ char* out
23:44:39 <ais523> in that case it means something slightly different
23:44:42 <ais523> I just have to figure out what
23:44:47 <AnMaster> ick_clc_cset_convert again
23:45:01 <ais523> I know
23:45:04 <AnMaster> ais523, also where are these documented?
23:45:11 <ais523> in the Splint manual
23:45:17 <ais523> but don't try to understand it while tired or drunk
23:45:41 <AnMaster> I'm not drunk
23:45:46 <AnMaster> I'm a teetotaller
23:46:06 <AnMaster> I never ever drunk any alcohol in my life
23:46:18 <AnMaster> nor do I ever want to drink a drug
23:46:22 <AnMaster> which is what it is
23:46:23 <ais523> I have drunk alcohol in my life, but not for the past 3 years or so
23:46:43 <AnMaster> or coffee, another drug
23:46:45 <ais523> time to go home anyway, bye everyone
23:46:51 <AnMaster> ais523, cya
23:46:55 <AnMaster> night too
←2008-11-16 2008-11-17 2008-11-18→ ↑2008 ↑all