00:00:45 fungot: Do you know anything about univalence? 00:00:45 fizzie: ' yeah, but---' he 00:08:17 sounds like he won't talk for fear of shadowy reprisals 00:11:05 fungot: You're among friends here, you can say whatever you like. 00:11:05 fizzie: s/ this parts/ these fnord? 00:11:16 fungot: Be that way then. 00:11:17 fizzie: to do the intuitive notions of " what something is" is. 00:13:45 fungot, well that sounds relevant 00:13:45 Phantom_Hoover: you wouldn't force ml upon that group of programmers with ocaml, and cl 00:15:24 and that almost makes sense 00:15:39 all you need now is to combine the two, fungot 00:15:39 Phantom_Hoover: so you can understand a price premium 00:27:19 -!- Phantom_Hoover has quit (Ping timeout: 268 seconds). 00:35:33 quarterlier quarterlion 00:36:29 "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 horsefatherist's horsefurtatles's 00:59:55 "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 epycriptic egripcritic 01:00:38 Man, it really should have misremembered it as "epicryptic"! 01:04:44 suburbanced suburbandad 01:13:57 butterfuckers butterfuckens 01:14:06 Those... 01:14:07 those... 01:14:11 `loudly butterfuckers! 01:14:12 ​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 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 Dear god xkcd has an IRC channel 02:29:09 This is my favorite irc channel discovery since finding out about this one 02:37:24 Um. Is anyone on? 02:38:15 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 [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 (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 Which article did you not valdalize? 02:49:13 [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 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 but it turns out to be the same ip that created it 03:06:48 [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 [wiki] [[???]] http://esolangs.org/w/index.php?diff=44700&oldid=43919 * Oerjan * (+0) section case 03:10:56 [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 [wiki] [[Stuck]] http://esolangs.org/w/index.php?diff=44702&oldid=43942 * Oerjan * (+63) Some proofreading 03:36:56 [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 [wiki] [[Snowman]] http://esolangs.org/w/index.php?diff=44704&oldid=43827 * Oerjan * (+5) link, case 03:44:50 [wiki] [[CJam]] http://esolangs.org/w/index.php?diff=44705&oldid=44536 * Oerjan * (+23) Some proofreading 03:50:55 [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 Another kind of card: "~ can block as though any number of objects had no abilities." 03:53:23 zzo38: trying to make a creature that can block anything? 03:54:04 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 by the time you have to choose blockers, that's an effect, not an ability 03:55:31 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 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 [wiki] [[Talk:Sclipting]] M http://esolangs.org/w/index.php?diff=44707&oldid=43836 * Oerjan * (+54) unsigned 03:57:07 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 [wiki] [[Talk:Pada]] http://esolangs.org/w/index.php?diff=44708&oldid=40541 * Oerjan * (+450) Putting deleted thoughts here 04:06:34 [wiki] [[Pada]] M http://esolangs.org/w/index.php?diff=44709&oldid=43847 * Oerjan * (+1) /* Examples */ link 04:18:23 [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 We should create an in-depth article on Mapoles on the wiki 04:35:02 Probably under Hedwig Notta or something 04:35:26 Maybe we should create an Esolang:Lore page and put all the stupid history as a subpage of that? 04:35:37 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 Does it need a new namespace? 05:03:24 -!- TodPunk has quit (Ping timeout: 255 seconds). 05:03:30 [wiki] [[Loader]] http://esolangs.org/w/index.php?diff=44711&oldid=44227 * Oerjan * (+2) link 05:13:24 [wiki] [[Fourier]] M http://esolangs.org/w/index.php?diff=44712&oldid=43907 * Oerjan * (+10) bold, link and uncensor 05:18:27 [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 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 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 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 i'd guess infinitely many objects and an order? 06:19:06 myname: Multiplication is needed too 06:19:14 \oren\: How does one define primes for the reals? 06:20:05 maybe you need countably infinitely many objects 06:22:41 Possibly 06:23:11 or you need a smallest object 06:23:21 du hyperreals have primes? 06:24:16 IDK. 06:24:58 Why did I just say "IDK." 06:25:04 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 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 Ugh, Girl Genius is down 08:16:35 -!- mauris has joined. 08:18:00 `` quote 107 # <-- http://www.nytimes.com/2015/10/13/business/media/nudes-are-old-news-at-playboy.html?_r=0 08:18:01 107) reading playboy for the articles actually seems plausible nowadays after all, there's porn all over the internet, why would you /pay/ for it 08:18:18 apparently playboy agree with me, they've decided to remove the porn and just keep the articles 08:18:58 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 completely. from scratch. 08:30:09 (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 but does anyone have any idea how I can embed debug symbols with nasm? 08:32:00 nasm -g -f elf -Fstabs main.asm 08:32:02 doesn't seem to really work 08:33:16 or do I need to declare these functions as global 08:33:18 that might be it 08:33:58 nope, that's not it 08:35:04 It should work; I've had it work. 08:35:13 Although possibly as -Fdwarf. 08:36:16 hm yeah 08:36:19 linker stripped symbols :D 08:36:23 hm 08:36:36 does the usual stack frame thing expect that esp does not change? 08:36:56 it seems like if you do any push then the back trace get's mangled 08:37:22 http://codepad.org/m95R4ri8 08:37:27 those in ?? are actually arguments 08:37:30 not saved eips 08:37:52 Could be. Normally you'd need the annotations, and NASM couldn't really generate those automatically. 08:39:21 my esp changes when I save registers to the stack 08:40:11 but I mean that's the way it should be anyway 08:40:24 push ebp; mov ebp, esp; add esp, SIZEOF(locals); 08:41:03 -!- atehwa_ has joined. 08:41:43 eip = 0x804808a in str_len_loop; saved eip 0x1 08:41:46 that's so wrong 08:42:48 If gdb thinks you've got debugging information, it might ignore ebp, since -fomit-frame-pointer is so common. Who knows. 08:43:36 I don't see any way of manually doing the CFI annotations in NASM, though. 08:44:59 I'd thought gdb looks at the value of ebp 08:45:02 the register ebp 08:45:14 (gdb) x/4x $ebp 08:45:15 0xbffff504:0xbffff5200x080480ac0x080490d40x00000000 08:45:20 because ebp is correct 08:45:29 ...520 is the saved ebp 08:45:36 80480ac is the return address 08:45:46 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 but if it's not looking at ebp at what is it looking? 08:47:41 oh it's looking at ESP 08:47:46 but it assumes that no ebp on the stack is present 08:47:46 ESP + the DWARF CFI ("call frame information") data, which you won't have. 08:48:08 (gdb) x/4x $esp 08:48:09 0xbffff4fc:0x000000010x080490d40xbffff5200x080480ac 08:48:20 it's looking directly at esp and thinks 0x1 is the saved eip 08:48:33 which is wrong because that's an argument that has been pushed to the stack 08:48:52 or a local, or a saved register depending on the exact circumstances 08:49:31 'quit 08:49:33 -!- ais523 has quit. 08:52:39 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 I'll try #gdb :D 08:53:08 b_jonas: It doesn't have debug informations if you don't give it any debug informations. 08:53:12 sure 08:53:24 you should compile the program with debug information, preferably with -Og -ggdb 08:53:38 and libraries with debug information too 08:53:39 You should read the scrollback buffer. 08:53:58 oh, this is the other channel 08:53:59 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 sorry then 08:54:09 And it's not my problem. :) 08:56:56 mroman: By the way, "add esp, SIZEOF(locals)" looks very wrong, unless your SIZEOF is negative. 08:57:57 true. 08:58:17 but that was just to emphasize on that even in gcc generated Code esp changes 08:58:32 Yes, which is why GCC puts in the necessary debugging information. 08:58:32 (but yes, it's doing a sub to allocate and add to clean up) 08:58:47 so I assumed that backtraces work by relying on the ebp value 08:58:52 because ebp usually doesn't change 08:59:07 ebp quite commonly doesn't have anything to do with the stack. 08:59:12 (after the push ebp; mov ebp, esp; epilogue) 08:59:23 GCC enables -fomit-frame-pointer by default on -O2 and higher for x86, IIRC. 08:59:34 fizzie: it enables it with optimizations yes 08:59:37 using ebp as the frame pointer should be quite common on x86 08:59:54 Well: using it, and not using it, should both be relatively common. 09:00:06 well... used to be, because indeed -fomit-frame-pointer has become quite standard. 09:00:21 Can I manipulate registers in gdb? 09:00:22 like uhm 09:00:25 $esp = $ebp 09:00:28 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 mroman: yes you can 09:00:37 -!- shikhin has quit (Read error: Connection reset by peer). 09:00:52 mroman: you may need to put "p " or "set variable " at the start of the gdb command for that 09:01:02 of course it might break the program 09:01:07 http://codepad.org/gqht55jS 09:01:10 damn. 09:01:13 still wrong 09:01:19 bff..520 is the saved ebp on the stack 09:01:21 not a return address 09:01:23 also, don't you mean $rsp and $rbp ? 09:01:30 oh, you're debuggin x86_32 09:01:31 sad 09:01:47 yeh 09:01:49 mroman: I assume it's not assuming a saved ebp, if it's not looking for a frame pointer. 09:01:56 You could try skipping it. 09:01:57 :( 09:02:07 well then I gotta do manual backtraces I guess 09:02:31 unless I can configure gdb somehow to trust my ebp 09:03:36 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 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 You could use GAS and write the .cfi_... directives. 09:04:45 #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 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 then you don't hvae to change everything to gas syntax 09:07:02 fizzie: If i'd have only one level, yes :) 09:07:06 if have more :D 09:07:07 -!- augur has quit (Ping timeout: 244 seconds). 09:08:13 but it seems to work 09:08:26 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 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 well I could try -Fdwarf 09:15:43 same bug :( 09:16:23 -!- VictorCL has joined. 09:17:22 but -Fdwarf seems to include some source information 09:17:26 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 It's not the lack of symbol table (presumably), it's the lack of CFI. 09:23:23 And you can't expect a lowly assembler to generate that kind of thing for you. 09:29:47 :( 09:29:52 but assembler is god :( 09:31:16 -!- mauris has joined. 09:31:22 or 09:31:24 in other words 09:31:30 It's the lack of gdb's trust for ebp 09:31:35 *in ebp 09:37:21 -!- mauris has quit (Ping timeout: 246 seconds). 09:41:53 -!- mauris has joined. 09:42:44 gdb can't even do proper function stepping 09:42:53 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 also some better docs about linux syscalls would be nice 09:57:58 http://man7.org/linux/man-pages/man2/open.2.html <- I mean wtf is this 09:58:18 that's not a syscall documentation, that's a C api documentation 10:01:25 now I gotta grep the linux source code for the necessary values 10:04:08 rdonly apparentely is 0 10:05:06 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 mroman: the constants are defined in /usr/include/bits/fcntl.h usually 10:06:04 why didn't they just properly document the syscall interface somewhere? 10:06:10 with all flags and values etc. 10:06:45 mroman: go and submit patches if you want. 10:07:09 do you guys know how to force a certain order for my man pages? 10:07:21 izabera: by changing the manpath? try man man 10:07:33 yes but it seems random 10:07:39 let me show you 10:07:46 patches to what? 10:07:46 http://arin.ga/jpamzo/raw 10:08:05 mroman: patches to man-pages. see instructions at https://www.kernel.org/doc/man-pages/contributing.html 10:08:14 those man-pages document the C interface 10:08:33 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 (although it would also be neat to have it show the values of the constants for the C interface as well) 10:08:50 mroman: see http://man7.org/linux/man-pages/man2/chmod.2.html for example, which mentions the values of the constants 10:09:42 so you can add them in a similar format to other pages 10:09:43 I guess I can ignore the mode_t if I'm not using O_CREAT 10:10:38 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 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 open should return a fd in eax right? 10:14:34 mroman: hmm wait, let me get my link for that old document that documents the unix abi 10:14:40 is -4 somehow a special fd? 10:14:43 mroman: what os and arch exactly? 10:14:47 mroman: no, -4 is errno=4 10:15:00 which is EINTR 10:15:53 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 the kernel can't put a value in errno, because that's a libc-only construct, and per-thread and stuff 10:16:52 I see 10:16:57 interrupted function call 10:17:01 never heard of that 10:17:06 mroman: can you tell what os and arch you are on? I'll give you links 10:17:38 I mean, what os and arch that particular program was compiled for 10:18:50 -!- mauris_ has joined. 10:18:51 -E2 is hopefully EEXISTS? 10:18:57 *-2 10:19:11 mroman: 2 is ENOENT 10:19:16 wait, let me check that 10:19:30 ENOENT 10:19:31 je 10:19:34 no such file or directory 10:19:36 good 10:19:50 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 plus that file is old 10:20:14 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 including how C types and structures are represented, function call conventions, libc functions and types, and system calls 10:20:57 let me just touch the file 10:21:14 on the CPU? 10:21:17 why would the depend on the CPU? 10:21:31 I mean.. those errnos are define 10:21:34 If I compile a C program 10:21:45 it'd be pretty bad if the errno's werent the same on somebody elses machine 10:21:48 (gdb) info registers 10:21:49 eax 0x77 10:21:53 mroman: no, when I said cpu, I mean the cpu architecture 10:22:02 that looks like a valid fd 10:22:15 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 if the program even starts, the numbers won't change 10:23:17 (well, generally) 10:23:36 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 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 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 mroman: you still haven't told me what os and cpu you are on though 10:27:37 -!- mauris__ has joined. 10:28:17 x86, linux 10:28:18 :) 10:28:29 uname -a 10:28:30 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 oh 10:28:38 I have pae 10:28:39 nice 10:28:56 thanks 10:29:09 mroman: uname might not always help though, it tells about the kernel, not the particular program :-) 10:29:30 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 I'm going to write a CPU simulator in bare bones assembly 10:30:08 (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 Thing I made: (vertical scale is a bit off): http://runciman.hacksoc.org/~taneb/mandelbrot.png 11:17:20 The program that made that ran in 87 minutes on two cores 11:18:08 well my io_read_block seems to read a bunch of 0x00 11:18:11 instead of actual data :( 11:18:29 althouh eax = 3 11:18:33 which means it read three bytes 11:18:41 WHERE ARE MY 3 BYTES :( 11:19:40 wtf 11:21:02 programmin in assembler is so fun 11:22:11 [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 [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 [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44716&oldid=44715 * SuperJedi224 * (+483) 11:29:03 [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44717&oldid=44716 * SuperJedi224 * (+47) /* Instructions */ 11:29:36 on anagol, is there a way to tell when a problem was submitted, for an active problem? 11:29:52 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 Is it possible to do logarithms in dc 13:08:19 -!- `^_^v has joined. 13:22:00 I'd answer, but then the next question would be "how?"... 13:23:04 (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 Help I'm tempted to do my family tree again 13:31:52 -!- mauris has joined. 13:55:07 . o O ( Wouldn't that be a dag? I mean, eventually... ) 13:56:07 Yes 13:56:44 Pretty soon in my ancestry, two of my grandparents were first cousins 14:08:17 -!- gamemanj has joined. 14:20:38 [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 [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 [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 Who wants to see a VERY BIG IMAGE that I rendered but CANNOT SEE because it is TOO DAMN BIG 15:59:19 http://runciman.hacksoc.org/~taneb/mandelbrot.png 16:01:49 -!- mroman has joined. 16:01:55 http://codepad.org/LaK99cVI 16:02:02 sadly [edx+bl] isn't a valid offset 16:03:40 Taneb: cute, feh manages in just under 1GB... so 32 bits per pixel 16:04:45 My chromebook doesn't have enough memory to even try 16:06:56 "display" uses 5GB 16:07:18 Taneb: that's only 20k*10k pixels 16:07:24 Yes 16:07:27 Wow, Firefox froze for a second or two 16:07:36 Took me 4 hours to render with 2 cores 16:07:44 I can view it fine 16:07:50 whta do you want about it? 16:07:56 should I extract a rectangle or something? 16:07:59 I want to show it off 16:08:06 well, it looks pretty 16:08:32 firefox also uses about 1GB. 16:09:15 but it can't really be appreciated without infinite resolution... 16:10:06 Infinite resolution is difficult 16:10:37 in a PNG, probably not possible :) 16:10:50 solution: The LLVM Image Format 16:11:02 no, wait, that's not esoteric 16:11:08 The Brainfuck Image Format 16:12:07 images are represented by a brainfuck program that, given two 64-bit floating point values, outputs the colour of the pixel 16:12:46 not infinite resolution, but unless you want to change "floating point" to "big-decimals"... 16:14:06 64-bit floating point is definitely not infinite resolution 16:14:27 ok, so big decimals it is 16:14:38 now to work out how anyone would ever implement it 16:15:22 but if you want nice manelbrot images and videos, there's some at http://www.madore.org/~david/math/mandelbrot.html 16:15:35 mandelbrot is one case where you actually _would_ want infinite resolution rather than just 64-bit. because zoooooming. 16:18:47 Raytraced films that are sent as Brainfuck programs... 16:19:49 but my str_cat is broken 16:19:50 damn 16:26:19 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 (Opened it in a Chrome tab.) 16:27:09 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 Oh, there it is. It's using "216,608K" of memory, in a process shared by three tabs. 16:28:36 I have no idea how it would count something like graphical resources. 16:29:15 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 (And actively flushing that out, because scrolling back-and-forth doesn't become fast.) 16:30:51 sounds reasonable 16:32:22 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 also why's there so little things about C-- available? 16:54:24 probably because it never really made it outside ghc 17:01:20 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 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 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 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 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 With a "Critisism" section 17:45:24 -!- shikhin has quit (Excess Flood). 17:45:32 -!- shikhin has joined. 17:45:52 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 Phantom_Hoover: I don't think I'm qualified, having made a couple. 17:46:40 well we can cover that up 17:46:43 I only feel qualified to hate derivatives that don't do enough 17:47:02 Derivatives that do something new and unique are cool. 17:47:15 Brainfuck provides a good base to build off of 17:47:42 Thought attempts to make it /more/ minimalistic are good. 17:48:14 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 [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 I'd just purge all BF-derivatives except for brainfuck itself and Ook, with fire 17:50:02 b_jonas: Ook? Seriously? 17:50:24 What about, for example, a derivative that I'm thinking of called "ThueFuck", which is based on strings intead of integers? 18:03:34 [wiki] [[Essays/A Defence of Brainfuck Derivatives]] N http://esolangs.org/w/index.php?oldid=44722 * Hppavilion1 * (+1562) Started rough draft 18:03:55 (I'm playing devil's advocate, for the record) 18:05:12 Ook is not particularly remarkable either actually 18:05:56 zzo38: maybe it's not, but I personally would not want to anger an orang-outan 18:07:44 I am not the one suggesting to purge everything with fire, though. 18:10:22 I vote we go through the wiki and uncensor every occurense of "Brainf*ck" or "Brainf***" 18:10:30 I spelled "occurance" wrong. 18:10:36 I am a moron. 18:10:45 (I probably spelled it wrong again there) 18:11:00 it's hard. occurrence 18:11:10 alternatively, create two new languages, brainf*ck and brainf***, very unlike brainfuck, and make them point to them 18:11:28 (I mean that, I had to check how many "r" there are in that word) 18:12:43 THere we go... 18:12:58 nortti: I already came up with that idea xD 18:13:04 -!- augur_ has quit (Quit: Leaving...). 18:13:11 I'm seriously considering doing that 18:13:41 One should be based on λ-calculus, the other on Graph Rewriting (Kolmogorov Machines possibly) 18:14:20 tag machines are also interesting 18:14:29 -!- Effilry has changed nick to FireFly. 18:14:35 tho there's only so much you can do with them 18:14:43 What are tag machines? 18:15:01 (I think we should require Brainf*ck and Brainf*** to be TC) 18:15:06 *tag system 18:15:15 http://esolangs.org/wiki/Tag_system 18:16:15 Thue-like graph rewriting might work 18:17:40 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 Expression rewriting? 18:18:16 Interesting... 18:18:37 I suggested a language where the AST is a Directed Graph instead of a tree 18:18:57 And Control Flow is only possible by nesting an instruction inside itself 18:19:20 nortti: Is expression rewriting anything like Algbebra? 18:19:28 (Oh right. CAS.) 18:19:31 yup 18:19:39 https://bitbucket.org/purelang/pure-lang/wiki/Rewriting ← I was thinking of this 18:19:40 Computer Algebra System 18:19:50 -!- bb010g has joined. 18:20:31 I /was/ thinking of adding a CAS to be builtin to my language 18:21:06 I'm attempting to make a useful programming language while preserving Esolangity 18:22:13 nortti: The language would have importable syntax features (combinators come to mind) 18:22:43 You could literally do `getsynt combinators / import SK / I = SKK` 18:24:03 Can you think of any special syntaxes I could allow to be imported? 18:24:31 @metar lowi 18:24:31 LOWI 131750Z 07004KT 040V120 8000 FEW007 SCT013 BKN030 11/09 Q1011 NOSIG 18:25:05 hppavilion[1]: how about being able to import some syntax stuff that allows for rpn? 18:25:15 nortti: That might work 18:25:30 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 I'm /finally/ back! 18:40:19 So to do, for example, combinators, you need a special string of something like this syntax: 18:40:35 I = cmb'''S K K''' 18:40:42 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 ah 18:41:48 perhaps... I don't know what syntax to use. 18:41:57 combinator{SKK}? 18:42:04 That works. 18:43:09 Though {} is also used for Dicts AND sets 18:43:35 [] is also used, I'd imagine 18:43:46 how about <> 18:44:22 nortti: That could be confused with if the variable "combinator" is less than "SKK" 18:44:32 hm 18:44:47 [] is used for lists and list subscripting (in a very pythonic way) 18:45:42 I can't think of anything that combinator{} would mean... 18:45:46 Why not make it for strings? 18:46:13 Well, special strings 18:46:23 That significantly simplifies parsing 18:46:34 The syntaxes you could get are: 18:47:21 `getsynt thue, combinators, xml, sexpr, yaml` at LEAST 18:47:22 ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: getsynt: not found 18:47:27 Oh right. Hackbot. 18:48:19 (A *good* IDE will syntax highlight special string) 18:48:26 s/string/strings/ 18:49:48 So you can literally include XML directly into the language. That'd be used in GUI 18:50:37 Oh. Can't forget that there'll be some formal grammar libraries 18:55:24 [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44723&oldid=44720 * SuperJedi224 * (+236) 18:57:35 What's the name of that linguistics-oriented programming language? 18:58:02 @google linguistics-oriented programming language 18:58:04 http://boole.stanford.edu/pub/lingol.html 18:58:04 Title: A Linguistics Oriented Programming Language 18:58:49 Tht'a not it 18:58:55 -!- FreeFull has joined. 18:59:04 I've been googling for the last 10-15 minutes trying to find it 18:59:08 *that's 19:05:02 you lack precision on your deacription 19:06:18 myname: I was discussing a linguistics-oriented programming language. Someone sent a link. It's called "Grammar " 19:06:44 I forgot to bookmark the page 19:07:12 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 [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44724&oldid=44723 * SuperJedi224 * (+36) 19:34:32 -!- AnotherTest has joined. 19:37:18 [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 [wiki] [[BotEngine]] http://esolangs.org/w/index.php?diff=44726&oldid=44725 * SuperJedi224 * (+373) 19:44:36 [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 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 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 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 I'm trying to decide something for Dijaskra 20:21:49 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 the latter seems more esoteric 20:22:31 although the former is less consistent, which might be esoteric 20:22:39 coppro: It isn't actually meant to be esoteric xD 20:22:43 Well, not completely 20:22:50 It's really just stacky to be easier to implement 20:24:19 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 *seems to look 20:25:52 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 [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 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 [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 I thought of a new (Eso)?lang Design Game. 23:09:21 (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 boily: You active right now? 23:12:32 Does not appear to be so 23:16:19 bzzzoily 23:17:07 Hi oerjan 23:22:36 Um. 23:23:16 yo 23:24:20 So I thought up a new possible kind of "game" for designing esolangs 23:24:36 [wiki] [[Special:Log/newusers]] create * Elendiastarman * New user account 23:25:00 Yay! New friends! 23:25:17 <\oren\> is METAFONT turing complete? 23:25:26 No clue what that even is. 23:25:33 The game is basically this: Pre-designed EBNF. 23:25:40 no:elendig = en:awful hth 23:27:05 A machine/program is used to generate a random EBNF from a set of randomly-generated/selected regex tokens 23:28:26 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 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 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 hppavilion[1]: are you familiar with the concept of a context-free language/grammar? 23:31:58 tswett: A bit. 23:32:13 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 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 And each node in the parse tree simply corresponds to a "phrase", so to speak, within that word. 23:34:07 So one approach is to just add syntax rules which *aren't* context-free. 23:34:24 Yes, I believe I understood that (but I'm not sure xD) 23:34:30 (the first part, not the second) 23:34:36 That is one approach, I suppose 23:35:11 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 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 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 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 Ah, right. Stuff you need a TM for. 23:36:42 Yup. 23:36:54 Or, at least, something more powerful than a nondeterministic push-down automaton. 23:37:07 Never heard of the "Parentheses langauge" 23:37:28 It's the language whose words are the strings composed of "correctly matched parentheses". 23:37:44 Here's an unambiguous grammar for it: 23:37:45 Ah, right 23:37:57 ::= "(" ")" | epsilon 23:38:21 Yup. 23:38:23 So here's my thought, then. 23:38:25 Wait, epsilon? 23:38:33 Epsilon means the empty string. 23:38:36 Oh right. Empty string 23:38:45 (Dammit! You beat me! :P) 23:39:01 Consider how you might make the parentheses language such that it has a "parse digraph" instead of a parse tree. 23:39:34 As it currently is, every pair of parentheses has at most one pair of parentheses which is the "next layer out". 23:39:52 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 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 I think there's nothing inconsistent about your idea at all. 23:41:09 I just thought of an idea that I really like: tie points! 23:41:12 Let me explain. 23:41:26 a^n b^n c^n, the canonical non-context-free language. :) 23:41:52 hppavellon[1], hellørjan. I think I'm active. 23:41:53 OK 23:41:58 @massages-loud 23:41:58 oerjan said 1d 8h 1m 31s ago: you may need to mapole around a bit. see the logs. 23:42:18 Here's an otherwise-normal expression with "tie points" inserted: (<1> a + b) * (c + d) * (<1> e + f) 23:42:37 The <1>s are the tie points. 23:42:55 And tie points are/do...? 23:43:11 Actually, let me give you a different one. Just a string, not really an expression. 23:43:15 a<1>bc<1>d 23:43:23 * boily lightly mapoles izabera 23:43:43 The tie points denote, essentially, that parsing can freely jump from one point to the other. 23:43:45 In other words... 23:43:53 Ah! 23:43:59 "a" is followed immediately by "b", but "a" is *also* followed immediately by "d". 23:44:15 "d" is preceded immediately by "c", but it's also preceded immediately by "a". 23:44:17 huh 23:44:17 And so forth. 23:44:39 That might help towards the Multiparentheses Language 23:44:42 Now, how you'd parse this is a difficult question... 23:45:29 tswett: Well, you'd probably... no... maybe you could? nah... hm... 23:45:33 '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 So here's an expression: (a + [b + c) + d] 23:46:01 Tangle brackets! Yay! 23:46:05 Yup. 23:46:08 Or even... 23:46:12 a) + (b 23:46:12 (Or does the "(" match the "]"?) 23:46:15 Whoa 23:46:33 So the expression within parentheses there is... uh... um... 23:46:43 Or, here's yet another idea. 23:46:48 Heh 23:47:02 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 (1, 2] ⊂ [1, 3[ 23:47:33 OK 23:47:40 I need paper, probably 23:47:41 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 Or is there a good graph drawing tool online? 23:47:59 hppavilion[1]: draw.io isn't have bad. 23:48:14 s/have/half/ 23:48:53 Well. So. The multiparentheses language. 23:49:43 -!- VictorCL has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…). 23:49:49 Should I make something LISPy? 23:49:58 So that we can see it actually do something? 23:50:09 (I think draw.io is an offshoot of "old" (not that old) JGraph, via their JavaScript reimagining called mxGraph.) 23:50:30 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 MAPOLES-4-+ITY! 23:52:55 (Read: "Mapoles For Equality!") 23:53:21 hppavilion[1]: you're not using UTF-7, are you? 23:53:32 hppavilion[1]: tell me, what's this: -+ 23:53:46 Does UTF-7 even work that way? I don't remember. 23:53:48 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 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 Ah. 23:54:22 (Someone careless, like a for president poster) 23:54:39 So what do I want the program I'm making to do? 23:54:56 It should include loops, as that's the only way I can really demonstrate how this program works 23:55:06 oerjan: that seems perfectly context-free to me. 23:56:34 tswett: In (a(b{c{d}e}f)%1 g)%2 the innermost {} pairs with the outermost (). 23:56:43 tswett: nested like this ( ( { { } } ) % ) % 23:58:38 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 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 truth machine hth