[Glass] Very weird compilation errors!

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[Glass] Very weird compilation errors!

Mariano Martinez Peck
Hi guys,

I am loading yet another one of my packages in Glass and I am having a weird compilation error. To avoid any side effect, I started with a clean backup with just Metacello and GLASS. 

To start with....it shows lots of requires classes, which are not true!!! those classes are from the package I want to load itself and also, they are NOT being referenced from any place yet. 

I attach screenshots of each step..

OK... I proceed anyway...

Second... I get a popup saying:   'The following definitions had errors while loading.  Press Proceed to try to load them again (they may work on a second pass):
  OFXBuyDebt class>>enclosingTag
  OFXMarginInterest>>currency:
  OFXRetOfCap>>subAcctFund
  OFXInvestmentAccount class>>xmlMappings
  OFXConstants class>>tferAction
'

What do they method have strange? no idea... OK, I continue...

Third problem, it barks about compilation errors which are quite weird... The SOURCE to compile looks ok (although it has some white space AFTER the quote!), but the errorString shows something very weird... 

There is definitively something wrong. What does this package has in particular?
- Sometimes (for example, once), the package could load successfully. So I think it might depend on the order methods or classes or something gets loaded/compiled?
- I loaded it from Monticello with a directory-based repo, committed from Pharo (I already loaded this way other packages and no problem)
- It has lots of methods with literal arrays like this:

xmlMappings
^ {
{#invAcctFrom . #invAccountFrom. nil }.
{#inveIncTran. { 
{#inveDtStart . #start. #datetime. }.
{#inveDtEnd . #end. #datetime. }.
{#include . #includeTransactions. #boolean. }.
} }.
{#inveIncludeOpenOrders. #includeOpenOrders. #boolean. }.
{#inveIncPos . { 
{#inveDateAsOf . #positionsAsFor. #datetime. }.
{#include . #includePositions. #boolean. }.
} }.
{#inveIncBal . #includeBalances. #boolean. }.
 
Thoughts? 

Thanks in advance, 

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass

weirdCompilationErrors.zip (420K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Very weird compilation errors!

Dale Henrichs-3
Okay,

I'm going to guess that your package has been infected with a WideString Ii.e., you've got some Unicode strings embedded in a comment or your source) ... This is a fundamental problem with Monticello ...

Of course, if you have stored you packages into FileTree from Pharo, then all of the source should be in Utf8 on disk and that will eliminate the WideString from suspicion...

Looking at wierd3, It strikes me that the errorString is complaining about 45 characters worth of illegal characters and the bulk of the illegal characters look to be embedded in the whitespace between `enclosingTag` and `^ OFXConstants buyDebt` do I'd like to see the character values of the whitespace ...

Dale


From: "Mariano Martinez Peck" <[hidden email]>
To: [hidden email]
Sent: Friday, November 15, 2013 9:39:55 AM
Subject: [Glass] Very weird compilation errors!

Hi guys,

I am loading yet another one of my packages in Glass and I am having a weird compilation error. To avoid any side effect, I started with a clean backup with just Metacello and GLASS. 

To start with....it shows lots of requires classes, which are not true!!! those classes are from the package I want to load itself and also, they are NOT being referenced from any place yet. 

I attach screenshots of each step..

OK... I proceed anyway...

Second... I get a popup saying:   'The following definitions had errors while loading.  Press Proceed to try to load them again (they may work on a second pass):
  OFXBuyDebt class>>enclosingTag
  OFXMarginInterest>>currency:
  OFXRetOfCap>>subAcctFund
  OFXInvestmentAccount class>>xmlMappings
  OFXConstants class>>tferAction
'

What do they method have strange? no idea... OK, I continue...

Third problem, it barks about compilation errors which are quite weird... The SOURCE to compile looks ok (although it has some white space AFTER the quote!), but the errorString shows something very weird... 

There is definitively something wrong. What does this package has in particular?
- Sometimes (for example, once), the package could load successfully. So I think it might depend on the order methods or classes or something gets loaded/compiled?
- I loaded it from Monticello with a directory-based repo, committed from Pharo (I already loaded this way other packages and no problem)
- It has lots of methods with literal arrays like this:

xmlMappings
^ {
{#invAcctFrom . #invAccountFrom. nil }.
{#inveIncTran. { 
{#inveDtStart . #start. #datetime. }.
{#inveDtEnd . #end. #datetime. }.
{#include . #includeTransactions. #boolean. }.
} }.
{#inveIncludeOpenOrders. #includeOpenOrders. #boolean. }.
{#inveIncPos . { 
{#inveDateAsOf . #positionsAsFor. #datetime. }.
{#include . #includePositions. #boolean. }.
} }.
{#inveIncBal . #includeBalances. #boolean. }.
 
Thoughts? 

Thanks in advance, 

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass


_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass
Reply | Threaded
Open this post in threaded view
|

Re: [Glass] Very weird compilation errors!

Mariano Martinez Peck



On Fri, Nov 15, 2013 at 3:10 PM, Dale K. Henrichs <[hidden email]> wrote:
Okay,

I'm going to guess that your package has been infected with a WideString Ii.e., you've got some Unicode strings embedded in a comment or your source) ... This is a fundamental problem with Monticello ...

Of course, if you have stored you packages into FileTree from Pharo, then all of the source should be in Utf8 on disk and that will eliminate the WideString from suspicion...

Looking at wierd3, It strikes me that the errorString is complaining about 45 characters worth of illegal characters and the bulk of the illegal characters look to be embedded in the whitespace between `enclosingTag` and `^ OFXConstants buyDebt` do I'd like to see the character values of the whitespace ...


jackpot!!! Thanks for all your patient and support. 
So...in the inspector of the source string... which should be a simple:

enclosingTag
^ OFXConstants buyDebt 
 
In the inspect (top left) of 3_weird.... I noticed that the first $e (from enclosingTag) is in position 1, the $n in 5, the $c in 9, the $l in 13 ... so... +4 ... WideString related !!!

In fact, the size of the above method is 39 (in Pharo). 39 * 4 = 156. And indeed, the size of the top left string is 156. 
The int value of the elements in the middle, seem to be 0. 

ok.... now I found it.....


((PackageInfo named: 'MyPackage') asRPackageSet methods select: [ :each | each sourceCode isWideString]) size. -> 0
((PackageInfo named: 'MyPackage') asRPackageSet extensionMethods select: [ :each | each sourceCode isWideString]) size. -> 0
(((PackageInfo named: 'MyPackage') asRPackageSet classes select: [ :each | each comment isWideString])) size -> 5

So yes, I have some class comments where I think the quote got weird. In fact, in Pharo it shows the $?  instead of the quote.
What is funny is that I remember using normal quotes #'   ...

Now it loaded perfectly.

Thanks Dale. 





Dale


From: "Mariano Martinez Peck" <[hidden email]>
To: [hidden email]
Sent: Friday, November 15, 2013 9:39:55 AM
Subject: [Glass] Very weird compilation errors!


Hi guys,

I am loading yet another one of my packages in Glass and I am having a weird compilation error. To avoid any side effect, I started with a clean backup with just Metacello and GLASS. 

To start with....it shows lots of requires classes, which are not true!!! those classes are from the package I want to load itself and also, they are NOT being referenced from any place yet. 

I attach screenshots of each step..

OK... I proceed anyway...

Second... I get a popup saying:   'The following definitions had errors while loading.  Press Proceed to try to load them again (they may work on a second pass):
  OFXBuyDebt class>>enclosingTag
  OFXMarginInterest>>currency:
  OFXRetOfCap>>subAcctFund
  OFXInvestmentAccount class>>xmlMappings
  OFXConstants class>>tferAction
'

What do they method have strange? no idea... OK, I continue...

Third problem, it barks about compilation errors which are quite weird... The SOURCE to compile looks ok (although it has some white space AFTER the quote!), but the errorString shows something very weird... 

There is definitively something wrong. What does this package has in particular?
- Sometimes (for example, once), the package could load successfully. So I think it might depend on the order methods or classes or something gets loaded/compiled?
- I loaded it from Monticello with a directory-based repo, committed from Pharo (I already loaded this way other packages and no problem)
- It has lots of methods with literal arrays like this:

xmlMappings
^ {
{#invAcctFrom . #invAccountFrom. nil }.
{#inveIncTran. { 
{#inveDtStart . #start. #datetime. }.
{#inveDtEnd . #end. #datetime. }.
{#include . #includeTransactions. #boolean. }.
} }.
{#inveIncludeOpenOrders. #includeOpenOrders. #boolean. }.
{#inveIncPos . { 
{#inveDateAsOf . #positionsAsFor. #datetime. }.
{#include . #includePositions. #boolean. }.
} }.
{#inveIncBal . #includeBalances. #boolean. }.
 
Thoughts? 

Thanks in advance, 

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass




--
Mariano
http://marianopeck.wordpress.com

_______________________________________________
Glass mailing list
[hidden email]
http://lists.gemtalksystems.com/mailman/listinfo/glass