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

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

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

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

Сообщение Дож » 17.12.2015 15:26:17

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

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

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

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

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

Сообщение Mikhail » 17.12.2015 16:10:47

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

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

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

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

Сообщение Дож » 17.12.2015 16:28:35

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

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

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

Мне интересно ещё что вот из этого выйдет
http://lists.freepascal.org/fpc-devel/2 ... 36433.html
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

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

Сообщение AlexSh » 17.12.2015 16:49:54

Исключения в DLL теперь работают или так и оставили этот глюк, кто в курсе?
AlexSh
незнакомец
 
Сообщения: 1
Зарегистрирован: 17.12.2015 16:45:27

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

Сообщение Mikhail » 17.12.2015 17:10:48

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

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

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

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

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

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

Сообщение Дож » 17.12.2015 17:29:32

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

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

Я не очень понимаю о каких мнениях идёт речь. В каком посту сформулировано Ваше мнение?
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

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

Сообщение kazalex » 17.12.2015 18:54:54

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

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

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

Любой язык имеющий богатую жизненную историю не будет выглядеть "стройной логической структурой", просто медицинский факт.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

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

Сообщение Дож » 17.12.2015 19:01:46

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

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

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

Сообщение kazalex » 17.12.2015 19:35:48

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

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

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

Сообщение Лекс Айрин » 17.12.2015 19:50:43

kazalex, не доживут.
Ява уж точно.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

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

Сообщение kazalex » 17.12.2015 20:07:12

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

Это новый фортран-то не доживёт?
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

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

Сообщение Лекс Айрин » 17.12.2015 20:49:40

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

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

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


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

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

Сообщение kazalex » 17.12.2015 21:33:54

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

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

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

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

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

Стандарт не показатель. Найди стандарт паскаля, и сравни насколько он далёк от современного состояния дел.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

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

Сообщение daesher » 17.12.2015 22:15:02

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

Код: Выделить всё
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; 

Если в окне ничего не менять, метка станет т.
Или я - баян?
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

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

Сообщение Mikhail » 18.12.2015 08:21:47

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

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

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

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

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

Голословное утверждение.
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Пред.След.

Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru