00:01:29 Frankly, you'll find people more interested if you make something more bizarre. 00:09:37 yes! 00:10:28 what we need is a language based on _living_ cells 00:10:40 * MissPiggy skimmed a book on that 00:12:52 oerjan: we'll call it... brainfuck! 00:13:39 brainfuck on a living brain? 00:14:06 the cells will have to divide, naturally 00:14:56 it will be an imperative language 00:22:03 Idonno, something about cell division makes me think of evaluating expressions ... not sure why :P 00:22:37 no, it must definitely be imperative. 00:34:34 * pikhq has done even more ridiculous things in the name of functional C programming. 00:35:04 I made my lambda macros use blocks. Now, they're only macros so that I can force the damned things to go through Boehm GC. 00:39:55 -!- charlesq__ has joined. 00:42:18 -!- charlls has quit (Ping timeout: 265 seconds). 00:49:04 -!- charlesq__ has quit (Ping timeout: 265 seconds). 01:03:29 -!- songhead95 has joined. 01:03:42 -!- charlls has joined. 01:05:18 -!- augur has quit (Ping timeout: 276 seconds). 01:06:50 -!- Oranjer has joined. 01:06:58 hello! 01:10:46 HELLO 01:11:08 BYE 01:11:09 -!- songhead95 has left (?). 01:13:11 awwww 02:31:41 hi 02:32:22 hello! 02:32:59 -!- augur has joined. 02:34:47 Analysis of Noise and Audio Library and Sound Exchange for X11 02:35:11 I shall now write this, and submit it (as its acronym) to Google Code. 02:37:35 WHAT IF WOLFRAM ALPHA GOES SINGULAR? 02:38:10 http://www.wolframalpha.com/input/?i=can+entropy+be+reversed%3F 02:38:12 * MissPiggy giggles 02:38:42 locally, yes; globally, no 02:38:50 * oerjan bets on "Insufficient data for meaningful answer" 02:39:43 * oerjan wins 1 polka-dot panda 02:41:37 I'm glad I have read that short story 02:41:53 * oerjan waits for eliezer yudkowsky to smack coppro for suggesting a singular AI can be less than global 02:42:12 wait what? 02:42:35 well what _else_ would you mean? 02:42:54 oh entropy 02:43:31 _lol_ 02:43:37 this underlines 02:43:40 I'm scared 02:43:57 it's your client 02:43:58 Wareya: it's a client thing 02:44:07 *bold* 02:44:12 *.* 02:44:21 I've always used ^b for bold 02:44:31 and ^u for underlines 02:44:59 Wareya: this channel censors colors, at least it used to. 02:45:49 testing 02:46:18 /italic/ 02:46:19 right, the ^b's didn't show up in the logs 02:46:27 ^b 02:46:37 MissPiggy: not shown any special in my client 02:46:48 nor mine 02:46:54 at least, not the terminal 02:47:49 Wareya: by logs i mean the lines in the topic. you cannot actually see whether the irc server accepts your _own_ control codes directly 02:48:00 *link in the topic 02:48:15 I know 02:50:53 i suppose the client could try to show it according to the channel mode though, mine (irssi) doesn't. 02:51:00 -!- Sgeo has joined. 02:56:17 -!- uorygl has joined. 02:57:49 -!- Wareya has quit (Ping timeout: 264 seconds). 02:58:05 -!- Wareya has joined. 03:11:41 -!- Pthing has left (?). 03:13:57 goodnight! 03:14:05 Good night. 03:14:08 -!- Oranjer has left (?). 03:23:52 -!- Sgeo_ has joined. 03:27:36 -!- Sgeo has quit (Ping timeout: 265 seconds). 03:37:10 -!- oerjan has quit (Quit: Good night). 03:51:51 -!- MissPiggy has quit (Quit: Lost terminal). 04:36:40 -!- amca has joined. 05:20:02 -!- oklopol has joined. 05:20:07 -!- oklopol has changed nick to oklofok. 05:23:46 glium 05:24:12 what's a glium? 05:28:47 Not a muilg 05:29:32 it's the singular of glia 05:29:49 Where can I buy these glium? Ebay? 05:31:32 :o 05:31:38 MY glium 05:31:40 MINE 05:31:55 Is it your precious? 05:32:08 i wanted to do some topology, but the lamp is depressed and i can't see :< 05:32:44 Sing the lamp a cheery song! 05:33:01 "Always look on the bright side of life" or something 05:33:19 Always look on the bright side of death! 05:33:22 * pikhq starts singing 05:34:20 i doubt it can be brought out of such a deep ression 05:34:59 guess i could just change the bulb 05:35:16 or, alternatively, i could just use the light from my computer screen 05:37:01 sort of unfortunate my windows theme is almost completely black 05:38:19 No wonder your light is depressed. Maybe it likes happy colours like yellow, or pink! 05:38:37 not gonna happen! 05:38:40 -!- mycroftiv has joined. 05:39:12 yellow at least, god that's an ugly color 05:42:14 ... Windows? 05:42:17 Oh, right. 05:42:28 That still exists, doesn't it? 05:45:16 vista is an okay os 05:45:20 pikhq: What OS do u use? 05:45:29 he uses cool hacker oses 05:46:01 amca: Gentoo. 05:46:27 With a somewhat quirky window manager setup. 05:46:34 Im using Fedora 8 >.> 05:47:26 pikhq: Which WM? 05:48:30 Ratpoison. 05:48:36 For managing *both* of my windows. 05:50:39 One would be the irc win. What's the other? 05:51:02 (if you dont mind me asking) 05:51:03 ... IRC window? 05:51:06 That's crazy talk. 05:51:10 the root window and xterm for screen obv 05:51:13 I have a terminal and a web browser. 05:51:21 3 windows then 05:51:22 Oh, right. The root window. 05:51:37 I always forget that that's there. 05:51:47 I only see it when I typo. 05:51:50 So, you are not using the term for irc? Telepathy? :) 05:52:08 No, I just don't have a dedicated IRC window. 05:52:16 I just have a terminal running screen. 05:53:05 can I ask which term u use? 05:53:13 i have a screen running terminal 05:53:15 urxvt. 05:54:31 bsmntbombdood: text mode linux terminal? 05:58:20 Which, the physical terminal, or the Linux virtual terminal? 05:58:20 :P 05:59:26 That's the phrase I was looking for: Linux virtual terminal 06:03:13 -!- lament has quit (Ping timeout: 264 seconds). 06:04:13 -!- lament has joined. 06:05:39 -!- augur has quit (Ping timeout: 265 seconds). 06:09:40 pikhq: Can I ask why you prefer urxvt over all others? 06:10:02 amca: Lightweight, supports Unicode. 06:10:25 Does it have tabs? 06:10:37 No, why would I want those? 06:10:45 Those require a mouse to use. 06:11:28 Ah, no they dont. I switch between tabs with +PageUp/Down all the time 06:11:44 s/alt/ctrl/ 06:11:50 They take up space on screen. 06:12:11 My entire screen is text ATM. 06:13:08 urxvt doesnt have a menu, then? Not even hidden one thatt appears when required? 06:13:44 the only oses i can stand are cell phone and calculator oses 06:14:03 i wish computer oses were less extendable and more good. 06:14:18 oklofok: What do you torture yourself with on your comp? 06:14:23 vista 06:14:36 i've tried windowses and ubuntu 06:15:00 ubuntu was too hard to use, you had to press multiple buttons to make things work 06:15:08 I think it has a hidden one that involves a mouse click of some sort. 06:15:08 Have you tried DOS 6.22 yet? 06:15:34 text-only ones are usually good, they are just ugly 06:15:48 oklofok: Ugly but usable. 06:16:56 sure 06:17:50 Perhaps Slackwafre 1.0 would be best? ;) 06:18:00 what's that 06:18:50 oops. Should be Slackware 06:19:02 One of the first Linux distro releases 06:20:17 i'm sort of fed up with linux, ubuntu had me constantly learning how things work, because they didn't 06:20:29 granted, i didn't have a very new version. 06:20:53 i don't want to learn irrelevant things 06:21:27 You want an OS to "just work". You dont need the complexity that flexibility brings? 06:21:35 yes 06:21:50 but my calculator can't handle flash :< 06:22:09 What calc is it? 06:23:05 ti-86, i don't actually use it much, i just said that because i just praised calculator oses. 06:23:10 nice and simple 06:24:02 oh also i obviously don't want the computer to forget state when i turn it off, and i want it to start up instantly 06:24:07 (just like any calculator) 06:24:35 but that's a minor thing 06:27:01 What processor does TI86 run on? 06:27:23 no idea 06:28:24 i don't really care, i just know it runs the native basic very slowly 06:28:48 I think I have a TI84 which was an upgrade to the TI83 and runs on a z80 06:28:53 made this snake game in it, no way to make it fast enough to be challenging :< 06:31:02 I meant to make a snake one on mine, but got distracted and never finished it >.> 06:32:08 my attention span is about two hours for stuff like that 06:32:33 complete waste of time in that any monkey could do it, i basically just wanted to have something to play during lectures 06:33:40 -!- augur has joined. 06:34:01 :) 06:34:23 You seem to be a kind of non-geeky geek. 06:35:43 maybe, maybe 06:38:15 hey guyses 06:38:22 oklofok especially 06:38:22 oh i also started on an ski interp, that one i never finished, but had some fun ideas, i used the screen as a stack 06:38:44 columns were continuations 06:38:46 me?!? 06:38:48 shit 06:38:52 you! 06:38:53 <3 06:38:56 * augur pounces oklofok 06:39:07 oh dear 06:39:12 ... oklofok, non-geeky? 06:39:27 Well. Maybe compared to some others here. 06:40:03 im writing this super humongoid article for wikipedia 06:40:03 omg 06:40:05 oklofok: ski thing sounded interesting 06:40:51 augur: what about? 06:41:08 controlled grammars 06:41:20 amca: i implement ski in pretty much everything i touch, because it's nice and simple, and very, very pure. 06:41:54 :) 06:41:55 (always ski, never sk, i think i is important for purity) 06:42:05 i for purity? 06:42:07 It's just skk. 06:42:15 yep, it's more coincidence that i happens to be implementable in terms of s and k 06:42:21 there's mathematical reason to have all thre 06:42:23 *three 06:42:27 ? I would have thought sk was more pure than ski 06:42:45 amca: try reading the proof that all expressions can be expressed as SKI some time 06:42:47 purity != minimalism 06:42:50 the i is very necessary there 06:42:55 *all lambda expressions 06:43:05 well s and k can express anything, i'd say sk is mathematically purer, ski is programmatically purer. 06:43:07 or maybe what augur said. 06:43:12 all i know is ski > sk. 06:43:24 and I can't think of a sane way to do the proof for sk without implementing i in terms of s and k first 06:43:30 -!- adu has joined. 06:45:00 oklofok: Do you normally write your expressions in lambda calc first then convert to sk? 06:46:06 amca: I know I do 06:46:09 except I convert to ski 06:46:19 Unlambda has an i, and why else would you convert? 06:46:22 sorry,, I forgot the i 06:46:41 oklofok: Do you perform I/O with your SKI? 06:46:46 ok, so i = ``skk, but who cares 06:47:05 pikhq: obviously not :| 06:47:22 you can use Unlambda I/O, but that's rather impure and (probably deliberately) convoluted 06:47:23 oklofok: But it's so very simple to do in a purely functional manner. 06:47:24 `ii is important 06:47:25 No output. 06:47:27 metaphysically 06:47:34 scarf: Bah. 06:47:35 pikhq: how then? 06:47:38 Lazy K I/O. 06:48:00 amca: i don't write ski at all, usually. 06:48:06 i write it in other things. 06:48:11 *implement 06:48:27 oklofok: You use a prog lang that compiles to ski? 06:48:38 The program is passed a lazy infinite list of church numerals representing the input in UTF-8. After an "end of file" condition on input, the values are just 256. 06:48:52 right 06:48:58 The program *returns* a lazy list of church numerals representing the output in UTF-8. An EOF is represented by 256. 06:49:08 yeah obviously 06:49:23 Viola. Lazy K I/O. 06:49:26 amca: no, i don't write programs in ski. 06:49:32 not big ones 06:49:35 its his native language, amca. it really is. 06:49:47 augur: That's zzo38. 06:49:57 ;) 06:50:01 Well, either that or x86 machine code. It's hard to tell. 06:50:49 actually, zzo38 doesn't have any particular native language, but all natural and all programming languages in existence just flow naturally from him 06:50:52 Why do ski machines tend to use church numerals? Why not lists of booleans for numbers?? 06:51:02 and then oklopol has to discover them 06:51:10 amca: Because church numerals are much nicer. 06:51:10 amca: arithmetic's easier, and it's mathematically nicer 06:51:36 ok, I suppose decrement's slightly easier with lists of booleans; but addition and multiplication are easier with church numerals 06:51:42 (a list of booleans for numbers is a *royal pain* to deal with functionally) 06:51:59 Shorter programs with church numbers? 06:52:45 pikhq: oh, I thought you meant unary 06:52:52 writing it in /binary/ would be really ouch 06:53:10 scarf: He said booleans, so, yeah. 06:53:14 *Pain*. 06:53:23 I was assuming end of list / not end of list 06:53:27 otherwise you need a marker for the end 06:53:47 really, though, binary may translate well into wires, which is why computers use it 06:53:49 hey, if your design is modular enough, the implementation of numbers will be hidden. 06:53:52 but it translates badly into functions 06:54:16 i guess you still have to implement the operations, tho... 06:54:35 oklofok: ... *SKI*. 06:54:54 yay exercise one done... i should probably close the irc window at some point 06:54:54 Your best chance of doing it modularly is passing the implementation as an argument. 06:55:03 :P 06:55:05 scarf: Could always have a "false" value for end-of-list 06:55:17 pikhq: have you seen my bf in python lambdas? 06:55:23 amca: if you're using true and false as 1 and 0, what do you use as EOL? 06:55:30 -!- charlls has quit (Quit: Saliendo). 06:55:39 i did exactly that, long list of lambdas as arguments 06:55:56 pikhq: that's how I write relambda 06:56:03 scarf: An actual list with a "nil" value? 06:56:05 I/O gets abstracted and passed in as arguments 06:56:15 pikhq: well, OK 06:56:34 the issue with SKI, though, is that the only way to tell the value of something is by passing it arguments and seeing what happens 06:56:38 scarf: Your EOL would only be in the cdr, not the car, all your 1s and0s would be in the car, so you can have false in the cdr for the EOL 06:56:53 so, the result of all operations is either an infinite loop (not good), or defined 06:57:03 scarf: Uh... 06:57:05 so if you have a typical false value (say `ki) for your cdr 06:57:12 then you can take its head and tail 06:57:16 (typically both i, in this case) 06:57:34 so you get false = [true | true] 06:57:47 there should be a language where all flow control relies on the detection of infinite loops 06:58:08 scarf: You represent your list as: (end-of-list-p, (car, cdr)) 06:58:32 pikhq: heh, then you're effectively using 1-hot-ternary-coded-binary 06:59:16 nil is (True, (I, I)) 06:59:46 yep, that would /work/, but it's effectively the same thing as just using ternary 06:59:57 Well, yes. 07:00:40 and you probably couldn't write multiplication, say, anywhere near as effectively as with church numerals 07:01:14 oklofok: hmm, istr finding something like that on the esolang wiki, an esolang based on solving the halting problem 07:01:38 Can you perform binary ops on church numerals? (and, or, xor, etc) 07:01:57 not easily, but why would you want to? 07:02:03 -!- lament has quit (Ping timeout: 240 seconds). 07:02:04 Yes, but probably not *easily*. 07:02:31 link if so, i doubt it's done in an interesting way. 07:02:43 Binary ops aren't exactly useful things on non-binary numbers. 07:02:55 So you can easily do blitting 07:03:36 ... 07:03:50 amca: why would you be using the bits of a number to encode pixels in memory? 07:03:54 Blitting, in a language without anything beyond stdin and stdout? 07:03:55 you'd do blitting via array copies 07:04:04 -!- lament has joined. 07:04:08 -!- tombom has joined. 07:04:11 scarf: List copies, really. 07:04:27 well, yes 07:04:31 or tuple copies 07:04:34 oklofok: looks like what I'm refering to is http://esoteric.voxelperfect.net/wiki/Brainhype and http://esoteric.voxelperfect.net/wiki/Onoz 07:04:39 the two data structures are rather different in SKI 07:04:49 pikhq: For sprite movement etc. I suppose in a functional language, raytracing would be more appropriate rather than blitting 07:04:59 amca: There are no graphics. 07:05:13 why? 07:05:14 amca: There aren't even, really, stdin and stdout. 07:05:27 There is the argument, and there is the result. 07:05:32 *That's it*. 07:05:55 Why cant the result be the video frame every 1/60 seconds? 07:06:42 Well, it can. You could, of course, have the result be a raw video dump just fine. 07:06:48 But you're not doing blitting. 07:06:59 Hence my comment about ray-tracing 07:07:12 Blitting is a very specific technique used soley because binary operators are fast in low-level languages. 07:07:16 amca: you're thinking incorrectly here 07:07:25 Alternatively, if you were doing blitting, the result could be instructions to video hardware to perfom the actual blitting 07:07:26 you're thinking "blitting is fast on a computer, so it should be fast on an SKI machine" 07:07:37 you can get the same effect, sure, but you wouldn't do it via copying bit-blocks 07:07:41 you'd be copying lists instead 07:07:44 SKI doesn't have binary operators at all. 07:08:00 SKI can do implementations of them, but they are slow. 07:08:02 sorry, logging out and back in, the mouse focus here has gone insane 07:08:19 Because your computer is *pretending* to be a SKI machine, and this process is slow. 07:08:31 scarf: No, Im not. Im thinking "blitting is fast on video hardware, so video hardware would expect input to refer to it" 07:08:40 -!- scarf has quit (Remote host closed the connection). 07:08:40 (well, it's actually much faster than anything else you could find, but that's beside the point.) 07:09:03 Of course, my reasoning is perverse. That's is half the point. To see how far I can stretch an analogy for myself. 07:09:12 amca: But blitting is fast largely because you are directly modifying state. 07:09:13 -!- scarf has joined. 07:09:20 In SKI, there is no state. 07:09:26 There are only S, K, and I. 07:09:36 I have no idea how the bottom toolbar can have stolen mouse capture like that... 07:10:06 olsner: neither of those really uses the halting detection for anything 07:10:21 they're just bf with halting detection, and bf without infloops 07:12:14 pikhq: Have you heard of the Reduceron? 07:12:25 amca: Yes, the graph reduction machine. 07:13:52 I was thinking you could hook it up to video hardware and input devices, and have each eval be for each frame 07:14:04 oklofok: yeah yeah 07:14:42 amca: But clearly if you evaluate the same function with the same arguments, you will get the same result. 07:15:40 oh i missed the "looks like what i'm ..." thing, probably you realized that too 07:15:44 i mean something like 07:15:56 you can't even write a program that halts, directly 07:16:01 everything just goes into an infloop 07:16:10 but, this will be detected, and things will return 07:17:11 yes. Which is why with each iteration, different arguments to be applied to the program are eval'd. The arguments would include input device state and , say, gameworld model, and the outputs would be changed game world model and video hardware input. 07:17:36 Would there be a better way to implement a game on a reduceron? 07:21:28 -!- jcp has quit (Quit: I will do anything (almost) for a new router.). 07:23:44 either jcp wants many routers, or people don't like blowjobs anymore. 07:34:46 hi oklofok 07:35:19 hi adu 07:35:54 I've made a breakthrough with my language! 07:36:50 hi adu. What's your language? 07:37:08 cool! i have this vague recall that we talked about some language of yours, but can't remember what it was :) 07:37:08 I don't need to design, build, nor implement any part of it! brilliant! 07:37:23 Droscript 07:37:44 okay i don't think i've heard that name at least 07:38:09 I have some rudimentary documentation of it here: 07:38:15 http://drosera.co.cc/ 07:39:17 i have a new programming language too, currently undocumented, but i still like advertising it: www.vjn.fi/oklopol/clue.rar 07:39:53 i hate rars 07:40:29 sorry about that. 07:40:52 ugh, now i have to search through hundreds of downloads to find 5 files 07:41:06 i hate rars 07:41:11 ;) 07:41:29 i could reup in some other format, but my connection is pretty slow. 07:42:10 lzma is much more opensource than rar 07:43:22 but anyways, my language was supposed to by a Pythonic Haskell 07:43:32 i don't really care about open sorcity. 07:43:36 *sourcity 07:43:50 Blasphemer! 07:44:28 :) 07:44:46 adu: "supposed to by a" = " supposed to be a"? 07:44:52 yeah 07:45:22 -!- madbr has quit (Quit: Radiateur). 07:45:30 oklofok: then when you find yourself in a jail made by Microsoft, and they charge you $20/day to sit on the floor, and threaten to throw away the key if you want to use the toilet, and electrocute you every time you use the sink, then sure, stick with proprietary 07:46:01 amca: yes, i can't type 07:46:52 i'm not sure that sentence made any sense, but you have a point, using both open and closed source is much more restricted than just using open source. 07:47:24 like i can never experience the freedom of hating some file type because it's closed 07:47:55 big peeve: "Trusted" computing 07:48:11 the ultimate in closed source 07:48:28 What is "trusted computing"? 07:48:55 don't google it 07:48:59 http://www.gnu.org/philosophy/can-you-trust.html 07:49:43 adu: Are you a private concubine or RMS? 07:49:49 or = of 07:50:07 uh no 07:50:13 i just like him 07:50:30 can I be an open source/free software advocate who nevertheless thinks that RMS is crazy? 07:50:31 RMS is my hero 07:50:38 yes 07:50:42 many ppl do 07:50:56 I do 07:51:02 you can be a U.S. patriot who hates Obama 07:51:34 you know, the saying: "I love my country, but I fear my government" 07:52:08 trusted computing sounds like a great idea 07:52:18 if everyone wants to be a part of it 07:52:23 oklofok: can I give you a language to shoot yourself with? 07:52:30 :) 07:52:57 -!- tombom has quit (Read error: Connection reset by peer). 07:53:01 sort of like socialism in that sense 07:53:09 although i guess in a different direction 07:53:16 -!- tombom has joined. 07:53:24 oklofok: if by "Everyone" you mean 0.0000001% of netizens, then yes 07:53:41 well that would _clearly_ be nonsense, since i read here the other day that ericsson document _everything_ <-- quite. All documented functions at least. :D. Often new features are experimental and undocumented for a year or two before it is documented and considered stable 07:53:57 you're saying if 0.0000001% of people think trusted computing is a great idea, then imposing it on everyone would work fine? 07:54:07 i really don't think that's true 07:54:18 oerjan: and often even then it has a warning about that it might be subject to change for another year or so 07:54:40 i think and hope it would fail horribly 07:55:00 bbl university 07:55:04 no, i'm saying the only people who it benefits is 0.0000001% of netizens 07:55:18 and that has nothing to do with what i said 07:55:22 so naturally those would be the people who want it 07:55:43 -!- tombom_ has joined. 07:56:02 but since those are the same people in charge, it will likely be forced on the rest because of the power they hold 07:56:17 so in the end, what you said 07:59:06 -!- tombom has quit (Ping timeout: 252 seconds). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:07:07 -!- tombom_ has quit (Read error: Connection reset by peer). 08:07:29 -!- tombom_ has joined. 08:27:08 -!- tombom_ has quit (Ping timeout: 245 seconds). 08:29:48 -!- tombom has joined. 08:47:19 oklofok: :o 08:49:33 wanna learn about minimalist grammars? :D 08:59:45 -!- oklofok has quit (Ping timeout: 245 seconds). 09:06:27 -!- oklopol has joined. 09:11:03 -!- oklopol has quit (Ping timeout: 240 seconds). 09:11:21 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.). 09:18:52 -!- oklopol has joined. 09:47:03 oklopol! 09:47:28 -!- kar8nga has joined. 09:47:55 meeeeeeeeeeeeeeeeeeeeeee 09:48:56 wanna learn about minimalist grammars? :D 09:49:05 no time. 09:49:08 :( 09:49:13 it wont take long! 09:49:59 come to #minigram :D 09:50:17 if for no reason other than to get the logs 10:12:02 -!- adu has quit (Quit: adu). 10:29:46 -!- FireFly has joined. 10:34:09 -!- oklopol has quit (Ping timeout: 240 seconds). 10:42:04 -!- oklopol has joined. 10:42:52 -!- oerjan has joined. 10:55:24 -!- scarf has quit (Remote host closed the connection). 11:29:29 yay i just conquered the topologist's sine curve, the boss of level 1 in topology. 11:30:24 at least i think so, this is not a very well-organized game 11:31:55 * oerjan starts an alexander horned sphere rolling towards oklopol 11:32:16 :P 11:32:58 i don't even remember its definition, although i do remember what i'm supposed to do to kill it. 11:33:43 hopefully i can get some better weapons before the sphere 11:34:00 currently i'm basically fighting with my bare hands 11:40:35 augur: i read #minigram, i'm following the lecture sofar 11:40:52 -!- BeholdMyGlory has joined. 11:45:15 well not that you really even started yet 12:05:10 -!- oerjan has quit (Quit: Lateral). 12:08:54 -!- ais523 has joined. 12:10:46 eatness -> 12:11:21 -!- chickenzilla has quit (*.net *.split). 12:11:21 -!- pikhq has quit (*.net *.split). 12:11:22 -!- mycroftiv has quit (*.net *.split). 12:11:22 -!- EgoBot has quit (*.net *.split). 12:11:22 -!- HackEgo has quit (*.net *.split). 12:12:45 -!- pikhq has joined. 12:14:58 -!- kar8nga has quit (Remote host closed the connection). 12:15:20 -!- mycroftiv has joined. 12:15:47 -!- chickenzilla has joined. 12:33:00 -!- ais523 has quit (Quit: Page closed). 12:42:00 -!- scarf has joined. 13:55:00 -!- KingOfKarlsruhe has joined. 14:00:07 -!- amca has quit (Quit: good night). 14:15:29 -!- oklopol has quit (Ping timeout: 240 seconds). 14:16:56 -!- Libster has joined. 14:17:19 -!- Libster has left (?). 14:21:45 -!- bsmntbombdood_ has joined. 14:21:52 -!- MigoMipo has joined. 14:23:54 -!- bsmntbombdood has quit (Ping timeout: 248 seconds). 14:43:05 -!- kar8nga has joined. 14:49:55 "All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer. ~ IBM maintenance manual, 1925" 14:53:16 -!- tombom_ has joined. 14:55:33 -!- tombom has quit (Ping timeout: 260 seconds). 15:05:10 scarf, hi there. What sort of things would you recommend to work with VHDL on linux? 15:05:32 AnMaster: I use GHDL as a simulator, with gtkwave 15:05:56 I doubt there are free synthesizers around, though; all the ones I've seen tend to be nastily expensive 15:05:58 scarf, thanks. Will start a course in a few weeks about digital circuits & VHDL (basic level course) 15:06:10 although they generally run just as well on Linux as on Windows, which is interesting 15:06:31 I expect the uni has stuff for the labs. But having something to experiment with at home seems useful 15:06:36 (GHDL's interesting, as it effectively compiles VHDL to a binary, which is /not/ the normal way to simulate it; the binary produces simulation output) 15:07:11 scarf, what is a synthesizers in this case? Something to program real hardware? 15:07:19 AnMaster: pretty much 15:07:23 something to simulate it is just fine for me to begin with 15:07:36 to be precise, it generally generates a file used to program the hardware 15:08:03 ah 15:08:30 scarf, so a compiler to something that can be loaded into an FPGA basically? 15:08:43 yep 15:08:55 synthesizers are also often very slow 15:09:08 they can take half an hour to run for the little toy chips that they let undergraduates use 15:09:14 scarf, and you download it over a serial port or such? 15:09:24 and well over a day if you're trying to fit a lot of data onto a medium-sized chip 15:09:30 and you nearly always download over JTAG 15:09:41 which generally needs special software, and a driver for the JTAG cable 15:09:43 oh interesting 15:09:51 scarf, why jtag? 15:10:10 AnMaster: it's the standard very-low-level interface to reprogrammable hardware, nowadays 15:10:26 even if you have a device that can reprogram itself from software, JTAG's how you reset it if it screws uo 15:10:28 *up 15:10:30 When I programmed PIC12* it was generally done over serial port. 15:10:32 serial would be rather higher level 15:10:40 (PIC12F627 or something such iirc) 15:10:46 (maybe 629?) 15:11:33 (and PICs don't program over the serial port directly; what happens is they only need a couple of data wires to program, so the programmer just links them to a couple of wires in an RS232 link, maybe with voltage-level adaption, and drives them directly in a way rather unlike what the RS232 spec suggests) 15:12:05 scarf, well yes, you latched some leg high to make it enter programming mode 15:12:09 iirc 15:12:26 AnMaster: at least on the 16F series, you do it by putting 9V (or was it 12V) in on the reset pin 15:12:26 since my circuit used serial port for other purposes during normal operation 15:12:32 when the device normally only uses 5V 15:12:35 it was natural to do it over the same interface 15:12:40 but with a jumper iirc 15:12:48 that you moved to a programming mode 15:12:52 which is a really clever solution to stopping people entering programming mode by mistake 15:13:07 scarf, I don't remember the details 15:13:20 anyway I do remember I had to move a jumper to do it 15:13:23 and yes, IIRC on a PIC, the same two pins that are used for programming clock/data are the ones commonly used for clock/data on a uniplex data link 15:13:43 scarf, I also remember that the interrupt routine that read serial data was a pain to code. 15:13:56 not really, if you understand interrupts 15:13:59 you had to get timing right and make it finish before the next piece of data arrived 15:14:16 it's about eight lines of asm, or maybe thirty of C because the C compilers typically used for PICs are so bad 15:14:22 scarf, back then I barely did 15:14:40 scarf, also, there is no built in support for serial data in PIC12F* series 15:14:54 iirc there is in some more advanced models 15:15:02 AnMaster: even on the 16F series, it's just a buffer for one byte 15:15:10 umm, two bytes under certain circumstances, I think 15:15:12 scarf, no buffer thingy here on 12F 15:15:24 which means that you don't have to poll/respond to interrupts quite as often 15:15:32 but which still means that you have to do most of the work yourself 15:15:46 scarf, also remember you have very very limited memory, both ram and flash 15:15:54 AnMaster: yes, I know 15:16:07 I probably know more about PICs than you do 15:16:08 -!- tombom__ has joined. 15:16:23 I've even built a PIC programmer from components before, and written long programs for them in asm 15:16:35 scarf, true for more advanced models at least. But isn't the 16F series vastly more advanced than the 12F series? 15:16:48 not vastly, I wouldn't say 15:16:56 it has more random features that most people don't use 15:16:57 but that's about it 15:17:01 also, often more pins 15:17:29 scarf, more registers iirc too? 15:17:43 a bit, not all that much though 15:17:51 you might get maybe 100 bytes or so of memory on a high-end model 15:18:48 scarf, plus I needed some nasty logic to drive 12 LEDs with the 8 pin PIC I had. And some of those 8 pins were needed for other things. iirc I made use of that LED only works in one direction and to light up more than one led at once I just quickly switched between them 15:19:20 it's a standard trick, I've used it myself 15:19:22 -!- tombom_ has quit (Ping timeout: 248 seconds). 15:19:49 the other method would be to multiplex it as a 3x4 display, which uses 7 pins, same as 6+6 with one wire for direction 15:19:57 scarf, yes true, still somewhat tricky to code for me back then 15:20:01 you could probably combine the methods and only use 6 pins, but that would just be confusing 15:20:57 scarf, actually of those 8 pins, one was needed for serial iirc, and two for power things. So that leaves 8-3=5 pins for the leds 15:21:33 No I don't remember how I connected them. But it was somewhat confusing to get it to work 15:21:37 ouch, driving 12 from 5 seems painful; even connecting it as a K_5 can only do 10 pins 15:21:52 scarf, it was possible though 15:22:01 oh, you can do 20 with a K_5 15:22:02 so it is possible 15:22:22 K_5? I don't remember that term 15:23:38 AnMaster: complete graph on 5 vertices 15:23:41 scarf, anyway I did this when I was around 13 years old or so. I don't remember most details any longer. 15:29:31 -!- cpressey has joined. 15:31:54 This is completely irrelevant, but the TI calculator "link cable" connection is really funky; it's a three-wire port, one is ground and two for data, but it's a sort of a "clockless" asynchronous protocol; to send a bit, you pull one wire low (which one depends on the bit), wait for the receiver to acknowledge by pulling the other wire low, then raise the original back to high and wait for the receiver to acknowledge that. 15:32:40 Wareya: I thought of a way to help visualize the balance problem thing in 4 dimensions... in 3 dimensions, the disc and the table are basically 2 dimensional. They have a thickness, but it's not interesting. The disc is on the table. It falls off when it center is no longer above the table. 15:33:06 It was a bit tricky to interface with on the TI DSP board; despite being made by the same company, "surprisingly" the rather advanced (or at least feature-rich) serial communications circuitry wasn't really helpful for that sort of stuff. 15:33:14 In 4 dimensions, the sphere and the container are basically 3 dimensional. They have a 4-dimensionalness, but it's not interesting. The sphere is in the container. It falls off when the center is no longer inside the container. 15:33:23 The weird part, to me, is what "falls" means in 4D :) 15:33:33 fizzie: read up on I²C some time, it's just as fun 15:33:43 fizzie, what? really? 15:33:44 it has the most ingenious method of handling collisions I've ever seen 15:33:44 * cpressey prefers truly 1-wire protocols. 15:33:51 basically, there are two wires, clock and data 15:33:58 fizzie, this is the cable you connect to the box attached to the serial cable? 15:34:01 that you are talking about 15:34:16 the system's set up such that if either of two devices tries to send a 0, the wire goes 0, otherwise it goes to 1 15:34:21 and the clock ends up in sync 15:34:31 fizzie, I have a TI black link cable 15:34:36 came with my TI-83+ 15:34:38 so, if two devices try to send at once, then as long as they're sending the same data, everything's fine 15:34:51 AnMaster: Yes, the GraphLink cable. I think even the official serial cable contains some PIC-like chips to translate that stuff into standard RS232. 15:34:52 as soon as they differ in the data they're sending, one of them tries to send a 1 but sees a 0, so it shuts up 15:35:01 fizzie, heh :D 15:35:14 and from everything else's point of view, it's as if only one of the devices was actually sending 15:35:15 AnMaster: Some of the home-built ones do that decoding on the processor, by just connecting those into suitable pins. 15:35:22 so it sort-of fixes conflicts retroactively 15:36:18 fizzie, wait? so it is left to the computer cpu to try to make sense of the protocol? 15:36:58 AnMaster: Yes, if you use a home-built simple cable like that. There's the "open-source" PIClink cable which does it like the TI one, having more sense in the cable itself. 15:37:23 scarf: That's nifty. 15:37:25 fizzie, the signal levels and such are compatible ? 15:37:45 fizzie: yep, I think it's rather neat 15:38:29 AnMaster: Close enough, if you add some diodes in there. The serial port pins aren't really read-and-write suitable, so the usual design uses a pair of pins in the serial port for each one of the wires. 15:39:53 The problem with Maxim's 1-wire protocol is that it's actually 2 wires, because those wimps insist on having a ground reference. It is bidirectional, though. http://www.maxim-ic.com/app-notes/index.mvp/id/1796 15:40:34 cpressey: all the standard assumptions break if you don't assume a ground reference 15:40:46 which means designing a truly 1-wire protocol could be relatively tricky 15:40:56 scarf: ;) 15:42:25 scarf: I think for the calc-dsp thing we used some low-level code on the calculator side to implement a unidirectional more-or-less synchronous "one clock wire, one data wire" serial protocol, just because then we could on the DSP side just program the serial port circuitry to completely automagically collect a full four-byte data packet and stick it (with DMA) to the DSP chip's memory. 15:43:12 fizzie, ah 15:43:49 I remember seeing a Circuit Cellar circuit for a modem that operated over your home's AC wiring. So you plug in one modem into the mains upstairs, plug in another modem downstairs, and voila. 300 bps between them. 15:43:59 AnMaster: Mind you, they're just compatible in practice, not in theory. The RS232 voltages can (spec-wise) go a lot higher (15V?) than what the calculator is designed to accept (5V). 15:44:11 fizzie, ouch. 15:44:23 fizzie: not just that, in standard practice they /do/ 15:44:37 the RS232 port on a typical computer ought to be +/- 9V 15:44:48 anyway these days I think USB cables are used 15:44:51 right? 15:44:57 there's a chip called the MAX232 that converts RS232 logic levels to/from standard ones, it's pretty standard nowadays 15:45:17 for calculators I meant 15:45:19 mean* 15:46:08 which reminds me (somehow, can't explain why): new erlang version out yesterday. yay. And quite a lot of documentation improvement 15:46:28 plus this release is the first after they switched from the cathedral to a more open development process. 15:47:17 scarf: I always wanted to abuse that chip to do something related to voltage boosting that it was never designed for 15:47:38 heh 15:47:44 AnMaster: let me guess, the distribution grew... 90 megabytes this time? 15:47:54 probably possible, there's likely a datasheet somewhere 15:48:00 AnMaster: I use GHDL as a simulator, with gtkwave <-- why does this pull in gnat 15:48:03 I mean 15:48:03 and good datasheets are as general as possible 15:48:08 is there actually someone using ada? 15:48:09 wth 15:48:13 AnMaster: who knows 15:48:17 VHDL is very ADA-like 15:48:25 ghdl gnat-4.3 gnat-4.3-base gtkwave libgnat-4.3 libgnatprj4.3 libgnatvsn4.3 15:48:25 it wouldn't surprise me if bits of the parser were shared 15:48:31 and I didn't even list gtkwave there 15:48:33 just ghdl 15:48:35 one of the design goals of VHDL was actually to make it look like ada 15:48:37 it pulled in all those deps 15:48:43 *Ada 15:48:57 scarf, One* 15:48:58 (I bet gtkwave is on the recommended list, because there's no point in producing simulation data you can't view) 15:49:02 TI switched to usb cables for the calcs, yes. 15:49:13 No, Erlang/OTP dist only grew by 1.4 megabytes. Drat. 15:49:24 cpressey, har 15:49:36 It's supposed to double every time! Or something 15:49:46 cpressey, if they switch from .gz to .bz2 or .lzma it would shrink 15:49:52 of course that would break compat 15:49:54 so they would never 15:50:03 Not that there ever were any problems with official TI serial cables, those did the right thing. 15:50:12 and if they did they would provide new and old formats for quite a few releases 15:50:27 .pax.lzma! 15:50:41 suuure 15:52:28 anyone know any open source tool for simulating analogue AC circuits btw? 15:52:43 Yeah, isn't that Moore's law: the size of Erlang doubles every 18 months? 15:52:53 fizzie, heh 15:53:35 they finally documented the -type/-spec thingy (with a disclaimer that it might change still, but will probably become stable in the next major release) 15:53:49 btw, efunge has been using that since near the start ;) 16:03:16 -!- MissPiggy has joined. 16:05:33 -!- MizardX has quit (Ping timeout: 276 seconds). 16:17:21 pax! 16:17:25 Oh gawd pax 16:17:53 pix of teh pax 16:18:25 it is funny how gnome somehow puts a harddrive icon on my desktop for sshfs file systems 16:18:30 that I mounted from command line 16:18:32 bbiab 16:23:17 oh this is so sad, erlang's build system isn 16:23:22 isn't* -j2 safe 16:23:38 it tried to execute the erlang compiler before the runtime was built 16:26:52 wtf 16:26:57 That is pretty sad, considering. 16:29:16 cpressey, exactly 16:31:19 The image on http://www.chromium.org/Home is not exactly brilliant marketing. It looks like the browser is on its way to the Great Hereafter. 16:31:42 heh.......................................... 16:37:42 cpressey, hah 16:37:56 cpressey, not how I saw it 16:38:37 cpressey, looked like a reference to 16:39:12 wasn't he supposed to have wings on his shoes or something 16:43:12 Yeah. They want you to think it's fast... I just tried it for the first time, though, and it's so "fast" it's actually annoying. 16:43:30 Fast in the way a grumpy person snapping at you is fast. 16:43:57 I dunno, maybe if I used it for real browsing, it would be different.\ 16:45:35 -!- bsmntbombdood_ has quit (Ping timeout: 245 seconds). 17:00:46 -!- bsmntbombdood_ has joined. 17:10:13 -!- coppro has quit (Ping timeout: 265 seconds). 17:16:51 cpressey, err " Fast in the way a grumpy person snapping at you is fast." <-- what? 17:18:30 -!- kar8nga has quit (Remote host closed the connection). 17:30:10 It's not fast so much as its SUDDEN. 17:43:31 cpressey, idea for a future befunge: / and \ swap meanings based on direction of travel 17:52:42 AnMaster: That's a great idea, but it breaks a lot. 17:52:51 cpressey, well yes 17:53:03 cpressey, oh btw I find the colour scheme on http://catseye.tc/projects/funge98/doc/website_funge98.html rather unreadable 17:53:23 the light green on the gray-patterned bg 17:53:34 I preferred the old yellow based one 17:53:45 AnMaster: Well, you can go to the source page, or you can tell your browser to ignore the CSS 17:53:55 cpressey, like is still on http://catseye.tc/projects/funge98/library/TURT.html 17:53:59 http://catseye.tc/projects/funge98/doc/funge98.html 17:54:08 cpressey, source page? I just clicked the spec link on http://catseye.tc/projects/funge98/ 17:54:15 like I have always been doing 17:54:21 ah there it is 17:54:41 Next to the link is a link that says "source file" -- there should be a link in the marked-up doc too, but there isn't yet 17:54:47 cpressey, not the one at the top 17:54:57 True, there shoul;d be a link there too 17:54:58 cpressey, under the heading "Documentation" 17:55:28 since half of the time I need the spec and the other half one of the fingerprints I just bookmarked the "index" 17:56:19 Hm, since TURT still says "Under development" :) 17:56:41 aaargh 17:56:48 cpressey, that would break the nice TURT quine 17:57:01 Yeah, I know. 17:57:20 (for anyone who missed it http://www.quote-egnufeb-quote-greaterthan-colon-hash-comma-underscore-at.info/befunge/tquine.php) 17:57:24 So are people really mixing up left and right or is that some SVG thing 17:57:29 which is btw an awesome domain name 18:00:06 cpressey, it was some svg thing 18:00:12 cpressey, weird coordinate system in svg 18:00:31 cpressey, but it seems like people treat the coordinate system as navigational 18:00:35 and I did too 18:00:40 'k, that makes more sense. 18:00:42 but when re-implementing it and reading my old code 18:00:50 I wasn't aware that I had taken some shortcuts 18:01:01 (ab)using that it would be inverted 18:01:11 thus no need to convert the value when calling sin/cos 18:01:18 thus I assumed it was mathematical 18:01:22 not navigational 18:01:32 and 0 = east made it more probable too 18:02:12 Could always define several different fingerprints, TURT, TURM, TURN, whatever, to handle all the different interpretations out there - making those programs easy to "fix" 18:03:42 That is, IF I decide to work on Befunge-111. Well, I already started some small effort to rewrite the spec, so maybe. 18:04:08 It should start with a gigantic "Definitions" section, with the rest of the spec being relatively small and relying heavily on the definitions. 18:05:16 cpressey, I have nothing against a radically different language, but probably it shouldn't be called befunge then. Imagine you were the C standard working group. What sort of changes would you allow 18:05:37 C99 is basically fixing undef and adding some new non-colliding things 18:05:53 very few C90 programs can't compile unmodified as C99 in my experience 18:06:05 sure, there will be some corner cases 18:06:30 Yeah, C99 was pretty well defined to minimise breakage. 18:07:51 AnMaster: I agree. 18:08:10 Plus there are a bunch of Be- names that could be riffed on. 18:08:31 cpressey, and interestingly enough befunge111s would be way less capable than befunge98s 18:08:39 unless you add a lot new stuff 18:09:00 since the s versions are defined to be "only new commands, any commands in previous versions are excluded) 18:09:04 But what would you think of deprecating some of the uglier parts? 18:09:05 s/)/"/ 18:09:11 cpressey, such as? 18:09:53 I'd like to move t, i, o, and = into a fingerprint (where they will be called T, I, O, and S, or similar,) and say that the semantics of t, i, o, and = are implementation-defined. 18:10:10 hm 18:10:13 cpressey, what? 18:10:23 cpressey, t is pretty well defined. And no one implements the error in t 18:10:35 An implementation could make t, i, o, and = Funge-98 compatible. Or not. 18:10:35 which is that t doesn't move the child ip one step first 18:10:42 meaning that t will be the first thing it executes 18:10:45 It doesn't matter that it's well-defined 18:10:59 It's optional, that's the more important consideration. 18:11:07 And optional things should go in fingerprints. 18:11:17 Optional things like having two dimensions. 18:11:31 fizzie: That's not optional in *Be*funge. :) 18:11:34 cpressey, I would like TIO to be well defined in that/those fingerprint(s). I'm happy with = being implementation-defined though 18:11:52 (well duh for the last part) 18:11:55 Well, the replacement for = would also be well-defined in a fingerprint. 18:12:04 cpressey, in what way? 18:12:15 Probably refer to POSIX system(). 18:12:32 cpressey, then these would need three different fingerprints at least. Maybe 4 18:12:34 So, POSIX-dependent, but many OSes try to implement POSIX these days. 18:12:44 cpressey, efunge used to implement i but not o until recently 18:12:50 nowdays it implements both 18:13:05 AnMaster: could be a couple of different fingerprints. I'm not picky about that. 18:13:11 it doesn't implement t, since ATHR will be superior and actually be able to use both cores 18:13:48 cpressey, the fingerprint implementing T would still change @ when loaded? 18:13:49 or? 18:14:05 since both @ and q seems odd if not 18:14:23 Well, @ can be defined in such a way that its semantics don't change. 18:14:52 @ removes the current execution context (EC). The program ends where there are no more ECs. 18:15:03 Therefore in single threaded Befunge, @ ends the program. 18:15:04 cpressey, anyway moving t to T would break some programs that already use a fingerprint which defines T (and use that T). Without instruction moving as in FING that would be annoying 18:15:15 cpressey, right 18:15:23 cpressey, that causes havoc for ATHR 18:15:43 since you can have multiple ips from t in a single ATHR thread 18:15:52 -!- charlls has joined. 18:16:03 and there can be multiple ATHR threads (of course) 18:16:21 AnMaster: I'm not familiar with FING, but if it allows moving assignments of A-Z around, it should probably be standard. Like "import foo as bar" in "normal" languages. 18:17:37 cpressey, well what happens in your option if we have two fingerprints AAAA and BBBB. AAAA provides DE, BBBB provides EF. 18:17:37 I'm not clear on why the definition of @ I just gave causes havoc for ATHR, but I think it's much cleaner. 18:17:38 then: 18:17:48 we load AAAA, we load BBBB, we unload AAAA 18:17:52 now what is E mapped to 18:17:55 AAAA right? 18:18:15 that is the current de-facto standard 18:18:38 I'd have to refresh on how fingerprint unloading is defined. 18:18:39 treating it as "unload one instruction from each of the stacks, one stack for each of A, B, C, D, ..., Z 18:18:53 I thought you could only unload the most recently loaded. 18:18:58 cpressey, well that exact detail (unloading out of order) is a bit unclear in the spec 18:19:19 but not treating it the way I mentioned will break all kinds of havoc all over the place by now 18:19:29 -!- augur has quit (Ping timeout: 265 seconds). 18:20:13 differences in how it was treated already caused issues before. But now that the major implementations agreed on this interpretation (and mycology tests that) it seems the best way to do it 18:20:59 OK, well 18:21:02 -!- KingOfKarlsruhe has quit (Remote host closed the connection). 18:21:09 cpressey, well? 18:21:18 The spec is a mess wrt unloading so that makese sense 18:21:45 I'm pretty sure the intention was to only allow the last-loaded to be unloaded, but ) takes a fingerprint ID, sooooo..... 18:22:17 cpressey, well a lot of programs use out of order unloading now. Well nowdays they seem to be switching to FING instead 18:22:27 but still 18:22:45 Do you happen to have a link for the FING spec? 18:22:51 sec 18:23:00 cpressey: The spec also explicitly says that ) can unload a fingerprint "even if that fingerprint had never been loaded before". 18:23:04 * cpressey googles FING for kicks 18:23:07 http://rcfunge98.com/rcsfingers.html#FING 18:23:12 AnMaster: Thanks 18:23:17 cpressey, not the most detailed spec of course 18:23:26 fizzie, indeed 18:23:46 I think that's even the improved FING. 18:23:53 Um, yeah, that's not terribly informative 18:24:03 fizzie, well the bad one was called FNGR 18:24:12 OK, well 18:24:27 cpressey, anyway here is how Deewiant, me and some other people interpret things: 18:24:36 I'm very tempted to establish some new semantics for ( and ) which are better but break minimally 18:24:36 one stack of function pointers (or lambdas or whatever) per A,B,C,...,Z 18:24:38 AnMaster: Yes, but I think even the FING spec got some of those corner-case empty-stack clarifications later on. 18:24:42 FNGR's fixed to comply with the specs, by making it highly untame 18:24:52 hmm, what's the term 18:25:06 cpressey, fingerprints push function pointers on these stacks (depending on which ones it define) 18:25:09 scarf: BLOODTHIRSTY. 18:25:14 scarf: (I guess you mean "feral".) 18:25:16 it basically now says, "while FNGR's loaded use old broken RC/Funge semantics, while it isn't use Funge-98 / fixed RC/Funge semantics" 18:25:17 fizzie: yes 18:25:20 that's it 18:25:42 cpressey, unloading a given fingerprint just pops the top function pointer (or lambda or whatever) from the stacks for the instructions it implement 18:26:09 fungot uses FING nowadays, but it used to use FNGR because FNGR was the first fingerprint-remapping fingerprint I came across. 18:26:09 fizzie: these unique items make us invincible! 18:26:28 fungot: Yes, I'm sure FING makes you invincible. Sigh. 18:26:29 fizzie: like, thanks princess. i'll take that under advisement!!! i give you 1 weapon or 1 item! what you do? wake you, but need dactyl? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope. 18:26:32 so given the above example: "AAAA provides DE, BBBB provides EF", then we execute >"AAAA"4("BBBB"4("AAAA"4) now E is from AAAA and F from BBBB 18:26:39 there is nothing on D any more 18:26:39 That bot is sometimes so insulting. 18:26:41 -!- kar8nga has joined. 18:26:43 cpressey, does that make sense? 18:27:07 AnMaster: Yes, that makes sense. 18:27:22 further it is useful 18:27:43 That *might* be what was meant, in the spec, tho I'm not at all convinced of that. 18:27:45 cpressey, so I recommend that if befunge-111 isn't about to break everything, that it should use these above mentioned semantics for ( and ) 18:28:13 AnMaster: heh, pushed back to 2011 already? 18:28:17 in any case, a lot of people (including me) would become rather irritated by having to rewrite code to change it. Sometimes quite a lot of code 18:28:18 The semantic stack stuff seems to be the de-facto interpretation. 18:28:24 AnMaster: I agree. But I'm considering adding something like: "If the fingerprint ends with '.', it is a new-style fingerprint and ( behaves slightly differently..." 18:28:26 scarf, a different one altogether 18:28:29 I gave up on mine 18:28:31 oh 18:28:31 I think even I did fingerprints like that in GLfunge98. 18:28:33 cpressey is considering it 18:28:36 and he called it that 18:28:48 -108 was just clarifications, wasn't it? 18:28:52 of all the ambiguities in the spec? 18:28:56 cpressey, wonderfully complex. But what would the new semantics then? 18:28:59 scarf: It's mainly that the number 111 is much cooler than 110. :) 18:29:04 scarf, yes but the result was suboptimal 18:29:08 cpressey: agreed 18:29:10 cpressey, you should wait to 666 then 18:29:17 ;P 18:29:26 The spec explicitly allows for unloading things that haven't been loaded yet 18:29:32 and what Deewiant said 18:29:39 Deewiant: cpressey: The spec also explicitly says that ) can unload a fingerprint "even if that fingerprint had never been loaded before". 18:29:44 Deewiant: You're a bit derivative! 18:29:53 Deewiant, fizzie: Yes, that's bizarre. 18:30:09 wasn't that for NULL to work correctly? 18:30:10 cpressey, what would the new semantics be for ( and ) though 18:30:11 Deewiant: Perhaps even integral. 18:30:11 Actually, that suggests the spec intended something similar to the defacto behaviour that's out there 18:30:39 fizzie, augh 18:30:51 AnMaster: Not sure yet. Not sure if it needs them, now. But I was thinking something about support for renaming semantics like FING does. 18:30:51 fizzie: Right, I wasn't reading context, just AnMaster's highlight and a line or few up 18:31:12 Deewiant, hey don't do that. ehird always complains when I do that 18:31:26 Deewiant, never mind that he does it himself sometimes 18:31:41 also, I have to get out and clear away the snow 18:32:03 AnMaster: I'm not ehird 18:32:15 Deewiant, and? 18:32:27 you missed the joke completely 18:32:36 It just seemed like you didn't feel about it very strongly yourself 18:32:38 anyway: I'll be back in an hour or so (hopefully, it has snowed quite a lot though...) 18:32:44 Deewiant, I don't 18:33:19 Bleh, gitweb's commitdiff display isn't very befunge-friendly; it's far too line-oriented. 18:33:23 cpressey, hm. well I'll read any interesting scrollback (assuming it isn't too long and we don't have concurrent convos in it) when I get back 18:33:36 AnMaster: 'K, have fun in the snow :) 18:33:41 fizzie, file a feature request! 18:33:49 cpressey, .... I have started to hate it 18:34:02 http://git.zem.fi/fungot/commitdiff/2d306563bb6d998d208c78d6400168b0ef633ae7 changes (incidentally) from FNGR to FING, but the changes are not so very clear. 18:34:02 fizzie: we are looking to achieve a shorter life span... lavos will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's statue before my shift. i hate! ayla not like... 18:34:10 cpressey, it has been the snowiest and coldest winter for over 100 years according to SMHI 18:34:30 (SMHI is something like gov weather agency thingy, not sure what your equiv is over there) 18:34:50 → 18:35:14 Over here it's only the coldest it's been in 20-30 years or so 18:35:36 Although in snow amount, I think it was around 50; I can't remember exactly 18:39:42 Finnish meteorological institute reported (in a Feb 18 newspost) that this is in the top-10 of coldest winters for the last 50 years, but not significantly colder than winter 2002-2003. Possibly they have had to update that, though, since it's continued to be cold. 18:52:56 -!- scarf has quit (Remote host closed the connection). 19:01:38 -!- lament has quit (Ping timeout: 246 seconds). 19:03:08 -!- lament has joined. 19:06:39 -!- MizardX has joined. 19:18:46 -!- oerjan has joined. 19:20:11 -!- gm|lap has joined. 19:38:47 that... 19:38:49 was heavy 19:39:31 Deewiant, I think this was for mid-Sweden 19:39:48 the north parts had worse years more recently 19:40:06 and definitely some temp records earlier 19:41:02 but it was both coldest "average" and coldest (record for a specific time) in these parts for a long time. the record lowest was "last 30 years" or so. 19:41:26 while the average coldest and snowiest were for "over 100 years" 19:41:48 still, last weekend was much worse than this evening 19:49:46 cpressey, so what would the moved toi= be used for now? 19:50:13 cpressey your idea of something like FING? 19:50:42 cpressey, or something else? 19:52:49 cpressey, oh and I think allowing some fingerprints to have special opaque values pushed on stack that can be duplicated copied and so on as normal but perhaps not output or used in stuff like addition/subtraction may be nice 19:52:59 of course this should be completely optional for the core language 19:53:16 but any fingerprint trying to do that currently would give something extremely feral 19:53:27 AnMaster: Not sure I understand -- the new t, o, i, = would be T, O, I, S in some fingerprint(s), their use would be essentially the same 19:53:39 And t, o, i, = would be undefined 19:54:20 For opaque stack values, yes, I think that could be defined, somewhere between tame and feral, closer to tame. 19:54:28 cpressey, my main use case is to allow FPDP (double precision floating point fingerprint) to use values like {double,Value} instead of having to do what current implementations do (which is (in pseudo C) basically: union {cell, double}) 19:54:35 does that make it clearer? 19:54:48 Yes. 19:54:48 well it uses two cells for 32-bit funges 19:55:16 Instructions like + could be defined to say "If the objects on the stack aren't both intvals, reflect (or undefined or something)." 19:55:34 Or, ALL std instructions would have a clause like that. 19:55:50 Popping any object that isn't an intval -> some behavior 19:55:51 cpressey, not reflect. More useful would be: "fingerprint-defined and/or implementation-defined" 19:55:53 it could reflect 19:56:02 but it could also do something sensible for, say, floats 19:56:15 my point with this is that the {double,Value} is much nicer than using various bit-syntax messing when implementing it in erlang 19:56:30 cpressey, :\$ and so on are well defined 19:56:32 cpressey: Leaving toi= undefined is annoying given that the rest of ASCII is all reserved ;-) 19:56:32 of course 19:56:54 Deewiant: the idea is that the implementer can choose to try to be -98 compatible, or no 19:56:55 cpressey, and yes perhaps all std ones should 19:56:57 it would be nice 19:57:10 cpressey, think along the lines of the rather detailed ATHR spec 19:57:29 cpressey, and there MUST be a security considerations section *somewhere* in there ;P 19:57:35 cpressey: Won't there be incompatible changes? 19:58:02 Deewiant: only small ones, on the scale of the ones between 93 and 98, is the current plan 19:58:29 plus moving tio= out to fingerprints 19:58:31 That's still incompatible 19:58:44 Deewiant, sure, but 98% of the befunge93 programs work in 98 19:58:45 AnMaster: I'm not a fan of the idea of putting "do something sensible" in the spec. If your FP changes how + works, it's feral. 19:58:59 for 1.99% of the remaining one just skipping SGML spaces is enough 19:59:14 It just seems a bit of a shame that there's a "hole" in the definedness of the ASCII instructions 19:59:15 Deewiant: it's a small incompatibility which can be addressed by an implementation 19:59:17 for 0.01% or so you have them depending on stuff like "f reflects" 19:59:54 AnMaster: I don't think there are 10000 Befunge-93 programs 20:00:08 Deewiant, well, I have seen no ends of variations of hello world in it 20:00:38 cpressey, So allowing a fingerprint with opaque types to result in "fingerprint defined" behaviour might be a bad idea 20:00:40 hm right 20:00:41 Probably not /that/ many 20:00:56 Deewiant, of course not 10000 hello world! 20:01:00 there are some other programs 20:01:02 AnMaster: not a bad idea so much as a feral fingerprint... 20:01:08 cpressey, true 20:01:12 AnMaster: Yes, but there are likely less than 100 programs in total :-P 20:01:19 The strategy here is not so much to disallow things or discourage them as to give them names :) 20:01:23 Deewiant, no actually my guess is more around 200-300 programs 20:02:14 Deewiant, the list on http://catseye.tc/projects/befunge93/ is quite long. And I have seen quite a few programs elsewhere 20:02:19 e.g. "The semantics of executing a Funge character which is not listed in the "Instructions" section is not defined. The subset of Befunge-111 in which all of these characters have the semantics of the 'r' instruction is called _sober_." 20:02:19 so yeah above 100 definitely 20:02:26 less than 1000 probably 20:02:46 -!- MizardX has quit (Read error: Connection reset by peer). 20:02:54 cpressey, nice name for it 20:03:15 AnMaster: Regardless, 0.01% == 0% 20:04:14 Deewiant, okay. Well I have seen one programs I think that depended on f reflecting 20:04:28 three or so that depended on non-SGML spaces 20:04:39 other ones worked 20:04:56 Mycology depends on 80x25 loading to detect Befunge-93 20:05:09 (Although not that insistently) 20:05:18 Deewiant, true, but these ones had .bf extension 20:05:21 not .b98 20:06:23 cpressey, another use case for opaque values: {socket,Fileno} 20:06:38 cpressey, cfunge currently validates it against a list for SOCK 20:06:42 Yes. Certain std instructions like swap should be handle opaque values, too. 20:07:00 certainly swap, dup, g and p definitely should 20:07:19 all those that just move the data around and don't care what it means 20:07:21 Oof, enforcing that'll be a pain 20:07:30 With 32-bit funges that implement FPDP 20:07:46 If there was a way to "cast to boolean" then |_w and such could use them too. BUT, that gets into the domain of objects with methods. I shudder. 20:08:05 Deewiant, an implementation would be free to do it either way for FPDP. I mean, it doesn't say either way 20:08:20 if the fingerprint defined that "it must use opaque values", well then it would be clear 20:08:35 In this day and age of Unicode I think it's worth considering a way to load fingerprints into regions of characters > 127. 20:08:58 anyway, I'm likely to use this feature in efunge (as tagged tuples). I doubt it will ever happen in cfunge (since it optimises so heavily for plain integers) 20:09:21 cpressey, and I agree, befunge should not be object oriented 20:09:55 cpressey, oh btw, cfunge will never gain unicode for file input. It would slow down file loading having to interpret utf-8 or whatever 20:10:02 efunge might 20:10:22 basically, utf8 with just libc will be a pain 20:10:41 There would be no requirement to support it. But nothing stopping implementations from using it either. 20:10:57 cpressey, and everything except POSIX.1-2001 + the mmap option are optional deps for cfunge 20:11:07 which means NCRS is optional, since it needs ncurses 20:11:23 You could insist that utf-8 (or other) encoded files are converted to UCS-64(? or whatever it is with no compression) before loading 20:11:25 cpressey, iirc Deewiant claimed he was able to read the spec as unicode input 20:11:36 UCS-64 XD 20:11:45 I think it is UCS-4 which is 32-bit 20:11:50 cpressey: That doesn't help with using the high characters for anything other than ' and " 20:11:52 never heard of UCS-64 20:11:54 Er 20:11:54 AnMaster: ^ 20:11:59 Deewiant, true 20:12:10 Yes, UCS-4 is UTF-32 20:12:17 also the spec says that implementations can do whatever they want above a certain limit 20:12:20 err 20:12:21 ? Well, the 98 spec leaves enough undefined that it is mostly OK with unicode 20:12:25 except it also iirc gives an uper limit 20:12:42 No it doesn't 20:12:46 "Funge-98 source files are made up of Funge characters. The Funge-98 character set overlays the ASCII subset used by Befunge-93 and may have characters greater than 127 present in it (and greater than 255 on systems where characters are stored in multiple bytes; but no greater than 2,147,483,647.) " 20:12:48 sure it does 20:12:50 It claims there are no characters above 2,147,483,647 20:12:51 Yeah 20:12:54 Oh, darn 20:13:00 but 20:13:03 Completely forgot about that one 20:13:04 Also, it claims there are characters below 0 20:13:08 Or allows 20:13:18 cpressey, well, funge-space is signed 20:13:26 you could use signed 64 bit IO or something I guess 20:13:29 Yeah, just map everything above 2^32-1 to a negative number ;-P 20:13:58 hm 20:14:06 2^31-1 = 2,147,483,647 isn't it? 20:14:19 doesn't look so random that limit after all 20:14:19 Right, thinko 20:14:50 anyway, a strange limit I agree 20:14:59 but quite esoteric in a certain way 20:15:27 It just seems like Funge-98 was originally specced as 32-bit but then partially updated to allow any bittiness 20:15:47 maybe 20:16:28 cpressey, anyway for y I suggest the handprint field and such are left as undefined. Since there are plenty of programs that use hard coded offsets for anything up to "size of TOSS" 20:16:44 Hm, q might be deprecatable too, since it only makes sense in concurrent 20:16:59 cpressey, then it would have to be moved to the same fingerprint as t 20:16:59 AnMaster: Yes. Much of y will now be undefined, I think. 20:17:00 Isn't each cell capable of storing one funge number and isn't there instructions to dump part of program space into file and load such dump? 20:17:22 Ilari: Yes, i and o 20:17:48 cpressey, not much. Just handprint, maybe version number, oh and = op paradigm I guess.., the beglad thingy 20:17:52 that's all isn't it? 20:17:54 Deewiant: That impression is correct, it went to "at least 32-bit" 20:18:19 Which would imply that bignum funge need to have some way to represent bignums in dumps... 20:18:25 Well, handprint and version number are inherently implementation-defined anyway :) 20:18:27 Ilari, not at all 20:18:33 Ilari, since it is dumped to plain text 20:18:47 it is perfectly fine to do %256 20:19:03 at least, that is what I do currently, otherwise it doesn't work even for a 32-bit funge 20:19:08 (Or at least the new fingerprint for those instruction should say that) 20:19:24 cpressey: I'd keep the handprint there, it's amusing if not useful 20:19:38 cpressey, what about allowing #! starting line optionally? 20:20:02 you know, like #!/usr/bin/fbbi or possibly #!/bin/fbbi when funge becomes really popular! 20:20:15 CCBI already implements that 20:20:20 what? 20:20:20 Due to user request 20:20:25 doesn't that break stuff 20:20:35 It's not enabled by default, only if you pass a switch 20:20:37 ah 20:20:44 well that works with no spec modification then 20:20:56 also strange user request 20:20:59 Yes, like most implementation-specific extensions :-P 20:21:14 I can actually not imagine anyone would *request* such a feature like that 20:21:50 Why not :-P 20:22:13 Maybe they wanted to write befunge CGIs 20:24:07 cpressey, yeaaaah, no 20:24:40 cpressey, anyway team id could be nice to exploit in a future extension to ATHR to allow multiple erlang nodes as well 20:24:43 executing #!/ would result in a division by zero, which could be handled specially :) 20:24:58 with async update of funge space to actually not make it completely grind to halt of course 20:25:50 cpressey, so each would have a local copy and updates would be sent over infiband or such 20:25:52 :D 20:25:54 cpressey: Oh, one char which isn't reserved by Funge-98 is tab, maybe you could use that for something amusing 20:26:01 cpressey: Division by zero is well-defined in Funge-98 20:26:16 Deewiant, tab = 4 spaces wide! 20:26:25 of course scarf isn't here 20:26:33 doesn't he prefer mixed indention iirc 20:26:34 AnMaster: Pushes 4 spaces on stack? ;-P 20:26:48 Deewiant, well, that depends on preferred tab width 20:26:51 Or just "pushes an implementation-defined number of spaces on stack" 20:26:55 Deewiant: and the number of programs that rely on it producing a zero when division by zero occurs as the second instruction of the program is ... ? 20:27:06 cpressey, btw iirc ehird said he wanted an n-dimensional funge 20:27:07 that is 20:27:12 cpressey: At least 2, Mycology included 20:27:15 Nefunge 20:27:21 Er, well not as the second instruction 20:27:22 was the name of that experiment 20:27:29 (n-dimensional) 20:27:33 At least 1, for that 20:27:57 cpressey, one that isn't restricted and where a program can go into any dímension it wants 20:27:59 Deewiant: Well, it wasn't a very serious suggestion anyway. 20:27:59 dimension* 20:28:14 so vector length would have to have some different handling for it 20:28:20 should probably be a fungoid though 20:28:43 with something like ",...,z,y,x" 20:28:44 AnMaster: yes, it was considered at one point in the late 90s. No one worked much on it 20:29:01 -!- cheater2 has quit (Ping timeout: 264 seconds). 20:29:28 vectors become more like hash tables (x: 3, y: 3, z: 3, d4: 3, d5: 3, ...) 20:29:45 I optimise too much for just two dimensions in cfunge for anything except exactly two dimensions to be viable without a lot of work, and in efunge, well, it would require some work, not quite as much though 20:30:57 -!- tombom__ has quit (Ping timeout: 265 seconds). 20:31:02 -!- tombom has joined. 20:32:06 (an explanation may be in order btw: Order of importance for features in cfunge: correctness, speed, extensibility. For efunge: correctness, extensibility, speed) 20:32:46 basically, speed is nice in efunge but not a primary goal. For cfunge speed is more important than everything else except following the spec 20:33:34 (and not crashing on any input of course, OOM is somewhat excused from that) 20:35:32 What do you mean by extensibility, exactly? 20:36:03 For CCBI I'd say it's: correctness, fingerprint/extension support, speed 20:36:19 Deewiant, "being able to do things like ATHR and what not without going insane" 20:36:45 But no TRDS? ;-P 20:36:47 Deewiant, it is designed with things like ATHR and the better MVRS we considered in mind. 20:37:01 Deewiant, I think that might be possible perhaps. I won't do it though 20:37:04 but feel free to do it 20:37:19 Deewiant, I think it is nearly impossible when combined with ATHR though 20:37:25 since there are no single ticks any more 20:37:29 with async threads 20:38:07 and any command would take some time to register in other threads 20:38:38 Deewiant, stuff like IIPC would be possible in theory definitely, if you allow that things might not happen straight away in the other threads 20:38:49 and IIPC at least need a way to break deadlocks 20:39:00 -!- augur has joined. 20:39:24 Deewiant, so basically, when going for ATHR I made TRDS virtually impossible 20:39:44 Deewiant, do you agree with that? 20:39:51 Baah, I'm sure CCBI2 can manage both ;-) 20:39:59 Deewiant, both used at once? 20:40:08 Deewiant, anyway, remember the ATHR spec is still somewhat in flux 20:40:10 Might as well 20:40:26 I have figured out that some stuff didn't work at all and such 20:40:43 the core parts (not the books thing) is mostly well defined by now 20:41:31 some parts works, there are test cases for most for a single thread and a few for multiple threads (they are partly UNDEF due to timing issues) 20:44:11 there, pushed an update to one of the test cases for ATHR 20:45:42 Deewiant, anyway since the ATHR threads do not run synced it would be impossible to determine when a certain tick happened. After all they one thread might be in the middle of executing tick 240, while another is just about to start at tick 259 20:46:11 Deewiant, oh and the locking in D will be fun. Does it have a pthreads interface or how is it done? 20:46:36 The runtime implements threads and fibers and whatever 20:46:50 Deewiant, and thread safe hash tables? 20:46:52 Of course I could bind to pthreads but no reason t o 20:46:54 to* 20:47:09 Deewiant, in fact: plenty of reasons *not* to 20:47:19 AnMaster: You mean thread-safe Funge-Space? Probably will have to lock 20:48:05 Deewiant, well, it doesn't have to be safe w.r.t. non-atomic CAS (like funge code emulating a CAS). And ATHR is defined such that the CAS it provides is only safe against the G and P it provides 20:48:12 this is required because erlang has no true CAS 20:48:16 being message oriented 20:48:41 and doing every write through a gen_server would be slow 20:49:12 thus, it uses public ets table normally (erlang internally does some locking as required here) 20:49:20 and only serialises it for ATHR CAS 20:49:26 (and it's G/P) 20:49:40 What if you give a negative value as the iteration count for k? 20:49:52 cpressey, well. that's one of the UNDEFs in mycology 20:49:59 cpressey, iirc cfunge and CCBI does different things 20:50:10 I think cfunge reflects and CCBI takes the absolute value 20:50:13 or something like that 20:50:25 No, they both reflect 20:50:28 cpressey, mind you, k currently is unable to execute exactly one iteration 20:50:35 Mycology just tests for absolute value taking 20:50:51 cpressey, based on stuff you previously said/wrote iirc 20:51:19 cpressey, as in 0kab pushes b. 1kab pushes aab 20:51:20 iirc 20:51:33 Deewiant, you better explain the mess he caused and why 20:51:37 I don't remember the details 20:51:37 ;) 20:52:07 I don't remember the details either 20:52:12 ah yes 20:52:21 Basically, k doesn't move past what it executes unless the iteration count is 0 20:52:25 Can't remember why 20:52:27 ah yes 20:52:28 that was it 20:52:39 ? 20:52:41 cpressey, anyway that means that just executing it's instruction once is impossible 20:52:46 Oh 20:53:24 Deewiant, didn't Mike Riley dig up some old cats-eye test suite or something? 20:53:28 There was some issue with all ways of doing it 20:53:34 Oh, it may have been because of that 20:53:40 yes I think so 20:53:52 k is so dumb 20:54:07 cpressey, k is quite useful actually for some things 20:54:11 It should probably be popping the instruction off the stack instead of getting it from the path 20:54:35 cpressey, that would help for nested k 20:54:36 like 20:54:42 >22kk^ 20:54:53 cpressey, tell me where that one goes up 20:55:09 * AnMaster watches cpressey's head explode 20:55:24 cpressey, anyway changing k that way *now* is sure to break things 20:55:40 since people actually use k outside test suites 20:56:15 Please don't mess with k, I'll have to go through mycotrds again :-) 20:56:22 -!- jcp has joined. 20:56:23 Deewiant, you use it there? 20:56:26 poor you 20:56:44 but yeah, changing it now would break sooo much 20:57:01 but perhaps it should be done for the 1k case 20:57:03 so it works 20:57:11 I'm not sure. 20:57:18 So 2k executes three times but 1k once? :-P 20:57:42 Deewiant, no, so that 2k executes 2 times and so on... ;P 20:58:18 I think there are still some strangenesses even with that 20:58:25 Mostly when using strange instructions with k 20:58:30 Can't remember what 20:58:30 Deewiant, anyway I think perhaps there was just a bug in that cats eye test suite 20:58:39 might explain why I never found it elsewhere 20:58:53 Wait, >22kk^ ? 20:58:56 Deewiant, and yes there are some issues with where k^ goes up and so 20:58:59 cpressey, yep 20:59:03 cpressey, figure that out 20:59:34 cpressey, or why not >12345kkj abcdefg 20:59:36 On the first k 20:59:39 that ones looks even funnier 20:59:42 cpressey, wait, what? 20:59:54 "where it goes up" - maybe I don't understand? 21:00:16 cpressey, so everything for nested k executes on the first k? 21:00:33 -!- lament has quit (Ping timeout: 240 seconds). 21:01:02 AnMaster: You probably meant something like >22kk^^^^^^^^^ 21:01:15 Or did you? 21:01:18 AnMaster: k executes in one tick 21:01:22 Deewiant, that doesn't cause any other issues 21:01:28 cpressey, yes. But at which location 21:01:34 AnMaster: I think in CCBI it'll go past the first ^ ;-P 21:01:43 Deewiant, strange 21:01:46 AnMaster: ? Where the instruction is, of course ? 21:01:56 cpressey, so what does: >12345kkj abcdefg do= 21:01:59 s/=/?/ 21:02:07 AnMaster: At least, if you put more stuff on the stack; 222kk (since the inner k is executed twice and thus pops two things) 21:02:16 Jumps far to the right... 21:02:23 like 20 cells 21:02:39 I don't understand the argument that we couldn't understand something more intelligent than us 21:02:49 cpressey, so it keeps executing j even after the first iteration of the outer k? 21:02:51 No, like 4+3+2+1 cells I guess 21:02:52 he says a goldfish couldn't understand us, just like we couldn't understand AI 21:02:59 AnMaster: yes 21:03:04 cpressey, notice that there are two k:s there 21:03:05 nested 21:03:05 but it's just an analogy.... what's the justification 21:03:05 cpressey: After the first j, the IP's position will have changed and the inner k sees a different instruction 21:03:26 Deewiant: the tick hasn't expired yet, so the IP hasn't moved 21:03:31 err 21:03:40 Ah, that's an interesting way of looking at it 21:03:45 cpressey, so you mean the jump move is only applied after the tick is done? 21:03:53 yeargh 21:04:07 that will be like impossible to change to in cfunge 21:04:08 "An instruction is executed by an IP every tick. The IP executed is the one at the current position of the IP. Only after that does the IP moves by its delta to a new position. " 21:04:25 cpressey: But it's not moving by its delta here 21:04:28 indeed 21:04:29 I'm sure the 1st IP in the 2nd sentence meant to be "instruction" there 21:04:35 it is being forced ahead 21:04:54 cpressey: E.g. the # instruction: "moves the IP one position beyond the next Funge-Space cell in its path" 21:05:08 I don't think "by its delta" was meant to be prescriptive. the point was that it moves 21:05:12 Not after the tick; "moves the IP", i.e. right now 21:05:23 -!- lament has joined. 21:05:26 * AnMaster gets the popcorn for this one 21:05:27 cpressey: I meant that it's not the normal every-tick move, it's an additional move induced by an instruction 21:05:46 Well, if you interpret it like that, k has different and interesting semantics, yes. 21:05:58 cpressey, yep, and I think that is what everyone done so far 21:06:05 which caused quite a lot of issues with k 21:06:11 "reasoning by analogy" seems like a flaw 21:06:12 If you don't interpret it like that you'll be breaking a lot of Concurrent Funge-98 programs as well ;-) 21:06:32 OK, so k will be undefined too. 21:06:39 argh 21:06:43 cpressey, that is going too far 21:06:58 I thought we were defining the undefineds ;-) 21:07:03 yep 21:07:09 k isn't optional 21:07:26 I'm okay with tio= being handled these way 21:07:45 I'm okay with them because you need to ask y whether they're available anyway 21:07:47 OK, then define it in a way that doesn't break any programs. 21:08:04 cpressey, almost impossible, and I'm okay with breaking some programs 21:08:09 for the undef parts 21:08:14 just not too many 21:08:28 Just keep it as it is now and say something about nested k 21:08:30 call it path of least issues maybe 21:08:39 Deewiant, the issue with 1k though... 21:08:42 "something" 21:09:03 Could just disallow nested k. I doubt anyone uses it 21:09:07 cpressey: Well, I prefer my interpretation ;-) 21:09:12 AnMaster: I don't mind that 21:09:30 If you want, define negative arguments as executing exactly that many times ;-) 21:09:52 I.e. for n < 0, k executes the instruction |n|-1 times and doesn't move past it 21:10:03 cpressey, take a look at http://sprunge.us/MbCj?c (cfunge's k implementation) 21:10:34 cpressey, for nested k I think ccbi does something quite different 21:10:37 Special-casing kk? Tut, tut. :-P 21:10:42 Deewiant, yep 21:10:50 CCBI does exactly nothing, it just executes it as normal 21:10:59 Which leads to rather unintuitive semantics 21:11:00 Deewiant, that didn't work out though 21:11:03 Deewiant, exactly 21:11:08 Yes it works out 21:11:09 Deewiant: what does it do instead of moving past it? Act like # 21:11:11 It's just not intuitive :-P 21:11:44 cpressey: I mean it moves into it. It moves past the k into the instruction. Just like what k does now with positive arguments 21:12:02 Deewiant: So, you'd change the semantics for positive count? 21:12:18 No, for negative 21:12:47 Currently for positive: k executes n times, then moves into the instruction it just executed, thus executing it one more time come next tick 21:13:02 Hence 1k has the net effect of executing twice 21:13:06 ooh that is a good idea 21:13:18 My proposal: for negative, execute |n|-1 times, otherwise behave the same. 21:13:19 for negative counts define it to execute and skip over 21:13:35 Deewiant, that's brilliant 21:13:37 Or |n| and skip over, whatever 21:13:41 Deewiant: Oh, I thought you were proposing something that would allow you to execute the instruction exactly 0 times 21:13:45 I'd prefer |n|-1 and not skip 21:13:49 cpressey, oh, 0k does that 21:13:51 cpressey: That's what 0k does 21:13:57 cpressey, I think it was specced somewhere 21:13:58 0k is like # 21:14:01 yep 21:14:04 that was it 21:14:05 Yes, explicitly specced 21:14:21 Wait, I thought that was the problem, that 0kX executed X once 21:14:30 because it follows 0k 21:14:33 No, 0k executes zero times 21:14:35 1k executes twice 21:14:36 cpressey, no the issue is that 1kX executes X twice 21:14:44 The problem is that there is no way of executing once 21:14:47 exactly 21:14:52 Oh, ok. 21:15:16 But yeah, defining the negatives would do it 21:15:19 cpressey, still pretty similar issue. Just somewhat more wtfy 21:15:20 OK, then that mostly makes sense. 21:15:21 :) 21:15:27 My proposal is just general: alternatively all negatives could execute once, if you prefer :-P 21:15:37 still, nested k is a nested can of worms 21:15:54 Yeah, I'm pretty sure nested k should just go undefined. 21:15:55 You're so negative ;-P 21:16:01 Deewiant, hah 21:16:14 (Pun actually not intended) 21:16:24 suuuuuuure... 21:16:39 I realized it at about the same time as you responded 21:17:05 the negative = once, would be somewhat harder to use, not that that is necessarily a bad thing. 21:17:38 I figure the issue is just that you know you're going to hit a k at some point, but you'd like to execute only once 21:17:38 nor is it automatically a good thing I think 21:17:42 since this is *NOT* intercal 21:21:50 Is the behaviour of ># X Y to execute both X and Y, or just Y? 21:21:50 wtf, I was at the painful end of a static discharge.... against a plastic surface 21:21:54 how could that even happen 21:22:05 Oh, the static is revolting. 21:22:12 cpressey, eh? 21:22:13 hah 21:22:16 the great electron uprising you know 21:22:20 right 21:22:32 cpressey, anyway it would execute X and Y, alternatively break lots of things 21:22:42 Huh. I was pretty sure it skipped X. OK. 21:22:44 well, probably few programs use it 21:22:52 cpressey, well you told us before it didn't 21:22:57 I might have your mail around still 21:23:11 That makes sense, I was misremembering. 21:23:28 cpressey, it does? 21:23:58 cpressey, what email do you use? so I can search for it 21:24:08 oh wait never mind 21:24:15 found a folder called "funge" 21:24:21 it might be related 21:24:51 hm the mail is not there 21:24:52 strange 21:26:02 seems to be some funge stuff in "other" and "misc" and "assorted" too 21:26:16 really should come up with a saner organisation for my email 21:26:18 cpressey: # says "funge-space cell" not "instruction" 21:26:34 As far as implementations go, it's about 50/50. Mycology aborts early on if that executes only Y. 21:26:42 AnMaster: gmail, for several years 21:26:50 ah found the mail 21:28:07 well then due to what Deewiant said it doesn't apply actually 21:28:42 but anyway, the relevant section was: http://pastebin.ca/1810777 21:29:12 k does say "next instruction". 21:30:07 indeed 21:30:16 that makes that a non-issue :) 21:30:24 That might be why I was thnking that 21:31:48 cpressey, fungot and mycology are the largest befunge98 apps I know of 21:31:49 AnMaster: i must ponder this turn of events, it can have a powerful effect on time. ask the one to bring back lost loved ones... it's what that guy in medina, a village near the mystic mountain" 65,000,000 b. c.? yes, i'd have done something very brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope. 21:32:05 shut up ;P 21:32:16 fungot isn't that big is it? 21:32:17 Deewiant: we are looking to achieve a shorter life span... lavos will rule the world in a mere door that keeps us bound, hand, foot...and tongue kid? ...oh, it's you, isn't this morbid? the great adventurer toma levine rests in a grave to the north. it's a great place for a picnic! heard that magus's place... 21:32:30 (who would want to toast their own land) 21:32:43 also "we are looking to achieve a shorter life span" is pretty funny 21:32:52 forgot where it came from 21:32:59 fizzie explained it before 21:33:14 Something like "go there only if you are looking to achieve a shorter live span" 21:33:26 life* 21:35:17 right 21:35:54 anyway, the befunge turt quine is another semi-major app 21:36:03 s/app/program/ 21:36:11 and then there are a number of smaller testing programs 21:36:45 I think I wrote maybe 20 or 30 "would have fitted into 93 with some work" sized programs to test bugs and what not 21:37:12 there was that mine sweeper game in 98 that I never finished 21:41:10 Wait, I don't see why you wouldn't want to write CGIs in Befunge... 21:41:16 -!- gm|lap has quit (Quit: 2 hour UPS expired. Shutting down laptop.). 21:42:06 http://catseye.tc/projects/fbbi/eg/cgi.b98.cgi was supposed to be one 21:43:07 on my current host, I'd need an interpreter written in PHP though 21:45:08 apparently fbbi supports -script to interpret the hashbang line 21:45:31 heh 21:46:42 Hmm, CCBI might've picked it up from there then 21:48:07 I love when I can say "apparently" about stuff I've done 22:01:40 -!- cheater2 has joined. 22:03:05 night → 22:23:16 -!- kar8nga has quit (Remote host closed the connection). 22:25:57 Tia sez: gbhhhh 22:26:41 tia maria 22:39:23 -!- tombom has quit (Quit: Leaving). 22:56:54 -!- MigoMipo has quit (Remote host closed the connection). 23:16:42 -!- FireFly has quit (Quit: Leaving). 23:17:09 -!- BeholdMyGlory has quit (Read error: Connection reset by peer). 23:20:24 * Sgeo_ should check to see if PSOX works on Windows at some point 23:25:05 It does not. 23:25:43 :( 23:25:46 It's supposed to 23:25:57 What happens, exactly? 23:26:10 I mean, after the bug in whatchamacallit, the easter egg, is fixed 23:28:14 Oh, I just assumed it didn't because nothing ever works on Windows. 23:28:28 It's not like I ever use Windows. 23:59:03 -!- augur has quit (Ping timeout: 240 seconds).