Недавно у меня снова выдалась свободная минутка, и я поработал над кодом библиотеки. Соответственно, последний претерпел некоторые изменения.
Самым главным нововведением является, безусловно, генерация value-типов вместо reference-типов, что должно ускорить работу с этими самыми физическими величинами.
Замечание: К сожалению, работа с value-типами пока что неполноценна, так как в компиляторе имеется досадный баг, не позволяющий комфортно работать с генериками при генерации типов. Неполноценность заключается в том, что при передаче одного физического значения в конструктор другого происходит боксинг. Такое поведение будет исправлено сразу, как пофиксят баг в компиляторе.
Кроме этого, в библиотеку были внесены и другие изменения:
Новую версию проекта можно забрать тут:
Oyster.Units.0.02.zip. Билдить рекомендуется или на последней версии Nemerle
из SVN, или на
снапшоте r6176 и выше. Для тех, кому лень качать проект, я выложил новые исходники (кроме тестового примера — он изменился несущественно) в ответе на это сообщение.
PS: Направления дальнейшего развития библиотеки — избавиться от боксинга и ввести физические литералы (то, о чём так много говорили в этом топике).