path: root/doc/lang.txt
AgeCommit message (Collapse)Author
2019-07-18Fix typos in spec (thanks, Mike)Ori Bernstein
2019-01-07Change indexed array literal syntax.Ori Bernstein
2018-07-19Add documentation for tuple access expressionsQuentin Carbonneaux
I updated the language spec to mention the feature my previous patch introduces. I also fixed some cross-references en passant.
2018-07-14Push down named unions types into union tagsOri Bernstein
Currently, union tags are given the type of their enclosing union, by default: type u = union `Foo ;; var x = `Foo will currently infer the variable 'x' as having type 'union `Foo ;;'. To make the type of 'x' infer as 'foo', the code needs to force 'x' to unify with something that is explicitly declared as a 'u'. This change makes it so that union tags declared in the manner above will default to type 'u', instead. This is a special case, but it makes the behavior less surprising.
2018-01-14Update language spec for new trait syntax.Ori Bernstein
2017-08-02Fixed typos (thanks rurban).Ori Bernstein
2017-07-25Update lang spec for new for syntax.Ori Bernstein
2017-07-03Specialize impl declarations on impl type in addition to decl typeMichael Forney
This allows multiple specializations of a declarations with a concrete type, which can be selected with the new impl expression if it can't be deduced by its type alone. For example trait hasname @t = Name: byte[:] ;; impl hasname void = Name = "somename" ;; impl hasname bool = Name = "othername" ;; const boolname = impl(Name, void) To do this, pass the param type through to genericname and specializedcl. Since we now need the type parameter to look up trait decls, make sure n->expr.param gets the necessary treatment in typesub, specializenode, pickle, and unpickle. We also need to tag the param types for export.
2017-07-03Add impl(type, name) to retrieve a particular implementation of a trait declMichael Forney
This avoids having to create a temporary variable when you know what implementation your want for a generic constant or function with generic return value. Re-use the impl keyword for this expression to avoid invalidating existing programs.
2017-06-30TyposMichael Forney
2017-06-24Miscellaneous typo/formatting fixesMichael Forney
2017-03-06You can declare things without attributes.Ori Bernstein
2017-03-03Fix grammar mistakes.Ori Bernstein
Missing quotes, unionbody, structbody.
2017-02-18Improve documentation in response to feedback.Ori Bernstein
Thanks, Ayaka.
2017-02-18Composite types is a shitty name.Ori Bernstein
Constructed types is not a shitty name.
2017-02-13Specify default types.Ori Bernstein
2017-02-13Clarify comment rules.Ori Bernstein
2017-02-13Clarify the EBNF description.Ori Bernstein
2017-02-13Clarify whitespace handling.Ori Bernstein
2017-02-13Simplify the abstract.Ori Bernstein
2017-02-13Disambiguate args for comparisons in spec.Ori Bernstein
2017-02-12Update spec to make ucons a normal prefix operator.Ori Bernstein
2017-02-04Ucons are now prefix expressions.Ori Bernstein
It's just what it looks like. This cleans up taking the address of union literals.
2017-02-03Fix some looseness in the spec.Ori Bernstein
2017-02-03Fix mixed tabs and spaces in doc.Ori Bernstein
2017-02-01remove pseudo-operators.Ori Bernstein
2017-02-01Apply fixes thanks to tridactyla on IRC.Ori Bernstein
2017-02-01Update the grammar.Ori Bernstein
2017-02-01Copy paste error. Boolean => voidOri Bernstein
2017-01-31Explain type inference and builtin traits better.Ori Bernstein
2017-01-30Specify bounds checking.Ori Bernstein
2017-01-29Add specification of accessing pointers via casts.Ori Bernstein
2017-01-29Clarify and improve explanation of pattern matching.Ori Bernstein
2017-01-28Describe lvalues and rvalues.Ori Bernstein
2017-01-26Fix comment descriptions.Ori Bernstein
2017-01-22Fix up type inference section a bit.Ori Bernstein
2017-01-22Update explanation of traits and impls.Ori Bernstein
2017-01-21Make grammar item namings clearer.Ori Bernstein
2017-01-21Fill in a bit more on the type system.Ori Bernstein
2017-01-21Rearrange things to match the TOC.Ori Bernstein
2017-01-21Shuffle around documentation for leaf types.Ori Bernstein
2017-01-21Specify operators.Ori Bernstein
2017-01-19Rearrange topics and start documenting operators.Ori Bernstein
2017-01-18Update the section on structure.Ori Bernstein
2017-01-17Add description of casts.Ori Bernstein
2017-01-17Update language doc precedence levels.Ori Bernstein
2017-01-15Renumber sections.Ori Bernstein
2017-01-15Split Syntax from type rules.Ori Bernstein
2017-01-15Fix section numbering.Ori Bernstein
2017-01-15Move type inference up.Ori Bernstein