Skip to content

Releases: pawn-lang/YSI-Includes

nightly

21 Oct 23:57
fa67334
Compare
Choose a tag to compare
nightly Pre-release
Pre-release

Nightly release, always synced to the latest version on github.

v5.10.0006

24 Apr 17:49
Compare
Choose a tag to compare

Changes

  • Fix some runtime issues with different BCrypt plugins.
  • Fix a tag mismatch in y_timers.
  • Added the ability to silence intentional warnings in tests to see accidental ones.

Thanks

Full Changelog

v5.09.0982...v5.10.0006

v5.09.0982

12 Nov 22:44
Compare
Choose a tag to compare

Changes

  • Mostly a bug-fix release; now with all tests passing.
  • Added y_natives to dynamically detect and use plugins at run-time.
  • Added y_decorator to aid in the creation of decorators/annotations.
  • Added y_const to pass const data to legacy (const-incorrect) functions.
  • Switched to using __const everywhere internally.
  • A fair amount more documentation.

Thanks

Full Changelog

v5.08.4329...v5.09.0982

v5.08.4329

18 Oct 11:24
554e3b3
Compare
Choose a tag to compare

Tiny fix from v5.08.4328. See that release for a full list of improvements.

v5.08.4328

16 Oct 23:11
Compare
Choose a tag to compare

Changes

  • y_weapondata added for y_vehicledata-like information about ammo and guns.
  • open.mp exclusive y_args library added to parse omp-server -- args go here input.
  • Huge number of assembly rewrites for -O2 and 64-bit compatibility, plus way more readability via y_emit constants.
  • Bump hook limits to 4096.
  • Split up y_utils in to more specific libraries, e.g. y_utils_maths and y_utils_colours.
  • Completely remove the stupid P: macros. If you want debug prints use Debug_Print.
  • Interned strings to reduce YSI memory usage.
  • Wider use of decorators such as @cmd, @test and @hook instead of the old-style fake keywords.
  • Fixed some y_ini format warnings in open.mp.
  • y_testing now groups tests together by library and can run tests for only a single library.
  • Detection of more compiler settings such as string packing.
  • y_ascii added for fancy console text rendering.
  • Other text wrapping and parsing functions, including (finally) player/rp names.
  • Fix duplicate warnings on some compiler versions.
  • Huge increase in inline streamer functions to create areas, checkpoints, etc, with bound inline entry callbacks.
  • y_ebc to match the lifetime of inlines to entities, for example SQL result callbacks bound to a player thus not called if they leave.
  • Fixed, simplified, and tested, y_playerset.
  • Decreased some internal dependencies so fewer libraries use each other, for example y_iterate no longer uses y_va or y_hooks.
  • Alternate ASK implementation (from before open.mp had implemented dialogs).
  • More script and server information at startup for debugging (especially when asking for help)
  • Added function pointers to SetTimer and SetTimerEx to avoid unused public functions being compiled.
  • <library> tags on way more functions and variables for -r XML generation.
  • Exposed some more internal libraries like y_cgen, y_scriptdata and y_serverdata (were perviously in y_scriptinit)
  • Per-player inline commands.
  • Multiple commands with the same names.
  • Loads of documentation, either in .md files or pawndoc comments.
  • Combined both y_hooks versions (hook and hook function).
  • Countless bug fixes.
  • More y_va wrapped functions, and use natives instead on open.mp.
  • YSI auxiliary runtime, for dynamic memory allocation and arbitrary native calls (Server_HasNative, Server_CallNative, etc).
  • More fine-grained third-party library usage to reduce unnecessary dependencies.
  • Faster y_amx function lookups (mainly at startup).
  • Stack and global memory reductions.
  • Better packed string support in many functions.
  • More default iterators for vehicle occupants.
  • Detect compiler optimisation level (sometimes).
  • Finally allow Iter_Remove usage directly inside foreach loops.
  • Y_Less says ta for using YSI!
  • Sped up Iter_Add for many different cases.
  • __pawn_build.
  • Auto-create YSI directories when possible.

There's probably way more. It has been over a year and over 1000 commits since the last release (and the repo only has around 3000 commits...)

y_utils

New y_utils sub-libraries:

  • y_utils_arrays - memset, memcpy, Quicksort (1d, otherwise use md-sort) etc.
  • y_utils_colour - Interpolation, colour space conversion, nearest colour, etc.
  • y_utils_conversions - IsNumeric, HexStr, etc.
  • y_utils_encodings - BernsteinHash, base-64 encoding, etc.
  • y_utils_files - ftouch, ftemporary (with auto-cleanup), copying files, etc.
  • y_utils_ip - Player IPs, int conversions, rendering, etc.
  • y_utils_maths - Comparisons, constants, sums/aggregates, etc.
  • y_utils_misc - The best function in YSI!
  • y_utils_names - Various RP name parsing functions.
  • y_utils_random - String/point/float random generation, weighted random, ranges, etc.
  • y_utils_similarity - Levenshtein and Bigram text comparisons.
  • y_utils_strings - Trimming, IsNull, unpacking, etc.
  • y_utils_textwrap - Wrap strings to given lengths at word (and embedded colour) boundaries.
  • y_utils_varargs - getstringarg etc.

Thanks To

Vince0789
DEntis-T
zsoolt997
leHeix
mysy00
Sancky
EOussama
ohmypxl
omcho420

Who all contributed to this version.

v5.06.1932

25 Apr 10:07
55b2d4f
Compare
Choose a tag to compare

Changes

  • Better fixes.inc compatibility.
  • More pawndoc compatibility.
  • Updates for the 3.10.11 compiler pre-release.
  • BCrypt and Streamer plugins' inline functions.
  • More compiler information: #pragma pack, #pragma codepage, #pragma semicolon and #pragma option detection.
  • __pragma backwards-compatibility.
  • Functions for RP name detection.
  • Improvements to Random for more min/max/exclude options.
  • Randomisation of percentages.
  • HashMap_Has.
  • Added y_ctrl library.
  • Added y_ascii library.
  • Added y_percent library.
  • decl keyword from AMXModX.
  • Bit_Toggle.
  • Removed y_files internal implementation for open.mp compatibility.
  • Add tag checking to y_testing.
  • Start moving to decorators for functions instead of custom syntax everywhere.
  • Add text splitter functions.

Plus, of course, many many fixes, tweaks, and compatibility improvemets to almost every part of the code. And documentation.

v5.05.0505

21 Nov 21:09
Compare
Choose a tag to compare

Changes:

  • Many bug fixes - y_groups, y_master, y_ini, y_dialog, and more. All tests now pass.
  • Improved file handling via y_files - Faster copying, Windows directory creation without plugins.
  • Rename a lot of functions to proper CamelCase.
  • ENABLE_YSI_UNSAFE_STARTUP for faster startup in very special cases where the scripter understands the risks.
  • y_bitmap file loading.
  • Better startup messages for debugging and assistance.
  • Abstracted startup and test messages for consistency.
  • Hide unused pawndoc from XML output.
  • More old compiler compatibility.
  • More JIT compatibility.
  • Startup checks for expected scriptfiles (see https://github.com/pawn-lang/YSI)
  • TryPercentage, TryPermille, and TryPPM for random likelihoods.
  • More __emit function inlining on the new compiler.
  • P:F (fatal error message) stops execution instantly.
  • Compiler settings for YSI_TESTS mode.
  • Stricter definition of y_debug output levels (defined, but not widely implemented).
  • Explicitly re-enable hook OnScriptInit.
  • Higher CGEN code space defaults.
  • Many identical strings combined to reduce AMX size (the compiler doesn't automate this).
  • Optimised _C<> and _A<> macros for common-case code generation (smaller intermediate steps).

v5.05.0403

30 Aug 00:09
Compare
Choose a tag to compare

New features:

  • Fixed y_timers issues.
  • ftemporary (with ftemp wrapper) to create files with a defined lifetime.
  • y_inline_timers now more accurate.
  • More startup information, mainly for helping newbies.
  • y_master uses a new method of hiding publics when not in charge.
  • P:Q(varname); for debuggin.
  • Greater open.mp testing support.
  • Add repeat[n] to y_timers.
  • Multiple colour interpolation methods (varying speed/accuracy tradeoffs).
  • Abs() and FloatAbs().
  • y_inline_bcrypt.
  • y_bcrypt (common API for both plugins).
  • y_android (detect those using the illegal client).
  • y_circular (circular buffers).
  • FUNCTION_LENGTH used throughout to support rare compilers.
  • y_sparsearray API improved.
  • Finally make some functions inline using __emit.
  • Fixed a tiny issue introduced in 402.

v5.05.0402

29 Aug 22:28
Compare
Choose a tag to compare
5.05.402

YSI 5.5.301

14 May 09:58
Compare
Choose a tag to compare

Minor include path updates.