|
ReleaseNotes
Added features and notable problems or improvements for each of the releases in (inverse) temporal order.
Featured Upcoming Release 1.5.2New Feature: Applicative Syntax ExtensionThe new syntax extension, like e.g. Pair and LeftRecord, will map standard application and lambda syntax to a data type: data Expr = App Expr Expr
| Lam (Label l) Expr
| Var (Label l)
| Let (Label l) Expr Expr
deriving Applicative(lc)Now you can write terms in regular syntax in parentheses suffixed by lc, and they'll be translated into the Expr data type: (let a = \a -> a a in a a)lc ----> Let `a (Lam `a (App (Var `a) (Var `a))) (App (Var `a) (Var `a)) Ωmega will take care of pretty printing them too (unlike in the response above) and you'll be able to escape out into the surrounding world by a wormhole that is opened by $(...). See some of the design ideas on the wiki: IntensionalApplication. New Feature: Parser CombinatorsFinally the Parser type constructor is worth something. Some basic combinators are available in the Parsing.prg module. Of course you can build on top of them. Release 1.5.1 (2011-09-07)Ωmega v1.5.1 is mainly a bugfix and infrastructural release. We have built some fundament on which we can base new features in the close future and get releases out faster. Now, read on for the news... On Hackage NowWe are now downloadable from Hackage. Please use your favorite Haskell package manager to install Ωmega automatically! This gets us close to resolving issue 92 :-) New Feature: Backquoted Operators at the Type LevelSimilar to Haskell, type constructors and type function calls can now be written with a backquoted infix name between the arguments, like this Eq :: n `Equal` {m `plus` k}Bugs fixed
Release 1.5 (2011-04-29)Release 1.5 marks the first milestone without major involvement of Tim, who is directing his attention towards Trellys, a compiled language with dependent types. Big thanks to him for all the awesome work on Ωmega in the past, we will miss his vision, wisdom an profound understanding of the matter. With some luck he can still contribute an occasional fix here or there. LicensingThe highlight of this release is the change of licensing terms to become a pure 3-clause BSD license. Previously an additional clause prohibited use in commercial settings without written consent ( issue 74 ). SyntaxAdditional syntax extensions can be derived. These include:
Reactivated Feature: PointersCode present (but commented out in the sorces) has been cleaned up and re-enabled. Following primitive functions are now available: initPtr :: forall a b . Ptr a -> b -> IO (Equal a b) newPtr :: forall a . IO (Ptr a) nullPtr :: forall a . Ptr a -> IO Bool readPtr :: forall a . Ptr a -> IO (Maybe a) samePtr :: forall a b . Ptr a -> Ptr b -> IO (Equal a b) writePtr :: forall a . Ptr a -> a -> IO () Alas, the manual does not mention them, yet. This should be rectified in an upcoming release. Bug FixesMany bugs have been fixed, most notably displaying higher-rank ( issue 75 ) and arrow ( issue 83 ) types. Thanks for the attached patches we received! Obtaining the ReleasePlease visit the downloads tab for getting the sources. You will need a modestly recent GHC to compile it. Format of the Download ArchiveThe Omega15 file has been compressed by following commands (on a linux machine) zip -v -r Omega15 distr -x \*.pdf -x \*.ps --to-crlf zip -v -u Omega15 distr/*.pdf distr/*.ps So all text files are with CR/LF line endings but the .pdf and .ps ones, which are left binary. Older ReleasesPlease visit Tim's download page to obtain information about past releases. |