15:30:58drmeisterHi jackdaniel - I think we ran into that already - yes.
15:45:50Bikei pretty much completely rewrote defstruct, but it doesn't pick out redefinitions, no
16:01:29drmeisterI wrote a compile-file2 function that separates out AST compilation from everything else.
16:02:34drmeisterIf I compile-file2 a file and suppress everything after compiling the AST the compilation of predlib.lsp takes 6.6 seconds.
16:03:06drmeisterIf I compile everything it's 36 seconds
16:05:46drmeisterSo if we parallelized the compilation after the AST we could get up to a six-fold speed up of the compiler. (assuming additional cores are kept very busy).
16:07:04stassatsi don't follow, do you have idle cores when compiling right now?
16:08:58drmeisterThe asdf part I guess. It compiles things in a linear fashion.
16:09:25drmeisterThere is this poiu module - but it's out of date.
16:10:11drmeisterSo I thought parallelizing compile-file might be a useful approach.
16:10:29stassatswell, parallel compilation can do only so much to hide slow compilation
16:11:04drmeisterWe are always going to be slow with the llvm compiler - we can reduce the amount of code we give it (working on that) but it's always going to be slow.
16:11:26stassatshave you done anything about the constants?
16:11:45drmeisterI don't recall - what was the deal with constants?
16:12:04stassatswell, they are causing more compilation
16:12:58drmeisterOh - the literals. No we don't have any new solutions there. What do you recommend?
16:13:17stassatssame things as before, not doing any compilation
16:13:27drmeisterI don't have any better ideas than what we are currently doing.
16:13:56drmeisterWe are talking with Ravenbrook about implementing save/load of memory.
16:20:22stassatsyou just need to do prin1-to-string, and then read-from-string, with some special print-object mode that handles anything you need to serialize
16:20:47stassatslike specialized arrays, strings, hash-tables, etc.
16:21:27stassatswhich can simply print out #.(make-array 3 :element-type 'fixnum :initial-contents '(1 2 3))