Haskell-Cafe
Threads by month
- ----- 2025 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
February 2005
- 95 participants
- 73 discussions

RE: [Haskell-cafe] Re: ocr'ed version of "The implementation offunctional languages"
by Simon Peyton-Jones 02 Feb '05
by Simon Peyton-Jones 02 Feb '05
02 Feb '05
Matthew
Yes, I'm happy for you to OCR the book, but can I ask that whatever you get be made accessible from my web site, so there's one place people can go to find everything that's available?
What would OCR buy us? Searching, I guess, which is a fantastic plus. Anything else?
Thanks very much for offering to help. I've replied to haskell-café, so everyone knows what's up, but we can now save everyone's bandwidth by narrowing the thread to Ivan, Marnie (who did the original work), you, and me. If anyone else wants to join in, do yell.
Simon
| -----Original Message-----
| From: haskell-cafe-bounces(a)haskell.org [mailto:haskell-cafe-bounces@haskell.org] On Behalf Of Ivan
| Boldyrev
| Sent: 31 January 2005 06:48
| To: haskell-cafe(a)haskell.org
| Subject: [Haskell-cafe] Re: ocr'ed version of "The implementation offunctional languages"
|
| On 9005 day of my life Matthew Roberts wrote:
| > I have just embarked on creating a ocr'ed version of the jpeg images
| > that have been made available for "The implementation of functional
| > languages".
|
| I have high-resolution scans of this books. If Simon permits, I will
| create OCR from these scans. But I think, we must obtain author's
| permission before OCR'ing.
|
| PNG version of scans will be released soon. While size of page is
| same, quality is much better, probably it will improve speed of
| scanning.
|
| And compact DjVu version will be released too. Perhaps I could use
| OCR'ed text for creating searchable version of DjVu?
|
| > However, my ocr software is clunky at best and (not surprisingly) it is
| > slow going.
|
| What kind of software do you use?
|
| --
| Ivan Boldyrev
|
| Assembly of a Japanese bicycle requires greatest peace of spirit.
|
| _______________________________________________
| Haskell-Cafe mailing list
| Haskell-Cafe(a)haskell.org
| http://www.haskell.org/mailman/listinfo/haskell-cafe
6
11
Hello,
On Fri, 28 Jan 2005 10:01:33 -0500, Jacques Carette <carette(a)mcmaster.ca> wrote:
> The previous post on record syntax reminded me of some 'problems' I had noticed where Haskell and mathematics have a
> (deep) usage mismatch.
It is interesting that my sentiment is exactly the opposite.
Mathematicians (the applied kind, not the pure) tend to be quite
sloppy about their notation relaying _a lot_ on the context and the
fact that people know what they are talking about. I find that this
makes their explanations harder to understand rather than easier.
> First, consider a syntax for other component-wise function application? For example, it would be convenient to have
> (f,g) @ (x,y)
> be (f x, g y). In some languages [with dynamic typing], one can even do (f,g) (x,y) :-)
I am not sure what you mean, but you can define exactly that (except
for the @ sign which is special syntax already):
(f,g) `ap2` (x,y) = (f x, g y)
> Yes, I am aware that this untypeable in Haskell, because polymorphism is straight-jacketed by structural rules.
What do you mean by this:
ap2 :: (a -> b, c - d) -> (a,c) -> (b,d)
But
> in mathematics, it is convenient and extremely common to:
> 1) look at the type a -> b as being a *subtype* of b (though I have never seen it phrased that way in print)
I don't think subtyping is what you are thinking of. Perhaps you are referring
to the correspondance between b-expressions with a free a-variable,
and functions a->b. In Haskell we don't have expressions with free
variables as
first class values. There might be some interesting things to work
out for such beasts.
> 2) to consider every 'natural transformation' available and use it (tuples of functions <-> obvious function on
> tuples)
Are you suggesting that natural transformations should be applied automatically?
There are many problems with this: which operations should happen
automatically?
Type inference (if it works at all) will be hard to do, but perhaps
these are technical details.
Fundamentally the "sloppy" math notation assumes that what the author
wrote is correct and should simply be given "the obvious" meaning.
This is pretty much the idea with dynamic typing. I find the
restrictions of static typing very convenient (well most of the time
:-) as they capture "stupid' errors.
>
> Seeing a -> b as a subtype of b allows one to take any function f : b -> b -> c (like + ) and 'lift' it to
> ff : (a -> b) -> (a -> b) -> (a -> c)
> via the obvious definition
> ff g h = \x -> f (g x) (h x)
> This is done routinely in mathematics. The meaning of the expression (sin + cos) should be immediately obvious. Such
> 'lifting' is used even in first-year calculus courses, but not in Haskell.
Apart from the fact that this does not seem like a good idea,
you can already do things like this in Haskell:
liftOp op f g x = f x `op` f x
This is all you need, especially if you are prepared to stick to the
"usual" mathematical convention of not using curried functions, but
instead using tuples to pass multiple arguments.
>
> The "same" phenomenon is what allows one to 'see' that there is an obvious function
> apply_tuple:: (a->b,c->d) -> (a,c) -> (b,d)
> so that
> (f,g) (a,b)
> only has one possible meaning, if the built-in apply function were to be overloaded.
There are many interesting things one could do if application was to
be overloaded
but this hardly seems like a motivating example. You can already use
the 'ap2' combinator from above. I can see that it is annoying to
have ap2, ap3, etc.
You can define a generic "ap_n" using dependent types, or using the
encoding tomasz posted, but that hardly seems to be a "deep" problem.
>
> Similarly, there are "obvious" maps
> apply_T :: T (a->b) -> a -> T b
> for any datatype constructor T (as has been noticed by all who do 'generic' programming).
Is this really true? Consider:
data T a = T (a -> Int)
What shoud apply_T do?
applyT :: (essentially) ((a -> b) -> Int) -> a -> (b -> Int)
perhaps: applyT (T f) a = T (\b -> f (const b))
but that probably does not behave as you would like it.
Of course you could restrict the datatypes for which apply_T can be derived.
This means that
> [f, g, h] x == [f x, g x, h x]
> but also (in mathematics at least)
> {f, g, h} x == {f x, g x, h x}
> where {} denotes a set, and the equality above is extensional equality, and so on.
I agree that it would be nice to automatically derive functions such
as apply_T, etc.
This (as you point out) is the idea of generic programming.
This however does not suggest that we should replace application...
> Note that some computer algebra systems use #1 and #2 above all the time to define the operational meaning of a lot of
> syntactic constructs [where I personally extended the use of such rules in the implementation & operational semantics
> of Maple]. What hope is there to be able to do something 'similar' in a Haskell-like language?
I think it is already possible to do simillar things.
I am sure there is room for improvement, but it is important that the
consequences of changing a language are worked out in details.
It is time for me to go to school :-)
bye
Iavor
4
8
Hello!
I'm trying to build Haskell-JVM bridge (http://sourceforge.net/projects/jvm-
bridge/) under Windows (cygwin) and with Java 1.5.
I can execute "configure" without errors.
When I execute make, I get a lot of errors.
Due to a limited size of my buffer, I can show you only the last lines of
make's output:
JVMBridge.cpp: In function `jboolean
JVMBridge_CallNonvirtualBooleanMethodVL(JNIEnv*, _jobject*, _jobject*,
_jmethodID*, void*)':
JVMBridge.cpp:778: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:779: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:780: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:781: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:783: error: `CallNonvirtualBooleanMethodA' undeclared (first use
this function)
JVMBridge.cpp:785: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jbyte JVMBridge_CallNonvirtualByteMethodVL(JNIEnv*,
_jobject*, _jobject*, _jmethodID*, void*)':
JVMBridge.cpp:793: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:794: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:795: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:796: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:798: error: `CallNonvirtualByteMethodA' undeclared (first use
this function)
JVMBridge.cpp:800: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jchar JVMBridge_CallNonvirtualCharMethodVL(JNIEnv*,
_jobject*, _jobject*, _jmethodID*, void*)':
JVMBridge.cpp:808: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:809: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:810: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:811: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:813: error: `CallNonvirtualCharMethodA' undeclared (first use
this function)
JVMBridge.cpp:815: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jshort
JVMBridge_CallNonvirtualShortMethodVL(JNIEnv*, _jobject*, _jobject*,
_jmethodID*, void*)':
JVMBridge.cpp:823: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:824: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:825: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:826: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:828: error: `CallNonvirtualShortMethodA' undeclared (first use
this function)
JVMBridge.cpp:830: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jint JVMBridge_CallNonvirtualIntMethodVL(JNIEnv*,
_jobject*, _jobject*, _jmethodID*, void*)':
JVMBridge.cpp:838: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:839: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:840: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:841: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:843: error: `CallNonvirtualIntMethodA' undeclared (first use this
function)
JVMBridge.cpp:845: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: At global scope:
JVMBridge.cpp:850: error: parse error before `*' token
JVMBridge.cpp:853: error: `object' was not declared in this scope
JVMBridge.cpp:853: error: ISO C++ forbids declaration of `DebugShowPointer'
with no type
JVMBridge.cpp:853: error: redefinition of `int DebugShowPointer'
JVMBridge.cpp:711: error: `int DebugShowPointer' previously defined here
JVMBridge.cpp:853: error: initializer list being treated as compound expression
JVMBridge.cpp:854: error: ISO C++ forbids declaration of `DebugShowPointer'
with no type
JVMBridge.cpp:854: error: redefinition of `int DebugShowPointer'
JVMBridge.cpp:853: error: `int DebugShowPointer' previously defined here
JVMBridge.cpp:854: error: initializer list being treated as compound expression
JVMBridge.cpp:855: error: `methodID' was not declared in this scope
JVMBridge.cpp:855: error: ISO C++ forbids declaration of `DebugShowPointer'
with no type
JVMBridge.cpp:855: error: redefinition of `int DebugShowPointer'
JVMBridge.cpp:854: error: `int DebugShowPointer' previously defined here
JVMBridge.cpp:855: error: initializer list being treated as compound expression
JVMBridge.cpp:856: error: `vl' was not declared in this scope
JVMBridge.cpp:856: error: ISO C++ forbids declaration of `DebugShowPointer'
with no type
JVMBridge.cpp:856: error: redefinition of `int DebugShowPointer'
JVMBridge.cpp:855: error: `int DebugShowPointer' previously defined here
JVMBridge.cpp:856: error: initializer list being treated as compound expression
JVMBridge.cpp:857: error: redefinition of `jvalue*valueArray'
JVMBridge.cpp:712: error: `jvalue*valueArray' previously defined here
JVMBridge.cpp:857: error: `vl' was not declared in this scope
JVMBridge.cpp:858: error: parse error before `=' token
JVMBridge.cpp:860: error: `vl' was not declared in this scope
JVMBridge.cpp:860: error: ISO C++ forbids declaration of `
JVMBridge_DestroyValueList' with no type
JVMBridge.cpp:860: error: redefinition of `int JVMBridge_DestroyValueList'
JVMBridge.cpp:715: error: `int JVMBridge_DestroyValueList' previously defined
here
JVMBridge.cpp:861: error: ISO C++ forbids declaration of `DebugShowLong' with
no type
JVMBridge.cpp:861: error: redefinition of `int DebugShowLong'
JVMBridge.cpp:716: error: `int DebugShowLong' previously defined here
JVMBridge.cpp:861: error: initializer list being treated as compound expression
JVMBridge.cpp:861: error: invalid conversion from `const char*' to `int'
JVMBridge.cpp:862: error: parse error before `return'
JVMBridge.cpp: In function `jfloat
JVMBridge_CallNonvirtualFloatMethodVL(JNIEnv*, _jobject*, _jobject*,
_jmethodID*, void*)':
JVMBridge.cpp:868: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:869: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:870: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:871: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:873: error: `CallNonvirtualFloatMethodA' undeclared (first use
this function)
JVMBridge.cpp:875: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jdouble
JVMBridge_CallNonvirtualDoubleMethodVL(JNIEnv*, _jobject*, _jobject*,
_jmethodID*, void*)':
JVMBridge.cpp:883: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:884: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:885: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:886: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:888: error: `CallNonvirtualDoubleMethodA' undeclared (first use
this function)
JVMBridge.cpp:890: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `_jobject*
JVMBridge_CallNonvirtualObjectMethodVL(JNIEnv*, _jobject*, _jobject*,
_jmethodID*, void*)':
JVMBridge.cpp:898: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:899: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:900: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:901: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:903: error: `CallNonvirtualObjectMethodA' undeclared (first use
this function)
JVMBridge.cpp:905: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `void JVMBridge_CallStaticVoidMethodVL(JNIEnv*,
_jobject*, _jmethodID*, void*)':
JVMBridge.cpp:913: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:914: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:915: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:917: error: `CallStaticVoidMethodA' undeclared (first use this
function)
JVMBridge.cpp:919: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jboolean
JVMBridge_CallStaticBooleanMethodVL(JNIEnv*, _jobject*, _jmethodID*, void*)
':
JVMBridge.cpp:925: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:926: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:927: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:929: error: `CallStaticBooleanMethodA' undeclared (first use this
function)
JVMBridge.cpp:931: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jbyte JVMBridge_CallStaticByteMethodVL(JNIEnv*,
_jobject*, _jmethodID*, void*)':
JVMBridge.cpp:939: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:940: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:941: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:943: error: `CallStaticByteMethodA' undeclared (first use this
function)
JVMBridge.cpp:945: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jchar JVMBridge_CallStaticCharMethodVL(JNIEnv*,
_jobject*, _jmethodID*, void*)':
JVMBridge.cpp:953: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:954: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:955: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:957: error: `CallStaticCharMethodA' undeclared (first use this
function)
JVMBridge.cpp:959: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jshort JVMBridge_CallStaticShortMethodVL(JNIEnv*,
_jobject*, _jmethodID*, void*)':
JVMBridge.cpp:967: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:968: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:969: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:971: error: `CallStaticShortMethodA' undeclared (first use this
function)
JVMBridge.cpp:973: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jint JVMBridge_CallStaticIntMethodVL(JNIEnv*,
_jobject*, _jmethodID*, void*)':
JVMBridge.cpp:981: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:982: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:983: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:985: error: `CallStaticIntMethodA' undeclared (first use this
function)
JVMBridge.cpp:987: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: At global scope:
JVMBridge.cpp:992: error: parse error before `*' token
JVMBridge.cpp:995: error: ISO C++ forbids declaration of `DebugShowPointer'
with no type
JVMBridge.cpp:995: error: redefinition of `int DebugShowPointer'
JVMBridge.cpp:856: error: `int DebugShowPointer' previously defined here
JVMBridge.cpp:995: error: initializer list being treated as compound expression
JVMBridge.cpp:996: error: `methodID' was not declared in this scope
JVMBridge.cpp:996: error: ISO C++ forbids declaration of `DebugShowPointer'
with no type
JVMBridge.cpp:996: error: redefinition of `int DebugShowPointer'
JVMBridge.cpp:995: error: `int DebugShowPointer' previously defined here
JVMBridge.cpp:996: error: initializer list being treated as compound expression
JVMBridge.cpp:997: error: `vl' was not declared in this scope
JVMBridge.cpp:997: error: ISO C++ forbids declaration of `DebugShowPointer'
with no type
JVMBridge.cpp:997: error: redefinition of `int DebugShowPointer'
JVMBridge.cpp:996: error: `int DebugShowPointer' previously defined here
JVMBridge.cpp:997: error: initializer list being treated as compound expression
JVMBridge.cpp:998: error: redefinition of `jvalue*valueArray'
JVMBridge.cpp:857: error: `jvalue*valueArray' previously defined here
JVMBridge.cpp:998: error: `vl' was not declared in this scope
JVMBridge.cpp:999: error: parse error before `=' token
JVMBridge.cpp:1001: error: `vl' was not declared in this scope
JVMBridge.cpp:1001: error: ISO C++ forbids declaration of `
JVMBridge_DestroyValueList' with no type
JVMBridge.cpp:1001: error: redefinition of `int JVMBridge_DestroyValueList'
JVMBridge.cpp:860: error: `int JVMBridge_DestroyValueList' previously defined
here
JVMBridge.cpp:1002: error: ISO C++ forbids declaration of `DebugShowLong' with
no type
JVMBridge.cpp:1002: error: redefinition of `int DebugShowLong'
JVMBridge.cpp:861: error: `int DebugShowLong' previously defined here
JVMBridge.cpp:1002: error: initializer list being treated as compound
expression
JVMBridge.cpp:1002: error: invalid conversion from `const char*' to `int'
JVMBridge.cpp:1003: error: parse error before `return'
JVMBridge.cpp: In function `jfloat JVMBridge_CallStaticFloatMethodVL(JNIEnv*,
_jobject*, _jmethodID*, void*)':
JVMBridge.cpp:1009: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1010: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1011: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1013: error: `CallStaticFloatMethodA' undeclared (first use this
function)
JVMBridge.cpp:1015: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jdouble JVMBridge_CallStaticDoubleMethodVL(JNIEnv*,
_jobject*, _jmethodID*, void*)':
JVMBridge.cpp:1023: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1024: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1025: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1027: error: `CallStaticDoubleMethodA' undeclared (first use this
function)
JVMBridge.cpp:1029: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `_jobject*
JVMBridge_CallStaticObjectMethodVL(JNIEnv*, _jobject*, _jmethodID*, void*)':
JVMBridge.cpp:1037: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1038: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1039: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1041: error: `CallStaticObjectMethodA' undeclared (first use this
function)
JVMBridge.cpp:1043: error: `JVMBridge_DestroyValueList' cannot be used as a
function
JVMBridge.cpp: In function `jboolean JVMBridge_IsSameObject(JNIEnv*, _jobject*,
_jobject*)':
JVMBridge.cpp:1051: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1052: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp: In function `jboolean JVMBridge_IsInstanceOf(JNIEnv*, _jobject*,
_jobject*)':
JVMBridge.cpp:1059: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp:1060: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp: In function `jint JVMBridge_ThrowException(JNIEnv*, _jobject*)':
JVMBridge.cpp:1067: error: `DebugShowPointer' cannot be used as a function
JVMBridge.cpp: In function `jboolean JVMBridge_ExceptionPending(JNIEnv*)':
JVMBridge.cpp:1092: error: `ExceptionCheck' undeclared (first use this
function)
JVMBridge.cpp: In function `jint JVMBridge_MonitorEnter(JNIEnv*, _jobject*)':
JVMBridge.cpp:1105: error: `MonitorEnter' undeclared (first use this function)
JVMBridge.cpp: In function `jint JVMBridge_MonitorExit(JNIEnv*, _jobject*)':
JVMBridge.cpp:1111: error: `MonitorEnter' undeclared (first use this function)
JVMBridge.cpp: In function `char* JVMBridge_GetStringUTFChars(JNIEnv*,
_jobject*)':
JVMBridge.cpp:1158: error: `GetStringUTFLength' undeclared (first use this
function)
JVMBridge.cpp:1162: error: `GetStringUTFRegion' undeclared (first use this
function)
JVMBridge.cpp:1167: error: `GetStringUTFChars' undeclared (first use this
function)
JVMBridge.cpp:1170: error: `ReleaseStringUTFChars' undeclared (first use this
function)
JVMBridge.cpp: In function `jint JVMBridge_GetStringUTFLength(JNIEnv*,
_jobject*)':
JVMBridge.cpp:1178: error: `GetStringUTFLength' undeclared (first use this
function)
JVMBridge.cpp: In function `_jobject* JVMBridge_DefineClass(JNIEnv*, const
char*, _jobject*, const jbyte*, long int)':
JVMBridge.cpp:1192: error: `DebugShowPointer' cannot be used as a function
make[2]: *** [JVMBridge.lo] Error 1
make[2]: Leaving directory `/cygdrive/c/dapWork/temp/downloads/haskell-jvm-
bridg
e-0.3.RC1/Native'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/cygdrive/c/dapWork/temp/downloads/haskell-jvm-
bridg
e-0.3.RC1/Native'
make: *** [all] Error 2
Have you an idea what I can do to fix these errors?
Thanks in advance
Dmitri Pissarenko
--
Dmitri Pissarenko
Software Engineer
http://dapissarenko.com
2
1