00:04:04 -!- cpressey has left (?). 00:16:57 -!- Pthing has quit ("Leaving"). 00:17:09 -!- Pthing has joined. 00:20:50 -!- Sgeo has joined. 00:22:56 -!- coppro has quit ("I am leaving. You are about to explode."). 00:24:39 Any non-regulars in here? 00:25:01 I took some pills for that 00:25:32 -!- coppro has joined. 00:25:33 lol 00:25:40 * coppro has quit ("I am leaving. You are about to explode.") 00:25:40 Any non-regulars in here? 00:25:40 I took some pills for that 00:25:40 * coppro (n=coppro@unaffiliated/coppro) has joined #esoteric 00:26:49 lol 00:26:53 I count as a regular now, don't I? 00:27:17 Sure ya do, pooppy! 00:27:41 * Sgeo is waiting for a particular person he invited from Reddit to talk about Robozzle 00:29:24 -!- Rygarb has joined. 00:31:07 -!- Rygarb has quit (Client Quit). 00:33:30 non-regular here 00:33:51 nonregular 00:35:26 * SimonRC goes to bed 00:35:34 Hi Ryg.. 00:35:41 Rygarb was the person I was waiting for 00:38:16 * Sgeo facepalms a few times 00:54:42 i'm an intermittent regular, really 00:54:50 actually, a hibernator 01:03:13 -!- madbr has joined. 01:09:30 Gregor: Many of us are like that, really. 01:12:01 http://filebin.ca/pfbmoy/maybewaltz.ogg <-- what happens when Gregor tries to write a waltz. 01:12:36 Gregor: do you do anything normal with your life? 01:12:44 Define "normal" 01:12:59 answer: he gets on all 3s 01:13:02 coppro: Do any of us? 01:13:28 pikhq: I'm increasingly of the opinion that none of us do 01:13:32 but I keep trying for that hope 01:26:03 Normal == perpendicular to tangent? 01:26:18 Sgeo: In some contexts, yes. 01:26:33 pikhq, what else can normal mean? 01:27:02 And I mean mathematically 01:28:53 normal distribution 01:53:34 -!- augur has changed nick to quantic1e. 01:53:38 -!- quantic1e has changed nick to augur. 01:58:46 -!- MissPiggy has quit. 02:13:49 where is soupdragon/fax? 02:13:52 :| 02:14:23 augur, just left 02:14:45 shes as misspiggy now? 02:15:29 iirc, yes 02:15:40 hm! 02:22:20 -!- oerjan has joined. 02:23:46 It's an FRCer! 02:23:58 Hail, oerjan. 02:24:16 'morn 02:31:33 oerjan's an FRCer? 02:32:09 MWAHAHAHA 02:32:38 Yes, oerjan's an FRCer and an occasional nomic player. Been a while since he was in Agora, though... 02:33:53 for a value of occasional ~ 5, 6 years or so 02:34:09 Hm, that implies oerjan is a _current_ FRCer? 02:34:13 I thought he was a former one? 02:34:46 you can sign out any time you want, but you can never leave 02:35:35 Sgeo: FRC doesn't remove players. They just consider you non-active. 02:37:56 * oerjan would be extremely surprised if the member list has been accurate since - sometime before he left, probably 02:38:12 I'd imagine it's not all that accurate. 02:38:30 I wasn't even aware there's a member list 02:38:35 *Formally* they never remove players, but since the list of players doesn't matter, lazy evaluation tends to take care of that. 02:38:51 coppro: I'm not sure there actually *is* a list. 02:39:06 i suppose that it also a possibility :D 02:39:30 * oerjan is pretty sure he kept such a list at one time. 02:39:47 Well, except in the sense that you can say "There exists a list that contains the players of FRC." 03:12:34 Hmmmmm 03:12:41 p 03:12:43 p 03:12:55 Actually, relistening to this waltz, thinking about it as game background music, it /could/ work. 03:24:21 -!- oerjan has quit ("leaving"). 03:27:33 -!- jpc has joined. 03:32:35 -!- Sgeo_ has joined. 03:39:27 -!- calamari_ has joined. 03:44:55 -!- calamari_ has changed nick to calamari. 03:45:16 Well, saw the PS3 hack... 03:45:20 That's freaking crazy. 03:50:24 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 03:50:40 "And then I drop the memory bus low for 40 ns to avoid the cache writeback from the hypervisor" 03:50:41 -!- kar8nga has joined. 03:55:47 -!- kar8nga has quit (Remote closed the connection). 04:13:33 pikhq: sounds hardcore, what does the hack mean exactly, I mean can it be patched by sony? 04:16:05 zeotrope: By releasing a CPU without a cache. 04:16:32 (that is to say "not only no but fuck no") 04:17:23 time to get a ps3 then? 04:17:45 Get a fat one; the slims don't have Linux support, and he runs the code as a Linux module. 04:17:54 Might be possible otherwise, but it's a PITA. 04:18:02 :( I'm sure they are hard to track down 04:18:09 Requires an arbitrary code execution bug in any extant PS3 program. 04:18:11 No, not really. 04:18:23 Even the PS2-compatible ones aren't too hard to find. 04:18:28 * pikhq picked one up a couple weeks ago 04:18:57 gonna wait and see what they do with it 04:19:14 * zeotrope is totally broke 04:19:25 Peek and poke implies "just about anything". 04:19:58 -!- oraqol has joined. 04:21:07 -!- oraqol has left (?). 04:23:01 his description of the exploit totally went over my head, gotta read up on electronics one of these days 04:28:46 Most of it's software, really. 04:29:23 The only bit of hardware is screwing up the memory bus to prevent the hypervisor from doing the cache writeback right... 04:38:11 -!- Pthing has quit (Remote closed the connection). 05:16:09 -!- Sgeo has joined. 05:30:16 -!- Asztal has quit (Read error: 110 (Connection timed out)). 05:33:19 -!- Sgeo_ has quit (Read error: 110 (Connection timed out)). 05:34:32 http://filebin.ca/qtqhva/maybewaltzpointdos.ogg (Now with 100% more Gregor!) 05:36:44 where'd that filename come from? 05:36:55 Maybe Waltz Point Two->Es 05:37:07 ah 05:43:19 Any opinions on the second half? Other than "the part that's clearly ripped off from Pachelbel is clearly ripped of from Pachelbel" 05:44:36 INSUFFICIENTLY STOLEN FROM PACHELBEL. 05:44:45 STICK HIS ENTIRE BODY OF WORK IN A SINGLE PIECE. 05:44:53 :P 05:44:59 But make it a waltz? 05:45:11 Make it 4 minutes and 33 seconds. 05:45:37 I sampled that and overlayed it verbatim on top of this. 05:45:40 So you can have the most unique performance of Cage's 4'33". 05:45:45 (Trimmed of course) 06:38:30 -!- madbr has quit ("Radiateur"). 06:39:19 -!- MizardX has joined. 06:43:38 -!- calamari has quit ("Leaving"). 07:02:56 -!- tombom has joined. 07:48:45 -!- oerjan has joined. 07:50:30 -!- tombom has quit ("Leaving"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:05:24 -!- FireFly has joined. 08:15:44 -!- MigoMipo has joined. 08:34:10 -!- oerjan has quit ("leaving"). 08:54:08 -!- MizardX has quit (kubrick.freenode.net irc.freenode.net). 08:54:08 -!- oklo has quit (kubrick.freenode.net irc.freenode.net). 08:54:41 -!- MizardX has joined. 08:54:41 -!- oklo has joined. 09:00:24 -!- jpc has quit ("I will do anything (almost) for a new router."). 09:03:06 -!- MigoMipo has quit (Remote closed the connection). 09:13:37 -!- GreaseMonkey has quit ("HydraIRC -> http://www.hydrairc.org <- Nobody cares enough to cybersquat it"). 09:49:31 -!- FireFly has quit ("Leaving"). 10:29:13 -!- lament has quit (Read error: 60 (Operation timed out)). 11:10:02 -!- MizardX- has joined. 11:26:09 -!- MizardX has quit (Read error: 110 (Connection timed out)). 11:26:28 -!- MizardX- has changed nick to MizardX. 11:47:55 Gregor: sorta weird ending 12:12:51 -!- oklo has quit (kubrick.freenode.net irc.freenode.net). 12:13:19 -!- oklo has joined. 12:51:06 -!- MizardX- has joined. 12:54:54 -!- MizardX has quit (Read error: 60 (Operation timed out)). 12:55:03 -!- MizardX- has changed nick to MizardX. 13:06:43 why don't text editors have call stacks 13:07:28 if i want to fix a function, then return back to where i was, i have to use my own memory 13:38:57 -!- fizzie has quit (kubrick.freenode.net irc.freenode.net). 13:38:57 -!- EgoBot has quit (kubrick.freenode.net irc.freenode.net). 13:38:58 -!- Gregor has quit (kubrick.freenode.net irc.freenode.net). 13:39:09 -!- EgoBot has joined. 13:39:29 -!- Gregor has joined. 13:56:36 -!- MissPiggy has joined. 14:08:23 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)). 14:28:31 -!- MizardX- has joined. 14:28:39 oklo: It's unended. 14:41:40 http://www.mail-archive.com/gcc@gcc.gnu.org/msg49113.html Huh. 14:44:19 -!- MizardX has quit (Connection timed out). 14:44:27 -!- MizardX- has changed nick to MizardX. 14:45:34 -!- MissPiggy has quit (Read error: 104 (Connection reset by peer)). 14:45:59 -!- MissPiggy has joined. 14:48:44 -!- cpressey has joined. 15:02:13 -!- Pthing has joined. 15:45:35 Help! I promised myself I wouldn't solve a RoboZZle puzzle this morning, and I am 15:45:42 It's a pathetically easy one though 15:49:05 * Sgeo puts in a trivial shorter solution to one he solved a while ago 15:53:07 Having all my past solutions available to me is a big help 15:59:26 If Rygarb comes in, say hi. E's the redditor I've been talking about, and hasn't used non-IM chat before 16:01:03 * MissPiggy did some robozzle today 16:01:36 Why am I not getting ready to go to school? 16:04:12 robozzle does that to you 16:05:18 It's not RoboZZle 16:05:24 RoboZZle's fault right now 16:05:30 I'm going to school later than usual, so 16:07:10 It's messing with my mind, I think 16:07:35 just how much have you been playing it o_o 16:10:23 I meant the "not going to school at the time I'm used to" is messing with my mind 16:10:37 oh heh 16:10:48 ais523 / scarf: i have important matters to discuss. 16:12:01 ais523 / scarf: this time, actual provable progress, not just refined ideas. 16:13:31 Chrome needs a Firefox tab extension, analogous to IE Tab 16:14:26 -!- FireFly has joined. 16:16:56 Sgeo: why? 16:17:15 There are websites that work in Firefox but not Chrome 16:17:22 My school requires use of one such site 16:17:55 is that because the websites use browser sniffing? or what exactly 16:18:27 the IE tab makes sense because IE is so god damn broken 16:19:03 i guess that might be interesting to the public as well: an append function in clue has been compiled, although there's no parser yet 16:19:06 http://www.vjn.fi/pb/p666553643.txt 16:19:13 compiles, although parsing has to be done manually 16:19:31 zeotrope, it also says it doesn't work with Safari, so maybe it's an issue with Webkit 16:20:07 it's an append function programmed by giving suitable examples of how it should work 16:20:57 what are the numbers? 16:20:59 compiles in 0.03 seconds without any sort of optimization (purely brute force search) 16:21:03 MissPiggy: they are just numbers 16:21:25 how do you read it? 16:21:34 examples of how append should work, "[2,5,7],[3,6,8] -> [2,5,7,3,6,8];" means "given the lists [2,5,7] and [3,6,8], output [2,5,7,3,6,8]" 16:21:51 this produces a function that appends any two lists 16:21:58 wow how does it work? 16:22:00 after compilation 16:22:11 it works by finding a clever set of examples 16:22:35 basically while the actual functions and computation is completely brute force searched, the recurrence isn't, you give that. 16:22:45 ah you have actually divided it into base and recursive cases 16:22:56 yes 16:22:57 and 16:23:07 i've also linked to each recursive case a subcase, stuff it should recurse to 16:23:37 so you never have to "recurse into darkness", just use cons, car and cdr randomly 16:24:18 this is the only way i've found that makes the concept implementable without having a strongly optimizing compiler from the start 16:24:28 okay 16:24:46 does it use types to guide the search? 16:25:05 no. but obviously it will. 16:25:17 wow I am surprised this works without being type directed 16:25:31 well, it uses types in the sense that if a function fails, the result is ignored, but i don't use type for any sort of optimization yet 16:25:58 there are many (natural) cases where types completely remove the combinatorial explosion 16:26:29 in fact, i think once you can introduce your own types, this might actually become "practical", by which i mean you might be able to program like an actual program 16:27:12 what about strange recursion patterns? 16:27:27 like what about zipping two lists, or splitting one list into even and odd parts? 16:27:46 you can have an arbitrary number of examples, and an arbitrary number of subcases 16:28:01 and an arbitrary number of branches, although all functions can only branch once, in the beginning 16:28:03 AAAAAAAAAAAAAAARGH 16:28:07 my monitor died 16:28:11 using laptop atm 16:28:27 seems like the background light on my desktop is dead 16:28:36 also no warranty any longer 16:28:37 there are many subtleties to this, and i'm planning to write a comprehensive spec, which might actually happen now that i've seen this really works 16:28:54 how do the examples come into it? 16:29:02 come into what? 16:29:13 I mean, could you just as easily replace them with a generator and checkable specification 16:29:19 into the program generation 16:30:11 the idea is you give just enough examples to find the right function. there's a separate sort of example that can be used for testing the result 16:30:34 (which i haven't implemented yet, but obviously it's just a few lines) 16:31:34 do you mean could i get rid of examples, and instead have specifications for how functions should work abstractly, like some sorta assert? 16:32:17 -!- BeholdMyGlory has joined. 16:32:56 {:. [2,5,7],[3,6,8] -> [2,5,7,3,6,8]; 16:32:56 : [5,7],[3,6,8] -> [5,7,3,6,8] 16:33:14 this is really the most interesting part, the rest is just filler 16:33:47 i don't know how a generator would guide the recurrence exactly 16:39:23 I was just thinking if you could generate inputs and outputs then check they are correct 16:39:52 you could, but you could only use that for testing, not actually making new functions 16:42:00 well at least with this system 16:42:37 in clue, i do not plan to make the language understand what objects are smaller than others in the sense of inductive construction of objects 16:42:58 that is, a human will know [1,2] should not recurse to [1,2,3] usually 16:43:03 but to [1] 16:43:09 because [1] is smaller than [1,2] 16:43:51 this is made general by making a new type that's constructed inductively in some other way, and adding an isomorphism between the two types 16:44:01 but that all is for another project 16:44:46 or, rather, that one trivial idea i just mentioned. 16:47:30 * Sgeo needs to get ready to go to school 16:47:58 when do you have school exactly? 16:48:52 i usually start getting ready 5 minutes after i have to leave 16:48:59 -!- oklo has changed nick to okloNEVERMORE. 16:49:07 wait that was too random 16:49:09 -!- okloNEVERMORE has changed nick to oklopol. 16:50:30 3:30 local time. To make it there in a timely fashion, I want to leave the house by maybe 12:20 16:50:48 in half an hour? 16:50:55 And I'll get there an hour or so early, assuming no bus screwups 16:51:07 Yes. But I still haven't showered, shaved 16:51:13 I think I'm going to skip shaving today 16:51:20 yeah shaving is for girls 16:51:24 just let it live 16:52:29 Not shaving is awesome. 16:52:55 My monthly shaving ritual allows me to use a single disposable razor for ~six months. A pack lasts me years. 16:53:29 I (as of earlier this week) became addicted to shaving every day 16:53:34 Now, because of time concerns, I can't 16:53:49 Time concerns completely caused by me being online right now 16:53:57 I've yet to shave :D 16:54:03 Maximum money saving 16:54:18 put physics into your prorgam oklopol and get a unfied theory output 16:54:43 * Sgeo plucks out an eye and gives it to MissPiggy 16:55:41 yeah i just need a few examples of how particles move 16:56:48 Eeep, it's late 16:57:01 man, just chill... 16:57:31 Bye 16:57:40 byes 17:03:46 -!- Asztal has joined. 17:12:33 -!- tombom has joined. 17:19:56 Deewiant, btw mycology tests o even if y claims it isn't supported. This seems wrong to me 17:21:26 -!- oerjan has joined. 17:22:54 -!- cpressey has quit ("Leaving."). 17:23:48 AnMaster: Didn't we go over this and it says UNDEF now? 17:23:57 Or was that a separate issue 17:24:02 Deewiant, well the issue would be that it *tries* it at all 17:24:12 if i want to fix a function, then return back to where i was, i have to use my own memory 17:24:17 or rather, could potentially be 17:24:17 vim has a tag stack 17:24:23 AnMaster: And like I said we went over this 17:24:30 oerjan: cool. does anyone ever use it? 17:24:42 Getting it to not try it is nontrivial and I'm not in the mood for something nontrivial :-P 17:24:51 Deewiant, what if you do like the _POSIX_WHATEVER* define on openbsd for mmap? basically openbsd implements mmap() but not all details of it 17:25:03 heck if i know, except the help system seems based on it 17:25:05 thus it doesn't define the posix define for supporting it 17:25:16 Deewiant, see my point? 17:25:30 i understand for programs you need to preprocess the file first 17:25:52 AnMaster: No, not at all. What is it? 17:25:54 oerjan, also about tags. do you mean ctags? 17:26:10 i think so 17:26:29 Deewiant, that not claiming that it has o doesn't imply that it doesn't have a partly working o 17:26:54 Argh, triple negative 17:27:08 :D 17:27:13 Deewiant: are you on drugs? 17:27:14 Deewiant, thus if you implement it differently but claims you don't have o, you could get BAD 17:27:26 oklopol: Not to my knowledge 17:28:04 Deewiant: was just wondering about your not liking nontrivialities atm 17:28:15 Deewiant, for example you could claim not to have o, but have an o that doesn't perhaps support the text mode 17:28:22 i'm sure you usually *love* triple negatives 17:28:23 or only supports text mode 17:28:24 AnMaster: But then you would know that you have a half-implemented o and thus could disregard the error. 17:28:32 Deewiant, true 17:28:39 oklopol: No, actually I don't usually not hate them 17:29:04 Deewiant, that sounded awkward grammatically 17:29:07 AnMaster: Besides, having a half-implemented o like that is probably not very likely :-P 17:29:17 no it didn't 17:29:27 Deewiant, well yeah "no text mode" is more likely than "no binary mode" 17:29:35 your mom sounded awkward grammatically in bed last night 17:29:38 I mean in general 17:29:52 Why would you have a half-implemented o if you're going to report that you don't support it at all 17:30:00 Deewiant, well cfunge used to have no text mode for a long time iirc, mycology doesn't test that afaik 17:30:47 It does test it but because i ignores spaces it's impossible to test it automatically, so it asks the user to verify 17:31:09 Deewiant, hm what about binary mode for i 17:31:45 Still ignores spaces 17:32:13 Deewiant, also no it doesn't test it, since I'm implementing o in efunge atm, and text mode throws an exception. However it passes mycology just fine 17:32:44 Okay, so it just prints a message then 17:33:16 AnMaster: hm, vim can also support emacs style tag files 17:33:21 Deewiant, yeah: 17:33:23 "Can't test o in linear text mode: i ignores spaces, no way to know from within standard Funge-98 whether they are output to file." 17:33:37 oerjan, I don't use etags either 17:35:01 well those are the styles i have heard about (because vim supports them, probably) 17:35:14 oerjan, well yeah I don't use *tags... 17:35:27 well i don't either 17:35:45 anyway what oklopol wanted sounds closer to bookmarks 17:36:01 which I believe almost all "more advanced than notepad" editors support 17:36:25 you mark a line then you can jump to it 17:36:31 why don't text editors have call stacks <-- the line before the one i quoted 17:37:25 and [ce]tags is essentially using a program to create bookmarks for all functions in a program file, afaik 17:37:42 yeah but I prefer a specific line usually 17:44:29 -!- zeotrope has changed nick to zoetrope. 17:45:01 -!- zoetrope has quit ("leaving"). 17:49:36 bookmarks? what if i'm in function f, and want to fix f, then return to f? 17:50:04 well okay, obviously i could still use the bookmark for f. still, that doesn't solve the problem 17:50:10 in fact it has nothing to do with it 17:50:23 i don't mind searching for f, i do mind trying to remember where i was 17:50:31 well having to try 17:53:36 -!- augur has quit (Read error: 113 (No route to host)). 17:54:22 oh, it seems vim has a stack (or list) for marks as well 17:54:57 or any jump 17:55:10 * Sgeo missed the bus he wanted to take 17:55:48 so where are you now? 17:55:52 At home 17:55:52 another bus? 17:56:05 1:20 then? 17:56:14 1:09 17:56:26 is this the c++ thing 17:56:37 Um, I have that class later in the day 17:56:43 First is a Psychology class 17:56:52 ...phychology? 17:57:01 is this high school 17:57:05 i mean 17:57:06 that other thing 17:57:37 or actually i guess high school 17:58:03 This is college 17:58:24 are you 17 or something? 17:58:32 20 17:58:36 ...what? :P 17:58:43 hmm 17:58:56 I'm taking a mix of early and late courses 17:59:07 >.> 17:59:14 i think i've misremembered your age before as well, i have a recall of you saying you're 15 a few years ago 17:59:55 I doubt I would have shared my age 5 years ago 17:59:56 my brain doesn't like change 18:00:03 i wasn't here 5 years ago 18:00:29 Anyway, off to catch a predit.. bus 18:00:37 Deewiant, how should o work with respect to values greater than 255? 18:01:29 Deewiant, either I can do % 256 or I can treat it as an unicode codepoint. The latter means it may reflect if it isn't a valid codepoint (for example, it is a number reserved as a surrogate pair or such) 18:01:46 UNDEF 18:01:56 Deewiant, how does ccbi handle it btw? 18:02:17 % 256 18:02:48 hm 18:03:10 probably a better idea, you might want to output non char data 18:05:48 -!- augur has joined. 18:17:13 Deewiant, oh btw you are missing a test for binary o 18:17:21 you check that no more than expected columns are included 18:17:26 but you are not doing the same for rows 18:17:40 took me a while to track down why some other things weren't working 18:17:45 since I had that exact bug 18:19:37 IIRC, the condition for valid unicode codepoint x is: ((x >= 0 AND x < 0xD8000) OR (x >= 0xE000 AND x < 0x10FFFF)) AND (x & 0xFFFE != 0xFFFE). 18:19:43 -!- cpressey has joined. 18:23:29 Ilari, actually it need to be 1) valid 2) representable in UTF-8 18:23:38 anyway I'm treating it as binary % 256 now 18:23:48 UTF-8 is a binary encoding, it can represent anything. 18:23:58 Deewiant, eh? 18:24:06 sure? 18:24:17 iirc there are some of the higher planes or something 18:24:31 or was that UTF-16= 18:24:34 s/=/?/ 18:24:52 The standard limits it to 0x10ffff (formerly 0xffffffff) but the idea of UTF-8 can be extended to any value 18:26:15 All those codepoints can be represented by UTF-8 (unicode only goes up to plane 16 (17th plane)). 4-byte UTF-8 would go up to plane 31. 6-byte UTF-8 (older form) would go up to plane 32767. 18:26:36 -!- augur has quit (Read error: 110 (Connection timed out)). 18:26:48 BMP is plane 0. 18:28:01 Ilari, what is the "AND (x & 0xFFFE != 0xFFFE)" bit about 18:28:36 All planes have two final code points which are assigned to noncharacters 18:28:45 ah, but why= 18:28:47 s/=/?/ 18:28:58 Something wrong with your shift key today? :-P 18:28:59 BOM? 18:29:28 Deewiant, I'm on my laptop, slightly different key placement. I use my desktop more 18:29:30 BOM for the first plane, doesn't seem to make much sense for the others though 18:29:41 reason for this is that the backlight died in desktop monitor this evening 18:29:49 so I have to buy a new one tomorrow or something 18:30:00 which is highly inconvenient 18:30:13 Deewiant, well yeah 18:30:27 Deewiant, does BOM manage to detect PDP endianness btw 18:30:54 There is no such thing as PDP endianness for UTF-16 or UTF-32 18:30:54 Should work if its UTF-32... 18:31:12 Deewiant, there should be 18:34:31 -!- augur has joined. 18:46:34 UTF-32 BOM in PDP-endianess would be '00 00 FE FF'. Little endian would be 'FE FF 00 00' and big endian '00 00 FF FE'. 18:48:26 UTF-32 BOM would contain sufficient information about byte order for decoding any valid unicode codepoint correctly, no matter what the byte order. 18:49:24 The tricks would only work if there are no characters above plane 255, but Unicode doesn't allow that anyway. 18:52:57 For UTF-16, PDP endianess and little endian are the same. 18:54:58 and UTF-8 has no endianness, no matter what Microsoft thinkgs 18:55:00 *think 18:55:02 *thinks 19:03:58 coppro, indeed I know that 19:04:25 I know. I just wanted to complain about MSFT 19:04:35 Ilari, what about PDP but with the first two bytes exchanged? XD 19:04:59 you said "no matter what the byte order." but maybe you meant "existing byte order" 19:05:13 coppro, why the FT btw 19:05:23 FT? 19:05:27 in MSFT 19:05:40 oh, that's their ticker symbol 19:05:59 yeah but why 19:06:16 because? 19:06:19 meh 19:21:55 "No matter what byte order" includes all 24 possible byte orders for UTF-32. 19:25:01 how is abcd distinguishable from bacd 19:25:10 you get double zero leading the file either way 19:25:34 Would be if the BOM were FEFF0102 or some such. 19:25:42 yeah 19:25:51 ... Oh, except that'd overlap with other chars. 19:26:07 FEFFFCFD might not. 19:26:17 it would too 19:26:32 coppro: How so? 19:26:47 Is FC or FD the top of the private usage range? 19:27:04 U+FFFD is � 19:27:14 UTF32. 19:27:34 what about it? 19:27:55 It won't consider FFFDFCFE or FFFDFEFC as "U+FFFD". 19:27:57 oh 19:27:59 right 19:28:02 yeah, that would be safe then 19:28:06 It'll consider it as U+FFFDFCFE or U+FFFDFEFC. 19:28:06 since you're never even in a valid plane 19:28:21 but then it wouldn't be a legal character 19:28:33 Oh well. 19:28:56 The only point of the BOM is to indicate the byte order. It's really just metadata for the UTF. 19:29:01 yeah 19:33:27 hm I should read stdarg.h 19:33:30 it should be fun 19:34:14 argh it uses __builtins 19:45:43 typedef __builtin_va_list __gnuc_va_list; 19:45:45 wtf 19:45:57 a intrinsic type? 19:45:59 an* 19:46:45 * AnMaster prods pikhq 19:47:25 AnMaster: Yeah, GNU C has a lot of additional intrinsics. 19:47:40 pikhq, I thought they were all function-like 19:47:40 Particularly for stdarg.h 19:47:59 but a type like one is messy 19:48:27 Nope. Good number of intrinsic types. 19:48:35 pikhq, other ones? 19:48:36 like? 19:50:17 Vector types. 19:50:21 __label__ 19:50:26 pikhq, that one is the only case of typedef and __builtin on the same line in /usr/include, /usr/lib/gcc/*/*/include 19:50:42 pikhq, aren't they made using __attribute__s iirc? 19:51:00 Oh, right. The vector types are __attribute__s on int. 19:51:12 like float foo __attribute__((something)) 19:51:17 pikhq, not float? 19:51:54 float is also valid. 19:52:02 That's a float vector rather than an int vector. 19:52:23 yeah 19:52:29 double should be valid too 19:52:55 probably char/short/long as well 19:53:07 and long long I guess 19:54:16 There's the complex types. 19:54:42 _Complex int = 3i; 19:54:54 Erm. 19:54:57 _Complex int foo = 3i; 19:55:14 that sounds complex ;] 19:55:23 __real__ foo == 0, __imag__ foo = 3. 19:55:53 hm 19:56:09 pikhq, hrrm, why not add __builtin_ to it? 19:56:21 or rather: why add it to va_list 19:57:49 also why did they add complex arithmetic to C99 19:58:02 I mean, it isn't very hard to implement it manually 19:58:27 It's an extension to C99's complex arithmetic support. 19:58:43 (C99 has complex floats) 19:58:50 pikhq, I know it does 19:58:58 that was the bit I was questioning 19:59:20 It's also a bit old... 19:59:31 Predates C99. 19:59:59 pikhq, well C89 didn't 20:00:03 but I guess some system had it 20:00:30 It's GNU C. 20:00:40 erhm 20:00:41 They add a lot of stuff. 20:00:55 iirc gcc doesn't fully support C99 complex math 20:01:29 a C99 predator 20:01:36 -_- 20:03:12 It appears that it doesn't work in 4.4, but it does work perfectly in trunk. 20:03:14 So, 4.5. 20:04:13 brb, need to disconnect a cable temporarily, that would usually work but ubuntu is too smart and senses the cable is unplugged 20:04:35 yeah, lost connection to the bouncer 20:19:22 pikhq, btw did you know erlang both allows you to use - as the infix substraction operator but also (with some trickery) allows function names like: is-number? 20:20:00 What's the trickery 20:20:01 (IOCCC-esque hack warning) 20:20:11 Deewiant, function names are just atoms 20:20:37 atoms are normally: [_a-z][_A-Za-z0-9] 20:20:43 but you can use ' to quote 20:20:54 to allow any string for an atom 20:21:00 like 'My foo-atom' 20:21:01 he speaks the truth 20:21:25 coppro, I tried, it works to have '' (the empty atom) as a function name 20:21:28 That's not really trickery nor allowing f-2 as a function name 20:21:29 also, spaces 20:21:30 :D 20:21:34 It's allowing 'f-2' 20:21:41 Deewiant, yes but that is just syntax 20:21:48 Function names are just syntax 20:21:49 the actual function is called f-2 20:21:53 if you turn 'f-2' into a string, you get "f-2" 20:21:58 coppro, yep 20:22:01 just as if you turn f into a string, you get "f" 20:22:13 yes indeed, atom_to_list/1 I believe? 20:22:24 coppro, also module names 20:22:25 I expected something context-dependent that would allow f-2(x) or something 20:22:31 yeah 20:22:38 That's just allowing quoted names 20:22:40 coppro, but loading .beam didn't work iirc 20:22:44 Which isn't really that exciting 20:22:46 makes sense 20:22:47 ?? 20:22:48 nor ''.beam 20:22:56 ah erlang 20:22:57 atoms are awesome generally 20:23:02 coppro, well yes 20:23:05 this is inherited from prolog 20:23:18 coppro, except one point which I'm quite sure you are also familiar with 20:23:20 where you can do stuff like x 'is the same as' y 20:23:23 and I hope they really fix 20:23:29 which point is that? 20:23:36 it's been a while 20:23:42 coppro, pool, not gced 20:23:51 ah, right 20:23:51 yeah the upper limit is huge 20:23:53 yeah 20:23:53 but still 20:24:01 that's annoying 20:24:12 means you have to be careful what you list_to_atom, if at all 20:24:21 coppro, there is list_to_existing_atom 20:24:29 also you don't do that sort of thing anyway 20:24:48 I've done it 20:24:51 coppro, why= 20:24:55 s/=/?/ 20:25:00 to generate multiple unique atoms from a single one 20:25:06 by appending/prepending something 20:25:07 hah 20:25:34 not based on input though 20:25:40 Deewiant, btw it isn't shift that is an issue. it is the difference between (normal/shifted): 0= and +? 20:26:00 (that was for the benefit of those with other keyboard layouts 20:26:13 Right you are, my bad 20:26:15 coppro, good 20:27:09 Deewiant, which is strange since the "main" key area have fully sized keys on thinkpads 20:28:11 coppro, oh btw another cool thing that I think is undocumented 20:28:20 erlang:'+'/2 20:28:22 that exists 20:28:29 you can see it doing erlang:module_info() 20:28:40 and + is just sugar? 20:28:46 coppro, don't think so 20:29:00 coppro, or rather: I don't know 20:29:21 coppro, but if it is sugar, then the internal way is undocumented 20:29:33 would be awesome if you could overload like that 20:29:42 coppro, overload what? 20:29:58 anyway, it could be 20:30:01 operators, by creating a function named like the operator 20:30:04 if it is auto imported 20:30:15 coppro, go try it out 20:30:21 I will later 20:30:24 but if it *is* auto imported 20:30:28 I have no idea what would happen 20:31:32 coppro, also if it is overloadable like that, how would it interact with guards 20:31:41 Oo 20:31:57 coppro, you just realised? :D 20:32:05 yeah 20:32:16 coppro, and I don't even want to think what would happen with HIPE 20:32:23 think about* 20:32:33 -!- jpc has joined. 20:32:47 coppro, maybe it would break all guards using +? 20:32:58 maybe 20:33:08 maybe it would give nondeterministic guards O_o 20:34:46 coppro, or maybe overriding it won't work 20:35:06 coppro, as in, + -> erlang:'+' not '+' 20:35:15 yeah 20:35:22 that seems most likely 20:36:27 if it's inherited from prolog, then operator + should be the same as '+'/2, i think 20:36:38 Deewiant, anyway about those function names, you couldn't quote ++ as a function name in C 20:36:52 You can't quote any names in C, yes 20:37:04 Deewiant, nor most other languages I know 20:37:15 You can't quote just about anything in LLVM, I think 20:37:16 apart from prolog and possibly some lisps 20:37:20 Er 20:37:21 Can 20:37:26 Deewiant, well okay 20:37:34 but what about high level languages 20:37:47 then I only know of erlang, prolog and various lisps 20:37:51 (with 'foo) 20:38:02 Lisp-derivatives and Prolog-derivatives, yes :-P 20:38:09 if it's inherited from prolog, then operator + should be the same as '+'/2, i think <.. 20:38:11 Maybe Perl, it sounds like the kind of thing it could do 20:38:14 that is what we talked about 20:38:21 Deewiant, okay that's a good point 20:38:29 don't know enough perl to know the answer to that 20:38:30 lisp 'foo isn't really the same thing, you cannot put special things in foo 20:38:38 oerjan, oh true good point 20:38:44 it's just an abbreviation for (quote foo) 20:39:03 Deewiant, you can't make a function called f(o)o in lisp 20:39:36 you can probably do it with the gensym function? 20:40:03 oerjan, doesn't that generate guaranteed unique ones for macros? 20:40:06 or do I misremember 20:40:17 hm maybe i do 20:40:25 in erlang you can even make arbitrary module names 20:40:38 except of course that the null atom breaks badly when trying to load the module 20:40:47 (as in, it can't locate the matching file) 20:41:27 oh and the compiler messes up the name of the file too iirc 20:46:04 -!- oerjan has quit ("Good night"). 20:50:53 where is ehird 20:50:56 Why does GCC suck so bad at error messages? 20:51:10 probably because it's difficult to do good reports on C 20:51:31 "Hmm, that's a very large macro usage. I should report all errors on it as being from the first line." 20:55:53 "Error: initializer element is not constant". Yeah, eff you. 20:56:57 How is there an initialiser in a macro declaration, anyways? 20:57:36 Oh, that's how. It decides sometimes to give a line number from the macro declaration rather than the macro usage. 20:57:38 -!- comex has changed nick to fag. 20:57:40 But only sometimes. 20:57:44 -!- fag has changed nick to comex. 20:57:52 very rare event coming up! 20:57:58 extremely rare even 20:58:22 second time in about 7 years. that is how rare. 20:58:47 AnMaster: ? 20:58:56 AnMaster just says that every 7 years 20:58:57 pikhq, replacing batteries in a TI-83+ 20:59:27 if you had any similar TI calculator you know what I mean 20:59:40 MissPiggy, I don't think I was on IRC seven years ago 21:00:54 main.c:112:1: error: pasting ""S"" and "_thunk" does not give a valid preprocessing token 21:01:06 Yes... Because I wanted you to stringise that silently. 21:01:07 Of course. 21:01:18 pikhq, what did you do 21:01:38 AnMaster: name##_thunk 21:02:34 pikhq, isn't it # 21:02:39 wait no 21:02:42 I'm just tired 21:03:02 GCC is quite terrible at error messages. 21:03:03 static void *__LAMBDA__I_thunk (void*c) { { { return ({ void* __LAMBDA__ (void *_, closure x) { { printf("I thunk (%p)!\n", x); return x; }; }; closure _x = ({ closure _x = xgc_malloc; _x->func(_x->close, sizeof(struct closure)); }); *_x = (struct closure){ __LAMBDA__, ((void *)0) }; _x; }); }; }; } static struct closure __LAMBDA__I_thunk_ = { __LAMBDA__I_thunk, ((void *)0) }; static closure I_thunk = &__LAMBDA__I_thunk_;; static struct th 21:03:12 Then again, I'm not sure how to give useful ones on that. 21:04:53 pikhq, agreed 21:05:00 pikhq, still doing stuff on it? 21:05:59 pikhq, care to give me the last working header file? 21:06:08 also you should host this project somewhere 21:06:34 AnMaster: I'm using it to write a SKI interpreter. 21:06:52 pikhq, wonderful :D 21:07:00 It's kinda nasty when being lazy. 21:07:03 So many thunks... 21:07:05 pikhq, haha 21:09:51 main.c:83: warning: initialization from incompatible pointer type 21:11:14 That, of course, means "main.c:83-112: or main.c:9-14: or main.c:16-21: or main.c:23-27: or lambda.h:7-13: or lambda.h:15-24: warning: initialization from incompatible pointer type" 21:18:19 -!- cheater2 has joined. 21:21:50 -!- augur has quit (Read error: 110 (Connection timed out)). 21:27:44 -!- coppro has quit (Remote closed the connection). 21:28:25 -!- coppro has joined. 21:34:12 -!- cheater3 has quit (Connection timed out). 21:35:35 * pikhq wonders what's segfaulting. 21:36:54 All I know is that a complete call trace isn't helping that much. 21:39:45 it's probably a bug in the program you're running 21:42:39 I was going to suggest a bug in a syscall 21:42:58 probably the io multiplexing isn't working 21:45:08 olsner: I'm trying to figure out a bug *in my code*, so yes... 21:45:45 pikhq: ok, then it's either a kernel bug or a hardware problem 21:46:36 olsner: Clearly. 21:46:44 I write perfect C, after all. 21:47:25 hmm, not so sure about you, but I do 21:48:53 -!- augur has joined. 21:49:32 pikhq, single stepping? 21:50:09 pikhq, and if s doesn't help, then try si 21:50:18 (that would be painful though) 21:50:40 int x = void; goto x; <-- my perfect C. 21:51:24 cpressey, some weird gnu extension? 21:51:58 cpressey what does it mean? 21:51:59 I have a vague memory of ais declaring the stack pointer or something such as a void variable 21:52:00 -!- cheater3 has joined. 21:52:08 No, it's just poetry. 21:52:09 in his gcc-bf runtime code 21:52:28 cpressey, then I doubt it is valid :) 21:52:45 I lurve that you can write Cish nonsense and people go "is that a GNU extension?" 21:52:51 Yes, GNU has made void a value :P 21:52:58 It's like JavaScript's undefined 21:55:23 AnMaster: Single stepping through a Boehm GC collection. 21:55:24 Gregor, don't think gcc's void can be used like that 21:55:29 pikhq, yeargh 21:55:44 pikhq, try valgrind.. wait doesn't work on boehm-gc 21:55:47 * Gregor bashes his head into a wall. 21:56:08 Gregor, in fact I never seen gcc's void value documented 21:56:24 -!- cheater2 has quit (Connection timed out). 21:56:25 I'll try that again. 21:56:39 * Gregor headbutts AnMaster, Zidane-style. 21:56:49 define:Zidane 21:57:05 Final Fantasy IX|ファイナルファンタジーIX|Fainaru Fantajī Nain is a console role-playing game developed and published by Square (now Square Enix) as the ninth installment in the Final Fantasy series. ... 21:57:06 en.wikipedia.org/wiki/Zidane_(Final_Fantasy) 21:57:07 hm okay 21:57:18 lawl 21:57:31 Gregor, doesn't mean much to me. iirc I played some final fantasy game in zsnes though 21:57:38 could have been 1 or 3 or something like that? 21:57:49 Can somebody else please lawl along with me at how little AnMaster understands wtf I'm talking about? :P 21:58:00 Lawl. 21:58:04 Lawl 21:58:04 Thank you. 21:58:13 Gregor, well I realise that you found it funny that I didn't "get the joke" to begin with 21:58:15 but in fact I did 21:58:22 I was just more interested in serious bit 21:58:27 about what gcc void actually is 21:58:39 Gregor, which is why I selected to concentrate on it :P 21:58:57 http://en.wikipedia.org/wiki/2006_FIFA_World_Cup_Final 21:58:58 AnMaster: You compounded that by somehow being ignorant of the Zinedine Zidane headbutt incident, which even I, an American, am not ignorant of. 21:59:16 Gregor, mhm? 22:00:19 Gregor, ah googling for zidane *and* headbutt gave some more relevant results 22:00:31 Gregor, however then I have to tell you: I hate team sports 22:00:39 there is nothing more boring to watch 22:00:46 (as for playing such, that would be hell) 22:00:53 Gregor, for sport I prefer Aikido 22:00:58 I'm in a country that /doesn't even call that sport by the right name/ :P 22:01:08 Gregor, well yeah and? 22:01:19 Gregor, I haven't watched football for over 10 years I think 22:01:25 and then only for a few minutes 22:01:33 just to see what all the fuss was about 22:01:45 even /I/ know 22:02:42 coppro, and? 22:02:59 point is, I never even reads the sports pages in the morning news paper 22:03:03 what do you expect 22:03:12 neither do I 22:03:21 oh wait you americans doesn't read newspapers at all (mostly) 22:03:22 ;P 22:03:34 I am not American, and I do read the newspaper 22:03:37 I also listen to the radio 22:03:57 coppro, well not being American explains it 22:04:01 what country are you from 22:04:05 Canada 22:04:11 also I listen to the classical music channel 22:04:13 ;P 22:04:15 bbl 22:04:31 (well, technically I'm American. But people never ever use that word correctly :( ) 22:05:36 coppro: We of the US claim the continent for our own. 22:05:40 Yes, the whole thing. 22:05:50 pikhq: I thought you were Canadian? 22:05:58 No. 22:06:01 oh 22:06:11 Just a bitter USian. 22:06:11 * coppro wonders why he thought that, then 22:06:35 pikhq: so that's why you send all the Mexicans home? 22:06:46 pikhq: You mean the whole landmass. 22:06:54 also, what about South America? 22:06:57 We get South America too, although we don't like them damn Mexi-cans. 22:07:15 Gregor: Right, right. 22:07:37 And we would like to claim the other landmasses, too. 22:07:45 We have a base on every one! 22:09:54 (well, technically I'm American. But people never ever use that word correctly :( ) <-- true 22:10:07 USian just sounds funny. 22:10:09 but that is because saying "USian" is rather hard 22:10:10 yeah 22:10:14 and funny 22:10:18 Youzhian 22:10:23 pronounce it like "ASian", except with a u 22:10:29 Gregor, no z there? 22:10:35 in either asian or yousian? 22:10:36 I was using "zh" as the voiced version of "sh" 22:10:47 Gregor, is this something usian=? 22:10:50 No 22:10:51 s/=// 22:10:53 That's something Gregoran. 22:11:11 Gregor, or to let me rephrase it: "RP?" 22:11:15 oozhan 22:11:34 Susan who? 22:11:40 cpressey, hdehe 22:11:41 -!- Sgeo|web has joined. 22:11:41 hehe* 22:16:16 Python: like or dislike? 22:16:46 meh 22:16:49 (I'm trying to decide, myself, y'see. And I Value Your Input.) 22:17:13 I think I agree with coppro. 22:17:34 cpressey, better than many languages, worse than many 22:17:49 an average performer in scripting languages 22:17:50 cpressey, love 22:18:20 cpressey, you can actually get used to the indention. (everyone knows the erlang way of doing it is superior ;P) 22:18:23 as a quickie scripting language, it's good 22:18:23 AnMaster, besides lambdas, how could Python be considered "worse" than a programming language? 22:18:34 Sgeo|web, well it is imperative 22:18:36 Sgeo|web: prototype model? 22:18:39 *aother 22:18:42 coppro: hm? 22:18:49 you can redefine objects on a whim 22:18:53 Sgeo|web, also no tail recursion 22:19:08 AnMaster, isn't that just an implementation issue? 22:19:11 lets say, python is way better than php, java, perl and many other languages 22:19:11 AnMaster: I actually like the indentation rule, mostly. 22:19:12 there's no encapsulation 22:19:23 Sgeo|web, ...? the imperative bit isn't just implementation 22:19:27 the tail recursion is 22:19:29 for a language that claims to be object-oriented, that's pretty bad 22:19:32 AnMaster, I meant the tail recursion 22:19:34 coppro, and that 22:19:37 -!- tombom has quit ("Leaving"). 22:19:40 Sgeo|web, still it is imperative 22:19:52 also what coppro said about OO 22:20:10 also python 2 -> 3 broke stuff badly 22:20:11 def foo: pass \ SomeClass.__internal_function = foo 22:20:27 you wouldn't see that kind of change between revisions of C 22:20:29 for example 22:20:47 also __slot__ or whatever it was 22:20:47 AnMaster: Python 3 should have an entirely different name. So should Perl 6. And Lua 5.1 should have been Lua 6. 22:20:49 (yeargh) 22:21:05 cpressey, thankfully I managed to avoid lua mostly 22:21:12 I do not have an issue with intentionally breaking backwards-compatibility; py3k was fine 22:21:13 for perl I just gave up 22:21:28 (too much syntax) 22:21:37 yeah 22:21:45 I believe the right amount of syntax lies somewhere between perl and lisp 22:21:49 lol 22:22:04 AnMaster: ... isn't that essentially the entire range? :) 22:22:04 so... basically there is a right amount of syntax somewhere? 22:22:13 cpressey, exactly 22:22:18 * coppro wants a more unixy language 22:22:18 coppro, yep 22:22:23 coppro, shell 22:22:32 no, a real language 22:22:46 bash is hardly unixy in any case 22:22:46 APL might have "more syntax" than Perl 22:22:51 but not by much 22:23:03 coppro: There's no encapsulation in C++, either. :P 22:23:13 * coppro swats pikhq 22:23:23 coppro, real? 22:23:34 cpressey, I prefer one I can write on a normal keyboard 22:23:45 coppro, as in 22:23:49 define "real" 22:23:49 AnMaster: a shell's facilities are all provided by external utilities 22:23:50 language 22:23:55 coppro, not really 22:24:02 * Sgeo|web has a Data Structures class at 6:30 local time 22:24:02 coppro, much of envbot is written in bash 22:24:08 The language used will probably be C++ 22:24:10 heck you can even do the tcp/ip in bash 22:24:13 * Sgeo|web shoots self 22:24:27 AnMaster: without calling any foreign executables? 22:24:35 coppro, unless you are on debian yes 22:24:38 It occurs to me that when I forget most of what I know about a language, I start hating it 22:24:39 Oo 22:24:40 Sgeo|web: You have my condolences. 22:24:44 coppro, bash has the pseudo device /dev/tcp 22:24:51 coppro, compile time option 22:24:59 O_o 22:25:03 coppro, see man page 22:25:08 man bash that is 22:25:17 as I said though, bash really isn't unixy 22:25:20 you use exec to open it on a fd 22:25:27 coppro, feel free to /msg envbot 22:25:30 * Sgeo|web also has a non-existent C# project outside of school 22:25:31 I believe 22:25:34 -commands 22:25:35 AnMaster: I believe you 22:25:39 I'm just saying it's not unixy 22:25:39 is a good place to start 22:25:49 coppro, it supports reloading modules on the fly 22:25:57 it uses unset to unload modules 22:26:01 source to load tem 22:26:02 them* 22:26:10 also it returns variable using printf -v 22:26:17 which I believe pikhq translated to tcl once 22:26:25 pikhq, wasn't it upval or something like that? 22:26:51 AnMaster: okay, fine, it's a real language 22:26:57 AnMaster: uplevel "set var foo" 22:26:59 IIRC. 22:27:01 pikhq, ah 22:27:18 The "set var foo" gets run in the caller's scope. 22:27:19 coppro, well you can't do select() 22:27:34 can't do it in standard C either 22:27:36 pikhq, yeah except you don't need to do that on bash since it implicitly refers that way 22:27:40 coppro, true 22:27:50 coppro, anyway zsh can do it I think 22:28:01 anyway, you're now arguing a point I conceded 22:28:02 can you please stop? 22:28:08 coppro, there is that zsh irc client that integrates with the line editing 22:28:10 quite cool 22:28:13 AnMaster: Yeah... In Tcl, there's nothing in the function's scope until you add it. 22:28:22 "Global scope" can be explicitly accessed. 22:28:24 coppro, http://www.aeruder.net/tag/zirc/ 22:28:28 pikhq, right 22:28:46 LOOK. I CONCEDE. YOU WIN. SHELL LANGUAGES CAN BE REAL LANGUAGES TOO. HAPPY? 22:28:50 Otherwise, Tcl functions are actually pure functions from string to string. 22:28:51 pikhq, well the thing is you can refer to the callers local variables 22:29:23 AnMaster: Oh, that? That's upvar. 22:29:30 pikhq, well you can do: 22:29:32 local foo 22:29:40 someotherfunc foo 22:29:44 and have: 22:29:50 upvar name x; binds the variable "name" in the caller's scope to "x" in the current scope... 22:30:06 someotherfunc() { printf -v "$1" "%s" "bar"; } 22:30:25 this will break if you declare a local foo in someotherfunc 22:30:51 pikhq, basically bash is dynamically scoped, and local variables are those that are available from "here and downwards" 22:31:06 so doing local foo in someotherfunc would result in shadowing 22:31:14 pikhq, does that explain it? 22:31:30 AnMaster: Mmkay. 22:31:44 if you don't say it is a local variable it is a global one (or a local one in a caller perhaps) 22:31:50 they default to global anyway 22:31:53 AnMaster: So, it makes Tcl's explicit "refer to caller's scope" thing implicit. 22:32:13 pikhq, perhaps. it could be more than one call up though 22:32:26 set foo "";somefunc foo; # Where: proc somefunc {x} {upvar $x foo;set foo "bar"} 22:32:47 pikhq, also you can't have local variables at top level (that is, outside functions) 22:33:13 AnMaster: upvar has an optional argument to say how far up the stack you want to munge. 22:33:29 pikhq, what if you have foo() { local x; bar; } and bar () { quux; } and quux() { x=2; } 22:33:31 And there's easy ways to get the stack trace... 22:33:35 that would change it in foo in bash 22:33:54 pikhq, in bash it goes up to where the local is defined 22:34:52 pikhq, also you have to remember you could do "foo() { some_call_that_messes_with_y; local x; bar; local y; some_call_that_messes_with_y; }" 22:35:02 that would change the global y first time 22:35:05 Does bash do tail-call optimization? 22:35:08 but the local one the second time 22:35:12 I'm guessing not. 22:35:14 cpressey, I strongly doubt it 22:35:30 AnMaster: Need to explicitly grep the stack for where it's defined. 22:35:52 pikhq, ah well, bash must be higher level since it handles that for you ;P 22:36:53 pikhq, anyway, did you know that local is a builtin 22:36:54 as in 22:36:57 it isn't syntax 22:37:06 it acts like a built in command when it comes to exit code 22:37:33 foo=$(bar; false); echo $? 22:37:46 would return 1 22:37:47 err 22:37:52 print 1 22:37:53 I mean 22:37:54 but 22:37:58 local foo=$(bar; false); echo $? 22:38:03 would print 0 22:38:07 pikhq, wonderful isn't it 22:38:17 it is also the reason for [] vs. [[]] 22:38:29 [] being traditional 22:38:52 so you have $a=''; [ $a = '' ] 22:38:55 well that won't work 22:39:01 since $a is expanded before 22:39:08 you would need to quote $a 22:39:19 or use [[ ]] (where it works, since it is expanded after) 22:39:46 Ah, but I could exec $0 to get a similar effect to a tail-call, couldn't I? 22:40:31 Hmm. proc uppervar {x} {for {set i [info level]} {$i >= 0} {incr i -1} {if {[uplevel $i "info exists $x"]} {uplevel "upvar $i $x $x"}}} 22:40:50 I do believe that would be the appropriate stack-walking magic. 22:41:37 cpressey, :D 22:41:47 cpressey, that wouldn't be a function 22:41:50 it would be per script 22:42:00 also you would have to export all vars to the env 22:42:08 AnMaster: true. 22:42:17 Well, does bash have a 'goto'? 22:42:44 cpressey, no 22:42:54 cpressey, you could emulate one with switch I believe 22:42:58 No, but it has switch. 22:43:00 err case 22:43:01 that is 22:43:02 exec "$0" etc, perhaps :P 22:43:12 olsner, lagged much? 22:43:22 or was that about quoting 22:43:26 if so I applaud you 22:43:38 http://robozzle.com/index.aspx?puzzle=1638 GRRRRRRR 22:43:54 I meant as a 'goto' 22:43:57 switch could emulate a forward goto, but not a backward one -- unless bash's switch is truly awesome in a way I'm not aware of. 22:44:01 olsner, ouch 22:44:10 it's a tail-call though, not quite the same 22:44:17 cpressey, well you would have to put it in a loop I guess 22:44:54 pikhq, idea: translate your lambda stuff to bash 22:45:01 I suggest using eval somewhere in it 22:45:15 (because I doubt there is any other way) 22:45:22 MissPiggy: haha, that one is awesome 22:45:32 -!- kar8nga has joined. 22:45:39 http://robozzle.com/index.aspx?puzzle=1638 GRRRRRRR <-- js link please 22:45:49 AnMaster what 22:45:49 AnMaster: NO NO NO NO NO. 22:45:54 ALSO NO. 22:45:55 pikhq, why not? 22:46:07 DID I MENTION NO. 22:46:12 MissPiggy, that links to silverdarkness 22:46:18 so? 22:46:20 MissPiggy, which I lack and refuse to install 22:46:34 MissPiggy, so link to the equiv js one 22:46:38 no 22:46:43 *shrug* 22:47:01 cpressey: ... Wrap the entire program in a switch statement and a while loop? 22:47:10 pikhq, sounds like gcc-bf 22:48:05 Eh, but I can write a trampoline in any language. The result is not really horrible enough to encourage me to actually do it. 22:48:25 haha 22:48:27 Er, and by "any language" I mean any boring, mainstream, procedural language. :) 22:48:52 cpressey, what about cobol 22:49:24 Writing something vaguely continuation-passing-looking using exec "$0" (nod to olsner) is a much more attractive idea. 22:49:38 AnMaster: COBOL is not boring :) 22:49:59 cpressey, and yes great idea with bash 22:50:44 AnMaster, just go to any js puzzle and put the number in 22:52:14 MissPiggy, meh going to sleep in a sec anyway 22:52:16 night all 22:52:16 cpressey: yay! 22:52:41 -!- cheater2 has joined. 22:52:49 MissPiggy: It's easier than it looks 22:52:57 It's much easier than it's supposed to be, in fact 22:53:03 Sgeo it's the fixed version I can't do 22:53:57 Oh 22:54:12 fixed version? 22:54:36 http://robozzle.com/js/play.aspx?puzzle=1640 23:05:04 ah, that's much trickier 23:05:12 -!- Sgeo|web has quit (Ping timeout: 180 seconds). 23:08:03 -!- cheater3 has quit (Connection timed out). 23:11:32 -!- BeholdMyGlory has quit (Remote closed the connection). 23:21:09 i don't have an idea of what program to write to make it go around that 23:21:15 I'm guessing that probably you have to do something with the red 23:29:44 -!- muni has joined. 23:30:53 -!- cpressey has left (?). 23:32:14 I have a hunch Tower of Hanoi may be solveable in CSS3, with its move-to property.. 23:34:02 FireFly, that would be neat!!! 23:34:10 Indeed 23:34:50 (and a total abuse of CSS, of course :P) 23:35:33 -!- augur has quit (Read error: 110 (Connection timed out)). 23:38:47 Nighty 23:38:50 -!- FireFly has quit ("Leaving"). 23:49:36 -!- muni has quit. 23:56:48 -!- augur has joined. 23:56:51 -!- jpc has quit (Read error: 110 (Connection timed out)).