Releases: sjbarag/brs
BRS 0.17.6
🚨 Published, then deprecated 🚨
This should have been v0.18.0 to maintain strict semver compliance.
Bugs Fixed
- @strattonbrazil implemented
ifSGNode#hasField
, which was previously missing from the baseNode
implementation (#368). Thanks a ton!
New Features
- NodeJS's
process.argv
is now accessible from BrightScript via_brs_.process.argv
! It's unparsed (just like innode
), so it's up to BrightScript devs to parse arguments as desired. (#366)
Disclosure
I work at @hulu, and they've given me the freedom to maintain this project at work. Thanks y'all!
BRS 0.17.5
BRS 0.17.4
BRS 0.17.3
BRS 0.17.2
Bug Fixes
- Finally resolved #332, in which the
brs
parser didn't support a dot before an indexed "get", e.g.foo.["bar"]
(#357)
Behavior Changes
Library
statements are now no-op in the Interpreter phase, instead of throwing errors immediately when they're reached. This allows projects that containLibrary
statements to be executed mostly accurate, with the exception that anything brought into scope via aLibrary
statement isn't actually brought into scope yet.
Disclosure
I fixed both of those bugs on @hulu's time. Thanks for giving me the freedom to do that 💚
BRS 0.17.1
Just a simple bugfix release!
- Prevents an infinite loop when parsing custom SceneGraph components that extend not-yet-implemented components.
BRS 0.17.0
Version 0.16.0 of brs
fixes a few parsing bugs and adds more accurate support for the SceneGraph framework.
❤️ Contributors ❤️
- @TwitchBronBron fixed the parser to allow
REM
as a property in associative arrays! - @lvcabral implemented the
GetGlobalAA
function and fixed a scoping bug withm
! - @lvcabral also fixed a parsing bug that caused single-line
if
statements to sometimes be considered malformed! - @MATATAT and @alimnios72 teamed up to get the scoping of custom SceneGraph nodes implemented! Custom nodes now call
init
through their parent chain, have proper function flattening, and call observer functions in the proper scope! Fantastic work, friends. ❤️
Thanks, Hulu 💚
I still work for @hulu, and so does @alimnios72 and a few others who have contributed to this project. Thanks for letting us work on this during work hours!
BRS 0.16.0
Continuing the trend of 0.15.0, brs
version 0.16.0 adds more SceneGraph support. Now the brs
project can create custom components, parsed from XML component definitions! Languages grow up so fast these days.
❤️ Contributors ❤️
- @alimnios72 implemented the
observeField
method! Fields can now be observed, and callbacks called when field values change. Wow! - @WilliamsMartinezGLB Implemented four new BrightScript components! These support automatic boxing, which makes using their primitive versions much simpler. Thanks, and welcome to the project!
roBoolean
roDouble
roFloat
roInt
- @strattonbrazil , @gincwang , @underwoo16 , and @alimnios72 joined forces to add support for custom components defined in XML, as well as children in the
RoSGNode
hierarchy! Y'all are amazing 🎉 - @MATATAT made sure our child-nodes are parsed in the correct order, and brought our implementation in line with the reference implementation. Thanks a ton Matt, and congrats on your first contribution to
brs
!
💚 Special Thanks 💚
You probably know the deal by now — I work at @hulu and they let me hack on this during work hours! The same goes for @strattonbrazil , @alimnios72, @gincwang, and several other past and present contributors to this project. I'm not obligated to write this bit, but I do to show how much I appreciate that we're allowed to contribute to this project on Hulu's time.
BRS 0.15.0
Another mostly runtime release, but this one introduces some SceneGraph concepts! 😱
❤️ Contributors ❤️
You all contributed way more than I did in this last release — it means a ton that you're willing to help!
- @strattonbrazil implemented the base
RoSGNode
class with theifAssociativeArray
interface! - @gincwang implemented
ifSGNodeFocus
and part ofifSGNodeChildren
! - @alimnios72 implemented
ifSGNodeField
onRoSGNode
! - @underwoo16 implmented
ifSGNodeDict
and added the ability to mock out object creation 🎉 - @Maestorme finished off
ifSGNodeChildren
! - @TwitchBronBron cleaned up the lexer a bit, and made parsed
Block
s include the leading and trailing whitespace! ↩️ ↩️ ↩️ - @lvcabral implemented the global
String()
andStringI()
functions,RoDateTime
, bitshift operators, fixed afor
loop bug, and taught the REPL how to quit when you typequit
!
💚 Special Thanks 💚
@hulu (who employs me, @strattonbrazil, @alimnios72, and a few other contributors from this release) let us all spend a lot of time digging into these features. Thanks, y'all!
BRS 0.14.0
A mostly runtime release this time!
- The global
MatchFiles
andRun
functions are now implemented at runtime - Implementation of the
RoString
type has begun, including automatic boxing to that type to match the reference BrightScript implementation RoRegex
now returns empty strings for groups that aren't found- Manifest parsing is now exposed separately from using that file to preprocess tokens, allowing the
manifest
file to be read just once (useful for long-running processes that repeatedly parse BrightScript, like editor tooling) - Single-word
#elseif
and#endif
conditional compilation flags are now supported - Empty
print
statements don't cause parse errors anymore stop
statements don't cause parse errors anymoregoto
and label markers are now supported in the parser!
❤️ Contributors ❤️
- @TwitchBronBron improved the parser by allowing empty
print
statements,stop
statements, andgoto
statements (with labels!). Thanks, bud!
💚 Special Thanks 💚
@hulu (my employer) let me work on this project during work hours again! Thanks for being awesome 😃