Замечания и предложения

Кстати, вроде недавно был разговор о том что IDE много оперативки жрёт, но сложно найти воспроизводимый случай.

Так вот у меня сейчас открыт PABCSystem и пара файлов на 10 строк (ради тестирования граничных случаев).
И после этих 3 часов редактирования PABCSystem (TypeName и связанное с ним) - IDE уже сожрала 8 гигов.

1 лайк

Что если автовыводить типы формальных параметров, если они являются параметрами по умолчанию?

То есть вместо

procedure pr(b: boolean:= true)

разрешить писать

procedure pr(b:= true)
1 лайк

Плохая идея. Смахивает на именованные параметры по умолчанию при вызове.

что-то я не понял о каких “именованных параметрах по умолчанию” идёт речь

В Паскале их нет - но они есть в C#. Языковая возможность, которую Вы предлагаете, есть вдругих языках для ДРУГОГО механизма.

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

Нет, плохое предложение, нарушающее дизайн языка. Нет такого ни в одном языке компиляционного типа, где типы указываются явно при описании процедур

А что насчёт возвращаемого значения? Его во многих компилируемых языках можно автовычислять?

Ближайший язык что я знаю, позволяющий автовычисление возвращаемого значения - это C++.
Но он же позволяет и автовычисление параметров:

#include <iostream>
using namespace std;

template <class T = decltype('x')>
auto f(T x = 'x') {
	cout << typeid(x).name() << endl; // char
	return 0;
}

int main()
{
	auto r = f();
	cout << typeid(r).name() << endl; // int
}

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

Если в имени папки 2 пробела, то авария при запуске без связи с оболочкой:

а нормально, что такая конструкция не компилируется?

## typeof(array of integer).SomeMethod;

приходится использовать

system.Type.GetType('System.Int32[]');

что менее удобно

Да. В typeOf надо использовать имя. введите синоним:

type IntArr = array of integer;

Понятно. .GetType('System.Int32[]') будет всё таки удобнее. Создавать синоним ради одной функции не очень правильно, с моей точки зрения

2 лайка

Есть одно спасение: Секцию type можно объявить между заголовком и телом подпрограммы, чтобы кинуть этот синоним туда.

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

Ещё такое предложение: сейчас уже есть кнопка “Свернуть все регионы”. Не хватает такой же, но для подпрограмм. Когда строки переваливают за тысячу – ориентироваться становится сложновато. Особенно если большую часть кода занимают перегрузки

А нельзя подпрограммы делать регионами? У меня в NumLibABC и в School именно так сделано.

Помогите пожалуйста. Установил pascalabc на macOS через 10 винду; Microsoft frameworks стоит предпоследний, запускается, но вечная загрузка. Как решить? Может для программы ещё, что-то требуется установить (из базовых приложений винды)?

Это как?

По региону на подпрограмму? Это уж слишком

Ну почему же на подпрограмму. Можно на группу, если есть функциональное разделение. Или все подпрограммы в один регион - все от Вашей фантазии зависит.