You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(48) |
Jun
(8) |
Jul
(23) |
Aug
(41) |
Sep
(42) |
Oct
(22) |
Nov
(17) |
Dec
(36) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(43) |
Feb
(42) |
Mar
(17) |
Apr
(39) |
May
(16) |
Jun
(35) |
Jul
(37) |
Aug
(47) |
Sep
(49) |
Oct
(9) |
Nov
(52) |
Dec
(37) |
2008 |
Jan
(48) |
Feb
(21) |
Mar
(7) |
Apr
(2) |
May
(5) |
Jun
(17) |
Jul
(17) |
Aug
(40) |
Sep
(58) |
Oct
(38) |
Nov
(19) |
Dec
(32) |
2009 |
Jan
(67) |
Feb
(46) |
Mar
(54) |
Apr
(34) |
May
(37) |
Jun
(52) |
Jul
(67) |
Aug
(72) |
Sep
(48) |
Oct
(35) |
Nov
(27) |
Dec
(12) |
2010 |
Jan
(56) |
Feb
(46) |
Mar
(19) |
Apr
(14) |
May
(21) |
Jun
(3) |
Jul
(13) |
Aug
(48) |
Sep
(34) |
Oct
(51) |
Nov
(16) |
Dec
(32) |
2011 |
Jan
(36) |
Feb
(14) |
Mar
(12) |
Apr
(3) |
May
(5) |
Jun
(24) |
Jul
(15) |
Aug
(30) |
Sep
(21) |
Oct
(4) |
Nov
(25) |
Dec
(23) |
2012 |
Jan
(45) |
Feb
(42) |
Mar
(19) |
Apr
(14) |
May
(13) |
Jun
(7) |
Jul
(3) |
Aug
(46) |
Sep
(21) |
Oct
(10) |
Nov
(2) |
Dec
|
2013 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ou...@us...> - 2009-07-19 09:56:53
|
Revision: 2867 http://jcl.svn.sourceforge.net/jcl/?rev=2867&view=rev Author: outchy Date: 2009-07-19 09:56:47 +0000 (Sun, 19 Jul 2009) Log Message: ----------- website update. Modified Paths: -------------- trunk/website/delphi-jedi/index.html trunk/website/delphi-jedi/jpp.html trunk/website/delphi-jedi/page10.html trunk/website/delphi-jedi/page11.html trunk/website/delphi-jedi/page12.html trunk/website/delphi-jedi/page13.html trunk/website/delphi-jedi/page20.html trunk/website/delphi-jedi/page21.html trunk/website/delphi-jedi/page22.html trunk/website/delphi-jedi/page23.html trunk/website/delphi-jedi/page24.html trunk/website/delphi-jedi/page30.html trunk/website/delphi-jedi/page32.html trunk/website/delphi-jedi/page33.html trunk/website/delphi-jedi/page34.html trunk/website/delphi-jedi/page40.html trunk/website/delphi-jedi/page41.html trunk/website/delphi-jedi/page42.html trunk/website/delphi-jedi/page50.html trunk/website/delphi-jedi/page51.html trunk/website/delphi-jedi/page52.html trunk/website/delphi-jedi/page53.html trunk/website/delphi-jedi/page54.html trunk/website/delphi-jedi/page60.html trunk/website/delphi-jedi/ppp.html Removed Paths: ------------- trunk/website/delphi-jedi/page506.html trunk/website/delphi-jedi/release120.html trunk/website/delphi-jedi/team/ Modified: trunk/website/delphi-jedi/index.html =================================================================== --- trunk/website/delphi-jedi/index.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/index.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -103,7 +103,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/jpp.html =================================================================== --- trunk/website/delphi-jedi/jpp.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/jpp.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>JEDI Pascal PreProcessor</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -119,7 +119,7 @@ <p> You can download the tool directly from our homepage. </p> -<a href="download/jpp.zip">Download from this page</a> <br> +<a href="http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jpp/">Download from this page</a> <br> @@ -139,7 +139,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page10.html =================================================================== --- trunk/website/delphi-jedi/page10.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page10.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -103,7 +103,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page11.html =================================================================== --- trunk/website/delphi-jedi/page11.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page11.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support - Guidelines</title> +<title>Team</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -49,38 +49,23 @@ <p>Following is the list of people that are directly involved with development of the JEDI Code Library. If you want to get involved in the development of JCL, for example: processing donations, testing code, writing new code etc. please contact us. The following people are the ones who continuesly in doing the maintaining and testing. Don't forget to visit our Hall of Contributors as well. </p> <dl compact> -<dt> <b> Core Team </b> </dt> +<dt> +<b> Core Team </b> +</dt> +<p>The list of developers that actively support the JCL: +</p> <dd> -<dd><a href="page506.html"><img src="img/mail.gif" alt="" border=""></a> -Raymond Alexander -<dd><a href="page506.html"><img src="img/mail.gif" alt="" border=""></a> -Marcel Bestebroer -<dd><a href="page506.html"><img src="img/mail.gif" alt="" border=""></a> -Manlio Laschena -<dd><a href="page506.html"><img src="img/mail.gif" alt="" border=""></a> -Robert Rossmair -<dd><a href="page506.html"><img src="img/mail.gif" alt="" border=""></a> -Robert Marquardt -<dd><a href="mailto:ma....@gm..."><img src="img/mail.gif" alt="" border=""></a> -<a href="">Matthias Thoma -</a><dd><a href="page506.html"><img src="img/mail.gif" alt="" border=""></a> -Marco van de Voort -<dd><a href="page506.html"><img src="img/mail.gif" alt="" border=""></a> -Petr Vones +<dd><a href="http://sourceforge.net/project/memberlist.php?group_id=47514">JCL project members at sourceforge</a> -<dt><br><br></dt> <h2> Special thanks</h2> </dt> -<dd>Very special thanks goes to Robert Chandler. During development of JCL we made heavy use of his shareware application named FAR. This is an excellent tool for creating helpfiles and a must have for everyone who needs to create an HTML Help based help system. It has allowed us to rebuild the JCL helpfile from scratch several times a day without any work and well under two minutes! You can get it at the Helpware website -<dd><br>Special Thanks to the following persons for their dedicated help in various situations ranging from website maintenance to C++ Builder compatibility: <br> -<ul> -<li>Roland Bedürftig (C++Builder compatibility)</li> -<li>Sebastian Moleski (C++Builder compatibility)</li> -</ul> -<dd> -<br>Thanks for help in various situations goes to the following people <br> <br> -Rudy Velthuis<br> -Michael Beck<br> -Helen Borrie<br> -Thomas Hensle<br> +<dt> +<b>Thanks</b> +</dt> +<p>for help in various situations goes to the following people: +</p> +<dd>Rudy Velthuis<br> +<dd>Michael Beck<br> +<dd>Helen Borrie<br> +<dd>Thomas Hensle<br> <br></dl> <!--||| Ende Text |||--></span> @@ -99,7 +84,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page12.html =================================================================== --- trunk/website/delphi-jedi/page12.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page12.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - JEDI Code Library</title> +<title>Recent news</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -46,7 +46,247 @@ <br> <p align="justify"> <span class="lesen"><b>Recent news</b> + <p> +Summary: JCL 1.105 Build 3400 available<br> + +Date: 2009-06-22 21:00<br><br> + +This new release of the Jedi Code Library is available in the JCL pages at Sourceforge: http://sourceforge.net/project/showfiles.php?group_id=47514<br><br> + +This release supports the following versions of Delphi and C++Builder:<br> + +* Delphi 2009 and C++Builder 2009<br> +* RAD Studio 2007 (Delphi 2007, C++Builder 2007), Delphi.net 2007 is not supported;<br> +* BDS 2006 (Delphi 2006, C++Builder 2006), Delphi.net is not supported;<br> +* Delphi.net 8 (experts only);<br> +* C#Builder 1 (experts only);<br> +* Delphi 7<br> +* Delphi 6 and C++Builder 6;<br> +* Delphi 5 and C++Builder 5. <br><br> + +Head changes for this releease are:<br> + +* improved Unicode support for Delphi 2009 and C++Builder 2009;<br> +* support for solid archives in JclCompression (backend handled by 7-zip);<br> +* support for RPM, MUB and DMG archive formats (backend handled by 7-zip);<br> +* support for out-of-place and in-place archive updates (backend handled by 7-zip);<br> +* new string class TJclAnsiStrings to store AnsiString (improved Delphi 2009 backward compatibility);<br> +* JclPCRE update to PCRE 7.8;<br> +* the exception notifier can be disabled when a debugger is attached to the application;<br> +* support for multiple roots in TJclFileEnumerator;<br> +* new unit TJclCharsets.pas that contains the translations of charset names to codepages. <br> +</p> + +<hr size="1" width="80%"> + +<p> +Summary: New website address<br> + +Date: 2009-04-04 11:00<br><br> + +The URL for the JCL website changed to <a href="http://jcl.delphi-jedi.org/">http://jcl.delphi-jedi.org/ JCL Website</a><br> + +The URL for the issuetracker changed to <a href="http://issuetracker.delphi-jedi.org/">http://issuetracker.delphi-jedi.org/ JEDI issue tracker</a><br> + +The URL for the WIKI changed to <a href="http://wiki.delphi-jedi.org/">http://wiki.delphi-jedi.org/ JEDI WIKI</a> <br> +</p> + +<hr size="1" width="80%"> + +<p> +Summary: JCL 1.104 Build 3248 available<br> + +Date: 2009-01-21 11:15<br><br> + +This new release of the Jedi Code Library is available in the JCL pages at Sourceforge: http://sourceforge.net/project/showfiles.php?group_id=47514<br><br> + +This release supports the following versions of Delphi and C++Builder:<br> + +* Delphi 2009 and C++Builder 2009<br> +* RAD Studio 2007 (Delphi 2007, C++Builder 2007), Delphi.net 2007 is not supported;<br> +* BDS 2006 (Delphi 2006, C++Builder 2006 and Delphi.net 2006);<br> +* Delphi.net 2005, Delphi 2005 is not supported;<br> +* Delphi.net 8 (experts only);<br> +* C#Builder 1 (experts only);<br> +* Delphi 7<br> +* Delphi 6 and C++Builder 6;<br> +* Delphi 5 and C++Builder 5.<br><br> + +Head changes for this releease are:<br> + +* improved Unicode support for Delphi 2009 and C++Builder 2009;<br> +* support for late and static binding to ZLib code;<br> +* version control actions for CVS and SVN added to JCL runtime;<br> +* the polyniomal of CRC computations can be customized;<br> +* speed improvement of TJclBufferedStream during write operations;<br> +* new archive compression format provided with 7-zip: lzma, pe, elf, macho, udf, xar, mub, hfs, dmg; the wrapper has previous support for the compression and the decompression of zip, zip2, gzip, 7z, tar and for the decompression of rar, iso, chm, deb, cab...<br> +* new string conversion functions with failure detection.<br> +</p> + +<hr size="1" width="80%"> + +<p> +Summary: JCL 1.103 Preview available<br> + +Date: 2008-09-09 21:40<br><br> +The JCL team is proud to give a preview of the library that supports CodeGear's new products Delphi 2009 and C++Builder 2009 with native Unicode support (codename was Tiburon).<br><br> + +This preview should not be considered as stable software, it introduces breaking changes to previously released JCL 1.102. + +Users who absolutely need a stable version of the library should stay with JCL 1.102. + +Users who need a version of the JCL for Delphi 2009 and C++Builder 2009 may use this preview because JCL 1.102 is not compatible with these new products.<br> + +Feedback about this preview concerning backward compatibility and Unicode support will highly be appreciated.<br><br> + +Users of subversion, may use this external link to import the JCL into their repository: https://jcl.svn.sourceforge.net:443/svnroot/jcl/tags/JCL-1.103-Build3110-Preview<br><br> + +This preview supports the following versions of Delphi and C++Builder:<br> + +* RAD Studio 2007 (Delphi 2007, C++Builder 2007); <br> +* BDS 2006 (Delphi 2006, C++Builder 2006 and Delphi.net 2006); <br> +* Delphi.net 2005; <br> +* Delphi.net 8 (experts only); <br> +* C#Builder 1 (experts only); <br> +* Delphi 7 <br> +* Delphi 6 and C++Builder 6; <br> +* Delphi 5 and C++Builder 5. <br><br> + +Note that the support of Delphi.net 2007 and Delphi 2005 is broken.<br><br> + +Head changes for this releease are:<br> + +* security update to BZip2 1.0.5; <br> +* native Unicode support; <br> +* update to Unicode Character Database 5.1.0; <br> +* introduction of string streams with automatic conversions; <br> +* Streams compatible with Delphi.net; <br> +* container rework (thread safe implementation, new contained types: WideString, Single, Double, Extended..., compatibility with iterators, split to a dedicated package); <br> +* Installation to multiple local user accounts at the same time; <br> +* updated detection of CPU features; <br> +* new functions in JclStrings to expand tab to spaces; <br> +* added properties to TJclSimpleXml to enumerate elements by name; <br> +* added archive support (.zip, .rar, .tar, .gz, .bzip, .iso...) based on sevenzip code; <br> +* support for callout in PCRE; <br> +* added project-wide settings for the debug expert. <br> + +</p> + +<hr size="1" width="80%"> + +<p> +Summary: JCL 1.102 Build 3072 available<br> + +Date: 2008-07-29 20:40<br><br> + +Users of subversion, may use this external link to import the JCL into their repository: https://jcl.svn.sourceforge.net:443/svnroot/jcl/tags/JCL-1.102-Build3072<br><br> + +This release supports the following versions of Delphi and C++Builder:<br> + +* RAD Studio 2007 (Delphi 207, C++Builder 2007, Delphi.net 2007);<br> +* BDS 2006 (Delphi 2006, C++Builder 2006 and Delphi.net 2006);<br> +* Delphi 2005 and Delphi.net 2005;<br> +* Delphi.net 8 (experts only);<br> +* C#Builder 1 (experts only);<br> +* Delphi 7<br> +* Delphi 6 and C++Builder 6;<br> +* Delphi 5 and C++Builder 5.<br><br> + +Head changes for this releease are:<br> + +* security update to BZip2 1.0.5;<br> +* Streams compatible with Delphi.net;<br> +* container rework (thread safe implementation, new contained types: WideString, Single, Double, Extended..., compatibility with iterators, split to a dedicated package);<br> +* Installation to multiple local user accounts at the same time;<br> +* updated detection of CPU features;<br> +* new functions in JclStrings to expand tab to spaces;<br> +* added properties to TJclSimpleXml to enumerate elements by name;<br> +* enhanced support for FPC;<br> +* added archive support (.zip, .rar, .tar, .gz, .bzip, .iso...) based on sevenzip code;<br> +* support for callout in PCRE;<br> +* added project-wide settings for the debug expert. <br> +</p> + +<hr size="1" width="80%"> + +<p> +Summary: JCL 1.101 Build 2725 available<br> + +Date: 2007-09-19 20:00<br><br> + +This releases support RAD Studio 2007 and is based on the content of the source repository at Sourceforge (revision 2134 - packaged on Aug. the 15th).<br><br> + +Head changes for this release are:<br> + +* New function to initialize TFont object from standard system fonts (JclFont.pas)<br> +* New functions to move and copy directories in JclFileUtils.pas.<br> +* Conversion functions between SID and string are added to JclSysInfo.pas.<br> +* Expression evaluation now supports operators (and, or, xor, not...).<br> +* new stream classes: TJclSectoredStream to handle data in a sectored storage, TJclCRC16Stream and TJclCRC32Stream to protect a sectored stream using checksums.<br> +* new functions to easily handle command line parameters (JclFileUtils.pas)<br> + +</p> + +<hr size="1" width="80%"> + +<p> +Summary: JCL 1.100 Build 2646 available<br> + +Date: 2007-06-16 21:20<br><br> + +This releases support C++Builder 2007 for Win32 and is based on the content of the source repository at Sourceforge (revision 2015 - packaged on May. the 31th).<br><br> + +Head changes for this release are:<br><br> + +* JclCompression is updated: routines to compress files in a single line, support for bzip2 file format (compression and decompression). <br> +* JclDebug is updated to automatically produce stack traces of threads. <br> +* Manifests are added for Vista compatibility, the installer is now Vista-friendly and ask for an elevation to register help files. <br> +* PCRE captures and named captures are now writtable. <br> +* New routine (StrReplaceRegEx) to invoke replacements based on regular expression in a single line. <br> +* Exception dialog now uses AppEvnts to register to Application.OnException <br> +</p> + +<hr size="1" width="80%"> + +<p> +Summary: JCL 1.99 Build 2551 available <br> + +Date: 2007-03-19 02:00 <br><br> + +This releases support Delphi 2007 for Win32 and is based on the content of the source repository at Sourceforge (revision 1947 - packaged on Feb. the 2nd). <br> + +Head changes for this release are:<br><br> + +* JclPeImage is significantly updated: it now supports 64-bit applications and libraries. <br> +* JclDebug is significantly updated: .jdbg files contain informations about all segments of code. A new option was added to limit exception handling to application main thread. <br> +* <a href="http://www.pcre.org/">PCRE</a> updated to version 7.0. PCRE code can be included in the application not requiring "pcre.dll" anymore (experimental - read the comments at the beginning of source\common\pcre.pas for details and modifications to enable this feature). <br> +* JclMail : different file names can be specified for attachements <br> +* Collection of stream classes to make basic operations easier (getting random data, multiplexing several streams, buffering an other stream, being notified on changes, reading common data types, scoping a stream, delegating read/write/seek operations. <br> +* Integration of the JCL help into the help system of Delphi 2005, BDS 2006, Turbo Delphi and Delphi 2007 for Win32. <br> +</p> + +<hr size="1" width="80%"> + +<p> +Summary: JCL 1.98 Build 2530 available <br> + +Date: 2007-02-03 15:00 <br> <br> + +The head changes for this release are: <br><br> + +* Integration of the JCL help into the help system of Delphi 2005, BDS 2006 and Turbo Delphi.<br> +* Collection of stream classes to make basic operations easier (getting random data, multiplexing several streams, buffering an other stream, being notifyed on changes, reading common data types, scoping a stream, delegating read/write/seek operations.<br> +* Speed-up of the stack analysis of JclDebug: exception driven execution will not be slowed by activating JclDebug in the application. <br> +* <a href="http://www.zlib.net/">ZLIB</a> updated to 1.2.3 (fixes a major issue while deflating corrupted data). <br> +* <a href="http://www.pcre.org/">PCRE</a> updated to version 6.7.<br> +* <a href="http://www.unicode.org/">Unicode</a> support updated to 4.1.0.<br> +* New IDE expert to have <a href="http://subversion.tigris.org/">subversion</a> and <a href="http://www.cvsnt.org/">cvs</a> commands integrated in all support IDE.<br> +</p> + +<hr size="1" width="80%"> + +<p> Date: 2006-02-19 07:00 <br> Summary: JCL 1.97 Build 2172 available <br> The Jedi Code Library (JCL) 1.97 Build 2172 is available on SourceForge, @@ -171,7 +411,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page13.html =================================================================== --- trunk/website/delphi-jedi/page13.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page13.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - JEDI Code Library</title> +<title>Contributors</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -179,7 +179,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009s · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page20.html =================================================================== --- trunk/website/delphi-jedi/page20.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page20.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -80,7 +80,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page21.html =================================================================== --- trunk/website/delphi-jedi/page21.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page21.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - JEDI Code Library</title> +<title>Newsgroups</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -92,7 +92,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page22.html =================================================================== --- trunk/website/delphi-jedi/page22.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page22.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support - Guidelines</title> +<title>Mailing list</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -86,7 +86,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page23.html =================================================================== --- trunk/website/delphi-jedi/page23.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page23.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support - Guidelines</title> +<title>Guidelines</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -96,7 +96,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page24.html =================================================================== --- trunk/website/delphi-jedi/page24.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page24.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>Report a bug</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -90,7 +90,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page30.html =================================================================== --- trunk/website/delphi-jedi/page30.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page30.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>Download</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -71,7 +71,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page32.html =================================================================== --- trunk/website/delphi-jedi/page32.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page32.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>Version control</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -51,16 +51,20 @@ <p align="justify"> <span class="lesen"><b>JediVCS</b> <p> -The JEDI Code Library Team uses CVS for Version Control. To always have access to the most -recent changes in the JCL, you should install a CVS client (we recommend TortoiseCVS and WinCVS) -and download the CVS repository files to your computer. With the CVS client, you can update -your local repository at any time. </p> +The JEDI Code Library Team uses SVN for Version Control. To always have access to the most +recent changes in the JCL, you should install a SVN client (we recommend TortoiseSVN) +and download the SVN repository files to your computer by checking out the repository at <a href="http://jcl.svn.sourceforge.net/trunk/jcl/trunk/jcl/">http://jcl.svn.sourceforge.net/trunk/jcl/trunk/jcl/</a>. +</p> <p> -You can also access the CVS repository via the web. Click <a href="http://cvs.sourceforge.net/viewcvs.py/jcl/">this link</a> to go to the CVS root. +With the SVN client, you can update your local repository at any time. </p> +<p> +You can also access the SVN repository via the web. Click <a href="http://jcl.svn.sourceforge.net/viewvc/jcl/trunk/jcl/">this link</a> to go to the SVN trunk. +</p> + <!--||| Ende Text |||--></span> <br> @@ -77,7 +81,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page33.html =================================================================== --- trunk/website/delphi-jedi/page33.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page33.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - Jedi Code Library</title> +<title>Documents</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -54,24 +54,19 @@ <table class="lesen"> <tr> <td>JCL Delphi Style Guide </td> - <td>[<a HREF="documents/styleguide.html">HTML</a>] [<a HREF="documents/styleguide.pdf">PDF</a>] [<a HREF="documents/styleguide.ps">PS</a>]</td> + <td>[<a HREF="documents/styleguide.html">HTML</a>] [<a HREF="documents/styleguide.pdf">PDF</a>]</td> </tr> <tr> <td>Mozilla Public License V1.1 </td> - <td>[<a HREF="documents/mpl11.html">HTML</a>] [<a HREF="documents/mpl11.pdf">PDF</a>] [<a HREF="documents/mpl11.ps">PS</a>]</td> + <td>[<a HREF="documents/mpl11.html">HTML</a>] [<a HREF="documents/mpl11.pdf">PDF</a>]</td> </tr> <tr> <td>GNU Lesser Public License </td> - <td>[<a HREF="documents/lgpl.html">HTML</a>] [<a HREF="documents/lgpl.pdf">PDF</a>] [<a HREF="documents/lgpl.ps">PS</a>]</td> + <td>[<a HREF="documents/lgpl.html">HTML</a>] [<a HREF="documents/lgpl.pdf">PDF</a>]</td> </tr> - -<tr> - <td>Jedi Code Library Crossplatform Strategy </td> - <td>[<a HREF="team/cps.html">HTML</a>] [<a HREF="team/cps.pdf">PDF</a>] [<a HREF="team/cps.ps">PS</a>]</td> -</tr> </table> <!--||| Ende Text |||--></span> @@ -90,7 +85,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page34.html =================================================================== --- trunk/website/delphi-jedi/page34.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page34.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>Tools</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -52,9 +52,6 @@ <span class="lesen"><b>Tools</b> <P> In addition to the JCL itself we also have some additional downloads such as example programs, use the links below to download them. -<P> -<a href="http://www.volweb.cz/pvones/delphi/">Delphi Tools</a> - few (mostly PE file related) tools based on JCL (Petr Vones). -</P> <p> <a href="ppp.html"> ppp</a> - Barry Kelly's Pascal PreprocessorTool </p> @@ -82,7 +79,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page40.html =================================================================== --- trunk/website/delphi-jedi/page40.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page40.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - Jedi Code Library</title> +<title>Contributing</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -90,7 +90,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page41.html =================================================================== --- trunk/website/delphi-jedi/page41.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page41.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - Jedi Code Library</title> +<title>Join the team</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -81,8 +81,9 @@ <span class="text"> <!--||| Hier die eigene Emailadresse einf\xFCgen. |||--> -© 2001 · Name · <a href="mailto:emailadresse@irgendwo.xy"><img src="img/email.jpg" width="34" height="28" border="0" alt="Email">email senden</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> + </span> </td> </tr> Modified: trunk/website/delphi-jedi/page42.html =================================================================== --- trunk/website/delphi-jedi/page42.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page42.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - JEDI Code Library</title> +<title>Submitting code</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -143,7 +143,7 @@ <span class="text"> <!--||| Hier die eigene Emailadresse einf\xFCgen. |||--> -© 2001 · Name · <a href="mailto:emailadresse@irgendwo.xy"><img src="img/email.jpg" width="34" height="28" border="0" alt="Email">email senden</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> Modified: trunk/website/delphi-jedi/page50.html =================================================================== --- trunk/website/delphi-jedi/page50.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page50.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - JEDI Code Library</title> +<title>Licensing</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -81,7 +81,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Deleted: trunk/website/delphi-jedi/page506.html =================================================================== --- trunk/website/delphi-jedi/page506.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page506.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,80 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> -<html> -<head> -<title>Feedback & Support - Guidelines</title> -<link rel="stylesheet" href="styles.css" type="text/css"> -</head> - -<body bgcolor="#ffffff" alink="#FF9933" class="sb" style="background-image:url(img/bg.jpg); background-repeat:repeat-x; background-position:0px 0px;"> -<div style="position:absolute; top:0px; left:0px;"> - -<table border="0" cellspacing="0" cellpadding="0"> -<tr> -<td align="left"> -<a href="index.html"><img src="img/ecke.jpg" width="38" height="56" border="0" alt="HOME"></a> -</td> -<td valign="top" align="left"> -<br> -<span class="head"> - -<a href="index.html">JCL</a> · About us · Team -</span> -</td> -</tr> -</table> - -<table border="0" cellspacing="0" cellpadding="15"> -<tr> -<td valign="top" width="160" nowrap> - -<br> -<ul> -<li type="square"><span class="text"><a href="page10.html">About us</a> - <br>\xB0 <a href="page11.html">Team</a> - <br>\xB0 <a href="page12.html">Recent news</a> - <br>\xB0 <a href="page13.html">Contributors</a> - <!--||| Ende Submenue zu Menuepunkt 1 |||--></span></li> -<li type="square"><span class="text"><a href="page30.html">Download</a></span></li> -<li type="square"><span class="text"><a href="page20.html">Feedback&Support</a></span></li> -<li type="square"><span class="text"><a href="page40.html">Contributing</a></span></li> -<li type="square"><span class="text"><a href="page50.html">Licensing</a></span></li> -<li type="square"><span class="text"><a href="page60.html">Links</a></span></li> -</ul> -</td> - -<td valign="top" width="400"> -<br> -<p align="justify"> -<span class="lesen"><b>No e-Mail address available</b> -<p> -Hello, you see this page because the JCL team member or contributor didn't -wanted to publish his or her email address. To get in contact regarding JCL specific -issues please use feedback methods like the issue tracker or the newsgroup. - -</p> - -<!--||| Ende Text |||--></span> - -<br> -</td> -<!--||| Ende Textspalte |||--> - -</tr> -</table> -<!--||| Ende Tabelle mit Inhalt |||--> - - -<table border="0" cellspacing="0" cellpadding="15"> -<tr> -<td valign="top" width="160" nowrap> </td> -<td align="center" width="400"> -<span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> -</span> -</td> -</tr> -</table> -</div> -</body> -</html> - Modified: trunk/website/delphi-jedi/page51.html =================================================================== --- trunk/website/delphi-jedi/page51.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page51.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>MPL license</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -839,7 +839,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page52.html =================================================================== --- trunk/website/delphi-jedi/page52.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page52.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>LGPL license</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -559,7 +559,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page53.html =================================================================== --- trunk/website/delphi-jedi/page53.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page53.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>License FAQS</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -67,7 +67,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page54.html =================================================================== --- trunk/website/delphi-jedi/page54.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page54.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - JEDI Code Library</title> +<title>Dual licensing</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -167,7 +167,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/page60.html =================================================================== --- trunk/website/delphi-jedi/page60.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/page60.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Project JEDI - JEDI Code Library</title> +<title>Links</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -62,7 +62,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Modified: trunk/website/delphi-jedi/ppp.html =================================================================== --- trunk/website/delphi-jedi/ppp.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/ppp.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> -<title>Feedback & Support</title> +<title>Pascal PreProcessor</title> <link rel="stylesheet" href="styles.css" type="text/css"> </head> @@ -54,8 +54,7 @@ PPP is a Pascal PreProcessor written by Barry Kelly. The jpp tool we are using for the JCL is directly derived from it. This is not the official homepage of ppp. The Pascal PreProcessor tool can be optained from -<a href="http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=16454">codecentral</a> -or directly from <a href="download/ppp.zip">here</a>. +<a href="http://cc.embarcadero.com/Item/16454">codecentral</a>. </p> <p> ppp is a command line tool. All preprocessed files will be written to new files @@ -105,8 +104,7 @@ that we cannot guarantee that we always have the latest version of the tool available for download. </p> -<a href="download/ppp.zip">Download from this page</a> <br> -<a href="http://codecentral.borland.com/codecentral/ccweb.exe/listing?id=16454">CodeCentral</a> +<a href="http://cc.embarcadero.com/Item/16454">CodeCentral</a> @@ -126,7 +124,7 @@ <td valign="top" width="160" nowrap> </td> <td align="center" width="400"> <span class="text"> -© 2003 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> +© 2009 · Project JEDI · Contact: <a href="mailto:jc...@de...">jc...@de...</a> </span> </td> </tr> Deleted: trunk/website/delphi-jedi/release120.html =================================================================== --- trunk/website/delphi-jedi/release120.html 2009-07-16 17:39:25 UTC (rev 2866) +++ trunk/website/delphi-jedi/release120.html 2009-07-19 09:56:47 UTC (rev 2867) @@ -1,446 +0,0 @@ -<HTML> -<HEAD> -<TITLE>Jedi Code Library Release 1.20</TITLE> -</HEAD> - -<BODY> -<PRE> - -====================================================================== -Jedi Code Library -Release 1.20 - 23-Mar-2002 -====================================================================== - -It has been a long time since we released the last version of the Jedi -Code Library. Now, we are proud to present Version 1.20. It includes a -real bunch of bug fixes, some new features and even two completely -new units. - -Furthermore we are introducing an Issue Tracker to help you and us to -solve JCL related problems as fast as possible. The times in which you -had to check the VCS, or contact someone from the team individualy to -retain information about the status of a specific bug are gone by now. - -So far the good news, some less good news is that the team changed a -little bit. The former lead and main coordinator of the Code Library - -Marcel van Brakel - has left the team and moved on to other areas. We -hereby wish him good look and want to say "thank you" for all what he -has done. Please do not send any email regarding JCL support to him - -instead use the mailing list, the newsgroup or one of our email -accounts. - -<B>* New features</B> - - New Unit: JclTD32 Introduces Borland TD32 symbolic debugging - information support routines and classes. - - New Unit: JclSvCtrl This unit introduces various routines and - classes to control Windows NT services. - - JclAppInst - - TJclAppInstances.SendCmdLineParams method added - - JclCounter - - Linux compatability - - You are now able to resume counting. - - JclDebug: - - New feature: Borland TD32 debug symbols can be another source of - source code location information - - Improved: OffsetFromProcName and OffsetFromLineNumber items added - to TJclLocationInfo structure to improve source location - information - - Improved: GetLocationInfoStr function has new default parameters - for formatting new information added to TJclLocationInfo structure - - Improved: Stack listing code has been optimized for performance. - It should be at least twenty times faster than original code which - is important for exceptional stack tracking - - Improved: MAP file parser now accepts files with incorrect information - (caused by bug in the linker) as well and corrects them. There is new - TJclMapScanner.LineNumberErrors property indicating number of incorrect - line number information in the MAP file - - Improved: TJclDebugThread and TJclDebugThreadList classes - - Added: TJclStackInfoItem.CallerAdr property - - Added: TJclModuleInfoList class - - Added: New LineNumberErrors parameter to ConvertMapFileToJdbgFile - function - - Added: New LineNumberErrors parameter to InsertDebugDataIntoExecutableFile - function - - Added: stStaticModuleList to TJclStackTrackingOption to improve - performance of stack listing code for applications using statically - linked modules only - - Backward compatibility: ModuleFromAddr and IsSystemModule routines moved to - JclSysInfo unit. Its functionality is replaced by - TJclModuleInfoList class for better performance - - JclFileUtils - - TJclMappedTextReader class added - - New function: VersionFixedFileInfo - - Function improved: ShredFile now uses an alternating bit - pattern. - - JclMapi - - Added: DefaultProfileName, ProfileCount and Profiles properties to - TJclSimpleMapi class - - Added: TJclEmail.HtmlBody property for creating HTML format messages - - JclMath - - Rabin Miller strong primality test added - - JclMultimedia - - Improved: CD Audio routines has additional parameter for specifying the - drive - - New function: GetCdInfo - - New function: GetCDAudioTrackList - - Added: Audio mixer classes - - JclPeImage - - Added: TJclPeImage.IsCLR and TJclPeImage.CLRHeader properties - - Added: TJclPeImage.CertificateList property - - Added: TJclPeRootResourceList.ManifestContent property - - Added: TJclPePackageInfo.Available property - - Added: TJclPePackageInfo.EnsureExtension property - - Added: TJclPeBorImage.PackageCompilerVersion property - - Added: TJclPeBorImage.DependedPackages method - - New function: PeBorDependedPackages - - New function: PeClearCheckSum - - New function: PeFindMissingImports - - New function: PeCreateRequiredImportList - - Backward compatibility: TJclPeBorImage.IsTD32DebugPresent property - removed. The functionallity is replaced by - JclTD32 unit - - JclRegistry - - New function: RegKeyExists - - JclShell - - New function: GetFileNameIcon - - JclStrings - - New function: StrTrimCharsRight - - New function: StrTrimCharsLeft - - New function: StrNormIndex - - New function: StrCharPosLower - - New function: StrCharPosUpper - - JclSysInfo: - - Now able to detect Crusoe chipsets. - - Improved: Windows XP added to operating system info routines - - Improved: GetPidFromProcessName accepts filename without full path - - Added: Windows 95/98/Me system resources information routines - - New function: GetShellProcessName - - New function: GetShellProcessHandle - - New function: GetWindowsServicePackVersion - - New function: GetNtProductTypeString - - New function: GetWindowsVersionString - - New function: GetCommonAppdataFolder - - New function: IsMainAppWindow - - New function: GetWindowCaption - - New function: GetMainAppWndFromPid - -JclSysUtils - - Added: TJclReferenceMemoryStream class - - Added: TList binary search routines - - Added: Dynamic arrays sorting and searching routines - - New function: GetImplementorOfInterface - - -<B>* JCL Distribution content:</B> - -Install.bat - Compile and run JCL Install Helper -makefile.mak - Builds all JCL examples and tools -Readme.txt -Bin - Folder for compiled JCL binaries -Dcu - Folder for DCU files -Examples - JCL example applications -Examples\DebugExtension - JCL Debug IDE expert for using JclDebug unit - \Dialog - Sample application exception dialog replacement - \ThreadNames - IDE expert showing class names for debugged threads - \Tools - Tools for creating files with JCL debug information -Examples\DelphiTools - Collection of system tools using JCL -Examples\InstallHelper - JCL Install Helper -Examples\ProjectAnalyzer - Project Analyzer IDE expert -Help - Help file -Packages - JCL runtime package and project group containing all - available design-time packages -Source - JCL source code - - -<B>* Installation</B> - -Supported development tools versions: - -- Delphi 4 Update Pack #3 -- Delphi 5 Update Pack #1 -- Delphi 6 Update Pack #2 (including Personal Edition) -- Free Pascal compiler - -Please make sure you have installed latest update packs. You can download them -from Borland Support web page: <A HREF="http://www.borland.com/devsupport/delphi/">http://www.borland.com/devsupport/delphi/</A> - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Important !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! If you have installed any previous version of the JCL you have to delete it. ! -! It is also necessary to remove all installed JCL packages from the IDE. ! -! Do not mix files or compiled packages from older versions of the JCL with ! -! current version. ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -Because the JCL does NOT contain any components you don't have to install it to -the IDE. Just use desired unit(s) in your project (add them to uses clause) and -make sure IDE Library Path or Project Search Path contains JCL\Source folder, -i.e. C:\Delphi\JCL\Source (where C:\Delphi\JCL is folder when you have unzipped -the JCL archive). - -- To set the path for all projects in IDE Library Path (recommended) go to: - Tools|Environment Options -> Library tab, add the path to Library Path field - or use JCL Install Helper described later in the document - -- To set the path for a project only (optional) go to: - Project|Options -> Directories/Conditionals page, add the path to Search path - field - -Although you might want to install additional experts or files shipped with the -JCL. Currently there are: - -- Help file -- Sample application exception dialogs -- IDE experts - -The installation process is described later in the document. You can use JCL -Install Helper for the first two options but IDE experts have to be installed -manually from the IDE. - - -<B>* JCL Install Helper</B> - -Helps you to integrate Jedi Code Library with Delphi IDE. Currently it assists -with: - -- Adding sample JCL Debug extension dialogs to Object Repository -- Adding JCL\Source path to Library Path in Environment Options -- Integrating JCL help file to the IDE. - -To start it click on Install.bat file in the JCL root folder. - - -<B>* Packages</B> - -In case you'd like to install any IDE expert shipped with JCL or use JCL code -in your components or IDE experts you need runtime package containing all JCL -source units. The package is located in Packages folder. There are separate -files for each Delphi version: - -DJCL40.dpk - for Delphi 4 -DJCL50.dpk - for Delphi 5 -DJCL.dpk - for Delphi 6 - -To simplify the process of installing additional packages we provide project -groups containing all JCL packages for particular Delphi version: - -JclPackages40.bpg - for Delphi 4 -JclPackages50.bpg - for Delphi 5 -JclPackages60.bpg - for Delphi 6 - -Each group contains JCL runtime package and design-time packages for JCL IDE -experts: - -DJCL - JCL runtime package -JclDebugIde - Expert for inserting JCL Debug information into executable - files. This is useful when use source location routines in - your application -ThreadNameExpert - Expert for displaying class names of TThread classes in - Thread Status window during debugging. See ThreadNamesExample - project in JCL\Examples folder -ProjectAnalyzer - Expert showing list of units compiled to a current project - including the information how much a unit contributes to the - executable file size. It will add 'Analyze Project <name>' - item to the Project menu - -To install it, open file matching your Delphi version, activate Project Manager -window in Delphi IDE, select DJCLxx file and build it from popup menu by Build -command. Then select desired designtime package(s) and install them one by one -by Install command from the popup menu. Then close the project group (answer -'No' when IDE asks to save changes in project group files). - - -<B>* Debug Extension for JclDebug unit</B> - -Examples\DebugExtension folder contains IDE expert which assists to insert JCL -Debug information into executable files. This can be useful when use source -location routines from JclDebug unit. These routines needs some kind of special -information to be able provide source location for given address in the process. -Currently there are four options to get it work: - -1. Generate and deploy MAP file with your executable file. The file is generated - by the linker. It needs to be set in Project|Options dialog -> Linker page, - Detailed checkbox. - -2. Generate and deploy JDBG file file with your executable file. This is binary - file based on MAP file but its size is typically about 12% of original MAP - file. You can generate it by MapToJdbg tool in JCL\Examples\Tools folder. - The advantage over MAP file is smaller size and better security of the file - content because it is not a plain text file and it also contains a checksum. - -3. Generate Borland TD32 debug symbols. These symbols are stored directly in the - executable file but usually adds several megabytes so the file is very large. - The advantage is you don't have to deploy any other file and it is easy to - generate it by checking Include TD32 debug info in Linker option page. - -4. Insert JCL Debug info into executable file by the IDE expert. The size of - added data is similar to JDBG file but it will be inserted directly into the - executable file. This is probably best option because it combines small size - of included data and no requirement of deploying additional files. In case - you use this option you need install the JclDebugIde expert. - -The IDE expert will add new item to IDE Project menu. Due some differences in -Open Tools API the use of the expert is slightly different in Delphi 4. For -Delphi 5 and 6 it adds 'Insert JCL Debug data' check item at the end of the -Project menu. When the item is checked, everytime the project is compiled by one -of following commands: Compile, Build, Compile All Projects, Build All Projects -or Run necessary JCL debug data are automatically inserted into the executable. -Moreover, for Build and Build All commands dialog with detailed information of -size of these data will be displayed. For Delphi 4 there is 'Build JCL Debug' -command only in the Project menu which performs a build including these data. - -You can generate those debug data for packages and libraries as well using the -expert. Each executable file in the project can use different option from those -listed above. It is not necessary to generate any debug data for Borland runtime -packages because the source location code can use names of exported functions -to get procedure or method name. To get line number information for Borland RTL -and VCL/CLX units you have to check Use Debug DCUs checkbox in Project|Options -dialog -> Compiler tab (not available in Delphi 4). Unfortunately it is not -possible to get line number information for Borland runtime packages because -Borland does not provide detailed MAP files for them so you get procedure or -method name only. - -In case you have more than one data source for an executable file by an accident -the best one is chosen in following order: - -1. JCL Debug data in the executable file -2. JDBG file -3. Borland TD32 symbols -4. MAP file -5. library or Borland package exports - -It is also possible to insert JCL debug data programmatically to the executable -file by using MakeJclDbg command line tool in JCL\Examples\Tools folder. You can -study included makefiles which uses this tool for building DelphiTools examples. - -To help using JclDebug exceptional stack tracking in application simple dialog -is provided in JCL\Examples\DebugExtension\Dialog folder. The dialog replaces -standard dialog displayed by VCL or CLX application when an unhandled exception -occurs. It has additional Detailed button showing the stack, list of loaded -modules and other system information. By adding the dialog to the application -exceptional stack tracking code is automatically initialized so you don't have -to care about it. You can also turn on logging to text file by setting the Tag -property of the dialog to '1'. There is also version for CLX (ClxExceptDlg) but -it works on Windows only. These dialogs are intended to be added to Object -Repository. - - -<B>* Makefiles</B> - -In order to compile all examples and tools by one command we provide makefiles. -To use them open Command Prompt, change current directory to root JCL directory -and run MAKE command. It should start to compile all project using most recent -version of compiler from installed Delphi versions. All executable files will be -created in JCL\Bin directory. - - -<B>* Feedback</B> - -If you have any comments or suggestions we would appreciate it if you -drop us a note. There are s... [truncated message content] |
From: <ou...@us...> - 2009-07-16 17:39:28
|
Revision: 2866 http://jcl.svn.sourceforge.net/jcl/?rev=2866&view=rev Author: outchy Date: 2009-07-16 17:39:25 +0000 (Thu, 16 Jul 2009) Log Message: ----------- The JCL SIMD view expert now displays YMM registers, available on AVX compatible processors and Windows 7 and Windows 2008 server. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaResources.pas trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.dfm trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.pas trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas trunk/jcl/experts/debug/simdview/JclSIMDViewForm.dfm trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas Modified: trunk/jcl/experts/common/JclOtaResources.pas =================================================================== --- trunk/jcl/experts/common/JclOtaResources.pas 2009-07-16 07:59:40 UTC (rev 2865) +++ trunk/jcl/experts/common/JclOtaResources.pas 2009-07-16 17:39:25 UTC (rev 2866) @@ -305,6 +305,8 @@ RsModifyMM = 'Modification of MM%d'; RsModifyXMM1 = 'Modification of XMM%d'; RsModifyXMM2 = 'Modification of XMM%.2d'; + RsModifyYMM1 = 'Modification of YMM%d'; + RsModifyYMM2 = 'Modification of YMM%.2d'; RsVectorIE = 'IE '; RsVectorDE = 'DE '; Modified: trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.dfm =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.dfm 2009-07-16 07:59:40 UTC (rev 2865) +++ trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.dfm 2009-07-16 17:39:25 UTC (rev 2866) @@ -3,8 +3,8 @@ Top = 175 BorderStyle = bsDialog Caption = 'JclSIMDModifyFrm' - ClientHeight = 417 - ClientWidth = 481 + ClientHeight = 388 + ClientWidth = 936 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -32,8 +32,8 @@ Layout = tlCenter end object LabelBlank: TLabel - Left = 8 - Top = 48 + Left = 480 + Top = 16 Width = 123 Height = 13 Caption = 'Keep blank for no change' @@ -72,15 +72,15 @@ end object PanelModify: TPanel Left = 8 - Top = 72 - Width = 465 + Top = 40 + Width = 920 Height = 265 BevelInner = bvLowered TabOrder = 2 end object ButtonOK: TButton - Left = 336 - Top = 384 + Left = 789 + Top = 355 Width = 139 Height = 25 Caption = '&OK' @@ -89,8 +89,8 @@ OnClick = ButtonOKClick end object ButtonCancel: TButton - Left = 336 - Top = 352 + Left = 789 + Top = 324 Width = 139 Height = 25 Cancel = True @@ -100,15 +100,22 @@ end object MemoTip: TMemo Left = 8 - Top = 352 - Width = 313 - Height = 57 + Top = 311 + Width = 595 + Height = 65 BorderStyle = bsNone Lines.Strings = ( - 'Tip: xmm0.byte0 will return the first byte of xmm0' - 'Valid registers are: xmm0..xmm7 (32-bit processor) or ' - 'xmm0..xmm15 (64-bit processor)' - 'Valid fields are byteX, wordX, dwordX, qwordX, singleX, doubleX') + + 'Tip: xmm0.byte0 will return the first byte of xmm0, valid fields' + + ' are byteX, wordX, dwordX, qwordX, singleX, doubleX' + 'Valid registers are:' + ' - mm0..mm7 (all processors)' + + ' - xmm0..xmm7 (32-bit processor with SSE) or xmm0..xmm15 (64-bit' + + ' processor with SSE)' + + ' - ymm0..ymm7 (32-bit processor with AVX) or ymm0..ymm15 (64-bit' + + ' processor with AVX)') ParentColor = True TabOrder = 5 end Modified: trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.pas =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.pas 2009-07-16 07:59:40 UTC (rev 2865) +++ trunk/jcl/experts/debug/simdview/JclSIMDModifyForm.pas 2009-07-16 17:39:25 UTC (rev 2866) @@ -46,8 +46,8 @@ WM_MODIFYCONTINUE = WM_USER + 100; type - TJclRegisterType = (rtXMM, rtMM); - + TJclRegisterType = (rtYMM, rtXMM, rtMM); + TJclSIMDModifyFrm = class(TForm) ComboBoxDisplay: TComboBox; ComboBoxFormat: TComboBox; @@ -64,8 +64,9 @@ private FRegisterType: TJclRegisterType; FXMMRegister: TJclXMMRegister; + FYMMRegister: TJclYMMRegister; FMMRegister: TJclMMRegister; - FDisplay: TJclXMMContentType; + FDisplay: TJclPackedContentType; FFormat: TJclSIMDFormat; FDebuggerServices: IOTADebuggerServices; FComboBoxList: TComponentList; @@ -77,6 +78,7 @@ FResultStr: string; FReturnCode: Cardinal; FCPUInfo: TCpuInfo; + FYMMEnabled: Boolean; FSettings: TJclOTASettings; procedure ContinueModify; procedure StartModify; @@ -85,18 +87,22 @@ procedure CreateParams(var Params: TCreateParams); override; property RegisterType: TJclRegisterType read FRegisterType; property XMMRegister: TJclXMMRegister read FXMMRegister; + property YMMRegister: TJclYMMRegister read FYMMRegister; property MMRegister: TJclMMRegister read FMMRegister; property DebuggerServices: IOTADebuggerServices read FDebuggerServices; public constructor Create(AOwner: TComponent; ADebuggerServices: IOTADebuggerServices; ASettings: TJclOTASettings); reintroduce; destructor Destroy; override; - function Execute(AThread: IOTAThread; ADisplay: TJclXMMContentType; + function Execute(AThread: IOTAThread; ADisplay: TJclPackedContentType; AFormat: TJclSIMDFormat; var ARegister: TJclXMMRegister; - const ACpuInfo: TCpuInfo): Boolean; overload; - function Execute(AThread: IOTAThread; ADisplay: TJclXMMContentType; + const ACpuInfo: TCpuInfo; AYMMEnabled: Boolean): Boolean; overload; + function Execute(AThread: IOTAThread; ADisplay: TJclPackedContentType; + AFormat: TJclSIMDFormat; var AXMMRegister: TJclXMMRegister; var AYMMRegister: TJclYMMRegister; + const ACpuInfo: TCpuInfo; AYMMEnabled: Boolean): Boolean; overload; + function Execute(AThread: IOTAThread; ADisplay: TJclPackedContentType; AFormat: TJclSIMDFormat; var ARegister: TJclMMRegister; - const ACpuInfo: TCpuInfo): Boolean; overload; + const ACpuInfo: TCpuInfo; AYMMEnabled: Boolean): Boolean; overload; procedure ThreadEvaluate(const ExprStr, ResultStr: string; ReturnCode: Integer); procedure UpdateDisplay; procedure UpdateFormat; @@ -104,7 +110,7 @@ procedure SaveHistory; procedure MergeHistory; - property Display: TJclXMMContentType read FDisplay; + property Display: TJclPackedContentType read FDisplay; property Format: TJclSIMDFormat read FFormat; property History: TStringList read FHistory; property Thread: IOTAThread read FThread; @@ -126,13 +132,14 @@ {$R *.dfm} const - NbEdits: array [TJclRegisterType, TJclXMMContentType] of Byte = + NbEdits: array [TJclRegisterType, TJclPackedContentType] of Byte = ( - (16, 8, 4, 2, 4, 2), - ( 8, 4, 2, 1, 2, 1) + (32, 16, 8, 4, 8, 4), // YMM + (16, 8, 4, 2, 4, 2), // XMM + ( 8, 4, 2, 1, 2, 1) // MM ); - Texts: array [TJclXMMContentType] of string = + Texts: array [TJclPackedContentType] of string = ('Byte', 'Word', 'DWord', 'QWord', 'Single', 'Double'); ItemFormat = 'Item%d'; @@ -180,9 +187,9 @@ inherited Destroy; end; -function TJclSIMDModifyFrm.Execute(AThread: IOTAThread; ADisplay: TJclXMMContentType; +function TJclSIMDModifyFrm.Execute(AThread: IOTAThread; ADisplay: TJclPackedContentType; AFormat: TJclSIMDFormat; var ARegister: TJclXMMRegister; - const ACPUInfo: TCPUInfo): Boolean; + const ACPUInfo: TCPUInfo; AYMMEnabled: Boolean): Boolean; begin FTextIndex := 0; FRegisterType := rtXMM; @@ -191,11 +198,12 @@ FDisplay := ADisplay; FThread := AThread; FCpuInfo := ACpuInfo; + FYMMEnabled := AYMMEnabled; LoadHistory; ComboBoxDisplay.ItemIndex := Integer(Display); - ComboBoxFormat.Enabled := Display in [xt16Bytes..xt2QWords]; + ComboBoxFormat.Enabled := Display in [pctBytes..pctQWords]; ComboBoxFormat.ItemIndex := Integer(Format); UpdateDisplay; @@ -208,9 +216,42 @@ SaveHistory; end; +function TJclSIMDModifyFrm.Execute(AThread: IOTAThread; ADisplay: TJclPackedContentType; + AFormat: TJclSIMDFormat; var AXMMRegister: TJclXMMRegister; var AYMMRegister: TJclYMMRegister; + const ACPUInfo: TCPUInfo; AYMMEnabled: Boolean): Boolean; +begin + FTextIndex := 0; + FRegisterType := rtYMM; + FXMMRegister := AXMMRegister; + FYMMRegister := AYMMRegister; + FFormat := AFormat; + FDisplay := ADisplay; + FThread := AThread; + FCpuInfo := ACpuInfo; + FYMMEnabled := AYMMEnabled; + + LoadHistory; + + ComboBoxDisplay.ItemIndex := Integer(Display); + ComboBoxFormat.Enabled := Display in [pctBytes..pctQWords]; + ComboBoxFormat.ItemIndex := Integer(Format); + UpdateDisplay; + + Result := ShowModal = mrOk; + + if Result then + begin + AXMMRegister := XMMRegister; + AYMMRegister := YMMRegister; + end; + + MergeHistory; + SaveHistory; +end; + function TJclSIMDModifyFrm.Execute(AThread: IOTAThread; - ADisplay: TJclXMMContentType; AFormat: TJclSIMDFormat; - var ARegister: TJclMMRegister; const ACpuInfo: TCpuInfo): Boolean; + ADisplay: TJclPackedContentType; AFormat: TJclSIMDFormat; + var ARegister: TJclMMRegister; const ACpuInfo: TCpuInfo; AYMMEnabled: Boolean): Boolean; begin FTextIndex := 0; FRegisterType := rtMM; @@ -219,11 +260,12 @@ FDisplay := ADisplay; FThread := AThread; FCpuInfo := ACpuInfo; + FYMMEnabled := AYMMEnabled; LoadHistory; ComboBoxDisplay.ItemIndex := Integer(Display); - ComboBoxFormat.Enabled := Display in [xt16Bytes..xt2QWords]; + ComboBoxFormat.Enabled := Display in [pctBytes..pctQWords]; ComboBoxFormat.ItemIndex := Integer(Format); UpdateDisplay; @@ -250,7 +292,7 @@ FLabelList.Clear; ComboBoxDisplay.ItemIndex := Integer(Display); - ComboBoxFormat.Enabled := Display in [xt16Bytes..xt2QWords]; + ComboBoxFormat.Enabled := Display in [pctBytes..pctQWords]; ComboBoxFormat.ItemIndex := Integer(Format); X := 0; @@ -269,10 +311,10 @@ ALabel.SetBounds(X + 5, Y + 2, 60, ALabel.Height); ALabel.Tag := Index; FLabelList.Add(ALabel); - if Index = 7 then + if (Index and 7) = 7 then begin Y := 12; - X := 230; + Inc(X, 230); end else Inc(Y, 32); @@ -291,34 +333,67 @@ begin ALabel := FLabelList.Items[Index] as TLabel; case RegisterType of + rtYMM: + case Display of + pctBytes: + if ALabel.Tag >= Low(YMMRegister.Bytes) then + Value.ValueByte := YMMRegister.Bytes[ALabel.Tag] + else + Value.ValueByte := XMMRegister.Bytes[ALabel.Tag]; + pctWords: + if ALabel.Tag >= Low(YMMRegister.Words) then + Value.ValueWord := YMMRegister.Words[ALabel.Tag] + else + Value.ValueWord := XMMRegister.Words[ALabel.Tag]; + pctDWords: + if ALabel.Tag >= Low(YMMRegister.DWords) then + Value.ValueDWord := YMMRegister.DWords[ALabel.Tag] + else + Value.ValueDWord := XMMRegister.DWords[ALabel.Tag]; + pctQWords: + if ALabel.Tag >= Low(YMMRegister.QWords) then + Value.ValueQWord := YMMRegister.QWords[ALabel.Tag] + else + Value.ValueQWord := XMMRegister.QWords[ALabel.Tag]; + pctSingles: + if ALabel.Tag >= Low(YMMRegister.Singles) then + Value.ValueSingle := YMMRegister.Singles[ALabel.Tag] + else + Value.ValueSingle := XMMRegister.Singles[ALabel.Tag]; + pctDoubles: + if ALabel.Tag >= Low(YMMRegister.Doubles) then + Value.ValueDouble := YMMRegister.Doubles[ALabel.Tag] + else + Value.ValueDouble := XMMRegister.Doubles[ALabel.Tag]; + end; rtXMM: case Display of - xt16Bytes: + pctBytes: Value.ValueByte := XMMRegister.Bytes[ALabel.Tag]; - xt8Words: + pctWords: Value.ValueWord := XMMRegister.Words[ALabel.Tag]; - xt4DWords: + pctDWords: Value.ValueDWord := XMMRegister.DWords[ALabel.Tag]; - xt2QWords: + pctQWords: Value.ValueQWord := XMMRegister.QWords[ALabel.Tag]; - xt4Singles: + pctSingles: Value.ValueSingle := XMMRegister.Singles[ALabel.Tag]; - xt2Doubles: + pctDoubles: Value.ValueDouble := XMMRegister.Doubles[ALabel.Tag]; end; rtMM: case Display of - xt16Bytes: + pctBytes: Value.ValueByte := MMRegister.Bytes[ALabel.Tag]; - xt8Words: + pctWords: Value.ValueWord := MMRegister.Words[ALabel.Tag]; - xt4DWords: + pctDWords: Value.ValueDWord := MMRegister.DWords[ALabel.Tag]; - xt2QWords: + pctQWords: Value.ValueQWord := MMRegister.QWords; - xt4Singles: + pctSingles: Value.ValueSingle := MMRegister.Singles[ALabel.Tag]; - xt2Doubles: + pctDoubles: begin ALabel.Caption := ''; Break; @@ -332,7 +407,7 @@ procedure TJclSIMDModifyFrm.ComboBoxDisplayChange(Sender: TObject); begin try - FDisplay := TJclXMMContentType((Sender as TComboBox).ItemIndex); + FDisplay := TJclPackedContentType((Sender as TComboBox).ItemIndex); UpdateDisplay; except on ExceptionObj: TObject do @@ -427,48 +502,81 @@ ResultBuffer: array [0..ResultBufferSize-1] of Char; ResultAddr, ResultSize: Cardinal; CanModify: Boolean; - VectorFrame: TJclVectorFrame; + JclContext: TJclContext; begin if (FReturnCode <> 0) then EvaluateResult := erError else EvaluateResult := erOK; AValue.Display := Display; - GetVectorContext(Thread, VectorFrame); + GetThreadJclContext(Thread, JclContext); while (FTextIndex < FComboBoxList.Count) and (EvaluateResult = erOK) do begin if (FTextIndex >= 0) and (FResultStr <> '') then begin if (ParseValue(FResultStr,AValue,Format)) then case RegisterType of + rtYMM: + case AValue.Display of + pctBytes: + if FTextIndex >= Low(FYMMRegister.Bytes) then + FYMMRegister.Bytes[FTextIndex] := AValue.ValueByte + else + FXMMRegister.Bytes[FTextIndex] := AValue.ValueByte; + pctWords: + if FTextIndex >= Low(FYMMRegister.Words) then + FYMMRegister.Words[FTextIndex] := AValue.ValueWord + else + FXMMRegister.Words[FTextIndex] := AValue.ValueWord; + pctDWords: + if FTextIndex >= Low(FYMMRegister.DWords) then + FYMMRegister.DWords[FTextIndex] := AValue.ValueDWord + else + FXMMRegister.DWords[FTextIndex] := AValue.ValueDWord; + pctQWords: + if FTextIndex >= Low(FYMMRegister.QWords) then + FYMMRegister.QWords[FTextIndex] := AValue.ValueQWord + else + FXMMRegister.QWords[FTextIndex] := AValue.ValueQWord; + pctSingles: + if FTextIndex >= Low(FYMMRegister.Singles) then + FYMMRegister.Singles[FTextIndex] := AValue.ValueSingle + else + FXMMRegister.Singles[FTextIndex] := AValue.ValueSingle; + pctDoubles: + if FTextIndex >= Low(FYMMRegister.Doubles) then + FYMMRegister.Doubles[FTextIndex] := AValue.ValueDouble + else + FXMMRegister.Doubles[FTextIndex] := AValue.ValueDouble; + end; rtXMM: case AValue.Display of - xt16Bytes: + pctBytes: FXMMRegister.Bytes[FTextIndex] := AValue.ValueByte; - xt8Words: + pctWords: FXMMRegister.Words[FTextIndex] := AValue.ValueWord; - xt4DWords: + pctDWords: FXMMRegister.DWords[FTextIndex] := AValue.ValueDWord; - xt2QWords: + pctQWords: FXMMRegister.QWords[FTextIndex] := AValue.ValueQWord; - xt4Singles: + pctSingles: FXMMRegister.Singles[FTextIndex] := AValue.ValueSingle; - xt2Doubles: + pctDoubles: FXMMRegister.Doubles[FTextIndex] := AValue.ValueDouble; end; rtMM: case AValue.Display of - xt16Bytes: + pctBytes: FMMRegister.Bytes[FTextIndex] := AValue.ValueByte; - xt8Words: + pctWords: FMMRegister.Words[FTextIndex] := AValue.ValueWord; - xt4DWords: + pctDWords: FMMRegister.DWords[FTextIndex] := AValue.ValueDWord; - xt2QWords: + pctQWords: FMMRegister.QWords := AValue.ValueQWord; - xt4Singles: + pctSingles: FMMRegister.Singles[FTextIndex] := AValue.ValueSingle; - xt2Doubles: + pctDoubles: EvaluateResult := erError; end; else @@ -488,7 +596,7 @@ begin if not ParseValue(FExprStr, AValue, Format) then begin - if ReplaceSIMDRegisters(FExprStr, FCPUInfo.Is64Bits, VectorFrame) then + if ReplaceSIMDRegisters(FExprStr, FCPUInfo.Is64Bits, FYMMEnabled, JclContext) then EvaluateResult := Thread.Evaluate(FExprStr, ResultBuffer, ResultBufferSize, CanModify, True, '', ResultAddr, ResultSize, FReturnCode) else Modified: trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas 2009-07-16 07:59:40 UTC (rev 2865) +++ trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas 2009-07-16 17:39:25 UTC (rev 2866) @@ -78,21 +78,21 @@ TJclFPURegisters = array [0..7] of TJclFPURegister; - TJclXMMContentType = (xt16Bytes, xt8Words, xt4DWords, xt2QWords, xt4Singles, xt2Doubles); + TJclPackedContentType = (pctBytes, pctWords, pctDWords, pctQWords, pctSingles, pctDoubles); TJclXMMRegister = packed record - case TJclXMMContentType of - xt16Bytes: + case TJclPackedContentType of + pctBytes: (Bytes: array [0..15] of Byte;); - xt8Words: + pctWords: (Words: array [0..7] of Word;); - xt4DWords: + pctDWords: (DWords: array [0..3] of Cardinal;); - xt2QWords: + pctQWords: (QWords: array [0..1] of Int64;); - xt4Singles: + pctSingles: (Singles: array [0..3] of Single;); - xt2Doubles: + pctDoubles: (Doubles: array [0..1] of Double;); end; @@ -128,14 +128,52 @@ MXCSRMask: Cardinal; // bytes from 28 to 31 FPURegisters: TJclFPURegisters; // bytes from 32 to 159 XMMRegisters: TJclXMMRegisters; // bytes from 160 to 415 - Reserved4: array [416..511] of Byte; // bytes from 416 to 512 + Reserved4: array [416..511] of Byte; // bytes from 416 to 511 end; + // upper 128-bit of YMM registers (lower 128 bits are aliased to XMM registers) + TJclYMMRegister = packed record + case TJclPackedContentType of + pctBytes: + (Bytes: array [16..31] of Byte;); + pctWords: + (Words: array [8..15] of Word;); + pctDWords: + (DWords: array [4..7] of Cardinal;); + pctQWords: + (QWords: array [2..3] of Int64;); + pctSingles: + (Singles: array [4..7] of Single;); + pctDoubles: + (Doubles: array [2..3] of Double;); + end; + + TJclXStateHeader = packed record + XState_BV: Int64; + Reserved: array [0..55] of Byte; + end; + + TJclExtSaveArea2 = packed record + case TJclProcessorSize of + ps32Bits: + (LegacyYMM: array [0..7] of TJclYMMRegister; + LegacyReserved: array [0..127] of Byte;); + ps64Bits: + (LongYMM: array [0..15] of TJclYMMRegister;); + end; + PJclExtSaveArea2 = ^TJclExtSaveArea2; + + TJclXStateContext = packed record + // vector context + SaveArea: TJclVectorFrame; // bytes 0 to 511 + Header: TJclXStateHeader; // bytes 512 to 575 + ExtSaveArea2: TJclExtSaveArea2; // bytes 576 to 831 + end; + TJclContext = packed record ScalarContext: Windows.TContext; - VectorContext: TJclVectorFrame; + ExtendedContext: TJclXStateContext; end; - PJclContext = ^TJclContext; TBitDescription = record @@ -169,18 +207,18 @@ type TJclSIMDValue = packed record - case Display: TJclXMMContentType of - xt16Bytes: + case Display: TJclPackedContentType of + pctBytes: (ValueByte: Byte;); - xt8Words: + pctWords: (ValueWord: Word;); - xt4DWords: + pctDWords: (ValueDWord: Cardinal;); - xt2QWords: + pctQWords: (ValueQWord: Int64;); - xt4Singles: + pctSingles: (ValueSingle: Single;); - xt2Doubles: + pctDoubles: (ValueDouble: Double;); end; @@ -189,22 +227,13 @@ function FormatValue(Value: TJclSIMDValue; Format: TJclSIMDFormat): string; function ParseValue(const StringValue: string; var Value: TJclSIMDValue; Format: TJclSIMDFormat): Boolean; -function ReplaceSIMDRegisters(var Expression: string; Is64Bits: Boolean; - var VectorFrame: TJclVectorFrame): Boolean; +function ReplaceSIMDRegisters(var Expression: string; Is64Bits, YMMEnabled: Boolean; + var JclContext: TJclContext): Boolean; -const - CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 or $00000020; - -// return the processor frame for the specified thread, this thread must be suspended -function GetThreadContext(hThread: THandle; var lpContext: TJclContext): BOOL; stdcall; - -// set the processor frame for the specified thread, this thread must be suspended -function SetThreadContext(hThread: THandle; const lpContext: TJclContext): BOOL; stdcall; - // return the XMM registers for the specified thread, this thread must be suspended -function GetVectorContext(AThread: IOTAThread; out VectorContext: TJclVectorFrame): Boolean; +function GetThreadJclContext(AThread: IOTAThread; out JclContext: TJclContext): Boolean; // return the XMM registers for the specified thread, this thread must be suspended -function SetVectorContext(AThread: IOTAThread; const VectorContext: TJclVectorFrame): Boolean; +function SetThreadJclContext(AThread: IOTAThread; const JclContext: TJclContext): Boolean; {$IFDEF UNITVERSIONING} const @@ -221,18 +250,19 @@ uses SysUtils, Math, JclStrings, + JclWin32, JclOtaUtils; function FormatBinary(Value: TJclSIMDValue): string; var I: Byte; const - Width: array [xt16Bytes..xt2QWords] of Byte = (8, 16, 32, 64); + Width: array [pctBytes..pctQWords] of Byte = (8, 16, 32, 64); begin - if not (Value.Display in [xt16Bytes, xt8Words, xt4DWords, XT2QWords]) then + if not (Value.Display in [pctBytes, pctWords, pctDWords, pctQWords]) then raise EJclExpertException.CreateTrace(RsEBadRegisterDisplay); - Assert(Value.Display < xt4Singles); + Assert(Value.Display < pctSingles); Result := StringOfChar('0', Width[Value.Display]); for I := 1 to Width[Value.Display] do begin @@ -244,19 +274,19 @@ function FormatSigned(Value: TJclSIMDValue): string; const - Width: array [xt16Bytes..xt2QWords] of Byte = (4, 6, 11, 20); + Width: array [pctBytes..pctQWords] of Byte = (4, 6, 11, 20); begin - if not (Value.Display in [xt16Bytes, xt8Words, xt4DWords, XT2QWords]) then + if not (Value.Display in [pctBytes, pctWords, pctDWords, pctQWords]) then raise EJclExpertException.CreateTrace(RsEBadRegisterDisplay); case Value.Display of - xt16Bytes: + pctBytes: Result := IntToStr(Shortint(Value.ValueByte)); - xt8Words: + pctWords: Result := IntToStr(Smallint(Value.ValueWord)); - xt4DWords: + pctDWords: Result := IntToStr(Integer(Value.ValueDWord)); - xt2QWords: + pctQWords: Result := IntToStr(Value.ValueQWord); else Result := ''; @@ -267,19 +297,19 @@ function FormatUnsigned(Value: TJclSIMDValue): string; const - Width: array [xt16Bytes..xt2QWords] of Byte = (3, 5, 10, 20); + Width: array [pctBytes..pctQWords] of Byte = (3, 5, 10, 20); begin - if not (Value.Display in [xt16Bytes, xt8Words, xt4DWords, XT2QWords]) then + if not (Value.Display in [pctBytes, pctWords, pctDWords, pctQWords]) then raise EJclExpertException.CreateTrace(RsEBadRegisterDisplay); case Value.Display of - xt16Bytes: + pctBytes: Result := IntToStr(Byte(Value.ValueByte)); - xt8Words: + pctWords: Result := IntToStr(Word(Value.ValueWord)); - xt4DWords: + pctDWords: Result := IntToStr(Cardinal(Value.ValueDWord)); - xt2QWords: + pctQWords: Result := IntToStr(Value.ValueQWord); else Result := ''; @@ -290,20 +320,20 @@ function FormatHexa(Value: TJclSIMDValue): string; const - Width: array [xt16Bytes..xt2QWords] of Byte = (2, 4, 8, 16); + Width: array [pctBytes..pctQWords] of Byte = (2, 4, 8, 16); begin - if not (Value.Display in [xt16Bytes, xt8Words, xt4DWords, XT2QWords]) then + if not (Value.Display in [pctBytes, pctWords, pctDWords, pctQWords]) then raise EJclExpertException.CreateTrace(RsEBadRegisterDisplay); case Value.Display of - xt16Bytes: - Result := IntToHex(Value.ValueByte, Width[xt16Bytes]); - xt8Words: - Result := IntToHex(Value.ValueWord, Width[xt8Words]); - xt4DWords: - Result := IntToHex(Value.ValueDWord, Width[xt4DWords]); - xt2QWords: - Result := IntToHex(Value.ValueQWord, Width[xt2QWords]); + pctBytes: + Result := IntToHex(Value.ValueByte, Width[pctBytes]); + pctWords: + Result := IntToHex(Value.ValueWord, Width[pctWords]); + pctDWords: + Result := IntToHex(Value.ValueDWord, Width[pctDWords]); + pctQWords: + Result := IntToHex(Value.ValueQWord, Width[pctQWords]); else Result := ''; end; @@ -311,13 +341,13 @@ function FormatFloat(Value: TJclSIMDValue): string; begin - if not (Value.Display in [xt4Singles, xt2Doubles]) then + if not (Value.Display in [pctSingles, pctDoubles]) then raise EJclExpertException.CreateTrace(RsEBadRegisterDisplay); case Value.Display of - xt4Singles: + pctSingles: Result := FloatToStr(Value.ValueSingle); - xt2Doubles: + pctDoubles: Result := FloatToStr(Value.ValueDouble); else Result := ''; @@ -345,9 +375,9 @@ Exit; end; case Value.Display of - xt16Bytes..xt2QWords: + pctBytes..pctQWords: Result := FormatFunction(Value); - xt4Singles..xt2Doubles: + pctSingles..pctDoubles: Result := FormatFloat(Value); end; end; @@ -375,22 +405,22 @@ end; Result := True; case Value.Display of - xt16Bytes: + pctBytes: if (TestValue >= Byte($00)) and (TestValue <= Byte($FF)) then Value.ValueByte := TestValue else Result := False; - xt8Words: + pctWords: if (TestValue >= Word($0000)) and (TestValue <= Word($FFFF)) then Value.ValueWord := TestValue else Result := False; - xt4DWords: + pctDWords: if (TestValue >= Cardinal($00000000)) and (TestValue <= Cardinal($FFFFFFFF)) then Value.ValueDWord := TestValue else Result := False; - xt2QWords: + pctQWords: Value.ValueQWord := TestValue; else Result := False; @@ -406,22 +436,22 @@ Result := ErrorCode = 0; if Result then case Value.Display of - xt16Bytes: + pctBytes: if (TestValue >= Shortint($80)) and (TestValue <= Shortint($7F)) then Value.ValueByte := TestValue else Result := False; - xt8Words: + pctWords: if (TestValue >= Smallint($8000)) and (TestValue <= Smallint($7FFF)) then Value.ValueWord := TestValue else Result := False; - xt4DWords: + pctDWords: if (TestValue >= Integer($80000000)) and (TestValue <= Integer($7FFFFFFF)) then Value.ValueDWord := TestValue else Result := False; - xt2QWords: + pctQWords: Value.ValueQWord := TestValue; else Result := False; @@ -437,22 +467,22 @@ Result := ErrorCode = 0; if Result then case Value.Display of - xt16Bytes: + pctBytes: if (TestValue >= Byte($00)) and (TestValue <= Byte($FF)) then Value.ValueByte := TestValue else Result := False; - xt8Words: + pctWords: if (TestValue >= Word($0000)) and (TestValue <= Word($FFFF)) then Value.ValueWord := TestValue else Result := False; - xt4DWords: + pctDWords: if (TestValue >= Cardinal($00000000)) and (TestValue <= Cardinal($FFFFFFFF)) then Value.ValueDWord := TestValue else Result := False; - xt2QWords: + pctQWords: Value.ValueQWord := TestValue; else Result := False; @@ -486,22 +516,22 @@ end; Result := True; case Value.Display of - xt16Bytes: + pctBytes: if (TestValue >= Byte($00)) and (TestValue <= Byte($FF)) then Value.ValueByte := TestValue else Result := False; - xt8Words: + pctWords: if (TestValue >= Word($0000)) and (TestValue <= Word($FFFF)) then Value.ValueWord := TestValue else Result := False; - xt4DWords: + pctDWords: if (TestValue >= Cardinal($00000000)) and (TestValue <= Cardinal($FFFFFFFF)) then Value.ValueDWord := TestValue else Result := False; - xt2QWords: + pctQWords: Value.ValueQWord := TestValue; else Result := False; @@ -519,12 +549,12 @@ Result := ErrorCode = 0; if Result then case Value.Display of - xt4Singles: + pctSingles: if (TestValue >= -MaxSingle) and (TestValue <= MaxSingle) then Value.ValueSingle := TestValue else Result := False; - xt2Doubles: + pctDoubles: if (TestValue >= MaxDouble) and (TestValue <= MaxDouble) then Value.ValueDouble := TestValue else @@ -555,15 +585,15 @@ Exit; end; case Value.Display of - xt16Bytes..xt2QWords: + pctBytes..pctQWords: Result := ParseFunction(StringValue, Value); - xt4Singles..xt2Doubles: + pctSingles..pctDoubles: Result := ParseFloat(StringValue, Value); end; end; -function ReplaceSIMDRegisters(var Expression: string; Is64Bits: Boolean; - var VectorFrame: TJclVectorFrame): Boolean; +function ReplaceSIMDRegisters(var Expression: string; Is64Bits, YMMEnabled: Boolean; + var JclContext: TJclContext): Boolean; var LocalString: string; RegisterPosition: Integer; @@ -577,6 +607,7 @@ AValue: TJclSIMDValue; ValueStr: string; OldLength: Integer; + XMMMatch: Boolean; begin if Is64Bits then NumberOfXMMRegister := 16 @@ -585,7 +616,12 @@ Result := False; LocalString := AnsiUpperCase(Expression); + XMMMatch := False; RegisterPosition := AnsiPos('XMM', LocalString); + if YMMEnabled and (RegisterPosition = 0) then + RegisterPosition := AnsiPos('YMM', LocalString) + else + XMMMatch := True; while (RegisterPosition > 0) do begin for Index := RegisterPosition to Length(LocalString) do @@ -617,50 +653,80 @@ if CompareStr(DataType, 'BYTE') = 0 then begin - if DataIndex >= 16 then - Exit; - AValue.Display := xt16Bytes; - AValue.ValueByte := VectorFrame.XMMRegisters.LongXMM[RegisterIndex].Bytes[DataIndex]; + AValue.Display := pctBytes; + if DataIndex >= Low(JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].Bytes) then + begin + if XMMMatch then + Exit; + AValue.ValueByte := JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].Bytes[DataIndex]; + end + else + AValue.ValueByte := JclContext.ExtendedContext.SaveArea.XMMRegisters.LongXMM[RegisterIndex].Bytes[DataIndex]; end else if CompareStr(DataType, 'WORD') = 0 then begin - if DataIndex >= 8 then - Exit; - AValue.Display := xt8Words; - AValue.ValueWord := VectorFrame.XMMRegisters.LongXMM[RegisterIndex].Words[DataIndex]; + AValue.Display := pctWords; + if DataIndex >= Low(JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].Words) then + begin + if XMMMatch then + Exit; + AValue.ValueWord := JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].Words[DataIndex]; + end + else + AValue.ValueWord := JclContext.ExtendedContext.SaveArea.XMMRegisters.LongXMM[RegisterIndex].Words[DataIndex]; end else if CompareStr(DataType, 'DWORD') = 0 then begin - if DataIndex >= 4 then - Exit; - AValue.Display := xt4DWords; - AValue.ValueDWord := VectorFrame.XMMRegisters.LongXMM[RegisterIndex].DWords[DataIndex]; + AValue.Display := pctDWords; + if DataIndex >= Low(JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].DWords) then + begin + if XMMMatch then + Exit; + AValue.ValueDWord := JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].DWords[DataIndex]; + end + else + AValue.ValueDWord := JclContext.ExtendedContext.SaveArea.XMMRegisters.LongXMM[RegisterIndex].DWords[DataIndex]; end else if CompareStr(DataType, 'QWORD') = 0 then begin - if DataIndex >= 2 then - Exit; - AValue.Display := xt2QWords; - AValue.ValueQWord := VectorFrame.XMMRegisters.LongXMM[RegisterIndex].QWords[DataIndex]; + AValue.Display := pctQWords; + if DataIndex >= Low(JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].QWords) then + begin + if XMMMatch then + Exit; + AValue.ValueQWord := JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].QWords[DataIndex]; + end + else + AValue.ValueQWord := JclContext.ExtendedContext.SaveArea.XMMRegisters.LongXMM[RegisterIndex].QWords[DataIndex]; end else if CompareStr(DataType, 'SINGLE') = 0 then begin - if DataIndex >= 4 then - Exit; - AValue.Display := xt4Singles; - AValue.ValueSingle := VectorFrame.XMMRegisters.LongXMM[RegisterIndex].Singles[DataIndex]; + AValue.Display := pctSingles; + if DataIndex >= Low(JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].Singles) then + begin + if XMMMatch then + Exit; + AValue.ValueSingle := JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].Singles[DataIndex]; + end + else + AValue.ValueSingle := JclContext.ExtendedContext.SaveArea.XMMRegisters.LongXMM[RegisterIndex].Singles[DataIndex]; end else if CompareStr(DataType, 'DOUBLE') = 0 then begin - if DataIndex >= 2 then - Exit; - AValue.Display := xt2Doubles; - AValue.ValueDouble := VectorFrame.XMMRegisters.LongXMM[RegisterIndex].Doubles[DataIndex]; + AValue.Display := pctDoubles; + if DataIndex >= Low(JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].Doubles) then + begin + if XMMMatch then + Exit; + AValue.ValueDouble := JclContext.ExtendedContext.ExtSaveArea2.LongYMM[RegisterIndex].Doubles[DataIndex]; + end + else + AValue.ValueDouble := JclContext.ExtendedContext.SaveArea.XMMRegisters.LongXMM[RegisterIndex].Doubles[DataIndex]; end else Exit; @@ -682,7 +748,12 @@ SetLength(Expression, Length(Expression) + Length(ValueStr) - (Index - RegisterPosition)); end; LocalString := AnsiUpperCase(Expression); + XMMMatch := False; RegisterPosition := AnsiPos('XMM', LocalString); + if YMMEnabled and (RegisterPosition = 0) then + RegisterPosition := AnsiPos('YMM', LocalString) + else + XMMMatch := True; end; RegisterPosition := AnsiPos('MM', LocalString); @@ -719,40 +790,40 @@ begin if DataIndex >= 8 then Exit; - AValue.Display := xt16Bytes; - AValue.ValueByte := VectorFrame.FPURegisters[RegisterIndex].Data.MMRegister.Bytes[DataIndex]; + AValue.Display := pctBytes; + AValue.ValueByte := JclContext.ExtendedContext.SaveArea.FPURegisters[RegisterIndex].Data.MMRegister.Bytes[DataIndex]; end else if CompareStr(DataType, 'WORD') = 0 then begin if DataIndex >= 4 then Exit; - AValue.Display := xt8Words; - AValue.ValueWord := VectorFrame.FPURegisters[RegisterIndex].Data.MMRegister.Words[DataIndex]; + AValue.Display := pctWords; + AValue.ValueWord := JclContext.ExtendedContext.SaveArea.FPURegisters[RegisterIndex].Data.MMRegister.Words[DataIndex]; end else if CompareStr(DataType, 'DWORD') = 0 then begin if DataIndex >= 2 then Exit; - AValue.Display := xt4DWords; - AValue.ValueDWord := VectorFrame.FPURegisters[RegisterIndex].Data.MMRegister.DWords[DataIndex]; + AValue.Display := pctDWords; + AValue.ValueDWord := JclContext.ExtendedContext.SaveArea.FPURegisters[RegisterIndex].Data.MMRegister.DWords[DataIndex]; end else if CompareStr(DataType, 'QWORD') = 0 then begin if DataIndex >= 1 then Exit; - AValue.Display := xt2QWords; - AValue.ValueQWord := VectorFrame.FPURegisters[RegisterIndex].Data.MMRegister.QWords; + AValue.Display := pctQWords; + AValue.ValueQWord := JclContext.ExtendedContext.SaveArea.FPURegisters[RegisterIndex].Data.MMRegister.QWords; end else if CompareStr(DataType, 'SINGLE') = 0 then begin if DataIndex >= 2 then Exit; - AValue.Display := xt4Singles; - AValue.ValueSingle := VectorFrame.FPURegisters[RegisterIndex].Data.MMRegister.Singles[DataIndex]; + AValue.Display := pctSingles; + AValue.ValueSingle := JclContext.ExtendedContext.SaveArea.FPURegisters[RegisterIndex].Data.MMRegister.Singles[DataIndex]; end else Exit; @@ -780,127 +851,190 @@ Result := True; end; -function GetThreadContext(hThread: THandle; - var lpContext: TJclContext): BOOL; stdcall; external kernel32 name 'GetThreadContext'; +// return the processor frame for the specified thread, this thread must be suspended +function GetThreadContext(hThread: THandle; lpContext: Pointer): BOOL; stdcall; external kernel32 name 'GetThreadContext'; -function SetThreadContext(hThread: THandle; - const lpContext: TJclContext): BOOL; stdcall; external kernel32 name 'SetThreadContext'; +// set the processor frame for the specified thread, this thread must be suspended +function SetThreadContext(hThread: THandle; lpContext: Pointer): BOOL; stdcall; external kernel32 name 'SetThreadContext'; -function GetVectorContext(AThread: IOTAThread; out VectorContext: TJclVectorFrame): Boolean; -{$IFDEF COMPILER9_UP} +function GetThreadJclContext(AThread: IOTAThread; out JclContext: TJclContext): Boolean; var + {$IFDEF COMPILER9_UP} OTAXMMRegs: TOTAXMMRegs; OTAThreadContext: TOTAThreadContext; + {$ELSE ~COMPILER9_UP} + ContextMemory: Pointer; + AlignedContext: PJclContext; + {$ENDIF ~COMPILER9_UP} + ExtendedContextLength: DWORD; + ExtendedContextMemory: Pointer; + ExtendedContext: PCONTEXT_EX; + LegacyContext: PContext; + AVXContext: PJclExtSaveArea2; begin - Result := AThread.GetOTAXMMRegisters(OTAXMMRegs); + // get YMM registers + if oefAVX in GetOSEnabledFeatures then + begin + // allocate enough memory to get this extended context + Result := GetExtendedContextLength(CONTEXT_XSTATE, @ExtendedContextLength); + if Result then + begin + GetMem(ExtendedContextMemory, ExtendedContextLength); + try + Result := InitializeExtendedContext(ExtendedContextMemory, CONTEXT_XSTATE, ExtendedContext); + if Result then + begin + // find usefull part locations in this extended context + LegacyContext := LocateLegacyContext(ExtendedContext, nil); + AVXContext := LocateExtendedFeature(ExtendedContext, XSTATE_GSSE, nil); + // get the context + Result := GetThreadContext(AThread.Handle, LegacyContext) and + ((LegacyContext.ContextFlags and CONTEXT_XSTATE) <> 0); + if Result then + // copy the data + JclContext.ExtendedContext.ExtSaveArea2 := AVXContext^ + else + FillChar(JclContext.ExtendedContext.ExtSaveArea2, SizeOf(JclContext.ExtendedContext.ExtSaveArea2), 0); + end; + finally + FreeMem(ExtendedContextMemory); + end; + end; + end + else + begin + Result := True; + FillChar(JclContext.ExtendedContext.ExtSaveArea2, SizeOf(JclContext.ExtendedContext.ExtSaveArea2), 0); + end; + {$IFDEF COMPILER9_UP} + // get XMM registers if Result then + Result := AThread.GetOTAXMMRegisters(OTAXMMRegs); + if Result then begin - VectorContext.MXCSR := OTAXMMRegs.MXCSR; - VectorContext.MXCSRMask := $FFFFFFFF; - Move(OTAXMMRegs,VectorContext.XMMRegisters, SizeOf(TOTAXMMReg) * 8); + // get other registers + JclContext.ExtendedContext.SaveArea.MXCSR := OTAXMMRegs.MXCSR; + JclContext.ExtendedContext.SaveArea.MXCSRMask := $FFFFFFFF; + Move(OTAXMMRegs,JclContext.ExtendedContext.SaveArea.XMMRegisters, SizeOf(TOTAXMMReg) * 8); OTAThreadContext := AThread.OTAThreadContext; - VectorContext.FCW := OTAThreadContext.FloatSave.ControlWord; - VectorContext.FSW := OTAThreadContext.FloatSave.StatusWord; - VectorContext.FTW := OTAThreadContext.FloatSave.TagWord; - Move(OTAThreadContext.FloatSave.RegisterArea[00],VectorContext.FPURegisters[0],SizeOf(Extended)); - Move(OTAThreadContext.FloatSave.RegisterArea[10],VectorContext.FPURegisters[1],SizeOf(Extended)); - Move(OTAThreadContext.FloatSave.RegisterArea[20],VectorContext.FPURegisters[2],SizeOf(Extended)); - Move(OTAThreadContext.FloatSave.RegisterArea[30],VectorContext.FPURegisters[3],SizeOf(Extended)); - Move(OTAThreadContext.FloatSave.RegisterArea[40],VectorContext.FPURegisters[4],SizeOf(Extended)); - Move(OTAThreadContext.FloatSave.RegisterArea[50],VectorContext.FPURegisters[5],SizeOf(Extended)); - Move(OTAThreadContext.FloatSave.RegisterArea[60],VectorContext.FPURegisters[6],SizeOf(Extended)); - Move(OTAThreadContext.FloatSave.RegisterArea[70],VectorContext.FPURegisters[7],SizeOf(Extended)); + JclContext.ExtendedContext.SaveArea.FCW := OTAThreadContext.FloatSave.ControlWord; + JclContext.ExtendedContext.SaveArea.FSW := OTAThreadContext.FloatSave.StatusWord; + JclContext.ExtendedContext.SaveArea.FTW := OTAThreadContext.FloatSave.TagWord; + Move(OTAThreadContext.FloatSave.RegisterArea[00],JclContext.ExtendedContext.SaveArea.FPURegisters[0],SizeOf(Extended)); + Move(OTAThreadContext.FloatSave.RegisterArea[10],JclContext.ExtendedContext.SaveArea.FPURegisters[1],SizeOf(Extended)); + Move(OTAThreadContext.FloatSave.RegisterArea[20],JclContext.ExtendedContext.SaveArea.FPURegisters[2],SizeOf(Extended)); + Move(OTAThreadContext.FloatSave.RegisterArea[30],JclContext.ExtendedContext.SaveArea.FPURegisters[3],SizeOf(Extended)); + Move(OTAThreadContext.FloatSave.RegisterArea[40],JclContext.ExtendedContext.SaveArea.FPURegisters[4],SizeOf(Extended)); + Move(OTAThreadContext.FloatSave.RegisterArea[50],JclContext.ExtendedContext.SaveArea.FPURegisters[5],SizeOf(Extended)); + Move(OTAThreadContext.FloatSave.RegisterArea[60],JclContext.ExtendedContext.SaveArea.FPURegisters[6],SizeOf(Extended)); + Move(OTAThreadContext.FloatSave.RegisterArea[70],JclContext.ExtendedContext.SaveArea.FPURegisters[7],SizeOf(Extended)); end; -end; -{$ELSE COMPILER9_UP} -var - ContextMemory: Pointer; - JclContext: PJclContext; -begin - GetMem(ContextMemory, SizeOf(TJclContext) + 15); - try - if (Cardinal(ContextMemory) and 15) <> 0 then - JclContext := PJclContext((Cardinal(ContextMemory) + 16) and $FFFFFFF0) - else - JclContext := ContextMemory; - JclContext^.ScalarContext.ContextFlags := CONTEXT_EXTENDED_REGISTERS; - Result := GetThreadContext(AThread.Handle,JclContext^) and - ((JclContext^.ScalarContext.ContextFlags and CONTEXT_EXTENDED_REGISTERS)<>0); - if Result then - VectorContext := JclContext^.VectorContext - else - FillChar(VectorContext, SizeOf(VectorContext), 0); - finally - FreeMem(ContextMemory); + {$ELSE COMPILER9_UP} + // get XMM registers + if Result then + begin + GetMem(ContextMemory, SizeOf(TJclContext) + 15); + try + if (Cardinal(ContextMemory) and 15) <> 0 then + AlignedContext := PJclContext((Cardinal(ContextMemory) + 16) and $FFFFFFF0) + else + AlignedContext := ContextMemory; + AlignedContext^.ScalarContext.ContextFlags := CONTEXT_EXTENDED_REGISTERS; + Result := GetThreadContext(AThread.Handle,AlignedContext) and + ((AlignedContext^.ScalarContext.ContextFlags and CONTEXT_EXTENDED_REGISTERS)<>0); + FillChar(AlignedContext.ExtendedContext.ExtSaveArea2, SizeOf(AlignedContext.ExtendedContext.ExtSaveArea2), 0); + if Result then + JclContext := AlignedContext^ + else + FillChar(JclContext, SizeOf(JclContext), 0); + finally + FreeMem(ContextMemory); + end; end; + {$ENDIF COMPILER9_UP} end; -{$ENDIF COMPILER9_UP} -function SetVectorContext(AThread: IOTAThread; const VectorContext: TJclVectorFrame): Boolean; -{$IFDEF COMPILER9_UP} +function SetThreadJclContext(AThread: IOTAThread; const JclContext: TJclContext): Boolean; var + {$IFDEF COMPILER9_UP} OTAXMMRegs: TOTAXMMRegs; -begin - Result := True; - try - OTAXMMRegs.MXCSR := VectorContext.MXCSR; - Move(VectorContext.XMMRegisters,OTAXMMRegs,SizeOf(TOTAXMMReg) * 8); - AThread.SetOTAXMMRegisters(OTAXMMRegs); - except - Result := False; - end; -end; -{$ELSE COMPILER9_UP} -// MM registers can not saved (changes are overriden by the Borland's debugger) -{const - CONTEXT_FLAGS = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS - or CONTEXT_FLOATING_POINT or CONTEXT_EXTENDED_REGISTERS; -var + {$ELSE ~COMPILER9_UP} ContextMemory: Pointer; - JclContext: PJclContext; - Index: Integer; + AlignedContext: PJclContext; + {$ENDIF ~COMPILER9_UP} + ExtendedContextLength: DWORD; + ExtendedContextMemory: Pointer; + ExtendedContext: PCONTEXT_EX; + LegacyContext: PContext; + AVXContext: PJclExtSaveArea2; begin - GetMem(ContextMemory,SizeOf(TJclContext)+15); - try - if ((Cardinal(ContextMemory) and 15)<>0) then - JclContext := PJclContext((Cardinal(ContextMemory)+16) and $FFFFFFF0) - else - JclContext := ContextMemory; - JclContext^.ScalarContext.ContextFlags := CONTEXT_FLAGS; - Result := GetThreadContext(hThread,JclContext^) and - ((JclContext^.ScalarContext.ContextFlags and CONTEXT_FLAGS) = CONTEXT_FLAGS); - if (Result) then + // save YMM registers + if oefAVX in GetOSEnabledFeatures then + begin + // allocate enough memory to get this extended context + Result := GetExtendedContextLength(CONTEXT_XSTATE, @ExtendedContextLength); + if Result then begin - JclContext^.ScalarContext.ContextFlags := CONTEXT_FLAGS; - JclContext^.VectorContext := VectorContext; - for Index := 0 to 7 do - Move(VectorContext.FPURegisters[Index].Data.FloatValue,JclContext^.ScalarContext.FloatSave.RegisterArea[Index*SizeOf(Extended)],SizeOf(Extended)); - Result := SetThreadContext(hThread,JclContext^); + GetMem(ExtendedContextMemory, ExtendedContextLength); + try + Result := InitializeExtendedContext(ExtendedContextMemory, CONTEXT_XSTATE, ExtendedContext); + if Result then + begin + // find usefull part locations in this extended context + LegacyContext := LocateLegacyContext(ExtendedContext, nil); + AVXContext := LocateExtendedFeature(ExtendedContext, XSTATE_GSSE, nil); + // get the context + Result := GetThreadContext(AThread.Handle, LegacyContext) and + ((LegacyContext.ContextFlags and CONTEXT_XSTATE) <> 0); + if Result then + begin + // copy the data + AVXContext^ := JclContext.ExtendedContext.ExtSaveArea2; + // set the context + Result := SetThreadContext(AThread.Handle, LegacyContext); + end; + end; + finally + FreeMem(ExtendedContextMemory); + end; end; - finally - FreeMem(ContextMemory); + end + else + Result := True; + {$IFDEF COMPILER9_UP} + if Result then + begin + try + // save XMM registers + OTAXMMRegs.MXCSR := JclContext.ExtendedContext.SaveArea.MXCSR; + Move(JclContext.ExtendedContext.SaveArea.XMMRegisters,OTAXMMRegs,SizeOf(TOTAXMMReg) * 8); + AThread.SetOTAXMMRegisters(OTAXMMRegs); + except + Result := False; + end; end; -end;} -var - ContextMemory: Pointer; - JclContext: PJclContext; -begin - GetMem(ContextMemory, SizeOf(TJclContext) + 15); - try - if (Cardinal(ContextMemory) and 15) <> 0 then - JclContext := PJclContext((Cardinal(ContextMemory) + 16) and $FFFFFFF0) - else - JclContext := ContextMemory; - JclContext^.ScalarContext.ContextFlags := CONTEXT_EXTENDED_REGISTERS; - Result := GetThreadContext(AThread.Handle,JclContext^) and - ((JclContext^.ScalarContext.ContextFlags and CONTEXT_EXTENDED_REGISTERS) = CONTEXT_EXTENDED_REGISTERS); - if Result then - Result := SetThreadContext(AThread.Handle,JclContext^); - finally - FreeMem(ContextMemory); + {$ELSE ~COMPILER9_UP} + if Result then + begin + GetMem(ContextMemory, SizeOf(TJclContext) + 15); + try + if (Cardinal(ContextMemory) and 15) <> 0 then + AlignedContext := PJclContext((Cardinal(ContextMemory) + 16) and $FFFFFFF0) + else + AlignedContext := ContextMemory; + AlignedContext^.ScalarContext.ContextFlags := CONTEXT_EXTENDED_REGISTERS; + Result := GetThreadContext(AThread.Handle,AlignedContext) and + ((AlignedContext^.ScalarContext.ContextFlags and CONTEXT_EXTENDED_REGISTERS) = CONTEXT_EXTENDED_REGISTERS); + AlignedContext^ := JclContext; + if Result then + Result := SetThreadContext(AThread.Handle,AlignedContext); + // TODO set the YMM registers + finally + FreeMem(ContextMemory); + end; end; + {$ENDIF COMPILER9_UP} end; -{$ENDIF COMPILER9_UP} {$IFDEF UNITVERSIONING} initialization Modified: trunk/jcl/experts/debug/simdview/JclSIMDViewForm.dfm =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDViewForm.dfm 2009-07-16 07:59:40 UTC (rev 2865) +++ trunk/jcl/experts/debug/simdview/JclSIMDViewForm.dfm 2009-07-16 17:39:25 UTC (rev 2866) @@ -133,6 +133,9 @@ object MenuItemEmptyAll: TMenuItem Action = ActionEmptyAll end + object MenuItemYMMEnabled: TMenuItem + Action = ActionYMMEnabled + end object MenuItemSeparator2: TMenuItem Caption = '-' end @@ -180,5 +183,10 @@ OnExecute = ActionEmptyAllExecute OnUpdate = ActionEmptyAllUpdate end + object ActionYMMEnabled: TAction + Caption = 'View &YMM registers' + OnExecute = ActionYMMEnabledExecute + OnUpdate = ActionYMMEnabledUpdate + end end end Modified: trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas 2009-07-16 07:59:40 UTC (rev 2865) +++ trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas 2009-07-16 17:39:25 UTC (rev 2866) @@ -76,6 +76,8 @@ ActionEmptyAll: TAction; MenuItemEmptyMM: TMenuItem; MenuItemEmptyAll: TMenuItem; + ActionYMMEnabled: TAction; + MenuItemYMMEnabled: TMenuItem; procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); procedure ListBoxMXCSRDrawItem(Control: TWinControl; Index: Integer; @@ -99,24 +101,28 @@ procedure ActionEmptyAllExecute(Sender: TObject); procedure ListBoxesMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); + procedure ActionYMMEnabledUpdate(Sender: TObject); + procedure ActionYMMEnabledExecute(Sender: TObject); private FDebuggerServices: IOTADebuggerServices; - FVectorFrame: TJclVectorFrame; - FDisplay: TJclXMMContentType; + FJclContext: TJclContext; + FDisplay: TJclPackedContentType; FFormat: TJclSIMDFormat; FCpuInfo: TCpuInfo; FEnabledFeatures: TOSEnabledFeatures; FSIMDCaption: string; FNbMMRegister: Integer; FNbXMMRegister: Integer; + FYMMEnabled: Boolean; FOldThreadID: LongWord; FOldThreadState: TOTAThreadState; FModifyForm: TJclSIMDModifyFrm; FMXCSRChanged: array [TMXCSRRange] of Boolean; FRegisterChanged: array of Boolean; FSettings: TJclOtaSettings; - procedure SetDisplay(const Value: TJclXMMContentType); + procedure SetDisplay(const Value: TJclPackedContentType); procedure SetFormat(const Value: TJclSIMDFormat); + procedure SetYMMEnabled(const Value: Boolean); protected procedure DoClose(var Action: TCloseAction); override; procedure UpdateActions; override; @@ -132,11 +138,12 @@ property CpuInfo: TCpuInfo read FCpuInfo; property EnabledFeatures: TOSEnabledFeatures read FEnabledFeatures; property Format: TJclSIMDFormat read FFormat write SetFormat; - property Display: TJclXMMContentType read FDisplay write SetDisplay; + property Display: TJclPackedContentType read FDisplay write SetDisplay; property SIMDCaption: string read FSIMDCaption write FSIMDCaption; property DebuggerServices: IOTADebuggerServices read FDebuggerServices; property NbMMRegister: Integer read FNbMMRegister; property NbXMMRegister: Integer read FNbXMMRegister; + property YMMEnabled: Boolean read FYMMEnabled write SetYMMEnabled; property Settings: TJclOtaSettings read FSettings; end; @@ -194,12 +201,13 @@ else FNbXMMRegister := 9; + FYMMEnabled := (avx in CpuInfo.SSE) and (oefAVX in EnabledFeatures); + ListBoxMXCSR.Items.Clear; - with CpuInfo do - for I := Low(TMXCSRRange) to High(TMXCSRRange) do - ListBoxMXCSR.Items.Add('0'); + for I := Low(TMXCSRRange) to High(TMXCSRRange) do + ListBoxMXCSR.Items.Add('0'); + ListBoxRegs.Items.Clear; - SetLength(FRegisterChanged,NbMMRegister + NbXMMRegister); for J := 0 to NbMMRegister + NbXMMRegister - 1 do // MM registers (MMX) + XMM registers (SSE) + 1 cardinal (MXCSR) @@ -209,15 +217,15 @@ MenuItemSigned.Tag := Integer(sfSigned); MenuItemUnsigned.Tag := Integer(sfUnsigned); MenuItemHexa.Tag := Integer(sfHexa); - MenuItemBytes.Tag := Integer(xt16Bytes); - MenuItemWords.Tag := Integer(xt8Words); - MenuItemDWords.Tag := Integer(xt4DWords); - MenuItemQWords.Tag := Integer(xt2QWords); - MenuItemSingles.Tag := Integer(xt4Singles); - MenuItemDoubles.Tag := Integer(xt2Doubles); + MenuItemBytes.Tag := Integer(pctBytes); + MenuItemWords.Tag := Integer(pctWords); + MenuItemDWords.Tag := Integer(pctDWords); + MenuItemQWords.Tag := Integer(pctQWords); + MenuItemSingles.Tag := Integer(pctSingles); + MenuItemDoubles.Tag := Integer(pctDoubles); Format := sfHexa; - Display := xt8Words; + Display := pctWords; GetThreadValues; end; @@ -291,7 +299,7 @@ begin AText := LongName; if AndMask = MXCSR_RC then - case (FVectorFrame.MXCSR and AndMask) shr Shifting of + case (FJclContext.ExtendedContext.SaveArea.MXCSR and AndMask) shr Shifting of 0: AText := SysUtils.Format('%s (%s)', [AText, RsRoundToNearest]); 1: @@ -327,7 +335,7 @@ procedure TJclSIMDViewFrm.ListBoxRegsDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var - AText: string; + AText, RegName: string; begin try with (Control as TListBox), Canvas do @@ -344,10 +352,14 @@ else if Index < NbMMRegister + NbXMMRegister - 1 then begin + if YMMEnabled then + RegName := 'YMM' + else + RegName := 'XMM'; if CpuInfo.Is64Bits then - AText := SysUtils.Format('XMM%.2d ', [Index - NbMMRegister]) + AText := SysUtils.Format('%s%.2d ', [RegName, Index - NbMMRegister]) else - AText := SysUtils.Format('XMM%d ', [Index - NbMMRegister]); + AText := SysUtils.Format('%s%d ', [RegName, Index - NbMMRegister]); end else AText := 'MXCSR '; @@ -367,7 +379,7 @@ procedure TJclSIMDViewFrm.GetThreadValues; var - NewVectorFrame: TJclVectorFrame; + NewJclContext: TJclContext; NewBitValue, OldBitValue: Cardinal; Index: Integer; AProcess: IOTAProcess; @@ -378,12 +390,17 @@ Result := (Value1.QWords[0] <> Value2.QWords[0]) or (Value1.QWords[1] <> Value2.QWords[1]); end; + function ChangedFlag(const Value1, Value2: TJclYMMRegister): Boolean; overload; + begin + Result := (Value1.QWords[2] <> Value2.QWords[2]) or (Value1.QWords[3] <> Value2.QWords[3]); + end; + function ChangedFlag(const Value1, Value2: TJclMMRegister): Boolean; overload; begin Result := Value1.QWords <> Value2.QWords; end; - function FormatReg(const AReg: TJclXMMRegister): string; overload; + function FormatReg(const XMMReg: TJclXMMRegister; const YMMReg: TJclYMMRegister): string; overload; var I: Integer; Value: TJclSIMDValue; @@ -391,41 +408,89 @@ Result := ''; Value.Display := Display; case Display of - xt16Bytes: - for I := High(AReg.Bytes) downto Low(AReg.Bytes) do + pctBytes: begin - Value.ValueByte := AReg.Bytes[I]; - Result := Result + ' ' + FormatValue(Value, Format); + if YMMEnabled then + for I := High(YMMReg.Bytes) downto Low(YMMReg.Bytes) do + begin + Value.ValueByte := YMMReg.Bytes[I]; + Result := Result + ' ' + FormatValue(Value, Format); + end; + for I := High(XMMReg.Bytes) downto Low(XMMReg.Bytes) do + begin + Value.ValueByte := XMMReg.Bytes[I]; + Result := Result + ' ' + FormatValue(Value, Format); + end; end; - xt8Words: - for I := High(AReg.Words) downto Low(AReg.Words) do + pctWords: begin - Value.ValueWord := AReg.Words[I]; - Result := Result + ' ' + FormatValue(Value, Format); + if YMMEnabled then + for I := High(YMMReg.Words) downto Low(YMMReg.Words) do + begin + Value.ValueWord := YMMReg.Words[I]; + Result := Result + ' ' + FormatValue(Value, Format); + end; + for I := High(XMMReg.Words) downto Low(XMMReg.Words) do + begin + Value.ValueWord := XMMReg.Words[I]; + Result := Result + ' ' + FormatValue(Value, Format); + end; end; - xt4DWords: - for I := High(AReg.DWords) downto Low(AReg.DWords) do + pctDWords: begin - Value.ValueDWord := AReg.DWords[I]; - Result := Result + ' ' + FormatValue(Value, Format); + if YMMEnabled then + for I := High(YMMReg.DWords) downto Low(YMMReg.DWords) do + begin + Value.ValueDWord := YMMReg.DWords[I]; + Result := Result + ' ' + FormatValue(Value, Format); + end; + for I := High(XMMReg.DWords) downto Low(XMMReg.DWords) do + begin + Value.ValueDWord := XMMReg.DWords[I]; + Result := Result + ' ' + FormatValue(Value, Format); + end; end; - xt2QWords: - for I := High(AReg.QWords) downto Low(AReg.QWords) do + pctQWords: begin - Value.ValueQWord := AReg.QWords[I]; - Result := Result + ' ' + FormatValue(Value, Format); + if YMMEnabled... [truncated message content] |
From: <ou...@us...> - 2009-07-16 07:59:48
|
Revision: 2865 http://jcl.svn.sourceforge.net/jcl/?rev=2865&view=rev Author: outchy Date: 2009-07-16 07:59:40 +0000 (Thu, 16 Jul 2009) Log Message: ----------- DWORD64 is not Delphi-friendly, replaced by the good old Int64. Modified Paths: -------------- trunk/jcl/source/common/JclBase.pas trunk/jcl/source/common/JclSysInfo.pas trunk/jcl/source/prototypes/win32api/WinBase.int trunk/jcl/source/windows/JclWin32.pas Modified: trunk/jcl/source/common/JclBase.pas =================================================================== --- trunk/jcl/source/common/JclBase.pas 2009-07-15 21:52:40 UTC (rev 2864) +++ trunk/jcl/source/common/JclBase.pas 2009-07-16 07:59:40 UTC (rev 2865) @@ -125,8 +125,6 @@ PPWideChar = ^JclBase.PWideChar; PInt64 = type System.PInt64; PPInt64 = ^JclBase.PInt64; - DWORD64 = UInt64; - {$EXTERNALSYM DWORD64} // Interface compatibility {$IFDEF SUPPORTS_INTERFACE} Modified: trunk/jcl/source/common/JclSysInfo.pas =================================================================== --- trunk/jcl/source/common/JclSysInfo.pas 2009-07-15 21:52:40 UTC (rev 2864) +++ trunk/jcl/source/common/JclSysInfo.pas 2009-07-16 07:59:40 UTC (rev 2865) @@ -4108,7 +4108,7 @@ function GetOSEnabledFeatures: TOSEnabledFeatures; var - EnabledFeatures: DWORD64; + EnabledFeatures: Int64; begin if IsWin7 or IsWinServer2008 or IsWinServer2008R2 then begin Modified: trunk/jcl/source/prototypes/win32api/WinBase.int =================================================================== --- trunk/jcl/source/prototypes/win32api/WinBase.int 2009-07-15 21:52:40 UTC (rev 2864) +++ trunk/jcl/source/prototypes/win32api/WinBase.int 2009-07-16 07:59:40 UTC (rev 2865) @@ -137,13 +137,13 @@ function InitializeExtendedContext(Context: Pointer; ContextFlags: DWORD; out ContextEx: PCONTEXT_EX): BOOL; stdcall; {$EXTERNALSYM InitializeExtendedContext} -function GetEnabledExtendedFeatures(const FeatureMask: DWORD64): DWORD64; stdcall; +function GetEnabledExtendedFeatures(const FeatureMask: Int64): Int64; stdcall; {$EXTERNALSYM GetEnabledExtendedFeatures} function GetExtendedContextLength(ContextFlags: DWORD; ContextLength: PDWORD): BOOL; stdcall; {$EXTERNALSYM GetExtendedContextLength} -function GetExtendedFeaturesMask(ContextEx: PCONTEXT_EX): DWORD64; stdcall; +function GetExtendedFeaturesMask(ContextEx: PCONTEXT_EX): Int64; stdcall; {$EXTERNALSYM GetExtendedFeaturesMask} function LocateExtendedFeature(ContextEx: PCONTEXT_EX; FeatureId: DWORD; Length: PDWORD): Pointer; stdcall; @@ -152,7 +152,7 @@ function LocateLegacyContext(ContextEx: PCONTEXT_EX; Length: PDWORD): PCONTEXT; stdcall; {$EXTERNALSYM LocateLegacyContext} -procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: DWORD64); +procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: Int64); {$EXTERNALSYM SetExtendedFeaturesMask} {$ENDIF MSWINDOWS} Modified: trunk/jcl/source/windows/JclWin32.pas =================================================================== --- trunk/jcl/source/windows/JclWin32.pas 2009-07-15 21:52:40 UTC (rev 2864) +++ trunk/jcl/source/windows/JclWin32.pas 2009-07-16 07:59:40 UTC (rev 2865) @@ -3025,13 +3025,13 @@ function InitializeExtendedContext(Context: Pointer; ContextFlags: DWORD; out ContextEx: PCONTEXT_EX): BOOL; stdcall; {$EXTERNALSYM InitializeExtendedContext} -function GetEnabledExtendedFeatures(const FeatureMask: DWORD64): DWORD64; stdcall; +function GetEnabledExtendedFeatures(const FeatureMask: Int64): Int64; stdcall; {$EXTERNALSYM GetEnabledExtendedFeatures} function GetExtendedContextLength(ContextFlags: DWORD; ContextLength: PDWORD): BOOL; stdcall; {$EXTERNALSYM GetExtendedContextLength} -function GetExtendedFeaturesMask(ContextEx: PCONTEXT_EX): DWORD64; stdcall; +function GetExtendedFeaturesMask(ContextEx: PCONTEXT_EX): Int64; stdcall; {$EXTERNALSYM GetExtendedFeaturesMask} function LocateExtendedFeature(ContextEx: PCONTEXT_EX; FeatureId: DWORD; Length: PDWORD): Pointer; stdcall; @@ -3040,7 +3040,7 @@ function LocateLegacyContext(ContextEx: PCONTEXT_EX; Length: PDWORD): PCONTEXT; stdcall; {$EXTERNALSYM LocateLegacyContext} -procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: DWORD64); +procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: Int64); {$EXTERNALSYM SetExtendedFeaturesMask} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-15 21:52:51
|
Revision: 2864 http://jcl.svn.sourceforge.net/jcl/?rev=2864&view=rev Author: outchy Date: 2009-07-15 21:52:40 +0000 (Wed, 15 Jul 2009) Log Message: ----------- style cleaning. Modified Paths: -------------- trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas Modified: trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas 2009-07-15 21:37:22 UTC (rev 2863) +++ trunk/jcl/experts/debug/simdview/JclSIMDUtils.pas 2009-07-15 21:52:40 UTC (rev 2864) @@ -815,19 +815,19 @@ {$ELSE COMPILER9_UP} var ContextMemory: Pointer; - JvContext: PJclContext; + JclContext: PJclContext; begin GetMem(ContextMemory, SizeOf(TJclContext) + 15); try if (Cardinal(ContextMemory) and 15) <> 0 then - JvContext := PJclContext((Cardinal(ContextMemory) + 16) and $FFFFFFF0) + JclContext := PJclContext((Cardinal(ContextMemory) + 16) and $FFFFFFF0) else - JvContext := ContextMemory; - JvContext^.ScalarContext.ContextFlags := CONTEXT_EXTENDED_REGISTERS; - Result := GetThreadContext(AThread.Handle,JvContext^) and - ((JvContext^.ScalarContext.ContextFlags and CONTEXT_EXTENDED_REGISTERS)<>0); + JclContext := ContextMemory; + JclContext^.ScalarContext.ContextFlags := CONTEXT_EXTENDED_REGISTERS; + Result := GetThreadContext(AThread.Handle,JclContext^) and + ((JclContext^.ScalarContext.ContextFlags and CONTEXT_EXTENDED_REGISTERS)<>0); if Result then - VectorContext := JvContext^.VectorContext + VectorContext := JclContext^.VectorContext else FillChar(VectorContext, SizeOf(VectorContext), 0); finally @@ -852,30 +852,30 @@ end; {$ELSE COMPILER9_UP} // MM registers can not saved (changes are overriden by the Borland's debugger) -{const +{const CONTEXT_FLAGS = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or CONTEXT_EXTENDED_REGISTERS; var ContextMemory: Pointer; - JvContext: PJclContext; + JclContext: PJclContext; Index: Integer; begin GetMem(ContextMemory,SizeOf(TJclContext)+15); try if ((Cardinal(ContextMemory) and 15)<>0) then - JvContext := PJclContext((Cardinal(ContextMemory)+16) and $FFFFFFF0) + JclContext := PJclContext((Cardinal(ContextMemory)+16) and $FFFFFFF0) else - JvContext := ContextMemory; - JvContext^.ScalarContext.ContextFlags := CONTEXT_FLAGS; - Result := GetThreadContext(hThread,JvContext^) and - ((JvContext^.ScalarContext.ContextFlags and CONTEXT_FLAGS) = CONTEXT_FLAGS); + JclContext := ContextMemory; + JclContext^.ScalarContext.ContextFlags := CONTEXT_FLAGS; + Result := GetThreadContext(hThread,JclContext^) and + ((JclContext^.ScalarContext.ContextFlags and CONTEXT_FLAGS) = CONTEXT_FLAGS); if (Result) then begin - JvContext^.ScalarContext.ContextFlags := CONTEXT_FLAGS; - JvContext^.VectorContext := VectorContext; + JclContext^.ScalarContext.ContextFlags := CONTEXT_FLAGS; + JclContext^.VectorContext := VectorContext; for Index := 0 to 7 do - Move(VectorContext.FPURegisters[Index].Data.FloatValue,JvContext^.ScalarContext.FloatSave.RegisterArea[Index*SizeOf(Extended)],SizeOf(Extended)); - Result := SetThreadContext(hThread,JvContext^); + Move(VectorContext.FPURegisters[Index].Data.FloatValue,JclContext^.ScalarContext.FloatSave.RegisterArea[Index*SizeOf(Extended)],SizeOf(Extended)); + Result := SetThreadContext(hThread,JclContext^); end; finally FreeMem(ContextMemory); @@ -883,19 +883,19 @@ end;} var ContextMemory: Pointer; - JvContext: PJclContext; + JclContext: PJclContext; begin GetMem(ContextMemory, SizeOf(TJclContext) + 15); try if (Cardinal(ContextMemory) and 15) <> 0 then - JvContext := PJclContext((Cardinal(ContextMemory) + 16) and $FFFFFFF0) + JclContext := PJclContext((Cardinal(ContextMemory) + 16) and $FFFFFFF0) else - JvContext := ContextMemory; - JvContext^.ScalarContext.ContextFlags := CONTEXT_EXTENDED_REGISTERS; - Result := GetThreadContext(AThread.Handle,JvContext^) and - ((JvContext^.ScalarContext.ContextFlags and CONTEXT_EXTENDED_REGISTERS) = CONTEXT_EXTENDED_REGISTERS); + JclContext := ContextMemory; + JclContext^.ScalarContext.ContextFlags := CONTEXT_EXTENDED_REGISTERS; + Result := GetThreadContext(AThread.Handle,JclContext^) and + ((JclContext^.ScalarContext.ContextFlags and CONTEXT_EXTENDED_REGISTERS) = CONTEXT_EXTENDED_REGISTERS); if Result then - Result := SetThreadContext(AThread.Handle,JvContext^); + Result := SetThreadContext(AThread.Handle,JclContext^); finally FreeMem(ContextMemory); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-15 21:37:28
|
Revision: 2863 http://jcl.svn.sourceforge.net/jcl/?rev=2863&view=rev Author: outchy Date: 2009-07-15 21:37:22 +0000 (Wed, 15 Jul 2009) Log Message: ----------- compatibility with C++Builder types. Modified Paths: -------------- trunk/jcl/source/common/JclBase.pas trunk/jcl/source/prototypes/win32api/WinNT.int trunk/jcl/source/windows/JclWin32.pas Modified: trunk/jcl/source/common/JclBase.pas =================================================================== --- trunk/jcl/source/common/JclBase.pas 2009-07-15 21:25:38 UTC (rev 2862) +++ trunk/jcl/source/common/JclBase.pas 2009-07-15 21:37:22 UTC (rev 2863) @@ -126,6 +126,7 @@ PInt64 = type System.PInt64; PPInt64 = ^JclBase.PInt64; DWORD64 = UInt64; + {$EXTERNALSYM DWORD64} // Interface compatibility {$IFDEF SUPPORTS_INTERFACE} Modified: trunk/jcl/source/prototypes/win32api/WinNT.int =================================================================== --- trunk/jcl/source/prototypes/win32api/WinNT.int 2009-07-15 21:25:38 UTC (rev 2862) +++ trunk/jcl/source/prototypes/win32api/WinNT.int 2009-07-15 21:37:22 UTC (rev 2863) @@ -2678,8 +2678,11 @@ Offset: Integer; Length: DWORD; end; + {$EXTERNALSYM _CONTEXT_CHUNK} CONTEXT_CHUNK = _CONTEXT_CHUNK; + {$EXTERNALSYM CONTEXT_CHUNK} PCONTEXT_CHUNK = ^_CONTEXT_CHUNK; + {$EXTERNALSYM PCONTEXT_CHUNK} type _CONTEXT_EX = packed record @@ -2707,8 +2710,11 @@ XState: CONTEXT_CHUNK; end; + {$EXTERNALSYM _CONTEXT_EX} CONTEXT_EX = _CONTEXT_EX; + {$EXTERNALSYM CONTEXT_EX} PCONTEXT_EX = ^_CONTEXT_EX; + {$EXTERNALSYM PCONTEXT_EX} // // Known extended CPU state feature IDs @@ -2716,34 +2722,52 @@ const XSTATE_LEGACY_FLOATING_POINT = 0; + {$EXTERNALSYM XSTATE_LEGACY_FLOATING_POINT} XSTATE_LEGACY_SSE = 1; + {$EXTERNALSYM XSTATE_LEGACY_SSE} XSTATE_GSSE = 2; + {$EXTERNALSYM XSTATE_GSSE} XSTATE_MASK_LEGACY_FLOATING_POINT = Int64(1) shl XSTATE_LEGACY_FLOATING_POINT; + {$EXTERNALSYM XSTATE_MASK_LEGACY_FLOATING_POINT} XSTATE_MASK_LEGACY_SSE = Int64(1) shl XSTATE_LEGACY_SSE; + {$EXTERNALSYM XSTATE_MASK_LEGACY_SSE} XSTATE_MASK_LEGACY = XSTATE_MASK_LEGACY_FLOATING_POINT or XSTATE_MASK_LEGACY_SSE; + {$EXTERNALSYM XSTATE_MASK_LEGACY} XSTATE_MASK_GSSE = Int64(1) shl XSTATE_GSSE; + {$EXTERNALSYM XSTATE_MASK_GSSE} MAXIMUM_XSTATE_FEATURES = 64; + {$EXTERNALSYM MAXIMUM_XSTATE_FEATURES} // // The following flags control the contents of the CONTEXT structure. // const CONTEXT_i386 = $00010000; // this assumes that i386 and + {$EXTERNALSYM CONTEXT_i386} CONTEXT_i486 = $00010000; // i486 have identical context records + {$EXTERNALSYM CONTEXT_i486} CONTEXT_CONTROL = CONTEXT_i386 or $00000001; // SS:SP, CS:IP, FLAGS, BP + {$EXTERNALSYM CONTEXT_CONTROL} CONTEXT_INTEGER = CONTEXT_i386 or $00000002; // AX, BX, CX, DX, SI, DI + {$EXTERNALSYM CONTEXT_INTEGER} CONTEXT_SEGMENTS = CONTEXT_i386 or $00000004; // DS, ES, FS, GS + {$EXTERNALSYM CONTEXT_SEGMENTS} CONTEXT_FLOATING_POINT = CONTEXT_i386 or $00000008; // 387 state + {$EXTERNALSYM CONTEXT_FLOATING_POINT} CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 or $00000010; // DB 0-3,6,7 + {$EXTERNALSYM CONTEXT_DEBUG_REGISTERS} CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 or $00000020; // cpu specific extensions + {$EXTERNALSYM CONTEXT_EXTENDED_REGISTERS} CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS; + {$EXTERNALSYM CONTEXT_FULL} CONTEXT_ALL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or CONTEXT_DEBUG_REGISTERS or CONTEXT_EXTENDED_REGISTERS; + {$EXTERNALSYM CONTEXT_ALL} CONTEXT_XSTATE = CONTEXT_i386 or $00000040; - + {$EXTERNALSYM CONTEXT_XSTATE} Modified: trunk/jcl/source/windows/JclWin32.pas =================================================================== --- trunk/jcl/source/windows/JclWin32.pas 2009-07-15 21:25:38 UTC (rev 2862) +++ trunk/jcl/source/windows/JclWin32.pas 2009-07-15 21:37:22 UTC (rev 2863) @@ -2793,8 +2793,11 @@ Offset: Integer; Length: DWORD; end; + {$EXTERNALSYM _CONTEXT_CHUNK} CONTEXT_CHUNK = _CONTEXT_CHUNK; + {$EXTERNALSYM CONTEXT_CHUNK} PCONTEXT_CHUNK = ^_CONTEXT_CHUNK; + {$EXTERNALSYM PCONTEXT_CHUNK} type _CONTEXT_EX = packed record @@ -2822,8 +2825,11 @@ XState: CONTEXT_CHUNK; end; + {$EXTERNALSYM _CONTEXT_EX} CONTEXT_EX = _CONTEXT_EX; + {$EXTERNALSYM CONTEXT_EX} PCONTEXT_EX = ^_CONTEXT_EX; + {$EXTERNALSYM PCONTEXT_EX} // // Known extended CPU state feature IDs @@ -2831,38 +2837,56 @@ const XSTATE_LEGACY_FLOATING_POINT = 0; + {$EXTERNALSYM XSTATE_LEGACY_FLOATING_POINT} XSTATE_LEGACY_SSE = 1; + {$EXTERNALSYM XSTATE_LEGACY_SSE} XSTATE_GSSE = 2; + {$EXTERNALSYM XSTATE_GSSE} XSTATE_MASK_LEGACY_FLOATING_POINT = Int64(1) shl XSTATE_LEGACY_FLOATING_POINT; + {$EXTERNALSYM XSTATE_MASK_LEGACY_FLOATING_POINT} XSTATE_MASK_LEGACY_SSE = Int64(1) shl XSTATE_LEGACY_SSE; + {$EXTERNALSYM XSTATE_MASK_LEGACY_SSE} XSTATE_MASK_LEGACY = XSTATE_MASK_LEGACY_FLOATING_POINT or XSTATE_MASK_LEGACY_SSE; + {$EXTERNALSYM XSTATE_MASK_LEGACY} XSTATE_MASK_GSSE = Int64(1) shl XSTATE_GSSE; + {$EXTERNALSYM XSTATE_MASK_GSSE} MAXIMUM_XSTATE_FEATURES = 64; + {$EXTERNALSYM MAXIMUM_XSTATE_FEATURES} // // The following flags control the contents of the CONTEXT structure. // const CONTEXT_i386 = $00010000; // this assumes that i386 and + {$EXTERNALSYM CONTEXT_i386} CONTEXT_i486 = $00010000; // i486 have identical context records + {$EXTERNALSYM CONTEXT_i486} CONTEXT_CONTROL = CONTEXT_i386 or $00000001; // SS:SP, CS:IP, FLAGS, BP + {$EXTERNALSYM CONTEXT_CONTROL} CONTEXT_INTEGER = CONTEXT_i386 or $00000002; // AX, BX, CX, DX, SI, DI + {$EXTERNALSYM CONTEXT_INTEGER} CONTEXT_SEGMENTS = CONTEXT_i386 or $00000004; // DS, ES, FS, GS + {$EXTERNALSYM CONTEXT_SEGMENTS} CONTEXT_FLOATING_POINT = CONTEXT_i386 or $00000008; // 387 state + {$EXTERNALSYM CONTEXT_FLOATING_POINT} CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 or $00000010; // DB 0-3,6,7 + {$EXTERNALSYM CONTEXT_DEBUG_REGISTERS} CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 or $00000020; // cpu specific extensions + {$EXTERNALSYM CONTEXT_EXTENDED_REGISTERS} CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS; + {$EXTERNALSYM CONTEXT_FULL} CONTEXT_ALL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or CONTEXT_DEBUG_REGISTERS or CONTEXT_EXTENDED_REGISTERS; + {$EXTERNALSYM CONTEXT_ALL} CONTEXT_XSTATE = CONTEXT_i386 or $00000040; + {$EXTERNALSYM CONTEXT_XSTATE} - // line 160 // This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-15 21:25:45
|
Revision: 2862 http://jcl.svn.sourceforge.net/jcl/?rev=2862&view=rev Author: outchy Date: 2009-07-15 21:25:38 +0000 (Wed, 15 Jul 2009) Log Message: ----------- Added report of Windows 7 and Windows Server 2008 enabled processor functions. Modified Paths: -------------- trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas trunk/jcl/source/common/JclBase.pas trunk/jcl/source/common/JclSysInfo.pas trunk/jcl/source/prototypes/win32api/WinBase.imp trunk/jcl/source/prototypes/win32api/WinBase.int trunk/jcl/source/prototypes/win32api/WinNT.int trunk/jcl/source/windows/JclWin32.pas Modified: trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm 2009-07-15 21:25:38 UTC (rev 2862) @@ -205,4 +205,34 @@ Enabled = False TabOrder = 16 end + object CheckBoxEnabledFPU: TCheckBox + Left = 8 + Top = 187 + Width = 137 + Height = 17 + Alignment = taLeftJustify + Caption = 'Enabled FPU' + Enabled = False + TabOrder = 17 + end + object CheckBoxEnabledSSE: TCheckBox + Left = 8 + Top = 210 + Width = 137 + Height = 17 + Alignment = taLeftJustify + Caption = 'Enabled SSE' + Enabled = False + TabOrder = 18 + end + object CheckBoxEnabledAVX: TCheckBox + Left = 8 + Top = 233 + Width = 137 + Height = 17 + Alignment = taLeftJustify + Caption = 'Enabled AVX' + Enabled = False + TabOrder = 19 + end end Modified: trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas 2009-07-15 21:25:38 UTC (rev 2862) @@ -64,10 +64,13 @@ CheckBoxSSE5: TCheckBox; CheckBoxSSE4B: TCheckBox; CheckBoxAVX: TCheckBox; + CheckBoxEnabledFPU: TCheckBox; + CheckBoxEnabledSSE: TCheckBox; + CheckBoxEnabledAVX: TCheckBox; protected procedure CreateParams(var Params: TCreateParams); override; public - procedure Execute(const CpuInfo: TCPUInfo); + procedure Execute(const CpuInfo: TCPUInfo; const EnabledFeatures: TOSEnabledFeatures); end; {$IFDEF UNITVERSIONING} @@ -100,7 +103,7 @@ Params.WndParent := Application.Handle; end; -procedure TJclFormCpuInfo.Execute(const CpuInfo: TCPUInfo); +procedure TJclFormCpuInfo.Execute(const CpuInfo: TCPUInfo; const EnabledFeatures: TOSEnabledFeatures); begin EditName.Text := string(AnsiString(CpuInfo.CpuName)); EditVendor.Text := string(AnsiString(CpuInfo.VendorIDString)); @@ -118,6 +121,9 @@ CheckBoxSSE4B.Checked := sse4B in CpuInfo.SSE; CheckBoxSSE5.Checked := sse5 in CpuInfo.SSE; CheckBoxAVX.Checked := avx in CpuInfo.SSE; + CheckBoxEnabledFPU.Checked := oefFPU in EnabledFeatures; + CheckBoxEnabledSSE.Checked := oefSSE in EnabledFeatures; + CheckBoxEnabledAVX.Checked := oefAVX in EnabledFeatures; ShowModal; end; Modified: trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/experts/debug/simdview/JclSIMDViewForm.pas 2009-07-15 21:25:38 UTC (rev 2862) @@ -105,6 +105,7 @@ FDisplay: TJclXMMContentType; FFormat: TJclSIMDFormat; FCpuInfo: TCpuInfo; + FEnabledFeatures: TOSEnabledFeatures; FSIMDCaption: string; FNbMMRegister: Integer; FNbXMMRegister: Integer; @@ -129,6 +130,7 @@ procedure SetThreadValues; procedure GetThreadValues; property CpuInfo: TCpuInfo read FCpuInfo; + property EnabledFeatures: TOSEnabledFeatures read FEnabledFeatures; property Format: TJclSIMDFormat read FFormat write SetFormat; property Display: TJclXMMContentType read FDisplay write SetDisplay; property SIMDCaption: string read FSIMDCaption write FSIMDCaption; @@ -171,6 +173,7 @@ FSettings := ASettings; JclSysInfo.GetCpuInfo(FCpuInfo); + FEnabledFeatures := GetOSEnabledFeatures; // the behaviour of Delphi and C++Builder overrides all changes made on // the floating point context of the debugged thread when it is run @@ -657,7 +660,7 @@ try FormCPUInfo := TJclFormCpuInfo.Create(Self); try - FormCPUInfo.Execute(CpuInfo); + FormCPUInfo.Execute(CpuInfo, EnabledFeatures); finally FormCPUInfo.Free; end; Modified: trunk/jcl/source/common/JclBase.pas =================================================================== --- trunk/jcl/source/common/JclBase.pas 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/source/common/JclBase.pas 2009-07-15 21:25:38 UTC (rev 2862) @@ -125,6 +125,7 @@ PPWideChar = ^JclBase.PWideChar; PInt64 = type System.PInt64; PPInt64 = ^JclBase.PInt64; + DWORD64 = UInt64; // Interface compatibility {$IFDEF SUPPORTS_INTERFACE} Modified: trunk/jcl/source/common/JclSysInfo.pas =================================================================== --- trunk/jcl/source/common/JclSysInfo.pas 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/source/common/JclSysInfo.pas 2009-07-15 21:25:38 UTC (rev 2862) @@ -1241,6 +1241,12 @@ function RoundFrequency(const Frequency: Integer): Integer; {$IFDEF MSWINDOWS} function GetCPUSpeed(var CpuSpeed: TFreqInfo): Boolean; + +type + TOSEnabledFeature = (oefFPU, oefSSE, oefAVX); + TOSEnabledFeatures = set of TOSEnabledFeature; + +function GetOSEnabledFeatures: TOSEnabledFeatures; {$ENDIF MSWINDOWS} function CPUID: TCpuInfo; function TestFDIVInstruction: Boolean; @@ -4099,6 +4105,28 @@ Result := True; end; end; + +function GetOSEnabledFeatures: TOSEnabledFeatures; +var + EnabledFeatures: DWORD64; +begin + if IsWin7 or IsWinServer2008 or IsWinServer2008R2 then + begin + EnabledFeatures := $FFFFFFFF; + EnabledFeatures := EnabledFeatures shl 32; + EnabledFeatures := EnabledFeatures or $FFFFFFFF; + EnabledFeatures := GetEnabledExtendedFeatures(EnabledFeatures); + Result := []; + if (EnabledFeatures and XSTATE_MASK_LEGACY_FLOATING_POINT) <> 0 then + Include(Result, oefFPU); + if (EnabledFeatures and XSTATE_MASK_LEGACY_SSE) <> 0 then + Include(Result, oefSSE); + if (EnabledFeatures and XSTATE_MASK_GSSE) <> 0 then + Include(Result, oefAVX); + end + else + Result := []; +end; {$ENDIF MSWINDOWS} function CPUID: TCpuInfo; Modified: trunk/jcl/source/prototypes/win32api/WinBase.imp =================================================================== --- trunk/jcl/source/prototypes/win32api/WinBase.imp 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/source/prototypes/win32api/WinBase.imp 2009-07-15 21:25:38 UTC (rev 2862) @@ -163,4 +163,108 @@ end; end; +var + _CopyExtendedContext: Pointer; + +function CopyExtendedContext; +begin + GetProcedureAddress(_CopyExtendedContext, kernel32, 'CopyExtendedContext'); + asm + mov esp, ebp + pop ebp + jmp [_CopyExtendedContext] + end; +end; + +var + _InitializeExtendedContext: Pointer; + +function InitializeExtendedContext; +begin + GetProcedureAddress(_InitializeExtendedContext, kernel32, 'InitializeExtendedContext'); + asm + mov esp, ebp + pop ebp + jmp [_InitializeExtendedContext] + end; +end; + +var + _GetEnabledExtendedFeatures: Pointer; + +function GetEnabledExtendedFeatures; +begin + GetProcedureAddress(_GetEnabledExtendedFeatures, kernel32, 'GetEnabledExtendedFeatures'); + asm + mov esp, ebp + pop ebp + jmp [_GetEnabledExtendedFeatures] + end; +end; + +var + _GetExtendedContextLength: Pointer; + +function GetExtendedContextLength; +begin + GetProcedureAddress(_GetExtendedContextLength, kernel32, 'GetExtendedContextLength'); + asm + mov esp, ebp + pop ebp + jmp [_GetExtendedContextLength] + end; +end; + +var + _GetExtendedFeaturesMask: Pointer; + +function GetExtendedFeaturesMask; +begin + GetProcedureAddress(_GetExtendedFeaturesMask, kernel32, 'GetExtendedFeaturesMask'); + asm + mov esp, ebp + pop ebp + jmp [_GetExtendedFeaturesMask] + end; +end; + +var + _LocateExtendedFeature: Pointer; + +function LocateExtendedFeature; +begin + GetProcedureAddress(_LocateExtendedFeature, kernel32, 'LocateExtendedFeature'); + asm + mov esp, ebp + pop ebp + jmp [_LocateExtendedFeature] + end; +end; + +var + _LocateLegacyContext: Pointer; + +function LocateLegacyContext; +begin + GetProcedureAddress(_LocateLegacyContext, kernel32, 'LocateLegacyContext'); + asm + mov esp, ebp + pop ebp + jmp [_LocateLegacyContext] + end; +end; + +var + _SetExtendedFeaturesMask: Pointer; + +procedure SetExtendedFeaturesMask; +begin + GetProcedureAddress(_SetExtendedFeaturesMask, kernel32, 'SetExtendedFeaturesMask'); + asm + mov esp, ebp + pop ebp + jmp [_SetExtendedFeaturesMask] + end; +end; + {$ENDIF MSWINDOWS} Modified: trunk/jcl/source/prototypes/win32api/WinBase.int =================================================================== --- trunk/jcl/source/prototypes/win32api/WinBase.int 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/source/prototypes/win32api/WinBase.int 2009-07-15 21:25:38 UTC (rev 2862) @@ -130,4 +130,29 @@ lpszVolumeName: LPWSTR; cchBufferLength: DWORD): BOOL; stdcall; {$EXTERNALSYM GetVolumeNameForVolumeMountPointW} +// new Windows 7 debugging API +function CopyExtendedContext(Destination: PCONTEXT_EX; ContextFlags: DWORD; Source: PCONTEXT_EX): BOOL; stdcall; +{$EXTERNALSYM CopyExtendedContext} + +function InitializeExtendedContext(Context: Pointer; ContextFlags: DWORD; out ContextEx: PCONTEXT_EX): BOOL; stdcall; +{$EXTERNALSYM InitializeExtendedContext} + +function GetEnabledExtendedFeatures(const FeatureMask: DWORD64): DWORD64; stdcall; +{$EXTERNALSYM GetEnabledExtendedFeatures} + +function GetExtendedContextLength(ContextFlags: DWORD; ContextLength: PDWORD): BOOL; stdcall; +{$EXTERNALSYM GetExtendedContextLength} + +function GetExtendedFeaturesMask(ContextEx: PCONTEXT_EX): DWORD64; stdcall; +{$EXTERNALSYM GetExtendedFeaturesMask} + +function LocateExtendedFeature(ContextEx: PCONTEXT_EX; FeatureId: DWORD; Length: PDWORD): Pointer; stdcall; +{$EXTERNALSYM LocateExtendedFeature} + +function LocateLegacyContext(ContextEx: PCONTEXT_EX; Length: PDWORD): PCONTEXT; stdcall; +{$EXTERNALSYM LocateLegacyContext} + +procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: DWORD64); +{$EXTERNALSYM SetExtendedFeaturesMask} + {$ENDIF MSWINDOWS} Modified: trunk/jcl/source/prototypes/win32api/WinNT.int =================================================================== --- trunk/jcl/source/prototypes/win32api/WinNT.int 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/source/prototypes/win32api/WinNT.int 2009-07-15 21:25:38 UTC (rev 2862) @@ -2670,3 +2670,80 @@ {$EXTERNALSYM REG_QWORD} REG_QWORD_LITTLE_ENDIAN = ( 11 ); // 64-bit number (same as REG_QWORD) {$EXTERNALSYM REG_QWORD_LITTLE_ENDIAN} + + // Windows 7 debugging types + +type + _CONTEXT_CHUNK = packed record + Offset: Integer; + Length: DWORD; + end; + CONTEXT_CHUNK = _CONTEXT_CHUNK; + PCONTEXT_CHUNK = ^_CONTEXT_CHUNK; + +type + _CONTEXT_EX = packed record + // + // The total length of the structure starting from the chunk with + // the smallest offset. N.B. that the offset may be negative. + // + All: CONTEXT_CHUNK; + + // + // Wrapper for the traditional CONTEXT structure. N.B. the size of + // the chunk may be less than sizeof(CONTEXT) is some cases (when + // CONTEXT_EXTENDED_REGISTERS is not set on x86 for instance). + // + + Legacy: CONTEXT_CHUNK; + + // + // CONTEXT_XSTATE: Extended processor state chunk. The state is + // stored in the same format XSAVE operation strores it with + // exception of the first 512 bytes, i.e. staring from + // XSAVE_AREA_HEADER. The lower two bits corresponding FP and + // SSE state must be zero. + // + + XState: CONTEXT_CHUNK; + end; + CONTEXT_EX = _CONTEXT_EX; + PCONTEXT_EX = ^_CONTEXT_EX; + +// +// Known extended CPU state feature IDs +// + +const + XSTATE_LEGACY_FLOATING_POINT = 0; + XSTATE_LEGACY_SSE = 1; + XSTATE_GSSE = 2; + + XSTATE_MASK_LEGACY_FLOATING_POINT = Int64(1) shl XSTATE_LEGACY_FLOATING_POINT; + XSTATE_MASK_LEGACY_SSE = Int64(1) shl XSTATE_LEGACY_SSE; + XSTATE_MASK_LEGACY = XSTATE_MASK_LEGACY_FLOATING_POINT or XSTATE_MASK_LEGACY_SSE; + XSTATE_MASK_GSSE = Int64(1) shl XSTATE_GSSE; + + MAXIMUM_XSTATE_FEATURES = 64; + +// +// The following flags control the contents of the CONTEXT structure. +// +const + CONTEXT_i386 = $00010000; // this assumes that i386 and + CONTEXT_i486 = $00010000; // i486 have identical context records + + CONTEXT_CONTROL = CONTEXT_i386 or $00000001; // SS:SP, CS:IP, FLAGS, BP + CONTEXT_INTEGER = CONTEXT_i386 or $00000002; // AX, BX, CX, DX, SI, DI + CONTEXT_SEGMENTS = CONTEXT_i386 or $00000004; // DS, ES, FS, GS + CONTEXT_FLOATING_POINT = CONTEXT_i386 or $00000008; // 387 state + CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 or $00000010; // DB 0-3,6,7 + CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 or $00000020; // cpu specific extensions + + CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS; + + CONTEXT_ALL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or + CONTEXT_DEBUG_REGISTERS or CONTEXT_EXTENDED_REGISTERS; + + CONTEXT_XSTATE = CONTEXT_i386 or $00000040; + Modified: trunk/jcl/source/windows/JclWin32.pas =================================================================== --- trunk/jcl/source/windows/JclWin32.pas 2009-07-15 18:40:40 UTC (rev 2861) +++ trunk/jcl/source/windows/JclWin32.pas 2009-07-15 21:25:38 UTC (rev 2862) @@ -2786,6 +2786,83 @@ REG_QWORD_LITTLE_ENDIAN = ( 11 ); // 64-bit number (same as REG_QWORD) {$EXTERNALSYM REG_QWORD_LITTLE_ENDIAN} + // Windows 7 debugging types + +type + _CONTEXT_CHUNK = packed record + Offset: Integer; + Length: DWORD; + end; + CONTEXT_CHUNK = _CONTEXT_CHUNK; + PCONTEXT_CHUNK = ^_CONTEXT_CHUNK; + +type + _CONTEXT_EX = packed record + // + // The total length of the structure starting from the chunk with + // the smallest offset. N.B. that the offset may be negative. + // + All: CONTEXT_CHUNK; + + // + // Wrapper for the traditional CONTEXT structure. N.B. the size of + // the chunk may be less than sizeof(CONTEXT) is some cases (when + // CONTEXT_EXTENDED_REGISTERS is not set on x86 for instance). + // + + Legacy: CONTEXT_CHUNK; + + // + // CONTEXT_XSTATE: Extended processor state chunk. The state is + // stored in the same format XSAVE operation strores it with + // exception of the first 512 bytes, i.e. staring from + // XSAVE_AREA_HEADER. The lower two bits corresponding FP and + // SSE state must be zero. + // + + XState: CONTEXT_CHUNK; + end; + CONTEXT_EX = _CONTEXT_EX; + PCONTEXT_EX = ^_CONTEXT_EX; + +// +// Known extended CPU state feature IDs +// + +const + XSTATE_LEGACY_FLOATING_POINT = 0; + XSTATE_LEGACY_SSE = 1; + XSTATE_GSSE = 2; + + XSTATE_MASK_LEGACY_FLOATING_POINT = Int64(1) shl XSTATE_LEGACY_FLOATING_POINT; + XSTATE_MASK_LEGACY_SSE = Int64(1) shl XSTATE_LEGACY_SSE; + XSTATE_MASK_LEGACY = XSTATE_MASK_LEGACY_FLOATING_POINT or XSTATE_MASK_LEGACY_SSE; + XSTATE_MASK_GSSE = Int64(1) shl XSTATE_GSSE; + + MAXIMUM_XSTATE_FEATURES = 64; + +// +// The following flags control the contents of the CONTEXT structure. +// +const + CONTEXT_i386 = $00010000; // this assumes that i386 and + CONTEXT_i486 = $00010000; // i486 have identical context records + + CONTEXT_CONTROL = CONTEXT_i386 or $00000001; // SS:SP, CS:IP, FLAGS, BP + CONTEXT_INTEGER = CONTEXT_i386 or $00000002; // AX, BX, CX, DX, SI, DI + CONTEXT_SEGMENTS = CONTEXT_i386 or $00000004; // DS, ES, FS, GS + CONTEXT_FLOATING_POINT = CONTEXT_i386 or $00000008; // 387 state + CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 or $00000010; // DB 0-3,6,7 + CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 or $00000020; // cpu specific extensions + + CONTEXT_FULL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS; + + CONTEXT_ALL = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or + CONTEXT_DEBUG_REGISTERS or CONTEXT_EXTENDED_REGISTERS; + + CONTEXT_XSTATE = CONTEXT_i386 or $00000040; + + // line 160 // @@ -2917,7 +2994,32 @@ lpszVolumeName: LPWSTR; cchBufferLength: DWORD): BOOL; stdcall; {$EXTERNALSYM GetVolumeNameForVolumeMountPointW} +// new Windows 7 debugging API +function CopyExtendedContext(Destination: PCONTEXT_EX; ContextFlags: DWORD; Source: PCONTEXT_EX): BOOL; stdcall; +{$EXTERNALSYM CopyExtendedContext} +function InitializeExtendedContext(Context: Pointer; ContextFlags: DWORD; out ContextEx: PCONTEXT_EX): BOOL; stdcall; +{$EXTERNALSYM InitializeExtendedContext} + +function GetEnabledExtendedFeatures(const FeatureMask: DWORD64): DWORD64; stdcall; +{$EXTERNALSYM GetEnabledExtendedFeatures} + +function GetExtendedContextLength(ContextFlags: DWORD; ContextLength: PDWORD): BOOL; stdcall; +{$EXTERNALSYM GetExtendedContextLength} + +function GetExtendedFeaturesMask(ContextEx: PCONTEXT_EX): DWORD64; stdcall; +{$EXTERNALSYM GetExtendedFeaturesMask} + +function LocateExtendedFeature(ContextEx: PCONTEXT_EX; FeatureId: DWORD; Length: PDWORD): Pointer; stdcall; +{$EXTERNALSYM LocateExtendedFeature} + +function LocateLegacyContext(ContextEx: PCONTEXT_EX; Length: PDWORD): PCONTEXT; stdcall; +{$EXTERNALSYM LocateLegacyContext} + +procedure SetExtendedFeaturesMask(ContextEx: PCONTEXT_EX; const FeatureMask: DWORD64); +{$EXTERNALSYM SetExtendedFeaturesMask} + + {$IFNDEF COMPILER11_UP} type // Need to have the same size like Pointer @@ -8046,9 +8148,113 @@ end; end; +var + _CopyExtendedContext: Pointer; +function CopyExtendedContext; +begin + GetProcedureAddress(_CopyExtendedContext, kernel32, 'CopyExtendedContext'); + asm + mov esp, ebp + pop ebp + jmp [_CopyExtendedContext] + end; +end; var + _InitializeExtendedContext: Pointer; + +function InitializeExtendedContext; +begin + GetProcedureAddress(_InitializeExtendedContext, kernel32, 'InitializeExtendedContext'); + asm + mov esp, ebp + pop ebp + jmp [_InitializeExtendedContext] + end; +end; + +var + _GetEnabledExtendedFeatures: Pointer; + +function GetEnabledExtendedFeatures; +begin + GetProcedureAddress(_GetEnabledExtendedFeatures, kernel32, 'GetEnabledExtendedFeatures'); + asm + mov esp, ebp + pop ebp + jmp [_GetEnabledExtendedFeatures] + end; +end; + +var + _GetExtendedContextLength: Pointer; + +function GetExtendedContextLength; +begin + GetProcedureAddress(_GetExtendedContextLength, kernel32, 'GetExtendedContextLength'); + asm + mov esp, ebp + pop ebp + jmp [_GetExtendedContextLength] + end; +end; + +var + _GetExtendedFeaturesMask: Pointer; + +function GetExtendedFeaturesMask; +begin + GetProcedureAddress(_GetExtendedFeaturesMask, kernel32, 'GetExtendedFeaturesMask'); + asm + mov esp, ebp + pop ebp + jmp [_GetExtendedFeaturesMask] + end; +end; + +var + _LocateExtendedFeature: Pointer; + +function LocateExtendedFeature; +begin + GetProcedureAddress(_LocateExtendedFeature, kernel32, 'LocateExtendedFeature'); + asm + mov esp, ebp + pop ebp + jmp [_LocateExtendedFeature] + end; +end; + +var + _LocateLegacyContext: Pointer; + +function LocateLegacyContext; +begin + GetProcedureAddress(_LocateLegacyContext, kernel32, 'LocateLegacyContext'); + asm + mov esp, ebp + pop ebp + jmp [_LocateLegacyContext] + end; +end; + +var + _SetExtendedFeaturesMask: Pointer; + +procedure SetExtendedFeaturesMask; +begin + GetProcedureAddress(_SetExtendedFeaturesMask, kernel32, 'SetExtendedFeaturesMask'); + asm + mov esp, ebp + pop ebp + jmp [_SetExtendedFeaturesMask] + end; +end; + + + +var _GetCalendarInfoA: Pointer; function GetCalendarInfoA; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-15 18:40:44
|
Revision: 2861 http://jcl.svn.sourceforge.net/jcl/?rev=2861&view=rev Author: outchy Date: 2009-07-15 18:40:40 +0000 (Wed, 15 Jul 2009) Log Message: ----------- The CPU information form now shows CPU AVX capability. Modified Paths: -------------- trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas Modified: trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm 2009-07-14 14:28:55 UTC (rev 2860) +++ trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.dfm 2009-07-15 18:40:40 UTC (rev 2861) @@ -3,7 +3,7 @@ Top = 438 BorderStyle = bsDialog Caption = 'Local CPU Informations' - ClientHeight = 264 + ClientHeight = 296 ClientWidth = 322 Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -148,7 +148,7 @@ end object ButtonClose: TButton Left = 128 - Top = 233 + Top = 263 Width = 83 Height = 25 Caption = 'Close' @@ -195,4 +195,14 @@ Enabled = False TabOrder = 13 end + object CheckBoxAVX: TCheckBox + Left = 161 + Top = 233 + Width = 153 + Height = 17 + Alignment = taLeftJustify + Caption = 'AVX' + Enabled = False + TabOrder = 16 + end end Modified: trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas =================================================================== --- trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas 2009-07-14 14:28:55 UTC (rev 2860) +++ trunk/jcl/experts/debug/simdview/JclSIMDCpuInfo.pas 2009-07-15 18:40:40 UTC (rev 2861) @@ -63,6 +63,7 @@ CheckBoxSSE4A: TCheckBox; CheckBoxSSE5: TCheckBox; CheckBoxSSE4B: TCheckBox; + CheckBoxAVX: TCheckBox; protected procedure CreateParams(var Params: TCreateParams); override; public @@ -116,6 +117,7 @@ CheckBoxSSE4A.Checked := sse4A in CpuInfo.SSE; CheckBoxSSE4B.Checked := sse4B in CpuInfo.SSE; CheckBoxSSE5.Checked := sse5 in CpuInfo.SSE; + CheckBoxAVX.Checked := avx in CpuInfo.SSE; ShowModal; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-14 14:29:04
|
Revision: 2860 http://jcl.svn.sourceforge.net/jcl/?rev=2860&view=rev Author: outchy Date: 2009-07-14 14:28:55 +0000 (Tue, 14 Jul 2009) Log Message: ----------- update to PCRE 7.9. Modified Paths: -------------- trunk/jcl/source/common/JclPCRE.pas trunk/jcl/source/common/pcre.pas trunk/jcl/source/windows/obj/pcre/makefile.mak trunk/jcl/source/windows/obj/pcre/pcre_compile.obj trunk/jcl/source/windows/obj/pcre/pcre_config.obj trunk/jcl/source/windows/obj/pcre/pcre_default_tables.obj trunk/jcl/source/windows/obj/pcre/pcre_dfa_exec.obj trunk/jcl/source/windows/obj/pcre/pcre_exec.obj trunk/jcl/source/windows/obj/pcre/pcre_fullinfo.obj trunk/jcl/source/windows/obj/pcre/pcre_get.obj trunk/jcl/source/windows/obj/pcre/pcre_globals.obj trunk/jcl/source/windows/obj/pcre/pcre_info.obj trunk/jcl/source/windows/obj/pcre/pcre_maketables.obj trunk/jcl/source/windows/obj/pcre/pcre_newline.obj trunk/jcl/source/windows/obj/pcre/pcre_ord2utf8.obj trunk/jcl/source/windows/obj/pcre/pcre_refcount.obj trunk/jcl/source/windows/obj/pcre/pcre_study.obj trunk/jcl/source/windows/obj/pcre/pcre_tables.obj trunk/jcl/source/windows/obj/pcre/pcre_try_flipped.obj trunk/jcl/source/windows/obj/pcre/pcre_ucd.obj trunk/jcl/source/windows/obj/pcre/pcre_valid_utf8.obj trunk/jcl/source/windows/obj/pcre/pcre_version.obj trunk/jcl/source/windows/obj/pcre/pcre_xclass.obj Added Paths: ----------- trunk/thirdparty/pcre/pcre-7.9.tar.gz Removed Paths: ------------- trunk/thirdparty/pcre/pcre-7.8.tar.gz Modified: trunk/jcl/source/common/JclPCRE.pas =================================================================== --- trunk/jcl/source/common/JclPCRE.pas 2009-07-14 14:08:40 UTC (rev 2859) +++ trunk/jcl/source/common/JclPCRE.pas 2009-07-14 14:28:55 UTC (rev 2860) @@ -26,7 +26,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -80,7 +80,7 @@ roNotEmpty, roUTF8, roNoAutoCapture, roNoUTF8Check, roAutoCallout, roPartial, roDfaShortest, roDfaRestart, roDfaFirstLine, roDupNames, roNewLineCR, roNewLineLF, roNewLineCRLF, roNewLineAny, roBSRAnyCRLF, - roBSRUnicode, roJavascriptCompat); + roBSRUnicode, roJavascriptCompat, roNoStartOptimize); TJclRegExOptions = set of TJclRegExOption; TJclCaptureRange = record FirstPos: Integer; @@ -398,12 +398,12 @@ PCRE_NO_AUTO_CAPTURE, PCRE_NO_UTF8_CHECK, PCRE_AUTO_CALLOUT, 0, 0, 0, 0, PCRE_DUPNAMES, PCRE_NEWLINE_CR, PCRE_NEWLINE_LF, PCRE_NEWLINE_CRLF, PCRE_NEWLINE_ANY, PCRE_BSR_ANYCRLF, PCRE_BSR_UNICODE, - PCRE_JAVASCRIPT_COMPAT); + PCRE_JAVASCRIPT_COMPAT, PCRE_NO_START_OPTIMIZE); cRunOptions: array [TJclRegExOption] of Integer = (0, 0, 0, 0, 0, 0, 0, PCRE_NOTBOL, PCRE_NOTEOL, 0, PCRE_NOTEMPTY, 0, 0, PCRE_NO_UTF8_CHECK, 0, PCRE_PARTIAL, 0, 0, 0, 0, PCRE_NEWLINE_CR, PCRE_NEWLINE_LF, PCRE_NEWLINE_CRLF, PCRE_NEWLINE_ANY, PCRE_BSR_ANYCRLF, - PCRE_BSR_UNICODE, PCRE_JAVASCRIPT_COMPAT); + PCRE_BSR_UNICODE, PCRE_JAVASCRIPT_COMPAT, PCRE_NO_START_OPTIMIZE); var I: TJclRegExOption; SUPPORT_UTF8: Integer; Modified: trunk/jcl/source/common/pcre.pas =================================================================== --- trunk/jcl/source/common/pcre.pas 2009-07-14 14:08:40 UTC (rev 2859) +++ trunk/jcl/source/common/pcre.pas 2009-07-14 14:28:55 UTC (rev 2860) @@ -126,6 +126,10 @@ {$EXTERNALSYM PCRE_BSR_UNICODE} PCRE_JAVASCRIPT_COMPAT = $02000000; {$EXTERNALSYM PCRE_JAVASCRIPT_COMPAT} + PCRE_NO_START_OPTIMIZE = $04000000; + {$EXTERNALSYM PCRE_NO_START_OPTIMIZE} + PCRE_NO_START_OPTIMISE = $04000000; + {$EXTERNALSYM PCRE_NO_START_OPTIMISE} (* Exec-time and get-time error codes *) Modified: trunk/jcl/source/windows/obj/pcre/makefile.mak =================================================================== --- trunk/jcl/source/windows/obj/pcre/makefile.mak 2009-07-14 14:08:40 UTC (rev 2859) +++ trunk/jcl/source/windows/obj/pcre/makefile.mak 2009-07-14 14:28:55 UTC (rev 2860) @@ -2,7 +2,7 @@ # makefile to make pcre .obj files using Borland's C++ compiler bcc32 # derived from a makefile generated by BCB6' bpr2mak # -# if pcre source directory is different from $(JCL)\source\pcre-7.8, use +# if pcre source directory is different from $(JCL)\source\pcre-7.9, use # "make -Dpcresrc=<path to pcre sources>" to tell make where to find the # source files # @@ -42,7 +42,7 @@ BCC = $(BCB) !if !$d(pcresrc) -pcresrc = ..\..\..\pcre-7.8 +pcresrc = ..\..\..\pcre-7.9 !endif !if !$d(CPU) Modified: trunk/jcl/source/windows/obj/pcre/pcre_compile.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_config.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_default_tables.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_dfa_exec.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_exec.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_fullinfo.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_get.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_globals.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_info.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_maketables.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_newline.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_ord2utf8.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_refcount.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_study.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_tables.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_try_flipped.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_ucd.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_valid_utf8.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_version.obj =================================================================== (Binary files differ) Modified: trunk/jcl/source/windows/obj/pcre/pcre_xclass.obj =================================================================== (Binary files differ) Deleted: trunk/thirdparty/pcre/pcre-7.8.tar.gz =================================================================== (Binary files differ) Added: trunk/thirdparty/pcre/pcre-7.9.tar.gz =================================================================== (Binary files differ) Property changes on: trunk/thirdparty/pcre/pcre-7.9.tar.gz ___________________________________________________________________ Added: svn:mime-type + application/x-compressed-tar This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-14 14:08:43
|
Revision: 2859 http://jcl.svn.sourceforge.net/jcl/?rev=2859&view=rev Author: outchy Date: 2009-07-14 14:08:40 +0000 (Tue, 14 Jul 2009) Log Message: ----------- Sevenzip 9.4.0 new archive formats. Modified Paths: -------------- trunk/jcl/source/common/JclCompression.pas trunk/jcl/source/common/JclResources.pas trunk/jcl/source/windows/sevenzip.pas Modified: trunk/jcl/source/common/JclCompression.pas =================================================================== --- trunk/jcl/source/common/JclCompression.pas 2009-07-14 12:33:17 UTC (rev 2858) +++ trunk/jcl/source/common/JclCompression.pas 2009-07-14 14:08:40 UTC (rev 2859) @@ -36,11 +36,6 @@ { } {**************************************************************************************************} { } -{ This unit is still in alpha state. It is likely that it will change a lot. Suggestions are } -{ welcome. } -{ } -{**************************************************************************************************} -{ } { Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } @@ -105,6 +100,7 @@ | |-- TJcl7zCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclTarCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclGZipCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclXzCompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclDecompressArchive | | @@ -120,6 +116,7 @@ | |-- TJclCabDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclNsisDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclLzmaDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclLzma86DecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclPeDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclElfDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclMachoDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ @@ -131,6 +128,7 @@ | |-- TJclCompoundDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclWimDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclIsoDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclBkfDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclChmDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclSplitDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclRpmDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ @@ -138,6 +136,12 @@ | |-- TJclCpioDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclTarDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ | |-- TJclGZipDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclXzDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclNtfsDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclFatDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclMbrDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclVhdDecompressArchive handled by sevenzip http://sevenzip.sourceforge.net/ + | |-- TJclUpdateArchive | @@ -148,6 +152,7 @@ |-- TJcl7zUpdateArchive handled by sevenzip http://sevenzip.sourceforge.net/ |-- TJclTarUpdateArchive handled by sevenzip http://sevenzip.sourceforge.net/ |-- TJclGZipUpdateArchive handled by sevenzip http://sevenzip.sourceforge.net/ + |-- TJclXzUpdateArchive handled by sevenzip http://sevenzip.sourceforge.net/ **************************************************************************************************} @@ -1296,6 +1301,21 @@ procedure SetAlgorithm(Value: Cardinal); end; + TJclXzCompressArchive = class(TJclSevenzipCompressArchive, IJclArchiveCompressionMethod, IInterface) + private + FCompressionMethod: TJclCompressionMethod; + protected + function GetCLSID: TGUID; override; + procedure CreateCompressionObject; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + { IJclArchiveCompressionMethod } + function GetCompressionMethod: TJclCompressionMethod; + function GetSupportedCompressionMethods: TJclCompressionMethods; + procedure SetCompressionMethod(Value: TJclCompressionMethod); + end; + // sevenzip classes for decompression type TJclSevenzipDecompressArchive = class(TJclDecompressArchive, IInterface) @@ -1425,6 +1445,15 @@ class function ArchiveName: string; override; end; + TJclLzma86DecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function MultipleItemContainer: Boolean; override; + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + TJclPeDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) protected function GetCLSID: TGUID; override; @@ -1524,6 +1553,7 @@ class function ArchiveName: string; override; end; + // not implemented in 9.04 {TJclBkfDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) protected function GetCLSID: TGUID; override; @@ -1594,6 +1624,49 @@ class function ArchiveName: string; override; end; + TJclXzDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + + TJclNtfsDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function MultipleItemContainer: Boolean; override; + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + + TJclFatDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function MultipleItemContainer: Boolean; override; + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + + TJclMbrDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function MultipleItemContainer: Boolean; override; + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + + TJclVhdDecompressArchive = class(TJclSevenzipDecompressArchive, IInterface) + protected + function GetCLSID: TGUID; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + end; + //sevenzip classes for updates (read and write) type TJclSevenzipUpdateArchive = class(TJclOutOfPlaceUpdateArchive, IInterface) @@ -1781,6 +1854,21 @@ function GetSupportedAlgorithms: TDynCardinalArray; procedure SetAlgorithm(Value: Cardinal); end; + + TJclXzUpdateArchive = class(TJclSevenzipUpdateArchive, IJclArchiveCompressionMethod, IInterface) + private + FCompressionMethod: TJclCompressionMethod; + protected + function GetCLSID: TGUID; override; + procedure CreateCompressionObject; override; + public + class function ArchiveExtensions: string; override; + class function ArchiveName: string; override; + { IJclArchiveCompressionMethod } + function GetCompressionMethod: TJclCompressionMethod; + function GetSupportedCompressionMethods: TJclCompressionMethods; + procedure SetCompressionMethod(Value: TJclCompressionMethod); + end; {$ENDIF MSWINDOWS} {$IFDEF UNITVERSIONING} @@ -3759,6 +3847,7 @@ RegisterFormat(TJcl7zCompressArchive); RegisterFormat(TJclTarCompressArchive); RegisterFormat(TJclGZipCompressArchive); + RegisterFormat(TJclXzCompressArchive); RegisterFormat(TJclZipDecompressArchive); RegisterFormat(TJclBZ2DecompressArchive); RegisterFormat(TJclRarDecompressArchive); @@ -3769,6 +3858,7 @@ RegisterFormat(TJclCabDecompressArchive); RegisterFormat(TJclNsisDecompressArchive); RegisterFormat(TJclLzmaDecompressArchive); + RegisterFormat(TJclLzma86DecompressArchive); RegisterFormat(TJclPeDecompressArchive); RegisterFormat(TJclElfDecompressArchive); RegisterFormat(TJclMachoDecompressArchive); @@ -3787,6 +3877,10 @@ RegisterFormat(TJclCpioDecompressArchive); RegisterFormat(TJclTarDecompressArchive); RegisterFormat(TJclGZipDecompressArchive); + RegisterFormat(TJclNtfsDecompressArchive); + RegisterFormat(TJclFatDecompressArchive); + RegisterFormat(TJclMbrDecompressArchive); + RegisterFormat(TJclVhdDecompressArchive); RegisterFormat(TJclZipUpdateArchive); RegisterFormat(TJclBZ2UpdateArchive); RegisterFormat(TJcl7zUpdateArchive); @@ -6383,6 +6477,47 @@ FNumberOfPasses := Value; end; +//=== { TJclXzCompressArchive } ============================================== + +class function TJclXzCompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionXzExtensions); +end; + +class function TJclXzCompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionXzName); +end; + +procedure TJclXzCompressArchive.CreateCompressionObject; +begin + inherited CreateCompressionObject; + FCompressionMethod := cmLZMA; +end; + +function TJclXzCompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatXz; +end; + +function TJclXzCompressArchive.GetCompressionMethod: TJclCompressionMethod; +begin + CheckNotCompressing; + Result := FCompressionMethod; +end; + +function TJclXzCompressArchive.GetSupportedCompressionMethods: TJclCompressionMethods; +begin + Result := [cmLZMA]; +end; + +procedure TJclXzCompressArchive.SetCompressionMethod( + Value: TJclCompressionMethod); +begin + CheckNotCompressing; + FCompressionMethod := Value; +end; + //=== { TJclSevenzipOpenCallback } =========================================== type @@ -6985,9 +7120,31 @@ class function TJclLzmaDecompressArchive.MultipleItemContainer: Boolean; begin - Result := True; + Result := False; end; +//=== { TJclLzma86DecompressArchive } ======================================== + +class function TJclLzma86DecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionLzma86Extensions); +end; + +class function TJclLzma86DecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionLzma86Name); +end; + +function TJclLzma86DecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatLzma86; +end; + +class function TJclLzma86DecompressArchive.MultipleItemContainer: Boolean; +begin + Result := False; +end; + //=== { TJclPeDecompressArchive } ============================================ class function TJclPeDecompressArchive.ArchiveExtensions: string; @@ -7374,6 +7531,106 @@ Result := CLSID_CFormatGZip; end; +//=== { TJclXzDecompressArchive } ============================================ + +class function TJclXzDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionXzExtensions); +end; + +class function TJclXzDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionXzName); +end; + +function TJclXzDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatXz; +end; + +//=== { TJclNtfsDecompressArchive } ========================================== + +class function TJclNtfsDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionNtfsExtensions); +end; + +class function TJclNtfsDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionNtfsName); +end; + +function TJclNtfsDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatNtfs; +end; + +class function TJclNtfsDecompressArchive.MultipleItemContainer: Boolean; +begin + Result := True; +end; + +//=== { TJclFatDecompressArchive } =========================================== + +class function TJclFatDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionFatExtensions); +end; + +class function TJclFatDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionFatName); +end; + +function TJclFatDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatFat; +end; + +class function TJclFatDecompressArchive.MultipleItemContainer: Boolean; +begin + Result := True; +end; + +//=== { TJclMbrDecompressArchive } =========================================== + +class function TJclMbrDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionMbrExtensions); +end; + +class function TJclMbrDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionMbrName); +end; + +function TJclMbrDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatMbr; +end; + +class function TJclMbrDecompressArchive.MultipleItemContainer: Boolean; +begin + Result := True; +end; + +//=== { TJclVhdDecompressArchive } =========================================== + +class function TJclVhdDecompressArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionVhdExtensions); +end; + +class function TJclVhdDecompressArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionVhdName); +end; + +function TJclVhdDecompressArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatVhd; +end; + //=== { TJclSevenzipUpdateArchive } ========================================== procedure TJclSevenzipUpdateArchive.Compress; @@ -8259,6 +8516,49 @@ FNumberOfPasses := Value; end; +//=== { TJclXzUpdateArchive } ================================================ + +class function TJclXzUpdateArchive.ArchiveExtensions: string; +begin + Result := LoadResString(@RsCompressionXzExtensions); +end; + +class function TJclXzUpdateArchive.ArchiveName: string; +begin + Result := LoadResString(@RsCompressionXzExtensions); +end; + +procedure TJclXzUpdateArchive.CreateCompressionObject; +begin + inherited CreateCompressionObject; + FCompressionMethod := cmLZMA +end; + +function TJclXzUpdateArchive.GetCLSID: TGUID; +begin + Result := CLSID_CFormatXz; +end; + +function TJclXzUpdateArchive.GetCompressionMethod: TJclCompressionMethod; +begin + CheckNotDecompressing; + CheckNotCompressing; + Result := FCompressionMethod; +end; + +function TJclXzUpdateArchive.GetSupportedCompressionMethods: TJclCompressionMethods; +begin + Result := [cmLZMA]; +end; + +procedure TJclXzUpdateArchive.SetCompressionMethod( + Value: TJclCompressionMethod); +begin + CheckNotDecompressing; + CheckNotCompressing; + FCompressionMethod := Value; +end; + {$ENDIF MSWINDOWS} initialization Modified: trunk/jcl/source/common/JclResources.pas =================================================================== --- trunk/jcl/source/common/JclResources.pas 2009-07-14 12:33:17 UTC (rev 2858) +++ trunk/jcl/source/common/JclResources.pas 2009-07-14 14:08:40 UTC (rev 2859) @@ -836,6 +836,8 @@ RsCompressionNsisExtensions = '*.nsis'; RsCompressionLzmaName = 'Lzma archive'; RsCompressionLzmaExtensions = '*.lzma'; + RsCompressionLzma86Name = 'Lzma86 archive'; + RsCompressionLzma86Extensions = '*.lzma86'; RsCompressionPeName = 'Pe archive'; // TODO: extension might be *.*, but then TJclCompressionStreamFormats.FindDecompressFormat can fail RsCompressionPeExtensions = '*.'; @@ -876,6 +878,16 @@ RsCompressionTarExtensions = '*.tar'; RsCompressionGZipName = 'GZip archive'; RsCompressionGZipExtensions = '*.gz;*.gzip;*.tgz;*.tpz'; + RsCompressionXzName = 'xz archive'; + RsCompressionXzExtensions = '*.xz;*.txz'; + RsCompressionNtfsName = 'Ntfs archive'; + RsCompressionNtfsExtensions = '*.ntfs;*.img'; + RsCompressionFatName = 'Fat archive'; + RsCompressionFatExtensions = '*.fat;*.img'; + RsCompressionMbrName = 'Mbr archive'; + RsCompressionMbrExtensions = '*.mbr'; + RsCompressionVhdName = 'Vhd archive'; + RsCompressionVhdExtensions = '*.vhd;*.mbr'; RsCompressionDuplicate = 'The file %s already exists in the archive'; RsCompressionReplaceError = 'At least one compression volumes could not be replaced after an archive out-of-place update'; Modified: trunk/jcl/source/windows/sevenzip.pas =================================================================== --- trunk/jcl/source/windows/sevenzip.pas 2009-07-14 12:33:17 UTC (rev 2858) +++ trunk/jcl/source/windows/sevenzip.pas 2009-07-14 14:08:40 UTC (rev 2859) @@ -45,7 +45,7 @@ { } {**************************************************************************************************} { } -{ Last modified: $Date:: $ } +{ Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } { } @@ -97,6 +97,12 @@ CLSID_CFormatCab : TGUID = '{23170F69-40C1-278A-1000-000110080000}'; CLSID_CFormatNsis : TGUID = '{23170F69-40C1-278A-1000-000110090000}'; CLSID_CFormatLzma : TGUID = '{23170F69-40C1-278A-1000-0001100A0000}'; + CLSID_CFormatLzma86 : TGUID = '{23170F69-40C1-278A-1000-0001100B0000}'; + CLSID_CFormatXz : TGUID = '{23170F69-40C1-278A-1000-0001100C0000}'; + CLSID_CFormatNtfs : TGUID = '{23170F69-40C1-278A-1000-000110D90000}'; + CLSID_CFormatFat : TGUID = '{23170F69-40C1-278A-1000-000110DA0000}'; + CLSID_CFormatMbr : TGUID = '{23170F69-40C1-278A-1000-000110DB0000}'; + CLSID_CFormatVhd : TGUID = '{23170F69-40C1-278A-1000-000110DC0000}'; CLSID_CFormatPe : TGUID = '{23170F69-40C1-278A-1000-000110DD0000}'; CLSID_CFormatElf : TGUID = '{23170F69-40C1-278A-1000-000110DE0000}'; CLSID_CFormatMacho : TGUID = '{23170F69-40C1-278A-1000-000110DF0000}'; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-14 12:33:20
|
Revision: 2858 http://jcl.svn.sourceforge.net/jcl/?rev=2858&view=rev Author: outchy Date: 2009-07-14 12:33:17 +0000 (Tue, 14 Jul 2009) Log Message: ----------- Mantis 4837: Too many GetTempPath encapsulations Modified Paths: -------------- trunk/jcl/source/common/JclSysInfo.pas Modified: trunk/jcl/source/common/JclSysInfo.pas =================================================================== --- trunk/jcl/source/common/JclSysInfo.pas 2009-07-11 16:21:19 UTC (rev 2857) +++ trunk/jcl/source/common/JclSysInfo.pas 2009-07-14 12:33:17 UTC (rev 2858) @@ -1693,18 +1693,8 @@ end; function GetWindowsTempFolder: string; -var - Required: Cardinal; begin - Result := ''; - Required := GetTempPath(0, nil); - if Required <> 0 then - begin - SetLength(Result, Required); - GetTempPath(Required, PChar(Result)); - StrResetLength(Result); - Result := PathRemoveSeparator(Result); - end; + Result := PathRemoveSeparator(PathGetTempPath); end; function GetDesktopFolder: string; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <usc...@us...> - 2009-07-11 16:21:22
|
Revision: 2857 http://jcl.svn.sourceforge.net/jcl/?rev=2857&view=rev Author: uschuster Date: 2009-07-11 16:21:19 +0000 (Sat, 11 Jul 2009) Log Message: ----------- fixed wrong parent in TJclSimpleXMLElem.Assign (Mantis #4839) Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2009-07-08 21:27:32 UTC (rev 2856) +++ trunk/jcl/source/common/JclSimpleXml.pas 2009-07-11 16:21:19 UTC (rev 2857) @@ -427,7 +427,7 @@ public procedure LoadFromStringStream(StringStream: TJclStringStream; AParent: TJclSimpleXML = nil); override; procedure SaveToStringStream(StringStream: TJclStringStream; const Level: string = ''; AParent: TJclSimpleXML = nil); override; - end; + end; TJclSimpleXMLOptions = set of (sxoAutoCreate, sxoAutoIndent, sxoAutoEncodeValue, sxoAutoEncodeEntity, sxoDoNotSaveProlog, sxoTrimPrecedingTextWhitespace); @@ -1336,7 +1336,7 @@ begin // Create from the class type, so that the virtual constructor is called // creating an element of the correct class type. - Elem := TJclSimpleXMLElemClass(Elems.Items[I].ClassType).Create(Elems.Items[I].Parent); + Elem := TJclSimpleXMLElemClass(Elems.Items[I].ClassType).Create(Self); Elem.Assign(Elems.Items[I]); Items.Add(Elem); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-08 21:27:37
|
Revision: 2856 http://jcl.svn.sourceforge.net/jcl/?rev=2856&view=rev Author: outchy Date: 2009-07-08 21:27:32 +0000 (Wed, 08 Jul 2009) Log Message: ----------- Mantis 4851: TJclTaskSchedule.IsRunning not working on Windows Vista Force the enumeration of all services to find the task manager one. Modified Paths: -------------- trunk/jcl/source/windows/JclTask.pas Modified: trunk/jcl/source/windows/JclTask.pas =================================================================== --- trunk/jcl/source/windows/JclTask.pas 2009-07-08 19:54:44 UTC (rev 2855) +++ trunk/jcl/source/windows/JclTask.pas 2009-07-08 21:27:32 UTC (rev 2856) @@ -290,7 +290,7 @@ begin with TJclSCManager.Create do try - Refresh; + Refresh(True); Result := FindService('Schedule', NtSvc) and (NtSvc.ServiceState = ssRunning); finally Free; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-08 19:54:46
|
Revision: 2855 http://jcl.svn.sourceforge.net/jcl/?rev=2855&view=rev Author: outchy Date: 2009-07-08 19:54:44 +0000 (Wed, 08 Jul 2009) Log Message: ----------- Fix a warning with Delphi 2009: this class property is not needed since JclRTTI.pas is based on interfaces. Modified Paths: -------------- trunk/jcl/source/common/JclRTTI.pas Modified: trunk/jcl/source/common/JclRTTI.pas =================================================================== --- trunk/jcl/source/common/JclRTTI.pas 2009-07-08 19:27:10 UTC (rev 2854) +++ trunk/jcl/source/common/JclRTTI.pas 2009-07-08 19:54:44 UTC (rev 2855) @@ -665,9 +665,6 @@ public property BaseType: IJclEnumerationTypeInfo read GetBaseType; property Names[const I: Integer]: string read GetNames; default; - {$IFDEF RTL140_UP} - property UnitName: string read GetUnitName; - {$ENDIF RTL140_UP} end; function TJclEnumerationTypeInfo.GetBaseType: IJclEnumerationTypeInfo; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-08 19:27:13
|
Revision: 2854 http://jcl.svn.sourceforge.net/jcl/?rev=2854&view=rev Author: outchy Date: 2009-07-08 19:27:10 +0000 (Wed, 08 Jul 2009) Log Message: ----------- Compatibility of revision 2852 with Delphi 2009. Revision Links: -------------- http://jcl.svn.sourceforge.net/jcl/?rev=2852&view=rev Modified Paths: -------------- trunk/jcl/source/common/JclBorlandTools.pas Modified: trunk/jcl/source/common/JclBorlandTools.pas =================================================================== --- trunk/jcl/source/common/JclBorlandTools.pas 2009-07-08 14:00:42 UTC (rev 2853) +++ trunk/jcl/source/common/JclBorlandTools.pas 2009-07-08 19:27:10 UTC (rev 2854) @@ -891,7 +891,7 @@ Libc, {$ENDIF HAS_UNIT_LIBC} JclFileUtils, JclLogic, JclResources, - JclStrings, JclAnsiStrings, JclWideStrings, + JclAnsiStrings, JclWideStrings, JclStrings, JclSysInfo, JclSimpleXml; // Internal @@ -5455,7 +5455,7 @@ if RegKeyExists(HKEY_LOCAL_MACHINE, KeyName) and RegGetKeyNames(HKEY_LOCAL_MACHINE, KeyName, VersionNumbers) then for I := 0 to VersionNumbers.Count - 1 do - if JclStrings.StrIsSubSet(VersionNumbers[I], CharIsFracDigit) then + if StrIsSubSet(VersionNumbers[I], CharIsFracDigit) then begin VersionKeyName := KeyName + DirDelimiter + VersionNumbers[I]; if RegKeyExists(HKEY_LOCAL_MACHINE, VersionKeyName) then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-08 14:18:37
|
Revision: 2853 http://jcl.svn.sourceforge.net/jcl/?rev=2853&view=rev Author: outchy Date: 2009-07-08 14:00:42 +0000 (Wed, 08 Jul 2009) Log Message: ----------- StackTraceViewer expert support for C++Builder 5 and C++Builder 6. Regenerated some resources. Modified Paths: -------------- trunk/jcl/packages/JclPackagesC50.bpg trunk/jcl/packages/JclPackagesC60.bpg trunk/jcl/packages/JclPackagesD100.bdsgroup trunk/jcl/packages/JclPackagesD110.groupproj trunk/jcl/packages/JclPackagesD120.groupproj trunk/jcl/packages/JclPackagesD50.bpg trunk/jcl/packages/JclPackagesD60.bpg trunk/jcl/packages/JclPackagesD70.bpg trunk/jcl/packages/JclPackagesD90.bdsgroup trunk/jcl/packages/d10/JclVersionControlExpert.res trunk/jcl/packages/d11/JclContainers.res trunk/jcl/packages/d11/JclRepositoryExpert.res trunk/jcl/packages/d11/JclSIMDViewExpert.res trunk/jcl/packages/d11/JclVersionControlExpert.res trunk/jcl/packages/d12/JclRepositoryExpert.res trunk/jcl/packages/d12/JclSIMDViewExpert.res trunk/jcl/packages/d12/JclVersionControlExpert.res trunk/jcl/packages/d6/JclVersionControlExpert.res trunk/jcl/packages/d7/JclRepositoryExpert.res trunk/jcl/packages/d7/JclSIMDViewExpert.res trunk/jcl/packages/d7/JclUsesExpert.res trunk/jcl/packages/d7/JclVcl.res trunk/jcl/packages/d7/JclVersionControlExpert.res trunk/jcl/packages/resources.mak trunk/jcl/packages/xml/JclStackTraceViewerExpert-D.xml trunk/jcl/packages/xml/JclStackTraceViewerExpertDLL-L.xml Added Paths: ----------- trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.bpk trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.cpp trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dof trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dpk trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.rc trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.res trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpf trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpr trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.cpp trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.dof trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.rc trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.res trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk trunk/jcl/packages/c6/JclStackTraceViewerExpert.cpp trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof trunk/jcl/packages/c6/JclStackTraceViewerExpert.dpk trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc trunk/jcl/packages/c6/JclStackTraceViewerExpert.res trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpf trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpr trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.cpp trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.dof trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.res Modified: trunk/jcl/packages/JclPackagesC50.bpg =================================================================== --- trunk/jcl/packages/JclPackagesC50.bpg 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesC50.bpg 2009-07-08 14:00:42 UTC (rev 2853) @@ -12,7 +12,8 @@ PROJECTS = JclC50.bpl JclVclC50.bpl JclContainersC50.bpl JclBaseExpertC50.bpl \ JclDebugExpertC50.bpl JclFavoriteFoldersExpertC50.bpl \ JclProjectAnalysisExpertC50.bpl JclRepositoryExpertC50.bpl \ - JclSIMDViewExpertC50.bpl JclThreadNameExpertC50.bpl JclUsesExpertC50.bpl \ + JclSIMDViewExpertC50.bpl JclStackTraceViewerExpertC50.bpl \ + JclThreadNameExpertC50.bpl JclUsesExpertC50.bpl \ JclVersionControlExpertC50.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) @@ -54,6 +55,10 @@ $(ROOT)\bin\bpr2mak $** $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak +JclStackTraceViewerExpertC50.bpl: c5\JclStackTraceViewerExpertC50.bpk + $(ROOT)\bin\bpr2mak $** + $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak + JclThreadNameExpertC50.bpl: c5\JclThreadNameExpertC50.bpk $(ROOT)\bin\bpr2mak $** $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak Modified: trunk/jcl/packages/JclPackagesC60.bpg =================================================================== --- trunk/jcl/packages/JclPackagesC60.bpg 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesC60.bpg 2009-07-08 14:00:42 UTC (rev 2853) @@ -12,7 +12,8 @@ PROJECTS = JclC60.bpl JclVclC60.bpl JclContainersC60.bpl \ JclBaseExpertC60.bpl JclDebugExpertC60.bpl JclFavoriteFoldersExpertC60.bpl \ JclProjectAnalysisExpertC60.bpl JclRepositoryExpertC60.bpl \ - JclSIMDViewExpertC60.bpl JclThreadNameExpertC60.bpl JclUsesExpertC60.bpl \ + JclSIMDViewExpertC60.bpl JclStackTraceViewerExpertC60.bpl \ + JclThreadNameExpertC60.bpl JclUsesExpertC60.bpl \ JclVersionControlExpertC60.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) @@ -54,6 +55,10 @@ $(ROOT)\bin\bpr2mak $** $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak +JclStackTraceViewerExpertC60.bpl: c6\JclStackTraceViewerExpert.bpk + $(ROOT)\bin\bpr2mak $** + $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak + JclThreadNameExpertC60.bpl: c6\JclThreadNameExpert.bpk $(ROOT)\bin\bpr2mak $** $(ROOT)\bin\make -$(MAKEFLAGS) -f$*.mak Modified: trunk/jcl/packages/JclPackagesD100.bdsgroup =================================================================== --- trunk/jcl/packages/JclPackagesD100.bdsgroup 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesD100.bdsgroup 2009-07-08 14:00:42 UTC (rev 2853) @@ -18,9 +18,9 @@ <Projects Name="JclProjectAnalysisExpert100.bpl">d10\JclProjectAnalysisExpert.bdsproj</Projects> <Projects Name="JclRepositoryExpert100.bpl">d10\JclRepositoryExpert.bdsproj</Projects> <Projects Name="JclSIMDViewExpert100.bpl">d10\JclSIMDViewExpert.bdsproj</Projects> + <Projects Name="JclStackTraceViewerExpert100.bpl">d10\JclStackTraceViewerExpert.bdsproj</Projects> <Projects Name="JclVersionControlExpert100.bpl">d10\JclVersionControlExpert.bdsproj</Projects> - <Projects Name="JclStackTraceViewerExpert100.bpl">d10\JclStackTraceViewerExpert.bdsproj</Projects> - <Projects Name="Targets">Jcl100.bpl JclVcl100.bpl JclContainers100.bpl JclBaseExpert100.bpl JclDebugExpert100.bpl JclFavoriteFoldersExpert100.bpl JclProjectAnalysisExpert100.bpl JclRepositoryExpert100.bpl JclSIMDViewExpert100.bpl JclVersionControlExpert100.bpl JclStackTraceViewerExpert100.bpl</Projects> + <Projects Name="Targets">Jcl100.bpl JclVcl100.bpl JclContainers100.bpl JclBaseExpert100.bpl JclDebugExpert100.bpl JclFavoriteFoldersExpert100.bpl JclProjectAnalysisExpert100.bpl JclRepositoryExpert100.bpl JclSIMDViewExpert100.bpl JclStackTraceViewerExpert100.bpl JclVersionControlExpert100.bpl</Projects> </Projects> <Dependencies/> </Default.Personality> Modified: trunk/jcl/packages/JclPackagesD110.groupproj =================================================================== --- trunk/jcl/packages/JclPackagesD110.groupproj 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesD110.groupproj 2009-07-08 14:00:42 UTC (rev 2853) @@ -91,6 +91,15 @@ <Target Name="JclSIMDViewExpert:Make"> <MSBuild Projects="d11\JclSIMDViewExpert.dproj" Targets="Make" /> </Target> + <Target Name="JclStackTraceViewerExpert"> + <MSBuild Projects="d11\JclStackTraceViewerExpert.dproj" Targets="" /> + </Target> + <Target Name="JclStackTraceViewerExpert:Clean"> + <MSBuild Projects="d11\JclStackTraceViewerExpert.dproj" Targets="Clean" /> + </Target> + <Target Name="JclStackTraceViewerExpert:Make"> + <MSBuild Projects="d11\JclStackTraceViewerExpert.dproj" Targets="Make" /> + </Target> <Target Name="JclVersionControlExpert"> <MSBuild Projects="d11\JclVersionControlExpert.dproj" Targets="" /> </Target> @@ -100,22 +109,13 @@ <Target Name="JclVersionControlExpert:Make"> <MSBuild Projects="d11\JclVersionControlExpert.dproj" Targets="Make" /> </Target> - <Target Name="JclStackTraceViewerExpert"> - <MSBuild Projects="d11\JclStackTraceViewerExpert.dproj" Targets="" /> - </Target> - <Target Name="JclStackTraceViewerExpert:Clean"> - <MSBuild Projects="d11\JclStackTraceViewerExpert.dproj" Targets="Clean" /> - </Target> - <Target Name="JclStackTraceViewerExpert:Make"> - <MSBuild Projects="d11\JclStackTraceViewerExpert.dproj" Targets="Make" /> - </Target> <Target Name="Build"> - <CallTarget Targets="Jcl;JclVcl;JclContainers;JclBaseExpert;JclDebugExpert;JclFavoriteFoldersExpert;JclProjectAnalysisExpert;JclRepositoryExpert;JclSIMDViewExpert;JclVersionControlExpert;JclStackTraceViewerExpert" /> + <CallTarget Targets="Jcl;JclVcl;JclContainers;JclBaseExpert;JclDebugExpert;JclFavoriteFoldersExpert;JclProjectAnalysisExpert;JclRepositoryExpert;JclSIMDViewExpert;JclStackTraceViewerExpert;JclVersionControlExpert" /> </Target> <Target Name="Clean"> - <CallTarget Targets="Jcl:Clean;JclVcl:Clean;JclContainers:Clean;JclBaseExpert:Clean;JclDebugExpert:Clean;JclFavoriteFoldersExpert:Clean;JclProjectAnalysisExpert:Clean;JclRepositoryExpert:Clean;JclSIMDViewExpert:Clean;JclVersionControlExpert:Clean;JclStackTraceViewerExpert:Clean" /> + <CallTarget Targets="Jcl:Clean;JclVcl:Clean;JclContainers:Clean;JclBaseExpert:Clean;JclDebugExpert:Clean;JclFavoriteFoldersExpert:Clean;JclProjectAnalysisExpert:Clean;JclRepositoryExpert:Clean;JclSIMDViewExpert:Clean;JclStackTraceViewerExpert:Clean;JclVersionControlExpert:Clean" /> </Target> <Target Name="Make"> - <CallTarget Targets="Jcl:Make;JclVcl:Make;JclContainers:Make;JclBaseExpert:Make;JclDebugExpert:Make;JclFavoriteFoldersExpert:Make;JclProjectAnalysisExpert:Make;JclRepositoryExpert:Make;JclSIMDViewExpert:Make;JclVersionControlExpert:Make;JclStackTraceViewerExpert:Make" /> + <CallTarget Targets="Jcl:Make;JclVcl:Make;JclContainers:Make;JclBaseExpert:Make;JclDebugExpert:Make;JclFavoriteFoldersExpert:Make;JclProjectAnalysisExpert:Make;JclRepositoryExpert:Make;JclSIMDViewExpert:Make;JclStackTraceViewerExpert:Make;JclVersionControlExpert:Make" /> </Target> </Project> \ No newline at end of file Modified: trunk/jcl/packages/JclPackagesD120.groupproj =================================================================== --- trunk/jcl/packages/JclPackagesD120.groupproj 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesD120.groupproj 2009-07-08 14:00:42 UTC (rev 2853) @@ -30,10 +30,10 @@ <Projects Include="d12\JclSIMDViewExpert.dproj"> <Dependencies/> </Projects> - <Projects Include="d12\JclVersionControlExpert.dproj"> + <Projects Include="d12\JclStackTraceViewerExpert.dproj"> <Dependencies/> </Projects> - <Projects Include="d12\JclStackTraceViewerExpert.dproj"> + <Projects Include="d12\JclVersionControlExpert.dproj"> <Dependencies/> </Projects> </ItemGroup> @@ -124,6 +124,15 @@ <Target Name="JclSIMDViewExpert:Make"> <MSBuild Targets="Make" Projects="d12\JclSIMDViewExpert.dproj"/> </Target> + <Target Name="JclStackTraceViewerExpert"> + <MSBuild Projects="d12\JclStackTraceViewerExpert.dproj"/> + </Target> + <Target Name="JclStackTraceViewerExpert:Clean"> + <MSBuild Targets="Clean" Projects="d12\JclStackTraceViewerExpert.dproj"/> + </Target> + <Target Name="JclStackTraceViewerExpert:Make"> + <MSBuild Targets="Make" Projects="d12\JclStackTraceViewerExpert.dproj"/> + </Target> <Target Name="JclVersionControlExpert"> <MSBuild Projects="d12\JclVersionControlExpert.dproj"/> </Target> @@ -133,23 +142,14 @@ <Target Name="JclVersionControlExpert:Make"> <MSBuild Targets="Make" Projects="d12\JclVersionControlExpert.dproj"/> </Target> - <Target Name="JclStackTraceViewerExpert"> - <MSBuild Projects="d12\JclStackTraceViewerExpert.dproj"/> - </Target> - <Target Name="JclStackTraceViewerExpert:Clean"> - <MSBuild Targets="Clean" Projects="d12\JclStackTraceViewerExpert.dproj"/> - </Target> - <Target Name="JclStackTraceViewerExpert:Make"> - <MSBuild Targets="Make" Projects="d12\JclStackTraceViewerExpert.dproj"/> - </Target> <Target Name="Build"> - <CallTarget Targets="Jcl;JclVcl;JclContainers;JclBaseExpert;JclDebugExpert;JclFavoriteFoldersExpert;JclProjectAnalysisExpert;JclRepositoryExpert;JclSIMDViewExpert;JclVersionControlExpert;JclStackTraceViewerExpert"/> + <CallTarget Targets="Jcl;JclVcl;JclContainers;JclBaseExpert;JclDebugExpert;JclFavoriteFoldersExpert;JclProjectAnalysisExpert;JclRepositoryExpert;JclSIMDViewExpert;JclStackTraceViewerExpert;JclVersionControlExpert"/> </Target> <Target Name="Clean"> - <CallTarget Targets="Jcl:Clean;JclVcl:Clean;JclContainers:Clean;JclBaseExpert:Clean;JclDebugExpert:Clean;JclFavoriteFoldersExpert:Clean;JclProjectAnalysisExpert:Clean;JclRepositoryExpert:Clean;JclSIMDViewExpert:Clean;JclVersionControlExpert:Clean;JclStackTraceViewerExpert:Clean"/> + <CallTarget Targets="Jcl:Clean;JclVcl:Clean;JclContainers:Clean;JclBaseExpert:Clean;JclDebugExpert:Clean;JclFavoriteFoldersExpert:Clean;JclProjectAnalysisExpert:Clean;JclRepositoryExpert:Clean;JclSIMDViewExpert:Clean;JclStackTraceViewerExpert:Clean;JclVersionControlExpert:Clean"/> </Target> <Target Name="Make"> - <CallTarget Targets="Jcl:Make;JclVcl:Make;JclContainers:Make;JclBaseExpert:Make;JclDebugExpert:Make;JclFavoriteFoldersExpert:Make;JclProjectAnalysisExpert:Make;JclRepositoryExpert:Make;JclSIMDViewExpert:Make;JclVersionControlExpert:Make;JclStackTraceViewerExpert:Make"/> + <CallTarget Targets="Jcl:Make;JclVcl:Make;JclContainers:Make;JclBaseExpert:Make;JclDebugExpert:Make;JclFavoriteFoldersExpert:Make;JclProjectAnalysisExpert:Make;JclRepositoryExpert:Make;JclSIMDViewExpert:Make;JclStackTraceViewerExpert:Make;JclVersionControlExpert:Make"/> </Target> <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/> </Project> Modified: trunk/jcl/packages/JclPackagesD50.bpg =================================================================== --- trunk/jcl/packages/JclPackagesD50.bpg 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesD50.bpg 2009-07-08 14:00:42 UTC (rev 2853) @@ -12,8 +12,9 @@ PROJECTS = JclD50.bpl JclVclD50.bpl JclContainersD50.bpl JclBaseExpertD50.bpl \ JclDebugExpertD50.bpl JclFavoriteFoldersExpertD50.bpl \ JclProjectAnalysisExpertD50.bpl JclRepositoryExpertD50.bpl \ - JclSIMDViewExpertD50.bpl JclThreadNameExpertD50.bpl JclUsesExpertD50.bpl \ - JclVersionControlExpertD50.bpl JclStackTraceViewerExpertD50.bpl + JclSIMDViewExpertD50.bpl JclStackTraceViewerExpertD50.bpl \ + JclThreadNameExpertD50.bpl JclUsesExpertD50.bpl \ + JclVersionControlExpertD50.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ @@ -45,6 +46,9 @@ JclSIMDViewExpertD50.bpl: d5\JclSIMDViewExpertD50.dpk $(DCC) +JclStackTraceViewerExpertD50.bpl: d5\JclStackTraceViewerExpertD50.dpk + $(DCC) + JclThreadNameExpertD50.bpl: d5\JclThreadNameExpertD50.dpk $(DCC) @@ -54,7 +58,4 @@ JclVersionControlExpertD50.bpl: d5\JclVersionControlExpertD50.dpk $(DCC) -JclStackTraceViewerExpertD50.bpl: d5\JclStackTraceViewerExpertD50.dpk - $(DCC) - Modified: trunk/jcl/packages/JclPackagesD60.bpg =================================================================== --- trunk/jcl/packages/JclPackagesD60.bpg 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesD60.bpg 2009-07-08 14:00:42 UTC (rev 2853) @@ -12,8 +12,9 @@ PROJECTS = JclD60.bpl JclVclD60.bpl JclContainersD60.bpl \ JclBaseExpertD60.bpl JclDebugExpertD60.bpl JclFavoriteFoldersExpertD60.bpl \ JclProjectAnalysisExpertD60.bpl JclRepositoryExpertD60.bpl \ - JclSIMDViewExpertD60.bpl JclThreadNameExpertD60.bpl JclUsesExpertD60.bpl \ - JclVersionControlExpertD60.bpl JclStackTraceViewerExpertD60.bpl + JclSIMDViewExpertD60.bpl JclStackTraceViewerExpertD60.bpl \ + JclThreadNameExpertD60.bpl JclUsesExpertD60.bpl \ + JclVersionControlExpertD60.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ @@ -42,6 +43,9 @@ JclSIMDViewExpertD60.bpl: d6\JclSIMDViewExpert.dpk $(DCC) +JclStackTraceViewerExpertD60.bpl: d6\JclStackTraceViewerExpert.dpk + $(DCC) + JclThreadNameExpertD60.bpl: d6\JclThreadNameExpert.dpk $(DCC) @@ -54,7 +58,4 @@ JclVersionControlExpertD60.bpl: d6\JclVersionControlExpert.dpk $(DCC) -JclStackTraceViewerExpertD60.bpl: d6\JclStackTraceViewerExpert.dpk - $(DCC) - Modified: trunk/jcl/packages/JclPackagesD70.bpg =================================================================== --- trunk/jcl/packages/JclPackagesD70.bpg 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesD70.bpg 2009-07-08 14:00:42 UTC (rev 2853) @@ -12,8 +12,8 @@ PROJECTS = Jcl70.bpl JclVcl70.bpl JclContainers70.bpl \ JclBaseExpert70.bpl JclDebugExpert70.bpl JclFavoriteFoldersExpert70.bpl \ JclProjectAnalysisExpert70.bpl JclRepositoryExpert70.bpl \ - JclSIMDViewExpert70.bpl JclUsesExpert70.bpl JclVersionControlExpert70.bpl \ - JclStackTraceViewerExpert70.bpl + JclSIMDViewExpert70.bpl JclStackTraceViewerExpert70.bpl \ + JclUsesExpert70.bpl JclVersionControlExpert70.bpl #------------------------------------------------------------------------------ default: $(PROJECTS) #------------------------------------------------------------------------------ @@ -45,13 +45,13 @@ JclSIMDViewExpert70.bpl: d7\JclSIMDViewExpert.dpk $(DCC) +JclStackTraceViewerExpert70.bpl: d7\JclStackTraceViewerExpert.dpk + $(DCC) + JclUsesExpert70.bpl: d7\JclUsesExpert.dpk $(DCC) JclVersionControlExpert70.bpl: d7\JclVersionControlExpert.dpk $(DCC) -JclStackTraceViewerExpert70.bpl: d7\JclStackTraceViewerExpert.dpk - $(DCC) - Modified: trunk/jcl/packages/JclPackagesD90.bdsgroup =================================================================== --- trunk/jcl/packages/JclPackagesD90.bdsgroup 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/JclPackagesD90.bdsgroup 2009-07-08 14:00:42 UTC (rev 2853) @@ -20,9 +20,9 @@ <Projects Name="JclProjectAnalysisExpert90.bpl">d9\JclProjectAnalysisExpert.bdsproj</Projects> <Projects Name="JclRepositoryExpert90.bpl">d9\JclRepositoryExpert.bdsproj</Projects> <Projects Name="JclSIMDViewExpert90.bpl">d9\JclSIMDViewExpert.bdsproj</Projects> + <Projects Name="JclStackTraceViewerExpert90.bpl">d9\JclStackTraceViewerExpert.bdsproj</Projects> <Projects Name="JclVersionControlExpert90.bpl">d9\JclVersionControlExpert.bdsproj</Projects> - <Projects Name="JclStackTraceViewerExpert90.bpl">d9\JclStackTraceViewerExpert.bdsproj</Projects> - <Projects Name="Targets">Jcl90.bpl JclVcl90.bpl JclContainers90.bpl JclBaseExpert90.bpl JclDebugExpert90.bpl JclFavoriteFoldersExpert90.bpl JclProjectAnalysisExpert90.bpl JclRepositoryExpert90.bpl JclSIMDViewExpert90.bpl JclVersionControlExpert90.bpl JclStackTraceViewerExpert90.bpl</Projects> + <Projects Name="Targets">Jcl90.bpl JclVcl90.bpl JclContainers90.bpl JclBaseExpert90.bpl JclDebugExpert90.bpl JclFavoriteFoldersExpert90.bpl JclProjectAnalysisExpert90.bpl JclRepositoryExpert90.bpl JclSIMDViewExpert90.bpl JclStackTraceViewerExpert90.bpl JclVersionControlExpert90.bpl</Projects> </Projects> <Dependencies/> </Default.Personality> Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.bpk =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.bpk (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.bpk 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,77 @@ +<?xml version='1.0' encoding='utf-8' ?> +<!-- C++Builder XML Project --> +<!-- +***************************************************************************** + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpert-D.xml) + + Last generated: 08-07-2009 13:15:12 UTC +***************************************************************************** +--> +<PROJECT> + <MACROS> + <VERSION value="BCB.05.03"/> + <PROJECT value="JclStackTraceViewerExpertC50.bpl"/> + <OBJFILES value=" + ..\..\lib\c5\JclStackTraceViewerExpertC50.obj + ..\..\lib\c5\JclStackTraceViewerMainFormDelphi.obj + "/> + <RESFILES value="JclStackTraceViewerExpertC50.res"/> + <IDLFILES value=""/> + <IDLGENFILES value=""/> + <DEFFILE value=""/> + <RESDEPEN value="$(RESFILES) + ..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.dfm + "/> + <LIBFILES value=" + "/> + <LIBRARIES value=""/> + <SPARELIBS value=""/> + <PACKAGES value=" + vcl50.bpi + dsnide50.bpi + JclC50.bpi + JclBaseExpertC50.bpi + "/> + <PATHCPP value=".;"/> + <PATHPAS value=".;..\..\experts\stacktraceviewer;"/> + <PATHRC value=".;"/> + <PATHASM value=".;"/> + <DEBUGLIBPATH value="$(BCB)\lib\debug"/> + <RELEASELIBPATH value="$(BCB)\lib\release"/> + <LINKER value="ilink32"/> + <USERDEFINES value="BCB;RELEASE"/> + <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> + <MAINSOURCE value="JclStackTraceViewerExpertC50.cpp"/> + <INCLUDEPATH value="..\..\source\include;..\..\source\windows;..\..\source\vcl;..\..\source\common;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> + <LIBPATH value="..\..\experts\stacktraceviewer;..\..\lib\c5;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> + <WARNINGS value="-w-par"/> + <OTHERFILES value=""/> + </MACROS> + <OPTIONS> + <IDLCFLAGS value="-I..\..\source\include -I..\..\source\windows -I..\..\source\vcl -I..\..\source\common + -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -boa"/> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c + -tWM -DBCB;RELEASE"/> + <PFLAGS value="-N0..\..\lib\c5 -N2..\..\lib\c5 -$YD -$W -$O- -$A8 -v -JPHNE -M + -LUvcl50 -LUdsnide50 -LUJclC50 -LUJclBaseExpertC50 -DBCB;RELEASE + -U$(BCB)\Projects\Lib -U..\..\lib\c5 + "/> + <RFLAGS value=""/> + <AFLAGS value="/mx /w2 /zd"/> + <LFLAGS value="-I..\..\lib\c5 -D"JCL Stack Trace Viewer for C++Builder 5" + -b:0x58120000 -aa -Tpp -Gpd -x -Gn -Gl -Gi -v"/> + <OTHERFILES value=""/> + </OPTIONS> + <LINKER> + <ALLOBJ value="c0pkg32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/> + <ALLRES value="$(RESFILES)"/> + <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/> + <OTHERFILES value=""/> + </LINKER> + <BUILDTOOLS> + </BUILDTOOLS> + + <IDEOPTIONS> + </IDEOPTIONS> +</PROJECT> Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.bpk ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.cpp =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.cpp (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.cpp 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,29 @@ +//--------------------------------------------------------------------------- +/* +----------------------------------------------------------------------------- + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpert-D.xml) + + Last generated: 08-07-2009 13:15:13 UTC +----------------------------------------------------------------------------- +*/ + +#include <vcl.h> +#pragma hdrstop +USERES("JclStackTraceViewerExpertC50.res"); +USEUNIT("..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas"); +USEPACKAGE("vcl50.bpi"); +USEPACKAGE("dsnide50.bpi"); +USEPACKAGE("JclC50.bpi"); +USEPACKAGE("JclBaseExpertC50.bpi"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// Package source. +//--------------------------------------------------------------------------- +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.cpp ___________________________________________________________________ Added: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dof =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dof (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dof 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,5 @@ +[Directories] +UnitOutputDir=..\..\lib\c5 +SearchPath=..\..\source\include +Conditionals=BCB;RELEASE + Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dof ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dpk =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dpk (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dpk 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,51 @@ +package JclStackTraceViewerExpertC50; +{ +----------------------------------------------------------------------------- + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpert-D.xml) + + Last generated: 08-07-2009 13:15:13 UTC +----------------------------------------------------------------------------- +} + +{$R *.res} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS OFF} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $58120000} +{$DESCRIPTION 'JCL Stack Trace Viewer'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +{$DEFINE BCB} +{$DEFINE RELEASE} + +requires + vcl50, + dsnide50, + JclC50, + JclBaseExpertC50 + ; + +contains + JclStackTraceViewerMainFormDelphi in '..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas' {frmStackView} + ; + +end. Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.dpk ___________________________________________________________________ Added: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.rc =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.rc (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.rc 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,32 @@ +VS_VERSION_INFO VERSIONINFO +FILEVERSION 2,0,0,3401 +PRODUCTVERSION 2,0,0,3401 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "Project JEDI\0" + VALUE "FileDescription", "JCL Stack Trace Viewer\0" + VALUE "FileVersion", "2.0.0.3401\0" + VALUE "InternalName", "JclStackTraceViewerExpertC50\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "OriginalFilename", "JclStackTraceViewerExpertC50C50.bpl\0" + VALUE "ProductName", "JEDI Code Library\0" + VALUE "ProductVersion", "2.0 Build 3401\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.rc ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.res =================================================================== (Binary files differ) Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertC50.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpf =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpf (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpf 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,4 @@ +USEUNIT("..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas"); +USEDEF("JclStackTraceViewerExpertDLLC50.def"); +Project file +DllEntryPoint Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpf ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpr =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpr (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpr 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,75 @@ +<?xml version='1.0' encoding='utf-8' ?> +<!-- C++Builder XML Project --> +<!-- +***************************************************************************** + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpertDLL-L.xml) + + Last generated: 08-07-2009 13:15:13 UTC +***************************************************************************** +--> +<PROJECT> + <MACROS> + <VERSION value="BCB.05.03"/> + <PROJECT value="JclStackTraceViewerExpertDLLC50.dll"/> + <OBJFILES value=" + ..\..\lib\c5\JclStackTraceViewerExpertDLLC50.obj + ..\..\lib\c5\JclStackTraceViewerMainFormDelphi.obj + "/> + <RESFILES value="JclStackTraceViewerExpertDLLC50.res"/> + <IDLFILES value=""/> + <IDLGENFILES value=""/> + <DEFFILE value="JclStackTraceViewerExpertDLLC50.def"/> + <RESDEPEN value="$(RESFILES) + ..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.dfm + "/> + <LIBFILES value=" + "/> + <LIBRARIES value=""/> + <SPARELIBS value=""/> + <PACKAGES value=" + vcl50.bpi + dsnide50.bpi + JclC50.bpi + JclBaseExpertC50.bpi + "/> + <PATHCPP value=".;"/> + <PATHPAS value=".;..\..\experts\stacktraceviewer;"/> + <PATHRC value=".;"/> + <PATHASM value=".;"/> + <DEBUGLIBPATH value="$(BCB)\lib\debug"/> + <RELEASELIBPATH value="$(BCB)\lib\release"/> + <LINKER value="ilink32"/> + <USERDEFINES value="BCB;RELEASE"/> + <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> + <MAINSOURCE value="JclStackTraceViewerExpertDLLC50.cpp"/> + <INCLUDEPATH value="..\..\source\include;..\..\source\windows;..\..\source\vcl;..\..\source\common;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> + <LIBPATH value="..\..\experts\stacktraceviewer;..\..\lib\c5;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> + <WARNINGS value="-w-par"/> + <OTHERFILES value=""/> + </MACROS> + <OPTIONS> + <IDLCFLAGS value="-I..\..\source\include -I..\..\source\windows -I..\..\source\vcl -I..\..\source\common + -I$(BCB)\include -I$(BCB)\include\vcl -src_suffix cpp -boa"/> + <CFLAG1 value="-tWD -tWM- -Od -H=$(BCB)\lib\vcl50.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -DBCB;RELEASE"/> + <PFLAGS value="-N2..\..\lib\c5 -N0..\..\lib\c5 -$YD -$W -$O- -$A8 -v -JPHNE -M + -LUvcl50 -LUdsnide50 -LUJclC50 -LUJclBaseExpertC50 -DBCB;RELEASE + -U$(BCB)\Projects\Bpl -U..\..\lib\c5 + "/> + <RFLAGS value=""/> + <AFLAGS value="/mx /w2 /zd"/> + <LFLAGS value="-I..\..\lib\c5 -D"JCL Stack Trace Viewer for C++Builder 5" + -b:0x58120000 -Tpd -aa -Gi -x -Gn -v"/> + <OTHERFILES value=""/> + </OPTIONS> + <LINKER> + <ALLOBJ value="c0d32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/> + <ALLRES value="$(RESFILES)"/> + <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cw32.lib"/> + <OTHERFILES value=""/> + </LINKER> + <BUILDTOOLS> + </BUILDTOOLS> + <IDEOPTIONS> + </IDEOPTIONS> +</PROJECT> Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.bpr ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.cpp =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.cpp (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.cpp 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,29 @@ +//--------------------------------------------------------------------------- +/* +----------------------------------------------------------------------------- + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpertDLL-L.xml) + + Last generated: 08-07-2009 13:15:13 UTC +----------------------------------------------------------------------------- +*/ + +#include <vcl.h> +#pragma hdrstop +USERES("JclStackTraceViewerExpertDLLC50.res"); +USEUNIT("..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas"); +USEPACKAGE("vcl50.bpi"); +USEPACKAGE("dsnide50.bpi"); +USEPACKAGE("JclC50.bpi"); +USEPACKAGE("JclBaseExpertC50.bpi"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// Library source. +//--------------------------------------------------------------------------- +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.cpp ___________________________________________________________________ Added: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.dof =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.dof (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.dof 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,9 @@ +[Directories] +UnitOutputDir=..\..\lib\c5 +SearchPath=..\..\source\include +Conditionals=BCB;RELEASE +[Compiler] +PackageNoLink=1 +[Linker] +Packages=vcl50;dsnide50;JclC50;JclBaseExpertC50 + Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.dof ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.rc =================================================================== --- trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.rc (rev 0) +++ trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.rc 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,32 @@ +VS_VERSION_INFO VERSIONINFO +FILEVERSION 2,0,0,3401 +PRODUCTVERSION 2,0,0,3401 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "Project JEDI\0" + VALUE "FileDescription", "JCL Stack Trace Viewer\0" + VALUE "FileVersion", "2.0.0.3401\0" + VALUE "InternalName", "JclStackTraceViewerExpertDLLC50\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "OriginalFilename", "JclStackTraceViewerExpertDLLC50C50.dll\0" + VALUE "ProductName", "JEDI Code Library\0" + VALUE "ProductVersion", "2.0 Build 3401\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.rc ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.res =================================================================== (Binary files differ) Property changes on: trunk/jcl/packages/c5/JclStackTraceViewerExpertDLLC50.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,88 @@ +<?xml version='1.0' encoding='utf-8' ?> +<!-- C++Builder XML Project --> +<!-- +***************************************************************************** + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpert-D.xml) + + Last generated: 08-07-2009 13:15:14 UTC +***************************************************************************** +--> +<PROJECT> + <MACROS> + <VERSION value="BCB.06.00"/> + <PROJECT value="JclStackTraceViewerExpertC60.bpl"/> + <OBJFILES value=" + ..\..\lib\c6\JclStackTraceViewerExpert.obj + ..\..\lib\c6\JclStackTraceViewerMainFormDelphi.obj + "/> + <RESFILES value="JclStackTraceViewerExpert.res"/> + <IDLFILES value=""/> + <IDLGENFILES value=""/> + <DEFFILE value=""/> + <RESDEPEN value="$(RESFILES) + ..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.dfm + "/> + <LIBFILES value=" + "/> + <LIBRARIES value=""/> + <SPARELIBS value=""/> + <PACKAGES value=" + rtl.bpi + vcl.bpi + designide.bpi + Jcl.bpi + JclBaseExpert.bpi + "/> + <PATHCPP value=".;"/> + <PATHPAS value=".;..\..\experts\stacktraceviewer;"/> + <PATHRC value=".;"/> + <PATHASM value=".;"/> + <DEBUGLIBPATH value="$(BCB)\lib\debug"/> + <RELEASELIBPATH value="$(BCB)\lib\release"/> + <LINKER value="ilink32"/> + <USERDEFINES value="BCB;RELEASE"/> + <SYSDEFINES value="_RTLDLL;NO_STRICT;USEPACKAGES"/> + <MAINSOURCE value="JclStackTraceViewerExpert.cpp"/> + <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;..\..\experts\common;$(BCB)\include;$(BCB)\include\vcl"/> + <LIBPATH value="..\..\experts\stacktraceviewer;..\..\lib\c6;..\..\lib\c6;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> + <WARNINGS value="-w-par"/> + <OTHERFILES value=""/> + </MACROS> + <OPTIONS> + <CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c -tWM -DBCB;RELEASE"/> + <PFLAGS value="-U..\..\lib\c6 -N0..\..\lib\c6 -N2..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M + -LUdesignide -DBCB;RELEASE + "/> + <RFLAGS value=""/> + <AFLAGS value="/mx /w2 /zd"/> + <LFLAGS value="-I..\..\lib\c6 -GB"JclStackTraceViewerExpert" -D"JCL Stack Trace Viewer for C++Builder 6" + -b:0x58120000 -aa -Tpp -Gpd -x -Gn -Gl -Gi -v"/> + <OTHERFILES value=""/> + </OPTIONS> + <LINKER> + <ALLOBJ value="c0pkg32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/> + <ALLRES value="$(RESFILES)"/> + <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/> + <OTHERFILES value=""/> + </LINKER> + <FILELIST> + <FILE FILENAME="JclStackTraceViewerExpert.res" FORMNAME="" UNITNAME="JclStackTraceViewerExpert.res" CONTAINERID="ResTool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="JclStackTraceViewerExpert.cpp" FORMNAME="" UNITNAME="JclStackTraceViewerExpert" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="rtl.bpi" FORMNAME="" UNITNAME="rtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="vcl.bpi" FORMNAME="" UNITNAME="vcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="designide.bpi" FORMNAME="" UNITNAME="designide" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="Jcl.bpi" FORMNAME="" UNITNAME="Jcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="JclBaseExpert.bpi" FORMNAME="" UNITNAME="JclBaseExpert" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas" FORMNAME="frmStackView" UNITNAME="JclStackTraceViewerMainFormDelphi" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + </FILELIST> + <BUILDTOOLS> + </BUILDTOOLS> + + <IDEOPTIONS> +[Linker] +LibPrefix= +LibSuffix=C60 +LibVersion= + </IDEOPTIONS> +</PROJECT> Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpert.bpk ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpert.cpp =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpert.cpp (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpert.cpp 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,26 @@ +//--------------------------------------------------------------------------- +/* +----------------------------------------------------------------------------- + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpert-D.xml) + + Last generated: 08-07-2009 13:15:14 UTC +----------------------------------------------------------------------------- +*/ + +#include <vcl.h> +#include <windows.h> +#pragma hdrstop +USEFORMNS("..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas", Jclstacktraceviewermainformdelphi, frmStackView); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// Package source. +//--------------------------------------------------------------------------- +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- + Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpert.cpp ___________________________________________________________________ Added: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,5 @@ +[Directories] +UnitOutputDir=..\..\lib\c6 +SearchPath=..\..\source\include +Conditionals=BCB;RELEASE + Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpert.dof ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpert.dpk =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpert.dpk (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpert.dpk 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,51 @@ +package JclStackTraceViewerExpert; +{ +----------------------------------------------------------------------------- + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpert-D.xml) + + Last generated: 08-07-2009 13:15:14 UTC +----------------------------------------------------------------------------- +} + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS OFF} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO OFF} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $58120000} +{$DESCRIPTION 'JCL Stack Trace Viewer'} +{$LIBSUFFIX 'C60'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +{$DEFINE BCB} +{$DEFINE RELEASE} + +requires + rtl, + vcl, + designide, + Jcl, + JclBaseExpert + ; +contains + JclStackTraceViewerMainFormDelphi in '..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas' {frmStackView} + ; +end. Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpert.dpk ___________________________________________________________________ Added: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,32 @@ +VS_VERSION_INFO VERSIONINFO +FILEVERSION 2,0,0,3401 +PRODUCTVERSION 2,0,0,3401 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "Project JEDI\0" + VALUE "FileDescription", "JCL Stack Trace Viewer\0" + VALUE "FileVersion", "2.0.0.3401\0" + VALUE "InternalName", "JclStackTraceViewerExpert\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "OriginalFilename", "JclStackTraceViewerExpertC60.bpl\0" + VALUE "ProductName", "JEDI Code Library\0" + VALUE "ProductVersion", "2.0 Build 3401\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpert.rc ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpert.res =================================================================== (Binary files differ) Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpert.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Added: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpf =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpf (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpf 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,4 @@ +USEUNIT("..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas"); +USEDEF("JclStackTraceViewerExpertDLL.def"); +Project file +DllEntryPoint Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpf ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpr =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpr (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpr 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,87 @@ +<?xml version='1.0' encoding='utf-8' ?> +<!-- C++Builder XML Project --> +<!-- +***************************************************************************** + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpertDLL-L.xml) + + Last generated: 08-07-2009 13:15:14 UTC +***************************************************************************** +--> +<PROJECT> + <MACROS> + <VERSION value="BCB.06.00"/> + <PROJECT value="JclStackTraceViewerExpertDLLC60.dll"/> + <OBJFILES value=" + ..\..\lib\c6\JclStackTraceViewerExpertDLL.obj + ..\..\lib\c6\JclStackTraceViewerMainFormDelphi.obj + "/> + <RESFILES value=""/> + <IDLFILES value=""/> + <IDLGENFILES value=""/> + <DEFFILE value="JclStackTraceViewerExpertDLL.def"/> + <RESDEPEN value="$(RESFILES) + ..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.dfm + "/> + <LIBFILES value=" + "/> + <LIBRARIES value=""/> + <SPARELIBS value=""/> + <PACKAGES value=" + rtl.bpi + vcl.bpi + designide.bpi + Jcl.bpi + JclBaseExpert.bpi + "/> + <PATHCPP value=".;"/> + <PATHPAS value=".;..\..\experts\stacktraceviewer;"/> + <PATHRC value=".;"/> + <PATHASM value=".;"/> + <DEBUGLIBPATH value="$(BCB)\lib\debug"/> + <RELEASELIBPATH value="$(BCB)\lib\release"/> + <LINKER value="ilink32"/> + <USERDEFINES value="BCB;RELEASE"/> + <SYSDEFINES value="NO_STRICT;_RTLDLL;USEPACKAGES"/> + <MAINSOURCE value="JclStackTraceViewerExpertDLL.cpp"/> + <INCLUDEPATH value="..\..\source\common;..\..\source\windows;..\..\source\vcl;$(BCB)\include;$(BCB)\include\vcl"/> + <LIBPATH value="..\..\experts\stacktraceviewer;..\..\lib\c6;..\..\lib\c6;$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(BCB)\lib\debug"/> + <WARNINGS value="-w-par"/> + <OTHERFILES value=""/> + </MACROS> + <OPTIONS> + <CFLAG1 value="-WD -Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -tWD -tWM -c -DBCB;RELEASE"/> + <PFLAGS value="-U..\..\lib\c6 -N2..\..\lib\c6 -N0..\..\lib\c6 -I..\..\source\include -$YD -$W -$O- -$A8 -v -JPHNE -M + -LUdesignide -DBCB;RELEASE + "/> + <RFLAGS value=""/> + <AFLAGS value="/mx /w2 /zd"/> + <LFLAGS value="-I..\..\lib\c6 -GB"JclStackTraceViewerExpertDLL" -D"JCL Stack Trace Viewer for C++ Builder 6" + -b:0x58120000 -aa -Tpd -x -Gn -Gi -v"/> + <OTHERFILES value=""/> + </OPTIONS> + <LINKER> + <ALLOBJ value="c0d32.obj $(PACKAGES) Memmgr.Lib sysinit.obj $(OBJFILES)"/> + <ALLRES value="$(RESFILES)"/> + <ALLLIB value="$(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib"/> + <OTHERFILES value=""/> + </LINKER> + <FILELIST> + <FILE FILENAME="JclStackTraceViewerExpertDLL.cpp" FORMNAME="" UNITNAME="JclStackTraceViewerExpertDLL" CONTAINERID="CCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="rtl.bpi" FORMNAME="" UNITNAME="rtl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="vcl.bpi" FORMNAME="" UNITNAME="vcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="designide.bpi" FORMNAME="" UNITNAME="designide" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="Jcl.bpi" FORMNAME="" UNITNAME="Jcl" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="JclBaseExpert.bpi" FORMNAME="" UNITNAME="JclBaseExpert" CONTAINERID="BPITool" DESIGNCLASS="" LOCALCOMMAND=""/> + <FILE FILENAME="..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas" FORMNAME="frmStackView" UNITNAME="JclStackTraceViewerMainFormDelphi" CONTAINERID="PascalCompiler" DESIGNCLASS="" LOCALCOMMAND=""/> + </FILELIST> + <BUILDTOOLS> + </BUILDTOOLS> + + <IDEOPTIONS> +[Linker] +LibPrefix= +LibSuffix=C60 +LibVersion= + </IDEOPTIONS> +</PROJECT> Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.bpr ___________________________________________________________________ Added: svn:mime-type + text/xml Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.cpp =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.cpp (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.cpp 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,26 @@ +//--------------------------------------------------------------------------- +/* +----------------------------------------------------------------------------- + DO NOT EDIT THIS FILE, IT IS GENERATED BY THE PACKAGE GENERATOR + ALWAYS EDIT THE RELATED XML FILE (JclStackTraceViewerExpertDLL-L.xml) + + Last generated: 08-07-2009 13:15:14 UTC +----------------------------------------------------------------------------- +*/ + +#include <vcl.h> +#include <windows.h> +#pragma hdrstop +USEFORMNS("..\..\experts\stacktraceviewer\JclStackTraceViewerMainFormDelphi.pas", Jclstacktraceviewermainformdelphi, frmStackView); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// Library source. +//--------------------------------------------------------------------------- +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- + Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.cpp ___________________________________________________________________ Added: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.dof =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.dof (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.dof 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,9 @@ +[Directories] +UnitOutputDir=..\..\lib\c6 +SearchPath=..\..\source\include +Conditionals=BCB;RELEASE +[Compiler] +PackageNoLink=1 +[Linker] +Packages=rtl;vcl;designide;Jcl;JclBaseExpert + Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.dof ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc =================================================================== --- trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc (rev 0) +++ trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc 2009-07-08 14:00:42 UTC (rev 2853) @@ -0,0 +1,32 @@ +VS_VERSION_INFO VERSIONINFO +FILEVERSION 2,0,0,3401 +PRODUCTVERSION 2,0,0,3401 + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "CompanyName", "Project JEDI\0" + VALUE "FileDescription", "JCL Stack Trace Viewer\0" + VALUE "FileVersion", "2.0.0.3401\0" + VALUE "InternalName", "JclStackTraceViewerExpertDLL\0" + VALUE "LegalCopyright", "Copyright (C) 1999, 2009 Project JEDI\0" + VALUE "OriginalFilename", "JclStackTraceViewerExpertDLLC60.dll\0" + VALUE "ProductName", "JEDI Code Library\0" + VALUE "ProductVersion", "2.0 Build 3401\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 1252 + END +END Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.rc ___________________________________________________________________ Added: svn:eol-style + native Added: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.res =================================================================== (Binary files differ) Property changes on: trunk/jcl/packages/c6/JclStackTraceViewerExpertDLL.res ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Modified: trunk/jcl/packages/d10/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclContainers.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d11/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d12/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d6/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclRepositoryExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclSIMDViewExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclUsesExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclVcl.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/d7/JclVersionControlExpert.res =================================================================== (Binary files differ) Modified: trunk/jcl/packages/resources.mak =================================================================== --- trunk/jcl/packages/resources.mak 2009-07-08 12:22:28 UTC (rev 2852) +++ trunk/jcl/packages/resources.mak 2009-07-08 14:00:42 UTC (rev 2853) @@ -2,28 +2,30 @@ # --------------------------------------------------------------------------- RESFILES = c5\JclBaseExpertC50.res \ - c5\JclThreadNameExpertC50.res \ ... [truncated message content] |
From: <ou...@us...> - 2009-07-08 13:02:47
|
Revision: 2852 http://jcl.svn.sourceforge.net/jcl/?rev=2852&view=rev Author: outchy Date: 2009-07-08 12:22:28 +0000 (Wed, 08 Jul 2009) Log Message: ----------- CodeGear command line tools output is OEM encoded. Modified Paths: -------------- trunk/jcl/source/common/JclBorlandTools.pas Modified: trunk/jcl/source/common/JclBorlandTools.pas =================================================================== --- trunk/jcl/source/common/JclBorlandTools.pas 2009-07-08 12:10:38 UTC (rev 2851) +++ trunk/jcl/source/common/JclBorlandTools.pas 2009-07-08 12:22:28 UTC (rev 2852) @@ -351,6 +351,7 @@ FOutput: string; FOnAfterExecute: TJclBorlandCommandLineToolEvent; FOnBeforeExecute: TJclBorlandCommandLineToolEvent; + procedure OemTextHandler(const Text: string); protected constructor Create(AInstallation: TJclBorRADToolInstallation); virtual; procedure CheckOutputValid; @@ -889,7 +890,9 @@ {$IFDEF HAS_UNIT_LIBC} Libc, {$ENDIF HAS_UNIT_LIBC} - JclFileUtils, JclLogic, JclResources, JclStrings, JclWideStrings, JclSysInfo, JclSimpleXml; + JclFileUtils, JclLogic, JclResources, + JclStrings, JclAnsiStrings, JclWideStrings, + JclSysInfo, JclSimpleXml; // Internal @@ -2428,12 +2431,33 @@ if Assigned(FOutputCallback) then begin FOutputCallback(LaunchCommand); - Result := JclSysUtils.Execute(LaunchCommand, FOutputCallback) = 0; + Result := JclSysUtils.Execute(LaunchCommand, OemTextHandler) = 0; end else + begin Result := JclSysUtils.Execute(LaunchCommand, FOutput) = 0; + {$IFDEF MSWINDOWS} + FOutput := string(StrOemToAnsi(AnsiString(FOutput))); + {$ENDIF MSWINDOWS} + end; end; +procedure TJclBorlandCommandLineTool.OemTextHandler(const Text: string); +var + AnsiText: string; +begin + if Assigned(FOutputCallback) then + begin + {$IFDEF MSWINDOWS} + // Text is OEM + AnsiText := string(StrOemToAnsi(AnsiString(Text))); + {$ELSE ~MSWINDOWS} + AnsiText := Text; + {$ENDIF ~MSWINDOWS} + FOutputCallback(AnsiText); + end; +end; + procedure TJclBorlandCommandLineTool.SetOutputCallback(const CallbackMethod: TTextHandler); begin FOutputCallback := CallbackMethod; @@ -5431,7 +5455,7 @@ if RegKeyExists(HKEY_LOCAL_MACHINE, KeyName) and RegGetKeyNames(HKEY_LOCAL_MACHINE, KeyName, VersionNumbers) then for I := 0 to VersionNumbers.Count - 1 do - if StrIsSubSet(VersionNumbers[I], CharIsFracDigit) then + if JclStrings.StrIsSubSet(VersionNumbers[I], CharIsFracDigit) then begin VersionKeyName := KeyName + DirDelimiter + VersionNumbers[I]; if RegKeyExists(HKEY_LOCAL_MACHINE, VersionKeyName) then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-08 12:10:40
|
Revision: 2851 http://jcl.svn.sourceforge.net/jcl/?rev=2851&view=rev Author: outchy Date: 2009-07-08 12:10:38 +0000 (Wed, 08 Jul 2009) Log Message: ----------- Move of IJclCommandLineTool and TJclCommandLineTool from JclBorlandTools.pas to JclSysUtils.pas. Modified Paths: -------------- trunk/jcl/source/common/JclBorlandTools.pas trunk/jcl/source/common/JclSysUtils.pas Modified: trunk/jcl/source/common/JclBorlandTools.pas =================================================================== --- trunk/jcl/source/common/JclBorlandTools.pas 2009-07-08 11:50:22 UTC (rev 2850) +++ trunk/jcl/source/common/JclBorlandTools.pas 2009-07-08 12:10:38 UTC (rev 2851) @@ -341,52 +341,6 @@ property PackageDisabled[Index: Integer]: Boolean read GetPackageDisabled; end; -{$HPPEMIT 'namespace Jclborlandtools'} -{$HPPEMIT '{'} -{$HPPEMIT ' // For some reason, the generator puts this interface after its first'} -{$HPPEMIT ' // usage, resulting in an unusable header file. We fix this by forward'} -{$HPPEMIT ' // declaring the interface.'} -{$HPPEMIT ' __interface IJclCommandLineTool;'} -(*$HPPEMIT '}'*) - - IJclCommandLineTool = interface - ['{A0034B09-A074-D811-847D-0030849E4592}'] - function GetExeName: string; - function GetOptions: TStrings; - function GetOutput: string; - function GetOutputCallback: TTextHandler; - procedure AddPathOption(const Option, Path: string); - function Execute(const CommandLine: string): Boolean; - procedure SetOutputCallback(const CallbackMethod: TTextHandler); - property ExeName: string read GetExeName; - property Options: TStrings read GetOptions; - property OutputCallback: TTextHandler write SetOutputCallback; - property Output: string read GetOutput; - end; - - EJclCommandLineToolError = class(EJclError); - - TJclCommandLineTool = class(TInterfacedObject, IJclCommandLineTool) - private - FExeName: string; - FOptions: TStringList; - FOutput: string; - FOutputCallback: TTextHandler; - protected - function GetExeName: string; - function GetOutput: string; - function GetOptions: TStrings; - function GetOutputCallback: TTextHandler; - procedure SetOutputCallback(const CallbackMethod: TTextHandler); - constructor Create(const AExeName: string); - procedure AddPathOption(const Option, Path: string); - function Execute(const CommandLine: string): Boolean; - property ExeName: string read GetExeName; - property Output: string read GetOutput; - public - destructor Destroy; override; - end; - TJclBorlandCommandLineTool = class; TJclBorlandCommandLineToolEvent = procedure(Sender:TJclBorlandCommandLineTool) of object; @@ -5535,68 +5489,6 @@ end; end; -//=== { TJclCommandLineTool } ================================================ - -constructor TJclCommandLineTool.Create(const AExeName: string); -begin - inherited Create; - FOptions := TStringList.Create; - FExeName := AExeName; -end; - -destructor TJclCommandLineTool.Destroy; -begin - FreeAndNil(FOptions); - inherited Destroy; -end; - -procedure TJclCommandLineTool.AddPathOption(const Option, Path: string); -var - S: string; -begin - S := PathRemoveSeparator(Path); - {$IFDEF MSWINDOWS} - S := LowerCase(S); // file names are case insensitive - {$ENDIF MSWINDOWS} - S := Format('-%s%s', [Option, S]); - // avoid duplicate entries (note that search is case sensitive) - if GetOptions.IndexOf(S) = -1 then - GetOptions.Add(S); -end; - -function TJclCommandLineTool.Execute(const CommandLine: string): Boolean; -begin - if Assigned(FOutputCallback) then - Result := JclSysUtils.Execute(Format('"%s" %s', [ExeName, CommandLine]), FOutputCallback) = 0 - else - Result := JclSysUtils.Execute(Format('"%s" %s', [ExeName, CommandLine]), FOutput) = 0; -end; - -function TJclCommandLineTool.GetExeName: string; -begin - Result := FExeName; -end; - -function TJclCommandLineTool.GetOptions: TStrings; -begin - Result := FOptions; -end; - -function TJclCommandLineTool.GetOutput: string; -begin - Result := FOutput; -end; - -function TJclCommandLineTool.GetOutputCallback: TTextHandler; -begin - Result := FOutputCallback; -end; - -procedure TJclCommandLineTool.SetOutputCallback(const CallbackMethod: TTextHandler); -begin - FOutputCallback := CallbackMethod; -end; - {$IFDEF UNITVERSIONING} initialization RegisterUnitVersion(HInstance, UnitVersioning); Modified: trunk/jcl/source/common/JclSysUtils.pas =================================================================== --- trunk/jcl/source/common/JclSysUtils.pas 2009-07-08 11:50:22 UTC (rev 2850) +++ trunk/jcl/source/common/JclSysUtils.pas 2009-07-08 12:10:38 UTC (rev 2851) @@ -428,6 +428,53 @@ function Execute(const CommandLine: string; var Output: string; RawOutput: Boolean = False; AbortPtr: PBoolean = nil): Cardinal; overload; +type +{$HPPEMIT 'namespace Jclsysutils'} +{$HPPEMIT '{'} +{$HPPEMIT ' // For some reason, the generator puts this interface after its first'} +{$HPPEMIT ' // usage, resulting in an unusable header file. We fix this by forward'} +{$HPPEMIT ' // declaring the interface.'} +{$HPPEMIT ' __interface IJclCommandLineTool;'} +(*$HPPEMIT '}'*) + + IJclCommandLineTool = interface + ['{A0034B09-A074-D811-847D-0030849E4592}'] + function GetExeName: string; + function GetOptions: TStrings; + function GetOutput: string; + function GetOutputCallback: TTextHandler; + procedure AddPathOption(const Option, Path: string); + function Execute(const CommandLine: string): Boolean; + procedure SetOutputCallback(const CallbackMethod: TTextHandler); + property ExeName: string read GetExeName; + property Options: TStrings read GetOptions; + property OutputCallback: TTextHandler write SetOutputCallback; + property Output: string read GetOutput; + end; + + EJclCommandLineToolError = class(EJclError); + + TJclCommandLineTool = class(TInterfacedObject, IJclCommandLineTool) + private + FExeName: string; + FOptions: TStringList; + FOutput: string; + FOutputCallback: TTextHandler; + protected + function GetExeName: string; + function GetOutput: string; + function GetOptions: TStrings; + function GetOutputCallback: TTextHandler; + procedure SetOutputCallback(const CallbackMethod: TTextHandler); + constructor Create(const AExeName: string); + procedure AddPathOption(const Option, Path: string); + function Execute(const CommandLine: string): Boolean; + property ExeName: string read GetExeName; + property Output: string read GetOutput; + public + destructor Destroy; override; + end; + // Console Utilities function ReadKey: Char; @@ -2500,6 +2547,68 @@ Result := InternalExecute(CommandLine, Dummy, OutputLineCallback, RawOutput, AbortPtr); end; +//=== { TJclCommandLineTool } ================================================ + +constructor TJclCommandLineTool.Create(const AExeName: string); +begin + inherited Create; + FOptions := TStringList.Create; + FExeName := AExeName; +end; + +destructor TJclCommandLineTool.Destroy; +begin + FreeAndNil(FOptions); + inherited Destroy; +end; + +procedure TJclCommandLineTool.AddPathOption(const Option, Path: string); +var + S: string; +begin + S := PathRemoveSeparator(Path); + {$IFDEF MSWINDOWS} + S := LowerCase(S); // file names are case insensitive + {$ENDIF MSWINDOWS} + S := Format('-%s%s', [Option, S]); + // avoid duplicate entries (note that search is case sensitive) + if GetOptions.IndexOf(S) = -1 then + GetOptions.Add(S); +end; + +function TJclCommandLineTool.Execute(const CommandLine: string): Boolean; +begin + if Assigned(FOutputCallback) then + Result := JclSysUtils.Execute(Format('"%s" %s', [ExeName, CommandLine]), FOutputCallback) = 0 + else + Result := JclSysUtils.Execute(Format('"%s" %s', [ExeName, CommandLine]), FOutput) = 0; +end; + +function TJclCommandLineTool.GetExeName: string; +begin + Result := FExeName; +end; + +function TJclCommandLineTool.GetOptions: TStrings; +begin + Result := FOptions; +end; + +function TJclCommandLineTool.GetOutput: string; +begin + Result := FOutput; +end; + +function TJclCommandLineTool.GetOutputCallback: TTextHandler; +begin + Result := FOutputCallback; +end; + +procedure TJclCommandLineTool.SetOutputCallback(const CallbackMethod: TTextHandler); +begin + FOutputCallback := CallbackMethod; +end; + //=== Console Utilities ====================================================== function ReadKey: Char; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-08 11:50:30
|
Revision: 2850 http://jcl.svn.sourceforge.net/jcl/?rev=2850&view=rev Author: outchy Date: 2009-07-08 11:50:22 +0000 (Wed, 08 Jul 2009) Log Message: ----------- interface parameters should be constant. Modified Paths: -------------- trunk/jcl/install/JclInstall.pas trunk/jcl/install/JediInstall.pas Modified: trunk/jcl/install/JclInstall.pas =================================================================== --- trunk/jcl/install/JclInstall.pas 2009-07-07 17:47:08 UTC (rev 2849) +++ trunk/jcl/install/JclInstall.pas 2009-07-08 11:50:22 UTC (rev 2850) @@ -160,7 +160,7 @@ protected constructor Create(JclDistribution: TJclDistribution; InstallTarget: TJclBorRADToolInstallation; ATargetPlatform: TJclBorPlatform = bp32bit; - AGUIPage: IJediInstallPage = nil); + const AGUIPage: IJediInstallPage = nil); function CompileLibraryUnits(const SubDir: string; Debug: Boolean): Boolean; function CompilePackage(const Name: string): Boolean; function CompileApplication(FileName: string): Boolean; @@ -799,7 +799,7 @@ constructor TJclInstallation.Create(JclDistribution: TJclDistribution; InstallTarget: TJclBorRADToolInstallation; ATargetPlatform: TJclBorPlatform; - AGUIPage: IJediInstallPage); + const AGUIPage: IJediInstallPage); begin inherited Create; Modified: trunk/jcl/install/JediInstall.pas =================================================================== --- trunk/jcl/install/JediInstall.pas 2009-07-07 17:47:08 UTC (rev 2849) +++ trunk/jcl/install/JediInstall.pas 2009-07-08 11:50:22 UTC (rev 2850) @@ -245,7 +245,7 @@ constructor Create; reintroduce; destructor Destroy; override; - function AddProduct(AProduct: IJediProduct): Integer; + function AddProduct(const AProduct: IJediProduct): Integer; procedure Execute; function Install: Boolean; function Uninstall: Boolean; @@ -253,8 +253,8 @@ function AddInstallOption(const Name: string): Integer; function GetInstallOptionName(Id: Integer): string; function GetOptionCount: Integer; - function ProcessLogLine(const Line: string; var LineType: TCompileLineType; - Page: IJediInstallPage): string; + function ProcessLogLine(const Line: string; out LineType: TCompileLineType; + const Page: IJediInstallPage): string; property ProductCount: Integer read GetProductCount; property Products[Index: Integer]: IJediProduct read GetProduct; @@ -312,7 +312,7 @@ Result := FOptions.Add(Name); end; -function TJediInstallCore.AddProduct(AProduct: IJediProduct): Integer; +function TJediInstallCore.AddProduct(const AProduct: IJediProduct): Integer; begin Result := FProducts.Size; FProducts.Add(AProduct); @@ -443,7 +443,7 @@ end; function TJediInstallCore.ProcessLogLine(const Line: string; - var LineType: TCompileLineType; Page: IJediInstallPage): string; + out LineType: TCompileLineType; const Page: IJediInstallPage): string; function HasText(Text: string; const Values: array of string): Boolean; var This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-07 17:47:13
|
Revision: 2849 http://jcl.svn.sourceforge.net/jcl/?rev=2849&view=rev Author: outchy Date: 2009-07-07 17:47:08 +0000 (Tue, 07 Jul 2009) Log Message: ----------- UTF-8 BOM removal. Modified Paths: -------------- trunk/jcl/experts/common/JclOtaConsts.pas Modified: trunk/jcl/experts/common/JclOtaConsts.pas =================================================================== --- trunk/jcl/experts/common/JclOtaConsts.pas 2009-07-07 09:52:01 UTC (rev 2848) +++ trunk/jcl/experts/common/JclOtaConsts.pas 2009-07-07 17:47:08 UTC (rev 2849) @@ -1,4 +1,4 @@ -{**************************************************************************************************} +{**************************************************************************************************} { } { Project JEDI Code Library (JCL) } { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2009-07-07 10:11:46
|
Revision: 2848 http://jcl.svn.sourceforge.net/jcl/?rev=2848&view=rev Author: obones Date: 2009-07-07 09:52:01 +0000 (Tue, 07 Jul 2009) Log Message: ----------- if the stream is any sort of UTF, then it's not an error and the codepage is implicit Modified Paths: -------------- trunk/jcl/source/common/JclSimpleXml.pas Modified: trunk/jcl/source/common/JclSimpleXml.pas =================================================================== --- trunk/jcl/source/common/JclSimpleXml.pas 2009-07-06 08:19:44 UTC (rev 2847) +++ trunk/jcl/source/common/JclSimpleXml.pas 2009-07-07 09:52:01 UTC (rev 2848) @@ -3306,7 +3306,7 @@ else if StringStream is TJclAnsiStream then TJclAnsiStream(StringStream).CodePage := CodePage - else + else if not (StringStream is TJclUTF8Stream) and not (StringStream is TJclUTF16Stream) then Error(RsENoCharset); end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-06 08:19:57
|
Revision: 2847 http://jcl.svn.sourceforge.net/jcl/?rev=2847&view=rev Author: outchy Date: 2009-07-06 08:19:44 +0000 (Mon, 06 Jul 2009) Log Message: ----------- style cleanup Modified Paths: -------------- trunk/jcl/experts/common/JclOtaUtils.pas Modified: trunk/jcl/experts/common/JclOtaUtils.pas =================================================================== --- trunk/jcl/experts/common/JclOtaUtils.pas 2009-07-05 20:01:05 UTC (rev 2846) +++ trunk/jcl/experts/common/JclOtaUtils.pas 2009-07-06 08:19:44 UTC (rev 2847) @@ -23,7 +23,7 @@ { Last modified: $Date:: $ } { Revision: $Rev:: $ } { Author: $Author:: $ } -{ $Date$ xpin } +{ } {**************************************************************************************************} unit JclOtaUtils; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-05 20:01:06
|
Revision: 2846 http://jcl.svn.sourceforge.net/jcl/?rev=2846&view=rev Author: outchy Date: 2009-07-05 20:01:05 +0000 (Sun, 05 Jul 2009) Log Message: ----------- style cleaning. some optimization in TJclComplex.NormalizeAngle. Modified Paths: -------------- trunk/jcl/source/common/JclComplex.pas Modified: trunk/jcl/source/common/JclComplex.pas =================================================================== --- trunk/jcl/source/common/JclComplex.pas 2009-07-05 19:24:53 UTC (rev 2845) +++ trunk/jcl/source/common/JclComplex.pas 2009-07-05 20:01:05 UTC (rev 2846) @@ -57,8 +57,8 @@ TCoords = record X: Float; // rectangular real Y: Float; // rectangular imaginary - R: Float; // polar 1 - Theta: Float; // polar 2 + R: Float; // polar radius + Theta: Float; // polar angle end; TRectCoord = record @@ -70,7 +70,7 @@ private {z = x + yi} FCoord: TCoords; FFracLen: Byte; - function MiscalcSingle(const X: Float): Float; + function MiscalcFloat(const X: Float): Float; procedure MiscalcComplex; // eliminates miscalculation procedure FillCoords(const ComplexType: TComplexKind); function GetRectangularString: string; @@ -80,7 +80,7 @@ procedure SetFracLen(const X: Byte); function GetRadius: Float; function GetAngle: Float; - function NormalizeAngle(Value: Float): Float; + function NormalizeAngle(const Value: Float): Float; protected function Assign(const Coord: TCoords; const ComplexType: TComplexKind = crRectangular): TJclComplex; overload; function CoreAdd(const First, Second: TRectCoord): TRectCoord; @@ -145,63 +145,74 @@ function CNewNeg: TJclComplex; function CNewConjugate: TJclComplex; - //----------- natural log and exponential functions + //----------- natural log and exponential functions -- modify the object itself function CLn: TJclComplex; - function CNewLn: TJclComplex; function CExp: TJclComplex; - function CNewExp: TJclComplex; function CPwr(const PwrValue: TJclComplex): TJclComplex; overload; function CPwr(const X, Y: Float; const ComplexType: TComplexKind = crRectangular): TJclComplex; overload; + function CIntPwr(const Pwr: Integer): TJclComplex; + function CRealPwr(const Pwr: Float): TJclComplex; + function CRoot(const K, N: Word): TJclComplex; + function CSqrt: TJclComplex; + + //----------- natural log and exponential functions -- create new resulting object + function CNewLn: TJclComplex; + function CNewExp: TJclComplex; function CNewPwr(PwrValue: TJclComplex): TJclComplex; overload; function CNewPwr(const X, Y: Float; const ComplexType: TComplexKind = crRectangular): TJclComplex; overload; - function CIntPwr(const Pwr: Integer): TJclComplex; overload; - function CNewIntPwr(const Pwr: Integer): TJclComplex; overload; - function CRealPwr(const Pwr: Float): TJclComplex; overload; - function CNewRealPwr(const Pwr: Float): TJclComplex; overload; - function CRoot(const K, N: Word): TJclComplex; overload; - function CNewRoot(const K, N: Word): TJclComplex; overload; - function CSqrt: TJclComplex; overload; - function CNewSqrt: TJclComplex; overload; + function CNewIntPwr(const Pwr: Integer): TJclComplex; + function CNewRealPwr(const Pwr: Float): TJclComplex; + function CNewRoot(const K, N: Word): TJclComplex; + function CNewSqrt: TJclComplex; - //----------- trigonometric functions + //----------- trigonometric functions -- modify the object itself function CCos: TJclComplex; - function CNewCos: TJclComplex; function CSin: TJclComplex; - function CNewSin: TJclComplex; function CTan: TJclComplex; - function CNewTan: TJclComplex; function CCot: TJclComplex; - function CNewCot: TJclComplex; function CSec: TJclComplex; - function CNewSec: TJclComplex; function CCsc: TJclComplex; + + //----------- trigonometric functions -- create new resulting object function CNewCsc: TJclComplex; + function CNewCos: TJclComplex; + function CNewSin: TJclComplex; + function CNewTan: TJclComplex; + function CNewCot: TJclComplex; + function CNewSec: TJclComplex; - //----------- complex hyperbolic functions + //----------- complex hyperbolic functions -- modify the object itself function CCosH: TJclComplex; + function CSinH: TJclComplex; + function CTanH: TJclComplex; + function CCotH: TJclComplex; + function CSecH: TJclComplex; + function CCscH: TJclComplex; + + //----------- complex hyperbolic functions -- create new resulting object function CNewCosH: TJclComplex; - function CSinH: TJclComplex; function CNewSinH: TJclComplex; - function CTanH: TJclComplex; function CNewTanH: TJclComplex; - function CCotH: TJclComplex; function CNewCotH: TJclComplex; - function CSecH: TJclComplex; function CNewSecH: TJclComplex; - function CCscH: TJclComplex; function CNewCscH: TJclComplex; - //----------- complex Bessel functions of order zero + //----------- complex Bessel functions of order zero -- modify the object itself function CI0: TJclComplex; + function CJ0: TJclComplex; + + //----------- complex Bessel functions of order zero -- create new resulting object function CNewI0: TJclComplex; - function CJ0: TJclComplex; function CNewJ0: TJclComplex; + //----------- complex Gamma functions -- modify the object itself function CApproxLnGamma: TJclComplex; + function CLnGamma: TJclComplex; + function CGamma: TJclComplex; + + //----------- complex Gamma functions -- create new resulting object function CNewApproxLnGamma: TJclComplex; - function CLnGamma: TJclComplex; function CNewLnGamma: TJclComplex; - function CGamma: TJclComplex; function CNewGamma: TJclComplex; //----------- miscellaneous routines @@ -269,7 +280,7 @@ end; end; -function RectCoord(X, Y: Float): TRectCoord; overload; +function RectCoord(const X, Y: Float): TRectCoord; overload; begin Result.X := X; Result.Y := Y; @@ -323,7 +334,7 @@ MiscalcComplex; end; -function TJclComplex.MiscalcSingle(const X: Float): Float; +function TJclComplex.MiscalcFloat(const X: Float): Float; begin Result := X; if Abs(Result) < ComplexPrecision then @@ -332,13 +343,13 @@ procedure TJclComplex.MiscalcComplex; // eliminates miscalculation begin - FCoord.X := MiscalcSingle(FCoord.X); - FCoord.Y := MiscalcSingle(FCoord.Y); - FCoord.R := MiscalcSingle(FCoord.R); + FCoord.X := MiscalcFloat(FCoord.X); + FCoord.Y := MiscalcFloat(FCoord.Y); + FCoord.R := MiscalcFloat(FCoord.R); if FCoord.R = 0.0 then FCoord.Theta := 0.0 else - FCoord.Theta := MiscalcSingle(FCoord.Theta); + FCoord.Theta := MiscalcFloat(FCoord.Theta); end; function TJclComplex.Assign(const X, Y: Float; const ComplexType: TComplexKind): TJclComplex; @@ -755,10 +766,10 @@ function TJclComplex.CorePwr(First, Second, Polar: TRectCoord): TRectCoord; begin - First.X := MiscalcSingle(First.X); - First.Y := MiscalcSingle(First.Y); - Second.X := MiscalcSingle(Second.X); - Second.Y := MiscalcSingle(Second.Y); + First.X := MiscalcFloat(First.X); + First.Y := MiscalcFloat(First.Y); + Second.X := MiscalcFloat(Second.X); + Second.Y := MiscalcFloat(Second.Y); if AbsoluteValueSqr(First) = 0.0 then if AbsoluteValueSqr(Second) = 0.0 then Result := RectOne @@ -815,8 +826,8 @@ function TJclComplex.CoreIntPwr(First: TRectCoord; const Polar: TRectCoord; const Pwr: Integer): TRectCoord; begin - First.X := MiscalcSingle(First.X); - First.Y := MiscalcSingle(First.Y); + First.X := MiscalcFloat(First.X); + First.Y := MiscalcFloat(First.Y); if AbsoluteValueSqr(First) = 0.0 then if Pwr = 0 then Result := RectOne @@ -850,10 +861,10 @@ function TJclComplex.CoreRealPwr(First: TRectCoord; const Polar: TRectCoord; const Pwr: Float): TRectCoord; begin - First.X := MiscalcSingle(First.X); - First.Y := MiscalcSingle(First.Y); + First.X := MiscalcFloat(First.X); + First.Y := MiscalcFloat(First.Y); if AbsoluteValueSqr(First) = 0.0 then - if MiscalcSingle(Pwr) = 0.0 then + if MiscalcFloat(Pwr) = 0.0 then Result := RectOne else Result := RectZero @@ -885,8 +896,8 @@ function TJclComplex.CoreRoot(First: TRectCoord; const Polar: TRectCoord; const K, N: Word): TRectCoord; begin - First.X := MiscalcSingle(First.X); - First.Y := MiscalcSingle(First.Y); + First.X := MiscalcFloat(First.X); + First.Y := MiscalcFloat(First.Y); if AbsoluteValue(First) = 0.0 then Result := RectZero else @@ -980,7 +991,7 @@ TempValue: Float; begin TempValue := Cos(2.0 * Value.X) + CosH(2.0 * Value.Y); - if MiscalcSingle(TempValue) <> 0.0 then + if MiscalcFloat(TempValue) <> 0.0 then Result := RectCoord(Sin(2.0 * Value.X) / TempValue, SinH(2.0 * Value.Y) / TempValue) else Result := RectInfinity; @@ -1010,7 +1021,7 @@ TempValue: Float; begin TempValue := Cosh(2.0 * Value.Y) - Cos(2.0 * Value.X); - if MiscalcSingle(TempValue) <> 0.0 then + if MiscalcFloat(TempValue) <> 0.0 then Result := RectCoord(Sin(2.0 * Value.X) / TempValue, -SinH(2.0 * Value.Y) / TempValue) else Result := RectInfinity; @@ -1040,7 +1051,7 @@ TempValue: TRectCoord; begin TempValue := CoreCos(Value); - if MiscalcSingle(AbsoluteValue(TempValue)) <> 0.0 then + if MiscalcFloat(AbsoluteValue(TempValue)) <> 0.0 then Result := CoreDiv(RectOne, TempValue) else Result := RectInfinity; @@ -1070,7 +1081,7 @@ TempValue: TRectCoord; begin TempValue := CoreSin(Value); - if MiscalcSingle(AbsoluteValue(TempValue)) <> 0.0 then + if MiscalcFloat(AbsoluteValue(TempValue)) <> 0.0 then Result := CoreDiv(RectOne, TempValue) else Result := RectInfinity; @@ -1150,7 +1161,7 @@ TempValue: Float; begin TempValue := CosH(2.0 * Value.X) + Cos(2.0 * Value.Y); - if MiscalcSingle(TempValue) <> 0.0 then + if MiscalcFloat(TempValue) <> 0.0 then Result := RectCoord(SinH(2.0 * Value.X) / TempValue, Sin(2.0 * Value.Y) / TempValue) else Result := RectInfinity; @@ -1180,7 +1191,7 @@ TempValue: Float; begin TempValue := Cosh(2.0 * Value.X) - Cos(2.0 * Value.Y); - if MiscalcSingle(TempValue) <> 0.0 then + if MiscalcFloat(TempValue) <> 0.0 then Result := RectCoord(SinH(2.0 * Value.X) / TempValue, -Sin(2.0 * Value.Y) / TempValue) else Result := RectInfinity; @@ -1210,7 +1221,7 @@ TempValue: TRectCoord; begin TempValue := CoreCosH(Value); - if MiscalcSingle(AbsoluteValue(TempValue)) <> 0.0 then + if MiscalcFloat(AbsoluteValue(TempValue)) <> 0.0 then Result := CoreDiv(RectOne, TempValue) else Result := RectInfinity; @@ -1240,7 +1251,7 @@ TempValue: TRectCoord; begin TempValue := CoreSinH(Value); - if MiscalcSingle(AbsoluteValue(TempValue)) <> 0.0 then + if MiscalcFloat(AbsoluteValue(TempValue)) <> 0.0 then Result := CoreDiv(RectOne, TempValue) else Result := RectInfinity; @@ -1404,8 +1415,8 @@ var LNA, Temp: TRectCoord; begin - if (Value.X <= 0.0) and (MiscalcSingle(Value.Y) = 0.0) then - if MiscalcSingle(Int(Value.X - 1E-8) - Value.X) = 0.0 then + if (Value.X <= 0.0) and (MiscalcFloat(Value.Y) = 0.0) then + if MiscalcFloat(Int(Value.X - 1E-8) - Value.X) = 0.0 then begin Result := RectInfinity; Exit; @@ -1530,15 +1541,22 @@ Result := FCoord.Theta; end; -function TJclComplex.NormalizeAngle(Value: Float): Float; +function TJclComplex.NormalizeAngle(const Value: Float): Float; +var + N: Integer; begin - FillCoords(crRectangular); - while Value > Pi do - Value := Value - TwoPi; - while Value < -Pi do - Value := Value + TwoPi; - Value := MiscalcSingle(Value); Result := Value; + if Result > Pi then + begin + N := Floor((Result + Pi) / TwoPi); + Result := Result - N * TwoPi; + end + else + if Result < -Pi then + begin + N := Floor((-Result + Pi) / TwoPi); + Result := Result + N * TwoPi; + end; end; {$IFDEF UNITVERSIONING} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ou...@us...> - 2009-07-05 19:24:59
|
Revision: 2845 http://jcl.svn.sourceforge.net/jcl/?rev=2845&view=rev Author: outchy Date: 2009-07-05 19:24:53 +0000 (Sun, 05 Jul 2009) Log Message: ----------- style cleaning Modified Paths: -------------- trunk/jcl/source/common/JclStrHashMap.pas Modified: trunk/jcl/source/common/JclStrHashMap.pas =================================================================== --- trunk/jcl/source/common/JclStrHashMap.pas 2009-07-03 09:30:11 UTC (rev 2844) +++ trunk/jcl/source/common/JclStrHashMap.pas 2009-07-05 19:24:53 UTC (rev 2845) @@ -214,10 +214,7 @@ Result := True; end; -{$IFOPT Q+} -{$DEFINE OVERFLOWCHECKS_ON} {$Q-} -{$ENDIF} function StrHash(const S: string): Cardinal; const @@ -300,7 +297,7 @@ {$IFDEF OVERFLOWCHECKS_ON} {$Q+} -{$ENDIF} +{$ENDIF OVERFLOWCHECKS_ON} //=== { TStringHashMap } ===================================================== This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2009-07-03 09:30:12
|
Revision: 2844 http://jcl.svn.sourceforge.net/jcl/?rev=2844&view=rev Author: obones Date: 2009-07-03 09:30:11 +0000 (Fri, 03 Jul 2009) Log Message: ----------- Removed warnings Modified Paths: -------------- trunk/jcl/source/common/JclAnsiStrings.pas trunk/jcl/source/common/JclBase.pas Modified: trunk/jcl/source/common/JclAnsiStrings.pas =================================================================== --- trunk/jcl/source/common/JclAnsiStrings.pas 2009-07-02 15:51:13 UTC (rev 2843) +++ trunk/jcl/source/common/JclAnsiStrings.pas 2009-07-03 09:30:11 UTC (rev 2844) @@ -4197,7 +4197,7 @@ begin SetLength(Result, List.Count); for I := 0 to List.Count - 1 do - Result[I] := List[I]; + Result[I] := string(List[I]); end else Result := nil; Modified: trunk/jcl/source/common/JclBase.pas =================================================================== --- trunk/jcl/source/common/JclBase.pas 2009-07-02 15:51:13 UTC (rev 2843) +++ trunk/jcl/source/common/JclBase.pas 2009-07-03 09:30:11 UTC (rev 2844) @@ -758,7 +758,7 @@ I: Integer; AnsiS: AnsiString; begin - AnsiS := S; // convert to AnsiString + AnsiS := AnsiString(S); // convert to AnsiString SetLength(Result, Length(AnsiS)); for I := 0 to High(Result) do Result[I] := Byte(AnsiS[I + 1]); @@ -774,7 +774,7 @@ SetLength(AnsiS, Count); for I := 0 to Length(AnsiS) - 1 do AnsiS[I + 1] := AnsiChar(Data[I]); - Result := AnsiS; // convert to System.String + Result := string(AnsiS); // convert to System.String end; function BytesOf(const Value: AnsiString): TBytes; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ob...@us...> - 2009-07-02 17:24:01
|
Revision: 2843 http://jcl.svn.sourceforge.net/jcl/?rev=2843&view=rev Author: obones Date: 2009-07-02 15:51:13 +0000 (Thu, 02 Jul 2009) Log Message: ----------- Generics.Collections now that we only support Delphi and no longer .Net Modified Paths: -------------- trunk/jcl/source/common/JclStacks.pas trunk/jcl/source/prototypes/JclStacks.pas Modified: trunk/jcl/source/common/JclStacks.pas =================================================================== --- trunk/jcl/source/common/JclStacks.pas 2009-07-02 13:30:11 UTC (rev 2842) +++ trunk/jcl/source/common/JclStacks.pas 2009-07-02 15:51:13 UTC (rev 2843) @@ -46,7 +46,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} {$IFDEF SUPPORTS_GENERICS} - System.Collections.Generic, + Generics.Collections, JclAlgorithms, {$ENDIF SUPPORTS_GENERICS} JclBase, JclAbstractContainers, JclContainerIntf, JclSynch; Modified: trunk/jcl/source/prototypes/JclStacks.pas =================================================================== --- trunk/jcl/source/prototypes/JclStacks.pas 2009-07-02 13:30:11 UTC (rev 2842) +++ trunk/jcl/source/prototypes/JclStacks.pas 2009-07-02 15:51:13 UTC (rev 2843) @@ -42,7 +42,7 @@ JclUnitVersioning, {$ENDIF UNITVERSIONING} {$IFDEF SUPPORTS_GENERICS} - System.Collections.Generic, + Generics.Collections, JclAlgorithms, {$ENDIF SUPPORTS_GENERICS} JclBase, JclAbstractContainers, JclContainerIntf, JclSynch; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |