Quantcast

How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Timothy Shen-McCullough
     So, Xcode gives me hundreds of warnings when I try to build for 64 bit mode. I've also tried searching the mailing list so I see that some people earlier in the year may be have seen the same warnings (for PocketSword), so I think I better understand why I've seen that some of the libraries were updated(I don't know if all were updated or ?). However, I'm still getting errors and some of it is in the Sword framework. My impression so far of what's going on is that Xcode is telling me is that there are datatypes which are not being converted properly. I think this is happening due to things like "int" and "long" not occupying the same amount of space or something like they use to do in 32 bit and so need a casting in order to be converted properly?
     An example is listkey.h at line 147 in which "index" is a "long", but then setToElement is for an "int".
     Another is swbuf.h at line 448 "...const { unsigned int psize = strlen(postfix); ..." where Xcode warns that there's a loss of precision. That an unsigned long is converting to an unsigned int. I think that unsigned long occupies 64 bits when run in 64 bit mode, but the int stays in 32 bits when run in 64 bit mode.
    I have compared the Sword framework that it's using against the last stable one and there's doesn't seem to be changes to address the issues I'm seeing.
    Any suggestions on how to proceed?

-TS

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Manfred Bergmann-4
I’m also having tons of warnings when compiling SWORD in Xcode for 64 bit.
The precision warnings can be ignored IMO. But due to the sheer number of warnings it’s very hard to detect warnings that shouldn’t be ignored.

Btw: there is a Objective-C wrapper for the SWORD library under bindings/objc which I maintain and use in Eloquent.
AFAIK some form of the wrapper in used in PS.
It would be great if efforts could be shared in using only one codebase.



Manfred


Am 13.10.2016 um 22:30 schrieb TS <[hidden email]>:

     So, Xcode gives me hundreds of warnings when I try to build for 64 bit mode. I've also tried searching the mailing list so I see that some people earlier in the year may be have seen the same warnings (for PocketSword), so I think I better understand why I've seen that some of the libraries were updated(I don't know if all were updated or ?). However, I'm still getting errors and some of it is in the Sword framework. My impression so far of what's going on is that Xcode is telling me is that there are datatypes which are not being converted properly. I think this is happening due to things like "int" and "long" not occupying the same amount of space or something like they use to do in 32 bit and so need a casting in order to be converted properly?
     An example is listkey.h at line 147 in which "index" is a "long", but then setToElement is for an "int".
     Another is swbuf.h at line 448 "...const { unsigned int psize = strlen(postfix); ..." where Xcode warns that there's a loss of precision. That an unsigned long is converting to an unsigned int. I think that unsigned long occupies 64 bits when run in 64 bit mode, but the int stays in 32 bits when run in 64 bit mode.
    I have compared the Sword framework that it's using against the last stable one and there's doesn't seem to be changes to address the issues I'm seeing.
    Any suggestions on how to proceed?

-TS
_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Jaak Ristioja-2
As much as I've personally dealt with these and similar warnings in
Sword++, many of them are not trivial to fix and point to several
architectural issues.

Blessings,
J

On 14.10.2016 14:15, Manfred Bergmann wrote:

> I’m also having tons of warnings when compiling SWORD in Xcode for 64 bit.
> The precision warnings can be ignored IMO. But due to the sheer number
> of warnings it’s very hard to detect warnings that shouldn’t be ignored.
>
> Btw: there is a Objective-C wrapper for the SWORD library under
> bindings/objc which I maintain and use in Eloquent.
> AFAIK some form of the wrapper in used in PS.
> It would be great if efforts could be shared in using only one codebase.
>
>
>
> Manfred
>
>
>> Am 13.10.2016 um 22:30 schrieb TS <[hidden email]
>> <mailto:[hidden email]>>:
>>
>>      So, Xcode gives me hundreds of warnings when I try to build for
>> 64 bit mode. I've also tried searching the mailing list so I see that
>> some people earlier in the year may be have seen the same warnings
>> (for PocketSword), so I think I better understand why I've seen that
>> some of the libraries were updated(I don't know if all were updated or
>> ?). However, I'm still getting errors and some of it is in the Sword
>> framework. My impression so far of what's going on is that Xcode is
>> telling me is that there are datatypes which are not being converted
>> properly. I think this is happening due to things like "int" and
>> "long" not occupying the same amount of space or something like they
>> use to do in 32 bit and so need a casting in order to be converted
>> properly?
>>      An example is listkey.h at line 147 in which "index" is a "long",
>> but then setToElement is for an "int".
>>      Another is swbuf.h at line 448 "...const{ unsignedintpsize =
>> strlen(postfix); ..." where Xcode warns that there's a loss of
>> precision. That an unsigned long is converting to an unsigned int. I
>> think that unsigned long occupies 64 bits when run in 64 bit mode, but
>> the int stays in 32 bits when run in 64 bit mode.
>>     I have compared the Sword framework that it's using against the
>> last stable one and there's doesn't seem to be changes to address the
>> issues I'm seeing.
>>     Any suggestions on how to proceed?
>>
>> -TS
>> _______________________________________________
>> sword-devel mailing list: [hidden email]
>> <mailto:[hidden email]>
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
>
>
> _______________________________________________
> sword-devel mailing list: [hidden email]
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
>


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Peter Von Kaehne
In reply to this post by Manfred Bergmann-4
https://developer.apple.com/library/content/documentation/Darwin/Conceptual/64bitPorting/building/building.html
 
suggests that some flags are less useful than others in terms of warnings produced - some flags produce a plethora of spurious and irrelevant warnings
 
Is that maybe part of your problem?
 
Peter
 
Gesendet: Freitag, 14. Oktober 2016 um 12:15 Uhr
Von: "Manfred Bergmann" <[hidden email]>
An: "SWORD Developers' Collaboration Forum" <[hidden email]>
Betreff: Re: [sword-devel] How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)
I’m also having tons of warnings when compiling SWORD in Xcode for 64 bit.
The precision warnings can be ignored IMO. But due to the sheer number of warnings it’s very hard to detect warnings that shouldn’t be ignored.
 
Btw: there is a Objective-C wrapper for the SWORD library under bindings/objc which I maintain and use in Eloquent.
AFAIK some form of the wrapper in used in PS.
It would be great if efforts could be shared in using only one codebase.
 
 
 
Manfred
 
 
Am 13.10.2016 um 22:30 schrieb TS <[hidden email]>:
 
     So, Xcode gives me hundreds of warnings when I try to build for 64 bit mode. I've also tried searching the mailing list so I see that some people earlier in the year may be have seen the same warnings (for PocketSword), so I think I better understand why I've seen that some of the libraries were updated(I don't know if all were updated or ?). However, I'm still getting errors and some of it is in the Sword framework. My impression so far of what's going on is that Xcode is telling me is that there are datatypes which are not being converted properly. I think this is happening due to things like "int" and "long" not occupying the same amount of space or something like they use to do in 32 bit and so need a casting in order to be converted properly?
     An example is listkey.h at line 147 in which "index" is a "long", but then setToElement is for an "int".
     Another is swbuf.h at line 448 "...const { unsigned int psize = strlen(postfix); ..." where Xcode warns that there's a loss of precision. That an unsigned long is converting to an unsigned int. I think that unsigned long occupies 64 bits when run in 64 bit mode, but the int stays in 32 bits when run in 64 bit mode.
    I have compared the Sword framework that it's using against the last stable one and there's doesn't seem to be changes to address the issues I'm seeing.
    Any suggestions on how to proceed?
 
-TS
_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

_______________________________________________ sword-devel mailing list: [hidden email] http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Timothy Shen-McCullough
Thank you all for your replies and suggestions.

      I could go in to more detail, but here’s a summary breakdown of the warnings and what they connect to. (There are 3 warnings included in all this which I am aware of which are not necessarily 64 bit related)

Summary:
- There are 96 warnings found in files inside of the CLucene (clucene/CLucene) folder
- There are 185 warnings which are in the externals/sword folders.
- There are 32 warnings which are in the externals/CocoaHTTPServer folder.
- There are 10 warnings which are in the Classes folder. These seem to be
  written especially for PocketSword and are not part of libraries or frameworks.

     From what I’m seeing so far, all the warnings are mostly repeating variations of the same thing which is that there is a datatype which in 64 bit runtime is a 64 bit quantity and the code is assigning it to an “int” value which is a 32 bit quantity. The data type “long” is a 64 bit quantity, for example, and so a warning is thrown every time it’s assigned to an “int” datatype which remains a 32 bit quantity when running in a 64 bit runtime. Here’s a link which shows Apple’s documentation regarding how their data types change based on the 32 or 64 runtime. 


If I’m mistaken though, please somebody let me know.

     From all the online research I’ve been doing trying to figure the problems out, it’s sorta leading me to the question "Has the SWORD framework been updated to be 64 bit compatible?” I’ve searched the Sword project wiki and searched what I can of the mailing list, but I can’t find any definitive answer.

     Also, in case it’s not known, Windows in comparison to Mac/Unix/Linux uses a different 64 bit convention. Mac (including iPhone) uses LP64. So, long or long int, for example, is a 64-bit quantity, but for Windows it remains a 32-bit quantity even when run in the 64-bit runtime. So, is it possible that the SWORD framework does not have the same warnings that I get when compiled on a computer running the Windows OS? 

     I get the impression that these warnings can be ignored and the program work as long as the values that the long, unsigned long, or etc. hold never exceed a 32-bit size? and errors only occur if they are exceeded?

     I’m concerned about these 64-bit warnings because it’s my understanding that Apple requires apps to be 64-bit compatible and they vet each app for entry into the store. So, I don’t know how these warnings would be treated by them. I can see why Xcode or the compiler is treating them as warnings since they are apparantly correct in the 32-bit runtime. However, it seems that there is a “proper” way to convert the data types from one to another which works in both 32 and 64-bit runtimes? and since the code does not do that, Xcode assumes that it is either pre-64-bit code or that it is an erroneous typed line of code and hence gives a warning?

     Sorry, if I’m way off on any of this. If you’ve read all this, thank you, I know it’s a lot.

-TS


On Oct 14, 2016, at 4:58 AM, Peter Von Kaehne <[hidden email]> wrote:

 
suggests that some flags are less useful than others in terms of warnings produced - some flags produce a plethora of spurious and irrelevant warnings
 
Is that maybe part of your problem?
 
Peter
 
Gesendet: Freitag, 14. Oktober 2016 um 12:15 Uhr
Von: "Manfred Bergmann" <[hidden email]>
An: "SWORD Developers' Collaboration Forum" <[hidden email]>
Betreff: Re: [sword-devel] How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)
I’m also having tons of warnings when compiling SWORD in Xcode for 64 bit.
The precision warnings can be ignored IMO. But due to the sheer number of warnings it’s very hard to detect warnings that shouldn’t be ignored.
 
Btw: there is a Objective-C wrapper for the SWORD library under bindings/objc which I maintain and use in Eloquent.
AFAIK some form of the wrapper in used in PS.
It would be great if efforts could be shared in using only one codebase.
 
 
 
Manfred
 
 
Am 13.10.2016 um 22:30 schrieb TS <[hidden email]>:
 
     So, Xcode gives me hundreds of warnings when I try to build for 64 bit mode. I've also tried searching the mailing list so I see that some people earlier in the year may be have seen the same warnings (for PocketSword), so I think I better understand why I've seen that some of the libraries were updated(I don't know if all were updated or ?). However, I'm still getting errors and some of it is in the Sword framework. My impression so far of what's going on is that Xcode is telling me is that there are datatypes which are not being converted properly. I think this is happening due to things like "int" and "long" not occupying the same amount of space or something like they use to do in 32 bit and so need a casting in order to be converted properly?
     An example is listkey.h at line 147 in which "index" is a "long", but then setToElement is for an "int".
     Another is swbuf.h at line 448 "...const { unsigned int psize = strlen(postfix); ..." where Xcode warns that there's a loss of precision. That an unsigned long is converting to an unsigned int. I think that unsigned long occupies 64 bits when run in 64 bit mode, but the int stays in 32 bits when run in 64 bit mode.
    I have compared the Sword framework that it's using against the last stable one and there's doesn't seem to be changes to address the issues I'm seeing.
    Any suggestions on how to proceed?
 
-TS
_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

_______________________________________________ sword-devel mailing list: [hidden email] http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page
_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Peter Von Kaehne
Von: TS <[hidden email]>

> From all the online research I’ve been doing trying to figure the problems out, it’s sorta leading me to the question "Has the > SWORD framework been updated to be 64 bit compatible?” I’ve searched the Sword project wiki and searched what I can of the     > mailing list, but I can’t find any definitive answer.
 
> Also, in case it’s not known, Windows in comparison to Mac/Unix/Linux uses a different 64 bit convention. Mac (including       > iPhone) uses LP64. So, long or long int, for example, is a 64-bit quantity, but for Windows it remains a 32-bit quantity even > when run in the 64-bit runtime. So, is it possible that the SWORD framework does not have the same warnings that I get when    > compiled on a computer running the Windows OS? 

Libsword is developed on Linux, not on Windows. It is 64 bit since quite some time (i.e. years). I am compiling on Debian testing in 64 bit mode with no warnings, using the standard flags. I think I have confirmed that all files my compilation produces are 64 bit by running "file *.o" over all compilates. The output is

<..>                 ELF 64-bit LSB relocatable, x86-64, version 1 (SYSV), not stripped

Peter

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Peter Von Kaehne
> Von: "Peter Von Kaehne" <[hidden email]>
> I am compiling on Debian testing in 64 bit mode with no warnings, using the standard flags.

As I understand xcode uses gcc just as we use on Linux. Is it possible that

a) you use flags which produce warnings which are not included in the automake/conf set up we use on sword under linux?

or

b) That your Xcode setup is somehow not consistent and produces some errors?

Peter

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Manfred Bergmann-4

> Am 19.10.2016 um 10:00 schrieb Peter Von Kaehne <[hidden email]>:
>
>> Von: "Peter Von Kaehne" <[hidden email]>
>> I am compiling on Debian testing in 64 bit mode with no warnings, using the standard flags.
>
> As I understand xcode uses gcc just as we use on Linux. Is it possible that

Per default Xcode uses the C compiler of LLVM.
That may be the reason why we have other warnings.
Usually, and that may< be the same for PocketSword and Eloquent, the SWORD sources are compiled as part of the parent project.
That means there is no makefile involved.


Manfred


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Peter Von Kaehne
> Gesendet: Mittwoch, 19. Oktober 2016 um 09:24 Uhr
> Von: "Manfred Bergmann" <[hidden email]>b. Is it possible that
>
> Per default Xcode uses the C compiler of LLVM.

Ok.

I have tried compiling with clang/llvm on Linux just now, but likely made a few/lot mistakes....

CC=clang ./configure
make

produced a few (less than 10) warnings re string/char  conversions at one point, in one function only but worked as such. Not tried the result.

CC=clang++ ./configure
make

produced the same warnings but then failed at the linking stage.

But the config.log had still ample references to gcc so I am not sure if this was really the right approach. Can you suggest how to change the compiler properly within the autotools setup?

Peter

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Timothy Shen-McCullough
Hi Peter, thank you for your help in this. I made the following for you and anyone else interested. I hope it’ll help you better identify and understand the warnings and/or type of warnings that we are seeing. I’m not really that familiar with how clang and llvm nor autotools works so I don’t know what changes to suggest so this is the next best thing that I thought of. (Perhaps it is something I should investigate…?)

     In order to create the numeric breakdown that I posted earlier, I copied and pasted the warnings Xcode gave me into a spreadsheet and sorted the data. Here is a copy of the final spreadsheet that was done:

<a href="https://dl.dropboxusercontent.com/u/1472406/XCode Warnings.ods" class="">https://dl.dropboxusercontent.com/u/1472406/XCode%20Warnings.ods

     On the left columns, I’ve used formulas to label which are warnings occurring in a Sword file or CLucene file. Whatever is not one of those is something else, but those are a minor amount in comparison and I think are PocketSword files unrelated to the Sword framework files. 
There’s also 3 warnings which are not 64-bit related which I’ve marked in yellow and that I already know about.

On the right side of the sheet, I separated out the file locations and their matching warnings into separate columns.

So, overall, this should give you an organized list of the warnings that Xcode gives providing the file name and the warning. Next to the file names are numbers. The first number is the row number in which the error occurs and then the second number is the number of spaces from the left that the warning is at. (Tabs/indents seem to count as one space)

I kept it as an OpenOffice doc in order to preserve the formulas I used to sort the errors. It should help you to organize and sort the data if you so desire. If you can’t open it though, just let me know and I can save it in a different format and etc.

Thank you,
TS

On Oct 19, 2016, at 2:44 AM, Peter Von Kaehne <[hidden email]> wrote:

Gesendet: Mittwoch, 19. Oktober 2016 um 09:24 Uhr
Von: "Manfred Bergmann" <[hidden email]>b. Is it possible that

Per default Xcode uses the C compiler of LLVM.

Ok.

I have tried compiling with clang/llvm on Linux just now, but likely made a few/lot mistakes....

CC=clang ./configure
make

produced a few (less than 10) warnings re string/char  conversions at one point, in one function only but worked as such. Not tried the result.

CC=clang++ ./configure
make

produced the same warnings but then failed at the linking stage.

But the config.log had still ample references to gcc so I am not sure if this was really the right approach. Can you suggest how to change the compiler properly within the autotools setup?

Peter

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Troy A. Griffitts

Dear TS,

Thank you for the spreadsheet.  I've had a review of the implicit cast warning and determined where the casts were safe and added explicit casts.  This should remove most of these warnings for you.  Have you actually had a problem compiling SWORD for 64bit or were just concerned about warnings?  Manfred and Nic should be able to answer better, but I'm quite sure we've been running 64bit on OSX for quite some time; not sure about iOS.

Thanks also for the report on the missing [] in the delete in swld.

You should have better results with svn HEAD.  Please keep us posted.

Troy

 
On 10/19/2016 12:58 PM, TS wrote:
Hi Peter, thank you for your help in this. I made the following for you and anyone else interested. I hope it’ll help you better identify and understand the warnings and/or type of warnings that we are seeing. I’m not really that familiar with how clang and llvm nor autotools works so I don’t know what changes to suggest so this is the next best thing that I thought of. (Perhaps it is something I should investigate…?)

     In order to create the numeric breakdown that I posted earlier, I copied and pasted the warnings Xcode gave me into a spreadsheet and sorted the data. Here is a copy of the final spreadsheet that was done:


     On the left columns, I’ve used formulas to label which are warnings occurring in a Sword file or CLucene file. Whatever is not one of those is something else, but those are a minor amount in comparison and I think are PocketSword files unrelated to the Sword framework files. 
There’s also 3 warnings which are not 64-bit related which I’ve marked in yellow and that I already know about.

On the right side of the sheet, I separated out the file locations and their matching warnings into separate columns.

So, overall, this should give you an organized list of the warnings that Xcode gives providing the file name and the warning. Next to the file names are numbers. The first number is the row number in which the error occurs and then the second number is the number of spaces from the left that the warning is at. (Tabs/indents seem to count as one space)

I kept it as an OpenOffice doc in order to preserve the formulas I used to sort the errors. It should help you to organize and sort the data if you so desire. If you can’t open it though, just let me know and I can save it in a different format and etc.

Thank you,
TS

On Oct 19, 2016, at 2:44 AM, Peter Von Kaehne <[hidden email]> wrote:

Gesendet: Mittwoch, 19. Oktober 2016 um 09:24 Uhr
Von: "Manfred Bergmann" <[hidden email]>b. Is it possible that

Per default Xcode uses the C compiler of LLVM.

Ok.

I have tried compiling with clang/llvm on Linux just now, but likely made a few/lot mistakes....

CC=clang ./configure
make

produced a few (less than 10) warnings re string/char  conversions at one point, in one function only but worked as such. Not tried the result.

CC=clang++ ./configure
make

produced the same warnings but then failed at the linking stage.

But the config.log had still ample references to gcc so I am not sure if this was really the right approach. Can you suggest how to change the compiler properly within the autotools setup?

Peter

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page



_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Timothy Shen-McCullough
Thank you! For the codebase that you updated, is there somewhere that I can download it to see the changes?

Xcode is giving me warnings, not errors, so it is technically compiling ok in that regard. (However, that does not necessarily mean that it’s ok to compile things that way.)

Manfred and Jaak both wrote earlier in this thread regarding how it runs on Mac and Linux. There’s issues in both cases.

The last official release of PocketSword was not compiled for 64-bit as far as I can tell from the download on the website for it. The project’s setting is set for 32-bit only, and not for 64-bit, though I could be mistaken.

Your welcome reg. the bug report.

-TS

On Oct 23, 2016, at 1:44 AM, Troy A. Griffitts <[hidden email]> wrote:

Dear TS,

Thank you for the spreadsheet.  I've had a review of the implicit cast warning and determined where the casts were safe and added explicit casts.  This should remove most of these warnings for you.  Have you actually had a problem compiling SWORD for 64bit or were just concerned about warnings?  Manfred and Nic should be able to answer better, but I'm quite sure we've been running 64bit on OSX for quite some time; not sure about iOS.

Thanks also for the report on the missing [] in the delete in swld.

You should have better results with svn HEAD.  Please keep us posted.

Troy

 
On 10/19/2016 12:58 PM, TS wrote:
Hi Peter, thank you for your help in this. I made the following for you and anyone else interested. I hope it’ll help you better identify and understand the warnings and/or type of warnings that we are seeing. I’m not really that familiar with how clang and llvm nor autotools works so I don’t know what changes to suggest so this is the next best thing that I thought of. (Perhaps it is something I should investigate…?)

     In order to create the numeric breakdown that I posted earlier, I copied and pasted the warnings Xcode gave me into a spreadsheet and sorted the data. Here is a copy of the final spreadsheet that was done:


     On the left columns, I’ve used formulas to label which are warnings occurring in a Sword file or CLucene file. Whatever is not one of those is something else, but those are a minor amount in comparison and I think are PocketSword files unrelated to the Sword framework files. 
There’s also 3 warnings which are not 64-bit related which I’ve marked in yellow and that I already know about.

On the right side of the sheet, I separated out the file locations and their matching warnings into separate columns.

So, overall, this should give you an organized list of the warnings that Xcode gives providing the file name and the warning. Next to the file names are numbers. The first number is the row number in which the error occurs and then the second number is the number of spaces from the left that the warning is at. (Tabs/indents seem to count as one space)

I kept it as an OpenOffice doc in order to preserve the formulas I used to sort the errors. It should help you to organize and sort the data if you so desire. If you can’t open it though, just let me know and I can save it in a different format and etc.

Thank you,
TS

On Oct 19, 2016, at 2:44 AM, Peter Von Kaehne <[hidden email]> wrote:

Gesendet: Mittwoch, 19. Oktober 2016 um 09:24 Uhr
Von: "Manfred Bergmann" <[hidden email]>b. Is it possible that

Per default Xcode uses the C compiler of LLVM.

Ok.

I have tried compiling with clang/llvm on Linux just now, but likely made a few/lot mistakes....

CC=clang ./configure
make

produced a few (less than 10) warnings re string/char  conversions at one point, in one function only but worked as such. Not tried the result.

CC=clang++ ./configure
make

produced the same warnings but then failed at the linking stage.

But the config.log had still ample references to gcc so I am not sure if this was really the right approach. Can you suggest how to change the compiler properly within the autotools setup?

Peter

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page



_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Peter Von Kaehne
In reply to this post by Timothy Shen-McCullough
Check out our wiki, it has repos etc listed.

Sent from my phone. Apologies for brevity and typos.On 25 Oct 2016 9:09 am, TS <[hidden email]> wrote:

>
> Thank you! For the codebase that you updated, is there somewhere that I can download it to see the changes?
>
> Xcode is giving me warnings, not errors, so it is technically compiling ok in that regard. (However, that does not necessarily mean that it’s ok to compile things that way.)
>
> Manfred and Jaak both wrote earlier in this thread regarding how it runs on Mac and Linux. There’s issues in both cases.
>
> The last official release of PocketSword was not compiled for 64-bit as far as I can tell from the download on the website for it. The project’s setting is set for 32-bit only, and not for 64-bit, though I could be mistaken.
>
> Your welcome reg. the bug report.
>
> -TS
>
>> On Oct 23, 2016, at 1:44 AM, Troy A. Griffitts <[hidden email]> wrote:
>>
> Dear TS,
>
> Thank you for the spreadsheet.  I've had a review of the implicit cast warning and determined where the casts were safe and added explicit casts.  This should remove most of these warnings for you.  Have you actually had a problem compiling SWORD for 64bit or were just concerned about warnings?  Manfred and Nic should be able to answer better, but I'm quite sure we've been running 64bit on OSX for quite some time; not sure about iOS.
>
> Thanks also for the report on the missing [] in the delete in swld.
>
> You should have better results with svn HEAD.  Please keep us posted.
>
> Troy
>
>  
> On 10/19/2016 12:58 PM, TS wrote:
>
> Hi Peter, thank you for your help in this. I made the following for you and anyone else interested. I hope it’ll help you better identify and understand the warnings and/or type of warnings that we are seeing. I’m not really that familiar with how clang and llvm nor autotools works so I don’t know what changes to suggest so this is the next best thing that I thought of. (Perhaps it is something I should investigate…?)
>
>      In order to create the numeric breakdown that I posted earlier, I copied and pasted the warnings Xcode gave me into a spreadsheet and sorted the data. Here is a copy of the final spreadsheet that was done:
>
> https://dl.dropboxusercontent.com/u/1472406/XCode%20Warnings.ods
>
>      On the left columns, I’ve used formulas to label which are warnings occurring in a Sword file or CLucene file. Whatever is not one of those is something else, but those are a minor amount in comparison and I think are PocketSword files unrelated to the Sword framework files. 
> There’s also 3 warnings which are not 64-bit related which I’ve marked in yellow and that I already know about.
>
> On the right side of the sheet, I separated out the file locations and their matching warnings into separate columns.
>
> So, overall, this should give you an organized list of the warnings that Xcode gives providing the file name and the warning. Next to the file names are numbers. The first number is the row number in which the error occurs and then the second number is the number of spaces from the left that the warning is at. (Tabs/indents seem to count as one space)
>
> I kept it as an OpenOffice doc in order to preserve the formulas I used to sort the errors. It should help you to organize and sort the data if you so desire. If you can’t open it though, just let me know and I can save it in a different format and etc.
>
> Thank you,
> TS
>
>> On Oct 19, 2016, at 2:44 AM, Peter Von Kaehne <[hidden email]> wrote:
>>
>>> Gesendet: Mittwoch, 19. Oktober 2016 um 09:24 Uhr
>>> Von: "Manfred Bergmann" <[hidden email]>b. Is it possible that
>>>
>>> Per default Xcode uses the C compiler of LLVM.
>>
>>
>> Ok.
>>
>> I have tried compiling with clang/llvm on Linux just now, but likely made a few/lot mistakes....
>>
>> CC=clang ./configure
>> make
>>
>> produced a few (less than 10) warnings re string/char  conversions at one point, in one function only but worked as such. Not tried the result.
>>
>> CC=clang++ ./configure
>> make
>>
>> produced the same warnings but then failed at the linking stage.
>>
>> But the config.log had still ample references to gcc so I am not sure if this was really the right approach. Can you suggest how to change the compiler properly within the autotools setup?
>>
>> Peter
>>
>> _______________________________________________
>> sword-devel mailing list: [hidden email]
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
>
>
>
> _______________________________________________
>
> sword-devel mailing list: [hidden email]
>
> http://www.crosswire.org/mailman/listinfo/sword-devel
>
> Instructions to unsubscribe/change your settings at above page
>
>
> _______________________________________________
> sword-devel mailing list: [hidden email]
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
>
_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Timothy Shen-McCullough
Hi,

Ok, so I was able to download Revision 3441 which I think is the most recent version of SWORD? (at least at the time.)

I’ve been working on getting it to work with the PocketSword code. There’s a bit of code and changes which needed to be made in order for it to work. I thought I could just replace the old code, but it doesn’t work like that. Are these changes documented anywhere? There’s only some listed in the SWORD-HOWTO named file that’s in the /objc/doc folder of the Bindings folder. I’ve been troubleshooting through in order to get things working. Also, I eventually wound up running a comparison of the entire Sword folder to what currently exists in order to find the differences in the code parts.

Has there been any more updates on the code to make it more 64-bit ?
It’s a lot better, but there’s still a lot of warnings regarding the matter that Xcode gives me. I’m considering the CLucene warnings as part of it all as well though I’m not sure if I should or not?

There also seems to be a couple of bugs or so, which I’ll put in the tracker.

Also, I’m not sure if it matters or not, but just fyi, Xcode 7.3.1 uses C99 for the C language dialect.

-TS  

> On Oct 25, 2016, at 1:32 AM, Peter von Kaehne <[hidden email]> wrote:
>
> Check out our wiki, it has repos etc listed.
>
> Sent from my phone. Apologies for brevity and typos.On 25 Oct 2016 9:09 am, TS <[hidden email]> wrote:
>>
>> Thank you! For the codebase that you updated, is there somewhere that I can download it to see the changes?
>>
>> Xcode is giving me warnings, not errors, so it is technically compiling ok in that regard. (However, that does not necessarily mean that it’s ok to compile things that way.)
>>
>> Manfred and Jaak both wrote earlier in this thread regarding how it runs on Mac and Linux. There’s issues in both cases.
>>
>> The last official release of PocketSword was not compiled for 64-bit as far as I can tell from the download on the website for it. The project’s setting is set for 32-bit only, and not for 64-bit, though I could be mistaken.
>>
>> Your welcome reg. the bug report.
>>
>> -TS
>>
>>> On Oct 23, 2016, at 1:44 AM, Troy A. Griffitts <[hidden email]> wrote:
>>>
>> Dear TS,
>>
>> Thank you for the spreadsheet.  I've had a review of the implicit cast warning and determined where the casts were safe and added explicit casts.  This should remove most of these warnings for you.  Have you actually had a problem compiling SWORD for 64bit or were just concerned about warnings?  Manfred and Nic should be able to answer better, but I'm quite sure we've been running 64bit on OSX for quite some time; not sure about iOS.
>>
>> Thanks also for the report on the missing [] in the delete in swld.
>>
>> You should have better results with svn HEAD.  Please keep us posted.
>>
>> Troy
>>
>>  
>> On 10/19/2016 12:58 PM, TS wrote:
>>
>> Hi Peter, thank you for your help in this. I made the following for you and anyone else interested. I hope it’ll help you better identify and understand the warnings and/or type of warnings that we are seeing. I’m not really that familiar with how clang and llvm nor autotools works so I don’t know what changes to suggest so this is the next best thing that I thought of. (Perhaps it is something I should investigate…?)
>>
>>      In order to create the numeric breakdown that I posted earlier, I copied and pasted the warnings Xcode gave me into a spreadsheet and sorted the data. Here is a copy of the final spreadsheet that was done:
>>
>> https://dl.dropboxusercontent.com/u/1472406/XCode%20Warnings.ods
>>
>>      On the left columns, I’ve used formulas to label which are warnings occurring in a Sword file or CLucene file. Whatever is not one of those is something else, but those are a minor amount in comparison and I think are PocketSword files unrelated to the Sword framework files.
>> There’s also 3 warnings which are not 64-bit related which I’ve marked in yellow and that I already know about.
>>
>> On the right side of the sheet, I separated out the file locations and their matching warnings into separate columns.
>>
>> So, overall, this should give you an organized list of the warnings that Xcode gives providing the file name and the warning. Next to the file names are numbers. The first number is the row number in which the error occurs and then the second number is the number of spaces from the left that the warning is at. (Tabs/indents seem to count as one space)
>>
>> I kept it as an OpenOffice doc in order to preserve the formulas I used to sort the errors. It should help you to organize and sort the data if you so desire. If you can’t open it though, just let me know and I can save it in a different format and etc.
>>
>> Thank you,
>> TS
>>
>>> On Oct 19, 2016, at 2:44 AM, Peter Von Kaehne <[hidden email]> wrote:
>>>
>>>> Gesendet: Mittwoch, 19. Oktober 2016 um 09:24 Uhr
>>>> Von: "Manfred Bergmann" <[hidden email]>b. Is it possible that
>>>>
>>>> Per default Xcode uses the C compiler of LLVM.
>>>
>>>
>>> Ok.
>>>
>>> I have tried compiling with clang/llvm on Linux just now, but likely made a few/lot mistakes....
>>>
>>> CC=clang ./configure
>>> make
>>>
>>> produced a few (less than 10) warnings re string/char  conversions at one point, in one function only but worked as such. Not tried the result.
>>>
>>> CC=clang++ ./configure
>>> make
>>>
>>> produced the same warnings but then failed at the linking stage.
>>>
>>> But the config.log had still ample references to gcc so I am not sure if this was really the right approach. Can you suggest how to change the compiler properly within the autotools setup?
>>>
>>> Peter
>>>
>>> _______________________________________________
>>> sword-devel mailing list: [hidden email]
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>
>>
>>
>>
>> _______________________________________________
>>
>> sword-devel mailing list: [hidden email]
>>
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>
>> Instructions to unsubscribe/change your settings at above page
>>
>>
>> _______________________________________________
>> sword-devel mailing list: [hidden email]
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>>
> _______________________________________________
> sword-devel mailing list: [hidden email]
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Timothy Shen-McCullough
In reply to this post by Manfred Bergmann-4
Hi Manfred,
I took a look at these wrapper files in the bindings/objc for Revision 3441 of the SWORD framework. Using FileMerge I compared it to what seems to be the wrapper files in PocketSword. Upon at least a simple comparison, there seems to be some similarities, but also some huge differences as well. FileMerge highlighted quite a lot of things. I remember that at least one header file has the same name, but other than that the header seems to have completely different code. It was a surprise.
-TS

On Oct 14, 2016, at 4:15 AM, Manfred Bergmann <[hidden email]> wrote:

I’m also having tons of warnings when compiling SWORD in Xcode for 64 bit.
The precision warnings can be ignored IMO. But due to the sheer number of warnings it’s very hard to detect warnings that shouldn’t be ignored.

Btw: there is a Objective-C wrapper for the SWORD library under bindings/objc which I maintain and use in Eloquent.
AFAIK some form of the wrapper in used in PS.
It would be great if efforts could be shared in using only one codebase.



Manfred


Am 13.10.2016 um 22:30 schrieb TS <[hidden email]>:

     So, Xcode gives me hundreds of warnings when I try to build for 64 bit mode. I've also tried searching the mailing list so I see that some people earlier in the year may be have seen the same warnings (for PocketSword), so I think I better understand why I've seen that some of the libraries were updated(I don't know if all were updated or ?). However, I'm still getting errors and some of it is in the Sword framework. My impression so far of what's going on is that Xcode is telling me is that there are datatypes which are not being converted properly. I think this is happening due to things like "int" and "long" not occupying the same amount of space or something like they use to do in 32 bit and so need a casting in order to be converted properly?
     An example is listkey.h at line 147 in which "index" is a "long", but then setToElement is for an "int".
     Another is swbuf.h at line 448 "...const { unsigned int psize = strlen(postfix); ..." where Xcode warns that there's a loss of precision. That an unsigned long is converting to an unsigned int. I think that unsigned long occupies 64 bits when run in 64 bit mode, but the int stays in 32 bits when run in 64 bit mode.
    I have compared the Sword framework that it's using against the last stable one and there's doesn't seem to be changes to address the issues I'm seeing.
    Any suggestions on how to proceed?

-TS
_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page

_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Peter Von Kaehne
In reply to this post by Timothy Shen-McCullough
It seems that PocketSword was based on svn-head snapshots instead of releases.  Bear in mind that svn-head is development code. The releases are in the release branch. Right now head has at least 6 header files which are not in release and 3 of which might never make it. There are the latex filters which were under development for a while + should be in one of the next releases and there are several alternative compression mechanisms, all of which we do not use and have no particular plan to use in future.

All of these headerfiles will have been under significant development + with little documentation.

HTH

Peter

Sent from my phone. Apologies for brevity and typos.On 3 Nov 2016 03:19, TS <[hidden email]> wrote:

>
> Hi Manfred,
> I took a look at these wrapper files in the bindings/objc for Revision 3441 of the SWORD framework. Using FileMerge I compared it to what seems to be the wrapper files in PocketSword. Upon at least a simple comparison, there seems to be some similarities, but also some huge differences as well. FileMerge highlighted quite a lot of things. I remember that at least one header file has the same name, but other than that the header seems to have completely different code. It was a surprise.
> -TS
>
>> On Oct 14, 2016, at 4:15 AM, Manfred Bergmann <[hidden email]> wrote:
>>
> I’m also having tons of warnings when compiling SWORD in Xcode for 64 bit.
> The precision warnings can be ignored IMO. But due to the sheer number of warnings it’s very hard to detect warnings that shouldn’t be ignored.
>
> Btw: there is a Objective-C wrapper for the SWORD library under bindings/objc which I maintain and use in Eloquent.
> AFAIK some form of the wrapper in used in PS.
> It would be great if efforts could be shared in using only one codebase.
>
>
>
> Manfred
>
>
>> Am 13.10.2016 um 22:30 schrieb TS <[hidden email]>:
>>
>>      So, Xcode gives me hundreds of warnings when I try to build for 64 bit mode. I've also tried searching the mailing list so I see that some people earlier in the year may be have seen the same warnings (for PocketSword), so I think I better understand why I've seen that some of the libraries were updated(I don't know if all were updated or ?). However, I'm still getting errors and some of it is in the Sword framework. My impression so far of what's going on is that Xcode is telling me is that there are datatypes which are not being converted properly. I think this is happening due to things like "int" and "long" not occupying the same amount of space or something like they use to do in 32 bit and so need a casting in order to be converted properly?
>>      An example is listkey.h at line 147 in which "index" is a "long", but then setToElement is for an "int".
>>      Another is swbuf.h at line 448 "...const { unsigned int psize = strlen(postfix); ..." where Xcode warns that there's a loss of precision. That an unsigned long is converting to an unsigned int. I think that unsigned long occupies 64 bits when run in 64 bit mode, but the int stays in 32 bits when run in 64 bit mode.
>>     I have compared the Sword framework that it's using against the last stable one and there's doesn't seem to be changes to address the issues I'm seeing.
>>     Any suggestions on how to proceed?
>>
>> -TS
>> _______________________________________________
>> sword-devel mailing list: [hidden email]
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
>
> _______________________________________________
> sword-devel mailing list: [hidden email]
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page
_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Manfred Bergmann-4
In reply to this post by Timothy Shen-McCullough
Hi TS.

They were the same once. Both started out in the MacSword app.
Then they were extracted from MacSword and made it’s own project which found the home in the bindings/objc folder of the SWORD source tree.
Nic decided to not use the files bindings/objc but his own fork.
And myself maintained the wrapper files there for Eloquent.
Since then it has diverged quite a bit as you have found out. Though many of the classes and the much of the API should still be similar.
Nevertheless I would like to see some common effort in maintaining those „official“ Objective-C bindings.



Manfred

> Am 03.11.2016 um 04:19 schrieb TS <[hidden email]>:
>
> Hi Manfred,
> I took a look at these wrapper files in the bindings/objc for Revision 3441 of the SWORD framework. Using FileMerge I compared it to what seems to be the wrapper files in PocketSword. Upon at least a simple comparison, there seems to be some similarities, but also some huge differences as well. FileMerge highlighted quite a lot of things. I remember that at least one header file has the same name, but other than that the header seems to have completely different code. It was a surprise.
>
> -TS
>
>> On Oct 14, 2016, at 4:15 AM, Manfred Bergmann <[hidden email]> wrote:
>>
>> I’m also having tons of warnings when compiling SWORD in Xcode for 64 bit.
>> The precision warnings can be ignored IMO. But due to the sheer number of warnings it’s very hard to detect warnings that shouldn’t be ignored.
>>
>> Btw: there is a Objective-C wrapper for the SWORD library under bindings/objc which I maintain and use in Eloquent.
>> AFAIK some form of the wrapper in used in PS.
>> It would be great if efforts could be shared in using only one codebase.
>>
>>
>>
>> Manfred
>>
>>
>>> Am 13.10.2016 um 22:30 schrieb TS <[hidden email]>:
>>>
>>>      So, Xcode gives me hundreds of warnings when I try to build for 64 bit mode. I've also tried searching the mailing list so I see that some people earlier in the year may be have seen the same warnings (for PocketSword), so I think I better understand why I've seen that some of the libraries were updated(I don't know if all were updated or ?). However, I'm still getting errors and some of it is in the Sword framework. My impression so far of what's going on is that Xcode is telling me is that there are datatypes which are not being converted properly. I think this is happening due to things like "int" and "long" not occupying the same amount of space or something like they use to do in 32 bit and so need a casting in order to be converted properly?
>>>      An example is listkey.h at line 147 in which "index" is a "long", but then setToElement is for an "int".
>>>      Another is swbuf.h at line 448 "...const { unsigned int psize = strlen(postfix); ..." where Xcode warns that there's a loss of precision. That an unsigned long is converting to an unsigned int. I think that unsigned long occupies 64 bits when run in 64 bit mode, but the int stays in 32 bits when run in 64 bit mode.
>>>     I have compared the Sword framework that it's using against the last stable one and there's doesn't seem to be changes to address the issues I'm seeing.
>>>     Any suggestions on how to proceed?
>>>
>>> -TS
>>> _______________________________________________
>>> sword-devel mailing list: [hidden email]
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>
>> _______________________________________________
>> sword-devel mailing list: [hidden email]
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
> _______________________________________________
> sword-devel mailing list: [hidden email]
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

Nic Carter
FWIW:

My decision was to defer merging my changes back into the official bindings. Unfortunately, that was a poor decision, as I continued to work on the bindings, making the future merge even more messy.

My decision was primarily made based on lack of time, as I was hoping to have a chunk of time to work on PS again, like I had a few years ago. Unfortunately, that never eventuated.


Thanks, ybic
        nic...  :)

> On 3 Nov. 2016, at 7:04 pm, Manfred Bergmann <[hidden email]> wrote:
>
> Hi TS.
>
> They were the same once. Both started out in the MacSword app.
> Then they were extracted from MacSword and made it’s own project which found the home in the bindings/objc folder of the SWORD source tree.
> Nic decided to not use the files bindings/objc but his own fork.
> And myself maintained the wrapper files there for Eloquent.
> Since then it has diverged quite a bit as you have found out. Though many of the classes and the much of the API should still be similar.
> Nevertheless I would like to see some common effort in maintaining those „official“ Objective-C bindings.
>
>
>
> Manfred
>
>> Am 03.11.2016 um 04:19 schrieb TS <[hidden email]>:
>>
>> Hi Manfred,
>> I took a look at these wrapper files in the bindings/objc for Revision 3441 of the SWORD framework. Using FileMerge I compared it to what seems to be the wrapper files in PocketSword. Upon at least a simple comparison, there seems to be some similarities, but also some huge differences as well. FileMerge highlighted quite a lot of things. I remember that at least one header file has the same name, but other than that the header seems to have completely different code. It was a surprise.
>>
>> -TS
>>
>>> On Oct 14, 2016, at 4:15 AM, Manfred Bergmann <[hidden email]> wrote:
>>>
>>> I’m also having tons of warnings when compiling SWORD in Xcode for 64 bit.
>>> The precision warnings can be ignored IMO. But due to the sheer number of warnings it’s very hard to detect warnings that shouldn’t be ignored.
>>>
>>> Btw: there is a Objective-C wrapper for the SWORD library under bindings/objc which I maintain and use in Eloquent.
>>> AFAIK some form of the wrapper in used in PS.
>>> It would be great if efforts could be shared in using only one codebase.
>>>
>>>
>>>
>>> Manfred
>>>
>>>
>>>> Am 13.10.2016 um 22:30 schrieb TS <[hidden email]>:
>>>>
>>>>     So, Xcode gives me hundreds of warnings when I try to build for 64 bit mode. I've also tried searching the mailing list so I see that some people earlier in the year may be have seen the same warnings (for PocketSword), so I think I better understand why I've seen that some of the libraries were updated(I don't know if all were updated or ?). However, I'm still getting errors and some of it is in the Sword framework. My impression so far of what's going on is that Xcode is telling me is that there are datatypes which are not being converted properly. I think this is happening due to things like "int" and "long" not occupying the same amount of space or something like they use to do in 32 bit and so need a casting in order to be converted properly?
>>>>     An example is listkey.h at line 147 in which "index" is a "long", but then setToElement is for an "int".
>>>>     Another is swbuf.h at line 448 "...const { unsigned int psize = strlen(postfix); ..." where Xcode warns that there's a loss of precision. That an unsigned long is converting to an unsigned int. I think that unsigned long occupies 64 bits when run in 64 bit mode, but the int stays in 32 bits when run in 64 bit mode.
>>>>    I have compared the Sword framework that it's using against the last stable one and there's doesn't seem to be changes to address the issues I'm seeing.
>>>>    Any suggestions on how to proceed?
>>>>
>>>> -TS
>>>> _______________________________________________
>>>> sword-devel mailing list: [hidden email]
>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>> Instructions to unsubscribe/change your settings at above page
>>>
>>> _______________________________________________
>>> sword-devel mailing list: [hidden email]
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>
>> _______________________________________________
>> sword-devel mailing list: [hidden email]
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
>
> _______________________________________________
> sword-devel mailing list: [hidden email]
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page


_______________________________________________
sword-devel mailing list: [hidden email]
http://www.crosswire.org/mailman/listinfo/sword-devel
Instructions to unsubscribe/change your settings at above page
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: How do you make the Sword framework work in 64bit mode? (My compiler is giving me hundreds of warnings.)

David Haslam
It's been noted by some watchers of Apple that they will remove apps from the store that don't have 64-bit capability once iOS 11 is released later this year.

Unless PocketSword is updated soon, we're likely to lose it.

That would be very sad indeed.

David
Loading...