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