LINUX.ORG.RU

Релиз 2.2.4 свободного компилятора Free Pascal

 ,


0

0

На радость школьникам и студентам 12 апреля, в День Космонавтики, вышел новый стабильный релиз свободного компилятора языка программирования Free Pascal, который считается средством разработки кросс-платформенных приложений.

Страница для загрузки

В основном эта версия посвящена исправлению ошибок.
Список изменений, которые могут повлиять на уже существующие проекты
Логи изменений в Subversion

>>> Сайт проекта

★★★★★

Проверено: svu ()
Ответ на: комментарий от Place-des-Arts

>Меня возмутил список

Лисперское ЧСВ взыграло? На самом деле весьма правильно ограничение, ограничить список небольшим количеством самых известных языков, что бы уравнять участников.

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

> Это не знание, а иллюзия знания. C++ --- один из самых сложных (если не самый сложный) языков, мне известных.

Никто не говорит про абсолютное знание C++ до мельчайших подробностей, зато писать программы уже через неделю хоть какие-то уже можно - факт.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от redgremlin

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

Так автор проекта и есть бывший школьник мечтатель типа "[нужны программисты и дизайнеры]я пишу игру, сценарий сегодня буду писать, название предложите своё, прибыль поделим". И сайт у него был что-то вроде newgame.da.ru.

Критерий полного ужаса это не логика в обработчиках. Было целое поколение дельфи-игр(генерал из этого поколения). Все они умерли при переезде с win9x что ли, не помню точно. С какого-то момента половина контролсов формы оказалась за границами окна, а другая половина была расположена случайно.

Place-des-Arts
()
Ответ на: комментарий от redgremlin

>Лисперское ЧСВ взыграло? На самом деле весьма правильно ограничение, ограничить список небольшим количеством самых известных языков, что бы уравнять участников.

Pascal и Borland C\С++ 3.1 - "самые известные языки"? Капец.

Place-des-Arts
()
Ответ на: комментарий от Place-des-Arts

>Pascal и Borland C\С++ 3.1 - "самые известные языки"?

А что, в школах теперь не им, а хаскелю с эрлангом учат? Я что-то пропустил?

redgremlin ★★★★★
()
Ответ на: комментарий от Place-des-Arts

>Было целое поколение дельфи-игр(генерал из этого поколения). Все они умерли при переезде с win9x что ли, не помню точно

Не видел такого ни разу.

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

в том, что сишники опустились до уровня паскальщиков...

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

>А что, в школах теперь не им, а хаскелю с эрлангом учат? Я что-то пропустил?

Причём тут хаскелль и ерланг? Если не борланд C 3.1 то сразу хаскелль? ФГМ. Естественный вариант "почему не GNU C" вам даже в голову не пришёл.

Place-des-Arts
()
Ответ на: комментарий от Vest

>Сам удивляюсь, неужто нет единого стандарта в округлении чисел. В математике одно, в компьютерах другое.

Всё очень даже стандартно.
Округление до целого - отбрасывается дробная часть, если она меньше 0.5 и прибавляется 1, если больше.
floor(n) - отбрасывается дробная часть
ceil(n) - добавляется 1, если дробная часть != 0
Приводится к int - в зависимости от архитектуры системы и языка. Обычно просто отбрасывается дробная часть. Но нужно помнить о погрешности bin<->dec дробей.

KRoN73 ★★★★★
()
Ответ на: комментарий от Place-des-Arts

Сферический препод в вакууме о нем может и не знать, все просто, нет в методичке - от лукавого, и разбираться, чем он от борланда отличается никто не будет.

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

> Для математического округления и взятия целой части есть разные функции.

Вообще разговор шёл о Round:

Round returns the nearest integer to x. The result is of type integer. In the case of equidistance, the result is machine-dependent (or depends on the behaviour of the processor).

> Там вообще про целочисленное деление и остатки.

Можно принять, как частный случай целочисленного деления (мало ли у тебя получится -2.5, а его надо округлить и использовать дальше).

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

>Специалисты в первую очередь указывают на императивность и архитектурные особенности, не позволяющие использовать его довольно широко, как, напирмер, традиционную 1-проходность компилятора.

FPC уже давно не однопроходный

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

>Скорее уж славное исключение из большого семейства реализаций :)

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

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

> предмет неприязни паскаля... - Средней руки программисты вспоминают поколение дельфистов - формошлепов, и все что с этим феноменом связано.

бггг :) Такой дури я не читал со времён первой графической ОС! Оказывается, делать удобные, графические приложения в удобной графической IDE - это "формошлёпство", а то же самое, но руками и в С++ - высший пилотаж! :) Срочно к доктору!

> - Специалисты в первую очередь указывают на императивность и архитектурные особенности, не позволяющие использовать его довольно широко


Императивность - недостаток?!?!! На такую чушь можно только покрутить у виска и показать диаграмму процентного соотношения софта, написанного на "императивном Си". Про "архитектурные особенности" - аналогичный фуфлогон.

Походу, кто-то прогулял лекцию по паскалю, где сравнивались его возможности с языком Си - АБСОЛЮТНО ИДЕНТИЧНЫМ вплоть до тупой замены begin/end на {}.

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

Re:Императивность - недостаток?!?!

"...Проблемой является не только и не столько узкое горлышко для передачи информации, но и (что куда более важно) узкое интеллектуальное горлышко, в котором мы крепко засели со своими рассуждениями типа 'слово-за-шаг' вместо того, чтобы подняться до мышления более общими концептуальными категориями решаемой в данный момент задачи" (с) J.Backus

PS. под узким горлышком он имеет ввиду оператор присваивания да и собсно фон-неймановскую архитектуру вычислений.

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

> Походу, кто-то прогулял лекцию по паскалю, где сравнивались его возможности с языком Си - АБСОЛЮТНО ИДЕНТИЧНЫМ вплоть до тупой замены begin/end на {}.

По-моему это ты что-то прогулял, видимо курс Си.

1. procedure determinant(x: ^^double)?

2.
#ifdef DEBUG
#define LOG(format, ...) {\
fprintf (stderr, format, ## __VA_ARGS__); \
fprintf (stderr, "\n");}
#endif

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

> Оказывается, делать удобные, графические приложения в удобной графической IDE - это "формошлёпство"

Такую глупость про дельфи могут писать толоько те, кто либо ничего большого не писал на дельфи (т.е, они не в теме), либо игнорировали модульное тестирование и декларативное описание интерфейса ООП-БД и БД-Delphi и всё делали руками (а они свои советы они могут оставит при себе).

sv75 ★★★★★
()
Ответ на: Re:Императивность - недостаток?!?! от impfp

Re:Императивность - недостаток?!?!

> ... (с) J.Backus PS. под узким горлышком он имеет ввиду оператор присваивания да и собсно фон-неймановскую архитектуру вычислений.

А откуда эта цитата? А то я как раз начал писать работу на тему.

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

>Потому что множества там -- недоделанные и ненужные (здесь я не в курсе про последний fp), а ещё у нас юникод на дворе. А ещё очень неясна эффективность такой конструкции, в отличите от <= and >=

Ну там будет просто использоваться битовая карта множества для проверки вхождения элемента. Так что если число вариантов большое, то оно должно быть эффективнее <= and >=

А почему недоделанное?

kss ★★★★★
()
Ответ на: Re:Императивность - недостаток?!?! от sv75

Re:Императивность - недостаток?!?!

Сборник статей (переводы с английского) "Мат. логика в программировании" Мск, "Мир" 1991 ISBN 5-03-00-1635-X , c.55

Собственно перевода тьюринговской лекции Бэкуса там нет - тока цитирование, т.ч. смотри тут: http://www.stanford.edu/class/cs242/readings/backus.pdf

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

>1. procedure determinant(x: ^^double)?

Никто же не говорил, что Pascal должен быть синтаксически одинаков с C. А с тем, что подобная конструкция (переменная типа указатель на указатель на double) в нём реализуется ты же спорить не будешь? Кстати, раз у тебя под рукой есть fpc можешь проверить в нем, сработает такая конструкция с двумя ^ в type (если нет, то это более неприятно, чем в твоем варианте). Желательно с разными вариантами {$MODE}

>2. #ifdef DEBUG #define LOG(format, ...) {\ fprintf (stderr, format, ## __VA_ARGS__); \ fprintf (stderr, "\n");} #endif

{$ifdef} и тп в языке давно есть, в турбопаскале точно были. array of const как параметр процедуры для передачи в неё списка параметров заранее неизвестной длины, тоже есть, хотя уже не настолько давно, но в Дельфях не помню с какой версии точно были. Плюс ещё в fpc что-то свое на эту тему прикручивали.

Всё-таки тема про fpc, а не виртовский исходный паскаль.

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

>весь Embedded - это чистый Си.

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

A-234 ★★★★★
()
Ответ на: комментарий от kss

> в турбопаскале точно были. array of const как параметр процедуры для передачи в неё списка параметров

Тут речь про макроопределения с переменным числом параметров, вообще-то. (да, это gcc, но и паскаль не из ISO).

> Никто же не говорил, что Pascal должен быть синтаксически одинаков с C.

А по-моему, как раз и говорит. См. выше оратора, ушибленного дельфи.

> А почему недоделанное?

По массе причин.

1. Нет "foreach a in s do" (если не сделали в fp, я не вижу)

2. Ограничение set of byte. set of (16 где) могло бы и быть, но в моём fp set of word падает. set of anything нет и быть не может.

Подробнее -- см. Лаврова (грызущего кактус паскаля вместо питона).

sv75 ★★★★★
()
Ответ на: комментарий от A-234

> В некоторых даже жаба запихана.

Причём как минимум в некоторые -- спецаильная ява без GC :)

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

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

Tu3eK
()

еще раз обобщу. пока в нашем быдлообразовании будут сидеть на паскалях и делфях, а действительно нужные вещи обходить стороной, и без того закритическая ситуация не изменится. российское недообразование отстало от жизни на 10 лет. быдлопреподы и прочие должны обратить внимание на опыт западных университетов, на стандарты IT-образования. плюс с учетом российской специфики преподавание 1С.

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

> еще раз обобщу. пока в нашем быдлообразовании будут сидеть на паскалях и делфях,

Если обобщать, то дельфи в образовании -- это обычно следствие жопы с оным, а вовсе не причина. Как сказал один преподователь, услышав что один из слабых факультетов переводит информатику на Си (учить которому, к тому же, будут дельфисты): "Теперь они будут не знать Си!"

sv75 ★★★★★
()

Отчего так много неадекватов среди паскалефобов? Значит ли это, что паскаль - причина, или фобия к паскалю это лишь следствие?

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

> Оказывается, делать удобные, графические приложения в удобной графической IDE - это "формошлёпство", а то же самое, но руками и в С++ - высший пилотаж! :)
> Императивность - недостаток?!?!!

Тролюшко, худай.

cab ★★★★
()
Ответ на: микроэтюд от impfp

услышав "паскаль" сколько школьников понабежало... но вижу первый интересный вопрос:

> // как эту функцию реализовать на Си?

1. В gcc имеется расширение "вложенные функции"

2. Если же хочется без расширений, то берется С++ и делается класс F с двумя методами f и h и полем t.

www_linux_org_ru ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

>Никто не говорит про абсолютное знание C++ до мельчайших подробностей, зато писать программы уже через неделю хоть какие-то уже можно - факт.

С питоном можно писать уже вечером того же дня, как сел осиливать. Но вот чтобы программистом стать 10 лет учится надо. Так что торопится некуда.

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

>1. Нет "foreach a in s do" (если не сделали в fp, я не вижу)

Это реализуется простейшим циклом, или вам под каждый выверт нужна языковая конструкция?

>2. Ограничение set of byte. set of (16 где) могло бы и быть, но в моём fp set of word падает. set of anything нет и быть не может.


А сколько такие множества будут занимать памяти и насколько эффективно их будет использовать?

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

>Это реализуется простейшим циклом
Нууууу... for - все-таки цикл, а foreach - паттерн... совершенно разный уровень приземленности к процессору, так сказать :)

>А сколько такие множества будут занимать памяти и насколько эффективно их будет использовать?
FPC set полностью совместим с турбопаскалевской реализацией (32 байта = 256 элементов) + оптимизация, если размер множества до 32 элементов (тогда set занимает 4 байта)

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

>1. Нет "foreach a in s do" (если не сделали в fp, я не вижу) Что-то я не видел среди операций, применимых ко множеству, перечисления. Со последовательностью не путаешь?

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

В паскале множество это скорее аналог bitset в C++. Кто кстати видел нормальную библиотеку к паскалю? наподобие STL для C++ или java, или .net ?

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

«Есть разные мнения о возможности мышления вне языка, но я убежден, что аналитическое мышление того типа, который нужен в компьютерном программировании, тесно связано с языковыми навыками. Я не думаю, что является случайностью то, что многие из знакомых мне лучших программистов имеют дипломы по истории, филологии и схожим наукам. Также не является случайностью то, что некоторые из виденных мной худших программ были написаны инженерами, физиками и математиками, затратившими в университете массу энергии на то, чтобы держаться как можно дальше от занятий по языку и литературе. Сущность заключается в том, что математическая подготовка почти не нужна в компьютерном программировании. Тот тип организационного мастерства и аналитических способностей, который нужен для программирования, связан полностью с гуманитарными науками. Логика, например, преподавалась на философском факультете, когда я был в университете. Процесс, используемый при проектировании и написании компьютерных программ, почти полностью идентичен тому, который используется, чтобы сочинять и писать книги. Процесс программирования совсем не связан с теми процессами, которые используются для решения математических уравнений» © Аллен Голуб

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

Ну, квантор всеобщности. Опиши, пожалуйста, с использованием одного только этого квантора предикат разложения множества в последовательность.

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

я же привел примеры. Хотя-бы типобезопасные vector,list,set,map,queue,deque. Желательно что-то вроде boost, там есть классы для сети, потоков, поддержка функциональной парадигмы.(это примеры из С++). java и .net предоставляют все это.

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

"Предиката разложения" быть вроде бы не может, это не императивное понятие. Если приведешь описание типа "множество" для языка Haskell, я могу написать функцию преобразования его в список.

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

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

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

Мое imho - множества сделаны в большинстве ЯП перечислимыми исключительно ради удобства и унификации, например, для использовании того же foreach. Паскалевские же множества - случай с указанной точки зрения весьма и весьма специфичный. :)

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

>В паскале множество это скорее аналог да, так.

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

>> Да, и учитывая наличия и пропроцессора современный fpc, видимо, можно использовать как strange-looking С при обучении, согласен.

> Чем наличие препроцессоров облегчает обучаемость? Их наличие только ломает структуру языка.

Ели учить казуалов -- безусловно, одни минусы. Если учить по специальности -- то их наличие позволяет объяснить студентам, что авторы понимали, что их язык небезупречен, и добавили отдельный уровень поверх его основного синтаксиса. Расширяет сознание.

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

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

Бьюсь об заклад, под математикой здесь понимается матан и чмы, а вовсе не дескретка, автоматы, логика, тфя.

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