FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Errors with Tangobos from trunk (revision 11)

 
Post new topic   Reply to topic     Forum Index -> tangobos
View previous topic :: View next topic  
Author Message
bobef



Joined: 05 Jun 2005
Posts: 269

PostPosted: Sat May 05, 2007 12:47 am    Post subject: Errors with Tangobos from trunk (revision 11) Reply with quote

\std\c\stdio.d(191): Error: identifier 'va_list' is not defined
\std\c\stdio.d(191): Error: va_list is used as a type
\std\c\stdio.d(191): Error: cannot have parameter of type void
\std\c\stdio.d(192): Error: identifier 'va_list' is not defined
\std\c\stdio.d(192): Error: va_list is used as a type
\std\c\stdio.d(192): Error: cannot have parameter of type void
\std\c\stdio.d(194): Error: identifier 'va_list' is not defined
\std\c\stdio.d(194): Error: va_list is used as a type
\std\c\stdio.d(194): Error: cannot have parameter of type void
\std\c\stdio.d(236): Error: identifier 'va_list' is not defined
\std\c\stdio.d(236): Error: va_list is used as a type
\std\c\stdio.d(236): Error: cannot have parameter of type void
\std\c\stdio.d(273): Error: identifier 'va_list' is not defined
\std\c\stdio.d(273): Error: va_list is used as a type
\std\c\stdio.d(273): Error: cannot have parameter of type void
\std\c\stdio.d(274): Error: identifier 'va_list' is not defined
\std\c\stdio.d(274): Error: va_list is used as a type
\std\c\stdio.d(274): Error: cannot have parameter of type void
\std\c\stdio.d(276): Error: identifier 'va_list' is not defined
\std\c\stdio.d(276): Error: va_list is used as a type
\std\c\stdio.d(276): Error: cannot have parameter of type void
\std\c\stdio.d(278): Error: identifier 'va_list' is not defined
\std\c\stdio.d(278): Error: va_list is used as a type
\std\c\stdio.d(278): Error: cannot have parameter of type void
\std\format.d(447): Error: identifier 'va_list' is not defined
\std\format.d(447): Error: va_list is used as a type
\std\format.d(447): Error: cannot have parameter of type void
\std\stdio.d(133): Error: identifier 'va_list' is not defined
\std\stdio.d(133): Error: va_list is used as a type
\std\stdio.d(133): Error: cannot have parameter of type void
\std\string.d(3435): Error: identifier 'va_list' is not defined
\std\string.d(3435): Error: va_list is used as a type
\std\string.d(3435): Error: cannot have parameter of type void
Back to top
View user's profile Send private message
baxissimo



Joined: 23 Oct 2006
Posts: 241
Location: Tokyo, Japan

PostPosted: Thu May 24, 2007 11:16 pm    Post subject: More errors... and eventual SUCCESS! Reply with quote

bobef wrote:
\std\c\stdio.d(191): Error: identifier 'va_list' is not defined
\std\c\stdio.d(191): Error: va_list is used as a type
\std\c\stdio.d(191): Error: cannot have parameter of type void
...


I get these too. It's weird because right in std/c/stdarg.d there's a big fat "alias void* va_list". And stdio.d is importing that.

... ok I was able to get past that one by explicitly including the tangobos directory with a -I directive. Actually I think that is documented in the README:
Code:

This version is based on Phobos 1.011. You'll need to have a Tango capable of
-version=PhobosCompatibility. You can either build this with dsss, or just
-I<tangobos' path>


Ok, so I do that, but then I get this error
Code:

F:\usr\pkg\d\dmd\import\tangobos\tests>dmd -I.. writetest.d
f:\usr\pkg\d\dmd\bin\..\..\dm\bin\link.exe writetest,,,user32+kernel32/noi;
OPTLINK (R) for Win32  Release 8.00.1
Copyright (C) Digital Mars 1989-2004  All rights reserved.
writetest.obj(writetest)
 Error 42: Symbol Undefined _D3std5stdio8writeflnFYv
--- errorlevel 1


The program is just simple hello world:
Code:

import std.compat;
import std.stdio;

void main()
{
    writefln("Hello world!");
}


Right, no problem, I can add them the compile line:

Code:

F:\usr\pkg\d\dmd\import\tangobos\tests>dmd -I.. writetest.d Stangobos.lib Stangobos-etc.lib
f:\usr\pkg\d\dmd\bin\..\..\dm\bin\link.exe writetest,,,Stangobos.lib+Stangobos-e
tc.lib+user32+kernel32/noi;
OPTLINK (R) for Win32  Release 8.00.1
Copyright (C) Digital Mars 1989-2004  All rights reserved.
f:\usr\pkg\d\dm\bin\..\lib\SNN.lib(fputwc)  Offset 09AF4H Record Type 00C3
 Error 1: Previous Definition Different : _putwc
f:\usr\pkg\d\dm\bin\..\lib\SNN.lib(fgetwc)  Offset 093A3H Record Type 00C3
 Error 1: Previous Definition Different : _getwc
--- errorlevel 2


putwc and getwc seem to be defined in std/c/stdio.d. Ok so I comment them out. And replace them with prototypes
Code:

///
//wchar_t    getwc(FILE *fp)   { return fgetwc(fp); }
wchar_t    getwc(FILE *fp);
///
//wchar_t    putwc(wchar_t c, FILE *fp)   { return fputwc(c, fp); }
wchar_t    putwc(wchar_t c, FILE *fp);



And lo and behold! Whoa! Tangobos works! Yeah!
Shocked
Back to top
View user's profile Send private message
baxissimo



Joined: 23 Oct 2006
Posts: 241
Location: Tokyo, Japan

PostPosted: Fri May 25, 2007 12:01 am    Post subject: Re: More errors... and eventual SUCCESS! Reply with quote

Quote:

... ok I was able to get past that one by explicitly including the tangobos directory with a -I directive. Actually I think that is documented in the README:
Code:

This version is based on Phobos 1.011. You'll need to have a Tango capable of
-version=PhobosCompatibility. You can either build this with dsss, or just
-I<tangobos' path>



The other alternative if, like me, you aren't sure how to compile Tango with --version=PhobosCompatibility, nor do you want to have to use a -I everywhere, seems to be to set up your sc.ini with Tangobos first:

Code:

[Version]
version=7.51 Build 020

[Environment]
LIB="%@P%\..\import\tangobos;%@P%\..\import\tango\lib;%@P%\..\lib;%@P%\..\..\dm\lib"
DFLAGS="-I%@P%\..\import\tangobos" "-I%@P%\..\import\tango" -version=Tango
LINKCMD=%@P%\..\..\dm\bin\link.exe
Back to top
View user's profile Send private message
revcompgeek



Joined: 24 Nov 2007
Posts: 27

PostPosted: Mon Nov 26, 2007 5:10 pm    Post subject: Reply with quote

For PhobosCompatability, cant you just add a line that says version=PhobosCompatability before the imports?
Back to top
View user's profile Send private message
larsivi
Site Admin


Joined: 27 Mar 2004
Posts: 453
Location: Trondheim, Norway

PostPosted: Tue Nov 27, 2007 3:21 am    Post subject: Reply with quote

version statements only appliy to the module they are in, so it won't work for PhobosCompatibility.

Btw, we hope to make Tangobos more up-to-date and complete. Are there anyone who wants to help out with that? Note that std.thread now wraps tango.core.Thread and should thus work out of the box. Are there other problematic areas?
Back to top
View user's profile Send private message
davidl



Joined: 17 Aug 2006
Posts: 27

PostPosted: Mon May 19, 2008 8:27 am    Post subject: Reply with quote

you must have used dsss install to install tango right?

you can delete the
dmd/include/d/std
folder to make tangobos work
Back to top
View user's profile Send private message
baxissimo



Joined: 23 Oct 2006
Posts: 241
Location: Tokyo, Japan

PostPosted: Mon May 19, 2008 8:50 am    Post subject: Reply with quote

davidl wrote:
you must have used dsss install to install tango right?

you can delete the
dmd/include/d/std
folder to make tangobos work


What seems to work for me is just re-doing the dsss install of tangobos after every time I dsss install tango.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> tangobos All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group