00:00:14 "ANYONE USING THIS SYSTEM EXPRESSLY CONSENTS TO MONITORING" 00:00:19 just put words in my mouth why don't you! 00:00:28 https://www.intelink.gov/ 00:00:30 login page 00:06:19 . 00:06:32 login page is not at all surprising 00:06:44 I certainly imagine intellipedia doesn't have much vandalism 00:06:48 people would likely get fired for that 00:08:00 :P 00:12:00 mm, i can't wait to get my new machine 00:12:08 I'm becoming increasingly dissatisfied with os x 00:12:11 *os x 00:30:20 bye 00:30:34 is that bye #esoteric, or bye OS X? 00:30:42 and what are you disliking about it atm? 00:33:36 I guess that was bye #esoteric 00:49:26 -!- psygnisfive has joined. 00:49:37 neiho. 00:51:33 hi 00:57:46 hey man 01:01:57 haha: http://en.wikipedia.org/w/index.php?title=Therac-25.&action=history 01:02:05 someone at reddit typoed a link to Wikipedia 01:02:16 and instead of editing the link, they just edited Wikipedia to add in a redirect 01:05:13 -!- kerlo has quit (Remote closed the connection). 01:05:13 -!- thutubot has quit (Remote closed the connection). 01:06:20 -!- inurinternet has quit (No route to host). 01:08:49 -!- puzzlet has joined. 01:09:37 -!- puzzlet_ has quit (Remote closed the connection). 01:17:09 -!- darthnuri has joined. 01:19:56 -!- puzzlet has quit (Remote closed the connection). 01:19:59 -!- puzzlet has joined. 01:27:08 -!- puzzlet_ has joined. 01:27:15 -!- puzzlet has quit (Remote closed the connection). 01:27:26 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 01:32:07 -!- puzzlet has joined. 01:41:43 -!- olsner has joined. 01:49:20 -!- kerlo has joined. 01:50:32 -!- kerlo has left (?). 02:11:18 -!- darthnuri has changed nick to inurinternet. 02:12:46 LAWLZ 02:40:15 -!- jix_ has quit ("leaving"). 02:55:21 ehird,fizzie : you should do `load "$",8', then `list', without the `,1' secondary address to `load' 02:57:07 (istr with the `,1' it will load the directory (as a BASIC program) on $0400, which is the start of the screen memory on C64 .. it might have been that $0400 was the start of BASIC program memory on older PET machines, i'm not sure) 02:58:44 (the `,1' basically tells `load' to load the program not into the current BASIC memory, but instead to the address that the program was saved from .. in the case of the directory, though, the "program" is synthesized by the disk drive, so it just invents the origin address $0400 for some reason) 03:20:13 -!- bsmntbombdood has joined. 03:20:17 finally got some debian 03:20:23 Goody. 04:21:01 -!- oerjan has joined. 05:06:54 -!- ais523 has quit (Remote closed the connection). 05:07:58 -!- ais523 has joined. 05:30:33 -!- Gracenotes has quit (Remote closed the connection). 05:31:29 -!- Gracenotes has joined. 06:10:50 -!- coppro has quit (Read error: 110 (Connection timed out)). 06:28:38 -!- ais523 has quit (Remote closed the connection). 06:45:34 -!- oerjan has quit ("leaving"). 07:16:23 -!- bsmntbombdood has quit (Remote closed the connection). 07:25:51 -!- bsmntbombdood has joined. 07:43:45 xset b 35 440 75 07:59:52 wtf! 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:00:02 my load average goes above 1 while watching flash video 08:00:04 so much for fast 08:00:26 -!- tombom has joined. 08:03:24 -!- kar8nga has joined. 08:04:25 That's rather curious; on this work-workstation, playing a random U-tube video results in ~18% CPU usage for Firefox, and ~8% for Xorg. 08:09:35 90% xul-runner, 85% xorg 08:12:40 it's also giving me all sorts of weird artifacts... 08:27:13 * ski__ listens to `Turkish_towel' 08:29:22 -!- kar8nga has quit (Remote closed the connection). 09:39:10 -!- BeholdMyGlory has joined. 10:11:16 -!- bsmntbombdood has quit (Remote closed the connection). 10:13:08 -!- Slereah_ has quit. 10:18:06 -!- Slereah has joined. 10:36:21 -!- BeholdMyGlory has quit (Remote closed the connection). 10:57:52 -!- darthnuri has joined. 11:14:18 -!- inurinternet has quit (Read error: 110 (Connection timed out)). 11:42:25 -!- jix has joined. 12:32:15 -!- MizardX has quit ("What are you sinking about?"). 12:49:56 -!- asiekierka has joined. 12:49:57 hi 12:50:05 I had an idea on how to not waste ram with function i won't use later on 12:50:20 I basically make a slot of $100 or $200 bytes, and then after the init function is done 12:50:21 i clear it 12:50:24 which gives me saving 12:50:26 s 12:50:47 after execution is finished, i get about 128 bytes of saving for now 12:50:54 also, I have a routine to clear blocks of $100 now 12:52:18 As well as I have finally fixed putc (just need to do backspace and cursor), and I did HextoStr and stuff 13:07:05 -!- Sgeo has quit (Read error: 110 (Connection timed out)). 13:16:10 1010 bytes, everything except backspace is done 13:16:16 And I planned 8KB for my kernel... 13:16:27 -!- darthnuri has quit (Connection timed out). 13:19:40 -!- tombom has quit ("Peace and Protection 4.22.2"). 13:22:47 -!- KingOfKarlsruhe has joined. 13:29:31 -!- jix has quit ("i shouldn't use irc now!!"). 13:33:24 -!- inurinternet has joined. 13:54:19 -!- jix has joined. 14:14:32 -!- oerjan has joined. 14:26:04 -!- KingOfKarlsruhe has quit (Remote closed the connection). 14:48:03 -!- MizardX has joined. 15:19:45 -!- FireFly has joined. 15:49:52 -!- inurinternet has quit (No route to host). 16:05:54 23:30 ais523: and what are you disliking about it atm? 16:05:57 it's too conventional 16:05:59 also, bsmntbombdood: 16:06:06 make sure you have the proprietary flash player, 16:06:08 disable hyperthreading, 16:06:13 and make sure you have the proper nvidia drivers 16:06:17 preferably the proprietary ones 16:06:29 also you can't edit links on reddit 16:18:04 -!- inurinternet has joined. 16:37:05 * pikhq discovers that the IBM mainframe hypervisor was released as public domain until the mid-80s... 16:43:56 -!- BeholdMyGlory has joined. 16:45:04 hypervisor is such a cool nam 16:45:04 e 16:45:08 it VISES HYPERLY 16:52:38 define:vises 16:52:44 -!- jix has quit (":("). 16:53:43 I had an idea on how to not waste ram with function i won't use later on 16:53:43 I basically make a slot of $100 or $200 bytes, and then after the init function is done 16:54:14 um, I remember seeing in the Linux kernel bootup output something like "Freeing unused SMP function variants... freed 5K" 16:54:17 or similiar 16:54:26 when run on an uniprocessor 16:54:52 I assume it would do the reverse (freeing single cpu variants) on SMP machines. 16:57:16 also, I have a routine to clear blocks of $100 now <-- fixed size memset? 16:57:57 disable hyperthreading, <-- why. 16:58:08 AnMaster: because hyperthreading is broken 16:58:26 it's (1) a hack to get around bad pipelining (2) increases cache thrashing a lot 16:58:35 aha. 16:58:41 And the Atom doesn't have bad pipelining. 16:58:42 it's unlikely that it's causing his load issues but he should disable it anyway :) 16:58:47 pikhq: it's not an atom 16:58:49 why then did Intel reintroduce it. 16:58:50 it's a nehalem :-p 16:58:55 AnMaster: marketability? 16:59:02 The Nehalem has *crazy good* pipelining. 16:59:03 hm ok 16:59:14 AnMaster: It was popular in the Pentium 4 line. 16:59:22 And the Pentium 4 sorely needed it. 16:59:30 pikhq, I had a P4 once. Early one 16:59:47 Hyperthreading made a difference on that architecture. 17:00:02 it ran at 1.8 GHz or something like that 17:00:04 iirc 17:00:21 so pretty early P4 17:00:52 I wonder when Intel will get off their butts and release Larrabee. 17:00:58 Although apparently it's crap. 17:01:41 [http://en.wikipedia.org/wiki/Larrabee_(GPU), fyi] 17:01:48 Of course, the downsides of hyperthreading are somewhat reduced on Linux, which has a hyperthreading-aware scheduler. 17:01:55 pikhq: yeah, but still 17:01:56 ehird, is it crap? that is news to me 17:01:58 that cache thrashing 17:02:02 pikhq: and also, 4 cores is enough for anyone ;-) 17:02:12 AnMaster: Larrabee's early presentation has drawn some criticism from GPU competitors. At NVISION 08, several NVIDIA employees called Intel's SIGGRAPH paper about Larrabee "marketing puff" and told the press that the Larrabee architecture was "like a GPU from 2006".[7] 17:02:17 (without one, it treats the hyperthreading CPU as two full cores. Bad performance ahoy!) 17:02:20 ofc, nvidia has a reason to be biased 17:02:27 heh 17:02:31 but... otoh, it doesn't seem like they'd outright lie 17:02:44 also, a GPU running x86 sounds fairly pointless. 17:02:55 ehird: Intel has always done low-end GPUs. That their GPUs are now from 2006 is a massive step up. 17:03:06 True enough :-) 17:03:07 haha 17:03:11 And the main draw of Larrabee is being highly programmable. 17:03:32 well so are recent nvidia and ati cards iirc 17:03:33 This is a chip you play around with real-time raytracing on. ;) 17:03:45 nvidia's cuda and whatever ati's one was called 17:03:47 They *are*, but they're a pain to program for. 17:03:52 pikhq: Nah, you need a specialized chip to do that. See Caustic Graphics; they get about 5fps. 17:03:57 (on an *FPGA*) 17:04:01 pretty impressive 17:04:13 hm 17:04:17 They're technically Turing-complete, but if your code does much branching, it's faster to do it on a CPU. 17:04:29 having a computer based completely on fpgas would be interesting 17:04:32 GPUs are for embarrasingly parallel stuff ;-) 17:04:39 would allow some interesting optimised algorithms 17:04:39 AnMaster: err, that;'s called any hobbyist computer 17:04:43 like sorting networks 17:04:46 it's also called "dog slow" 17:04:47 and what not 17:05:03 ehird, why is it so slow? Because it is hobbyist? 17:05:05 The Larrabee is also for embarassingly parallel jobs. 17:05:15 AnMaster: Because it's an FPGA! 17:05:25 ehird, good point 17:05:32 why can't you make fast FPGAs 17:05:37 ehird: They do at least get some benefit from having appropriate circuitry possible. 17:05:49 Still, you're running it at 100Mhz. 17:05:53 AnMaster: Think about how an FPGA works, and then think about fabricating silicon. 17:05:59 No contest. 17:06:03 true 17:06:11 AnMaster: FPGAs are hard as hell to make with smaller processes. 17:06:32 fair enough 17:06:38 Really, FPGAs are hard as hell to make. 17:06:38 but programmable hardware is cool anyway! 17:07:03 It's cool, but not something that you're likely to ship on a production board. 17:07:08 pikhq, how come they are used so much then. For when a ASIC would be too expensive. 17:07:38 Because ASICs are done in large batches. 17:07:52 Why order 100,000 ASICs if you need 100 FPGAs to do the same? 17:08:04 17:07 AnMaster: pikhq, how come they are used so much then. For when a ASIC would be too expensive. 17:08:07 Because ASICs are expensive 17:08:10 yeah 17:08:11 :/ 17:08:38 ever read about Synthesis? I think someone in here linked it. 17:08:47 Nope. 17:09:10 lockless SMP OS, with runtime modification. Ran on some old Motorola CPU with double-CAS instruction. 17:09:14 really interesting 17:09:18 Cool. 17:09:28 google for quajets iirc 17:09:53 hm 17:09:55 doesn't find it 17:09:57 Semiconductor fabrication scares me. It's so damn small. 17:10:25 http://lwn.net/Articles/270081/ 17:10:27 there 17:11:07 THINGS I HATE: 17:11:11 lwn.net requires fuckin' subscription. 17:11:18 Damn that crap. 17:11:19 ehird, that link didn't 17:11:22 I know. 17:11:23 ... 17:11:27 But I clicked other links on the sidebar. 17:11:30 And it asked me to pay. 17:11:33 And I irrited :-P 17:12:00 ehird, anyway I read parts of the thesis/paper/whatever, and it described testing on a system with a programmable MMU to test performance in case of two CPUs requested at once. Which is hard to test reliably. So the MMU was programmed to simulate it. 17:12:06 Cool 17:12:29 I wonder when we'll get 8-core chips from Intel 17:13:35 ehird, double-ended queues with one producer and one consumer updating at the same time, lockless. 17:13:54 AnMaster: sounds like Snake ;-) 17:14:04 ehird, as in the game snake? 17:14:06 yep 17:14:06 huh 17:14:18 care to explain that analogy? 17:14:25 every tick you lose a block at your end and get another at the start 17:14:33 consumer, producer, consumer, producer 17:14:39 hah 17:15:04 ehird, iirc they were wait-free too. 17:16:10 "The current implementation of Synthesis runs on two machines: the Quamachine and the Sony NEWS 1860 workstation. As described in section 1.3.4, the Quamachine is a home-brew, experimental 68030-based computer system designed to aid systems research and measurement. Its measurement facilities include an instruction counter, a memory reference counter, hardware program tracing, and a memory-mapped cloc 17:16:10 k with 20-nanosecond resolution. The processor can operate at any clock speed from 1 MHz up to 50 MHz. Normally it runs at 50 MHz. But by changing the processor speed and introducing waitstates into the main memory access, the Quamachine can closely emulate the performance characteristics of common workstations, simplifying measurements and comparisons." 17:16:11 :D 17:16:20 "The Quamachine also has special I/O devices that support digital music and audio signal processing: stereo 16-bit analog output, stereo 16-bit analog input, and a compact disc (CD) player digital interface." 17:16:29 compact disc (CD) 17:16:48 ehird, indeed. It is old. 17:17:02 AnMaster: I guess early 80s. 17:17:22 "The Sony NEWS 1860 is a commercially-available workstation with two 68030 processors. Its architecture is not symmetric. One processor is meant to be the main processor and the other is meant to be the I/O processor. Synthesis tries to treat it as if it were a symmetric multiprocessor, scheduling most tasks on either processor without preference, except those that require something that is accessible 17:17:22 from one processor and not the other. While this is not a large number of processors, it nevertheless helps demonstrate Synthesis multiprocessor support. But for measurement purposes of this chapter, only one processor -- the slower I/O processor -- was used. (With the kernel's multiprocessor support kept intact.)" 17:17:47 ehird, says 1992 on the front page 17:17:52 Wow. 17:17:56 Columbia University 17:17:56 1992 17:17:57 "compact disc (CD)" in 1992? 17:18:11 ehird, in a computer it certainly wasn't common 17:18:31 well, sure 17:18:40 'What do you mean a "change directory"?!" 17:18:43 Out of curiosity, is it specified what the frequency of its audio handling was? 17:18:46 s/"$/'/ 17:18:57 * AnMaster looks 17:19:12 44.1 kHz 16-bit signed little-endian PCM, I'd *assume*... 17:19:19 But you never know with older systems. ;) 17:19:50 http://valerieaurora.org/synthesis/SynthesisOS/toc.html 17:19:54 look for yourself 17:22:00 "The point is not to parade Synthesis speed nor justify the other's slowness. It is to point out that that speed is possible through careful thought and program structuring that provides just the right level of abstraction for each application. For example, one application that runs under Synthesis reads music data from the CD player, computes its Fourier transform (1024 point), and displays the resul 17:22:00 t in a window, all in real-time. It displays 88200 data points per second. This is impossible to do today using any other single-processor workstation and operating system because the abstractions provided are too expensive and just plain wrong for this particular task. This is true even though the newer Sparc-based workstations from SUN are more than four times faster then the machine running Synthes 17:22:01 is." 17:22:05 :D 17:22:41 also ehird: 17:22:43 "Worth noting is the cost of open. The simplest case, open /dev/null, takes 49 microseconds, of which about 70% are used to find the name in the directory structure and 30% for memory allocation and code synthesis to create the null read and write procedures. The additional 19 microseconds in opening /dev/tty come from generating more involved code to read and write the TTY device. Finally, opening a 17:22:43 file requires synthesizing more sophisticated code and buffer allocations, costing 17 additional microseconds." 17:22:54 49 microseconds to open /dev/null. 17:22:55 Sweet. 17:23:09 ehird, it was fast compared to mainstream then 17:23:46 ehird, check "7.2.2 Comparing Window Systems" 17:24:09 ehird: That's 50 clock cycles, I think. :p 17:25:15 AnMaster: It cites GEB! 17:25:20 ehird, where? 17:25:25 "The simplification in applications programming that occurs using this scheduler cannot be overstated. One no longer needs to worry about assigning priorities to jobs, or of carefully crafting the inner loops so that everything is executed frequently enough. For example, in Synthesis, reading from the CD player is no different than reading from any other device or file. Simply open "/dev/cd" and read 17:25:25 from it. To listen to the CD player, one could use the program in Figure 6.7. The scheduler FLL keeps the data flowing smoothly at the 44.1 KHz sampling rate -- 176 kilobytes per second for each channel -- regardless of how many CPU-intensive jobs might be executing in the background." 17:25:36 it uses feedback based scheduler 17:25:43 uses a* 17:25:44 AnMaster: on the page 17:25:51 ehird, which chapter 17:26:04 http://valerieaurora.org/synthesis/SynthesisOS/ch7.html 17:26:15 ok. Where on the page. 17:26:19 AnMaster: Somehow, I find it hard to find that impressive. 17:26:29 pikhq, by today's standards yes 17:26:31 AnMaster: grep Escher 17:26:54 ^style 17:26:59 oh wait 17:27:00 ehird, right 17:27:02 no fungot!!! :(( 17:27:08 fizzie: 17:27:09 fizzie, where is fungot! 17:27:18 ‽ 17:27:24 Probably because right now I'm decoding an 823 kilobit stream with a 44.1 kHz sampling rate to 16-bit PCM, converting it to 48 kHz sampling rate, and handing it to ALSA. :p 17:27:44 pikhq, could you do that on a CPU running at 25 MHz. 17:28:07 pikhq, with none of the advanced pipelining and branch prediction and so on 17:28:10 * pikhq wonders what the clock speed is on his Sansa... 17:28:19 Sansa? 17:28:25 Oh, right, it was that orwell.freenode.net buggery. It might be up by now. 17:28:40 fizzie, can't you use the round robin dns 17:28:46 MP3 player. 17:28:49 Running Rockbox. 17:28:56 pikhq, "rockbox"? 17:29:00 AnMaster: fungot doesn't do DNS. :p 17:29:03 AnMaster: Rockbox. 17:29:09 It's an alternative OS for music players. 17:29:09 fizzie, it could, with SCKE 17:29:14 Including the iPod, Rio Karma, ... 17:29:14 ah 17:29:18 It supports FLAC and stuff. 17:29:20 Quite nice. 17:29:24 FOSS. 17:29:35 anyway. It is not a general purpose OS. 17:29:36 AnMaster: I didn't want to depend on SCKE, so it takes an IP address as a parameter. (Although I ended up using SCKE anyway, for the currently-under-construction http support.) 17:29:46 AnMaster: Doom was ported to Rockbox. 17:29:50 It's general-purpose enough. 17:29:56 -!- fungot has joined. 17:30:05 It does multitasking, too. 17:30:11 ehird, ok, that still doesn't make the device a general purpose computer though! 17:30:13 I'm hoping no-one is building any mission-critical systems on fungot's availability, anyway. 17:30:15 fizzie: and you kill the nice man? call/ cc using only lambda. in general if you want thing to move half as far as i know, 17:30:15 And MPEG2 playing. 17:30:20 AnMaster: They use ARM, I think. 17:30:37 Seems its clock speed goes from 24 to 80 MHz on-demand. 17:30:40 And have screens, etc; some even coloured. 17:30:50 And butans. 17:31:15 It's also got a GB emulator... 17:31:15 still doesn't make it a general purpose device. And: Is it a full UNIX OS? 17:31:26 No, it's not a UNIX. 17:31:41 It's a different sort of general-purpose multitasking OS. 17:31:45 which is what they are comparing Synthesis against there. SunOS 3 iirc 17:31:55 Rockbox is a general purpose OS running on quite powerful general-purpose hardware with lots of I/O. 17:32:26 and you have fast storage on an mp3 player 17:32:43 You do? 17:32:47 It's just a flash drive. 17:32:57 ... Which is a moot point, since a CD drive is fast enough to play CDs. :p 17:33:40 with or without buffering. As far as I understand it. Synthesis didn't buffer that audio much. 17:34:31 Well, it probably didn't have the RAM handy for large buffers. 17:35:06 looking at the code it seems to have a 100 byte buffer. 17:36:31 These programs can be connected together in a pipeline to perform more complex sound processing functions, in a similar way that text filters in Unix can be cascaded using the shell's "--" notation. <-- huh? Doesn't it mean | 17:39:09 AnMaster: typographical limitations. 17:39:13 -- is sideways | 17:39:17 hm 17:44:56 — is sideways | 17:48:28 well yes 17:48:39 but -- is poor man's — 17:50:03 Deewiant, is — ASCII? 17:51:27 There's just the strange hybrid "hyphen-minus" dash in ASCII, none of the fancy ones. 17:51:45 -!- tombom has joined. 17:54:13 what about that broken | char 17:54:16 that's -- sideways :-P 17:54:20 well, with a lil' ridge 17:56:30 Ah, the broken bar. That's still non-ascii, though. (But it is in latin-1, which is perhaps a bit unexpectadinous. It doesn't seem all that useful.) 17:56:50 -!- pikhq has quit ("Back in a flash"). 17:57:10 besides, "is — ASCII?" is silly 17:57:12 because | is ascii 17:57:18 so evidently if they can't type | they're not using ascii 17:57:22 prolly a typewriter 17:57:25 i guess 17:58:05 Unicode name for | is a boring "VERTICAL LINE", while ¦ is the "BROKEN BAR". 17:59:10 Though Unicode naming is a bit stuffy anyway. They've opted to call / and \ the "solidus" and "reverse solidus" instead of slash/backslash. 18:01:49 "slash" was the name in Unicode 1.0. I wonder what sort of committee discussions there were when they decided to rename it to solidus. (That gucharmap tool also lists "slash" and "virgule" as aliases, but I'm not sure where it's getting those from.) 18:02:20 "How do I send commands to my IRC client? Just type a VIRGULE in front of the command." 18:02:29 :-D 18:03:15 http colon virgule virgule virgulefullstop full stop org 18:04:29 http two-spot change change changespot spot org. 18:04:34 To use the INTERCAL names. 18:05:38 At least according to first google-hit e2 page; I'm not quite sure about the reliability there. 18:06:08 fizzie: e2's like 10x more infallable than wikipedia because it's just from one reliable source 18:06:48 slat, says the manual. Though the e2 page lists / twice. 18:12:20 Right, "change" is the "c overstrike /" thing, they've just mangled the e2 page. Well, that makes more sense anyway. (Though one has to wonder why a slat and not a spike, since ¢ has a vertical line in it.) Still, even "http two-spot slat slat slatspot spot org" has certain charm. 18:12:21 Pros: very fast cpu 18:12:21 Cons: price and the company who makes it 18:12:22 Other Thoughts: stop and think seriously think about where intel gets their new technology from............... AMD. Intergrated memory controller and 64 bit technology both comes from AMD so for those who bash said company well your r-tarded. AMD holds the patents on the new Technology Intel uses and intel is trying to cancel AMD's right to make x86 cpu's so that means AMD pulls those rights from Intel so all of you who jumped aboard the i7 boat will sin 18:12:27 k because no one will support updates so good luck 18:12:29 Ah, kooks. 18:12:42 fizzie: cent is c/ in some typographical contexts 18:12:45 c| is quite modern i think 18:12:54 also, slatspot is sort of like a spoonerism of slashdot 18:12:59 Can be; I'm quite modern, I wouldn't know. 18:13:31 "-- the cent sign, a lower-case letter c pierced top to bottom by a forward slash or a vertical line --" 18:13:36 Okays. 18:13:47 oooh! 18:13:51 the i7 975 will have 1mb of l2 18:13:53 me likey 18:14:03 ...130 watts though... 18:14:09 hmm 18:14:16 it seems the 1MB thing was lying 18:14:19 they're multiplying it by cores 18:14:20 since it's per-core 18:14:40 -!- pikhq has joined. 18:16:37 hi pikhq 18:24:59 -!- pikhq has quit ("leaving"). 18:26:00 -!- pikhq has joined. 18:39:02 ehird: WTF @ cache size 18:39:16 GregorR: It's 256KB *per each core*. 18:39:37 GregorR: And there's an 8MB L3 cache. 18:39:41 (shared between all cores) 18:40:33 Bleh, the inconsistent labeling of L2 and L3 confuses me ... 18:40:43 Well, the L3 cache is shared and the L2 isn't. 18:40:45 Big difference :-P 18:41:58 Core 2 Quad has (IIRC) a 4MB cache, which is divided into two 2MB caches each of which are shared between two cores, or something like that.. 18:42:29 the yorkfield xe has 2 x 6MB L2s 18:42:41 (QX9650) 18:42:46 rather confuzzling 18:43:03 Well, it's something like that. 18:43:17 Anyway, the point is that 256KB/core L2 seems awfully low for Intel. 18:43:51 It is a lot smaller than in recent times. 18:43:58 GregorR: but the L2 is faster 18:44:01 and you have the L3 too 18:44:07 so it's just shifting the boundaries a bit 18:44:25 Yeah, but having an L3 shared amongst more cores is stupid, the whole problem is that shared memory doesn't scale :P 18:44:58 It also leads to a security vulnerability, but Nehalem is worth it ;-) 18:45:18 Yummy integrated memory controller... Yummy DDR3... 18:47:48 !slashes http://oerjan.nvg.org/esoteric/slashes/crashtest.sss 18:48:20 ic, it must be just this nvg machine 18:48:36 ? 18:48:40 or possibly the old perl version 18:48:54 !sh perl --version 18:49:03 5.8.8 here 18:49:17 !help 18:49:18 Supported commands: addinterp bf_txtgen daemon daemons delinterp fyb help info kill userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge ook pbrain perl qbf rail rhotor rot13 sadol sceql sh show slashes test trigger udage01 underload unlambda whirl yodawg 18:49:23 EgoBot sez 5.10.0 18:49:42 (Codu runs Debian Testing) 18:49:44 i'll make a file twice the size and retest, just in case 18:50:23 !slashes http://oerjan.nvg.org/esoteric/slashes/crashtest.sss 18:50:25 Complex regular subexpression recursion limit (32766) exceeded at /tmp/input.19081 line 10, <> line 516. 18:50:30 aha 18:51:30 ok a different error (not segmentation fault), but still annoying 18:54:11 so how does one optimize (s!^/((?:[^/\\]|\\.)*)/((?:[^/\\]|\\.)*)/!!s) further :( 18:54:54 By killing oneself. 18:55:52 oerjan: don't use regexs? 18:55:53 as in 18:55:58 yeah. 18:56:56 well that _should_ be a finite automaton needing no recursion 18:57:06 But isn't. 18:58:29 You know, I wonder what esolang to create 18:58:33 I want it to be based on painting 18:58:34 wow, the 975 will only cost $999 18:58:35 how cheep 18:58:45 as in, you know, mixing colors and stuff 18:59:23 add (R/G/B/W/K) x% - adds X % of the color to the brush 18:59:36 each color can have a defined value 18:59:40 R, G, and B just add 18:59:46 White adds twice the amount it stores 18:59:51 Black subtracts the amount it stores 19:00:12 set COLOR x , output brush, get brush... 19:01:13 while BRUSH( (R(ed)/G(reen)/B(lue)/A(ll)) ) = x then... 19:01:30 So I have an equalivment of [], +/-, , and . 19:01:35 but sadly I don't have infinite memory 19:01:42 oh! store 1 - stores brush to slot 1 19:01:50 acquire 1 - gets the value of 1 19:02:49 water - waters the brush, I.E. clears it 19:03:20 also, output brush does not clear it 19:06:40 oh wait 19:06:44 acquire 1 and get 1 add themselves 19:07:31 oh, and not watering the brush after finishing is an error 19:08:09 http://rafb.net/p/Rf4Tix42.html 19:08:12 check it out 19:08:16 47 lines of code for an hello world 19:08:57 !perl print $^V, "\n"; 19:08:58 v5.10.0 19:09:03 There's that. 19:09:20 what do you think of this esolang I CAN POSSIBLY IMPLEMENT 19:09:39 (not on a C64) 19:10:23 is it good or does it suck 19:10:28 or is there an exact same language 19:10:46 and yes, the output can be represented as colors 19:10:52 you just interpret RGB separately 19:10:55 and then take the values 19:10:59 and output them as a pixel 19:15:25 -.- 19:15:38 what? 19:21:28 so how does one optimize (s!^/((?:[^/\\]|\\.)*)/((?:[^/\\]|\\.)*)/!!s) further :( <-- how did you end up with that one 19:21:34 and 19:21:37 what is it supposed to do 19:21:59 there is too much escaped stuff for me to be able to parse it without more work that I'm willing to spend on it. 19:25:54 It matches /foo/bar/ where both foo and bar are sequences of either something else than / or \, or \ followed by any character. 19:26:23 So basically it removes a ///-language expression from the start of the string, and sets $1 and $2 to the two parts of it. 19:29:42 I'm not sure how optimizable it is, although you can (a) clarify it a bit with something like $body = qr{(?:[^/\\]|\\.)*}s after which you can write it as s!^/($body)/($body)/!!... or (b) obfuscate it a bit by referring to the first parenthesized subexpression in the other with something like s!^/((?:[^/\\]|\\.)*)/((?1))/!!s. 19:29:50 why use a regex to do it... 19:30:08 Because regular expressions are awesome, of course. 19:30:12 um 19:30:36 Some people, when confronted with a problem, think ``I know, I'll use regular expressions.'' Now they have two problems. -- jwz 19:31:28 That particular one is not such a terrible abuse, though. 19:32:13 Some people, when confronted with a joke, think ``I know, I'll use that Jamie Zawinski quote.'' Now they have a douchebag problem. -- jwz 19:32:21 fizzie, that jwz quote was actually in the description for http://www.jwz.org/hacks/gdb-highlight.el (not found in that file, but in http://www.jwz.org/hacks/marginal.html) 19:32:36 so that is rather ironic too 19:33:02 And anyway awesome is what they are. It's like a finite state machine cleverly disguised as a one line of curious scratches. 19:33:26 "like"? 19:33:40 * AnMaster writes down that line for future quoting 19:34:57 and yes, regex are awesome, as a DSL for searching text, or doing non-trivial (but still not complex) text replacements. 19:34:57 AnMaster: i wrote the /// interpreter in perl, of _course_ i used regexes 19:35:08 Plus, doing a regex across two lines tends to be a PITA 19:35:38 that's what that s at the end is for 19:36:03 The "how to optimize" question strongly depends on what you're optimizing; character count or clarity or what. 19:36:29 what if I want to grep for "while(\*p) p\+=[0-9]+;\nwhile(\*p) p\+=[0-9]+;", something I wanted to do recently 19:36:32 that is non-trivial 19:36:54 a grep limitation rather than regex limitation of course 19:37:08 but a lot of the tools with regex are line based. 19:37:26 fizzie: erm, i'm trying to optimize its ability not to crash on >= 50000 byte strings :D 19:37:37 then you don't want a regex. 19:37:49 *sigh* 19:38:32 Oh. I wouldn't have thought that particular one would be very trying for the regex-exxxecutor. 19:38:47 how many x 19:38:48 ... 19:38:57 As many as it needs. 19:39:03 good answer. 19:39:04 triple x 19:39:05 Depends on how exxxxxtreme you are. 19:39:12 fizzie, have an eggscellent day! 19:39:13 it represents your computer's temperature 19:39:17 uh 19:39:19 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXtreme 19:39:21 ignore that it sucks 19:39:27 Pronounced: chhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhstreme 19:39:29 !slashes http://oerjan.nvg.org/esoteric/slashes/crashtest.sss 19:39:32 ehird, the e got lost 19:39:32 there 19:39:34 Complex regular subexpression recursion limit (32766) exceeded at /tmp/input.19351 line 10, <> line 516. 19:39:38 AnMaster: No, it's Xtreme. 19:39:39 ^ fizzie 19:39:44 ehird, oh. Buzzword 19:39:47 right :P 19:39:47 http://www.google.com/search?client=safari&rls=en-us&q=xtreme&ie=UTF-8&oe=UTF-8 19:39:52 regex are in general not very efficient. 19:39:53 Buxworx. 19:40:01 Pronounced buchsworch, where ch is like Bach. 19:40:12 Strange crashey. 19:40:38 that google's code search does allow regex is strange. 19:40:40 very strange 19:40:45 strange? 19:40:48 you mean FUCKING AWESOME. 19:40:54 ehird, well yes. 19:40:56 but strange too 19:40:56 besides, they aren't full regexps, are they? 19:41:00 maybe 19:41:04 haven't checked what dialect 19:41:06 no more powerful than google's (x OR y) OR z 19:41:07 etc 19:41:10 and this nvg machine gave a different crash (Segmentation fault) 19:41:19 "Google Code Search supports POSIX extended regular expression syntax, excluding backreferences, collating elements, and collation classes. [...]" 19:41:20 ehird, ^ 19:41:27 Awesome. 19:41:32 http://www.google.com/intl/en/help/faq_codesearch.html#regexp 19:41:40 Well, I don't know, maybe they just throw three machines at it every time you search. It can't be too popular of a search engine. 19:42:04 ehird, load would be very small compared to the load of normal google 19:42:11 Eggsactly. 19:42:17 Have an eggcellent day! 19:42:25 If it's Xtreme, feel good! 19:42:37 "We also support the following Perl extensions: [list removed to not spam]" 19:42:42 let me try that ?> thing 19:42:44 but 19:42:49 those are trivial extensions 19:42:53 So? 19:43:27 bah :( 19:43:39 oerjan: rewrite it in haskell with PURITY 19:43:41 and TAIL CALLS 19:44:13 oerjan, is there no other implementation of /// ? 19:44:20 oerjan: Fine, I will. 19:44:21 Happy? 19:44:23 don't think so... 19:44:25 You're making me code. 19:44:27 oerjan, ah 19:44:33 oerjan: HAPPY NOW‽‽‽ 19:44:35 ehird, Since you mention it.... 19:44:35 ARGH 19:44:52 AND YOU WILL BE FORCED TO USE MY IMPLEMENTBWAHAHAHAH 19:44:52 A 19:44:54 ehird, what happened with that befunge interpreter in haskell you were working on 19:44:56 no, because to usefully _use_ it i'll have to finally install ghc... :D 19:44:56 -TION 19:45:01 AnMaster: AIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE!!!!!!!!!!!!!!!!!!!!!! 19:45:06 oerjan: just grab a binary 19:45:09 ehird, wut? 19:45:24 ehird, are you still working on it? 19:45:28 AnMaster: Yes. Dormantly. 19:45:32 ah 19:45:35 oerjan: on unix, installing the binary is just "make install". on Windows, I think they have a fancy installer 19:46:17 I'm guessing it fails when it's trying to extend that (?:[^/\\]|\\.) pattern modified with *, since there's a lot of possibilities-except-not-really for backtracking there. You might actually try something like (?:(?>[^/\\]*)|\\.)* -- at least that should match long strings of non-escaped characters as a single blorb. 19:46:51 Though that's just a minor help, I'm guessing any reasonable /// program has quite a lot of escaped stuff in it. 19:47:10 er i just tried (?>[^/\\]*|\\.)* 19:47:16 didn't help here 19:47:20 although... 19:47:25 Yes, but that's different. 19:47:32 What's the defined behaviour of 19:47:34 /a 19:47:36 undefined? 19:47:37 I'm not sure how different, though. 19:47:41 /a? 19:47:47 where 19:47:53 in Slashes. 19:48:01 hm 19:48:03 fizzie: oh, and long strings of non-escaped characters are useful for what i'm currently doing 19:48:13 ehird, does it have that? 19:48:20 *useless 19:48:26 If it's a /, characters are taken up to the next / 19:48:29 how the heck did i mistype that 19:48:31 —[[slashes]] 19:49:01 ehird: don't know but my interpreter just gives up then 19:49:05 and quits 19:49:06 yeah, so will mine 19:49:37 fizzie: er, i miscopied you 19:49:55 i'm trying (s!^/((?>[^/\\]|\\.)*)/((?>[^/\\]|\\.)*)/!!s) 19:50:00 and that didn't help here 19:50:22 !delinterp slashes 19:50:22 Interpreter slashes deleted. 19:50:35 !help 19:50:36 Supported commands: addinterp bf_txtgen daemon daemons delinterp fyb help info kill userinterps 1l 2l adjust asm axo bch bct befunge befunge98 bf bf16 bf32 bf8 bfbignum boolfuck c chiqrsx9p choo cintercal clcintercal cxx dimensifuck echo forth glass glypho hello kipple lambda lazyk linguine malbolge ook pbrain perl qbf rail rhotor rot13 sadol sceql sh show test trigger udage01 underload unlambda whirl yodawg 19:50:39 !addinterp slashes perl http://oerjan.nvg.org/esoteric/slashes/slashes.pl 19:50:39 Interpreter slashes installed. 19:50:48 !userinterps 19:50:48 Installed user interpreters: bct bfbignum chiqrsx9p choo echo hello ook rot13 slashes yodawg 19:50:49 !slashes http://oerjan.nvg.org/esoteric/slashes/crashtest.sss 19:50:50 Complex regular subexpression recursion limit (32766) exceeded at /tmp/input.19509 line 16, <> line 516. 19:50:53 !perl help 19:50:54 nah 19:51:00 still the same 19:51:00 !perl print hi 19:51:04 no? 19:51:16 !perl print "hi" 19:51:16 hi 19:51:16 !perl print "hi" 19:51:17 I don't think it should help in that case, since it's just matching that single character as an independent blorb. But I guess my version won't necessarily help either. 19:51:17 hi 19:51:17 ah 19:51:39 oerjan, does it work when run on your own computer 19:52:22 i don't have perl there 19:52:26 i run it on nvg 19:52:38 (shell account) 19:52:40 what sort of computer doesn't have perl these days... 19:52:46 a windows one 19:52:47 oerjan: Anyway, there are experimental-and-subject-to-change "Special Backtracking Control Verbs" in (at least) 5.10; if you write (*PRUNE) somewhere it should clear the backtracking tree at that point; I'm not sure if it helps with that recursion limit, though. And I don't know if that's in 5.8. 19:52:48 aha 19:52:50 true 19:52:51 which oerjan uses 19:52:58 he also uses IE, just so you can get more riled up 19:53:01 activestate perl sounds familiar for windows 19:54:02 (dest,xs'') = toSlash xs'' 19:54:06 count of 's fail 19:54:20 ehird, I'm pretty sure I remember oerjan using ubuntu for a while? Or was it oklopol 19:54:28 oklopol 19:54:30 aha 19:54:38 oerjan: the example program, 19:54:38 \ 19:54:39 /foo 19:54:41 /foo/bar 19:54:43 how does execution go there? 19:54:50 replace foo\n with foo 19:54:53 and, uh... 19:55:08 waitasecond 19:55:13 "If it's not / or \, it's printed." 19:55:15 it's then removed, right? 19:55:20 the only way I can see that working is with newlines being stripped 19:55:29 but I must be wrong about that 19:55:30 first it prints a newline 19:55:32 * ehird tries the / world! world!/Hello,/ world! world! world! program anyway 19:55:37 simpler to understand 19:55:45 *Main> run "/ world! world!/Hello,/ world! world! world!" 19:55:45 (" world! world!","Hello,"," world! world! world!") 19:55:48 -!- M0ny has joined. 19:55:51 easy peasy lemon squeezey 19:56:01 ehird, not exactly right! 19:56:06 it isn't executing 19:56:12 ah 19:56:12 it's just print-debugging 19:56:13 !slashes / world! world!/Hello,/ world! world! world! 19:56:13 Hello, world! 19:56:15 just tokenising 19:56:17 or whatever 19:56:21 let (source,xs') = toSlash xs 19:56:22 (dest,xs'') = toSlash xs' 19:56:23 wrong word for it 19:56:23 in print (source,dest,xs'') 19:56:27 parsing, pretty much 19:56:31 yeah 19:56:42 ehird, what bit in that handles the \ 19:56:49 ehird: also can you make your interp more efficient by not backtracking all the way after a match? 19:57:02 AnMaster: toSlash, and also run 19:57:06 the perl one obviously redoes the whole string 19:57:13 oerjan: isn't that required? 19:57:22 Hello, world! 19:57:25 -!- KingOfKarlsruhe has joined. 19:57:29 ehird: i mean by not going further than necessary 19:57:34 -!- tombom_2 has joined. 19:57:45 oerjan: esplain? 19:58:15 say, /foo/o/abcdeffffoooooo 19:58:29 you can throw away everything up to the e 19:58:37 ooh, you're right 19:58:40 oerjan: throw away is a bit strong 19:58:42 it needs to be output 19:58:55 oerjan: what about 19:59:02 and after the first match you don't need to go back to the very first f 19:59:03 /foo/o//bar/quux/foo 19:59:08 it gets a bit hairy 19:59:13 /throw away/put in the already done list/throw away 19:59:14 :P 19:59:24 (right?) 19:59:38 -> /bar/quuux/o 19:59:41 !slashes /foo/o//bar/quux/foo 19:59:42 o 19:59:55 !slashes /foo/foo/bar 19:59:55 bar 19:59:57 um 20:00:03 oerjan: but, /bar/quuux/o isn't rewinding 20:00:06 it's the bad case you said 20:00:10 oerjan: so, check for / and don't do it? 20:00:14 that sounds like a hack 20:00:21 if you give some more precise semantics it's done 20:00:22 \ 20:00:22 /foo 20:00:22 /foo/bar 20:00:25 I wonder too 20:00:33 ehird: i've pondered it a bit and doing it perfectly may be awkward 20:00:51 foo/foo/bar 20:00:53 err 20:00:57 !slashes foo/foo/bar 20:00:58 foo 20:01:01 but you can (1) check initial characters (2) not backtrack more than the length of the matched string 20:01:04 oerjan: how about "output-with-escapes and throw away everything up to either: the first unescaped / or the term we're looking for" 20:01:07 thought I had !slashes in front not 20:01:07 sorry 20:01:19 !slashes foo/foo/bar/quux 20:01:19 fooquux 20:01:26 !slashes foo/foo/bar/qufooux 20:01:27 fooqubarux 20:01:33 !slashes /foo//qufooux 20:01:33 quux 20:01:36 ehird: you cannot output until you are sure the match doesn't cause an infinite loop 20:01:38 right 20:01:47 oerjan: this sounds more and more ugly 20:01:53 still doesn't explain the multiline example that ehird pasted 20:02:23 AnMaster: let's use space instead of newline 20:02:30 \ /foo /foo/bar 20:02:45 output ' ' -> /foo /foo/bar 20:02:45 there's no "foo " in the program 20:02:47 oerjan: You don't have to backtrack in the Perl interpreter either: you can use pos($str) = x; to set the position where \G matches, and then nail your replacing regular expression with that. (Although the savings there might be more than offset by the overhead of having to "replace" everything from the \G point with itself.) 20:02:51 -> bar 20:02:57 indeed not 20:02:58 ah 20:03:02 so it's a silly example :P 20:04:13 oerjan: i'll implement without 20:04:14 and mod later 20:04:18 !slashes /foo/bar/foo 20:04:19 bar 20:04:19 that's just the expressive power of HASKOLI 20:04:22 !slashes /foo/b\\ar/foo 20:04:23 bar 20:04:25 !slashes /foo/b\ar/foo 20:04:25 bar 20:04:27 err 20:04:29 !slashes /foo/b\\ar/foo 20:04:29 bar 20:04:34 !slashes foo/foo/bar/foo 20:04:35 foobar 20:04:35 surely that is wrong 20:04:41 oerjan, ^ 20:04:55 !slashes /foo/b\\\\ar/foo 20:04:55 GregorR: You know how you were wanting C++->C compilation? llvm can do it. 20:04:55 bar 20:04:57 !slashes /foo/b\\\ar/foo 20:04:58 bar 20:05:01 !slashes /foo/b\\\\\\ar/foo 20:05:02 bar 20:05:05 llvm has a GCC frontend, and it can target C. 20:05:07 oerjan, sure that is correct? 20:05:20 it doesn't seem to be to me 20:05:28 eek 20:05:43 wow that was fun. Making oerjan say "eek" 20:05:50 ;P 20:06:02 EgoBot bug 20:06:13 oerjan, oh? 20:06:15 GregorR, ^ 20:06:16 bug 20:06:19 The resulting C code when compiled won't fully comply with the C++ ABI, but it's otherwise correct. 20:06:25 the last one prints b\ar here 20:06:51 !slashes /foo/b\\\\\\ar/foo the last one prints b\ar here <-- what? There are way more \ than that 20:06:52 /foo/b\\\\\\ar/foo -> b\\\ar 20:06:52 right 20:07:00 ah 20:07:02 true 20:07:25 !slashes \\\\\\\\ 20:07:25 \\ 20:07:34 !slashes /foo/b\\\\\\\\ar/foo 20:07:35 b\ar 20:07:37 hm 20:07:39 !slashes /foo/b\\\\\\\ar/foo 20:07:39 bar 20:07:40 !slashes /foo/b\\\\\\ar/foo 20:07:41 bar 20:07:44 clearly egobot does some unescaping of its own 20:07:45 !slashes /foo/b\\\\\ar/foo 20:07:45 bar 20:07:47 !slashes /foo/b\\\\ar/foo 20:07:48 bar 20:07:50 yeah 20:07:55 it is a bug still 20:07:57 in EgoBot 20:08:09 !slashes \ 20:08:13 !slashes \\ 20:08:16 ok 20:08:18 that is wrong 20:08:24 that should output a \ 20:08:27 as far as I can see 20:08:40 !slashes /foo/b\/ar/foo 20:08:40 b 20:08:46 err 20:08:47 wut 20:08:52 !slashes /foo/b\\\/ar/foo 20:08:53 b/ar 20:08:56 ah 20:09:02 !slashes /foo/b\\\/a\\\/r/foo 20:09:02 b/a/r 20:09:03 the interpreter gives up if the code ends with an incomplete command such as \ 20:09:44 !slashes /a/A/b/B/r/R/foo/b\\\/a\\\/r/foo 20:09:45 bRb/A/r 20:09:47 no 20:09:54 that is wrong oerjan I think 20:10:03 -!- tombom_2 has left (?). 20:10:07 unless I'm mistaken 20:10:08 -!- tombom_2 has joined. 20:10:15 !slashes /a/A/b/B/r/R/foo/bar/foo 20:10:15 bRbAr 20:10:25 assuming EgoBot decodes that to /a/A/b/B/r/R/foo/b\/a\/r/foo 20:10:35 before sending it to /// 20:10:36 wait hm 20:10:45 !slashes /a/A//b/B//r/R/foo/bar/foo 20:10:46 foo 20:10:50 no. Not that either 20:11:04 I want upper case BAR output 20:11:12 !slashes /a/A//b/B//r/R//foo/bar/foo 20:11:13 BAR 20:11:14 aha 20:11:23 -> /foo/B\/A\/R/foo 20:11:24 oerjan: I almost have a working slashes 20:11:28 with only one butt-ugly function! 20:11:30 oerjan, yeah I see now 20:12:22 *Main> replace "abc" "def" "abcdef" 20:12:22 "defabc" 20:12:24 LOL 20:12:26 WAT 20:12:34 *Main> replace "abc" "def" "abcxxx" 20:12:34 "defabc" 20:12:49 for a certain value of "almost" 20:12:56 * ehird attempts to clear head 20:13:05 * ehird cuts out replace function, writes better one 20:14:08 -!- olsner has quit ("Leaving"). 20:14:55 oerjan: the basic problem is that "replace the first instance of this with this or do nothing if there isn't one" is not an intuitive operation 20:15:13 you can say that 20:15:41 anyway i have an idea that you might use a zipper 20:16:06 as in, pass the characters already checked in reverse 20:16:25 easy to backtrack a short length then 20:17:18 replace _ _ [] = []; r what with s@(x:xs) = let (a,b) = splitAt (length what) s in if a == what then with ++ b else x : replace what with xs 20:17:21 *Main> replace "abc" "def" "abcdef" 20:17:21 "defdef" 20:17:21 Or something. 20:17:22 *Main> replace "abc" "def" "aaabcdef" 20:17:24 "defdef" 20:17:26 *Main> replace "abc" "def" "" 20:17:28 "" 20:17:30 score 20:17:32 Deewiant: 20:17:32 ehird: Fail. 20:17:34 replace :: String -> String -> String -> String 20:17:36 replace [] r ys = r ++ ys 20:17:38 replace _ _ [] = [] 20:17:40 replace s@(x:xs) r (y:ys) 20:17:42 | x == y = replace xs r ys 20:17:44 | otherwise = replace s r ys 20:17:46 much simpler 20:17:48 what 20:17:50 how is that fail 20:17:51 ehird: otherwise = y : replace s r ys 20:17:55 oh 20:17:57 true enough :-) 20:18:08 Deewiant: it also doesn't handle this 20:18:16 *Main> replace "abc" "def" "abx" 20:18:16 "" 20:18:21 i knew it couldn't be so trivial 20:18:28 Shouldn't that otherwise handle it 20:18:40 Deewiant: no, read it; it chops off the first two chars which do match 20:18:41 Just use mine :-P 20:18:45 but then the last one doesn't match, oshi- 20:18:47 and is yours efficient? 20:18:55 No, you should precompute length what 20:19:09 ressir 20:19:10 *yessir 20:19:11 Other than that; efficient enough. 20:19:14 :-P 20:20:46 Alternatively, if what could be infinite, do something like; replace what with s@(x:xs) = if what `isPrefixOf` s then with ++ drop (length what) s else x : replace what with xs 20:21:22 erm if what could be infinite isPrefixOf is not going to finish 20:21:32 Yes it will 20:21:34 When s runs out 20:21:51 *Main> replace "abc" "def" "abxabcdef" 20:21:51 "abxdefdef" 20:21:52 Kay. 20:22:00 repeat 1 `isPrefixOf` [] --> False 20:22:18 *Main> run "/ world! world!/Hello,/ world! world! world!" 20:22:18 Hello, world!*Main> 20:22:20 Fuck yeah! 20:22:37 Now, oerjan, I will run 99bob, then your simpler counter. 20:22:41 Then, I will implement your efficiency thing. 20:23:16 oerjan: Epic unsuccess. 20:23:21 heh 20:23:32 oerjan: You CAN replace inside future ///s, right? 20:23:38 I get: 20:23:38 certainly 20:23:38 *Main> run prog 20:23:39 99 bottles of beer on the wall, 20:23:41 99 bottles of beer 20:23:43 Take one down, pass it around 20:23:45 98 bottles of beer on the wall. 20:23:47 98#98$97%97#97$96%96#96$95%95#95$94%94#94$93%93#93$92%92#92$91%91#91$90%90#90$89%89#89$88%88#88$87%87#87] 20:23:50 [more crap] 20:23:52 then the 1 verse 20:24:15 you are not redoing the replacement after success... 20:24:20 Ah. 20:24:21 Ah. 20:24:21 it would seem 20:24:25 Yes, yes that would be it. 20:25:16 findFixPoint :: (Eq a) => (a -> a) -> a -> a 20:25:17 findFixPoint f x 20:25:18 | x == x' = x 20:25:20 | otherwise = findFixPoint f x' 20:25:22 where x' = f x 20:25:24 A trusty helper. 20:25:32 It wooooooooooooooooooooooooorks! 20:25:38 not very efficient though 20:25:43 What? 20:25:45 Whyever not? 20:25:55 oerjan: it outputs all at once; I wonder why? 20:26:00 prob'ly buf'ring 20:26:00 that findFixPoint will check all through 20:26:08 and, wat? 20:26:18 findFixPoint = until =<< ap (==) 20:26:25 Deewiant: i'm no obfuscator 20:26:52 findFixPoint f = until (ap (==) f) f 20:26:59 oerjan: does the 99bob program output all at once? 20:26:59 findFixPoint f = until (\x -> x == f x) f 20:27:01 Pick one :-P 20:27:18 hm more or less i should think 20:27:29 it would do all the substitutions early 20:27:54 right 20:28:00 oerjan: same with thue-morse? 20:28:08 ehird: that findFixPoint is going to be inefficient as the changes come later and later in the string 20:28:13 ah 20:28:14 findFixPoint f = fmap snd . find (uncurry (==)) . (zip `ap` tail) . iterate f 20:28:14 right 20:28:21 oerjan: but that's just your optimization; I can fix that later. 20:28:30 and what, oerjan, about infinite loops? 20:28:36 oh, you can just check if dest contains source 20:28:41 oerjan: mmnope 20:28:44 oerjan: take, for example 20:28:46 * oerjan looks up thue-morse 20:29:15 i was wondering if you could have an infinite loop without strict containment 20:29:15 oerjan: /axx/ax/aaxxx → aaxx 20:29:21 your don't-backtrack doesn't handle that 20:29:29 huh? 20:29:31 also, do these examples have newlines at the end? 20:29:40 oerjan: they handle → aaxx 20:29:42 but then don't backtrack 20:29:45 i didn't say you _shouldn't_ backtrack 20:29:45 and so mixx the extra axx replacement 20:29:46 You can backtrack a limited amount 20:29:55 You don't need to backtrack all the way, though 20:29:57 i said you shouldn't backtrack all the way 20:30:02 oerjan: your counter works 20:30:09 yay 20:30:12 oerjan: it gets slower every time, of course 20:30:20 oerjan: do you mean: 20:30:25 only backtrack to the start of the replacement? 20:30:46 backtrack to start of replacement - length of replaced string 20:30:59 + 1, i think 20:31:05 okeydokey 20:31:19 oerjan: er minus length of replaced string? 20:31:25 so if you start replacing at 5, and replace with a 3 char string 20:31:25 and that can backtrack further if there is a match there 20:31:27 you go back to 2? 20:31:51 the string that is replaced from 20:32:20 excuse me? 20:32:42 /abc/cdefg/ababcde 20:32:59 *Main> run "/abc/cdefg/ababcde/" 20:32:59 cdefgdefgde*** Exception: slashes.hs:(31,0)-(33,23): Non-exhaustive patterns in function toSlash 20:33:01 nice typo handling 20:33:16 -> abcdefgde -> cdefgdefgde 20:33:36 toSlash [] = error "OHGAHGHGHAGH WHAT DOES IT MEAN!! AN ARMY OF SNEEZING WANGS STALKS MY NIGHTMARE" 20:33:41 abc has length 3, so you only need to go back 3-1 20:33:51 Hmm, same error. 20:34:01 wait what 20:34:02 toSlash :: String -> (String,String) 20:34:03 toSlash [] = error "OHGAHGHGHAGH WHAT DOES IT MEAN!! AN ARMY OF SNEEZING WANGS STALKS MY NIGHTMARE" 20:34:06 toSlash ('/':xs) = ("",xs) 20:34:08 toSlash ('\\':x:xs) = is x xs -- curses! foiled again! 20:34:10 toSlash (x:xs) = is x xs 20:34:12 i see no inexhaustive patterns 20:34:14 *non-exhaustive 20:34:54 indeed not 20:34:58 owell 20:34:58 oh 20:35:01 I saved to the wrong place 20:35:02 kekekeke 20:35:16 i was wondering why it accepted my invalid syntax too 20:36:09 -!- psygnisfive has quit (Remote closed the connection). 20:36:18 oerjan: okay, so here's the rule 20:36:38 for further tests, http://oerjan.nvg.org/esoteric/slashes/counter{1,3,4}.sss 20:36:41 After making a replacement, backtrack to position start_of_replacement - length_of_replacement 20:36:45 oerjan: yesno? 20:36:49 (2 is the simple one you already tried) 20:37:09 ehird: terminology confusion 20:37:12 -!- Sgeo has joined. 20:37:22 what do you call the first and second arguments of /// ? 20:37:30 Source, replacement. 20:37:37 but 20:37:38 Replacee, replaceand 20:37:41 length_of_source 20:37:45 oerjan: 20:37:45 Quick Linux question: If I make /home unwritable and owned by root, does that make it as secure as a LiveCD 20:37:54 Sgeo: lol, no. 20:37:57 also, + 1 at end 20:38:11 oerjan: clearer: 20:38:23 After making a replacement, backtrack to position start_of_where_replacement_begins_in_string - length_of_replacement_used 20:38:30 + 1 20:38:37 nope, length_of_source_used 20:38:40 ah 20:39:18 ok, need to mod replace to tell me where the replacement begins :-P 20:39:27 !slashes /abc/cde/ababababcde 20:39:27 cdedededede 20:39:28 I'll just make it return (beforeReplacement,afterAndIncludingReplacement) 20:39:59 ehird, how so? 20:40:28 Is it at least close enough? 20:40:33 Sgeo: What you do to make it as secure as a LiveCD is to make your entire filesystem read-only and unioned with a RAM filesystem. 20:40:33 ehird: i repeat my suggestion to use a zipper 20:40:35 Sgeo: what are you trying to do 20:40:44 oerjan: I've never understood 'em. 20:40:46 (reverse of previous, remainder) 20:40:47 ;) 20:41:17 *Main> replace "abc" 3 "def" "xxabc" 20:41:17 ("xb","") 20:41:19 Er. 20:41:28 ehird, have a secure OS that I can use when I need to do something with sensitive information 20:41:30 ehird: let's say you've done the first match of that /abc/cde/ababababcde 20:41:42 Sgeo: you're 20, why are you handling FBI documents? 20:41:53 ehird, I'm handling my social security number 20:41:56 then your zipper state is then ("bababa", "cdede") 20:42:04 Sgeo: encrypt it with GPG, put it in ~. 20:42:04 done 20:42:16 Sgeo: also, you think that thing's secure? 20:42:21 err, you give it to like a thousand businesses 20:42:46 Better that than 1000 businesses and one hacker 20:42:57 what's the hacker going to do 20:42:58 ehird: You're only legally mandated to give it to, lessee... 20:43:03 give it to ANOTHER BUSINESS?! 20:43:05 The IRS, your employer... I think that's it. 20:43:06 oh woe! 20:43:11 pikhq: yeah, but in practice... 20:43:15 Maybe some other government agency that I'm forgetting. 20:43:19 also, your employer is still a huge leak 20:43:33 ehird, in every other instance, you can give out a fake one with no repercussions. 20:43:47 I already gave the college my real one 20:44:08 pikhq: OTOH, not many people do. 20:45:02 argh, why isn't thsi code working 20:45:04 is it because it hates me 20:45:06 -!- tombom_2 has left (?). 20:45:51 * AnMaster wonders why erlang think doing Node#bfn.extra#bfe_loop.input is a syntax error before the second # 20:46:32 * pikhq recommends 666-69-0666 20:46:41 ehird: oh i just realized something 20:46:48 \ 20:46:48 /foo 20:46:48 /foo/bar 20:46:53 is _not_ one example 20:46:56 it's three 20:46:59 o 20:47:05 :-D 20:47:10 each of which are an incomplete program which does nothing 20:47:14 *is 20:47:18 pikhq, if we ever go to the same college, and I end up using that.. 20:47:29 Sgeo: THEN THE WORLD WILL EXPLOOOOOOOOOOOOOODE!! 20:47:37 ((And turned into an adult-only area.)) 20:47:47 ((Where you will have to give proof of your adulthood. Or shut down your store!)) 20:47:54 I'm just thinking it could cause problems for the college 20:48:00 otoh, that could be fun 20:48:00 Sgeo: Better still, ask them which law requires that you give them your SSN. 20:48:20 Also, there are a few cases where two people have been assigned the same SSN. 20:48:26 oO 20:48:34 Wonder what Dubya's SSN is. 20:48:44 ....I only have 9GB free? 20:50:24 /abc/bcab/aabcc -> abcabc -> bcababc -> bcabbcab 20:50:29 not quite working 20:50:36 * ehird reads his replace function v e r y c a r e f u l l y 20:50:44 ehird: Dunno, but I know Nixon's. 567-68-0515. 20:50:52 pikhq: yeah 20:53:58 Deewiant: your function broke catastrophically when i modded it :< 20:54:07 replace :: String -> Int -> String -> String -> (String,String) 20:54:07 replace _ _ _ "" = ("","") 20:54:08 replace src srcLen dest s@(x:xs) = 20:54:08 Don't mismod it :-P 20:54:10 let (before,after) = splitAt srcLen s 20:54:12 in if before == src 20:54:14 then ("",dest ++ after) 20:54:16 else let (before',after') = replace src srcLen dest after 20:54:18 in (x:before',after') 20:54:20 i can't see the flaw! :) 20:54:22 *:( 20:54:46 WoG is a bit less enjoyable perhaps after seeing most of the solutions 20:54:49 ehird: Don't call replace with after, call it with xs 20:54:57 O 20:55:03 ... didn't you do that Deewiant? 20:55:11 No, I called it with xs. 20:55:15 Huh. Kay. 20:55:20 Works now ^_____________________^;;;;;;;;; 20:55:31 oerjan: 20:55:32 *Main> replace "abc" 3 "def" "xabc" 20:55:32 ("x","def") 20:55:37 Otherwise /abc/foo/aabc wouldn't work, for instance. 20:55:37 so we backtrack to |def, right? 20:55:39 where | = us 20:55:41 Since it'd jump to "c". 20:57:57 *Main> doReplacements "abc" "def" "aaabcxxabcxxdefabc" 20:57:57 "aadefxxdefxxdefdef" 20:57:59 Sucks ess. 20:58:15 oerjan: link to latest counter? 20:58:18 http://oerjan.nvg.org/esoteric/slashes/counter3.sss? 20:58:31 counter4.sss is the latest 20:58:45 oerjan: ... but not the most practical, it seems 20:58:49 :D 20:59:01 http://oerjan.nvg.org/esoteric/slashes/counter4.sss 20:59:01 er 20:59:04 /Only / and \ from this point on/ 20:59:06 a patent lie 20:59:08 there's spaces and | 20:59:10 and newlines 20:59:17 after the substitutions prior to that point 20:59:48 oerjan: Congrats; your program now runs in... well, it's not constant time; it increases each time to the increased length of string to scan. But it's a lot less of an increase. 20:59:59 ah 21:00:01 oerjan: What buffering does your interp use? Regular line-based buffering? 21:00:11 That's what I'm doing atm. 21:00:11 -!- asiekierka has quit (Read error: 110 (Connection timed out)). 21:00:25 actually i put it on character buffering recently for debugging 21:00:40 Which would you suggest? Since it's now infallably perfect. 21:00:49 (every print statement that means) 21:01:14 it would be nice for it to work with output that contains no newlines, and is infinite 21:01:23 (See that counter4.sss) 21:01:53 also, for infallably perfect please try http://oerjan.nvg.org/esoteric/slashes/bct.sss which is what made perl crash in the first place 21:01:57 oerjan: 21:01:58 [ehird:~/Code/scraps/2009-05/slashes] % time ./slashes < counter3.sss > f 21:01:59 ^C 21:02:01 ./slashes < counter3.sss > f 1.25s user 0.03s system 99% cpu 1.284 total 21:02:03 [ehird:~/Code/scraps/2009-05/slashes] % wc -l f 21:02:05 945 f 21:02:07 Not bad. 21:02:23 The first 100 or so lines swim past immediately on the terminal, too. 21:02:24 counter3.sss is about as efficient as counter2.sss, just a minor variation 21:02:42 Also, infinite output with no newlines; roger that. 21:03:11 ehird: what happens with the bct.sss ? 21:03:35 first tell me the expected output 21:03:37 then I'll run it 21:03:43 it crashed on me before i got to check if it's any good 21:03:45 lessee 21:04:18 \//\/\ endlessly repeated, i think is what i intended 21:05:27 it's supposed to check the program looping of the 100101 program (no data handling yet) 21:06:00 and 0 -> /, 1 -> \ 21:06:31 [ehird:~/Code/scraps/2009-05/slashes] % time ./slashes counter3.sss > f 21:06:31 ^C 21:06:32 ./slashes counter3.sss > f 0.49s user 0.54s system 99% cpu 1.034 total 21:06:34 [ehird:~/Code/scraps/2009-05/slashes] % wc -l f 21:06:36 368 f 21:06:37 -!- M0ny has quit ("Read error: 182 (Connection reset by beer)"). 21:06:38 bit of a regression 21:06:45 [ehird:~/Code/scraps/2009-05/slashes] % time ./slashes counter3.sss > f 21:06:45 ^C 21:06:47 ./slashes counter3.sss > f 2.41s user 3.09s system 99% cpu 5.506 total 21:06:49 [ehird:~/Code/scraps/2009-05/slashes] % wc -l f 21:06:49 the previous test was that counter4.sss, which only showed that the er, _slashes_ program looping worked 21:06:51 888 f 21:06:59 oerjan: the regression is due to outputting lots and lots of *s individually 21:07:00 (as opposed to the BCT program) 21:07:11 oerjan: doesn't matter though does it 21:07:14 it's still wicked fast 21:07:19 bct time 21:07:26 % ./slashes bct.sss 21:07:27 \/ 21:07:28 it then hangs 21:07:51 oerjan: how did you add it to ze egobots? 21:08:16 with !addinterp slashes perl http://... 21:08:21 ah 21:08:23 -!- Judofyr has joined. 21:08:23 unfortunately there is no haskell in it 21:08:27 hey GregorR! 21:08:41 GregorR: sudo apt-get install ghc on EgoBot, please. 21:08:45 I'll be adding a new interpifoo. 21:08:47 ehird: well, at least it didn't crash at the same point for you 21:08:53 you actually got input 21:08:55 GregorR: how do I add a compiled interp btw 21:08:56 *output 21:08:59 oerjan: yep 21:09:03 and it doesn't crash 21:09:03 just hang 21:09:18 total lines: 54, includign whitespace and comments (all one of them takes its own line) 21:09:21 *including 21:09:24 well, plus the 3 line header 21:09:37 in fact it's the correct output for the first iteration 21:09:41 % ./slashes slashes 21:09:41 ???? 21:09:42 $?8__PAGEZERO?__TEXT??__text__TEXT@#?? 21:09:44 Quine! 21:09:47 Wellalmost. 21:09:57 % ./slashes slashes.hs 21:09:57 -- An interpreter for the 21:10:34 !slashes http://oerjan.nvg.org/esoteric/slashes/counter4.sss 21:10:36 oerjan: yay, it uses constant memory on /// 21:10:50 hmph 21:10:54 % ./slashes counter4.sss 21:10:54 \/\\/\\\/\\\\/\\\\\/\\\\\\/\\\\\\\/\\\\\\\\/\\\\\\\\\/\\\\\\\\\\/\\\\\\\\\\\/\\\\\\\\\\\\/\\\\\\\\\\\\\/\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\\\\\\\\\\\\\\\\/\\\\\\\\\\ 21:10:59 and so on 21:11:01 it's a lot slower than counter3 21:11:04 a lot lot slower 21:11:08 EgoBot doesn't handle output without newlines :( 21:11:17 although it gets faster as it goes on; or rather it doesn't, but it seems like it does, because of its outputting a lot of \s in succession 21:11:27 heh :) 21:11:40 yes, the /\ only coding is much more verbose 21:11:48 [ehird:~/Code/scraps/2009-05/slashes] % ./slashes 21:11:48 slashes: No filename specified. 21:11:50 [ehird:~/Code/scraps/2009-05/slashes] % ./slashes /dev/stdin 21:11:52 / 21:11:54 slashes: OHGAHGHGHAGH WHAT DOES IT MEAN!! AN ARMY OF SNEEZING WANGS STALKS MY NIGHTMARE 21:11:57 The best error reporting system, methinks. 21:12:24 that may not be strictly according to spec, but who cares 21:12:33 it is 21:12:46 there is no program with unmatched /s 21:12:53 "If it's a /, characters are taken up to the next /" 21:12:54 "The program ends when there is no longer enough of it to execute, e.g.:" 21:13:07 and then the three examples 21:13:08 oerjan: i don't think that's a valid interpretation :P 21:13:18 um that's a quote 21:13:24 from the /// page 21:13:25 right 21:13:25 but 21:13:31 oerjan: the program \ outputs a \ for me 21:13:34 !slashes / 21:13:35 do you think that's right :P 21:13:40 !slashes a/a 21:13:41 a 21:13:42 nope 21:13:49 !slashes /a/b 21:13:59 !slashes a/b/c 21:14:00 a 21:14:01 hm 21:14:05 oerjan: okay then 21:14:26 oerjan: I think that an unmatched // is invalid, though. 21:14:28 But I'll do 21:14:30 run "\\" = return () 21:14:31 !slashes \ 21:14:34 !slashes \\ 21:14:40 oh right 21:14:43 the egobot bug 21:14:44 % ./slashes fibonacci.sss 21:14:44 */*/**/***/*****/********/*************/*********************/**********************************/******************************************************* 21:14:48 GregorR, !!!! 21:14:51 Takes 0.009s. 21:14:55 \m/ 21:15:19 thuemorse takes from 0.012-0.016 21:15:45 oerjan: oh, dear 21:15:49 oh, nevermind 21:15:54 -!- kar8nga has joined. 21:15:55 what? 21:16:03 oerjan: i got a hang after the first * on counter1.sss, but another line came and I realised it was just dog slow 21:16:03 :D 21:16:09 less than 1 line/sec 21:16:11 um 21:16:15 oh 21:16:19 source of that counter? 21:16:31 wikipage. 21:16:32 I want to see that epic program 21:16:38 erm 21:16:38 http://oerjan.nvg.org/esoteric/slashes/counter1.sss 21:16:40 it's not very epic 21:16:47 http://oerjan.nvg.org/esoteric/slashes/counter3.sss current sane version 21:16:57 hey wait oerjan 21:17:02 your interp is faster than mine on counter1 21:17:10 why are you using \ so much btw 21:17:16 was afraid of that 21:17:17 I mean literal ones 21:17:23 AnMaster: where? 21:17:23 oh wait 21:17:26 hmm 21:17:26 wtf 21:17:29 oerjan: why is it faster? 21:17:34 oerjan, http://oerjan.nvg.org/esoteric/slashes/counter1.sss for example 21:17:39 my algorithms are better, haskell is faster than perl, I used your optimization... 21:17:46 or in http://oerjan.nvg.org/esoteric/slashes/counter3.sss 21:17:54 less there in that 21:17:54 but perl has heavily optimized regexes 21:18:04 ehird: "Haskell is faster than Perl"? 21:18:04 which is what my interpreter uses most 21:18:11 Deewiant: GHC is,. 21:18:13 *. 21:18:20 unfortunately they break on the large programs :( 21:18:21 If you're doing string processing, I'm not at all surprised that Perl + arrays beats GHC + linked lists 21:18:21 oerjan: right, but there's not much more to optimize than my code. 21:18:25 depends on what exactly you are doing I guess 21:18:32 Deewiant: The string processing is mostly linked-listy. 21:18:40 ehird: That doesn't mean it's fast. 21:18:42 There's not really anything much bytestring about it. 21:18:46 Deewiant, can't you do arrays in GHC? 21:18:47 Arrays tend to be faster even for linked-listy stuff. 21:18:48 :P 21:18:48 Besides, that should be a memory issue. 21:18:51 AnMaster: Yes, you can. 21:18:52 AnMaster: You can do ByteStrings. 21:18:55 And also arrays. 21:18:56 ah 21:18:59 But ByteStrings are better. 21:19:40 ehird: Some 8-10 bytes (?? I forget how many exactly) per char does not lead to speed 21:19:54 Deewiant: That's memory. 21:20:00 ehird: That's CPU cache. 21:20:04 True enough. 21:20:09 I can switch to [Int]. 21:20:15 As a bonus, linked lists aren't contiguous. 21:20:24 [Int] is the same size as [Char], isn't it? 21:20:27 * ehird stabs Deewiant. 21:20:29 I'd use [Word8]. 21:20:32 I'll use a bloody ByteString. 21:20:48 A strict bytestring, even./ 21:20:49 AnMaster: the fundamental reason for backslashes is so that you can copy things 21:20:59 oerjan, hm ok 21:21:19 the looping happens by program self-replication, after all 21:21:45 Deewiant, go write a slashes interpreter for Linux x86_64 in asm! 21:21:47 :P 21:21:55 Grr, you can't pattern match on bytestrings. 21:22:05 * AnMaster wonders if a slashes compiler make any sense. 21:22:07 I'm not particularly interested in slashes. 21:22:24 And I'm done with asm for the time being. 21:22:27 ok 21:22:30 AnMaster: too self-modifying 21:22:36 oerjan, yeah 21:23:05 an optimising and program folding compiler would work 21:23:13 * AnMaster waits for oerjan to figure that out 21:23:27 nah that's not my sort of thing 21:24:04 huh? 21:24:26 optimising compilers 21:24:28 basically what ick does when given that command line option I forgot 21:25:28 *Main> run (B.singleton forwardSlash) 21:25:28 hi 21:25:30 if program is deterministic and uses no input: run program, save output. Write a shell script wrapper for it. 21:25:30 woot 21:25:33 ;P 21:25:46 AnMaster: also that newer counter with less backslashes is quite deceptive, because i have just temporarily abbreviated <\\>\\\ to | :D 21:26:01 oerjan, ouch 21:26:25 the older one at least used | internally, though inefficiently 21:26:28 so... \| 21:26:29 is 21:26:35 um 21:26:41 \<\\>\\\ 21:26:41 | is like a prefix really 21:26:54 it "quotes" the next character 21:26:59 yeah 21:27:10 !slashes http://oerjan.nvg.org/esoteric/slashes/counter3.sss 21:27:13 * 21:27:19 is that expected? 21:27:24 yes 21:27:36 it sends the next lines as DCC CHAT 21:32:31 *Main> run $ B.pack [backSlash,backSlash,97,10] 21:32:32 \a 21:32:34 getting there 21:34:55 oerjan: one thing's for sure 21:35:02 this bytestring haskell version will kick the perl interp's ass :) 21:35:04 >:) 21:35:41 heh 21:35:46 -!- GregorR-L has joined. 21:37:58 oerjan: so, you think that if you reach EOF in /foo, you stop executing? 21:38:13 now *that's* something haskell 21:38:15 's not attuned to 21:38:22 i can't even exitSuccess 21:38:24 since I'm out of IO 21:38:51 Maybe is your friend? 21:38:56 oerjan: what about /foo\ 21:39:00 same result? 21:39:03 lawl @ \ 21:39:04 and yeah, Maybe sounds right 21:39:07 sure 21:39:10 GregorR-L: no, it's '\' eof 21:39:11 :-P 21:39:22 Ohhhhhhhhhhh lehm 21:40:41 O(n) cons is analogous to (:) for lists, but of different complexity, as it requires a memcpy. 21:40:44 OSHI— 21:40:48 time to restructure ::::)))))) 21:41:11 just have to track current string, trivial 21:43:11 it sends the next lines as DCC CHAT 21:43:16 that never happened? 21:43:21 you didn't accept? 21:43:24 ah wait 21:43:25 <*status> DCC Chat Bounce (EgoBot): Timeout waiting for incoming connection [192.168.0.64:59319] 21:43:32 * AnMaster tries to figure out the reason 21:43:39 possibly the IP! 21:45:12 Uhh, you shouldn't have an incoming connection, you should be establishing an outgoing connection to EgoBot. 21:45:22 And yes, even though some people have DCC problems, I still think this is the best solution :P 21:48:29 ehird: hm and yeah, thue-morse prints all at the end 21:48:45 !bf http://esoteric.sange.fi/brainfuck/bf-source/prog/beer.b 21:48:47 99 Bottles of beer on the wall 21:49:09 There, I increased the limit to be enough for 99 bottles :P 21:50:07 GregorR-L: it would be nice if you could also accept long lines, it's sort of a tradition to do infinite lazy programs on bots here 21:50:19 s/long/infinite/ 21:50:44 What do you mean by "infinite lines" ... 21:50:56 GregorR-L: for(;;)putchar('a') 21:51:19 That's an infinite line alright :P 21:51:23 ^ul ( *)(~:S(*)*~:^):^ 21:51:24 * ** *** **** ***** ****** ******* ******** ********* ********** *********** ************ ************* ************** *************** **************** ***************** ****************** ******************* ******************** ********************* ********************** *********************** ************************ ...too much output! 21:51:24 Uhh, you shouldn't have an incoming connection, you should be establishing an outgoing connection to EgoBot. 21:51:26 err 21:51:27 no idea 21:51:40 GregorR-L: ^ example 21:51:57 Oh, just tell you when it gets cut off? 21:52:04 !befunge98 'A,a,'A,@ 21:52:04 A 21:52:24 GregorR-L: for a start, actually print the line 21:52:41 !unlambda ( *)(~:S(*)*~:^):^ 21:52:41 ./interps/unlambda/unlambda.bin: file /tmp/input.21406: parse error 21:52:48 Well that's unique :P 21:52:49 !slashes http://oerjan.nvg.org/esoteric/slashes/counter4.sss 21:52:57 that doesn't print anything 21:53:04 It does print (truncated) very long lines. 21:53:08 because there are no newlines in it 21:53:14 Even with no newlines. 21:53:17 hm... 21:53:20 Or at least, it's certainly supposed to :P 21:53:28 !underload ( *)(~:S(*)*~:^):^ 21:53:37 Well that ain't right. 21:54:09 OHHH, that program is an infinite loop. 21:54:16 It'll get cut off before it accepts any input. 21:54:23 No shit. 21:54:31 An infinite loop is the only way to output infinite characters. 21:54:32 * GregorR-L doesn't speak underload :P 21:54:32 << PRIVMSG #esoteric :!befunge98 'A,a,'A,@ 21:54:32 >> :EgoBot!n=EgoBot@codu.xen.prgmr.com PRIVMSG #esoteric :+A 21:54:32 >> :EgoBot!n=EgoBot@codu.xen.prgmr.com PRIVMSG AnMaster :DCC CHAT chat 1404135913 59867 21:54:35 hm ok 21:55:04 GregorR-L: but it doesn't output slowly, so why shouldn't it reach the buffer limit first, and get printed? 21:55:25 oerjan: It always waits for either the program to complete or a newline to be printed :P 21:55:29 GregorR, bouncer seems to mangle it somehow 21:55:41 GregorR-L, fixed the \ bug yet? 21:55:41 well that's what we don't want, then 21:55:43 !slashes \\ 21:55:47 !slashes \\\ 21:55:49 !slashes \\\\ 21:55:49 \ 21:55:52 no 21:55:54 you didn't 21:56:01 WTFBBQ? That's a weird one. 21:56:08 !sh echo '\\' 21:56:09 \ 21:56:10 !slashes /foo/ba\\\\r/foo 21:56:10 bar 21:56:19 that should output ba\r 21:56:20 * GregorR-L looks in to it. 21:56:21 not bar 21:56:27 !perl print "\\" 21:56:28 and oerjan said it wasn't in his code 21:56:30 it worked locally 21:56:45 ok. Seems the perl one is broken? 21:56:57 actually the sh one too 21:56:57 above 21:57:01 !sh echo '\\' 21:57:01 \ 21:57:05 that is plain wrong indeed 21:57:23 !sh echo "\\"hi there" 21:57:23 /tmp/input.21670: line 1: unexpected EOF while looking for matching `"' 21:57:34 oh well 21:57:38 !sh echo "\\" 21:57:46 !befunge98 'A,a,'A,@ 21:57:47 A 21:57:53 o_O 21:58:20 !sh ghc 21:58:23 ghc-6.8.2: no input files 21:58:39 !befunge98 'A,a,'A,@ 21:58:39 A 21:58:43 !sh cabal --help 21:58:44 !sh ghc -e 'putStrLn "hello"' 21:58:44 /tmp/input.21837: line 1: cabal: command not found 21:58:46 hello 21:58:49 * DCC CHAT to EgoBot lost (Remote host closed socket). 21:58:51 hm 21:58:53 kay 21:59:09 AnMaster: That should be after you retrieved all the data. 22:01:00 GregorR-L, well I generally blanket ignore CTCP and DCC. Why? Because it is irritating when you wake up in the morning and see a list of pending (and timed out) DCCs with spambots that tried to DCC you during the night. 22:01:37 Well that's too bad. DCC is a much-better way to handle long output, because I don't have to worry about flooding and users don't have to wait for lots of output. 22:01:43 Go run mycology and enjoy :P 22:03:08 meh. *writes a white list that overlays the blacklist* 22:03:58 -!- puzzlet has quit (Read error: 60 (Operation timed out)). 22:15:53 Is there some sort of limit for lots-of-output in the DCC chat thing too? 22:16:01 16K 22:16:23 No speed limits though, just a flat total limit. 22:18:53 fungot: Are you disappointed that the other bots know all kinds of DCC tricks and bazillion languages and whatnot? 22:18:54 fizzie: ( ( oh yeah what)) 22:20:10 EgoBot doesn't speak almost-English though. 22:20:13 poor fungot :( 22:20:13 oerjan: ( ( they have a lot 22:20:37 what? X just crashed. Someone give me a few lines of context above " EgoBot doesn't speak almost-English though." please 22:20:37 !echo I WILL DEFEAT FUNGOT MUAHAHHAHAHAHAHAHAHAHHAHHHHAH 22:20:39 ^style 22:20:40 I WILL DEFEAT FUNGOT MUAHAHHAHAHAHAHAHAHAHHAHHHHAH 22:20:40 Available: agora alice c64 darwin discworld europarl ff7 fisher* ic irc jargon lovecraft nethack pa speeches ss wp youtube 22:20:47 (since I just reconnected to bouncer) 22:20:53 fungot: Oh yeah what 22:20:54 ehird: that i understood that you could 22:20:59 fungot: be a green piece of food 22:21:00 ehird: i need your help to get this treadmill inside and it my husband laughs everything you name it provided for us even after september eleven 22:21:00 AnMaster: fungot is feeling down because EgoBot supports more languages. 22:21:01 GregorR-L: and you can chat while you play oh god they've got euka and spades and hearts and it it 22:21:09 fungot: even after september eleven 22:21:09 ehird: oh let's see sigh i didn't think it was 22:21:14 fungot: i see i see 22:21:15 ehird: excuse me but anyway um i mean 22:21:18 fungot: right 22:21:19 ehird: ( ( really uh)) did we look at each other every now and then a 22:21:19 GregorR-L, how was that determined? 22:21:24 fungot: really, did we? 22:21:25 ehird: ' cause think about it laughter laughter who knows maybe somebody else did um i'm kind of a 22:21:30 fungot: laughter laughter! 22:21:31 AnMaster: Well, fungot speaks almost-English. 22:21:32 GregorR-L: um but but like i said nine one one they was aware of um 22:21:38 and why is the damn spell checker suddely set to Afrikaans!? 22:21:42 * AnMaster switches it to English 22:21:43 X-D 22:22:04 ehird: i redesigned bct.sss to use about half the size, now it runs in perl but gives completely wrong output. 22:22:04 My guess: Because Afrikaans is, in the English alphabet, the first language :P 22:22:20 GregorR, it complained it couldn't find the word list for Afrikaans. 22:22:21 oerjan: that's nice; my interp will still rule. 22:22:25 for every letter I wrote 22:22:33 AnMaster: And? 22:22:36 (that is because I don't have it installed duh) 22:22:43 GregorR, but yeah would make sense 22:22:47 ehird, and what? 22:23:07 ehird: see you tomorrow then :) 22:23:12 What's that gotta do with what GregorR-L said 22:23:13 it usually starts with the one in LANG. Or English. Seems a bit random. 22:23:28 -!- oerjan has quit ("Good night all"). 22:23:49 What's that gotta do with what GregorR-L said <-- what has what got to do with it? 22:23:54 it should be $LANG, fallback to C. 22:24:26 GregorR, LANG is sv_SE.UTF-8. But I always switch to English after starting client since I mainly chat in English channels. 22:33:12 hm 22:33:37 GregorR, will the current hostmask change? 22:33:42 or will it stay the same 22:33:42 that is 22:33:50 EgoBot!n=EgoBot@codu.xen.prgmr.com 22:34:38 !befunge98 'A,a,'A,@ 22:34:39 A 22:34:54 ok lets see.. 22:34:55 !befunge98 'A,a,'A,@ 22:34:55 A 22:34:56 AnMaster: It will change to codu.org soon. 22:35:04 GregorR, meh 22:35:19 anyway I added the white list for it now 22:35:47 GregorR-L, but why does it close as "connection lost" instead of the usual "connection closed" 22:35:54 are you sure you follow the protocol? 22:36:14 I'm sure I don't. 22:36:19 When I'm done, I just close the port. 22:36:29 GregorR-L, can you do it the proper way, whatever that is 22:36:40 If I can figure out what the proper way is, probably :P 22:38:55 -!- kar8nga has quit (Remote closed the connection). 22:40:59 There seems to be some magical DCC CLOSE message, which isn't documented anywhere on Earth :P 22:42:22 if you saw a file ending in .es, what would you think it was? 22:42:38 A Spanish file. 22:42:42 :P 22:42:50 GregorR, it seems to be "EMCAScript" says wikipedia. 22:42:52 heh 22:42:57 better known as javascript 22:43:07 Oh, sure. 22:43:07 GregorR, when it comes to IRC, few things are well documented. 22:43:51 The problem is that the non-browser-based ECMAScript-land is quite fragmented, so a .es file is probably an ECMAScript file for a very particular interpreter. 22:44:00 yeah 22:44:48 I prefer to stick to languages where you have a high level of cross-implementation portability. Or possibly just one implementation 22:45:27 !sh echo 'Hello'; echo 'World' 22:45:28 Hello 22:45:40 !sh echo -n 'Hello'; echo 'World' 22:45:40 HelloWorld 22:45:43 Well, that wasn't how it's done apparently :P 22:45:44 well, better 22:45:54 GregorR, use tcp dump 22:46:01 on a "real" connection 22:46:14 Gawd that's a lame way to do this, but OK :P 22:46:53 -!- tombom has quit ("Peace and Protection 4.22.2"). 22:47:00 GregorR, it is a reasonable way 22:47:03 when it comes to IRC 22:47:07 also what does the -L mean 22:47:28 In what context? 22:47:34 your nick 22:47:38 Oh, laptop 22:47:41 ah 22:48:29 AnMaster: Unblock DCC from me so I can DCC CHAT you :P 22:48:37 kay. sec 22:48:38 -!- zzo38 has joined. 22:49:36 Netcat does not use the shell functions in Linux. So if I get Linux, I will need to write interactive netcat. 22:49:47 done, added exception for GregorR!n=gregor@65.183.185.209 22:49:50 GregorR, ^ 22:49:56 ....... wrong me :P 22:50:04 zzo38: What a strange statement. 22:50:22 GregorR-L, done. Added exception for GregorR-L-who-can't-ssh-to-desktop!n=gregor@c-76-105-254-150.hsd1.or.comcast.net 22:50:41 I don't want to get wireshark running on my desktop over SSH, that's a PITA. 22:50:54 * DCC CHAT connection established to GregorR-L [192.168.0.64:55613] 22:50:54 * DCC CHAT to GregorR-L lost (Remote host closed socket). 22:50:55 there 22:50:59 -!- Sgeo has quit (Read error: 104 (Connection reset by peer)). 22:51:00 ? 22:51:11 <*status> DCC Chat Bounce (GregorR-L): Timeout waiting for incoming connection [192.168.0.64:37086] 22:51:11 <*status> DCC Xfer Bounce (GregorR-L): Socket error [Cannot assign requested address] 22:51:12 Well that didn't work properly at all :P 22:51:13 huh? 22:51:21 Can you write 99 bottles of beer in Furryscript? It is not indended for stuff like that at all. But I think I have heard it sone in sendmail also, which isn't designed for that either. 22:51:48 Never heard of Furryscript, although it sounds awesome :P 22:51:53 GregorR-L, turned off the bounce 22:52:02 !befunge98 'A,a,'A,@ 22:52:02 A 22:52:11 * DCC CHAT connection established to EgoBot [64.62.173.65:10002] 22:52:11 * DCC CHAT to EgoBot lost (Remote host closed socket). 22:52:12 hm 22:52:15 and no bounce 22:52:37 Connection refused :P ... I'll try a different tact. 22:52:43 GregorR-L, connection timed out to you 22:52:44 .... 22:52:47 (With a different user, namely GregorR ) 22:52:49 fix firewall 22:53:04 The sendmail codes is at: http://99-bottles-of-beer.net/language-sendmail-588.html the Furryscript codes is at: http://zzo38computer.cjb.net/furry/scripts/beer.txt 22:53:05 I did a passive-chat to you because I don't have access to the router here, I can't poke any holes. 22:53:46 GregorR-L, I'm behind double NAT and poking holes is a PITA. 22:54:04 The Furryscript codes sort of looks like it was designed for 99 bottles of beer, but actually, it wasn't. I'm just using the built-in function in different ways. 22:54:06 Double NAT, wow :P 22:54:07 GregorR, plus highly dynamic ip 22:54:19 GregorR-L, for complex reasons. 22:54:44 zzo38: But what IS furryscript? 22:54:51 GregorR, anyway, I don't think my client knows what passive DCC is 22:55:02 Souper :P 22:55:04 the bouncer might, but not the client 22:55:19 GregorR, passive dcc according to which model 22:55:29 X-Chat :P 22:55:34 Furryscript is design for generator of things such as D&D adventure idea, video game names, etc. Look at it in my web-site. Also look at the individual script codes you can see how it is supposed to work. 22:55:48 GregorR, that model isn't supported here at all. 22:56:15 For example, the ARG command actually reads a number from the category 0( but it was designed for multiple parameter codes inside of strings, such as | | > a dynamic number of arguments. 22:56:28 zzo38, link? 22:56:45 Run it on the web-page at: http://zzo38computer.cjb.net/furry/webform.php 22:57:04 See the video-games script for an example of the ARG command. And see the D&D adventure ideas script for an example of the plural command. 22:57:29 huh? 22:57:40 where does one input the code 22:58:24 If you want to input code to Furryscript, you will need to get Furryscript.php (copy and paste the text from the web-page, or use a different program to remove the color-codes) and run it as a command-line program with the filename on the command-line argument. 22:58:40 I'll guess I skip it 22:58:53 * GregorR-L forces it into EgoBot >: ) 22:58:55 anyway. What has this got to do with netcat. 22:58:55 And if you make some codes, post them, I would like to see them so I can add them to my web-site! 22:59:09 GregorR-L, no. Just no. 22:59:12 Nothing to do with netcat. That was an unrelated comment. 22:59:15 it isn't an esolang 22:59:23 zzo38, and that comment about netcat made no sense either 22:59:38 Maybe not, but sendmail isn't an esolang either. I just wanted to post how it was done in similar things like that. 22:59:44 what 22:59:46 to netcat? 22:59:54 AnMaster: So what if it's not an esolang, it's still interesting :P 23:00:07 is it? looks like a text generator language to me 23:00:57 The netcat comment has to do with, one day I went to FreeGeek office, I tried to access gopher and IRC through netcat but it doesn't do things like Windows push F2 for repeat up to something, arrow to select previous entry, etc. That is why I should write netcat interactive one day, for Linux only. 23:01:37 Try generating a list of adventure ideas with it to see how it works. http://zzo38computer.cjb.net/furry/webform.php?which=adventure.txt&count=20 23:01:43 zzo38, on Windows that line editing is all in cmd.exe 23:01:57 try using telnet instead of netcat 23:01:59 for telnet 23:02:35 "Furries are intentionally catching lycanthropy." <-- wut 23:03:09 Telnet doesn't do line editing either. Unless there is a program for that. But if I should write interactive netcat with mode for display of control-codes, color-codes, and line-editing (including the F2 of Windows, very useful in IRC but should be useful for other protocols also.) 23:03:29 telnet seems to do so here 23:03:34 but maybe it is on the server side 23:04:21 AnMaster: That's just one of the entries in the list. There are many more, which include parameters and various other things. See (View selected script codes) to see the codes so you can know how the parameters are substituted. Also look at the codes in video-game-names if you want to see how they detect duplicates with that. 23:04:54 Telnet is good when the server accepts telnet commands but netcat (or netcat interactive) should be use for raw linemode protocols,,,... 23:04:56 Spells and psionic powers start having weird quantum effects. 23:04:58 I like that one 23:05:07 I like that one also! 23:05:10 The gods announce a holiday for Paladins. A Paladin is not bound by his code on this day. 23:05:11 OOOH! 23:05:52 Minotaurs want to live in your village but don't know the common language and refuse to learn it. <-- that's stupid 23:05:54 I didn't write all of them by myself but I did many of them, and I added parameters to many of them taken from other sources, also. If you have other ideas to add (with or without parameters), I would like to add it on. 23:06:10 zzo38, so a lot of them are hard coded? 23:06:16 I was hoping markov chain style 23:06:25 hopeing* 23:06:27 Many are hard-coded and many have parameters, and some of the parameters have their own parameters even. 23:06:42 A bulette is tearing apart viable farmland. was generated twice 23:07:15 It can generate things twice. Furryscript itself only generates one per call to the program, but the web interface calls it multiple times and therefore might generate duplicates. 23:07:37 A new noble seeks to clear a patch of wilderness of all monsters. <-- sounds like most computer RPGs/adventure games 23:08:38 You are right. But now I added a second one. in addition to keeping the other one also 23:08:48 zzo38, "The grim reaper has taken a human aprentice. " <-- you stole that from Discworld. Admit it. 23:09:29 AnMaster: No I didn't. Probably someone else stole it from Discworld and I just happened to find it listed somewhere, I certainly know nearly nothing about Discworld. 23:09:43 Two hobgoblin bards argue about wheelbarrows. <-- exactly how is that an adventure :D 23:10:06 These video game names are great. 23:10:09 They aren't necessarily full adventures, they could be parts of adventures (when you want to modify parts), etc 23:10:27 "Minimal Booty Tactics" "Fruity Music Squadron" "Chinese Cheese Jamboree" 23:10:37 A priest asks you to rescue his/her pet from a tree. <-- Before fire fighters were invented. 23:10:38 :P 23:10:58 err is that right English word? 23:12:06 Yes 23:13:17 I think if the DM combined what he already had with some of these ideas, it would make a interesting D&D game 23:13:34 btw, the xkcd title/alt-text seems cryptic today 23:13:36 I don't play D&D like other people, I am a good defensive player at D&D. 23:14:06 The entire game so far has been an illusion. 23:14:09 good one 23:14:31 I'm always a defensive player, in any game I play 23:14:38 even where it makes no sense. 23:15:00 (which is why I suck at car racing games and similar) 23:15:40 hah, as the last item listed was "The King of Nowhere hires you to secretly solve tense situtations." 23:16:00 Defensive play is not as simple as you might think. It is more interesting than offensive play in my opinion. Not only am I defensive play, my character has NG alignment so I try to good thing as well, like not kill someone if it is not necessary and if someone steal something I will give them back the money for buying a new one. 23:16:42 Many people want to play you have to kill everyone and steal their stuff but D&D is not a computer game! If you want to kill some monsters or whatever and steal their stuff, you should hire murderers and thieves, not adventureres 23:17:00 And it's D&D 3.5 edition, in case you didn't know. 23:17:14 I never played table top D&D 23:17:22 -!- KingOfKarlsruhe has quit (Remote closed the connection). 23:17:22 It turns out the tarrasque is really just cold. Find out how to knit him a sweater. 23:17:24 fun 23:17:27 22:49 zzo38: Netcat does not use the shell functions in Linux. So if I get Linux, I will need to write interactive netcat. 23:17:29 wat 23:17:35 ehird, read on 23:17:37 before you comment 23:17:47 it was confusing yes, but in the end it was explained 23:17:51 tl;dr :-) 23:18:06 but I tried to read a bit 23:18:08 ehird, yop 23:18:17 or 23:18:18 yl 23:18:20 ah 23:18:20 23:00 zzo38: The netcat comment has to do with, one day I went to FreeGeek office, I tried to access gopher and IRC through netcat but it doesn't do things like Windows push F2 for repeat up to something, arrow to select previous entry, etc. That is why I should write netcat interactive one day, for Linux only. 23:18:24 rlwrap nc, yo 23:18:46 What's rlwrap nc 23:18:53 ehird, is that allowed if nc isn't GPL compatible btw 23:19:04 AnMaster: Legally, yes. According to rms, probably no. 23:19:15 zzo38: nc is netcat, "rlwrap foo" runs foo with line editing capabilities 23:19:22 Use GNU netcat if normal netcat doesn't GPL compatible 23:19:23 does it count as linking? Will Stallman use this to say every software ever made that uses the console has to be GPL? 23:19:24 rlwrap wraps other programs to use readline 23:19:31 AnMaster: Nope, yes, 23:19:35 but rms is insane 23:19:39 and not in the good way, so. 23:19:42 rlwrap so doesn't count as linking :P 23:19:52 And RMS is totally insane in the good way. 23:19:53 Follow the interesting drama in the next episode of FSF 23:19:59 OK. Their computers are Ubuntu, does Ubuntu include rlwrap can I just type something like "rlwrap nc zzo38computer.cjb.net 70" and it will work? 23:20:04 (next week, same time) 23:20:14 zzo38: You have to install rlwrap. 23:20:17 ehird, you answered too quickly 23:20:22 RMS is too impractical, lately, as far as I know. 23:20:31 :/ 23:20:31 zzo38: the incident we're referring to was in 1992 23:20:46 GregorR-L: If the clisp incident counts as viral, so does rlwrap. 23:22:16 If I make up my own Linux distribution then, rlwrap and netcat will be included and a command "nci" (netcat interactive) to run netcat with readline 23:22:31 "Post-Apocalyptic Thunder Psychiatrist" I would totally play this game. 23:22:36 !slashes //a/ 23:22:37 And I make my own window manager also 23:22:48 !slashes a//b/c 23:22:49 ac 23:22:51 hm 23:23:00 that doesn't fully make sense 23:23:04 ehird, agree? 23:23:25 It's replacing "" with b. 23:23:25 it should match every zero width 23:23:32 not "nothing" 23:23:41 if you see what I mean 23:23:59 zero width like ^ and $ in regex 23:24:05 so between every char 23:24:06 Do you know something about optimize convert brainfuck to Javascript? 23:24:17 zzo38, why into javascript 23:24:18 but 23:24:30 I tried to make it optimize but I want to know if it can be improved optimized 23:24:37 zzo38: See esotope-bfc. 23:24:38 you could write a javascript backend for esotope-bf 23:24:39 I guess 23:24:41 bfc* 23:24:44 http://code.google.com/p/esotope-bfc/ 23:24:50 compiles hello world to 23:24:50 PUTS("Hello World!"); 23:24:51 return 0; 23:24:55 he split the code generator out last I looked 23:25:12 It is into Javascript because of XUL-runner is programmed in Javascript, so when a client-script is being loaded from gopher it has to convert to Javascript. 23:25:35 My optimizer converts "," to "yield;" 23:25:40 err 23:25:43 zzo38: you really want to use esotope for any hugely-optimizing BF optimizer. 23:25:49 zzo38, and +++ into "add 3"? 23:26:03 and [-]++++ into "set 4"? 23:26:10 and [>] into seek. and so on 23:26:31 constant folding and what not 23:26:35 Yes it does convert "+++" to "t[p]+=3;" 23:26:46 zzo38: does it convert 23:26:48 >+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[<++++>-] 23:26:48 <.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+. 23:26:49 into 23:26:52 print("Hello, world!") 23:26:53 ? 23:27:01 Yes yes, it does do "[-]++++" into "t[p]=4;" as well. But it doesn't do everything. 23:27:13 If not ... write an http://code.google.com/p/esotope-bfc/ backend ;-) 23:27:19 No. It doesn't do that last one. 23:27:23 zzo38, and ++>-<++ into t[p]+=4; t[p+1]-=1; 23:27:25 it also optimizes multiplication, all balacned loops, ... 23:27:30 *balanced 23:27:34 zzo38, that is. skip the pointer move 23:28:50 So far my program doesn't optimize I/O, it alawys converts "," to "yield;" and "." to "O();" 23:28:51 !befunge98 http://rage.kuonet.org/~anmaster/nosuchfile 23:28:56 hm? 23:29:05 !befunge98 http://rage.kuonet.org/~anmaster/mycology.b98 23:29:06 0 1 2 3 4 5 6 7 23:29:28 Hey, http://rage.kuonet.org/~anmaster/nosuchfile doesn't exist! :P 23:29:42 GregorR-L, indeed it doesn't. Was wondering about error message. 23:30:02 None 8-D 23:30:18 Look at my codes if you want to, to help me tell me what I am missing? 23:30:22 also I think your version is outdated? 23:30:25 it is 4.0 23:30:27 not 4.0.1 23:30:36 Oh noes! 23:30:38 err 23:30:41 0.4 not 0.4.1 23:30:42 even 23:30:43 My version of what? 23:30:52 GregorR-L: he probably released a new cfunge 23:30:54 0.000001ms faster 23:30:55 GregorR, cfunge 23:30:59 And I can't use esotope-bfc because it is Python and I need the optimizer also be written in Javascript. 23:31:10 locally: That the interpreter's version is 41 23:31:11 -!- inurinternet has quit (No route to host). 23:31:19 That the interpreter's version is 40 23:31:20 Feel free to send me a hg bundle. 23:31:29 GregorR, it was some time ago (weeks?) 23:31:30 See my codes in http://zzo38computer.cjb.net/vonkeror/Vonkeror.zip the file modules/brainfuck.js contains the optimizer of brainfuck into Javascript. 23:31:53 GregorR, what is your file with the version info 23:31:55 AnMaster: If you think that I'm going to follow the versions of all the interpreters installed, you're quite severely incorrect :P 23:32:01 USED_VERSION 23:32:01 so I can know what rev to diff from 23:32:04 yes 23:32:08 what does it contain! 23:32:15 !sh cat interps/cfunge/USED_VERSION 23:32:15 http://rage.kuonet.org/~anmaster/cfunge/ 0.4.0+bzr:trunk:r763 23:32:19 ah 23:32:28 =a!<_^% 23:32:31 ↑afiosdj 23:32:41 ehird: Fascinating. 23:32:48 GregorR-L: pojdpaosdjpoajp!!!!!!! ! 23:32:50 -!- Sgeo[Pidgin] has joined. 23:32:56 \\\\\\//////λλλλλλλλ 23:33:04 ⁹⁸⁰‽↙ababababau˙ª´• 23:33:11 Is the guest account of Ubuntu wiped at logoff? 23:33:11 Sgeo[Pidgin]: Having "[Pidgin]" on your name is just advertising "I use shitty IRC clients" 23:33:15 AnMaster: If you think that I'm going to follow the versions of all the interpreters installed, you're quite severely incorrect :P <-- you could sign up for the news letter (sourceforge project news simply) 23:33:17 :P 23:33:24 If so, then I think that means it's secure enough for my needs 23:33:25 My program always wraps values of cells 0 to 255, and has two new commands * and ~ for using the second tape. I want to know if there is a way for checking when it doesn't need to wrap and therefore optimize it better. 23:33:25 Sgeo[Pidgin]: Storing your WORLD-ENDINGLY IMPORTANT SSN? 23:33:35 Sgeo[Pidgin]: lern2gpg 23:33:54 GregorR-L, didn't bother installing XChat yet 23:34:34 GregorR, does plain diff work for you? 23:34:41 Finefine. 23:35:04 Another thing that netcat does in Windows, if you are typing, it won't interrupt what you are typing with the output, it will let you finish typing first. Does readline do that? 23:35:18 ... that seems terrible :P 23:35:46 zzo38: that's awful 23:35:51 it means you miss out on stuff :P 23:35:54 but 23:35:58 readline will repeat the line again after 23:35:59 I think 23:36:01 so you don't lose the trail 23:36:09 I would assume so, yeah. 23:36:41 Also, is zzo38 looking for http://codu.org/rawirc.c ? :P 23:36:57 GregorR-L, http://rage.kuonet.org/~anmaster/r763_to_r777.diff is in the cfunge source dir directly. Then you need to change USED_VERSION to 0.4.1+bzr:trunk:r777 23:37:07 GregorR-L, does that work for you 23:37:14 GregorR, make clean and make after 23:37:20 OK if readline just puts output and then repeats the typing line afterward so that you can finish typing, that is even more better than Windows. Now the only thing needed is control-codes display mode and to make your typing a different color than the server's typing and then it is completely good. 23:37:56 Bam! Underfeatured IRC client. 23:38:03 ehird, which one? 23:38:08 oh... netcat 23:38:10 oh my 23:38:28 Done 23:38:38 !sh cat interps/cfunge/USED_VERSION 23:38:39 http://rage.kuonet.org/~anmaster/cfunge/ 0.4.0+bzr:trunk:r777 23:38:50 !befunge98 http://rage.kuonet.org/~anmaster/mycology.b98 23:38:51 0 1 2 3 4 5 6 7 23:39:11 GregorR-L, um? 23:39:20 Um what 23:39:30 ah yes it works 23:39:32 -zzo38- VERSION I am using netcat on Windows right now. But one day I will get Linux instead and maybe use rawirc.c or netcat with readline 23:39:35 oh 23:39:36 my 23:39:55 zzo38, anything wrong with a normal irc client 23:39:59 One big benefit of rawirc.c over netcat: It PINGs and PONGs for you :P 23:40:04 like irssi, xchat or whatever 23:40:04 "Student Information effective from Fall 2008 to The End of Time" 23:40:12 GregorR-L: freenode doesn't need pings/pongs 23:40:17 what is rawirc.c 23:40:23 I don't need to reply to your PING message. The rawirc.c that you posted looks interesting, I will look at it more, a bit 23:40:29 ehird: FreeNode has a very long timeout for pings/pongs, but it does get pissed at you if you never pong. 23:40:29 Expected Graduation Date: May 21, 2009 23:40:34 23:36 GregorR-L: Also, is zzo38 looking for http://codu.org/rawirc.c ? :P 23:40:38 ah 23:40:46 GregorR-L: Very long = weeks? 23:40:46 -GregorR-L- VERSION xchat 2.8.6 Linux 2.6.29-1-686 [i686/2.40GHz] 23:40:49 optbot never responded to ping 23:40:52 quite sensible 23:40:53 and never got disconnected 23:41:07 ehird, true, freenode doesn't require it 23:41:08 ehird: Idonno, I recall EgoBot getting bumped. Maybe its only if you send no output whatsoever. 23:41:12 most other irc networks does 23:41:18 and yeah what GregorR said 23:41:23 The automatic ping-pong is useful. What would be very useful is a option to enable/disable that option, in case for whatever reason, you want to do it manually. 23:41:26 Freenode is the only IRC network worth bothering with ;-) 23:41:33 The automatic ping-pong is useful. What would be very useful is a option to enable/disable that option, in case for whatever reason, you want to do it manually. 23:41:34 um 23:41:35 zzo38: WHY would you want to do it manually‽‽ 23:41:35 why 23:41:36 :-D 23:41:39 WHY ON EARTH 23:41:48 zzo38: I haven't changed rawirc.c in years, but you can delete the relevant lines :P 23:41:48 and 23:41:48 ahh zzo38 is great 23:41:53 why not a normal irc client 23:42:03 AnMaster: BECAUSE THEY'RE FOR PUSSIES 23:42:15 -GregorR-L- VERSION xchat 2.8.6 Linux 2.6.29-1-686 [i686/2.40GHz] 23:42:19 right pussy! 23:42:37 I WISH I HAD PUSSY 23:42:42 *rimshot* 23:42:45 haha 23:42:47 Probably no reason to do it manually, but it should be configurable, together with configurable colors and keyboard shortcuts (rawirc.c uses ^P for PRIVMSG and ^O for last channel, but if you could add more with a configuration file, would be useful, 23:42:48 I have a pussy. In my lap. 23:42:52 She's purring. 23:42:56 zzo38: The whole program should be configurable. 23:43:01 The single configuration option is program_source. 23:43:14 This is more flexible in case you want to, say, make toast. 23:43:16 Or a web browser. 23:43:23 X-P 23:43:25 um 23:43:28 Actually that's been done 23:43:30 It's called emacs 23:43:38 I was just about to mention it 23:43:43 * AnMaster use ERC in emacs yeah. 23:43:57 I like automatic ping-pong, so I don't want to delete it. But if I modify it I will make automatic ping-pong configurable, but still enabled by default (I have no reason to disable it, but later on there might be a use for it, in case you want to test something, maybe) 23:43:58 because it is so configurable. More than any other normal client 23:44:06 while still doing most of the normal client stuff 23:44:13 zzo38: to test something couldn't you use netcat? 23:44:32 -!- BeholdMyGlory has quit (Remote closed the connection). 23:44:46 Would it be bad for me to ask the average GPA of people in here? 23:44:54 Sgeo[Pidgin], what the hell is GPA 23:44:58 72.5 23:45:02 AnMaster: school thing. 23:45:02 Sgeo[Pidgin]: Apparently :P 23:45:07 http://en.wikipedia.org/wiki/Grade_(education) 23:45:09 ehird, never heard of it 23:45:11 grade point average 23:45:23 ehird: pretty sure it goes up to 4 23:45:30 Sgeo[Pidgin]: this one ... goes up to 72. 23:45:32 I got an A- this term so I got demoted to a 3.98 >: ( 23:45:37 It's like going up to 11, but moreso. 23:45:53 Sgeo[Pidgin], in Sweden there is one that goes up to 20 23:46:02 Or is it 22, AnMaster? 23:46:06 AnMaster: Divide that by 5 :P 23:46:08 Got an A in all classes but two. One I got an A-, and one I got a C 23:46:10 err what 23:46:15 AnMaster: http://en.wikipedia.org/wiki/Up_to_eleven 23:46:16 I don't think the A- was recorded as an A- 23:46:23 GPA: 3.78 23:46:26 um 23:46:28 it's from Spinal Tap 23:46:32 I meant as in max value is 20 23:46:35 Yes 23:46:38 I know what you meant. 23:46:39 AnMaster: In the US, grades are basically: A=4.0, B=3.0, C=2.0, D=1.0, F=0.0, then average by number of credits. 23:46:44 it is used when you apply for university 23:46:48 The phrase was coined in a scene from the 1984 mockumentary/rockumentary This Is Spinal Tap by the character Nigel Tufnel, played by Christopher Guest. In this scene Nigel gives the rockumentary's director, Marty DiBergi, played by Rob Reiner, a tour of his stage equipment. While Nigel is showing Marty his Marshall guitar amplifiers, he points out one in particular whose control knobs all have the highest setting of eleven (unlike standard amplifiers, wh 23:46:50 ose volume settings are typically numbered from zero to ten), believing that this numbering actually increases the volume of the amp ("It's one louder."). When Marty asks why the ten setting is not simply set to be louder, Nigel pauses, clearly confused, before responding, "These go to eleven".[2][3] 23:46:51 after you finished high school 23:47:02 AnMaster: SO, if the max value is 20, then divide by 5 to get something roughly equivalent to US GPA. 23:47:09 Another feature to add to rawirc (I might add it, one day) is if you type PASS, it will echo the rest of your command as asterisks regardless of what you actually type (also configurable, of course). 23:47:11 I have 17.5 in that system 23:47:12 btw 23:47:20 zzo38: Erm. 23:47:22 Sometimes those numbers, in high school, are incremented for honors or college credit courses. 23:47:25 Couldn't you just type asterisks, zzo38? 23:47:30 I mean... 23:47:35 ... why god why? 23:47:44 ehird: It will ECHO the rest of your command as asterisks :P 23:47:45 Making for 5.0 semesters being theoretically possible. 23:47:48 oh for the PASS command 23:47:54 that's still ridiculous :-P 23:47:58 pikhq, what? 23:48:00 anyway 23:48:00 ehird: SO'S YOUR FACE. 23:48:04 who cares about the US system 23:48:10 What if your password isn't asterisks? The reason is so that you can type in your password and it is not displayed on the screen 23:48:11 People in the US? 23:48:12 People in the US. 23:48:17 AnMaster: WE ARE USA. YOU HAVE NO CHANCE TO SURVIVE MAKE YOUR TIME. 23:48:21 and we have different systems in primary school, high school and university. 23:48:25 You're remarkably anti-US, AnMaster; it makes you look even more idiotic than UScentric people 23:48:25 here in Sweden 23:48:28 My HS cumulative GPA was 12.569... making me wonder what the max for that is 23:48:28 three different systems 23:48:29 SOMEONE SET US UP THE BOMB. 23:48:39 Sgeo[Pidgin]: 40 23:48:41 pikhq, yeah. The CIA did :P 23:48:59 GregorR-L: Oh burn. 23:49:04 :P 23:49:13 anyway 23:50:50 IG (not passed), G (passed), VG (passed with excellence), MVG (passed with lots of excellence) is the basic system used in Sweden. For primary and high schools. At university level there is U (not passed) G (passed) VG (pased with excellence) 23:50:55 those are rouge translations 23:51:20 Passed with lost of excellence sounds so much funnier than summa cum laude. 23:51:20 They don't seem very red. 23:51:22 *lots 23:51:41 Those don't seem very high-grained. 23:51:44 Erm. 23:51:46 Well, maybe it translates to magna cum laude 23:51:46 Finely grained. 23:51:55 Not that A,B,C,D,F is very finely grained, either... 23:52:15 pikhq: That's why we have this A-, B+, B-, C+ sh** :P 23:52:22 Wait, there's no E grade in the US? 23:52:23 WTFBBQ 23:52:41 Passed with lost of excellence sounds so much funnier than summa cum laude. <-- I didn't remember the Latin term 23:52:43 GregorR-L: My school had them, but didn't apply for the GPA. 23:52:43 and 23:53:06 ehird: A, B, C and D are just lettered from A, but "F" isn't meant to be the next letter, it stands for "failed" 23:53:07 A* = 4.0, B* = 3.0, C* = 2.0, D* = 1.0, F* = 0.0. 23:53:18 GregorR-L: AAAAAAAAAAAAAAA THAT SUCKS THERE NEEDS TO BE AN E GRADE 23:53:19 E+ 23:53:20 it is "MVG = Mycket Väl Godkänd". Literal translation: "Much Well Passed". 23:53:21 Oh, and D was very much a passing graid. 23:53:25 Grade, even. 23:53:27 which just doesn't work in English ehird 23:53:30 pikhq: lawl 23:53:54 -!- Judofyr has quit (Remote closed the connection). 23:53:57 Well, maybe it translates to magna cum laude <-- yes 23:54:06 Because that's so English ;) 23:54:06 and then VG would be cum laude 23:54:10 In ascending order: F, D, C, B, A, ´, ¥, ↓, œ, ‽, *BEEP*, 23:54:12 Segmentation fault 23:54:29 * GregorR-L got a Segmentation fault+ once. 23:54:34 GregorR-L, everyone know English is a mix of Germanic and Latin languages. Oh and a bit of celtic too iirc. 23:54:45 AnMaster: Latin only through French. 23:54:50 French kills everything :P 23:54:51 yeah 23:54:54 FRENCH 23:54:55 KILLS 23:54:56 EVERYTHING 23:55:00 A new horror movie. Out Summer. 23:55:09 Starring French Stewart 23:55:10 -!- darthnuri has joined. 23:55:19 And the whole of Franc 23:55:20 e 23:55:22 and the French language itself 23:55:27 Personified 23:55:32 argh, why do I have the word 'stewart' stalked 23:55:33 And unpersonified 23:55:38 FRENCH 23:55:39 KILLS 23:55:40 EVERYTHING 23:55:42 a film by French. 23:55:48 AnMaster: Mostly place names are Celtic. 23:55:48 Gracenotes: Because you're such a French Stewart fan? 23:56:00 -!- darthnuri has changed nick to inurinternet. 23:56:10 oh yes, now I remember, it's because of James Stewart's calculus book 23:56:25 rawr. 23:56:25 pikhq, cwm! 23:56:28 "The following survey pages must be completed prior to accessing the Registration:" 23:56:32 ( *cester == unholy amalgamate of Celtic and Latin) 23:56:34 (Welsh yeah) 23:56:44 pikhq, what does cester mean 23:56:50 which I don't have an ebook of by the way. 23:56:52 I know it is found in many 23:57:05 Something like "town"? 23:57:06 Gracenotes: Neither do I. And neither does French Stewart. 23:57:13 pikhq, kay 23:57:21 *wink* 23:57:24 Kinda screwy when you consider that my last *name* is Worcester. 23:57:39 hah 23:57:40 pikhq: Whenever I think Worcester I think http://en.wikipedia.org/wiki/Worcestershire_sauce 23:57:49 haha 23:58:06 Pronounced "Warshrrrhshfshouapfhdoiafs" 23:58:09 ehird: Well, Worcestershire sauce comes from the shire containing the town that gives me my last name... 23:58:13 (Which I seem to alternate between liking and hating every time I try it) 23:58:16 pikhq: Ar. 23:58:27 "Woostershir sauce" is the pronounciation, BTW. 23:58:38 (I'm not giving you IPA) 23:58:53 pikhq: But WHY X_X 23:59:20 War sest er sher. ← say it ten times quick 23:59:24 BECAUSE ENGLISH SUXORS. 23:59:29 ehird: Wrong. 23:59:46 i knoq 23:59:47 w 23:59:48 ... Ten times quick will get you close to how it's actually pronounced, though. 23:59:51 I was just doing it the obvious way 23:59:58 which is har 23:59:58 d