←2009-03-19 2009-03-20 2009-03-21β†’ ↑2009 ↑all
00:00:15 <oklofok> also maybe there aren't names dunnoes.......
00:00:59 <ehird> where are the namez
00:03:59 <ehird> err wow i can't figure out how to get a newline in a string in j
00:05:52 <ehird> err oklofok, I keep meaning to ask
00:05:56 <ehird> how do you explicitly refer to a param
00:06:00 <ehird> e.g. id=:{my param}
00:07:05 <Blipi> Hmm
00:07:11 * Blipi lost
00:07:16 <ehird> hi Blipi
00:07:20 <Blipi> I'm off (:
00:07:23 <Blipi> Hey
00:07:27 <ehird> bye Blipi
00:07:30 <Blipi> :D
00:07:31 <Blipi> Bye
00:07:36 -!- Blipi has quit ("- nbs-irc 2.39 - www.nbs-irc.net -").
00:11:15 <ehird> aha, LF
00:11:31 <ehird> oklofok: sooo
00:11:32 <ehird> how do you do it
00:15:00 <ehird> oklofok: pinger
00:18:31 <ehird> ah you gotta use a 3: thing
00:19:50 <oklofok> o
00:20:17 <oklofok> yes
00:20:31 <ehird> hmm
00:20:36 <ehird> for dyadic you get (x,y) as the argers
00:20:39 <oklofok> i haven't used them...........................
00:20:47 <ehird> but x and y are undefinered for monadies hwo stupiiiidy
00:20:48 <oklofok> *-ellipsis
00:20:50 <ehird> ah wait
00:20:50 <ehird> it's y
00:20:59 <ehird> er or not
00:21:08 <oklofok> x and y are the args afaik
00:21:26 <oklofok> but it's not that simple
00:21:27 <ehird> id =: 3 : 0
00:21:27 <ehird> y
00:21:28 <ehird> )
00:21:30 <ehird> id 2
00:21:32 <ehird> 2
00:21:34 <ehird> it's y for mony-attic
00:21:40 <oklofok> x fun y
00:21:43 <ehird> yes
00:21:48 <ehird> and (fun y)
00:21:50 <ehird> hmm
00:21:50 <ehird> but
00:21:57 <ehird> calling another fucktion fails
00:22:01 <ehird> say=:1!:2&4
00:22:01 <ehird> sayn=:3:0
00:22:02 <ehird> say y
00:22:04 <ehird> )
00:22:06 <ehird> sayn 'foo'
00:22:07 <oklofok> maybe there should be a language that had sads too
00:22:08 <ehird> gives a valueerror on the y part of say y
00:22:10 <ehird> HOW ODDITY
00:22:22 <ehird> oklofok: the opposite of fun is boringness, duh
00:22:24 <oklofok> although i guess that's technically not a good opposite for fun
00:22:26 <oklofok> yes
00:22:31 <ehird> (boringness x <- x+1)
00:22:33 <oklofok> i was just thinking 3 letters
00:22:38 <ehird> I don't know how that would work but hrm.
00:22:41 <oklofok> but a really long one works just as well
00:22:47 <ehird> maybe like
00:22:57 <ehird> i have no ide
00:22:58 <ehird> a
00:23:06 <ehird> the idea is basically
00:23:08 <oklofok> maybe it's boringness that should be functions
00:23:09 <ehird> anti-do things to the arguments
00:23:14 <oklofok> and fun should be something fun
00:23:14 <ehird> instead of arguments you get unarguments
00:23:17 <ehird> and you undo things to them, see?
00:23:21 <oklofok> ah!
00:23:22 <oklofok> sure sure
00:25:31 <lament> you undo undergarments?
00:25:46 <ehird> yes
00:25:49 <ehird> wait no
00:25:52 <ehird> that's not boringness, that's fun
00:25:53 <ehird> silly
00:32:52 <ehird> oklofok: heh
00:32:54 <ehird> 3:0 is (3:) 0
00:32:57 <ehird> but 3 :0 is 3 : 0
00:33:00 <ehird> and the latter is what you want
00:33:03 <ehird> so infuriating :DD
00:34:50 <oklofok> how so
00:34:58 <oklofok> : is a suffix
00:35:02 <ehird> well yeah
00:35:04 <ehird> still infuriating
00:35:26 <oklofok> well you're the guy who didn't like random numbers for foreigns, so...
00:35:37 <ehird> i serve to live
00:36:34 <ehird> system/extras/util/lab.ijs:output=: [: empty 1!:2 & 2
00:36:38 <ehird> cannot figure out why that works.
00:37:00 <ehird> system/main/conlib.ijs:echo=: 0 0&$ @ (1!:2&2)
00:37:00 <ehird> system/main/conlib.ijs:stdout=: 1!:2&4
00:37:02 <ehird> system/main/conlib.ijs:stderr=: 1!:2&5
00:37:04 <ehird> ah yes.
00:38:09 <ehird> #!/usr/bin/env jconsole
00:38:09 <ehird> echo 'Hello, world!'
00:38:11 <ehird> (2!:55)0
00:38:13 <ehird> ok, that's better
00:39:27 <ehird> system/main/stdlib.ijs:exit=: 2!:55
00:39:28 <ehird> ha
00:39:33 <ehird> #!/usr/bin/env jconsole
00:39:33 <ehird> echo'Hello, world!'
00:39:35 <ehird> exit 0
00:39:41 <ehird> wow
00:39:44 <ehird> if you add a spac
00:39:44 <ehird> e
00:39:46 <ehird> that's valid shell _and_ j
00:39:48 <ehird> Jell!
00:54:10 <ehird> http://www.schneier.com/blog/archives/2009/03/blowfish_on_24_1.html <-- hahaha
01:00:45 <oklofok> wait the algo has a backdoor?
01:00:57 <ehird> no
01:01:03 <ehird> 24 is a stupid tv show
01:01:06 <ehird> fiction
01:01:10 <oklofok> i meant in the show
01:01:12 <ehird> yes
01:01:21 <ehird> i mean they're not exactly technical accuracers are they
01:01:33 <ehird> i love concising things I verb.
01:01:46 <oklofok> if they actually used the term "wavelength", i find that much funnier
01:02:01 <ehird> they did
01:02:03 <oklofok> i don't see why there couldn't be a backdoor in the algo in theory
01:02:08 <ehird> there could
01:02:33 <oklofok> anyway after time travel, hacking is probably my least favorite thing in tv shows
01:02:46 <oklofok> of course, i love watching both; but at the same time they are so goddamn painful to watch
01:02:59 <ehird> I like hitchhikers guide to the galaxy's time travel
01:03:09 <ehird> you can't change the future, because it all just sort of works out.
01:03:18 <ehird> who cares about the butterfly effect if you're not a butterfly.
01:03:24 <ehird> also, there's temporal paradoxes in it
01:03:29 <ehird> except they don't actually do anything.
01:03:42 <ehird> BLATANT DISREGARD FOR TIME hoooooo
01:04:22 <oklofok> i hate all the time travel types
01:05:25 <ehird> wait
01:05:28 <ehird> even qntm's?
01:05:40 <oklofok> wuzat
01:05:50 <ehird> http://qntm.org/?models
01:06:02 <ehird> there's some crazy ass ones
01:07:33 -!- olsner has quit ("Leaving").
01:10:16 -!- Sgeo has joined.
01:28:32 <oklofok> the two timelines interacting stuff i don't remember seeing anywhere
01:29:18 <oklofok> but no i didn't like any of those, i just think the whole idea is incredibly stupid
01:41:08 <ehird> why
01:42:12 <oklofok> you might start by asking why i don't believe einstein is correct about time even being bendable
01:42:17 <ehird> :P
01:42:59 <oklofok> firstly i don't know any physics, secondly i'm a coconut.
01:58:08 <psygnisfive> i feel you should all know
01:58:14 <psygnisfive> that Philip Glass's Pruit Igoe
01:58:18 <psygnisfive> is an incredible song
01:59:21 <Sgeo> Someone thinks I'm a bunch of penguins
01:59:39 <psygnisfive> well, "sgeo" IS italian for "bunch of penguins", you know
01:59:41 <Sgeo> http://www.flickr.com/photos/83024403@N00/3266023863/
02:00:08 <psygnisfive> you know
02:00:17 <psygnisfive> i feel like that's something cory doctorow would write in one of his stories
02:00:42 <psygnisfive> a posthuman who's embodiment is as a half dozen or so penguins
03:32:08 <kerlo> People who "the xkcd guy" can refer to, in order: 1. Randall Munroe. 2. That guy who always wears a hat. 3. Cory Doctorow. 4. That furry.
03:32:29 <kerlo> Except that furry isn't actually related to xkcd in any way.
03:37:35 -!- bsmntbombdood_ has changed nick to bsmntbombdood.
04:02:28 -!- GreaseMonkey has joined.
06:23:10 -!- Sgeo has quit ("Leaving").
06:49:24 -!- Asztal__ has joined.
07:01:59 -!- Asztal has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:31:09 -!- neldoret1 has quit (Read error: 110 (Connection timed out)).
10:09:31 -!- GreaseMonkey has quit ("X-Chat -> http://xchat.org <- At least when I quit I don't look like a lamer").
10:37:53 -!- Otrez has joined.
10:38:48 <Otrez> UHAHAHAHAHAHAHA
10:39:21 <Otrez> That was my friend -.-
10:42:42 -!- Otrez has quit (Read error: 104 (Connection reset by peer)).
14:21:56 -!- neldoreth has joined.
14:41:49 -!- Hiato has joined.
15:14:14 <oklofok> o
16:18:39 -!- Hiato has quit ("Leaving.").
16:56:21 -!- ais523 has joined.
17:13:08 -!- Hiato has joined.
17:13:45 -!- asiekierka has joined.
17:13:47 <asiekierka> Hi
17:13:57 <ais523> hi
17:14:15 <asiekierka> What's the current "channel topic" as in, what are you currently talking aout?
17:14:16 <asiekierka> about*
17:14:44 <ais523> there wasn't one
17:15:12 <asiekierka> So uh, what's the current "esolang with interest", as in, what's the popular-esolang-of-the-while?
17:15:24 <asiekierka> currently
17:15:46 <ais523> I was thinking a lot about MiniMAX last night
17:15:58 <ais523> although nobody else knew I was doing that, so it probably hasn't caught on elsewhere yet
17:17:59 <asiekierka> Wow, MiniMAX's intepreter is only 14 bytes
17:18:06 <asiekierka> I think you could pull it off as a compiler
17:18:16 <asiekierka> just by making a compiler appending the MiniMAX code to the interpreter
17:18:17 <asiekierka> :P
17:18:19 <ais523> yes
17:18:24 <ais523> I had that plan too
17:18:29 <asiekierka> The goal is to make it 14 bytes too :P
17:18:39 <asiekierka> Oh wait
17:18:41 <asiekierka> it must be more
17:18:48 <asiekierka> cuz it must be more than the program you're appending
17:18:55 <asiekierka> But try to make it <= 128 bytes
17:19:01 <ais523> well, the main loop of the interp is 8 bytes
17:19:06 <ais523> my actual target was 32
17:19:10 <ais523> to set a new record
17:19:21 <ais523> but I was going for the very shortest main loop I could, so I could use the rest for startup code
17:20:07 <asiekierka> But still, you have 14
17:20:18 <ais523> yes
17:20:20 <asiekierka> for the compiled app stub
17:20:22 <ais523> that's without I/O or anything
17:20:27 <asiekierka> oh
17:20:29 <asiekierka> ...right
17:20:32 <ais523> I have a 32-byte version with I/O somewhere lying around
17:20:39 <ais523> although I've never dared run it, so I don't know if it works
17:21:05 <ais523> (the 14-byte version has I/O in that it reads the program, IIRC; but the actual program can't do I/O)
17:21:42 <asiekierka> You know
17:21:52 <asiekierka> I think you could make the 14-byte version into a floppy disk compiler
17:22:01 <asiekierka> As in, the bootsector loads the data from the floppy disk into the RAM
17:22:05 <asiekierka> and executes the code of MiniMAX
17:22:20 <asiekierka> You can do it with any small-interpreter esolang
17:22:25 <ais523> yes
17:22:25 <asiekierka> or even with any ASM-interpreter esolang
17:22:33 <ais523> what about FALSE?
17:22:46 <asiekierka> It's 1024 bytes of 68000 machine language
17:22:54 <asiekierka> 68000
17:22:57 <asiekierka> not x86
17:23:30 <ais523> ah, ok
17:23:35 <ais523> probably you could translate it
17:23:40 <asiekierka> What about Shelta then? With 512 bytes of code it's impossible to add any code for the bootsector thing, right?
17:23:52 <asiekierka> Well, the trick is to load the program from the floppy disk too
17:24:03 <asiekierka> And I think you could make a 3-language interpreter bootsector
17:24:06 <ais523> you'd need a floppy disk driver
17:24:09 <asiekierka> MiniMAX, MinISCule, Barely
17:24:15 <ais523> but this gives me an idea
17:24:16 <asiekierka> ais523: Make your own simple FS
17:24:23 <ais523> an OS written entirely in esolangs
17:24:23 <asiekierka> for example, 256 numbered files
17:24:27 <ais523> apart from a few bytes of asm
17:24:29 <asiekierka> ais523: THAT WAS MY IDEA!
17:24:38 <ais523> well, it's a good idea then if we both thought of it
17:24:38 <asiekierka> and I made it about a year and a half ago
17:24:43 <ais523> there have been EsoOS plans before
17:24:50 <ais523> but none of them really got anywhere, AFAIK
17:25:17 <asiekierka> Well, I think the EsoOS could consist of a "bootdata" program
17:25:21 <asiekierka> as in, shell + esolang interpreters
17:25:30 <asiekierka> and it'll be a bootdisk for running esolangs
17:25:37 <ais523> this reminds me of suuda
17:25:38 <asiekierka> I have a bootsector BF ASM implementation by my friend
17:25:43 <ais523> which is in my esolangs directory, even though it isn't really
17:25:44 <asiekierka> He made a bootsector executing BF ASM code
17:25:52 <asiekierka> complete with stdin/stdout I/O
17:25:55 <ais523> heh
17:26:05 <ais523> you know of self-extracting executables
17:26:14 <ais523> as in, compressed files with a .exe extension
17:26:26 <ais523> well, suuda creates self-uudecoding executables
17:26:32 <ais523> the resulting executable's entirely plain text
17:28:27 <asiekierka> Actually, that implementation is smaller than 240 bytes
17:28:34 <ais523> I'm not surprised
17:28:35 <asiekierka> 182 bytes with the bootsector code
17:29:27 <asiekierka> The bootsector code is 29 bytes
17:29:36 <ais523> people have written Linux executables for BF
17:29:36 <asiekierka> I think it could be about 155-160 bytes when modified
17:29:41 <ais523> where the entire program fit in the header information
17:29:42 <asiekierka> to be non-bootsector
17:29:45 <ais523> so there's nothing but the header
17:30:12 <asiekierka> So we have ready versions of: BF, Shelta, Barely, MiniMAX, MinISCule
17:30:15 <asiekierka> :D
17:30:50 <ais523> I've never actually run the MiniMAX interp
17:30:51 <asiekierka> The bootsector-specific code is mostly configuring the stack so it MIGHT BE needed
17:30:57 <asiekierka> ais523: you DIDN'T!?
17:30:59 <ais523> I tend to be scared to run programs I've written by hand in machine code
17:31:07 <asiekierka> ais523: Run it in QEMU then
17:31:07 <asiekierka> :P
17:31:11 <asiekierka> That'll NEVER break your PC
17:31:14 <ais523> yep
17:31:35 <asiekierka> actually, I must make myself The Reference of Assembler
17:31:37 <asiekierka> Because basically
17:31:59 <asiekierka> me coding = PC, keyboard, book or references on the desk, some paper (if needed)
17:32:03 <asiekierka> ;P
17:32:12 <asiekierka> I can quickly find information and I use that ability
17:32:14 -!- Hiato has quit (Read error: 104 (Connection reset by peer)).
17:33:04 <asiekierka> I need to print myself a book (or just print a stack of paper) containing memory stuff, commands, INT stuff and some other tricks
17:33:19 <asiekierka> a stack of paper hold by something so i can browse it nearly like a book
17:33:57 <asiekierka> So basically, I would need to write a shell, a very simple FS (256 numbered files probably, as in, 00-FF)
17:33:59 <asiekierka> and all
17:34:08 <asiekierka> Basically, there will be the Data Table, which will contain:
17:34:19 <asiekierka> ...er, 256 pointers to different positions on the floppy disk
17:34:48 <asiekierka> While reading, it will jump to the proper spot, read the header (containing a "magic", type and some other stuff) and run the app
17:35:59 <asiekierka> Basically, the first sector is the bootsector, then there's disk data (pointer to the files and some other misc. stuff), then th efiles
17:36:01 <asiekierka> the files*
17:36:08 <asiekierka> The bootsector will execute file 00
17:36:15 <asiekierka> which will always be in ASM
17:36:23 <asiekierka> :)
17:36:31 <asiekierka> what do you think
17:37:20 <asiekierka> And if you need INT information, I will link you to a good webpage in a sec
17:37:43 <asiekierka> or not in a sec
17:37:45 <asiekierka> my PC crashed
17:37:50 <asiekierka> therefore me needeth to reset my PC
17:38:12 -!- asiekierka has quit.
17:41:44 -!- asiekierka has joined.
17:41:45 <asiekierka> back
17:42:17 <asiekierka> http://www.ctyme.com/intr/int.htm - Possibly the best interrupt reference in the world
17:43:05 <ais523> asiekierka: I went and got hold of a DOS 3 user's manual from the uni library
17:43:16 <ais523> or at least, I do whenever I want to do low-level DOS programming
17:43:21 <ais523> I put it back when I'm not using it
17:43:46 <asiekierka> this is Poland
17:44:10 <asiekierka> and the closest manuals we had pre-1989 were translated German ones
17:44:19 <asiekierka> But I may find something
17:44:27 -!- oerjan has joined.
17:47:55 <asiekierka> Basically, I will store the position as sector/cylinder/head
17:47:58 <asiekierka> probably using 2 bytes
17:48:01 <asiekierka> 1 byte will be
17:48:11 <asiekierka> bit 7: head
17:48:21 <asiekierka> bits 6-0: cylinders, of whom there are 80
17:48:34 <asiekierka> second byte: sectors (1...18)
17:49:17 <asiekierka> The sectors only take 5 bytes
17:49:21 <asiekierka> Therefore I have 3 left
17:49:43 <asiekierka> And hopefully, the file data will take exactly 512 bytes
17:49:45 <asiekierka> so exactly one sector
17:50:03 <oerjan> <Otrez> That was my friend -.-
17:50:07 <oerjan> so they all claim.
17:51:19 <asiekierka> Oh, and each file has a magic of 0xA51E
17:51:39 <asiekierka> If I will need any other magic, I may use 0x0523
17:54:13 <oerjan> AnMaster: LOLIWC
17:55:16 <ais523> using more than 2 bytes magic tends to help
17:55:17 <AnMaster> oerjan, I read it hours ago....
17:55:32 <ais523> at least, if you want to distinguish from other files
17:55:33 <asiekierka> Basically, the header format is magic, size in sectors, 1 byte for data information (bit 7 = Secret (not inputtable via shell)?, bit 6 = Read-only?, bits 5-4 = Resered and bits 0-3 = Type
17:55:45 <asiekierka> ais523: I can distinguish from other files
17:55:50 <asiekierka> I have a list of all the positions
17:56:00 <asiekierka> And the magic is just to check if the sector is correct
17:56:04 <ais523> ah, aha
17:56:06 <asiekierka> Cuz every file will be at least 2 sectors
17:56:10 <asiekierka> :P
17:56:18 <asiekierka> So i use 4 out of 512 bytes
17:56:18 <ais523> well, 2 bytes could still happen by coincidence
17:56:21 <oerjan> AnMaster: good i didn't bother spoiling it, then
17:56:53 <asiekierka> The magic is now 0xA51E + file number (00-FF)
17:56:56 -!- FireFly has joined.
17:57:02 <asiekierka> So positioning on the wrong file is out too
17:57:36 * oerjan hands FireFly a free non-swat coupon
17:57:42 <oerjan> would you like to cash it now?
17:58:05 <FireFly> I'll keep it for now
17:58:10 <oerjan> i see
17:58:17 * oerjan swats FireFly -----###
17:58:19 <FireFly> Inbef
17:58:21 <FireFly> >>_>
17:58:24 <FireFly> :(
17:58:37 <oerjan> huh?
17:58:54 <asiekierka> Filled 37 bytes
17:58:55 <FireFly> I was going to write "Inbefore: :("
17:59:02 <asiekierka> by adding 32 chars reserved for name
17:59:09 <FireFly> Stop being fast
17:59:19 <asiekierka> if the size is 0, then it shows the number, but the reserved place is still there
17:59:34 <oerjan> i was fast? i even had an intermediate comment.
17:59:54 <FireFly> I started writing after "I see"
17:59:56 <FireFly> AND
18:00:03 <asiekierka> Oh, and I added another 2-byte magic at the end
18:00:04 <FireFly> I'm new to Dvorak
18:00:07 <asiekierka> 0x0523 - File number
18:00:27 <oerjan> well obviously your next comment was splattered across the screen, the reason should be obvious
18:00:58 <asiekierka> The current filesystem allows for 256 files, 32K each
18:01:00 <FireFly> :D
18:01:04 <Deewiant> asiekierka: You're here! I have issues with DOBELA.
18:01:08 <asiekierka> ...
18:01:10 <asiekierka> Are you serious?
18:01:14 <Deewiant> Yes, very.
18:01:23 <asiekierka> Get it on!
18:01:30 <Deewiant> Well, as serious as can be when esolangs are concerned. :-P
18:01:43 <Deewiant> asiekierka: So, basically, the spec sucks.
18:01:51 <asiekierka> Why?
18:01:54 <asiekierka> What's wrong with it?
18:01:56 <asiekierka> Try to be more specific
18:02:11 <Deewiant> I'm trying to implement and I have about 20 questions here, so here we go.
18:02:23 <Deewiant> asiekierka: For starters: what happens with non-command chars?
18:02:24 <asiekierka> Ok
18:02:25 <asiekierka> Oh
18:02:40 <asiekierka> ...non-command chars? I think they would be ignored, as in, wiped when running
18:02:41 <Deewiant> asiekierka: I.e. if a dot hits one, does anything happen? Can they be considered blank spaces when loading the file, or what?
18:02:46 <asiekierka> Blank spaces.
18:02:49 <Deewiant> Okay.
18:03:02 -!- MigoMipo has joined.
18:03:04 <asiekierka> EOF is the Linux one if anything
18:03:12 <asiekierka> now go on with other questions
18:03:22 <Deewiant> asiekierka: BTW, are you going to write this stuff down or should/can I add stuff to the wiki page
18:03:27 <asiekierka> Yes you can
18:03:36 <Deewiant> Alright, I probably will.
18:03:40 <asiekierka> Just increment the spec number by 1 and add (modified by asiekierka and Deewiant)
18:03:49 <asiekierka> and then you're free tog o
18:03:50 <asiekierka> to go*
18:04:05 <Deewiant> asiekierka: Next: what happens when a dot hits =? Does it bounce off like from a #, reflect, go through, what?
18:04:34 <asiekierka> lemme look at my wiki page...
18:04:34 <Deewiant> I.e. if on cycle 1 it collides with =, where is it on cycle 2
18:04:43 <asiekierka> goes through on the other side
18:04:45 <asiekierka> but the = is still there
18:04:45 <Deewiant> Does it start moving from on top of the =
18:04:50 <Deewiant> Or does it start from behind the =
18:04:57 <asiekierka> i already said
18:05:01 <asiekierka> as in
18:05:02 <asiekierka> cycle 1:
18:05:03 <Deewiant> Yes, but there's a timing issue her
18:05:04 <Deewiant> +e
18:05:06 <asiekierka> .=
18:05:07 <asiekierka> cycle 2:
18:05:08 <asiekierka> =.
18:05:15 <Deewiant> Okay, so it sort of jumps over it.
18:05:16 <asiekierka> Yep
18:05:23 <asiekierka> That's correct
18:05:37 <Deewiant> Then: what happens to a dot that hits _?
18:05:45 <Deewiant> Jumps over it again?
18:05:56 <Deewiant> Or destroyed with no effect?
18:06:04 <asiekierka> Destroyed with no effect.
18:06:23 <ais523> hmm... would it be possible to write a DOBELA interp in ALPACA + a preprocessor, I wonder?
18:06:31 <asiekierka> I think possibly
18:06:43 <asiekierka> Maybe there will need to be slight spec changes
18:06:47 <asiekierka> but it should be (mostly) possible
18:07:01 <Deewiant> 4. Is $ supposed to buffer until either the program ends or a ^ gets hit south?
18:07:22 <asiekierka> When ^ gets hit south
18:07:31 <asiekierka> it outputs all and clears itself
18:07:51 <asiekierka> so yep
18:07:53 <asiekierka> until ^ gets hit south
18:07:56 <asiekierka> but then it just clears itself
18:07:57 <Deewiant> So nothing is output until then
18:08:00 <asiekierka> Yeppers
18:08:15 <Deewiant> 5. What's the default state of |?
18:08:38 <asiekierka> It destroys dots.
18:08:41 <Deewiant> I.e. when a dot hits it east/west do they go up or down by default
18:08:43 <Deewiant> O_o
18:08:49 <asiekierka> ...Or no
18:08:49 <asiekierka> wait
18:08:53 <asiekierka> they treat it like a wall
18:08:59 <asiekierka> As in, bounce off based on the dot's whims
18:09:09 <Deewiant> Ookay
18:09:16 <asiekierka> Setting it makes both dots bounce to the same direction
18:09:18 <asiekierka> which is useful
18:09:36 <asiekierka> I'm going to go to 10. and take a break from my PC
18:09:45 <Deewiant> While you're gone, think about v
18:09:51 <asiekierka> oh
18:09:54 <Deewiant> I basically don't get it at all
18:09:56 <asiekierka> what do I mean by outputting?
18:09:58 <asiekierka> Basically
18:09:59 <Deewiant> Yes
18:10:14 <asiekierka> The dot hops over, but it's changed into whatever comes from the FIFO
18:10:25 <asiekierka> Except if hit south, then the dot is destroyed
18:10:30 <Deewiant> Hops over? It says dots are destroyed always
18:10:39 <asiekierka> ...
18:10:45 <asiekierka> Well, I think i just explained it wrongly
18:10:55 <Deewiant> And okay, but what if there are _
18:11:05 <asiekierka> This takes dots from stdin
18:11:08 <asiekierka> as in, _ does
18:11:13 <asiekierka> take dots from stdin
18:11:14 <Deewiant> Okay so what is the FIFO
18:11:21 <asiekierka> DOBELA's stack
18:11:22 <Deewiant> Just a queue in memory?
18:11:23 <asiekierka> Yep
18:11:26 <asiekierka> For stdout
18:11:47 <Deewiant> Right right, okay
18:12:05 <asiekierka> Cat wouldn't sadly work cuz it never clears and outputs the FIFO
18:12:10 <asiekierka> :P
18:12:13 <asiekierka> i mean
18:12:14 <asiekierka> won't work
18:12:17 <Deewiant> Yeah, I was going to ask that next
18:12:26 <Deewiant> Should the FIFO be flushed at end of program or not
18:12:35 <asiekierka> yep
18:12:43 <Deewiant> So cat does work after all? :-P
18:12:43 <asiekierka> But you can add a verbose switch
18:12:48 <asiekierka> wait
18:12:49 <asiekierka> flushed?
18:12:53 <asiekierka> By flushed i thought cleared
18:12:54 <Deewiant> I meant, to stdout
18:12:59 <asiekierka> As in, it clears the FIFO upon end
18:13:04 <asiekierka> except if you add a -v switch
18:13:04 <Deewiant> Well, no point in clearing it if the program ends anyway :-P
18:13:06 <asiekierka> then it outputs it
18:13:10 <asiekierka> in binary
18:13:23 <asiekierka> Useful for debuggingeth
18:13:33 <Deewiant> Then, : and _
18:13:39 <Deewiant> Do they output on the first or second cycle?
18:13:40 -!- BeholdMyGlory has joined.
18:13:47 <Deewiant> Every second, yes, but when is the first
18:14:03 <asiekierka> _ outputs every cycle it gets a keystroke
18:14:09 <asiekierka> and : starts on the second cycle
18:14:30 <asiekierka> Well, _ has a buffer (sort of)
18:14:30 <Deewiant> With buffered input _ has no choice in the matter
18:14:38 <asiekierka> and outputs 1 bit from the buffer if it has one
18:14:40 <Deewiant> I mean, stdin is buffered on the OS's side
18:14:40 <asiekierka> every cycle
18:14:46 <asiekierka> Oh
18:14:58 <asiekierka> Basically, if it has a bit from stdin, it outputs it
18:15:04 <asiekierka> If it doesn't have any, it does nothing
18:15:06 <Deewiant> Yeah but if you have say just a _
18:15:16 <Deewiant> Then does it ask for input from the OS on the first or second cycle
18:15:27 <asiekierka> I think the first
18:15:33 <Deewiant> : on second, _ on first?
18:15:37 <asiekierka> yep
18:15:40 <asiekierka> is that a wrong idea?
18:15:40 <Deewiant> Okay
18:15:46 <asiekierka> seems not
18:15:48 <Deewiant> Well, I don't think it matters
18:15:48 <asiekierka> but go on
18:15:55 <Deewiant> It's just something that has to be known :-P
18:16:06 <asiekierka> also, DOBELA operates on bits
18:16:09 <asiekierka> called "dots"
18:16:11 <asiekierka> but go on
18:16:11 <Deewiant> Alright, I think this is number 7 or 8: what do multiple _ do?
18:16:20 <asiekierka> Hmm... didn't think of that
18:16:30 <asiekierka> I think a fair one will be for them to do it sequentially, top-left
18:16:43 <asiekierka> Like, if there's "_ _ _" in the first row and " _ _ " in the second
18:16:45 <Deewiant> Number 10 would have been "what exactly is topleft"
18:16:50 <asiekierka> then the top-left _ outputs first
18:16:54 <asiekierka> then the one next to it
18:16:58 <asiekierka> until all did output something
18:16:59 <Deewiant> Alright
18:17:01 <asiekierka> then it scans the next row
18:17:14 <asiekierka> I mean, only one _ outputs per cycle
18:17:29 <Deewiant> Oh, that's interesting.
18:17:30 <asiekierka> And if there's more than one _, they go sequentially every cycle
18:17:36 <asiekierka> ignoring the "every other cycle" thing
18:17:40 <asiekierka> So if there are two _'s
18:17:45 -!- Mony has joined.
18:17:46 <asiekierka> then the first one outputs on cycle 1
18:17:50 <asiekierka> then the second on cycle 2
18:17:54 <Deewiant> So the 'every other cycle' rule only applies if there's one _?
18:17:55 <asiekierka> then the first on cycle 3, etc...
18:17:56 <asiekierka> Yep
18:18:08 <asiekierka> Weird design but I wanted it to be like that
18:18:13 <Deewiant> Heh
18:18:15 <asiekierka> So now Number 8 or 9 or 10 or whatever
18:18:23 <asiekierka> what about Number Banana
18:18:24 <Deewiant> Yeah, whatever: north-south collision isn't specced
18:18:30 <Deewiant> East-west you have
18:18:38 <asiekierka> If there are two dots only
18:18:43 <asiekierka> it works exactly like east-west
18:18:49 <Deewiant> Yes, but 0/0 and 1/1 are different
18:18:50 <asiekierka> only rotated 90 degrees
18:18:53 <Deewiant> In which direction? :-)
18:18:58 <Deewiant> Clockwise or counterclockwise
18:19:00 <asiekierka> Clockwise
18:19:03 <Deewiant> Alright
18:19:06 <asiekierka> as in
18:19:11 <asiekierka> the stuff created is
18:19:16 <Deewiant> 0/0 leads to:
18:19:17 <Deewiant> #
18:19:18 <Deewiant>
18:19:20 <asiekierka> yep
18:19:22 <asiekierka> and 1/1 leads to
18:19:25 <asiekierka> #
18:19:31 <asiekierka> oh wait
18:19:31 <Deewiant> You failed
18:19:33 <Deewiant>
18:19:33 <asiekierka> i know
18:19:34 <Deewiant> #
18:19:35 <asiekierka> ok
18:19:39 <Mony> plop
18:19:39 <asiekierka> so let it go on the next Q
18:19:43 <asiekierka> plop
18:19:50 <asiekierka> continue, D-wiant
18:19:53 <asiekierka> i mean
18:19:54 <asiekierka> Deewiant
18:19:55 <Deewiant> asiekierka: Multi-dot collision, I basically don't get how it should work
18:20:03 <asiekierka> Just like the _'s are scanned
18:20:13 <asiekierka> Or wait
18:20:16 <Deewiant> So the topleftmost one moves first, then collides with whatever
18:20:18 <asiekierka> First the east-west collisions
18:20:22 <asiekierka> then the north-south collisions
18:20:29 <Deewiant> For instance your example
18:20:34 <asiekierka> the east-west ones are scanned top-down
18:20:36 <Deewiant> V
18:20:37 <Deewiant> Darn
18:20:41 <Deewiant> V
18:20:43 <Deewiant> ->..
18:20:48 <Deewiant> .<-
18:20:49 <asiekierka> and north-south are scanned left-right
18:20:58 <Deewiant> If we have that, to me it seems like there's no collision
18:21:02 <asiekierka> first east-west, so the 2 .. dots would collide
18:21:05 <asiekierka> then only 1 . dot is left
18:21:09 <asiekierka> so no collisions left
18:21:14 <asiekierka> and the . dot does NOT move
18:21:19 <asiekierka> because it was blocked earlier
18:21:29 <asiekierka> :P
18:21:29 <Deewiant> So, uh, what?
18:21:31 <asiekierka> So uh
18:21:32 <Deewiant> The topleft . moves
18:21:34 <asiekierka> with my example
18:21:37 <Deewiant> It hits the topright one
18:21:42 <asiekierka> No, it's different
18:21:46 <asiekierka> If it detects a collision
18:21:48 <asiekierka> anywhere
18:21:54 <asiekierka> Then it scans the board for east-west collisions
18:21:57 <asiekierka> top to bottom
18:22:00 <Deewiant> O_o
18:22:02 <asiekierka> And it removes them
18:22:06 <Deewiant> Inefficient much? :-P
18:22:09 <asiekierka> Then it scans the board for north-south collisions
18:22:11 <asiekierka> left to right
18:22:13 <asiekierka> and removes them too
18:22:18 <Deewiant> So what about that one
18:22:23 <Deewiant> There are no east/west or north/south collisions
18:22:29 <asiekierka> but?
18:22:40 <asiekierka> Well, I care about my idea
18:22:43 <Deewiant> To me it seems like, if they all move at the same time, we just have the next state be:
18:22:49 <asiekierka> that some combos create walls
18:22:51 <Deewiant> .
18:22:52 <asiekierka> and some don't
18:22:52 <Deewiant> ..
18:22:55 <Deewiant> Darn
18:22:59 <Deewiant> I meant
18:23:00 <Deewiant> .
18:23:00 <Deewiant> ..
18:23:07 <asiekierka> well
18:23:13 <asiekierka> oh wait
18:23:15 <Deewiant> The topleft one moved east, the topright one moved south, the lower right one moved west
18:23:18 <Deewiant> So it's all OK
18:23:21 <asiekierka> Well
18:23:27 <Deewiant> At the end of it, no two are on top of each other
18:23:52 <asiekierka> What about "if more than 2 dots collide (as in, collide, not what I did there), all are bounced"
18:23:53 <asiekierka> so for example
18:23:58 <asiekierka> V
18:23:59 <Deewiant> I guess this cuts back to a bigger issue
18:24:01 <asiekierka> ->..
18:24:07 <asiekierka> .
18:24:09 <asiekierka> "
18:24:13 <Deewiant> Which is: how exactly are moves timed
18:24:15 <asiekierka> er, ^
18:24:27 -!- neldoreth has quit ("leaving").
18:24:31 <asiekierka> Well
18:24:31 -!- neldoreth has joined.
18:24:36 <asiekierka> I think they should be handled top-left
18:24:55 <asiekierka> If a dot detects a collision
18:25:01 <asiekierka> it handles it with the exceptions
18:25:05 <asiekierka> no multiple collision :P
18:25:14 <asiekierka> it's handled all at once :)
18:25:18 <asiekierka> and no prob
18:25:30 <asiekierka> so my example:
18:25:30 <Deewiant> Yeah, but that still doesn't say how they move (I don't think)
18:25:32 <asiekierka> V
18:25:35 <asiekierka> ->..
18:25:39 <asiekierka> .<-
18:25:43 <asiekierka> will be on the next cycle
18:25:53 <asiekierka> .<-
18:26:01 <asiekierka> i know i failed
18:26:05 <Deewiant> But, uh
18:26:12 <Deewiant> Aren't 1/1 supposed to create a wall?
18:26:18 <Deewiant> So
18:26:21 <asiekierka> well, yes they are
18:26:25 <Deewiant> #
18:26:28 <Deewiant> .<-
18:26:31 <asiekierka> oh, right
18:26:31 <asiekierka> yep
18:26:36 <asiekierka> that's how it will work
18:26:43 <asiekierka> get it or not
18:26:56 <FireFly> "Program ends when there is no more dots moving." <-- So shorter cat example would die in gen 2, since inputs are only spitted out every other generation?
18:26:59 <Deewiant> That's still not 100% clear with regard to what you said about detecting all collisions at once
18:27:03 <Deewiant> FireFly: Shush, that's question 13
18:27:07 <FireFly> :D
18:27:20 <asiekierka> Deewiant: I'm changing the spec
18:27:38 <asiekierka> Firefly: Uh, no more dots moving AND no _'s
18:27:42 <asiekierka> change it to that
18:27:51 <Deewiant> asiekierka: So if a dot has participated in a collision, it won't collide with anything else any more
18:27:58 <Deewiant> I think that disambiguates it completely
18:28:11 <asiekierka> Well, if it patricipated in a collision, the exception is carried out
18:28:16 <asiekierka> so it changes either into a wall or nothing
18:28:19 <asiekierka> therefore the dot ceases to exist
18:28:20 <FireFly> Hm, what about multiple _'s then?
18:28:25 <asiekierka> I explained that!
18:28:26 <Deewiant> FireFly: I asked that already
18:28:30 <FireFly> Ah
18:28:39 <asiekierka> The rules are a mess of a mess of King the Mess
18:28:47 <asiekierka> but go on, Deewiant
18:28:49 <Deewiant> asiekierka: So basically the dots are instantaneously destroyed/walled half-way through an iteration
18:28:51 <asiekierka> I want to finish this
18:28:56 <asiekierka> asiekierka: Yeppers
18:28:57 <asiekierka> i mean
18:28:59 <Deewiant> :-D
18:29:00 <asiekierka> Deewiant: Yeppers
18:29:32 <asiekierka> More Q's?
18:29:38 <Deewiant> asiekierka: Simplish question: what does 'ASCII files' actually mean? Is non-ASCII an error? (You probably just meant that #,.= etc are ASCII and not EBCDIC)
18:29:41 <Deewiant> Yeah, a few
18:29:52 <asiekierka> ASCII files as in not Unicode
18:29:57 <asiekierka> but if you want
18:30:00 <asiekierka> you can add Unicode support
18:30:03 <asiekierka> but you don't need to
18:30:17 <asiekierka> This is not a rule but more of a "Unicode not needed"
18:30:18 <Deewiant> Yeah, but since the only commands are all ASCII anyway
18:30:22 <asiekierka> yep
18:30:30 <asiekierka> but some Japanese nerd might want Unicode for comments
18:30:31 <Deewiant> It doesn't really make a difference whether you say "not Unicode" or not :-P
18:30:39 <asiekierka> so ok
18:30:40 <asiekierka> go go on
18:30:51 <Deewiant> Ah, okay, so you're just saying that impls don't need to support anything beyond ASCII
18:31:01 <asiekierka> yep
18:31:06 <asiekierka> they don't even need to support extended ascii
18:31:08 <Deewiant> Alright, few longer questions now
18:31:08 <asiekierka> just chars 0-127
18:31:18 <Deewiant> IO is basically binary
18:31:19 <asiekierka> Oh, and I/O is still handled as ASCII
18:31:21 <asiekierka> Deewiant: Yep
18:31:43 <Deewiant> So what happens if the OS provides IO which can't be done at bit granularity
18:31:51 <asiekierka> As in, it sends bytes?
18:31:55 <Deewiant> Yes
18:32:02 <asiekierka> Then the bit separation must be carried out by the interpreter
18:32:06 <Deewiant> Yes
18:32:19 <Deewiant> So then, what if the FIFO contains a single 1
18:32:23 <Deewiant> And is flushed to stdout
18:32:32 <Deewiant> Is that 0b10000000 or 0b00000001
18:32:37 <Deewiant> Is that system-dependent?
18:32:40 <asiekierka> 0b00000001
18:32:51 <Deewiant> What about on big-endian machines?
18:33:03 <asiekierka> Well, it should be 0x01, whatever the binary result is
18:33:24 <asiekierka> as in
18:33:26 <asiekierka> a single 1
18:33:29 <asiekierka> should be output as 0x01
18:33:30 <Deewiant> So basically a DOBELA program always sees a little-endian world
18:33:35 <asiekierka> Probably
18:33:46 <Deewiant> (I think. Or big-endian. Whatever.)
18:33:48 <asiekierka> Well
18:33:59 <asiekierka> I think it just inputs data converted to little-endian
18:34:07 <asiekierka> and outputs data converted from little-endian to whatever the OS needs
18:34:29 <Deewiant> Yeah, that's basically what I meant
18:34:34 <asiekierka> ok
18:34:36 <asiekierka> how much more
18:34:37 <Deewiant> Alright, then what FireFly said earlier
18:34:41 <Deewiant> Just three
18:34:43 <Deewiant> Including this one
18:34:43 <asiekierka> ok
18:34:44 <asiekierka> go on
18:34:54 <asiekierka> quote what firefly said earlier
18:34:59 <Deewiant> Although I guess you responded to that already
18:35:04 <Deewiant> About program ending when there are no more dots
18:35:10 <asiekierka> <asiekierka> Firefly: Uh, no more dots moving AND no _'s
18:35:24 <Deewiant> And to clarify, I guess you mean that the program runs as long as _ has not hit EOF
18:35:25 <asiekierka> So if the program has no _'s, the program end when there are no more dots moving
18:35:33 <FireFly> I guess you'd have to include :'s too?
18:35:46 <Deewiant> No, you don't have to
18:35:49 <asiekierka> Also
18:35:51 <Deewiant> You can, though :-P
18:35:54 <Deewiant> asiekierka: ?
18:36:05 <asiekierka> if the program has _'s, program ends when 0x00 is send via the FIFO
18:36:22 <asiekierka> sent*
18:36:23 <Deewiant> So, what?
18:36:26 <asiekierka> As in
18:36:30 <asiekierka> you clear the FIFO
18:36:36 <asiekierka> so it contains nothing
18:36:40 <asiekierka> Outputting it, it appends the zeros
18:36:42 <asiekierka> so it's 0x00
18:36:53 <asiekierka> And if 0x00 is detected by the outputting mechanism
18:36:55 <asiekierka> the program ends
18:37:02 <Deewiant> That seems awfully limiting
18:37:04 <asiekierka> no matter if there's no _'s or there are _'s
18:37:08 <asiekierka> well, ok
18:37:12 <Deewiant> Since now a DOBELA program can't output 0x00
18:37:21 <asiekierka> Why should any program output 0x00 anyway
18:37:27 <Deewiant> Binary files? They do exist
18:37:47 <FireFly> It could be nice for compilers
18:37:49 <Deewiant> E.g. you make a JPG encoder in DOBELA
18:37:50 <Deewiant> Or whatever
18:37:53 <asiekierka> oh
18:37:59 <asiekierka> So, any proposals?
18:38:05 <Deewiant> asiekierka: I think it just makes sense that the conditions are: no dots, and _ has not hit EOF
18:38:11 <asiekierka> Well
18:38:16 <asiekierka> Oh
18:38:19 <asiekierka> it can work
18:38:27 <asiekierka> So now
18:38:29 <asiekierka> another question
18:38:35 <asiekierka> I think 1 or 2 left
18:38:38 <Deewiant> Do dots conceptually carry on moving forever?
18:38:43 <Deewiant> Meaning
18:38:49 <Deewiant> If you have a dot go off the edge of the original file
18:38:56 <Deewiant> Is it an infinite loop since that dot lives forever
18:38:59 <Deewiant> Or is it destroyed
18:39:05 <asiekierka> Well, this is interpreter-dependent
18:39:13 <asiekierka> But the board size must be a minimum of 256x256
18:39:13 <Deewiant> How so
18:39:19 <Deewiant> Yes, but
18:39:25 <Deewiant> Interpreter supported size or not
18:39:30 <asiekierka> as in, if the TXT file is <256x256, the board is 256x256
18:39:32 <Deewiant> If a dot goes off the edge of the original file
18:39:39 <Deewiant> It doesn't matter what the board size is
18:39:48 <Deewiant> Since dots only matter if they collide with something
18:39:56 <asiekierka> It is destroyed
18:40:05 <Deewiant> asiekierka: If a dot goes off a 32x32 TXT file, it is gone for all practical purposes
18:40:12 <Deewiant> The only difference is the concept
18:40:18 <Deewiant> Does it live forever in the void or not :-)
18:40:35 <Deewiant> So if it's destroyed, that means it dies, okay
18:40:39 <Deewiant> Last question
18:40:40 <asiekierka> well, no interpreter supported size then :P
18:40:50 <Deewiant> asiekierka: Yeah, since it doesn't really matter, only as far as can it load the orig file
18:40:55 <Deewiant> Last q
18:40:56 <Deewiant> _
18:40:57 <Deewiant> #
18:40:59 <Deewiant> What happens
18:41:09 <Deewiant> (Equally well .=# or whatever)
18:41:27 <FireFly> Hm
18:41:29 <Deewiant> asiekierka: Can the dot be superimposed over the _ or = there, or what?
18:41:40 <asiekierka> Well
18:41:45 <asiekierka> the dot needs an empty space to be output
18:41:48 <asiekierka> so if this happens
18:41:50 <asiekierka> nothing is output ever
18:41:53 <asiekierka> from that _
18:41:54 <asiekierka> it's ignored
18:41:57 <asiekierka> :P
18:41:58 <Deewiant> So what about .=#
18:42:01 <FireFly> The spec never says that the original (hardcoded) dots should move east?
18:42:05 <Deewiant> FireFly: yes
18:42:20 <Deewiant> asiekierka: .=# ?
18:42:21 <asiekierka> The dot is destroyed too
18:42:26 <asiekierka> or no
18:42:27 <asiekierka> no no noo
18:42:32 <asiekierka> It bounces off
18:42:33 <Deewiant> :-D
18:42:34 <asiekierka> changed
18:42:37 <asiekierka> as in
18:42:38 <asiekierka> cycle 1:
18:42:42 <asiekierka> .=#
18:42:43 <asiekierka> cycle 2
18:42:45 <asiekierka> ,=#
18:42:46 <asiekierka> cycle 3
18:42:54 <asiekierka> =# (the dot moved west, offscreen)
18:42:56 <Deewiant> Ookay
18:43:02 <Deewiant> So for =# it bounces
18:43:04 <asiekierka> yep
18:43:07 <Deewiant> For _# it just dies
18:43:13 <FireFly> Crazy :D
18:43:15 <Deewiant> What about v#
18:43:15 <asiekierka> yep
18:43:18 <asiekierka> v#
18:43:18 <Deewiant> And :#
18:43:20 <asiekierka> wait
18:43:21 <asiekierka> waaaiiit
18:43:31 <Deewiant> asiekierka: I think making this consistent would be a good idea :-P
18:43:35 <Deewiant> asiekierka: I.e. one rule covers all
18:43:43 <Deewiant> (Destruction would be fine IMO)
18:44:01 <asiekierka> Well, = is an exception since it's pretty much one of the most important parts of a DOBELA program
18:44:03 <Deewiant> I have to go now myself, this isn't important so you can answer later ->
18:44:03 <asiekierka> in all other cases
18:44:05 <asiekierka> destroyed
18:44:09 <asiekierka> so, done
18:44:13 <Deewiant> Why exception?
18:44:18 <Deewiant> Whatever, but seems silly
18:44:24 <Deewiant> Anyhoo, gone now
18:44:25 <asiekierka> ok
18:44:26 <FireFly> Ah, now I found the default direction
18:44:26 <asiekierka> bye
18:44:48 <asiekierka> yep
18:44:51 <asiekierka> they move east by default
18:44:58 <asiekierka> so if the TXT file already contains a dot
18:45:00 <asiekierka> it moves east
18:45:06 <FireFly> Yeah
18:45:08 <FireFly> Um
18:45:09 <asiekierka> until it bounces off something or whatever
18:45:42 <FireFly> Wait, wouldn't ".." turn into " #" first gen?
18:45:55 <asiekierka> yep
18:46:00 <asiekierka> it is still turned into that
18:46:07 <FireFly> ,.,,.,,,,..,,.,.,..,..,,,..,..,,,..,....,,.,,,,.,,,,.,., $
18:46:10 <FireFly> = Hello!
18:46:18 <asiekierka> Well, in the FIFO
18:46:25 <asiekierka> cuz it doesn't yet have a generator to output stuff
18:46:30 <asiekierka> and even then, it can't delay dots
18:46:38 <asiekierka> But I can!
18:46:41 <asiekierka> manually
18:46:45 <FireFly> Hm
18:47:03 <asiekierka> Oh well
18:47:04 <asiekierka> gotta go
18:47:06 -!- asiekierka has changed nick to asie[away].
18:47:15 <FireFly> I'll enjoy playing around with this some day
18:47:19 <FireFly> Okay
18:47:24 <FireFly> Me too, ->
19:02:54 <FireFly> <-
19:03:43 <asie[away]> what do these arrows mean?
19:05:24 <FireFly> -> = away
19:05:44 <ais523> and <- means back
19:05:44 <FireFly> Or, away from nick = from computer
19:08:55 <Deewiant> FireFly: I realized that about 3 minutes after I left; that 'Hello!' program can't possibly work with the collision semantics he described
19:09:09 <asie[away]> Me too
19:09:19 <Deewiant> Hey, you're supposed to be [away]
19:09:20 <asie[away]> It would need spaces after each dot
19:09:24 <FireFly> :D
19:09:27 <asie[away]> Deewiant: I'm only here for a short period of time
19:09:32 <asie[away]> too short to change the ncik
19:09:33 <Deewiant> asie[away]: So you think that that behaviour is still preferable?
19:09:36 <asie[away]> nick*
19:09:38 <FireFly> [i=dontbanm
19:09:52 <asie[away]> Well, this was for another channel
19:09:56 <asie[away]> with a bunch of jerks
19:10:03 <asie[away]> that do insane stuff for insane reasons
19:10:06 <asie[away]> banned me for nothing
19:10:14 <Deewiant> I.e. that ' ..' is ' #' if they're moving east but it's '.. ' if they're moving west
19:10:20 <FireFly> Sounds evil
19:10:23 <Deewiant> It seems awfully inconsistent to me
19:10:29 <asie[away]> Well, no
19:10:41 <asie[away]> The "collision" works only if they both move in opposite directions
19:10:48 <asie[away]> If they move in the same direction, they just move
19:10:55 <Deewiant> By opposite do you mean different
19:10:58 <Deewiant> Or opposite
19:11:00 <asie[away]> as in
19:11:04 <asie[away]> one dot left and the other right
19:11:07 <FireFly> And if >v
19:11:09 <asie[away]> one dot north and the other south
19:11:18 <Deewiant> asie[away]: You're contradicting what you said earlier
19:11:26 <asie[away]> I need to change the specs
19:11:38 <Deewiant> 2009-03-20 19:25:31 ( asiekierka) V
19:11:39 <Deewiant> 2009-03-20 19:25:35 ( asiekierka) ->..
19:11:39 <Deewiant> 2009-03-20 19:25:38 ( asiekierka) .<-
19:11:39 <Deewiant> 2009-03-20 19:25:42 ( asiekierka) will be on the next cycle
19:11:39 <Deewiant> 2009-03-20 19:25:53 ( asiekierka) .<-
19:11:41 <FireFly> Eg. one to the right, one downwards
19:11:44 <Deewiant> asie[away]: That's what you said earlier
19:11:47 <asie[away]> Well, i'm changing the specs
19:11:48 <asie[away]> I said
19:11:50 <asie[away]> Now it'll be
19:11:57 <Deewiant> Now it'll be what I said? :-)
19:11:57 <FireFly> All right
19:11:57 <asie[away]> the left-moving dot moves on cycle 1
19:12:02 <asie[away]> then the south-moving dot on cycle 2
19:12:07 <asie[away]> and the right-moving dot on cycle 3
19:12:08 <Deewiant> Yeah, so no collision
19:12:11 <Deewiant> And it ends up as:
19:12:11 <asie[away]> yep
19:12:13 <Deewiant> .
19:12:14 <Deewiant> ..
19:12:18 <Deewiant> Okay, good
19:12:18 <asie[away]> except if something happens like this:
19:12:22 <asie[away]> "->..<-"
19:12:24 <asie[away]> then a collision happens
19:12:28 <Deewiant> Yay
19:12:33 <Deewiant> That's what I've already implemented
19:12:38 <Deewiant> So I won't have to change it ;-)
19:12:41 <asie[away]> yay
19:13:05 <Deewiant> So then there's an additional question though
19:13:13 <Deewiant> ->. .<-
19:13:16 <Deewiant> .
19:13:17 <Deewiant> Darn
19:13:19 <Deewiant> Anyway
19:13:25 <Deewiant> Lower dot is also moving to the same point, north
19:13:28 <Deewiant> What happens?
19:14:01 <asie[away]> Well, then the collision "->. .<-" is first carried out
19:14:07 <asie[away]> :P
19:14:17 <Deewiant> This makes no sense :-P
19:14:25 <asie[away]> priority:
19:14:27 <asie[away]> 1) collisions
19:14:28 <Deewiant> You have totally arbitrary different rules for different situations >_<
19:14:29 <asie[away]> 2) being blocked)
19:14:35 <asie[away]> 3) moving
19:14:42 <asie[away]> So if there is a collision, it's carried out
19:14:48 <asie[away]> if not and a dot is blocked, it doesn't move
19:15:06 <asie[away]> and if the dot is not colliding nor blocked, it just moves in whatever direction it should.
19:15:07 <Deewiant> Previous example was a collision of 3 dots
19:15:17 <asie[away]> I changed the rules
19:15:20 <Deewiant> They all move simultaneously
19:15:30 <asie[away]> A "collision" is when two dots hit that are moving in opposite directions
19:15:41 <Deewiant> Aha
19:15:41 <asie[away]> and -> and ^ is not opposite
19:15:44 <Deewiant> So what happens
19:15:46 <asie[away]> So first collisions
19:15:47 <Deewiant> ->.
19:15:49 <Deewiant> .
19:15:50 <Deewiant> ^
19:15:54 <FireFly> [19:14:31] <Deewiant> You have totally arbitrary different rules for different situations >_<
19:15:55 <Deewiant> Er crap
19:15:59 <asie[away]> uh
19:16:00 <Deewiant> ->.
19:16:00 <asie[away]> wait
19:16:02 <Deewiant> .
19:16:03 <Deewiant> ^
19:16:04 <Deewiant> That one
19:16:07 <Deewiant> What happens
19:16:19 <FireFly> Requires an asie~ platform for the intp
19:16:21 <asie[away]> You know how i said scanning is topleft?
19:16:24 <asie[away]> ->.
19:16:27 <asie[away]> .
19:16:29 <asie[away]> ^
19:16:31 <asie[away]> is cycle 2
19:16:31 <Deewiant> Yes, and you've contradicted that twice now
19:16:33 <asie[away]> cycle 3 is
19:16:37 <asie[away]> ->.
19:16:40 <asie[away]> .
19:16:42 <asie[away]> ^
19:16:44 <asie[away]> then cycle 4
19:16:45 <Deewiant> Er what?
19:16:52 <Deewiant> The lower . never moves?
19:16:56 <asie[away]> it does
19:16:57 <asie[away]> in cycle 4
19:17:07 <Deewiant> Why the hell in cycle 4
19:17:13 <asie[away]> wait
19:17:14 <asie[away]> it can in cycle 3
19:17:15 <Deewiant> Why not in cycle 2
19:17:15 <asie[away]> :P
19:17:18 <Deewiant> I mean
19:17:24 <asie[away]> Because it is blocked in cycle 2
19:17:24 <Deewiant> Or wat
19:17:29 <Deewiant> Are you saying that
19:17:29 <asie[away]> isn't it?
19:17:38 <asie[away]> cycle 1 is
19:17:38 <asie[away]> .
19:17:39 <asie[away]> .
19:17:41 <asie[away]> cycle 2 is
19:17:43 <asie[away]> .
19:17:44 <asie[away]> .
19:17:46 <asie[away]> cycle 3 is
19:17:48 <asie[away]> ..
19:17:58 <Deewiant> Ah okay
19:18:02 <Deewiant> So in other words...
19:18:05 <Deewiant> What you've been trying to say is
19:18:39 <Deewiant> If two dots would go in the same spot but they're not moving in opposite directions, the later dot simply doesn't move
19:18:52 <asie[away]> yep
19:18:59 <asie[away]> remember the board is scanned left-right, top-down
19:19:07 <asie[away]> that's the trick that makes it work
19:19:07 <Deewiant> Yes, I remember that :-P
19:19:13 <asie[away]> ok
19:19:15 <asie[away]> any other questions?
19:19:21 <Deewiant> Not right now
19:19:25 <Deewiant> Maybe in 5 mins ;-P
19:19:42 <asie[away]> sadly
19:19:44 <asie[away]> i'm going now
19:19:46 <asie[away]> again
19:22:13 <FireFly> :D, tricky rules indeed
19:22:30 <asie[away]> You know
19:22:38 <asie[away]> I think I must send DOBELA to Hell
19:22:46 <asie[away]> They will find an use for it
19:22:56 <asie[away]> "Code MS-DOS in DOBELA"
19:31:08 <Deewiant> In the end the rules weren't so tricky, a few exceptions I couldn't predict (.=# and the non-opposite collisions) but other than that it went the way I guessed
19:32:12 -!- Hiato has joined.
19:34:04 -!- javahorn has joined.
20:03:17 <asie[away]> back
20:03:25 <asie[away]> well, sort of
20:03:27 -!- asie[away] has changed nick to asiekierka.
20:04:07 <asiekierka> I need to start working on Esoppy
20:04:17 <asiekierka> As in, a floppy disk with a very simple FS
20:04:23 <asiekierka> running esolang programs and ASM programs
20:04:29 <asiekierka> from esolang programs, BF will be there
20:04:35 <asiekierka> for sure
20:04:38 <asiekierka> Some other langs too
20:04:41 <asiekierka> but remember
20:04:45 <asiekierka> the apps must be in ASM
20:06:38 <ais523> sounds great
20:07:02 <asiekierka> The bootsector only needs to read the file 00 and execute it
20:07:21 <asiekierka> as in
20:07:28 <asiekierka> read sector just after the bootsector
20:07:36 <asiekierka> read the first 2 bytes
20:07:42 <asiekierka> decode them to be the head, cylinder and sector
20:07:46 <asiekierka> read from there
20:07:51 <asiekierka> get the data (sector size)
20:07:56 <asiekierka> load all the sectors
20:08:05 <asiekierka> and execute the OS from there
20:08:26 <FireFly> Sounds interesting
20:08:47 <FireFly> But, this comp has no floppy drive :(
20:08:50 <asiekierka> Well
20:08:52 <asiekierka> you can use an emulator
20:08:56 <asiekierka> but it also should work on HDDs
20:09:23 <asiekierka> It can be used with HDDs anyway
20:09:29 <asiekierka> It just needs some switches
20:09:35 <asiekierka> Or USB
20:09:37 <asiekierka> I must test it though
20:09:55 <asiekierka> But I need some data on the limits of HDD geometry
20:10:03 <asiekierka> so I can know how much bits to allocate for what
20:10:12 <asiekierka> why? Because I want this to work on USB too
20:12:05 <asiekierka> Basically, I need to allocate 6 bits for the sector, 8-10 for the cylinder and 1 for the head AFAIK
20:14:38 <asiekierka> And I don't know how will I realize the detection of the medium I booted from
20:14:44 <asiekierka> Cuz booting from floppy disk is easy
20:14:45 <asiekierka> very easy
20:14:57 <asiekierka> But modifying it to work from HDD is hard
20:15:14 <Deewiant> 16-bit? 32-bit? 64-bit?
20:15:22 <asiekierka> Probably 16-bit
20:15:32 <asiekierka> because I want to use interrupts
20:15:37 <asiekierka> and don't want to make it too hard
20:15:45 <asiekierka> I could use Unreal Mode though
20:15:45 -!- Sgeo has joined.
20:15:51 <asiekierka> which allows to execute 32-bit commands in 16-bit mode
20:16:33 <AnMaster> hm
20:16:51 <AnMaster> anyone here know if you can add in a rpath entry in a ELF binary *after* linking
20:16:52 <AnMaster> I don
20:17:00 <AnMaster> don't* want to recompile this huge program
20:17:22 <Deewiant> I don't see why not
20:17:39 <AnMaster> hm what about tools to do it?
20:17:42 <Deewiant> You might have to mess with some other offsets though
20:17:49 <AnMaster> well I guess so
20:17:56 <Deewiant> Don't know about tools
20:18:22 -!- FireFly has quit ("Brb...").
20:18:31 -!- FireFly has joined.
20:24:55 -!- asiekierka has quit (Read error: 104 (Connection reset by peer)).
20:25:37 -!- asiekierka has joined.
20:25:38 <asiekierka> oops
20:25:43 <asiekierka> accidentally closed my IRC window
20:26:34 <oerjan> at least you didn't lose any verbs in the process
20:28:30 <FireFly> oerjan, you forgot to swat me
20:28:36 <FireFly> :(
20:28:47 <oerjan> that was just a hitch
20:29:20 * oerjan swats FireFly twice as compensation -----### -----###
20:29:28 <FireFly> :D
20:29:40 <FireFly> Hm
20:31:33 <AnMaster> hm It seems the rpath is in the .dynamic section
20:32:27 <fizzie> There seem to have been some plans in Solaris to add some free space in all ELF files so that they can be more easily tweaked: http://blogs.sun.com/ali/entry/changing_elf_runpaths
20:33:37 <fizzie> That suggests it's not completely trivial to do without it. (Although I don't see why it wouldn't work if you actually bother fixing all those other offsets that change.)
20:34:25 <AnMaster> I see
20:34:26 <FireFly> Swatmania!
20:35:21 -!- Hiato has quit ("Leaving.").
20:35:22 <oerjan> i do recall some online game where you swatted mosquitoes...
20:35:39 <AnMaster> anyway the issue is I needed to install a newer gcc in a prefix to be able to build llvm correctly, and I wish to add a rpath to llvm-gcc since it now depends on libstdc++ from this newer gcc.
20:35:56 <oerjan> many years ago
20:35:58 <AnMaster> system gcc is 4.1.2, prefixed gcc is 4.3.3, llvm gcc is 4.2.1
20:36:06 <AnMaster> which is rather a mess
20:36:23 <AnMaster> and I don't want to have to recompile one or more gcc's just to make this work...
20:40:13 -!- psygnisfive has quit (Remote closed the connection).
20:40:51 <AnMaster> hm I suspect recompiling will be easier in fact
20:41:00 <AnMaster> if the dynamic section had been last...
20:42:06 <AnMaster> also I thought bootstrapping gcc would work around it..
20:45:34 -!- tombom has joined.
20:48:49 <AnMaster> ah I see..
20:57:38 -!- oerjan has quit ("Good night").
21:11:49 -!- StelK has joined.
21:12:19 <StelK> Hi
21:12:30 <ais523> hi
21:12:33 <ais523> what brings you here?
21:12:51 <Slereah> I think it's the orgies on speed
21:13:01 <ais523> err... on IRC, is that even possible?
21:13:22 <StelK> I'm looking for some idea to code a new esolang
21:14:25 <ais523> as in, you have the esolang idea, and need it coded?
21:14:29 <ais523> or want to code something and don't know what?
21:14:34 <StelK> I didn't expect to find so many people in a esolang-related channel
21:14:38 <StelK> the second one
21:14:50 <ais523> this is the main esolang discussion place anywhere, as far as I know
21:15:02 <ais523> although it would be great if there was an even bigger secret one I didn't know about
21:15:08 <Slereah> I've got plenty of ideas that I need a chump^H^H^H^H^H experienced programmer to write an interpreter
21:15:23 <StelK> nic
21:15:25 <StelK> *nice
21:15:38 <ais523> http://esolangs.org/wiki/Category:Unimplemented may give you some ideas
21:15:57 <Slereah> Hm
21:16:00 <ais523> although note that some of those are awful, and some are theoretically impossible to implement
21:16:03 <Slereah> Forgot to put Limp in here.
21:16:10 <StelK> I've already read that
21:16:17 <StelK> I think Primordial
21:16:45 <Slereah> Owait, it is
21:16:50 <Slereah> Under ??΅p
21:16:53 <StelK> is quite nice... but there not enough specification to create an interpreter
21:16:58 <ais523> wtf, why is Easy in the unimplemented section?
21:17:05 <ais523> has really nobody bothered to implement it all this time?
21:17:09 <Slereah> 'cause easy is hard :(
21:17:21 <Slereah> Also I'm an English interpreter
21:17:21 <ais523> no it isn't, it's basically BF with the program and input streams mixed up
21:17:55 <asiekierka> Hi^Hello
21:18:18 <ais523> if you don't mind implementing something that's been implemented before, implementing functional esolangs can be instructive
21:18:26 <ais523> like Underload (relatively easy), or Unlambda (Much harder)
21:19:04 <StelK> Well.. I've created two simple esolangs until now, SPL and P in the Wiki... so I'd like to create something new
21:20:08 <asiekierka> Try to do something like DOBELA
21:20:12 <asiekierka> esolangs.org/wiki/DOBELA
21:20:18 <Slereah> Or limp
21:20:22 <asiekierka> something with relatively tricky specs and totally weird syntax
21:20:27 <Slereah> I hear limp is an awesome functional esoland
21:20:27 <Slereah> g
21:20:46 <asiekierka> The spec is currently v11b and needs to be fixed
21:21:55 <asiekierka> Also, don't alter BF.
21:22:02 <asiekierka> It has been done waaaay too much times
21:22:25 <StelK> yeah I know
21:22:36 <asiekierka> Also, $ = ,^ in SPL doesn't it?
21:22:40 <StelK> already done it one time
21:23:29 <asiekierka> If you're very bored, implement DOBEL---oh wait, Deewiant is already doing THAT.
21:24:01 <StelK> I'll try to come up with something new :D
21:24:10 <Deewiant> And the spec wasn't updated so you'd do it wrong anyway :-P
21:24:13 <FireFly> Interpret Sir. Cut
21:24:18 <FireFly> :D
21:24:33 <FireFly> I like some of the ideas in that lang
21:24:56 <asiekierka> Also, I'm making (with little idea help from ais523) the MiniShell
21:25:10 <asiekierka> the most important purpose of it is to run esolangs from a floppy disk without dependence from any OS
21:25:15 <asiekierka> but it can also run mini ASM programs
21:25:35 <asiekierka> show 80x25 color ASCII art
21:25:45 <asiekierka> And uses a simple FS which uses 256 numbered files without names
21:25:46 <asiekierka> 00-FF
21:25:53 <asiekierka> the number (in hex) is the name
21:25:55 <asiekierka> Anyway, gotta go
21:25:57 <asiekierka> in a sec
21:26:00 <asiekierka> but whaddya think
21:29:02 <asiekierka> It is planned for it to run programs in MiniMAX, MinIScule and Barely for v0.01
21:29:10 <asiekierka> Why? Because they have ASM interpreters
21:29:18 <StelK> nice
21:29:22 <asiekierka> Especially MiniMAX cuz it is independent
21:29:39 <asiekierka> and with about 6-10 lines of ASM code, it's very small
21:29:41 <asiekierka> but needs I/O
21:29:47 <ais523> are you running asm, or machine code?
21:30:16 <asiekierka> compiled ASM = machine code
21:30:19 <asiekierka> so yep, machine code
21:30:29 <asiekierka> a PC runs machine code, which is compiled ASM
21:31:02 <Deewiant> Running "compiled X" doesn't really say anything at all about what you're actually running :-P
21:32:15 <asiekierka> so i'm running machine code
21:32:20 <asiekierka> and i'm writing in Assembler
21:32:32 <Deewiant> I take issue with that usage of the word "assembler"
21:32:45 <Deewiant> "Assembly" is the language, "assembler" is the compiler, dammit!
21:32:48 <asiekierka> ohh
21:32:50 <asiekierka> ok
21:32:54 <asiekierka> s/Assembler/Assembly
21:33:10 <asiekierka> Also, seems MinIScule uses DOS interrupts
21:33:18 <asiekierka> and that'll need a bit of rewriting
21:36:15 <asiekierka> nor the links work
21:36:17 <asiekierka> so :/
21:39:54 <asiekierka> 0000 - plain/undeclared
21:39:54 <asiekierka> 0001 - Machine Code
21:39:54 <asiekierka> 0010 - BF
21:39:54 <asiekierka> 0011 - MiniMax
21:39:54 <asiekierka> 0100 - 4Kbyte Screen art
21:40:01 <asiekierka> this is the types of files I plan for 0.1
21:40:09 <asiekierka> at least 0000, 0001 and 0100
21:41:54 <asiekierka> well, I don't exactly need to implement 0000
21:41:59 <asiekierka> and 0001 is very easy
21:42:14 <asiekierka> 0100 is easier
21:46:07 <StelK> I gotta go see you
21:46:30 -!- StelK has quit ("good bye").
21:47:11 -!- psygnisfive has joined.
21:49:30 -!- asiekierka has quit.
22:08:03 <AnMaster> hi ais523
22:08:13 <ais523> hi
22:20:29 <Sgeo> What's asiekierka's language?
22:34:57 -!- BeholdMyGlory has quit (Remote closed the connection).
22:35:34 -!- rideauli has joined.
22:35:43 -!- rideauli has left (?).
23:05:09 -!- zzo38 has joined.
23:05:52 <zzo38> I wrote a program in CLCLC-INTERCAL to output 1 to 2000 in Roman numbers but I can't test it. Can you look and tell me if you found a mistake, or another comment about this program
23:06:09 <ais523> zzo38: would it run in CLC-INTERCAL?
23:06:13 <ais523> I can run it in that
23:06:20 <ais523> or does it rely on CLCLC-INTERCAL specific features?
23:06:59 <zzo38> It uses CLCLC-INTERCAL specific features
23:07:09 <ais523> assign to constants is legal in C-INTERCAL, by the way
23:07:14 <ais523> with a compiler switch
23:08:05 <ais523> also, how does the addition work in your program/
23:09:06 <zzo38> My program has no addition. The way [I think] it works is based on the && operator and also how CLCLC-INTERCAL assigns to expressions (which may not be always the same as other INTERCALs)
23:10:37 <zzo38> Is there still something else you do not understand about it
23:11:17 <oklofok> so addition works using the && operator?
23:12:11 <zzo38> No, the && operator doesn't do addition. The && operator allows you to learn a lecture inside of a expression.
23:12:19 <ais523> I just don't see why assigning to the result of a learnt lecture would add 1 to a number
23:13:11 <zzo38> It doesn't. The interpreter would try each value of .1 (the left side of the lecture) in order, and stop when the value of .1 causes .1&&#0 to have the value #2000
23:13:39 <zzo38> It starts at zero but it won't output zero because it is abstained the first time
23:14:08 <ais523> oh
23:14:14 <ais523> you can't rely on that behaviour, surely
23:14:44 <zzo38> Maybe not in CLC-INTERCAL but in CLCLC-INTERCAL it is specified that this kind of behaviour is standard
23:15:07 <ais523> it's incredibly inefficient
23:15:23 <ais523> assigning to expressions should be done by using the inverse of the expression, obviously
23:16:19 <zzo38> For expressions that have inverses that will work (as long as they are not overloaded to other expressions) but the && operator doesn't have a inverse so it has to try each one until one of them works
23:16:42 <ais523> hmm...
23:16:52 <ais523> I wonder what happens if you try to reverse-assign to a created expression in C-INTERCAL?
23:16:57 <ais523> that's pretty similar to what you're doing
23:16:57 <zzo38> Also note that in CLCLC-INTERCAL, when assigning to a expression only the far left side of the expression is the register which will be changed (even if it is a constant!)
23:17:11 <ais523> err
23:17:19 <ais523> what about DO .1 $ .2 <- #10
23:17:43 <FireFly> What does the "LC" in CLC-INTERCAL stand for?
23:17:46 <ais523> bad example...
23:17:50 <ais523> DO .1 $ .2 <- #11
23:17:58 <ais523> FireFly: CLC is Claudio Calvelli's initials
23:18:00 <zzo38> In CLCLC-INTERCAL .2 has to have the correct value already if it doesn't then it is a fatal error
23:18:05 <FireFly> Ah
23:18:09 <ais523> that's incompatible with other INTERCAL implementations
23:18:12 <ais523> very incompatible, in fact
23:18:34 <zzo38> It's INTERCAL, so who cares about compatibility with other INTERCAL implementations?
23:18:54 <ais523> Claudio and I care a lot about compatibility
23:18:59 <ais523> after all, no other language seems to
23:19:23 <zzo38> Then just use compatibility mode if you want to be compatible
23:21:01 <ais523> ICL277IYOU CAN ONLY DISTORT THE LAWS OF MATHEMATICS SO FAR
23:21:05 <ais523> hmm... I'm not surprised
23:21:19 <ais523> PLEASE DO CREATE (4) t
23:21:20 <ais523> DO .1 t .2 <- #3
23:21:22 <ais523> DO GIVE UP
23:21:23 <ais523> (4)DO .1603 <- .1601 $ .1602
23:21:24 <ais523> DO RESUME #1
23:21:45 <ais523> an error is more or less the best you can hope for with code as insane as that
23:24:30 <oklofok> please explain that codence
23:24:44 <ais523> oklofok: ok, the first line defines a new operator t
23:24:48 <ais523> whose code is found starting at (4)
23:24:56 <ais523> the second line assigns .3 to .1 t .2
23:25:07 <ais523> that's known as a reverse assignment, and is one of the less sane operators in INTERCAL
23:25:10 <ais523> it has a lot of limitations atm
23:25:27 <ais523> then the third line exits, and the last two lines are the definition of t, which doesn't really matter to make the point
23:26:13 <oklofok> err
23:26:26 <oklofok> what's so insane about that
23:27:00 <oklofok> oh the fact it needs to find the reverse of an arbitrary operation
23:27:18 <oklofok> that's used to make a loop? how?
23:27:30 <ais523> it doesn't make a loop in C-INTERCAL
23:27:44 <zzo38> The output 1 to 2000 program was wrong but now I fixed it. The third line now says DO .1&&.1 <- #2000 it used to say DO .1&&#0 <- #2000 but that was wrong
23:27:49 <ais523> apparently zzo38's mandating that in CLC-INTERCAL, the way it reverses an operation is to try all possibilities until one works
23:28:32 <zzo38> ais523: s/CLC-INTERCAL/CLCLC-INTERCAL/
23:28:42 <ais523> correction accepted
23:30:45 <oklofok> but wouldn't it be kinda weird for it to actually produce incorrect output and only then realize it failed to reverse it
23:30:49 -!- MigoMipo has quit ("QuitIRCServerException: MigoMipo disconnected from IRC Server").
23:33:04 <oklofok> also is #2000 simply the constant 2000_10?
23:33:28 <ais523> yes, # introduces a decimal number
23:33:53 <oklofok> for a moment i thought numbers were given in some weird format, but it was probably just the prefix bluffing my brain or something
23:34:19 <oklofok> because i remember seeing things like #65536 (or 65535, or different prefix, but anyway)
23:34:41 <zzo38> It doesn't backtrack any side-effects of the expression (such as attending a lecture or overloading) so you can do anything inside the lecture and it won't care. A fatal error is still a fatal error (or maybe it can be defined a different way instead, that a fatal error in this case backtracks?)
23:34:55 <ais523> zzo38: what if there's a choicepoint inside the lecture?
23:35:04 <ais523> and someone backtracks into it?
23:35:08 <ais523> what happens in a multithreaded program?
23:35:23 <oklofok> then if it's specified clclc tries the values in order, that is a very elegant way to write the program imo
23:35:44 <oklofok> in fact something i'd like to see a language based on
23:36:42 <zzo38> If someone backtracks into a choicepoint inside the lecture then it will backtrack the implicit loop also and continue trying different values for .1 where it left off. And in a multithreaded program it will only deal with the current thread, values in other threads are unaffected and there is no guarantee what order it will output in
23:36:55 <oklofok> am i misunderstanding something here, why are you asking zzo38 how things work, isn't there a spec?
23:36:56 <FireFly> Yeah, I agree, reading this a bit makes it sound really interesting
23:38:18 <oklofok> oh wait
23:38:29 <oklofok> prolog is based on that isn't it kinda
23:38:54 <oklofok> assuming you define naturals, and it tries them in order
23:39:30 <oklofok> no wait
23:39:52 <oklofok> of course it won't continue if the expression gives the wrong answer, it just tries out all the right answers
23:39:54 <oklofok> nm
23:40:53 <oklofok> was zzo38's idea that the function to be reversed had the side-effect of always writing out the current number being tried?
23:41:22 <ais523> oklofok: yes, that's how it worked
23:41:36 <ais523> zzo38: I was referring to timing issues between the threads
23:41:42 <oklofok> and can't that be done in prolog, basically you say X is an integer, then you say X satisfies P, and P's definition prints X's value
23:41:49 <oklofok> then you say X needs to be 2000
23:41:49 <ais523> certainly, you wouldn't expect an expression to take several thousand ticks
23:41:52 <zzo38> O, I forgot one thing about what it should do if the student is an array. And I'm not sure what it should do in that case.
23:42:54 <zzo38> Maybe you can in prolog but I don't know much about prolog
23:43:03 <oklofok> yes but ais523 does
23:43:24 <oklofok> and i think i do, although i haven't really used it
23:43:49 <ais523> zzo38: in Prolog, integers are special-cased for sanity
23:44:01 <ais523> although that sort of thing works "fine" (although inefficiently) if you define integers yourself
23:44:07 <ais523> rather than relyingon the stdlib definition
23:44:13 <zzo38> I have a question that you can help me define the spec of CLCLC-INTERCAL: What should it do if you assign to a && expression where the student is an array
23:44:21 <oklofok> ais523: was that an answer to me as well?
23:44:31 <ais523> oklofok: possibly, I'm tired and confused
23:44:46 <oklofok> ais523: what does it mean they are special-cased?
23:45:00 <ais523> oklofok: look up the is operator
23:45:11 <oklofok> err why
23:45:15 <ais523> I mean, they don't work anything like the rest of the language
23:45:23 <ais523> they're syntactic-sugared loads
23:45:31 <ais523> and none of the arithmetic operators are interchangeable
23:45:33 <oklofok> wait what are loads
23:45:46 <oklofok> wait what do you mean interchanceable
23:45:57 <oklofok> anyways is is just something that tests two numbers for equality
23:45:58 <ais523> interchangeable means you can swap around what's the result and what's the arguments to a predicate
23:46:05 <ais523> and no, is doesn't test for equality
23:46:12 <oklofok> oh it doesn't?
23:46:14 <ais523> X is 2+2 binds X to 4
23:46:18 <ais523> 2+2 isn't an expression in Prolog
23:46:22 <oklofok> oh right
23:46:26 <oklofok> yes yes
23:46:26 <ais523> it's just an inert term, '+'(2,2)
23:46:44 <ais523> is basically recursively evaluates terms which look like arithmetic expressions
23:47:15 <oklofok> yes anyway i know they're not interchangeable, and that prolog doesn't understand math
23:50:55 <ais523> anyway, going home
23:51:00 -!- ais523 has quit (Remote closed the connection).
23:53:34 -!- zzo38 has quit ("because ais523 quit").
←2009-03-19 2009-03-20 2009-03-21β†’ ↑2009 ↑all