12:54:32drmeisterI missed my train this morning - I'll be in by 10:30
13:09:07Bikei have to work out what type inference should do with constants. some options are: (a) treat every constant as a mystery, which is stupid. (b) have the implementation annotate every constant with a type in the ast, which would be silly but works. (c) richer, more complicated type system with implementation hooks and stuff.
13:17:43Bikeor i could just keep having environments like now.
21:19:56Bikeokay, this time the new cleavir floating point stuff compiles down properly.
21:20:03Bikemissed some other smaller bugs in ast to hir. fixed now.
21:40:59drmeisterI found one problem with the dispatch.
21:41:45drmeisterIf a fastgf dispatch fails it checks to make sure that the instances passed as arguments are up to date. If not it updates them.
21:42:12drmeisterTo do that it compares the instance stamp to the stamp that its class would impart on it. If they don't match - the object is out of date.
21:42:50drmeisterIn ECL dispatch it checks if the instances pointer to class slots matches the class slots of the instances class.
21:43:17drmeisterI didn't think to hard and I thought - oh - if one way of checking for obsolete instances is good then two should be better!
21:43:34drmeisterSo I applied both tests - BRRAAAPPPP - wrong.
21:44:16drmeisterJust use the stamp test. The other test runs into problems - for reasons I haven't sorted out yet.
21:46:18drmeisterYeah - structures are implemented as instances of the C++ class Instance_O and the pointer to the class slots is NIL.