LINUX.ORG.RU

Lazarus 1.4

 , , ,


0

5

22 апреля 2015 года тихо и незаметно вышла очередная версия кроссплатформенной среды разработки, использующая компилятор FPC версии 2.6.4 — Lazarus 1.4.0-0
О релизе:

  • Добавлены методы и утилиты для загрузки объектов за счет средств FPC.
  • Изменения коснулись форматов файлов ресурсов LCL: теперь их можно редактировать, используя файлы ресурсов на платформе Windows.
  • Добавлены совместимые c Delphi компоненты TDateTimePicker, TDBDateTimePicker, TComboBoxEx и TCheckComboBox.
  • Появился новый класс THintWindowManager, улучшающий работу подсказок в редакторе.
  • Многочисленные изменения функционала IDE.
  • Компонент TOpenGLControl теперь работает в GNU/Linux.
  • Переписаны и изменены некоторые компоненты и параметры.

>>> Release notes

★★★★★

Проверено: JB ()
Последнее исправление: cetjs2 (всего исправлений: 4)

Ответ на: комментарий от Napilnik

Весь пост целиком бред. Нет желания даже комментировать.

Если C++ для тебя вынос мозга это твои проблемы, не смог осилить - не лезь в программирование. Все же остальные могут с таким же успехом писать «sumOfStrings = s1 + s2;».

Налепили, ассемблерщики, фанатики, ... Что ты этим хотел сказать? Какие конкретно претензии? Не смог осилить инструмент для профессионалов?

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

О бурлящих стандартах вообще из другой оперы. Какое они отношение имеют к конкретному языку программирования на котором реализуются?

Скриптота каким боком вообще к ЯП? Это касается исключительно системы. К счастью для неосиляторов вроде тебя есть тупые гуй-тыкалки вроде сабджа.

Зачем ты про богомерзкий маздай разговор завёл на тематическом форуме? Хорошо известный факт что там всё через жопу сделано. Впрочем с Qt собирал под него без единственного изменения в коде.

mongo
()
Ответ на: комментарий от anonymous

Ну и нахрен мне здались твои базовые строки если я пишу process scheduler?

А на вашем паскале типа вася и петя не могли сами наляпать свой класс для, например, типа Matrix. А потом решить совместить? Ваш мамонт умеет вообще OOP? А operator overloading?

mongo
()
Ответ на: комментарий от handbrake

Учебник по информатике для начальной школы осилил и решил похвастаться? Молодец, садись 5!

mongo
()
Ответ на: комментарий от mongo

Ну и нахрен мне здались твои базовые строки если я пишу process scheduler?

А что, обязательно все типы и функции RTL сразу использовать? Ты так себе программирование представляешь?

А на вашем паскале типа вася и петя не могли сами наляпать свой класс для, например, типа Matrix. А потом решить совместить?

Типов матриц может быть вагон и телега, а строки это всегда цепочка литералов. Но я правильно понимаю, что со старцами из комитета ты не согласен?

Ваш мамонт умеет вообще OOP? А operator overloading?

Все перечисленные тобою в этом топике базворды дано не новинка в паскале, учись студент.

anonymous
()
Ответ на: комментарий от mongo

Весь пост целиком бред. Нет желания даже комментировать.

Так нечем тебе осмыслять и комментировать, вот набросить на вентилятор у тебя получается.

Если C++ для тебя вынос мозга это твои проблемы, не смог осилить - не лезь в программирование. Все же остальные могут с таким же успехом писать «sumOfStrings = s1 + s2;».

У тебя забыл разрешение спросить.

Налепили, ассемблерщики, фанатики, ... Что ты этим хотел сказать? Какие конкретно претензии? Не смог осилить инструмент для профессионалов?

Да ты сам фанатик и всюду пропагандируешь профессиональные вилы для фекалий без рукоятки и удивляешься что народ брезгует твоим любимым инструментарием в ОС, в которой почти весь софт не профессиональный, т.е. в ней мазаться в цппкакашках предлагается из любви к искусству.

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

Толку там от него когда в кутях не то что натужно и постоянно поддержать что-то не нужное корпорациям, но даже баг в пользовательских программах на них поправить обычно некому. Есть бага в софте, ну и хрен с ней, не всегда же барахлит - пусть профессионалы исправят, лет через 100 или 200.

О бурлящих стандартах вообще из другой оперы. Какое они отношение имеют к конкретному языку программирования на котором реализуются?

Рожи производящие действия примерно одни и те же. Как же, сменили во внутренностях версии динамических либ - какое достижение для конечных пользователей, отличная работа дружного коллектива!

Скриптота каким боком вообще к ЯП? Это касается исключительно системы. К счастью для неосиляторов вроде тебя есть тупые гуй-тыкалки вроде сабджа.

Твои ЯП не могут собираться без лишней скрипоты, такие уродливые они созданы, всё прописывается снаружи и на других ЯП. Нравится копаться в посторонней скриптоте, исправления в которой скорее всего поломают в следующей версии? Это диагноз.

Зачем ты про богомерзкий маздай разговор завёл на тематическом форуме? Хорошо известный факт что там всё через жопу сделано.

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

Впрочем с Qt собирал под него без единственного изменения в коде.

И как же крики фанатиков: программы должны иметь морду с нативным видом, вплоть до буквочки и пикселя?

Napilnik ★★★★★
() автор топика
Ответ на: комментарий от anonymous

В стандарте c++11

Тьфу ты. Какой это, к чертям, стандарт если он только про один язык. Это между собой выпили-порешали.

handbrake ★★★
()
Последнее исправление: handbrake (всего исправлений: 1)
Ответ на: комментарий от handbrake

Это между собой выпили-порешали.

Ну хоть что-то.

anonymous
()
Ответ на: комментарий от mongo

Читать я умею, но ты не написал пока тут ниче достойного прочтения.

Объясните мне каким образом из моего утверждения «паскаль устарел» был сделан вывод

Вывод был зделан не мной, и не вывод это вовсе а реакция на жир с тебя текущий. Ты это свое утверждение конкретезировать можешь? что конкретно, где и когда устарело?

zamtmn ★★
()
Ответ на: комментарий от anonymous

Думаю пора уже закрыть тему текстовой строки в C++ т.к. там есть такой тип данных в стандартной библиотеке. Т.к. это стандартная библиотека считай что это часть стандарта. Если, как ты утверждаешь, в паскале давно есть OOP и operator overloading следовательно на нём с таким же успехом упомянутые выше вася и петя смогут наляпать свои несовместимые реализации.

Более того я не вижу смысла встраивать этот тип данных непосредственно в язык а не в стандартную библиотеку. Единственное объяснение которое приходит на ум - либо паскаль недостаточно гибок что бы реализовать данный тип данных на самом паскале в удобной для использования форме, либо тормозной/жрущий память.

mongo
()
Ответ на: комментарий от Napilnik

Ты тупо не осилил C++ и теперь ворчишь что весь мир не прав, приводя совершенно нелепые аргументы. Ну конечно, всё это заговор злобных фанатиков и сионистов писать всё на богомерзком C/C++ и ругать пасаль. LOL

mongo
()
Ответ на: комментарий от mongo

следовательно на нём с таким же успехом упомянутые выше вася и петя смогут наляпать свои несовместимые реализации

Могут, только им это не нужно т.к. есть стандартные строки на любой вкус.

Единственное объяснение которое приходит на ум - либо паскаль недостаточно гибок что бы реализовать данный тип данных на самом паскале в удобной для использования форме, либо тормозной/жрущий память

А на каком языке оно по твоему реализовано в паскалевской RTL? И кстати, человеку не знающему о возможностях языка лучше бы воздержаться от уничижительных эпитетов в его адрес, а то выглядишь идиотом.

anonymous
()
Ответ на: комментарий от mongo

Нет, реализовано не как в срр. Да, средствами языка стринги не описать. Это паскаль, это не срр. Завязывай тролить или вали в какуюнить стотысячную тему про то где правильней писать * у типа или у переменной

zamtmn ★★
()
Ответ на: комментарий от mongo

Если всё так же реализовано как и в C++

Не так же - круче.

к чему этот разговор про отсутствие типа string???

Это ты не меня спрашивай, а тех Вась и Петь, которые занимаются велосипедостроением. Или погугли std::string <-> QString - чистый онанизм.

anonymous
()
Ответ на: комментарий от zamtmn

Да, средствами языка стринги не описать. Это паскаль, это не срр

Вывод: паскаль убожество для неосиляторов C++.

mongo
()
Ответ на: комментарий от anonymous

Автоматический вызов конструктора и деструктора при входе\выходе в зону видимости не реализовать, поэтому не ошибаюсь.

zamtmn ★★
()
Ответ на: комментарий от mongo

Вывод: тема детектор для голословных «суперпрограмистов» срр. Надо посоветовать разрабам выпускать релизы не во время весеннего обострения у некоторых личностей

zamtmn ★★
()

Я как-то делала в нём курсовую по Delphi. Преподаватель не принял. Сказал, что у нас Delphi, а не Visual Basic.

Kisska
()
Ответ на: комментарий от zamtmn

Автоматический вызов конструктора и деструктора при входе\выходе в зону видимости не реализовать, поэтому не ошибаюсь.

Какое убожество!!!

mongo
()
Ответ на: комментарий от Kisska

Я как-то делала в нём курсовую по Delphi. Преподаватель не принял. Сказал, что у нас Delphi, а не Visual Basic.

Блондинко?

anonymous
()
Ответ на: комментарий от Kisska

Мне кажется, преподы на Delphi все такие.

Точно, блондинко.

anonymous
()
Ответ на: комментарий от zamtmn

Вывод: тема детектор для голословных «суперпрограмистов» срр

Хватит писать чушь через браузер написанный голословными суперпрограммистами работающий под OS написанной голословными суперпрограммистами передавая байты через роутеры в которых TCP/IP stack написанный голословными суперпрограммистами. Валите уже в свой распрекрасный мир паскаля где нет «постоянно распухающих стандартов», есть «компонент в дельфях создающий браузер несколькими кликами мышки» и нет злобных сиплюсовиков которые «грузят вагонами говно в стандарты интернет браузеров» (Lazarus 1.4 (комментарий)). Непонимаю, чего вы медлите.

mongo
()
Ответ на: комментарий от mongo

std:string <-> QString осуществляется без всяких проблем.

Подмышкой пёрнуть тоже можно, только зачем. Прекрасная демонстрация того, что в каждой «уважающей себя» либе свои строки. Цирк на конной тяге.

anonymous
()
Ответ на: комментарий от zamtmn

Автоматический вызов конструктора и деструктора при входе\выходе в зону видимости не реализовать, поэтому не ошибаюсь.

Ещё раз говорю - ошибаешься. Во-первых, прекрасно реализуется и без них, во-вторых они скоро будут.

anonymous
()
Ответ на: комментарий от anonymous

В виде pchar или «старых» string[length] возможно, но не в виде строк с подсчетом ссылок.

во-вторых они скоро будут.

Поживем увидим. Как тут выше заметили одни вилы с прорезинеными ручками уже есть, а паскаль хорош совсем не этим))

zamtmn ★★
()
Последнее исправление: zamtmn (всего исправлений: 1)
Ответ на: комментарий от mongo

Ты тупо не осилил C++ и теперь ворчишь что весь мир не прав, приводя совершенно нелепые аргументы. Ну конечно, всё это заговор злобных фанатиков и сионистов писать всё на богомерзком C/C++ и ругать пасаль. LOL

Не было текущей потребности корёжить мозги ради освоения плюсов. А мнение обезьянок кующих трон «чёрному властелину» никого не интересует, какой инструмент в руки дадут, тем и будут работать. Причём отдельные экземпляры будут славить любую лажу, которой их накормит властелин, это в свойствах человеческих характеров. Миллион мух конечно же не может ошибаться.

Napilnik ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Не буду спорить, у меня такой нужды небыло и не планируется

zamtmn ★★
()
Ответ на: комментарий от mongo

Я сказал что паскаль устарел (да он вобщем то и не позиционировался никогда как язык для профессионального программирования, разработан вроде был для обучения студентов хотя остаётся совершенно непонятным что мешало этим студентам изучать C).

Из года в год хейтеры повторяют эту чушь!

Из года в год повторяю: ни один язык не создавался для обучения кого бы то ни было чему бы то ни было. Все языки создаются для удобного написания программ.

sniper21 ★★★★★
()
Ответ на: комментарий от buratino

В OpenBSD его нет, а, следовательно, не существует.

Есть Free Pascal, но вы же сможете скачать исходники Lazarus, распаковать их и вбить в их корне команду make?

sniper21 ★★★★★
()
Ответ на: комментарий от sniper21

Есть Free Pascal, но вы же сможете скачать исходники Lazarus, распаковать их и вбить в их корне команду make?

Это не способ. И не повод. Особенно для такой сложной системы, где куча линкеров, либ и всего прочего - с вероятностью, близкой к 100%, это надо будет доводить до вменяемого состояния... а затем, если захочется удалить - удалить всё не получится.

Поэтому, вне зависимости от того, могу я это или нет, я так делать никогда не буду (кроме как в специально созданной для этого виртуалке, которую потом просто прибью с концами)

buratino ★★★★★
()
Ответ на: комментарий от buratino

Теоретик, ты понимаешь, что только что прилюдно обосрался?

anonymous
()
Ответ на: комментарий от mongo

либо тормозной/жрущий память.

Тест с простыми программами. Не ради срача, а ради интереса сделал.

#include <stdio.h>

int main()
{
	printf("Hello C!\n");
	getchar();
	return 0;
}
begin
	writeln('Hello Pascal!');
	readln();
end.

Вот сколько места занимает в оперативке каждая программа.
C компилятор - gcc 4.9.2
Pascal компилятор - fpc 2.6.4

PS. Ни в коем случае не претендую на полноту теста, а так же не использовались ключи оптимизации при компиляции. PSS. Нравятся оба языка.

ChuCha
()
Ответ на: комментарий от Kisska

В моем вузе был год программирования(не IT, но технический). Нас учили на delphi, но я договорился с преподом, что буду писать на си — он мне задания отдельно давал.

ChuCha
()
Ответ на: комментарий от mongo

Ты чиво тут раскукарекался? Ну не нравится тебе Паскаль с Лазарусом, ну проходи мимо и не используй их, тебя же никто не заставляет. Лазарус это в первую очередь инструмент разработки, и инструмент вполне удобный, задачу быстрой и удобной разработки решает. То что паскаль не такой как С++ - ну и что с того? Язык как язык, да есть некоторые неудобства в синтаксисе, но к ним привыкаешь. Да и дело в целом в человеке, если кодер рукожоп от природы, ему хоть С++, хоть Яву дай, толку не будет. А задачи вполне решаются и на паскале с лазарусом. Всем добра )

xterro ★★★★★
()
Ответ на: комментарий от xterro

Язык как язык, да есть некоторые неудобства в синтаксисе, но к ним привыкаешь.

Паскаль один из самых читабельных языков - читабельнее, пожалуй, только ада - поэтому у него нет проблем с синтаксисом. Приверженцы c-like синтаксиса вечно кивают на begin/end, и... и больше им сказать нечего.

anonymous
()
Ответ на: комментарий от anonymous

Begin/End - это мелочи, всё не могу привыкнуть: 1. Часто забываю, что перед «else» точка с запятой не ставится 2. Разный стиль разделителей - запятая/точка с запятой в сигнатуре функции и в её вызове. Т.е при описании, аргументы разделяем точкой запятой, а при вызове просто запятой. Вроде бы мелочи, но батхерд доставляет :)

xterro ★★★★★
()
Ответ на: комментарий от mongo

В паскакале, на тот момент, что я его помню, были:
String со структурой Length:byte,Text:char[255], которые позволяют самим фактом их использования не корраптить память, а length(stringVar) - это очень быстрая операция, всего-то нулевой байт массива строк считать. Сейчас там скорее всего байт растянули до инта, а в тексте юникод. Кста, расскажите кто в курсе.
PChar - ссылка на ноль терминированный массив char'ов как в сях, используется для дерганья api реализованных на сях и стрельбы в ногу, поскольку требует ручного контроля длины (родные паскалевские программы тупо не не уязвимы к buffer-overrun).
Паскалевские строки, без хаков переполнить невозможно, емнип, они обрезаются. Но при желании можно взять указатель на строку и работать с памятью напрямую (например обрезать строку, записав в len меньшую длину), но это не приветствуется. На паскале можно писать как на С, плеваться на отсутствие java-like ООП, но это от того что кто-то не осилил сам паскаль и не понял, что ему эти все подпорки попросту не нужны.
По поводу перегрузки - есть директива override, используется при наследовании в ООП, перегружать простые вещи запрещено - в языке все происходит явно и трактуется однозначно, по идеологии близко к питону.
Нет (по крайней мере не было) абсолютных возможностей #define. Сначала после С непривычно (макроподстановок тоже не хватает), но это и правильно, нет бомб типа #define TRUE FALSE, и сам язык вынуждает грамотнее проектировать, по достижению просветления, код на паскале становится компактнее и элегантнее сишного, открой исходники самого паскаля и посмотри как он написан сам на себе - там все реализации чего угодно обычно укладываются строк в 10, а то и меньше, да, там будет и прямая работа с памятью, но локализовано, что оно не врзывается под ногами и устраняет кучу рутины. Натыкать GUI приложение с парой TLabel, TEdit, ShowMessage выводяшим набронное и кнопкой завершения - секунд 20 вместе кодом и глючить там будет нечему. Ты можешь конечно усраться, но сишный аналог, полученный через пару минут лучше работать не будет, а вот дебага потребовать может и с ростом программы, эффект только усиливается.
Чувак, кончай обвинять пасквилянтов в неосилении сей, я, например, похоже, забыл их раньше, чем ты их учить начал. Ты бы свои знания продемонстрировал сначала, от тебя одни вопли и ни строки кода, ты даже тупые ошибки в моем коде проигнорировал.

handbrake ★★★
()
Ответ на: комментарий от xterro

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

anonymous
()
Ответ на: комментарий от xterro

Begin/End - это мелочи, всё не могу привыкнуть: 1. Часто забываю, что перед «else» точка с запятой не ставится

Очень просто - простой if then else ДОЛЖЕН влезать в одну строку - точка с запятой там как бельмо будет. Если конструкция не влезает в строку, то только так -

if ... then begin
...
end else begin
...
end;
Правда, есть религия по которой begin на следующую строку выносят, но это религия.

2. Разный стиль разделителей - запятая/точка с запятой в сигнатуре функции и в её вызове. Т.е при описании, аргументы разделяем точкой запятой, а при вызове просто запятой. Вроде бы мелочи, но батхерд доставляет :)

В описании у ',' и ';' разный функционал, за точность уже не ручаюсь, но как-то так:

procedure someproc(var a,i : integer;  b : integer = 0);
// при описании через ',' перечисляем параметры одного типа, ';' разделитель 'команд' описания
...
var
  integer a,b;
begin
  a := 1;
  b := 2;
  someproc(a,b);
...
  someproc(a,b,2);
  writeln("новые значения a и b",a,b);
end;
// при вызове через ',' перечисляем параметры, ';' разделитель команд

handbrake ★★★
()
Ответ на: комментарий от handbrake

Сейчас там скорее всего байт растянули до инта, а в тексте юникод. Кста, расскажите кто в курсе.

Есть несколько типов строк. Есть и старые строки, с байтом длины с заголовке, есть новые (ну как новые, с 95-96 года они такие). AnsiString/UnicodeString это динамически строки со счётчиком ссылок, с механизмом copy-on-write, с поддержкой различных кодировок. В AnsiString один элемент строки равен байту, в UnicodeString - слову. Перекодировка строк, если требуется, осуществляется прозрачно в момент присваивания. Строки можно безопасно приводить к указателю (PChar,PAnsiChar,PWideChar), в конце они имеют символ-терминатор (#0). Кстати, получение длины там делается также быстро, как и раньше - длина указывается в заголове находящемся по отрицательному смещению, который также хранит размер элемента строки и кодовую страницу. Это вкратце.

Нет (по крайней мере не было) абсолютных возможностей #define. Сначала после С непривычно (макроподстановок тоже не хватает)

В диалекте FPC все эти радости есть. Хотя по дефолту отключено.

Чувак, кончай обвинять пасквилянтов в неосилении сей, я, например, похоже, забыл их раньше, чем ты их учить начал.

Кстати, я тоже в паскаль пришёл из мира си.

anonymous
()
Ответ на: комментарий от ChuCha

А я пожалуй сравню на более-менее реальных сложных cad программах: draftsight/qcad/librecad/zcad. Без каких либо претензий, просто циферки и эмоции.

draftsight - насколько понимаю с++ qt, коммерческий движек dwg\dxf, наиболее полная поддержка разных dxf фич и оптимизаций обработки чертежа

qcad - c++ qt, из оптимизаций насколько я понимаю есть spatialindex и lod`ы примитивов

librecad - c++ qt, форк кукада n-летней давности, ниче особо не оптимизирует, тупо рисует всё что есть.

zcad - fpc+lcl, не дописан, но для данного теста функционала хватит. из оптимизаций есть spatialindex и lod`ы

Замеряю в цифрах расход памяти (показатели Memory\SharedMem из KSysyGuard в мегабайтах) на пустом чертеже и на тестовом, и ощущения от «работы» с тестовым чертежем («ощущения» потому что цифровые показатели могу привести только для zcad). Под работой подразумеваю zoom\pan чертежа, выделение примитивов, добавление\удаление примитивов. Тестовый чертеж выбран небольшим ~20к примитивов, чтоб уж совсем не ставить в тупик librecad)). KUbuntu 15.04 x86_64

draftsight: пустой чертеж (~70/~183) тестовый чертеж (~147/~199) Ощущения приятные - всё отзывчиво, иногда проскакивают «подвисания» и «моргания» чертежа - спишу на мою криво обновленную кубунту.

zcad: пустой чертеж (~37/~82) тестовый чертеж (~147/~87) Ощущения приятные - всё отзывчиво.

qcad: пустой чертеж (~152/~90) тестовый чертеж (~407/~91) Ощущения плохие - не отзывчиво, притормаживает, работать вроде можно, но при этом приходится материться и нервничать

librecad: пустой чертеж (~23/~39) тестовый чертеж (~102/~41) Ощущения очень плохие - работать невозможно - всеравно что играешь с FPS=0.5

zamtmn ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.