00:52:05 -!- ihope__ has joined. 00:52:07 -!- ihope__ has changed nick to ihope. 01:02:32 -!- cherez has joined. 01:10:08 -!- ihope_ has quit (Read error: 110 (Connection timed out)). 01:22:02 -!- wildhalcyon has quit ("ChatZilla 0.9.81 [Firefox 2.0.0.13/2008031114]"). 01:52:54 -!- EgoBot has joined. 02:07:44 -!- vixey has joined. 02:14:01 -!- Sukoshi has quit ("Leaving"). 02:17:09 -!- ihope__ has joined. 02:24:33 -!- Tritonio__ has joined. 02:24:47 -!- Tritonio_ has quit (Read error: 104 (Connection reset by peer)). 02:25:30 okokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokoko 02:25:35 okokokokokokokokokokoko 02:25:37 that is all 02:26:26 ok 02:27:40 oklopol: oko 02:34:44 -!- ihope has quit (Read error: 110 (Connection timed out)). 02:53:24 -!- Tritonio_ has joined. 02:53:51 -!- Tritonio__ has quit (Read error: 104 (Connection reset by peer)). 03:00:47 ehird: I agree. 03:13:00 what language is it that takes the fewest line to write a mini-schime, prolog, mini-haskell and metainterpreter in? 03:13:18 I want to mimimize the sum of lines of code of all those programs 03:14:19 (level of abstraction of the metainterpreter would be that it actually describes every feature of the language, doesn't just call eval or whatever) 03:14:28 -!- ehird has quit ("Konversation terminated!"). 03:14:32 right now I am guessing Scheme 03:15:06 -!- ihope___ has joined. 03:15:08 -!- ihope___ has changed nick to ihope. 03:26:49 oklotalk! 03:27:34 **which have an actual implementation 03:27:59 oklotalk has an implementation! 03:28:03 well, almost 03:28:05 :D 03:28:13 it doesn't have a parser 03:28:20 maybe some day... 03:30:22 -!- atsampson has quit (Read error: 113 (No route to host)). 03:35:58 -!- ihope__ has quit (Read error: 110 (Connection timed out)). 03:58:54 vixey: i'm guessing scheme too 03:59:36 because of the metainterpreter part 04:01:14 vixey: Scheme sounds like a good theory, but it might be more interesting to design a language with creating these types of interpreters in mind 04:04:51 RodgerTheGreat: haskell :) 04:07:32 scheme is pretty much designed for that 04:07:51 except instead of "interpreters", it's designed to extend scheme itself to become any of those languages 04:35:53 ok 04:35:53 http://rafb.net/p/dT236x14.txt 04:35:56 idea.. 04:36:22 it's scheme and prolog like, 'function' calls can return multiple times and backtrack but they also return values (loose use of 'return' since you could often supply the return value of a function to generate its parameters like in any logic language) 04:36:43 and i have to add that mandolin is a really awesome instrument 04:36:49 (to play) 04:40:09 any remarks? 04:40:20 your scheme is very simple :) 04:40:29 and you kinda need to parse stuff 04:40:38 or it's cheating! 04:40:45 oops there is at least one mistake, I meant to write (conj (= #t result) (eval this env)) 04:42:24 if I was going to tack on a parser the language would have to support strings.. 04:42:48 I guess syntax sugar for lists of atoms it ok 04:43:04 is* 04:53:24 sure 05:09:11 vixey: nifty 05:11:16 what flavor of scheme is that written for? MzScheme? 05:11:43 none really 05:11:56 r5s5? 05:12:42 well it would hopefully be a subset of macroexpanded R5RS 05:37:49 this is really interesting: http://www.firstsounds.org/sounds/ 06:41:00 good night everyone 06:41:08 night 06:41:33 -!- RodgerTheGreat has quit. 07:13:16 -!- Tritonio_ has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- Judofyr has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- oklopol has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- bsmntbombdood has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- Deformative has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- Quendus has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- GregorR has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- olsner has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- AnMaster has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- SimonRC has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- cmeme has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- EgoBot has quit (brown.freenode.net irc.freenode.net). 07:13:16 -!- sekhmet has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- cherez has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- pikhq has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- vixey has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- tejeez has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- Deewiant has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- sebbu has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- lament has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- lifthrasiir has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- Overand has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- ihope has quit (brown.freenode.net irc.freenode.net). 07:13:17 -!- mtve has quit (brown.freenode.net irc.freenode.net). 07:14:00 -!- ihope has joined. 07:14:00 -!- Tritonio_ has joined. 07:14:00 -!- vixey has joined. 07:14:00 -!- EgoBot has joined. 07:14:00 -!- cherez has joined. 07:14:00 -!- sekhmet has joined. 07:14:00 -!- pikhq has joined. 07:14:00 -!- Judofyr has joined. 07:14:00 -!- oklopol has joined. 07:14:00 -!- Deformative has joined. 07:14:00 -!- bsmntbombdood has joined. 07:14:00 -!- sebbu has joined. 07:14:00 -!- lifthrasiir has joined. 07:14:00 -!- olsner has joined. 07:14:00 -!- Overand has joined. 07:14:00 -!- AnMaster has joined. 07:14:00 -!- SimonRC has joined. 07:14:00 -!- Quendus has joined. 07:14:00 -!- GregorR has joined. 07:14:00 -!- cmeme has joined. 07:14:00 -!- lament has joined. 07:14:00 -!- tejeez has joined. 07:14:00 -!- Deewiant has joined. 07:14:00 -!- mtve has joined. 07:41:20 -!- atsampson has joined. 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:04:21 -!- GreaseMonkey has joined. 08:17:17 -!- Judofyr_ has joined. 08:17:17 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 08:50:35 -!- olsner has quit ("Leaving"). 08:57:06 -!- EgoBot has quit (brown.freenode.net irc.freenode.net). 08:57:06 -!- sekhmet has quit (brown.freenode.net irc.freenode.net). 09:09:32 -!- EgoBot has joined. 09:09:40 -!- sekhmet has joined. 09:11:56 -!- EgoBot has quit (Read error: 110 (Connection timed out)). 09:12:56 -!- EgoBot has joined. 09:18:37 -!- sekhmet has quit (brown.freenode.net irc.freenode.net). 09:19:22 -!- sekhmet has joined. 09:44:55 -!- GreaseMonkey has quit ("gnihgt"). 10:41:36 Deewiant, was just implementing FPSP, and the mycology output is confusing 10:41:45 "UNDEF: cFP outputs never mind, BAD: P reflects" 10:41:50 that's all from FPSP atm 10:51:32 that's the way it has to be done 10:51:36 with all output instructions 10:51:49 i.e. first output "UNDEF: cFP outputs" 10:51:52 and then call P 10:52:02 and then if it outputs, it outputs what it outputs 10:52:12 but if it reflects, "never mind, BAD: P reflects" 10:54:06 -!- Judofyr has joined. 10:54:06 -!- Judofyr_ has quit (Read error: 104 (Connection reset by peer)). 11:54:08 -!- vixey has quit ("Leaving"). 13:14:54 -!- ihope has quit (Read error: 110 (Connection timed out)). 14:14:10 -!- RodgerTheGreat has joined. 14:14:24 'morning, everyone 14:26:31 -!- jix has joined. 14:26:43 hey, jix 14:33:06 hey 14:46:44 -!- ais523 has joined. 14:52:28 mörning 14:52:43 howdy oklopol, ais523 14:52:50 hi RodgerTheGreat 14:53:19 * ais523 did finish that INTERCAL continuation library that was being discussed yesterday 14:53:37 at about 6am this morning, because I couldn't sleep and started working on it again at about 5am 14:55:00 Deewiant, the issue was "cFP outputs never mind" 14:55:12 Deewiant, what did it say "never mind" or ? 14:55:31 it was confusing 14:56:07 maybe a comma before never mind would help with grammer ;) 14:57:11 "grammar" 14:57:54 AnMaster: what licence is cfunge under? 14:58:23 I ask because I have an INTERCAL/Befunge link-together in mind as the next thing to do now I have INTERCAL/C 14:58:41 although writing COME FROMs in Befunge would be a little strange 14:59:43 as far as I can tell, you'd have to have them read their arguments from the playfield rather than the stack 15:03:18 -!- marshmallows has joined. 15:14:52 ais523, GPL3 15:15:03 ah, OK 15:15:09 ais523, is it a problem? 15:15:19 C-INTERCAL is GPL2 15:15:23 but that's not really a problem 15:15:29 not "2 or later"? 15:15:34 2+, sorry 15:15:38 right 15:15:47 ais523, well, it is also C99 15:15:56 yes, that could also be a problem 15:15:57 so not sure how well it would work on old systems 15:16:09 ais523, it currently uses boehm-gc but it is not hard to change that 15:16:09 if you use VLAs then it would be right out, because C-INTERCAL doesn't like linking to them 15:16:38 ais523, I don't use VLA I think, but I use "dynamic sized array at end of struct" 15:16:50 which is a bit different 15:16:53 that shouldn't be a problem as long as you're storing them on the heap 15:17:07 ais523, well yes I malloc them 15:17:13 it's just that C-INTERCAL does crazy stack tricks to to handle communication between processes 15:17:26 so you can do just about anything you like on the heap, but you have to be a lot more careful on the stack 15:17:32 well I do push some structs on stack 15:17:51 ie, returning a struct, not a reference to one in one place 15:18:19 that's fine, as long as they're fixed-size 15:18:25 and you don't leave them there too long 15:18:39 (as in, you don't try to FORGET stack elements with useful data still in them) 15:18:49 ais523, well also you will need to fix a few mem leaks, while I do offer a way to compile without boehm-gc, I only use it to be able to run valgrind for detecting stuff like "invalid read" 15:19:01 it does have a few mem leaks without boehm-gc 15:19:11 patches are welcome of course 15:19:14 C-INTERCAL's compiler is full of memleaks, but the programs it produces are leak-free as far as I can tell 15:19:40 ais523, basically it allocates cells in chunks for fungespace, but it throws away references to old chunks 15:20:03 depending on the garbage collector to remove them if/when the chunk is no longer used 15:20:13 would refcounting work? 15:20:27 ais523, well boehm-gc is a mark-and-sweep 15:20:28 (in INTERCAL, the garbage-collector actually affects the semantics of the language) 15:20:47 AnMaster: I know, I was just wondering if it was a simple enough problem that refcounting would work instead 15:20:58 ais523, maybe 15:20:59 or whether you have more complicated problems like circular dependencies 15:21:44 ais523, anyway the funge-space stuff is one of the few thing with a good abstraction around, so should be possible to just replace it, with something else implementing the same basic stuff 15:22:14 ie, get/set cell, load file, write out to file, get bounds, do wrapping 15:22:39 as for how an INTERCAL/Befunge link would work from the Befunge end, I've so far been doing links by implementing INTERCAL flow control operations 15:22:50 ais523, until recently I even had two different versions, one for befunge93 that used a static array and one with hash library for befunge98 15:22:52 that's NEXT, NEXT FROM, COME FROM, RESUME, and FORGET 15:23:08 ais523, fingerprints are easy to code I think 15:23:10 or hope 15:23:10 some of them would be easy to implement with a fingerprint; COME FROM and NEXT FROM would be harder 15:23:16 tell me if I need to write more docs 15:23:25 because they have an effect even when the IP isn't there 15:23:35 ais523, I do plan loading of fingerprints with dlopen in future 15:23:39 to make it even easier 15:23:44 currently just must compile it in 15:24:09 also, I depend on POSIX, I don't think it would run under windows or such 15:24:09 heh, all the INTERCAL expansions are compile-in, so you'd have to hack the source code to anything you wanted to compile into it anyway 15:24:19 either that, or abstract main() away to be a small part of the program 15:24:23 last I tried it *did* run under freebsd 15:24:40 ais523, well main, for correct funge98 I need argc/argv 15:24:41 (because C-INTERCAL deletes main()s in programs it links against because it already has its own) 15:24:46 due to y (sysinfo) 15:24:59 AnMaster: you can store them in globals 15:25:05 ais523, I do, in main 15:25:12 I'll gladly try to work out a way to pass command-line args around 15:25:31 ais523, well command line arguments for interpreter options too 15:25:54 ais523, oh and you probably want to remove -fvisibility=hidden heh that I got in my cmake file for levels above DEBUG 15:26:18 AnMaster: what does that do? 15:26:25 ais523, man gcc? ;P 15:26:35 basically it hides symbols 15:26:40 to reduce file size 15:26:45 AnMaster: have you seen how long man gcc is? I'll try to find it in the info index, though 15:26:53 ais523, / searches in man page 15:26:55 man gcc 15:26:56 type: 15:27:02 /-fvisibility 15:27:09 press n for next match 15:27:09 :) 15:27:13 ais523, wait, I *may* do VLA in one place 15:27:15 * AnMaster looks 15:27:45 ais523, oh yes, but can be worked around quite easily 15:27:49 just used inside one function 15:27:55 not passed around or anything 15:28:12 http://rafb.net/p/hlgy6w58.html 15:28:23 AnMaster: in that case it's probably OK 15:28:51 ais523, also non-boehm-gc code may be suboptimal in places 15:29:09 http://rafb.net/p/IbsRCM89.html 15:29:11 that is one example 15:29:38 AnMaster: that VLA's fine 15:29:38 ec_cord is a string that is very fast to append do, provided with boehm-gc 15:29:54 how much storing things in globals do you do, by the way, and how much on the stack? 15:30:21 ais523, well not globals, mostly static, and that isn't global 15:30:35 statics are heap storage, so that's good enough 15:30:44 well, not exactly heap, but not stack either 15:30:46 ais523, but well store depends on what you mean, ie storing a pointer to a HUGE object in a static variable 15:30:52 I think they have their own static space 15:30:54 like the funge space 15:31:08 and the issue for C-INTERCAL linking is a very simple stack vs. not stack 15:31:21 because I merged the C and INTERCAL call stacks together into one massive confusing stack 15:31:25 if you want to have several funge programs at once you need some substantial redesign 15:31:33 as in different funge spaces 15:31:40 if you just want concurrent funge that works of course 15:32:12 ais523, also I'm working on a draft for a debugging protocol 15:32:20 would be all ifdef anyway 15:32:23 for speed 15:32:43 the INTERCAL debugger is linked into the object program, which has function calls to the debugger added by the compiler 15:32:55 it was the strangest way I could think of to do it while still being practical 15:33:03 nah I would use tcp socket or unix socket to talk to the debugger 15:33:11 * AnMaster looks for the first (now outdated) draft 15:33:16 the second isn't yet redy 15:33:26 http://rage.kuonet.org/~anmaster/tmp/frontend-prococol.pdf 15:33:52 oh and another thing 15:34:20 I plan so substantial redesign of interface in the near future, ie parameter order, to make it more unified 15:34:44 atm I think StackPush(value, stackpointer) other things take the "me" pointer first 15:34:49 so I plan to clean that up 15:34:54 I'll leave it for a while, anyway, because there's going to be a major release of C-INTERCAL tomorrow 15:35:01 cool 15:35:02 April 1 is a good day to release INTERCAL compilers on 15:35:07 ais523, note I don't know intercal at all heh 15:35:16 partly because nobody believes you until they've seen the code 15:35:18 well beoynd that you use PLEASE a lot 15:35:22 not a lot 15:35:26 1/4 of the time, on average 15:35:30 but not to much 15:35:50 ais523, not sure how you plan the integration thing? 15:35:55 that is how it would work? 15:36:09 basically, you add INTERCAL control flow operators as a loaded-by-default fingerprint 15:36:20 (the loaded-by-default is so that you can access the Befunge code at all) 15:36:28 hm 15:36:45 there are 6 main control flow commands/objects/etc that you need to implement 15:36:49 well loaded by default, won't be in my code, but I guess you can implement that yourself 15:37:04 AnMaster: yes, it would be a compiler-specific addition 15:37:10 interpreter 15:37:19 there is no way you can sanely compile befunge 15:37:38 AnMaster: C-INTERCAL is always compiled, but I was planning to go along the bundle-an-interpreter route 15:37:49 ok 15:37:58 oh and don't break mycology ;P 15:38:26 it shouldn't do, unless it checks for reflections with no fingerprints loaded, but I'm deliberately breaking the spec there 15:38:34 aye it does check that iirc 15:38:40 just like I had to invent some new syntax for the C to INTERCAL link 15:38:50 mhm 15:39:01 besides, I could always invent some sort of specifically-fooling-Mycology loader problem 15:39:07 s/problem/program/ 15:39:27 anyway, the six commands that would need implementing: 15:39:33 ais523, anyway I'll aim for free standing code to work well, don't blame me if a new feature I add break stuff for you 15:39:35 just a warning ;P 15:39:41 - line label, which is easy in most languages but much harder in Befunge 15:39:48 AnMaster: I don't mind at all 15:39:55 even I often add new features that break stuff for me 15:39:59 ais523, also, I do stuff like 15:40:00 #define VectorCreateRef(a, b) (& (fungeVector) { .x = (a), .y = (b) }) 15:40:10 then I can create a vector on stack in the parameter list 15:40:17 no idea if that feature would break intercal? 15:40:21 doubt it 15:40:31 as long as it doesn't stay there between commands 15:40:47 um, well you would need to hack the main loop anywya 15:40:49 anyway* 15:40:58 interpreter.c 15:41:08 though interpreter.c contains mor 15:41:09 more* 15:42:44 if you want to see some never-before-seen won't-even-run-on-released-compilers-yet INTERCAL, there's http://filebin.ca/xwthjm/continuation.i which is one of the example programs I'll be releasing tomorrow 15:43:09 um 15:43:17 hm 15:43:21 what is it highlightning it as 15:43:38 -!- ehird has joined. 15:43:45 Database/Progress? 15:43:49 * AnMaster pokes kate 15:44:02 AnMaster: Kate recognises INTERCAL as some sort of obscure database script 15:44:11 ehird: http://filebin.ca/xwthjm/continuation.i 15:44:16 continuations in INTERCAL 15:44:35 (the Wikipedia article example doesn't work because it assumes interactive input of commands, impossible in a compiled language) 15:44:35 bbl food 15:44:44 -!- ehird has quit (Read error: 104 (Connection reset by peer)). 15:44:56 -!- ehird has joined. 15:44:57 oh dear, I scared away ehird 15:45:22 sowwy 15:45:24 :p 15:45:29 this is the lame computer 15:45:31 the crashy one 15:45:38 takes a few startups to get going.. 15:46:14 ehird: did you see the link I posted? 15:46:53 ais523: no, checknig logs now 15:48:22 ais523: heh, at 6am... 15:48:31 i have finished software projects at 8am 15:48:34 I couldn't sleep last night, so I spent the time doing something useful 15:48:37 having started working on them 2pm the earlier day 15:48:42 I was trying to sleep from about 1am to 5am, though 15:48:44 with no sleep in between, of course :-) 15:48:57 actually, that's pretty much the only software i DO finish 15:50:01 ais523: suggestion - use boehm gc in C-INTERCAL's compiler (not the output) 15:50:03 gcc does that 15:50:11 but, still keep using free() (well, the gc equivs) 15:50:16 it's just there to tidy up every now and then 15:50:18 seems to work well in gcc 15:50:32 ehird: I can't think of any particular reason why it's leaking, probably just oversights every now and again 15:50:45 and the fact that the memory allocation pattern is so complex that Splint can't follow it 15:52:01 because i was up late yesterday and the clock said 31st 15:52:08 when i woke up today i thought it was internet jackass day 15:52:12 i was sorely disappointed 15:53:17 ehird: that's tomorrow, which is statistically the most likely day for an INTERCAL compile to be released on 15:53:25 mostly because we keep aiming for it deliberately 15:53:32 ais523: bah, but that's being KIND on internet jackass day 15:53:40 or maybe an intercal compiler is in fact a very horrible thing to give 15:53:41 probably. 15:53:45 ehird: what's wrong with a little kindness? 15:54:47 ais523: insert grouchy commnet 15:54:48 ais523, that http://filebin.ca/xwthjm/continuation.i 15:54:50 *comment 15:54:53 don't really understand it 15:55:01 I doubt many people do 15:55:03 AnMaster: INTERCAL code is not easily understandable! Suprise! 15:55:07 ais523, btw where does C-INTERCAL have it's svn/cvs/whatever? 15:55:11 AnMaster: it doesn't 15:55:15 I don't own a web server 15:55:20 oh? cathedral? 15:55:22 ais523: you don't need a web server for a distributed system ;) 15:55:30 AnMaster: yes, it's cathedral at the moment 15:55:37 'git/hg/darcs init', 'git/hg/darcs add ...' 15:55:49 ehird: I don't even have an Internet connection most of the time 15:55:50 ais523, try lauchpad for bzr, I think there exist similar got git and hg 15:55:58 ais523: all of those need no internet connection 15:56:15 ais523: they're 100% offline unless you tell them to push/pull 15:56:20 the other thing is that I like to do massive breaking changes 15:56:28 ais523: that's why branches were invented 15:56:29 such as renaming all the variables in the entire program 15:56:34 ais523, yes that works well with distributed version control 15:56:39 make a new branch 'rename-all-variables' 15:56:42 do it 15:56:49 keep making changes in the main branch if you want 15:56:49 ais523, yes something like that is what is happening in cfunge atm 15:56:50 finally, merge it 15:56:58 mostly the VCSs can merge all the changes together 15:57:04 can merge algorithms really handle that sort of change? 15:57:11 ais523, more or less yes 15:57:13 ais523: more or less 15:57:17 it will come into conflicts ofc 15:57:21 ais523, maybe a few conflicts 15:57:23 not much 15:57:24 but it can start up a nice graphical tool to let you select what you want 15:57:32 so it's mostly point-n-click for when it can't work it out 15:57:36 do any of them also run on DOS? 15:57:41 -_- 15:57:47 I do development there too, for the Windows version of C-INTERCAL 15:57:52 ais523: git runs via cygwin but i don't think cygwin runs on DOS 15:57:56 I think darcs might run on DOS 15:58:04 hg is written in Python, so if you can get a Python to run on DOS it's likely 15:58:08 (targetting DOS + POSIX manages to cover most of the world's commonly used OSs) 15:58:09 ehird, doesn't darcs need haskell? 15:58:19 AnMaster: You can cross-compile 15:58:23 hm 15:58:23 Or get a binary 15:58:24 AnMaster: Haskell can be compiled into C IIRC 15:58:29 ais523: Into C? no 15:58:32 haskell isn't interpreted 15:58:37 There are interpreters, but it's mainly compiled to native code 15:58:45 Most things use GHC extensions, including darcs. 15:58:49 GHC compiles into native code via C-- 15:58:54 (C-- is related to the GHC project, same people) 15:58:58 ah, so it's bundle-an-interpreter-style compilation 15:59:03 ais523: Uhh, no? 15:59:06 Haskell has no 'eval' 15:59:08 It is 100% compiled 15:59:18 ehird: bytecode interp, not Haskell interp? 15:59:19 It just seems dynamic because of all the type inferrence 15:59:27 ais523: No. C-- then compiles to native code 15:59:37 OK 15:59:39 Haskell -> Core (GHC's internal functional language) -> C-- -> native 15:59:44 that's how I thought it worked, but you were confusing me 15:59:50 sorry:) 15:59:56 GHC can generate C code 15:59:58 i'll go and ask in #haskell about darcs 16:00:00 marshmallows: If you tell it to 16:00:05 Funny thing about GHC's C backend: 16:00:09 It requires a perl script. 16:00:19 This perl script looks at the assembly output of ghc, and turns tail calls into JMPs 16:00:28 cool 16:00:30 This perl script is a 'literate perl' script 16:00:38 And has to be processed to remove the comments. 16:00:42 oh my 16:00:43 It is called the Evil Mangler. 16:00:44 =pod 16:00:45 =cut 16:00:49 ais523: No, it's custom 16:00:53 ehird, Knuth infected? 16:00:56 ;) 16:00:58 why not do it the standard way? 16:01:01 AnMaster: Literate Haskell is popular 16:01:09 ais523: because it's Evil, and iirc very old 16:01:10 yes I like LaTeX, but I don't like literate programming 16:01:22 GHC was around before the Monad typeclass came about. 16:01:24 That's totally awesome ehird 16:01:35 There's even GHC code which uses monads without using the Monad typeclass because it wasn't invented yet 16:01:38 I never knew the evil mangler was in perl 16:01:53 ais523: Those continuations are really concise, btw. Impressive. 16:02:03 INTERCAL: Flexible, and concise1 16:02:04 *! 16:02:08 it's like Lisp++++ 16:02:29 ehird: especially as CREATE has some similarities to macro definition, but the C-INTERCAL version is rather limited at the moment 16:02:51 [16:02] "DOS" ? 16:02:52 [16:02] do you mean Windows? 16:03:00 ais523: which DOS version? 16:03:15 I mainly test it on NTVDM, as that's where it'll be run in practice 16:03:21 um 16:03:28 although I have DOS system disks for versions 4 and 6 knocking around somewhere 16:03:35 AnMaster: yes, NTVDM is crap 16:03:51 I got to watch the fun, going to join #haskel 16:03:57 ll* 16:04:01 for some reason, tar crashes it 100% of the time and autoconf crashes it about 30% of t he time 16:04:01 ais523: these people are retarded 16:04:02 [16:03] he's talking about the windows command shel 16:04:21 * AnMaster watches both side with amusement 16:04:30 ais523, you know NTVDM is gone in 64-bit windows 16:04:39 does anything replace it? 16:04:42 AnMaster: ais523 still supports systems with 8mb of ram. 16:04:48 I don't think 64-bit is on the horizon ;) 16:05:01 ais523, no x86_64 system that has gone into 64-bit mode can run 16-bit code any longer 16:05:06 you need something like dosbox then 16:05:07 I've heard that the Vista version of NTVDM is actually better than the XP version, but have never had the opportunity or inclination to check 16:05:36 ais523, oh and that reminds me, cfunge by default use 64-bit integers for it's data 16:05:43 but you can select 32-bit at compile time 16:05:48 it need to be at least 32-bit 16:05:53 or stuff *WILL* break 16:06:11 fingerprints will fail and everything will come crashing down 16:06:14 of course 16:06:27 In unrelated news, I've actually read the API for DOS 1 16:06:30 I have toyed with the idea of 128 bits however 16:06:32 it didn't even support directories 16:06:38 using gcc __int128_t iirc 16:06:44 haven't tried it yet 16:06:47 but easy to test 16:07:02 oh well.. 16:07:04 darcs is out of the qusetion 16:07:06 ais523: Try git. 16:07:12 AnMaster: Before you but in.. 16:07:18 I don't think your precious bzr works on 16bit systems. 16:07:28 I was going to say git works on DOS 16:07:32 doesnt'* 16:07:38 i think you could get it to 16:07:38 it hardly works on windows 16:07:40 through some posix stuffs 16:07:42 so dos... 16:07:44 huh 16:07:48 hmm wait 16:07:51 I'm going to try python 16:07:56 and ask which version of python will run on DOS 16:08:01 #python for laffs 16:08:10 DJGPP generally does a very good job of pretending to be POSIX, given the circumstances it has to deal with 16:08:17 ais523: wait, that's a good point 16:08:28 ais523: http://git.or.cz/ maybe you could give it a try 16:08:28 although I recently discovered that ulimit is implemented the same way as fork 16:08:44 as in, always fail but with a plausible error message that /could/ have happened in practice 16:09:19 ais523: btw, git is a little lower level as far as merging goes 16:09:21 hm can't you compile haskell to C, and I'm quite sure GCC can compile to 16-bit, I even used gcc for 8-bit 16:09:22 ehird, ^ 16:09:27 it WILL do the auto merging thing 16:09:36 but if it fails you'll have to start the graphical tool yourself 16:09:37 :p 16:09:55 ehird, graphical tool? dos? 16:09:58 AnMaster: but the generated c code won't work .. 16:10:00 ERR_NOTREALISTIC 16:10:05 AnMaster: Uhm, he doesn't develop solely on DOS 16:10:10 ehird, oh, why won't it work? 16:10:18 AnMaster: because it's low-level :) 16:10:25 closures and thunks and all that mean it's pretty hack 16:10:26 y 16:10:29 you mean, depends on endianness? 16:10:30 and such? 16:10:39 oh looky.. 16:10:42 darcs WILL work, probably 16:10:44 via go32 16:10:51 go32? 16:10:58 DOS 32-bit extender 16:11:00 is this about unreal mode hack thing? 16:11:04 yes 16:11:08 oh my 16:11:09 it makes I/O incredibly slow 16:11:09 AnMaster: it should make ghc work 16:11:11 and so darcs 16:11:24 ais523: darcs is molasses slow anyway so you shouldn't worry! 16:11:27 usable, but slow :) 16:11:28 ais523, that is one thing, I don't know if cfunge will work on 16-bit or even big endian 16:11:30 very usable in fact 16:11:33 it's highly user friendly 16:11:39 in fact I have doubts about big endian 16:11:43 & is based on a Theory of Patches written by a physicist 16:12:07 ais523, some hacks I need to do for the floating point fingerprints may not work on big endian 16:12:09 not sure 16:12:14 typedef union u_doubleint { 16:12:15 double d; 16:12:15 struct { int32_t high; int32_t low; } i; 16:12:15 } doubleint; 16:12:17 yes sucks 16:12:27 oh, and if you leave a program producing too much output without pressing a key, the program slows down to very slow speeds 16:12:27 but I need to for FPDP 16:12:33 but I'm not sure if that's a bug in go32 or NTVDM 16:12:42 ais523, tried dosbox? 16:13:05 AnMaster: no 16:13:09 also if you run it under NTVDM, why not just run the version control under windows, as you already use windows then? 16:13:34 I was just teasing really, as I can always run it on Linux and copy the files across via USB 16:13:39 also does C-INTERCAL work on x86_64 linux? 16:13:45 AnMaster: it should do 16:13:50 C-INTERCAL probably works on the C64 16:13:52 might need to change a define somewhere 16:13:53 ais523, eh, no network for dos? 16:14:05 AnMaster: nor Windows, nor Linux more than half the time 16:14:24 yeah but LAN I mean 16:14:37 AnMaster: don't have that either 16:14:38 or if you use qemu or such for windows, local simulated network 16:14:48 the Windows 95 box won't shut down properly if it's connected to a network 16:14:50 ais523, right, distributed version control is for you 16:14:57 and my only Ethernet cable's about 50 cm long 16:14:58 yeah, darcs seems the right one 16:15:01 windown 95? :( 16:15:02 since if you're going to change every variable name 16:15:05 then wanting to merge 16:15:09 you need something that's really really clever at merging 16:15:13 even if it's a little slow in the process 16:15:33 yeah darcs I guess 16:15:54 ehird, can you push to a usb memory with darcs? 16:16:01 seems like ais523 need that 16:16:04 AnMaster: push == 'cp .darcs' 16:16:09 as a last resort. 16:16:13 ok true.. 16:16:14 I seriously doubt it would be a problem 16:16:17 yeah 16:16:19 just copy over the repository 16:16:29 ehird, except, windows HATE things starting with . 16:16:31 ais523: each copy, branch etc you have contains the whole history for the whole repository 16:16:33 AnMaster: err, wait 16:16:35 it's called _darcs 16:16:36 just because of that 16:16:39 ie, you can create them in some apps, but it won't work in others 16:16:45 ah yes, 8.3 filenames 16:16:49 my mistake 16:16:50 in DOS it would be _darcs. 16:16:52 ehird, ah, but will it use 8.3 filenames everywhere? 16:16:56 ais523: no, it's _darcs everywhere 16:17:05 ais523, it is a directory I suspect 16:17:06 DOS requires at least one . in a filename 16:17:07 AnMaster: _darcs/ should be 8.3-safe 16:17:13 ais523, not a file 16:17:17 even a directory name, but that's normally hidden from the user 16:17:18 _darcs is a directory 16:17:19 by the OS 16:17:22 oh 16:17:25 interesting 16:17:26 directory names follow the same rules as filenames 16:17:38 so I call the INTERCAL install directory ick-0.28 16:17:42 ais523: darcs should work fine if you can get it to compile 16:17:50 which looks perfectly natural, but technically speaking .28 is the extension 16:18:07 ais523, not when extracted on linux or so 16:18:21 ais523: btw, with a dvcs, transitioning from cathedral to bazarr is simple 16:18:27 * ais523 downloaded the source for darcs 16:18:31 the 'let everyone see the source' part is trivial 16:18:40 you just 'darcs push' onto a public server 16:18:50 letting people submit patches is built in-- 16:18:53 'darcs send' goes through email 16:18:55 then you can 'darcs apply' 16:19:08 and, other people can 'darcs get' your public repository, and fork it 16:19:16 then if you want you can 'darcs pull' from theirs and merge their changes at any point 16:19:24 but, if you want, you can just keep track of your own changes 16:19:25 ais523, one thing, I got no clue how cfunge would work out under DOS, in fact I suspect it won't work on windows even. it depends on recent POSIX in many case, as in POSIX 2001 16:19:27 and publish a tarball 16:19:55 everyone here hsould publish some unreleased bit of code 16:19:58 AnMaster: I don't support all features on all platforms 16:20:05 ais523, ah good for you 16:20:08 marshmallows: I did already, or did you want something else? 16:20:17 I missed it 16:20:23 ais523, I only test cfunge on gentoo linux and freebsd, because that is all I got 16:20:30 x86 and x86_64 16:20:36 no clue about how it works on other stuff 16:20:46 I hope it works as I use size_t and so on where it should be used 16:20:49 marshmallows: ais523 posted continuations in intercal 16:20:52 well, C-INTERCAL 16:20:55 since he added an extension mechanism 16:21:02 http://filebin.ca/xwthjm/continuation.i 16:21:35 CLC-INTERCAL has a CREATE statement too, which is actually used to implement the entire compiler 16:21:45 but the statement you're creating is written in bytecode not INTERCAL 16:21:55 ais523, another thing: you will need to have a different fingerprint if you do stuff like pre-loading custom fingerprint 16:22:07 eh 16:22:12 different handprint 16:22:14 different handprint, you mean 16:22:17 yeah 16:22:19 exactly 16:22:27 it would be 16:22:33 ais523, also, a custom fingerprint can be overridden, so I guess things may break? also easy to unload a fingerprint 16:22:37 just unload NULL 16:22:38 hahahah, i love smalltalk 16:22:47 i just started up yesterday's image i was developing a seaside wiki 16:22:49 that will unload the top item from every opcode stack 16:22:52 and i loaded my browser from history 16:22:56 and the session is EXACTLY as i left it 16:23:10 smalltalk is infectious, it magically makes everything running on it suspendable & resuable 16:23:11 :p 16:23:12 *resumably 16:23:26 ais523, maybe you want to provide some hard coded specific ones in the range ASCII 127-255, unlike fingerprints 16:23:37 depends on what you need/want 16:23:37 that could be an idea 16:23:46 hmm... ABSTAIN and ONCE could be quite useful in Befunge 16:24:04 COME FROM/NEXT FROM/labels would have to read data from the playfield somehow, though 16:24:17 ais523, "However, a Funge-98 interpreter may also expose any number of proprietary instructions above ASCII 127 or below ASCII 0." 16:24:24 that you could exploit 16:24:39 INTERCAL uses various characters above 127 anyway 16:24:42 at least in some character sets 16:24:51 ais523, hm? 16:25:07 "Funge-98 source files are made up of Funge characters. The Funge-98 character set overlays the ASCII subset used by Befunge-93 and may have characters greater than 127 present in it (and greater than 255 on systems where characters are stored in multiple bytes; but no greater than 2,147,483,647.) The Funge character set is 'display-independent.' That is to say, character #417 may look like a squiggle 16:25:08 on system Foo and a happy face on system Bar, but the meaning is always the same to Funge, 'character #417', regardless of what it looks like." 16:25:12 "In other words, what Funge characters look like on a particular computer or OS depends entirely on that computer or OS." 16:25:14 with Princeton syntax, then you either need Latin-1, Unicode, or the ability to overpunch 16:25:30 -!- shinkuzin_ has joined. 16:25:38 AnMaster: maybe I should add punctuation there: "cFP outputs - never mind, P reflects" i.e. P didn't output anything, reflected instead 16:25:41 (backspace is part of the character set in INTERCAL, and used as a compose character) 16:25:46 Deewiant, yeah 16:26:03 AnMaster: but then, you have the source for your interpreter so you know that it reflects and doesn't output anything 16:26:14 ais523, um you know, I will watch your stuff with interest, because I think it is crazy 16:26:17 ;P 16:26:36 AnMaster: craziness is what it's all about with INTERCAL 16:26:45 or to be precise being unlike any other language 16:26:46 Deewiant, indeed, but was confusing me, as in "oh no, yet another cryptic error" 16:26:55 although it manages to subtly parody most languages you're likely to have heard of 16:26:59 as I started implementing A 16:27:22 I generally do the instructions from A-Z heh 16:27:37 ais523, even on befunge? 16:27:52 it doesn't have much in common with Befunge yet 16:27:55 also I don't see how the the interface would work 16:27:58 although the threading model is similar 16:28:07 AnMaster: are you aware of the concept of a COME FROM? 16:28:31 that's the main INTERCAL control flow statement 16:28:35 ais523, I know it exists, and what it does, but well I do not wish to be affiliated with it ;P 16:28:50 well, my idea was that you could drop them into your Befunge code 16:29:06 wow.. I can't read intercal at all though 16:29:11 ais523, in cfunge there are NO goto, except in library code, ie code I took from gnulib (like GNU's getline() 16:29:23 ais523, maybe hash library got some goto, not sure 16:29:30 marshmallows: barely anyone can 16:29:33 but no code I wrote has any goto 16:29:51 well, you use function calls, don't you? 16:29:55 that's NEXT in INTERCAL 16:29:59 i think ais523 and the CLC-INTERCAL maintainer are the only people who can program INTERCAL proficiently 16:30:05 ehird: wrong 16:30:06 ais523, well functions I use. but I try to mark stuff as inline ;) 16:30:08 maybe a few others 16:30:15 maybe about 10 by my count 16:30:22 remember that oerjan wrote an Unlambda interp in it 16:30:39 ais523: OK, but I assume it took him ages and a lot of pain 16:30:46 I mean, you wrote that continuation library in a day 16:30:56 ehird: it wasn't very difficult 16:31:02 most of the groundwork was there already 16:31:08 ais523, but still I would like to know more about how the befunge <-> intercal interface would work 16:31:18 something like evalasbefuge(some code)? 16:31:20 or what? 16:31:23 OK, lets use printable characters for now 16:31:30 you write an INTERCAL program, and a Befunge program 16:31:37 right 16:31:49 the compiler creates a combined executable using the compiled INTERCAL, and Befunge with a bundled interp 16:32:04 mhm ok, cfunge is in no way small though 16:32:08 then the IP can move from the INTERCAL code to the Befunge code and back using several techniques 16:32:37 you put markers in the code, like COME FROMs, which enable programs to steal control from each other or to give control to each other 16:32:37 71K for a dynamically linked binary at -O3, stripped 16:32:46 AnMaster: that's not too bad 16:33:08 although I'd abstract the Befunge interp into the runtime libraries to avoid bloating things, probably 16:33:15 ais523, also likely to grow, as I add more fingerprints 16:33:21 however, the runtime's statically-linked at the moment 16:33:29 and I don't care too much about output file size 16:33:40 INTERCAL's pretty resource-hungry as it is 16:33:53 ais523, the binary in question is one without boehm-gc so just libm.so.6 and libc.so.6 16:33:54 although with many of the advanced features turned off C-INTERCAL can be quite lean too 16:35:05 ais523, not sure about heap size, but I normally slightly favour speed rather than memory usage when I have to choose 16:36:14 C-INTERCAL has the -F optimisation, which analyses your program to see if it's deterministic and terminating (the termination check's achieved by running it for 4 billion threading ticks to see if it's ended), and if it is just records the output it produces and gives you a shell script as the 'executable' 16:36:22 it was added for a joke, of course 16:36:37 XD 16:36:44 but that ignores file IO? 16:36:54 or any input in fact 16:36:54 there is no file IO in INTERCAL core 16:37:06 and input's detected as marking the program as nondeterministic 16:37:33 there's probably a hole in it somewhere, thoguh 16:38:31 ais523, according to massif the heap profiler, part of valgrind, the binary I mentioned above uses 8 MB memory at most when running mycology 16:38:37 note that cell size was 32-bit in it 16:38:41 ais523: you should optimize all constant bits 16:38:41 * AnMaster tries with -DUSE64 16:38:48 try to analyze which bits don't utilize non-deterministic things 16:38:51 and printf-them 16:38:55 ehird: constants are a moving target in INTERCAL 16:39:03 ais523: yeah, but you could do some kind of static analysis 16:39:05 you can even assign to them if you have the right compiler options set 16:39:14 ehird: I do do some static analysis 16:39:32 mostly to see when multiple commands can be strung together in a row without needing full guarding 16:39:46 but checking to see if code always does the same thing is really hard 16:39:57 ais523: run it a few times 16:39:57 ;) 16:40:01 that dd/sh stuff is so cool 16:40:07 http://www.google.com/search?hl=en&client=firefox-a&rls=com.ubuntu%3Aen-GB%3Aofficial&hs=Hog&q=%22HTTP+considered+harmful%22&btnG=Search <-- this should have more results 16:40:11 marshmallows: yep 16:40:28 ais523, now this is odd, with 64-bit cells it uses 8.474 MB, so most data isn't cell data? then wtf is it 16:40:35 ehird: most INTERCAL code is /designed/ to have exceptional cases 16:40:44 AnMaster: pointers? Malloc minimum block sizes? 16:40:55 ais523: use a fuzzing program 16:41:07 (generates craploads of random data, shoves it at the app at high speeds) 16:41:09 ais523, hm, pointers maybe yes, the funge-space code is kind of messy in that aspect 16:41:31 http://en.wikipedia.org/wiki/Fuzz_testing 16:41:35 valgrind doesn't want to work on -m32 binaries however, so don't know 16:42:13 ehird: you just know that people will use obscure features like symlinked variables in order to confuse the fuzz tester 16:42:16 ehird, 16:42:18 Your search - "gopher considered harmful" - did not match any documents. 16:42:19 :) 16:42:26 therefore gopher is better than http 16:42:28 :D 16:42:31 logic is great 16:42:52 ais523: isn't that a good thing? 16:42:59 a program that behaves differently on -FF 16:43:16 ehird: you just know that people will use obscure features like symlinked variables in order to confuse the fuzz tester 16:43:19 ehird: I tend to consider optimisation changing the behaviour of a program to be a bug 16:43:21 wtf is a symlinked variable? 16:43:31 AnMaster: it's normally called operand overloading 16:43:37 oh C++? 16:43:44 AnMaster: that's operator overloading 16:43:52 hm 16:43:59 what is operand overloading then? 16:44:06 Operand overloading: if I do .1/.2 then all references to .1 from then on actually refer to .2 16:44:27 ais523: if the magic text is in the program output -F already breaks 16:44:37 ais523, eww 16:44:38 so in the continuation code, for instance, if I assign to or read :1601 I'm actually assigning to or reading the first arg of the CREATE statement 16:44:39 sketch for an intercal program: 16:44:42 ais523, what languages got that? 16:44:46 ehird: no it doesn't, I grep for the magic text 16:44:50 AnMaster: just INTERCAL 16:44:51 output the magic text, output 'echo "Hello, world!"' 16:44:54 ah 16:44:58 although unification in Prolog is vaguely similar 16:44:58 -F and no -F are different 16:45:01 one is: 16:45:07 echo "Hello, world!" 16:45:08 one is: 16:45:16 Hello, world! > 16:45:28 ehird: I just use the non--F executable if I spot the magic word in the output 16:45:37 eh? 16:45:39 magic? 16:45:46 AnMaster: end of a shell heredoc 16:45:47 AnMaster: it generates: 16:45:50 cat <<-F*ICK* 16:45:51 ... 16:45:53 xxyz? (wild guess) 16:45:54 F*ICK* 16:45:55 or similar 16:46:01 ehird, ah 16:46:03 that 16:46:20 AnMaster: 'twould be xyzzy, but actually I use ickTERM with some weird capitalisation mix followed by a long string of punctuation 16:46:31 ah 16:46:36 ais523, why heredoc at all? 16:46:40 on the basis that anyone who actually generates output to produce that likely deserves what they get 16:46:44 AnMaster: twisted optimisation technique 16:46:47 ais523, heredoc actually create a temp file 16:46:50 in bash 16:46:55 AnMaster: bash sucks, suprise 16:46:55 when it reads the heredoc 16:46:58 zsh &co don't do that 16:46:59 they are Sane 16:47:24 AnMaster: DOS implements pipes using tempfiles between the commands 16:47:32 :( 16:47:43 so trying to cut off a pipe from an infinite loop using head actually causes your computer's disk to fill up 16:47:54 ais523, I can tell you right away that there is *no way* you would get cfunge to run on DOS 16:48:12 AnMaster: oh dear, you might cause me to take that as a challenge 16:48:30 ais523, of course if you rewrite large parts it may work 16:48:54 AnMaster: even Emacs runs on DOS nowadays, and it's terribly bloated 16:48:58 ais523, but nothing will stop my code from depending on POSIX when I feel that I have a reason to 16:49:03 ais523, :( 16:49:06 AnMaster: POSIX dependencies are fine 16:49:26 DJGPP implements all of the POSIX functions, by returning plausible output, or when that's impossible, plausible error codes 16:49:44 so fork is basically implemented as pid_t fork(void) {errno=ENOMEM; return -errno;} 16:50:32 languages are so broken 16:50:34 they have no call/cc 16:50:43 ais523, I may decide to depend on a working fork if you try to make it run on dos ;) 16:50:54 ehird, what languages? 16:51:05 AnMaster: then I'd link it up to a custom version of the INTERCAL threader just to annoy you 16:51:09 ais523, can DJGPP do pthreads? 16:51:13 AnMaster: no idea 16:51:30 ais523, because one thing I pondered is a fingerprint for "true" concurrency 16:51:36 as in really using threads 16:51:39 just a wild idea 16:51:44 along with the ipv6 sockets one 16:51:52 there is a fingerprint for ipv6 sockets 16:51:58 AnMaster: then you'd lose the thread speed guarantees 16:51:58 SOCK and/or SCKE 16:52:05 ais523, yeah 16:52:20 my C-INTERCAL continuation program depends on them 16:52:22 ais523, but a fingerprint for such threads, if anyone wants 16:52:30 would have compare and exchange and so on of course 16:53:44 AnMaster: INTERCAL has ONCE and AGAIN, which are some of the most flexibile thread-sync mechanisms I've seen yet 16:54:03 how do they work? 16:54:07 with computed ABSTAIN, ONCE and AGAIN, there are several mutexes, spinlocks, and semaphores in the INTERCAL continuation program 16:54:30 AnMaster: DO COMMAND ONCE changes into DON'T COMMAND AGAIN when executed, atomically with its execution 16:54:35 so only one thread is allowed through it 16:54:44 and REINSTATE changes it back to the original form 16:54:53 ais523, yes right, but that would not allow multi cpu 16:55:14 AnMaster: the semantics work fine with multi CPU, just that implementing it might be a bit tricky 16:55:17 that is the reason I'm interested in a fingerprint for "real" threads 16:56:17 basically: since everyone is going multicore today, befunge's t is no longer effective, therefore I add this fingerprint to make befunge attractive to the enterprise market ;) 16:56:19 or something like that 16:57:39 AnMaster: tons of languages 16:57:45 AnMaster: that sounds just like the sort of justification people use for INTERCAL features 16:57:46 hm 16:57:51 ais523, indeed heh 16:57:59 ais523, take a look at the TOYS fingerprint 16:58:05 you will feel at home 16:58:09 AnMaster: I have done 16:58:48 my firefox is borken 16:58:56 ais523, some of those I can see the cause of the names for, but well, M - kittycat I just don't get 16:58:57 sometimes when loading a page it finishes loading but does not render the new page 16:58:59 and stays at the old one 16:59:02 but e.g. can't select text 16:59:03 ehird, try konqueror 16:59:04 and links don't work 16:59:09 even though the text cursor appears 16:59:16 AnMaster: unacceptable, it doesn't work with anything 16:59:18 AnMaster: it's a cat's ears 16:59:32 hm 16:59:42 konqueror's really good on some sites, but it screws up on anagolf for some reason 16:59:44 ais523, well the middle of my M doesn't touch the base of the line 16:59:51 AnMaster: its cats ears + top of head 16:59:53 it's fine on first viewing, but deteriorates on refreshes 16:59:57 besides 17:00:03 ais523, also: S - chicane U - tumbler 17:00:07 maybe princeton's M looked ok 17:00:11 I don't even know what a "chicane" is 17:00:12 their U was probably more spiky 17:00:20 AnMaster: a bend in a road shaped like the letter S 17:00:24 ah 17:00:29 ais523, and what is a tumbler? 17:00:33 ais523: so, a chicane is a bend in a road shaped like a chicane 17:00:34 "V - dixiecup" yet another odd one 17:00:39 AnMaster: it's a glass you drink water out of 17:00:43 ah I see 17:00:43 I don't get the V, though 17:00:50 the character's called 'book' in INTERCAL 17:01:36 ais523: look at it on the side 17:01:41 it's a slightly-open book 17:01:42 like 17:01:45 put a book down 17:01:48 but it won't fully close 17:02:03 ehird: I understand why 'book', just not why 'dixiecup' 17:02:04 thingy. 17:02:11 ah 17:02:21 http://www.ideafinder.com/history/inventions/dixiecup.htm 17:02:21 ? 17:02:32 made to look like a flimsy plastic cup 17:02:33 i guess 17:06:19 ais523: http://acarol.woz.org/ When will C-INTERCAL work on this? 17:06:41 Oh, and are mirrors for C/CLC-INTERCAL appreciated? 17:06:47 i have a whole VPS server 17:06:48 being useless 17:07:32 ehird: about that link: when it becomes Turing-complete, I'll be on the task 17:07:48 ais523: Who needs TC? 17:08:05 ehird: yes for C-INTERCAL, although it's the CLC-INTERCAL maintainer who hosts both compilers and mirrors them too, you might want to ask them 17:08:48 ais523: Oh, and if you eve do need hosting for a darcs repository or similar, the same server will still be sitting around doing nothing 17:09:06 (I consider eso-std.org and elliotthird.org close to 'nothing' as they will haev basially no overhead :p) 17:09:28 ehird: it's probably also worth pointing out that your mirroring capabilities will be nowhere near Debian's 17:09:28 ais523: Hmm. parser.y looks like Perl. 17:09:44 ais523: Perhaps, but my updating capabilities will far exceed it. 17:09:56 Also, when e.g. patches are released I'd probably make a pre-patched version for convenience 17:10:29 ehird: it's Bison 17:10:35 also meant to be yacc-compatible 17:10:44 it's probably all the % signs that are throwing you 17:10:53 ehird: Debian do that too 17:11:03 ais523: no, the indentation style and the $x stuff 17:11:09 ais523: but do they update regularly :) 17:11:17 ehird: yes 17:11:19 Besides, debian do stuff to their packages. 17:11:21 within days, often 17:11:28 I just mirror stuff. 17:11:36 and the Debian repos host the original, and a patch to Debianise it 17:11:41 so you can download either separately 17:11:44 ais523: Days, bah. I offer 3 days max wait ;) 17:11:59 ehird: then they'd have been faster than you in some cases 17:12:10 Ubuntu, on the other hand, never even replied to my emails 17:12:39 ais523: Normally it'd take me a day or less. 17:12:52 Since I'd see it the day or the next day, and upgrade it. 17:13:02 By the way, patch(1) doesn't like your patch 17:13:39 ehird, tried different -p? 17:14:04 ehird: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=459577 (look at the email timestamps) 17:14:07 -p0, -p1 and so on 17:14:16 ehird: check the newlines 17:14:32 DOS newlines crept into 0.27 in idiotism.oil by mistake 17:14:39 but the patch has Unix newlines 17:14:43 and that's enough to confuse patch 17:15:09 that's what the email exchange I linked was about, actually 17:15:52 patching file src/idiotism.oil 17:15:53 Hunk #1 FAILED at 207. 17:15:53 Hunk #2 FAILED at 480. 17:15:53 2 out of 2 hunks FAILED -- saving rejects to file src/idiotism.oil.rej 17:15:57 so yeah 17:16:22 ehird: OTOH, unlike the Debian maintainer, you wouldn't be too scared to merge the patch by hand, right? 17:17:22 ais523: Most certainly not 17:17:23 :) 17:17:59 Gosh, patch is such an arcane format 17:17:59 :P 17:18:29 ais523: Just replace all the DOS with UNIX, right? 17:18:59 ehird: yes, that's how I fixed it 17:19:00 tofrodos will be quicker then 17:19:08 in fact, that's the reason that the patch is confused like that 17:19:33 one of the first things I did when I started work on 0.28 was to notice that the newlines in idiotism.oil were wrong, and ran tofrodos on it... 17:19:45 'And for probably obvious reasons I don't want to hand-merge it.' --> 'I am a delicate soul and I never use a keyboard. I love my mouse. Please don't make me do scary things.' 17:19:49 harsh? maybe ;) 17:20:03 ehird: to be honest, I'm not sure if anyone in the world but me knows OIL 17:20:09 it doesn't even qualify as a proper esolang 17:20:19 although I suspect it's TC for the same reasons that Thue is 17:20:55 This implementation was created by Eric S. Raymond during a fit of lunacy from which he has since mostly recovered. 17:20:58 (Joris Huizer, who has contributed so many patches to C-INTERCAL recently that there's a Joris-specific changelog section, sent a few OIL corrections in, but confessed to not really understanding the syntax) 17:21:04 first comes denial.. 17:22:13 ais523: eek, no manpage 17:22:14 :D 17:22:18 ehird: there is a man page 17:22:20 doc/ick.1 17:22:38 also an info page doc/ick.info (requires compilation, source in doc/ick.txi) 17:22:45 '-b option that disables the INTERCAL-72 random-bug feature' <-- commonly used, I assume 17:22:55 you'd be surprised how often I forget 17:23:05 but 90% of the time it doesn't matter 17:24:25 incidentally, the next version is adding -w, -a, -e, and -E to that manpage 17:25:06 -a = enable CREATE, -e = enable external calls and expansion libraries, the other two aren't very interesting 17:26:01 ais523: /* AIS: 17:26:03 that must get tedious 17:26:09 ehird: not really 17:26:15 it helps when grepping 17:26:18 replacing everyone else's comments with something similar would be simpler :P 17:26:41 ehird: the unattributed bits belong to the top-of-file copyright holder in most cases 17:26:51 you'll see other people's initials scattered around too, just not as much as mine 17:26:54 ais523: hmm. 17:26:55 $ ick; echo $? 17:26:56 0 17:27:05 ehird: that's correct 17:27:06 best true(1) ever 17:27:11 you told it to do nothing, and it did 17:27:57 ais523: does it ever exit(1)? 17:28:01 just seems to do 1241 and similar 17:28:32 ehird: I don't know of a way to get an exit code of precisely 1 17:28:32 there are a lot of other nonzero exit codes available, though 17:28:44 try compiling an invalid INTERCAL program (DO(1)NEXT will do), and look at the exit code then 17:29:13 $ echo 'DO(1)NEXT' |ick ; echo $? 17:29:13 bash: echo: write error: Broken pipe 17:29:23 need to pipe to a file 17:29:23 :) 17:29:26 ehird: ick doesn't accept files on stdin 17:29:41 invalid: 230 17:29:41 however, I have a symlink tty.i to /dev/tty in my INTERCAL programs directory 17:30:06 ehird: C-INTERCAL sends back the error number as the exit code 17:30:13 but the OS will normally modulo-256 it 17:30:50 so I get 129 on that program, for instance 17:30:54 ais523: no output file option? :( 17:31:03 ehird: at present, no 17:31:11 because none of the options take arguments 17:31:17 you have -o to pipe the output C to stdout, though 17:31:24 34 17:31:24 ICL579I WHAT BASE AND/OR LANGUAGE INCLUDES 34? 17:31:25 and you can redirect it elsewhere from there 17:31:31 i know that shouldn't work 17:31:34 ehird: that's not how you input numbers in INTERCAL 17:31:34 but the error is amusing 17:31:37 try THREE FOUR 17:31:38 WHAT BASE INCLUDES 34?! 17:31:40 ais523: yes, yes, i know 17:32:16 ais523: any base-12 names? :P 17:32:38 ehird: input is in spelt-out decimal, in a variety of languages 17:32:47 but programs internally can use any base from 2 to 7 17:33:01 according to the file extension (.i, .3i, .4i, ..., .7i) 17:38:57 ais523: yes, i know 17:39:00 it's just an amusing error 17:39:45 now... to use continuations.i to make a continuation-based web framework, plug it into fastcgi, and write the world's second web intercal program: a wiki for INTERCAL information 17:39:48 or am i just silly 17:39:59 ehird: entirely possible 17:40:11 but it'll take several days even for someone used to INTERCAL, at least 17:40:40 ais523: yes, probably the best route is: 17:40:54 1. write a fastcgi/scgi thingy for intercal 17:41:12 2. get continuations working OK with it, do sample HELLO WORLD app 17:41:24 3. translate some of the stuff here http://www.double.co.nz/scheme/modal-web-server.html (just the ideas, not the actual functions, of course) 17:41:34 4. write basic things like the 'counter with ++ and -- buttons' 17:41:41 oh, it's probably worth pointing out that that continuation library slows down the program by a factor of n+2 if you've created n continuations 17:41:42 5. build it up to a 'you can change this page' thing 17:41:45 then add a formatter 17:41:51 then add multiple pages 17:41:54 then add revisions 17:41:57 and voila 17:41:57 so unless you find some way to reuse them, the whole thing will ground to a halt 17:41:57 ;) 17:42:05 ais523: can you delete continuations? 17:42:18 ehird: at the moment, no 17:42:22 the standard practice for continuation web servers is that after a while you expire old continuatins 17:42:25 well, unless you hook into the internals 17:42:29 for the purposes of this they'll not be used often 17:42:35 it shouldn't be ridiculously hard to do, though 17:42:38 so i guess once every hour purging them would work 17:43:15 lol 17:43:16 ehird: INTERCAL doesn't have a current-time function, but I suppose you could deduce it from incoming HTTP headers if they happened to contain something time-related 17:43:19 you are insane 17:43:33 ais523: one http request = one tick 17:43:40 ais523, well if it doesn't have current time, befunge does 17:43:41 ;P 17:43:48 every N ticks, expire continuations not used for M ticks (where M>N) 17:44:06 ais523, there is even a "high resolution timer" fingerprint 17:44:11 AnMaster: unfortunately, the threader and external calls system conflict with each other 17:44:16 ais523: since it'll mostly be in a nop busyloop when not handling requests 17:44:19 ais523, eh? 17:44:20 so you couldn't have continuations And befunge 17:44:20 obviously i won't try and thread it 17:44:23 so it'll handle one request at a time 17:44:26 ais523, oh you mean non-reentrant? 17:44:28 AnMaster: they both do entirely different unusual stack things 17:44:40 and are both heavily setjmpy, but in different ways 17:44:40 I see 17:44:49 ugh 17:45:03 AnMaster: CONT fingerprint for cfunge please 17:45:13 AnMaster: :D 17:45:15 ehird, not sure how it would work 17:45:22 hmm... maybe you could do something using TRDS 17:45:30 ais523, I will NOT implement TRDS 17:45:32 that's pretty continuation-like 17:45:33 I just won't 17:45:34 AnMaster: you know what continuations are right? 17:45:47 ehird, I think I know, if they are what I think 17:45:52 ie, anonymous method 17:45:58 that can be passed around 17:45:59 no, that's a lambda 17:46:04 hm? 17:46:17 lambda = anonymous method that can be passed around, and can be filled out at runtime 17:46:27 he's thinking of closures 17:46:28 continuation = snapshot of the state of the program that can be restored at a later time 17:46:32 ehird, ah yes 17:46:34 ehird: ah 17:46:36 ehird, that's the one 17:46:39 i'll explain continuations to AnMaster trivially 17:46:44 well then I don't know what a continuation is no 17:46:50 AnMaster: you know the call stack? it includes the return addresses, local variables, etc 17:46:56 aye yes 17:47:03 well, a continuation is a copy of that call stack 17:47:04 but not the heap 17:47:10 and then you can resume the continuatoin 17:47:10 call and ret in asm iirc 17:47:17 and it replaces the stack with theo ne in the continuation 17:47:39 ehird, so you are trying to sneak in that back tracking stuff that's soooo slow? 17:47:40 AnMaster: basically, you need these: 17:47:43 and no 17:47:47 continuations are useful besides 17:47:49 hm 17:47:50 e.g. seaside web framework 17:47:51 uses them 17:47:59 ofc the Copy Whole Stack method is inefficient 17:48:01 but easy to implement 17:48:04 ehird, so a saved state? 17:48:04 anyway 17:48:10 AnMaster: kind of, but the heap stays the same 17:48:11 ehird: use Underlambda, then you can store continuations in the URL 17:48:12 of the call stack but nothing else? 17:48:16 or the normal stack too? 17:48:24 ais523: that's true.. but then you can hijack the app 17:48:26 AnMaster: in the case of Befunge, both 17:48:32 AnMaster: for befunge you will wont both, i guess 17:48:34 ais523, well there is no call stack 17:48:35 really 17:48:39 AnMaster: your C call stack 17:48:42 copy the c call stack 17:48:43 ah yes 17:48:51 yes you have to do some weird memcpy stuff 17:48:53 ehird, how on earth would I access the C call stack? 17:48:53 involving things like 17:48:56 int xyzzy; 17:48:59 I got no idea where it is 17:49:01 int *stack = &xyzzy-1; 17:49:03 stuff like that 17:49:06 err 17:49:11 ehird: that's nonportable 17:49:13 ehird, that sounds non-portable 17:49:17 it's kind of nonportable 17:49:18 but you can get round that by implementing your own stack 17:49:22 but you can get it working semi-reasonably 17:49:25 ais523: that would be tricky in this case 17:49:31 ugh 17:49:34 ehird: or use CPS 17:49:39 ais523: unworkable in C 17:49:40 it has no closures 17:49:43 you'd have to drop local vars 17:49:47 ais523, ehird: I'm not going to do that you know 17:49:47 and pass around structures 17:49:55 AnMaster: fine, implement your own call stack 17:49:58 but here's what you need: 17:50:08 ehird: you could use STASHes rather than local vars, so it isn't completely ridiculous 17:50:16 but it is still somewhat ridiculous 17:50:38 ehird, I'm not going to do any setjmp or similar either 17:50:47 C -- Makes a continuation whose return point is here. If we've just created the continuation, push 0 on to the stack. Otherwise, push the value we got and then 1 on to the stack. 17:50:48 I prefer clean code 17:50:54 when doing C 17:51:02 R -- Takes a continuation and a value off the stack, and returns to the continuation passing the value. 17:51:05 there 17:51:06 that's it 17:51:09 that's the CONT fingerprint 17:51:27 ehird, sounds like a feral fingerprint? 17:51:35 AnMaster: but note... 17:51:38 AnMaster: tame continuations would be a contradiction 17:51:39 continuations must be reusable 17:51:44 ais523, indeed 17:51:46 if i store a continuation somewhere 17:51:49 then i can use R as many times as i awnt 17:51:51 *want 17:52:07 ais523, and that is where I say no. I have decided to not implement MODE because it isn't tame 17:52:09 ehird: you can make reusable continuations out of non-reusable continuations 17:52:18 ais523: kind of 17:52:21 not always though 17:52:27 that's what I did in the INTERCAL continuation library 17:52:30 AnMaster: you are so uptight regarding esolangs 17:52:38 ehird, well I may do MODE 17:52:46 whenever a continuation is spent, I generate another identical one with the same number 17:52:48 but not TRDS and CONT, sure if someone makes a patch 17:52:49 i'm not implementing this feature because i value MAINTAINABILITY and READABILITY and PORTABILITY 17:52:57 even though it's BEFUNGE 17:53:08 anyway, http://www.intertwingly.net/blog/2005/04/13/Continuations-for-Curmudgeons 17:53:12 explains it simpl;y 17:53:18 ehird, right, befunge is turing complete, you can simulate the continuations in it! 17:54:24 Befunge-98, you mean 17:54:30 ais523, right indeed 17:54:53 ais523, though, Befunge-93 with BIGNUM would be turning complete too I think? 17:55:01 AnMaster: yes 17:55:11 uhm, you couldn't simulate continuations reasonably 17:55:14 without fisrt-class functions 17:55:16 you could simulate a Minsky machine using the playfield or the swap instruction 17:55:19 its totally useless 17:55:24 it wouldn't be very befunge-like, though 17:55:27 ehird, you could simulate first-class functions 17:55:39 AnMaster: the point is it's nigh-on impossible 17:55:40 ehird: INTERCAL doesn't have first-class functions, yet I programmed continuations in it 17:55:47 unless you make a compiler do it = more work than implementing CONT 17:55:51 ais523: intercal != befunge 17:56:36 Deewiant said he wouldn't have done TRDS if he knew how messy it was iirc 17:57:07 what I *may* do is add a full blown libffi 17:57:07 it's pretty like continuations, though 17:57:19 then you can do whatever you want basically 17:57:26 assuming non-sandbox mode 17:57:50 ooh 17:57:53 a new funge98 impl 17:57:57 ehird, hm? 17:57:58 in the infocom Zmachine no less 17:57:59 http://mbays.freeshell.org/zedfunge.html 17:58:51 AnMaster: well, I probably would have anyway, and then said that anyway ;-) 17:59:18 Deewiant: you've worked with TRDS, how continuation-like is it? 17:59:21 Deewiant, hm? 17:59:41 ais523: continuation-like? what exactly do you mean? 17:59:52 Deewiant: we were discussing continuations in Befunge 18:00:00 I was wondering whether TRDS already provided a way to do that 18:00:06 because it acts in a similar manner 18:00:07 you can't 18:00:08 AnMaster: I mean, I'm stubborn enough to have probably done it anyway :-P 18:00:09 it isn't reusable 18:00:14 and you cannot send values back 18:00:17 and it does IO 18:00:19 and changes the heap 18:00:26 IO and heap must never be modified for continuations 18:00:34 ehird: so not continuation-like enough 18:00:34 it makes them useles 18:00:35 s 18:00:36 it doesn't do IO, necessarily 18:00:41 or what did you mean by that 18:00:53 Deewiant: ehird means that continuations don't reset the input stream 18:00:56 but TRDS does 18:00:57 or are you talking about something else 18:01:11 Deewiant: it rewinds stdout 18:01:18 & stidn 18:01:21 you mean, if there's a getchar() or putchar() somewhere 18:01:24 then TRDS would rerun it? 18:01:27 if so, that's false 18:01:29 because it doesn't 18:01:43 no 18:01:46 but it would remove it from the screen 18:01:53 also 18:01:55 it SHOULD rerun it 18:01:56 hm? that's impossible :-P 18:01:57 if it was a continuation 18:02:17 in all honesty the IO semantics of TRDS are 100% unspecified 18:02:22 -!- timotiis has joined. 18:02:26 AnMaster: put your files in a top-level directory when you make tarballs fck sake 18:02:28 the original implementation doesn't do getchar() and putchar() 18:02:34 ehird, hm? 18:02:34 when time traveling 18:02:37 you just defecated on my ~/ 18:02:38 ehird, what do you mean? 18:02:38 but it would do file input and output 18:02:45 ehird, I do use a subdir 18:02:47 -_- 18:02:57 unless tar is doing something messy? 18:02:58 AnMaster: http://en.wikipedia.org/wiki/Tarball#Tarbombs 18:03:11 ehird: ccbi does that to me when I try to unpack it 18:03:17 maybe you've got the wrong interp 18:03:20 I don't tar bomb 18:03:28 or maybe there's a worldwide tar conspiracy against Befunge 18:03:34 CCBI is in a zip file, and a subdir of its own O_o 18:03:52 http://rafb.net/p/fTreKx91.html 18:03:58 ehird, wtf are you talking about? 18:03:59 Deewiant: I thought it would be 18:04:11 maybe there's something wrong with the way tar handles 7zip, or something 18:04:14 it is always subdir of it's own 18:04:23 ais523: possibly 18:04:51 ehird, what exact tar ball is it you have an issue with? 18:04:55 link please 18:05:15 meh 18:05:23 ehird, waiting 18:05:34 because I can't see any tar file I made got that problem 18:06:54 it was my mistake 18:06:55 sorry 18:06:58 ah 18:07:03 ehird, so what did you do? 18:07:12 long story 18:07:12 :) 18:07:18 ehird, I would like to know 18:07:53 heh, I have an entire section about extracting tarballs in the C-INTERCAL docs on the basis that some Windows users might not understand it, so I'd like to know too 18:10:01 i had some directories called things like 'src' in ~/ 18:10:56 * ais523 has an idea for a really mean way to confuse a user: create a symlink from every possible valid filename to the user's home directory into the user's home directory itself 18:11:14 unfortunately, that would use excessive disk space unless your filesystem optimised it 18:11:27 ais523: most filesystems can handle infinite length filenames nowadays 18:11:42 well, you could invent one that couldn't 18:11:50 limit it to 8.3, for instance 18:11:58 yet still have it capable of optimising vast symlink farms 18:12:49 Hmm 18:12:53 Could you do continuations in sh? 18:13:09 ehird: it's a bit hard to get at internal state 18:13:23 so you'd probably have to implement your own stack system, etc 18:13:25 ais523: i'm sure you could do SOMETHING though.. 18:13:29 like.. use && 18:13:31 foo && bar && xyz 18:13:36 and use exit codes and stuff 18:13:37 or something 18:13:48 ehird: oh, sh's Turing-complete, so it's possible somehow, the interesting question is how easy it is 18:14:22 ehird, i had some directories called things like 'src' in ~/ <-- yes and? 18:14:28 how did it happen 18:14:33 I would like to know 18:14:41 I got ~/src too 18:14:52 ~/src/cfunge/trunk is where I keep cfunge 18:15:02 AnMaster: i create directories all the time 18:15:08 yes and? 18:15:15 so i thought your tarball did it 18:15:22 but i did 18:15:29 I see, you didn't look for a "cfunge" there? 18:15:34 i did 18:15:37 it's a long story 18:15:39 ah ok 18:16:02 ais523: you cast printf calls to void 18:16:02 wtf 18:16:19 ehird: for linting 18:16:36 actually, the version of lint I used doesn't care, but some older ones that other people delinted with do 18:16:45 after all, it has a return value... 18:17:07 ais523: i think i want to die 18:17:12 :p 18:17:15 I'd do #define Printf(x) (void)printf(x) if I were you... 18:17:28 ehird: lint can be useful, but can also be annoying 18:17:30 or, if you prefer, the variadic function version and call vprintf 18:17:39 #define LintSucksSoGodDamnMuch (void)printf 18:17:41 but being far too false-positivy is useful 18:17:48 but yes, further, I'd just shut lint up :-P 18:17:58 #define LintSucksSoGodDamnMuch (void) 18:18:05 LintSucksSoGodDamnMuch printf("really\n"); 18:18:10 at least there are lots of comments now where I explain things to humans that Splint flagged up as being suspicious 18:18:24 and added in a /*@-something@*/ comment to let Splint know I really meant it 18:19:26 ais523: is your template engine custom? 18:19:42 ehird: what do you mean by 'template engine' in this context? 18:19:56 the template 18:20:03 c fiel thingy 18:20:05 the $ instructions 18:20:11 ehird: for linting 18:20:17 yeah that is why I don't use splint 18:20:27 ehird: which file? 18:20:28 it's a good idea but not properly implemented 18:20:32 ais523: the template c file 18:20:34 for the output 18:20:38 it's custom 18:20:47 the substitutions are done in a massive switch near the bottom of perpet.c 18:20:52 heh 18:20:55 just before the bit that calls system() a lot 18:21:19 not mine, though, it was there when I started working on the compiler 18:21:59 http://golf.shinh.org/p.rb?nop Seperates the usable languages from the toy ones 18:22:00 ;) 18:22:30 ehird: more to the point, separates the compilers from the interpreters 18:22:51 because a compiler erroring out is generally 'failed' on anagolf, but an interp erroring out is generally 'success' if the right output's on stdout 18:22:54 ohoooo 18:22:55 http://golf.shinh.org/reveal.rb?nop/irori/1204644403&hs 18:22:56 cleverrr 18:23:03 ais523: hardly 18:23:11 it seperates the things taht require verbosity and those that don't 18:23:12 :) 18:23:16 I contributed ; as a program to every single language, and it 'worked' on most of them 18:23:21 http://golf.shinh.org/reveal.rb?nop/irori/1204644403&hs 18:23:26 that site is just odd? 18:23:28 e.g. Ada and Erlang fails 18:23:30 lots of errors? 18:23:35 or maybe I should blame firefox? 18:23:39 ehird: what does @ do in Python again? 18:23:41 AnMaster: blame firefox 18:23:44 ais523: that's haskell 18:23:53 in a pattern match, 18:23:55 sorry, I said the wrong language for some reason 18:24:03 X@Y means that 'match X like normal, but bind Y to the whole thing' 18:24:07 (x:xs)@xss 18:24:09 I was busy reading Perl documentation at the time, and got confused 18:24:09 xss is (x:xs) 18:24:21 haskell lets you do patterns on the LHS apparently 18:24:22 so main@a=a 18:24:23 is main = main 18:24:26 so an infinite loop 18:24:32 that, obviously, outputs fine 18:24:49 main=main errors out in ghc, at least, because it detects the loop 18:24:55 ais523: in ghci 18:24:56 not ghc 18:25:05 in fact 18:25:06 not even ghci 18:25:07 jus tlambdabot 18:25:07 -!- cherez has quit (Read error: 113 (No route to host)). 18:25:45 $ echo 'main=main'>foo.hs&&ghc foo.hs -o loop&&rm foo.hs&&./loop 18:25:49 though it might pick up on it eventually 18:25:54 but anagolf only runs for ~2 seconds 18:26:37 ais523: http://golf.shinh.org/reveal.rb?nop/ais523/1204732604&m4 18:26:40 did you not consider a newline? 18:26:41 ehird: you're right, but I'm sure I have a memory of the loop being detected somewhere 18:26:49 or perhaps a space 18:26:51 ehird: you can view solutions there? where's the link to reveal.rb? 18:26:57 ehird: I forgot about the trailing-whitespace thing 18:27:01 ais523: it is if you run it for a while 18:27:09 Deewiant: only on closed problems 18:27:09 Deewiant: on the contest page, after the deadline 18:27:14 the name becomes a link 18:27:15 the solutions aren't shown before the deadline 18:27:22 some deadlines are infinite 18:27:27 and since there's a random number at the end 18:27:31 it won't be trivial to guess 18:27:34 I see 18:27:49 ehird: presumably the links wouldn't work even if you did guess them? 18:27:50 and evidently there's no indication of the deadline in the main listing :-/ 18:28:30 well, contests that are before the deadline are listed at the top, but unless a contest ended recently there's no after-deadline vs. no-deadline notification 18:29:05 -!- shinkuzin_ has quit (Read error: 113 (No route to host)). 18:29:56 ew, topological sorting with regex 18:30:27 I hacked up a solution in bash that used tsort, but it doesn't give the first answer in alphabetical order, so it was rejected 18:32:25 Deewiant: some Perl golfers will try to do anything with regex 18:32:26 i am adding an odd challenge 18:32:33 normally because it often ends up shortest 18:32:34 because only compiled languages will probably manage 18:32:39 print 0 .. 99999 18:32:44 that normally takes a while 18:32:51 ehird: the binary, alnum, symbol is mine, BTW 18:33:19 ehird, with leading 0 or not? 18:33:24 Print out a lot _56K BEWARE_ 18:33:28 56k beware, amusing 18:33:32 AnMaster: with leading 0 and 99999 18:33:48 http://golf.shinh.org/p.rb?Print+out+a+lot+_56K+BEWARE_ 18:33:52 may crash $BROWSER 18:34:09 esp. don't try resizing 18:35:41 Firefox managed fine for me 18:36:39 heh 18:36:41 haskell times out 18:36:45 even the one i used to generate 18:37:05 print 0 .. 99999 18:37:08 mh 18:37:10 * AnMaster tries 18:37:47 ehird: even C times out for me 18:37:51 does it? 18:37:56 maybe a bad example 18:38:06 :( 18:38:09 I/O-bound would be my guess 18:38:18 leave it there and see if anyone finds a solution 18:38:37 after all, I was using printf, which is slow 18:38:47 real 0m0.424s 18:38:49 not too bad.. 18:39:13 ais523: maybe storing as an array of chars would work better 18:39:14 then just puts 18:39:45 damn 18:39:50 ehird, what is the time limit? 18:39:56 ehird: that would go over the input size limit 18:40:07 real 0m2.625s 18:40:09 locally 18:40:14 is what my code in bash takes 18:40:15 unless you compressed 18:40:20 ehird, ^ 18:40:26 so that server must suck 18:40:31 ais523: i meant 18:40:34 operate on an array of chars 18:40:44 char a[6]; 18:40:45 ehird: then you'd hit the memory limit 18:40:56 ehird, what is the time limit 18:40:57 you don't get it 18:40:58 i mean 18:41:01 because it fails at 2 seconds 18:41:02 char a[6]="0"; 18:41:03 or so 18:41:06 ehird, ...? 18:41:06 then do arithmetic on that 18:41:09 and just puts() when required 18:41:15 jeez 18:42:23 ehird, no? 18:42:33 how long is timeout on that site? 18:42:37 AnMaster: don't ask me!! 18:42:46 few seconds 18:43:15 ehird, then it got a sucky CPU 18:43:36 AnMaster: like 1.5 seconds 18:43:41 ... 18:43:42 and its run under limits 18:43:42 duh 18:43:49 so it cant use resourcse 18:43:58 its in the arbitary code execution business 18:44:02 it's not gonna let you do just anything 18:44:08 indeed 18:44:49 hi 18:46:02 ehird: really interesting problem, though, I wonder if anyone will manage to produce that output by any means at all 18:46:08 ais523: does underlambda have continuations? 18:46:20 if not, you should add 'em :) 18:46:26 well, i mean call/cc of course 18:46:43 real 0m0.335s 18:46:43 writing a client-side continuation wiki will be hilarious 18:46:45 locally 18:46:48 you'll get hidden input form fields 18:46:52 AnMaster: fisrt-time always lasts more 18:46:52 ehird, yet it fails due to timeout on server 18:46:56 with loads of underload code in it 18:47:01 ehird, ? 18:47:05 AnMaster: running a program the fisrt time always takes longer 18:47:16 ehird, it tool less than a second locally 18:47:24 yet that site fails due to timeout 18:47:31 AnMaster: running a program the fisrt time always takes longer 18:47:31 AnMaster: running a program the fisrt time always takes longer 18:47:33 every time 18:47:37 I tried several times 18:47:38 so... 18:48:14 ehird, IO on that site sucks, basically? 18:48:24 probably due to all the sandboxing 18:48:31 AnMaster: no, it redoes the program 18:48:35 it overrides syscall IIRC 18:48:35 try running a program just installed 18:48:41 ais523: anyway, main(_,a){system(gets(a));} 18:48:44 IO sucks, there's no transformer for it! 18:48:46 hm 18:48:46 why does that timeout for the system challenge? 18:48:51 it works on the second 18:48:54 but none other 18:49:12 ehird: timeouts depend on how many entries there are 18:49:25 s/entries/examples/ 18:49:33 but I don't think that's the problem here 18:49:37 hmm 18:49:40 i really want test scripts 18:49:44 i'd write one in bash: 18:49:51 ./prog; echo $? 18:49:58 and expect a number for the output 18:50:01 would be fun 18:51:41 http://golf.shinh.org/p.rb?Encoder+decoder I love this encoding method 18:51:42 :D 18:51:47 its just so obvious 18:52:44 ,>,,,,,[-<->],[-]+[->,+]<[<]<[>>[.[-]>[>]<[.[-]]<[<]>]]>>[.>>]<<<[.<<] wow 18:53:02 ais523: but yeah, underlambda continuations? 18:53:15 ehird: C 18:53:27 ehird, so why does it fail so much at IO? 18:53:33 you get the call stack and value stack in one listy thing 18:53:48 that you can adapt to become a continuation with a few commands 18:54:04 ais523: can you define a command to make that convenient? 18:54:05 ehird, I tried to make gcc compile a unrolled version to C, it did pretty well here, blazing fast 0.3 seconds, 18:54:13 c is going to be a synonym for traditional call/cc, but there are a lot of other sorts of continuation you can make 18:54:13 yet that server says timout 18:54:16 timeout* 18:54:26 ais523: can you define commands, though? 18:54:30 AnMaster: I get 0.01 seconds for a Perl program that goes up to 9999 18:54:37 but 29999 times out 18:54:43 ehird: I'm not really sure, yet 18:54:52 I think so but I haven't worked out the details 18:54:54 ais523: btw, the magic line thinig -- i suggest seperating it from the specification 18:54:57 hm 18:54:58 i suggest: 18:55:07 if the program starts with #!, interpreters must ignore everything up to the next newline 18:55:24 then the actual programming language is all platonic and pure and that's just a nice helper for scripts 18:55:33 that doesn't specify interpreter executable name or anything 18:55:38 ehird: the whole point of the magic line was actually to make it possible to write an Underlambda interp in m4 18:56:03 -!- jix has quit (Nick collision from services.). 18:56:13 -!- jix has joined. 18:56:14 ais523: well, maybe just drop the magic line thing altogether then :-) 18:56:18 it's not as if 'underlambda file' is hard 18:56:23 it would just make it 'cleaner' imo 18:56:31 ehird: I like to have delimiters 18:57:04 the | also gives you a way to do program/output separation for interps with one input stream 18:57:35 ais523: ok, but the problem is that it's not quite the 'ultimate functional/stack/rewrite language' 18:57:38 because it has that kludge 18:57:51 it doesn't strike me as being a kludge 18:58:04 but it's optional except for primitive interps anyway 18:58:30 # is an illegal char in Underlambda, so it's easy enough to tell whether it was given or not 18:58:34 ais523: it's a kludge because it brings things like UNIX into the picture 18:58:43 and assumes that interpreters are called 'underlambda' 18:58:49 and that /usr/bin/env does what you want 18:59:00 well, I don't care too much about the script thing 18:59:08 #underlambda would almost do just as well 18:59:18 but why not make it scriptable if you have the chance? 18:59:33 ais523: here's an idea.. 18:59:39 make # a comment character to end-of-line 18:59:42 yes you can already do that with (...)! 18:59:50 but it would provide that script thing without being a kludge 19:00:10 comment-to-end-of-line would be a huge kludge 19:00:23 ais523: ok, then just make the #! thing an implementation detail 19:00:26 however, I'm toying with the idea of a comment-backwards-to-start-of-file syntax 19:00:28 same with the m4-required-delimiters 19:00:48 then the language itself is pure, platonic, ideal, etc 19:00:55 and it's just the interpreter syntax 19:01:49 yes 19:02:04 there should be separate syntax for the program 19:02:13 and what goes on around it to separate things for the interp 19:02:29 the #! stuff can just be a recommended method of encapsulating a program for storage in a file system 19:02:36 ais523: yes, in a little footnote 19:02:44 it's also worth noting that yours sucks for irc bots 19:02:52 since you have to input invalid programs and let the irc bot add the magic 19:02:52 :) 19:03:04 no, you just input program fragments 19:03:18 ais523: even so, it would be nicer to be able to input a whole program 19:03:41 how do you view the actual programs for that golf site? 19:03:50 SimonRC: click on a username after the deadline 19:04:27 * SimonRC tries to figure out how it works 19:04:54 SimonRC: how what works 19:05:03 http://golf.shinh.org/reveal.rb?Encoder+decoder/nuko/1202353533&bf 19:05:03 its open source 19:05:15 ah 19:05:51 wait, it can't work 19:05:58 it throws away some of the input it needs 19:06:10 real 0m0.722s 19:06:15 for a bash version locally 19:06:17 ehird, ^ 19:06:35 ehird, I'd say that server is rather broken 19:06:38 SimonRC: well it does work 19:06:40 AnMaster: it's not 19:06:47 AnMaster: but complaining about it to me won't help. contact shinh 19:06:52 ehird, it is very very slow 19:06:56 ais523: remember that BLIT story I linked? 19:06:58 ehird, is he on irc? 19:07:07 ehird: which one? 19:07:17 AnMaster: no. You'll have to use the electronic transmission framework over addresses before a domain name 19:07:18 also known as email 19:07:22 AnMaster: yes he is, #codegolf on this server 19:07:26 ais523: http://www.infinityplus.co.uk/stories/blit.htm 19:07:29 ais523: ooh, is he? 19:07:29 and is online right now 19:07:35 well sod it then 19:07:38 that's what /whois is for, right? 19:07:43 i guess so 19:07:43 :D 19:07:44 oh, wait I can see 19:07:51 the "encode" is part of the input 19:08:04 ais523: well, it occurs to me that BLITs do exist.. 19:08:26 the videos which induce seizures in people suffering from epilepsy 19:08:41 like that pokémon episode 19:09:05 yes! 19:09:09 did it involve parrots? 19:09:17 no 19:09:31 :( 19:09:32 that is mentionned here: http://en.wikipedia.org/wiki/Motif_of_harmful_sensation 19:09:38 yep 19:09:42 AnMaster: bugged shinh yet? 19:09:46 IIRC there is an explosion and Pikachu's eye's flash 19:09:50 ehird, too lazy 19:09:52 only a fe were hurt 19:09:54 SimonRC: i know of it 19:10:06 denshi something porygon, I believe 19:10:10 oh 19:10:11 kind of 19:10:17 DennÅ Senshi Porygon sez wikipedia 19:10:18 ehird, also the "gas" alternative refuses code that work locally, it should mention it is x86 not x86_64 19:10:19 ..... 19:10:41 offending frame #1: http://upload.wikimedia.org/wikipedia/en/b/b4/Pikachu_seizure-2.jpg 19:10:50 AnMaster: well duhhhh 19:10:56 because everyone uses x86_64 and x86 is sooo rare 19:11:25 ehird, well x86_64 is getting more common 19:11:41 of course, being a harmful video, it is on Youtube 19:11:47 SimonRC: heh 19:11:54 Monroe was right 19:12:19 the promotional video for this horrid olympics logo: http://upload.wikimedia.org/wikipedia/en/e/e4/All_London_2012_logos.PNG 19:12:22 caused some seizures, iirc 19:12:34 how timely, I just watched that pokemon scene a week or two ago 19:12:45 I recall being surprised at how easily people get seizures 19:12:52 -!- marshmallows has quit ("Leaving"). 19:12:58 yes, I remember the news reports, they had to show the olympics video at 1/10 speed on the news so as not to cause seizures in people 19:13:13 ais523: yep 19:13:15 it was hilarious 19:13:28 perhaps they had seizures from the shock of how crap the logo was 19:14:22 Deewiant: just watched it 19:14:25 was that *it*? 19:14:32 exactly 19:14:35 I suppose it was 19:14:40 on a big TV though 19:14:50 with a the kid sitting 1m away 19:14:52 SimonRC: i guess so 19:14:56 hmm, 1m 19:14:58 in a dark room 19:15:01 you give too much credit to little kids 19:15:08 when they are naturally epileptic 19:15:24 + usual hysteria 19:15:33 it's a popular show 19:15:35 that logo is embarassingly bad 19:15:39 lament: you bet.. 19:16:03 Then, there was the case of Ecky Thump 19:16:14 lament: as usual, wikipedia says it best: 19:16:16 why is there no logo at the top!? —Preceding unsigned comment added by 86.160.179.159 (talk) 20:22, 30 October 2007 (UTC) 19:16:16 It's hidden halfway through the article because everybody's ashamed of it. --67.160.32.3 (talk) 00:02, 27 November 2007 (UTC) 19:16:18 The sketch in one episode of the Goodies that made a guy die laughing 19:16:32 http://en.wikipedia.org/wiki/Fatal_hilarity 19:17:27 ehird: that's a great Wikipedia article title 19:17:48 "London 2012 has stated that the new logo is aimed at reaching young people. " 19:18:10 http://www.albinoblacksheep.com/flash/rgb my favourite seizure flash 19:18:33 i think it should be my 'under construction' page 19:18:34 :D 19:18:47 "It was widely commented that the logo resembles an image of the cartoon character Lisa Simpson performing fellatio[22] and others have complained that it looks like a distorted Swastika." 19:18:56 I wonder how people who get seizures from stuff like that pokemon manage on the internet 19:18:59 lament: it's true! 19:19:14 you'd expect them to be dropping like flies 19:19:31 Deewiant: well, that WOULD kind of solve the problem.. 19:19:38 :p 19:19:56 now that i look at it, it does look exactly like lisa simpson performing fellatio. 19:20:02 ehird: ouch my eyes 19:20:05 amazing that i haven't noticed it before 19:20:11 SimonRC: hee 19:20:13 jesus christ that is bad to look at 19:20:15 dudududadadaddudu 19:20:17 dudududadadadu 19:20:24 dududududududududududududududu 19:21:00 Surely that was developed for use at Gitmo? 19:21:32 OTOH, the shot where there are just the three stripes that don't flash ruins the effect 19:21:35 maybe 19:22:43 speaking of epilepsy 19:22:43 http://www.theinquirer.net/gb/inquirer/news/2008/03/31/epilepsy 19:22:49 -!- olsner has joined. 19:22:53 hi 19:23:03 i love the jump from 'The site linked to ebaumsworld' to 'anonymous did it' 19:23:32 heh 19:23:38 heh, I love how people are treating "anonymous" as if it was a single organized entity 19:23:41 as if Anonymous were an organisation 19:24:12 the whole fucking point is that not only do they not have names, they do not have authewntication or authorisation 19:24:39 SimonRC: to be honest they do it themselves 19:24:46 there can't be any leadership as they cannot tell one another apart and cannot tell "members" from non-"members" 19:24:46 I'm talking about the 7chan&co that are attacking CoS 19:25:14 SimonRC: Well, they do all use one wiki & irc channel... They have unintentionally created an entity out of themselves 19:25:26 kinda 19:25:53 at least my city has a nice logo for its upcoming olympics: http://en.wikipedia.org/wiki/Image:2010_Winter_Olympics_logo.svg 19:26:37 stonehenge robot 19:26:44 yup 19:27:52 it's a statue that's standing on the beach downtown 19:28:27 bullcrap 19:29:35 ais523: is there an underlambda that works Right Now and you can write stuff in? 19:29:44 yes 19:29:48 ais523: heh: 'I feel we have too many problems these days. Please make some time delay before adding problem. I personally think ~5 active problems are enough to work hard for each problem.' 19:29:49 poor shinh 19:29:52 can't keep up 19:29:52 ;) 19:29:54 I think I pasted it already, though 19:30:01 I can dig it out again if you like 19:30:16 (it's only half-complete, but what's implemented works, and I haven't written the rest of the implementation) 19:30:26 s/implementation/specification/ 19:31:19 who was it that said were were out of over/under/un/whatever lambda names? 19:31:25 a few days ago 19:31:55 ehird said it 19:32:06 well I just came up with a name 19:32:11 uberlambda 19:32:14 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 19:32:16 sounds fun 19:32:52 -!- Judofyr has joined. 19:34:12 ehird: http://pastebin.ca/965007 if you're interested 19:34:24 well, it's there even if you aren't interested 19:34:39 hmm 19:34:46 ais523: that is redundant 19:34:56 you said 'if' not 'iff' 19:34:56 ehird: in what way? 19:35:10 if (you.interested) { exists = true; } /* exists may be true anyway */ 19:35:12 ehird: if doesn't imply not-fi 19:35:15 what you said is like: 19:35:23 if (you.interested) { exists = true; } else { exists = true; } 19:35:30 I stated that exists was true anyway, not merely that it may be true anyway 19:35:50 so yes, redundant, but only because my second statement was a generalisation of the first 19:36:22 ais523: is that as usable as Underload/more usable/what? 19:36:24 or is it less 19:36:33 it's more usable than Underload 19:36:38 it has arithmetic, if you've noticed 19:36:52 (it's meant to be able to divide too but I couldn't figure out the rewrite rule) 19:37:16 the idea is that although you /can/ write the lower-tiered things with rewrite rules, any sane implementation should optimise things like addition 19:37:22 (although that one doesn't) 19:37:23 ais523: any eaxmples? 19:37:35 not really 19:37:44 I have a few files I've been working on 19:38:22 ((::**:*:*:*:*)((:)~*(*)*:o(h)~^^O):::**::***^!)::*::***^ohhhhhhhhhhhO( 19:38:22 )!()i((o(h):*::**::*::***^hO^)~HI:^):^^uhhhhhhhhhhhO 19:38:31 that's a test of tier 1a 19:38:35 wtf 19:38:37 is that 19:38:46 low-tier Underlambda 19:38:50 oh god 19:38:55 the sort which is easy to implement, but hard to write 19:39:07 as you get into higher tiers it becomes easier to write and more readable, but harder to implement 19:39:14 but the high tiers compile into the low ones 19:39:43 (Hello, world!)S doesn't work 19:39:44 :( 19:39:52 (hello)S outputs (hello) 19:39:53 ehird: no 19:40:09 and (hello)S outputting (hello) is unreliable and shouldn't be guaranteed 19:40:21 you see, Underlambda has first-class functions, rather than first-class strings 19:40:37 there'll be some syntax like "Hello, world!"somethinggoeshere in a higher tier, though 19:41:20 ais523: so right now i cannot write real programs 19:41:20 great 19:41:21 :) 19:41:30 ehird: that's why it's a work in process 19:41:39 s/process/progress/ 19:41:55 ais523: C doesnt' work yet 19:41:59 BTW, it will eventually be the case that Brainfuck minus comments is also legal Underlambda 19:42:03 ehird: C ought to work 19:42:11 but remember that it isn't call/cc, but a precursor to it 19:43:35 ais523: (a)(b)CS 19:43:36 outputs nothng 19:43:41 call/cc can be implemented in terms of it; prepend an A and append ^Q works as long as you don't want to send a payload, if you want to send payloads it's slightly more complicated 19:43:57 ehird: it works for me 19:44:28 I get ((a)(b)(S)) mixed in with the debug output 19:45:44 you can turn the debug output off by commenting one of the lines out for a cleaner view 19:45:51 ais523: make it: 19:45:57 ((STACK)(CONT)) 19:46:01 otherwise it's a bit fiddly 19:46:12 ehird: no, you're defeating the whole point of C 19:46:16 that sort of thing is what c is for 19:46:28 C is the low-tier accessor routine that lets you implement it 19:46:33 ais523: well, even so 19:46:36 it's (STACK(CONT)) 19:46:38 which is silly 19:46:40 whichever way you look at it 19:46:59 ehird: not when you take into account how Underlambda lists work 19:47:24 it's just ((a)(b)(c)) and you use continuations and all sorts of fancy tier 3 stuff to process them (or alternatively, an optimising interp that does it sanely) 19:47:37 eh. ais523: nice quine: C:^^ 19:47:39 err 19:47:40 not quine 19:47:43 infini loop 19:48:01 why the colon? 19:48:10 ais523: to duplicate the continuation 19:48:16 otherwise, once we ^^, the program becomes '^^' 19:48:56 OK, I see 19:50:01 CC^^ also works 19:50:51 that one's cooler 19:51:20 there's a stack element that's apparently doing nothing but is in fact providing input to the second C 19:53:42 ais523: C^C^C^C^ 19:53:47 keep adding more ^s, get more stuff 19:54:19 that's a nice recursive pattern there 19:54:30 oh dear, are we going to end up with a new rival to Subtle Cough? 19:55:47 somehow I doubt that C and ^ are TC by themselves 19:55:50 heh 19:56:03 well its certainly more powerful than subtle cough 19:56:29 it's a bit louder than a subtle cough 19:56:39 but not quite an obvious cough 19:57:21 wow, CCC^^ made Perl segfault 19:58:01 me too 19:58:05 its pretty though 19:58:23 I wonder why it segfaults on something as innocent-looking as that? 19:58:30 it's not as if the strings got very long 19:59:31 ais523: report it as a bug 19:59:53 I'd have to pin it down first 20:00:09 and anyway, I'm tired after a night of no sleep, so I think I'll go home now 20:00:12 -!- ais523 has quit ("bye!"). 20:00:22 i was just about to ask something 20:00:23 :< 20:17:08 through lack of inspiration, I decided to re-write the team whiteboard upside-down 20:18:10 SimonRC, eh? 20:18:35 FDJ 20:18:39 ??????????? 20:18:39 um, 20:18:42 AFJ 20:18:50 what are you talking about? 20:19:18 tomorrow 20:24:08 ???? 20:24:10 whatever 20:24:14 AnMaster: april fools day 20:24:14 duh 20:24:26 ehird, that is several hours left 20:24:34 its not even april 1st yet.. 20:24:39 20:24 31 march 20:24:44 mån mar 31 21:24:44 CEST 2008 20:24:45 here 20:24:54 SimonRC did it for TOMORROW 20:25:00 ah right 20:25:00 i.e. the next time people will see it is toorrow 20:25:01 oh, man- I need to plan some kind of brilliant april fools day joke 20:25:02 *tomorrow 20:25:12 RodgerTheGreat: get a BLIT onto some high-profile website 20:25:17 I wonder what the RFC ppl will come up with 20:26:26 * AnMaster writes a note to himself so he won't get fooled by other family members in the morning 20:26:26 RodgerTheGreat: how about the old staples of turning shit upside-down, and related ones 20:26:36 I'm always so sleepy in the mornings 20:26:40 or post-its on the bottom of the mice 20:26:57 SimonRC: nah, but coming up with something *involving* staples could be fun 20:27:12 maybe I'll burn all my roommate's possessions 20:27:17 nah 20:27:22 that would be too evil 20:27:39 at least if you did it 20:27:39 better: 20:27:52 april's fools would be to make your roommate *believe* you've burned all her possessions 20:28:02 indeed 20:28:34 RodgerTheGreat: i still say BLIT 20:28:41 "steal" everything. He wigs out like "where's all my stuff?" "Ahahaha- just kidding. I took all the stuff and just hid it" "Oh- heh. Where is it?" "In this small box. I burned everything to make sure you wouldn't find it by accident." 20:28:49 heh 20:31:06 -!- cherez has joined. 20:31:06 lossy compression 20:31:27 olsner: exactly! :D 20:31:28 I wonder if there is something funny I could do with the book-case... 20:31:42 turn it around, so that the books are facing the wall 20:31:57 that just feels unfunny though 20:32:01 SimonRC: scan every book, mirror all the pages, reprint and rebind them all. 20:32:11 too difficult 20:32:19 but just imagine the effect 20:32:23 um, yeah 20:32:34 if I had the proper equipment, I'd totally do it 20:32:39 you could reverse someone's desk, like put the monitor facing backwards, with all the cables hanging down the front 20:32:53 not possible with these desks 20:33:02 grmbl 20:33:23 how about just editing people's config files to mirror the stereo to their speakers. See how long, if ever, it takes for them to notice. 20:33:23 and that just sounds like a way to waste people's time without being funny 20:33:33 no speakers 20:33:36 and no root 20:33:37 fuck 20:33:41 double fuck 20:33:52 kind of unfunny waste of someone's time, yeah 20:34:00 I could swap people's monitors though 20:34:04 we get 2 each here 20:34:11 its very simple 20:34:13 the best thing to do is 20:34:17 take someone's monitor away 20:34:21 make a photo of the screen behind them 20:34:22 "Cake in the canteen!" -> "Fooled ya!" note instead of cake 20:34:22 then 20:34:26 claer off the desktop 20:34:26 100% 20:34:30 so that its just the bg image 20:34:35 and set that picture to the background 20:34:43 'who the hell took away my monitor's screen?!?!?!?!' 20:34:49 heh, wonder if that fool's anyone though 20:34:53 "invisible monitor lol" 20:34:56 haven't6 got the equipment 20:34:57 *fools 20:34:58 olsner: people do it just as a regular desktop 20:35:02 but as a prank it woudl work great 20:35:16 Could take a screenshot of the person's desktop, set that as the background, then remove all their actual icons 20:35:18 i vote for a shot in the head 20:35:23 sekhmet: boring 20:35:24 http://www.flickr.com/photos/w00kie/7234920/in/set-180637/ 20:35:32 that, but without the menus etc 20:35:33 SimonRC: Yeah, I lose. 20:35:33 :/ 20:35:35 sekhmet: too common 20:35:36 ...or what were we talking about? 20:36:32 oklopol: check the date of today or tomorrow (depending on time zone) 20:36:35 more: http://www.flickr.com/photos/w00kie/sets/180637/ 20:36:45 olsner: check my nick, i'm never serious 20:37:00 ...assuming you recall me telling that to you earlier 20:37:36 well i guess in the usual case i have no idea what day it is 20:37:44 never serious? not even when saying you're never serious? 20:37:53 but it's pretty simple to guess from what you're ...swiggling 20:37:57 i'm not a man of words 20:38:13 olsner: when saying that, i'm the least serious ever 20:38:20 from my viewpoint, however, you're made entirely of words 20:38:36 oklopol :: [String] 20:45:39 oh wow 20:45:39 http://www.flickr.com/photos/w00kie/11033741/in/set-180637/ 20:48:09 kewl 20:48:14 yeah 20:48:21 -!- wildhalcyon has joined. 20:48:23 (trick: the sleeve is the only thing outside the pic) 20:48:31 I guessed 20:48:38 hola 20:49:15 I read the second comment and figured it out instantly 20:52:56 well, the next thing to do is set up two screens to look like the two portals from Portal. 20:55:06 SimonRC: wait, how about 20:55:09 two screens back to back 20:55:15 one looks through to the wall 20:55:17 and so does the other 20:55:21 :D 20:55:30 so it seems like there's TWO empty screens 20:55:32 from both sidse 20:55:36 actually, wait, no 20:55:37 which one? 20:55:39 one screen looks to the wall 20:55:42 the other one sees the other screen 20:55:43 :D 20:58:17 So, ehird, I took what you said yesterday and spent some time looking at my project. 20:59:51 and ate it 20:59:52 ? 21:00:16 No, I thought about how I might tweak it to make it more... real world applicable. 21:00:19 :) 21:00:35 I didn't have any access to outside communication, I was very bored. 21:00:42 I came up with a design I thought was pretty neat 21:01:32 I wanted to look at a couple things first - to really flesh out the idea, y'know? 21:02:15 Unfortunately, what I implemented was very, very close to Smalltalk. :-( 21:04:45 There are some differences - I've made processes and interfaces part of the language structure, but otherwise its very similar. 21:05:20 wildhalcyon: So use smalltalk! 21:06:15 But I was trying to create something different. Unique. I kind of feel like I failed in that endeavor 21:17:30 wildhalcyon: You independantly invented Smalltalk. 21:17:44 Many people have started at a basis and arrived at something terrible. 21:17:51 But you're clever enough to come up with Smalltalk. 21:17:54 That's pretty good, I'd say. 21:20:04 This is simply a sign that Smalltalk is the messiah. 21:22:41 -!- RedDak has joined. 21:23:56 -!- wildhalcyon has quit (Read error: 104 (Connection reset by peer)). 21:25:19 -!- wildhalcyon has joined. 21:25:26 Sorry, back 21:26:29 I don't want to say I implemented Smalltalk, or wrote a smalltalk specification, but all the ideas I had were ideas that were written into Smalltalk - including some things such as what questions an object should be able to ask - or even the concept of objects asking questions 21:32:43 wildhalcyon: have you looked at colorforth? 21:32:52 I've glanced at it once, why? 21:33:01 I thought it might give you ideas 21:33:05 like the color 21:33:16 or the minimalism 21:33:31 or the insanity? 21:33:40 that too 21:34:12 I'm down with the last two 21:34:12 also, smalltalk IS the messiah. 21:34:14 color too, alright 21:34:19 I don't know abotu that lament. 21:34:26 I'm not crazy about the syntax 21:34:32 wildhalcyon: more generally, the pre-parsing 21:34:33 wildhalcyon: well, why did you invent it and not something else? :{ 21:35:04 I didn't invent the syntax, just the language itself 21:35:06 and the internet 21:35:12 and color. 21:35:24 the syntax is a very small part of smalltalk. 21:35:30 it's superficial. 21:35:55 Squeak has several alternate syntaxes 21:36:04 you can switch from one to another in the editor 21:36:16 For real? 21:36:19 alternative syntaxes? 21:36:26 you can probably add your own fairly easily 21:37:09 too bad it's squeak :( 21:37:35 squeak sucks because of its UI 21:37:39 and its closed-world view 21:37:41 (also, what's wrong with the syntax? the method calls in particular are awesome) 21:37:45 well, I could write my own UI too 21:37:46 i don't mind the vm + custom ui view 21:37:48 but plz make it not as ugly 21:37:55 and plz make outside-world interaction easy 21:37:55 ehird: the ui's allright 21:38:05 lament - its weird how sometimes the variables go in front, sometimes in back. And they're addicted to colons 21:38:09 but the closed world thing kinda kills it :( 21:38:13 wildhalcyon: ?????? 21:38:16 what? 21:38:34 wildhalcyon: you sound like everyone who has never programmed in smalltalk 21:38:46 I never have programmed in smalltalk 21:38:47 & only superficially understands it 21:39:09 wildhalcyon: perhaps you should. It is the messiah after all. 21:39:10 suprise! 21:39:18 wildhalcyon: then you don't know if you invented smalltalk or not 21:39:20 I'm only complaining about the syntax, not the deeper structure 21:39:31 yeah, but it looks you don't know/don't understand the syntax 21:39:59 Well, maybe I don't I guess. 21:40:04 Smalltalk's syntax is simple and elegant. 21:40:22 heh : http://www.esug.org/whyusesmalltalktoteachoop/smalltalksyntaxonapostcard/ 21:40:44 thanks for that 21:41:09 #(..) sucks though 21:41:18 you should be able to do expressions in it 21:41:19 not just constants 21:42:24 bah, real Smalltalks use _ for assignment, and render it as left-arrow 21:42:27 :-) 21:42:29 SimonRC: :) 21:42:36 Squeak renders ^ as up-arrow 21:42:37 i love it 21:42:46 _ was originally left-arrow, to go with ^ as up-arrow 21:43:02 i'd prefer <- 21:43:04 squeakhas both of those 21:43:19 a<-b a < (-b) 21:43:25 * SimonRC goes to bed 21:43:34 byebye SimonRC :-) 21:43:34 Well, this turned out worthwhile then 21:43:44 bye SimonRC 21:43:47 wildhalcyon: try programmign in smalltalk :) 21:43:48 of course, the idea of arbitrarily replacing characters with other characters fits nicely with smalltalk's idea of a closed world 21:44:02 what do you mean by closed world? 21:44:03 or at least, squeak's 21:44:14 wildhalcyon: when you start squeak 21:44:17 you get one window 21:44:20 where its own graphics engine runs 21:44:26 and its own windows, font rendering, mouse handling etc 21:44:30 wildhalcyon: many smalltalks, including squeak, try to be an operating system instead of just an interpreter 21:44:37 and generally you are encouraged to stay out of things like the filesystem 21:44:41 and handle everything in the VM 21:44:46 the VM can be stored and reloaded from a single file 21:45:03 squeak is an operating system for its VM 21:45:15 lament: the reason of course is that smalltalk WAS an operating system 21:45:31 Oh, okay 21:45:36 sure, and that's fine, but these days it's a pretty dumb approach 21:45:48 on the other hand, gnu smalltalk seems to be under active development :) 21:45:48 so its closed in the sense that it keeps you out of the rest of your machine? 21:45:54 wildhalcyon: not keep you out 21:45:59 just nudge you in the other direction 21:46:00 hard. 21:46:43 ok 21:46:43 the real issue is that the concept of a "program" makes a lot sense in smalltalk than it does in, say, java 21:46:48 er 21:46:51 *a lot LESS sense 21:46:56 yeah 21:47:03 smalltalk is a bunch of objects 21:47:05 Well, maybe I can still implement my design in Smalltalk. That might still be interesting. 21:47:12 and an app is nothing 21:47:13 which is really fun one on hand, but absolutely painful and retarded on the other. 21:47:17 you just create objects and tell them to do stuf 21:47:19 f 21:47:21 just like an OS 21:47:28 and likely one of the main reasons why smalltalk died 21:47:29 lament: you CAN do headless stuff with squeak iirc 21:47:32 there's even gtk bindings and stuff 21:48:19 ehird: sure but i don't even want to think about the terrible dependency hell that results due to everything being together as one Big Ball Of Mud while you're developing it. 21:48:31 Can you spawn additional processes in smalltalk from a single process? 21:48:32 lament: yeah 21:48:34 it's not ideal 21:48:42 lament: what do you think about Factor? 21:48:48 its listener/IDE thing is custom ui 21:48:50 but it supports scripting 21:48:54 i haven't seen it 21:49:00 its like Squeak lite that hugs the outside world 21:49:11 i think stack based languages are stupid 21:49:29 Why? (I agree, but just curious what you think) 21:49:41 lament: not stack-based 21:49:42 concatenative 21:49:42 because a stack is a very unnatural abstraction 21:49:43 :) 21:50:01 lament: so unix pipes are unnatural? 21:50:04 Lament, only if you're not talking about a stack of books, or papers, or anything else that appears naturally as a stack 21:50:22 ehird: unix pipes are dataflow 21:50:29 lament: so is a stack language 21:50:44 ehird: how do you do "rot" in unix? 21:51:08 lament: you don't because unix pipes are crippled dataflow 21:51:19 ehird: no, you don't because it's not stack-based 21:51:21 (languages (applicative (in (backwards (is (composition (function))))))) -- Slava Pestov, creator of Factor 21:51:44 to be honest most functions i write are function composition with a little bit of application 21:51:52 so that seems reasonable 21:57:03 -!- jix has quit ("CommandQ"). 22:04:52 -!- Judofyr has quit (Read error: 104 (Connection reset by peer)). 22:06:19 -!- Judofyr has joined. 22:10:40 ehird: a program (a function) should deal with the stuff in the domain of the problem it is solving. 22:10:58 ehird: and not with the stuff which is completely irrelevant to the problem it is solving. 22:11:18 "A programming language is low level when its programs require attention to the irrelevant." 22:11:41 stack management is exactly this type of low-level irrelevant stuff. 22:12:28 also, remember the whole conversation in #haskell from yesterday about how good names are and how silly Peaker is for trying to get rid of them. Having a stack means exactly that - you get rid of names. 22:13:40 Smalltalk is pretty cool 22:13:50 I read the design principles document 22:13:56 lament: well, the idea is making it high-level enough through defining words that you don't see the stack manip 22:14:01 & providing combinators to hide it 22:14:03 like recursion in haskell. 22:14:22 ehird: that doesn't solve the loss-of-names problem 22:14:27 which also happens in haskell a lot 22:14:33 (esp. with pointfree style) 22:14:57 compare and contrast with the wonderful magical smalltalk method call syntax :) 22:15:00 lament: but haskell is restricted to one return value 22:15:10 and using (.) the rightmost can only consume one value 22:15:16 and also since haskell isn't designed for that 22:15:17 ehird: right, which makes the problem a little less important 22:15:20 it doesn't have a lot of the useful combinators 22:15:36 real concatenative languages have useful combinators and none of those restrictions 22:16:16 you still have to keep track of the stack (i'm guessing) 22:17:32 hell, 'dup' is the first word introduced 22:17:48 in the cookbook 22:18:29 also, the argument about function application being backwards looks completely retarded given code like this: 22:18:33 [ drop "negative" ] [ zero? [ "zero" ] [ "positive" ] if ] 22:19:12 lament: you don't have to keep track of the stack because there are high-level combinators doing it for you 22:19:20 and introducing 'dup' is just like introducing recursion in a haskell tutorial 22:19:28 you rarely use it 22:20:03 honestly this single defn is enough to make me never look at Factor again 22:20:04 : sign-test ( n -- ) dup 0 < [ drop "negative" ] [ zero? [ "zero" ] [ "positive" ] if ] if print ; 22:20:14 lament: it's a COOKBOOK 22:20:19 also, that word definition is horible 22:20:24 that is true 22:20:27 'Shuffle word and definition cookbook' 22:20:29 that's 'reference' 22:20:31 not tutorial 22:20:37 ehird: can you give a good-looking definition for sign-test? 22:20:56 lament: you would rarely want to write a function like that 22:21:05 #concatenative is the factor channel. ask them. i don't code in factor much 22:21:10 i see :) 22:21:29 i don't want to go there, it would come across as trolling 22:21:55 lament: they're very friendly 22:22:07 just say that you were wondering if this looks ugly to anyone else 22:22:08 alright, I need to get out of here. Thanks for the help ehird and lament 22:22:08 or something 22:22:13 bye wildhalcyon :) 22:22:47 -!- wildhalcyon has left (?). 22:22:48 aha, here it is in a different part in the cookbook, using a different combinator: 22:22:51 { { [ dup 0 > ] [ "positive" ] } { [ dup 0 < ] [ "negative" ] } { [ dup zero? ] [ "zero" ] } } cond 22:23:13 lament: that will look better on multi lines 22:23:20 { { [ dup 0 > ] [ "positive" ] } 22:23:20 why the 'dup's everywhere? because stack-based languages suck 22:23:25 lament: err no 22:23:28 because that's not typical code 22:23:29 seriously 22:23:32 #concatenative 22:23:49 also, the 'cond' at the end is just so ugly 22:23:57 maybe i'm not Japanese enough 22:23:58 to appreciate it 22:24:13 lament: Slava Pestov is certainly not japanese.. 22:24:16 #concatenative 22:24:29 you're reading the program top to bottom. If the cond body is two pages long, you have to scroll down first to see that it's a cond, then scroll back up. 22:24:40 #concatenative 22:24:45 also 22:24:49 if it's not two pages long, you still have to do it mentally 22:24:49 if you hae a two-page long cond body 22:24:52 your code is fucked 22:25:23 if it's two lines long, you still have to glance at the end of the thing to see that it's a cond. The point is, you just can't read the code in order that it's written. 22:25:58 anyway, you don't program in Factor so i don't have to convince you of anything :) 22:26:00 #concatenative 22:26:01 #concatenative 22:26:01 #concatenative 22:26:06 lament: i do occasionally 22:27:06 you suggest me to go to #concatenative just to tell them "hey, your language sucks"? 22:27:47 no 22:27:53 to ask them about your queries in a reasoned manner 22:27:59 and debate the plusses and minuses 22:28:07 as far as i can see, they're not queries. 22:28:08 :) 22:28:25 lament: they are, they have the implicit 'Am I wrong?' 22:28:34 you are new to factor, you are unconvinced. of course they'll be friendly 22:28:37 i'm just saying it sucks, and i think i have explained why. I'm not wrong. :) 22:28:55 -!- RedDak has quit (Remote closed the connection). 22:29:06 lament: you are wrong, and #concatenative will tell you why 22:29:17 (not factor, which i'm sure is awesome. Just the idea of stack-based languages) 22:29:21 being 100% sure that you are correct without asking the people who can truly tell you why they think you are wrong is just idiotic 22:29:57 well, i'm clearly right about the difficult-to-read word order 22:30:14 lament: just ask 22:30:17 and no 22:30:19 about what??? 22:30:20 you are not clearly right 22:30:25 #concatenative. seriously 22:30:31 yes, i'm clearly right 22:30:40 just like i'd be clearly right if i said "lisp has lots of parentheses" 22:31:06 #concatenativeeeeee 22:36:42 lament: just joining doesn'tt help, i imagine 22:36:42 :p 22:37:14 fine 22:38:47 lament: neither does leaving again 22:38:48 :p 22:39:34 since you do program in factor, feel free to tell me how i'm wrong if you ever find out :) 22:47:58 haha "While there is a very nice slope of indentation as one follows code down into the depths of nesting, that is about the only notion of elegance that could possibly come to one's mind when considering this code." 23:32:36 -!- ehird_ has joined. 23:33:32 -!- ehird has quit (Read error: 113 (No route to host)). 23:34:17 bye ghost 23:35:00 -!- ihope has joined. 23:35:08 Ello. 23:48:32 -!- timotiis has quit ("leaving"). 23:54:58 -!- wildhalcyon has joined.