[Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Michael Feathers



I have some code that looks like this and I'm having trouble with it:


zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd geoCaches)
  groundSpeeds headings (map windShift headings) (regulations !! 2)
  (foldr (\|/) (tail pathDistances)) [ghy x | x - [1..], full x]
  (nub . nub) arrivalSchedule


The domain is air traffic control and I need to generate 12-tuples for 
aircraft that are within a particular radius of the tower.


When I evaluate that expression with 'take 4' it works fine.  When I 
evaluate it with 'take 6' it works as well.  But, when I evaluate it 
with 'take 5' I get the following runtime error from H# in Visual Studio 
(it runs fine on the command line).  This is particularly odd because 
I'm not using Sql.




The type initializer for 'System.Data.SqlClient.SqlConnection' threw an 
exception.
Exception (TypeInitializationException): Source=System.Data; 
Target=null; Tag=null; TypeName=System.Data.SqlClient.SqlConnection;
Message = The type initializer for 
'System.Data.SqlClient.SqlConnection' threw an exception.
InnerException (TypeInitializationException): Source=System.Data; 
Target=null; Tag=null;
Message = The type initializer for 
'System.Data.SqlClient.SqlConnectionFactory' threw an exception.

StackTrace =  at System.Data.SqlClient.SqlConnection..cctor()
InnerException (TypeInitializationException): Source=System.Data; 
Target=null; Tag=null;
Message = The type initializer for 
'System.Data.SqlClient.SqlPerformanceCounters' threw an exception.

StackTrace =
 at System.Data.SqlClient.SqlConnectionFactory..ctor()
at System.Data.SqlClient.SqlConnectionFactory..cctor()
InnerException (ConfigurationErrorsException): 
Source=System.Configuration; Target=null; Tag=null; Line=21;

Message =
The value of the property 'traceOutputOptions' cannot be parsed. The 
error is: The enumeration value must be one of the following: None, 
LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, 
Callstack. (C:\Documents and
Settings\Paey\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config 
line 21)

StackTrace =
 at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] 
keys, SectionInput input, Boolean isTrusted, FactoryRecord 
factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord 
factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean 
getLkg, Boolean getRuntimeObject, Object result, Object 
resultRuntimeObject)
at 
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String 
configKey, Boolean getLkg, Boolean checkPermission, Boolean 
getRuntimeObject, Boolean requestIsHere, Object result, Object 
resultRuntimeObject)
at 
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String 
configKey, Boolean getLkg, Boolean checkPermission, Boolean 
getRuntimeObject, Boolean requestIsHere, Object result, Object 
resultRuntimeObject)
at 
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String 
configKey, Boolean getLkg, Boolean ch... (truncated) ...olean 
checkPermission)

at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at 
System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String 
sectionName)

at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Configuration.PrivilegedConfigurationManager.GetSection(String 
sectionName)

at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
at System.Diagnostics.DiagnosticsConfiguration.Initialize()
at System.Diagnostics.Switch.InitializeConfigSettings()
at System.Diagnostics.Switch.InitializeWithStatus()
at System.Diagnostics.Switch.get_SwitchSetting()
at System.Diagnostics.TraceSwitch.get_Level()
at System.Data.ProviderBase.DbConnectionPoolCounters..ctor(String 
categoryName, String categoryHelp)

at System.Data.SqlClient.SqlPerformanceCounters..ctor()
at System.Data.SqlClient.SqlPerformanceCounters..cctor()
BareMessage = The value of the property 'traceOutputOptions' cannot be 
parsed. The error is: The enumeration value must be one of the 
following: None, LogicalOperationStack, DateTime, Timestamp, ProcessId, 
ThreadId, Callstack.
Filename = C:\Documents and 
Settings\Pley\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config

Errors (ConfigurationException[]): Length=1; Rank=1; Count=1;
#0 (ConfigurationErrorsException): Source=null; Target=null; Tag=null; 
StackTrace=null; BareMessage=(-BareMessage); Filename=(-Filename); 
Line=21;

Message =
The value of the property 'traceOutputOptions' cannot be parsed. The 
error is: The enumeration value must be one of the following: None, 
LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, 
Callstack. (C:\Documents and
Settings\Pley\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config 
line 21)

Errors (ConfigurationException[]): Length=1; Rank=1; Count=1;
#0 (ConfigurationErrorsException): 

Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Don Stewart
mfeathers:
 
 
 I have some code that looks like this and I'm having trouble with it:
 
 
 zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd geoCaches)
   groundSpeeds headings (map windShift headings) (regulations !! 2)
   (foldr (\|/) (tail pathDistances)) [ghy x | x - [1..], full x]
   (nub . nub) arrivalSchedule
 
 The domain is air traffic control and I need to generate 12-tuples for 
 aircraft that are within a particular radius of the tower.

12 tuples are really really unusual. It sounds like perhaps you should
be using a custom data type here.

data Aircraft = Aircraft
{ wayPoints= currentWayPoints
, groundSpeeds = ...
, headings = ...
,  etc ...
}


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Paul Visschers
You're zipping 12 lists here, so how about testing each list
individually? This will narrow down the problem considerably.

Michael Feathers wrote:
 
 
 I have some code that looks like this and I'm having trouble with it:
 
 
 zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd geoCaches)
   groundSpeeds headings (map windShift headings) (regulations !! 2)
   (foldr (\|/) (tail pathDistances)) [ghy x | x - [1..], full x]
   (nub . nub) arrivalSchedule
 
 
 The domain is air traffic control and I need to generate 12-tuples for
 aircraft that are within a particular radius of the tower.
 
 When I evaluate that expression with 'take 4' it works fine.  When I
 evaluate it with 'take 6' it works as well.  But, when I evaluate it
 with 'take 5' I get the following runtime error from H# in Visual Studio
 (it runs fine on the command line).  This is particularly odd because
 I'm not using Sql.
 
 
 
 The type initializer for 'System.Data.SqlClient.SqlConnection' threw an
 exception.
 Exception (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null; TypeName=System.Data.SqlClient.SqlConnection;
 Message = The type initializer for
 'System.Data.SqlClient.SqlConnection' threw an exception.
 InnerException (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null;
 Message = The type initializer for
 'System.Data.SqlClient.SqlConnectionFactory' threw an exception.
 StackTrace =  at System.Data.SqlClient.SqlConnection..cctor()
 InnerException (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null;
 Message = The type initializer for
 'System.Data.SqlClient.SqlPerformanceCounters' threw an exception.
 StackTrace =
  at System.Data.SqlClient.SqlConnectionFactory..ctor()
 at System.Data.SqlClient.SqlConnectionFactory..cctor()
 InnerException (ConfigurationErrorsException):
 Source=System.Configuration; Target=null; Tag=null; Line=21;
 Message =
 The value of the property 'traceOutputOptions' cannot be parsed. The
 error is: The enumeration value must be one of the following: None,
 LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId,
 Callstack. (C:\Documents and
 Settings\Paey\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config
 line 21)
 StackTrace =
  at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[]
 keys, SectionInput input, Boolean isTrusted, FactoryRecord
 factoryRecord, SectionRecord sectionRecord, Object parentResult)
 at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord
 factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean
 getLkg, Boolean getRuntimeObject, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean checkPermission, Boolean
 getRuntimeObject, Boolean requestIsHere, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean checkPermission, Boolean
 getRuntimeObject, Boolean requestIsHere, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean ch... (truncated) ...olean
 checkPermission)
 at System.Configuration.BaseConfigurationRecord.GetSection(String
 configKey)
 at
 System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String
 sectionName)
 at System.Configuration.ConfigurationManager.GetSection(String sectionName)
 at System.Configuration.PrivilegedConfigurationManager.GetSection(String
 sectionName)
 at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
 at System.Diagnostics.DiagnosticsConfiguration.Initialize()
 at System.Diagnostics.Switch.InitializeConfigSettings()
 at System.Diagnostics.Switch.InitializeWithStatus()
 at System.Diagnostics.Switch.get_SwitchSetting()
 at System.Diagnostics.TraceSwitch.get_Level()
 at System.Data.ProviderBase.DbConnectionPoolCounters..ctor(String
 categoryName, String categoryHelp)
 at System.Data.SqlClient.SqlPerformanceCounters..ctor()
 at System.Data.SqlClient.SqlPerformanceCounters..cctor()
 BareMessage = The value of the property 'traceOutputOptions' cannot be
 parsed. The error is: The enumeration value must be one of the
 following: None, LogicalOperationStack, DateTime, Timestamp, ProcessId,
 ThreadId, Callstack.
 Filename = C:\Documents and
 Settings\Pley\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config
 Errors (ConfigurationException[]): Length=1; Rank=1; Count=1;
 #0 (ConfigurationErrorsException): Source=null; Target=null; Tag=null;
 StackTrace=null; BareMessage=(-BareMessage); Filename=(-Filename);
 Line=21;
 Message =
 The value of the property 'traceOutputOptions' cannot be parsed. The
 error is: The enumeration value must be one of the following: None,
 LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId,
 Callstack. 

Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Tony Morris
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Michael Feathers wrote:


 I have some code that looks like this and I'm having trouble with
 it:


 zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd
 geoCaches) groundSpeeds headings (map windShift headings)
 (regulations !! 2) (foldr (\|/) (tail pathDistances)) [ghy x | x -
 [1..], full x] (nub . nub) arrivalSchedule

Hi Michael,
Sorry to distract from your issue, but I note that (nub . nub) can be
replaced with just 'nub' since the function nub is idempotent (f . f
== f).

dibblego @check \x - (nub . nub) x == nub x -- is nub idempotent?
lambdabot  OK, passed 500 tests.

- --
Tony Morris
http://tmorris.net/

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIcS9LmnpgrYe6r60RAiDOAKCJlDaqNd5ssgxrUrrHee75WGzhbgCfftdn
70+4isXh4zaoYly0da2Gdk8=
=ryfF
-END PGP SIGNATURE-

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Michael Feathers


Sorry guys.  I was just bored on a Sunday afternoon so I thought I'd 
type up a little joke.  I thought to myself Gee, how outrageous can I 
make it?


1) Using and debugging a zip12 function.
2) That fails only on 'take 5' (Brubeck fans take note)
3) Has some absurd arguments like (nub . nub)
4) Is embedded in an air traffic control system
5) Is written in a Microsoft variant of Haskell called H#
6) Silently makes SQL calls when evaluating a pure function
7) Yields an mile long stack trace

Sorry all.  Boredom made me do it,

Michael

Paul Visschers wrote:

You're zipping 12 lists here, so how about testing each list
individually? This will narrow down the problem considerably.

Michael Feathers wrote:


I have some code that looks like this and I'm having trouble with it:


zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd geoCaches)
  groundSpeeds headings (map windShift headings) (regulations !! 2)
  (foldr (\|/) (tail pathDistances)) [ghy x | x - [1..], full x]
  (nub . nub) arrivalSchedule


The domain is air traffic control and I need to generate 12-tuples for
aircraft that are within a particular radius of the tower.

When I evaluate that expression with 'take 4' it works fine.  When I
evaluate it with 'take 6' it works as well.  But, when I evaluate it
with 'take 5' I get the following runtime error from H# in Visual Studio
(it runs fine on the command line).  This is particularly odd because
I'm not using Sql.



The type initializer for 'System.Data.SqlClient.SqlConnection' threw an
exception.
Exception (TypeInitializationException): Source=System.Data;
Target=null; Tag=null; TypeName=System.Data.SqlClient.SqlConnection;
Message = The type initializer for
'System.Data.SqlClient.SqlConnection' threw an exception.
InnerException (TypeInitializationException): Source=System.Data;
Target=null; Tag=null;
Message = The type initializer for
'System.Data.SqlClient.SqlConnectionFactory' threw an exception.
StackTrace =  at System.Data.SqlClient.SqlConnection..cctor()
InnerException (TypeInitializationException): Source=System.Data;
Target=null; Tag=null;
Message = The type initializer for
'System.Data.SqlClient.SqlPerformanceCounters' threw an exception.
StackTrace =
 at System.Data.SqlClient.SqlConnectionFactory..ctor()
at System.Data.SqlClient.SqlConnectionFactory..cctor()
InnerException (ConfigurationErrorsException):
Source=System.Configuration; Target=null; Tag=null; Line=21;
Message =
The value of the property 'traceOutputOptions' cannot be parsed. The
error is: The enumeration value must be one of the following: None,
LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId,
Callstack. (C:\Documents and
Settings\Paey\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config
line 21)
StackTrace =
 at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[]
keys, SectionInput input, Boolean isTrusted, FactoryRecord
factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord
factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean
getLkg, Boolean getRuntimeObject, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean checkPermission, Boolean
getRuntimeObject, Boolean requestIsHere, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean checkPermission, Boolean
getRuntimeObject, Boolean requestIsHere, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean ch... (truncated) ...olean
checkPermission)
at System.Configuration.BaseConfigurationRecord.GetSection(String
configKey)
at
System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String
sectionName)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Configuration.PrivilegedConfigurationManager.GetSection(String
sectionName)
at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
at System.Diagnostics.DiagnosticsConfiguration.Initialize()
at System.Diagnostics.Switch.InitializeConfigSettings()
at System.Diagnostics.Switch.InitializeWithStatus()
at System.Diagnostics.Switch.get_SwitchSetting()
at System.Diagnostics.TraceSwitch.get_Level()
at System.Data.ProviderBase.DbConnectionPoolCounters..ctor(String
categoryName, String categoryHelp)
at System.Data.SqlClient.SqlPerformanceCounters..ctor()
at System.Data.SqlClient.SqlPerformanceCounters..cctor()
BareMessage = The value of the property 'traceOutputOptions' cannot be
parsed. The error is: The enumeration value must be one of the
following: None, LogicalOperationStack, DateTime, Timestamp, ProcessId,
ThreadId, Callstack.
Filename = C:\Documents and

Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Don Stewart
I win, almost ...

13:13:18 dons dolio: yeah, it was ... almost ... an April 1 style post 

:)

And yes, this was truly shocking on a number of levels. However, we have
people doing a lot of weird things with Haskell these days, so its not
as absurd that someone would be hacking up a zip12 for an air traffic
control system on some MS platform, with SQL in the backend, as it might
have been a few years ago :)

mfeathers:
 
 Sorry guys.  I was just bored on a Sunday afternoon so I thought I'd 
 type up a little joke.  I thought to myself Gee, how outrageous can I 
 make it?
 
 1) Using and debugging a zip12 function.
 2) That fails only on 'take 5' (Brubeck fans take note)
 3) Has some absurd arguments like (nub . nub)
 4) Is embedded in an air traffic control system
 5) Is written in a Microsoft variant of Haskell called H#
 6) Silently makes SQL calls when evaluating a pure function
 7) Yields an mile long stack trace
 
 Sorry all.  Boredom made me do it,
 
 Michael
 
 Paul Visschers wrote:
 You're zipping 12 lists here, so how about testing each list
 individually? This will narrow down the problem considerably.
 
 Michael Feathers wrote:
 
 I have some code that looks like this and I'm having trouble with it:
 
 
 zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd geoCaches)
   groundSpeeds headings (map windShift headings) (regulations !! 2)
   (foldr (\|/) (tail pathDistances)) [ghy x | x - [1..], full x]
   (nub . nub) arrivalSchedule
 
 
 The domain is air traffic control and I need to generate 12-tuples for
 aircraft that are within a particular radius of the tower.
 
 When I evaluate that expression with 'take 4' it works fine.  When I
 evaluate it with 'take 6' it works as well.  But, when I evaluate it
 with 'take 5' I get the following runtime error from H# in Visual Studio
 (it runs fine on the command line).  This is particularly odd because
 I'm not using Sql.
 
 
 
 The type initializer for 'System.Data.SqlClient.SqlConnection' threw an
 exception.
 Exception (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null; TypeName=System.Data.SqlClient.SqlConnection;
 Message = The type initializer for
 'System.Data.SqlClient.SqlConnection' threw an exception.
 InnerException (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null;
 Message = The type initializer for
 'System.Data.SqlClient.SqlConnectionFactory' threw an exception.
 StackTrace =  at System.Data.SqlClient.SqlConnection..cctor()
 InnerException (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null;
 Message = The type initializer for
 'System.Data.SqlClient.SqlPerformanceCounters' threw an exception.
 StackTrace =
  at System.Data.SqlClient.SqlConnectionFactory..ctor()
 at System.Data.SqlClient.SqlConnectionFactory..cctor()
 InnerException (ConfigurationErrorsException):
 Source=System.Configuration; Target=null; Tag=null; Line=21;
 Message =
 The value of the property 'traceOutputOptions' cannot be parsed. The
 error is: The enumeration value must be one of the following: None,
 LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId,
 Callstack. (C:\Documents and
 Settings\Paey\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config
 line 21)
 StackTrace =
  at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[]
 keys, SectionInput input, Boolean isTrusted, FactoryRecord
 factoryRecord, SectionRecord sectionRecord, Object parentResult)
 at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord
 factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean
 getLkg, Boolean getRuntimeObject, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean checkPermission, Boolean
 getRuntimeObject, Boolean requestIsHere, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean checkPermission, Boolean
 getRuntimeObject, Boolean requestIsHere, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean ch... (truncated) ...olean
 checkPermission)
 at System.Configuration.BaseConfigurationRecord.GetSection(String
 configKey)
 at
 System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String
 sectionName)
 at System.Configuration.ConfigurationManager.GetSection(String 
 sectionName)
 at System.Configuration.PrivilegedConfigurationManager.GetSection(String
 sectionName)
 at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
 at System.Diagnostics.DiagnosticsConfiguration.Initialize()
 at System.Diagnostics.Switch.InitializeConfigSettings()
 at System.Diagnostics.Switch.InitializeWithStatus()
 at System.Diagnostics.Switch.get_SwitchSetting()
 at 

Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Andrew Wagner
Wow. Where did you come up with the stack trace? That's...impressive.

On Sun, Jul 6, 2008 at 5:07 PM, Don Stewart [EMAIL PROTECTED] wrote:
 I win, almost ...

13:13:18 dons dolio: yeah, it was ... almost ... an April 1 style post

 :)

 And yes, this was truly shocking on a number of levels. However, we have
 people doing a lot of weird things with Haskell these days, so its not
 as absurd that someone would be hacking up a zip12 for an air traffic
 control system on some MS platform, with SQL in the backend, as it might
 have been a few years ago :)

 mfeathers:

 Sorry guys.  I was just bored on a Sunday afternoon so I thought I'd
 type up a little joke.  I thought to myself Gee, how outrageous can I
 make it?

 1) Using and debugging a zip12 function.
 2) That fails only on 'take 5' (Brubeck fans take note)
 3) Has some absurd arguments like (nub . nub)
 4) Is embedded in an air traffic control system
 5) Is written in a Microsoft variant of Haskell called H#
 6) Silently makes SQL calls when evaluating a pure function
 7) Yields an mile long stack trace

 Sorry all.  Boredom made me do it,

 Michael

 Paul Visschers wrote:
 You're zipping 12 lists here, so how about testing each list
 individually? This will narrow down the problem considerably.
 
 Michael Feathers wrote:
 
 I have some code that looks like this and I'm having trouble with it:
 
 
 zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd geoCaches)
   groundSpeeds headings (map windShift headings) (regulations !! 2)
   (foldr (\|/) (tail pathDistances)) [ghy x | x - [1..], full x]
   (nub . nub) arrivalSchedule
 
 
 The domain is air traffic control and I need to generate 12-tuples for
 aircraft that are within a particular radius of the tower.
 
 When I evaluate that expression with 'take 4' it works fine.  When I
 evaluate it with 'take 6' it works as well.  But, when I evaluate it
 with 'take 5' I get the following runtime error from H# in Visual Studio
 (it runs fine on the command line).  This is particularly odd because
 I'm not using Sql.
 
 
 
 The type initializer for 'System.Data.SqlClient.SqlConnection' threw an
 exception.
 Exception (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null; TypeName=System.Data.SqlClient.SqlConnection;
 Message = The type initializer for
 'System.Data.SqlClient.SqlConnection' threw an exception.
 InnerException (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null;
 Message = The type initializer for
 'System.Data.SqlClient.SqlConnectionFactory' threw an exception.
 StackTrace =  at System.Data.SqlClient.SqlConnection..cctor()
 InnerException (TypeInitializationException): Source=System.Data;
 Target=null; Tag=null;
 Message = The type initializer for
 'System.Data.SqlClient.SqlPerformanceCounters' threw an exception.
 StackTrace =
  at System.Data.SqlClient.SqlConnectionFactory..ctor()
 at System.Data.SqlClient.SqlConnectionFactory..cctor()
 InnerException (ConfigurationErrorsException):
 Source=System.Configuration; Target=null; Tag=null; Line=21;
 Message =
 The value of the property 'traceOutputOptions' cannot be parsed. The
 error is: The enumeration value must be one of the following: None,
 LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId,
 Callstack. (C:\Documents and
 Settings\Paey\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config
 line 21)
 StackTrace =
  at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[]
 keys, SectionInput input, Boolean isTrusted, FactoryRecord
 factoryRecord, SectionRecord sectionRecord, Object parentResult)
 at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord
 factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean
 getLkg, Boolean getRuntimeObject, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean checkPermission, Boolean
 getRuntimeObject, Boolean requestIsHere, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean checkPermission, Boolean
 getRuntimeObject, Boolean requestIsHere, Object result, Object
 resultRuntimeObject)
 at
 System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
 configKey, Boolean getLkg, Boolean ch... (truncated) ...olean
 checkPermission)
 at System.Configuration.BaseConfigurationRecord.GetSection(String
 configKey)
 at
 System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String
 sectionName)
 at System.Configuration.ConfigurationManager.GetSection(String
 sectionName)
 at System.Configuration.PrivilegedConfigurationManager.GetSection(String
 sectionName)
 at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
 at System.Diagnostics.DiagnosticsConfiguration.Initialize()
 at 

Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Michael Feathers

Don Stewart wrote:

I win, almost ...

13:13:18 dons dolio: yeah, it was ... almost ... an April 1 style post 


:)

And yes, this was truly shocking on a number of levels. However, we have
people doing a lot of weird things with Haskell these days, so its not
as absurd that someone would be hacking up a zip12 for an air traffic
control system on some MS platform, with SQL in the backend, as it might
have been a few years ago :)


:-)

Was that IRC?  Oh boy, now I have a reputation.

Michael



mfeathers:
Sorry guys.  I was just bored on a Sunday afternoon so I thought I'd 
type up a little joke.  I thought to myself Gee, how outrageous can I 
make it?


1) Using and debugging a zip12 function.
2) That fails only on 'take 5' (Brubeck fans take note)
3) Has some absurd arguments like (nub . nub)
4) Is embedded in an air traffic control system
5) Is written in a Microsoft variant of Haskell called H#
6) Silently makes SQL calls when evaluating a pure function
7) Yields an mile long stack trace

Sorry all.  Boredom made me do it,

Michael

Paul Visschers wrote:

You're zipping 12 lists here, so how about testing each list
individually? This will narrow down the problem considerably.

Michael Feathers wrote:

I have some code that looks like this and I'm having trouble with it:


zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd geoCaches)
 groundSpeeds headings (map windShift headings) (regulations !! 2)
 (foldr (\|/) (tail pathDistances)) [ghy x | x - [1..], full x]
 (nub . nub) arrivalSchedule


The domain is air traffic control and I need to generate 12-tuples for
aircraft that are within a particular radius of the tower.

When I evaluate that expression with 'take 4' it works fine.  When I
evaluate it with 'take 6' it works as well.  But, when I evaluate it
with 'take 5' I get the following runtime error from H# in Visual Studio
(it runs fine on the command line).  This is particularly odd because
I'm not using Sql.



The type initializer for 'System.Data.SqlClient.SqlConnection' threw an
exception.
Exception (TypeInitializationException): Source=System.Data;
Target=null; Tag=null; TypeName=System.Data.SqlClient.SqlConnection;
Message = The type initializer for
'System.Data.SqlClient.SqlConnection' threw an exception.
InnerException (TypeInitializationException): Source=System.Data;
Target=null; Tag=null;
Message = The type initializer for
'System.Data.SqlClient.SqlConnectionFactory' threw an exception.
StackTrace =  at System.Data.SqlClient.SqlConnection..cctor()
InnerException (TypeInitializationException): Source=System.Data;
Target=null; Tag=null;
Message = The type initializer for
'System.Data.SqlClient.SqlPerformanceCounters' threw an exception.
StackTrace =
 at System.Data.SqlClient.SqlConnectionFactory..ctor()
at System.Data.SqlClient.SqlConnectionFactory..cctor()
InnerException (ConfigurationErrorsException):
Source=System.Configuration; Target=null; Tag=null; Line=21;
Message =
The value of the property 'traceOutputOptions' cannot be parsed. The
error is: The enumeration value must be one of the following: None,
LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId,
Callstack. (C:\Documents and
Settings\Paey\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config
line 21)
StackTrace =
 at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[]
keys, SectionInput input, Boolean isTrusted, FactoryRecord
factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord
factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean
getLkg, Boolean getRuntimeObject, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean checkPermission, Boolean
getRuntimeObject, Boolean requestIsHere, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean checkPermission, Boolean
getRuntimeObject, Boolean requestIsHere, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean ch... (truncated) ...olean
checkPermission)
at System.Configuration.BaseConfigurationRecord.GetSection(String
configKey)
at
System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String
sectionName)
at System.Configuration.ConfigurationManager.GetSection(String 
sectionName)

at System.Configuration.PrivilegedConfigurationManager.GetSection(String
sectionName)
at System.Diagnostics.DiagnosticsConfiguration.GetConfigSection()
at System.Diagnostics.DiagnosticsConfiguration.Initialize()
at System.Diagnostics.Switch.InitializeConfigSettings()
at System.Diagnostics.Switch.InitializeWithStatus()
at System.Diagnostics.Switch.get_SwitchSetting()
at System.Diagnostics.TraceSwitch.get_Level()
at 

Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Michael Feathers

Andrew Wagner wrote:

Wow. Where did you come up with the stack trace? That's...impressive.


Pulled it from a blog.  I was actually looking for a creepy VB4 or VB5 
stack trace I saw years ago that ripped through their dynamic type 
resolution layer. Now that would've been funny. :-)


Michael



On Sun, Jul 6, 2008 at 5:07 PM, Don Stewart [EMAIL PROTECTED] wrote:

I win, almost ...

   13:13:18 dons dolio: yeah, it was ... almost ... an April 1 style post

:)

And yes, this was truly shocking on a number of levels. However, we have
people doing a lot of weird things with Haskell these days, so its not
as absurd that someone would be hacking up a zip12 for an air traffic
control system on some MS platform, with SQL in the backend, as it might
have been a few years ago :)

mfeathers:

Sorry guys.  I was just bored on a Sunday afternoon so I thought I'd
type up a little joke.  I thought to myself Gee, how outrageous can I
make it?

1) Using and debugging a zip12 function.
2) That fails only on 'take 5' (Brubeck fans take note)
3) Has some absurd arguments like (nub . nub)
4) Is embedded in an air traffic control system
5) Is written in a Microsoft variant of Haskell called H#
6) Silently makes SQL calls when evaluating a pure function
7) Yields an mile long stack trace

Sorry all.  Boredom made me do it,

Michael

Paul Visschers wrote:

You're zipping 12 lists here, so how about testing each list
individually? This will narrow down the problem considerably.

Michael Feathers wrote:

I have some code that looks like this and I'm having trouble with it:


zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd geoCaches)
 groundSpeeds headings (map windShift headings) (regulations !! 2)
 (foldr (\|/) (tail pathDistances)) [ghy x | x - [1..], full x]
 (nub . nub) arrivalSchedule


The domain is air traffic control and I need to generate 12-tuples for
aircraft that are within a particular radius of the tower.

When I evaluate that expression with 'take 4' it works fine.  When I
evaluate it with 'take 6' it works as well.  But, when I evaluate it
with 'take 5' I get the following runtime error from H# in Visual Studio
(it runs fine on the command line).  This is particularly odd because
I'm not using Sql.



The type initializer for 'System.Data.SqlClient.SqlConnection' threw an
exception.
Exception (TypeInitializationException): Source=System.Data;
Target=null; Tag=null; TypeName=System.Data.SqlClient.SqlConnection;
Message = The type initializer for
'System.Data.SqlClient.SqlConnection' threw an exception.
InnerException (TypeInitializationException): Source=System.Data;
Target=null; Tag=null;
Message = The type initializer for
'System.Data.SqlClient.SqlConnectionFactory' threw an exception.
StackTrace =  at System.Data.SqlClient.SqlConnection..cctor()
InnerException (TypeInitializationException): Source=System.Data;
Target=null; Tag=null;
Message = The type initializer for
'System.Data.SqlClient.SqlPerformanceCounters' threw an exception.
StackTrace =
 at System.Data.SqlClient.SqlConnectionFactory..ctor()
at System.Data.SqlClient.SqlConnectionFactory..cctor()
InnerException (ConfigurationErrorsException):
Source=System.Configuration; Target=null; Tag=null; Line=21;
Message =
The value of the property 'traceOutputOptions' cannot be parsed. The
error is: The enumeration value must be one of the following: None,
LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId,
Callstack. (C:\Documents and
Settings\Paey\Desktop\Projects\RPMC\bin\Debug\RPMC.vshost.exe.config
line 21)
StackTrace =
 at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[]
keys, SectionInput input, Boolean isTrusted, FactoryRecord
factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord
factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean
getLkg, Boolean getRuntimeObject, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean checkPermission, Boolean
getRuntimeObject, Boolean requestIsHere, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean checkPermission, Boolean
getRuntimeObject, Boolean requestIsHere, Object result, Object
resultRuntimeObject)
at
System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String
configKey, Boolean getLkg, Boolean ch... (truncated) ...olean
checkPermission)
at System.Configuration.BaseConfigurationRecord.GetSection(String
configKey)
at
System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String
sectionName)
at System.Configuration.ConfigurationManager.GetSection(String
sectionName)
at System.Configuration.PrivilegedConfigurationManager.GetSection(String
sectionName)
at 

Re: [Haskell-cafe] Having trouble with zip12..

2008-07-06 Thread Brandon S. Allbery KF8NH


On 2008 Jul 6, at 16:47, Tony Morris wrote:


-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Michael Feathers wrote:

zip12 ((tails . nub) flightPaths) wayPoints etopsPackets (hd
geoCaches) groundSpeeds headings (map windShift headings)
(regulations !! 2) (foldr (\|/) (tail pathDistances)) [ghy x | x -
[1..], full x] (nub . nub) arrivalSchedule


Hi Michael,
Sorry to distract from your issue, but I note that (nub . nub) can be
replaced with just 'nub' since the function nub is idempotent (f . f
== f).



Or even better, with a custom nub:  in order to handle some special  
cases the Prelude nub is rather inefficient.


--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] [EMAIL PROTECTED]
system administrator [openafs,heimdal,too many hats] [EMAIL PROTECTED]
electrical and computer engineering, carnegie mellon universityKF8NH


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe