PureBasic

История

2 Января 2019 : Версия 5.70 LTS (текущая)

- Добавлено: Совершенно новая подсистема QT для Linux
- Добавлено: HTTPRequest(), HTTPRequestMemory() (спонсор c-wayne)
- Добавлено: UseMySQLDatabase() (спонсор Paul)
- Добавлено: Поддержка DPI для приложений Windows
- Добавлено: константы #PS, #NPS, #PS$ и #NPS$ (Символ разделителя пути в зависимости от ОС)
- Добавлено: #PB_JSON_NoClear поддержка в ExtractJSONStructure
- Добавлено: #PB_Path_Winding режим заполнения для VectorDrawing
- Добавлено: DesktopResolutionX(), DesktopResolutionY(), DesktopScaleX(), DesktopScaleY(), DesktopUnscaleX(), DesktopUnscaleY()
- Добавлено: необязательный параметр 'Mode' для OpenConsole()
- Добавлено: MaterialTextureAliases()
- Добавлено: #PB_Vehicle_IsInContact, #PB_Vehicle_ContactPointX/Y/Z, #PB_Vehicle_ContactPointY/Z для GetVehicleAttribute()
- Добавлено: #PB_Vehicle_ContactPointNormalX/Y/Z, #PB_Vehicle_ContactPointNormalY/Z, #PB_Vehicle_CurrentSpeedKmHour, #PB_Vehicle_ForwardVectorX/Y/Z
- Добавлено: #PB_Material_ProjectiveTexturing для SetMaterialAttribute()
- Добавлено: ParticleScaleRate(), ParticleAngle(), CameraReflection()
- Добавлено: BuildMeshManualLod(), BuildMeshLod(), MeshVertex(), CreateDataMesh()
- Добавлено: EntityDirection(), EntityDirectionX(), EntityDirectionY(), EntityDirectionZ()
- Добавлено: #PB_Local/#PB_Parent/#PB_World поддержка для ApplyEntityForce(), ApplyEntityImpulse(), ApplyEntityTorque() и ApplyEntityTorqueImpulse()

- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

4 Февраля 2018 : Версия 5.62

- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

7 Января 2018 : Версия 5.46 LTS

- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

12 Сентября 2017 : Версия 5.61

- Исправлено: Проблема с сенсорной панелью на новом MacBook Air и проблема DebugOutput в Windows.
- Исправлено: Исправлено много ошибок. Заметные исправления - это прототипы и возвращение quad были с ошибками, вылеты MacBook Pro, и optionGadget в Windows теперь поддерживает клавиатуру.
- Обновлено: Пакет MacOS X теперь самодостаточен, чтобы быть совместимым с OSX Sierra.

- Обновлено: Эта версия подписана с новыми сертификатами, чтобы избежать ложных срабатываний (антивируса).

10 Августа 2017 : Версия 5.45 LTS

- Исправлено: Проблема с сенсорной панелью на новом MacBook Air и проблема DebugOutput в Windows.
- Исправлено: Исправлено много ошибок. Заметные исправления - это прототипы и возвращение quad были с ошибками, вылеты MacBook Pro, и optionGadget в Windows теперь поддерживает клавиатуру.
- Обновлено: Пакет MacOS X теперь самодостаточен, чтобы быть совместимым с OSX Sierra.

- Обновлено: Эта версия подписана с новыми сертификатами, чтобы избежать ложных срабатываний (антивируса).

2 Марта 2017 : Версия 5.60

- Добавлено: Поддержка GIF декодера.
- Добавлено: Поддержка больших иконок и текста в библиотеке ToolBar
- Добавлено: SetImageFrame(), GetImageFrame(), ImageFrameCount(), AddImageFrame()
- Добавлено: RemoveImageFrame(), SetImageFrameDelay(), GetImageFrameDelay()
- Добавлено: Поддержка UserAgent для ReceiveHTTPMemory(), ReceiveHTTPFile() и GetHTTPHeader()
- Добавлено: Поддержка #PB_Http_NoRedirect в GetHTTPHeader()
- Добавлено: "Joe Doe <joe.doe@domain.com>" поддержка формата электронной почты для SendMail()
- Добавлено: HTTPProxy() для поддержки прокси команд, связанных с Http
- Добавлено: Поддержка уровня сжатия для CreatePack() и CompressMemory()
- Добавлено: ParticleAcceleration(), ParticleColorFader(), ParticleEmitterAngle()
- Добавлено: Поддержка #PB_Material_AlphaReject, #PB_Material_TAM и #PB_Material_EnvironmentMap для SetMaterialAttribute()
- Добавлено: Новый необязательный параметр 'Layer' для SetMaterialAttribute()
- Добавлено: Новые режимы ориентации для SetNodeAnimationKeyFrameRotation() и AddStaticGeometryEntity()
- Добавлено: GetUserDirectory () для получения каталогов пользователя.
- Добавлено: Больше гибкости для Base64Decoder для обработки не дополненного ввода
- Добавлено: Base64Encoder () и Base64Decoder (), который принимает строку как ввод / вывод для более легкого использования (см. Изменение имени предыдущих команд ниже)
- Добавлено: Цветовые константы, такие как #Black, #Blue и т. д. для всех ОС
- Добавлено: Event(), чтобы получить текущее событие (в основном полезно для обработки обратного вызова)
- Добавлено: Поддержка #PB_Canvas_Container для поведения контейнера в canvas
- Добавлено: Поддержка #PB_EventType_Resize для PanelGadget(), ContainerGadget(), CanvasGadget() и ScrollAreaGadget()
- Добавлено: #PB_ListIcon_ColumnCount в GetGadgetAttribute() для ListIconGadget() для получения количества столбцов
- Добавлено: #PB_All поддержка в RemoveGadgetColumn() для удаления всех столбцов
- Добавлено: (IDE) шаблоны при создании теперь сохраняются, чтобы предотвратить потерю, если IDE не закрыта должным образом.
- Добавлено: (IDE) прыжок к процедуре, теперь автоматически развернёт ее, если она была свернута
- Добавлено: (IDE) новое специальное всплывающее меню для вкладки файла, облегчающее управление исходным файлом
- Добавлено: (IDE) найти предыдущий (обратный поиск)

- Замена: Переименована предыдущая команда Base64Encoder() в Base64EncoderBuffer()
- Замена: Переименована предыдущая команда Base64Decoder() в Base64DecoderBuffer()
- Замена: Удален синтаксис 'define.b' для изменения типа по умолчанию, так как это может привести к трудностям при поиске ошибок.

19 Декабря 2016 : Версия 5.51

- Обновлено: Пакет MacOS X теперь самодостаточен, чтобы быть совместимым с OSX Sierra

- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

19 Ноября 2016 : Версия 5.44 LTS

- Обновлено: Версия с исправлением ошибок текущей ветки LTS.
Она исправляет важные проблемы Linux и предоставляет новый способ установки приложения на OS X в соответствии с OSX Sierra. Теперь весь каталог purebasic встроен в PureBasic.app, поэтому, если вам нужно использовать командную строку, вам нужно будет добавить путь PureBasic.app/MacOS/Content/Resources/compiler к $PATH

25 Июля 2016 : Версия Версия 5.43 LTS

- Обновлено: Новая версия ветки долгосрочной поддержки PureBasic.
Все исправления, сделанные на 5.50, должны быть также в этой версии.

25 Июля 2016 : Версия 5.50

- Добавлено: Библиотека vehicles для легкого создания 3D автомобилей с колесами.
- Добавлено: PickBody(), чтобы легко манипулировать трехмерным телом с помощью мыши
- Добавлено: CreateTube(), CreateTorus(), CreateIcoSphere() и CreateCapsule()
- Добавлено: #PB_Entity_PlaneBody и #PB_Entity_ConeBody тип тела
- Добавлено: GenericJoint() для создания любого типа соединения
- Добавлено: Поддержка размера ограничивающего прямоугольника для CreateEntityBody()
- Добавлено: RegisterFontFile() для легкого использования файлов пользовательских шрифтов
- Добавлено: PathLength(), PathPointX(), PathPointY(), PathPointAngle()
- Добавлено: PathBoundsX(), PathBoundsY(), PathBoundsWidth(), PathBoundsHeight() чтобы получить ограничивающий прямоугольник векторного контура
- Добавлено: PathSegments(), AddPathSegments() для получения/установки векторного контура в строковом формате
- Добавлено: DebuggerError(), DebuggerWarning(), CloseDebugOutput()
- Добавлено: ResetStructure(), которая очищает и повторно инициализирует буфер структуры
- Добавлено: UTF8() и Ascii() для легкого создания строковых буферов UTF8 и Ascii (необходимо удалять с помощью FreeMemory())
- Добавлено: FormatNumber(), чтобы легко получать числа в денежном формате.
- Добавлено: #StringConstantПоддержка синтаксиса $, чтобы получить адрес строковой константы.
- Добавлено: #PB_MessageRequester_Info, #PB_MessageRequester_Error и #PB_MessageRequester_Warning для MessageRequester()

- Обновлено: SQLite Версия 3.13.0

- Замена: ParticleVelocity() для поддержки текущей скорости.

- Удалено: Режим ASCII для внутреннего представления строк PureBasic, теперь PureBasic работает только в Юникоде.

1 Марта 2016 : Версия 5.42 LTS

- Удалено: опция 'генерировать цикл событий' в настройках/форме
- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

23 Декабря 2015 : Версия 5.41 LTS

- Добавлено: 'auto' поддержка ScrollArea InnerWidth/Height библиотеке dialog

- Обновлено: Последняя версия ассемблеров для Windows, Linux и OS X

- Исправлено: французский документ полностью проверен "GG"
- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

16 Октября 2015 : Версия 5.40 LTS

- Добавлено: Новая библиотека VectorDrawing
- Добавлено: новая библиотека CGI со стандартной поддержкой и поддержкой FastCGI
- Добавлено: Поддержка экранирования строковых литералов с помощью оператора '~' (например: a$ = ~"Hello\nWorld\n")
- Добавлено: Функция EscapeString() / UnescapeString(), позволяющая экранировать операцию для любых строк (переменных и т.д.)
- Добавлено: EnumerationBinary для автоматического создания перечисления битовой маски.
- Добавлено: привязка параметров database для облегчения построения запроса.
- Добавлено: SetDatabaseBlob(), SetDatabaseFloat(), SetDatabaseDouble(), SetDatabaseLong()
- Добавлено: SetDatabaseQuad(), SetDatabaseString(), SetDatabaseNull()
- Добавлено: Поддержка SHA2 и SHA3 (224/256/384/512-бит) для библиотеки Cipher
- Добавлено: StringFingerprint()
- Добавлено: поддержка CRC32 в StartFingerprint()
- Добавлено: ReceiveHTTPMemory(), IsJoint()
- Добавлено: RefreshDialog() для пересчета измерения после изменения текста или аналогичного
- Добавлено: атрибут XML "group" для 'option' Dialog Gadget, чтобы явно указать группу
- Добавлено: HTTPS и простая поддержка аутентификации для ReceiveHTTPFile() и GetHTTPHeaders()
- Добавлено: Поддержка автоматического перенаправления для ReceiveHTTPFile() и ReceiveHTTPMemory()
- Добавлено: Асинхронный режим для ReceiveHTTPFile() и ReceiveHTTPMemory()
- Добавлено: HTTPProgress(), AbortHTTP() и FinishHTTP() для управления асинхронным режимом
- Добавлено: Поддержка HTTPS / TLS для SendMail()
- Добавлено: FlushPreferenceBuffers()
- Добавлено: CopyDebugOutput() для копирования вывода отладчика в буфер обмена из кода
- Добавлено: создание архива 7z
- Добавлено: поддержка создания и распаковки архивов tar (gz и bzip2)
- Добавлено: Полный путь в меню последних файлов IDE
- Добавлено: #PB_ProgressBar_Unknown для SetGadgetState() для указания неизвестного прогресса
- Добавлено: Поддержка #PB_UTF8/Ascii/Unicode для ReadCharacter() и WriteCharacter()
- Добавлено: #PB_UTF8 поддержка в URLEncoder() и URLDecoder (теперь режим по умолчанию)
- Добавлено: Поддержка Windows 8.1/10 и OS X 10.9/10/11 для OSVersion()
- Добавлено: #PB_Editor_xxx константы при использовании информации 'Версия' в Windows
- Добавлено: Поддержка #PB_Program_Ascii/Unicode/UTF8 для RunProgram()
- Добавлено: Флаги стиля linux/osx для компилятора командной строки в Windows для упрощения межплатформенных сценариев
- Добавлено: Поддержка #PB_File_SharedWrite для ReadFile() и CreateFile()
- Добавлено: Интерфейс компилятора 'IMPORTLIST' для получения всех предопределенных функций API
- Добавлено: Специальная строковая константа #Null$, влияющая на действительное нулевое значение для строки (чтобы полностью ее освободить). Это может также использоваться для функции API, которая иногда принимает NULL вместо строкового адреса
- Добавлено: Константа #Empty$
- Добавлено: Поддержка #PB_ByteLength для MemoryStringLength()
- Добавлено: Поддержка #PB_Ascii, #PB_UTF8 и #PB_Unicode для Create/Open/ReadFile() для установки режима записи/чтения по умолчанию
- Добавлено: Флаг #PB_ByteLength для PeekS() и #PB_UTF8 (только)
- Добавлено: CreateCone(), CameraCustomParameter(), ResizeCamera()
- Добавлено: #PB_Entity_DisableContactResponse для SetEntityAttribute()
- Добавлено: #PB_Entity_ConeBody, #PB_Entity_PlaneBody
- Добавлено: FreeEntityBody(), FreeTerrainBody()
- Добавлено: ApplyEntityTorque(), ApplyEntityTorqueImpulse()
- Добавлено: Добавлены параметры 'CollisionGroup' и 'CollisionMask' в RayCollide()
- Добавлено: Страница справки по миграции, чтобы иметь пошаговое руководство по миграции между старым на новом PureBasic.
- Добавлено: Руководство пользователя на немецком языке (спасибо Andre и Vera)

- Обновлено: В Linux библиотека printer использует родной GtkPrint вместо GnomePrint
- Обновлено: В Windows компилятор VC ++ 2013 для лучшей генерации кода
- Обновлено: SQLite на 3.8.10.2

- Исправлено: Поддержка архивов Zip
- Исправлено: проблемы с отправкой почты и HTTP-запросов
- Исправлено: Интерфейс компилятора 'CONSTANTLIST', теперь строковые константы возвращаются как экранированные строки.

- Замена: Версия GTK по умолчанию теперь GTK3 для Linux. Подсистема gtk2 была добавлена для обратной совместимости.
- Замена: Формат строки по умолчанию для RunProgram() read/writestring UTF8 вместо Unicode
- Замена: библиотека Cipher должна быть модульной (теперь нужно использовать UseMD5Fingerprint() и подобные команды)
- Замена: ExamineFingerprint() на StartFingerprint()
- Замена: NextFingerprint() на AddFingerprintBuffer()
- Замена: EntityPhysicBody() на CreateEntityBody()
- Замена: TerrainPhysicBody() на CreateTerrainBody()
- Замена: Параметр SendMail () 'Asynchronous' был заменен флагом #PB_Mail_Asynchronous.
- Замена: DLL Importer был удален и файлы .pbl больше не поддерживаются. Новые файлы 'import library' могут быть созданы с помощью ключа '/IMPORT' в pbcompiler.

- Удалено: Поддержка SetWindowCallback() для OSX. Вместо этого используйте BindEvent().
- Удалено: RemovePackFile()
- Удалено: Поддержка #PB_Packer_CompressedSize для ZIP и 7z архивов в PackerEntrySize()
- Удалено: AvailableScreenMemory()

27 Октября 2014 : Версия 5.24 LTS

- Исправлено: Новая версия LTS, которая включает исправления ошибок из новой версии 5.31

27 Октября 2014 : Версия 5.31

- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

25 Июля 2014 : Версия 5.23 LTS

- Исправлено: Новая версия LTS, которая должна включать большинство последних исправлений (исключая новую IDE, решаемую в новом режиме Unicode). Некоторые другие исправления, доступные для 5.30, могут отсутствовать, как будто мы заменяем слишком много внутренних компонентов библиотеки, мы не хотим помещать ее в старые ветки. Так что нет ничего нового, просто релиз стабилизации.

23 Июля 2014 : Версия 5.30

- Добавлено: Средство IDE 'Issues' для сбора и отображения маркеров TODO/FIXME внутри кода
- Добавлено: Библиотека JSON
- Добавлено: ParseXML(), ComposeXML(), InsertXMLArray/List/Map/Structure(), ExtractXMLArray/List/Map/Structure() в библиотеке XML
- Добавлено: OpenGLGadget() с нативными командами opengl и поддержкой констант для Windows, OSX и Linux
- Добавлено: ExamineRegularExpression() и связанные команды для обработки совпадений регулярных выражений шаг за шагом (с поддержкой группы)
- Добавлено: ClipOutput(), UnclipOutput(), SetOrigin(), GetOriginX(), GetOriginY()
- Добавлено: GetWindowData(), SetWindowData()
- Добавлено: AllocateStructure(), FreeStructure()
- Добавлено: Поддержка #PB_Default для WindowBounds() для сброса минимального / максимального размера
- Добавлено: Параметр 'Format' для Read/WriteProgramString(), WriteProgramStringN() и ReadProgramError()
- Добавлено: флаг компилятора /PREPROCESS для создания большого единого источника с разрешением всех макросов, компиляции и файлов. Может быть объединен с /COMMENTED, чтобы получить исходный источник с комментариями.
- Добавлено: Необязательный параметр '#Server' для NetworkServerEvent() для проверки событий только на определенном сервере
- Добавлено: Поддержка флага #PB_String_NoZero для PokeS(), чтобы избежать записи завершающего нулевого символа
- Добавлено: Поддержка #PB_Enumeration в Defined()
- Добавлено: #PB_Explorer_HiddenFiles для отображения скрытых файлов в Гаджетах проводника
- Добавлено: Необязательный параметр 'Type' в CreateBillboardGroup()
- Добавлено: BillboardGroupCommonDirection(), BillboardGroupCommonUpVector()
- Добавлено: #PB_Entity_MinVelocity и #PB_Entity_ForceVelocity в SetEntityAttribute()
- Добавлено: SetMaterialAttribute() с константами #PB_Material_DepthCheck и #PB_Material_DepthWrite
- Добавлено: Поддержка #PB_Material_DepthCheck для GetMaterialAttribute().
- Добавлено: Engine3DStatus() с этими константами: #PB_Engine3D_NbRenderedTriangles, #PB_Engine3D_NbRenderedBatches, #PB_Engine3D_CurrentFPS, #PB_Engine3D_MaximumFPS, #PB_Engine3D_MinimumFPS, #PB_Engine3D_AverageFPS, #PB_Engine3D_ResetFPS
- Добавлено: Поддержка #PB_Absolute / #PB_Relative в CameraDirectionX/Y/Z(), CameraX/Y/Z(), EntityX/Y/Z(), LightX/Y/Z(), LightDirectionX/Y/Z(), BillBoardGroupX/Y/Z(), NodeX/Y/Z(), ParticleEmitterX/Y/Z() и FetchOrientation()
- Добавлено: ParticleSpeedFactor(), DisableParticleEmitter()
- Добавлено: GetEntityCollisionMask(), GetEntityCollisionGroup(), SetEntityCollisionFilter()
- Добавлено: WaterHeight(), FreeWater()
- Добавлено: Полностью Unicode IDE
- Добавлено: Выделение повторяющихся вхождений выбранного в данный момент слова в IDE
- Добавлено: Режим редактирования простого текста для редактирования не PB файлов в IDE
- Добавлено: Сочетания клавиш Ctrl+E и Ctrl+Shift+E для выравнивания / смещения комментариев в выбранном блоке кода
- Добавлено: Сочетание клавиш Ctrl+M и Ctrl+Shift+M для выбора текущего блока кода (повторное нажатие выбирает следующий блок кода)
- Добавлено: Всплывающее меню в IDE журнал ошибок для операции очистки / копирования
- Добавлено: Параметры %HOME и %PROJECT для инструмента командной строки IDE, добавление PB_TOOL_Project для переменных среды
- Добавлено: Автоматический отступ кода позволяет выровнять комментарии в конце строк кода в IDE.
- Добавлено: AutoComplete запоминает последний выбор для Structure/Module AutoComplete
- Добавлено: Чувствительность к контексту для текущего module/procedure для отображения переменных и выражения eval в отладчике.

- Замена: FormatXML () с #PB_XML_ReFormat больше не добавляет новые строки внутри однострочных элементов для удобства чтения вывода
- Замена: DeleteElement() теперь возвращает указатель данных на новый текущий элемент (если есть)
- Замена: SetXMLAttribute() для принятия символов новой строки в атрибутах (будет кодироваться как символьные объекты)
- Замена: Добавлен обязательный параметр "name" для CreateXMLNode(), так как он нужен некоторым парсерам во время создания узла
- Замена: Способ (X)IncludeFile и IncludeBinary работает: теперь он относится к файлу, который содержит эти операторы (который легче обрабатывать)
- Замена: #PB_Event_SizeWindow и #PB_Event_MoveWindow больше не работают в реальном времени в Windows, используйте BindEvent() для получения обновления в реальном времени. Это должно исправить мерзкое мерцание при изменении размера в реальном времени в Windows.
- Замена: Метка DataSection в Процедуре теперь является локальной меткой.
- Замена: Префикс локальной метки ASM был изменен с "l_" на "ll_" ("ll" для локальной метки), чтобы избежать возможного конфликта с основными метками.
- Замена: Константа #PB_LinkedList была переименована в #PB_List для лучшей согласованности
- Замена: Удален параметр "Billboard" из AddBillboard(), так как он не использовался. Теперь возвращает новый индекс Billboard.
- Замена: Обновлено Scintilla до Версия 3.4.2

- Удалено: MaterialDepthWrite() (заменяется на SetMaterialAttribute())
- Удалено: CountRenderedTriangles() и Engine3DFrameRate(), заменяется на Engine3DStatus()

17 Марта 2014 : Версия 5.22 LTS

- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

20 Ноября 2013 : Версия 5.21 LTS

- Замена: 'REQUEST' на 'AUTO' для автоматического расчета минимального размера разделителя dialog (старый синтаксис все еще поддерживается)

- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

17 Сентября 2013 : Версия 5.20 LTS

- Добавлено: Поддержка Модулей для компилятора
- Добавлено: Библиотек Runtime
- Добавлено: Библиотека Dialog
- Добавлено: Подсистема GTK3 для Linux
- Добавлено: Подсистема DirectX11 для Windows (пока не поддерживает 3D-движок)
- Добавлено: Поддержка имен перечисления, позволяющая продолжить предыдущее перечисление.
- Добавлено: JoystickName(), JoystickZ()
- Добавлено: Необязательный флаг #PB_Relative для JoystickX/Y/Z(), чтобы иметь более точные значения
- Добавлено: Необязательный Номер пэда для JoystickX/Y/Z() для обработки более сложных геймпадов
- Добавлено: ZoomSprite() теперь принимает #PB_Default в качестве ширины/высоты, чтобы сбросить до начального размера спрайта
- Добавлено: Параметры 'Color' и 'Intensity' для DisplayTransparentSprite ()
- Добавлено: ClipSprite() теперь поддерживает #PB_Default для отдельного параметра
- Добавлено: Флаг #PB_Sprite_PixelCollision для CreateSprite(), LoadSprite() для разрешения столкновения пикселей
- Добавлено: Поддержка масштабирования в SpritePixelCollision() и SpriteCollision()
- Добавлено: Поддержка OpenGL для SpriteBlending() (предупреждение, это просто переносит режим OpenGL, поэтому он может вести себя иначе, чем DirectX)
- Добавлено: 32-битная поддержка SpriteOutput() для DX и OpenGL
- Добавлено: #PB_EventType_Focus и #PB_EventType_LostFocus поддержка в EditorGadget()
- Добавлено: #PB_EventType_RightClick поддержка в ListViewGadget()
- Добавлено: #PB_EventType_Change поддержка в PanelGadget() и DateGadget()
- Добавлено: #PB_Prototype и #PB_Module поддержка в Defined()
- Добавлено: Все функции Init...() могут вызываться более одного раза без проблем (например, InitSound(), InitNetwork() и т.д.)
- Добавлено: #PB_FileSystem_Force поддержка в DeleteFile()
- Добавлено: #PB_FileSystem_NoExtension поддержка в GetFilePart()
- Добавлено: Параметр цвет фона в CreateImage()
- Добавлено: #PB_Entity_NbSubEntities в GetEntityAttribute()
- Добавлено: MeshIndexCount(), SetRenderQueue(), FetchEntityMaterial(), GetMeshData(), SetMeshData()
- Добавлено: CPUName(), Un/BindEvent(), Un/BindGadgetEvent(), Un/BindMenuEvent()
- Добавлено: При двухкратном объявлении структуры, интерфейса, прототипа или процедуры отображается предыдущее место объявления.
- Добавлено: 2 лицензионных файла для легкого добавления необходимой информации при отправке программ PB (см. Справочную документацию)
- Добавлено: Bool() теперь оценивается во время компиляции, если все выражение является постоянным
- Добавлено: Отладчик осуществляет проверку для SortStructuredList() и SortList(), чтобы убедиться, что указанный список имеет правильный тип
- Добавлено: Исполняемые файлы Linux, созданные в новом дистрибутиве, должны по-прежнему работать на старом Linux.
- Добавлено: #PB_EventType_FirstCustomValue для использования с PostEvent()
- Добавлено: CameraFollow(), ExamineWorldCollisions(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity()
- Добавлено: WorldCollisionContact(), WorldCollisionNormal(), WorldCollisionAppliedImpulse()
- Добавлено: BuildMeshTangents(), MeshVertexTangent(), CopyTexture()
- Добавлено: Pitch(), Roll(), Yaw()
- Добавлено: #PB_Gadget_RequiredSize поддержка в GadgetWidth/Height()
- Добавлено: #PB_Entity_LinearSleeping, #PB_Entity_AngularSleeping, #PB_Entity_DeactivationTime, #PB_Entity_IsActive,
- Добавлено: #PB_Entity_AngularVelocityX/Y/Z, #PB_Entity_ScaleX/Y/Z, #PB_Entity_AngularVelocity, #PB_Entity_HasContactResponse в Get/SetEntityAttribute()

- Оптимизировано: Процедуры столкновения пиксельных спрайтов теперь намного быстрее with DirectX
- Оптимизировано: Больше оптимизаций "просмотра" на выходе ассемблера x64
- Оптимизировано: Быстрая компиляция для больших программ
- Оптимизировано: Сервер сборки Linux был модернизирован, теперь с использованием лучшего GCC, который производит лучший код.

- Замена: SpinGadget() EventType теперь являются #PB_EventType_Up и #PB_EventType_Down вместо -1 и 1.
- Замена: переименовано ZoomSprite3D() в ZoomSprite()
- Замена: переименовано TransformSprite3D() в TransformSprite()
- Замена: переименовано RotateSprite3D() в RotateSprite()
- Замена: переименовано Sprite3DQuality() в SpriteQuality()
- Замена: переименовано Sprite3DBlending() в SpriteBlending()
- Замена: переименовано вся библиотека 'Module' в 'Music'
- Замена: переименовано Frame3DGadget() в FrameGadget()
- Замена: переименовано Frame3DGadget3D() в FrameGadget3D()
- Замена: переименовано #PB_Shortcut_Prior в #PB_Shortcut_PageUp и #PB_Shortcut_Next в #PB_Shortcut_PageDown
- Замена: Packer plugin constant renamed to #PB_PackerPlugin_XXX
- Замена: RayCollide() now returns the colliding #Entity.

- Обновлено: WebGadget() в Windows больше не нуждается в ATL.dll
- Обновлено: zlib до 1.2.8
- Обновлено: pqlib (PostgreSQL) до 9.2.4
- Обновлено: ziplib до 0.11.1
- Обновлено: SCNotification scintilla структура

- Удалено: Поддержка Mozilla ActiveX для WebGadget() в Windows, поскольку последняя версия ActiveX слишком устарела (2005)
- Удалено: Библиотека Sprite3D (объединена с обычной библиотекой спрайтов)
- Удалено: Библиотека Palette (устаревшая)
- Удалено: UnPackMemory() -> заменено на UnCompressMemory()
- Удалено: RenderMovieFrame() и #PB_Movie_Rendered (устаревшая)
- Удалено: DisplayTranslucentSprite() -> заменен на параметр 'Alpha' для DisplayTransparentSprite()
- Удалено: DisplaySolidSprite() -> заменен на параметр 'Color' для DisplayTransparentSprite()
- Удалено: DisplayRGBFilter() -> можно заменить увеличенным спрайтом с цветом
- Удалено: DisplayShadowSprite() -> можно заменить на DisplayTransparentSprite() с цветом
- Удалено: StartSpecialFX(), StopSpecialFX(), DisplayAlphaSprite(), ChangeAlphaIntensity(), UseBuffer()
- Удалено: Подсистема Carbon на OS X, она была слишком старой, чтобы использоваться с новыми библиотеками

- Исправлено: Разные ошибки

19 Марта 2013 : Версия 5.11

- Исправлено: Разные ошибки, связанные с компилятором и библиотеками

14 Февраля 2013 : Версия 5.10

- Добавлено: Дизайнер форм теперь интегрирован в IDE!
- Добавлено: Полностью переработанная библиотека Packer с поддержкой ZIP, BriefLZ, 7z (только для распаковщика), LZMA и JCALG1 (только для Windows x86 и UncompressMemory()). Поддержка JCALG1 была прекращена. Форматы архивов для BriefLZ были заменены.
- Добавлено: Поддержка IPv6 для библиотеки Network. Обновлены IPString(), MakeIPAddress(), GetClientIP(), IPAddressField(), ExamineIPAddress() и NextIPAddress(). Добавлен #PB_Network_IPv6 флаг для OpenConnection и CreateServer(). Добавлено FreeIP() для IPv6
- Добавлено: Библиотека System: ComputerName(), UserName(), MemoryStatus(), CountCPUs()
- Добавлено: Функция продолжения строки со следующими операндами: ',' '|' '+' And Or XOr
- Добавлено: Сравнения строковых констант теперь обрабатываются во время компиляции, что позволяет использовать, например, в CompilerIf.
- Добавлено: CocoaMessage() для OS X
- Добавлено: 'Check syntax' только для компиляции кода без сборки/запуска исполняемого файла (ключ /CHECK или в меню компилятора IDE)
- Добавлено: Поддержка параметров Array/List/Map для методов интерфейса
- Добавлено: Поддержка динамического Массива/ Связного списка/ Хеш-карты в структуре / интерфейсе в резидентах.
- Добавлено: Поддержка флагов #PB_Character, #PB_Unicode, #PB_Ascii и #PB_Integer для FillMemory()
- Добавлено: Поддержка #PB_RegularExpression_NoCase в CreateRegularExpression()
- Добавлено: EncodeImage() с поддержкой PNG, JPEG и JPEG2000
- Добавлено: Поддержка #PB_Memory_NoClear в Re/AllocateMemory()
- Добавлено: ImageFormat()
- Добавлено: #PB_Editor_WordWrap для EditorGadget()
- Добавлено: Сравнение нескольких символов в StringField()
- Добавлено: Параметр NbOccurrence для ReplaceString()
- Добавлено: PostEvent(), EventData()
- Добавлено: вернуть значение в SetCurrentDirectory()
- Добавлено: параметр #PB_String_NoCase для режима FindString()
- Добавлено: Флаги #PB_Preference_NoSpace и #PB_Preference_GroupSeparator для OpenPreferences() и CreatePreferences()
- Добавлено: DatabaseColumnIndex()
- Добавлено: #PB_Cipher_URL и #PB_Cipher_NoPadding для Base64Encoder(), добавлена совместимость URL с Base64Decoder()
- Добавлено: SetGadgetItemImage() для всех Гаджетов, поддерживающих изображение Гаджета
- Добавлено: Флаг #PB_Gadget_ScreenCoordinate и #PB_Gadget_WindowCoordinate для GadgetX/Y()
- Добавлено: флаги файлов #PB_File_SharedRead (не влияет на Linux/OSX), #PB_File_SharedWrite (не влияет на Linux/OSX), #PB_File_Append и #PB_File_NoBuffering.
- Добавлено: События #PB_Event_RightClick, #PB_Event_LeftClick и #PB_Event_LeftDoubleClick
- Добавлено: Необязательный параметр title для OpenConsole()
- Добавлено: #PB_ScrollArea_ScrollStep добавлен для ScrollAreaGadget()
- Добавлено: #PB_Ignore для ResizeImage()
- Добавлено: Привязка определенного IP к CreateNetworkServer()
- Добавлено: Параметры Timeout, LocalIP$ и LocalPort для OpenNetworkConnection()
- Добавлено: Поддержка #PB_NetworkEvent_Disconnect для NetworkClientEvent()
- Добавлено: Поддержка #PB_Unicode, #PB_Ascii и #PB_UTF8 в SendNetworkString()
- Добавлено: Атрибут #PB_String_MaximumLength для StringGadget()
- Добавлено: Поддержка #PB_Event_DeactivateWindow
- Добавлено: Поддержка #PB_EventType_Change для EditorGadget()
- Добавлено: Флаги #PB_Relative/#PB_Absolute для FileSeek()
- Добавлено: Параметры 'Offset' и 'Length' в SHA1/MD5/CRC32FileFingerprint()
- Добавлено: GetSoundPosition(), SetSoundPosition(), SoundLength(), PauseSound(), ResumeSound(), SoundStatus(), GetSoundFrequency()
- Добавлено: Поддержка #PB_All в SoundVolume()
- Добавлено: Поддержка SetGadgetItemState() в ExplorerListGadget()
- Добавлено: InputRequester добавлено Закрыть
- Добавлено: InputRequester() добавлен флаг #PB_InputRequester_Password
- Добавлено: Random() добавлено необязательное минимальное значение
- Добавлено: SetGadgetItemText() для ListIconGadget(): обработка Chr(10) как в AddGadgetItem()
- Добавлено: сделаны необязательными параметры растяжения OpenWindowedScreen()
- Добавлено: ScreenWidth(), ScreenHeight(), ScreenDepth()
- Добавлено: Поддержка SMTP AUTH в библиотеке mail
- Добавлено: необязательные параметры RemoveMailRecipient(), возможность удалить всех получателей
- Добавлено: ReadString(#File [, Flags [, Length]]) : длина и поддержка #PB_File_IgnoreEOL
- Добавлено: Поддержка #PB_Window_InnerCoordinate для WindowX/Y()
- Добавлено: Поддержка #PB_Window_FrameCoordinate для WindowWidth()/Height()
- Добавлено: Поддержка #PB_Image_Raised для ImageGadget()
- Добавлено: Поддержка FreeXXX(#PB_All) для всех FreeXXX... команд
- Добавлено: Константы компилятора: #PB_Compiler_LineNumbering, #PB_Compiler_InlineAssembly, #PB_Compiler_EnableExplicit
- Добавлено: Константа компилятора: #PB_Compiler_ExecutableFormat#PB_Compiler_DLL, #PB_Compiler_Console, #PB_Compiler_Executable)
- Добавлено: Константа компилятора: #PB_Compiler_IsIncludeFile, #PB_Compiler_IsMainFile, #PB_Compiler_Filename (имя файла без пути)
- Добавлено: Оператор компилятора Bool(). Булевы операции теперь запрещены без Bool().
- Добавлено: Внутреннее ключевое слово MacroExpandedCount
- Добавлено: UndefineMacro
- Добавлено: Теперь XIncludeFile также учитывает основной файл, чтобы избежать двойного включения, если основной файл включен из другого файла.
- Добавлено: TypeOf () для переменной, структуры и полей
- Добавлено: Поддержка Defined(Label, #PB_Label)
- Добавлено: CompilerElseIf
- Добавлено: Локальные метки
- Добавлено: Define ведёт себя подобно Global и принимает Dim(), NewMap() и NewList() в одной строке
- Добавлено: Поддержка ключевого слова 'Align' для структуры со специальным значением #PB_Structure_AlignC для имитации заполнения C-структур
- Добавлено: автопередача числовых значений при использовании строки, позволяющая объединять строковые и числовые значения в константах
- Добавлено: 'CONSTANTLIST' к интерфейсу компилятора
- Добавлено: eредактирование записи истории в IDE для восстановления предыдущих состояний кода и восстановления после сбоя (см. Файл -> История сеанса)
- Добавлено: AffectedDatabaseRows(), CheckDatabaseNull() в библиотеку database
- Добавлено: Новая библиотека Text3D
- Добавлено: Необязательный параметр 'Mode' для всех ... функций Yaw/Roll/Pitch ()
- Добавлено: Необязательные параметры 'Type' и 'Mode' для CreateMesh()
- Добавлено: RayCast(), MouseRayCast(), NormalX(), NormalY(), NormalZ()
- Добавлено: UpdateMesh(), EnableManualEntityBoneControl(), MoveEntityBone(), RotateEntityBone(), MeshIndex()
- Добавлено: Необязательный параметр 'Type' для AddSubMesh()
- Добавлено: Параметр 'Type' для FinishMesh()
- Добавлено: ScaleNode(), GetMaterialColor(), GetMaterialAttribute(), ConvertLocalToWorldPosition(), ConvertWorldToLocalPosition()
- Добавлено: MaterialCullingMode(), FetchOrientation(), SetOrientation(), GetX(), GetY(), GetZ(), GetW(), GetLightColor()
- Добавлено: AttachEntityObject (): имя кости может быть пустым, поэтому объект добавляется непосредственно в entity

- Замена: Переименовано SoundFrequency() в SetSoundFrequency()
- Замена: Переименовано AddMeshVertex() в MeshVertexPosition()
- Замена: Переименовано LightColor() в SetLightColor()
- Замена: удалены все MaterialXXXXColor() и заменены на SetMaterialColor()
- Замена: удалены все XXXXLocate() заменены флагом #PB_Absolute для команд MoveXXXX()
- Замена: удален ResizeEntity(), заменен флагом #PB_Absolute для команды ScaleEntity(), также для ScaleNode() и ScaleText3D()
- Замена: заменил #PB_Sort_<Type> на #PB_<Type>, чтобы избежать возможных ошибок
- Замена: запретить нативный тип для указателей
- Замена: StrF/D(), конечные нули теперь автоматически удаляются, если не указаны десятичные дроби

- Обновлено: Ядро OGRE обновлено до 1.8.2
- Обновлено: SQLite обновлено до 3.7.15.2
- Обновлено: Руководство пользователя: новые главы о динамической нумерации и обработке нескольких окон, добавленные spikey

- Удалено: SendNetworkFile(), ReceiveNetworkFile(), #PB_NetworkEvent_File, чтобы избежать возможной дыры в безопасности
- Удалено: DirectX7 и NT4 подсистема в Windows
- Удалено: SDL подсистема в Linux
- Удалено: Версия PowerPC для OS X

- Оптимизировано: FindString() в два раза быстрее

- Исправлено: разные ошибки

5 Ноября 2012 : Версия 5.00

- Добавлено: Поддержка Cocoa в OS X (теперь набор инструментов по умолчанию)
- Добавлено: 64-разрядная версия PureBasic для OS X
- Добавлено: Новый дизайнер форм для Windows, Linux и OS X
- Добавлено: Подсистема Carbon для PowerPC и x86 версии PureBasic
- Добавлено: Поддержка многомерных массивов в структуре
- Добавлено: InitScintilla() в Linux и OS X позволяет избежать проблем компиляции
- Добавлено: Флаг #PB_Window_NoActivate в OpenWindow() и HideWindow()
- Добавлено: поддержка #PB_EventType_RightClick для ScintillaGadget()
- Добавлено: Раздел 'Избранного' в инструменте проводника (IDE)
- Добавлено: Триггер для пользовательских инструментов при создании нового исходного файла (IDE)
- Добавлено: Поддержка SetWindowCallback() для OS X, чтобы иметь события обратного вызова
- Добавлено: частичная безопасность потока в GTK (Linux)
- Добавлено: Поддержка SpritePixelCollision() для OS X и Linux

- Обновлено: Scintilla Обновлено до 3.2.2
- Обновлено: Expat Обновлено до 2.1.0
- Обновлено: libjpeg Обновлено до 8.0d
- Обновлено: libpng Обновлено до 1.5.12
- Обновлено: Ogre до 1.8.0, bullet до 2.80, hydrax до 0.5.4, CEGUI до 0.7.7
- Обновлено: Обновление библиотеки ModPlug до 0.8.8.4
- Обновлено: Использование VC++ 2010 вместо VC++ 2005 для компиляции библиотек Windows (32-разрядных и 64-разрядных), что позволяет получить более оптимизированный код
- Обновлено: Французская документация была значительно обновлена/улучшена благодаря Jean R. VIALE.

- Замена: SetModulePosition() теперь в миллисекундах, а не в шаблоне

- Исправлено: Разные ошибки

3D Engine:
- Добавлено: Библиотека EntityAnimation
- Добавлено: Библиотека NodeAnimation
- Добавлено: Библиотека VertexAnimation
- Добавлено: Библиотека Spline
- Добавлено: Поддержка CG Toolkit для 3D-движка (DirectX и OpenGL) через InitEngine3D()
- Добавлено: Необязательный параметр 'Mode' для InitEngine3D ()
- Добавлено: Параметр 'PickMask' для MousePick() и CreateEntity()
- Добавлено: RenderWorld() теперь возвращает TimeSinceLastFrame в миллисекундах
- Добавлено: SkyBox() и SkyDome() теперь поддерживают Fog()
- Добавлено: Параметры 'Color' и 'TextureSize' для WorldShadows ()
- Добавлено: Флаги #PB_World_UnderWater и #PB_World_WaterGodRays для CreateWater()
- Добавлено: RayPick(), CameraViewWidth(), CameraViewHeight(), CameraViewX(), CameraViewY(), CameraDirection()
- Добавлено: CameraDirectionX/Y/Z(), SetCameraИсправленоYawAxis()

- Добавлено: необязательный параметр 'IsActive' для рендеринга в текстуру для CreateCamera()
- Добавлено: ScaleMaterial(), MaterialFog(), ReloadMaterial(), ResetMaterial(), NodeИсправленоYawAxis()
- Добавлено: Необязательный параметр 'TextureCoordinateIndex' для AddMaterialLayer()
- Добавлено: Поддержка #PB_Material_Anisotropic в MaterialFilteringMode()
- Добавлено: Поддержка #PB_Default в качестве #Material для установки параметров по умолчанию для materials.
- Добавлено: #PB_Material_Wireframe, #PB_Material_Point и #PB_Material_Solid для MaterialShadingMode()
- Добавлено: SoundListenerLocate()
- Добавлено: Необязательный параметр DirectionX/Y/Z для NodeLookAt()
- Добавлено: Необязательный параметр 'Mode' для MoveLight(), MoveEntity() и MoveNode()
- Добавлено: CreateTexture() теперь также обрабатывает альфа-текстуры
- Добавлено: #PB_Entity_Wireframe, #PB_Entity_Solid, #PB_Entity_Point и #PB_Entity_DisplaySkeleton в EntityRenderMode()
- Добавлено: FreeEntityJoints(), AttachEntityObject(), DetachEntityObject(), EntityBoneX/Y/Z()
- Добавлено: EntityBonePitch(), EntityBoneRoll(), EntityBoneYaw(), EntityFixedYawAxis()
- Добавлено: Необязательные параметры DirectionX/Y/Z для EntityLookAt()
- Добавлено: EntityVelocity(), EntityAngularFactor(), EntityLinearFactor(), EntityCustomParameter(), EntityParentNode()
- Добавлено: EntityBoundingBoxX/Y/Z(), DisableEntityBody()
- Добавлено: #PB_Entity_VelocityX/Y/Z, #PB_Entity_MassCenterX/Y/Z, #PB_Entity_MaxVelocity в Get/SetEntityAttribute()
- Добавлено: LightAttenuation(), LightX/Y/Z(), LightDirection(), LightDirectionX/Y/Z()
- Добавлено: RotateLight(), LightPitch(), LightYaw(), LightRoll()
- Добавлено: GetScriptParticle(), CreateRenderTexture(), UpdateRenderTexture(), SaveRenderTexture()
- Добавлено: CreateCubeMapTexture(), EntityCubeMapTexture()
- Добавлено: HideEffect() теперь также обрабатывает handle
- Добавлено: EffectID(), RibbonEffectWidth(), AttachRibbonEffect(), DetachRibbonEffect(), CreateLensFlareEffect(), LensFlareEffectColor()
- Добавлено: EnableHingeJointAngularMotor()
- Добавлено: Объединенный параметр для ConeTwistJoint(), HingeJoint(), PointJoint() и SliderJoint()
- Добавлено: #PB_HingeJoint_LowerLimit и #PB_HingeJoint_UpperLimit для Get/SetJointAttribute()
- Добавлено: Необязательные параметры 'Pitch', 'Yaw', 'Roll' для AddStaticGeometryEntity()
- Добавлено: FreeTerrain(), SetupTerrains(), CreateTerrain(), TerrainPhysicBody(), DefineTerrainTile()
- Добавлено: AddTerrainTexture(), BuildTerrain(), TerrainLocate(), TerrainHeight(), TerrainTileHeightAtPosition()
- Добавлено: TerrainTilePointX/Y(), TerrainTileSize(), GetTerrainTileHeightAtPoint(), SetTerrainTileHeightAtPoint()
- Добавлено: UpdateTerrain(), TerrainTileLayerMapSize(), GetTerrainTileLayerBlend(), SetTerrainTileLayerBlend()
- Добавлено: UpdateTerrainTileLayerBlend(), TerrainMousePick(), SaveTerrain(), TerrainRenderMode()
- Добавлено: обработка специального ключа для InputEvent3D()

- Замена: CameraLookAt() больше не меняет направление
- Замена: Attach/DetachNodeObject() удален 'type' объекта
- Замена: Параметр 'InitialWidth' был удален для CreateRibbonEffect()

- Удалено: AnimateEntity() (заменяется на Start/StopEntityAnimation())
- Удалено: #PB_Entity_Wireframe, #PB_Entity_Point и #PB_Entity_Solid для EntityRenderMode()
- Удалено: CheckEntityCollision(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity()

21 Мая 2012 : Версия 4.61 (Всё что ниже на странице не переведено !!!)

- Добавлено: up-to-date VisualC SDK for Windows to create PureLibraries
- Добавлено: resource support for Win9x
- Добавлено: new User-Guide (PureBasic introduction) included in the reference manual

- Обновлено: FASM Версия (1.69.35)
- Обновлено: SQLite Версия (3.7.9)
- Обновлено: PCRE Версия (8.30)

- Замена: OpenGL subsystem is now default on Linux (a new 'sdl' subsystem has appear)

- Исправлено: 3D examples for Linux
- Исправлено: WinAPI 64-bit residents (by Danilo)
- Исправлено: Quite some bugs in compiler and libraries

7 Ноября 2011 : Версия 4.60

- Добавлено: a brand new '3D' example folder
- Добавлено: 'Joint' library
- Добавлено: 'SpecialEffect' library
- Добавлено: 'StaticGeometry' library
- Добавлено: CameraPitch(), CameraRoll(), CameraYaw(), SwitchCamera()
- Добавлено: ApplyEntityForce(), ApplyEntityImpulse(), EntityPitch(), EntityRoll(), EntityYaw()
- Добавлено: GetEntityAttribute(), GetEntityMaterial(), SetEntityAttribute(), SetEntityMaterial()
- Добавлено: LightDiffuseColor(), SpotLightRange(), LightLookAt(), DisableLightShadows()
- Добавлено: MaterialDepthWrite(), MaterialSelfIlluminationColor(), MaterialShininess(), GetScriptMaterial()
- Добавлено: CreateLine3D(), CreateCube(), CreateSphere(), CreateCylinder(), CreatePlane()
- Добавлено: MeshVertexCount(), UpdateMeshBoundingBox(), MeshRadius(), AddMeshVertex()
- Добавлено: MeshVertexNormal(), MeshVertexColor(), AddSubMesh(), BuildMeshShadowVolume()
- Добавлено: MeshVertexTextureCoordinate(), AddMeshFace(), FinishMesh(), NormalizeMesh()
- Добавлено: SaveMesh(), SetMeshMaterial(), SubMeshCount(), TransformMesh()
- Добавлено: NodePitch(), NodeRoll(), NodeYaw(), GetScriptTexture(), TextureOutput()
- Добавлено: EntityCollide(), RayCollide
- Добавлено: OpenGL renderer to the 3D library on Windows, when using the OpenGL subsystem
- Добавлено: CanvasGadget(), CanvasOutput()
- Добавлено: SetGadgetItemData() for PanelGadget
- Добавлено: MoveElement(), MergeLists(), SplitList()
- Добавлено: RandomizeList(), RandomizeArray(), DoubleClickTime()
- Добавлено: PushListPosition(), PopListPosition(), PushMapPosition(), PopMapPosition()
- Добавлено: ImageID parameter to OpenSubMenu()
- Добавлено: #PB_ListIcon_ThreeState and #PB_ListIcon_Inbetween
- Добавлено: #PB_Tree_ThreeState and #PB_Tree_Inbetween
- Добавлено: crossplatform ComboBox events
- Добавлено: 'DeclareC' keyword for completeness

- Замена: FindString() 'StartPosition' parameter to be optional
- Замена: WebGadget to use WebKitGtk on Linux
- Замена: ContainerGadget with #PB_Container_Borderless to no longer add a 2px invisible border on Linux
- Замена: EntityPhysicBody(), CreateLight(), RenderWorld(), ShowGUI(), WorldShadows()
- Замена: EntityMaterial() to SetEntityMaterial()

- Удалено: Get/SetEntityMass(), Get/SetEntityFriction()
- Удалено: SetMeshData()

- Исправлено: Разные ошибки

IDE:
- Добавлено: IDE options for command-line project building
- Добавлено: monitoring of files for changes on disk while they are open in the IDE
- Добавлено: FilePanel custom implementation with Drag & Drop, Dropdown menu, scrolling also on OSX
- Добавлено: Diff tool for directories/files
- Добавлено: Html help viewer for Linux/OSX
- Добавлено: Help viewer in toolspanel
- Добавлено: new Color Picker tool
- Добавлено: enabled font selection in IDE for OSX
- Добавлено: ProjectPanel now remembers node expanded states

Debugger:
- Добавлено: maximize button to all debugger windows
- Добавлено: all IsXxx() and XxxID() functions to the expression parser (for data breakpoints)

8 Сентября 2010 : Версия 4.51

- Исправлено: Quite Разные ошибки, связанные с компилятором и библиотеками

7 Июня 2010 : Версия 4.50

- Добавлено: Support for Array, List, Map inside structures
- Добавлено: CopyList(), CopyMap(), CopyArray()
- Добавлено: FreeList(), FreeMap(), FreeArray()
- Добавлено: CopyStructure(), InitializeStructure()
- Добавлено: Volume support to PlaySound()
- Добавлено: Depth parameter to SaveImage()
- Добавлено: ImageDepth() flag to get the original or current image depth
- Добавлено: #PB_Image_Transparent flag for CreateImage()
- Добавлено: 32-bit support to TGA image decoder
- Добавлено: RoundBox(), AbortFTPFile(), RandomData()
- Добавлено: #PB_2DDrawing_AllChannels mode for DrawingMode()
- Добавлено: Image support for ComboBoxGadget()
- Добавлено: Graphical console functions to Linux
- Добавлено: Large file support to File library on Linux/OSX
- Добавлено: CryptRandom(), CryptRandomData(), OpenCryptRandom(), CloseCryptRandom()
- Добавлено: Many math functions: Exp(), ATan2(), Radian(), Degree(), [A]CosH(), [A]SinH(), [A]TanH(), IsNaN(), IsInfinity(), NaN(), Infinity(), Sign()
- Добавлено: 'Debugger' Library to control some debugger actions from code

- Замена: The Image library now keeps images internally in 24-bit or 32-bit (loading and saving works with other bit depths)

- Исправлено: Quite some bugs in libraries and in the compiler

IDE/Debugger:
- Добавлено: Keyword underline for Break, Continue, ProcedureReturn
- Добавлено: StatusBar help for prototypes and interfaces
- Добавлено: Keyword sensitive indentation (block mode is still available)
- Добавлено: "Format indentation" option in the edit menu
- Добавлено: Indentation guides and whitespace options
- Добавлено: The ability to select multiple compilers in the compiler options
- Добавлено: Purifier tool for the debugger
- Добавлено: Full debugger compatibility between all OS and processors
- Добавлено: Network debugging for the standalone debugger
- Добавлено: Data breakpoints for the debugger
- Добавлено: Support for structured items in the 'View Array/List/Map' tab of the Variable Viewer

- Замена: The Array, List or Map name in the Variable viewer should be entered with a "()" now to display their elements.

1 Февраля 2010 : Версия 4.41

- Исправлено: Quite Разные ошибки, связанные с компилятором и библиотеками

1 Декабря 2009 : Версия 4.40

- Добавлено: Native Linux x64 support
- Добавлено: Built-in Map library for hash tables
- Добавлено: 'Threaded' Keyword for thread-local variables
- Добавлено: Structure assignment copies the structure (a.point = b.point)
- Добавлено: ClearStructure()
- Добавлено: AESEncoder(), AESDecoder(), StartAESCipher(), AddCipherBuffer(), FinishCipher()
- Добавлено: Dylib support for OS X
- Добавлено: Joystick library for OS X
- Добавлено: Systray library for OS X
- Добавлено: Trim/LTrim/RTrim() got an optional character to trim
- Добавлено: #PB_Function, #PB_OSFunction, #PB_Map to Defined()
- Добавлено: ReverseString(), InsertString(), RemoveString()
- Добавлено: Blob support to databases
- Добавлено: UsePostgreSQLDatabase(): native PostgreSQL support
- Добавлено: Peephole optimizer to 64-bit Версияs to produce better code
- Добавлено: '.a' (ascii) and '.u' (unicode) native type to provide native unsigned byte and word.
- Добавлено: FileBuffersSize() - #PB_Default support change the buffersize to the next opened files
- Добавлено: #PB_URL_Protocol to Get/SetURLPart()
- Добавлено: #PB_Shadow_TextureAdditive
- Добавлено: FTPDirectoryEntryRaw(), FillMemory()
- Добавлено: Global, Protected, Threaded, Shared and Static now accept a type to affect all default variable declaration.
- Добавлено: AddWindowTimer(), RemoveWindowTimer(), EventTimer()
- Добавлено: #PB_Window_Tool to create tool windows
- Добавлено: ShortcutGadget(), StatusBarProgress()
- Добавлено: StatusBarImage() now supports normal images (not just icons)
- Добавлено: #PB_Checkbox_ThreeState flag to create a 3 state checkbox
- Добавлено: CreateImageMenu(), CreatePopupImageMenu() for OSX
- Добавлено: Full alphachannel support for all GUI elements that display images
- Добавлено: Full alphachannel support for Image lib
- Добавлено: New drawing modes for 2DDrawing in ImageOutput()
- Добавлено: LinearGradient(), BoxedGradient(), CircularGradient(), EllipticalGradient(), ConicalGradient()
- Добавлено: CustomGradient(), GradientColor(), ResetGradientColors(), CustomFilterCallback()
- Добавлено: DrawAlphaImage() for all outputs on all OS
- Добавлено: DrawAlphaImage() has a new transparency parameter and can be used to draw non-alpha images part transparent
- Добавлено: QuickDraw subsystem for WindowOutput() on OSX
- Добавлено: Sprite/ScreenOutput for OpenGL (all OS)
- Добавлено: DrawingFont() works for SDL output
- Добавлено: OutputWidth(), OutputHeight(), OutputDepth() for 2DDrawing
- Добавлено: GrabDrawingImage(), DrawRotatedText(), RGBA(), Alpha(), AlphaBlend()
- Добавлено: #PB_PixelFormat_ReversedY - for pixel buffers that are stored upside-down (Windows ImageOutput or OpenGL)
- Добавлено: #PB_OS_Windows_7, #PB_OS_MacOSX_10_6 for OSВерсия()

- Обновлено: OGRE to 1.6.2, sqlite 3.6.14.2, PCRE to 7.9

- Замена: Call(C)Function(Fast) parameters have been Замена from 'Any' to 'Integer'.
- Замена: OpenScreen() now accepts FlipMode and RefreshRate
- Замена: FlipBuffers() doesn't take an optional parameter anymore

- Удалено: #PB_Image_DisplayFormat is now deprecated (value set to 24 to have 24-bit as default)
- Удалено: SetRefreshRate() has been Удалено, the parameter is in OpenScreen() now

- Исправлено: Image Decoders are now thread-safe
- Исправлено: Quite some bugs in libraries and in the compiler

PureBasic IDE:
- Добавлено: Full project management
- Добавлено: Highlight matching keyword for keyword under cursor (tied to BraceMatching color setting)
- Добавлено: Edit->Goto matching keyword
- Добавлено: PB_TOOL_Preferences Environment variable for IDE tools
- Добавлено: Theme management to customize menu icons
- Добавлено: New 'Silk' theme based on the Iconsset by Mark James
- Добавлено: Autocomplete scans implicit variable declaration and respects scope
- Добавлено: Structure item autocomplete

- Замена: moved encoding/newline setting from compiler options to file menu

PureBasic Debugger:
- Оптимизировано: greatly improved VariableViewer update speeds
- Добавлено: progressbar display if VariableViewer update takes long
- Добавлено: column sort capability to VariableViewer (Windows only)

3 Июня 2009 : Версия 4.31

- Исправлено: Many compiler and libraries related bugs

16 Декабря 2008 : Версия 4.30

- Добавлено: Full 64-bit Версия of PureBasic (Windows)
- Добавлено: MacOS X x86 support
- Добавлено: 'JPEG 2000' library
- Добавлено: 'Node' library
- Добавлено: 'Gadget3D' library
- Добавлено: 'Window3D' library
- Добавлено: 'Sound3D' library
- Добавлено: Full unicode support to the engine3d
- Добавлено: MacOS X support for engine3d
- Добавлено: Absolute/relative rotation for all engine3d rotate commands
- Добавлено: Absolute move for engine3d physic body
- Добавлено: EntityID(), EntityLookAt()
- Добавлено: CameraProjectionX(), CameraProjectionY(), WorldDebug(), Sun()
- Добавлено: MousePick(), PointPick(), PickX/Y/Z(), CreateWater(), AntialiasingMode()
- Добавлено: CatchModule(), ArraySize(), WindowBounds(), DesktopX(), DesktopY()
- Добавлено: FinishDatabaseQuery(), DatabaseID()
- Добавлено: CreateSemaphore(), FreeSemaphore(), SignalSemaphore(), WaitSemaphore(), TrySemaphore()
- Добавлено: '.i' native type for 32/64-bit integer size
- Добавлено: Read/WriteInteger(), Read/WritePreferenceInteger(), PeekI(), PokeI()
- Добавлено: Language support for compiler and debugger
- Добавлено: Style parameter to FontRequester()
- Добавлено: Support for 'And/Or' in CompilerIf statements
- Добавлено: #PB_Event_MinimizeWindow, #PB_Event_MaximizeWindow, #PB_Event_RestoreWindow
- Добавлено: #PB_Ignore support to AddStatusBarField()
- Добавлено: #PB_Explorer_DisplayMode to ExplorerListGadget()
- Добавлено: Multiple joystick support
- Добавлено: #PB_Compiler_FilePath compiler constant

- Enhanced: Major rework of OnError library (crossplatform)
- Enhanced: InitScintilla(), parameter is now optional
- Enhanced: Complete debugger rewrite for support of the new platforms

- Оптимизировано: XML library to handle very big files quickly
- Оптимизировано: LinkedList library to use memory efficiently

- Замена: 'Read' keyword now requires a type (Read.l, Read.q etc.) to avoid 64-bit migration problems
- Замена: CountList() to ListSize()
- Замена: ClearGadgetItemList() to ClearGadgetItems()
- Замена: CameraProjection() to CameraProjectionMode()
- Замена: AddElement() and such now return a pointer to the start of data
- Замена: ComboBoxGadget() height is now the real gadget height
- Замена: #Long, #Byte, #Word etc. to #PB_Long, #PB_Byte, #PB_Word etc. for consistency
- Замена: RotateEntity(), RotateCamera() and RotateBillboard() x,y rotation axis
- Замена: CameraFOV() angle from radian to degree
- Замена: Array and list parameter now requires the 'List' or 'Array' keyword

- Удалено: StrQ(), HexQ(), BinQ(), ValQ()
- Удалено: ChangeListIconGadgetDisplay(), replaced by a gadget attribute
- Удалено: ButtonImageGadget() backward compatibility
- Удалено: CreateGadgetList(), now automatically done in OpenWindow()
- Удалено: CopyTexture(), TextureOutput()
- Удалено: Удалено CPU monitor from the IDE, as all OS provide the same functionality

- Исправлено: DX9 subsystem on Windows
- Исправлено: Many compiler and libraries related bugs

23 Мая 2008 : Версия 4.20

- Добавлено: Mail library
- Добавлено: Ftp library
- Добавлено: RegularExpression library
- Добавлено: Http library
- Добавлено: SerialPort library
- Добавлено: FLAC library
- Добавлено: SQLite library
- Добавлено: DirectX 9 subsystem
- Добавлено: Sound Streaming for OGG and FLAC
- Добавлено: #PB_Sound_MultiChannel support for the sound library
- Добавлено: CreateImageMenu(), CreatePopupImageMenu(), SHA1FingerPrint(), SHA1FileFingerPrint()
- Добавлено: CRC32FileFingerprint(), ExamineMD5FingerPrint(), ExamineSHA1FingerPrint(),
- Добавлено: NextFingerPrint(), FinishFingerPrint(), IsFingerPrint()
- Добавлено: Hexadecimal and binary support for Val() and ValQ()
- Добавлено: #PB_Compiler_Procedure compiler constant
- Добавлено: #PB_Round_Nearest support for Round()
- Добавлено: 'XOr' drawing support for Linux/SDL and MacOS X
- Добавлено: New "Profiler" tool for the Debugger menu to monitor how often lines are called in the code
- Добавлено: Debugger can now evaluate expressions (see Debug output)
- Добавлено: The Memory Viewer can accept any expression as the start/end address
- Добавлено: Adding a "+" at the "end address" field of the Memory viewer makes the end address relative
- Добавлено: Placing the mouse over a Variable will display its value while the program runs.
- Добавлено: Selecting a more complex expression and placing the mouse over it will evaluate the expression in the running program (if possible)

- Замена: Mid() has now the Len() parameter optional

- Оптимизировано: Compiler source processing speed (up to 8x faster)
- Оптимизировано: The whole commandset by using a better C compiler (Windows only)

- Исправлено: Quite some bugs related to the commands and compiler

4 Ноября 2007 : Версия 4.10

- Добавлено: XML library
- Добавлено: Drag & Drop library
- Добавлено: Vista compatibility (fully compatible with UAC), except for Sprite library (planned for 4.20)
- Добавлено: ModPlug support for module replaying (Удалено MIDAS)
- Добавлено: ScintillaGadget(), TruncateFile()
- Добавлено: EnableASM and DisableASM compiler directives
- Добавлено: #PB_OS_Windows_Vista and #PB_OS_Windows_Server_2008 for OSВерсия()
- Добавлено: Lots of new features for the WebGadget()
- Добавлено: many new small improvement to the IDE (New compiler communication protocol, Vista compliance, brace markers, faster coloring etc.)
- Добавлено: synchronized release between Windows, Linux and MacOS X !

- Замена: InitDatabase() to UseODBCDatabase()
- Замена: On Windows the IDE and PB tools preferences are now stored in the user applicationdata folder

- Удалено: The SmartUpdate tool is no longer supported

- Исправлено: lots of bugs related to the commands and compiler

18 Декабря 2006 : Версия 4.02 (Merry Christmas !)

- Исправлено: Macros issues
- Исправлено: LoadImage() with plug-ins in unicode mode
- Исправлено: ExplorerListGadget() with over 4GB file
- Исправлено: ExaminePreferenceKeys() didn't list the first key
- Исправлено: ExamineDirectory() didn't handle patterns properly
- Исправлено: Several IDE problems
- Исправлено: Some IDE and Debugger problems
- Исправлено: Several compiler bugs

1 Ноября 2006 : Версия 4.01

- Замена: CreateThread() doesn't returns an OS thread handle anymore (use ThreadID() instead)

- Исправлено: Several important quad and unicode issues
- Исправлено: Threadsafe mode wasn't properly working in some cases
- Исправлено: Nested compiler directives in macros
- Исправлено: GetFileDate() and DirectoryEntryDate() now uses local time
- Исправлено: OpenFileRequester() could fail with a lot of selected files
- Исправлено: Many minors bugs

8 Мая 2006 : Версия 4.00

As PureBasic 4 is a quite big release in both terms of changes and enhancements, a document which sum up all the modifications about the libraries commands since the last stable release is available: click here.

- Добавлено: Native unicode support
- Добавлено: Subsystems support
- Добавлено: Unlimited length strings in both ascii and unicode mode
- Добавлено: Thread safe commandset and strings
- Добавлено: Character type (.c)
- Добавлено: Double type (.d)
- Добавлено: Quad type (.q)
- Добавлено: 'XOr' and 'Not' logicals operators
- Добавлено: Исправлено string type (String${#Number})
- Добавлено: Macro/EndMacro - single and complex mode
- Добавлено: With/EndWith for cleaner code
- Добавлено: Assign possibility to Static (quite important), Protected and Global: "Global a = 5"
- Добавлено: It's now possible to create a linked-list of pointer
- Добавлено: Support for Global, Protected, Static and Shared arrays and linked-list: "Global NewList MyList.l()". NewList alone does not make the list global anymore
- Добавлено: #PB_Compiler_File, #PB_Compiler_Line, #PB_Compiler_Версия, #PB_Compiler_Home, #PB_Compiler_Debugger, #PB_Compiler_ThreadSafe, #PB_Compiler_Unicode
- Добавлено: CompilerError "Message" directive
- Добавлено: @procedure() and ?Label support in Data.l directive
- Добавлено: optional parameters for procedures, interfaces methods, and prototypes
- Добавлено: /CONSTANT Test=Value switch to declare constants on the compiler line
- Добавлено: Swap keyword to quickly swap 2 variables or elements (Swap a,b).
- Добавлено: multiple 'Case' for Select/EndSelect: Case 1, 2, 6 To 20
- Добавлено: 'Prototype' keyword to declare functions pointers easily
- Добавлено: 'ProcedureC' keyword to declare cdecl procedure easily
- Добавлено: Procedure parameters can now have the same name than a global variable (automatically protected)
- Добавлено: EnableExplicit/DisableExplicit: variables must be declared with Define, Global, Protected, Shared or Static.
- Добавлено: Defined(Name, Type) compiler function. Type can be #PB_Constant, #PB_Variable, #PB_Array, #PB_LinkedList, #PB_Structure, #PB_Interface
- Добавлено: ReDim for single and multi-dimensioned arrays
- Добавлено: Import/ImportC/EndImport to import functions and variables from external .lib
- Добавлено: LinkedList and Arrays can now be passed as procedure parameters
- Добавлено: /LINKER flags to provide a command file directly to the linker
- Добавлено: PseudoTypes: p-ascii, p-unicode, p-variant, p-utf8 and p-bstr
- Добавлено: Assembler and Linker errors for CLI compiler are now directly displayed
- Добавлено: OpenGL subsystem for multimedia applications (can be combined with NT4 one)
- Добавлено: full alphachannel support for Sprite3D library (trough PNG and TIFF)
- Добавлено: Subsystem() compiler directive to check if a subsystem is in use
- Добавлено: exponent form for constant float: 123.5e-20
- Добавлено: local variables aliases are generated when using '!' raw assembly to ease their referencing (in form p.v_variable)
- Добавлено: 'Step over' and 'Step out' features to the debugger
- Добавлено: Process library

- Обновлено: NT4 support is now done trough a subsystem (DirectX 3)
- Обновлено: Resident files now supports quad, double, macros and prototypes
- Обновлено: Many library commands
- Обновлено: OGRE engine to 1.0.7 Версия
- Обновлено: The french documentation has been greatly enhanced

- Оптимизировано: Smaller executable footprint: 1.5 kb instead of 2.5 kb for the smallest one
- Оптимизировано: Faster float and literal numeric mixing
- Оптимизировано: File library completely rewritten and now handle a read/write cache for very fast performances. Also support for 64-bit files.
- Оптимизировано: Procedures are now as small as possible, which should give some speed increase

- Замена: Console library commands can now fully redirected (ie: possible to use them for CGI for example)
- Замена: When a numeric parameter is expected, it's not possible to pass a string anymore
- Замена: Temporary PureBasic.exe name aren't random anymore, because it could cause slowdown with some firewalls
- Замена: 'DefType' renamed to 'Define'

- Исправлено: Internal system functions no more trash reserved registers
- Исправлено: Mouse is automatically released in windowed mode when the window loose focus
- Исправлено: KeyboardInkey() now handle shift/alt modifiers correctly
- Исправлено: IsScreenActive() works correctly for windowed mode as well
- Исправлено: A lot of small/medium issues which have arisen since the last Версия

16 Августа 2005 : Версия 3.94

- Добавлено: Brand a new IDE and 3 Debuggers (!)
- Добавлено: Resource file support to the compiler and IDE (/RESOURCE compiler switch)
- Добавлено: Версия support for executables and DLL (trough resource)
- Добавлено: #PB_Event_ActivateWindow event support
- Добавлено: #PB_Web_Mozilla flag to use the Mozilla ActiveX for the WebGadget()
- Добавлено: GetToolBarButtonState() and SetToolBarButtonState()
- Добавлено: Full documentation for the IDE and Debuggers

- Исправлено: 32x32 bitmaps in ListIconGadget() with big icon display mode
- Исправлено: OpenScreen()/CloseScreen() could fail when using sprite3D
- Исправлено: MovieLength() and MovieInfo() were incorrect with WMV format (thanks to Traumatic ;-)
- Исправлено: ToolBar disable bug when mixing image and icon with XP skins
- Исправлено: Possible crash when closing a window with a free'ed statusbar or toolbar
- Исправлено: ImageGadget() and ButtonImageGadget() couldn't be used with AnimateWindow_()
- Исправлено: ImageGadget() bug when using DisableGadget()
- Исправлено: LineXY() didn't release memory correctly
- Исправлено: Line() and LineXY() affected the DrawText() position
- Исправлено: SortList() could crash with big already sorted lists
- Исправлено: SetMenuItemState() did change the disable state
- Исправлено: Editable combobox created with #PB_Any didn't handle TAB correctly
- Исправлено: OpenFileRequester() fails if the default filename wasn't correct
- Исправлено: Compiler bug with string concatenation and procedures
- Исправлено: Alignment problem in procedure which could makes API call fails in some case

28 Февраля 2005 : Версия 3.93

- Добавлено: SortStructuredArray(), SortList(), SortStructuredList()
- Добавлено: Conditional directives to LibraryMaker
- Добавлено: KeyboardMode() (wasn't in the doc)
- Добавлено: Optional 'Color' parameter for ColorRequester() and FontRequester()
- Добавлено: SetGadgetText() can now be used on an editable ComboBoxGadget()
- Добавлено: #PB_Default support to ClipSprite() to remove the clipping
- Добавлено: #PB_FileSystem_Force to CopyDirectory()
- Добавлено: #PB_OS_Windows_Server_2003 support to OSВерсия()
- Добавлено: Base64Decoder(), GetGadgetFont()
- Добавлено: ResizeImage() now support a 'Mode' parameter to choose the resize algorithm
- Добавлено: Event when a splitter is moved or resized so the children can be agenced
- Добавлено: Real-time debugger check for Plot(x,y,Color) with ScreenOutput() and SpriteOutput()
- Добавлено: Debugger check to DirectoryEntrySize/Name/Attributes()
- Добавлено: IDE enhancements by Tinman

- Обновлено: Interface Importer and DirectX9 interfaces in residents (thanks to Traumatic !)
- Обновлено: Uses of Kale's icons for the IDE
- Обновлено: French documentation spellchecked and reworked by trasfract

- Оптимизировано: Debugger mode is smaller and allow big structured variables
- Оптимизировано: Split Misc library
- Оптимизировано: Faster Base64Encoder() function
- Оптимизировано: Better code generation for string assignment and concatenation

- Замена: OffsetOf() syntax, to fit with the SizeOf() one (more consistent)

- Исправлено: A bug in ImageGadget() with XP skin activated and 32-bit bitmaps
- Исправлено: ExplorerListGadget() didn't displayed .ico and .lnk files correctly
- Исправлено: ButtonImageGadget() was loosing its picture in rare case with XP skins
- Исправлено: No more 'ding' (windows sound) on click in fullscreen when ExamineMouse() wasn't used
- Исправлено: When using ALT+TAB with a fullscreen application, the icon is correctly displayed
- Исправлено: Sprites are now correctly restored when switching back from multitask
- Исправлено: CopyDirectory() modified the input string in some case
- Исправлено: ListIndex() was broken in some rare cases
- Исправлено: RemoveString() and CRC32FingerPrint() couldn't be used in expressions
- Исправлено: SetGadgetItemText() was broken for ListView() gadget
- Исправлено: ExamineDirectory() with an uninitialized string variable
- Исправлено: CalendarGadget() bug when multiple calendars were initialized on the same window
- Исправлено: RSet() returned wrong result in some rare cases
- Исправлено: CreateFile() failed on hidden files
- Исправлено: ZeroMemory_(), FillMemory_(), MoveMemory_() and CopyMemory_() wasn't recognized
- Исправлено: #PB_Event_MoveWindow is now correctly recognized
- Исправлено: #PB_EventType_LostFocus wasn't sent if 2 stringgadgets were side by side.
- Исправлено: Gadget's tooltips wasn't correctly displayed on NT4 when the window was always on top
- Исправлено: OGG Plug-in wasn't working anymore and sometimes songs were cut. It's also faster to decode.
- Исправлено: ResizeImage() doesn't change the image anymore if the same dimensions are used.
- Исправлено: TAB in an EditorGadget() doesn't give the focus to others gadgets anymore but insert a Tab
- Исправлено: LCase() didn't handled the 'Я' german character correctly
- Исправлено: SetGadgetState() wasn't working correctly for OptionGadget()
- Исправлено: Debugger's code listing window dimensions are now saved like other windows
- Исправлено: EditorGadget() while using AddGadgetItem() with blank strings and -1 position
- Исправлено: SortArray() could crash on big already sorted arrays and is now thread safe
- Исправлено: ReceiveNetworkFile() didn't handle long filename correctly
- Исправлено: Display issues with ButtonImageGadget() and toggle mode (with API)
- Исправлено: SpriteWidth() and SpriteHeight() returned wrong values when ClipSprite() was used
- Исправлено: MessageRequester() over a console window sent the console window to the back
- Исправлено: SetGadgetState() for ListIconGadget() stolen the current focus
- Исправлено: Base64Encoder() produced wrong output sometimes
- Исправлено: Refresh problem with FrameGadget() and #PB_Frame_Single/Double flags
- Исправлено: GDI resource leak in ButtonImageGadget() and ImageGadget()
- Исправлено: RotateSprite3D was using a wrong angle
- Исправлено: DisableMenuItem() didn't work with #PB_Any
- Исправлено: GadgetWidth() didn't work correctly for SpinGadget()
- Исправлено: Date() returned wrong result for the 1970,1,1,0,0,0 case
- Исправлено: CallFunctionFast() accepted only 17 parameters instead of 20
- Исправлено: OpenWindowedScreen() with AutoStretch mode missed some pixels
- Исправлено: Some refresh bug with PanelGadget()
- Исправлено: Transparent color error with 32-bit screen and 'texture' sprites
- Исправлено: Some small bugs in the IDE
- Исправлено: Several compiler bugs (string concatenation, interfaces in procedures)

25 Октября 2004 : Версия 3.92

- Добавлено: CalendarGadget() and DateGadget(), thanks to Fr34k !
- Добавлено: LibraryID(), SwapElements()
- Добавлено: SaveSprite() now have an optional 'Flags' parameter and can now save 8-bit sprite/screen
- Добавлено: Double-click on Windows background now generate an event (Thanks to Rings)

- Оптимизировано: ListCount() and ListIndex() are now very fast (it doesn't iterate each element of the list anymore).

- Замена: DeleteElement() now always goes back to the previous element (can be outside the list if
it was the first element), to be fully compatible with ForEach. An optional flag has been Добавлено
to preserve previous behavior.
- Замена: the application current directory isn't anymore touched by any PureBasic command to conform
to Windows rules.

- Исправлено: CloseWindow() bug when using the 'ParentWindow' OpenWindow() parameter
- Исправлено: IsSound() wasn't available in NT4 mode
- Исправлено: AddDate() could fail depending of the computer time zone
- Исправлено: Memory leak with linkedlists, arrays and local variables when using a structure which contained strings
- Исправлено: SaveSprite() default value for JPEG saving is now '7'.
- Исправлено: DisplayPalette() failed on XP systems (1st and last color remained unЗамена)
- Исправлено: ImageGadget() now supports ToolTips and bitmap/icon live switching
- Исправлено: ImageButtonGadget() now supports skinning and bitmap/icon live switching
- Исправлено: SetGadgetItemText() for ListViewGadget() destroyed the item user data
- Исправлено: CopyImage() failed on WinNT4 under some conditions
- Исправлено: A memory leak in SendNetworkFile(). Now, it returns 1 on success or 0 on failure.
- Исправлено: StatusBarText() didn't refresh the statusbar with the 'Borderless' flag
- Исправлено: CatchImage() with #PB_any
- Исправлено: the PNG decoder nows handle corrupted PNG safely
- Исправлено: the JPEG encoder with quality value inferior to 3 could lead to a crash
- Исправлено: a little TreeGadget() bug when checkboxes were activated
- Исправлено: Packer compression routine was sometimes hanging on some files
- Исправлено: OnError library wasn't useable in a DLL (thanks to Rings)
- Исправлено: Literal string concatenation were wrong in some cases
- Исправлено: The compiler didn't returned a non zero exit code if an error occurred
- Исправлено: Several compiler bugs

4 Июля 2004 : Версия 3.91

- Добавлено: Desktop library
- Добавлено: IsDatabase(), IsFile(), IsFont(), IsDirectory(), IsGadget(), IsImage(), IsLibrary(), IsMenu(), IsModule(),
IsMovie(), IsPalette(), IsSprite(), IsSprite3D(), IsStatusBar(), IsSysTrayIcon(), IsToolBar(), IsWindow()
- Добавлено: Manifest file (for XP skins) is now included in the exe
- Добавлено: 'Main source' support in the IDE for multifile projects
- Добавлено: Debugger check for empty list element access

- Замена: WindowMouseX() and WindowMouseY() now returns the coordinates in the window client area (DesktopMouseX() now replaces the old behavior).
- Замена: the LCC resource compiler and linker to PellesC one

- Исправлено: AddDate() bug
- Исправлено: MDIGadget resize when a StatusBar was Добавлено after the MDI creation
- Исправлено: InputPathRequester() which could crash on Win98 in some circumstances
- Исправлено: OpenWindowedScreen() position when used within container gadgets
- Исправлено: Trim() in expression
- Исправлено: a crash which could randomly occurs at the very end of the program when OpenHelp() was used.
- Исправлено: a bug in PlayMovie() which could hide the movie on some configuration
- Исправлено: Compiler bug when accessing a deeply nested structure array.

12 Апреля 2004 : Версия 3.90

- Добавлено: #PB_Any support (dynamic numbering) for Database, File, Font, FileSystem, Gadget, Image, Library,
Module, Movie, Palette, Sprite, Sprite3D, SysTray, ToolBar, StatusBar and Window
- Добавлено: CountString(), KeyboardInkey(), GetWindowTitle(), SetWindowTitle(), ElapsedMilliseconds()
- Добавлено: RemoveGadgetColumn(), SetGadgetAttribute(), GetGadgetAttribute(), SetGadgetItemAttribute(), GetGadgetItemAttribute()
- Добавлено: MDIGadget() by Fr34k
- Добавлено: VerticalBlank support for FlipBuffers() (and works in windowedmode too)
- Добавлено: Autosize for StatusBar and ToolBar (no more callback needed)
- Добавлено: New size handler by Fr34k which allow real-time window sizing (with #PB_Event_SizeWindow) without callback !
- Добавлено: New 'z' optional parameter to TransformSprite3D()
- Добавлено: Several new flags for SplitterGadget() for better flexibility
- Добавлено: SetGadgetAttribute() support for ScrollAreaGadget() to resize the inner area.
- Добавлено: Joystick and Module support for NT4 compatibility mode
- Добавлено: Hexadecimal display, clear-copy-save debug output and window position saving to the debugger
- Добавлено: Support for different depth icons for the default program icon
- Добавлено: IDE features: Interface viewer, new MS SDK support, find in files, line numbering
- Добавлено: 'Static' keyword for local variables (in procedures) which need to be persistent
- Добавлено: Last FAsm (assembler) Версия, which has some speed improvement and fix a bug on big sources
- Добавлено: QuickHelp support in the PureBasic IDE for most of the API functions !

- Замена: no more #Memory ID and flag for AllocateMemory()
- Замена: CDAudioName() doesn't need an ID anymore, as stated in the docs.

- Optimist: split CDAudio, Database, File, Network, StatusBar and Systray libraries

- Удалено: UpdateStatusBar(), UseMemory(), MemoryID()

- Исправлено: French documentation is now perfectly up to date
- Исправлено: NT4 (DirectX 3) support for Sprite, Palette, Sound, Keyboard and Mouse libraries
- Исправлено: Bug in CreateSprite3D(), the width and height was 1 pixel wider
- Исправлено: Bug with SpritePixelCollision if the same sprite was used for both collisions.
- Исправлено: Bug in the debugger with win98 (application window was in background)
- Исправлено: OpenWindowedScreen() didn't take the menu height in count (if any)
- Исправлено: IsFilename() missed some checks
- Исправлено: Several expression parser bugs in the compiler
- Исправлено: SizeOf() when used with extended structures
- Исправлено: NewPrinterPage() bug on Win98
- Исправлено: CloseScreen() when used with Sprite3D library
- Исправлено: Several paths problems when using the compiler in console mode
- Исправлено: All requesters now locks all the opened windows

9 Декабря 2003 : Версия 3.81

- Добавлено: DatabaseUpdate(), DatabaseError()
- Добавлено: Play/Stop/Resume/PauseMovie() support for sprite rendered movies
- Добавлено: 'Extends' support for 'Structure'
- Добавлено: Icon support and live image resize for DrawImage()
- Добавлено: 2, 16 and 256 colors BMP support for Catch/LoadSprite()
- Добавлено: #PB_Default support for DrawingFont()
- Добавлено: Добавлено Japanese support for Gadget library, editor and Visual Designer
- Добавлено: Excellent SmartUpdate tool from fr34k to update quickly any PureBasic Версия
- Добавлено: Last Версия of the Visual Designer by Berikco

- Оптимизировано: ExplorerGadgets are now 5x faster for directories scanning

- Замена: Labels are no more case-sensitive
- Замена: Default quality for SaveImage() and JPEG plug-in is now '7'
- Замена: InitModule() and InitPalette() doesn't need the maximum parameter anymore
- Замена: PlayMovie() behavior has Замена for rendered movies

- Исправлено: A memory leak in Sprite rendered movies
- Исправлено: Requesters commands could lock other applications if no window were opened
- Исправлено: Some interfaces definitions was wrong in the Residents
- Исправлено: String constants with multiple constants items
- Исправлено: KeyboardReleased(#PB_Key_All) wasn't working
- Исправлено: Compiler bug with Interface in procedure and with string returns
- Исправлено: ProcedureDLL bug when a string return type was specified
- Исправлено: CopySprite() didn't work with Alpha-Sprites
- Исправлено: Bug in the compiler optimizer with bytes and word in some very rare cases
- Исправлено: JPEG and TIFF decoder bug in rare situation
- Исправлено: Small EditorGadget() and SpinGadget() bugs

6 Октября 2003 : Версия 3.80

- Добавлено: ExplorerComboBoxGadget()
- Добавлено: CameraProjection(), CameraBackColor() and CameraRange()
- Добавлено: The modulo operand: '%'
- Добавлено: ForEach command to iterate linkedlists quickly
- Добавлено: Interface/EndInterface to support object function call ! Yes, COM and DX objects are now accessible natively in PureBasic...
- Добавлено: Big residents files with all Windows/DirectX interfaces ready to use !
- Добавлено: Break and Continue to modify the loops flow
- Добавлено: Enumeration/EndEnumeration to quickly declare a lot of sequential constants
- Добавлено: OffsetOf() to get the offset of a structure or interface field
- Добавлено: SizeOf() now supports variables and Interfaces
- Добавлено: Interface, Float and String constants support to the 'Resident' file format
- Добавлено: Quality support for SaveImage() and the JPEG encoder
- Добавлено: MessageRequester() 'Flags' is now an optional parameter
- Добавлено: The Editor syntax coloring and structure viewer have been greatly enhanced

- Оптимизировано: Удалено many OGRE's dependencies resulting in a smaller Engine3D.DLL

- Замена: Constants are back real constants now (use Enumeration to have dynamic constants)

- Исправлено: ASM registers display in the Debugger
- Исправлено: IncludePath problems with IncludeBinary
- Исправлено: Couldn't use TAB inside an editable ComboBoxGadget()
- Исправлено: DeleteDirectory() failed with a read-only directory in 'Force' mode
- Исправлено: TGA decoder bug for Top/Down and RLE pictures
- Исправлено: Possible lock in the AddPackFile() and PackMemory() routines
- Исправлено: the structure size when the structure was very big (over 32000 bytes)
- Исправлено: Int(): a negative value could produce wrong results
- Исправлено: A LinkedList issue when it was used in and outside a Procedure
- Исправлено: Line() and LineXY() was not drawing the last point
- Исправлено: debugger checks: InitEngine3D()
- Исправлено: A bug in TextLength() when an empty string was used
- Исправлено: ProcedureReturn bug when used in 'Select String$' expression
- Исправлено: Sounds were limited to 50 when debugger was activated
- Исправлено: ClipSprite() wasn't supported by DisplayAlphaSprite(), DisplayShowSprite(), DisplaySolidSprite() and DisplayTranslucentSprite()
- Исправлено: A reserved keyword like 'Data' couldn't be used in a Structure
- Исправлено: CreatePack(), SaveImage() and SaveSprite() didn't work with very long filename
- Исправлено: Inkey() was halting the program flow
- Исправлено: FileSize() returned wrong value on Win9x for root directories
- Исправлено: An editor bug which caused panel tab inВерсия

13 Июля 2003 : Версия 3.72

- Замена: SelectedFilePattern() and Open/SaveFileRequester pattern index is now '0' based instead of '1' based. Warning !
- Замена: ListIndex() is now '0' based instead of '1' based. Warning !

- Обновлено: IDE: find/replace Обновлено, an '*' now identify a modified file
- Обновлено: Toolbar library has been split and Оптимизировано
- Обновлено: all missing libraries quickhelps (status bar of the editor)

- Исправлено: ParseDate() when no separators were used in the date
- Исправлено: ResizeImage() has now a nice quality resampling
- Исправлено: several gadget events issue (Splitter, Panel)
- Исправлено: PNG and JPEG decoder in some rare cases
- Исправлено: the name of several functions (OnError library)
- Исправлено: several compiler bugs

7 Июня 2003 : Версия 3.70

- Добавлено: Terrain library
- Добавлено: Billboard library
- Добавлено: Entity library
- Добавлено: Material library
- Добавлено: Particle library
- Добавлено: OnError library
- Добавлено: CameraLookAt(), CameraRenderMode(), CameraFOV(), Engine3DFrameRate(), CountRenderedTriangles()
- Добавлено: CreateMesh(), SetMeshData()
- Добавлено: ExamineLibraryFunctions(), NextLibraryFunction(), LibraryFunctionName(), LibraryFunctionAddress()
- Добавлено: IsFunctionEntry(), CallCFunction(), CallCFunctionFast()
- Добавлено: RenderMovieFrame(): Yes, you can play a movie on a sprite or on a screen !
- Добавлено: OpenGadgetList(), ScrollBarGadget(), ScrollAreaGadget(), SplitterGadget()
- Добавлено: HyperLinkGadget(), ContainerGadget(), EditorGadget()
- Добавлено: TreeGadgetItemNumber(), ExplorerListGadget(), ExplorerTreeGadget()
- Добавлено: #PB_FontRequester_Effects flag for the FontRequester()
- Добавлено: PanelGadget() has been fully rewritten and is now XP theme compliant
- Добавлено: TreeGadget() has been rewritten to support dynamic items (add, remove..)
- Добавлено: AddGadgetItem() now support picture for the PanelGadget()
- Добавлено: 'ParentID' optional parameter to OpenWindow()
- Добавлено: CDecl support for PureFunctions and procedures (Добавлено 'ProcedureCDLL' and 'DeclareCDLL' keyword)
- Добавлено: End [ExitCode] optional parameter
- Добавлено: More precise error-message for Assembly and Linker errors
- Добавлено: /LINENUMBERING compiler switch
- Добавлено: Full debugger support for the 3D engine
- Добавлено: ComboBox support for GetGadgetItemText() and SetGadgetItemText()
- Добавлено: Many new functions for the Visual designer including Tab order, font selection, new gadgets and more.

- Замена: Mesh library, introduced a new Entity one (for more flexible control)
- Замена: ClosePanelGadget to CloseGadgetList()
- Замена: Inline assembly labels are now l_label instead of pLabel

- Оптимизировано: and split the Movie library

- Исправлено: SpriteCollision() and SpritePixelCollision() was 1 pixel wrong
- Исправлено: Result code for CopyDirectory was wrong in some case
- Исправлено: StrF(): if a digit number is specified it rounds correctly
- Исправлено: Several debugger warning was missing
- Исправлено: Floats and integers were badly mixed in some case

25 Марта 2003 : Версия 3.62

- Удалено: FakeEndSelect

- Исправлено: Several compiler bugs
- Исправлено: Small bug in the PNG encoder and decoder
- Исправлено: ProcedureReturn inside Select/EndSelect
- Исправлено: Array allocation if no memory was available
- Исправлено: Int(): broken since v3.60
- Исправлено: Val(): now accepts any BASIC valid forms
- Исправлено: AddPackFile() problem on some files
- Исправлено: RunProgram() with very long paths

19 Марта 2003 : Версия 3.61

- Исправлено: Major compiler array bugs
- Исправлено: Major MD5FileFingerprint() bug
- Исправлено: Syntax Highlighting for command/procedure and Alt+V shortcut
- Исправлено: 2 bugs in the Visual Designer
- Исправлено: Sprite loading and image plug-in (JPEG, PNG) in 16-bit mode
- Исправлено: XOR inline ASM keyword was no more recognized
- Исправлено: TGA decoder on some file

17 Марта 2003 : Версия 3.60

- Добавлено: Powerful Visual Designer, to easily creates graphical applications
- Добавлено: Many new optimizations in the compiler core, resulting in faster/smaller code (especially when dealing with arrays and structured variables)
- Добавлено: Native JPEG, TIFF, PNG and TGA image/sprite decoder trough plug-in
- Добавлено: Native JPEG and PNG image/sprite encoder trough plug-in
- Добавлено: Native OGG sound decoder trough plug-in
- Добавлено: AvailableScreenMemory(), SelectedFilePattern(), DefaultPrinter()
- Добавлено: Flags for LoadFont() to allow italic, bold and more
- Добавлено: Multisource support for the debugger (Included files)
- Добавлено: Array overflow debugger check
- Добавлено: Data read overflow debugger check
- Добавлено: Icon support for CatchImage()
- Добавлено: MMX, 3DNOW, SSE and SSE2 optional support, with autoselect mode (to choose automatically the right routine at runtime, depending of the processor).
- Добавлено: DLL Importer tool in the Library SDK

- Оптимизировано: and split: Font, Gadget and Window libraries, for smaller executable (Thanks to Danilo)

- Удалено: CatchJPEGSPrite() and LoadJPEGSprite() (replaced by plug-ins)

- Enhanced the PureBasic library format (new compressed format)
- Enhanced Inline ASM now accept FPU opcode
- Enhanced the editor: Double-click on (X)IncludeFile open the file, Inline Help works for all keywords (If/EndIf..) ASM syntax coloring, Inline ASM help

- Замена: SetGadgetFont() now takes 2 parameters, to allow runtime font change

- Исправлено: SortArray() when sorting string in case insensitive mode
- Исправлено: the RunProgram() command with 3 args
- Исправлено: ImageOutput() problem with Windows 98
- Исправлено: the 16-bit sprite display problem with some old gfx cards which use 15-bit internally
- Исправлено: some bugs in the compiler

13 Января 2003 (Версия 3.51)

- Обновлено: French documentation for v3.51

- Исправлено: some bugs in the compiler and Оптимизировано a bit the output
- Исправлено: IPString() and IPAddressField() was in the reversed order
- Исправлено: and improved the InputRequester() by adding keyboard shortcut
- Исправлено: ReadPreferenceLong/String/Float() to accept spaced keywords
- Исправлено: MouseButton beep problem in full screen mode
- Исправлено: Date() and ParseDate() when an invalid date was specified
- Исправлено: the editor XP-Theme problem
- Исправлено: the editor ProcedureBrowser (Thanks to Dominique and Plouf)
- Исправлено: OpenWindow() dimension when no flag where specified

- Удалено: the Gosub/Return check introduced in v3.50 (for flexibility reason)

6 Января 2003 : Happy New Year ! (Версия 3.50)

- Добавлено: Engine3D Library: Add3DArchive(), AmbientColor(), Fog(), InitEngine3D(), LoadWord(), RenderWorld(), SkyBox(), SkyDome()
- Добавлено: Camera Library: CameraLocate(), CameraX(), CameraY(), CameraZ(), CreateCamera(), FreeCamera(), MoveCamera(), RotateCamera()
- Добавлено: Light Library: CopyLight(), CreateLight(), FreeLight(), HideLight(), LightColor(), LightLocate(), LightSpecularColor(), MoveLight()
- Добавлено: Mesh Library: CopyMesh(), FreeMesh(), GetMeshAnimationTime(), MeshAnimation(), MeshAnimationLength(), MeshLocate(), MeshTexture(), MeshX(), MeshY(), MeshZ(), MoveMesh(), ResizeMesh(), RotateMesh(), ScaleMesh(), SetMeshAnimationTime()
- Добавлено: Texture Library: CopyTexture(), CreateTexture(), FreeTexture(), LoadTexture(), TextureHeight(), TextureID(), TextureOutput(), TextureWidth()
- Добавлено: WriteFloat(), ReadFloat(), MouseLocate(), MD5FileFingerprint()
- Добавлено: STDCALL and ANY flags to PureLibraries. See SDK doc for more information
- Добавлено: TreeGadget checkboxes support for GetGadgetItemState()
- Добавлено: SetGadgetState() now work for ButtonImageGadget()

- Обновлено: CallFunction() and CallFunctionFast(): Floats can be passed directly
- Обновлено: SetStatusBarText() 'Appearance' parameter is now optional
- Обновлено: FrameGadget() 'Flags' parameter is now optional

- Оптимизировано: CallFunctionFast() (2x faster)
- Оптимизировано: the code generation: Chr(#Constant) is now considered as a literal string and some speed enhancements

- Замена: The assembler (FASM), resulting of better Оптимизировано code (PB editor is 6 kb smaller for example)
- Замена: LSet() by RSet() and RSet() by LSet() (was reversed compared to normal Basic functions)
- Замена: OpenTreeGadgetNode() and CloseTreeGadgetNode() (now need a parameter)
- Замена: ReleaseMouse() now takes one parameter

- Исправлено: the game mouse support in windowed mode (could lead to computer lock)
- Исправлено: SelectElement() was wrong when passing -1..
- Исправлено: TreeGadget() when used several times on the same window
- Исправлено: SaveImage() with 16bits and 8bits desktops
- Исправлено: RSet() with 2 arguments
- Исправлено: a little bug in ParseDate()
- Исправлено: AddPackFile() and AddPackMemory(): buffer overflow in some rare cases
- Исправлено: OpenFileRequester() with MultiSelection mode
- Исправлено: a silly bug when using many images in the gadget items (TreeGadget, ListIconGadget...)
- Исправлено: Cipher library

9 Октября 2002 : Версия 3.40

- Замена: Structure names aren't case sensitive anymore (could produce difficult bug to look at)

- Добавлено: Date library: Date(), Year(), Month(), Day(), DayOfWeek(), DayOfYear(), Hour(), Minute(), Second(), FormatDate(), AddDate(), ParseDate()
- Добавлено: Hostname(), ExamineIPAddresses(), NextIPAddress(), IPString()
- Добавлено: LSet(), RSet(), Bin(), RemoveString(), StringField()
- Добавлено: ModuleVolume(), OSВерсия(), WaitThread()
- Добавлено: CopyDirectory(), DeleteDirectory(), IsFilename()
- Добавлено: NextSelectedFilename(), InputRequester()
- Добавлено: DrawingBuffer(), DrawingBufferPixelFormat(), DrawingBufferPitch(), FillArea()
- Добавлено: #PB_Compiler_Date, #PB_Compiler_OS compiler built-in constants

- Оптимизировано: Split libs: FileSystem, StringExtension, Date

- Обновлено: RunProgram() now has an optional WorkingDirectory$ parameter
- Обновлено: SetGadgetFont(#PB_Font_Default) now go back to default font
- Обновлено: OpenWindow() now accepts 2 news flags: #PB_Window_WindowCentered and #PB_Window_ScreenCentered
- Обновлено: GetGadgetItemText() and SetGadgetItemText() now works for TreeGadget()
- Обновлено: ReplaceString now have a new 'StartFrom' optional parameter
- Обновлено: SetGadgetState() can be used with ImageGadget() to change the current image
- Обновлено: Добавлено 'Level' flag for PackMemory(), AddPackFile() and AddPackMemory() for faster compression
- Обновлено: when building a DLL, AttachProcess(), DetachProcess(), AttachThread() and DetachThread() must have an 'Instance' parameter
- Обновлено: no more '_' when creating a DLL

- Исправлено: Debugger problem in the FileSystem library
- Исправлено: ReadPreferenceLong() and ReadPreferenceFloat()
- Исправлено: SpriteOutput() bug when using Plot()
- Исправлено: CDAudioTrackLength(): last track returned always 0..
- Исправлено: OpenWindowedScreen(): bad BottomOffset and RightOffset values
- Исправлено: GetPathPart(), GetFilePart() and GetExtensionPart()
- Исправлено: SetGadgetText() when used with a ComboBox and an empty string (clear the combobox content)
- Исправлено: SetClipboardText(), now use the TEXT instead of OEM format.
- Исправлено: Compiler didn't warn when a Global variable was used in Procedure parameter.
- Исправлено: Compiler bugs in InlineASM : 'MOV eax, "String"' and 'MOV eax, #CONSTANT' were badly compiled.
- Исправлено: Compiler bug when using negative float constant
- Исправлено: Compiler bug when using float operations with API functions
- Исправлено: Compiler bug when comparing string with numeric (now forbidden)
- Исправлено: Compiler bug when using INCLUDEBINARY in DataSection
- Исправлено: Compiler bug when DECLARE and PROCEDURE didn't match (no errors were generated)
- Исправлено: Compiler bug when DEBUG was used in procedures with strings operations

- Editor enhanced (Multi files, Procedure browser, custom tools and more...) and source code released. Thanks to Danilo !

16 Августа 2002 : Версия 3.30

- This is a bug fixes and synchronization with Linux Версия release

- Добавлено: HideMenu(), CreateSprite(), UseBuffer()
- Добавлено: French help (fully translated)

- Обновлено: SortArray() now works with float arrays
- Обновлено: LoadSprite(), GrabSprite(), CopySprite(), CatchSprite(), LoadJPEGSprite(), CatchJPEGSprite() have now an optional 'Mode' parameter
- Обновлено: GetFilePart(), GetPathPart() and GetExtensionPart() now remove the surrounding quote (") if any.
- Обновлено: SetGadgetItemState() and GetGadgetItemState() can now set/get the checkboxes state of a ListIconGadget() item

- Исправлено: SetClipboardText(): failed in some cases
- Исправлено: SpritePixelCollision(): failed if sprites were of different sizes
- Исправлено: LoadJPEGSprite was ignoring the 'Mode' parameter (not good for 3D sprites)
- Исправлено: Bug in AddGadgetItem() with ListIconGadget()
- Исправлено: PokeF() was missing
- Исправлено: MovieAudio(): wrong volume ramp (now based on decibels..)
- Исправлено: ReleaseMouse() wasn't recognized
- Исправлено: 2DDrawing bug (again...)
- Исправлено: LoadSprite() failed with 16-bit and 32-bit BMP.
- Исправлено: GetGadgetText() when used with an editable ComboBoxGadget()
- Исправлено: ReadByte() and ReadWord() (with long/word variables)
- Исправлено: FreeMenu(), GadgetX(), GadgetY()
- Исправлено: DisplaySolidSprite() was missing
- Исправлено: Debug routine missing for GadgetID()
- Исправлено: Bug when several Movies were used (crash at program end)
- Исправлено: ResizeImage()
- Исправлено: PreferenceGroup()
- Исправлено: ExamineMouse() returned always 0
- Исправлено: PathRequester crashed with uninitialized DefaultPath
- Исправлено: InitSprite3D() crashed when alone
- Исправлено: Editor: ZoomSprite3D() didn't highlight

9 Июня 2002 : Версия 3.20

WARNING! The window callback behavior have Замена and will cause program lock if you used one ! See SetWindowCallback() doc for more info.

- Добавлено: Cipher library: CRC32Fingerprint(), MD5Fingerprint(), DESFingerprint(), Base64Encoder()
- Добавлено: AddKeyboardShortcut(), RemoveKeyboardShortcut(), SpinGadget(), WebGadget()
- Добавлено: GetMenuItemState(), SetMenuItemState(), MenuHeight()
- Добавлено: KeyboardReleased(), Trim(), Space()
- Добавлено: SelectElement(), LineXY(), GetExtensionPart()
- Добавлено: ! (XOR) and ~ (NOT) bitwise operands
- Добавлено: Protected BASIC keyword
- Добавлено: Shift+Tab keyboard shortcut to cycle gadget back
- Добавлено: Debugger now detects when using a NULL pointer and a division by 0.

- Оптимизировано: 2DDrawing, Keyboard, Mouse, Sound and Sprite libraries (Command split) !
- Оптимизировано: Plot() command when used with ScreenOutput() is 40 times faster (DirectX)

- Обновлено: PokeS() and PeekS() now have an optional Length parameter
- Обновлено: KeyboardPushed() can now have #PB_Key_All as parameter for any pushed keys
- Обновлено: FileSize() now returns -2 if the file is a directory
- Обновлено: WindowID() can have an optional #Window parameter
- Обновлено: All gadgets commands (Добавлено a 'Flags' optional parameter) which allows a full control over their look ! (See the each Gadget doc for more information)
- Обновлено: Plot(), Line(), Box(), Circle(), Ellipse() have now an optional color parameter.
- Обновлено: Debugger has some bug Исправлено. When a program stop, or the debugger quit all is cleaned correctly. - This allows fullscreen game debugging easier as the screen close down before displaying the error.
- Обновлено: Sprite library debug routines.

- Замена: Renamed StripLead() and StripTrail() to RTrim() and LTrim() for other BASIC compatibility
- Замена: NetworkClientEvent(), CloseNetworkConnection()
- Замена: CreateToolBar(): Добавлено 'WindowID' parameter
- Замена: CreateMenu(): Добавлено 'WindowID' parameter
- Замена: NetworkClientEvent() and NetworkServerEvent(): no more 'String' event: could be a possible exploit.
- Замена: OpenWindowedScreen() x,y parameters take in count the window top and left border width.
- Замена: ResizeWindow(), WindowWidth() and WindowHeight() now use inner area width/height to work with new OpenWindow() and skin support

- Удалено: AttachToolBar(), DetachToolBar(), AttachMenu(), ReceiveNetworkString()

- Исправлено: FrameGadget() with other sunken and raised frames
- Исправлено: ListViewGadget() events
- Исправлено: FileSize()
- Исправлено: StopDrawing(), display under win9x got corrupt after lot of calls
- Исправлено: Debugger problems.
- Исправлено: AddGadgetItem() with ListIconGadget() (-1 position wasn't working)
- Исправлено: SpritePixelCollision() with clipped sprites
- Исправлено: Possible bug in Random()
- Исправлено: SpritePixelCollision(), only (0,0,0) transparent color worked
- Исправлено: InitSprite(), InitSound(), InitPalette(), InitKeyboard() don't display system request anymore if DirectX 7+ isn't found.
- Исправлено: RemoveGadgetItem() and ClearGadgetItemList when used with PanelGadget()
- Исправлено: PathRequester() default path on Win9x systems
- Исправлено: @linkedlist() with '.s' type now return correct list element pointer (instead of string pointer)
- Исправлено: ReadPreferenceString() was faulty in some cases
- Исправлено: Documentation: SaveImage(), ScreenID(), SelectedFontStyle() and SelectedFontColor() were missing

6 Мая 2002 : Версия 3.10

- Добавлено: Preference library: OpenPreferences(), CreatePreferences(), ReadPreferenceLong/Float/String(), WritePreferenceLong/Float/String() PreferenceComment(), PreferenceGroup()
- Добавлено: Windows XP skinning support (See 'Compiler Options' window)
- Добавлено: GadgetX(), GadgetY(), GadgetWidth(), GadgetHeight(), GetGadgetItemState(), SetGadgetItemState(), GetGadgetItemText(), SetGadgetItemText(), CountGadgetItems(), TrackBarGadget(), IPAddressGadget()
- Добавлено: HideWindow(), RandomSeed(), MakeIPAddress(), IPAddressField()
- Добавлено: MouseWheel(), CatchSprite(), SaveSprite()
- Добавлено: RotateSprite3D(), ZoomSprite3D(), TransformSprite3D(), Sprite3DQuality(), Sprite3DBlendingMode()
- Добавлено: EventType(): Return/Change/Focus can be detected in StringGadget(), ComboBox() and more
- Добавлено: CatchImage(), CreatePack(), ClosePack(), NextPackFile(), AddPackFile(), AddPackMemory(), PackFileSize(), OpenPack()
- Добавлено: DirectoryEntrySize(), DirectoryEntryAttributes()
- Добавлено: Full compatibility with 'WindowBlinds' on WinXP which seems to broke the event handler !

- Оптимизировано: PureLibraries (Only used commands included) : Image, Misc2, GadgetExtension, Requester, Sprite3D, Memory, Packer

- Обновлено: CompareMemoryString(): Добавлено an optional 'Length' parameter.
- Обновлено: DisplayPopupMenu(): (x,y) are now optional
- Обновлено: ResizeGadget(): passing '-1' to one of the arguments make it ignored (very useful for resizable GUI)
- Обновлено: GetGadgetText() and TextGadgetText() now works with TreeGadget() and ListIconGadget()
- Обновлено: AddGadgetItem() now have an optional Image parameter.
- Обновлено: OpenWindow(): now add the border size automatically, to fix skinning problem under XP
- Обновлено: FileSize() now returns size for every files, even locked one

- Удалено: InitGadget(): no more needed.
- Удалено: DoubleClick() and EventMouseButtons(): Use EventType() instead
- Удалено: OpenDefaultConsole(). Now OpenConsole() detects automatically if the program is in 'Console' or 'Windows' format.
- Удалено: AddListIconGadgetItem() and AddTreeGadgetItem(): AddGadgetItem() is now used
- Удалено: ExpandTreeGadgetItem() and TreeGadgetItemState(): Set/GetGadgetItemState() is now used

- Исправлено: Gadget events for ComboBox, ListIcon and Systray.
- Исправлено: Possible memory leaks with strings in particular cases
- Исправлено: Possible bug when using Procedures as callbacks
- Исправлено: Create3DSprite(): size was 1 pixel less
- Исправлено: Each window has now its own private class
- Исправлено: PlaySound(): debugger routine missing and little glitch at the end of playback
- Исправлено: ResizeGadget() with PanelGadget and some refresh problems
- Исправлено: FindString() on Win9x
- Исправлено: ExamineDirectory() bug on Win9x
- Исправлено: Module library, playback should work everywhere now
- Исправлено: SetGadgetText() for ListViewGadget()
- Исправлено: SelectedFontColor()
- Исправлено: Silly bug in DeleteElement()
- Исправлено: NewList xxxx() alone produced a linker error
- Исправлено: Bug when printing images
- Исправлено: Random() command (again !)
- Исправлено: ResizeImage() under Win9x
- Исправлено: IncludeBinary bug (only absolute path worked)
- Исправлено: Editor: Tab was badly handled. Little bug when pressing return. Minor coloring bug when pasting

4 Апреля 2002 : Версия 3.00

- Добавлено: Library PureLibrary: OpenLibrary(), IsFunction(), CallFunction(), CloseLibrary()
- Добавлено: Help PureLibrary: OpenHelp(), CloseHelp()
- Добавлено: Clipboard PureLibrary: ClearClipboard(), GetClipboardText(), GetClipboardData(), SetClipboardData(), SetClipboardText()
- Добавлено: ElseIf
- Добавлено: If a condition (If/While...) isn't finished before EndProcedure, the compiler display an error.
- Добавлено: ToolBarToolTip()
- Добавлено: SpritePixelCollision()
- Добавлено: Timer PureLibrary (Thanks to Danilo): StartTimer(), EndTimer(), GetMinTimerResolution(), GetMaxTimerResolution()
- Добавлено: ComDX PureLibrary (Thanks to Danilo): CallCOM(), CallDX()
- Добавлено: Printer PureLibrary: NewPrinterPage(), PrinterOutput(), PrintRequester(), StartPrinting(), StopPrinting(), PrinterPageWidth(), PrinterPageHeight()
- Добавлено: Variable command argument for any function
- Добавлено: Declare and DeclareDLL to declare procedures before actual declaration
- Добавлено: CopyMemoryString(), MemoryStringLength(), CompareMemory(), ReAllocateMemory(), CompareMemoryString()
- Добавлено: CopyImage(), ResizeImage(), GrabImage()
- Добавлено: MovieStatus(), MovieLength()
- Добавлено: SoundVolume(), SoundPan(), SoundFrequency(), CatchSound()
- Добавлено: FirstDatabaseRow(), PreviousDatabaseRow()
- Добавлено: CreatePalette(), GetPaletteColor(), SetPaletteColor(), UsePalette()
- Добавлено: RGB(), ReplaceString(), StrU(), StrF(), ValF()
- Добавлено: HideGadget(), GadgetID()
- Добавлено: Dutch catalog for the editor

- Обновлено: Brand new library architecture to allow to link ONLY needed commands to the final executable. For now, all the libraries aren't Оптимизировано to use it, but it will come, in a near future :). BTW, all libraries use the standard STDCALL format, so no argument reversed anymore. Old libraries are still fully compatible.
- Обновлено: StopSound(): Passing '-1' will stop playing all sounds.
- Обновлено: PlaySound(): Flags parameter is now optional
- Обновлено: Sort(): now a range can be specified (ex: from elements 20 to 50 of the array)
- Обновлено: Resident file: #VK_xx constants Добавлено, some structures Исправлено.

- Замена: Internally, procedures parameters are now pushed in the right order. Warning, all the callback must be Замена to reflect this. This also mean than DLL procedure parameters can be put in the right order.
- Замена: InitSound() doesn't require a maximum sound param anymore
- Замена: Renamed BackColour(), FrontColour() and TransparentSpriteColour() to BackColor(), FrontColor() and TransparentSpriteColor()

- Исправлено: Compiler crash when using constant string, more check to the preprocessor
- Исправлено: StartDrawing() bugs
- Исправлено: Random(), to have more randomized numbers.
- Исправлено: GetDatabaseString() when getting null values
- Исправлено: ExamineDirectory(): Failure on Win9x systems on special cases
- Исправлено: Resident problem. Now users residents are loaded.
- Исправлено: Editor bug, which prevents to type special characters (characters over 128 in the ASCII table) and some minors other
- Исправлено: A FPU bug which prevented OpenGL to work correctly
- Исправлено: 'Debug' command: now accept float and string functions without problem.

- Удалено: Mr Skunk PureLibraries, as some was bugged but we don't have the source code to fix them.

24 Февраля 2002 : Версия 2.95

Note: This is a bug fix release before the major 3.0 Версия. Very few changes.

- Добавлено: HtmlHelp support for search in the help + other goodies. Old HTML files can be safely Удалено.

- Исправлено: Compiler bugs (Float within structure array, XIncludeFile, 'a' constants in some rare case, Expression bug, constant duplication and Image library integration when using Sprite, Memory leaks in string procedures)
- Исправлено: LoadJPGSprite bug
- Исправлено: Editor colorize problem with normal text color

27 Января 2002 : Версия 2.90

- Добавлено: DLL Creation !
- Добавлено: Constants can now be String or Float
- Добавлено: Debug et DebugLevel commands with Debug window in the debugger.
- Добавлено: Italian editor language by Yuri.

- Замена: Variables, Arrays, LinkedList and Constants are now case insensitive.

- Исправлено: PathRequester(), OpenFileRequester(), SaveFileRequester()
- Исправлено: ExamineDirectory() tiny bug
- Исправлено: GetDatabaseFloat()
- Исправлено: Compiler crashing bug on NT4 Sp6a.

13 Января 2002 : Версия 2.82

- Добавлено: PeekF(), PokeF()
- Добавлено: Math library: ACos(), ASin(), ATan(), Pow(), Log(), Log10(), Round(), Cos(), Sin(), Tan(), Abs(), Sqr(), Int()
- Добавлено: SpriteOutput(): Allow to use the 2DDrawing command on any sprites !
- Добавлено: #PB_WindowInvisible

- Исправлено: compiler bugs (a.l = Pow(), a = -16/variable)
- Исправлено: a bug in OpenDatabaseRequester() which prevents database opening with some ODBC drivers (MySQL...)
- Исправлено: FrontColour() bug which caused DX and whole system crashes.
- Исправлено: SaveImage(). Always save in 24-bit instead of 32-bit
- Исправлено: ListViewGadget() now use the exact height gadget, not a rounded one
- Исправлено: SysTrayIconToolTip() no more crash if specified text is over 64 characters
- Исправлено: ListIconGadget(): Don't destroy the icons after FreeGadget()
- Исправлено: ChangeListIconGadgetDisplay(): Refreshed automatically
- Исправлено: Window background color under Windows XP

- Замена: StrF(Number) to StrF(Number, Precision)

01 Января 2002 : Версия 2.80 (Happy New Year Release)

Compiler:
- Обновлено: Rewrote from scratch the compiler core: complex expression compliant
- Обновлено: Оптимизировано the code output
- Добавлено: /REASM compiler flag to allow source code reassembly after hand modifications
- Добавлено: Possibility to use floats with API call.
- Исправлено: float support (comparison, procedure, Abs(), Sin() etc..)
- Исправлено: all known bugs

Libraries:
- Добавлено: Sprite3D library: Create3DSprite(), Display3DSprite(), Transform3DSprite(), Free3DSprite(), Start3D(), Stop3D()
- Добавлено: SaveImage()
- Добавлено: Debugger routine for all commands
- Исправлено: ExamineDirectory()
- Исправлено: OpenFile() (Read wasn't working)

Editor:
- Добавлено: QuickHelp for almost all commands
- Добавлено: Procedure direct jump support

28 Ноября 2001 : Версия 2.70

- Добавлено: ChangeSysTrayIcon(), SysTrayIconToolIip(), ExpandTreeGadgetItem(), TreeGadgetItemState()
- Добавлено: DisableMenuItem(), GadgetToolTip(), StatusBarIcon()
- Добавлено: UseGadgetList(), TransparentSpriteColor(), ClipSprite(), CopySprite(), GrabSprite()
- Добавлено: ProgramParameter()
- Добавлено: Thread library
- Добавлено: '!' support to include raw ASM command in the code source (directly managed by NAsm)
- Добавлено: Multilevel (100) Undo/Redo in the editor
- Добавлено: Colored syntax when pasting (Yes ;-)

- Обновлено: StatusBarText(): 2 flags for alignment (Center & Right)
- Обновлено: ReadData() now returns the number of byte read
- Обновлено: The debugger is now an high priority thread (much more responsible)

- Замена: PlaySound(), Добавлено a flag to play looping
- Замена: SetStatusBarText() -> StatusBarText()
- Замена: InitSprite(): Удалено the sprite parameter

- Исправлено: DatabaseQuery(), GetPathPart(), LoadSprite() (Can now load sprite of any size)
- Исправлено: CloseScreen(): can now switch FullScreen/Windowed without any problems. Cool.
- Исправлено: Compiler bugs (MultiArray in Procedures, Read data in Procedures)
- Исправлено: Flickering in the editor

5 Ноября 2001 : Версия 2.60

- Добавлено: CopyMemory(), CatchJPEGSprite(), LoadJPEGSprite(), WindowMouseX(), WindowMouseY()
- Добавлено: MovieSeek(), MovieInfo(), DrawImage(), ScreenOutput(), WindowOutput(), ImageOutput(), CreateImage()
- Добавлено: Database library
- Добавлено: Compressor library
- Добавлено: Console library (By Sylvain)
- Добавлено: Possibility to use the 2DDrawing library directly on Game screens
- Добавлено: XOR and Fill/Outline mode for 2D Drawing functions
- Добавлено: -1 feature to FreeMemory() to free all banks in one call.
- Добавлено: New flag for RunProgram(): run synchronously and possibility to hide it.
- Добавлено: Powerful ASM Monitor in the debugger (in a BASIC language !)
- Добавлено: Variable viewer in the debugger

- Замена: All old MemoryBank functions renamed.
- Замена: ReadMemory() and WriteMemory renamed -> ReadData(), WriteData() (For better logic with other commands)
- Замена: The PureBasic library format (see the SDK for more info)
- Замена: DrawingOutput() has been renamed to StartDrawing() and doesn't take a WindowID() anymore (but WindowOutput(), ScreenOutput() or ImageOutput()
- Замена: Eof() take one parameter now.

- Исправлено: StopModule() (Удалено the #Module) parameter
- Исправлено: A small compiler bug
- Исправлено: PlayMovie()
- Исправлено: Debugger while using ASM commands inside PureBasic
- Исправлено: Clipboard PASTE within the editor doesn't change the font anymore

23 Сентября 2001 : Версия 2.50

- Добавлено: Mouse library
- Добавлено: Movie library
- Добавлено: Sort library
- Добавлено: Procedure address (@procedurename())
- Добавлено: support for 'Console' executable format
- Добавлено: DisplayTranslucentSprite(), DisplayAlphaSprite(), DisplayShadowSprite(), DisplayRGBFilter(), ChangeAlphaIntensity(), ClearScreen() OpenWindowedScreen(), DisplaySolidSprite(), CloseScreen(), SetFrameRate(), IsScreenActive(), StartSpecialFX(), StopSpecialFX(), ResizeGadget() JoystickAxisX(), JoystickAxisY(), ChangeGamma(), SetWindowCallback(), Red(), Green(), Blue()

- Замена: LoadSprite()
- Замена: DisplayPalette (Удалено the screen argument)
- Замена: ExamineJoystick()
- Замена: OpenScreen (Добавлено Text$ parameter)
- Замена: FontRequester (Добавлено initial fontname and size)
- Замена: FrameGadget (Добавлено a border style flag)

- Исправлено: big bugs in DirectX routines (Sprite, Keyboard, Movie). Now it multitasks very well !
- Исправлено: icon support for ToolBar and Image library
- Исправлено: SelectedFontName()
- Исправлено: ClearGadgetItemList() when used with TreeGadget()
- Исправлено: LoadFont() (Incorrect YSize)

Editor:
- Добавлено: optional Auto-save before compiling
- Добавлено: Any font support
- Добавлено: Enable/Disable syntax coloration
- Добавлено: 2 new components for coloring: 'Normal Text' and 'Procedures/Commands'
- Добавлено: Real-time language, font, color changing
- Добавлено: new About window, much better ;-)

- Обновлено: ultra-fast syntax highlighting when loading the source file
- Обновлено: syntax highlighting behavior Исправлено and Замена (much better)

1 Августа 2001 : Версия 2.40

- Добавлено: Data support commands: Read, Restore, Data, DataSection, EndDataSection
- Добавлено: Float number support (early stage)
- Добавлено: MemoryBank library
- Добавлено: StatusBar library
- Добавлено: Image library
- Добавлено: Systray library
- Добавлено: lot of new commands: EventLParam(), EventWParam(), ListIndex(), ListCount() and ChangeCurrentElement() ToolBarImageButton(), EventMouseButton(), UseDirectory()
- Добавлено: CreatePopupMenu() and DisplayPopupMenu()
- Добавлено: TreeGadget(), ImageGadget(), ButtonImageGadget(), AddTreeGadgetItem()
- Добавлено: ListIconGadget(), AddListIconGadgetItem(), ChangeListIconGadgetDisplay(), AddGadgetColumn()

- Замена: the default type from 'Word' (16-bit) to 'Long' (32-bit)
- Замена: WaitWindowEvent()/WindowEvent() returns all Windows events !
- Замена: ComboBoxGadget(), PanelGadget() and ListViewGadget() (Удалено the useless Text$ parameter)
- Замена: ExamineDirectory() -> Number Добавлено to allow to examine several directories at the same time

- Исправлено: CopyFile() (Overwrite doesn't work)
- Исправлено: FrontColour() (Text colour doesn't change..)
- Исправлено: GetGadgetState(), SetGadgetState() and RemoveGadgetItem() to support PanelGadget

- Удалено: InitWindow(), InitRequester(), InitToolBar(), InitFont(), InitFile() and InitMenu() (No more needed...)

17 Мая 2001 : Версия 2.30

- Добавлено: to editor: Drag&Drop on the main window, auto registry support for .pb files, auto indent, Tab/Shift+Tab when a block is selected to indent easily
- Добавлено: tons of new commands: GetGadgetState(), SetGadgetState(), AddGadgetItem(), RemoveGadgetItem(), ClearGadgetItemList() PanelGadget(), ClosePanelGadget(), TextGadget(), SpritesCollision(), Delay(), OptionGadget(), FrameGadget() Loc(), PeekW/B(), PokeW/B(), GetPathPart(), GetFilePart(), RunProgram(), DoubleClick(), PathRequester()
- Добавлено: 'Tab' support on Gadget lib.
- Добавлено: compiler directives: CompilerIf/Else/Endif, CompilerSelect/Case/Default/EndSelect
- Добавлено: the CD-Audio library
- Добавлено: the FileSystem library
- Добавлено: a built-in ICON linker (no more need GoRC)

- Enhanced: Improved the debugger (step-by-step now works perfectly)
- Enhanced: Оптимизировано the generated executable (smaller and faster)
- Enhanced: Full rewrite of the compiler expression processor core
- Enhanced: Reduced the compiler and editor size (90kb instead 148kb and 33kb instead of 96kb)
- Enhanced: Tons of little improvements and bug fixes too long to enumerate

- Исправлено: some nasty bugs in the compiler

- Замена: LSR, LSR to << and >> respectively
- Замена: AddComboBoxItem and AddListViewItem() to AddGadgetItem()

25 Марта 2001 : Версия 2.20

- Добавлено: debugger runtime support for all pure libraries. A program no more crashes so easily. It's much easier now to catch up bugs !
- Добавлено: NT4.0 support for multimedia libraries (Sprite, Palette, Sound & Keyboard), which allows the development of games or multimedia applications running on WinNT4 too !
- Добавлено: some new functions : Lof(), ReadMemory(), WriteMemory(), PeekS(), PokeS(), NetworkClientEvent(), SetGadgetFont(), WaitWindowEvent(), FileSeek()
- Добавлено: a brand new Module library to allow an easy replay of Protracker, Fastracker or Impulse tracker modules.
- Добавлено: project settings save for each file (Executable name, Compiler options etc...)
- Добавлено: preference window to customize the editor easily (color, default directory etc..)
- Добавлено: multi-language support for the editor (english, french and german)
- Добавлено: icon (.ico) support when creating an executable !
- Добавлено: Win32 help support (when pressing F1 on a windows function)

- Обновлено: documentation

- Исправлено: Исправлено the compiler a lot, much reliable now.

26 Февраля 2001 : Версия 2.10

- Добавлено: the debugger to walk easy trough a program. It features step-by-step, stop, continue, quit (useful to quit an infinite loop...) and can be invoked and controlled via the source code with the following commands: CallDebugger, EnableDebugger, DisableDebugger
- Добавлено: new commands: ListViewGadget(), AddListViewItem(), GetGadgetText(), SetGadgetText(), PeekS(), SizeOf()
- Добавлено: Multi-language to the editor (French, German, English)
- Добавлено: Microsoft Windows © resident file containing all the constants and structures needed for easy OS programming under PureBasic.

- Improved the editor a lot: contextual help (F1 on a keyword), Goto, Compiler Options, much better syntax highlighting, '.prefs' file

- Исправлено: lot of bugs and improved the whole stability

17 Декабря 2000 : Версия 2.00 - Final release

- Добавлено: 2D Drawing library

- Исправлено: all know bugs, and some major enhancements

28 Ноября 2000 : Версия 2.00 PR 3

- Добавлено: Requester library
- Добавлено: ToolBar library
- Добавлено: Dedicated editor (syntax coloring and direct access to compiler !)

- Исправлено: DirectX related bugs

12 Ноября 2000 : Версия 2.00 PR 2

- Добавлено: Sprite library
- Добавлено: Joystick library
- Добавлено: Keyboard library
- Добавлено: Sound library
- Добавлено: Network library
- Добавлено: Palette library

- Исправлено: Многочисленные ошибки. Спасибо всем пользователям сообщающим об ошибках :)

22 Октября 2000 : Версия 2.00 PR 1

- Inition: Первый публичный релиз PureBasic x86. Только для тестирования