Вышла новая версия компилятора FreePascal

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

Mikhail писал(а):Тогда это какое-то недозамыкание. :)

Как данная проблема (сохранение параметров «reference to» замыкания в момент создания) решена в Delphi?

Mikhail писал(а):Да еще и разрешаются заведомо ошибочные действия. Плохая, негодная фича. :)

Ссылку на метод тоже можно ошибочно использовать (например, когда объект уже уничтожен к моменту использования) — делает ли это ссылку на метод негодной фичей?
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

Дож писал(а):Как данная проблема (сохранение параметров «reference to» замыкания в момент создания) решена в Delphi?

Наверное никак...
Дож писал(а):Ссылку на метод тоже можно ошибочно использовать (например, когда объект уже уничтожен к моменту использования) — делает ли это ссылку на метод негодной фичей?

Да. Но здесь несколько иное, здесь такое поведение ожидаемо, в отличие от недозамыкания.
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

Да. Но здесь несколько иное, здесь такое поведение ожидаемо, в отличие от недозамыкания.

ОК — «is nested ссылки» неправильно назвать замыканиями.

Но на тему ожиданий — также неправильно ожидать, что компилятор авмтоматически «захватит» все нужные параметры в языке, в котором не все типы автоматически управляемы (к примеру, class, object). В C++ все аргументы по умолчанию сохраняются ссылками, но программист вправе явно указать какие из них должны быть скопированы.

Мне интересно ещё что вот из этого выйдет
http://lists.freepascal.org/fpc-devel/2 ... 36433.html
AlexSh
незнакомец
Сообщения: 1
Зарегистрирован: 17.12.2015 15:45:27

Сообщение AlexSh »

Исключения в DLL теперь работают или так и оставили этот глюк, кто в курсе?
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

Дож писал(а):
Да. Но здесь несколько иное, здесь такое поведение ожидаемо, в отличие от недозамыкания.

ОК — «is nested ссылки» неправильно назвать замыканиями.

Но на тему ожиданий — также неправильно ожидать, что компилятор авмтоматически «захватит» все нужные параметры в языке, в котором не все типы автоматически управляемы (к примеру, class, object). В C++ все аргументы по умолчанию сохраняются ссылками, но программист вправе явно указать какие из них должны быть скопированы.

Мне интересно ещё что вот из этого выйдет
http://lists.freepascal.org/fpc-devel/2 ... 36433.html

Думаю, что наша дискуссия не имеет смысла, потому что даже после 1000 страниц каждый останется при своем мнении. Для Вас язык просто набор слабосвязанных "фич" для меня это некоторая стройная логическая система. Странно, что Вы выбрали Паскаль, Вам больше бы подошли С++ или С#.
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

Mikhail писал(а):Думаю, что наша дискуссия не имеет смысла, потому что даже после 1000 страниц каждый останется при своем мнении. Для Вас язык просто набор слабосвязанных "фич" для меня это некоторая стройная логическая система. Странно, что Вы выбрали Паскаль, Вам больше бы подошли С++ или С#.

??? Это особенно внезапно слышать после того, как я признал, что «is nested»-ссылки — это не замыкания :)

Я не очень понимаю о каких мнениях идёт речь. В каком посту сформулировано Ваше мнение?
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Дож писал(а):Мне интересно ещё что вот из этого выйдет
http://lists.freepascal.org/fpc-devel/2 ... 36433.html

Это, несомненно, увеличит привлекательность FPC для более широкого круга пользователей.

Mikhail писал(а):Для Вас язык просто набор слабосвязанных "фич" для меня это некоторая стройная логическая система.

Любой язык имеющий богатую жизненную историю не будет выглядеть "стройной логической структурой", просто медицинский факт.
Аватара пользователя
Дож
энтузиаст
Сообщения: 900
Зарегистрирован: 12.10.2008 16:14:47

Сообщение Дож »

Любой язык имеющий богатую жизненную историю не будет выглядеть "стройной логической структурой", просто медицинский факт.

Java? Haskell? :)
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Дож писал(а):Java? Haskell?

Доживут до возраста паскаля, ещё и не так раскорячатся :mrgreen:
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kazalex, не доживут.
Ява уж точно.
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Лекс Айрин писал(а):Ява уж точно.

Это новый фортран-то не доживёт?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

kazalex, а разве старый еще умер?

Если ты назвал Яву новым фортраном, то ты глубоко заблуждаешься. Она, кстати, давно скомпрометирована и, фактически, сброшена со счетов.

из вики (пусть это источник не совсем заслуживающий доверия, но все же...)
Версия языка Haskell 2010 — была объявлена в конце 2009 г[3], но последней «значительной» версией (стандартом) остаётся Haskell 98.


Этим все, насчет перспектив языка, сказано.
kazalex
постоялец
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Сообщение kazalex »

Лекс Айрин писал(а):Если ты назвал Яву новым фортраном, то ты глубоко заблуждаешься

С коболом перепутал.

Лекс Айрин писал(а):Она, кстати, давно скомпрометирована и, фактически, сброшена со счетов

Какие у тебя источники? Все финансы давно сидят на жабе, а область весьма консервативная.

Лекс Айрин писал(а):Этим все, насчет перспектив языка, сказано

Стандарт не показатель. Найди стандарт паскаля, и сравни насколько он далёк от современного состояния дел.
daesher
постоялец
Сообщения: 221
Зарегистрирован: 09.03.2010 21:17:14

Сообщение daesher »

Балуюсь со строками. Сваял два микромодуля:

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

unit correctstring;

{$mode delphiunicode}{$H+}

interface

uses
  Classes, SysUtils,LazUTF8;
type TUtf8String=record
    Holder:UTF8String;
    function GetStr(i:integer):UTF8String;
    procedure SetStr(i:integer;Ch:UTF8String);
    property Str[i:integer]:UTF8String read GetStr write SetStr;default;
  end;

implementation
function TUtf8String.GetStr(i:integer):UTF8String;
begin
  Result:=UTF8Copy(Holder,i,1);
end;
procedure TUtf8String.SetStr(i:integer;Ch:UTF8String);
var s1,s2:UTF8String;
    L:Integer;
begin
  if i>0 then
    s1:=UTF8Copy(Holder,1,i-1)
    else s1:='';
  L:=UTF8Length(Holder);
  if i<L then
    s2:=UTF8Copy(Holder,i+1,L-i);
  Holder:=s1+Ch+S2;
end;

end.     

и

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

unit UTF8Str;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils,correctstring,LazUTF8;
type
  TUtf8String=correctstring.TUtf8String;
operator :=(TS:TUtf8String):UTF8String;
operator :=(S:Utf8String):TUTF8String;
function Length(TS:TUtf8String):Integer;
implementation

operator:=(TS: TUtf8String): UTF8String;
begin
  Result:=TS.Holder;
end;

operator:=(S: Utf8String): TUTF8String;
begin
  Result.Holder:=S;
end;

function Length(TS: TUtf8String): Integer;
begin
  Result:=UTF8Length(TS.Holder);
end;

end.     


И оно работает: можно индексировать строку по символам
Например, так:

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

procedure TForm2.Button2Click(Sender: TObject);
var TS1:TUtf8String;
begin
  TS1:=InputBox('Введите строку','Введите','cтрока');
  Label1.Caption:=(TS1[2]);
end; 

Если в окне ничего не менять, метка станет т.
Или я - баян?
Mikhail
энтузиаст
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Сообщение Mikhail »

Дож писал(а):??? Это особенно внезапно слышать после того, как я признал, что «is nested»-ссылки — это не замыкания :)Я не очень понимаю о каких мнениях идёт речь. В каком посту сформулировано Ваше мнение?

Но Вы же не признали что они не нужны в Паскале. :) Нестед ссылки тоже, кстати, не нужны.

Дож писал(а):Я не очень понимаю о каких мнениях идёт речь. В каком посту сформулировано Ваше мнение?

Это не первая дискуссия на тему развития FPC и я уже неоднократно высказывался на эту тему.

Добавлено спустя 58 секунд:
kazalex писал(а):Любой язык имеющий богатую жизненную историю не будет выглядеть "стройной логической структурой", просто медицинский факт.

Голословное утверждение.
Ответить