Версия PascalABC.NET 3.3


#1

Выпущена версия PascalABC.NET 3.3

Основные изменения:

Новый модуль 3D-графики Graph3D
Новый модуль растровой графики GraphWPF
Кардинально улучшен Intellisense в лямбда-выражениях

Основные изменения после выхода версии 3.2:

Обновление версии PascalABC.NET из оболочки
Операция безопасного среза: a?[-1:5:2]
Реализованы виртуальные свойства
Делегатам можно присваивать лямбда-выражения
Реализовано кортежное присваивание var (a,b) := (1,2)
Добавлен цикл loop
Ускорение компиляции за счет поиска стандартных dll только в GAC
operator* и operator+ для процедур
Ряд новых методов расширения для двумерных массивов
Полная поддержка Nullable<T>

#2

operator* и operator+ для процедур - а можно содержательный пример ?


#3

Да да, хотелось бы подробные описания для пунктов найти/получить…


#4

Ну, например, вот решение одной задачи для школьников:

var Зигзаг := Right*13 + Down + Left*13 + Down;
Run(Зигзаг*4);


#5

Немного посмотрел Graph3D. Спасибо. А как там произвольную сетку (mesh) создать или из файла загрузить? Чашку например к тому чайнику, который в примерах. Вроде бы сейчас за основу взят helix-toolkit. По нему не особо много документации, но загрузчики с нескольких стандартных форматов там есть. Только не знаю, как этим воспользоваться из PascalABC.NET


#6

Ну, документацию попозже напишем. Не всё есть


#7

Будет ли когда то лямбда подсказывать тип и методы переменных которые она использует? Если да то может добавите на гитхаб?


#8

Уже позволяет. Единственная проблема - правильная лямбда должна быть вначале полностью написана.


#9

Полагаю это вписывается к названию этой темы. Кхм кхм… Есть какие то причины, какая то сложная проблема, которая стала поперёк горла, кроме отматывания этой issue на вторую страницу :smiley:?


#10

Будет когда либо добавлено авто выведение типа для параметров подпрограмм? procedure p1(b := true);


#11

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


#12

Конструкторам не даёт делать короткую запись подпрограмм, мне понадобилось сделать 1 основной и несколько упрощённых(меньше параметров), упрощенные вызывают основной давая параметры по умолчанию. Приходится добавлять лишние begin end; на строчке каждого конструктора.


#13

По ходу работы возник вопрос: работают ли директивы OpenMP в модулях, или только в программах?


#14

Да, нам тоже это мешает. Напишите в Issue с Label “enhancement”. В конструкторах сделать это сложнее чем в методах к сожалению - надо морочиться.


#15

Директивы работают везде, кроме тех, которые задают информацию о .exe (типа производитель, компания, копирайт и т.д.)


#16

issue сделал, а вот лейблы могут ставить только редакторы.


#17

@Admin почему typeof и sizeof закомментированы?

            //keywords.Add("typeof", "typeof"); keys.Add("typeof");
            //keywords.Add("sizeof", "sizeof"); keys.Add("sizeof");

#18

Не знаю. А Вам это мешает?


#19

Ну их из за этого нету в Ctrl+Space, я не давно сделал список всего что там не хватает а с этими не понял что не так. Они же ключевые слова…


#20

Вот в этой фиксации @ibond закомментировал их…