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

tags 22:52:39 AnMaster: it looks like normal const addition 22:52:49 ais523, yes and a few static 22:52:54 I'd probably run it all through splint and see if anything broke, then through gcc and see if anything broke 22:53:04 ais523, gcc broke nothing 22:53:04 p:hover { background-color: #ddf8ff } 22:53:07 That's why. 22:53:08 splint I don't know 22:53:14 ais523, since splint is insane 22:53:16 Now that's a very strange style to set. 22:53:21 messing with static could potentially be risky, but I don't think so; I added static a couple of versions back 22:53:24 fizzie, agreed 22:53:26 after splinting the whole thing 22:53:41 ehird: your browser clearly doesn't implement CSS3 properly if it isn't happening to you 22:53:48 it does. 22:53:49 ais523, I checked that those static functions weren't used anywhere else 22:53:53 using grep 22:53:59 ok 22:53:59 anyway 22:54:01 that's not even css3 22:54:04 anyway 22:54:06 obviously I must have missed them the first time 22:54:07 if you mean the Abstract: and such 22:54:08 yes 22:54:10 the background changes 22:54:11 ehird: it is for tags other than , isn't it? 22:54:13 but the actual content... no 22:54:16 ais523: no. 22:54:16 ais523, it was the isenv one 22:54:22 that is, iirc, css1 22:54:23 it is only used on DJPPG thingy too 22:54:35 ehird: all the P tags, not just the abstract 22:54:39 yes, well, WFM 22:54:43 even lower down, the code examples don't but the explanation text does 22:55:23 ais523, indeed 22:56:15 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 I especially like the way they use .exe as an extension for OCaml bytecode 22:57:38 -!- Slereah_ has joined. 22:58:06 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 Like NOT USE IT 22:59:01 fizzie: functional JS is fun, but that's been done 22:59:20 maybe we should get olsner to compile my Underload interp in Thue to mod_rewrite 22:59:30 and have the very slowest Underload interpreter ever 22:59:36 but that's not JS, just vaguely webby 23:01:03 fizzie, jsmips 23:01:34 ais523, is mod_rewrite allowed to run for that long? 23:01:41 wouldn't it abort like mediawiki 23:03:56 ais523, is it safe to make ick_numerals const? 23:03:59 in numerals.c 23:04:06 trying to remember 23:04:09 and the name part 23:04:11 I don't think so, doesn't clockface() edit it? 23:04:22 the word list should be OK though 23:04:27 ais523, no idea 23:04:35 typedef struct 23:04:35 { 23:04:35 char *name; 23:04:35 intvalue; 23:04:35 } 23:04:40 numeral; 23:04:42 is what it says 23:04:48 I want char*name to be const char*name 23:04:53 ick_numerals should be fine 23:04:59 and I think char* name can be const too 23:04:59 that will get rid of lots and lots of warnings 23:05:14 ais523, you said clockface edits it? 23:05:17 no 23:05:23 it changes a different array 23:05:29 which is in abcess.h, probably 23:05:34 *cespool.c 23:05:37 *cesspool.c 23:05:53 ais523, ick_numerals isn't extern elsewhere 23:05:57 yet it is used elsewhere 23:06:00 AnMaster: #include 23:06:01 how the heck does that work 23:06:05 including the C file? 23:06:07 yes 23:06:17 ais523, I quote this filename. 23:06:19 ../c-intercal/src/arrgghh.c 23:06:36 oil.y:281: warning: assignment discards qualifiers from pointer target type 23:06:36 oil.y:281: warning: assignment discards qualifiers from pointer target type 23:06:36 oil.y:282: warning: assignment discards qualifiers from pointer target type 23:06:36 oil.y:282: warning: assignment discards qualifiers from pointer target type 23:06:36 oil.y:283: warning: assignment discards qualifiers from pointer target type 23:06:37 oil.y:283: warning: assignment discards qualifiers from pointer target type 23:06:39 $ grep -n numerals.c * 23:06:39 lots like that 23:06:40 cesspool.c:47:#include "numerals.c" 23:06:43 for all the lines 23:07:42 ah, found it 23:07:48 found what? 23:07:51 line 72 23:07:51 that oil.y one? 23:08:01 it's a char* element of a struct 23:08:01 char* condition; /* Points to a constant string; the condition to generate 23:08:01 ? 23:08:04 ais523, yes 23:08:06 which has string literals assigned to it 23:08:08 is it safe to change? 23:08:20 "Points to a constant string" that sounds very like const char* to me 23:08:29 " Could also point to something the lexer 23:08:29 mallocs, but then the lexer has to keep track of being 23:08:29 able to free it again." 23:09:06 AnMaster: the fact that it could hold a constant string means it won't change 23:09:09 ais523, only helped with half of the warnings 23:09:14 in oil.y 23:09:18 the next char* should be const char* too 23:09:22 for nodetypename 23:09:37 safe? 23:09:50 yes 23:09:54 why do you ask? compile and find out 23:10:03 if it isn't safe you'll get an error for modifying something const 23:10:10 ais523, I may not be able to trigger a case where it fails at runtime 23:10:19 considering how ick does it 23:10:20 it will fail at compile time if you write to a const 23:10:25 unless there's a dangerous cast in there 23:10:34 yes but not if you pass it to something taking a char* 23:10:37 which there aren't because there's no need to cast to char* if everything's char* already 23:10:39 AnMaster: that's an error 23:10:41 will just be a warning 23:10:44 ais523, a warning 23:10:46 well, you'll notice it won't you 23:11:07 ais523, with the crapload of other warnings it spews? 23:11:14 grep exists... 23:11:22 or you could turn on just the particular warning you wany 23:11:24 *want 23:11:26 true 23:11:33 for that matter, someone should develop a warningdiff tool 23:11:37 which saves compiler output 23:11:37 ais523, the autoconf output is rather messy and hard to read 23:11:38 you make changes 23:11:45 and then it tells you what changed 23:11:46 make clean all &> make.log 23:11:48 or such 23:11:53 but that is a pain 23:11:57 why are you doing make clean every time? 23:12:04 ais523, hard to diff otherwise 23:12:14 with a new make.log 23:12:24 now cfunge is easy :P 23:12:28 hmm... couldn't you make, touch, make 23:12:35 then change stuff 23:12:39 then make, touch, make again 23:12:42 if you touched the same file each time 23:12:43 maybe 23:12:47 the same bits would recompile 23:12:58 but I often jump between files when I edit 23:13:02 so hard 23:13:16 a sane colour coded output would 23:13:18 such as from cmake 23:13:25 ../c-intercal/src/feh2.c:491: warning: initialization discards qualifiers from pointer target type 23:13:40 enablersm1 hm 23:13:41 AnMaster: do make mostlyclean rather than make clean, does that help? 23:13:55 AnMaster: ah, that one's fun 23:14:00 ais523, it takes like 20 seconds to build 23:14:06 it's how I make enablers be an array indexed from -1 23:14:11 declare enablersm1 23:14:16 ais523, read only? 23:14:17 then define enablers to be enablersm1 + 1 23:14:22 and I think it is 23:14:24 or at least hope it is 23:14:30 as it's a list of all the commands handled at compile-time 23:14:38 0 feh2.c 462 char *enablersm1[MAXTYPES+1] = 23:14:39 1 feh2.c 498 char ** enablers = enablersm1+1; 23:14:39 2 ick.h 132 extern char *enablersm1[MAXTYPES+1]; 23:14:39 hrrm 23:15:13 also what is enablers? 23:15:45 AnMaster: it basically is a human-readable name for each command 23:15:51 ais523, feh2.c and feh.h? 23:16:01 AnMaster: feh.c was split into two files 23:16:06 which are feh2.c and dekludge,c 23:16:09 *dekludge.c 23:16:20 feh.h applies to the stuff in both 23:17:39 ais523, ick builds quickly so make clean is no issue 23:17:46 35 seconds vs. 20 23:18:02 parser.c: In function ‘yyparse’: 23:18:02 parser.c:2781: warning: passing argument 1 of ‘yyerror’ discards qualifiers from pointer target type 23:18:02 parser.c:2927: warning: passing argument 1 of ‘yyerror’ discards qualifiers from pointer target type 23:18:03 hm 23:18:10 "ick builds quickly" <--- yay, something is seriously wrong with the world 23:18:18 AnMaster: parser.c is generated code 23:18:27 ais523, well is the yyerror too? 23:18:34 ah no 23:18:35 extern int yyerror(char*); 23:18:37 is in the y file 23:18:42 shouldn't that be const char* 23:18:42 ah 23:18:45 and yes, probably 23:18:49 what does it do with it? 23:18:53 and where's yyerror defined 23:18:54 ais523, also that is what happens when you pass const to non-const 23:18:58 such a warning not an error 23:19:02 ais523, line 39 23:19:07 in parser.y 23:19:09 is what I pasted 23:19:18 that's declared not defined 23:19:50 ah, in lexer.l 23:19:53 ./prebuilt/parser.c:extern int yyerror(char*); 23:19:53 ./prebuilt/oil-oil.c:int yyerror(char const *); 23:19:53 ./prebuilt/oil-oil.c:int yyerror(char const *s) 23:19:54 ? 23:19:57 you have to change the definition as well as the declaration 23:20:10 AnMaster: prebuilt is fun, it's for people without lex and yacc 23:20:19 also in the repo, but you can ignore it if you have lex and yacc workalikes yourself 23:20:20 ah ok 23:20:59 lexer.l:496: warning: no previous prototype for ‘yyerror’ 23:20:59 lexer.c:2409: warning: ‘yyunput’ defined but not used 23:20:59 lexer.c:2452: warning: ‘input’ defined but not used 23:21:08 ais523, myatoi? 23:21:09 wtf 23:21:24 AnMaster: its argument is potentially wchar_t 23:21:25 rather than char 23:21:32 although I think we gave up on the wchar_t stuff 23:21:37 because it was too confusing 23:21:42 it should probably be const 23:21:46 yes 23:21:52 though gcc doesn't see any string literal passed to it 23:21:53 what it does, is it copies its arg into a char array 23:21:55 so it didn't say anything 23:22:03 it is being passed a char* 23:22:05 by bison 23:22:10 which returns everything as char*s 23:22:13 right 23:22:17 still it should be const 23:22:18 just like all C code does before it's constified everywhere 23:22:21 since it doesn't change 23:22:27 but yes, modifying it is probably a bad idea 23:22:48 OMG SOMEONE SAID SOMETHING TO ME 23:23:05 ais523, the code doesn't currently modify it 23:23:06 hi olsner 23:23:07 olsner, really? 23:23:11 yes, I did 23:23:18 I was referencing the Thue -> mod_rewrite compiler 23:23:20 AnMaster: yes, someone actually did.. I'm so happy now 23:23:24 AnMaster: no, nor should it 23:23:34 olsner: did you see my Underload interp in Thue? 23:23:36 ../c-intercal/src/cesspool.c:401: warning: passing argument 3 of ‘ick_clc_cset_convert’ discards qualifiers from pointer target type 23:23:37 hm 23:23:39 it's the slowest Underload interp I know 23:23:55 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 it'll be even slower in mod_rewrite I promise you 23:24:11 AnMaster: ugh 23:24:19 ais523, ? 23:24:21 ick_clc_cset_convert isn't a function I even like thinking about the call pattern of 23:24:25 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 it has arguments everywhere going both ways 23:24:40 so anything larger than fruit flies will just OOM the web server :) 23:24:43 ais523, oh well I have that sometimes, out parameters and in parameters 23:24:56 olsner: I'm kind of curious as to how long it would take to do hello world now 23:25:10 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 ais523, ok, what ones are safe to const? 23:25:48 getting late now though... I'll have to look into this tomorrow 23:26:51 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 cc by-sa 3.0 is the best license for creative works. discuss. 23:27:12 ehird, I agree 23:27:14 AnMaster: I'm not sure offhand 23:27:33 well parameter 3 and 4 are straightforward 23:27:46 damn it isn't in a header 23:27:46 really, I can't remember what half the arguments to that thing do 23:27:49 luckily there are annotations 23:27:50 it is extern 23:27:56 " ehird, I agree" -- that's something you don't see every day. Were you people doing the ignore thing still? 23:28:09 ais523, well I could easily track incset/outcset control flow 23:28:09 (that's the good thing about Splint, the annotation reminds me wtf the args are meant to do) 23:28:20 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 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 ais523, suggestion, move extern int ick_clc_cset_convert(... out of cesspool.c to some header 23:29:02 ehird: He'll see that without any explicit telling, anyway. But it's good to keep the balance. 23:29:19 ehird, I agree it is a good way to keep the balance 23:29:25 maybe 23:29:29 I use it in a couple of places 23:29:45 just I have this strange attitude where I like sharing source between executables, but not headers 23:29:46 ais523, clc-cset.h could be created 23:29:56 that's completely backwards of course 23:30:04 creating a header file is the sane solution 23:30:19 heh 23:30:25 so you wouldn't do it then 23:30:27 hmm... maybe I should make a polyglot header file/source, it would simplify maintenance 23:30:33 put #defines so you can #define HEADER 23:30:38 then include all the source files 23:30:41 heh 23:30:45 and it just includes the prototypes 23:30:50 in theory, this makes maintenance a lot easier 23:31:01 ais523, you can use gcc -combine to debug such defines 23:31:10 err 23:31:12 AnMaster: you're acting like this is actually a good idea... 23:31:12 externs 23:31:25 ais523, you can check that externs match using gcc -combine 23:31:32 gcc -combine would fail on C-INTERCAL 23:31:36 ais523, oh? 23:31:40 how comes 23:31:40 partly because it fits together multiple ways 23:31:45 hmm, since AnMaster said "even though I wasn't" the universe is still out of balance 23:31:48 there are various subsets of the files involved that works 23:31:49 ok, let's try this: 23:31:54 *that work 23:31:56 bsd3 is the best license for codeular works. discuss. 23:31:59 and you get a different program each way 23:32:10 ais523, " ehird, I agree it is a good way to keep the balance" <-- tell ehird that 23:32:21 s/said/heard/ 23:32:26 +ul ( ais523, " ehird, I agree it is a good way to keep the balance" <-- tell ehird that)S 23:32:26 ais523, " ehird, I agree it is a good way to keep the balance" <-- tell ehird that 23:32:41 yeah, like AnMaster would know anything bout sum universal balance 23:33:23 +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 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 damnit. you're meant to argue about how gpl3 is way better. 23:33:45 stop putting the universe out of balance, you dick. 23:34:11 ehird: stop it, trying to read one and a half conversations at once is really confusing 23:34:16 :D 23:34:39 Abandon the universe, abandon the universe, it's gonna tilt out of balance and fall off (but where?). 23:34:49 +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 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 ais523, heh 23:35:03 ^ul (YOU SUCK DICK)S 23:35:04 YOU SUCK DICK 23:35:12 fungot: Language! 23:35:12 fizzie: if i go to community college, i do 23:35:13 Universal balance restored. 23:35:17 lol 23:35:20 he thinks you mean studying language 23:35:20 :D 23:35:24 fungot: That's no excuse. 23:35:25 fizzie: nah. i'm not sure. 23:35:28 ^style ic 23:35:29 +ul (Factually incorrect actually. But I know someone who does if you are interested.)S 23:35:29 Selected style: ic (INTERCAL manual) 23:35:29 Factually incorrect actually. But I know someone who does if you are interested. 23:35:40 fungot! 23:35:41 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 ^ul (psygnisfive?)S 23:35:49 Hey fuck you fungot 23:35:49 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 Talk to me 23:35:53 ^ul (psygnisfive?)S 23:35:53 psygnisfive? 23:35:54 +ul (ehird^)S 23:35:54 ehird^ 23:35:59 yah? 23:36:08 psygnisfive: nuttin' 23:36:17 ais523, hm anyway 23:36:35 ais523, where were we? 23:36:56 debating the merits of gcc --combine 23:37:05 ais523, right. so combine wouldn't work even when just building one part of it? 23:37:05 and whether C-INTERCAL was sufficiently crazy to defeat it 23:37:07 such as ick 23:37:09 or oil 23:37:16 ? 23:37:16 it would have to recompile all the object files multiple times I think 23:37:20 it would work for oil but that's only one file 23:37:21 well true 23:37:29 ais523, -fwhole-program ;) 23:37:31 and that wouldn't fit in the makefile 23:37:49 not to mention, you're forgetting the code ick's output generates 23:37:55 at runtime 23:37:55 ais523, well no -combine doesn't work at all with any make system I forgot 23:38:01 s/fogot/know/ 23:38:02 damn 23:38:16 don't read and write at the same time at 00:38 23:38:40 DO :1 <- #38 DO PIN :1 23:38:46 ais523, will you be here tomorrow? 23:38:52 yes, I think so 23:38:57 time for me to leave as well I reckon 23:39:00 ais523, ok what was that DO PIN? 23:39:04 AnMaster: PIC-INTERCAL 23:39:13 it's a command to read and write at the same time 23:39:14 and how was it related to anything above? 23:39:17 ah 23:39:23 that is crazy 23:39:33 ais523, how can you read and write a pin at the same time? 23:39:41 it affects 16 pins at once 23:39:50 some of which are read and some of which are written 23:39:54 haha 23:39:56 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 because you can detect externally that an output is in input mode 23:41:18 heh 23:41:20 -!- CakeProphet has joined. 23:43:10 ais523, what is /*@partial@*/ ? 23:43:32 AnMaster: it means it's both an input and an output 23:43:39 basically the struct there has various fields 23:43:46 some of which hold useful values when it's called 23:43:55 and others of which gain useful values when it returns 23:44:10 ais523, a char* is a struct? 23:44:12 it says 23:44:19 /*@partial@*/ char* out 23:44:39 in that case it means something slightly different 23:44:42 I just have to figure out what 23:44:47 ick_clc_cset_convert again 23:45:01 I know 23:45:04 ais523, also where are these documented? 23:45:11 in the Splint manual 23:45:17 but don't try to understand it while tired or drunk 23:45:41 I'm not drunk 23:45:46 I'm a teetotaller 23:46:06 I never ever drunk any alcohol in my life 23:46:18 nor do I ever want to drink a drug 23:46:22 which is what it is 23:46:23 I have drunk alcohol in my life, but not for the past 3 years or so 23:46:43 or coffee, another drug 23:46:45 time to go home anyway, bye everyone 23:46:51 ais523, cya 23:46:55 night too