[02:27:28] * evincar [evincar!~jonathanp@75-142-42-181.dhcp.reno.nv.charter.com] has joined the channel. [02:30:00] colonelj: Hey, just got back from camping--thanks for the PRs! I'll review & merge this evening if everything looks good [02:30:09] Might add some tests while I'm at it [02:31:02] Float32 & Float64 have the same representation in the interpreter at the moment, so I guess I'll fix that [02:35:32] hi evincar [02:35:49] yeah I found that a bit odd but it is just the interpreter [02:36:06] evincar I started writing a new prelude extending from the current one [02:36:19] it'll probably have to wait until next weekend to finish it [02:36:49] I think there's a bug when using List> as a trait instance [02:37:24] seems to match with any other regular instance type [02:37:46] then it crashes in the interpreter since it's obviously got the types mixed up by that point [02:38:06] I was trying to do List> [02:38:27] and it was using the instance for Int8 (just because it was the first instance I defined) [02:38:50] if I defined the List> instance first then using any of the other instances matched with this one and they all crashed [02:39:37] Weird, sounds like a bug alright [02:39:39] apart from that bug I would really like the generic instances of type traits thing working [02:40:04] tried to define a function unique which gives you all the unique elements of a list [02:40:24] it doesn't seem to know the type and = doesn't work [02:40:36] since it's List -> List [02:41:43] also I tried but couldn't figure out how to do this... in the interpreter I don't want it to say just but etc. [02:42:10] couldn't figure out how to implement it myself because the type doesn't seem to be available to the pretty printer, which is wrong imho [02:42:24] the way you did it for integers seems like a hack [02:43:50] I did get it working as but there's not a lot of semantic info in that, and it's kinda internal what index that is [02:44:22] Yeah, it should use the show instance if one is available [02:44:41] Or preserve the type and auto-derive a show instance maybe [02:46:44] I want to make a MCTS Chess game in Kitten once it's ready [02:47:25] btw I think the exponents need to be finished off pretty soon too to go with my floating point operations [02:47:34] I realise I missed basic stuff like sqrt [02:47:49] although I think you can simulate that using exp [02:48:17] like you can exponentiation [02:51:13] oh yeah it's not commutative [02:51:30] associative rather [02:52:17] apparently b^p^q should be b^(p^q) [02:53:13] so it should be right associative [02:53:45] hmm you didn't put the precedence down in your branch yet [02:54:10] but yeah right 8 makes sense [02:55:32] anyway b^x = (e^ln b)^x = e^(x*ln b) [02:56:20] but I think for sqrt that's quite an inefficient method [02:58:21] oh wait I do have sqrt lol [02:58:34] or do I [03:01:13] eh forget it haskell just uses the rubbish ** 0.5 definition [03:43:31] ^0.5 isn't so bad--it inadvertently avoids some precision problems with fsqrt I think... [03:43:55] Although I probably won't use the x87 instructions at all in the backend when I finish that [03:44:13] yeah it seems to be a modern trend to ignore x87 [03:44:30] is there not an SSE sqrt? [03:44:34] There is [03:44:44] Which has correct rounding for double [03:44:50] fsqrt does not [03:45:12] fyl2x+f2xm1 might be correct, dunno [03:45:57] how's things going with the backend [03:46:04] I think my poker thing might be quite slow running in the interpret [03:46:23] Haven't touched it lately; I need to rejigger some things to make name mangling easier [03:46:34] And I think it's more important to get the release-blocking language features done [03:46:49] Like generic instances, synonyms, imports [03:47:15] I have a friend who's interested in optimising the backend once I have something [03:47:57] The existing code worked for some trivial programs last I knew [03:49:15] Like, hello world trivial [03:50:49] I'm tempted to add instance pi (-> Int32) { 3 } as a joke :P [03:51:25] yeah I have instance pi in my PR [03:51:32] that would be a mean joke [03:51:49] actually it's kinda funny lol [03:52:19] yeah probably best not to do that [03:53:42] btw I don't consider either synonyms or imports as blockers for anything I can think of [03:54:02] synonyms are almost useless theoretically by definition [03:54:25] But vocabs are kinda useless without imports, which I intend to implement in terms of synonyms [03:55:03] And type synonyms are useful for shortening code [03:55:05] I'd depriorise imports until the language stops being a toy [03:55:25] functionality first [03:55:47] generic instances would shorten code a lot more [03:56:32] literally have to copy and paste the code and change the types [03:57:04] and then I came across the weird List> bug [06:09:22] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has quit. [06:55:01] * evincar [evincar!~jonathanp@75-142-42-181.dhcp.reno.nv.charter.com] has quit (Ping timeout: 260 seconds). [06:57:58] * jtimon [jtimon!~quassel@50-240-212-81-static.hfc.comcastbusiness.net] has joined the channel. [07:03:32] * zgrep [zgrep!~zgrep@ircpuzzles/2015/april-fools/sixth/zgrep] has joined the channel. [08:24:17] * jamtho [jamtho!~jamtho@host217-42-113-20.range217-42.btcentralplus.com] has joined the channel. [08:24:55] * jtimon [jtimon!~quassel@50-240-212-81-static.hfc.comcastbusiness.net] has quit (Remote host closed the connection). [09:16:15] * jamtho [jamtho!~jamtho@host217-42-113-20.range217-42.btcentralplus.com] has quit (Ping timeout: 268 seconds). [16:19:41] Speqaking of which, is there a plan to ever release a 1.0? [16:37:42] * FreeFull [FreeFull!~freefull@defocus/sausage-lover] has joined the channel. [20:21:19] * evincar [evincar!~jonathanp@75-142-42-181.dhcp.reno.nv.charter.com] has joined the channel. [20:23:45] tgunr: I'd like to get to 1.0 at some point. For me that means no breaking language changes until 2.0 (if it ever happens) and a reasonably complete standard library. [20:25:03] Plus some less clearly defined things like good tooling and documentation [20:27:02] I'm mainly making it for my own use and because I like to write compilers [20:27:20] And people's interest keeps me coming back [20:27:49] Unless you were referring to Factor 1.0 [20:28:06] In which case I think they have vague plans for that? [20:28:18] It's been "soonish" for a while now [21:02:40] Yes, I was referring to Factor [21:03:11] Are you familiar with MPS? I just "discovered" its existence [21:04:00] By JetBrains? [21:04:10] The idea of a projectional editor is something I have advocated for a very long time. I just didn't have a good name for it [21:04:12] yes [21:04:45] I've heard of it but haven't looked into it till now [21:04:55] That was the reason I was asking if there is a EBNF for Factor [21:06:12] In theory it could be used to generate Factor code. I have been playing with the mbeddr code which can generate C code [21:07:05] erg: Didn't you make a grammar as part of your work on the parser a few months ago? [21:07:18] ANTLR? [21:07:39] I don't think so [21:08:14] After 40 years of programming I am just getting into compilers :) Well, other than Forth that is. [21:08:19] Also I'm not terribly convinced of the relevance of [E]BNF to languages with extensible syntax [21:08:37] Even Kitten doesn't have a static grammar because of custom infix operators [21:09:18] Thats right, your the Kitten guy? [21:09:29] You could analyse infix desugaring as separate from parsing, I guess? That's how I implement it [21:09:37] Yep [21:10:55] Forth written in Forth is about the extent of my compiler knowledge [21:12:37] I would dearly love to see Factor develop into something like Livecode as a cross platform development system [21:13:33] I'd like to get Kitten to that point eventually [21:14:33] A nice high-level interactive environment that allows low-level development [21:15:26] And I can't say I'm particularly good at writing compilers or language runtimes [21:15:50] I've done a fair amount of it because I'm interested in language design [21:16:00] And I work on Mono for my job [21:20:12] What I'd really like is to program in Kitten in a visual environment [21:20:56] And have the text-based syntax be a human-readable/editable/diffable serialisation format for that [21:22:52] To be able to think of functions as high-level components sourced from a nice searchable central repository [21:23:24] I used to work on http://andescotia.com [21:24:10] A completely visual language, there is no translator to a text language [21:26:03] Hm, I'll try it out [21:26:21] I really don't think a purely visual environment is the way to go, though [21:26:37] People are understandably concerned about lock-in [21:27:20] And that they can't use their existing text-based tools (diff, patch, git, grep, perl, ...) [21:28:08] The successful examples like LabVIEW survive by filling a certain niche [21:28:44] Or by not advertising themselves to programmers, e.g., Excel [21:30:31] Yes, the lack of source code diff was the primary reason Apple rejected its use on projects. [21:31:35] Which is why I have been thinking about compilers, being able to come up with a textual language for a visual dataflow language like Marten [21:39:31] I think concatenative programming is a fine basis for something like that [21:40:13] My idea for the visual side of things is a bit different from the "boxes and lines" style you usually see [21:40:59] I don't want people to have to mess around with arranging things, and auto-formatting of boxes & lines is a surprisingly hard problem [21:41:10] So I was thinking of something more table-like [21:45:23] Something like this: https://gist.github.com/evincarofautumn/1ab7b016bbb3dae2d01b5e735a2d6c89 [21:47:25] Not a very complete example, but I've worked out how to represent more complex structures, conditionals, &c. [21:50:25] Type errors would be visually highlighted, rendered as a broken edge or something [21:50:50] The idea being that fully structured editing with no possibility of errors inhibits exploration [22:00:59] Hm, Marten is...crashy [22:25:55] * jamtho [jamtho!~jamtho@host217-42-113-20.range217-42.btcentralplus.com] has joined the channel. [23:11:31] * Sonderblade [Sonderblade!~bjourne@h-52-183.A157.priv.bahnhof.se] has joined the channel. [23:46:23] * jamtho [jamtho!~jamtho@host217-42-113-20.range217-42.btcentralplus.com] has quit (Ping timeout: 268 seconds).