New conversion of for loop:
i=<StartExpr>;
for(var $loopend=<EndExpr>; i<=$loopend; i++){}
Because StartExpr and EndExpr must be executed exactly once.
git-svn-id: trunk@34430 -
* pscanner:
New TPasSourcePos record and function TPascalScanner.CurSourcePos: TPasSourcePos.
TStreamResolver.Streams public, so the tests can find all sources.
* pastree:
TPasImplForLoop.VariableName is now TPasExpr.
Replaced Element.Free calls with Element.Release.
* pparser:
Improved the source positions of many types, by passing a TPasSourcePos with TypeName.
Replaced Element.Free calls with Element.Release.
Changed try..except to try..finally for nicer stacktraces.
FinishScope ExceptOnExpr: called after expression was parsed, before statement
FinishScope ExceptOn: called after statement.
For-Loop now supports a dotted identifier as variablename.
* pasresolver:
while do
repeat until
if then else
binary operators
case of
try..finally..except, on, else, raise
for loop
* Tests:
Changed for-loop tests for new VariableName.
Testing the resolver with Asserts creates hard to understand tests.
Instead I added an utility function CheckReferenceDirectives to test
resolved references via markers in source snippets. This also tests the
element structure and source positions.
git-svn-id: trunk@34429 -
Change default mode to using mi interpreter, with GDB running as an separete process.
+ New Makefile variable named:
GDBMI_DEFAULT_OS_LIST
which lists all OS's for which the use of gdbmi is enabled by default.
Starting value:
darwin freebsd haiku linux netbsd openbsd solaris win32 win64
Default can be overriden by using NOGDBMI variable.
This change is mainly to anticipate GDB source switch to C++ after 7.12 version.
git-svn-id: trunk@34425 -
+ New Makefile variable named:
GDBMI_DEFAULT_OS_LIST
which lists all OS's for which the use of gdbmi is enabled by default.
Starting value:
darwin freebsd haiku linux netbsd openbsd solaris win32 win64
Default can be overriden by using NOGDBMI variable.
This change is mainly to anticipate GDB source switch to C++ after 7.12 version.
git-svn-id: trunk@34424 -
* also check the local symtable in that case (a program does not result in a PPU, but we need the imported symbols nevertheless when linking to a package)
git-svn-id: trunk@34414 -
Therefore if a shared library is loaded by JVM ( using dlopen() ),
it is not possible to use dlopen() in a units initialization code -
dlopen() simply hangs.
To workaround this issue, if a library exports JNI_OnLoad(), then
no unit initialization is performed during library load.
The initialization is called when JVM has loaded the library and calls
JNI_OnLoad().
git-svn-id: trunk@34406 -
that it is done before it had the chance to call RTLEventSetEvent() (since
then no memory barrier synchronised the thread state with what the main
thread would see)
git-svn-id: trunk@34401 -
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 -
tabstractprocdef.typename_paras(), after accidentally committing the
removal of the double quotes in r34358
o the reason for not using double quotes is that the output of this routine
is used for some LLVM identifier names, and you can't have double quotes in
LLVM identifiers (any other character, including space, is no problem)
git-svn-id: trunk@34392 -
in the high level typed constant builder, as it does not work if the
passed list to start_internal_data_builder() is used for multiple
nested builders (you can't know what the last section was) -> always
emit a section header for a nested typed const builder
git-svn-id: trunk@34391 -
rather than for any anonymous aggregate, since for arrays we do know
the alignment even if we don't know the element count (because it only
depends on the elementdef, which is/will be set immediately)
git-svn-id: trunk@34390 -
refer to these type names when writing the s2o and o2s arrays in the LLVM
assembler writer (otherwise we have to write out the entire definition
of those fields and their subtypes for every access, resulting in a 139MB
cpubase.ll instead of a more reasonable 1.5MB one now)
git-svn-id: trunk@34386 -
* Correct computation of CRC for if add_tail is true:
tail is before extra_info, not after.
Use tail_size variable to cacluate CRC use the whole tail memory area.
+ New function released_modified. Checks if released memory
was modified after it release (used if keep_released is true).
* TraceGetMem,TraceFreeMem TraceReallocMem: adapt to new tail_size variable.
* TraceInit: Store previous memory manager in local variable,
to be able to restore it in TracExit call.
* LoadEnvironment: Add parsing of tail_size=XXX, where XXX is a decimal value,
rounded up to next multiple of sizeof(ptruint).
git-svn-id: trunk@34385 -