Releases: jmoenig/Snap
Releases · jmoenig/Snap
v9.0.5
v9.0.4
v9.0.3
v9.0.2
v9.0.1
v9.0.0
9.0.0:
- New Features:
- new "this" reporter for introspection offering access to "script", "caller", "continuation" and "inputs", enabling programs to access their dynamic scope and runtime call-stack
- "call" is now hyperized and accepts a list/table etc. of rings as procedure input, returns a list/table etc. of applying all arguments to each ring. Currently constrained to primitive data (text, number, Boolean) inputs, albeit in any dimension (e.g. lists of lists of data)
- new "extent" selector in the "(attribute) OF (object)" reporter's dropdown menu returns a list if width-height coordinates
- new "uniques" selector in list properties reporter's dropdown, answers a new list containing the source list's unique values based on equality (i.e. a set)
- new "sorted" and "shuffled" selectors in list properties reporter's dropdown
- new "stage", "agent" and "script" selectors in "is a?" reporter's dropdown
- new "case sensitivity" preference setting
- new "case sensitivity" selector to the setting blocks' dropdowns
- new dropdown menu with "length", "lower case" and "upper case" selectors in the "length of text" reporter
- new option to make individual input slots in custom blocks "static", i.e. irreplaceable by reporters
- new option to specify a "separator" (infix) label for variadic input slots inside custom blocks
- new "replaceables" selector in block-attributes dropdown, manages whether inputs slots are static
- new "separators" selector in block-attributes dropdown, manages infix-separators for variadic input slots
- new "comment" selector in block-attributes dropdown, accesses cutom block definitions' help text, i.e. comments attached to the prototype hat
- new context comments preserve ring comments and hat block comments in the evaluator for later introspection
- new "generate puzzle" feature - single click Parson's Puzzle generator for educators
- new "solutions" selector in the "my (attributes)" reporter, answers a dictionary of a puzzle sprite's solution scripts tagged by their comments, if any
- new "Tiles" library, divides the stage into sub-regions in each of which to perform an action
- new "Arcs" library, turns sprites by a delta of degrees moving them at a given radius
- new "Sarron" and "Aleassa" costume series, thanks, Meghan and Brian!
- new Armenian translation, yay! Thanks to the contributors!
- new embedding configuration options: noSpriteEdits
- Expanded the
#open:
URL scheme to accept image URLs. - new "ide_translation_dict", "ide_set_translation_dict(data)" and "txt_export(txt, name)" extension primitives
- new "hideDefaultCat" configuration setting, lets you hide the default built-in category buttons
- Notable Changes:
- IF is now variadic and expandable with "else if" cases
- explicit variadic input list visuals
- "this script" reporter has been morphed into the new general "this" introspection/self reflection reporter
- RUN/CC and CALL/CC primitives have been deprecated and removed from the palette, will still be present and work in existing projects
- changed the first input slot of the "reshape" block from "list" type to "any" type
- changed JOIN, APPEND and COMBINATIONS to show "with" infix label in between inputs, and to collapse from 2 inputs directly to "input list" case, same as +, min, AND etc. (monadic uses in existing projects will not change)
- dragging blocks and scripts out of balloons and watchers now only includes the surrounding ring if it has formal parameters
- changed the semantics of empty list-type slots to return a new empty list instead of "nothing"
- improved browser resource management for graphics and sounds
- changed long-form input dialog setting's behavior to automatically expand / collapse slot type view
- made "distribution" list selector case-sensitivity setting aware and optimized for atomic data
- slightly optimized pen drawing performance when WARPed
- removed multibranched conditional library (cases.xml), because IF is now variadic
- removed the "remove duplicates" reporter from the "list utilities" libraries because it is now a primitive
- updated audio comp library with a faster (hyper) version of the "Hz for secs" reporter
- updated animation library with a faster (hyper) version of "glide" and added "steps" selector to the "animate" command
- new "fade-in" block in the audio comp library lets you reduce audible "clicks" in sounds computed from raw samples
- messages and identifying sprites, costumes and sounds by their names is now case-insensitive by default (e.g. in "object", "broadcast", "of" blocks)
- translations now use abstract block specs
- updated the strings library for and with the new case sensitivity and lower case primitives
- generated JSON strings are now (somewhat) pretty printed (with newlines and indentations)
- increased arrows heads size for variadic inputs and dropdown menus
- confined the red drop-target halo of multi-slots to the boundaries of its arrows / arity controls
- Notable Fixes:
- fixed #3154 (let "this script" capture variables in rings)
- catch misspelled or non-existing translation keys in urls and elsewhere, thanks, Joan!
- fixed a bug that led to the default input of "When I am clicked" not being translated
- fixed serializing complex inputs to contexts (procedure objects)
- fixed dragging blocks, costumes and sounds out of table views
- fixed #3207 (initial arrow head orientation for long form input slot dialog)
- fixed a number/text type glitch in the "(ray length) TO (sprite)" reporter for hyperized angular offsets
- fixed #3180 (preserve zero values in blockified lists instead of turning them into empty slots)
- fixed stopping ASK prompter under certain race conditions
- fixed MAP, KEEP, FIND and COMBINE primitives to work with JS-funargs
- fixed assigning same costume names to recurrent video snaps
- fixed sound naming rules for same-named imports
- fixed preserving embedded scripts when collapsing variadic c-slots
- fixed preserving embedded scripts when relabelling blocks with variadic c-slots
- improved sensing precision when clicking on variadic slot arrows
- fixed JIT-compiling variadic Boolean infix ops (AND, OR)
- fixed identity case for COMBINATIONS
- fixed occasional costume reference error for computed, non-wardrobe costumes in sprite-duplicates
- fixed the "stage size" reporter in the "Getters and setters" library
- fixed accessing negative indices in linked lists
- Documentation Updates:
- extended API documentation for "noSpriteEdits" and "hideDefaultCat" configurations
- updated CONTRIBUTING.MD for the new underscore-placeholder notation for block input slot translations
- Translation Updates:
- German
- Greek, thanks, HM100!
- Armenian, thanks to the contributors!
v8.2.3
- Notable Fixes:
- fixed blocks search for scenes, thanks, @gigamonkey for the report!
v8.2.2
v8.2.1
v8.2.0
- New Features:
- AND / OR are now variadic (and hyper!), thanks, Dan, for the suggestion
- all comparison operators are now variadic
- new "distribution" selector in the list attribute reporter's dropdown menu
- Notable Changes:
- removed variadic reporters library (because the primitives are now variadic)
- MQTT library update, thanks, Simon and Xavier
- Notable Fixes:
- fixed "rename" and "rename all" for custom block formal parameters
- fixed accessing random list elements
- TuneScope hotfix, thanks, Harsh, Glen & team!
- fixed including hidden variables when exporting blocks
- fixed #3183 - determining the length of huge strings fails
- Translation Updates:
- German
- Catalan, thanks, Joan!