Skip to content

Releases: bryanedds/Nu

Critical fix for cycle-breaking iFRP programming model.

17 Aug 06:59
Compare
Choose a tag to compare

There was a bug where the cycle checker accounted for advancing frames by comparing them to the previous event occurrence. Unfortunately, it had an off-by-one error by starting at 0 rather than -1, causing no event to get through on the first frame.

That critical bug was fixed.

Better debugging now in Prime code!

16 Aug 15:45
Compare
Choose a tag to compare

An ongoing issue was with Prime code being very difficult to debug because of a compiler bug forcing you to turn optimizations on in the Debug build (dotnet/fsharp#1257). Fortunately, a work-around was found (dotnet/fsharp#1257 (comment)), allowing me to finally turn the optimizations back off and make the Debug build, well, debuggable!

Thank you again, @AniAvni for your help with this!

Other than that, no major changes this release.

Several stability and usability improvements in Gaia and Visual Studio.

13 Aug 16:47
Compare
Choose a tag to compare

This series of releases is about finding and removing bugs in Nu, especially wrt Gaia.

Renamed Observations to Streams and made them compose monoidally.

12 Aug 22:58
Compare
Choose a tag to compare

Important fix for redundant event publishings bug.

03 Aug 05:55
Compare
Choose a tag to compare

Apparently I recently introduced a bug where every event gets published redundantly... I would have discovered that had I bothered to run the unit tests before making the release, but I... forgot.

If there is a hell for misbehaved software engineers, I'm probably in danger of it.

...

Improved event wildcard semantics and improved perf.

28 Jul 06:03
Compare
Choose a tag to compare

Event subscriptions can now have a single wildcard anywhere in their address.

I also improved the maximum performance of Nu by reintroducing the PublishChanges field in Entities. However, unlike the previous incarnation, it defaults to True, so you only need to set it when you need a performance boost and you are not listening the changes of certain entities.

And that's it! Nu's semantic model should now be both fixed and fast!

Cheers!

Change in simulant change semantics - now change events are per-property!

27 Jul 17:27
Compare
Choose a tag to compare

In issue #150, I pointed out semantic issues in how change events are propagated. In this release, now change events are specific to the property that is changing.

Additionally, there are important bug fixes with setting entity facet names - once again, I realize I need a property smoke-testing script so that this stuff doesn't make it into releases...

Next, I'll be back to working on the scripting language!

Cheers for now!

Intermediate release with important design changes.

09 Jul 16:39
Compare
Choose a tag to compare

The process of implementing the new scripting language for Nu has informed me of some design issues in the symbolic expression parser all the way down in Prime. Therefore, I've fixed these design issues, and released a new version of Prime. Unfortunately, there were some minor breaking changes in Nu because of this (as you'll see below).

The scripting language is not yet usable, and I have to publish this intermediate release due to needing to place my focus on a contract project for a while. Gotta bring home the bacons from time to time :)

At any rate, the changes are as follows -

Renamed Eventable to EventWorld. 018f820
Renamed ScriptingSystem.fs. f0daeff
Intermediate check-in for scripting system progress. 8def0ab
Another intermediate check-in. eacde33
Added operations for lists. eefe00b
A great deal of re-work on scripting AST. 3ad9402
Added Break to scripting. 77804fc
Added Terminal UI to Gaia (currently does nothing). 7ccf84d
Made only constructors and special operator names capitalized in scri… 0b9f296
More nuance to scripting syntax. fb35fc7
Removed operator expansion from Symbol parser. f1e9e84
More progress of scripting language design. 3f05725
Reverted Effect API. BREAKING CHANGE 3c842c9
Updated Nu documentation. 28f5beb
Intermediate commit. 1fdd9b0
Another intermediate check-in. 93707d2
Intermediate commit. a99c40b
Added important design note. ab755c0
Another intermediate check-in. Gee, I wonder if I should use a branch? 810295f
Removed abstraction from Violation construction. f4938fd
More work on scripting language. 8e211ef
More scripting lang implementation. 1e6a403
Added some cases to scripting Expr. 2adaebf
Implemented rebinding in scripting language. 8184c43
Renamed scripting files. df8c272
Simplified scripting code. 170f142
Improved discoverability of Nu API by aliasing abstract data types. 41dca1d
Improved discoverability of Prime API by aliasing abstract data types. 9792dc4
Merge branch 'master' of https://github.com/bryanedds/Nu 533ff9a
More code re-org. 980cd73
Renamed EventFilter.None to EventFilter.NotAny. BREAKING CHANGE 5832e13
More API clean-up. 8e1fd20
Some clean up in the physics API. BREAKING CHANGES 5588ef1
Fixed Nu and Gaia .fsx scripts that used to reference dead Prime.exe. 93d72b6
Built Prime 1.7 NuGet package. 629c73e

Non-trivial code restructuring.

29 Jun 03:14
Compare
Choose a tag to compare

The engine had some structural issues that needed to be solved, so that's what I did. The only breaking change is the way that simulant getters and setters are defined now (which you can see in the updated documentation).

Due to this restructuring, you might see some stability issues or new bugs that should be ironed out by v1.9.4.1, but I hope there aren't any :)

Lastly, I also changed the semantics of the effect system a little, but I don't think it will impact anyone in practice.

At any rate, here are the changes in detail -

Restructuring engine to enable better design and more granular change… 4e5d8f7
Got engine compiling again. 7e6dddb
More fixes and clean-up. 34b9168
Added prototype of Tmap. 70eb530
Added TexprBuilder for monadic use of Tmap. 3f69824
Tmap implementation initial implementation. 2de1d3e
Better timings descriptions. 3eb6b4e
Put Tmap in its own file, and factored out ' stuff to Umap. c865cb1
Added Texpr, Tmap, and Umap from branch. 3dd1b14
Fixed Umap type error. 96cedf8
Merge branch 'master' into change_event_restructuring 24bc533
Fixed bugs in Tmap commit process. 96468c3
Removed some superfluous mutability from Tmap. 591e7c8
Some trivial code clean-up. ab4bf71
Added event cycle detection. ac31abc
Merge branch 'master' into change_event_restructuring cc6cc7e
Reverted privatization of simulant state types. Has bugs, however, c0a208a
Fixed outstanding QuadTree bug. fa9bcad
Moved AmbientState into WorldTypes (fuck it...) 10a9490
Made Overlayer API more explicit. f86447e
Made Reflection API more explicit. 3b9aa5a
Better notation for dynamic simulant property definitions. 3244fdb
More code restructuring. d1a32be
Updated documentation to new API. 69c6c89
Fixed default effects. 725f9c2
Documentation clean up for upcoming release. 0186c33
Made effect self-destructible. 5650b2e

Several performance improvements.

20 Jun 04:07
Compare
Choose a tag to compare

Has some perf issues pop up that I've solved.

I'm hoping to get the engine back up to 10,000 simultaneous on-screen entities before soaking the CPU with a couple more optimizations.