all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Re: warnings on gnustep
       [not found] <200808070341.m773fZMo028893@sallyv1.ics.uci.edu>
@ 2008-08-21  2:50 ` Adrian Robert
  2008-08-21  6:20   ` Dan Nicolaescu
  0 siblings, 1 reply; 2+ messages in thread
From: Adrian Robert @ 2008-08-21  2:50 UTC (permalink / raw)
  To: Dan Nicolaescu; +Cc: emacs- devel


On Aug 6, 2008, at 11:41 PM, Dan Nicolaescu wrote:

> I managed to get access to a machine that has a gnustep  
> installation.  I
> get these warnings when compiling the ns*.m files.
>
> The 'lrint' looks strange, on my Fedora systems lrint is in <math.h>
> which is included.  I haven't looked at why this happens.

Some brief googling suggests this has something to do with various C  
standards and arguments like -std=c99.  I don't understand this at  
all, but if you look in that math.h are the lrint definitions  
protected by any ifdefs?  Also I wonder what effect that -D_BSD_SOURCE  
has and where is that coming from?



> But the signal ones are probably something to worry about.

Which ones are you talking about?  (The word "signal" is not appearing  
in the warnings below.)



> BTW, I think that the includes need to be reordered, if you look in  
> all
> the other files in emacs config.h is the first file included, that is
> not the case in the ns*.m files.

Hmm, these other files also seem to include <config.h>, as if it's a  
system include, rather than "config.h".  I don't understand why.  The  
NS files include system includes first, then local ones, and  
"config.h" is the first of these.

I'm going to comment on other stuff below individually.


> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsterm.m
> nsterm.m: In function 'ns_update_end':
> nsterm.m:658: warning: 'NSView' may not respond to '- 
> unlockFocusNeedsFlush:'
> nsterm.m:658: warning: (Messages without a matching method signature
> nsterm.m:658: warning: will be assumed to return 'id' and accept
> nsterm.m:658: warning: '...' as arguments.)

Should be gone now (but someone on GNUstep please test).


> nsterm.m: In function 'ns_color_to_lisp':
> nsterm.m:1549: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m:1555: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function 'ns_mouse_position':
> nsterm.m:1765: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function 'ns_draw_window_cursor':
> nsterm.m:2375: warning: incompatible implicit declaration of built- 
> in function 'lrint'

Discussed above.



> nsterm.m: In function 'ns_read_socket':
> nsterm.m:3072: warning: 'NSApplication' may not respond to '- 
> openFile:'

I added a cast to fix this.



> nsterm.m: In function '-[EmacsApp application:openFiles:]':
> nsterm.m:4153: warning: 'EmacsApp' may not respond to '- 
> replyToOpenOrPrint:'


This whole delegate method is undeclared / unused in GNUstep.  I put  
the replyToOpenOrPrint call inside #ifndef GNUSTEP, although when it  
eventually implements it this would need updating.  Might be better to  
just live w/the warning since it will never cause an error.


> nsterm.m: In function '-[EmacsView changeFont:]':
> nsterm.m:4332: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function '-[EmacsView setMarkedText:selectedRange:]':
> nsterm.m:4570: warning: pointer type mismatch in conditional  
> expression

Not sure what the problem is here.


> nsterm.m: In function '-[EmacsView mouseDown:]':
> nsterm.m:4764: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function '-[EmacsView performDragOperation:]':
> nsterm.m:5379: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsterm.m: In function 'ns_font_to_xlfd':
> nsterm.m:6261: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsfns.m
> nsfns.m: In function 'Fns_read_file_name':
> nsfns.m:1451: warning: pointer type mismatch in conditional expression

I added a cast to id?



> nsfns.m: In function 'Fns_convert_utf8_nfd_to_nfc':
> nsfns.m:2003: warning: no '-precomposedStringWithCanonicalMapping'  
> method found

Hmm.  I changed to check for the impl and warn/return Qnil if not  
present, but the compiler  warning will still be there.



> nsfns.m: In function 'Fxw_color_values':
> nsfns.m:2249: warning: incompatible implicit declaration of built-in  
> function 'lrint'
> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsmenu.m
> nsmenu.m: In function '-[EmacsMenu fillWithWidgetValue:]':
> nsmenu.m:684: warning: passing argument 1 of 'setAction:' from  
> incompatible pointer type

setAction: takes a SEL.  I thought nil was correct?



> nsmenu.m: In function '-[EmacsMenu addSubmenuWithTitle:forFrame:]':
> nsmenu.m:705: warning: passing argument 2 of  
> 'addItemWithTitle:action:keyEquivalent:' from incompatible pointer  
> type

Ditto.



> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsselect.m
> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsimage.m
> nsimage.m: In function '-[EmacsImage getPixelAtX:Y:]':
> nsimage.m:417: warning: 'NSBitmapImageRep' may not respond to '- 
> colorAtX:y:'
> nsimage.m:417: warning: (Messages without a matching method signature
> nsimage.m:417: warning: will be assumed to return 'id' and accept
> nsimage.m:417: warning: '...' as arguments.)
> nsimage.m: In function '-[EmacsImage  
> setPixelAtX:Y:toRed:green:blue:alpha:]':
> nsimage.m:447: warning: 'NSBitmapImageRep' may not respond to '- 
> setColor:atX:y:'
> nsimage.m: In function '-[EmacsImage setAlphaAtX:Y:to:]':
> nsimage.m:464: warning: 'NSBitmapImageRep' may not respond to '- 
> colorAtX:y:'
> nsimage.m:466: warning: 'NSBitmapImageRep' may not respond to '- 
> setColor:atX:y:'

I don't understand these.  Both methods are declared for  
NSBitmapImageRep in GNUstep:

http://www.gnustep.org/resources/documentation/Developer/Gui/Reference/NSBitmapImageRep.html#class$NSBitmapImageRep




> gcc -c -D_BSD_SOURCE   -Demacs -DHAVE_CONFIG_H  -I. -I/home/jars/ 
> emacs/src -D_BSD_SOURCE -D_REENTRANT -fPIC -fno-strict-aliasing    - 
> g -O2 -Wno-pointer-sign  -I/usr/include/GNUstep -fgnu-runtime -Wno- 
> import -fconstant-string-class=NSConstantString - 
> DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN  
> -DGSDIAGNOSE nsfont.m
> nsfont.m: In function 'nsfont_open':
> nsfont.m:682: warning: incompatible implicit declaration of built-in  
> function 'lrint'
> nsfont.m: In function 'nsfont_draw':
> nsfont.m:925: warning: comparison is always true due to limited  
> range of data type

cbuf and c should probably be made unsigned char, but only someone who  
can test should try this.



> nsfont.m:994: warning: pointer type mismatch in conditional expression

Unsure why, all should be NSColor *.


> nsfont.m:1019: warning: comparison between pointer and integer
> nsfont.m:1025: warning: comparison between pointer and integer

I've fixed these.



> nsfont.m: In function 'ns_glyph_metrics':
> nsfont.m:1384: warning: incompatible implicit declaration of built- 
> in function 'lrint'
> nsfont.m:1389: warning: incompatible implicit declaration of built- 
> in function 'round'





^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: warnings on gnustep
  2008-08-21  2:50 ` warnings on gnustep Adrian Robert
@ 2008-08-21  6:20   ` Dan Nicolaescu
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Nicolaescu @ 2008-08-21  6:20 UTC (permalink / raw)
  To: Adrian Robert; +Cc: emacs- devel

Adrian Robert <adrian.b.robert@gmail.com> writes:

  > On Aug 6, 2008, at 11:41 PM, Dan Nicolaescu wrote:
  > 
  > > I managed to get access to a machine that has a gnustep
  > > installation.  I
  > > get these warnings when compiling the ns*.m files.
  > >
  > > The 'lrint' looks strange, on my Fedora systems lrint is in <math.h>
  > > which is included.  I haven't looked at why this happens.
  > 
  > Some brief googling suggests this has something to do with various C
  > standards and arguments like -std=c99.  I don't understand this at
  > all, but if you look in that math.h are the lrint definitions
  > protected by any ifdefs?  Also I wonder what effect that -D_BSD_SOURCE
  > has and where is that coming from?

This is an artifact of not including config.h first, do that and it goes
away.  -D_BSD_SOURCE comes from s/gnu-linux.h

  > > But the signal ones are probably something to worry about.
  > 
  > Which ones are you talking about?  (The word "signal" is not appearing
  > in the warnings below.)

Sorry, I meant messages.


  > > BTW, I think that the includes need to be reordered, if you look in
  > > all
  > > the other files in emacs config.h is the first file included, that is
  > > not the case in the ns*.m files.
  > 
  > Hmm, these other files also seem to include <config.h>, as if it's a
  > system include, rather than "config.h".  I don't understand why.  The
  > NS files include system includes first, then local ones, and
  > "config.h" is the first of these.

config.h is supposed to be the first file included, and the standard
files included based on what config.h defines, see for example in other
files: 

#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif

Thanks for taking care of the rest of the warnings.

       --dan





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-08-21  6:20 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <200808070341.m773fZMo028893@sallyv1.ics.uci.edu>
2008-08-21  2:50 ` warnings on gnustep Adrian Robert
2008-08-21  6:20   ` Dan Nicolaescu

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.