st-pti: Thread: Re: Architektura & Organizacja


[<<] [<] Page 1 of 2 [>] [>>]
Subject: RE: [st-pti] Architektura & Organizacja
From: Waclaw Iszkowski ####@####.####
Date: 7 Dec 2017 08:22:55 +0000
Message-Id: <1495255160.86765.1512635063714@poczta.home.pl>

HI,

W okresie nauczania informatyki na Wydz. Elektroniki PW na zajęciach i w skryptach były prezentowane pojęcia:

Architektura komputera - jego opis funkcjonalny wraz listą akceptowalnych instrukcji.

Organizacja komputera - jego opis struktury - rejestrów, szyn, pamięci, procesora, itp z układami realizacji rozkazów.


Przykładowo  ICL 1900 i ODRA 1300 miały tę samą architekturę  (obie serie legalnie korzystały z tego samego oprogramowania) ale miały nieco odmienne organizacje - czyli realizacje tej samej architektury.

Podobnie pecety typu IBM PC miały (mają) tę samą architekturę ale nieco odmienne organizacje. Również  RIADy i IBM 360 miały tę samą architekturę - tutaj z powodu "przystosowania" oprogramowania.


I jeszcze ciekawostka:

Znany niektórym Per Brinch Hansen napisał książkę  The Architecture of Concurrent Programs - książkę tę na naszą prośbę zakupiła za dewizy Biblioteka PW, po czym książka zniknęła. Dopiero jeden z naszych studentów dotarł do niej (to taki też aktualny dziwoląg językowy) w Bibliotece Wydziału Architektury. 

Pozdrawiam

WBI



Subject: Re: [st-pti] Architektura & Organizacja
From: Zygmunt Ryznar ####@####.####
Date: 7 Dec 2017 09:33:47 +0000
Message-Id: <CAJYQHt5wwz1oOVxgEAXeW0X6uUdUmxWhRQQsGpPu4NM-st4H9A@mail.gmail.com>

Dla mnie pojęcie "architektura komputera"  obejmuje też jego strukturę
- podobnie jak architektura budynku obejmuje nie tylko opis
funkcjonalny. Nadmiar pojęć wcale nie precyzuje istoty
tematu-obiektu..
R.Z.

W dniu 7 grudnia 2017 09:24 użytkownik Waclaw Iszkowski
####@####.#### napisał:
> HI,
>
> W okresie nauczania informatyki na Wydz. Elektroniki PW na zajęciach i w
> skryptach były prezentowane pojęcia:
>
> Architektura komputera - jego opis funkcjonalny wraz listą akceptowalnych
> instrukcji.
>
> Organizacja komputera - jego opis struktury - rejestrów, szyn, pamięci,
> procesora, itp z układami realizacji rozkazów.
>
>
> Przykładowo  ICL 1900 i ODRA 1300 miały tę samą architekturę  (obie serie
> legalnie korzystały z tego samego oprogramowania) ale miały nieco odmienne
> organizacje - czyli realizacje tej samej architektury.
>
> Podobnie pecety typu IBM PC miały (mają) tę samą architekturę ale nieco
> odmienne organizacje. Również  RIADy i IBM 360 miały tę samą architekturę -
> tutaj z powodu "przystosowania" oprogramowania.
>
>
> I jeszcze ciekawostka:
>
> Znany niektórym Per Brinch Hansen napisał książkę  The Architecture of
> Concurrent Programs - książkę tę na naszą prośbę zakupiła za dewizy
> Biblioteka PW, po czym książka zniknęła. Dopiero jeden z naszych studentów
> dotarł do niej (to taki też aktualny dziwoląg językowy) w Bibliotece
> Wydziału Architektury.
>
> Pozdrawiam
>
> WBI
>
>
>
> --- ST-PTI. Lista dyskusyjna Sekcji Terminologicznej PTI. Archiwum publiczne
> listy: http://lists.tldp.org/go.to?list=st-pti ---
Subject: RE: [st-pti] Architektura & Organizacja
From: "Tomasz Klasa" ####@####.####
Date: 7 Dec 2017 16:50:57 +0000
Message-Id: <005201d36f7b$d4cad700$7e608500$@o2.pl>

Rozróżnienie na architekturę i organizację komputera nie jest niczym nowym. Architektura komputera to wszystko to, co jest widoczne/dostępne z poziomu oprogramowania. Organizacja to jest realizacja danej architektury. Jednocześnie, to, co nazywamy architekturą procesora to formalnie jest organizacja.

Przykładem jest architektura x86 czy AMD-64. Procesorów zgodnych z x86 jest wiele. Gdy przyjrzymy się ich budowie, to okaże się, że poniżej zestawu instrukcji i rejestrów, które wynikają z architektury, jest cała masa różnic. Np. sposób realizacji architektury x86 w procesorze Intel Sandy Bridge jest inny niż w Intel P4 i jeszcze inny niż w AMD Athlon. Natomiast dla programisty to wszystko nie ma znaczenia, bo on (a raczej kompilator) widzi tylko zestaw instrukcji i rejestrów wynikający z x86. Natomiast organizacja, czyli ten sposób realizacji architektury, ma kluczowy wpływ na wydajność procesora.

Pozdrawiam,
Tomasz Klasa

-----Original Message-----
From: Zygmunt Ryznar ####@####.#### 
Sent: Thursday, December 7, 2017 10:35 AM
To: ST PTI
Subject: Re: [st-pti] Architektura & Organizacja

Dla mnie pojęcie "architektura komputera"  obejmuje też jego strukturę
- podobnie jak architektura budynku obejmuje nie tylko opis
funkcjonalny. Nadmiar pojęć wcale nie precyzuje istoty
tematu-obiektu..
R.Z.

W dniu 7 grudnia 2017 09:24 użytkownik Waclaw Iszkowski
####@####.#### napisał:
> HI,
>
> W okresie nauczania informatyki na Wydz. Elektroniki PW na zajęciach i w
> skryptach były prezentowane pojęcia:
>
> Architektura komputera - jego opis funkcjonalny wraz listą akceptowalnych
> instrukcji.
>
> Organizacja komputera - jego opis struktury - rejestrów, szyn, pamięci,
> procesora, itp z układami realizacji rozkazów.
>
>
> Przykładowo  ICL 1900 i ODRA 1300 miały tę samą architekturę  (obie serie
> legalnie korzystały z tego samego oprogramowania) ale miały nieco odmienne
> organizacje - czyli realizacje tej samej architektury.
>
> Podobnie pecety typu IBM PC miały (mają) tę samą architekturę ale nieco
> odmienne organizacje. Również  RIADy i IBM 360 miały tę samą architekturę -
> tutaj z powodu "przystosowania" oprogramowania.
>
>
> I jeszcze ciekawostka:
>
> Znany niektórym Per Brinch Hansen napisał książkę  The Architecture of
> Concurrent Programs - książkę tę na naszą prośbę zakupiła za dewizy
> Biblioteka PW, po czym książka zniknęła. Dopiero jeden z naszych studentów
> dotarł do niej (to taki też aktualny dziwoląg językowy) w Bibliotece
> Wydziału Architektury.
>
> Pozdrawiam
>
> WBI
>
>
>
> --- ST-PTI. Lista dyskusyjna Sekcji Terminologicznej PTI. Archiwum publiczne
> listy: http://lists.tldp.org/go.to?list=st-pti ---

---
ST-PTI. Lista dyskusyjna Sekcji Terminologicznej PTI. 
Archiwum publiczne listy: http://lists.tldp.org/go.to?list=st-pti
---


Subject: RE: [st-pti] Architektura & Organizacja
From: Piotr Karocki ####@####.####
Date: 7 Dec 2017 18:15:13 +0000
Message-Id: <08a3a46e5e62faa381a0b42cb1b73c0e@mail.gmail.com>

> Np. sposób realizacji architektury x86 w procesorze Intel Sandy Bridge
> jest inny niż w Intel P4 i jeszcze inny niż w AMD Athlon.
> Natomiast dla programisty to wszystko nie ma znaczenia,
> bo on (a raczej kompilator) widzi tylko zestaw instrukcji i rejestrów
> wynikający z x86.
 Dla kompilatora to ma znaczenie, bo kompilator robi optymalizacje kodu - a
przy tym uwzglednia liczbę taktów zegara na instrukcje, szerokosc cache, i
wiele, wiele innych rzeczy. Dla programisty to POWINNO mieć znaczenie, bo
programista powinien ROZUMIEĆ "co się dzieje". Nawet jak pisze w jezyku
wysokiego poziomu, bardzo wysokiego poziomu - jak np. .Net (srodowisko) to i
tak dobrze by bylo gdyby wiedział ile jest generowanych przejść między
ringami kodu i jak to co robi zostanie przełożone na język maszynowy (no
dobrze, może niech będzie że na "asembler symboliczny"). Jeszcze fajniej by
było gdyby wiedział jak to zostanie przetworzone do mikrokodu (te procesory
które mają μop-fusion, albo te które w ogóle programuje sie bezposrednio
mikrokodem).

 Ale to może zbyt daleko posunięty idealizm :)


---8<---
Piotr Karocki

Wszystko co jest poniżej jest samowolnym dopiskiem Google
Subject: Re: [st-pti] Architektura & Organizacja
From: Marcin Paprzycki ####@####.####
Date: 7 Dec 2017 18:19:44 +0000
Message-Id: <b8b7ce98-1a65-9adb-b4bb-1f1ec3fefd44@ibspan.waw.pl>

Dzien dobry!

A po co ma to wiedziec????
DO czego jest mu to potrzebne?

Serdecznie,
MP


On 2017-12-07 19:16, Piotr Karocki wrote:
>> Np. sposób realizacji architektury x86 w procesorze Intel Sandy Bridge
>> jest inny niż w Intel P4 i jeszcze inny niż w AMD Athlon.
>> Natomiast dla programisty to wszystko nie ma znaczenia,
>> bo on (a raczej kompilator) widzi tylko zestaw instrukcji i rejestrów
>> wynikający z x86.
>   Dla kompilatora to ma znaczenie, bo kompilator robi optymalizacje kodu - a
> przy tym uwzglednia liczbę taktów zegara na instrukcje, szerokosc cache, i
> wiele, wiele innych rzeczy. Dla programisty to POWINNO mieć znaczenie, bo
> programista powinien ROZUMIEĆ "co się dzieje". Nawet jak pisze w jezyku
> wysokiego poziomu, bardzo wysokiego poziomu - jak np. .Net (srodowisko) to i
> tak dobrze by bylo gdyby wiedział ile jest generowanych przejść między
> ringami kodu i jak to co robi zostanie przełożone na język maszynowy (no
> dobrze, może niech będzie że na "asembler symboliczny"). Jeszcze fajniej by
> było gdyby wiedział jak to zostanie przetworzone do mikrokodu (te procesory
> które mają μop-fusion, albo te które w ogóle programuje sie bezposrednio
> mikrokodem).
> 
>   Ale to może zbyt daleko posunięty idealizm :)
> 
> 
> ---8<---
> Piotr Karocki
> 
> Wszystko co jest poniżej jest samowolnym dopiskiem Google
> 
> ---
> ST-PTI. Lista dyskusyjna Sekcji Terminologicznej PTI.
> Archiwum publiczne listy: http://lists.tldp.org/go.to?list=st-pti
> ---
> 
> 
> 

-- 

Best International CS / IS Conference in Poland
Details: 		http://www.fedcsis.org
Facebook group: 	http://preview.tinyurl.com/yeazgvw


---
Ta wiadomość e-mail została sprawdzona pod kątem wirusów przez oprogramowanie AVG.
http://www.avg.com

Subject: Re: [st-pti] Architektura & Organizacja
From: Grzegorz Plucinski ####@####.####
Date: 7 Dec 2017 18:22:57 +0000
Message-Id: <cec188e3-78de-6676-25bb-9f9fc4aa04ba@grzes.com>

żeby rozumieć co robi a nie działać jak małpa


ciekawe jakby to było, gdyby inżynier projektujący mosty nie znał mechaniki

ktoś by się odważył wejść na taki  most ????


a z programów robionych przez ludzi, którzy nie rozumieją jak działa
komputer

niestety korzystamy na codzień :-(


a potem tworzy się legendy jakoby oprogramowanie było czymś tak trudnym
i skomplikowanym, że nie da się

go zrobić w 100% dobrze.......



W dniu 2017-12-07 o 19:21, Marcin Paprzycki pisze:
> Dzien dobry!
>
> A po co ma to wiedziec????
> DO czego jest mu to potrzebne?
>
> Serdecznie,
> MP
>
>
> On 2017-12-07 19:16, Piotr Karocki wrote:
>>> Np. sposób realizacji architektury x86 w procesorze Intel Sandy Bridge
>>> jest inny niż w Intel P4 i jeszcze inny niż w AMD Athlon.
>>> Natomiast dla programisty to wszystko nie ma znaczenia,
>>> bo on (a raczej kompilator) widzi tylko zestaw instrukcji i rejestrów
>>> wynikający z x86.
>>   Dla kompilatora to ma znaczenie, bo kompilator robi optymalizacje
>> kodu - a
>> przy tym uwzglednia liczbę taktów zegara na instrukcje, szerokosc
>> cache, i
>> wiele, wiele innych rzeczy. Dla programisty to POWINNO mieć
>> znaczenie, bo
>> programista powinien ROZUMIEĆ "co się dzieje". Nawet jak pisze w jezyku
>> wysokiego poziomu, bardzo wysokiego poziomu - jak np. .Net
>> (srodowisko) to i
>> tak dobrze by bylo gdyby wiedział ile jest generowanych przejść między
>> ringami kodu i jak to co robi zostanie przełożone na język maszynowy (no
>> dobrze, może niech będzie że na "asembler symboliczny"). Jeszcze
>> fajniej by
>> było gdyby wiedział jak to zostanie przetworzone do mikrokodu (te
>> procesory
>> które mają μop-fusion, albo te które w ogóle programuje sie bezposrednio
>> mikrokodem).
>>
>>   Ale to może zbyt daleko posunięty idealizm :)
>>
>>
>> ---8<---
>> Piotr Karocki
>>
>> Wszystko co jest poniżej jest samowolnym dopiskiem Google
>>
>> ---
>> ST-PTI. Lista dyskusyjna Sekcji Terminologicznej PTI.
>> Archiwum publiczne listy: http://lists.tldp.org/go.to?list=st-pti
>> ---
>>
>>
>>
>



--> -->
 
 
<type 'exceptions.IOError'>
Python 2.5.2: /usr/bin/python
Sat May 4 07:55:33 2024

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /opt/ezmlm-browse-0.20/<string> in ()
 /opt/ezmlm-browse-0.20/main.py in main()
  424 
  425         if path is not None:
  426                 main_path(path)
  427         else:
  428                 main_form()
global main_form = <function main_form at 0x8822c6c>
 /opt/ezmlm-browse-0.20/main.py in main_form()
  378         except ImportError:
  379                 die(ctxt, "Invalid command")
  380         module.do(ctxt)
  381 
  382 def main():
module = <module 'commands.showthread' from '/opt/ezmlm-browse-0.20/commands/showthread.pyc'>, module.do = <function do at 0x8829ae4>, global ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}
 /opt/ezmlm-browse-0.20/commands/showthread.py in do(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'})
    9         ctxt.update(ezmlm.thread(ctxt[THREADID]))
   10         header(ctxt, 'Thread: ' + ctxt[SUBJECT], 'showthread')
   11         do_list(ctxt, 'msgs', ctxt[MSGSPERPAGE], ctxt[MESSAGES],
   12                         lambda:sub_showmsg(ctxt, ctxt[MSGNUM]))
   13         footer(ctxt)
global sub_showmsg = <function sub_showmsg at 0x88221ec>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, global MSGNUM = 'msgnum'
 /opt/ezmlm-browse-0.20/globalfns.py in do_list(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, name='msgs', perpage=10, values=[{'author': u'Waclaw Iszkowski', 'authorid': 'fjemidjhhpmblnpmognc', 'date': '7 Dec 2017 08:22:55 +0000', 'month': 201712, 'msgnum': 1169, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512634975.0}, {'author': u'Zygmunt Ryznar', 'authorid': 'olehamajoibfiniemlbl', 'date': '7 Dec 2017 09:33:47 +0000', 'month': 201712, 'msgnum': 1170, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512639227.0}, {'author': u'Tomasz Klasa', 'authorid': 'ddpkiiaoiiaekicebidn', 'date': '7 Dec 2017 16:50:57 +0000', 'month': 201712, 'msgnum': 1171, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512665457.0}, {'author': u'Piotr Karocki', 'authorid': 'obdhjapfnlanlbenbhoh', 'date': '7 Dec 2017 18:15:13 +0000', 'month': 201712, 'msgnum': 1172, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512670513.0}, {'author': u'Marcin Paprzycki', 'authorid': 'bgplfclkccclcjlmljod', 'date': '7 Dec 2017 18:19:44 +0000', 'month': 201712, 'msgnum': 1173, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512670784.0}, {'author': u'Grzegorz Plucinski', 'authorid': 'llfdmjmbmaechgcbedkl', 'date': '7 Dec 2017 18:22:57 +0000', 'month': 201712, 'msgnum': 1174, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512670977.0}, {'author': u'Tomasz Klasa', 'authorid': 'ddpkiiaoiiaekicebidn', 'date': '7 Dec 2017 18:32:00 +0000', 'month': 201712, 'msgnum': 1175, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512671520.0}, {'author': u'Piotr Karocki', 'authorid': 'obdhjapfnlanlbenbhoh', 'date': '7 Dec 2017 18:37:39 +0000', 'month': 201712, 'msgnum': 1176, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512671859.0}, {'author': u'Marcin Paprzycki', 'authorid': 'bgplfclkccclcjlmljod', 'date': '7 Dec 2017 19:18:22 +0000', 'month': 201712, 'msgnum': 1177, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512674302.0}, {'author': u'Marcin Paprzycki', 'authorid': 'bgplfclkccclcjlmljod', 'date': '7 Dec 2017 19:22:01 +0000', 'month': 201712, 'msgnum': 1178, 'subject': u'Re: Architektura & Organizacja', 'threadid': 'mmlnohfeacnjjhfgldam', 'timestamp': 1512674521.0}], peritem=<function <lambda> at 0x88293ac>)
  128                 write(template % ctxt)
  129                 if peritem:
  130                         peritem()
  131                 ctxt[ROW] += 1
  132 
peritem = <function <lambda> at 0x88293ac>
 /opt/ezmlm-browse-0.20/commands/showthread.py in ()
    9         ctxt.update(ezmlm.thread(ctxt[THREADID]))
   10         header(ctxt, 'Thread: ' + ctxt[SUBJECT], 'showthread')
   11         do_list(ctxt, 'msgs', ctxt[MSGSPERPAGE], ctxt[MESSAGES],
   12                         lambda:sub_showmsg(ctxt, ctxt[MSGNUM]))
   13         footer(ctxt)
global sub_showmsg = <function sub_showmsg at 0x88221ec>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, global MSGNUM = 'msgnum'
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showmsg(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, msgnum=1174)
  229         format_timestamp(ctxt, ctxt)
  230         write(html('msg-header') % ctxt)
  231         rec_showpart(ctxt, msg, 0)
  232         write(html('msg-footer') % ctxt)
  233         ctxt.pop()
global rec_showpart = <function rec_showpart at 0x88221b4>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, msg = <email.message.Message instance at 0x8881e8c>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, part=<email.message.Message instance at 0x8881e8c>, partnum=2)
  205                 else:
  206                         for p in part.get_payload():
  207                                 partnum = rec_showpart(ctxt, p, partnum+1)
  208         else:
  209                 write(html('msg-sep') % ctxt)
partnum = 2, global rec_showpart = <function rec_showpart at 0x88221b4>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, p = <email.message.Message instance at 0x88872ac>
 /opt/ezmlm-browse-0.20/globalfns.py in rec_showpart(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, part=<email.message.Message instance at 0x88872ac>, partnum=3)
  208         else:
  209                 write(html('msg-sep') % ctxt)
  210                 sub_showpart(ctxt, part)
  211         return partnum
  212 
global sub_showpart = <function sub_showpart at 0x8822144>, ctxt = {'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, part = <email.message.Message instance at 0x88872ac>
 /opt/ezmlm-browse-0.20/globalfns.py in sub_showpart(ctxt={'HTTP_X_FORWARDED_SERVER': 'glitch', 'HTTP_REFE... 'monthbythread', 'HTTP_ACCEPT_ENCODING': 'gzip'}, part=<email.message.Message instance at 0x88872ac>)
  164         type = ctxt[TYPE] = part.get_content_type()
  165         ctxt[FILENAME] = part.get_filename()
  166         template = html('msg-' + type.replace('/', '-'))
  167         if not template:
  168                 template = html('msg-' + type[:type.find('/')])
global template = <function template at 0x881ae9c>, global html = <function html at 0x881aed4>, type = 'application/pgp-signature', type.replace = <built-in method replace of str object at 0x88881e0>
 /opt/ezmlm-browse-0.20/globalfns.py in html(name='msg-application-pgp-signature')
   40 
   41 def html(name):
   42         return template(name + '.html')
   43 
   44 def xml(name):
global template = <function template at 0x881ae9c>, name = 'msg-application-pgp-signature'
 /opt/ezmlm-browse-0.20/globalfns.py in template(filename='msg-application-pgp-signature.html')
   31         except IOError:
   32                 if not _template_zipfile:
   33                         _template_zipfile = zipfile.ZipFile(sys.argv[0])
   34                 try:
   35                         f = _template_zipfile.open(n).read()
global _template_zipfile = None, global zipfile = <module 'zipfile' from '/usr/lib/python2.5/zipfile.pyc'>, zipfile.ZipFile = <class zipfile.ZipFile at 0x87b3a4c>, global sys = <module 'sys' (built-in)>, sys.argv = ['-c', '/opt/ezmlm-browse-0.20']
 /usr/lib/python2.5/zipfile.py in __init__(self=<zipfile.ZipFile instance at 0x8881f6c>, file='-c', mode='r', compression=0, allowZip64=False)
  337             self.filename = file
  338             modeDict = {'r' : 'rb', 'w': 'wb', 'a' : 'r+b'}
  339             self.fp = open(file, modeDict[mode])
  340         else:
  341             self._filePassed = 1
self = <zipfile.ZipFile instance at 0x8881f6c>, self.fp = None, builtin open = <built-in function open>, file = '-c', modeDict = {'a': 'r+b', 'r': 'rb', 'w': 'wb'}, mode = 'r'

<type 'exceptions.IOError'>: [Errno 2] No such file or directory: '-c'
      args = (2, 'No such file or directory')
      errno = 2
      filename = '-c'
      message = ''
      strerror = 'No such file or directory'