00:08:02 * pikhq contemplates making an IRC bot 00:10:04 it's pretty straightforward, really 00:10:28 I can link you to a Java lib that could let you finish a BF bot in about half an hour 00:11:11 I'm trying to make one in PEBBLE. 00:11:52 And I'll probably give up soon. 00:12:17 I'll just make a PEBBLE bot, then. 00:12:29 Or. . . I dunno. 00:12:38 Somehow, I've lost sense of what I want to actually *do*. 00:14:04 pikhq: Write a bot, in PEBBLE, which can interpret PEBBLE via either brainfuck or c. 00:14:44 -!- zbrown has joined. 00:15:22 ehird`: Only if you implement PEBBLE in PEBBLE. 00:15:35 I will! ... just later 00:15:46 pikhq: Actually, yeah. Don't use PSOX or anything, just netcat! 00:15:57 ..wow, that means writing a brainfuck interp in PEBBLE 00:15:58 xD 00:16:16 ;) 00:17:28 pikhq: seriously, you want a PEBBLE 2 which does automatic allocation of temporary variables. 00:17:35 they're a real drag. 00:17:39 :P 00:19:21 http://pc11.2ch.net/test/read.cgi/tech/1173057314/ heh look, my submission is mentioned in the last few posts. 00:19:25 cute, if only i could read japanese 00:19:31 (google is fun) 00:28:34 If only I could read *complex* Japanese. 00:29:54 * pikhq begins the PEBBLE 2 stuff 00:30:00 Now that I have time to actually think it over! 00:35:35 I'm thinking one of the things PEBBLE 2 will have is a more useful preprocessing stage. 00:35:55 I present new doodles: http://nonlogic.org/dump/images/1202171064-dud1.png, http://nonlogic.org/dump/images/1202171075-dud2.png 00:36:56 Among other things, I'm thinking about axing the add and addvar bit. . . 00:37:28 There will be a += macro, which will act appropriately based upon whether one of its arguments is a variable or a number. 00:39:02 pikhq: omg, you'll have to implement garbage collection of temp vars 00:39:04 you must! :D 00:39:22 are you thinking about building some kind of system for configuring a build to target different BF interpreters? 00:39:24 Of course. 00:39:32 pikhq: pwnsome 00:39:38 that makes even the c backend non-trivial! 00:39:46 Like, the ability to tell the compiler things like wrapping and EOF behavior? 00:40:14 RodgerTheGreat: That's part of *why* I plan on having a better preprocessor. 00:40:28 ah 00:40:36 So, you can do "IF {WRAPPING} {wrapping code} else {non-wrapping code}" 00:40:47 pikhq: shouldn't that be automatic and abstracted away 00:40:48 :-| 00:41:00 sounds pretty nifty either way 00:41:03 ehird`: That will be used for implementation of the stdlib macros. 00:41:15 Hopefully, I'll have all that junk abstracted away. 00:41:16 also, why if {wrapping} 00:41:18 you can just do 00:41:20 if wrapping 00:41:29 The two would be equivalent. 00:42:13 pikhq: could you please write your own parser? :P 00:42:21 writing pebble in tcl syntax is unbearable to say the least 00:42:25 (my vote: s-exp! s-exp!) 00:43:05 Grr. You *have* to say that just as I'm thinking "let's just do proper, full-on Tcl syntax, rather than my abused bits of it". 00:43:48 can you make something similar to assert() for debugging? 00:43:54 pikhq: :) 00:43:58 Well, you must! 00:44:11 even in a limited form, you could save BF coders a load of sanity 00:44:11 RodgerTheGreat: I can see pikhq is going to have a field day with brainfuck text generation algorithms.. 00:44:20 heheh 00:44:34 Hmm. There's a thought. 00:44:34 "astrnfld1==2" 00:44:38 I'm looking forward to seeing what he can come up with 00:44:45 pikhq: What? Build text generation in to it? If so, yes. 00:45:00 ehird`: PEBBLE 1 has (limited) text generation already. 00:45:07 Yeah, but not awesome :P 00:45:08 To not have that much would make PEBBLE 2 a *downgrade*. 00:45:13 You should be able to do: 00:45:16 txtgen "hello" > var 00:45:23 where var is an array 00:45:26 yes -- you must implement arrays! 00:45:36 I'd do something like "assert cell = value [error message] " or "assert cells = 'several ascii representations' [error message]" 00:46:16 if pikhq and calamari put their heads together I have no doubt the result would be incredible. 00:46:35 pikhq: I venture: PEBBLE2 should be totally self-hosted. 00:46:47 With some kind of crappy, limited tcl interpreter that you can use to compile itself. 00:46:57 In my current syntax, 'assert {$cell == value} "ERROR here"' or some such. 00:47:06 ehird`: Are you fucking insane? 00:47:13 pikhq: Yes. Why shouldn't I be? 00:47:15 I want to actually have an implementation, thanks. 00:47:26 You'd have one. The tcl one. 00:47:31 Which you could use to compile the pebble2 one. :< 00:47:33 However. . . 00:47:48 If I make PEBBLE2 powerful enough, I *could* manage to do self-hosting. 00:48:03 Exactly! It would evolve around a REAL-WORLD PROBLEM: compiling an esoteric language. 00:48:42 on one hand, some of the data structure implementations necessary would probably be excruciating, but on the other hand it would be pretty nifty 00:49:28 RodgerTheGreat: Given sane arrays, one could at least pull it off. ;) 00:49:34 RodgerTheGreat: So give it arrays and structures. 00:49:42 Then you just have to implement a compilation technique for them ;) 00:50:29 hm. doing pointers would really suck, but heaps can be done in-place to create a non-pointer based map structure in an array 00:50:36 that'd probably be your best bet 00:50:37 pikhq: But think how awesome an s-exp syntax would be: 00:50:46 (defstruct tmpvar 00:50:56 field something 00:50:57 field something 00:50:58 field something) 00:51:00 :P 00:52:27 pikhq: Actually, it would be very good for e.g. the macros. 00:52:40 Since macros are just compile-time procedures, a lot of pebble stuff would be trivial 00:52:49 And your preprocessor would be elegant, instead of just dumb replacement. 00:54:18 ehird`: You realise that I don't think functionally, right? 00:54:32 pikhq: s-expression syntax != functional. 00:55:16 pikhq: But macros like that are really elegant. Basically, whenever you see a call to one, in the compiler, you interpret it with the arguments as in the code (well, unevaluated of course). Whatever that returns is used instead of the macro call. 00:55:52 (defmacro thing (...) (if *wrapping* ...return wrapping code... ...return non-wrapping code...)) 00:55:55 stuff like that 00:56:04 This is what I'm thinking of ATM: http://pastebin.ca/891941 00:56:24 Sorry for the Tcl syntax; it comes to mind easily. 00:57:09 Well yeah, but that'd be far more elegant with lisp-style macros 00:57:16 Although that is kind of similar 00:57:22 it just exposes some of the internal workings 00:58:02 Of course, that syntax would be a royal PITA to self-host. 00:58:32 What syntax? 00:58:43 The lisp syntax with those macros? 00:58:48 Tcl-style syntax. 00:58:50 Ah. 00:58:54 The lisp syntax wouldn't. :P 00:59:12 Since writing an s-expression parser is trivial, and walking one and doing stuff with it too 00:59:35 How would the string substitutions I have work in sexps? 00:59:50 pikhq: I'm not sure exactly what you mean. 00:59:51 :| 00:59:55 oh 00:59:58 those things 01:00:03 "Invalid type for $out in __BRAINFUCK__+=. $out is [TYPE $out]; should be var." 01:00:07 Well, ERROR runs at compile-time right? 01:00:13 $out and [TYPE $out] are both substituted. . . 01:00:14 Yeah. 01:00:19 If so, you'd just make error a normal function, and make it take any arguments 01:00:26 So in a macro: 01:00:52 (error "Invlaid type for " out "in brainfuck-+=. " out " is " (type-of out) "; should be var.") 01:00:57 Not the prettiest example, but you get the idea. 01:01:03 You could also implement a formatting langugae. 01:01:17 (format "Invalid type for ~ in brainfuck-+=. ..." a) 01:01:22 You are still not realising one thing. . . 01:01:28 well, maybe something like $~ if ~ is too common 01:01:40 A self-hosting PEBBLE. . . 01:01:43 yes... 01:01:48 And you want formatting languages in it. . . 01:01:54 Are you fucking mad? 01:02:09 pikhq: If you have enough high-level stuff in, then it should be ok. But I agree. 01:02:16 so use the regular error form. 01:02:18 That's not hard. 01:02:27 And, if you must -- make it compiler-only. 01:03:07 -- evals to -= $out 1 which evals to __-= $out 1. . . Which is done in-compiler. 01:03:22 That's simple. 01:03:26 Like I said: lisp macros. 01:06:03 pikhq: Basically, the compiler is a bunch of functions. 01:06:09 'defmacro' adds a new function to the compiler. 01:06:14 Whenever that function is seen as being invoked, 01:06:26 the function inside the compiler is called, and then the invokation is replaced with the result of that. 01:06:34 It's very, very simple, and doesn't require any preprocessor. 01:09:04 -!- Sgeo has joined. 01:09:28 pikhq: IMO the compiler would be simpler and more elegant, and so would be the code. 01:09:41 a poll on a philosophy blog: 01:09:45 "Will the most common response to this poll be 'No'?" 01:09:54 lament: old 01:10:09 pikhq: Oh, maybe I should explain HOW you replace the invokation with the result of calling the compiler function (macro) 01:10:17 (defmacro foo () '(+ 2 2)) 01:10:23 See? It just returns the code as a list. 01:13:19 -!- olsner has joined. 01:13:24 -!- sarehu has joined. 01:13:39 must one join *every* channel? :P 01:13:50 no, just this one. 01:14:03 It's the official one for esolangs. 01:14:03 pikhq: Talk tomorrow. 01:14:08 ehird`: Mmkay. 01:17:02 -!- Corun has quit ("Bleh, Bunnies!"). 01:17:19 -!- BMeph has joined. 01:20:54 why did i not join this earlier? :| 01:21:27 sarehu: are you aware of the esolangs wiki? 01:21:41 yes generally 01:21:55 i don't know then :) 01:29:51 -!- calamari has joined. 01:32:34 Ah, calamari. 01:32:39 hi 01:33:29 -!- ehird` has quit (Read error: 113 (No route to host)). 01:37:11 calamari: pikhq is working on a new version of Pebble. I encourage you to join forces with him and create something epic. 01:37:23 Mostly discussing planning ATM. 01:37:35 http://pastebin.ca/891941 02:01:08 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 02:35:38 -!- olsner has quit ("Leaving"). 04:20:12 -!- chuck has quit (Read error: 104 (Connection reset by peer)). 04:21:50 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 04:34:49 -!- oerjan has joined. 04:38:12 -!- calamari has joined. 04:49:03 -!- GreaseMonkey has joined. 04:50:36 Does anyone have a BF program that prints the prime decomposition of a number? 04:57:08 -!- calamari has quit (calvino.freenode.net irc.freenode.net). 04:57:08 -!- sarehu has quit (calvino.freenode.net irc.freenode.net). 04:57:08 -!- faxathisia has quit (calvino.freenode.net irc.freenode.net). 04:57:09 -!- oklopol has quit (calvino.freenode.net irc.freenode.net). 04:57:09 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net). 04:57:09 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net). 04:57:10 -!- GregorR has quit (calvino.freenode.net irc.freenode.net). 04:59:12 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net). 05:00:48 -!- sekhmet has joined. 05:01:31 -!- oklopol has joined. 05:01:31 -!- calamari has joined. 05:01:31 -!- sarehu has joined. 05:01:31 -!- faxathisia has joined. 05:01:31 -!- bsmntbombdood has joined. 05:01:31 -!- AnMaster has joined. 05:01:31 -!- GregorR has joined. 05:32:57 -!- pikhq has quit ("leaving"). 05:55:18 -!- oerjan has quit ("leaving"). 05:57:01 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 06:09:45 -!- olsner has joined. 06:18:01 -!- calamari has joined. 06:23:42 -!- calamari_ has joined. 06:23:42 -!- calamari has quit (Read error: 104 (Connection reset by peer)). 06:28:24 -!- calamari_ has quit (Remote closed the connection). 07:39:31 -!- BMeph has quit ("calls it a night"). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:32:02 -!- cherez has quit (calvino.freenode.net irc.freenode.net). 08:32:03 -!- Deewiant has quit (calvino.freenode.net irc.freenode.net). 08:32:58 -!- faxathisia has quit (Remote closed the connection). 08:35:18 -!- sekhmet has quit (Remote closed the connection). 08:35:20 -!- sekhmet has joined. 08:36:41 -!- GreaseMonkey has quit ("Hi Im a qit msg virus. Pls rplce ur old qit msg wit tis 1 & hlp me tk ovr th wrld of IRC. and dlte ur files. thx."). 08:48:20 -!- olsner has quit ("Leaving"). 08:51:11 -!- Deewiant has joined. 08:51:20 -!- cherez has joined. 09:56:56 -!- Corun has joined. 11:06:33 -!- sarehu has quit (Remote closed the connection). 11:06:43 -!- sarehu has joined. 11:26:44 -!- danopia has quit (Client Quit). 11:28:17 -!- danopia has joined. 11:48:52 -!- Corun has quit ("This computer has gone to sleep"). 12:22:16 -!- sarehu has quit (Remote closed the connection). 12:22:32 -!- sarehu has joined. 12:56:52 -!- sebbu has joined. 13:06:52 -!- helios24 has joined. 14:28:11 -!- jix has joined. 16:12:31 -!- timotiis has joined. 16:27:16 -!- Hiato has joined. 16:27:22 Hello 16:33:34 -!- sarehu has quit (Remote closed the connection). 16:33:53 -!- sarehu has joined. 16:46:02 -!- oerjan has joined. 17:02:15 -!- Corun has joined. 17:02:43 -!- Hiato has quit (Read error: 110 (Connection timed out)). 17:07:22 -!- Corun has quit ("This computer has gone to sleep"). 17:25:30 -!- Hiato has joined. 17:26:01 Meh... what does Machine Check Exception mean? That's my new BSoD flavour of the week :( 17:44:26 It means that the machine only takes cash. 17:44:51 Send your cash to Microsoft Inc. 17:44:53 Well, how do I fix it, I use a cheque account 17:44:56 oh, I see 17:51:03 cheques, how quaint. you must be american ;) 17:51:16 er wait 17:51:40 * oerjan remembers 17:52:23 indeed :P 17:52:25 saw an article about the SA power shortage in the Economist in the library today, btw 17:52:40 I guess South Africa is in Mexico anyhow ;) 17:52:49 Really, what did it say? 17:52:58 Well, there's still plenty of cheques in France too! 17:53:43 that it's a mess caused by politicians not deciding to fix it in time, was my impression 17:54:15 or rather spending too much time discussing how much to privatize 17:54:50 well, then I guess the partial truth is escaping ;) 17:55:29 but it's got more to do with cheques under the table than handshakes above it (if you get my meaning :P ) 17:55:48 i'd guess 17:57:46 oh and it was suggested it might reduce economic growth from 6 to 3 percent 17:58:08 heh, lol 17:58:14 I didn't even know that one 17:59:29 -!- ais523 has joined. 17:59:42 but yes, they shut down all of the mines in SA for about 6 weeks. Our economy is a raw materials/minerals economy. Currently, every time someone flips the switch to cut Sandton (a wealthy business suburb), SA loses in the tens of millions per hour... 18:00:11 that is excluding the fact that we make a vast majority of the GDP of Gold mining, which is currently not really hapenning 18:00:48 yeah the article mentioned the shutdown too 18:01:10 and that the mines managed to get a promise of reliable power out of it 18:01:22 (at 90% normal level) 18:01:26 yeah, they did, a 90% increase 18:01:30 :) yeah, lol 18:02:37 90% of 0 is still 0... 18:03:14 very very true, that's the irony :P 18:04:23 but, that is of course, only true if you are cynical - like asi523 and I :P 18:04:34 -!- RedDak has joined. 18:13:55 Hiato: according to Wikipedia, a Machine Check Exception is really bad 18:14:08 so I believe :( 18:14:12 it seems to mean that something went badly wrong with the hardware 18:14:18 i.e. checksum failure on RAM or cache 18:14:28 and it apparently is often caused by overheating 18:14:36 at least, you have to hope that's what's causing it 18:15:40 yeah, I was originally under the impression that this is what occurs when I use my X86_64 cpu heavily (really heavily, been brute forcing my own encryption methods, and breadth searching conway's game of life for methuselahs) in 32bit mode. 18:16:25 you could always try filling the computer with liquid nitrogen 18:16:35 ISTR that method was used to set an overclocking record at one time 18:16:55 yes, while that would be fun, it would most certainly burn through both my tower and my pockets :P 18:17:15 yeah, something stupendous like 6Ghz of a Pentuim 4 18:17:28 the computer still managed to overheat eventually even though the outside was frozen. They only just had enough time to take a photo of the screen showing the fast clock speed before the computer turned itself off for heat reasons 18:18:09 heh, awesome :D 18:23:15 -!- AnMaster has changed nick to AnMaster_. 18:23:21 -!- AnMaster_ has changed nick to AnMaster1. 18:24:01 -!- AnMaster1 has changed nick to AnMaster. 18:28:25 -!- sarehu has quit (Remote closed the connection). 18:28:35 -!- sarehu has joined. 18:41:26 -!- RedDak has quit (Remote closed the connection). 18:42:19 in reference to the topic: 18:42:21 repeat. 18:42:26 repeat :- repeat. 18:42:28 * lament dies 18:42:38 lament: wow, that was unexpected 18:44:53 a bit before my estimate, that 18:45:53 besides, I didn't even finish writing the line that is actually needed to make that into an infinite loop 18:46:01 now, if I write: 18:46:11 goal :- repeat, fail. 18:46:16 -!- ais523 has left (?). 18:46:19 -!- ais523 has joined. 18:48:32 * ais523 thinks that all langs should have some easy way to implement multithreading and backtracking 18:48:45 because they can be hard to implement if the language doesn't give specific features that allow it 18:48:58 call/cc is normally enough to write an implementation, though 18:49:46 call/cc + mutable state gives you all monads 18:50:27 is threading a monad? 18:50:33 it strikes me as being more of an antimonad 18:50:38 hm... 18:50:42 because monads cause things to happen in order 18:50:50 and threading causes things to happen in an apparently random order 18:50:51 backtracking certainly is 18:50:57 agreed 18:51:50 cooperative threading can probably be put in a monad 18:52:07 again agreed 18:52:33 one thing I like about INTERCAL's threading model is the way that it's cooperative threading allows guarantees on the relative speed of threads 18:52:41 which can be used for logic on occasion 18:52:47 e.g. the C-INTERCAL Hello, World on the wiki 18:52:58 s/it's/its/ 18:53:38 OTOH, the model is completely impractical for serious langs as far as I can tell 18:53:48 the backtracking model, on the other hand, is quite elegant while still being unusual 19:49:39 -!- oerjan has quit ("Good night"). 20:11:26 -!- ehird` has joined. 20:18:21 -!- ehird` has set topic: OLD TOPIC IS GONE. 20:18:53 -!- fax has joined. 20:18:57 Hi 20:19:15 Anyone know anything about ABSYS? 20:20:16 no 20:20:17 what is that 20:20:54 fax: i have a question -- are you the same fax as faxastheisdfsdkf or however you spell it or are there two confusingly-similarly-named people in here 20:20:59 the first logic programming language, appanetly 20:21:29 yeah, It's me 20:22:17 fax: hmm, i didn't know you were UK. :p 20:22:32 fax: http://en.wikipedia.org/wiki/ABSYS well, one publication 20:22:35 i hope you have fun tracking it down 20:23:02 -!- ais523 has quit (Remote closed the connection). 20:23:47 there is a suprisingly large number of british folk in here 20:24:07 must be something in the water.. 20:24:26 Hey! 20:24:42 I tried to add mutable conses to haskell but failed :/ 20:25:15 -!- ais523 has joined. 20:25:21 sorry about that 20:25:48 it seemed as though the window manager went crazy; no window frames were available, just the client areas of the windows, which acted as normal 20:26:10 fax: trivial 20:26:33 type MList a = ST [a] 20:26:35 i think 20:26:35 :-) 20:26:46 ais523: your WM crashed 20:26:51 morale: always keep an xterm open 20:26:52 presumably 20:27:00 I had two open 20:27:09 but logout/login solved it 20:27:50 ehird`: was it you who added the latest anarchy golf challenges? 20:27:52 use twm, that never crashes :-) 20:27:57 ais523: which ones? 20:28:08 two versions of multiply 20:28:12 (speaking of which, it seems the japanese userbase of anarchy golf call it anagolf, which is far easier to type) 20:28:14 nope, i didn't 20:28:14 and a simple program interpreter 20:28:16 weirdx or whoever did 20:28:19 i did the simple program one 20:28:25 which is of course not simple at all :-) 20:28:39 well, I have a /genuine/ entry for it 20:28:40 wowzer 20:28:40 ais523(genuine) 20:28:49 ais523: show the code? that's pretty cool :D 20:28:53 although it doesn't nest parens more than 2 deep in all circumstances 20:28:59 heh 20:29:13 ais523: my "Multiply" entry is clever 20:29:21 * ais523 pastes 20:29:24 p eval gets(nil).gsub(",","*") 20:29:29 Multiply long: 20:29:35 http://pastebin.ca/892988 20:29:38 $<.map{|x|p eval x.gsub(",","*")} 20:29:45 * fax is forbidden .. http://www.absysinfo.com/ 20:29:51 ais523: wow, it compiles. 20:30:06 ais523: it doesn't actually do any parsing stuff though, does it? 20:30:06 more a s/// to change the code into Perl 20:30:09 no 20:30:11 just transforms the non-perl bits into perl 20:30:15 it doesn't nest parens more than 1 level deep either 20:30:37 I could actually write a shorter version that did, but only if they upgraded Perl to 5.010 20:30:45 which I don't think has been released yet 20:30:53 ais523: the thing about yours is that it isn't as conceptually elegant 20:30:56 in mine, 20:30:59 'if' is a composite 20:31:02 well, it isn't implemented as one 20:31:04 but it's called as one 20:31:09 since {...} is a lambda 20:31:16 I thought you might be doing that 20:31:24 but if is your only combinator, so I optimised for that 20:31:30 hehe :) 20:31:42 there are some shortcomings as well; you can't call a variable i or f, for instance, because those letters are part of the word if 20:31:46 hahah 20:31:51 and the lexer doesn't distinguish word boundaries in keywords 20:31:58 the cool thing about mine is that it's... pretty hard to parse properly 20:32:02 {x. x} {x. x} 20:32:07 that's either two lambdas, or a call to a lambda 20:32:15 (note: \n is not a seperator) 20:32:19 ack 3 4 fact 4 would work. 20:32:48 \n in my compiler means "print the result of evaling the next expression unless it's a subroutine definition" 20:32:57 ais523: btw 20:33:00 I look for a : on a line to see whether to print or not 20:33:01 you know the evil c compiler entry? 20:33:15 sort of 20:33:18 I have it up at the moment 20:33:29 ais523: yeah, well i underestimated those japanese 20:33:33 http://www.nmt.ne.jp/~ysas/diary/?200705b#200705161 someone made a real compiler for it. 20:33:35 compiles to postscript. 20:33:37 I mean -- WTF? 20:33:46 http://www.google.com/translate?u=http%3A%2F%2Fwww.nmt.ne.jp%2F%7Eysas%2Fdiary%2F%3F200705b%23200705161&langpair=ja%7Cen&hl=en&ie=UTF8 translated page, but the source is messed up 20:34:03 'Evil C Compiler to the ANAGORU finally written in PostScript. とりあえず短くする以前に動作するものを、取り急ぎバイナリ化もせず生でコミット。 Shorten work in the meantime before that, without a moment to raw binary also committed. すんごくでかいけど、これ、インチキなりにちゃんとコンパイルする。 So very big, but this one, and the pseudo-respectable compilation. 20:34:03 たとえばFizzBuzzならこう。 For example if I FizzBuzz.' 20:34:07 err 20:34:09 how did that happen 20:34:15 those japanese chars weren't in my browser. 20:34:19 is that the same person who submitted a genuine entry for the Underload compiler in PostScript? 20:34:33 ais523: not sure. ysas is the url name 20:34:37 and ehird`, it's worse over here, I ended up with a paste full of mojibake 20:34:51 ais523: :) 20:35:05 the Underload entry was by yshl, not ySas 20:35:11 but it's possible that they're the same person 20:35:15 similar name 20:35:17 so i guess so 20:35:34 ais523: there's such a language gap on anagolf, especially with the ruby focus and ruby being the biggest in japan :-) 20:36:05 Ruby vs. Perl is probably the biggest language war in golfing 20:36:18 ais523: ruby's quite a newcomer to golfing though 20:36:21 but it's *great* at it 20:36:36 both Ruby and Perl are pretty good 20:36:44 and which one wins tends to depend on the details of the problem 20:36:50 that war is interesting because it's so close 20:37:36 ehird`: does Haskell have an eval? 20:37:44 ais523: no, it's a static, compiled language 20:37:48 even Hugs doesn't have one 20:37:49 a 'simple language' to Haskell 'compiler' might work better than compiling into Perl 20:37:53 because the syntax is more similar 20:38:06 ais523: You could call out to ghc. :-) Unless exec is denied 20:38:12 but as you denied exec I can't even call out 20:38:29 ais523: aww 20:38:30 sorry :) 20:38:37 exec is usually denied, as it's the default 20:38:40 but yeah, despite haskell's dynamic 'feel', it's very very static 20:38:54 although exec can be useful when testing 20:39:19 while testing that simple language compiler I used recursive calls to perl rather than eval so that error messages came up on stderr 20:40:17 ais523: it's funny, anagolf's architechture at fisrt appears simple 20:40:21 but if you look at the code it's crazy 20:40:26 all the sandboxing tricks and all that 20:40:39 I was writing a message about how the sandboxing must be difficult but you beat me to it 20:40:56 hehe 20:41:17 pity that anagolf doesn't allow 1-byte palindromic quines 20:41:28 because is a palindromic quine in GolfScript 20:41:32 ais523: http://pc11.2ch.net/test/read.cgi/tech/1173057314/ yours and mine challenges are mentioned near the end :-P 20:41:46 all the rest is completely unintelligable, of course. 20:41:56 but if you scroll down to 141 it's there 20:42:29 I can't figure the page 20:42:34 ais523: ? 20:42:37 the links are all mailto: aimed at invalid addresses 20:42:49 ais523: oh, that's random wacky 2channel stuff 20:42:53 it stops the thread being bumped. 20:42:53 and there seems to be no content other than the challenge names 20:43:02 not on that post, it appears 20:43:10 [all this knowledge re: 2ch is probably useless since i know no japanese] 20:43:19 [but i know it's the largest bbs in the world, with over 2million visitors a day] 20:44:40 ais523: sometimes in that thread you can work out posts from the ones following it 20:44:51 like, someone mentiones goruby in 122, and then what follows appears to be an implementation of it 20:45:01 a golfing version of Ruby? 20:45:22 I'm not surprised that that has a built-in uudecode, because it must be useful for compressing code into binary 20:45:35 (actually, uuencode is more commonly useful for that) 20:45:50 ais523: yes, its included in ruby 1.9 20:45:54 for No Apparent Reason (TM) 20:46:13 'make golf' is the best command-line invokation ever, though 20:46:22 that cheat BF entry for the uudecode still has me amused 20:46:29 I'm sure a genuine entry would be shorter 20:46:38 but a BoolFuck entry would be shorter still 20:48:46 ais523: http://en.wikipedia.org/wiki/2ch with wikipedia articles like this, who needs knowledge of japanese? 20:49:01 still not any closer to reading that anagolf thread though :P 20:50:38 hmm... I wonder how easy it is to do bitwise BF arithmetic? 20:52:35 hard 20:52:54 it would probably be easiest to split the number into bits first 20:53:12 for that you just need a divide/modulo instruction 20:53:14 or routine 20:53:25 I wonder whether, if I find a K interpreter, I could convince shinh to add it to anagolf? 20:53:44 http://golf.shinh.org/langs.html there seems to be one or two propeitery interps there, so it should be ok 20:54:02 they have J and A+ 20:54:05 why not write your own non-proprietary reimplementation? 20:54:12 ais523: it's too comprehensive, K. 20:54:16 also, because anagolf considers speed too. 20:54:22 K is incredibly fast on tons of stuff 20:54:23 and the interp si tiny 20:54:27 (fits in lvl1 cache of cpu) 20:54:51 that's why reimplementing it shouldn't be too difficult 20:55:00 the new version probably wouldn't be as high-quality 20:55:09 but hopefully wouldn't take very long to write 20:55:35 ais523: the library is comprehensive 20:55:46 and that's proprietary too? 20:55:51 that could be a problem 20:55:52 ais523: yep, i think 20:56:05 they offered a free K3 interpreter before, it was just one binary 20:56:07 for all platforms 20:56:09 (win, linux) 20:56:14 i can find it with google, but yeah 20:56:17 you have the binary, that's it 20:56:25 what license is it under 20:56:34 if it's public domain, it might be possible to decompile it 20:56:44 ais523: 'all rights reserved' kind of thing 20:56:44 especially if you have the same code for multiple OSs 20:56:51 so not possible then 20:56:57 not legal, certainly 20:57:19 if k was easier to googlle. :| 20:59:25 wow, searching via Wikipedia I found a page elsewhere called "K for Joy Programmers" 20:59:32 ais523: nsl.com? 20:59:35 yes 20:59:40 no stinkin' loops, that's the best k site 20:59:45 http://www.nsl.com/k/bf.k they have a bf interp and a ->c compiler 20:59:50 here's the compiler: 20:59:51 c:{`bf.out.c 0:"char m[9999];char*p=m;int main(){",(,/@[256#"";_ic"<>+-.,[]" 20:59:52 :;("--p;";"++p;";"++*p;";"--*p;";"putchar(*p);";"*p=getchar();";"while(*p){" 20:59:52 "}")]_ic x), "}"; `4:"gcc -o bf.out -O3 -w bf.out.c"; `3: "rm -f bf.out.c";} 21:00:33 they're working on an Unlambda implementation as well 21:00:43 so they certainly seem esolang-aware over there 21:00:46 ais523: http://www.nsl.com/k/befreak.k <-- Befreak in K, *with a gui*... certainly a new implementation would be hel 21:00:48 l 21:01:04 http://www.nsl.com/papers/befreak.htm take a look at how comprehensive the gui is 21:01:58 a gui isn't very useful for golfing, generally speaking 21:02:03 sure 21:02:09 but i wouldn't want to impact on MY k experience 21:02:10 :-) 21:03:37 hmm 21:03:42 is cat in unlambda even possible? 21:03:46 well 21:03:50 without a huge switch table for every 255 char 21:04:15 yes 21:04:19 you can use the | command 21:04:28 sorry, combinator-like action-like object 21:04:52 ah yes 21:06:02 -!- jix has quit ("CommandQ"). 21:06:47 that K implementation of Unlambda looks excessively long 21:07:02 I may have to get on with writing my Underload/Unlambda/Brainfuck hybrid lang 21:07:31 which Unlambda can be trivially compiled into 21:07:37 The EsCo 9000? 21:07:45 and yet which can be interpreted simply as well 21:08:12 then combining an Unlambda->Underlambda compiler and an Underlambda interp would give an Unlambda interp 21:08:13 ais523: want to help me find a k interp for linux? :P 21:08:15 or windows, i guess 21:09:29 it was on nsl, but the link seems to be broken 21:09:32 that is, the link from Wikipedia to it 21:09:44 is Wayback working for you? It wasn't for me earlier 21:09:58 aha, wayback! good idea 21:10:00 hm 21:10:01 slow loading 21:10:30 sufficiently slow that my browser timed out when I tried 21:10:51 well 21:10:52 it loaded. 21:10:58 so i'm telling it to go fish for kx.com 21:12:34 ais523: trying 2005 21:12:40 -!- helios24 has quit ("Leaving"). 21:12:47 ah 21:12:48 http://www.nsl.com/misc/k/ 21:12:51 let's wayback that 21:14:17 no matches 21:14:18 sdfjksdf 21:14:57 -!- GreaseMonkey has joined. 21:15:58 incidentally, do you think that $/=$] is an abusive way to switch Perl into slurp mode? 21:16:16 it's a golfing trick I use myself; set the newline separator to the Perl version string 21:16:21 which is unlikely to be anywhere in the input 21:20:28 -!- ais523 has quit (Remote closed the connection). 21:22:46 -!- ais523 has joined. 21:22:53 sorry about that 21:22:55 what did I miss? 21:23:06 * ais523 's window manager crashed again 21:23:14 nothing 21:23:15 at all 21:23:17 also 21:23:19 $/=0 21:23:21 isn't that shorter 21:23:31 (also, that's SCARY ambiguity with a /= b) 21:24:14 not equals is != in Perl 21:24:22 no 21:24:24 doesn't it stringify 0 ? 21:24:25 divide-equals 21:24:34 and not really, because a lone $ always gobbles up the next character at least 21:24:36 fax: that's ok 21:24:40 no golf challenges have 0 in the info iirc 21:24:42 and yes, 0 is stringified 21:24:44 wait 21:24:46 oh I see 21:24:47 stringified as its char 21:24:47 right 21:25:02 http://web.archive.org/web/*/http://www.kx.com/download/download.htm <-- ais523: archives, but inaccessable 21:25:30 I suppose there's probably a special variable that's undef by default, but I can't be bothered to find out which one when $] works almost as well for this purpose 21:25:59 and ehird`: I'm the sort of person who's idealistic enough to avoid using a language if it doesn't have an open-source implementation I can mess around with 21:26:09 although not exclusively 21:26:14 ais523: you owe it to yourself to try k :) 21:26:24 but enough to not download closed-source interps for languages like K 21:26:25 i think kx systems have every right to keep it under wraps 21:26:28 it's like a secret weapon 21:26:47 if it's really that good, someone should reimplement it 21:26:57 sort of like the dmd/gdc thing 21:27:04 Why's k so good? 21:27:11 I couldn't really see why.. 21:27:23 fax: craziness 21:27:25 it reminds me a lot of the things I like to look for in a language 21:27:28 ais523: gdc is not a reimplementaiton! 21:27:28 hehe 21:27:32 it shares the open source backend with dmd. 21:27:33 although I don't like it as much as ehird`, I think 21:27:39 it just layers it on top of gcc. 21:27:49 fax: that and extreme conciseness and *speed* 21:27:51 gcc is the backend, I think 21:27:54 I like J a lot.. I couldn't get into K 21:27:55 it outperforms c in a lot of cases 21:27:59 ais523: it uses the dmd backend. 21:28:13 I think we're arguing over which end is the backend and which end is the frontend 21:28:17 fax: k is like j, but taken to the logical extreme and then whipped around until it was just that bit faster and shorter 21:28:25 ais523: it uses the 'guts' of dmd. 21:28:32 OK 21:28:37 the only reason dmd isn't open is that the frontend has code by other people. 21:30:08 here's Y in k 21:30:09 Y:{{x[{x[x]y}[y]]z}[x][{x[{x[x]y}[y]]z}[x]]y} 21:30:16 yarg, that's awful 21:30:20 yep! 21:30:25 it looks better in most syntaxes 21:30:31 it utilizes the fact that by default 'x,y,z' are your first arguments 21:30:32 by default. 21:30:35 you don't need to name them 21:30:47 yes, but other langs do that as well 21:30:49 since most k functions take 3 or less arguments, that's probably good 21:30:49 :P 21:30:53 wtf.. lol 21:30:54 Mathematica uses #1, #2, #3 for instance 21:31:01 and the pattern doesn't end there 21:31:06 longer than arc :P? 21:31:15 fax: naw, shorter :P 21:31:15 on the other hand, Mathematica is even worse for excessive brackets 21:31:19 arc is like java compared to k! 21:31:32 so what is Java like compared to K? 21:31:53 this K sounds like a piece of proprietary junk. 21:32:06 lament: proprietary, but not junk. 21:32:29 * ais523 still thinks that with enough effort it would be possible to come up with something even smaller and faster 21:32:41 (fn (m) ([_ _] (fn (y) (m [(y y) _])))) 21:32:41 -!- Tritonio_ has joined. 21:32:51 fax: sure, but that is in a different style 21:32:55 you do [_ _] and call that 21:32:57 you could do that in k too. 21:33:01 lament: http://www.kuro5hin.org/story/2002/11/14/22741/791 21:33:07 ais523: probably in forth. 21:33:12 ais523: k is tried and tested, though. 21:33:17 lament: forth is not short 21:33:24 ais523: KDB is used by tons of banks and governments and shiz 21:33:25 either that or you've just fallen for their advertising 21:33:27 and just plain K is too 21:33:29 so it's that long for.. readability? :D 21:33:42 ais523: naw, kx don't acknowledge k any more 21:33:43 :) 21:33:48 just did research. 21:33:58 hm 21:34:03 -!- RedDak has joined. 21:34:03 kx just updated their home page :| 21:34:46 what, during this conversation? 21:35:05 since yesterday.. 21:36:06 * ais523 was wondering for a moment if they were monitoring #esoteric so that they could alter their website to fit the conversations 21:36:38 heh 21:36:53 kx-if you're reading me, put up a free k3 trial. thanks 21:37:21 ais523: it seems, though, that concatentative languages might be the wrong way for conciseness... 21:37:28 i feel ninjacode2 is needed! :P 21:37:40 what makes you think that? 21:37:46 K is quite concatenative-like 21:37:49 just with infix notation 21:37:56 well, you know what i meant 21:37:57 ;) 21:38:11 ais523: not strictly, though... because of the monadic/dyadic stuff 21:38:19 ah yes 21:38:31 which seems like a really good way to pack code into small boxes 21:38:38 the infixness is a way to use two functions on each character 21:38:58 OTOH it makes it considerably harder to create virtual temporary variables 21:39:19 ais523: personally i think three would be cool 21:39:23 infix,prefix,postfix 21:39:27 but that's basically impossible 21:39:31 that would be ambiguous 21:39:35 since a!b is either a postfix, then b 21:39:38 or infix a, b 21:39:41 or a, prefix b 21:39:54 i can handle only two options, but three?! no way ;) 21:40:05 !a! would be just as bad 21:40:08 Huh? 21:40:16 sorry EgoBot 21:40:22 heh 21:40:35 ais523: yeah 21:40:48 though infix, in itself, is ambiguious 21:41:55 K enforces right-to-left evaluation for some reason 21:42:02 left-to-right is more natural, I would have thought 21:42:05 because that's the most useful, ais523 21:42:09 it reduces parens in more cases 21:42:22 unintuitive, but they have years of practice with that kind of stuff :P 21:44:25 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)). 21:52:57 -!- Hiato has quit (Read error: 110 (Connection timed out)). 22:01:41 -!- Tritonio_ has quit (Remote closed the connection). 22:03:12 -!- slereah__ has joined. 22:21:08 -!- ais523 has quit ("bye"). 22:49:46 -!- RedDak has quit (Remote closed the connection). 22:54:26 -!- olsner has joined. 22:58:49 -!- Corun has joined. 23:00:30 -!- timotiis_ has joined. 23:07:52 -!- timotiis_ has quit ("leaving"). 23:15:27 -!- pikhq has joined. 23:18:11 pikhq: hi 23:21:15 -!- Geekthras has joined. 23:26:25 pikhq: ping 23:26:55 ehird`: Pong. 23:27:03 pikhq: any thoughts re: pebble2? 23:27:13 Woah pikhq? 23:27:13 Just one ATM. . . 23:27:22 Geekthras: Yeah? 23:27:35 Geekthras: From #xkcd, I see. ;) 23:27:43 Yup 23:28:38 -!- timotiis has quit (Read error: 110 (Connection timed out)). 23:35:13 Geekthras: So, what brings you here? 23:35:24 Not much 23:35:25 ack 23:35:30 -!- Geekthras has changed nick to Geekthras|Dinnar. 23:42:58 -!- Geekthras|Dinnar has changed nick to Geekthras. 23:43:15 Just hanging out 23:46:38 finally got around to making a bf compiler 23:47:18 I'm finally getting around to revising PEBBLE. 23:47:36 ehird`: BTW, I'm thinking of implementing PEBBLE2 in Plof. 23:47:56 pikhq: :( but .. self-hosting lisp syntax! 23:47:57 :O 23:48:29 I never said what syntax I'd use. 23:48:37 Remember: Plof has a runtime-modifiable syntax. 23:51:17 okay, yeah, but .. macros 23:51:19 and self-hosting 23:51:20 :( 23:55:20 http://web.archive.org/web/20041014021225/http://kx.com/cgi-bin/getSoftware_new.pl?klin.zip=y i hope this works :) 23:55:26 dmanit 23:55:27 nope 23:56:21 ehird`: Plof can have *everything* replaced at runtime. 23:56:37 not good enough! :( 23:56:42 i want a self-hosted, lisp-syntax pebble! :P 23:56:46 maybe i should make it. heh 23:57:01 Well, everything except for the PSL semantics, which are about as hard to replace as the machine code on a traditional CPU. . . 23:57:11 And I've yet to rule out sexp syntax. 23:57:20 ;p 23:58:27 pikhq: OK, but self-hosting 23:58:27 :P