diff options
author | Araq <rumpf_a@web.de> | 2011-10-25 15:26:36 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2011-10-25 15:26:36 +0200 |
commit | 9fb36bd20c76ebffa98dfa859f49756972b9491b (patch) | |
tree | 60b63ee0026a0c3dde2dec5365070d852d0a3803 /doc | |
parent | 9fb97e24bf05fa980bcc781dd4b32fd3efed48a0 (diff) | |
download | Nim-9fb36bd20c76ebffa98dfa859f49756972b9491b.tar.gz |
compilation cache: mostly working; generics not yet
Diffstat (limited to 'doc')
-rwxr-xr-x | doc/intern.txt | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/doc/intern.txt b/doc/intern.txt index 475aad75f..86afbb7ba 100755 --- a/doc/intern.txt +++ b/doc/intern.txt @@ -160,6 +160,9 @@ program*. Frontend issues --------------- +Methods and type converters +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Nimrod contains language features that are *global*. The best example for that are multi methods: Introducing a new method with the same name and some compatible object parameter means that the method's dispatcher needs to take @@ -189,6 +192,17 @@ Both the multi method and the type converter problems are solved by storing them in special sections in the ROD file that are loaded *unconditionally* when the ROD file is read. +Generics +~~~~~~~~ + +If we generate an instance of a generic, we'd like to re-use that +instance if possible across module boundaries. However, this is not +possible if the compilation cache is enabled. So we give up then and use +the caching of generics only per module, not per project. This means that +``--symbolFiles:on`` hurts a bit for efficiency. A better solution would +be to persist the instantiations in a global cache per project. This might be +implemented in later versions. + Backend issues -------------- |