Ошибка определения констант в свойствах проекта.
От: Aberro  
Дата: 28.11.11 11:46
Оценка:
Только что поймал таковую: если в свойствах проекта в поле "Conditional compilation symbols", либо в самом файле проекта в ноде <DefineConstants> в списке есть пробел, то это приводит к ошибке компиляции. Компилятор принимает все, что находится после пробела за новый параметр/файл и пытается его интерпретировать.
Re: Ошибка определения констант в свойствах проекта.
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.11.11 17:13
Оценка:
Здравствуйте, Aberro, Вы писали:

A>Только что поймал таковую: если в свойствах проекта в поле "Conditional compilation symbols", либо в самом файле проекта в ноде <DefineConstants> в списке есть пробел, то это приводит к ошибке компиляции. Компилятор принимает все, что находится после пробела за новый параметр/файл и пытается его интерпретировать.


Заводи issue. Будем править.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Ошибка определения констант в свойствах проекта.
От: Aberro  
Дата: 29.11.11 11:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Заводи issue. Будем править.


Может кто за меня написать? У меня нет акка на гитхабе и желания с этим возиться. Я немерле только одним глазом смотрю.
Кстати, еще одну ошибку нашел — цифры неправильно раскрашиваются в VS, они всегда черные, даже если нигде в цветовых настройках нет черного цвета.
Re: Ошибка определения констант в свойствах проекта.
От: _nn_ www.nemerleweb.com
Дата: 29.11.11 15:20
Оценка:
Здравствуйте, Aberro, Вы писали:

A>Только что поймал таковую: если в свойствах проекта в поле "Conditional compilation symbols", либо в самом файле проекта в ноде <DefineConstants> в списке есть пробел, то это приводит к ошибке компиляции. Компилятор принимает все, что находится после пробела за новый параметр/файл и пытается его интерпретировать.


C# ведет себя следующим образом.
Пробелы и символ ";" трактуются одинаково.

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
    <PlatformTarget>x86</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>TRACE;DEBUG;A B C D </DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication17
{
    class Program
    {
        static void Main(string[] args)
        {
#if A
            Console.WriteLine("A");
#endif

#if D
            Console.WriteLine("D");
#endif
        }
    }
}


A
D


Nemerle должен вести себя аналогично.

В общем фикс прост
https://github.com/rsdn/nemerle/blob/master/snippets/VS2010/Nemerle.VisualStudio/Project/ProjectInfo.cs#L503

Тут надо добавить сплит не только по ";" , но также и по " ".

А также сделать то же самое для 2008-й студии.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: Ошибка определения констант в свойствах проекта.
От: Ziaw Россия  
Дата: 29.11.11 16:48
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Тут надо добавить сплит не только по ";" , но также и по " ".


А так же по \t\r\n, вообще лучше сделать Regexp.Split по \s+

Replace(" \t\r\n", String.Empty) жжот конечно, как и последующий Trim.

__>А также сделать то же самое для 2008-й студии.
Re[2]: Ошибка определения констант в свойствах проекта.
От: Aberro  
Дата: 29.11.11 17:57
Оценка:
Так немерле — это язык, который пишется сам собой совместными усилиями РСДН-а?) Это интересно)
Любопытный язык, но отсутствие документации с нормальными примерами применения очень усложняет изучение. И это принципиально неправильно, учитывая переход через планку первой версии.
Re[2]: Ошибка определения констант в свойствах проекта.
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.11.11 21:44
Оценка:
Здравствуйте, _nn_, Вы писали:

__>C# ведет себя следующим образом...


Одни вопрос... А нам то зачем это нужно?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Ошибка определения констант в свойствах проекта.
От: VladD2 Российская Империя www.nemerle.org
Дата: 29.11.11 23:37
Оценка:
Здравствуйте, Aberro, Вы писали:

A>Так немерле — это язык, который пишется сам собой совместными усилиями РСДН-а?) Это интересно)


РСДН-а это сильно сказано. На РСДН в день по 10 000 человек заходит. Если бы все помогали, то мы давно бы всех за пояс заткнули. Язык разрабатывается совместными усилиями Rsdn Team и внешних комитеров. Нас не так много, к сожалению. Надеюсь, что пока.

A>Любопытный язык, но отсутствие документации с нормальными примерами применения очень усложняет изучение. И это принципиально неправильно, учитывая переход через планку первой версии.


Вообще-то примеров выше крыши. Просто гибкость настолько велика, что описать все очень сложно. Вот здесь список статей на русском. Ну, и про www.nemerle.org/wiki забывать нельзя. Еще вот, недавно был добавлен Sample-pack, за что огромное спасибо CodingUnit (спасибо выражать — здесь
Автор: CodingUnit
Дата: 30.10.11
).

Плюс рук действительно не хватает. Вот присоединяйся и помогай. Вместе будет проще.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Ошибка определения констант в свойствах проекта.
От: Aberro  
Дата: 30.11.11 11:02
Оценка:
Премного благодарю за ссылку на SamplePack. Видел реквест на него, но там этой ссылки не было, и я было подумал, что такого нет.
Вообще, я говорил в первую очередь про документацию, и только во вторую — про примеры. Т.к. документация подразумевает полное структурированное описание языка, с примечаниями и примерами использования, а это, согласитесь, весьма удобно и полезно при изучении.
Про присоединяться — это едва ли. У меня слишком мало свободного времени. Да и я язык только начал изучать, на как раз те небольшие запасы времени, коими обладаю.
Re[3]: Ошибка определения констант в свойствах проекта.
От: _nn_ www.nemerleweb.com
Дата: 30.11.11 12:23
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, _nn_, Вы писали:


__>>C# ведет себя следующим образом...


VD>Одни вопрос... А нам то зачем это нужно?


Ок, а как должно быть ?
Чем плохо поведение C# ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: Ошибка определения констант в свойствах проекта.
От: Ziaw Россия  
Дата: 30.11.11 14:19
Оценка: 51 (1) +1
Здравствуйте, VladD2, Вы писали:

__>>C# ведет себя следующим образом...


VD>Одни вопрос... А нам то зачем это нужно?


Чтобы не писать в доку очередное отличие от C#.

Вобщем я пофиксил https://github.com/rsdn/nemerle/pull/190
Re[5]: Ошибка определения констант в свойствах проекта.
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.11 15:04
Оценка:
Здравствуйте, Aberro, Вы писали:

A>Про присоединяться — это едва ли. У меня слишком мало свободного времени. Да и я язык только начал изучать, на как раз те небольшие запасы времени, коими обладаю.


Чтобы помочь в написании той же документации не обязательно сидеть в отладчике. Тут можно действовать так. Возник вопрос, поискал — не нашел... спросил — ссылку не дали, но обяснили... Создал страничку, написал на ней то что понял и дал ссылку на форум. А тут уже другие помогут и доведут страничку до ума. Глядишь через некоторое время уровень описаний повысится.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Ошибка определения констант в свойствах проекта.
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.11 15:07
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Ок, а как должно быть ?

__>Чем плохо поведение C# ?

Оно всем хорошо кроме того, что избыточно. На сегодня я просто удаляю пробелы из этого поля, перед тем как делить по ";". Это конечно может вызвать проблемы у тех кто решил разбить дефайны пробелами, но есть ли смысл с этим заморачиваться? Кто будет их использовать? Ошибки возникают потому, что люди отбивают пробелами элементы. Это мы пофиксили.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Ошибка определения констант в свойствах проекта.
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.11 15:32
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Чтобы не писать в доку очередное отличие от C#.

Z>Вобщем я пофиксил https://github.com/rsdn/nemerle/pull/190

Ну, пофиксил так пофиксил. Хотя вряд ли кто-то будет лепить разделители отличные от тех что визардом сгенерировали.

ЗЫ

MSBuildTask.n надо просто грохнуть.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Ошибка определения констант в свойствах проекта.
От: Ziaw Россия  
Дата: 30.11.11 17:29
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Ну, пофиксил так пофиксил. Хотя вряд ли кто-то будет лепить разделители отличные от тех что визардом сгенерировали.


Мне кажется, что надо либо ловить такие ошибки и говорить о них, либо работать корректно с различными разделителями.

VD>MSBuildTask.n надо просто грохнуть.


Я тоже так подумал, но решил не смешивать с патчем, сейчас грохнул.
Re[6]: Ошибка определения констант в свойствах проекта.
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.11 18:01
Оценка:
Здравствуйте, Ziaw, Вы писали:

Z>Мне кажется, что надо либо ловить такие ошибки и говорить о них, либо работать корректно с различными разделителями.


Тут ты прав. Там по уму нужно нормальный парсинг применять. О всем что выходит за допустимые значения сообщать. Но в средства доступные под рукой это не позволяют. Вот и лепят все лажу.

VD>>MSBuildTask.n надо просто грохнуть.


Z>Я тоже так подумал, но решил не смешивать с патчем, сейчас грохнул.


Это тоже правильно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.