!CENmKDnMngVwJJrTry:matrix.org

Inko (lang)

19 Members
General purpose chat room about the Inko programming language.1 Servers

Load older messages


Timestamp Message
2 Mar 2020
18:38:51@hellonomad:matrix.orgkiti_nomad Someone told me that the jvm language takes AOT when compiled into bytecode, and JIT when run in a virtual machine. Languages ‚Äč‚Äčlike cpp directly generate executables, so it takes AOT
is it right?
20:56:28@yorickpeterse:matrix.orgyorickpeterseJIT stands for Just In Time. AOT is Ahead Of Time
20:56:47@yorickpeterse:matrix.orgyorickpeterseA JIT compiler is typically used in an interpreted language to compile VM bytecode into machine code
20:56:54@yorickpeterse:matrix.orgyorickpeterseAn AOT compiler is something like clang, gcc, etc
20:57:18@yorickpeterse:matrix.orgyorickpeterseInko has neither, it only has a bytecode compiler that takes Inko source code and compiles it into a custom bytecode format
20:57:23@yorickpeterse:matrix.orgyorickpeterseThe VM then just executes that as-is
20:57:36@yorickpeterse:matrix.orgyorickpeterseA JIT probably will be added one day, but I suspect it will take a few years
5 Mar 2020
01:12:52@imransherrafique:matrix.orgimransherrafique joined the room.
16 Mar 2020
08:13:27@fsx:matrix.orgfsxHow is it going?
18:16:04@yorickpeterse:matrix.orgyorickpeterseSlow but steady, working on implementing all the type checking rules in the self-hosting compiler
18:16:25@yorickpeterse:matrix.orgyorickpeterseBut this requires quite a bit of re-thinking to make sure those rules are actually what I want; instead of just porting over the Ruby rules as-is
18:17:27@yorickpeterse:matrix.orgyorickpeterseWe're now at about 7000 LOC of compiler tests, though a substantial portion of that is for the parser
18:19:04@yorickpeterse:matrix.orgyorickpeterseIt's taking a bit longer than I'd like, mostly because I'm trying not to introduce decisions I will come to regret a few months down the line
22 Mar 2020
15:31:52@ashunix:matrix.orgashunix joined the room.
23:10:09@yorickpeterse:matrix.orgyorickpeterseI'd say I'm now about 70% through the type checking rules for all the types. This mostly consists out of defining methods to check if A is compatible with B, when, etc; but it's great progress so far
23:11:25@yorickpeterse:matrix.orgyorickpeterse Even found some edge cases not handled by the current Ruby compiler, such as not being able to pass a type ?A to something that expects a trait B, even when both A and Nil implement the B trait
23:12:23@yorickpeterse:matrix.orgyorickpeterse e.g. the Ruby compiler won't let you pass ?String to something that expects ToString
23:12:41@yorickpeterse:matrix.orgyorickpeterse Even though both String and Nil implement ToString, so it's totally safe
23:14:47@yorickpeterse:matrix.orgyorickpeterseOnce all these rules are implemented I probably need to groom the code a bit though, pretty sure it could be a bit nicer in a few places
23 Mar 2020
11:20:56@fsx:matrix.orgfsxCool
11:21:24@fsx:matrix.orgfsxAre the rules based on some existing theory, does it have a name?
12:01:24@yorickpeterse:matrix.orgyorickpeterseNot really, I just wrote them based on what I think makes sense
12:01:43@yorickpeterse:matrix.orgyorickpeterseThe rules are pretty simple though, like object A is compatible with trait B if A implements B
12:02:16@yorickpeterse:matrix.orgyorickpeterseIt's certainly nowhere near the complexity of all the formulas you may see in type checking/inference papers
13:14:36@fsx:matrix.orgfsxI.e. yorick-rules.
13:14:49@fsx:matrix.orgfsx:p
15:46:34@yorickpeterse:matrix.orgyorickpeterseYeah basically it comes down to them just being arbitrary, though I think most other languages follow similar rules
25 Mar 2020
21:26:56@yorickpeterse:matrix.orgyorickpeterseI think I just finished implementing the type checking rules, now I need to groom this code a bit more, but pfew; finally
2 Apr 2020
13:12:37@yorickpeterse:matrix.orgyorickpeterseStarted working on the type checking compiler pass again this week (now that most rules are in place). Still have to add tests for quite a bit of helper code, but will do that along the way
13:12:52@yorickpeterse:matrix.orgyorickpeterseTook a while to get here, but hopefully progress should go up now

There are no newer messages yet.


Back to Room List