Re: Простейший пример не работает
От: hardcase Пират http://nemerle.org
Дата: 28.11.14 20:15
Оценка: 4 (1)
Здравствуйте, x-code, Вы писали:

XC>После установки VS2013 sp4 интеграция установилась, встроенный hello world собрался.

XC>Но стоило только добавить в проект еще один файл с тестовым макросом

Ты в обычный exe-проект добавляешь? Макросы нужно создавать в проектах "Macro Library", а макро библиотеки добавлять в Macro Reference.
/* иЗвиНите зА неРовнЫй поЧерК */
Простейший пример не работает
От: x-code  
Дата: 28.11.14 19:44
Оценка:
После установки VS2013 sp4 интеграция установилась, встроенный hello world собрался.
Но стоило только добавить в проект еще один файл с тестовым макросом
using System.Console;

public macro TestMacro1()
{
  WriteLine("compile-time\n");
  <[ WriteLine("run-time\n") ]>;
}

как компиляция перестала проходить, куча ошибок.
------ Build started: Project: ConsoleApplication1, Configuration: Debug Any CPU ------
d:\PRG\Demos\Nemerle\ConsoleApplication1\macro1.n(3,1): error : unbound type name `IMacro'
d:\PRG\Demos\Nemerle\ConsoleApplication1\macro1.n(4,1): error : unbound type name `Nemerle.Compiler.Location'
d:\PRG\Demos\Nemerle\ConsoleApplication1\macro1.n(4,1): error : unbound type name `Nemerle.Compiler.Location'
d:\PRG\Demos\Nemerle\ConsoleApplication1\macro1.n(4,1): error : unbound type name `PExpr'
d:\PRG\Demos\Nemerle\ConsoleApplication1\macro1.n(4,1): error : unbound type name `SyntaxElement'
d:\PRG\Demos\Nemerle\ConsoleApplication1\macro1.n(4,1): error : unbound type name `Typer'

и т.д.

Между прочим, гуглится аналогичная жалоба
https://groups.google.com/forum/#!msg/nemerle-en/Hsq3C5si414/P9qbkirPJtwJ

но там так и не сказано как это решать и в чем дело.
Может лучше версию 1.1 поставить а 1.2 снести?
Re[2]: Простейший пример не работает
От: x-code  
Дата: 28.11.14 20:31
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Ты в обычный exe-проект добавляешь? Макросы нужно создавать в проектах "Macro Library", а макро библиотеки добавлять в Macro Reference.


Спасибо! Я ориентировался на статьи, которые судя по всему устарели. Кстати, где сейчас самая последняя документация?
Re[3]: Простейший пример не работает
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.11.14 21:09
Оценка:
Здравствуйте, x-code, Вы писали:

XC>Спасибо! Я ориентировался на статьи, которые судя по всему устарели. Кстати, где сейчас самая последняя документация?


Ничего не устарело. Код макросов всегда должен был быть в отдельной сборке. Просто кое-где процесс раздельной компиляции автоматизируется и это может показаться не очевидным.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.