доступ к svn
От: Иванков Дмитрий Россия  
Дата: 25.02.07 22:14
Оценка:
Я правильно понимаю, что запрос на доступ к svn можно прямо сюда оставить?
Править планирую лексер, а также залить раскраску для фара.
Re: доступ к svn
От: ie Россия http://ziez.blogspot.com/
Дата: 26.02.07 05:01
Оценка:
Здравствуйте, Иванков Дмитрий, Вы писали:

ИД>Я правильно понимаю, что запрос на доступ к svn можно прямо сюда оставить?


Для получения SVN логина надо сгенерировать хеш пароля здесь, а затем послать запрос в письме вместе с сгенерированным хешем админу проекта Michal Moskal [malekith A T nemerle.org]. После получения доступа добавьте себя и свою контактную информацию в список разработчиков здесь: http://nemerle.org/svn/nemerle/trunk/misc/users.


ИД>Править планирую лексер, а также залить раскраску для фара.


Планируешь поддерживать 5-ый colorer?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Превратим окружающую нас среду в воскресенье.
Re[2]: colorer
От: Иванков Дмитрий Россия  
Дата: 26.02.07 07:02
Оценка:
ie>Планируешь поддерживать 5-ый colorer?
В перспективе — да. но для этого надо пробраться через новый синтаксис hrc.
Попробовал включить сразу 4ever и 5, работает в принципе , но иногда один из них открывает не предназначенный ему тип файлов (автоопределение по первой строке видимо виновато)
Re: доступ к svn
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.07 08:36
Оценка: +1 :)
Здравствуйте, Иванков Дмитрий, Вы писали:

ИД>Править планирую лексер, ...


Ты меня не пугай. Зачем ты собрался править лексер?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: доступ к svn
От: Иванков Дмитрий Россия  
Дата: 26.02.07 10:08
Оценка:
VD>Ты меня не пугай. Зачем ты собрался править лексер?
На багтрекере лежит парочка багов:
#define
System.Console.WriteLine("not ");
System.Console.WriteLine("skipped");

#if true==true!=true
System.Console.WriteLine("It's true expr");
#endif

#if (true==true!=true) //error: unbalanced parenthesis
#endif

//following is illegal in c#, but ncc compiles it
#if 1
#region q
#endif
#endregion
()
Re[2]: доступ к svn
От: nikov США http://www.linkedin.com/in/nikov
Дата: 26.02.07 10:12
Оценка:
Здравствуйте, VladD2, Вы писали:

ИД>>Править планирую лексер, ...

VD>Ты меня не пугай. Зачем ты собрался править лексер?

А в чем проблема? Есть же юнит-тесты.
Re[3]: доступ к svn
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.07 15:48
Оценка:
Здравствуйте, nikov, Вы писали:

N>А в чем проблема? Есть же юнит-тесты.


Они не тестируют локешоны.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: доступ к svn
От: nikov США http://www.linkedin.com/in/nikov
Дата: 26.02.07 15:50
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Они не тестируют локешоны.


Ататат!
Re[3]: доступ к svn
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.07 20:01
Оценка:
Здравствуйте, Иванков Дмитрий, Вы писали:

ИД>На багтрекере лежит парочка багов:

ИД>
ИД>#define
ИД>System.Console.WriteLine("not ");
ИД>System.Console.WriteLine("skipped");

ИД>#if true==true!=true
ИД>System.Console.WriteLine("It's true expr");
ИД>#endif

ИД>#if (true==true!=true) //error: unbalanced parenthesis
ИД>#endif

ИД>//following is illegal in c#, but ncc compiles it
ИД>#if 1
ИД>#region q
ИД>#endif
ИД>#endregion
ИД>()
ИД>


Замечательно. Это действительно ошибка. Но то что ты сделал это никуда не годится.
Камил совершенно прав. Использование option[] в лексере совершенно не допустимо. option[] — это ссылочный тип данных.

К тому же ты уничтожил предыдущую логику которая ничем не отличалась ктоме того что не имела пробем с производительностью.

Прежде чем вносить такие правки (и вообще лезть в кишки компилятора) надо сто раз подумать и посоветоваться с окружающими. Иначе компилятор быстро прийдет в негодность.

В общем, откати свой peek_or_none() и пользуйся peek(). В случае конца файла peek() возвращает '\0'. Вот его и проверяй.

ЗЫ

Чтобы подобных проблем не возникало надо исходить из следующей позиции:
1. Те кто писал компилятор не идиоты и делали все осознанно.
2. Если что-то кажется неосознанным, то в соответствии с п. 1 имеет смысл предположить, что ты что-то не знаешь/упустил из виду. Стало быть нужно спросить у авторов кода почему что-то сделано так, а не иначе.
3. Вносить изменения только при условии, что в них нет ни малейшего соменения и ты полностью понимаешь что делал ты и твои предшественники.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: доступ к svn
От: Иванков Дмитрий Россия  
Дата: 26.02.07 21:38
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Камил совершенно прав. Использование option[] в лексере совершенно не допустимо. option[] — это ссылочный тип данных.

Согласен, копаю в сторону других типов

VD>В общем, откати свой peek_or_none()

Уже

VD> и пользуйся peek(). В случае конца файла peek() возвращает '\0'. Вот его и проверяй.

Вот это как раз проблема, он возвращает '\0' и в случае если в тексте есть такой символ
Re[5]: доступ к svn
От: IT Россия linq2db.com
Дата: 26.02.07 22:20
Оценка:
Здравствуйте, Иванков Дмитрий, Вы писали:

VD>> и пользуйся peek(). В случае конца файла peek() возвращает '\0'. Вот его и проверяй.

ИД>Вот это как раз проблема, он возвращает '\0' и в случае если в тексте есть такой символ

Интересно, а как в этом случае ведёт себя C#?
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: доступ к svn
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.07 22:29
Оценка:
Здравствуйте, Иванков Дмитрий, Вы писали:

VD>> и пользуйся peek(). В случае конца файла peek() возвращает '\0'. Вот его и проверяй.

ИД>Вот это как раз проблема, он возвращает '\0' и в случае если в тексте есть такой символ

'\0' — это недопустимый символ в текстовом файле. Его не может быть в принципе. На то и рассчет.
'\0' == 0 :> char.

Так что смело проверяй на него. Это самое быстрое и простое решение.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: доступ к svn
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.02.07 22:31
Оценка:
Здравствуйте, IT, Вы писали:

IT>Интересно, а как в этом случае ведёт себя C#?


Ты о чем? Все символы со значением меньше пробела недопустимы в текствых файлах. '\0' — априори некорректный символ для текстового файла.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: доступ к svn
От: IT Россия linq2db.com
Дата: 27.02.07 02:57
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>Интересно, а как в этом случае ведёт себя C#?


VD>Ты о чем? Все символы со значением меньше пробела недопустимы в текствых файлах. '\0' — априори некорректный символ для текстового файла.


И как себя в этом случае ведёт C#?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: доступ к svn
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.02.07 09:59
Оценка:
Здравствуйте, IT, Вы писали:

IT>И как себя в этом случае ведёт C#?


В каком? Нет никаких таких случаев.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: доступ к svn
От: IT Россия linq2db.com
Дата: 27.02.07 13:18
Оценка:
Здравствуйте, VladD2, Вы писали:

IT>>И как себя в этом случае ведёт C#?

VD>В каком? Нет никаких таких случаев.

Если в середине файла встречается 0?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: доступ к svn
От: nikov США http://www.linkedin.com/in/nikov
Дата: 27.02.07 13:38
Оценка:
Здравствуйте, IT, Вы писали:

IT>Если в середине файла встречается 0?


Вроде бы, воспринимает это как конец файла.
Re[10]: доступ к svn
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.02.07 15:56
Оценка:
Здравствуйте, IT, Вы писали:

IT>Если в середине файла встречается 0?


То это будет бинарный файл. Разумность рассуждений сродни скармливанию компилятору C# вместо .cs-файла .exe-файл.

В общем, откровенно говоря бредовое обсуждение получается.

Сказа ли же '\0' не является разрешенным текстовым сиволом. Значит в корректном тексовом файле он встретится не может. Ну, а не кореектные никого волновать не должны.

Ладно. Специльно для неверующих...
Создал C#-проект.
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("A$B");
        }
    }
}

далее открыл бинарным редктором этот файл и исправил смвол обозначенный как '$' на '\0'. Записал и попытался скомпилировать проект. Результат:
K:\MyProjects\Tests\ZeroChar\ZeroChar\Program.cs(11,22): error CS1010: Newline in constant
K:\MyProjects\Tests\ZeroChar\ZeroChar\Program.cs(11,24): error CS1513: } expected
K:\MyProjects\Tests\ZeroChar\ZeroChar\Program.cs(11,24): error CS1513: } expected
K:\MyProjects\Tests\ZeroChar\ZeroChar\Program.cs(11,24): error CS1513: } expected

Если сохранить файл в UTF-8, то сообщение меняется на:
K:\MyProjects\Tests\ZeroChar\ZeroChar\Program.cs(11,22): error CS1039: Unterminated string literal
K:\MyProjects\Tests\ZeroChar\ZeroChar\Program.cs(11,25): error CS1513: } expected
K:\MyProjects\Tests\ZeroChar\ZeroChar\Program.cs(11,25): error CS1513: } expected
K:\MyProjects\Tests\ZeroChar\ZeroChar\Program.cs(11,25): error CS1513: } expected
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: доступ к svn
От: Starlight США  
Дата: 27.02.07 19:14
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Все символы со значением меньше пробела недопустимы в текствых файлах. '\0' — априори некорректный символ для текстового файла.


А что, символ табуляции (\9) тоже запрещен?
Re[8]: доступ к svn
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.02.07 20:27
Оценка:
Здравствуйте, Starlight, Вы писали:

S>А что, символ табуляции (\9) тоже запрещен?


Нет. Разрешен, конечно. Но \08 и т.п. — нет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.