I gave it a whirl on the Win32 platform and all but one of the tests failed after attempting to build java2perl6, apparently due to the system calls to javap using backticks. I did a quick workaround locally with IPC::Open2 instead and got a bit further, but progress is still incomplete at this point. Will post more details when my local sandbox is Win32-ified.
-- Todd Presta -- http://www.asciiville.com ________________________________ From: Tim Bunce <tim.bu...@pobox.com> To: dbdi-dev@perl.org Cc: Tim Bunce <tim.bu...@pobox.com>; crow.p...@gmail.com Sent: Tuesday, August 4, 2009 5:00:08 PM Subject: What needs doing... I've applied a bunch of changes today. The current output of the mkjdbc.pl script is appended below. It's looking pretty good. (I'm using the latest rakudo from git) There are a few immediate issues... . . java.sql.SQLXML: jdbclib/java/sql/SQLXML.pm ERROR (line 1): Invalid comp unit: Was expecting comp stmt javap normally outputs a line like "Compiled from "ByteOrder.java"" for most classes, and that's assumed by the grammar. It seems that that line isn't output for some classes. The grammar need updating to account for that. (about 12 of the failures are due to that.) . . . . java.sql.DatabaseMetaData: checking jdbclib/java/sql/DatabaseMetaData.pm Can't find ./java/util/Properties in @*INC in Main (src/gen_setting.pm:445) [...] . . . . java.util.Properties: jdbclib/java/util/Properties.pm For some reason the fact that java.sql.DatabaseMetaData references java.util.Properties wasn't noticed, so the generated DatabaseMetaData.pm was checked before java.util.Properties was generated. Assorted other classes are affected in a similar way. That needs fixing. There are a couple of problems with the generated perl6 code: . . . java.security.PermissionCollection: checking jdbclib/java/security/PermissionCollection.pm Malformed method definition at line 11, near "add(\n " in Main (src/gen_setting.pm:3363) . . java.security.Permission: checking jdbclib/java/security/Permission.pm Unable to parse multisig; couldn't find final ')' at line 38, near "--> java::" in Main (src/gen_setting.pm:3363) It'll probably be a few days before I get back to this. Volunteers are most welcome to hack at any of these issues. Thanks! Tim. . java.sql.ResultSet: jdbclib/java/sql/ResultSet.pm . . java.io.Reader: jdbclib/java/io/Reader.pm . . . java.nio.CharBuffer: jdbclib/java/nio/CharBuffer.pm . . . . java.lang.Appendable: jdbclib/java/lang/Appendable.pm . . . . . java.lang.CharSequence: jdbclib/java/lang/CharSequence.pm . . . . . java.lang.CharSequence: checking jdbclib/java/lang/CharSequence.pm syntax OK . . . . java.lang.Appendable: checking jdbclib/java/lang/Appendable.pm syntax OK . . . . java.nio.Buffer: jdbclib/java/nio/Buffer.pm . . . . java.nio.Buffer: checking jdbclib/java/nio/Buffer.pm syntax OK . . . . java.nio.ByteOrder: jdbclib/java/nio/ByteOrder.pm . . . . java.nio.ByteOrder: checking jdbclib/java/nio/ByteOrder.pm syntax OK . . . java.nio.CharBuffer: checking jdbclib/java/nio/CharBuffer.pm syntax OK . . java.io.Reader: checking jdbclib/java/io/Reader.pm syntax OK . . java.math.BigDecimal: jdbclib/java/math/BigDecimal.pm . . . java.math.MathContext: jdbclib/java/math/MathContext.pm . . . . java.math.RoundingMode: jdbclib/java/math/RoundingMode.pm . . . . . java.lang.Enum: jdbclib/java/lang/Enum.pm . . . . . java.lang.Enum: checking jdbclib/java/lang/Enum.pm syntax OK . . . . java.math.RoundingMode: checking jdbclib/java/math/RoundingMode.pm syntax OK . . . java.math.MathContext: checking jdbclib/java/math/MathContext.pm syntax OK . . java.math.BigDecimal: checking jdbclib/java/math/BigDecimal.pm Can't find ./Float in @*INC <== I've fixed this. in Main (src/gen_setting.pm:445) . . java.sql.Blob: jdbclib/java/sql/Blob.pm . . . java.io.OutputStream: jdbclib/java/io/OutputStream.pm . . . java.io.OutputStream: checking jdbclib/java/io/OutputStream.pm syntax OK . . java.sql.Blob: checking jdbclib/java/sql/Blob.pm syntax OK . . java.sql.Clob: jdbclib/java/sql/Clob.pm . . . java.io.Writer: jdbclib/java/io/Writer.pm . . . java.io.Writer: checking jdbclib/java/io/Writer.pm syntax OK . . java.sql.Clob: checking jdbclib/java/sql/Clob.pm syntax OK . . java.sql.Date: jdbclib/java/sql/Date.pm . . . java.util.Date: jdbclib/java/util/Date.pm . . . java.util.Date: checking jdbclib/java/util/Date.pm syntax OK . . java.sql.Date: checking jdbclib/java/sql/Date.pm syntax OK . . java.sql.NClob: jdbclib/java/sql/NClob.pm . . java.sql.NClob: checking jdbclib/java/sql/NClob.pm syntax OK . . java.sql.Ref: jdbclib/java/sql/Ref.pm . . . java.util.Map: jdbclib/java/util/Map.pm . . . . java.util.Collection: jdbclib/java/util/Collection.pm . . . . . java.lang.Iterable: jdbclib/java/lang/Iterable.pm . . . . . . java.util.Iterator: jdbclib/java/util/Iterator.pm . . . . . . java.util.Iterator: checking jdbclib/java/util/Iterator.pm syntax OK . . . . . java.lang.Iterable: checking jdbclib/java/lang/Iterable.pm syntax OK . . . . java.util.Collection: checking jdbclib/java/util/Collection.pm syntax OK . . . . java.util.Set: jdbclib/java/util/Set.pm . . . . java.util.Set: checking jdbclib/java/util/Set.pm syntax OK . . . java.util.Map: checking jdbclib/java/util/Map.pm syntax OK . . java.sql.Ref: checking jdbclib/java/sql/Ref.pm syntax OK . . java.sql.ResultSetMetaData: jdbclib/java/sql/ResultSetMetaData.pm . . . java.sql.Wrapper: jdbclib/java/sql/Wrapper.pm . . . java.sql.Wrapper: checking jdbclib/java/sql/Wrapper.pm syntax OK . . java.sql.ResultSetMetaData: checking jdbclib/java/sql/ResultSetMetaData.pm syntax OK . . java.sql.RowId: jdbclib/java/sql/RowId.pm . . java.sql.RowId: checking jdbclib/java/sql/RowId.pm syntax OK . . java.sql.SQLWarning: jdbclib/java/sql/SQLWarning.pm . . . java.sql.SQLException: jdbclib/java/sql/SQLException.pm . . . . java.lang.Exception: jdbclib/java/lang/Exception.pm . . . . . java.lang.Throwable: jdbclib/java/lang/Throwable.pm . . . . . . java.io.PrintStream: jdbclib/java/io/PrintStream.pm . . . . . . . java.io.FilterOutputStream: jdbclib/java/io/FilterOutputStream.pm . . . . . . . java.io.FilterOutputStream: checking jdbclib/java/io/FilterOutputStream.pm syntax OK . . . . . . . java.util.Locale: jdbclib/java/util/Locale.pm . . . . . . . java.util.Locale: checking jdbclib/java/util/Locale.pm syntax OK . . . . . . java.io.PrintStream: checking jdbclib/java/io/PrintStream.pm syntax OK . . . . . . java.io.PrintWriter: jdbclib/java/io/PrintWriter.pm . . . . . . java.io.PrintWriter: checking jdbclib/java/io/PrintWriter.pm syntax OK . . . . . . java.lang.StackTraceElement: jdbclib/java/lang/StackTraceElement.pm . . . . . . java.lang.StackTraceElement: checking jdbclib/java/lang/StackTraceElement.pm syntax OK . . . . . java.lang.Throwable: checking jdbclib/java/lang/Throwable.pm syntax OK . . . . java.lang.Exception: checking jdbclib/java/lang/Exception.pm syntax OK . . . java.sql.SQLException: checking jdbclib/java/sql/SQLException.pm syntax OK . . java.sql.SQLWarning: checking jdbclib/java/sql/SQLWarning.pm syntax OK . . java.sql.SQLXML: jdbclib/java/sql/SQLXML.pm ERROR (line 1): Invalid comp unit: Was expecting comp stmt java.sql.CallableStatement: jdbclib/java/sql/CallableStatement.pm . java.sql.PreparedStatement: jdbclib/java/sql/PreparedStatement.pm . . java.sql.ParameterMetaData: jdbclib/java/sql/ParameterMetaData.pm . . java.sql.ParameterMetaData: checking jdbclib/java/sql/ParameterMetaData.pm syntax OK . . java.sql.Statement: jdbclib/java/sql/Statement.pm . . . java.sql.Connection: jdbclib/java/sql/Connection.pm . . . . java.sql.DatabaseMetaData: jdbclib/java/sql/DatabaseMetaData.pm . . . . . java.sql.RowIdLifetime: jdbclib/java/sql/RowIdLifetime.pm . . . . . java.sql.RowIdLifetime: checking jdbclib/java/sql/RowIdLifetime.pm syntax OK . . . . java.sql.DatabaseMetaData: checking jdbclib/java/sql/DatabaseMetaData.pm Can't find ./java/util/Properties in @*INC in Main (src/gen_setting.pm:445) . . . . java.sql.Savepoint: jdbclib/java/sql/Savepoint.pm . . . . java.sql.Savepoint: checking jdbclib/java/sql/Savepoint.pm syntax OK . . . . java.sql.Struct: jdbclib/java/sql/Struct.pm . . . . java.sql.Struct: checking jdbclib/java/sql/Struct.pm syntax OK . . . . java.util.Properties: jdbclib/java/util/Properties.pm . . . . . java.util.Enumeration: jdbclib/java/util/Enumeration.pm . . . . . java.util.Enumeration: checking jdbclib/java/util/Enumeration.pm syntax OK . . . . . java.util.Hashtable: jdbclib/java/util/Hashtable.pm . . . . . . java.util.Dictionary: jdbclib/java/util/Dictionary.pm . . . . . . java.util.Dictionary: checking jdbclib/java/util/Dictionary.pm syntax OK . . . . . java.util.Hashtable: checking jdbclib/java/util/Hashtable.pm syntax OK . . . . java.util.Properties: checking jdbclib/java/util/Properties.pm syntax OK . . . java.sql.Connection: checking jdbclib/java/sql/Connection.pm Can't find ./java/util/Calendar in @*INC in Main (src/gen_setting.pm:445) . . java.sql.Statement: checking jdbclib/java/sql/Statement.pm Can't find ./java/util/Calendar in @*INC in Main (src/gen_setting.pm:445) . . java.sql.Time: jdbclib/java/sql/Time.pm . . java.sql.Time: checking jdbclib/java/sql/Time.pm syntax OK . . java.sql.Timestamp: jdbclib/java/sql/Timestamp.pm . . java.sql.Timestamp: checking jdbclib/java/sql/Timestamp.pm syntax OK . . java.util.Calendar: jdbclib/java/util/Calendar.pm . . . java.util.TimeZone: jdbclib/java/util/TimeZone.pm . . . java.util.TimeZone: checking jdbclib/java/util/TimeZone.pm syntax OK . . java.util.Calendar: checking jdbclib/java/util/Calendar.pm syntax OK . java.sql.PreparedStatement: checking jdbclib/java/sql/PreparedStatement.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) java.sql.CallableStatement: checking jdbclib/java/sql/CallableStatement.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) java.sql.Driver: jdbclib/java/sql/Driver.pm . java.sql.DriverPropertyInfo: jdbclib/java/sql/DriverPropertyInfo.pm . java.sql.DriverPropertyInfo: checking jdbclib/java/sql/DriverPropertyInfo.pm syntax OK java.sql.Driver: checking jdbclib/java/sql/Driver.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) java.sql.SQLData: jdbclib/java/sql/SQLData.pm . java.sql.SQLInput: jdbclib/java/sql/SQLInput.pm . java.sql.SQLInput: checking jdbclib/java/sql/SQLInput.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) . java.sql.SQLOutput: jdbclib/java/sql/SQLOutput.pm . java.sql.SQLOutput: checking jdbclib/java/sql/SQLOutput.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) java.sql.SQLData: checking jdbclib/java/sql/SQLData.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) java.sql.SQLPermission: jdbclib/java/sql/SQLPermission.pm . java.security.BasicPermission: jdbclib/java/security/BasicPermission.pm . . java.security.Permission: jdbclib/java/security/Permission.pm . . . java.security.PermissionCollection: jdbclib/java/security/PermissionCollection.pm . . . java.security.PermissionCollection: checking jdbclib/java/security/PermissionCollection.pm Malformed method definition at line 11, near "add(\n " in Main (src/gen_setting.pm:3363) . . java.security.Permission: checking jdbclib/java/security/Permission.pm Unable to parse multisig; couldn't find final ')' at line 38, near "--> java::" in Main (src/gen_setting.pm:3363) . java.security.BasicPermission: checking jdbclib/java/security/BasicPermission.pm Malformed method definition at line 11, near "add(\n " in Main (src/gen_setting.pm:3363) java.sql.SQLPermission: checking jdbclib/java/sql/SQLPermission.pm Malformed method definition at line 11, near "add(\n " in Main (src/gen_setting.pm:3363) javax.sql.ConnectionEvent: jdbclib/javax/sql/ConnectionEvent.pm . java.util.EventObject: jdbclib/java/util/EventObject.pm . java.util.EventObject: checking jdbclib/java/util/EventObject.pm syntax OK javax.sql.ConnectionEvent: checking jdbclib/javax/sql/ConnectionEvent.pm syntax OK javax.sql.ConnectionEventListener: jdbclib/javax/sql/ConnectionEventListener.pm . java.util.EventListener: jdbclib/java/util/EventListener.pm . java.util.EventListener: checking jdbclib/java/util/EventListener.pm syntax OK javax.sql.ConnectionEventListener: checking jdbclib/javax/sql/ConnectionEventListener.pm syntax OK javax.sql.PooledConnection: jdbclib/javax/sql/PooledConnection.pm . javax.sql.StatementEventListener: jdbclib/javax/sql/StatementEventListener.pm . . javax.sql.StatementEvent: jdbclib/javax/sql/StatementEvent.pm . . javax.sql.StatementEvent: checking jdbclib/javax/sql/StatementEvent.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) . javax.sql.StatementEventListener: checking jdbclib/javax/sql/StatementEventListener.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) javax.sql.PooledConnection: checking jdbclib/javax/sql/PooledConnection.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) javax.sql.RowSet: jdbclib/javax/sql/RowSet.pm . javax.sql.RowSetListener: jdbclib/javax/sql/RowSetListener.pm . . javax.sql.RowSetEvent: jdbclib/javax/sql/RowSetEvent.pm . . javax.sql.RowSetEvent: checking jdbclib/javax/sql/RowSetEvent.pm syntax OK . javax.sql.RowSetListener: checking jdbclib/javax/sql/RowSetListener.pm syntax OK javax.sql.RowSet: checking jdbclib/javax/sql/RowSet.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) javax.sql.RowSetInternal: jdbclib/javax/sql/RowSetInternal.pm . javax.sql.RowSetMetaData: jdbclib/javax/sql/RowSetMetaData.pm . javax.sql.RowSetMetaData: checking jdbclib/javax/sql/RowSetMetaData.pm syntax OK javax.sql.RowSetInternal: checking jdbclib/javax/sql/RowSetInternal.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) javax.sql.XAConnection: jdbclib/javax/sql/XAConnection.pm . javax.transaction.xa.XAResource: jdbclib/javax/transaction/xa/XAResource.pm . . javax.transaction.xa.Xid: jdbclib/javax/transaction/xa/Xid.pm . . javax.transaction.xa.Xid: checking jdbclib/javax/transaction/xa/Xid.pm syntax OK . javax.transaction.xa.XAResource: checking jdbclib/javax/transaction/xa/XAResource.pm syntax OK javax.sql.XAConnection: checking jdbclib/javax/sql/XAConnection.pm Can't find ./javax/xml/transform/Source in @*INC in Main (src/gen_setting.pm:445) ok: jdbclib/java/io/FilterOutputStream.pm ok: jdbclib/java/io/OutputStream.pm ok: jdbclib/java/io/PrintStream.pm ok: jdbclib/java/io/PrintWriter.pm ok: jdbclib/java/io/Reader.pm ok: jdbclib/java/io/Writer.pm ok: jdbclib/java/lang/Appendable.pm ok: jdbclib/java/lang/CharSequence.pm ok: jdbclib/java/lang/Enum.pm ok: jdbclib/java/lang/Exception.pm ok: jdbclib/java/lang/Iterable.pm ok: jdbclib/java/lang/StackTraceElement.pm ok: jdbclib/java/lang/Throwable.pm FAILED: jdbclib/java/math/BigDecimal.pm ok: jdbclib/java/math/MathContext.pm ok: jdbclib/java/math/RoundingMode.pm ok: jdbclib/java/nio/Buffer.pm ok: jdbclib/java/nio/ByteOrder.pm ok: jdbclib/java/nio/CharBuffer.pm FAILED: jdbclib/java/security/BasicPermission.pm FAILED: jdbclib/java/security/Permission.pm FAILED: jdbclib/java/security/PermissionCollection.pm ok: jdbclib/java/sql/Blob.pm FAILED: jdbclib/java/sql/CallableStatement.pm ok: jdbclib/java/sql/Clob.pm FAILED: jdbclib/java/sql/Connection.pm FAILED: jdbclib/java/sql/DatabaseMetaData.pm ok: jdbclib/java/sql/Date.pm FAILED: jdbclib/java/sql/Driver.pm ok: jdbclib/java/sql/DriverPropertyInfo.pm ok: jdbclib/java/sql/NClob.pm ok: jdbclib/java/sql/ParameterMetaData.pm FAILED: jdbclib/java/sql/PreparedStatement.pm ok: jdbclib/java/sql/Ref.pm ok: jdbclib/java/sql/ResultSetMetaData.pm ok: jdbclib/java/sql/RowId.pm ok: jdbclib/java/sql/RowIdLifetime.pm FAILED: jdbclib/java/sql/SQLData.pm ok: jdbclib/java/sql/SQLException.pm FAILED: jdbclib/java/sql/SQLInput.pm FAILED: jdbclib/java/sql/SQLOutput.pm FAILED: jdbclib/java/sql/SQLPermission.pm ok: jdbclib/java/sql/SQLWarning.pm ok: jdbclib/java/sql/Savepoint.pm FAILED: jdbclib/java/sql/Statement.pm ok: jdbclib/java/sql/Struct.pm ok: jdbclib/java/sql/Time.pm ok: jdbclib/java/sql/Timestamp.pm ok: jdbclib/java/sql/Wrapper.pm ok: jdbclib/java/util/Calendar.pm ok: jdbclib/java/util/Collection.pm ok: jdbclib/java/util/Date.pm ok: jdbclib/java/util/Dictionary.pm ok: jdbclib/java/util/Enumeration.pm ok: jdbclib/java/util/EventListener.pm ok: jdbclib/java/util/EventObject.pm ok: jdbclib/java/util/Hashtable.pm ok: jdbclib/java/util/Iterator.pm ok: jdbclib/java/util/Locale.pm ok: jdbclib/java/util/Map.pm ok: jdbclib/java/util/Properties.pm ok: jdbclib/java/util/Set.pm ok: jdbclib/java/util/TimeZone.pm ok: jdbclib/javax/sql/ConnectionEvent.pm ok: jdbclib/javax/sql/ConnectionEventListener.pm FAILED: jdbclib/javax/sql/PooledConnection.pm FAILED: jdbclib/javax/sql/RowSet.pm ok: jdbclib/javax/sql/RowSetEvent.pm FAILED: jdbclib/javax/sql/RowSetInternal.pm ok: jdbclib/javax/sql/RowSetListener.pm ok: jdbclib/javax/sql/RowSetMetaData.pm FAILED: jdbclib/javax/sql/StatementEvent.pm FAILED: jdbclib/javax/sql/StatementEventListener.pm FAILED: jdbclib/javax/sql/XAConnection.pm ok: jdbclib/javax/transaction/xa/XAResource.pm ok: jdbclib/javax/transaction/xa/Xid.pm 56 ok, 20 failed.