←2015-06-03 2015-06-04 2015-06-05→ ↑2015 ↑all
00:00:15 <shachaf> oerjan: on that day you'll be poutine your place hth
00:00:24 <shachaf> it's a lemma named after lambek
00:00:36 <nys> oh that explains it
00:01:03 <shachaf> it says that an initial f-algebra is an isomorphism
00:01:09 <shachaf> http://www.cs.indiana.edu/cmcs/categories.pdf
00:01:28 <shachaf> page 44
00:02:21 <shachaf> Except I think they mean g : a -> Fa?
00:05:12 <oerjan> alas my experience with vietnamese cuisine consists of 2 visits to a place in trondheim that were both disappointments. i don't think they were very good cooks.
00:06:06 <nys> wait how do we know f.g = id_A on p46
00:06:23 <oerjan> as in, my impression of the soup was "dishwashing water"
00:07:34 <shachaf> this is a good proof
00:07:45 <boily> oerjan: :(
00:09:51 <oerjan> and the pork meat was sour. although maybe that's me, i keep having trouble with the ham slices i buy from the grocery shop.
00:10:53 <oerjan> (now i only buy it because they keep sending me coupons for it)
00:13:01 <oerjan> nys: diagram chasing hth
00:13:29 * oerjan hasn't looked at the proof, but this being CT that has to be the answer
00:13:34 <nys> :s
00:13:51 <nys> it says "by initiality" but i can't guess what that means here
00:14:31 <shachaf> oerjan: i don't think that's what diagram chasing is hth
00:14:35 <oerjan> an initial object is one that has exactly one morphism from it to everything
00:14:41 <shachaf> "initiality" probably means uniqueness
00:14:49 <shachaf> Or existence.
00:15:21 <nys> only one way to go from F a to a and back??
00:15:27 <shachaf> But probably it means "this thing is equal to that thing because there's only one arrow between those things"
00:15:32 <oerjan> shachaf: ok, then is has be general abstract nonsense hth
00:15:35 <oerjan> *it
00:16:18 <oerjan> *+to
00:16:41 <oerjan> why does my brain punish my jokes by making me forget grammar
00:16:57 <shachaf> this abstract nonsense is p. specific
00:25:37 -!- Lyka|Away has quit (Ping timeout: 256 seconds).
00:28:26 -!- MDude has joined.
00:39:41 -!- Lyka|Away has joined.
00:39:41 -!- Lyka|Away has quit (Changing host).
00:39:41 -!- Lyka|Away has joined.
00:42:51 * Sgeo_ comes to the conclusion that "good translations" of Evillious Chronicles are a myth
00:47:29 <HackEgo> [wiki] [[User talk:Esowiki201529A]] http://esolangs.org/w/index.php?diff=43141&oldid=43129 * Esowiki201529A * (+8) /* Quiney */
00:50:02 -!- Lyka|Away has changed nick to Lyka.
00:58:51 -!- adu has quit (Quit: adu).
01:17:57 -!- tromp__ has joined.
01:20:19 -!- heroux_ has joined.
01:20:48 -!- tromp_ has quit (Ping timeout: 250 seconds).
01:20:48 -!- heroux has quit (Ping timeout: 250 seconds).
01:20:53 -!- heroux_ has changed nick to heroux.
01:20:57 -!- heroux has quit (Changing host).
01:20:57 -!- heroux has joined.
01:30:13 -!- nys has quit (Quit: quit).
01:32:20 -!- adu has joined.
01:44:05 -!- boily has quit (Quit: ABIOLOGICAL CHICKEN).
02:24:46 <tswett> "What's yellow and equivalent to the axiom of choice"?
02:24:57 <tswett> Y'guys, y'guys, I think I know the answer to this one.
02:25:15 <Lyka> free brillo?
02:25:48 <Lyka> free willy is an orca
02:26:05 <tswett> Zorn's lemon.
02:27:20 <shachaf> Oh, I thought it would be the Bananach Tarski theorem.
02:28:04 <tswett> Does that entail the axiom of choice in ZF?
02:28:16 <shachaf> I don't know.
02:28:31 <oerjan> i doubt it.
02:28:35 -!- idris-bot has quit (Quit: Terminated).
02:28:42 <oerjan> it only applies to one set, after all.
02:30:52 -!- idris-bot has joined.
02:31:27 <shachaf> Fair enough.
02:31:51 <shachaf> But a lemon isn't equivalent to the axiom of choice either.
02:33:32 <oerjan> it could be a class lemon
02:34:15 -!- adu has quit (Quit: adu).
02:34:23 <shachaf> when zorn gives you lemmas, make lemmanade
02:35:31 <tswett> I guess it's hard to imagine how it would entail the axiom of choice.
02:36:51 <tswett> "How do we select an element from each of the elements of this collection of nonempty collections?" "Oh, that's easy. Just use this way of disassembling a 3-ball and assembling it into two 3-balls of the original size."
02:37:49 <Jafet> `quote lemma
02:37:50 <HackEgo> No output.
02:39:06 <oerjan> tswett: i suspect that having the axiom of choice for sets of cardinality less than a given one doesn't imply it in general.
02:39:27 <tswett> That definitely sounds like the sort of thing that would be true.
02:40:00 <tswett> Ooh, I just thought of a wonderful axiom.
02:40:10 -!- GeekDude has changed nick to Scj1000.
02:40:20 <tswett> It contradicts ZF, but maybe ZF could reasonably be weakened to accommodate it.
02:40:30 <oerjan> fancy
02:40:55 <tswett> Axiom: if S is an infinite set of sets, then there does not exist any function f with domain S which maps each element T of S onto an element of T.
02:41:07 <tswett> Which is to say, all infinite cartesian products are empty.
02:42:11 -!- Scj1000 has changed nick to GeoDude.
02:42:50 <oerjan> sounds tricky, too many obvious counterexamples e.g. non-zero ordinals...
02:43:09 <oerjan> (von neumann ordinals)
02:43:20 <oerjan> map 1,2,3, ... to 0
02:43:26 <oerjan> (aka the empty set)
02:44:04 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
02:44:59 <oerjan> wait that "onto" should be "to", right?
02:45:18 <oerjan> "onto" has additional implications
02:46:58 <tswett> Yeah.
02:47:18 <tswett> Although I don't think the additional implications would be meaningful the way I used the word.
02:50:05 <oerjan> mhm
02:53:11 <tswett> Okay, here's a totally unrelated idea.
02:53:59 <tswett> Weaken the axiom of power set so that it merely asserts that given a set, there's another set containing all its *finite* subsets.
02:55:37 <oerjan> hm are we sure that cannot be proved directly
02:55:54 <tswett> You can still define real numbers, I think. As long as you can get cartesian products of two infinite sets.
02:56:16 <tswett> But now real numbers may form a proper class.
02:56:32 <oerjan> OKAY
02:56:36 <tswett> Whelp, I'd better go to bed.
02:56:48 <tswett> God b'ye.
02:56:53 <oerjan> yes, please sleep before you unravel logic and the universe
02:57:16 -!- Herbalist has joined.
03:41:38 -!- Herbalist has quit (Quit: WeeChat 1.2).
03:41:50 -!- GeoDude has quit (Ping timeout: 255 seconds).
03:49:58 -!- password2 has joined.
04:30:52 -!- hilquias has quit (Read error: No route to host).
04:37:38 -!- hilquias has joined.
04:49:54 <oren> I just realized something blindingl obvious.
04:50:38 <oren> if you want unix type security on windows, jsut create a new user with no admin privileges, and log in as that user
04:51:51 <oren> if everyone had done that in the XP days, most of the viruses etc would never had worked
04:52:05 <Lyka> you need xp pro to do that
04:52:16 <oren> oh rigt
04:53:34 <constant> Lyka: XP home had no non-admin accts?
04:53:55 <oren> it probabl had no gui for doing it maybe
04:53:56 <Lyka> not real ones
04:54:04 <Lyka> yes @ oren
04:54:11 <constant> o
04:54:17 <Lyka> i meen, correct
04:54:31 -!- constant has changed nick to variable.
05:06:46 -!- Lyka has changed nick to Lyka|Away.
05:43:59 -!- password2 has quit (Quit: Leaving).
06:18:38 -!- MDude has changed nick to MDream.
06:30:23 -!- J_A_Work has joined.
06:36:28 -!- SoundGoddess has joined.
06:36:57 -!- SoundGoddess has left ("Leaving").
06:44:40 <mroman_> variable: XP Home didn't even have the advanced security settings.
06:44:59 <mroman_> Only a subset of the ACL settings XP Professional was capable of.
06:46:40 <mroman_> (Mainly in explorer the security tab on XP home was deactivated and stuff like that)
06:47:34 <mroman_> (It might very well be, that XP Home under the hood would actually be capable of handling the ACL. There are some third party tools around that claim to be able to set those
06:48:08 <mroman_> or even re-enable the security tab. But of course, Microsoft did never recommend it, never supported it and third party tools messing with windows internals... meh)
06:48:32 -!- hilquias has quit (Ping timeout: 264 seconds).
06:48:34 <Jafet> You would also have gotten unix type end-user experience with an unprivileged user account in windows xp
06:48:53 <mroman_> I think you can't join a AD-domain with XP Home.
06:49:05 <mroman_> not the official way at least :D
06:50:15 <mroman_> and of course
06:50:21 <mroman_> XP Home has a guest account that is enabled per default
06:50:27 <mroman_> because that's a good thing to have.
06:50:38 <mroman_> Ah. Good old XP times...
06:50:47 <mroman_> fungot: Are you still running on Windows XP?
06:50:47 <fungot> mroman_: am i?
06:51:01 <mroman_> fungot: That's what I was asking...
06:51:01 <fungot> mroman_: we could let laurie" mahonlpbworld.com on 01/ 10 to 4, then that is not an option. huble, amanda subject to the message that do not have the option of " truing up.
06:51:44 <MDream> I guess fungot doesn't have access to environmental variables.
06:51:44 <fungot> MDream: our will group 408-501-7853 p 408-501-7861 f michelle montague-bruno director of the week of the handle came off the " an event of any technical difficulty, to provide you a low. group about adding the demand contracts that we
06:52:12 <MDream> That was more garbled than usual.
06:53:31 <oerjan> fungot is playing corrupt
06:53:31 <fungot> oerjan: for the next and employees. or, you can efficiently. cadogan
06:57:06 -!- J_A_Work has quit (Quit: J_A_Work).
06:57:29 -!- J_A_Work has joined.
07:30:01 <oren> I am working on a spec for a language defined on top of data structures. Not just lists, as in lisp. The base language must support strings, lists of mixed types, and dictionaries from strings to mixed types.
07:30:33 <oren> So, JSON and YAML work, for example.
07:30:51 <oren> As does python
07:32:45 <oren> And PERL Data::Dumper format of course
07:36:00 <oren> So yeah, it has no fixed syntax, it is amorphous.
07:40:28 <b_jonas> ais523: ping
07:41:21 -!- oerjan has quit (Quit: N.t.).
07:45:02 <oren> I haven't got a name for it yet.
07:46:26 <oren> I'll make an interpreter sometime around whenevuary
07:48:26 <oren> Maybe I should literally call the language 'insert name here'
07:50:20 <oren> So a program is a block. A block is a mixed list of strings, dictionaries and lists, where the first item must not be a string.
07:51:27 <oren> The items in a block, are strings = comments, dictionaries = class/object thingies, and lists = statements
07:52:33 <oren> a statement begins always with a string.
07:56:53 <oren> Certain reserved strings are used for control flow, otherwise the string is a variable name. (Because of this variable names can be as long as you want and contain any character.)
07:59:47 <oren> Actually, never mind, I can do without.
08:00:23 <oren> No, wait that wouldn't work
08:11:39 <oren> example statement in JSON syntax: ['if',['x','=',3],[['stdout','print',"It's three!\n"]]]
08:12:53 <b_jonas> oren: ok, so how exactly would this differ from lisps besides not always having the function name at the first place of a list?
08:14:08 <oren> It would differ in that classes are dictionaries, you have mutable variables, and it's imperative.
08:14:35 <b_jonas> oren: lisps have mutable variables too
08:14:43 <b_jonas> you can use them imperatively
08:18:25 <oren> Also, within a block, comments are just strings, e.g. [['stdout','print',"Hello world\n"],"This is a comment"] Hence, the code can be translated from one format to another, reformatted, turned into BSON, etc, and the comments retain their place.
08:18:53 <b_jonas> so? you could add such comments to a lisp program too
08:19:16 <b_jonas> people use such strings embedded in code as doc-strings in some languages -- I'm not sure if it happens in any lisp yet
08:21:10 <oren> I suppose it is a lisp dialect. But lisp dialects afaik are still generally defined with the program being a string of characters, rather than abstractly upon a data structure wihout reference to its representation
08:22:14 <oren> I might actaually write the implementation in scheme
08:22:25 <b_jonas> oren: the definition is _written_ that way, but at least starting from r5rs there's an eval functino that takes an abstract representation, and the rest of the syntax is designed to make that work
08:23:22 <b_jonas> that is, all the syntax the language has can be used inside a quote, and it will get you data that represents all the useful information of the program source, and you can eval it
08:23:49 <b_jonas> (there might be caveats about r7rs modules, I don't follow, but this is how r5rs works)
08:25:41 <oren> I'm actually modeling much of the features off of javascript.
08:25:41 -!- Wright has quit (Read error: Connection reset by peer).
08:25:47 -!- Wright has joined.
08:30:40 <oren> Hopefully I can also define a 'presentation form' that includes HTML markup that makes the code pretty
08:32:06 -!- Patashu has joined.
08:38:08 -!- zadock has joined.
08:58:15 -!- Tritonio has quit (Ping timeout: 276 seconds).
08:58:44 -!- Tritonio has joined.
10:16:48 -!- Phantom_Hoover has joined.
10:32:57 -!- boily has joined.
10:42:49 -!- lleu has quit (Ping timeout: 272 seconds).
10:50:54 -!- lleu has joined.
10:57:19 -!- lleu has quit (Ping timeout: 250 seconds).
11:00:31 -!- lleu has joined.
11:01:52 <FireFly> b_jonas: clojure uses docstrings like that too, at least
11:19:24 -!- adu has joined.
11:26:51 -!- boily has quit (Quit: APOPLEPTIC CHICKEN).
11:44:06 -!- toxolotl1 has quit (Quit: Leaving.).
11:56:34 -!- zadock has quit (Quit: Leaving).
11:57:49 -!- ais523 has joined.
11:59:36 -!- Tritonio_ has joined.
12:03:06 -!- Tritonio has quit (Ping timeout: 272 seconds).
12:03:23 -!- Tritonio_ has changed nick to Tritonio.
12:03:27 <ais523> ush
12:03:29 <ais523> *ugh
12:03:33 <ais523> wiki admins, what should we do about http://esolangs.org/w/index.php?title=BFQ&diff=43135&oldid=0 ?
12:04:22 <ais523> I'm not sure if it's original or has been copied from elsewhere, and a page about a single program, if it's warranted at all, probably shouldn't just be its source code
12:04:33 <ais523> and I have no idea how easy it is to search for fragments of BF code online
12:06:05 -!- xcourier has joined.
12:08:44 <b_jonas> ais523: oh hi, I was trying to find you
12:08:53 <ais523> hi b_jonas
12:09:27 <ais523> in general, you can assume that if I'm not on IRC, contacting me via any other Internet-based means (apart from /possibly/ trying to identify and contact other people who know me in real life) won't work either
12:09:47 <b_jonas> yeah I didn't try any of those
12:10:02 <b_jonas> just passively waiting if you're on irc and checking
12:10:30 <b_jonas> anyway, I was thinking about ayacc, and specifically C++ support for it, and now I think it's actually *much* more difficult than I thought
12:11:20 <b_jonas> there's multiple things you can trip on, some of them not trivial to fix, and some of them not even easy to even work around in such a way that you at least get compile errors before segfaults
12:12:14 <ais523> (that said, sending me an email will at least see I see the message next time I get online)
12:12:34 <b_jonas> if you're still interested about this stuff, I can try to tell the details, but for some of the details I have to do more reading up still because I realized I actually don't know some rules of C++ as well as I thought I did
12:12:43 <b_jonas> and some of those C++ stuff is even relevant here
12:12:54 <ais523> I am interested; I know I don't know the rules of C++ well enough to really get something like this working
12:13:58 <b_jonas> yes, that's the problem, I don't know them enough yet
12:14:19 <b_jonas> and the worst part is that the "rules of C++" aren't enough because there's lots of non-conformant compiers
12:14:38 <b_jonas> I'll try to learn more because I think it's relevant to me even without ayacc
12:14:50 <ais523> I haven't worked on ayacc for a while
12:14:51 <ais523> been busy at work
12:15:02 <b_jonas> I noticed, the snapshot didn't change
12:15:03 -!- xcourier has left ("Leaving").
12:15:46 <ais523> knowing that there's a market at least gets me thinking about it again
12:15:59 <ais523> maybe I'll abandon the asm backend because it's clearly a ridiculous thing to do
12:16:02 <ais523> but it was fun to work on
12:16:05 <b_jonas> hehe
12:16:51 <b_jonas> I didn't say I'm really a market. I'm not planning on using ayacc in production at all, though I might try it out just to convince me it works better than ordinary yacc or to find bugs or something.
12:17:42 <ais523> it's definitely better at finding bugs in yacc input than actual yacc is
12:17:47 <ais523> or, well, not finding them
12:17:48 <ais523> but explaining them
12:18:06 <b_jonas> yep
12:18:21 <b_jonas> oh, there was something else I wanted to ask about, but later
12:18:31 <b_jonas> now I'll tell some of what I think about the C++ support
12:18:39 <b_jonas> but some of this may be inaccurate, I need more time to think
12:18:48 <b_jonas> and I definitely need more feedback, so I'm going to ask about ayacc
12:19:52 <ais523> go on
12:20:12 <ais523> !bfjoust preparation http://nethack4.org/esolangs/preparation.bfjoust
12:20:16 <EgoBot> ​Score for ais523_preparation: 51.2
12:20:22 <ais523> (it got deleted from the hill somehow, presumably me trying to get a different program to #1)
12:20:41 <ais523> #2, neat
12:21:18 <ais523> I've been working on an improvement to margins, not finished yet though
12:21:54 <ais523> admittedly it does rather move away from the original idea of the program a little, given that it can actively win (i.e. doesn't require opponent suicide) on tape lengths longer than 12 now (although not all the way up to 30)
12:22:23 <mroman_> Is soemone reinventing Lisp with square brackets and commas instead of the smooth parentheses and no commas?
12:25:36 -!- adu has quit (Quit: adu).
12:28:08 <b_jonas> ais523: so anyway, you said that ayacc does no dynamic allocation, and allocates all the variables on the stack, which is a great start, but there's still some things that can trip you even if you do that, and some of them are hard to avoid and obvious to try to do
12:28:38 <b_jonas> ais523: the particular example I'm worried about the most, though not the only thing, is putting the types the user defines into a union
12:28:56 <ais523> b_jonas: right, so I'm hoping to be able to optimize out the union
12:29:05 <ais523> atm I don't but that's something I want to do in the future
12:29:14 <ais523> the problem is, ayacc is internally strongly typed, but the user program might not be
12:29:24 <b_jonas> the problem is that using a union is actually something you may want to do, and in fact if the yacc rules don't declare the types but access it like $1.foo then you can't even avoid it
12:29:28 <b_jonas> exactly
12:29:44 <b_jonas> anyway, I'm not saying that using unions is always a bad thing, but you have to use them very carefully,
12:29:58 -!- MoALTz has joined.
12:30:13 <b_jonas> because they're one of those few things that will work correctly with C, but can do the wrong thing silently without compile time errors if C++ types are involved as (recursive) members of the union
12:30:40 <b_jonas> unions are kind of similar to other things you aren't doing, like putting the data in a malloc'ed buffer
12:31:17 <b_jonas> and the tricky part is that even if the yacc interface wouldn't require them, you may still want to use unions
12:31:34 <b_jonas> the problem I have is that I don't understand how unions work in C++
12:31:38 <ais523> actually ayacc currently has another problem that's related to this, which is a known bug
12:31:58 <b_jonas> I thought I did understand at least partly, but it turns out my understanding was totally wrong
12:32:00 <ais523> which is that if you don't assign to $$ it just ends up with uninitialized data
12:32:03 <b_jonas> so now I have to read up on them more
12:32:13 <ais523> flex's solution to this is to unconditionally initialize $$ with $1, which might be the wrong type or might not exist
12:32:27 <ais523> but implements the implicit "$$ = $1"
12:32:27 <b_jonas> yes, there are other things that can trip you up, I might mention them later
12:32:33 <ais523> err, bison, not flex
12:32:50 <ais523> (ayacc implements the implicit "$$ = $1" as sugar, it converts it to an explicit "$$ = $1" early in the process)
12:33:31 -!- Patashu has quit (Ping timeout: 264 seconds).
12:33:45 <b_jonas> so let me ask some things. (1) does the yacc compatibility actually require you to expose a union to brace rules?
12:34:10 <ais523> "brace rules"?
12:34:21 <b_jonas> code between braces in the yacc grammar
12:34:29 <ais523> it depends on how that code is written
12:34:46 <ais523> if you give no type information, it exposes YYSTYPE to the code
12:35:05 <ais523> however, yacc doesn't actually require YYSTYPE to be a union; it normally is, and it is if you tell yacc to define it itself using %union
12:35:11 <ais523> but if you declare it manually it could be something else
12:35:18 <b_jonas> hmm
12:35:38 <ais523> if that code specifically mentions a union field, $<tag>1 (or $1 with <tag> in the matching declaration), ayacc /currently/ implements it as a union field but I want to change that
12:36:25 <b_jonas> but if you define it as a %union, and some symbols are declared strongly typed and some as weakly typed, then isn't ayacc output still required to access the members of the union explicitly?
12:36:52 <ais523> yes, it is
12:37:07 <b_jonas> (2) do you have specific plans or requirements on what compilers you're planning to support or not support for compiling the output of ayacc, especially with regards to pre-C++11 compilers in C++ mode?
12:37:12 <ais523> that said, I think the correct solution to this is to tell people it's a bad idea in the documentation
12:37:24 <ais523> I'm hoping for the output code to be as portable as possible
12:37:43 <ais523> we could potentially go the C-INTERCAL route where you specify the standards version when specifying the language
12:38:56 <ais523> or we could try to write a polyglot of every standards version
12:40:56 <b_jonas> The version of what language? C/C++ or yacc?
12:41:21 <ais523> C or C++
12:42:51 <b_jonas> I think that will probably not be necessary, or possibly necessary only for some very old C++ compilers, but I'm not sure, I'll still have to learn the union rules and figure out all this stuff.
12:43:00 -!- ethiraric has joined.
12:43:09 <ais523> b_jonas: well, I first learned pre-standard C++
12:43:20 <b_jonas> Sure, everyone of our age did.
12:43:26 <ais523> this still shows in some cases, e.g. I have a tendency to write my own exception classes
12:45:17 <b_jonas> Do you have any plans about how the non-C++ C output will handle destructors of symbol data?
12:46:52 <ais523> b_jonas: let them go out of scope on the stack, tell people not to put dynamically allocated stuff there
12:46:59 <ais523> or, if they do, be willing to leak it
12:47:10 <ais523> most of the yacc applications I can think of offhand would be fine like that
12:47:23 -!- SopaXT has joined.
12:47:24 <b_jonas> ais523: but... no I don't think so
12:47:35 <ais523> (apparently the one of the D compilers got a huge speed increase by effectively using a user-space sbrk rather than malloc as its allocator, and never freeing anything)
12:48:08 <b_jonas> sure, that's called garbage collection, many people believe it can be faster than freeing anything explicitly
12:48:17 <b_jonas> it might or might not work depending on what you do and how you do it
12:48:24 <b_jonas> but really, about ayacc,
12:48:28 <b_jonas> look
12:48:41 <ais523> b_jonas: no, garbage collection normally at least attempts to free things when memory is exhausted
12:49:15 <b_jonas> what happens if the grammar fails to match? will you leak resources in that case, or will you correctly exit all the functions?
12:50:01 <ais523> b_jonas: oh, the leak can /only/ happen on match failure
12:50:02 <b_jonas> if you can correctly unwind everything when the grammar doesn't match, then it's probably not hard to correctly unwind in any reasonable case, because you just need to inject a token that causes the grammar to not match,
12:50:21 <ais523> if the grammar does match then all the objects get unwound by the grammar rules themselves
12:50:22 <b_jonas> (unless of course the grammar is already in a state that it'll definitely match rsn)
12:50:33 <b_jonas> ais523: hmm
12:50:47 <b_jonas> what happens now if the grammar fails?
12:50:50 <ais523> this implies that you can get working unwinding by adding an unwind alternative to every single rule
12:51:05 <ais523> right now, if the grammar fails I throw an exception (or longjmp in C) and just cut out the broken bit of the stack like that
12:51:09 <b_jonas> but that would complicate the generated code immensely?
12:51:16 <ais523> yes, and slow it down too
12:51:18 <b_jonas> hmm
12:51:21 <ais523> this is why exceptions are so useful in this case
12:51:32 <b_jonas> sure
12:51:38 <b_jonas> but still
12:52:09 <b_jonas> do you ever need to _copy_ a symbol data value, as opposed to move it, even if it's sometimes currently implemented as copying because that's easy in C?
12:52:23 <ais523> no, I don't
12:52:32 <ais523> yacc actually has linear typing
12:52:34 <b_jonas> that at least simplifies things
12:52:45 <b_jonas> it wouldn't be a big problem even if you had to copy them, but it makes things simpler
12:52:53 <ais523> which is why match failures confuse things because you have all these linear values and no way to delete them
12:53:05 <ais523> b_jonas: one thing I do need to do, though, is return them from functions and pass them to other functions
12:53:23 <b_jonas> in what ways can the moving happen, other than returning a single data value from a function as the return value?
12:53:24 <ais523> that can be done entirely with moves, and I'm hoping it can be done with RVO too but I'm not sure how
12:53:35 <ais523> sometimes I need to return two values from the same function
12:53:46 <b_jonas> returning a value from a function is actualyl the _easiest_ case
12:53:48 <ais523> although in this case, one of them is always a POD integer, so we can return it via pointer/reference if necessary
12:53:49 -!- oren has quit (Ping timeout: 252 seconds).
12:53:57 <b_jonas> the best case, the one I'm hoping for
12:54:11 <b_jonas> returning two values is still fine
12:54:17 <ais523> b_jonas: basically what we do is, we return the value from a function, then we pass it through a chain of function arguments until it's consumed
12:54:45 <b_jonas> as long as it's like actually a product you're returning, not a discriminated union where the symbol data value is sometimes present and sometimes not
12:55:12 <b_jonas> what do you mean by "chain of function arguments"?
12:55:28 <b_jonas> do you mean you pass a pointer to the value to functions you call?
12:55:39 -!- oren has joined.
12:56:21 <ais523> b_jonas: I mean I pass it to one function as an argument, that function passes it to another function, and so on
12:56:38 <ais523> b_jonas: oh yes, I am returning discriminated unions by hand :-(
12:56:51 <ais523> that could be a little awkward
12:56:56 <b_jonas> Oh by the way, is there a testsuite that exercises most of ayacc's functions?
12:57:11 <ais523> not really, I've mostly just been using random .y files plus a few manually written ones
12:57:15 <ais523> it needs a proper testsuite really
12:57:39 <b_jonas> ais523: none of that them is _really_ a problem, I'm confident averything like that can be solved, I'd just like to know what you're doing before I can even think about this.
12:57:52 <ais523> I'm going offline for about 10 minutes, I'll be back soon
12:57:57 -!- ais523 has quit (Quit: bbiab).
13:00:37 -!- J_A_Work has quit (Remote host closed the connection).
13:02:17 <mroman_> Is ayacc a product of ais523?
13:06:16 <b_jonas> mroman_: yes
13:06:32 <b_jonas> mroman_: http://nethack4.org/media/alex/ayacc/ayacc.pl
13:07:18 -!- ais523 has joined.
13:07:24 <ais523> b_jonas: back
13:07:30 <ais523> have you looked at ayacc's C output?
13:07:55 <b_jonas> ais523: no, not yet
13:08:19 <b_jonas> I'm going to look at it, though I'm a bit worried it can depend so much on the input that I might miss some cases that only come up if I feed it Bad Practice input
13:08:23 <ais523> that should give you a good idea of how it works
13:08:25 <b_jonas> like union and untyped stuff
13:08:32 <b_jonas> I will definitely have to look at it, yes
13:08:33 <ais523> especially if you compare it to the -v output
13:08:39 <b_jonas> right
13:08:42 <ais523> atm it doesn't do many Good Practice-dependent optimizations
13:08:56 <b_jonas> I see
13:10:30 -!- adu has joined.
13:11:49 -!- nortti has changed nick to lirael.
13:12:10 -!- lirael has changed nick to nortti.
13:13:07 -!- nortti has changed nick to snortti.
13:13:12 -!- snortti has changed nick to nortti.
13:26:35 <ais523> wanted to get it working before doing more optimizations
13:26:45 <ais523> (there are quite a lot already but they're to the state machine rather than the actual code)
13:28:15 <b_jonas> sure
13:30:04 -!- impomatic_ has joined.
13:30:43 <ais523> b_jonas: I'm planning to go home soon, is there anything more you want to ask before I go?
13:32:32 -!- `^_^v has joined.
13:34:10 -!- callforjudgement has joined.
13:34:25 <callforjudgement> did I miss anything?
13:34:27 -!- ais523 has quit (Disconnected by services).
13:34:29 -!- callforjudgement has changed nick to ais523.
13:35:15 -!- b_jonas has quit (Ping timeout: 252 seconds).
13:35:31 -!- b_jonas has joined.
13:37:30 <b_jonas> probably nothing right now
13:45:47 <ais523> hmm, HTTP connections aren't working for me right now (they start to work but stall)
13:47:12 -!- ais523 has quit (Read error: Connection reset by peer).
13:47:35 -!- ais523 has joined.
13:49:23 <b_jonas> hah, typical wifi
13:49:34 <b_jonas> (well, actually there's like a thousand different problems that can cause that)
14:03:58 -!- impomatic_ has left.
14:10:16 -!- Wright has quit (Ping timeout: 240 seconds).
14:25:50 -!- ais523 has quit.
14:34:02 -!- ProofTechnique has joined.
14:35:15 -!- Sprocklem has joined.
14:37:32 -!- nycs has joined.
14:38:16 -!- `^_^v has quit (Ping timeout: 272 seconds).
14:49:02 -!- hilquias has joined.
14:56:44 -!- nycs has changed nick to `^_^v.
15:08:19 -!- idris-bot has quit (Quit: Terminated).
15:11:01 -!- Melvar has quit (Quit: rebooting).
15:12:28 -!- toxolotl1 has joined.
15:14:59 -!- Melvar has joined.
15:16:57 -!- Lyka|Away has changed nick to Lyka.
15:30:55 -!- idris-bot has joined.
15:31:27 -!- Lyka has changed nick to Lyka|Away.
15:33:06 -!- Sprocklem has quit (Quit: brb).
15:34:49 -!- Sprocklem has joined.
15:36:34 -!- Welo has joined.
15:44:13 -!- SopaXT has quit (Read error: Connection reset by peer).
16:01:18 -!- Tritonio has quit (Remote host closed the connection).
16:01:26 -!- Tritonio has joined.
16:14:34 -!- Welo has quit (Ping timeout: 245 seconds).
16:15:00 -!- MDream has changed nick to MDude.
16:21:44 -!- SopaXT has joined.
16:24:03 -!- variable has changed nick to constant.
16:24:57 -!- ProofTechnique has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
16:26:21 <J_Arcane> I think my initial interest in Factor is starting to wear off.
16:29:21 -!- bb010g has quit (Quit: Connection closed for inactivity).
16:34:29 <MDude> Currently I'm trying to learn Pure Data.
16:37:47 <J_Arcane> I cannot for the life of me even manage to debug the prime? function in the tutorial I'm doing.
16:38:29 <J_Arcane> I'd probably be better off learning Erlang.
16:48:33 -!- Welo has joined.
16:54:30 -!- GeekDude has joined.
16:58:32 <HackEgo> [wiki] [[ABCs]] N http://esolangs.org/w/index.php?oldid=43142 * Paul2520 * (+2709) created page
16:58:53 -!- rdococ has joined.
16:59:08 <HackEgo> [wiki] [[User:Paul2520]] N http://esolangs.org/w/index.php?oldid=43143 * Paul2520 * (+55) Created page with "Created the [[esoteric programming language]] [[ABCs]]."
17:01:22 -!- ProofTechnique has joined.
17:03:49 -!- password2 has joined.
17:04:19 -!- password2 has quit (Max SendQ exceeded).
17:05:19 -!- password2 has joined.
17:14:55 <HackEgo> [wiki] [[ABCs]] http://esolangs.org/w/index.php?diff=43144&oldid=43142 * Paul2520 * (+41) added "hello world" example
17:16:17 <HackEgo> [wiki] [[Befunk]] http://esolangs.org/w/index.php?diff=43145&oldid=40231 * 73.184.106.177 * (+0)
17:17:40 <HackEgo> [wiki] [[Language list]] http://esolangs.org/w/index.php?diff=43146&oldid=43071 * Paul2520 * (+11) /* A */ added [[ABCs]]
17:23:33 -!- SopaXT has quit (Read error: Connection reset by peer).
18:11:20 <oren> you know what's bullshit? 08 and 09 are not valid C integers
18:13:42 <oren> actually the whole octal thing is pretty stupid
18:15:11 <oren> why did they have octal, of all bases? Base 60 might at least be useful
18:15:30 <oren> or base 12
18:16:36 <oren> like it would be nice to be able to write a value like 300 seconds as 5:00
18:18:09 <oren> or a value of 18 inches as 1'6
18:19:11 <oren> hmmm
18:26:53 <Sgeo_> Windows Calculator thinks octal might be useful
18:28:54 <oren> #define b60(i) ((i)%100+(i)/100%100*60+(i)/10000%100*3600+(i)/1000000%100*216000+(i)/100000000%100*12960000)
18:29:30 <pikhq> Awesome PDP legacy stuff.
18:30:52 <oren> this requires 500 for five minutes, and 240000 for one day. Hmmm
18:35:03 <oren> #define bTM(i) ((i)%100+(i)/100%100*60+(i)/10000%100*3600+(i)/1000000%100*86400+(i)/100000000%100*18144000)
18:35:06 <pikhq> Obviously things should use base 2 exclusively.
18:35:34 <oren> That would be nice, but our systems mostly use mixed bases
18:36:01 <pikhq> Especially base64 should be replaced with base2. :P
18:36:27 <oren> I prefer base 255
18:36:55 <pikhq> That's not 7 bit clean.
18:36:55 <oren> (I once wrote half of a C-string based bignum thing using that base)
18:37:12 <pikhq> (hah)
18:38:00 <b_jonas> I agree that base of a power of 2 are easier
18:38:28 <b_jonas> but sure, there's zzo38 who'll write negafibonacci base arithmetic when I just mention how strange it would be
18:38:48 <b_jonas> and I've written strange base arithmetic stuff just to see how easy it is
18:39:29 <oren> 251 is a prime base tat fits into a byte
18:39:51 <oren> 252 has a lot of factors
18:40:09 <pikhq> Shoving base 2 in ASCII is just hilarious.
18:40:38 <b_jonas> including GF(128) arithmetic: http://www.perlmonks.com/?node_id=863110
18:44:57 <oren> pikhq: and yet GNU decided to add a 0b01010001 notation, for people who apparently can't read 0x51
18:45:43 -!- password2 has quit (Remote host closed the connection).
18:46:36 <oren> or 0121
18:51:42 -!- Tritonio_ has joined.
18:54:24 -!- nys has joined.
18:54:58 -!- Tritonio has quit (Ping timeout: 252 seconds).
18:55:59 <pikhq> oren: That's also going into C++.
18:58:21 -!- Tritonio_ has changed nick to Tritonio.
19:03:29 -!- SopaXT has joined.
19:07:01 -!- Phantom_Hoover has quit (Ping timeout: 255 seconds).
19:16:44 <b_jonas> oren: yeah, I never understood why that would be useful
19:21:48 -!- SopaXT has quit (Remote host closed the connection).
19:26:21 <int-e> it's for people who can count to 24 quickly (is 0b1000000000000000000000000 equal to 1<<23 or 1<<24?)
19:27:51 <shachaf> i,i 0b1e24
19:28:09 <int-e> shachaf: that makes me cringe inside
19:28:23 <shachaf> 0b1e0b11000
19:28:44 <shachaf> 0b1e0b11e0b11
19:28:56 -!- rdococ has quit (Read error: Connection reset by peer).
19:29:00 <int-e> and now we're approaching one of those efficient prefix-free encoding of naturals
19:30:10 <int-e> hmm, where'd the -free come from...
19:33:39 <int-e> (What I have in mind is something like this: To encode a positive natural number, write it in binary and drop the initial 1 digit to obtain a list of digits; the empty list is encoded as 0; any other list is encoded as 1, followed by the encoding of the length of the list, followed by the list itself.)
19:49:34 -!- Sprocklem has quit (Quit: [).
19:50:12 <tromp__> shld use the encoding of one less than the length...
19:50:33 <tromp__> also see http://en.wikipedia.org/wiki/Levenstein_coding
19:59:44 -!- Welo has quit (Quit: Leaving).
20:01:04 -!- Sprocklem has joined.
20:12:49 -!- drdanmaku has joined.
20:34:23 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
20:44:57 -!- adu has quit (Quit: adu).
20:45:11 -!- Herbalist has joined.
20:45:11 -!- Herbalist has quit (Changing host).
20:45:11 -!- Herbalist has joined.
20:53:40 -!- GeekDude has joined.
21:00:13 -!- ProofTechnique has quit (Quit: My Mac has gone to sleep. ZZZzzz…).
21:04:18 -!- Patashu has joined.
21:06:41 -!- drdanmaku has quit (Quit: .).
21:08:51 -!- `^_^v has quit (Ping timeout: 256 seconds).
21:11:53 -!- ZombieAlive has joined.
21:20:12 -!- nys has quit (Quit: quit).
21:25:07 -!- Sprocklem has quit (Ping timeout: 264 seconds).
21:34:18 -!- Patashu has quit (Ping timeout: 264 seconds).
21:35:54 -!- ProofTechnique has joined.
21:39:27 -!- GeekDude has quit (Ping timeout: 256 seconds).
21:41:51 -!- boily has joined.
21:41:56 <boily> @metar CYUL
21:41:56 <lambdabot> CYUL 042100Z 14008KT 100V170 30SM BKN240 24/07 A3011 RMK CI6 SLP195 DENSITY ALT 900FT
21:42:08 <shachaf> @metar KOAK
21:42:08 <lambdabot> KOAK 042053Z 27011KT 10SM FEW012 21/10 A2982 RMK AO2 SLP098 T02060100 58006
21:42:26 <boily> damn. only 24/07 and I'm sweating like a sweaty pig who sweats profusely.
21:42:36 <boily> (maybe the bike ride is a contributing factor.)
21:43:55 -!- J_Arcane has quit (Ping timeout: 244 seconds).
21:46:03 -!- J_Arcane has joined.
21:51:33 -!- tromp_ has joined.
21:51:40 -!- tromp__ has quit (Ping timeout: 244 seconds).
21:58:32 -!- Wright has joined.
22:00:25 -!- adu has joined.
22:04:15 -!- ProofTechnique has quit (Quit: Textual IRC Client: www.textualapp.com).
22:05:51 -!- oerjan has joined.
22:06:35 -!- adu has quit (Quit: adu).
22:20:22 -!- Sprocklem has joined.
22:24:47 -!- atehwa has joined.
22:25:58 -!- hjulle has quit (Ping timeout: 264 seconds).
22:35:01 -!- Tritonio has quit (Remote host closed the connection).
22:42:35 -!- hilquias has quit (Remote host closed the connection).
23:09:45 -!- ZombieAlive has quit (Ping timeout: 265 seconds).
23:19:15 -!- Phantom_Hoover has joined.
23:23:23 -!- toxolotl1 has quit (Ping timeout: 276 seconds).
←2015-06-03 2015-06-04 2015-06-05→ ↑2015 ↑all