Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
+1 I'd like to see this make it in.
--
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
looks good to me.
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue2464>
___
__
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
agreed, that should be made to cause the test to fail. a
failureException method that sets a flag that the main thread will
detect and fail on when exiting should do the trick.
side note:
...sadly that failure appears to be a test
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
i was pondering if it should go in urlparse instead. if it did, i think
it should be part of urlparse.urlunparse to ensure that there is always
a trailing slash after the host:port regardless of what the inputs are.
anyways, agreed
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
backported to release25-maint in r65789.
--
resolution: -> fixed
status: open -> closed
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.p
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
backported to release25-maint in r65790
--
status: open -> closed
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
specifically, test_3_join_in_forked_from_thread hangs in py3k and is
currently disabled.
--
assignee: gregory.p.smith ->
___
Python tracker <[EMAIL PROTECTED]>
<http
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
That test case looks good to me for 2.6 and 3.0. Also add a note to the
documentation with a versionchanged 2.6 about urlunparse always ensuring
there is a / between the netloc and the rest of the url.
I would not back port th
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
preventing this right now is that when i apply this to py3k today, it
fails miserably in a debug build.
first, my patch has an invalid assert(size > 0) in it in _PyLong_New as
0 size is used when the value is 0. get rid of
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
attached is an updated patch that also works in debug mode. to do this
i had to exclude all zero length (value = 0) PyLongObjects from the free
list. i'm still not sure why, they all have the same underlying
allocation size.
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
Added file: http://bugs.python.org/file11144/py3k_longfreelist2_gps04.patch
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
The fix can not be committed to Python 2.5 because it breaks
compatibility by adding another field to the PyFileObject struct and
adding two new C API functions.
___
Python tracker <[EMAIL
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
Verified fixed.
Python 2.6b2+ (trunk:65871, Aug 19 2008, 13:10:07)
>>> msg = 'A'*2000111222
[12389 refs]
>>> x = msg.decode('utf8')
Traceback (most recent call last):
File "", line
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
I doubt subclassability of RLock matters but who knows, people do code
things.
Regardless, using a C version wrapped in a simple python container class
that calls the underlying C implementation's methods should be
sufficient t
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3618>
___
_
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
see the python-3000 thread I just started asking for opinions on this.
I'd personally say this bug is a good reason to go ahead with #3001 for 3.0.
___
Python tracker <[EMAIL PRO
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
it passes on release25-maint for me on linux. i don't see it hanging in
any of the 2.5 buildbots. looks like your r66003 change was a decent
fix for windows judging by the buildbot.
(fwiw, that test you patched in 66003 shou
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
priority: -> normal
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3710>
___
_
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
keywords: +patch
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
I think this ldflags-ldlast patch (added) is whats really needed.
--
keywords: +easy, needs review
Added file: http://bugs.python.org/file11280/ldflags-ldlast-gps01.diff
___
Python t
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
fyi - This bug and #1868 (http://bugs.python.org/issue1868) seem related.
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
see also #3710
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue1868>
___
___
Python
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
I like Amaury's patch, it gets rid of what seems like an existing gross
hack of having localobject->dict exist at all.
I believe it may also fix #3710 by getting rid of the unnecessary
localobject->dict member.
Could so
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
i'll fix this and add a unit test.
--
assignee: -> gregory.p.smith
keywords: +easy
nosy: +gregory.p.smith
priority: -> low
___
Python tracker <[EMAIL PROTECTED]>
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
better patch with tests attached, no explicit int conversion is done.
i also wrapped the use of the fd returned by open with a try: finally:
to avoid any chance of a leak and renamed the bytes variable to bs to
match whats in py
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
keywords: +patch
Added file: http://bugs.python.org/file11282/cookielib.diff
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
attached is a patch with the suggested fix along with a unit test.
--
assignee: -> gregory.p.smith
keywords: +needs review
nosy: +gregory.p.smith
priority: -> normal
Added file: http://bugs.python.org/file112
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
given where we are in the release process at the moment I doubt this can
go into 2.6/3.0. Bring it up on python-dev if you have compelling
reasons why it should.
Otherwise, looks good for trunk 2.7/3.1 immediately after the releas
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
looks good to me
--
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
if i did
n = int(n)
that would change the API to allow bytes/unicode to be passed in which
is not something i want. i don't even like that it allows floats.
by not doing the int conversion at all, a DeprecationWarning is ra
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
priority: -> normal
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
fixed in trunk r66093, py3k r66094, release25-maint r66095
--
keywords: +easy
resolution: -> fixed
status: open -> closed
versions: +Python 2.5, Python 2.6
___
Python tracker <[
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
committed to trunk r66141.
leaving open until i verify that this makes it into py3k and for a
backport to release25-maint.
--
keywords: -needs review
versions: -Python 2.6
___
Python t
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
committed to trunk r66142
--
status: open -> closed
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
versions: +Python 2.6
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3704>
___
_
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue1868>
___
_
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
this is ready for more review at http://codereview.appspot.com/3641
Added file: http://bugs.python.org/file11341/threading_local4.patch
___
Python tracker <[EMAIL PROTECTED]>
<http://
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
committed to trunk (2.6) in r66179. This should be back ported to
release25-maint and automagically merged into py3k.
can someone with OpenBSD confirm that this has indeed fixed the problem?
if so i'll do the 25 backport and
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
keywords: -needs review
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3645>
___
_
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
this is a very simple patch and makes sense to me. marking it a release
blocker and asking about it on the mailing list. if anyone disagrees
with this one please speak up.
in general IO input functions elsewhere return bytes().
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
Correct, zipimport required fixing in order for this to work. The newly
attached zlib-and-zipimport-gps01 patch.
review at http://codereview.appspot.com/4454
I haven't had a chance to look at the other modules Amaury menti
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
I agree with Christian's most recent comment.
However without BDFL intervention I think its too late in the 2.6/3.0
release cycle to rush this fix in. It can wait for 2.6.1/3.0.1.
I won't have time to look at it for sev
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3783>
___
_
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
fixed in r66266 along with #3790.
leaving this open and assigned to me while i investigate the other uses
of ByteArray in the Modules/ directory.
IMHO, its fine if we fix any remaining bytearray uses up for rc2.
--
reso
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
fixed in r66266 along with #3492.
--
resolution: -> fixed
status: open -> closed
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
priority: release blocker -> deferred blocker
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
New submission from Gregory P. Smith <[EMAIL PROTECTED]>:
As noted in issue #3492 the following py3k modules still erroneously
return bytearray objects instead of bytes objects from their read functions:
mmap
dbm
ossaudiodev
Attached is a trivial patch to fix those.
--
as
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
attached a patch for PC/winreg.c and Python/marshal.c.
--
title: mmap, dbm and ossaudiodev return bytearray instead of bytes -> mmap,
dbm, ossaudiodev, marshal & winreg return bytearray instead of bytes
Add
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
issue #3797 has been opened to track the other files mentioned.
--
status: open -> closed
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
heh indeed it should be &rv. i made the patch on a mac and hadn't run
it on my linux host before opening the issue.
fixed locally and given all of the reviews across all relevant
platforms.. committin
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
its too late in the release process for subprocess internals being EINTR
safe to make it into 2.6 but it is reasonable for 2.6.1.
--
priority: low -> normal
type: -> behavior
versions: +Python 2.5
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
true, issue 1204 is more general. i'll leave this in but it can be
removed once the better general fix is in with 1204. i won't backport
this one.
--
keywords: +64bit
status: pending -> closed
ve
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
when committing this one, the platform specific openbsd/amd64 fix I
committed for this in issue 3645 should probably be verified as unneeded
and undone.
marking as release blocker as we should make sure this autoconf update
goes in
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
forkthread2.patch looks good to me. to be consistent shouldn't we also
apply that fix to 2.6?
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
I've attached an updated patch. Not much changed other than the better
diff -u format, a couple grammar errors in comments and inclusion of the
new autoconf generated configure script.
It works fine for me on ubuntu hardy 32bi
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
sq_dict review:
have sqlite quote/escape self._mtn before using it with a python %s
substitution. or pass it into the sql query function as a positional ?
parameter like you do for keys and values. (avoid sql injection)
r
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
yep it applies to all releases. anyways, it won't make 2.6/3.0 but it
can be put into 2.5.3/2.6.1/3.0.1.
--
versions: +Python 3.0
___
Python tracker <[EMAIL PROTECTED]>
<ht
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
I backported the last bit from r66275 to release25-maint in r66279.
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
please undo this, this broke asyncore in trunk. handle_close_event
doesn't exist in 2.6.
--
nosy: +gregory.p.smith
priority: -> release blocker
resolution: fixed ->
statu
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
keywords: +easy
type: -> behavior
versions: +Python 2.6 -Python 3.0
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
fixed in trunk r66283 (followed by rerunning autoconf to generate a new
configure script in r66284).
--
keywords: -needs review
versions: -Python 2.6
___
Python tracker <[EMAIL
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
merged into py3k branch in r66285.
backported to release25-maint in r66288 and r66289.
--
resolution: -> accepted
status: open -> closed
versions: -Python 3.0
___
Python tra
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
eek. not quite fixed then :)
i'll retest and take care of it.
--
resolution: accepted ->
status: closed -> open
___
Python tracker <[EMAIL PROTECTED]>
<http:/
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
fixed in trunk r66295/r66296.
merging and backporting now...
--
versions: +Python 3.0
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
merged to py3k r66297 + r66298
backported to release25-maint r66299 + r66300.
--
resolution: -> fixed
status: open -> closed
___
Python tracker <[EMAIL PROTECTED]>
<h
New submission from Gregory P. Smith <[EMAIL PROTECTED]>:
Modules/_ssl.c in the py3k branch:
PySSL_SSLread():
calls parsetuple expecting "|Oi" as arguments.
However the logic below to interpret and use the arguments is very
convoluted. it'd be better to reorder these
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
i only had a brief look when i was going through code looking for
potentially incorrect uses of PyByteArray_*.
I've got a patch that i believe cleans it up a little but its sitting on
a machine i don't have remote access
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
i won't have time to work on this for several days but i will happily
review updated patches if anyone could contribute fixes for the __dict__
issues described in the most recent comments.
feel free to steal the is
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
yep, agreed. leave this for later. my bad for opening it with high
priority in the first place. low is correct. :)
i was just trying to write down comments on odd code that i came across
before i forgot ab
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
This sounds really neat. but as Anotine said it'll be several weeks
before any of us can give this serious attention. Definitely update to
trunk and base your work off of that.
quick comments:
Your _sre.c diff appears to
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
weird typo: s/f lea/formats/
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3825>
___
_
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
Agreed, this is fine for a bugfix point release.
I was initially concerned about the Modules/threadmodule.c struct
localobject changing but that is private and used only by code within
threadmodule.c so its not part of an API an
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
ubuntu? make sure you have the libreadline5-dev package installed.
then make distclean && ./configure && make
--
nosy: +gregory.p.smith
priority: -> normal
_
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3863>
___
_
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
attaching a stand alone script to exercise the bug. based on the
prints, the error appears to happen during the t.start() call to launch
the joiningfunc() thread from the child processes worker thread (its the
main/only thread in the
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
and as expected, also happens with py3k.
--
versions: +Python 3.0
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
title: Parser/adsl_c.py requires python in order to build python ->
Parser/asdl_c.py requires python in order to build python
___
Python tracker <[EMAIL PROTECTED]>
<http
New submission from Gregory P. Smith <[EMAIL PROTECTED]>:
Parser/asdl_c.py starts with "#! /usr/bin/env python" and is required
when building python. The prevents python from being built on systems
without an existing python interpreter installed. Which came first, the
p
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
instrumenting Python/thread_pthread.h and turning on thread debugging in
Python/thread.c, FreeBSD raises the Fatal error within pthread_create().
I'm inclined to say that this is a FreeBSD 6.3 bug. The
fbsd_thr_crash.py tes
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
Python 2.4 uses an 'int' for ob_size so it does not appear at first
glance that its sha module (what hashlib was derived from) is
susceptible to this bug when compiled as 64-bit.
--
keywords: +64bit
nosy: +gregory.
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
just make a similar "fix" for now.
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.python.org/issue3892>
___
__
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
This makes sense and is a trivial compatibility fix. anyone disagree?
--
nosy: +gregory.p.smith, janssen
priority: -> release blocker
___
Python tracker <[EMAIL PROTE
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
already merged in py3k.
committed to release25-maint in r66547.
--
resolution: -> fixed
status: open -> closed
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
This is not a subprocess bug. the os's pipe buffer filled up so the
process never terminated to be noticed by wait. see:
http://docs.python.org/dev/library/subprocess.html#subprocess.Popen.wait
use communicate() inst
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
agreed. most platforms should be using the openssl version, i will
update the non-openssl implementations to behave the same.
I don't think this is worth being a release blocker. I'll do it for 3.0.1.
---
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
priority: -> critical
title: Self-reference in BaseHTTPRequestHandler descendants causes stuck
connections -> BaseHTTPRequestHandler depends on GC to cl
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
priority: -> normal
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
Buffering up header IO and sending it all at once is always a good thing
to do. A patch and unit test would be greatly appreciated.
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
priority: -> normal
versions:
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
assignee: -> gregory.p.smith
nosy: +gregory.p.smith
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.py
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
dependencies: +platform.dist() has unpredictable result under Linux
keywords: +patch
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Changes by Gregory P. Smith <[EMAIL PROTECTED]>:
--
dependencies: +platform.dist(): detect Linux distribution version in a robust,
standard way
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.pytho
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
The whole socket._io_refs thing looks like a real design flaw. What is
its actual intended purpose?
When close is called on the socket object itself, the socket MSUT be
closed. Why is our API otherwise?
Its up to the programm
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
r66703 in trunk (2.6) applies the test_threading_fbsd6.py.patch modified
to also print a note to stderr when skipping the test and adds a mention
of buggy OSes in the os.fork documentation.
still needs merging over to 3.0 and possib
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
marking release blocker for 3.0, the patch just needs to be merged after
it runs through any existing trunk freebsd buildbot(s).
--
priority: normal -> release blocker
___
Python tracke
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
This is useful but as its a feature we won't be able to add it until
2.7/3.1. Assigning to me to make sure it happens.
Until then, the approach I suggest is to subclass httplib.HTTPConnection
and HTTPSConnection to add your o
Gregory P. Smith <[EMAIL PROTECTED]> added the comment:
An int is 32-bits on all popular platforms. Anyways i'll double check
things. What platforms did you run your test on?
___
Python tracker <[EMAIL PROTECTED]>
<http://bugs.
401 - 500 of 3274 matches
Mail list logo