www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Latest urllib?

reply Chuck.Esterbrook /at/ gmail /dot/ com <Chuck.Esterbrook_member pathlink.com> writes:
I downloaded urllib from http://www.opend.org/urllib.zip just recently. I'd give
a version number, but I don't see one in the files off hand.

When I try to compile it, I get some error messages and what I'm really
wondering before I dig into the source:
- Did I get the latest version?
- Does someone already have this working with the latest D?

The errors aren't even that bad, but they make me think that I have an old
version:

C:\D\packages\urllib>\d\dmd\bin\dmd -g -debug -unittest socket.d urlget.d
urllib.d urllib_dict.d urllib_ftp.d urllib_gopher.d
urllib_file.d urllib_http.d urllib_nntp.d
socket.d(92): '!==' is deprecated, use '!is' instead
socket.d(235): C style cast illegal, use cast(SOCKET)(~0)
socket.d(299): C style cast illegal, use cast(char)(102)
socket.d(299): C style cast illegal, use cast(int)(IOC_IN | (uint).size &
IOCPARM_MASK << 16 | cast(char)(102) << 8 | 126)
socket.d(381): C style cast illegal, use cast(int)(addr.sa_data[1])
socket.d(381): C style cast illegal, use cast(int)(addr.sa_data[0])
socket.d(452): '!==' is deprecated, use '!is' instead
socket.d(456): C style cast illegal, use cast(char[])(address.value[0..12])
socket.d(555): C style cast illegal, use cast(void**)(#winbind)
socket.d(556): C style cast illegal, use cast(void**)(#winconnect)
etc.

-Chuck
Aug 16 2005
next sibling parent pragma <EricAnderton youknowthedrill.yahoo> writes:
Chuck.Esterbrook /at/ gmail /dot/ com wrote:
 I downloaded urllib from http://www.opend.org/urllib.zip just recently. I'd
give
 a version number, but I don't see one in the files off hand.
 
 When I try to compile it, I get some error messages and what I'm really
 wondering before I dig into the source:
 - Did I get the latest version?
 - Does someone already have this working with the latest D?
 
 The errors aren't even that bad, but they make me think that I have an old
 version:
 
 C:\D\packages\urllib>\d\dmd\bin\dmd -g -debug -unittest socket.d urlget.d
 urllib.d urllib_dict.d urllib_ftp.d urllib_gopher.d
 urllib_file.d urllib_http.d urllib_nntp.d
 socket.d(92): '!==' is deprecated, use '!is' instead
 socket.d(235): C style cast illegal, use cast(SOCKET)(~0)
 socket.d(299): C style cast illegal, use cast(char)(102)
 socket.d(299): C style cast illegal, use cast(int)(IOC_IN | (uint).size &
 IOCPARM_MASK << 16 | cast(char)(102) << 8 | 126)
 socket.d(381): C style cast illegal, use cast(int)(addr.sa_data[1])
 socket.d(381): C style cast illegal, use cast(int)(addr.sa_data[0])
 socket.d(452): '!==' is deprecated, use '!is' instead
 socket.d(456): C style cast illegal, use cast(char[])(address.value[0..12])
 socket.d(555): C style cast illegal, use cast(void**)(#winbind)
 socket.d(556): C style cast illegal, use cast(void**)(#winconnect)
 etc.
 
 -Chuck
 
 

Wow, it looks like that lib hasn't been touched in ages:
 What's New for D 0.88
 May 5, 2004
 New/Changed Features

     * C style casts deprecated (use -d to compile them for now).

 What's New for D 0.126
 Jun 7, 2005
 New/Changed Features

    * === now deprecated, replaced with is.
    * !== now deprecated, replaced with !is.

I'd argue that the site itself (opend.org) is languishing pretty badly. I think you have the latest version of that library. If you're interested in working with sockets and URLs, I strongly reccomend you give Mango a go. Its not only up-to-date, but has a *lot* of other widgets that are useful for all kinds of things.
Aug 16 2005
prev sibling parent reply Burton Radons <burton-radons smocky.com> writes:
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

I've attached an updated version which uses std.socket (which didn't 
exist at the time that I wrote it) and which works with the latest DMD.
Aug 16 2005
parent reply a.c.edwards <a.c.edwards_member pathlink.com> writes:
Mind updating your site so I can download it? I cannot pull it form the web
interface to this newsgroup. Yes, I know I can get it via a newreader but I am
not in a position where I can use one. By the way I have been keeping my own
copy of urllib updated but I would like to return to using yours since you are
the original architech and the only changes I've made were those required to
comply with depricated features of DMD. Thanks.

Andrew

In article <dduenj$1omp$1 digitaldaemon.com>, Burton Radons says...
This is a multi-part message in MIME format.
--------------040000060803040707060801
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

I've attached an updated version which uses std.socket (which didn't 
exist at the time that I wrote it) and which works with the latest DMD.

--------------040000060803040707060801
Content-Type: application/octet-stream;
 name="urllib.rar"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="urllib.rar"

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
Z/ap/9TEPXsAQAcA
--------------040000060803040707060801--

Aug 17 2005
parent Burton Radons <burton-radons smocky.com> writes:
a.c.edwards wrote:
 Mind updating your site so I can download it? I cannot pull it form the web
 interface to this newsgroup. Yes, I know I can get it via a newreader but I am
 not in a position where I can use one. By the way I have been keeping my own
 copy of urllib updated but I would like to return to using yours since you are
 the original architech and the only changes I've made were those required to
 comply with depricated features of DMD. Thanks.

opend.org isn't my site, and I've long forgotten the password. Here though: http://www.smocky.com/arc/urllib.rar I've only been updating it to keep it compiling as well. There is one bugfix for handling www.python.org, which has weird socket behaviour that was screwing up the block-reading algorithm.
Aug 17 2005