- external vars
- untyped parameters
- varargs
- SetLength(s,len) is now converted to s.length=len
- destructor now clears references
- dynamic arrays now are never null.
- anArr:=nil becomes anArr = []
- anArr=nil becomes anArr.length==0
- passing nil to an array parameter passes []
- length(anArr) becomes anArr.length
- High(anArr) becomes anArr.length-1
- sets now uses references when assigning and passing to a parameter.
Far less clone operations.
git-svn-id: trunk@35505 -
- local const: declare as local var in singleton parent function
- give procedure overloads in module unique names by appending $1, $2, ...
- give nested procedure overloads unique names by appending $1, $2, ...
- give reintroduced/overloaded class members unique names by appending $1, $2, ...
- record operators = and <>
- static arrays
- range: enumtype
- init as arr = rtl.arrayNewMultiDim([dim1,dim2,...],value)
- init with expression from const array
- length(1-dim array)
- low(1-dim array), high(1-dim array)
- property TargetProcessor
- ECMAScript6:
- use 0b for binary literals, and 0o for octal literals
git-svn-id: trunk@35491 -
+ changed varname/funcname properties to string, saving many conversion
+ array of record
+ pass by reference
- pass local var to a var/out parameter
- pass variable to a var/out parameter
- pass reference to a var/out parameter
- pass array element to a var/out parameter
+ proc types
- implemented as immutable wrapper function
- assign := nil, proctype (not clone), @function, @method
- call explicit and implicit
- compare equal and notequal with nil, proctype, address, function
- assigned(proctype)
- pass as argument
- methods
- mode delphi: proctype:=proc
- mode delphi: functype=funcresulttype
+ class-of
- assign := nil, var
- call class method
- call constructor
- operators =, <>
- class var, property, method
- Self in class method
- typecast
git-svn-id: trunk@35472 -
PackageStructure. Set it to the current-directory at application start.
This because the creation of manifest files could change the current
directory while scanning for packages.
git-svn-id: trunk@34670 -
because those scans could depend on compilation of the fpmkunit itself.
For the same reason the the fpmkunit-dependencies are checked now before
the 'normal' scan for available/installed packages.
git-svn-id: trunk@34648 -
A repository can contain installed or packages available for installation.
The repositories have a helper-class that contains information about
where the packages are installed and such. Things like installing a
package from the current-directory are done using temporary 'fake'
repositories. The TpkgFPpkg-class keeps track of all repositories
and packages.
git-svn-id: trunk@34503 -
of all globals and to contain all fppkg-related stuff into this
structure. So it will be easier to embed fppkg into other applications.
git-svn-id: trunk@34400 -