←2015-10-12 2015-10-13 2015-10-14→ ↑2015 ↑all
00:00:45 <fizzie> fungot: Do you know anything about univalence?
00:00:45 <fungot> fizzie: ' yeah, but---' he
00:08:17 <Phantom_Hoover> sounds like he won't talk for fear of shadowy reprisals
00:11:05 <fizzie> fungot: You're among friends here, you can say whatever you like.
00:11:05 <fungot> fizzie: s/ this parts/ these fnord?
00:11:16 <fizzie> fungot: Be that way then.
00:11:17 <fungot> fizzie: to do the intuitive notions of " what something is" is.
00:13:45 <Phantom_Hoover> fungot, well that sounds relevant
00:13:45 <fungot> Phantom_Hoover: you wouldn't force ml upon that group of programmers with ocaml, and cl
00:15:24 <Phantom_Hoover> and that almost makes sense
00:15:39 <Phantom_Hoover> all you need now is to combine the two, fungot
00:15:39 <fungot> Phantom_Hoover: so you can understand a price premium
00:27:19 -!- Phantom_Hoover has quit (Ping timeout: 268 seconds).
00:35:33 <tswett> quarterlier quarterlion
00:36:29 <tswett> "Would you like us to put this quarterpanther in your quarters?" "No, I prefer something much quarterlier. Please give me a quarterlion."
00:44:51 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
00:58:20 <tswett> horsefatherist's horsefurtatles's
00:59:55 <tswett> "Oh yeah, those were my father's uncle's father's father's grandfather's horse's father's great-grandfather's father's father's horsefatherist's horsefurtatles's coarse potatoes."
01:00:25 <tswett> epycriptic egripcritic
01:00:38 <tswett> Man, it really should have misremembered it as "epicryptic"!
01:04:44 <tswett> suburbanced suburbandad
01:13:57 <tswett> butterfuckers butterfuckens
01:14:06 <tswett> Those...
01:14:07 <tswett> those...
01:14:11 <tswett> `loudly butterfuckers!
01:14:12 <HackEgo> butterfuckers!
01:28:49 -!- opal has joined.
01:46:47 -!- opal has left.
01:48:38 * ais523 is amused at Wikipedia containing a transliteration of Notepad's incorrect decoding of "bush hid the facts"
01:48:56 <ais523> it makes it look almost as if the replacement text is meaningful
02:06:52 -!- boily has joined.
02:15:00 -!- Wright has quit (Ping timeout: 272 seconds).
02:20:05 -!- boily has quit (Quit: PARIETAL CHICKEN).
02:28:03 <hppavilion[1]> Dear god xkcd has an IRC channel
02:29:09 <hppavilion[1]> This is my favorite irc channel discovery since finding out about this one
02:37:24 <hppavilion[1]> Um. Is anyone on?
02:38:15 <zzo38> The program xdvi is using only the first page number register of each page; how to make it to use the other page number registers too?
02:43:33 <HackEgo> [wiki] [[LOLCODE]] http://esolangs.org/w/index.php?diff=44697&oldid=44686 * Hppavilion1 * (+108) Removed the LOLSPEAK that some troll filled this article with
02:44:39 <hppavilion[1]> (the joke was too good not to make. Don't worry, I didn't /actually/ vandalize the article, I just added some history so the edit would take)
02:46:22 <zzo38> Which article did you not valdalize?
02:49:13 <HackEgo> [wiki] [[MagiStack]] http://esolangs.org/w/index.php?diff=44698&oldid=43792 * Oerjan * (-4) some proofreading
02:49:57 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
02:50:08 <zzo38> The "Appendix D: Dirty Tricks" of the TeXbook is not dirty and tricky enough.
02:55:52 -!- hppavilion[1] has joined.
02:55:59 * oerjan was briefly worried that an anonymous IP changed most of the spec of Hyperfunge
02:56:12 <oerjan> but it turns out to be the same ip that created it
03:06:48 <HackEgo> [wiki] [[Hyperfunge]] http://esolangs.org/w/index.php?diff=44699&oldid=43751 * Oerjan * (+627) Some proofreading, table
03:08:54 -!- Wright has joined.
03:10:34 <HackEgo> [wiki] [[???]] http://esolangs.org/w/index.php?diff=44700&oldid=43919 * Oerjan * (+0) section case
03:10:56 <HackEgo> [wiki] [[???]] M http://esolangs.org/w/index.php?diff=44701&oldid=44700 * Oerjan * (+0) Um, and that one.
03:15:28 -!- nchambers has changed nick to SpruceZeusWhos.
03:16:22 -!- SpruceZeusWhos has changed nick to SprucePooseZeus.
03:17:49 -!- SprucePooseZeus has changed nick to nch.
03:28:40 <HackEgo> [wiki] [[Stuck]] http://esolangs.org/w/index.php?diff=44702&oldid=43942 * Oerjan * (+63) Some proofreading
03:36:56 <HackEgo> [wiki] [[Niblet]] http://esolangs.org/w/index.php?diff=44703&oldid=43886 * Oerjan * (+57) Some proofreading
03:40:05 -!- nch has changed nick to nchambers.
03:40:26 <HackEgo> [wiki] [[Snowman]] http://esolangs.org/w/index.php?diff=44704&oldid=43827 * Oerjan * (+5) link, case
03:44:50 <HackEgo> [wiki] [[CJam]] http://esolangs.org/w/index.php?diff=44705&oldid=44536 * Oerjan * (+23) Some proofreading
03:50:55 <HackEgo> [wiki] [[LindenMASM]] http://esolangs.org/w/index.php?diff=44706&oldid=43830 * Oerjan * (+31) Some proofreading
03:52:40 -!- Wright has quit (Read error: Connection reset by peer).
03:52:53 <zzo38> Another kind of card: "~ can block as though any number of objects had no abilities."
03:53:23 <ais523> zzo38: trying to make a creature that can block anything?
03:54:04 <ais523> although I'm not sure it works, imagine someone had cast a sorcery "creatures can't block this turn" earlier in the turn
03:54:26 <ais523> by the time you have to choose blockers, that's an effect, not an ability
03:55:31 <zzo38> Yes, it won't do that, but it is still something
03:55:47 -!- JesseH has quit (Read error: Connection reset by peer).
03:56:12 <ais523> zzo38: have you seen the card Flash Foliage? it uses a different technique to block anything (unless it has hexproof or a similar ability)
03:57:05 <HackEgo> [wiki] [[Talk:Sclipting]] M http://esolangs.org/w/index.php?diff=44707&oldid=43836 * Oerjan * (+54) unsigned
03:57:07 <zzo38> Now I have, but that is a different kind of thing. Still there is that similarity.
03:59:36 -!- FireFly has quit (Ping timeout: 246 seconds).
04:00:51 -!- FireFly has joined.
04:04:56 <HackEgo> [wiki] [[Talk:Pada]] http://esolangs.org/w/index.php?diff=44708&oldid=40541 * Oerjan * (+450) Putting deleted thoughts here
04:06:34 <HackEgo> [wiki] [[Pada]] M http://esolangs.org/w/index.php?diff=44709&oldid=43847 * Oerjan * (+1) /* Examples */ link
04:18:23 <HackEgo> [wiki] [[Pb]] M http://esolangs.org/w/index.php?diff=44710&oldid=43854 * Oerjan * (+0) grm
04:30:10 -!- rodgort has quit (Read error: Connection reset by peer).
04:34:54 <hppavilion[1]> We should create an in-depth article on Mapoles on the wiki
04:35:02 <hppavilion[1]> Probably under Hedwig Notta or something
04:35:26 <hppavilion[1]> Maybe we should create an Esolang:Lore page and put all the stupid history as a subpage of that?
04:35:37 <hppavilion[1]> Or maybe not under the Esolang namespace
04:37:46 -!- rodgort has joined.
04:40:00 -!- Jafet has quit (Ping timeout: 244 seconds).
04:40:41 -!- J_Arcane has quit (Read error: Connection reset by peer).
04:41:42 -!- J_Arcane has joined.
04:43:01 -!- Jafet has joined.
04:48:58 <zzo38> Does it need a new namespace?
05:03:24 -!- TodPunk has quit (Ping timeout: 255 seconds).
05:03:30 <HackEgo> [wiki] [[Loader]] http://esolangs.org/w/index.php?diff=44711&oldid=44227 * Oerjan * (+2) link
05:13:24 <HackEgo> [wiki] [[Fourier]] M http://esolangs.org/w/index.php?diff=44712&oldid=43907 * Oerjan * (+10) bold, link and uncensor
05:18:27 <HackEgo> [wiki] [[NSFW]] http://esolangs.org/w/index.php?diff=44713&oldid=43908 * Oerjan * (-33) wikify
05:19:16 -!- opal has joined.
05:19:54 -!- oerjan has quit (Quit: Yay, I'm catched up to when I started catching up).
05:32:17 -!- opal has left.
05:52:14 -!- mauris has quit (Ping timeout: 272 seconds).
05:55:10 <hppavilion[1]> zzo38: I meant potentially under the main namespace, but then people might think "Lore" is the name of an esolang, or someday want to make an Esolang /named/ "Lore"
05:55:51 <hppavilion[1]> It's amazing in mathematics that you can find something akin to the Prime Factorization of a number for fucking /polynomials/
06:04:07 <\oren\> well i think there's a theorem or something that any system that has multiplication and division that behave in certain ways will have a prime-like thing
06:08:04 <hppavilion[1]> I believe that is true
06:11:22 <\oren\> hmmm well not all rings have primes... and not all fields either. I'm not sure what the conditions that cause primes to exist are
06:13:19 <myname> i'd guess infinitely many objects and an order?
06:19:06 <hppavilion[1]> myname: Multiplication is needed too
06:19:14 <hppavilion[1]> \oren\: How does one define primes for the reals?
06:20:05 <myname> maybe you need countably infinitely many objects
06:22:41 <hppavilion[1]> Possibly
06:23:11 <myname> or you need a smallest object
06:23:21 <myname> du hyperreals have primes?
06:24:16 <hppavilion[1]> IDK.
06:24:58 <hppavilion[1]> Why did I just say "IDK."
06:25:04 <hppavilion[1]> I should not be saying things like that
06:25:32 -!- sebbu3 has quit (Ping timeout: 250 seconds).
06:25:40 -!- atehwa has quit (Ping timeout: 250 seconds).
06:25:45 -!- atehwa has joined.
06:26:32 <myname> well, i guess the real numbers in hyperreals don't have an order there are away from epsilon
06:31:24 -!- J_Arcane has quit (Ping timeout: 265 seconds).
06:49:59 -!- bb010g has quit (Quit: Connection closed for inactivity).
06:55:53 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
06:59:24 -!- mauris has joined.
07:03:12 -!- mauris_ has joined.
07:04:10 -!- mauris has quit (Ping timeout: 240 seconds).
07:24:43 -!- mauris__ has joined.
07:27:40 -!- VictorCL has joined.
07:27:51 -!- mauris_ has quit (Ping timeout: 255 seconds).
07:30:13 -!- mauris has joined.
07:30:47 -!- mauris__ has quit (Ping timeout: 264 seconds).
07:34:29 -!- Patashu has joined.
07:34:51 -!- mauris has quit (Ping timeout: 246 seconds).
07:55:19 -!- Phantom_Hoover has joined.
08:12:14 <Taneb> Ugh, Girl Genius is down
08:16:35 -!- mauris has joined.
08:18:00 <ais523> `` quote 107 # <-- http://www.nytimes.com/2015/10/13/business/media/nudes-are-old-news-at-playboy.html?_r=0
08:18:01 <HackEgo> 107) <ais523> reading playboy for the articles actually seems plausible nowadays <ais523> after all, there's porn all over the internet, why would you /pay/ for it
08:18:18 <ais523> apparently playboy agree with me, they've decided to remove the porn and just keep the articles
08:18:58 <ais523> I was not predicting that at the time I made the quote…
08:19:52 -!- mauris_ has joined.
08:21:24 -!- mauris has quit (Ping timeout: 255 seconds).
08:21:48 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
08:21:48 -!- sebbu has joined.
08:28:58 -!- mroman has joined.
08:29:08 * mroman is writing a CPU simulator in plain assembler
08:29:43 <mroman> completely. from scratch.
08:30:09 <mroman> (which means I gotta implement my own versions of some libc functions)
08:30:46 -!- mauris_ has quit (Ping timeout: 240 seconds).
08:31:40 <mroman> but does anyone have any idea how I can embed debug symbols with nasm?
08:32:00 <mroman> nasm -g -f elf -Fstabs main.asm
08:32:02 <mroman> doesn't seem to really work
08:33:16 <mroman> or do I need to declare these functions as global
08:33:18 <mroman> that might be it
08:33:58 <mroman> nope, that's not it
08:35:04 <fizzie> It should work; I've had it work.
08:35:13 <fizzie> Although possibly as -Fdwarf.
08:36:16 <mroman> hm yeah
08:36:19 <mroman> linker stripped symbols :D
08:36:23 <mroman> hm
08:36:36 <mroman> does the usual stack frame thing expect that esp does not change?
08:36:56 <mroman> it seems like if you do any push then the back trace get's mangled
08:37:22 <mroman> http://codepad.org/m95R4ri8
08:37:27 <mroman> those in ?? are actually arguments
08:37:30 <mroman> not saved eips
08:37:52 <fizzie> Could be. Normally you'd need the annotations, and NASM couldn't really generate those automatically.
08:39:21 <mroman> my esp changes when I save registers to the stack
08:40:11 <mroman> but I mean that's the way it should be anyway
08:40:24 <mroman> push ebp; mov ebp, esp; add esp, SIZEOF(locals);
08:41:03 -!- atehwa_ has joined.
08:41:43 <mroman> eip = 0x804808a in str_len_loop; saved eip 0x1
08:41:46 <mroman> that's so wrong
08:42:48 <fizzie> If gdb thinks you've got debugging information, it might ignore ebp, since -fomit-frame-pointer is so common. Who knows.
08:43:36 <fizzie> I don't see any way of manually doing the CFI annotations in NASM, though.
08:44:59 <mroman> I'd thought gdb looks at the value of ebp
08:45:02 <mroman> the register ebp
08:45:14 <mroman> (gdb) x/4x $ebp
08:45:15 <mroman> 0xbffff504:0xbffff5200x080480ac0x080490d40x00000000
08:45:20 <mroman> because ebp is correct
08:45:29 <mroman> ...520 is the saved ebp
08:45:36 <mroman> 80480ac is the return address
08:45:46 <fizzie> Yes, but how would it know it's correct, except with some random sanity-check heuristics?
08:45:52 -!- atehwa has quit (*.net *.split).
08:46:49 <mroman> but if it's not looking at ebp at what is it looking?
08:47:41 <mroman> oh it's looking at ESP
08:47:46 <mroman> but it assumes that no ebp on the stack is present
08:47:46 <fizzie> ESP + the DWARF CFI ("call frame information") data, which you won't have.
08:48:08 <mroman> (gdb) x/4x $esp
08:48:09 <mroman> 0xbffff4fc:0x000000010x080490d40xbffff5200x080480ac
08:48:20 <mroman> it's looking directly at esp and thinks 0x1 is the saved eip
08:48:33 <mroman> which is wrong because that's an argument that has been pushed to the stack
08:48:52 <mroman> or a local, or a saved register depending on the exact circumstances
08:49:31 <ais523> 'quit
08:49:33 -!- ais523 has quit.
08:52:39 <b_jonas> fizzie: it has debug informations for most of your functions, so it knows which function stores its local variables (including next stack frame) where
08:52:54 <mroman> I'll try #gdb :D
08:53:08 <fizzie> b_jonas: It doesn't have debug informations if you don't give it any debug informations.
08:53:12 <b_jonas> sure
08:53:24 <b_jonas> you should compile the program with debug information, preferably with -Og -ggdb
08:53:38 <b_jonas> and libraries with debug information too
08:53:39 <fizzie> You should read the scrollback buffer.
08:53:58 <b_jonas> oh, this is the other channel
08:53:59 <fizzie> It's a handwritten piece of NASM, and there seems to be no way to annotate NASM source with DWARF CFI annotations to generate the stack frame layout information.
08:54:01 <b_jonas> sorry then
08:54:09 <fizzie> And it's not my problem. :)
08:56:56 <fizzie> mroman: By the way, "add esp, SIZEOF(locals)" looks very wrong, unless your SIZEOF is negative.
08:57:57 <mroman> true.
08:58:17 <mroman> but that was just to emphasize on that even in gcc generated Code esp changes
08:58:32 <fizzie> Yes, which is why GCC puts in the necessary debugging information.
08:58:32 <mroman> (but yes, it's doing a sub to allocate and add to clean up)
08:58:47 <mroman> so I assumed that backtraces work by relying on the ebp value
08:58:52 <mroman> because ebp usually doesn't change
08:59:07 <fizzie> ebp quite commonly doesn't have anything to do with the stack.
08:59:12 <mroman> (after the push ebp; mov ebp, esp; epilogue)
08:59:23 <fizzie> GCC enables -fomit-frame-pointer by default on -O2 and higher for x86, IIRC.
08:59:34 <mroman> fizzie: it enables it with optimizations yes
08:59:37 <int-e> using ebp as the frame pointer should be quite common on x86
08:59:54 <fizzie> Well: using it, and not using it, should both be relatively common.
09:00:06 <int-e> well... used to be, because indeed -fomit-frame-pointer has become quite standard.
09:00:21 <mroman> Can I manipulate registers in gdb?
09:00:22 <mroman> like uhm
09:00:25 <mroman> $esp = $ebp
09:00:28 <b_jonas> oh, and as usual, for these kinds of things, getting BOTH a non-ancient compiler and a non-ancient debugger helps a great deal
09:00:31 <b_jonas> mroman: yes you can
09:00:37 -!- shikhin has quit (Read error: Connection reset by peer).
09:00:52 <b_jonas> mroman: you may need to put "p " or "set variable " at the start of the gdb command for that
09:01:02 <b_jonas> of course it might break the program
09:01:07 <mroman> http://codepad.org/gqht55jS
09:01:10 <mroman> damn.
09:01:13 <mroman> still wrong
09:01:19 <mroman> bff..520 is the saved ebp on the stack
09:01:21 <mroman> not a return address
09:01:23 <b_jonas> also, don't you mean $rsp and $rbp ?
09:01:30 <b_jonas> oh, you're debuggin x86_32
09:01:31 <b_jonas> sad
09:01:47 <mroman> yeh
09:01:49 <fizzie> mroman: I assume it's not assuming a saved ebp, if it's not looking for a frame pointer.
09:01:56 <fizzie> You could try skipping it.
09:01:57 <mroman> :(
09:02:07 <mroman> well then I gotta do manual backtraces I guess
09:02:31 <mroman> unless I can configure gdb somehow to trust my ebp
09:03:36 <fizzie> If you've only got that one level of your own non-debug-info'ed functions, you could set $esp = $ebp+4 before backtracing.
09:03:40 <b_jonas> mroman: you could try to learn dwarf and write debugging information manually into your assembly code, but that's probably a pain
09:03:57 <fizzie> You could use GAS and write the .cfi_... directives.
09:04:45 <fizzie> #gdb might be able to help you switch it to trusting the frame pointer for backtraces; I couldn't find an obvious way.
09:04:47 -!- shikhin has joined.
09:05:18 <b_jonas> fizzie: or rather, to avoid rewriting, you could use some other assembler that can take nasm syntax but also other stuff and extensions, such as http://yasm.tortall.net/
09:05:26 <b_jonas> then you don't hvae to change everything to gas syntax
09:07:02 <mroman> fizzie: If i'd have only one level, yes :)
09:07:06 <mroman> if have more :D
09:07:07 -!- augur has quit (Ping timeout: 244 seconds).
09:08:13 <mroman> but it seems to work
09:08:26 <fizzie> b_jonas: I looked at the Yasm manual, and "Chapter 19. dwarf2: DWARF2 Debugging Format" is completely empty, which didn't fill me with confidence.
09:09:03 <b_jonas> fizzie: hmm. yeah, while that might still mean they support the same syntax as some other assembler, but didn't care to document it, it isn't inspring much confidence.
09:12:11 -!- augur has joined.
09:14:44 <mroman> well I could try -Fdwarf
09:15:43 <mroman> same bug :(
09:16:23 -!- VictorCL has joined.
09:17:22 <mroman> but -Fdwarf seems to include some source information
09:17:26 <mroman> but no symbol table
09:17:49 -!- bender| has joined.
09:18:29 -!- augur has quit (Ping timeout: 244 seconds).
09:21:13 -!- augur_ has joined.
09:23:00 <fizzie> It's not the lack of symbol table (presumably), it's the lack of CFI.
09:23:23 <fizzie> And you can't expect a lowly assembler to generate that kind of thing for you.
09:29:47 <mroman> :(
09:29:52 <mroman> but assembler is god :(
09:31:16 -!- mauris has joined.
09:31:22 <mroman> or
09:31:24 <mroman> in other words
09:31:30 <mroman> It's the lack of gdb's trust for ebp
09:31:35 <mroman> *in ebp
09:37:21 -!- mauris has quit (Ping timeout: 246 seconds).
09:41:53 -!- mauris has joined.
09:42:44 <mroman> gdb can't even do proper function stepping
09:42:53 <mroman> gdb really lacks some neat features
09:46:23 -!- mauris has quit (Ping timeout: 244 seconds).
09:52:14 -!- mauris has joined.
09:57:08 <mroman> also some better docs about linux syscalls would be nice
09:57:58 <mroman> http://man7.org/linux/man-pages/man2/open.2.html <- I mean wtf is this
09:58:18 <mroman> that's not a syscall documentation, that's a C api documentation
10:01:25 <mroman> now I gotta grep the linux source code for the necessary values
10:04:08 <mroman> rdonly apparentely is 0
10:05:06 <b_jonas> mroman: yes, O_RDONLY is 0, O_WRONLY is 1, O_RDWR is 2, everywhere except on hurd which just wants to be different
10:05:49 <b_jonas> mroman: the constants are defined in /usr/include/bits/fcntl.h usually
10:06:04 <mroman> why didn't they just properly document the syscall interface somewhere?
10:06:10 <mroman> with all flags and values etc.
10:06:45 <b_jonas> mroman: go and submit patches if you want.
10:07:09 <izabera> do you guys know how to force a certain order for my man pages?
10:07:21 <b_jonas> izabera: by changing the manpath? try man man
10:07:33 <izabera> yes but it seems random
10:07:39 <izabera> let me show you
10:07:46 <mroman> patches to what?
10:07:46 <izabera> http://arin.ga/jpamzo/raw
10:08:05 <b_jonas> mroman: patches to man-pages. see instructions at https://www.kernel.org/doc/man-pages/contributing.html
10:08:14 <mroman> those man-pages document the C interface
10:08:33 <b_jonas> mroman: yes, and some of them do mention the values of the constants, so you can add them to other pages in a similar format
10:08:40 <mroman> (although it would also be neat to have it show the values of the constants for the C interface as well)
10:08:50 <b_jonas> mroman: see http://man7.org/linux/man-pages/man2/chmod.2.html for example, which mentions the values of the constants
10:09:42 <b_jonas> so you can add them in a similar format to other pages
10:09:43 <mroman> I guess I can ignore the mode_t if I'm not using O_CREAT
10:10:38 <b_jonas> Luckily, most of the syscalls have a C api that corresponds straightforwardly to the underlying syscall. The multiplexer system call called "socketcall" which groups like twelve different syscalls for some reason is an exception.
10:12:46 <b_jonas> mroman: I for one would rather prefer to pretend that there's _always_ a mode_t argument, it's just sometimes ignored. It's optional in the c api only for compatibility with REALLY ancient unix, which didn't have O_CREAT.
10:13:59 <mroman> open should return a fd in eax right?
10:14:34 <b_jonas> mroman: hmm wait, let me get my link for that old document that documents the unix abi
10:14:40 <mroman> is -4 somehow a special fd?
10:14:43 <b_jonas> mroman: what os and arch exactly?
10:14:47 <b_jonas> mroman: no, -4 is errno=4
10:15:00 <b_jonas> which is EINTR
10:15:53 <b_jonas> mroman: most syscalls on unix return either a normal value (often 0) or a negated errno, and glibc interprets that and puts it to errno
10:16:06 <b_jonas> the kernel can't put a value in errno, because that's a libc-only construct, and per-thread and stuff
10:16:52 <mroman> I see
10:16:57 <mroman> interrupted function call
10:17:01 <mroman> never heard of that
10:17:06 <b_jonas> mroman: can you tell what os and arch you are on? I'll give you links
10:17:38 <b_jonas> I mean, what os and arch that particular program was compiled for
10:18:50 -!- mauris_ has joined.
10:18:51 <mroman> -E2 is hopefully EEXISTS?
10:18:57 <mroman> *-2
10:19:11 <b_jonas> mroman: 2 is ENOENT
10:19:16 <b_jonas> wait, let me check that
10:19:30 <mroman> ENOENT
10:19:31 <mroman> je
10:19:34 <mroman> no such file or directory
10:19:36 <mroman> good
10:19:50 <b_jonas> http://www.math.bme.hu/~ambrus/pu/errno but note that while the low numbered ones are generally the same everywhere, the hgih numbered ones are dependent on the os and possibly also the cpu
10:20:03 <b_jonas> plus that file is old
10:20:14 <b_jonas> http://refspecs.linuxbase.org/ and https://en.wikipedia.org/wiki/Executable_and_Linkable_Format have some useful links about the C abi used by unix,
10:20:47 <b_jonas> including how C types and structures are represented, function call conventions, libc functions and types, and system calls
10:20:57 <mroman> let me just touch the file
10:21:14 <mroman> on the CPU?
10:21:17 <mroman> why would the depend on the CPU?
10:21:31 <mroman> I mean.. those errnos are define
10:21:34 <mroman> If I compile a C program
10:21:45 <mroman> it'd be pretty bad if the errno's werent the same on somebody elses machine
10:21:48 <mroman> (gdb) info registers
10:21:49 <mroman> eax 0x77
10:21:53 <b_jonas> mroman: no, when I said cpu, I mean the cpu architecture
10:22:02 <mroman> that looks like a valid fd
10:22:15 <b_jonas> when you compile the program for one cpu architecture, it won't run on another cpu architecture (x86_32 vs x86_64 vs everything else)
10:22:27 -!- mauris has quit (Ping timeout: 255 seconds).
10:22:42 <b_jonas> if the program even starts, the numbers won't change
10:23:17 <b_jonas> (well, generally)
10:23:36 <b_jonas> Some of the abi is effectively defined only by the existing tools, not written down, but those documents I mentioned should give a good starting point about this.
10:25:02 <b_jonas> And of course note that all of that ABI stuff applies to only the functions and structures exported from separately compiled translation units, or on the boundary of the kernel and the program. Within a single compilation unit, the C compiler is allowed to optimize a lot and that can involve representing data or function calls differently.
10:25:36 <b_jonas> Which is why you need all that complicated debugging information for the debugger, and often have to remove some optimizations with -Og, to be able to inspect everything with the debugger.
10:26:31 <b_jonas> mroman: you still haven't told me what os and cpu you are on though
10:27:37 -!- mauris__ has joined.
10:28:17 <mroman> x86, linux
10:28:18 <mroman> :)
10:28:29 <mroman> uname -a
10:28:30 <mroman> Linux clt-mob-t-6246 3.2.0-4-686-pae #1 SMP Debian 3.2.68-1+deb7u1 i686 GNU/Linux
10:28:37 <mroman> oh
10:28:38 <mroman> I have pae
10:28:39 <mroman> nice
10:28:56 <b_jonas> thanks
10:29:09 <b_jonas> mroman: uname might not always help though, it tells about the kernel, not the particular program :-)
10:29:30 <b_jonas> so on a freebsd x86_64 machine I can run a program compiled for linux x86_32
10:29:41 -!- mauris_ has quit (Ping timeout: 265 seconds).
10:29:49 <mroman> I'm going to write a CPU simulator in bare bones assembly
10:30:08 <mroman> (for linux, x86)
10:35:55 -!- boily has joined.
10:39:50 -!- mauris__ has quit (Ping timeout: 265 seconds).
10:49:07 -!- AnotherTest has joined.
11:10:29 <Taneb> Thing I made: (vertical scale is a bit off): http://runciman.hacksoc.org/~taneb/mandelbrot.png
11:17:20 <Taneb> The program that made that ran in 87 minutes on two cores
11:18:08 <mroman> well my io_read_block seems to read a bunch of 0x00
11:18:11 <mroman> instead of actual data :(
11:18:29 <mroman> althouh eax = 3
11:18:33 <mroman> which means it read three bytes
11:18:41 <mroman> WHERE ARE MY 3 BYTES :(
11:19:40 <mroman> wtf
11:21:02 <mroman> programmin in assembler is so fun
11:22:11 <HackEgo> [wiki] [[BotEngine]] N http://esolangs.org/w/index.php?oldid=44714 * SuperJedi224 * (+349) Created page with "{{Stub}} Designed by SuperJedi224, '''BotEngine''' is an upcoming 2D programming language inspired by the game [[Manufactoria]]. Execution consists of one or more "bots", eac..."
11:22:45 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44715&oldid=44714 * SuperJedi224 * (+38)
11:24:14 -!- boily has quit (Quit: ADVERSE CHICKEN).
11:27:33 -!- copumpkin has joined.
11:28:24 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44716&oldid=44715 * SuperJedi224 * (+483)
11:29:03 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44717&oldid=44716 * SuperJedi224 * (+47) /* Instructions */
11:29:36 <b_jonas> on anagol, is there a way to tell when a problem was submitted, for an active problem?
11:29:52 <b_jonas> the homepage tells for how long it's active
11:31:02 -!- mauris has joined.
11:35:54 -!- mroman has quit (Ping timeout: 265 seconds).
11:36:54 -!- mauris_ has joined.
11:38:27 -!- mauris has quit (Ping timeout: 246 seconds).
11:39:50 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
11:45:13 -!- mauris_ has quit (Ping timeout: 244 seconds).
11:48:08 -!- Patashu has quit (Ping timeout: 268 seconds).
11:51:39 -!- AnotherTest has quit (Ping timeout: 240 seconds).
11:54:21 -!- mauris_ has joined.
11:57:29 -!- mauris has joined.
11:59:06 -!- mauris_ has quit (Ping timeout: 265 seconds).
12:01:33 -!- mauris has quit (Ping timeout: 246 seconds).
12:03:23 -!- mauris has joined.
12:08:28 -!- mauris has quit (Ping timeout: 244 seconds).
12:11:01 -!- mauris has joined.
12:16:21 -!- mauris_ has joined.
12:16:59 -!- mauris has quit (Ping timeout: 265 seconds).
12:23:58 -!- mauris has joined.
12:24:29 -!- mauris_ has quit (Ping timeout: 244 seconds).
12:29:36 -!- lleu has joined.
12:29:36 -!- lleu has quit (Changing host).
12:29:36 -!- lleu has joined.
12:29:54 -!- mauris has quit (Ping timeout: 246 seconds).
12:31:18 -!- TodPunk has joined.
12:35:18 -!- JesseH has joined.
12:36:23 -!- FreeFull has quit (Quit: BBL).
12:45:57 -!- J_Arcane has joined.
13:05:15 <Taneb> Is it possible to do logarithms in dc
13:08:19 -!- `^_^v has joined.
13:22:00 <int-e> I'd answer, but then the next question would be "how?"...
13:23:04 <int-e> (it's not built in, but dc is Turing complete so it's just an exercise for the interested programmer to write code that approximates logarithms to an desired precision)
13:29:03 <Taneb> Help I'm tempted to do my family tree again
13:31:52 -!- mauris has joined.
13:55:07 <int-e> . o O ( Wouldn't that be a dag? I mean, eventually... )
13:56:07 <Taneb> Yes
13:56:44 <Taneb> Pretty soon in my ancestry, two of my grandparents were first cousins
14:08:17 -!- gamemanj has joined.
14:20:38 <HackEgo> [wiki] [[NSFW]] http://esolangs.org/w/index.php?diff=44718&oldid=44713 * 91.155.73.101 * (+13)
14:27:08 -!- TieSoul has joined.
15:07:50 -!- oerjan has joined.
15:08:52 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44719&oldid=44717 * SuperJedi224 * (+216)
15:14:43 -!- pdxleif has quit (Ping timeout: 252 seconds).
15:17:34 -!- pdxleif has joined.
15:30:59 -!- bender| has changed nick to bender.
15:31:00 -!- mauris has quit (Ping timeout: 244 seconds).
15:31:39 -!- mauris has joined.
15:38:36 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44720&oldid=44719 * SuperJedi224 * (+316)
15:43:24 -!- copumpkin has joined.
15:45:24 -!- bender has quit (Quit: Ping Pong Fuckout).
15:59:18 <Taneb> Who wants to see a VERY BIG IMAGE that I rendered but CANNOT SEE because it is TOO DAMN BIG
15:59:19 <Taneb> http://runciman.hacksoc.org/~taneb/mandelbrot.png
16:01:49 -!- mroman has joined.
16:01:55 <mroman> http://codepad.org/LaK99cVI
16:02:02 <mroman> sadly [edx+bl] isn't a valid offset
16:03:40 <int-e> Taneb: cute, feh manages in just under 1GB... so 32 bits per pixel
16:04:45 <Taneb> My chromebook doesn't have enough memory to even try
16:06:56 <int-e> "display" uses 5GB
16:07:18 <b_jonas> Taneb: that's only 20k*10k pixels
16:07:24 <Taneb> Yes
16:07:27 <gamemanj> Wow, Firefox froze for a second or two
16:07:36 <Taneb> Took me 4 hours to render with 2 cores
16:07:44 <b_jonas> I can view it fine
16:07:50 <b_jonas> whta do you want about it?
16:07:56 <b_jonas> should I extract a rectangle or something?
16:07:59 <Taneb> I want to show it off
16:08:06 <gamemanj> well, it looks pretty
16:08:32 <int-e> firefox also uses about 1GB.
16:09:15 <gamemanj> but it can't really be appreciated without infinite resolution...
16:10:06 <Taneb> Infinite resolution is difficult
16:10:37 <gamemanj> in a PNG, probably not possible :)
16:10:50 <gamemanj> solution: The LLVM Image Format
16:11:02 <gamemanj> no, wait, that's not esoteric
16:11:08 <gamemanj> The Brainfuck Image Format
16:12:07 <gamemanj> images are represented by a brainfuck program that, given two 64-bit floating point values, outputs the colour of the pixel
16:12:46 <gamemanj> not infinite resolution, but unless you want to change "floating point" to "big-decimals"...
16:14:06 <b_jonas> 64-bit floating point is definitely not infinite resolution
16:14:27 <gamemanj> ok, so big decimals it is
16:14:38 <gamemanj> now to work out how anyone would ever implement it
16:15:22 <b_jonas> but if you want nice manelbrot images and videos, there's some at http://www.madore.org/~david/math/mandelbrot.html
16:15:35 <oerjan> mandelbrot is one case where you actually _would_ want infinite resolution rather than just 64-bit. because zoooooming.
16:18:47 <gamemanj> Raytraced films that are sent as Brainfuck programs...
16:19:49 <mroman> but my str_cat is broken
16:19:50 <mroman> damn
16:26:19 <fizzie> Huh, I was expecting something to actually happen, but the "mem" in my silly taskbar thing just stayed at 43%. Oh well, memory use estimation is an inexact science.
16:26:25 <fizzie> (Opened it in a Chrome tab.)
16:27:09 <fizzie> There's no "find" option in Chrome's internal task manager and I've got too many tabs, I can't find it in the list.
16:28:05 <fizzie> Oh, there it is. It's using "216,608K" of memory, in a process shared by three tabs.
16:28:36 <fizzie> I have no idea how it would count something like graphical resources.
16:29:15 <fizzie> I think it's doing some sort of load-on-demand thing, because if I scroll by real fast, it takes a while to blink in.
16:29:44 <fizzie> (And actively flushing that out, because scrolling back-and-forth doesn't become fast.)
16:30:51 <int-e> sounds reasonable
16:32:22 <fizzie> Didn't use much memory in the "zoomed-out" view, so I'm guessing it also rendered a low-res version for that.
16:42:17 -!- hppavilion[1] has joined.
16:53:33 <mroman> also why's there so little things about C-- available?
16:54:24 <mroman> probably because it never really made it outside ghc
17:01:20 <b_jonas> which C--? aren't there like three different languages called that?
17:02:10 -!- oerjan has quit (Quit: Later).
17:09:13 -!- gamemanj has quit (Remote host closed the connection).
17:10:23 -!- atrapado has joined.
17:11:48 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
17:21:53 -!- AnotherTest has joined.
17:24:52 -!- shikhin has quit (Ping timeout: 265 seconds).
17:27:17 -!- FireFly has quit (Ping timeout: 256 seconds).
17:34:29 <mroman> b_jonas: the one GHC use(s|d).
17:38:33 -!- FireFly has joined.
17:38:35 -!- shikhin has joined.
17:41:17 -!- FireFly has quit (Excess Flood).
17:41:25 <mroman> I think people have a poor understanding of why certain people are not allowed to donate blood.
17:41:26 -!- shikhin has quit (Read error: Connection reset by peer).
17:41:26 -!- FireFly has joined.
17:41:29 <mroman> Like people with cancer.
17:41:33 -!- shikhin has joined.
17:41:46 -!- hppavilion[1] has joined.
17:43:56 -!- mroman has quit (Quit: Lost terminal).
17:44:12 -!- Effilry has joined.
17:44:36 <hppavilion[1]> http://esolangs.org/wiki/Brainfuck_Derivatives should be moved to its own page and the original location should become a page about what a BF derivative /is/
17:44:52 <hppavilion[1]> With a "Critisism" section
17:45:24 -!- shikhin has quit (Excess Flood).
17:45:32 -!- shikhin has joined.
17:45:52 <Phantom_Hoover> hppavilion[1] do you want to take up the torch of hating bf derivatives
17:46:09 -!- FireFly has quit (Ping timeout: 255 seconds).
17:46:29 <hppavilion[1]> Phantom_Hoover: I don't think I'm qualified, having made a couple.
17:46:40 <Phantom_Hoover> well we can cover that up
17:46:43 <hppavilion[1]> I only feel qualified to hate derivatives that don't do enough
17:47:02 <hppavilion[1]> Derivatives that do something new and unique are cool.
17:47:15 <hppavilion[1]> Brainfuck provides a good base to build off of
17:47:42 <hppavilion[1]> Thought attempts to make it /more/ minimalistic are good.
17:48:14 <hppavilion[1]> If I were to take up the torch, I would establish a "Comittee of Brainfuck Derivative Approval", which would decide whether a given derivative deserves its own page
17:48:26 <HackEgo> [wiki] [[User:Phantom Hoover]] http://esolangs.org/w/index.php?diff=44721&oldid=20891 * Phantom Hoover * (-85) the end of an era
17:49:36 <b_jonas> I'd just purge all BF-derivatives except for brainfuck itself and Ook, with fire
17:50:02 <hppavilion[1]> b_jonas: Ook? Seriously?
17:50:24 <hppavilion[1]> What about, for example, a derivative that I'm thinking of called "ThueFuck", which is based on strings intead of integers?
18:03:34 <HackEgo> [wiki] [[Essays/A Defence of Brainfuck Derivatives]] N http://esolangs.org/w/index.php?oldid=44722 * Hppavilion1 * (+1562) Started rough draft
18:03:55 <hppavilion[1]> (I'm playing devil's advocate, for the record)
18:05:12 <zzo38> Ook is not particularly remarkable either actually
18:05:56 <b_jonas> zzo38: maybe it's not, but I personally would not want to anger an orang-outan
18:07:44 <zzo38> I am not the one suggesting to purge everything with fire, though.
18:10:22 <hppavilion[1]> I vote we go through the wiki and uncensor every occurense of "Brainf*ck" or "Brainf***"
18:10:30 <hppavilion[1]> I spelled "occurance" wrong.
18:10:36 <hppavilion[1]> I am a moron.
18:10:45 <hppavilion[1]> (I probably spelled it wrong again there)
18:11:00 <int-e> it's hard. occurrence
18:11:10 <nortti> alternatively, create two new languages, brainf*ck and brainf***, very unlike brainfuck, and make them point to them
18:11:28 <int-e> (I mean that, I had to check how many "r" there are in that word)
18:12:43 <hppavilion[1]> THere we go...
18:12:58 <hppavilion[1]> nortti: I already came up with that idea xD
18:13:04 -!- augur_ has quit (Quit: Leaving...).
18:13:11 <hppavilion[1]> I'm seriously considering doing that
18:13:41 <hppavilion[1]> One should be based on λ-calculus, the other on Graph Rewriting (Kolmogorov Machines possibly)
18:14:20 <nortti> tag machines are also interesting
18:14:29 -!- Effilry has changed nick to FireFly.
18:14:35 <nortti> tho there's only so much you can do with them
18:14:43 <hppavilion[1]> What are tag machines?
18:15:01 <hppavilion[1]> (I think we should require Brainf*ck and Brainf*** to be TC)
18:15:06 <nortti> *tag system
18:15:15 <nortti> http://esolangs.org/wiki/Tag_system
18:16:15 <hppavilion[1]> Thue-like graph rewriting might work
18:17:40 <nortti> expression rewriting (a lá CAS) tarpit would be interesting, too. I don't think I've seen an esolang based on it
18:18:14 <hppavilion[1]> Expression rewriting?
18:18:16 <hppavilion[1]> Interesting...
18:18:37 <hppavilion[1]> I suggested a language where the AST is a Directed Graph instead of a tree
18:18:57 <hppavilion[1]> And Control Flow is only possible by nesting an instruction inside itself
18:19:20 <hppavilion[1]> nortti: Is expression rewriting anything like Algbebra?
18:19:28 <hppavilion[1]> (Oh right. CAS.)
18:19:31 <nortti> yup
18:19:39 <nortti> https://bitbucket.org/purelang/pure-lang/wiki/Rewriting ← I was thinking of this
18:19:40 <hppavilion[1]> Computer Algebra System
18:19:50 -!- bb010g has joined.
18:20:31 <hppavilion[1]> I /was/ thinking of adding a CAS to be builtin to my language
18:21:06 <hppavilion[1]> I'm attempting to make a useful programming language while preserving Esolangity
18:22:13 <hppavilion[1]> nortti: The language would have importable syntax features (combinators come to mind)
18:22:43 <hppavilion[1]> You could literally do `getsynt combinators / import SK / I = SKK`
18:24:03 <hppavilion[1]> Can you think of any special syntaxes I could allow to be imported?
18:24:31 <int-e> @metar lowi
18:24:31 <lambdabot> LOWI 131750Z 07004KT 040V120 8000 FEW007 SCT013 BKN030 11/09 Q1011 NOSIG
18:25:05 <nortti> hppavilion[1]: how about being able to import some syntax stuff that allows for rpn?
18:25:15 <hppavilion[1]> nortti: That might work
18:25:30 <hppavilion[1]> Basically, there are special strings for embedded codes
18:32:02 -!- hppavilion[1] has quit (Ping timeout: 250 seconds).
18:34:53 -!- Sgeo__ has joined.
18:37:00 -!- Sgeo_ has quit (Ping timeout: 255 seconds).
18:39:25 -!- hppavilion[1] has joined.
18:39:46 <hppavilion[1]> I'm /finally/ back!
18:40:19 <hppavilion[1]> So to do, for example, combinators, you need a special string of something like this syntax:
18:40:35 <hppavilion[1]> I = cmb'''S K K'''
18:40:42 <hppavilion[1]> A special string with a "type" prefix
18:40:51 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
18:41:33 <nortti> ah
18:41:48 <hppavilion[1]> perhaps... I don't know what syntax to use.
18:41:57 <hppavilion[1]> combinator{SKK}?
18:42:04 <hppavilion[1]> That works.
18:43:09 <hppavilion[1]> Though {} is also used for Dicts AND sets
18:43:35 <nortti> [] is also used, I'd imagine
18:43:46 <nortti> how about <>
18:44:22 <hppavilion[1]> nortti: That could be confused with if the variable "combinator" is less than "SKK"
18:44:32 <nortti> hm
18:44:47 <hppavilion[1]> [] is used for lists and list subscripting (in a very pythonic way)
18:45:42 <hppavilion[1]> I can't think of anything that combinator{} would mean...
18:45:46 <hppavilion[1]> Why not make it for strings?
18:46:13 <hppavilion[1]> Well, special strings
18:46:23 <hppavilion[1]> That significantly simplifies parsing
18:46:34 <hppavilion[1]> The syntaxes you could get are:
18:47:21 <hppavilion[1]> `getsynt thue, combinators, xml, sexpr, yaml` at LEAST
18:47:22 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: getsynt: not found
18:47:27 <hppavilion[1]> Oh right. Hackbot.
18:48:19 <hppavilion[1]> (A *good* IDE will syntax highlight special string)
18:48:26 <hppavilion[1]> s/string/strings/
18:49:48 <hppavilion[1]> So you can literally include XML directly into the language. That'd be used in GUI
18:50:37 <hppavilion[1]> Oh. Can't forget that there'll be some formal grammar libraries
18:55:24 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44723&oldid=44720 * SuperJedi224 * (+236)
18:57:35 <hppavilion[1]> What's the name of that linguistics-oriented programming language?
18:58:02 <int-e> @google linguistics-oriented programming language
18:58:04 <lambdabot> http://boole.stanford.edu/pub/lingol.html
18:58:04 <lambdabot> Title: A Linguistics Oriented Programming Language
18:58:49 <hppavilion[1]> Tht'a not it
18:58:55 -!- FreeFull has joined.
18:59:04 <hppavilion[1]> I've been googling for the last 10-15 minutes trying to find it
18:59:08 <hppavilion[1]> *that's
19:05:02 <myname> you lack precision on your deacription
19:06:18 <hppavilion[1]> myname: I was discussing a linguistics-oriented programming language. Someone sent a link. It's called "Grammar <something>"
19:06:44 <hppavilion[1]> I forgot to bookmark the page
19:07:12 <hppavilion[1]> It was too long ago to investigate my local logs. I don't know what day it was for the online logs
19:08:22 -!- ais523 has joined.
19:10:59 -!- AnotherTest has quit (Ping timeout: 240 seconds).
19:11:56 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44724&oldid=44723 * SuperJedi224 * (+36)
19:34:32 -!- AnotherTest has joined.
19:37:18 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44725&oldid=44724 * SuperJedi224 * (+68) /* Examples */
19:38:17 * ais523 finds it interesting that the computational complexity of matrix multiplication is unknown, but appears to be polynomial with a non-integer exponent between 2 and 3
19:42:09 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44726&oldid=44725 * SuperJedi224 * (+373)
19:44:36 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44727&oldid=44726 * SuperJedi224 * (+53)
19:47:47 -!- mauris_ has joined.
19:49:09 -!- augur has joined.
19:50:48 -!- mauris has quit (Ping timeout: 255 seconds).
19:56:27 <zzo38> In some programs the syntax can be changed so it cannot highlight properly except if you execute the program.
19:57:33 -!- VictorCL has joined.
20:01:57 <zzo38> What uses can you think of for making insertion classes in TeX that use a negative multiplier and/or negative extra space skip?
20:07:10 -!- Froox has quit (Quit: *bubbles away*).
20:09:37 <hppavilion[1]> I'm making a stack-based language called dijkstra for Junction
20:10:31 -!- Patashu has joined.
20:16:43 -!- hppavilion[1] has quit (Ping timeout: 256 seconds).
20:19:23 -!- hppavilion[1] has joined.
20:19:27 <hppavilion[1]> I'm trying to decide something for Dijaskra
20:21:49 <hppavilion[1]> The fuction syntax can either be, for example, "2 `sqrt" which pushes 2 on the stack then calls sqrt on it OR "2 sqrt `" which pushes 2 on the stack, pushes sqrt on the stack, then pops sqrt and calls it with 2 as its argument
20:22:25 <coppro> the latter seems more esoteric
20:22:31 <coppro> although the former is less consistent, which might be esoteric
20:22:39 <hppavilion[1]> coppro: It isn't actually meant to be esoteric xD
20:22:43 <hppavilion[1]> Well, not completely
20:22:50 <hppavilion[1]> It's really just stacky to be easier to implement
20:24:19 <hppavilion[1]> The latter seems more strict and will lead to better code, and calling an argument on the output of a function makes more sense that way, but the former seems looks better, but it isn't as clean and if I want to do `` it's harder to implement
20:25:30 <hppavilion[1]> *seems to look
20:25:52 <hppavilion[1]> I think I'll do the latter
20:28:52 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
20:35:58 -!- hppavilion[1] has quit (Ping timeout: 250 seconds).
20:45:37 -!- Patashu has quit (Ping timeout: 256 seconds).
20:56:01 -!- zzo38 has quit (Remote host closed the connection).
20:57:28 -!- `^_^v has quit (Quit: This computer has gone to sleep).
21:01:35 -!- ais523 has quit.
21:08:26 -!- copumpkin has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
21:16:24 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
21:16:56 -!- copumpkin has joined.
21:17:37 -!- atrapado has quit (Quit: Leaving).
21:18:19 -!- VictorCL has joined.
21:21:45 -!- copumpkin has quit (Ping timeout: 252 seconds).
21:38:33 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44728&oldid=44727 * SuperJedi224 * (+65)
21:40:00 -!- bb010g has quit (Quit: Connection closed for inactivity).
21:54:31 -!- hppavilion[1] has joined.
21:54:41 -!- oerjan has joined.
21:55:02 <hppavilion[1]> FISH SIMULATOR 2015!
22:05:48 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
22:11:44 -!- hppavilion[1] has joined.
22:20:11 -!- mauris_ has quit (Ping timeout: 265 seconds).
22:23:20 -!- boily has joined.
22:31:00 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
22:47:12 <HackEgo> [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44729&oldid=44728 * SuperJedi224 * (+51) /* Instructions */
23:08:01 -!- hppavilion[1] has joined.
23:08:12 <hppavilion[1]> I thought of a new (Eso)?lang Design Game.
23:09:21 <hppavilion[1]> (I don't like sports, but for some reason I'm always looking for ways to convert Esolang Design /into/ a sport. Guess I just don't like the physical action.)
23:10:42 <hppavilion[1]> boily: You active right now?
23:12:32 <hppavilion[1]> Does not appear to be so
23:16:19 <oerjan> bzzzoily
23:17:07 <hppavilion[1]> Hi oerjan
23:22:36 <hppavilion[1]> Um.
23:23:16 <oerjan> yo
23:24:20 <hppavilion[1]> So I thought up a new possible kind of "game" for designing esolangs
23:24:36 <HackEgo> [wiki] [[Special:Log/newusers]] create * Elendiastarman * New user account
23:25:00 <hppavilion[1]> Yay! New friends!
23:25:17 <\oren\> is METAFONT turing complete?
23:25:26 <hppavilion[1]> No clue what that even is.
23:25:33 <hppavilion[1]> The game is basically this: Pre-designed EBNF.
23:25:40 <oerjan> no:elendig = en:awful hth
23:27:05 <hppavilion[1]> A machine/program is used to generate a random EBNF from a set of randomly-generated/selected regex tokens
23:28:26 <hppavilion[1]> It is up to the participants/teams to take that BNF and tokens, design a language using that (some rules could allow the BNF to be extended), and, if the competition requires design a lexer, parser, and executer to execute their designed language
23:29:31 -!- FreeFull has quit (Quit: Snoozalicious).
23:30:22 <tswett> hppavilion[1]: allow me to once again express enthusiasm about your idea for a language where the syntax doesn't form a tree.
23:31:23 <hppavilion[1]> tswett: Thank you. I thought about that on my walk home and am still attempting to figure out how that'd work
23:31:50 <tswett> hppavilion[1]: are you familiar with the concept of a context-free language/grammar?
23:31:58 <hppavilion[1]> tswett: A bit.
23:32:13 <hppavilion[1]> I could do a non-looping directed graph with something like x+y*z parsing to x+y and y*z, but that can become a tree too easily
23:33:26 <tswett> Now, the thing about an unambiguous context-free language is that words in the language are in a one-to-one correspondence with parse trees in the language.
23:33:45 <tswett> And each node in the parse tree simply corresponds to a "phrase", so to speak, within that word.
23:34:07 <tswett> So one approach is to just add syntax rules which *aren't* context-free.
23:34:24 <hppavilion[1]> Yes, I believe I understood that (but I'm not sure xD)
23:34:30 <hppavilion[1]> (the first part, not the second)
23:34:36 <hppavilion[1]> That is one approach, I suppose
23:35:11 <hppavilion[1]> I'm still attempting to figure out what a non-context-free language is, because it seems to me that ANYTHING can be expressed in BNF, which is context-free if I'm correct
23:35:43 <Jafet> A language where the program source is a set of points and the program is defined by the unique polynomial of lowest degree containing those points.
23:35:53 <tswett> Here's a language that can't be expressed in BNF: the set of all strings of digits that are the decimal expansion of a prime number.
23:36:19 <tswett> Here's another thought. Every context-free language can be represented easily as a sub-language of the "parentheses language"—do you know the language I'm talking about?
23:36:36 <hppavilion[1]> Ah, right. Stuff you need a TM for.
23:36:42 <tswett> Yup.
23:36:54 <tswett> Or, at least, something more powerful than a nondeterministic push-down automaton.
23:37:07 <hppavilion[1]> Never heard of the "Parentheses langauge"
23:37:28 <tswett> It's the language whose words are the strings composed of "correctly matched parentheses".
23:37:44 <tswett> Here's an unambiguous grammar for it:
23:37:45 <hppavilion[1]> Ah, right
23:37:57 <tswett> <parens> ::= "(" <parens> ")" <parens> | epsilon
23:38:21 <hppavilion[1]> Yup.
23:38:23 <tswett> So here's my thought, then.
23:38:25 <hppavilion[1]> Wait, epsilon?
23:38:33 <tswett> Epsilon means the empty string.
23:38:36 <hppavilion[1]> Oh right. Empty string
23:38:45 <hppavilion[1]> (Dammit! You beat me! :P)
23:39:01 <tswett> Consider how you might make the parentheses language such that it has a "parse digraph" instead of a parse tree.
23:39:34 <tswett> As it currently is, every pair of parentheses has at most one pair of parentheses which is the "next layer out".
23:39:52 <tswett> So how would you make it so a pair of parentheses can have *more* than one pair of parentheses which are the "next layer out"?
23:40:34 <hppavilion[1]> I'm trying to figure out if this leads to a "What you're suggesting is entirely illogical" and you're just trying to help me figure it out on my own xD
23:40:52 <tswett> I think there's nothing inconsistent about your idea at all.
23:41:09 <tswett> I just thought of an idea that I really like: tie points!
23:41:12 <tswett> Let me explain.
23:41:26 <fizzie> a^n b^n c^n, the canonical non-context-free language. :)
23:41:52 <boily> hppavellon[1], hellørjan. I think I'm active.
23:41:53 <hppavilion[1]> OK
23:41:58 <boily> @massages-loud
23:41:58 <lambdabot> oerjan said 1d 8h 1m 31s ago: you may need to mapole around a bit. see the logs.
23:42:18 <tswett> Here's an otherwise-normal expression with "tie points" inserted: (<1> a + b) * (c + d) * (<1> e + f)
23:42:37 <tswett> The <1>s are the tie points.
23:42:55 <hppavilion[1]> And tie points are/do...?
23:43:11 <tswett> Actually, let me give you a different one. Just a string, not really an expression.
23:43:15 <tswett> a<1>bc<1>d
23:43:23 * boily lightly mapoles izabera
23:43:43 <tswett> The tie points denote, essentially, that parsing can freely jump from one point to the other.
23:43:45 <tswett> In other words...
23:43:53 <hppavilion[1]> Ah!
23:43:59 <tswett> "a" is followed immediately by "b", but "a" is *also* followed immediately by "d".
23:44:15 <tswett> "d" is preceded immediately by "c", but it's also preceded immediately by "a".
23:44:17 <hppavilion[1]> huh
23:44:17 <tswett> And so forth.
23:44:39 <hppavilion[1]> That might help towards the Multiparentheses Language
23:44:42 <tswett> Now, how you'd parse this is a difficult question...
23:45:29 <hppavilion[1]> tswett: Well, you'd probably... no... maybe you could? nah... hm...
23:45:33 <tswett> 'Course, one straightforward way to "de-context-free-ify" a language is by making it so that bracket matching is denoted by something other than positioning.
23:45:47 <tswett> So here's an expression: (a + [b + c) + d]
23:46:01 <hppavilion[1]> Tangle brackets! Yay!
23:46:05 <tswett> Yup.
23:46:08 <tswett> Or even...
23:46:12 <tswett> a) + (b
23:46:12 <hppavilion[1]> (Or does the "(" match the "]"?)
23:46:15 <hppavilion[1]> Whoa
23:46:33 <tswett> So the expression within parentheses there is... uh... um...
23:46:43 <tswett> Or, here's yet another idea.
23:46:48 <hppavilion[1]> Heh
23:47:02 <tswett> First figure out what the "parse digraphs" of your language are going to look like, then figure out how to represent that by strings of symbols.
23:47:04 <Jafet> (1, 2] ⊂ [1, 3[
23:47:33 <hppavilion[1]> OK
23:47:40 <hppavilion[1]> I need paper, probably
23:47:41 <fizzie> It's not quite related, but let's mention for the record that some Schemes have syntax that lets you write non-tree s-expressions, stuff like #1=(a b #2 d #2=(x y #1))
23:47:47 <hppavilion[1]> Or is there a good graph drawing tool online?
23:47:59 <fizzie> hppavilion[1]: draw.io isn't have bad.
23:48:14 <fizzie> s/have/half/
23:48:53 <hppavilion[1]> Well. So. The multiparentheses language.
23:49:43 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…).
23:49:49 <hppavilion[1]> Should I make something LISPy?
23:49:58 <hppavilion[1]> So that we can see it actually do something?
23:50:09 <fizzie> (I think draw.io is an offshoot of "old" (not that old) JGraph, via their JavaScript reimagining called mxGraph.)
23:50:30 <Jafet> Of course, the syntax that is used to specify non-tree programs usually consists of trees.
23:51:26 * boily equally mapoles int-e
23:52:07 <hppavilion[1]> MAPOLES-4-+ITY!
23:52:55 <hppavilion[1]> (Read: "Mapoles For Equality!")
23:53:21 <tswett> hppavilion[1]: you're not using UTF-7, are you?
23:53:32 <tswett> hppavilion[1]: tell me, what's this: -+
23:53:46 <tswett> Does UTF-7 even work that way? I don't remember.
23:53:48 <fizzie> I got that syntax wrong again, it would've been #0=(a b #1# d #1=(x y #0#)) for that example.
23:53:56 <hppavilion[1]> tswett: - is a dash and + is me pretending to be someone hitting shift too early
23:54:04 * oerjan thinks that bfjoust grammar is probably not context-free, due to nested ({})%
23:54:09 <tswett> Ah.
23:54:22 <hppavilion[1]> (Someone careless, like a <name censored> for president poster)
23:54:39 <hppavilion[1]> So what do I want the program I'm making to do?
23:54:56 <hppavilion[1]> It should include loops, as that's the only way I can really demonstrate how this program works
23:55:06 <tswett> oerjan: that seems perfectly context-free to me.
23:56:34 <fizzie> tswett: In (a(b{c{d}e}f)%1 g)%2 the innermost {} pairs with the outermost ().
23:56:43 <oerjan> tswett: nested like this ( ( { { } } ) % ) %
23:58:38 <oerjan> back when, i figured it's the intersection of two context-free languages, one that matches brackets normally and one that matches ( to { and } to )
23:59:16 <hppavilion[1]> What's a simple program involving loops, but not too advanced for someone drawing its AS(T|G) on a laptop (so no 99 bottles of beer on the wall)
23:59:45 <oerjan> truth machine hth
←2015-10-12 2015-10-13 2015-10-14→ ↑2015 ↑all