Bugtracker для Lazarus работает?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Cobalt747
незнакомец
Сообщения: 9
Зарегистрирован: 26.01.2009 13:47:44

Bugtracker для Lazarus работает?

Сообщение Cobalt747 »

У меня не открывается страничка http://bugs.freepascal.org, хотя хост замечательно пингуется.
Andreich
постоялец
Сообщения: 268
Зарегистрирован: 17.04.2008 12:33:43

Сообщение Andreich »

У меня все открывается!
Cobalt747
незнакомец
Сообщения: 9
Зарегистрирован: 26.01.2009 13:47:44

Сообщение Cobalt747 »

может порт не тот?

зашел телнетом на 80-ый порт, дал
Get roadmap_page.php

Код: Выделить всё

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
    <hr>
        <address>Apache/2.2.8 (Ubuntu) DAV/2 SVN/1.5.1 PHP/5.2.4-2ubuntu5.4 with Suhosin-Patch Server at bugs.freepascal.org Port 80</address>
</body></html>


Подключение к узлу утеряно.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

попробуй так.
Cobalt747
незнакомец
Сообщения: 9
Зарегистрирован: 26.01.2009 13:47:44

Сообщение Cobalt747 »

увы :-(
ftp://ftp.freepascal.org/ доступно, а вот
http://freepascal.org/ - нет (((
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

Ещё можно попробовать http://mantis.freepascal.org/my_view_page.php. А вообще, это, похоже, проблемы с маршрутизацией либо с прокси-сервером у вашего провайдера. Обратитесь в службу поддержки.
yuray
новенький
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Сообщение yuray »

У меня тоже не открывается. :(
А очень надо. При переходе с 0.9.24 на 0.9.27 с gtk на gtk2 на строчке

Код: Выделить всё

 if AVariant = Unassigned then Exit;

получаю ошибку 'EVariantInvalidOpError': Invalid variant operation Array of Variant = Empty.
Гугля дала ссылку на страничку. Подскажите,
что там написано? Как решить проблему?

Добавлено спустя 12 часов 21 минуту 23 секунды:
Видимо действительно проблемы с маршрутизацией. На работе все открылось.
Правда проблему с variant это не решило. Но это уже другая тема.
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

yuray
Проверьте на свежих версиях FPC (2.3.1 и 2.2.3). Если не будет работать, сообщите в багтрекер, желательно приложив коротенькую тестовую программу.
yuray
новенький
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Сообщение yuray »

lazarus 0.9.27 rev 17945 fpc 2.2.3 - не работает. На последних ревизиях не проверял. На 0.9.24 работало.
В багтрекер напишу в понедельник, так как пока не работает. На всякий случай, у кого есть возможность подтвердите ошибку на последних ревизиях. Вот код

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  v: Variant;
begin
  v := VarArrayCreate([0, 1, 0, 2], varvariant);
  if v = Unassigned then
    ShowMessage('Unassigned')
  else
    ShowMessage('Assigned');
end;
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

Lazarus здесь не причём. Работа с variants зависит только от FPC. Вот упрощённый вариант вашей программы:

Код: Выделить всё

program variant_test;
uses variants;
var
  v: Variant;
begin
  v := VarArrayCreate([0, 1, 0, 2], varvariant);
  if v = Unassigned then
    writeln('Unassigned')
  else
    writeln('Assigned');
end.

С FPC 2.2.3 действительно не работает.

Думаю, что и с 2.3.1 тоже работать не будет, так как этот код выдаёт ровно ту же ошибку и в Delphi 7. :mrgreen:
И, думаю, это логично, так как V после VarArrayCreate является массивом.

А вот такой код работает:

Код: Выделить всё

program variant_test;
uses variants;
var
  v: Variant;
begin
  v := VarArrayCreate([0, 1, 0, 2], varvariant);
  if v[0,0] = Unassigned then
    writeln('Unassigned')
  else
    writeln('Assigned');
end.
yuray
новенький
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Сообщение yuray »

Такой код мне не подходит, так как он не проверяет значение v. Если мы убирем инициализацию v, то будет другая ошибка :(

Код: Выделить всё

program variant_test;
uses variants;
var
  v: Variant;
begin
  //v := VarArrayCreate([0, 1, 0, 2], varvariant);
  if v[0,0] = Unassigned then
    writeln('Unassigned')
  else
    writeln('Assigned');
end.

Как мне проверить значение переменной variant наперед не зная ее тип?
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

yuray писал(а):Как мне проверить значение переменной variant наперед не зная ее тип?

Единственное, что мне приходит в голову, это перехватить исключение при несрабатывании метода проверки, и попытаться проверить по-другому.
Я с variant никогда плотно не работал, может кто-то подскажет более хороший метод.

Кстати, а зачем вы так упорно хотите обойти механизмы типизации Паскаля?
yuray
новенький
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Сообщение yuray »

Может следует про это в багтрекер написать, так как в 0.9.25 все работало нормально?
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

О чём писать-то? Логичное поведение, к тому же совместимое с Delphi.
Впрочем, можете попробовать, вдруг разработчики проникнутся. :mrgreen:

Правильный же метод решения ваших проблем - это не бороться с системой типизации и доработать архитектуру вашего софта.
yuray
новенький
Сообщения: 95
Зарегистрирован: 22.05.2008 14:19:19
Откуда: Ровно, Украина

Сообщение yuray »

Решил проблему так

Код: Выделить всё

program variant_test;
uses variants;
var
  v: Variant;
begin
  v := VarArrayCreate([0, 1, 0, 2], varvariant);
  if VarIsArray(v) then
    writeln('Assigned')
  else
  begin
    if v = Unassigned then
      writeln('Unassigned')
    else
      writeln('Assigned');
  end;
end.

Так вроде все работает. Извините за оффтоп.
Ответить