00:12:19 -!- oerjan has quit ("Good night").
00:13:43 -!- Tritonio__ has joined.
00:15:16 <pikhq> Esolang idea: language with fucked up order of operations.
00:15:28 <pikhq> 2*(3+4) == 2*3+4, anyone?
00:15:57 -!- Tritonio_ has quit (Read error: 110 (Connection timed out)).
00:16:08 * Sgeo proceeds to have nightmares of parentheses doing random things
00:16:53 <ehird_> 2*(3+4) is right-associative
00:16:57 <ehird_> which is not as bad as it seems
00:17:12 <ehird_> it tends to be more common than left-, and sometimes you can refactor to remove parens with it
00:17:26 <pikhq> No, no, no. + has higher precedence than *. :p
00:17:42 <pikhq> 2*(3+4) = (3+4)*2 = 3+4*2 = 2*3+4.
00:18:36 <ehird_> you know that's actually useful
00:18:45 <ehird_> i would say 2*(3+4) is more common than (2*3)+4
00:19:07 <pikhq> But it's not standard mathematics.
00:28:29 -!- sarehu` has quit (Read error: 110 (Connection timed out)).
00:37:12 <ehird_> has anyone here used Urban M?ller's original Amiga distribution on real-life Amiga hardware?
00:37:20 <ehird_> I should be acquiring an Amiga sometime..
00:37:30 <ehird_> I wonder if I can stick an ethernet port into it. :)
00:41:44 -!- sarehu has joined.
00:43:03 <Sgeo> ehird_, write a PSOX custom domain!
00:43:26 <pikhq> Sgeo, write the infrastructure for it. :p
00:43:37 <pikhq> Actually: could you link me to the PSOX SVN?
00:43:57 <Sgeo> svn co http://svn2.assembla.com/svn/psox/trunk
00:44:54 <ehird_> Sgeo: does python run on an amiga? :)
00:46:19 <pikhq> Your simple cat example doesn't check for EOF.
00:46:27 <pikhq> ehird_: Linux will run on one, IIRC.
00:46:43 <ehird_> But I am talking about AmigaOS, that bastion of awesomeity :)
00:47:30 <ehird_> Does anyone know how to unpack LHA files on a UNIX?
00:51:58 <Sgeo> pikhq, does it need to?
00:52:25 <pikhq> Sgeo: Yeah, I'll be doing my C PSOX library later tonight. ;)
00:55:35 <Sgeo> pikhq, should I write a version that checks for EOF?
00:56:27 <pikhq> GregorR: If/when you decide to do more on C2BF, you should do one big thing: use PSOX as part of the stdlib.
00:56:56 <Sgeo> pikhq, should it be written in BF or Python?
00:57:21 <ehird_> pikhq: using PSOX as part of the stdlib would be a disaster
00:57:28 <ehird_> not only for the output size and elegance..
00:57:42 <pikhq> Have you seen the C2BF output size?
00:57:50 <pikhq> It's not like that's a major issue.
01:01:00 <Sgeo> pikhq, want it to be char-by-char or line-by-line?
01:02:04 <pikhq> And after this, I will be able to create the Brainfuck Audio Suite. >:D.
01:02:59 <pikhq> Yeah. Calamari, IIRC, wrote a script that would take raw audio and output Brainfuck code outputting that. . .
01:03:16 <pikhq> To use: egobfi8 output_brainfuck.bf > /dev/dsp
01:08:08 <Sgeo> Ok, it's breaking for some unknown reason
01:12:41 <Sgeo> pikhq, committed
01:12:58 <Sgeo> That only demonstrates EOF for a fixed number of characters though
01:13:44 <Sgeo> http://trac2.assembla.com/psox/browser/trunk/impl/cat_with_eof_check.py
01:14:05 <pikhq> Somehow, BF2PSOX.py seems fairly. . . Useless.
01:16:36 <ehird_> pikhq: Nonsense! In the future, all esolangs will support nothing but PSOX! It is far superior for every single program!
01:18:33 * pikhq should start reorganizing his home dir
01:20:23 <Sgeo> Is it a bad thing needing to refer to the specs for knowing whether EOF makes the indicator 0 or 1?
01:21:35 <Sgeo> Well, the way it is currently, you can end a loop upon an EOF
01:24:49 -!- sarehu has quit (Connection timed out).
01:26:52 <Sgeo> eating and stuff
01:44:47 -!- faxathisia has joined.
01:57:01 <Sgeo> pikhq, any further thoughts?
01:59:55 -!- olsner has quit ("*poof*").
02:00:01 <pikhq> I think it's time to sharpen the guillotine, tie the knots for the gallows, and get ready for revolution.
02:00:14 <pikhq> http://ap.google.com/article/ALeqM5gM4mwPQcU0j446qIew8P7ZmifwNgD8UP4GG03
02:00:58 <Sgeo> I meant with PSOX ofc
02:05:40 <ehird_> don't worry, there's no confusion.. Sgeo would never talk about anything that isn't psox
02:06:25 <Sgeo> I do on different channels
02:07:13 <ehird_> myths and LIES and STATISTICS
02:19:46 -!- sarehu has joined.
02:29:30 -!- ehird_ has quit ("This computer has gone to sleep").
02:32:51 -!- ehird_ has joined.
02:33:08 -!- ehird_ has quit (Client Quit).
02:47:30 -!- pikhq has quit (calvino.freenode.net irc.freenode.net).
02:47:31 -!- RodgerTheGreat has quit (calvino.freenode.net irc.freenode.net).
02:47:32 -!- lifthrasiir has quit (calvino.freenode.net irc.freenode.net).
02:47:32 -!- Deewiant has quit (calvino.freenode.net irc.freenode.net).
02:47:33 -!- tejeez has quit (calvino.freenode.net irc.freenode.net).
02:47:33 -!- sebbu has quit (calvino.freenode.net irc.freenode.net).
02:47:34 -!- EgoBot has quit (calvino.freenode.net irc.freenode.net).
02:47:35 -!- sekhmet has quit (calvino.freenode.net irc.freenode.net).
02:47:37 -!- sarehu has quit (calvino.freenode.net irc.freenode.net).
02:47:40 -!- Tritonio__ has quit (calvino.freenode.net irc.freenode.net).
02:47:40 -!- faxathisia has quit (calvino.freenode.net irc.freenode.net).
02:47:43 -!- bsmntbombdood has quit (calvino.freenode.net irc.freenode.net).
02:47:45 -!- Sgeo has quit (calvino.freenode.net irc.freenode.net).
02:47:46 -!- GregorR has quit (calvino.freenode.net irc.freenode.net).
02:47:46 -!- AnMaster has quit (calvino.freenode.net irc.freenode.net).
02:47:46 -!- oklopol has quit (calvino.freenode.net irc.freenode.net).
02:47:46 -!- cmeme has quit (calvino.freenode.net irc.freenode.net).
02:47:48 -!- lament has quit (calvino.freenode.net irc.freenode.net).
02:47:48 -!- Overand has quit (calvino.freenode.net irc.freenode.net).
02:47:49 -!- johnl has quit (calvino.freenode.net irc.freenode.net).
02:47:51 -!- puzzlet has quit (calvino.freenode.net irc.freenode.net).
02:47:51 -!- cherez has quit (calvino.freenode.net irc.freenode.net).
02:47:51 -!- SimonRC has quit (calvino.freenode.net irc.freenode.net).
02:47:52 -!- mtve has quit (calvino.freenode.net irc.freenode.net).
02:49:47 -!- RodgerTheGreat has joined.
02:49:47 -!- lifthrasiir has joined.
02:49:47 -!- sarehu has joined.
02:49:47 -!- faxathisia has joined.
02:49:47 -!- Tritonio__ has joined.
02:49:47 -!- puzzlet has joined.
02:49:47 -!- cherez has joined.
02:49:47 -!- EgoBot has joined.
02:49:47 -!- sekhmet has joined.
02:49:47 -!- Sgeo has joined.
02:49:47 -!- bsmntbombdood has joined.
02:49:47 -!- johnl has joined.
02:49:47 -!- SimonRC has joined.
02:49:47 -!- GregorR has joined.
02:49:47 -!- AnMaster has joined.
02:49:47 -!- lament has joined.
02:49:47 -!- oklopol has joined.
02:49:47 -!- cmeme has joined.
02:49:47 -!- Overand has joined.
02:49:47 -!- mtve has joined.
02:50:49 -!- sebbu has joined.
02:51:13 -!- Deewiant has joined.
02:51:13 -!- tejeez has joined.
03:02:23 -!- Tritonio__ has quit (Read error: 113 (No route to host)).
03:07:14 -!- sarehu has quit (Read error: 110 (Connection timed out)).
03:24:04 <Sgeo> GregorR, other random people, going to check out PSOX at any point?
03:35:08 -!- bsmntbombdood has quit (Read error: 110 (Connection timed out)).
03:35:18 -!- bsmntbombdood_ has joined.
03:35:38 <Sgeo> re bsmntbombdood_
03:51:04 <Sgeo> Anyone interested in PSOX? Anyone?
03:51:06 <Sgeo> RodgerTheGreat?
04:14:13 <Sgeo> bsmntbombdood_, there's a reason I haven't asked you -- you've expressed a dislike of PSOX
04:14:41 -!- AnMaster_ has joined.
04:30:11 -!- AnMaster has quit (Connection timed out).
04:41:44 -!- tejeez has quit (Remote closed the connection).
04:58:53 -!- pikhq has joined.
04:59:16 <Sgeo> Any more testing/experimenting with PSOX?
05:05:49 <oklopol> "<ehird_> i would say 2*(3+4) is more common than (2*3)+4" <<< i definitely disagree.
05:07:30 <oklopol> also, there's nothing interesting in changing the precedence of operators randomly, you can just change that in the source in many languages
05:07:47 <oklopol> making parens evaluate inside out might have something interesting.
05:11:14 <oklopol> i like the idea of a syntax where actually only the set of tokens used in a program matter, so that you can actually obfuscate pretty badly mechanically
05:11:23 <oklopol> wonder how sane you could make that look
05:12:51 <RodgerTheGreat> Sgeo: honestly, I find PSOX interesting, but I haven't had much time to spend on esocoding- I have to finish my schoolwork first, dude
05:15:59 <pikhq> Sgeo: Expect more interest when we have more time.
05:19:17 <oklopol> only some 47 years to my retirement.
05:19:46 <oklopol> i promise to take a deep look then
05:20:53 <oklopol> (of course, the esolang wiki will be five-dimensional then, and my dated brain cannot comprehend it)
05:21:42 <oklopol> in the year 2030, they add another dimension to the reality, to make it more interesting
05:22:21 <oklopol> you keeps the pole in your pants!
05:56:28 -!- Sgeo has quit (Remote closed the connection).
07:09:07 -!- oklopol has quit (Read error: 101 (Network is unreachable)).
07:58:45 -!- olsner has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:47:15 -!- olsner has quit ("Leaving").
08:49:21 -!- oklopol has joined.
09:16:32 -!- jix has joined.
11:13:45 -!- AnMaster_ has changed nick to AnMaster.
11:57:47 <GregorR> We have three cats in this house: Tia, Ish and Helsinki. At 3AM, a plant is knocked over causing a very loud chain reaction.
11:58:05 <GregorR> Tia is sleeping on my bed at the time, and Helsinki isn't allowed in that part of the house, so I assume it's Ish.
11:58:19 <GregorR> After searching for Ish for a half an hour, I hear a meowing at the door, and there's Ish, outside.
11:58:32 <GregorR> So, I assume it's Helsinki and she's gotten loose.
11:58:48 <GregorR> After searching for her for a while, I happen to look outside and she's on the porch.
12:05:26 -!- oerjan has joined.
12:45:22 -!- faxathisia has quit ("If there are any aliens, time travellers or espers here, come join me!").
13:09:29 -!- slereah__ has joined.
13:27:36 <SimonRC> it seems to be the boring hour
13:31:21 -!- timotiis has joined.
13:39:38 -!- pikhq has quit (Read error: 110 (Connection timed out)).
14:07:00 -!- RedDak has joined.
15:53:04 -!- Dagide has joined.
16:00:09 -!- oerjan has quit ("dinner").
16:05:42 -!- Hiato has joined.
16:09:52 -!- RedDak has quit (Read error: 110 (Connection timed out)).
16:14:51 -!- Dagide has quit (Remote closed the connection).
16:26:42 -!- ehird` has joined.
16:30:33 -!- ehird` has quit (Read error: 113 (No route to host)).
16:46:42 -!- Hiat1 has joined.
16:52:21 -!- Hiat1 has left (?).
16:55:04 -!- ehird` has joined.
17:03:39 -!- Hiato has quit (Read error: 110 (Connection timed out)).
17:15:38 -!- Corun has joined.
17:15:44 -!- olsner has joined.
17:22:23 <RodgerTheGreat> GregorR: your cats have interesting names. Mine are named Chai and Matcha.
17:25:10 <SimonRC> :> map(name, SimonRC -> pets(PETTYPE_CAT))
17:25:58 <SimonRC> pseudo programming language
17:26:54 <slereah__> It's no wonder the cat program is the most popular.
17:26:58 <RodgerTheGreat> well, currently my parents possess cats and I do not as I live in a dorm room. However, I love "my" cats and visit them as well as my parents often
17:27:34 <SimonRC> cats are not as inclined to loyalty as dogs are
17:27:38 <RodgerTheGreat> SimonRC: I'm allergic to cats, too! However, cats are worth taking antihistamines.
17:27:50 <slereah__> You don't need loyalty from a cat.
17:28:05 <SimonRC> slereah__: I didn't say I did
17:29:23 <slereah__> Man, with Chanology going on, I didn't do much.
17:29:44 <SimonRC> ah, you must be one of Anonymous
17:31:09 <SimonRC> Anonymous are not being particularly nasty ATM
17:31:48 <SimonRC> AFAICT the recent protests are peaceful, if disturbing
17:33:32 -!- slereah_ has joined.
17:33:32 -!- slereah__ has quit (Read error: 104 (Connection reset by peer)).
17:36:05 <ehird`> ?- cats(ehird, X), wanted_value(X).
17:36:19 <ehird`> X = [_G101,_G102,_G103...] ;
17:37:07 <ehird`> also, cats are pretty much in it for the opposable thumbs, i'd say
17:37:23 <ehird`> (?- cats(ehird, X), old_value(X). X = [_G101,_G102])
17:37:42 <olsner> cats can have my thumbs when I'm dead
17:39:03 <slereah_> Some cats have an opposable thumb, of sort.
17:39:03 <slereah_> Polydactyl cats, with an extra finger.
17:40:33 <slereah_> Soon, humanity will be unecessary for cats.
17:40:45 <slereah_> That's when the revolution will strile
17:41:02 <ehird`> they can open doors pretty well, yeah
17:41:09 <ehird`> but all said and done they couldn't do well without a human
17:41:13 <ehird`> it's easier for them to be lazy
17:41:33 <ehird`> if they end up evolving humanoid features so that they can replace us, it's likely they'll promptly undomesticate themselves
17:41:49 <RodgerTheGreat> cats need humans to change litter boxes. end of discussion.
17:41:57 <ehird`> obviously they think they'd do better than us :p
17:47:09 <ehird`> we need to start up an Esoteric OS project again, sometime
17:47:29 <ehird`> all my input is that it should have, at its core, an esoteric virtual machine, with everything built up on top of that
17:50:46 <slereah_> The rest doesn't seem too trivial
17:51:25 <ehird`> too trivial of an IDEA
17:52:03 <slereah_> You want to make something new up?
17:57:48 <ehird`> But it should include some crazy kind of memory management
17:58:16 -!- Corun has quit ("This computer has gone to sleep").
18:00:48 <ehird`> http://reddit.com/r/programming/info/68oka/comments/c036iud <-- this is cool
18:02:36 <ehird`> that gives me an idea!
18:02:47 <ehird`> the esoteric vm's `base` programming language should be stack-based,
18:04:37 <ehird`> : fact dup if 0? [1] [* fact (dup-1)] ;
18:05:43 <slereah_> Well, I'm probably not going to contribute much.
18:06:00 <ehird`> : fib dup if 0? [0] [dup if 1? [1] [(fib (dup-1))+(fib (-2))]] ;
18:12:09 <slereah_> I'm not too sure what the dup is for
18:14:04 <SimonRC> it seems to seperate the condition of the if from all that comes before.
18:15:03 <SimonRC> why not : fact dup 0? if id [1] [* fact (dup-1)] ;
18:15:12 <SimonRC> where id is the identity function
18:15:38 <ehird`> because, SimonRC, it's prefix/infix.
18:15:51 <ehird`> also, the dup is because the fib will eat it up
18:15:54 <ehird`> leaving you none to do the -2 with
18:16:06 <ehird`> : fib dup if 0? [0] [dup if 1? [1] [(fib (dup-1))+(fib (-2))]] ;
18:16:29 <ehird`> : fib dup 0? [0] [dup 1? [1] [dup 1 - fib 2 - fib +] if] if ;
18:16:32 <ehird`> that's how it parses up
18:28:42 * ehird` works out type of lambda-calculus Y starting from `fix`
18:29:03 <ehird`> So, we need to assign a value to the whole type of Y..
18:30:40 <ehird`> Y :: a=((a -> b) -> b)
18:42:28 -!- oerjan has joined.
19:11:45 -!- ehird`_ has joined.
19:12:54 -!- ehird` has quit (Read error: 113 (No route to host)).
19:21:22 -!- oerjan has quit ("Must - kill - incessantly - coughing - housemate (who refuses to accept cough drops)").
19:29:26 -!- ehird` has joined.
19:37:27 -!- ehird`_ has quit (Read error: 113 (No route to host)).
20:00:29 -!- faxathisia has joined.
20:40:07 -!- es0n00b has joined.
20:43:22 <es0n00b> knock knock? anybody home?
20:50:04 <es0n00b> im new to esoteric (can you tell)
20:51:29 <es0n00b> I've come up with an esolang idea that could possibly work in-silico
20:52:23 <es0n00b> dont know if its crazy enough tho
20:54:40 <es0n00b> like in-vivo=a living being. In-silico=on a chip
20:56:13 <es0n00b> it's based on the MISC implementation of OISC, defiinitely turing-complete, but more practical. Possibly faster (unproven)
20:56:55 <es0n00b> thinking of calling it NMISC (New MISC or NightMare-In-Silly-Cone??)
20:57:43 <es0n00b> really simple. OISC is based on subtract/conditional branch.
20:58:17 <es0n00b> MISC really makes OISC a bit more practical
20:58:17 <slereah_> And isn't very pleasant to implement on a Turing machine!
20:58:51 <slereah_> Anything where you have to rewrite the tape is unpleasant on a Turing machine
21:00:15 <es0n00b> the self-modifiny code bit is annoying, but it's possible to translate from assembly like code to OISC
21:01:16 <es0n00b> anyway, back to the idea. OISC=subtract/conditional-branch. NMISC=multiply/add/conditional-branch
21:01:48 <es0n00b> biggest problem i think of in OISC isnt implementation, its doing simple things like multiplication
21:02:08 <slereah_> What will be the branching condition on NMISC?
21:02:18 -!- olsner has quit ("Leaving").
21:02:25 <es0n00b> as soon as multiply is easy, you have access to Taylor polynomials (ie a lot of other functions)
21:02:46 <es0n00b> i am trying to think of an easy way to describe NMISC
21:03:54 <es0n00b> ok. i got the idea by figuring out how to make an OISC chip using transistor-logic (ie in-silico)
21:04:33 <es0n00b> turns out, subtraction in-silico is addition of one binary number, the inverse of another binary number, and 1
21:05:01 <es0n00b> ie 3-1 becomes 0011 + 1110 + 0001
21:05:37 <es0n00b> which gives 1 0010. 0010=2. the extra 1 is the carry flag
21:06:16 <es0n00b> carry flag=1, result is postive. carry flag=0, result is negative
21:06:31 <es0n00b> OISC becomes easy to implement from there.
21:07:02 <es0n00b> the problem with multiplication is, multiply 64-bit*64-bit gives 128-bit
21:07:27 <es0n00b> thats where the MISC idea comes in
21:09:02 <slereah_> Well, I only know two things of in-silico.
21:09:25 <ehird`> es0n00b: how about forgetting about silico for now
21:09:30 <ehird`> and just writing out the base operation
21:09:36 <slereah_> A book on computers from 1976, and some bitwise research on wikipedia (I wanted to make a computer with finger binary)
21:09:40 <ehird`> opand opand ... -- c code
21:10:35 <es0n00b> the carry-flag operation is SO SO important, as it is how the conditional branch works, and makes it trivial to translate MISC into NMISC
21:11:13 <es0n00b> OK: OISC= IF (A==A-B)<=0 jump C
21:12:23 <es0n00b> MISC= IF(A==B-C)<=0 jump D. D has 2 bits not used for jumping, but are used as data control bits (important). all addresses are relative
21:12:44 <es0n00b> NMISC (bit more complicated)
21:13:20 <SimonRC> there was one that just did: A -= accumulator
21:13:56 <es0n00b> I/O has to be memory mapped.
21:15:55 <es0n00b> D is still the jump address, with data-control properties included
21:16:35 <es0n00b> the jump address is D, with the lowest 2 bits being ignored (as only every 4th address is a new instruction)
21:16:58 <es0n00b> lowest D-bit controls data. second lowest d-bit controls F
21:17:28 <es0n00b> F either gets the low half or the high half of (A*B)
21:17:55 <es0n00b> confusing so far (maybe) -but when you put it all together it seems to work
21:19:15 <es0n00b> translating MISC to NMISC, F only need to grab low half of (A*B). B is always set to -1, so A=C-A. trivial
21:20:01 <es0n00b> fast-multiply-add takes 3 instruction.
21:20:50 <es0n00b> 1) calculate lowest 64 bits. jump to 3) if no carry flag
21:21:05 <es0n00b> 2) add 1 to highest 64 bits
21:21:18 <es0n00b> 3) calculate highest 64 bits
21:22:23 <es0n00b> Taylor polynomials are calcualted using(((Ax+B)x+C)x+D) etc
21:22:41 -!- PupUser936e92 has joined.
21:23:07 <es0n00b> can someone do a sanity check for me. does this all make sense, or has someone been putting lsd in my coffee again
21:24:04 <es0n00b> last time i did programming it was on a commodore-64
21:24:40 <slereah_> Well, program on a C-64 emulator!
21:25:03 <slereah_> Or profit from what the future has to offer.
21:25:11 <slereah_> Because we're in the future people.
21:25:14 <es0n00b> i am already sure it must work. been messing with a lot of pen-and-paper
21:25:38 <slereah_> Since this Christmas, I have a device that allows me to see videos, in my pocket.
21:25:47 <slereah_> For me, that's the fucking future.
21:26:25 <es0n00b> definitely turing complete, as it emulated OISC trivially. Just wondering if it would be faster than OISC in-silico for real-world applications (not a trivial question)
21:27:18 <es0n00b> ok - going to write a C-64 emulator emulation of NMISC
21:27:26 -!- PupUser936e92 has quit ("Download Gaim: http://gaim.sourceforge.net/").
21:28:16 <slereah_> Beware. Piling up interpreters isn't good for speed!
21:29:13 <es0n00b> wrote a C-64 emulator emulation of OSIC in machine-language once. clicked along slowly but smoothly
21:29:48 <es0n00b> NMISC will be in basic. multiplication in C64-ML sux
21:30:08 <es0n00b> should be as slow as a snail travelling on a turtle
21:30:27 <slereah_> Actually, the snail would be travelling faster.
21:30:58 <slereah_> (I might not know electronics, but I can galilean-transform the shit out of snails!)
21:32:05 <slereah_> Studying physics isn't very computer-oriented here.
21:33:22 <slereah_> It's labeled as "Physics-Physics". Or "actually "Physique-physique".
21:33:55 <slereah_> It's the fundamental kind. Nuclear, quantum, relativity, continuum mechanics, electromagnetism
21:34:18 <es0n00b> oh. i got as far as some very elemenatry quantum and relativity, but then my brain started to hurt
21:35:08 <slereah_> We mostly use programming for number-crunching here.
21:35:24 <slereah_> "Find the centroid of that radiation spectrum!"
21:35:57 <slereah_> So it's hard to learn sum real CS.
21:36:10 <es0n00b> saw an interesting show about some kind of theory combining quantum and relativity. Needed at least 11 dimensions or something, with dimensions 5 and up being very compact
21:36:46 <es0n00b> sort of got the idea of how a dimension could be compact. Thank god they didnt go into the maths of it all though.
21:36:47 <slereah_> String theory. Although right now, all eyes are turned to that one guy who cooked up a theory at home!
21:37:18 <slereah_> There's a claim for a major breakthrough every few months, and usually, you never hear of it again.
21:37:31 <slereah_> Would be nice if it was true for once.
21:37:37 <es0n00b> the where talking about branes?
21:38:41 <slereah_> Well, a few years ago, around high school, I started reading real science.
21:38:44 <es0n00b> sounds like a bunch of maths equations with no real-world proof
21:39:02 <slereah_> And noticed that popular science didn't help much understanding it.
21:39:23 <slereah_> So I haven't read a lot about string theory these last few years, since I don't want the popular stuff and can't read the real.
21:39:47 <slereah_> String theory is pretty much theoretical, yes.
21:40:05 <slereah_> Although there's some good hope for some clues this year
21:40:17 <es0n00b> i guess that how relativity started though
21:40:54 <slereah_> Relativity actually started on proof.
21:41:02 <slereah_> Well, unless you count Maxwell's work.
21:41:17 -!- pikhq has joined.
21:41:22 <slereah_> It came from the Michelson-Morley experiment.
21:41:42 <ehird`> es0n00b: i'll write an interpreter
21:41:48 <es0n00b> (fuzzy on details) though relativity was a pipe-dream explaining xperiment
21:41:52 <ehird`> rafb.net/paste <-- paste a compact description of the semantics
21:42:04 <es0n00b> ehird - should be an easy interpreter
21:42:31 <ehird`> it'll interpret it as one-line-per-instruction, whitespace-seperated-hex-operands though...
21:42:42 <ehird`> well, i could do both i guess
21:44:56 <es0n00b> started writing a version of NMISC, but was using A=A+B*C. A bit of experimenting showed A=A*B+C might be more useful (see tha Taylor polynomial expansion)
21:45:18 <es0n00b> A=A+B*C comes out in short hand as follows
21:45:21 <ehird`> es0n00b: welp, ok. I don't need a huge paper, just a few lines describing it :P
21:47:02 <es0n00b> PC+=IF((M(M(PC)+PC)==M(M(PC)+PC)+(IF(m(pc+3)AND1),m(PC+1),m(m(PC+1)+PC))*m(m(pc+2)+PC)DIV(IF((m(PC+3)AND2),2^N,1))MOD(2^N))<2^N,4+(m(pc+3)ANDNOT3),4)
21:47:13 <ehird`> that looks like excel code..
21:47:25 <ehird`> would you happen to be a mathematician? :)
21:47:34 <es0n00b> yeah. using the excel IF(condition,return-true,return-false)
21:48:10 <ehird`> is all this a ploy to sell me something relating to esoteric programming languages?
21:48:26 <es0n00b> just happen to have love math, electronics and computers since i can remember.
21:48:49 <slereah_> But do you have some awesome BF computer to sell us?
21:48:51 <es0n00b> seriously, lifes curveballs and ended up with me telemarketing
21:49:21 <es0n00b> I would LOVE to get something onto silicon.
21:49:24 <ehird`> rafb.net/paste <-- if you could write it out in something slightly less compact and unreadable here i'll have an implementation in -3 seconds (yes, i really am that quick.. this is the interpreter: <FUTURE VALUE>, now show me in 3 seconds)
21:49:55 <es0n00b> ok. hang on hlaf a tick. got something on paper a bit readable. brb
21:50:36 <es0n00b> bugger. threw the reable one out. liked the formula version as it makes more sense to me
21:50:50 <es0n00b> ok. trying to translate back into simple-mode
21:51:23 <es0n00b> first note. all addresses are relative to the current program counter (PC)
21:51:42 <es0n00b> basic idea is A=A*B+C (simple enough)
21:52:02 <ehird`> es0n00b: so, expanding with the PC:
21:52:11 <ehird`> (PC+A)=(PC+A)*(PC+B)+(PC+C)
21:52:41 <ehird`> es0n00b: also -- just confirming, how many operands does it have? 3?
21:52:56 <es0n00b> kind of. the MOD and DIV in the formula version are to do with F() - ie to get the low or high end of A*B
21:53:20 <es0n00b> A=A*B+C. Jump D on right conditions
21:55:02 <es0n00b> if (Dand2) then Y=X DIV 2^64 else Y=X MOD 2^64 (assuming 64-bit)
21:55:44 <ehird`> well that's a pretty big assumption :)
21:55:57 <es0n00b> yeah. substitute 2^16 if you want a 16 bit computer, etc
21:56:38 <ehird`> if B=the bits, and D=the size of ints/pointers, then does B have to =D?
21:56:47 <ehird`> or is it OK as long as B<=D
21:57:23 <es0n00b> if Y+C>2^64 then jump PC+(d and not 3)+4 else jump PC+4
21:58:49 <es0n00b> trying to keep things simple. if its an 16-bit computer then each operand is 16 bits long and computer has a 2^16 word memory (128K)
21:59:28 <ehird`> es0n00b: OK, so if an operand can store more than 16bits or a memory cell can -- that's bad?
21:59:37 <ehird`> because, in C, there's no decent way to determine this kind of thing
22:00:05 <es0n00b> have purposely used jump addresses relative to the next instruction, so that a jump to +0 is not a jump at all (ie it will force a jump to next instruction)
22:00:17 <ehird`> es0n00b: hmm, i have a question
22:00:26 <ehird`> which bit-size do you reccomend for an implmentation?
22:00:57 <ehird`> but maybe not enough memor
22:01:03 <es0n00b> any could do. depending on how much memory you need to play with
22:01:13 -!- Sgeo has joined.
22:01:39 <es0n00b> id got for 16-bit to begin with.
22:01:57 <es0n00b> 2^16 memory cells. 2^12 instructions. enough to do a bit
22:02:11 <ehird`> es0n00b: OK. It might be more elegant if you don't involve bit-sizes at all.
22:02:31 <ehird`> Might make in-silico harder, but makes it turing-complete.
22:02:53 <ehird`> es0n00b: do the noticable semantics change with bitsize?
22:02:58 <ehird`> i.e. programs are totally different
22:03:04 <es0n00b> yes. infinite bit-size is turing-complete. finite bit-size is practical
22:03:59 <ehird`> es0n00b: i'm just asking :P
22:04:08 <es0n00b> change in bit-size will change the programming
22:04:13 <ehird`> faxathisia: he's a telemarketer who's come up with a OISC that he thinks might be better in-silico
22:04:28 <ehird`> es0n00b: what i mean is do all programs change substantially or could you look at them and go 'yeah i guess they do the same thing'
22:04:33 <faxathisia> ehird that is not a knock knock joke ;(
22:04:50 <es0n00b> (I was doing a PhD once... dont ask)
22:04:56 <ehird`> faxathisia: think about it right and it is
22:05:35 <pikhq> (oerjan, one of the regulars here, is IRL Dr. Johansen. :p)
22:06:11 <es0n00b> the reason bit-size is important is the condition-branch is dependant on it
22:06:28 <es0n00b> (still trying to translate math to english)
22:06:42 <ehird`> es0n00b: so it makes sense to decide, like, right now
22:06:46 <Sgeo> Hi all, ehird` faxathisia, es0n00b
22:06:58 <es0n00b> how much memory do we want??
22:07:23 <es0n00b> 16 bit gives us 128K, 32 bit gives us 16GB
22:07:40 <es0n00b> 64 bit gives us over 134,000,000 TB
22:07:47 <ehird`> es0n00b: ok, here's the decider:
22:07:48 <pikhq> Nets you 2^54 bits. More than enough.
22:07:50 <ehird`> which is easiest to program for?
22:08:11 <pikhq> ehird`: They're actually equally easy.
22:08:19 <ehird`> pikhq: even with his semantics?
22:08:25 <ehird`> he says the condition branch is dependant on it
22:08:26 <pikhq> uint_8, uint_16, uint_32, uint_64. . .
22:08:35 <es0n00b> bit-size doesnt change ease of progamming. just possible maximum memory
22:08:36 <pikhq> What sort of semantics would change with bit size?
22:08:43 <ehird`> pikhq: i don't know, but he says they do
22:09:09 <ehird`> es0n00b: OK. Then I would say 64-bit, but then again I cannot think of one use an esolang would have for >16GB memory -- but the larger ints might be useful
22:09:12 <es0n00b> once i define the branch insturcion to english, you'll understand
22:09:15 <ehird`> But not 8-bit, i think.
22:09:47 <ehird`> es0n00b: 8-bit would be a big mistake.
22:10:01 <ehird`> sooner or later, someone will come up with an awesome program that uses more than 128k
22:10:23 <es0n00b> ok ok. lets start with 32 bit
22:11:22 <es0n00b> f() returns to top 32 bits or the bottom 32 bits of a*b
22:11:52 <es0n00b> IE (dand2)=0 -> f(a*b)=lowest 32 bits of a*b
22:12:02 <es0n00b> (dand2)=2 -> f(a*b)=lowest 32 bits of a*b
22:12:14 <es0n00b> <es0n00b> (dand2)=2 -> f(a*b)=highest 32 bits of a*b
22:12:51 <ehird`> but i get what you're saying
22:12:53 <es0n00b> all bitwise. my thoughts are for silion efficiency
22:13:50 <es0n00b> if f(a*b)+c is smaller than 32 bits than jump d, otherwise jump next instruction
22:14:15 <ehird`> 'smaller than 32 bits'?
22:14:22 <ehird`> you mean, fits into 31 bits or less?
22:14:44 <es0n00b> my mistake. sorry. the maths does get complicated
22:14:57 <es0n00b> i should mean, fits into 32 bits or less
22:15:44 <es0n00b> 33 bit controls the jump, but is not stored in A
22:16:07 -!- sclv_ has joined.
22:16:14 <es0n00b> the reason for this comes to to implementation of 64bit multiplication in 32bit computer
22:16:56 <es0n00b> if 33nd bit is on in the first instruction, a carry has occurred and must be added to the top 32 bits
22:17:30 <es0n00b> a=32bit, b=32bit, c=32 bit, d=32bit
22:17:58 <es0n00b> the bottom 2 bits of D are ignored for the jump.
22:18:21 -!- atsampson has joined.
22:18:38 <es0n00b> IE: PC=PC+(Dandnot3)+4 :: the +4 makes jumps relative to the next instruction
22:19:19 <ehird`> es0n00b: i hope you're saving this to put in a textfile :-)
22:19:53 <es0n00b> ie NMISC A B C 0 is forced to jump to the next instruction, and NMISC A B C 4 will skip the next instruction if bit33 is clear (ie no carry)
22:21:00 <es0n00b> the whole picture of the idea is all stored in my brain. the details are all to do with practicality.
22:21:39 -!- Corun has joined.
22:21:45 <es0n00b> NMISC A,-1,C,D == A=C-A, jump D if bit33 clear
22:22:20 <es0n00b> NMISC A,0,C,0 == A=C. no jump
22:22:27 <ehird`> es0n00b: your conciseness makes me think you should be a forth programmer
22:23:46 <es0n00b> i had an electronic set as a kid, and was got into transitor-transitor logic
22:24:42 <es0n00b> its crazy that all digital logic can be made using only NAND gates. thats when i first had an idea of a minimal computer. it's only now that things are coming to fruition
22:25:50 <es0n00b> eg OR(A,B)=NAND(NAND(A,A),NAND(B,B))
22:26:59 <es0n00b> thats probably why im used to seeing it all as digital formulas but have so much trouble communicating the idea across right
22:27:47 <es0n00b> the D=0 -> no jump thing is also useful, as it leads to some neat tricks.
22:28:26 <slereah_> I wonder if you could make something with imply and some bit consistently defined as 0.
22:28:40 <slereah_> You can derive all logical operators from imply and false
22:28:57 <slereah_> But I'm not sure how that would play out on silicon
22:29:27 <es0n00b> i was trying to work with only NAND for ages. it is possible to make an OISC in NAND, but its horrible
22:30:03 <slereah_> OISC always feels like cheating to me.
22:30:22 <slereah_> Sure, it's got one instruction, but it has three parameters and symbols!
22:30:43 <es0n00b> somthing as simple as addition in NAND requires programming a version of the full-adder circuit. start thiniking about multiplication and its a nightmare
22:31:02 <slereah_> Write a program to translate it?
22:31:07 <es0n00b> thats what lead me to the NMISC idea (that and discovering OISC/MISC)
22:32:14 <es0n00b> yeah - OISC isnt the most difficult esolang
22:32:56 <es0n00b> BF and the like are good if you want a challenge. I'm looking for something practical though
22:33:35 <es0n00b> NMISC shouldnt be too hard to pout onto a Field-programmable gate array
22:33:58 <slereah_> I was imagining the program pouting.
22:34:00 <ehird`> es0n00b: hm, my haskell NMISC isn't getting too far yet: evalStateT (writeMem 0 1 >> readMem 0) baseMachine
22:34:35 <es0n00b> it's all addition, multiplication and a little boolean-logic
22:34:38 <ehird`> es0n00b: actually, writing stuff like this in haskell is odd
22:34:54 <ehird`> you get your provably-correct, purely-functional, mathematically-valid program and add all this generic stuff :)
22:35:04 <ehird`> its still good for it, though
22:35:34 <es0n00b> ok. my wife is awake, so i probably got to go soon.
22:35:46 <ehird`> es0n00b: now as soon as you've got the instruction written down and put somewhere i'll implement it ;)
22:35:56 <ehird`> i'll try and understand myself..
22:36:07 <es0n00b> think i might flesh this idea out, put it on paper, then maybe write a NMISC page onto esolang.org
22:36:44 <es0n00b> my email is cdgamlin AT hotmail DOT com
22:37:05 <ehird`> es0n00b: really, for this implementation i just need a description of the one instruction and the IO model
22:37:12 <ehird`> rafb.net/paste will store it too
22:37:30 <ehird`> an esolang page would be great when there's a 'hello world' :P
22:38:07 <es0n00b> love to hear any experiments if the model gets up and running. email me your emails and i'll write you a full description of NMISC, and probably a pseudo-code BASIC version
22:39:03 <ehird`> don't have access to an email client here
22:39:07 <es0n00b> could probably write the "hello world" on paper faster than I could write a NMISC emulator. like I said, translating from MISC to NMISC is trivial
22:39:50 <ehird`> if we have a hello world and how it works then an impl should be easy
22:39:58 <es0n00b> NMISC just has more efficient ways to do things requiring multiplication (like almost all real-world math)
22:40:40 <es0n00b> ok. I'll write a "Hello World" to the NMISC page on esolang.org
22:41:09 <es0n00b> what memory address is best for memory-mapped I/O
22:41:40 <es0n00b> i'm thinking last two memory cells
22:42:41 <es0n00b> ie FFFF and FFFE in hex (for 16 bits). Dont know if it makes much difference though.
22:42:56 <es0n00b> ok. wife wants me to do things. back later
22:43:25 <es0n00b> nice to be able to share this crazy idea with ppl who might understand (and not look at me like i'm a nutter)
22:43:44 <slereah_> I'd love to understand moar though ":0)
22:44:13 <ehird`> it means that if you eat a lot of memory you don't have to think about it
22:45:25 <es0n00b> if the first instruction is 0: NMISC 0 0 0 0, it returns A=0, and goes to the next instruction anyways
22:50:35 -!- es0n00b has quit (Read error: 54 (Connection reset by peer)).
22:52:51 -!- sclv_ has quit ("http://www.mibbit.com ajax IRC Client").
22:54:49 <ehird`> we need a composition-lambda-calculus
22:54:58 <ehird`> it's lambda-calculus without the lambda, but it's not combinator calculus
22:55:02 <ehird`> because it's based on function composition
22:55:58 <ehird`> faxathisia: FUNCTION! composition
22:57:30 * slereah_ once had an idea of a lambda calculus without lambda.
22:57:45 <slereah_> Just using capital letters for bound variables.
23:02:02 <ehird`> faxathisia: that's kind of... non-universal
23:02:18 <ehird`> but a few primitives (one letter or symbols, of course) + composition = ?
23:02:29 <ehird`> and of course you can make the composition operator implicit
23:02:34 <ehird`> and get a concatentative language
23:02:49 <ehird`> if you go all the way and make it a stack language, then ais523 or oerjan i forget which -- suggested that 'dip' might be the operator
23:03:15 <ehird`> ( .a b ( .a -- .b ) -- .b b ), that is
23:07:59 -!- oerjan has joined.
23:13:02 <slereah_> Problem with esolang is, it's hard to look back in your code.
23:16:20 <slereah_> Man, that BF interpreter is a mess.
23:30:11 -!- pikhq has quit ("leaving").
23:32:24 -!- pikhq has joined.
23:32:38 -!- pikhq has quit (Client Quit).
23:33:21 -!- pikhq has joined.
23:34:43 -!- pikhq has quit (Client Quit).
23:36:45 -!- pikhq has joined.
23:54:35 -!- jix has quit ("This computer has gone to sleep").
23:55:21 -!- olsner has joined.