On Fri, Aug 07, 2009 at 03:05:33PM -0700, Todd Presta wrote: > 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.
Great. Thanks Todd. Send me a goggle account email and I'll give you commit access so you can just check it in. Tim. > > -- Todd Presta > -- [1]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 [2]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 > [3]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 > . . [4]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 > . . . [5]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 > . . . . . . [6]java.io.PrintStream: jdbclib/java/io/PrintStream.pm > . . . . . . . [7]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. > > References > > Visible links > 1. http://www.asciiville.com/ > 2. http://mkjdbc.pl/ > 3. http://databasemetadata.pm/ > 4. http://java.io.re/ > 5. http://java.io/ > 6. http://java.io.pr/ > 7. http://java.io.fi/