LINUX.ORG.RU

Вышел FreePascal-1.0.10


0

0

Наконец-то вышел последний релиз (как они говорят) ветки 1.0.
Исправлены ошибки версии 1.0.6, что было сделано ещё в developer-ветке
1.0.7 и неофициальной версии 1.0.8 (которую так и не выпустили официально).К сожалению, до полной стабильности следующей ветки (1.1-1.2) ещё далеко. А пока надо довольствоваться тем, что есть - или искать более или менее стабильные snapshotы ветки 1.1, которую сейчас умудрились заставить собирать себя на PowerPC, которая может работать с динамическими массивами, готова к "широким" строкам (WideString), работает с конструкциями
uses Unit1 in 'unit1.pas';
но, пока что, очень нестабильна - может даже запутаться в условном операторе, если через or, and, xor накрутить множество условий.

>>> Подробности

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

не о том ты спрашиваешь, ты их спроси как на Дельфи написать что-то вроде:

Functor< Tuple< TYPELIST_3(int, long, int) >, TYPELIST_2(int, double) > myFunctor;

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

2anonymous (*) (2003-07-16 18:11:35.047953)

>Вот пример где интерфейс, реализация и объект разнесены. Как такое сделать на дельфи ?

Ты действительно так наивен, что счетаешь, что что-то ДЕЙСТВИТЕЛЬНО нельзя написать на паскале/дельфи, или еще на каком языке, отличном от С++?

У меня на Borland Pascal была написана программа (инжененрные расчеты) где решалась система дифференциальных уравнений прямой иттерацией (сходимость шустрая была). На "двойке" счет занимал минут 10-15. А ДОС однозадачный. А юзверь хочет натолкать вариантов, и домой спать пойти...
Мной, в рамках этой программы, была реализована многозадачность с приоритетами и прочей ерундой. Все это классно работало. Пока идет расчет, пользователь в исходных данных правит несколько значений, и запускает счетать, и дальше клепает варианты... Так можно было легко на всю ночь расчетов натолкать. Вот только с файловыми операциями задница была. Все ДОС. И все это было написано на паскале и асме.

Только не подумай. Я не достаю свой конец, и не прикладываю к нему линейку. Просто говорю, что можно решить и весьма спецефическую задачу, да впринципе, на любом языке программирования. Реализация будет другая, другие особености инструментария будут использованы, быстрее/медленнее работать... Но сделать можно все.

У меня была знакомая, которая на бейсике такие программы писала!!!! Я думал это вообще не реально отладить! Нет! Работало! И прекрасно работало. Другое дело, сколько она на это сил грохнула. На С, точно на порядок меньше бы затратила. Но факт остается вактом. Оно РАБОТАЛО!
Там этих GOTO было!!!!!!!!!!!!!!!! Просто чума!

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

2anonymous (*) (2003-07-16 18:28:36.231693)

>А кто такие приплюснутые?

C++ Аналогии не находишь? :))

Кстати, когда еще Курехин жив был, они тут сбацали такую программу (по телику) в которой красной нитью провели что Ленин был грибом! Я уписался когда смотрел. Но прикол в том, что на следующий день "Комсомолка" опубликовала статью озаглавленную "Ленин не был грибом".

ЗЫ. Ты смайлик вконце моего поста видил? :)

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

> C++ Аналогии не находишь? :))

А причем тут Си?

> "Ленин не был грибом".

Врут.

> ЗЫ. Ты смайлик вконце моего поста видил? :)

Видил. А ты в конце моего поста смайлик видел?

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

>> C++ Аналогии не находишь? :))
>А причем тут Си?
А ни при чем. Просто... С++ -> Си приплюснутый -> "приплюснутые", читай, фанатеющие на почве С++ Ну, типа, "Кто болеет за Зинит, у того всегда стоит!" Кричалка такая.
:))

>> "Ленин не был грибом".
>Врут.
Ага. Незря называлась "Комсомольская ПРАВДА" :)

>> ЗЫ. Ты смайлик вконце моего поста видил? :)
>Видил. А ты в конце моего поста смайлик видел?
Ага. Видил. Я еще один поставил.

:)


vada ★★★★★
()

В TopSpeed Modula-2 году этак в 92 я сам писал под дос программы с использованием процессов и виртуальной памяти. Потому что язык это позволял делать. Можно было даже пытаться приоритетами процессов управлять.

anonymous
()

Я сначяла на паскале учился. Пять лет в Dephyah просидел. Круто. Перешел на C++. Отстой. Нечитабельно. Попробовал C. Е мое: это самый логичный язык из всех трех. Вывод: паскаль для объектного програмирования лучше, C быстрее и к машине ближе.

anonymous
()

Интересное наблюдение

Скачал я, собственно, Subj (плюнувши на флейм :) ).

Никогда не обращал внимание на ридми, а сейчас почитал...
--
This package contains a freeware 32-bit pascal compiler for Intel 80386 and compatibles as well as for Motorola 68020 and compatibles. The language and the runtime library are more or less compatible to TP 7.0. Some Delphi additions have also been implemented like classes, exceptions, ansistrings and rtti.
--

Более всего интересно про платформы.

Может быть, стоит вспомнить идею gcc - "Gnu Compiler Collection" и резко расширить список поддерживаемых платформ?
В общем-то, сделать компилятор pascal (+ additions) в промежуточный код и/или си - не такая непосильная задача.

Ау, пасквилянты!
Возьмёмся? ;p)

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

2vada (*) (2003-07-16 19:10:36.910804):

> Только не подумай. Я не достаю свой конец, и не
> прикладываю к нему линейку.

В этом ошибка.
Здесь так не принято :)

Dimentiy ★★
()

> В общем-то, сделать компилятор pascal (+ additions) в промежуточный код и/или си - не такая непосильная задача.

Наверное просто никому не надо (попытки то ведь были: p2c, ptoc). Проще изучить Си.

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

to Dimentiy:

>Может быть, стоит вспомнить идею gcc - "Gnu Compiler Collection" >и резко расширить список поддерживаемых платформ? >В общем-то, сделать компилятор pascal (+ additions) в промежуточный >код и/или си - не такая непосильная задача.

imho, на родных просторах лучше развивать что-то более свежее: 1) Ада - _уже_ наиболее развитый и стандартизированный язык промышленного программирования 2) Оберон - как перспектива на будущее

anonymous
()

2Dimentiy (*) (2003-07-16 17:44:36.370361)

>Ну-ну. То есть, по-вашему, константы в си и паскале объявляются
>одинаково? Мда.... Вы наверное не поняли об чём речь.

По-моему говорилось о прикручивании железок, вот только я действительно не понял -- причем тут константы? Синтаксис языков разный, следовательно и объявление констант делается по разному. Тогда причем тут железки? Частенько приходилось/приходится прикручивать разные микроконтроллеры к PC -- никогда проблем не испытывал со стороны того -- как объявляются константы.

>Надо объявить константу STR_CONNECT_INIT , равную 2 (например).
>И пользовать это объявление для компиляции обеих частей - и
>встраиваемого софта, и PC-части.
>Это уменьшает количество проблем при синхронизации исходников
>(вернее, убирает проблемы вообще).
>Да, мелочь. Но таких мелочей....

Опять не понял. О синхронизации каких исходников вы говорите? Если я стыкую писюк с железкой, то у меня исходник только один -- это писюковая часть. Но не суть важно! Вы уже сами ответили на свой вопрос -- "...мелочь..." и таких мелочей не так много, что-бы при этом отвергать Pascal как язык.

>Ну, есть CompareStrings. Два вопроса:
>- С какой версии D оно там есть? Почему не сразу такая очевидная
>вещь?

Не помню. Москва не сразу строилась.

>- А главное, почему на каждый бздык надо класс наследовать?

А почему бы и нет? Это не так плохо, если подходить с умом.

>Такие вещи должны быть независимы от непосредственно класса, если по
>уму проектировать. Я хочу менять алгоритм _в_классе_TStrings_ .

Какие "такие вещи"? Сравнение строк? Дык сравнивайте себе на здоровье, хоть зависимо, хоть независимо. Но если Вы говорите о callback-функции, то уж звиняйте -- есть некоторые правила на оформление, так извольте их придерживаться, не желаете -- пишите свой класс/модуль/или_что_там_хотите, вот только причем тут Паскаль?

>Да, кстати:
>http://www.delphikingdom.com/asp/talktopic.asp?ID=272

На мой взгляд там звучит вполне здоровая критика VCL. И совсем не критикуется Паскаль. ;-))

>Вытекает, вытекает. Именно потому, что каждый раз классы
>перелопачиваются, вместо добавления новых.

А Вы предлагаете "одевать" старые баги в новую "одежду"?

>Думаю, Вы не будете спорить, что язык Delphi - это не паскаль.
>В паскале указателей, и то нет.

Да! Delphi -- это уже не Pascal.
В Pascal есть указатели. В том же ANSI-ISO это выглядит примерно так:

var
MyIntegerPointer:^integer;



andrey-x
()
Ответ на: комментарий от Dimentiy

2Dimentiy (*) (2003-07-16 22:06:31.803187)

>for Motorola 68020
Забудь. Это, типа, 286. Уже не делают. Да и ошибок в компиляторе для моторолы тьма.

>Ау, пасквилянты!
>Возьмёмся? ;p)

А зачем?

vada ★★★★★
()

Говно ваш паскаль. И дельфи говно. И вообще всё говно. bash круче всех.

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

2anonymous (*) (2003-07-17 12:21:04.324017)

>И вообще всё говно. bash круче всех

Типа, bash самое крутое говно? Ну ты не прав! Извинись быстренько, пока ни кто не видил!

vada ★★★★★
()

[q]Может быть, стоит вспомнить идею gcc - "Gnu Compiler Collection" и резко расширить список поддерживаемых платформ? В общем-то, сделать компилятор pascal (+ additions) в промежуточный код и/или си - не такая непосильная задача. [/q]

Такое есть - p2c. Но при этом мы теряем важное достоинство компилятора паскаля - скорость. Т.е., лучше создать что-то вроде "универсального ассемблера" - язык примитивно низкого уровня - и с него компилировать. А платформ - теперь 1.1 и на PowerPC работает, куда уж дальше-то?

FoodTechnologist
() автор топика
Ответ на: комментарий от Odysseos

> Кстати - насколько помнится, в ISO-стандарт на C++ множественное наследование так и не вошло.

не правда -- смотри iso/iec 14882:1998, раздел 10.1 (Multiple base classes).

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

> ключевая вещь - СТРОГАЯ ТИПИЗАЦИЯ, которая изначально присуща _всем_ языкам программирования от Вирта и Аде.

с ada не знаком. а типизация как синтаксический финт ушами (delphi) и СТРОГАЯ типизация это разные вещи.

anonymous
()

А вообще паскаль для Linux'а нужен ??? Есть какие-либо серьезные решения на нем под эту ось ???

LJ

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

> anonymous (*) (2003-07-17 19:00:56.85974):
> Cи был написан на ассемблере.

Он написан на Web (смесь Паскаля с Тех'ом,
из которого автоматически получается код на Паскале).

Посмотрите исходники teTeX для примера.



tigra
()

В последнем сообщении имеется ввиду ТеХ, а не Си. Мне просто показалось :)

tigra
()

Вообще, интересно, почему Д. Кнут выбрал именно Паскаль?

tigra
()
Ответ на: комментарий от andrey-x

2andrey-x (*) (2003-07-17 09:10:38.84501):

> и таких мелочей не так много, что-бы при этом отвергать
> Pascal как язык.

и

> На мой взгляд там звучит вполне здоровая критика VCL. И совсем не
> критикуется Паскаль. ;-))

Mr. andrey-x !

Давайте если отвечаете _мне_ , так и спорьте с _моими_ высказываниями, а не валите всё в кучу.
Если найдёте сверху место, где я гоню _на_паскаль_как_язык_ - обещаю выдать медальку, шоколадную. А то логика страдает.
Только чур Delphi - это не паскаль (не столько паскаль).

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

2anonymous (*) (2003-07-16 22:58:05.353567):

> imho, на родных просторах лучше развивать что-то более свежее:
> 1) Ада - _уже_ наиболее развитый и стандартизированный язык
> промышленного программирования

Хотя конкретно для меня это чисто академический интерес, но наверное стоит посмотреть.

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

2vada (*) (2003-07-17 10:11:26.871507):

>>Ау, пасквилянты!
>>Возьмёмся? ;p)

> А зачем?

Патамушта штобы было.

На смайлики смотрим? ;-)

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

>>Может быть, стоит вспомнить идею gcc - "Gnu Compiler Collection" и
>>резко расширить список поддерживаемых платформ? В общем-то, сделать
>>компилятор pascal (+ additions) в промежуточный код и/или си - не такая
>> непосильная задача.
>Такое есть - p2c. Но при этом мы теряем важное достоинство компилятора
>паскаля - скорость. Т.е., лучше создать что-то вроде "универсального
>ассемблера" - язык примитивно низкого уровня - и с него компилировать.
>А платформ - теперь 1.1 и на PowerPC работает, куда уж дальше-то?

В общето так все и происходит. Полазте по опциям что fpc что gcc.
При желании можете получить "промежуточный" асмовый код.

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

to anonymous (*) (2003-07-17 16:46:33.909681):

>с ada не знаком. а типизация как синтаксический финт ушами (delphi) и СТРОГАЯ типизация это разные вещи.

Для начала определимся с понятиями:

Delphi - это RAD или проще - _среда_разработки_

Паскаль - это _язык_программирования_

И не надо путать одно с другим! ok?

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

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

to Dimentiy:

>Хотя конкретно для меня это чисто академический интерес, но наверное стоит посмотреть.

И таки стОит! А посмотреть можно здесь: www.ada-ru.org

anonymous
()

> Delphi - это RAD или проще - _среда_разработки_

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

> Паскаль - это _язык_программирования_

Кто сказал? :)

> Если говорить о "типизации как синтаксическом финте ушами", то это больше относится к C/C++... Вирт, в языке Паскаль, предложил и реализовал концепцию типа данных, а его последующие разработки развивают эту концепцию.

Про типизацию в паскале расскажите в su.softw или ru.programming.languages. Там вам объяснят, что же такое строгая типизация и в каких языках она есть. Да еще и ссылками обкидают.

anonymous
()

2Dimentiy
>Mr. andrey-x !
>
>Давайте если отвечаете _мне_ , так и спорьте с _моими_
>высказываниями, а не валите всё в кучу.
>Если найдёте сверху место, где я гоню _на_паскаль_как_язык_ - обещаю
>выдать медальку, шоколадную. А то логика страдает.
>Только чур Delphi - это не паскаль (не столько паскаль).

Приношу свои извинения! В споре как-то одно подменилось другим. Как ни старался избежать этого -- увы не получилось.



andrey-x
()

кстати pascal Вирта и вариации на тему данного языка от Borland/Inspire это несколько разные вещи. в "том" паскале небыло ни классов, ни нетипизированных указателей, ни управления памятью "вручную" (а значит memory-leak тоже не было -- как на таком языке вообще можно программировать?.. ;)).

Lucky ★★
()

2IceD
В Белоруссии Delphi в БГПА (БПИ,БНТУ) учят.
А, например, в БГУИР (РТИ) изучают твой любимый C++, во всяком случае на ФИТРе. Только уж лучше бы не учили...

А почему Вирт отморозок и паскаль - отстой, я так и не понял.
Говорить, что язык - дерьмо, а его создатель - урод, может только человек, который реально не разобрался с этим языком.

2анонизмус.
>Это с каких пор на Delphi можно реализовать тоже что и c++ ?
>Я в дельфи не спец, но для примера.

Варианты: либо обычный класс либо interface. Для обычного класса

AInterface = class
public
procedure method1; virtual; abstract;
procedure method2; virtual; abstract;
end;

AImpl : class (AInterface)

constructor Create ();
public
destructor Destroy; override;
procedure method1; override;
procedure method2; override;
end;

A= class
private
ptr: AImpl;
public
constructor Create { ptr = new A; }
destructor Destroy; override;
function Get: AInterface;
// операторы =, конструкторы копирования.
end;

constructor A.Create;
begin
ptr := AImpl.Create;
end;

destructor A.Destroy;
begin
ptr.Free;
end;

function A.Get
begin
Result := ptr;
end;

Примерно так.

>ЗЫ: А операторы new и delete можно заменить своими ?
>А template'ы есть ?
Где ты тут видел new и delete?
А что-то типа хитрых template а где-то видел. Какой-то извращенец после неоднократных выподов приплюснутых нечто такое показал.

ЗЫ. Лично мне практически все-равно на чем писать. Я выбираю язык под конкретную задачу с учетом ее развития и особых пожеланий заказчика. Разве что под обычный бейсик писать не люблю.

mst_72
()

Во, блин. Все отступы пропали.

mst_72
()

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

mst_72
()

> ... только человек, который реально не разобрался с этим ...

Золотые слова! Только как можно "реально разобраться" с языком? Его же как песню - "не задушишь, не убьешь"?

anonymous
()

>2IceD >В Белоруссии Delphi в БГПА (БПИ,БНТУ) учят. >А, например, в БГУИР (РТИ) изучают твой любимый C++, во всяком случае >на ФИТРе. Только уж лучше бы не учили...

А я как раз в РТИ учился. На ФИТУ (он сча ФИТР уже?). Си был один семестр. Преп языком не владел вообще. В итоге весь выпуск только и умел что на форму кнопку кинуть на дельфях. "Бля, нахуй наше бля образование, бля" (c).

IceD
()

oops. Круто лажанулся. ФИТР не в РТИ (просто в голове вертится. Там (на ФИТРе) как-раз "типа" Дельфи учат (лучше бы не учили)). На КСИС учат C и ASM все 5 лет (руки бы поотбивал), Делфи - не учат. VC - один семестр поверхностно.

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

2mst_72

Вы, похоже, реально разобрались с Дельфями. Не подскажете, как там с compile-time фишками? В плюсах Александреску вроде показал пару (хотя и убогих по сравнению со схемой :) - шутю, шутю) приемчиков. В дельфах аналоги имеются?

anonymous
()

Ну там списки типов и генрация иерархий. Или там "распознавание конвертируемости и наследования на этапе компиляции". Или мультиметоды времени компиляции.

anonymous
()

> Ну там списки типов и генрация иерархий. Или там "распознавание конвертируемости и наследования на > этапе компиляции". Или мультиметоды времени компиляции. Не знаю, про то ли Вы спрашиваете, но, по-моему, кое-что из этого связано с директивами компилятора (это-то есть, хотя, может, могло бы быть и больше). Идёт ли речь о завершении кода? Если да, то он есть (как в Delphi, так и в Lazarus). "распознавание конвертируемости и наследования на этапе компиляции" - ? Если речь идёт об ошибке несоответствия типов, то этим паскаль славится. Или речь о inline-процедурах (хотя непохоже).

FoodTechnologist
() автор топика

Почитал я всё и понял, что некоторые люди, высказывающие свое мнение имеют весьма приблизительное представление о теории языков. И им совсем невдомёк что си, паскаль, ява, ада и т.д. разные языки. Разного уровня разной мощности, с разным контролем типов. И такие скороспелые выводы - типа си/паскаль сукс, а паскаль/си рулезз могут делать люди далекие от программирования. И еще одно замечание - большой недостаток образования, так это то, что учат программировать на конкретном языке, а на самом деле программа это выражение мысли программиста на конкретном языке и чем больше языков знаешь, тем легче выразить свою мысль. В результате этого "обучения" у нас и появляются такие "специалисты". Я считаю, что каждый язык хорош. И большое спасибо людям которые написали fpc. Скорее всего люди, кричащие о том, что транслятор или язык плох - не в состоянии написать даже самого простого транслятора с какого нибудь простенького языка, не говоря уже о том что самому придумать какой-нибудь язык. Есть такая пословица на Украине - "чыя б корова мычала, а твоя б мовчала".

Саид.

anonymous
()

2anonymous (*) (2003-07-21 21:33:52.741354) >Ну там списки типов и генрация иерархий. Или там "распознавание >конвертируемости и наследования на этапе компиляции". Или мультиметоды >времени компиляции.

Можем попробовать поиграться, только так: код на C++ (а не интересная фраза про список типов и генерацию иерархий), затем попробую написать код на Delphi (ибо иначе могут поийти проблемы с пониманием проблемы и адекватностью решения). Сразу говорю, что некоторые решения, основанные на шаблонах C++ несколько затруднительно реализовывать на Delphi

mst_72
()

То есть, ради примера чисто по приколу написать библиотеку типа loki на Delphi? Очень грамотный подход. А главное, как конкретно приведен пример! Обычно фантазия участников местных форумов дальше одного-двух классов (функций) не заходила, так как обычно для объяснения позиций этого было достаточно. Такую наглость вижу впервые.
Ладно. В эту игру можно играть вдвоем
Из локи

#ifdef LOKI_USE_REFERENCE
# include "Reference/AbstractFactory.h"
#else
....

Близко похоже не Дельфи
uses SysUtils, {$IFDEF WIN32} Windows, {$ELSE} WinTypes, WinProcs, {$ENDIF}
Classes, Graphics;

А вот такого, полагаю, в локи нет:

if not Assigned ( CurrentMode ) then begin
if not Assigned ( NextMode ) then Exit;
CurrentMode := NextMode.Create ( Self );
NextMode := nil;
Exit;
end;
где
CurrentMode - объект
NextMode - класс, то есть для

TMode = class
constructor Create ( Owner: TObject );
end;

я могу создать
CurrentMode := TMode.Create ( nil );
или задать
NextMode := TMode;

На C++ это эквивалентно
class TMode {
public:
TCode ( void * Some ) {}
}

TMode * CurrentMode = new TMode ( NULL );
а вот с NextMode - обломс... Ибо не создавая TMode передать его тип аналогично тому, как это реализовано в Делфи будет проблематично.
Только вот не надо мне рассказывать про хитрые конструкторы, дополнительные вспомагателные классы и так далее.
Если бы были в Дельфи шаблоны, посмотрел бы я тогда... Но чего нет, того нет.

PS. А ссылок про автора и его книгу (кстати, стоит около 140 р.) и в Рунете предостаточно.

mst_72
()

> То есть, ради примера чисто по приколу написать библиотеку типа loki на Delphi?

Ну да. Я даже готов пару дней подождать.

> Очень грамотный подход.

Вот видите и вам понравилось.

> А главное, как конкретно приведен пример!

Ссылка дана. Код там есть. Остальное - отмазки (весьма гнилые).

> Обычно фантазия участников местных форумов дальше одного-двух классов (функций) не заходила,

Все когда-нибудь случается впервые.

> так как обычно для объяснения позиций этого было достаточно.

Каких? Что вывести "Hello world! одинаково трудно на любом языке? А значит все языки абсолютно одинаковые?

> Такую наглость вижу впервые.

Самому понравилось.

> Ладно. В эту игру можно играть вдвоем

1. Вы уж играйте как-нибудь сами.

2. Теперь у вас есть книжка за 140 рублей и вы ее наверно прочитали.

3. Ну так ответьте на вопрос от anonymous 2003-07-21 21:33, а то перепечатывать однажды написанное - дело излишнее.

anonymous
()

Windows сначала была писана на Pascal, после перепмсана на C.

anonymous
()

mst_72 (*) (2003-07-22 22:31:24.887125), покажи объявление для NextMode в данном примере.

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